@agentex/agent 0.0.19 → 0.0.21

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 (39) hide show
  1. package/README.md +59 -5
  2. package/dist/index.d.ts +2 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/providers/claude/execute.d.ts.map +1 -1
  7. package/dist/providers/claude/execute.js +16 -7
  8. package/dist/providers/claude/execute.js.map +1 -1
  9. package/dist/providers/claude/mcp.d.ts +28 -0
  10. package/dist/providers/claude/mcp.d.ts.map +1 -0
  11. package/dist/providers/claude/mcp.js +82 -0
  12. package/dist/providers/claude/mcp.js.map +1 -0
  13. package/dist/providers/claude/parse.d.ts +12 -1
  14. package/dist/providers/claude/parse.d.ts.map +1 -1
  15. package/dist/providers/claude/parse.js +76 -2
  16. package/dist/providers/claude/parse.js.map +1 -1
  17. package/dist/providers/claude/session.d.ts +4 -1
  18. package/dist/providers/claude/session.d.ts.map +1 -1
  19. package/dist/providers/claude/session.js +24 -9
  20. package/dist/providers/claude/session.js.map +1 -1
  21. package/dist/providers/codex/session.d.ts.map +1 -1
  22. package/dist/providers/codex/session.js +12 -0
  23. package/dist/providers/codex/session.js.map +1 -1
  24. package/dist/providers/codex/transcript.d.ts +14 -0
  25. package/dist/providers/codex/transcript.d.ts.map +1 -1
  26. package/dist/providers/codex/transcript.js +15 -1
  27. package/dist/providers/codex/transcript.js.map +1 -1
  28. package/dist/types.d.ts +72 -2
  29. package/dist/types.d.ts.map +1 -1
  30. package/dist/types.js.map +1 -1
  31. package/dist/utils/instructions.d.ts +140 -0
  32. package/dist/utils/instructions.d.ts.map +1 -1
  33. package/dist/utils/instructions.js +248 -0
  34. package/dist/utils/instructions.js.map +1 -1
  35. package/dist/utils/runtime-homes.d.ts +4 -1
  36. package/dist/utils/runtime-homes.d.ts.map +1 -1
  37. package/dist/utils/runtime-homes.js +14 -10
  38. package/dist/utils/runtime-homes.js.map +1 -1
  39. package/package.json +1 -1
package/README.md CHANGED
@@ -158,17 +158,34 @@ interface ProviderConfig {
158
158
  skipPermissions?: boolean;
159
159
  skillDirs?: string[];
160
160
  instructionsFile?: string;
161
- mcpServers?: McpServerConfig[];
162
- extraArgs?: string[];
161
+ mcpServers?: McpServerConfig[]; // stdio | http | sse — staged as a 0600 file, passed via --mcp-config
162
+ strictMcpConfig?: boolean; // claude: --strict-mcp-config — MCP surface is exactly what you attach
163
+ allowedTools?: string[]; // claude: --allowed-tools (patterns verbatim; codex ignores)
164
+ disallowedTools?: string[]; // claude: --disallowed-tools (deny wins; codex ignores)
165
+ includePartialMessages?: boolean; // claude: emit assistant_delta/thinking_delta typewriter events
166
+ extraArgs?: string[]; // always appended LAST — hosts can override any generated flag
163
167
  search?: boolean;
164
168
  sandbox?: boolean;
165
169
  thinking?: string;
166
170
  mode?: string; // cursor: --mode <mode>; not for plan mode
171
+ modeId?: string; // select an operating mode from listModes() (codex/ACP)
167
172
  planMode?: boolean; // read-only "plan" mode (claude/codex)
168
173
  workspace?: { strategy: "worktree"; baseBranch?: string; branchName?: string };
169
174
  }
170
175
  ```
171
176
 
177
+ MCP servers attach via a generated config file, never argv — http `headers` can
178
+ carry bearer tokens and argv is world-readable via `ps`:
179
+
180
+ ```typescript
181
+ config.mcpServers = [
182
+ { name: "files", command: "node", args: ["mcp-files.js"] }, // stdio (default)
183
+ { name: "orchestrator", type: "http", url: "http://localhost:4100/mcp", // http/sse
184
+ headers: { Authorization: "Bearer …" } },
185
+ ];
186
+ config.strictMcpConfig = true; // nothing else leaks in
187
+ ```
188
+
172
189
  ## Execution Result
173
190
 
174
191
  ```typescript
@@ -239,7 +256,7 @@ interface BaseStreamEventFields {
239
256
  providerType: string; // "claude" | "codex" | "cursor" | ...
240
257
  sessionId: string | null; // Stable session/thread ID across turns
241
258
  messageId: string | null; // Provider-native message ID
242
- eventId: string | null; // Per-event-line ID (Claude only Codex = null)
259
+ eventId: string | null; // Per-event ID (Claude: native uuid; Codex: synthetic — see below)
243
260
  turnId: string | null; // Native turn ID (Codex v2 app-server only; NDJSON & Claude = null)
244
261
  parentToolCallId: string | null; // Sub-agent origin — same namespace as tool_call.toolCallId (Claude only)
245
262
  raw: Record<string, unknown>; // Original provider event verbatim
@@ -250,7 +267,9 @@ Variants:
250
267
 
251
268
  - `system` — Session init (`subtype`, `model`, `cwd`, `tools`, `permissionMode`). Claude init events also include `slashCommands?: string[]` and `skills?: string[]` when Claude Code reports them.
252
269
  - `assistant` — Text output from the agent (`text`)
270
+ - `assistant_delta` — Incremental assistant text for typewriter UIs (`text`, `blockIndex`). Opt-in via `config.includePartialMessages` (claude). Purely additive: the consolidated `assistant` event still fires when the block completes, with a matching `messageId` so you can reconcile optimistic delta text against the durable event.
253
271
  - `thinking` — Agent's internal reasoning (`text`)
272
+ - `thinking_delta` — Incremental thinking text (`text`, `blockIndex`), same flag, best-effort. On current Claude versions these deltas are the *only* place thinking prose appears — the consolidated thinking block is withheld (signature-only). Treat as advisory UI sugar.
254
273
  - `tool_call` — Agent invoked a tool (`toolCallId: string | null`, `name`, `input`)
255
274
  - `unknown` — Fallback for unrecognized wire events (`subtype` = the provider's `type` field). Forward-compat access to new CLI events via `raw` without a library update.
256
275
  - `tool_result` — Tool returned a result (`toolCallId: string | null`, `toolName: string | null`, `content`, `isError`, `exitCode: number | null`). `toolName` mirrors the matching `tool_call.name` (correlated for you), so you don't need your own `toolCallId → name` cache; null when no preceding `tool_call` was seen on the stream.
@@ -268,7 +287,7 @@ Verified live against `claude 2.1.116` and `codex-cli 0.122.0` (2026-04-21). ACP
268
287
  | ---------------------- | -------------------------------------------------- | ------------------------------------------------ |
269
288
  | `sessionId` | `session_id` (UUID, stable across turns + resume) | `thread_id` (UUIDv7, emitted once on `thread.started`, tracked across lines) |
270
289
  | `messageId` | `message.id` (Anthropic API message, e.g. `msg_*`) | v2 app-server: globally unique (`msg_*`, `rs_*`, `call_*`). NDJSON: `item_N` — **turn-local, not globally unique** |
271
- | `eventId` | Top-level per-line `uuid` | **null** Codex doesn't emit a per-event ID |
290
+ | `eventId` | Top-level per-line `uuid` | Synthetic where derivable (see below); else null |
272
291
  | `turnId` | **null** — Claude doesn't model turns | v2 app-server: native UUIDv7 from `params.turnId`. NDJSON: **null** — no turn id in legacy format |
273
292
  | `parentToolCallId` | `parent_tool_use_id` (set for sub-agent messages) | **null** — not emitted |
274
293
  | Tool correlation | `tool_use.id` (`toolu_*`) ↔ `tool_result.tool_use_id`; the library stamps `tool_result.toolName` from the matching call | `item.id` reappears on the same item's `item.completed`; `toolName` set directly from the item type |
@@ -295,7 +314,11 @@ On `ExecutionResult`:
295
314
 
296
315
  For Claude, `eventId` is a safe unique key for a per-event row. `messageId` is a safe key for "one logical assistant message" — multiple event lines can share it when the message contains both thinking and tool_use blocks.
297
316
 
298
- For Codex, `item.id` values like `item_0`, `item_1` **reset every turn** (including on `codex exec resume`). Do not use them as unique keys on their own. Use `(sessionId, turn_index, messageId)` or mint your own UUID at insert time. There is no `eventId` — Codex doesn't emit one.
317
+ For Codex, `item.id` values like `item_0`, `item_1` **reset every turn** (including on `codex exec resume`). Do not use them as unique keys on their own. Codex emits no native per-event uuid, so agentex synthesizes documented, replay-stable identities where the components exist:
318
+
319
+ - **Live v2 session events:** `eventId = codex:<threadId>:<turnId>:<itemId>:<eventType>` when thread + turn + item are all known; null otherwise. This is an **upsert key**, not a uniqueness guarantee — repeated updates to the same item (e.g. streaming text) intentionally share an id; the last write wins.
320
+ - **Transcript reads** (`transcript.read()` / `readCodexTranscript`): `eventId = codex:<rolloutSessionId>:<lineStartByteOffset>` — deterministic across reads of the same file, so transcript replays are idempotent.
321
+ - The two schemes intentionally **do not match each other** (the live and on-disk wire vocabularies differ — `command_execution` vs `exec_command`). Cross-shape dedup between a live capture and a transcript replay remains a host concern.
299
322
 
300
323
  When in doubt, `raw` is the verbatim provider event — parse it yourself for anything the normalized fields don't cover.
301
324
 
@@ -670,6 +693,33 @@ await removeSkills(skillDirs, { location: "workspace", cwd: process.cwd() });
670
693
 
671
694
  Channels and locations follow the emerging `.agents/skills/` + `.claude/skills/` convention — see the `SkillRuntime`, `SkillLocation`, and `SkillChannel` types.
672
695
 
696
+ ### Install Instruction Files
697
+
698
+ `installInstructions` is the instruction-file twin of `installSkills`: it drops an orientation brief into the right per-runtime file(s), merging into a **managed region** so any content the user wrote outside the markers is preserved.
699
+
700
+ ```typescript
701
+ import { installInstructions, removeInstructions } from "@agentex/agent";
702
+
703
+ // Workspace (repo-root) install — the common case.
704
+ // Writes the brief into {cwd}/CLAUDE.md and {cwd}/AGENTS.md (deduped by filename).
705
+ await installInstructions(brief, {
706
+ location: "workspace", // or "global"
707
+ cwd: process.cwd(), // required for workspace installs
708
+ includeNativeFiles: false, // true also writes Gemini's native GEMINI.md
709
+ managed: true, // wrap in markers + merge (default); false overwrites the file
710
+ managedTag: "agentex", // marker tag → <!-- agentex:managed:start -->
711
+ });
712
+
713
+ // Global install — per-runtime home files (~/.claude/CLAUDE.md, ~/.codex/AGENTS.md,
714
+ // ~/.gemini/GEMINI.md, ~/.config/opencode/AGENTS.md, ~/.pi/AGENTS.md).
715
+ await installInstructions(brief, { location: "global" });
716
+
717
+ // Remove only the managed region; user-authored content (and user-owned files) survive.
718
+ await removeInstructions({ location: "workspace", cwd: process.cwd() });
719
+ ```
720
+
721
+ Every runtime except Claude reads `AGENTS.md`; Claude reads `CLAUDE.md`. Gemini reads `GEMINI.md` by default (only reads `AGENTS.md` when configured), so it gets a native escape hatch via `includeNativeFiles`. Re-installing unchanged content is idempotent (reported as `skipped`). Use `resolveInstructionTargets(opts)` to see which files *would* be written without touching disk, and `upsertManagedBlock` / `stripManagedBlock` for the low-level merge.
722
+
673
723
  ### Discover Slash-Invokable Skills
674
724
 
675
725
  Use `discoverSkillCommands(...)` to parse local `SKILL.md` files into UI-ready descriptors. It reads frontmatter fields such as `description`, `argument-hint`, and `user-invocable`; if no description is present, it falls back to the first non-empty body paragraph.
@@ -878,6 +928,10 @@ registerProvider(myProvider);
878
928
  - `renderTemplate(template, ctx)` — `{{var}}` interpolation.
879
929
  - `redactEnvForLogs(env)` — redact sensitive values before logging.
880
930
  - `resolveInstructions(path?)` — read an instructions file, or `null` if no path.
931
+ - `installInstructions(content, opts?)` / `removeInstructions(opts?)` — write/remove a managed instruction brief across per-runtime files (`CLAUDE.md` / `AGENTS.md` / native `GEMINI.md`), workspace or global.
932
+ - `resolveInstructionTargets(opts?)` — list which instruction files would be written, without touching disk.
933
+ - `upsertManagedBlock(existing, content, opts?)` / `stripManagedBlock(existing, opts?)` — low-level managed-region merge/strip (preserves content outside the markers).
934
+ - `getDefaultRuntimeHome(runtime, homeDir?)` — pass `homeDir` to resolve against a sandboxed base instead of `os.homedir()`.
881
935
  - `parseAskUserQuestion(req)` — extract structured question/option data from a `UserInputRequest`.
882
936
  - `parseExitPlanMode(req)` — extract the proposed plan text from an `ExitPlanMode` permission request (Claude plan mode).
883
937
 
package/dist/index.d.ts CHANGED
@@ -11,7 +11,8 @@ export { redactEnvForLogs } from "./utils/env.js";
11
11
  export { parseAskUserQuestion } from "./utils/ask-user-question.js";
12
12
  export { parseExitPlanMode } from "./utils/exit-plan-mode.js";
13
13
  export { aggregateUsage } from "./types.js";
14
- export { resolveInstructions } from "./utils/instructions.js";
14
+ export { resolveInstructions, installInstructions, removeInstructions, resolveInstructionTargets, upsertManagedBlock, stripManagedBlock, } from "./utils/instructions.js";
15
+ export type { InstallInstructionsOptions, InstructionStatus, InstructionInstallEntry, InstructionInstallResult, InstructionTarget, RemoveInstructionsOptions, InstructionRemoveStatus, InstructionRemoveEntry, InstructionRemoveResult, ManagedBlockOptions, } from "./utils/instructions.js";
15
16
  export { getRuntimeHomeEnvVar, getDefaultRuntimeHome } from "./utils/runtime-homes.js";
16
17
  export { findBinary, ensureCommandResolvable, clearBinaryCache } from "./utils/binary.js";
17
18
  export type { ResolvedBinary } from "./utils/binary.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,7 +8,7 @@ export { redactEnvForLogs } from "./utils/env.js";
8
8
  export { parseAskUserQuestion } from "./utils/ask-user-question.js";
9
9
  export { parseExitPlanMode } from "./utils/exit-plan-mode.js";
10
10
  export { aggregateUsage } from "./types.js";
11
- export { resolveInstructions } from "./utils/instructions.js";
11
+ export { resolveInstructions, installInstructions, removeInstructions, resolveInstructionTargets, upsertManagedBlock, stripManagedBlock, } from "./utils/instructions.js";
12
12
  export { getRuntimeHomeEnvVar, getDefaultRuntimeHome } from "./utils/runtime-homes.js";
13
13
  export { findBinary, ensureCommandResolvable, clearBinaryCache } from "./utils/binary.js";
14
14
  export { detectAuth, resolveAuthForProvider, clearAuthCache, hasSubscription, hasApiKey, hasBedrock, isLoggedIn, loginCommandFor, } from "./utils/auth.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1F,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,SAAS,EACT,UAAU,EACV,UAAU,EACV,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,uBAAuB,EACvB,+BAA+B,EAC/B,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAU1C,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AAUzC,SAAS;AACT,OAAO,EACL,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,wBAAwB,GACzB,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAajC,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1F,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,SAAS,EACT,UAAU,EACV,UAAU,EACV,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,uBAAuB,EACvB,+BAA+B,EAC/B,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAU1C,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AAUzC,SAAS;AACT,OAAO,EACL,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,wBAAwB,GACzB,MAAM,2BAA2B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/execute.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAYxE,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAoQ3F"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/execute.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAaxE,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CA6Q3F"}
@@ -4,6 +4,7 @@ import { buildEnv, ensurePathInEnv } from "../../utils/env.js";
4
4
  import { runChildProcess, deriveErrorCode } from "../../utils/process.js";
5
5
  import { detectAuth } from "../../utils/auth.js";
6
6
  import { buildSkillsDir, cleanupSkillsDir } from "../../utils/skills.js";
7
+ import { claudeFeatureArgs, cleanupMcpConfig, stageMcpConfig } from "./mcp.js";
7
8
  import { createToolNameTracker } from "../../utils/tool-names.js";
8
9
  import { uuidv7 } from "../../utils/uuid.js";
9
10
  import { prepareWorkspace } from "../../utils/workspace.js";
@@ -67,6 +68,13 @@ export async function executeClaudeProvider(ctx) {
67
68
  // Skill injection failure is non-fatal
68
69
  }
69
70
  }
71
+ // 3.5 Stage MCP config — attached via `--mcp-config <file>` (mode 0600),
72
+ // never argv: http server headers can carry bearer tokens and argv is
73
+ // world-readable via `ps`.
74
+ let mcpConfigPath = null;
75
+ if (config.mcpServers && config.mcpServers.length > 0) {
76
+ mcpConfigPath = await stageMcpConfig(config.mcpServers);
77
+ }
70
78
  // 4. Build args
71
79
  const buildArgs = (resumeSessionId) => {
72
80
  const args = [...resolvedBinary.prefixArgs, "--print", "-", "--output-format", "stream-json", "--verbose"];
@@ -89,11 +97,8 @@ export async function executeClaudeProvider(ctx) {
89
97
  args.push("--append-system-prompt-file", config.instructionsFile);
90
98
  if (skillsDir)
91
99
  args.push("--add-dir", skillsDir);
92
- if (config.mcpServers) {
93
- for (const mcp of config.mcpServers) {
94
- args.push("--mcp-server", mcp.name, "--", mcp.command, ...(mcp.args ?? []));
95
- }
96
- }
100
+ args.push(...claudeFeatureArgs(config, mcpConfigPath));
101
+ // extraArgs stay LAST so hosts can override any generated flag.
97
102
  if (config.extraArgs)
98
103
  args.push(...config.extraArgs);
99
104
  return args;
@@ -119,6 +124,9 @@ export async function executeClaudeProvider(ctx) {
119
124
  // Correlates tool_call → tool_result so emitted tool_result events carry
120
125
  // toolName. One tracker per attempt (a retry restarts the stream).
121
126
  const trackToolName = createToolNameTracker();
127
+ // Tracks the owning message id across --include-partial-messages stream
128
+ // lines so deltas reconcile with their consolidated assistant event.
129
+ const partialCtx = { messageId: null };
122
130
  ctx.onLifecycle?.({ phase: "spawning" });
123
131
  const proc = await runChildProcess({
124
132
  runId,
@@ -152,7 +160,7 @@ export async function executeClaudeProvider(ctx) {
152
160
  const trimmed = line.trim();
153
161
  if (!trimmed)
154
162
  continue;
155
- for (const event of parseStreamLine(trimmed)) {
163
+ for (const event of parseStreamLine(trimmed, partialCtx)) {
156
164
  try {
157
165
  await ctx.onEvent(trackToolName(event));
158
166
  }
@@ -268,10 +276,11 @@ export async function executeClaudeProvider(ctx) {
268
276
  };
269
277
  }
270
278
  finally {
271
- // 10. Clean up skills dir
279
+ // 10. Clean up staged dirs/files
272
280
  if (skillsDir) {
273
281
  await cleanupSkillsDir(skillsDir);
274
282
  }
283
+ await cleanupMcpConfig(mcpConfigPath);
275
284
  }
276
285
  }
277
286
  //# sourceMappingURL=execute.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/providers/claude/execute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/providers/claude/execute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { McpServerConfig, ProviderConfig } from "../../types.js";
2
+ /**
3
+ * Map agentex `McpServerConfig[]` into Claude's `--mcp-config` JSON shape:
4
+ * `{ "mcpServers": { "<name>": { … } } }`.
5
+ *
6
+ * stdio servers (the default arm) keep `command`/`args`/`env`; http/sse servers
7
+ * carry `url` (+ optional `headers`).
8
+ */
9
+ export declare function buildMcpConfigJson(servers: McpServerConfig[]): {
10
+ mcpServers: Record<string, Record<string, unknown>>;
11
+ };
12
+ /**
13
+ * Stage the MCP config as a JSON file (mode 0600) in a fresh `agentex-mcp-*`
14
+ * temp dir and return the file path. HTTP server `headers` can carry bearer
15
+ * tokens, so the config never goes through argv — argv is world-readable via
16
+ * `ps`. Clean up with {@link cleanupMcpConfig} when the run/session ends.
17
+ */
18
+ export declare function stageMcpConfig(servers: McpServerConfig[]): Promise<string>;
19
+ /** Remove a staged MCP config (and its temp dir). Idempotent; null-safe. */
20
+ export declare function cleanupMcpConfig(filePath: string | null): Promise<void>;
21
+ /**
22
+ * The argv tail for Claude's MCP + tool-filtering + partial-message features.
23
+ * Shared by the execute and session arg builders so both stay in lockstep, and
24
+ * exported so tests can snapshot the exact argv. Callers append
25
+ * `config.extraArgs` AFTER this (the host-override invariant).
26
+ */
27
+ export declare function claudeFeatureArgs(config: ProviderConfig, mcpConfigPath: string | null): string[];
28
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/mcp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEtE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG;IAC9D,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrD,CAmBA;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAOhF;AAED,4EAA4E;AAC5E,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,EAAE,CAehG"}
@@ -0,0 +1,82 @@
1
+ import * as fs from "node:fs/promises";
2
+ import * as os from "node:os";
3
+ import * as path from "node:path";
4
+ /**
5
+ * Map agentex `McpServerConfig[]` into Claude's `--mcp-config` JSON shape:
6
+ * `{ "mcpServers": { "<name>": { … } } }`.
7
+ *
8
+ * stdio servers (the default arm) keep `command`/`args`/`env`; http/sse servers
9
+ * carry `url` (+ optional `headers`).
10
+ */
11
+ export function buildMcpConfigJson(servers) {
12
+ const mcpServers = {};
13
+ for (const s of servers) {
14
+ if ("url" in s) {
15
+ mcpServers[s.name] = {
16
+ type: s.type,
17
+ url: s.url,
18
+ ...(s.headers ? { headers: s.headers } : {}),
19
+ };
20
+ }
21
+ else {
22
+ mcpServers[s.name] = {
23
+ type: "stdio",
24
+ command: s.command,
25
+ ...(s.args ? { args: s.args } : {}),
26
+ ...(s.env ? { env: s.env } : {}),
27
+ };
28
+ }
29
+ }
30
+ return { mcpServers };
31
+ }
32
+ /**
33
+ * Stage the MCP config as a JSON file (mode 0600) in a fresh `agentex-mcp-*`
34
+ * temp dir and return the file path. HTTP server `headers` can carry bearer
35
+ * tokens, so the config never goes through argv — argv is world-readable via
36
+ * `ps`. Clean up with {@link cleanupMcpConfig} when the run/session ends.
37
+ */
38
+ export async function stageMcpConfig(servers) {
39
+ const dir = await fs.mkdtemp(path.join(os.tmpdir(), "agentex-mcp-"));
40
+ const file = path.join(dir, "mcp-config.json");
41
+ await fs.writeFile(file, JSON.stringify(buildMcpConfigJson(servers), null, 2), {
42
+ mode: 0o600,
43
+ });
44
+ return file;
45
+ }
46
+ /** Remove a staged MCP config (and its temp dir). Idempotent; null-safe. */
47
+ export async function cleanupMcpConfig(filePath) {
48
+ if (!filePath)
49
+ return;
50
+ try {
51
+ await fs.rm(path.dirname(filePath), { recursive: true, force: true });
52
+ }
53
+ catch {
54
+ /* already gone */
55
+ }
56
+ }
57
+ /**
58
+ * The argv tail for Claude's MCP + tool-filtering + partial-message features.
59
+ * Shared by the execute and session arg builders so both stay in lockstep, and
60
+ * exported so tests can snapshot the exact argv. Callers append
61
+ * `config.extraArgs` AFTER this (the host-override invariant).
62
+ */
63
+ export function claudeFeatureArgs(config, mcpConfigPath) {
64
+ const args = [];
65
+ if (mcpConfigPath)
66
+ args.push("--mcp-config", mcpConfigPath);
67
+ // Strict works with or without an attached config: strict + no config means
68
+ // "no MCP at all", which embedding hosts use to block ambient .mcp.json /
69
+ // user-scope servers from leaking into a product-controlled session.
70
+ if (config.strictMcpConfig)
71
+ args.push("--strict-mcp-config");
72
+ if (config.allowedTools && config.allowedTools.length > 0) {
73
+ args.push("--allowed-tools", config.allowedTools.join(","));
74
+ }
75
+ if (config.disallowedTools && config.disallowedTools.length > 0) {
76
+ args.push("--disallowed-tools", config.disallowedTools.join(","));
77
+ }
78
+ if (config.includePartialMessages)
79
+ args.push("--include-partial-messages");
80
+ return args;
81
+ }
82
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/providers/claude/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA0B;IAG3D,MAAM,UAAU,GAA4C,EAAE,CAAC;IAC/D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;gBACnB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;gBACnB,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA0B;IAC7D,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC/C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QAC7E,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAuB;IAC5D,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,kBAAkB;IACpB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAsB,EAAE,aAA4B;IACpF,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,aAAa;QAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAC5D,4EAA4E;IAC5E,0EAA0E;IAC1E,qEAAqE;IACrE,IAAI,MAAM,CAAC,eAAe;QAAE,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC7D,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,MAAM,CAAC,sBAAsB;QAAE,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC3E,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -29,7 +29,18 @@ export interface ClaudeParsedResult {
29
29
  }
30
30
  export declare function parseClaudeStreamJson(stdout: string): ClaudeParsedResult;
31
31
  export declare function toStreamEvents(stdout: string): StreamEvent[];
32
- export declare function parseStreamLine(line: string): StreamEvent[];
32
+ /**
33
+ * Cross-line context for `--include-partial-messages` streams. The owning
34
+ * message id arrives only on the `message_start` stream_event, so the caller
35
+ * owns one of these per stream and threads it through every `parseStreamLine`
36
+ * call — deltas are then stamped with the `messageId` of the message they
37
+ * belong to, matching the eventual consolidated `assistant` event so hosts can
38
+ * reconcile optimistic delta text against the durable event.
39
+ */
40
+ export interface PartialStreamContext {
41
+ messageId: string | null;
42
+ }
43
+ export declare function parseStreamLine(line: string, partial?: PartialStreamContext): StreamEvent[];
33
44
  export declare function isClaudeUnknownSessionError(stdout: string, stderr: string): boolean;
34
45
  export declare function isClaudeAuthRequired(stdout: string, stderr: string): boolean;
35
46
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAElB,UAAU,EACV,aAAa,EACb,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAIxB;;;;iBAIiB;AACjB,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;IAC9C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,kEAAkE;IAClE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC5C;AA2HD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAqGxE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,CAQ5D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CA+J3D;AAeD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnF;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE5E;AA2BD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAC5E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,GAAG,IAAI,CAcP;AAGD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,WAAW,GACjB;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAUrD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAcxD"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAElB,UAAU,EACV,aAAa,EACb,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAIxB;;;;iBAIiB;AACjB,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;IAC9C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,kEAAkE;IAClE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC5C;AA2HD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAqGxE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,CAS5D;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAkFD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,WAAW,EAAE,CAuK3F;AAeD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnF;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE5E;AA2BD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAC5E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,GAAG,IAAI,CAcP;AAGD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,WAAW,GACjB;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAUrD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAcxD"}
@@ -220,19 +220,93 @@ export function parseClaudeStreamJson(stdout) {
220
220
  }
221
221
  export function toStreamEvents(stdout) {
222
222
  const events = [];
223
+ const partial = { messageId: null };
223
224
  for (const rawLine of stdout.split(/\r?\n/)) {
224
225
  const line = rawLine.trim();
225
226
  if (!line)
226
227
  continue;
227
- events.push(...parseStreamLine(line));
228
+ events.push(...parseStreamLine(line, partial));
228
229
  }
229
230
  return events;
230
231
  }
231
- export function parseStreamLine(line) {
232
+ /**
233
+ * Map a `stream_event` wrapper line into delta events.
234
+ *
235
+ * Emitted (when carrying text):
236
+ * - `content_block_delta` + `text_delta` → `assistant_delta`
237
+ * - `content_block_delta` + `thinking_delta` → `thinking_delta` (best-effort —
238
+ * on recent Claude versions these deltas are the only place thinking prose
239
+ * appears, since the consolidated thinking block is withheld)
240
+ *
241
+ * Known scaffolding (`message_start`/`message_stop` — which also maintain the
242
+ * cross-line message id — `content_block_start`/`stop`, `message_delta`,
243
+ * `signature_delta`, `ping`) is consumed silently rather than spamming one
244
+ * `unknown` event per token. Genuinely unrecognized subtypes still surface as
245
+ * `unknown` for forward-compat.
246
+ */
247
+ function parsePartialStreamEvent(wrapper, partial) {
248
+ const ev = typeof wrapper["event"] === "object" && wrapper["event"] !== null && !Array.isArray(wrapper["event"])
249
+ ? wrapper["event"]
250
+ : null;
251
+ if (!ev)
252
+ return [];
253
+ const evType = asString(ev["type"], "");
254
+ if (evType === "message_start") {
255
+ if (partial) {
256
+ const msg = typeof ev["message"] === "object" && ev["message"] !== null
257
+ ? ev["message"]
258
+ : null;
259
+ partial.messageId = msg && typeof msg["id"] === "string" ? msg["id"] : null;
260
+ }
261
+ return [];
262
+ }
263
+ if (evType === "message_stop") {
264
+ if (partial)
265
+ partial.messageId = null;
266
+ return [];
267
+ }
268
+ if (evType === "content_block_delta") {
269
+ const delta = typeof ev["delta"] === "object" && ev["delta"] !== null
270
+ ? ev["delta"]
271
+ : null;
272
+ const blockIndex = typeof ev["index"] === "number" ? ev["index"] : 0;
273
+ const base = baseFieldsFromEvent(wrapper, partial?.messageId ?? null);
274
+ if (delta?.["type"] === "text_delta" && typeof delta["text"] === "string" && delta["text"]) {
275
+ return [{ type: "assistant_delta", text: delta["text"], blockIndex, ...base }];
276
+ }
277
+ if (delta?.["type"] === "thinking_delta" &&
278
+ typeof delta["thinking"] === "string" &&
279
+ delta["thinking"]) {
280
+ return [{ type: "thinking_delta", text: delta["thinking"], blockIndex, ...base }];
281
+ }
282
+ // signature_delta, empty deltas, input_json_delta, … — scaffolding.
283
+ return [];
284
+ }
285
+ if (evType === "content_block_start" ||
286
+ evType === "content_block_stop" ||
287
+ evType === "message_delta" ||
288
+ evType === "ping") {
289
+ return [];
290
+ }
291
+ // Unrecognized stream_event subtype — forward-compat escape hatch.
292
+ return [{
293
+ type: "unknown",
294
+ subtype: `stream_event:${evType || "unknown"}`,
295
+ ...baseFieldsFromEvent(wrapper, partial?.messageId ?? null),
296
+ }];
297
+ }
298
+ export function parseStreamLine(line, partial) {
232
299
  const event = parseJson(line);
233
300
  if (!event)
234
301
  return [];
235
302
  const type = asString(event["type"], "");
303
+ // `--include-partial-messages` wraps raw API streaming events in
304
+ // `stream_event` lines. Only present when the caller opted in via
305
+ // `config.includePartialMessages` — with the flag off this branch never
306
+ // fires and parsing is bit-identical to previous behavior.
307
+ if (type === "stream_event") {
308
+ return parsePartialStreamEvent(event, partial);
309
+ }
236
310
  if (type === "system" && asString(event["subtype"], "") === "init") {
237
311
  return [{
238
312
  type: "system",