Skip to content

MAP Commands -- Phase 4 — Implement TypeScript MAP Commands transport wrapper #407

@evomimic

Description

@evomimic

name: Enhancement Proposal
about: Suggest an improvement or new feature for the Memetic Activation Platform
title: "[Enhancement] Phase 4 — Implement TypeScript MAP Commands transport wrapper"
labels: enhancement
assignees:

1. Summary (Required)

What is the enhancement?
Implement a minimal TypeScript module that provides exactly one function:

  • invokeMapCommand(request: MapRequest): Promise<MapResponse>

This layer does transport only (Tauri invoke), with zero business logic.


2. Problem Statement (Required)

Why is this needed?
We want a strict separation:

  • TS “transport” layer: IPC only
  • TS SDK layer: ergonomic functions that emit commands

Without this separation, SDK semantics and IPC concerns get entangled.


3. Dependencies (Required)

Does this depend on other issues or features?

  • Phase 3 single Tauri command exists (invoke_map_command)
  • Phase 2.1 contract types are available to TS (generated types or hand-mirrored)

4. Proposed Solution (Required)

How would you solve it?

  • Create a small TS package/module (e.g., map-commands)
  • Implement:
    • invokeMapCommand(req) which:
      • validates minimally (optional: runtime schema validation)
      • calls Tauri invoke
      • returns the response

Constraints:

  • no retries
  • no sequencing
  • no transaction policy
  • no auto-binding of references (TS never resolves references)

5. Scope and Impact (Required)

What does this impact?

  • Adds a thin TS layer used by the SDK
  • Becomes the single integration point to IntegrationHub IPC

6. Testing Considerations (Required)

How will this enhancement be tested?

  • Unit tests with mocked Tauri invoke
  • Contract tests for representative request/response shapes
  • Optional: runtime schema validation tests if adopted

7. Definition of Done (Required)

When is this enhancement complete?

  • invokeMapCommand exists and is the only IPC call site for MAP operations in TS
  • No policy/logic beyond transport is present
  • Tests cover basic request/response behavior

Optional Details (Expand if needed)

8. Alternatives Considered

  • Implement SDK directly over Tauri without a transport layer
    Rejected: couples SDK semantics to IPC details.

9. Risks or Concerns

  • Type drift between Rust contracts and TS typings (mitigate via generation where possible)

10. Additional Context

This is intentionally “thin”; ergonomics belong in the SDK (Phase 5).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions