iiRecord
Agentic AI Atlas · GAP-UX-010: Typed Effect Interaction Patterns
page:docs-harness-features-backlog-gaps-user-experience-gap-ux-010a5c.ai
II.
Page JSON

page:docs-harness-features-backlog-gaps-user-experience-gap-ux-010

Structured · live

GAP-UX-010: Typed Effect Interaction Patterns json

Inspect the normalized record payload exactly as the atlas UI reads it.

File · wiki/docs/harness-features-backlog/gaps/user-experience/gap-ux-010.mdCluster · wiki
Record JSON
{
  "id": "page:docs-harness-features-backlog-gaps-user-experience-gap-ux-010",
  "_kind": "Page",
  "_file": "wiki/docs/harness-features-backlog/gaps/user-experience/gap-ux-010.md",
  "_cluster": "wiki",
  "attributes": {
    "nodeKind": "Page",
    "sourcePath": "docs/harness-features-backlog/gaps/user-experience/GAP-UX-010.md",
    "sourceKind": "repo-docs",
    "title": "GAP-UX-010: Typed Effect Interaction Patterns",
    "displayName": "GAP-UX-010: Typed Effect Interaction Patterns",
    "slug": "docs/harness-features-backlog/gaps/user-experience/gap-ux-010",
    "articlePath": "wiki/docs/harness-features-backlog/gaps/user-experience/GAP-UX-010.md",
    "article": "\n# GAP-UX-010: Typed Effect Interaction Patterns\n\n| Field | Value |\n|-------|-------|\n| Category | user-experience |\n| Priority | Medium |\n| Effort | M |\n| Status | Partial |\n\n## Description\nExtend the interaction model beyond breakpoint approve/reject to support typed interaction patterns: choice selection, multi-select, file picker, parameter configuration forms, and confirmation dialogs. These interaction types should be available as effect intrinsics that harness adapters render appropriately for their UI surface.\n\n## Current State\nThe interaction module (`packages/sdk/src/interaction/`) provides arrow-key selectors, multi-select, and free-text input for direct CLI use. The breakpoint system supports approve/reject with optional feedback, strategy routing, and the `option` field for single-choice. However, these rich interaction types are not available as orchestration effects -- they cannot be dispatched from process definitions and rendered by harness adapters.\n\n## Target State\nTyped interaction effect schemas: `ChoiceInteraction` (single select), `MultiChoiceInteraction` (multi-select), `TextInputInteraction` (with validation regex), `ConfirmInteraction` (yes/no with context), `FileSelectInteraction` (pick from workspace files), `FormInteraction` (structured parameter input). Each schema defines the interaction type, options, validation rules, and default values. Harness adapters implement renderers for each type. All interactions flow through the journal as effects.\n\n## Dependencies\n- [GAP-JSON-003](../json-interaction/GAP-JSON-003.md) -- JSON breakpoint API for programmatic interaction rendering\n\n## Key Files\n| Component | Path |\n|-----------|------|\n| Interaction module | `packages/sdk/src/interaction/` |\n| Breakpoints | `packages/sdk/src/breakpoints/` |\n| Process context | `packages/sdk/src/runtime/processContext.ts` |\n| Harness adapters | `packages/sdk/src/harness/` |\n\n## Recommendation\nPhase 3 implementation. Define typed interaction schemas in `packages/sdk/src/interaction/types.ts`. Extend ProcessContext with `ctx.ask()` intrinsic. Implement interaction renderers in each harness adapter. Ensure journal tracking for replay.\n",
    "documents": []
  },
  "outgoingEdges": [],
  "incomingEdges": [
    {
      "from": "page:docs-harness-features-backlog",
      "to": "page:docs-harness-features-backlog-gaps-user-experience-gap-ux-010",
      "kind": "contains_page"
    }
  ]
}