@automatalabs/acp-agents 1.3.0 → 3.0.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 (88) hide show
  1. package/README.md +66 -21
  2. package/dist/acp-client.d.ts +15 -9
  3. package/dist/acp-client.d.ts.map +1 -1
  4. package/dist/acp-client.js +12 -10
  5. package/dist/agent/acp-agent.d.ts +84 -26
  6. package/dist/agent/acp-agent.d.ts.map +1 -1
  7. package/dist/agent/acp-agent.js +461 -168
  8. package/dist/agent/errors.d.ts +12 -2
  9. package/dist/agent/errors.d.ts.map +1 -1
  10. package/dist/agent/errors.js +38 -9
  11. package/dist/agent/fork.d.ts +7 -5
  12. package/dist/agent/fork.d.ts.map +1 -1
  13. package/dist/agent/fork.js +7 -5
  14. package/dist/agent/messages.d.ts +42 -0
  15. package/dist/agent/messages.d.ts.map +1 -0
  16. package/dist/agent/messages.js +225 -0
  17. package/dist/agent/probe.d.ts +1 -1
  18. package/dist/agent/probe.d.ts.map +1 -1
  19. package/dist/agent/probe.js +5 -1
  20. package/dist/agent/queue.js +2 -2
  21. package/dist/agent/routing.d.ts +19 -1
  22. package/dist/agent/routing.d.ts.map +1 -1
  23. package/dist/agent/routing.js +41 -4
  24. package/dist/agent/stream.d.ts +21 -0
  25. package/dist/agent/stream.d.ts.map +1 -0
  26. package/dist/agent/stream.js +93 -0
  27. package/dist/agent/structured.d.ts +7 -3
  28. package/dist/agent/structured.d.ts.map +1 -1
  29. package/dist/agent/structured.js +24 -14
  30. package/dist/agent/tool-host.d.ts +34 -0
  31. package/dist/agent/tool-host.d.ts.map +1 -0
  32. package/dist/agent/tool-host.js +138 -0
  33. package/dist/agent/tools.d.ts +26 -0
  34. package/dist/agent/tools.d.ts.map +1 -0
  35. package/dist/agent/tools.js +62 -0
  36. package/dist/agent/turn.d.ts +6 -3
  37. package/dist/agent/turn.d.ts.map +1 -1
  38. package/dist/agent/turn.js +15 -67
  39. package/dist/agent/types.d.ts +183 -29
  40. package/dist/agent/types.d.ts.map +1 -1
  41. package/dist/backend.d.ts +13 -5
  42. package/dist/backend.d.ts.map +1 -1
  43. package/dist/backends/claude.d.ts +4 -0
  44. package/dist/backends/claude.d.ts.map +1 -1
  45. package/dist/backends/claude.js +40 -17
  46. package/dist/backends/codex.d.ts +5 -0
  47. package/dist/backends/codex.d.ts.map +1 -1
  48. package/dist/backends/codex.js +15 -9
  49. package/dist/backends/custom.d.ts.map +1 -1
  50. package/dist/backends/custom.js +3 -2
  51. package/dist/backends/opencode.d.ts +4 -0
  52. package/dist/backends/opencode.d.ts.map +1 -1
  53. package/dist/backends/opencode.js +5 -1
  54. package/dist/backends/pi.d.ts +5 -2
  55. package/dist/backends/pi.d.ts.map +1 -1
  56. package/dist/backends/pi.js +15 -3
  57. package/dist/config-catalog.d.ts +4 -0
  58. package/dist/config-catalog.d.ts.map +1 -1
  59. package/dist/config-catalog.js +1 -0
  60. package/dist/index.d.ts +8 -3
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +9 -1
  63. package/dist/interactive.d.ts +4 -5
  64. package/dist/interactive.d.ts.map +1 -1
  65. package/dist/local-mcp-host.d.ts +30 -0
  66. package/dist/local-mcp-host.d.ts.map +1 -0
  67. package/dist/local-mcp-host.js +151 -0
  68. package/dist/protocol-coverage.d.ts +34 -6
  69. package/dist/protocol-coverage.d.ts.map +1 -1
  70. package/dist/protocol-coverage.js +26 -1
  71. package/dist/registry.d.ts +3 -3
  72. package/dist/registry.d.ts.map +1 -1
  73. package/dist/runner.d.ts +5 -0
  74. package/dist/runner.d.ts.map +1 -1
  75. package/dist/runner.js +13 -8
  76. package/dist/structured-output.d.ts +18 -0
  77. package/dist/structured-output.d.ts.map +1 -1
  78. package/dist/structured-output.js +19 -1
  79. package/dist/structured-tool.d.ts +7 -9
  80. package/dist/structured-tool.d.ts.map +1 -1
  81. package/dist/structured-tool.js +14 -102
  82. package/dist/system-prompt.d.ts +13 -0
  83. package/dist/system-prompt.d.ts.map +1 -0
  84. package/dist/system-prompt.js +67 -0
  85. package/dist/traits.d.ts +51 -0
  86. package/dist/traits.d.ts.map +1 -0
  87. package/dist/traits.js +88 -0
  88. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/backends/opencode.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACV,OAAO,EACP,2BAA2B,EAC3B,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EACjB,MAAM,eAAe,CAAC;AA+DvB,6FAA6F;AAC7F,eAAO,MAAM,mBAAmB,EAAE,WAIjC,CAAC;AAEF,qBAAa,eAAgB,YAAW,OAAO;IAIjC,QAAQ,CAAC,WAAW,EAAE,WAAW;IAH7C,QAAQ,CAAC,EAAE,EAAG,UAAU,CAAU;IAClC,QAAQ,CAAC,aAAa,EAAG,OAAO,CAAU;gBAErB,WAAW,GAAE,WAAiC;IAEnE,QAAQ,CAAC,mBAAmB,QAAQ;IACpC,QAAQ,CAAC,0BAA0B,QAAQ;IAE3C,qBAAqB,CACnB,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,2BAA2B,GAAG,SAAS;IAW1C,WAAW,IAAI,WAAW;IA2B1B,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAKlD,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAO5E,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO;CAKpD;AAED,eAAO,MAAM,yBAAyB,4DAoBpC,CAAC"}
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/backends/opencode.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACV,OAAO,EACP,2BAA2B,EAC3B,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EACjB,MAAM,eAAe,CAAC;AA+DvB,6FAA6F;AAC7F,eAAO,MAAM,mBAAmB,EAAE,WAIjC,CAAC;AAEF,qBAAa,eAAgB,YAAW,OAAO;IAIjC,QAAQ,CAAC,WAAW,EAAE,WAAW;IAH7C,QAAQ,CAAC,EAAE,EAAG,UAAU,CAAU;IAClC,QAAQ,CAAC,aAAa,EAAG,OAAO,CAAU;gBAErB,WAAW,GAAE,WAAiC;IAEnE,QAAQ,CAAC,mBAAmB,QAAQ;IACpC,QAAQ,CAAC,0BAA0B,QAAQ;IAE3C,qBAAqB,CACnB,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,2BAA2B,GAAG,SAAS;IAW1C,WAAW,IAAI,WAAW;IA2B1B;;2FAEuF;IACvF,QAAQ,CAAC,YAAY,wDAAmC;IAExD,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAKlD,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAO5E,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO;CAKpD;AAED,eAAO,MAAM,yBAAyB,4DAoBpC,CAAC"}
@@ -8,7 +8,7 @@ import { dirname, join } from "node:path";
8
8
  import { createRequire } from "node:module";
9
9
  import { META_KEYS } from "@automatalabs/shared-types";
10
10
  import { splitArgs } from "../backend.js";
11
- import { BUILTIN_PROTOCOL_COVERAGE } from "../protocol-coverage.js";
11
+ import { BUILTIN_PROTOCOL_COVERAGE, systemPromptSupport } from "../protocol-coverage.js";
12
12
  import { toJsonSchema } from "../schema-strict.js";
13
13
  import { parseFinalJson } from "../structured-output.js";
14
14
  import { defineBuiltinBackend } from "./define.js";
@@ -118,6 +118,10 @@ export class OpenCodeBackend {
118
118
  const bin = resolveOpenCodePackageBin();
119
119
  return { command: bin ?? "opencode", args: ["acp"], env };
120
120
  }
121
+ /** `opencode acp` reads no session `_meta` (its ACP service consults `_meta` only for
122
+ * terminal-auth at initialize); system prompts live in OpenCode's own config and agent
123
+ * definitions. Declared unsupported so a `systemPrompt` is refused, never dropped. */
124
+ systemPrompt = systemPromptSupport("opencode");
121
125
  sessionMeta() {
122
126
  // OpenCode ignores session _meta today; there is no protocol-critical session channel.
123
127
  return undefined;
@@ -1,6 +1,6 @@
1
1
  import type { TSchema } from "typebox";
2
2
  import type { AuthProfile } from "../auth/auth-profile.js";
3
- import type { Backend, ProviderErrorClassification, ProviderErrorMetadata, SpawnConfig } from "../backend.js";
3
+ import type { Backend, ProviderErrorClassification, ProviderErrorMetadata, SessionMetaInputs, SpawnConfig } from "../backend.js";
4
4
  /** Pi auth adaptation for its ambient credential store (provider environment keys or ~/.pi/agent/auth.json). */
5
5
  export declare const piAuthProfile: AuthProfile;
6
6
  export declare class PiBackend implements Backend {
@@ -9,9 +9,12 @@ export declare class PiBackend implements Backend {
9
9
  constructor(authProfile?: AuthProfile);
10
10
  readonly embedSchemaInPrompt = true;
11
11
  readonly injectStructuredOutputTool = true;
12
+ /** pi-acp reads `_meta.systemPrompt` `{ replace?, append? }` on session/new, resume, load, and
13
+ * fork and folds it into pi's `DefaultResourceLoader` system-prompt overrides. */
14
+ readonly systemPrompt: import("../protocol-coverage.js").SystemPromptSupport;
12
15
  classifyProviderError(error: unknown, metadata?: ProviderErrorMetadata): ProviderErrorClassification | undefined;
13
16
  spawnConfig(): SpawnConfig;
14
- sessionMeta(): Record<string, unknown> | undefined;
17
+ sessionMeta(_schema: TSchema | undefined, inputs?: SessionMetaInputs): Record<string, unknown> | undefined;
15
18
  promptMeta(_schema: TSchema | undefined): Record<string, unknown> | undefined;
16
19
  }
17
20
  export declare const piBackendDefinition: import("./define.js").BuiltinBackendDefinition<"pi">;
@@ -1 +1 @@
1
- {"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/backends/pi.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACV,OAAO,EACP,2BAA2B,EAC3B,qBAAqB,EACrB,WAAW,EACZ,MAAM,eAAe,CAAC;AAcvB,gHAAgH;AAChH,eAAO,MAAM,aAAa,EAAE,WAS3B,CAAC;AAEF,qBAAa,SAAU,YAAW,OAAO;IAG3B,QAAQ,CAAC,WAAW,EAAE,WAAW;IAF7C,QAAQ,CAAC,EAAE,EAAG,IAAI,CAAU;gBAEP,WAAW,GAAE,WAA2B;IAE7D,QAAQ,CAAC,mBAAmB,QAAQ;IACpC,QAAQ,CAAC,0BAA0B,QAAQ;IAE3C,qBAAqB,CACnB,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,2BAA2B,GAAG,SAAS;IAkB1C,WAAW,IAAI,WAAW;IAkB1B,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAIlD,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;CAG9E;AAED,eAAO,MAAM,mBAAmB,sDA0B9B,CAAC"}
1
+ {"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/backends/pi.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACV,OAAO,EACP,2BAA2B,EAC3B,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,EACZ,MAAM,eAAe,CAAC;AAcvB,gHAAgH;AAChH,eAAO,MAAM,aAAa,EAAE,WAS3B,CAAC;AAEF,qBAAa,SAAU,YAAW,OAAO;IAG3B,QAAQ,CAAC,WAAW,EAAE,WAAW;IAF7C,QAAQ,CAAC,EAAE,EAAG,IAAI,CAAU;gBAEP,WAAW,GAAE,WAA2B;IAE7D,QAAQ,CAAC,mBAAmB,QAAQ;IACpC,QAAQ,CAAC,0BAA0B,QAAQ;IAC3C;uFACmF;IACnF,QAAQ,CAAC,YAAY,wDAA6B;IAElD,qBAAqB,CACnB,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,2BAA2B,GAAG,SAAS;IAkB1C,WAAW,IAAI,WAAW;IAkB1B,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAY1G,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;CAG9E;AAED,eAAO,MAAM,mBAAmB,sDA0B9B,CAAC"}
@@ -2,8 +2,9 @@
2
2
  // pi-acp consumes the same client-hosted StructuredOutput MCP server as other HTTP-capable agents.
3
3
  import { dirname, join } from "node:path";
4
4
  import { createRequire } from "node:module";
5
+ import { META_KEYS } from "@automatalabs/shared-types";
5
6
  import { splitArgs } from "../backend.js";
6
- import { BUILTIN_PROTOCOL_COVERAGE } from "../protocol-coverage.js";
7
+ import { BUILTIN_PROTOCOL_COVERAGE, systemPromptSupport } from "../protocol-coverage.js";
7
8
  import { defineBuiltinBackend } from "./define.js";
8
9
  const require = createRequire(import.meta.url);
9
10
  // pi-acp advertises a single ambient method since ACP schema 1.21.0 removed the `env_var` variant
@@ -30,6 +31,9 @@ export class PiBackend {
30
31
  }
31
32
  embedSchemaInPrompt = true;
32
33
  injectStructuredOutputTool = true;
34
+ /** pi-acp reads `_meta.systemPrompt` `{ replace?, append? }` on session/new, resume, load, and
35
+ * fork and folds it into pi's `DefaultResourceLoader` system-prompt overrides. */
36
+ systemPrompt = systemPromptSupport("pi");
33
37
  classifyProviderError(error, metadata) {
34
38
  const providerCode = errorDataString(error, "errorKind");
35
39
  if (providerCode === "rate_limit" || providerCode === "billing_error") {
@@ -64,8 +68,16 @@ export class PiBackend {
64
68
  return { command: "npx", args: ["-y", "@automatalabs/pi-acp"], env };
65
69
  }
66
70
  }
67
- sessionMeta() {
68
- return undefined;
71
+ sessionMeta(_schema, inputs) {
72
+ // The schema rides the client-hosted StructuredOutput tool and the prompt, never session
73
+ // `_meta`. The neutral instructions ride pi-acp's `_meta.systemPrompt` object VERBATIM (only
74
+ // the defined fields), so an unconfigured session sends no `_meta` at all.
75
+ const systemPrompt = inputs?.systemPrompt;
76
+ const value = {
77
+ ...(systemPrompt?.replace !== undefined ? { replace: systemPrompt.replace } : {}),
78
+ ...(systemPrompt?.append !== undefined ? { append: systemPrompt.append } : {}),
79
+ };
80
+ return Object.keys(value).length > 0 ? { [META_KEYS.systemPrompt]: value } : undefined;
69
81
  }
70
82
  promptMeta(_schema) {
71
83
  return undefined;
@@ -1,6 +1,7 @@
1
1
  import type { SessionConfigOption, SessionModeState } from "@agentclientprotocol/sdk";
2
2
  import { type CustomBackendConfig } from "./registry.js";
3
3
  import { type ProbedConfigOptions } from "./runner.js";
4
+ import type { AcpAgentTraits } from "./traits.js";
4
5
  export interface ValidateProbeRunner {
5
6
  probeConfigOptions(spec?: string, opts?: {
6
7
  cwd?: string;
@@ -32,6 +33,9 @@ export interface ValidateHarnessOptions {
32
33
  /** Effective advertised ACP modes; null means this backend/model supports no session modes. */
33
34
  modes?: SessionModeState | null;
34
35
  options?: SessionConfigOption[];
36
+ /** Present when probed=true and the probe runner reports it (the runner and the SDK probe always
37
+ * do): the backend's traits refined by the live initialize advertisements. */
38
+ traits?: AcpAgentTraits;
35
39
  }
36
40
  type SelectConfigOption = Extract<SessionConfigOption, {
37
41
  type: "select";
@@ -1 +1 @@
1
- {"version":3,"file":"config-catalog.d.ts","sourceRoot":"","sources":["../src/config-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-catalog.d.ts","sourceRoot":"","sources":["../src/config-catalog.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGtF,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,CAChB,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACnH,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC,2EAA2E;IAC3E,YAAY,CAAC,IAAI,MAAM,EAAE,CAAC;IAC1B,2EAA2E;IAC3E,kBAAkB,CAAC,IAAI,MAAM,EAAE,CAAC;IAChC,+DAA+D;IAC/D,gBAAgB,CAAC,IAAI,MAAM,CAAC;IAC5B,4FAA4F;IAC5F,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,SAAS,KACtD,mBAAmB,CAAC;AAIzB,6FAA6F;AAC7F,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAMrF;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAChC;mFAC+E;IAC/E,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,KAAK,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AAE3E,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,CAIjG;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AASD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,GAAG,mBAAmB,CAkBtF;AAED,MAAM,WAAW,yBAAyB;IACxC;;4EAEwE;IACxE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,8FAA8F;IAC9F,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;wDACoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC/C;yEACqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC;sFACkF;IAClF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;uFACmF;IACnF,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,6DAA6D;IAC7D,EAAE,EAAE,OAAO,CAAC;IACZ,qDAAqD;IACrD,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,2FAA2F;IAC3F,cAAc,EAAE,sBAAsB,EAAE,CAAC;IACzC,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;CACzC;AAED,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAE/C;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAqF9B;AAED;;2FAE2F;AAC3F,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,cAAc,EAAE,OAAO,CAAC;IACxB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC7B,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAYD;;yFAEyF;AACzF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAY3E;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,mBAAmB,EAC3B,MAAM,CAAC,EAAE,MAAM,GACd,iBAAiB,EAAE,CAmBrB;AAsDD,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,GAAG,YAAY,CAAC;IAChC,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,iFAAiF;IACjF,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,IAAI,CAAC;IAC3B,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,eAAe,CAAC;IACnC,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,uFAAuF;IACvF,SAAS,EAAE,yBAAyB,EAAE,CAAC;CACxC;AAmCD;;kFAEkF;AAClF,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,GAClD,oBAAoB,CAqFtB;AAED,4FAA4F;AAC5F,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAmChF"}
@@ -112,6 +112,7 @@ export async function probeHarnessConfig(options = {}) {
112
112
  probed: true,
113
113
  modes: result.modes ?? null,
114
114
  options: result.options,
115
+ ...(result.traits === undefined ? {} : { traits: result.traits }),
115
116
  };
116
117
  }
117
118
  catch (error) {
package/dist/index.d.ts CHANGED
@@ -15,7 +15,9 @@ export { LoadedTurnFailedError, LoadedTurnStillRunningError, isLoadedTurnFailedE
15
15
  export type { InteractiveSessionOptions, InteractiveTurn } from "./interactive.js";
16
16
  export { AcpAgent } from "./agent/acp-agent.js";
17
17
  export { isAcpAgentTurnError } from "./agent/errors.js";
18
- export type { AcpAgentOptions, AcpAgentPromptOptions, AcpAgentSteerOptions, AcpAgentForkOptions, AcpAgentReopenOptions, AcpAgentCloseOptions, AcpAgentProbeOptions, AcpAgentCatalog, AcpAgentTurn, AcpAgentTurnError, AcpAgentToolCall, AcpAgentUpdateRecord, AcpAgentRawRecord, AcpAgentTurnUsage, AcpAgentEventMap, AcpAgentEventName, AcpAgentEventListener, AcpAgentState, } from "./agent/types.js";
18
+ export { defineTool, AGENT_TOOL_NAME_PATTERN } from "./agent/tools.js";
19
+ export { AGENT_TOOLS_SERVER_NAME } from "./agent/tool-host.js";
20
+ export type { AcpAgentOptions, AcpAgentToolDefinition, AcpAgentToolContext, AcpAgentToolResult, AcpAgentPromptOptions, AcpAgentSteerOptions, AcpAgentForkOptions, AcpAgentReopenOptions, AcpAgentCloseOptions, AcpAgentProbeOptions, AcpAgentCatalog, AcpAgentTurn, AcpAgentTurnError, AcpAgentToolCall, AcpAgentMessage, AcpAgentUpdateRecord, AcpAgentRawRecord, AcpAgentTurnUsage, AcpAgentEventMap, AcpAgentEventName, AcpAgentEventListener, AcpAgentStream, AcpAgentStreamEvent, AcpAgentStreamEventName, AcpAgentState, } from "./agent/types.js";
19
21
  export { AGENT_METHODS, CLIENT_METHODS } from "@agentclientprotocol/sdk";
20
22
  export type { AgentNotificationMethod, AgentNotificationParamsByMethod, AgentAuthCapabilities, AgentRequestMethod, AgentRequestParamsByMethod, AgentRequestResponsesByMethod, AuthCapabilities, AuthenticateRequest, AuthenticateResponse, AuthMethod, AuthMethodAgent, AuthMethodId, AuthMethodTerminal, DisableProviderRequest, DisableProviderResponse, CompleteElicitationNotification, ConnectMcpRequest, ConnectMcpResponse, CreateElicitationRequest, CreateElicitationResponse, DeleteSessionRequest, DeleteSessionResponse, DisconnectMcpRequest, DisconnectMcpResponse, ElicitationAcceptAction, ElicitationCapabilities, ElicitationContentValue, ElicitationFormCapabilities, ElicitationFormMode, ElicitationId, ElicitationPropertySchema, ElicitationRequestScope, ElicitationSchema, ElicitationSchemaType, ElicitationSessionScope, ElicitationUrlCapabilities, ElicitationUrlMode, ForkSessionRequest, ForkSessionResponse, ListProvidersRequest, ListProvidersResponse, ListSessionsRequest, ListSessionsResponse, LlmProtocol, LoadSessionRequest, LoadSessionResponse, LogoutCapabilities, LogoutRequest, LogoutResponse, McpConnectionId, McpServerAcp, McpServerAcpId, MessageMcpNotification, MessageMcpRequest, MessageMcpResponse, PermissionOption, PermissionOptionId, PermissionOptionKind, RequestPermissionRequest, RequestPermissionResponse, ResumeSessionRequest, ResumeSessionResponse, ProviderCurrentConfig, ProviderId, ProviderInfo, ProvidersCapabilities, SessionMode, SessionModeState, SessionConfigOption, SessionInfo, SendRequestOptions, SetProviderRequest, SetProviderResponse, } from "@agentclientprotocol/sdk";
21
23
  export { BACKENDS_ENV, registryWithRunBackends, resolveBackendRegistry } from "./registry.js";
@@ -24,8 +26,11 @@ export { probeHarnessConfig, buildHarnessModelsView, buildModelFilter, buildHarn
24
26
  export type { ProbeHarnessConfigOptions, HarnessConfigReport, ValidateHarnessOptions, HarnessModelsView, HarnessConfigSummary, HarnessConfigSummaryEntry, HarnessConfigSummaryModel, HarnessConfigSummaryGroup, SelectChoiceGroup, SelectChoiceSummary, ValidateProbeRunner, } from "./config-catalog.js";
25
27
  export { CANCEL_NOT_HONORED_GRACE_MS, PI_CHILD_CLEANUP_DEADLINE_MS, PI_CLOSE_DELIVERY_MARGIN_MS, PI_CLOSE_SESSION_TIMEOUT_MS, PI_DISPOSE_SIGKILL_GRACE_MS, PI_PROCESS_EXIT_MARGIN_MS, PI_PROCESS_SHUTDOWN_ENVELOPE_MS, PooledConnection, SESSION_STEERING_METHOD, LOADED_TURN_QUERY_METHOD, LOADED_TURN_ENDED_METHOD, SessionHandle, isChildCleanupError, } from "./acp-client.js";
26
28
  export type { AcpSessionOptions, PooledConnectionDeps, SteeringRequest, SteeringResponse, LoadedTurnQueryRequest, LoadedTurnQueryResponse, LoadedTurnEndedNotification, LoadedTurnStatus, } from "./acp-client.js";
27
- export { AGENT_METHOD_COVERAGE, ACP_EXTENSION_SUPPORT_MATRIX, ACP_AUTH_REQUIRED_CODE_EXCLUSIVE, AUTH_CAPABILITY_KEYS, AUTH_META_CONVENTION_KEYS, AUTH_META_MATRIX, CLIENT_METHOD_COVERAGE, CODEX_SPAWN_AUTH_ENV, HANDLED_AUTH_METHOD_TYPES, PI_ACP_PROTOCOL_CONTRACT, BUILTIN_PROTOCOL_COVERAGE, FORK_SESSION_TRAITS, FORK_SESSION_TRAIT_DEFAULT, PROMPT_USAGE_SCOPES, assertAuthCapabilityShape, forkSessionTrait, promptUsageScope, } from "./protocol-coverage.js";
28
- export type { AgentMethodCoverage, AcpExtensionSupportMatrixRow, AuthMetaMatrixRow, BuiltinProtocolCoverageRow, ClientMethodCoverage, ForkSessionTraitRow, PromptUsageScopeRow, } from "./protocol-coverage.js";
29
+ export { AGENT_METHOD_COVERAGE, ACP_EXTENSION_SUPPORT_MATRIX, ACP_AUTH_REQUIRED_CODE_EXCLUSIVE, AUTH_CAPABILITY_KEYS, AUTH_META_CONVENTION_KEYS, AUTH_META_MATRIX, CLIENT_METHOD_COVERAGE, CODEX_SPAWN_AUTH_ENV, HANDLED_AUTH_METHOD_TYPES, PI_ACP_PROTOCOL_CONTRACT, BUILTIN_PROTOCOL_COVERAGE, FORK_SESSION_TRAITS, FORK_SESSION_TRAIT_DEFAULT, PROMPT_USAGE_SCOPES, SYSTEM_PROMPT_SUPPORT, SYSTEM_PROMPT_UNSUPPORTED, assertAuthCapabilityShape, forkSessionTrait, promptUsageScope, systemPromptSupport, } from "./protocol-coverage.js";
30
+ export type { AgentMethodCoverage, AcpExtensionSupportMatrixRow, AuthMetaMatrixRow, BuiltinProtocolCoverageRow, ClientMethodCoverage, ForkSessionTraitRow, PromptUsageScopeRow, SystemPromptSupport, SystemPromptSupportRow, } from "./protocol-coverage.js";
31
+ export { assertSystemPromptSupported, describeSystemPromptSupport } from "./system-prompt.js";
32
+ export { describeBackendTraits } from "./traits.js";
33
+ export type { AcpAgentTraits } from "./traits.js";
29
34
  export { adaptPromptContent, isSupportedProtocolVersion, negotiateCapabilities, unsupportedMcpServer, } from "./capabilities.js";
30
35
  export type { NegotiatedCapabilities } from "./capabilities.js";
31
36
  export { AcpAgentPool, resolvePoolSize } from "./pool.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
@@ -23,13 +23,21 @@ export { LoadedTurnFailedError, LoadedTurnStillRunningError, isLoadedTurnFailedE
23
23
  // live forks, cold reopen from a session ref, and the no-prompt catalog probe.
24
24
  export { AcpAgent } from "./agent/acp-agent.js";
25
25
  export { isAcpAgentTurnError } from "./agent/errors.js";
26
+ // Client-side function tools: the definition helper and the injected `mcpServers` entry name.
27
+ export { defineTool, AGENT_TOOL_NAME_PATTERN } from "./agent/tools.js";
28
+ export { AGENT_TOOLS_SERVER_NAME } from "./agent/tool-host.js";
26
29
  export { AGENT_METHODS, CLIENT_METHODS } from "@agentclientprotocol/sdk";
27
30
  // The custom-backend registry: run ANY ACP agent as an agent() target.
28
31
  export { BACKENDS_ENV, registryWithRunBackends, resolveBackendRegistry } from "./registry.js";
29
32
  // Harness config catalog discovery (moved here from @automatalabs/workflows; the facade re-exports it).
30
33
  export { probeHarnessConfig, buildHarnessModelsView, buildModelFilter, buildHarnessConfigSummary, formatHarnessConfigSummary, selectChoicePairs, summarizeSelectChoices, DEFAULT_PROBE_TIMEOUT_MS, } from "./config-catalog.js";
31
34
  export { CANCEL_NOT_HONORED_GRACE_MS, PI_CHILD_CLEANUP_DEADLINE_MS, PI_CLOSE_DELIVERY_MARGIN_MS, PI_CLOSE_SESSION_TIMEOUT_MS, PI_DISPOSE_SIGKILL_GRACE_MS, PI_PROCESS_EXIT_MARGIN_MS, PI_PROCESS_SHUTDOWN_ENVELOPE_MS, PooledConnection, SESSION_STEERING_METHOD, LOADED_TURN_QUERY_METHOD, LOADED_TURN_ENDED_METHOD, SessionHandle, isChildCleanupError, } from "./acp-client.js";
32
- export { AGENT_METHOD_COVERAGE, ACP_EXTENSION_SUPPORT_MATRIX, ACP_AUTH_REQUIRED_CODE_EXCLUSIVE, AUTH_CAPABILITY_KEYS, AUTH_META_CONVENTION_KEYS, AUTH_META_MATRIX, CLIENT_METHOD_COVERAGE, CODEX_SPAWN_AUTH_ENV, HANDLED_AUTH_METHOD_TYPES, PI_ACP_PROTOCOL_CONTRACT, BUILTIN_PROTOCOL_COVERAGE, FORK_SESSION_TRAITS, FORK_SESSION_TRAIT_DEFAULT, PROMPT_USAGE_SCOPES, assertAuthCapabilityShape, forkSessionTrait, promptUsageScope, } from "./protocol-coverage.js";
35
+ export { AGENT_METHOD_COVERAGE, ACP_EXTENSION_SUPPORT_MATRIX, ACP_AUTH_REQUIRED_CODE_EXCLUSIVE, AUTH_CAPABILITY_KEYS, AUTH_META_CONVENTION_KEYS, AUTH_META_MATRIX, CLIENT_METHOD_COVERAGE, CODEX_SPAWN_AUTH_ENV, HANDLED_AUTH_METHOD_TYPES, PI_ACP_PROTOCOL_CONTRACT, BUILTIN_PROTOCOL_COVERAGE, FORK_SESSION_TRAITS, FORK_SESSION_TRAIT_DEFAULT, PROMPT_USAGE_SCOPES, SYSTEM_PROMPT_SUPPORT, SYSTEM_PROMPT_UNSUPPORTED, assertAuthCapabilityShape, forkSessionTrait, promptUsageScope, systemPromptSupport, } from "./protocol-coverage.js";
36
+ // The one validator every front door runs on `systemPrompt` before a session opens.
37
+ export { assertSystemPromptSupported, describeSystemPromptSupport } from "./system-prompt.js";
38
+ // Per-agent traits: the tables before open, the live initialize advertisements after (`AcpAgent#traits`,
39
+ // `AcpAgent.traits()`, and the `traits` field of every probe result).
40
+ export { describeBackendTraits } from "./traits.js";
33
41
  // ACP standard capability negotiation. Vendor initialize metadata stays raw for extension owners.
34
42
  export { adaptPromptContent, isSupportedProtocolVersion, negotiateCapabilities, unsupportedMcpServer, } from "./capabilities.js";
35
43
  export { AcpAgentPool, resolvePoolSize } from "./pool.js";
@@ -1,5 +1,5 @@
1
1
  import type { AgentNotificationMethod, AgentNotificationParamsByMethod, AgentRequestMethod, AgentRequestParamsByMethod, AgentRequestResponsesByMethod, ContentBlock, PromptResponse, SendRequestOptions, SessionModeState, StopReason } from "@agentclientprotocol/sdk";
2
- import type { AgentHistoryEntry, AgentSessionRef, McpServerConfig, PromptImage } from "@automatalabs/shared-types";
2
+ import type { AgentHistoryEntry, AgentSessionRef, McpServerConfig, PromptImage, SystemPromptOptions } from "@automatalabs/shared-types";
3
3
  import type { RunOptions } from "@automatalabs/shared-types";
4
4
  import { WorkflowError } from "@automatalabs/shared-types";
5
5
  import type { TSchema } from "typebox";
@@ -53,10 +53,9 @@ export interface InteractiveSessionOptions {
53
53
  runId?: string;
54
54
  /** Generic session-scoped `_meta` passthrough merged under backend-computed session meta. */
55
55
  meta?: Record<string, unknown>;
56
- /** CODEX-ONLY base instruction override, forwarded at session/new. */
57
- baseInstructions?: string;
58
- /** CODEX-ONLY developer instruction override, forwarded at session/new. */
59
- developerInstructions?: string;
56
+ /** Backend-neutral system prompt instructions (`replace` / `append`), forwarded on the session
57
+ * `_meta` in the backend's own dialect; refused before open when the backend carries neither. */
58
+ systemPrompt?: SystemPromptOptions;
60
59
  /** Client-provided MCP servers to attach at session/new. */
61
60
  mcpServers?: McpServerConfig[];
62
61
  /** Keep accumulated text/history after each prompt turn; default false for held-open sessions. */
@@ -1 +1 @@
1
- {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { type IncomingMessage, type ServerResponse } from "node:http";
2
+ import type { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
+ export declare const LOCAL_MCP_HOST = "127.0.0.1";
4
+ export declare abstract class LocalMcpHttpHost {
5
+ private server;
6
+ /** The pending or settled bind of `server`, resolving with its port. */
7
+ private listenPromise;
8
+ private port;
9
+ private inFlightRequests;
10
+ private drained;
11
+ /** A human name for error messages (`<name> MCP server did not bind …`). */
12
+ protected abstract readonly hostName: string;
13
+ /** The MCP server that answers requests on `token`, or undefined for a 404. Called once per
14
+ * HTTP request; the returned server is connected to a fresh transport and closed with it. */
15
+ protected abstract mcpServerFor(token: string, req: IncomingMessage, res: ServerResponse): Server | undefined;
16
+ isListening(): boolean;
17
+ listeningPort(): number | undefined;
18
+ /** Stop listening. Idempotent; resolves once the HTTP server closed (immediately when it never
19
+ * bound). A close that lands while `ensureListening()` is still binding waits for that bind to
20
+ * settle and then closes the socket it produced — returning early would leave the socket to
21
+ * come up after the close with nothing left to close it (the racing `ensureListening()` sees
22
+ * the host closed and rejects). A peer's keep-alive socket never holds the close open: idle
23
+ * connections are closed at once, requests still being answered get a bounded grace to flush,
24
+ * then everything left is destroyed — the peer is the agent process, which is gone or going. */
25
+ protected closeServer(): Promise<void>;
26
+ protected urlFor(token: string, port: number): string;
27
+ protected ensureListening(): Promise<number>;
28
+ private handleRequest;
29
+ }
30
+ //# sourceMappingURL=local-mcp-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-mcp-host.d.ts","sourceRoot":"","sources":["../src/local-mcp-host.ts"],"names":[],"mappings":"AAOA,OAAa,EACX,KAAK,eAAe,EAEpB,KAAK,cAAc,EACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGxE,eAAO,MAAM,cAAc,cAAc,CAAC;AAO1C,8BAAsB,gBAAgB;IACpC,OAAO,CAAC,MAAM,CAAyB;IACvC,wEAAwE;IACxE,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,OAAO,CAA2B;IAE1C,4EAA4E;IAC5E,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE7C;kGAC8F;IAC9F,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS;IAE7G,WAAW,IAAI,OAAO;IAItB,aAAa,IAAI,MAAM,GAAG,SAAS;IAInC;;;;;;qGAMiG;cACjF,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB5C,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;cAIrC,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;YAsCpC,aAAa;CA6B5B"}
@@ -0,0 +1,151 @@
1
+ // The in-process Streamable HTTP MCP host both client-hosted tool servers share: bound to
2
+ // 127.0.0.1 on an ephemeral port, lazily (the first registration binds), serving one MCP server
3
+ // per unguessable token path. A request that names no live token is a 404; a request on a live
4
+ // token gets a fresh stateless transport + MCP `Server` pair for its lifetime (the SDK's stateless
5
+ // pattern, so concurrent calls never share protocol state). Subclasses own the token → server
6
+ // mapping (`StructuredOutputToolHost`: one slot per registered schema; `AgentToolHost`: one token
7
+ // for the agent's function tools) and the tool handlers.
8
+ import http from "node:http";
9
+ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
10
+ export const LOCAL_MCP_HOST = "127.0.0.1";
11
+ /** How long `closeServer()` lets requests that were mid-answer finish writing before every
12
+ * remaining connection is torn down (a tool run that ignores its abort signal must not keep the
13
+ * agent's `close()` hanging). */
14
+ const CLOSE_DRAIN_GRACE_MS = 1000;
15
+ export class LocalMcpHttpHost {
16
+ server;
17
+ /** The pending or settled bind of `server`, resolving with its port. */
18
+ listenPromise;
19
+ port;
20
+ inFlightRequests = 0;
21
+ drained;
22
+ isListening() {
23
+ return this.server?.listening === true;
24
+ }
25
+ listeningPort() {
26
+ return this.port;
27
+ }
28
+ /** Stop listening. Idempotent; resolves once the HTTP server closed (immediately when it never
29
+ * bound). A close that lands while `ensureListening()` is still binding waits for that bind to
30
+ * settle and then closes the socket it produced — returning early would leave the socket to
31
+ * come up after the close with nothing left to close it (the racing `ensureListening()` sees
32
+ * the host closed and rejects). A peer's keep-alive socket never holds the close open: idle
33
+ * connections are closed at once, requests still being answered get a bounded grace to flush,
34
+ * then everything left is destroyed — the peer is the agent process, which is gone or going. */
35
+ async closeServer() {
36
+ const server = this.server;
37
+ const binding = this.listenPromise;
38
+ this.server = undefined;
39
+ this.listenPromise = undefined;
40
+ this.port = undefined;
41
+ if (!server)
42
+ return;
43
+ if (binding)
44
+ await binding.then(noop, noop);
45
+ if (!server.listening)
46
+ return;
47
+ const closed = new Promise((resolve, reject) => {
48
+ server.close((error) => (error ? reject(error) : resolve()));
49
+ });
50
+ server.closeIdleConnections();
51
+ if (this.inFlightRequests > 0) {
52
+ await Promise.race([
53
+ new Promise((resolve) => (this.drained = resolve)),
54
+ new Promise((resolve) => setTimeout(resolve, CLOSE_DRAIN_GRACE_MS).unref()),
55
+ ]);
56
+ this.drained = undefined;
57
+ }
58
+ server.closeIdleConnections();
59
+ if (this.inFlightRequests > 0)
60
+ server.closeAllConnections();
61
+ await closed;
62
+ }
63
+ urlFor(token, port) {
64
+ return `http://${LOCAL_MCP_HOST}:${port}/${token}`;
65
+ }
66
+ async ensureListening() {
67
+ if (!this.server) {
68
+ this.server = http.createServer((req, res) => {
69
+ void this.handleRequest(req, res);
70
+ });
71
+ this.server.unref();
72
+ }
73
+ const server = this.server;
74
+ if (!this.listenPromise) {
75
+ this.listenPromise = new Promise((resolve, reject) => {
76
+ const onError = (error) => {
77
+ server.off("listening", onListening);
78
+ reject(error);
79
+ };
80
+ const onListening = () => {
81
+ server.off("error", onError);
82
+ const address = server.address();
83
+ if (!address || typeof address === "string") {
84
+ reject(new Error(`${this.hostName} MCP server did not bind to a TCP port`));
85
+ return;
86
+ }
87
+ resolve(address.port);
88
+ };
89
+ server.once("error", onError);
90
+ server.once("listening", onListening);
91
+ server.listen(0, LOCAL_MCP_HOST);
92
+ });
93
+ }
94
+ const port = await this.listenPromise;
95
+ // `closeServer()` ran while the bind was pending: it waited for this bind and closed the
96
+ // server, so the port must not be handed out.
97
+ if (this.server !== server) {
98
+ throw new Error(`${this.hostName} MCP server was closed while it was binding`);
99
+ }
100
+ this.port = port;
101
+ return port;
102
+ }
103
+ async handleRequest(req, res) {
104
+ const token = tokenOf(req);
105
+ const server = token === undefined ? undefined : this.mcpServerFor(token, req, res);
106
+ if (!server) {
107
+ res.writeHead(404, { "content-type": "text/plain; charset=utf-8" });
108
+ res.end("not found");
109
+ return;
110
+ }
111
+ const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined });
112
+ this.inFlightRequests += 1;
113
+ try {
114
+ await server.connect(transport);
115
+ // Resolves once the response body has been written in full (the SDK's Node listener awaits
116
+ // the streamed body), so an async tool handler's result is on the wire before the teardown.
117
+ await transport.handleRequest(req, res);
118
+ }
119
+ catch (error) {
120
+ if (!res.headersSent) {
121
+ res.writeHead(500, { "content-type": "text/plain; charset=utf-8" });
122
+ res.end(error instanceof Error ? error.message : String(error));
123
+ }
124
+ else {
125
+ res.destroy(error instanceof Error ? error : undefined);
126
+ }
127
+ }
128
+ finally {
129
+ await Promise.allSettled([server.close(), transport.close()]);
130
+ this.inFlightRequests -= 1;
131
+ if (this.inFlightRequests === 0)
132
+ this.drained?.();
133
+ }
134
+ }
135
+ }
136
+ function noop() { }
137
+ /** The single path segment of the request URL, or undefined when the path is not exactly `/<token>`. */
138
+ function tokenOf(req) {
139
+ const rawUrl = req.url ?? "/";
140
+ let pathname;
141
+ try {
142
+ pathname = new URL(rawUrl, `http://${LOCAL_MCP_HOST}`).pathname;
143
+ }
144
+ catch {
145
+ return undefined;
146
+ }
147
+ if (!pathname.startsWith("/") || pathname.slice(1).includes("/"))
148
+ return undefined;
149
+ const token = pathname.slice(1);
150
+ return token === "" ? undefined : token;
151
+ }
@@ -125,12 +125,14 @@ export declare const ACP_EXTENSION_SUPPORT_MATRIX: readonly AcpExtensionSupportM
125
125
  /** How each installed agent answers `session/fork`, read from its adapter source, and what the
126
126
  * AcpAgent SDK must do with the response. `id-only`: the response names a persisted copy that
127
127
  * is not live — claude-agent-acp returns `{ sessionId }` from `dist/fork-session.js` and `prompt`
128
- * on it throws "Session not found"; codex-acp installs state but unsubscribes the thread
129
- * (`threadUnsubscribe`) and publishes no updates until resume/load. `live`: the fork handle is
130
- * the session (pi constructs it in-process; OpenCode by live verification only). `reattach`
131
- * names the reopen an `id-only` fork needs before its first turn. `cwd`: whether the fork may
132
- * re-home — claude's transcript store is keyed by the source cwd. Data for the SDK's fork
133
- * choreography; the runner's `forkSession()` returns the raw fork handle and never consults it. */
128
+ * on it throws "Session not found". `live`: the fork handle is the session — @automatalabs/codex-acp
129
+ * forks the thread through `thread/fork`, which subscribes the connection to the new thread
130
+ * exactly like `thread/resume` does, keeps that subscription (no `threadUnsubscribe`), and
131
+ * publishes the forked session's available commands and MCP startup status like a resumed one;
132
+ * pi constructs the fork in-process; OpenCode by live verification only. `reattach` names the
133
+ * reopen an `id-only` fork needs before its first turn. `cwd`: whether the fork may re-home —
134
+ * claude's transcript store is keyed by the source cwd. Data for the SDK's fork choreography;
135
+ * the runner's `forkSession()` returns the raw fork handle and never consults it. */
134
136
  export interface ForkSessionTraitRow {
135
137
  readonly agent: string;
136
138
  readonly disposition: "id-only" | "live";
@@ -153,6 +155,32 @@ export declare function forkSessionTrait(agent: string, declared?: {
153
155
  readonly disposition: ForkSessionTraitRow["disposition"];
154
156
  readonly cwd?: ForkSessionTraitRow["cwd"];
155
157
  }): ForkSessionTraitRow;
158
+ /** Which halves of the backend-neutral `SystemPromptOptions` (`replace` / `append`) each built-in
159
+ * can carry, and on which `session/new|resume|load|fork` `_meta` key — read from each adapter's
160
+ * source and pinned by the protocol coverage suite (claude/codex/pi dists) and the docs-drift
161
+ * suite. `replace` swaps the agent's built-in system prompt; `append` adds to it. A backend with
162
+ * both `false` (opencode: `opencode acp` reads no session `_meta`; system prompts live in its
163
+ * config and agent definitions) rejects any `systemPrompt` before a session opens. */
164
+ export interface SystemPromptSupport {
165
+ readonly replace: boolean;
166
+ readonly append: boolean;
167
+ }
168
+ export interface SystemPromptSupportRow extends SystemPromptSupport {
169
+ readonly agent: string;
170
+ /** The bare `_meta` key(s) the instructions ride on; empty when unsupported. */
171
+ readonly metaKeys: readonly string[];
172
+ /** Installed distributions whose `_meta` reader is probed by the protocol coverage suite. */
173
+ readonly distProbe?: "claude" | "codex" | "pi";
174
+ }
175
+ /** Per-built-in system-prompt instruction support. Executable data: the backends read their own
176
+ * row (`Backend.systemPrompt`), the validators reject what a row does not carry, and the drift
177
+ * suites pin the rows against the installed adapters and the public docs. */
178
+ export declare const SYSTEM_PROMPT_SUPPORT: readonly SystemPromptSupportRow[];
179
+ /** Unknown agents carry no system-prompt channel: a custom registry entry's own `_meta` keys
180
+ * travel through the generic `meta` passthrough instead. */
181
+ export declare const SYSTEM_PROMPT_UNSUPPORTED: SystemPromptSupport;
182
+ /** The built-in row for `agent`, or `SYSTEM_PROMPT_UNSUPPORTED` for an unknown agent. */
183
+ export declare function systemPromptSupport(agent: string): SystemPromptSupport;
156
184
  /** What `PromptResponse.usage` covers on each installed agent, read from its adapter source.
157
185
  * Every source-verified agent reports THE TURN (the SDK's own type doc says "across session";
158
186
  * the adapters do not follow it): claude-agent-acp resets its accumulator at every turn
@@ -1 +1 @@
1
- {"version":3,"file":"protocol-coverage.d.ts","sourceRoot":"","sources":["../src/protocol-coverage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol-coverage.d.ts","sourceRoot":"","sources":["../src/protocol-coverage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAEpF,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7B,KAAK,YAAY,GAAG,OAAO,CAAC,OAAO,cAAc,CAAC,CAAC;AACnD,KAAK,WAAW,GAAG,OAAO,CAAC,OAAO,aAAa,CAAC,CAAC;AAEjD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,SAAS,CAAC;AACxD;kGACkG;AAClG,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC;AAEvE;;;;+FAI+F;AAC/F,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAetF,CAAC;AAEH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC,CA6BnF,CAAC;AAWH;2CAC2C;AAC3C,KAAK,MAAM,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;AAEhC,qGAAqG;AACrG,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,SAAS,MAAM,kBAAkB,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;AAC5F,kGAAkG;AAClG,MAAM,MAAM,sBAAsB,GAAG,MAAM,CACzC,gBAAgB,CAAC,UAAU,CAAC,SAAS,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,CACxE,CAAC;AAEF;;0CAE0C;AAC1C,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAA0B,CAAC;AAE7E;;;gEAGgE;AAChE,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,IAAI,CAShF;AAUD;;;;0EAI0E;AAC1E,eAAO,MAAM,yBAAyB,EAAE,SAAS,CAAC,OAAO,EAAE,UAAU,CAAyB,CAAC;AAE/F;4EAC4E;AAC5E,MAAM,MAAM,sBAAsB,GAAG,MAAM,CACzC;IAAC,UAAU;CAAC,SAAS,CAAC,eAAe,GAAG,kBAAkB,CAAC,GAAG,IAAI,GAAG,KAAK,CAC3E,CAAC;AACF;;qDAEqD;AACrD,MAAM,MAAM,+BAA+B,GAAG,MAAM,CAClD;IAAC,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC;CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAC3E,CAAC;AACF;oGACoG;AACpG,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAC1C;IAAC,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,CAC1E,CAAC;AAEF;;6DAE6D;AAC7D,eAAO,MAAM,yBAAyB;;;;CAI5B,CAAC;AAEX,uGAAuG;AACvG,eAAO,MAAM,oBAAoB,EAAG,sBAA+B,CAAC;AAEpE;sEACsE;AACtE,eAAO,MAAM,gCAAgC,EAAG,CAAC,KAAc,CAAC;AAEhE;;0DAE0D;AAC1D,eAAO,MAAM,wBAAwB;;;;;;;CAK3B,CAAC;AAEX;2FAC2F;AAC3F,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iGAAiG;IACjG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,4FAA4F;IAC5F,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,gBAAgB,CAAC;IACnE,mGAAmG;IACnG,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC;oGACgG;IAChG,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACxC,mFAAmF;IACnF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAkCD,eAAO,MAAM,gBAAgB,EAAE,SAAS,iBAAiB,EAExD,CAAC;AAEF;;;;;;;;;;;;mDAYmD;AACnD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,uBAAuB,GAAG,OAAO,wBAAwB,CAAC;IAClF,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,gBAAgB,CAAC;IACrD;0FACsF;IACtF,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CACzC;AAiDD;6FAC6F;AAC7F,eAAO,MAAM,4BAA4B,EAAE,SAAS,4BAA4B,EAE/E,CAAC;AAEF;;;;;;;;;;sFAUsF;AACtF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAAC;IAC7C,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAAC;IACrC;+EAC2E;IAC3E,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;CAChD;AASD;mFACmF;AACnF,eAAO,MAAM,mBAAmB,EAAE,SAAS,mBAAmB,EAE7D,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,0BAA0B,EAAE,mBAKvC,CAAC;AAEH;;;6FAG6F;AAC7F,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAA;CAAE,GACjH,mBAAmB,CAUrB;AAED;;;;;uFAKuF;AACvF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,6FAA6F;IAC7F,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;CAChD;AAgBD;;8EAE8E;AAC9E,eAAO,MAAM,qBAAqB,EAAE,SAAS,sBAAsB,EAElE,CAAC;AAEF;6DAC6D;AAC7D,eAAO,MAAM,yBAAyB,EAAE,mBAAsE,CAAC;AAE/G,yFAAyF;AACzF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAGtE;AAED;;;;;;;;4EAQ4E;AAC5E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8FAA8F;IAC9F,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;CAChD;AASD;;iCAEiC;AACjC,eAAO,MAAM,mBAAmB,EAAE,SAAS,mBAAmB,EAE7D,CAAC;AASF,yGAAyG;AACzG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAE5E;AAED,oGAAoG;AACpG,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACvE,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACrE,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAC7D,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,8FAA8F;IAC9F,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,gGAAgG;IAChG,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;CAC3C;AAsBD,2FAA2F;AAC3F,eAAO,MAAM,yBAAyB;;;;;EAKpC,CAAC"}
@@ -186,7 +186,7 @@ const ACP_EXTENSION_SUPPORT_MATRIX_ROWS = [
186
186
  export const ACP_EXTENSION_SUPPORT_MATRIX = Object.freeze(ACP_EXTENSION_SUPPORT_MATRIX_ROWS.map((row) => Object.freeze(row)));
187
187
  const FORK_SESSION_TRAIT_ROWS = [
188
188
  { agent: "claude", disposition: "id-only", reattach: "resume-or-load", cwd: "source-only", distProbe: "claude" },
189
- { agent: "codex", disposition: "id-only", reattach: "resume-or-load", cwd: "free", distProbe: "codex" },
189
+ { agent: "codex", disposition: "live", reattach: "none", cwd: "free", distProbe: "codex" },
190
190
  { agent: "opencode", disposition: "live", reattach: "none", cwd: "free" },
191
191
  { agent: "pi", disposition: "live", reattach: "none", cwd: "free", distProbe: "pi" },
192
192
  ];
@@ -215,6 +215,31 @@ export function forkSessionTrait(agent, declared) {
215
215
  }
216
216
  return FORK_SESSION_TRAITS.find((row) => row.agent === agent) ?? FORK_SESSION_TRAIT_DEFAULT;
217
217
  }
218
+ const SYSTEM_PROMPT_SUPPORT_ROWS = [
219
+ // claude-agent-acp `createSession`: `_meta.systemPrompt` string => replaces the prompt; object =>
220
+ // merged into the `claude_code` preset with type/preset locked (`{ append }` extends it).
221
+ { agent: "claude", replace: true, append: true, metaKeys: ["systemPrompt"], distProbe: "claude" },
222
+ // @automatalabs/codex-acp: bare `_meta.baseInstructions` (base prompt replacement) and
223
+ // `_meta.developerInstructions` (developer-role instructions) => thread/{start,resume,fork} params
224
+ // (a Codex fork is live, so session/fork's own `_meta` is where a fork's instructions travel).
225
+ { agent: "codex", replace: true, append: true, metaKeys: ["baseInstructions", "developerInstructions"], distProbe: "codex" },
226
+ { agent: "opencode", replace: false, append: false, metaKeys: [] },
227
+ // @automatalabs/pi-acp: `_meta.systemPrompt` `{ replace?, append? }` (or a string = replace) =>
228
+ // pi's `DefaultResourceLoader` system-prompt overrides.
229
+ { agent: "pi", replace: true, append: true, metaKeys: ["systemPrompt"], distProbe: "pi" },
230
+ ];
231
+ /** Per-built-in system-prompt instruction support. Executable data: the backends read their own
232
+ * row (`Backend.systemPrompt`), the validators reject what a row does not carry, and the drift
233
+ * suites pin the rows against the installed adapters and the public docs. */
234
+ export const SYSTEM_PROMPT_SUPPORT = Object.freeze(SYSTEM_PROMPT_SUPPORT_ROWS.map((row) => Object.freeze({ ...row, metaKeys: Object.freeze([...row.metaKeys]) })));
235
+ /** Unknown agents carry no system-prompt channel: a custom registry entry's own `_meta` keys
236
+ * travel through the generic `meta` passthrough instead. */
237
+ export const SYSTEM_PROMPT_UNSUPPORTED = Object.freeze({ replace: false, append: false });
238
+ /** The built-in row for `agent`, or `SYSTEM_PROMPT_UNSUPPORTED` for an unknown agent. */
239
+ export function systemPromptSupport(agent) {
240
+ const row = SYSTEM_PROMPT_SUPPORT.find((candidate) => candidate.agent === agent);
241
+ return row ? { replace: row.replace, append: row.append } : SYSTEM_PROMPT_UNSUPPORTED;
242
+ }
218
243
  const PROMPT_USAGE_SCOPE_ROWS = [
219
244
  { agent: "claude", scope: "turn", distProbe: "claude" },
220
245
  { agent: "codex", scope: "turn", distProbe: "codex" },