@gencode/uni 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +104 -0
  3. package/dist/shared/src/hitl.d.ts +5 -0
  4. package/dist/shared/src/hitl.d.ts.map +1 -1
  5. package/dist/shared/src/hitl.js.map +1 -1
  6. package/dist/shared/src/index.d.ts +1 -1
  7. package/dist/shared/src/index.d.ts.map +1 -1
  8. package/dist/shared/src/index.js.map +1 -1
  9. package/dist/shared/src/run-events.d.ts +3 -0
  10. package/dist/shared/src/run-events.d.ts.map +1 -1
  11. package/dist/shared/src/session.d.ts +13 -0
  12. package/dist/shared/src/session.d.ts.map +1 -1
  13. package/dist/uni/src/artifacts/accumulator.d.ts +17 -0
  14. package/dist/uni/src/artifacts/accumulator.d.ts.map +1 -0
  15. package/dist/uni/src/artifacts/accumulator.js +73 -0
  16. package/dist/uni/src/artifacts/accumulator.js.map +1 -0
  17. package/dist/uni/src/artifacts/parser.d.ts +14 -0
  18. package/dist/uni/src/artifacts/parser.d.ts.map +1 -0
  19. package/dist/uni/src/artifacts/parser.js +151 -0
  20. package/dist/uni/src/artifacts/parser.js.map +1 -0
  21. package/dist/uni/src/artifacts/stream-filter.d.ts +16 -0
  22. package/dist/uni/src/artifacts/stream-filter.d.ts.map +1 -0
  23. package/dist/uni/src/artifacts/stream-filter.js +93 -0
  24. package/dist/uni/src/artifacts/stream-filter.js.map +1 -0
  25. package/dist/uni/src/artifacts/tool-inference.d.ts +11 -0
  26. package/dist/uni/src/artifacts/tool-inference.d.ts.map +1 -0
  27. package/dist/uni/src/artifacts/tool-inference.js +257 -0
  28. package/dist/uni/src/artifacts/tool-inference.js.map +1 -0
  29. package/dist/uni/src/events/normalizer.d.ts.map +1 -1
  30. package/dist/uni/src/events/normalizer.js +8 -1
  31. package/dist/uni/src/events/normalizer.js.map +1 -1
  32. package/dist/uni/src/events/provider-events.d.ts.map +1 -1
  33. package/dist/uni/src/events/provider-events.js +353 -56
  34. package/dist/uni/src/events/provider-events.js.map +1 -1
  35. package/dist/uni/src/program.d.ts.map +1 -1
  36. package/dist/uni/src/program.js +8 -4
  37. package/dist/uni/src/program.js.map +1 -1
  38. package/dist/uni/src/providers/claude-code.d.ts.map +1 -1
  39. package/dist/uni/src/providers/claude-code.js +6 -2
  40. package/dist/uni/src/providers/claude-code.js.map +1 -1
  41. package/dist/uni/src/providers/codex.d.ts.map +1 -1
  42. package/dist/uni/src/providers/codex.js +13 -7
  43. package/dist/uni/src/providers/codex.js.map +1 -1
  44. package/dist/uni/src/providers/opencode.d.ts.map +1 -1
  45. package/dist/uni/src/providers/opencode.js +6 -2
  46. package/dist/uni/src/providers/opencode.js.map +1 -1
  47. package/dist/uni/src/providers/pi.d.ts.map +1 -1
  48. package/dist/uni/src/providers/pi.js +14 -5
  49. package/dist/uni/src/providers/pi.js.map +1 -1
  50. package/dist/uni/src/providers/provider-state.d.ts +10 -0
  51. package/dist/uni/src/providers/provider-state.d.ts.map +1 -0
  52. package/dist/uni/src/providers/provider-state.js +50 -0
  53. package/dist/uni/src/providers/provider-state.js.map +1 -0
  54. package/dist/uni/src/providers/spawned-provider.d.ts.map +1 -1
  55. package/dist/uni/src/providers/spawned-provider.js +36 -4
  56. package/dist/uni/src/providers/spawned-provider.js.map +1 -1
  57. package/dist/uni/src/run.d.ts.map +1 -1
  58. package/dist/uni/src/run.js +852 -336
  59. package/dist/uni/src/run.js.map +1 -1
  60. package/dist/uni/src/session/artifact-operation-store.d.ts +66 -0
  61. package/dist/uni/src/session/artifact-operation-store.d.ts.map +1 -0
  62. package/dist/uni/src/session/artifact-operation-store.js +370 -0
  63. package/dist/uni/src/session/artifact-operation-store.js.map +1 -0
  64. package/dist/uni/src/session/context-store.d.ts +37 -0
  65. package/dist/uni/src/session/context-store.d.ts.map +1 -0
  66. package/dist/uni/src/session/context-store.js +222 -0
  67. package/dist/uni/src/session/context-store.js.map +1 -0
  68. package/dist/uni/src/session/session-store.d.ts +57 -2
  69. package/dist/uni/src/session/session-store.d.ts.map +1 -1
  70. package/dist/uni/src/session/session-store.js +484 -15
  71. package/dist/uni/src/session/session-store.js.map +1 -1
  72. package/dist/uni/src/transcript/turn-accumulator.d.ts +57 -0
  73. package/dist/uni/src/transcript/turn-accumulator.d.ts.map +1 -0
  74. package/dist/uni/src/transcript/turn-accumulator.js +136 -0
  75. package/dist/uni/src/transcript/turn-accumulator.js.map +1 -0
  76. package/dist/uni/src/types.d.ts +25 -1
  77. package/dist/uni/src/types.d.ts.map +1 -1
  78. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,11 +1,42 @@
1
1
  # @gencode/uni
2
2
 
3
+ ## 0.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 2ccd4ba: Uni runs backed by Claude Code, Codex, OpenCode, or Pi now keep the caller-provided (or generated) logical Session ID stable across session directories, callback/websocket events, final results, and later resumes. Each new logical Session creates `.channel`, `session.json`, `transcript.jsonl`, and `context.json` under `<dataDir>/.aimax/<sessionStore>/<logicalSessionId>/`; the provider-native ID is stored separately in `session.json.runtimeBinding.providerSessionId` and is used only to resume that provider.
8
+
9
+ Provider-native state now defaults to the persistent `<dataDir>/.aimax/provider-state/` tree: Claude Code uses `CLAUDE_CONFIG_DIR`, Codex uses `CODEX_HOME`, OpenCode uses `XDG_DATA_HOME`, and Pi uses `PI_CODING_AGENT_DIR` plus `PI_CODING_AGENT_SESSION_DIR`. API-level `runtimeConfig.env` and CLI `--runtime-env KEY=VALUE` are applied to the spawned provider, with provider-specific settings taking precedence over common values and Uni defaults. Resume verification uses the same effective state path. Replacement containers must persist this tree together with the logical Session directory for resume to retain provider context.
10
+
11
+ Codex Resume invocations retain `--skip-git-repo-check` and avoid the new-run-only `--cd` flag, so one-shot replacement processes can resume persisted Codex sessions from non-Git workspaces. The real Resume smoke also rejects provider errors and empty responses instead of reporting a metadata-only pass.
12
+
13
+ The four aligned providers now write a common Uni transcript shape using only observed text, thinking, paired tool events, errors, and token usage. Real usage is checkpointed in `context.json`; unavailable usage is omitted instead of being persisted as zero. Codex command and MCP activity is paired only when start and completion frames are observed, MCP tools are namespaced as `mcp:<server>:<tool>`, and a completed-only Codex `file_change` is audited as a terminal file operation without inventing a transcript tool start. Pi `toolcall_delta` is no longer misreported as assistant text. User-visible file and URL artifacts are returned in the final result and final assistant entry, while successful structured file operations are audited independently in a lazily-created, agents-compatible `artifacts.json`. `--artifacts-url-whitelist` optionally restricts URL artifacts by exact hostname; without it all valid URL artifacts are accepted, and file artifacts are unaffected. CRON runs neither create nor append an existing audit file, and ACP keeps its existing minimal compatibility path.
14
+
15
+ Legacy Uni directories are kept in place and their historical transcripts are not rewritten. Automatic binding requires a provider-specific authoritative session lifecycle record in the effective native-state tree; filenames, generic nested IDs, and ordinary Claude assistant/result frames are not treated as evidence. Resume fails explicitly when that mapping cannot be verified, instead of silently opening a new provider conversation. Once known, provider-native IDs are removed from every public and non-binding Session payload, including assistant text, tool data, titles, model labels, errors, and diagnostics. The server engine path passes a caller-provided logical Session ID through unchanged; when it is omitted, the Uni execution entry creates the public logical ID used by callbacks, results, persisted Session data, and subsequent one-shot Resume.
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies [2ccd4ba]
20
+ - @gencode/shared@0.7.0
21
+
22
+ ## 0.3.1
23
+
24
+ ### Patch Changes
25
+
26
+ - Updated dependencies [2c7e63a]
27
+ - @gencode/shared@0.6.2
28
+
3
29
  ## 0.3.0
4
30
 
5
31
  ### Minor Changes
6
32
 
7
33
  - f40c79a: `POST /run` now accepts an optional `engine` object with `runtimeAgent` and `runtimeConfig`. When `engine` is present, the server executes via `@gencode/uni` instead of the legacy CLI run path. Requests without `engine` keep the existing behavior unchanged. Supported `runtimeAgent` values are `claude-code`, `codex`, `opencode`, `pi`, and `acp` (no aliases).
8
34
 
35
+ ### Patch Changes
36
+
37
+ - Updated dependencies [8170e03]
38
+ - @gencode/shared@0.6.1
39
+
9
40
  ## 0.2.8
10
41
 
11
42
  ### Patch Changes
package/README.md CHANGED
@@ -34,6 +34,7 @@ adds runtime-specific flags inspired by `reference/cc-connect`, such as:
34
34
 
35
35
  - `--runtime-cli-path`
36
36
  - `--runtime-cli-args-flag`
37
+ - `--runtime-env KEY=VALUE`
37
38
  - `--runtime-mode`
38
39
  - `--runtime-reasoning-effort`
39
40
  - `--runtime-router-url`
@@ -42,6 +43,16 @@ adds runtime-specific flags inspired by `reference/cc-connect`, such as:
42
43
  - `--runtime-provider-env`
43
44
  - `--runtime-provider-header`
44
45
 
46
+ For API callers, top-level `runtimeConfig.env` is applied to every spawned
47
+ provider process. The CLI's repeatable `--runtime-env KEY=VALUE` option is
48
+ applied to the selected provider environment. Effective environment precedence
49
+ is Uni's provider-state fallback, inherited process values, top-level
50
+ `runtimeConfig.env`, `--runtime-provider-env` (where supported), and finally the
51
+ selected provider's environment (`--runtime-env`); dedicated options such as
52
+ `--runtime-codex-home` override the corresponding environment key. The same
53
+ effective provider-state path is used both to launch the child and to verify
54
+ legacy Resume evidence.
55
+
45
56
  ## Smoke Tests
46
57
 
47
58
  Provider-specific helper scripts live in `scripts/`:
@@ -49,6 +60,8 @@ Provider-specific helper scripts live in `scripts/`:
49
60
  - `scripts/test-claude-run.sh`
50
61
  - `scripts/test-codex-run.sh`
51
62
  - `scripts/test-opencode-run.sh`
63
+ - `scripts/test-pi-run.sh`
64
+ - `scripts/test-one-shot-resume.sh`
52
65
 
53
66
  To run the OpenCode provider through `@gencode/uni`:
54
67
 
@@ -57,6 +70,13 @@ cd source/packages/uni
57
70
  ./scripts/run-opencode-with-uni.sh "Summarize this repository"
58
71
  ```
59
72
 
73
+ The Pi provider uses the official `pi` command:
74
+
75
+ ```bash
76
+ cd source/packages/uni
77
+ ./scripts/test-pi-run.sh "Summarize this repository"
78
+ ```
79
+
60
80
  The helper defaults to `UNI_OUTPUT=jsonl`, so callback-compatible events are
61
81
  written to stdout one JSON object per line as the provider emits them. Use
62
82
  `UNI_OUTPUT=json` when you need the final aggregated result object instead.
@@ -72,3 +92,87 @@ UNI_RUNTIME_PROVIDER_BASE_URL="https://api.example.com/v1" \
72
92
  UNI_RUNTIME_PROVIDER_MODEL="gpt-4.1" \
73
93
  ./scripts/run-opencode-with-uni.sh "Review the current project"
74
94
  ```
95
+
96
+ `UNI_SESSION_ID` is always the public logical Session ID. It names the
97
+ directory under `<dataDir>/.aimax/sessions/` and remains unchanged in stdout,
98
+ callback, websocket, and final result events. Do not pass a provider-native
99
+ session/thread ID here; Uni stores that private Resume binding only in
100
+ `session.json.runtimeBinding.providerSessionId`.
101
+
102
+ To exercise a real two-turn Resume in separate one-shot processes, run:
103
+
104
+ ```bash
105
+ cd source/packages/uni
106
+ UNI_DATA_DIR=/tmp/aimax-uni-resume \
107
+ ./scripts/test-one-shot-resume.sh opencode
108
+ ```
109
+
110
+ Replace `opencode` with `claude-code`, `codex`, or `pi` as needed. The smoke
111
+ script makes two real provider calls, so credentials, network access, and any
112
+ provider charges apply. It verifies that both public results use the same
113
+ logical ID, the provider binding remains stable, all four base Session files
114
+ exist, the second run recalls the first-turn marker, and the transcript grows.
115
+
116
+ For a real replacement-container test, split the phases across containers that
117
+ share the same persistent data mount:
118
+
119
+ ```bash
120
+ # first container
121
+ UNI_RESUME_PHASE=first \
122
+ UNI_SESSION_ID=resume-smoke-1 \
123
+ UNI_DATA_DIR=/data/user1 \
124
+ ./scripts/test-one-shot-resume.sh pi
125
+
126
+ # replacement container, with /data/user1 mounted from the same volume
127
+ UNI_RESUME_PHASE=second \
128
+ UNI_SESSION_ID=resume-smoke-1 \
129
+ UNI_DATA_DIR=/data/user1 \
130
+ ./scripts/test-one-shot-resume.sh pi
131
+ ```
132
+
133
+ The first phase writes a non-sensitive validation checkpoint under
134
+ `<dataDir>/.aimax/resume-smoke/` and does not copy a provider-native ID into
135
+ that checkpoint. Within AIMax-owned Session metadata, the native ID remains
136
+ only in `session.json.runtimeBinding`.
137
+
138
+ By default Uni keeps provider-native state below the same persistent data root:
139
+
140
+ | Runtime | Default native-state path | Controlling environment |
141
+ | --- | --- | --- |
142
+ | Claude Code | `<dataDir>/.aimax/provider-state/claude-code` | `CLAUDE_CONFIG_DIR` |
143
+ | Codex | `<dataDir>/.aimax/provider-state/codex` | `CODEX_HOME` |
144
+ | OpenCode | `<dataDir>/.aimax/provider-state/opencode` | `XDG_DATA_HOME` points at `<dataDir>/.aimax/provider-state` |
145
+ | Pi | `<dataDir>/.aimax/provider-state/pi` | `PI_CODING_AGENT_DIR`; sessions use `PI_CODING_AGENT_SESSION_DIR` |
146
+
147
+ An explicitly supplied provider-state environment variable takes precedence.
148
+ When running in containers, that override must also point at a persistent mount;
149
+ persisting only `session.json` is insufficient for provider-native Resume.
150
+
151
+ Legacy Uni Sessions are migrated only when their transcript consistently names
152
+ one runtime and the matching provider-state tree contains that provider's known
153
+ authoritative session lifecycle record. For Claude Code this means
154
+ `system + subtype:init`; ordinary assistant/result frames, a matching filename,
155
+ or a generic nested `id` are not accepted as proof. When the mapping cannot be
156
+ established, Resume fails before starting the provider instead of silently
157
+ creating a new conversation.
158
+
159
+ Uni uses only the logical Session ID on public event fields. Once a
160
+ provider-native ID is known, exact occurrences are redacted from all public and
161
+ non-binding Session payloads, including assistant text, thinking, tool payloads,
162
+ titles, model labels, errors, diagnostics, stdout, callback, websocket, and
163
+ transcript fields. The native ID remains in
164
+ `session.json.runtimeBinding.providerSessionId`, provider-owned state, and the
165
+ provider Resume call.
166
+
167
+ Provider tool normalization is evidence-based. Codex command and MCP calls are
168
+ paired only from observed start/completion frames, and MCP names use
169
+ `mcp:<server>:<tool>` so remote tools are not mistaken for local file tools. A
170
+ completed-only Codex `file_change` is audited internally as a terminal file
171
+ operation without a synthetic public tool start or transcript tool pair.
172
+ OpenCode completed-only `write` and `edit` terminal events are likewise audited
173
+ when they are successful and contain complete structured local-file input; they
174
+ do not create synthetic transcript tool pairs. Pi
175
+ `toolcall_delta` frames are not assistant text; only Pi `text_delta` and
176
+ `thinking_delta` update those corresponding streams. Because all four aligned
177
+ adapters request native JSON event modes, non-JSON stdout remains raw and is not
178
+ invented as assistant text.
@@ -27,6 +27,11 @@ export type HitlChoiceInput = {
27
27
  /** Allow selecting more than one choice. */
28
28
  multiple?: boolean;
29
29
  choices: HitlChoice[];
30
+ /**
31
+ * Choice IDs that represent approval / continuation for before-tool safety
32
+ * gates. When omitted, defaults to `["approve"]` for backward compatibility.
33
+ */
34
+ approvingChoiceIds?: string[];
30
35
  /** If true the user may also provide free-form text alongside choices. */
31
36
  allowFreeText?: boolean;
32
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hitl.d.ts","sourceRoot":"","sources":["../../../../shared/src/hitl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hitl.d.ts","sourceRoot":"","sources":["../../../../shared/src/hitl.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hitl.js","sourceRoot":"","sources":["../../../../shared/src/hitl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hitl.js","sourceRoot":"","sources":["../../../../shared/src/hitl.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ export { isAgentDiagnosticEvent } from "./agent-progress.js";
5
5
  export { formatTaskForDisplay } from "./task-display.js";
6
6
  export type { AgentCustomProgressEvent, AgentDiagnosticEvent, AgentDiagnosticLevel, AgentDiagnosticScope, AgentProgressEvent, AgentProgressEventBase, AgentTaskItem, AgentTaskStatus, AgentTaskUpdatedEvent, } from "./agent-progress.js";
7
7
  export type { ArtifactRecord, CallbackEventPayload, Channel, RunResultPayload, StreamEnvelope, StreamEventName, } from "./run-events.js";
8
- export type { SessionMetadata, SessionSummary } from "./session.js";
8
+ export type { SessionMetadata, SessionRuntimeBinding, SessionSummary, } from "./session.js";
9
9
  export type { CoreMemoryCaptureConfig, CoreMemoryCompactionRecallConfig, CoreMemoryConfig, CoreMemoryDreamGateConfig, CoreMemoryKnowledgeControllerConfig, CoreMemoryRecallConfig, MemoryCompactionRecallRuntimeState, MemoryRecallRuntimeState, } from "./core-memory.js";
10
10
  export type { CollapseSpan, CompressionLayer, ContextCompactionState, ModelUsageCheckpoint, ReadStateRecord, SessionMemorySnapshot, SessionContextSnapshot, SnipRecord, ToolResultReference, ToolResultBudgetRecord, } from "./context-protocol.js";
11
11
  export { MAX_GOAL_OBJECTIVE_CHARS, MAX_GOAL_CONTINUATIONS_PER_RUN } from "./goal.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../shared/src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACpE,YAAY,EACV,uBAAuB,EACvB,gCAAgC,EAChC,gBAAgB,EAChB,yBAAyB,EACzB,mCAAmC,EACnC,sBAAsB,EACtB,kCAAkC,EAClC,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AACrF,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGxD,OAAO,EACL,aAAa,EACb,cAAc,EACd,aAAa,EACb,UAAU,EACV,eAAe,EACf,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,QAAQ,EACR,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,UAAU,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EACV,WAAW,EACX,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../shared/src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,uBAAuB,EACvB,gCAAgC,EAChC,gBAAgB,EAChB,yBAAyB,EACzB,mCAAmC,EACnC,sBAAsB,EACtB,kCAAkC,EAClC,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AACrF,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGxD,OAAO,EACL,aAAa,EACb,cAAc,EACd,aAAa,EACb,UAAU,EACV,eAAe,EACf,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,QAAQ,EACR,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,UAAU,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EACV,WAAW,EACX,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../shared/src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AA4CzD,sCAAsC;AACtC,OAAO,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAGrF,sBAAsB;AACtB,OAAO,EACL,aAAa,EACb,cAAc,EACd,aAAa,EACb,UAAU,EACV,eAAe,EACf,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,WAAW,CAAC;AAoBnB,yBAAyB;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../shared/src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAgDzD,sCAAsC;AACtC,OAAO,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAGrF,sBAAsB;AACtB,OAAO,EACL,aAAa,EACb,cAAc,EACd,aAAa,EACb,UAAU,EACV,eAAe,EACf,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,WAAW,CAAC;AAoBnB,yBAAyB;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
@@ -82,6 +82,9 @@ export type CallbackEventPayload = (EventEnvelopeBase & {
82
82
  });
83
83
  export type StreamEventName = "start" | "text" | "progress" | "done" | "error" | "hitl" | "title_updated";
84
84
  export type StreamEnvelope = {
85
+ type: "ping";
86
+ messageId: string;
87
+ } | {
85
88
  type: "start";
86
89
  sessionId: string;
87
90
  messageId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"run-events.d.ts","sourceRoot":"","sources":["../../../../shared/src/run-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-events.d.ts","sourceRoot":"","sources":["../../../../shared/src/run-events.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,18 @@ export type SessionSummary = {
17
17
  updatedAt: string;
18
18
  goalStatus?: GoalStatus | null;
19
19
  };
20
+ /**
21
+ * Runtime-owned binding data for a logical AIMax session.
22
+ *
23
+ * The logical session ID remains the public and persisted directory ID. The
24
+ * provider-native ID is deliberately scoped to this binding and is only used
25
+ * when resuming the provider runtime.
26
+ */
27
+ export type SessionRuntimeBinding = {
28
+ engine: "uni";
29
+ runtimeAgent: string;
30
+ providerSessionId?: string;
31
+ };
20
32
  /**
21
33
  * Stable cross-package session metadata record.
22
34
  *
@@ -33,5 +45,6 @@ export type SessionMetadata = {
33
45
  createdAt: string;
34
46
  updatedAt: string;
35
47
  goalStatus?: GoalStatus | null;
48
+ runtimeBinding?: SessionRuntimeBinding;
36
49
  };
37
50
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../shared/src/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAChC,CAAC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../shared/src/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,KAAK,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { ArtifactRecord } from "@gencode/shared";
2
+ export type ArtifactAccumulatorOptions = {
3
+ urlWhitelist?: string[];
4
+ };
5
+ export declare class ArtifactAccumulator {
6
+ private readonly records;
7
+ private readonly indices;
8
+ private readonly urlWhitelist?;
9
+ constructor(options?: ArtifactAccumulatorOptions);
10
+ addOwn(records: ArtifactRecord[]): void;
11
+ addChild(records: ArtifactRecord[] | undefined): void;
12
+ addInferred(records: ArtifactRecord[]): void;
13
+ dump(): ArtifactRecord[];
14
+ private add;
15
+ private shouldCollect;
16
+ }
17
+ //# sourceMappingURL=accumulator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accumulator.d.ts","sourceRoot":"","sources":["../../../../src/artifacts/accumulator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAgBtD,MAAM,MAAM,0BAA0B,GAAG;IACvC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,CAAC;AAEF,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAc;gBAEhC,OAAO,GAAE,0BAA+B;IAOpD,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IAIvC,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,SAAS,GAAG,IAAI;IAMrD,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IAI5C,IAAI,IAAI,cAAc,EAAE;IAIxB,OAAO,CAAC,GAAG;IAqBX,OAAO,CAAC,aAAa;CAOtB"}
@@ -0,0 +1,73 @@
1
+ const ARTIFACT_SOURCE_PRIORITY = {
2
+ Inferred: 1,
3
+ Child: 2,
4
+ Own: 3,
5
+ };
6
+ export class ArtifactAccumulator {
7
+ records = [];
8
+ indices = new Map();
9
+ urlWhitelist;
10
+ constructor(options = {}) {
11
+ const normalizedWhitelist = normalizeUrlWhitelist(options.urlWhitelist);
12
+ this.urlWhitelist = normalizedWhitelist.length > 0
13
+ ? new Set(normalizedWhitelist)
14
+ : undefined;
15
+ }
16
+ addOwn(records) {
17
+ this.add(records, ARTIFACT_SOURCE_PRIORITY.Own);
18
+ }
19
+ addChild(records) {
20
+ if (records && records.length > 0) {
21
+ this.add(records, ARTIFACT_SOURCE_PRIORITY.Child);
22
+ }
23
+ }
24
+ addInferred(records) {
25
+ this.add(records, ARTIFACT_SOURCE_PRIORITY.Inferred);
26
+ }
27
+ dump() {
28
+ return this.records.map((entry) => entry.record);
29
+ }
30
+ add(records, priority) {
31
+ for (const record of records) {
32
+ if (!this.shouldCollect(record)) {
33
+ continue;
34
+ }
35
+ const key = artifactKey(record);
36
+ const existingIndex = this.indices.get(key);
37
+ if (existingIndex !== undefined) {
38
+ const existing = this.records[existingIndex];
39
+ if (existing && priority > existing.priority) {
40
+ this.records[existingIndex] = { record, priority };
41
+ }
42
+ continue;
43
+ }
44
+ this.indices.set(key, this.records.length);
45
+ this.records.push({ record, priority });
46
+ }
47
+ }
48
+ shouldCollect(record) {
49
+ if (record.kind !== "url" || !this.urlWhitelist) {
50
+ return true;
51
+ }
52
+ const hostname = hostnameFromUrl(record.url);
53
+ return hostname ? this.urlWhitelist.has(hostname) : false;
54
+ }
55
+ }
56
+ function artifactKey(record) {
57
+ return record.kind === "file" ? `file:${record.file}` : `url:${record.url}`;
58
+ }
59
+ function normalizeUrlWhitelist(values) {
60
+ if (!values) {
61
+ return [];
62
+ }
63
+ return values.map((value) => value.trim().toLowerCase()).filter(Boolean);
64
+ }
65
+ function hostnameFromUrl(value) {
66
+ try {
67
+ return new URL(value).hostname.trim().toLowerCase() || null;
68
+ }
69
+ catch {
70
+ return null;
71
+ }
72
+ }
73
+ //# sourceMappingURL=accumulator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accumulator.js","sourceRoot":"","sources":["../../../../src/artifacts/accumulator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { ArtifactRecord } from "@gencode/shared";
2
+ export declare const ARTIFACTS_START_TAG = "<aimax_artifacts>";
3
+ export declare const ARTIFACTS_END_TAG = "</aimax_artifacts>";
4
+ export type ArtifactParseResult = {
5
+ cleanedText: string;
6
+ artifacts: ArtifactRecord[];
7
+ warnings: string[];
8
+ };
9
+ export type ArtifactParseOptions = {
10
+ now?: () => Date;
11
+ workspaceDir?: string;
12
+ };
13
+ export declare function parseAndStripArtifacts(text: string, options?: ArtifactParseOptions): ArtifactParseResult;
14
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/artifacts/parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AACvD,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CA+CrB"}
@@ -0,0 +1,151 @@
1
+ import path from "node:path";
2
+ export const ARTIFACTS_START_TAG = "<aimax_artifacts>";
3
+ export const ARTIFACTS_END_TAG = "</aimax_artifacts>";
4
+ export function parseAndStripArtifacts(text, options = {}) {
5
+ const warnings = [];
6
+ if (!text.includes(ARTIFACTS_START_TAG)) {
7
+ return { cleanedText: text, artifacts: [], warnings };
8
+ }
9
+ let cleanedText = text;
10
+ let timestamp;
11
+ const artifacts = [];
12
+ while (true) {
13
+ const startIndex = cleanedText.indexOf(ARTIFACTS_START_TAG);
14
+ if (startIndex === -1) {
15
+ break;
16
+ }
17
+ const endIndex = cleanedText.indexOf(ARTIFACTS_END_TAG, startIndex + ARTIFACTS_START_TAG.length);
18
+ if (endIndex === -1) {
19
+ warnings.push("Artifacts block is missing the closing tag; stripping the malformed block");
20
+ cleanedText = cleanedText.slice(0, startIndex).trimEnd();
21
+ break;
22
+ }
23
+ const jsonText = cleanedText
24
+ .slice(startIndex + ARTIFACTS_START_TAG.length, endIndex)
25
+ .trim();
26
+ if (jsonText) {
27
+ timestamp ??= (options.now ?? (() => new Date()))().toISOString();
28
+ artifacts.push(...parseArtifactsJson(jsonText, {
29
+ warnings,
30
+ timestamp,
31
+ workspaceDir: options.workspaceDir,
32
+ }));
33
+ }
34
+ const before = cleanedText.slice(0, startIndex).trimEnd();
35
+ const after = cleanedText.slice(endIndex + ARTIFACTS_END_TAG.length).trimStart();
36
+ cleanedText = [before, after]
37
+ .filter((part) => part.length > 0)
38
+ .join("\n")
39
+ .trimEnd();
40
+ }
41
+ return { cleanedText, artifacts, warnings };
42
+ }
43
+ function parseArtifactsJson(jsonText, params) {
44
+ const { warnings, timestamp, workspaceDir } = params;
45
+ let parsed;
46
+ try {
47
+ parsed = JSON.parse(jsonText);
48
+ }
49
+ catch (error) {
50
+ warnings.push(`Failed to parse artifacts JSON: ${error instanceof Error ? error.message : String(error)}`);
51
+ return [];
52
+ }
53
+ if (!Array.isArray(parsed)) {
54
+ warnings.push("Artifacts block content is not a JSON array");
55
+ return [];
56
+ }
57
+ const artifacts = [];
58
+ for (let index = 0; index < parsed.length; index += 1) {
59
+ const item = parsed[index];
60
+ if (!item || typeof item !== "object") {
61
+ warnings.push(`Artifact at index ${index} is not an object, skipping`);
62
+ continue;
63
+ }
64
+ const artifact = normalizeArtifact(item, {
65
+ index,
66
+ warnings,
67
+ timestamp,
68
+ workspaceDir,
69
+ });
70
+ if (artifact) {
71
+ artifacts.push(artifact);
72
+ }
73
+ }
74
+ return artifacts;
75
+ }
76
+ function normalizeArtifact(raw, params) {
77
+ const { index, warnings, timestamp, workspaceDir } = params;
78
+ const kind = raw.kind;
79
+ if (kind !== "file" && kind !== "url") {
80
+ warnings.push(`Artifact at index ${index}: invalid kind "${String(kind)}", expected "file" or "url", skipping`);
81
+ return null;
82
+ }
83
+ if (kind === "file") {
84
+ const rawFile = typeof raw.file === "string" ? raw.file.trim() : "";
85
+ if (!rawFile) {
86
+ warnings.push(`Artifact at index ${index}: kind=file but missing file path, skipping`);
87
+ return null;
88
+ }
89
+ const file = normalizeFilePath(rawFile, workspaceDir);
90
+ if (!file) {
91
+ warnings.push(`Artifact at index ${index}: file path must be absolute, skipping`);
92
+ return null;
93
+ }
94
+ return {
95
+ kind: "file",
96
+ file,
97
+ timestamp,
98
+ label: normalizeLabel(raw.label, path.basename(file) || "File artifact", index, warnings),
99
+ };
100
+ }
101
+ const url = typeof raw.url === "string" ? raw.url.trim() : "";
102
+ if (!url) {
103
+ warnings.push(`Artifact at index ${index}: kind=url but missing url, skipping`);
104
+ return null;
105
+ }
106
+ const fallbackLabel = hostFromUrl(url) ?? "URL artifact";
107
+ if (!isValidUrl(url)) {
108
+ warnings.push(`Artifact at index ${index}: url is invalid, skipping`);
109
+ return null;
110
+ }
111
+ return {
112
+ kind: "url",
113
+ url,
114
+ timestamp,
115
+ label: normalizeLabel(raw.label, fallbackLabel, index, warnings),
116
+ };
117
+ }
118
+ function normalizeLabel(raw, fallback, index, warnings) {
119
+ if (typeof raw === "string" && raw.trim()) {
120
+ return raw.trim();
121
+ }
122
+ warnings.push(`Artifact at index ${index}: missing or empty label, using fallback label`);
123
+ return fallback;
124
+ }
125
+ function normalizeFilePath(file, workspaceDir) {
126
+ if (path.isAbsolute(file)) {
127
+ return path.normalize(file);
128
+ }
129
+ if (!workspaceDir?.trim()) {
130
+ return null;
131
+ }
132
+ return path.normalize(path.join(workspaceDir, file));
133
+ }
134
+ function isValidUrl(value) {
135
+ try {
136
+ const parsed = new URL(value);
137
+ return Boolean(parsed.protocol && parsed.host);
138
+ }
139
+ catch {
140
+ return false;
141
+ }
142
+ }
143
+ function hostFromUrl(value) {
144
+ try {
145
+ return new URL(value).host || undefined;
146
+ }
147
+ catch {
148
+ return undefined;
149
+ }
150
+ }
151
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/artifacts/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Incrementally mirrors parseAndStripArtifacts' whitespace semantics: the
3
+ * declaration and adjacent whitespace are withheld until it is known whether
4
+ * visible text follows the block.
5
+ */
6
+ export declare class ArtifactStreamFilter {
7
+ private buffer;
8
+ private suppressing;
9
+ private hasVisibleContent;
10
+ private boundaryPending;
11
+ push(delta: string): string;
12
+ finish(): string;
13
+ reset(): void;
14
+ private emitVisible;
15
+ }
16
+ //# sourceMappingURL=stream-filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-filter.d.ts","sourceRoot":"","sources":["../../../../src/artifacts/stream-filter.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,eAAe,CAAS;IAEhC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IA0C3B,MAAM,IAAI,MAAM;IAahB,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,WAAW;CAcpB"}