acpx 0.18.0 → 0.19.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 (41) hide show
  1. package/dist/{agent-registry-DdKB-zia.js → agent-registry-Ct2yWPW7.js} +3 -2
  2. package/dist/agent-registry-Ct2yWPW7.js.map +1 -0
  3. package/dist/agent-registry.js +1 -1
  4. package/dist/{cli-8mVHeUXh.js → cli-Bmki9cj5.js} +5 -5
  5. package/dist/{cli-8mVHeUXh.js.map → cli-Bmki9cj5.js.map} +1 -1
  6. package/dist/cli.js +55 -47
  7. package/dist/cli.js.map +1 -1
  8. package/dist/{client-DeNKZZcu.d.ts → client-DzaUKazo.d.ts} +10 -4
  9. package/dist/client-DzaUKazo.d.ts.map +1 -0
  10. package/dist/{flows-WOQNzCMC.js → flows--Ewxn_fQ.js} +665 -460
  11. package/dist/flows--Ewxn_fQ.js.map +1 -0
  12. package/dist/flows.d.ts +19 -7
  13. package/dist/flows.d.ts.map +1 -1
  14. package/dist/flows.js +1 -1
  15. package/dist/{invocation-options-B6d7TI-y.js → invocation-options-DRzxHZmr.js} +32 -11
  16. package/dist/invocation-options-DRzxHZmr.js.map +1 -0
  17. package/dist/{ipc-BJrvfNXr.js → ipc-fMgj5vrO.js} +540 -241
  18. package/dist/ipc-fMgj5vrO.js.map +1 -0
  19. package/dist/{output-CL18YmsG.js → output-D6kDs8BN.js} +24 -11
  20. package/dist/output-D6kDs8BN.js.map +1 -0
  21. package/dist/{queue-owner-runtime-Cr0dWJuL.js → queue-owner-runtime-CLwjMYNL.js} +549 -337
  22. package/dist/queue-owner-runtime-CLwjMYNL.js.map +1 -0
  23. package/dist/runtime.d.ts +19 -1
  24. package/dist/runtime.d.ts.map +1 -1
  25. package/dist/runtime.js +47 -28
  26. package/dist/runtime.js.map +1 -1
  27. package/dist/session-options-Dp6mzNSy.d.ts.map +1 -1
  28. package/dist/{session-watch-B8Q_TsGf.js → session-watch-BfdIo-n4.js} +5 -5
  29. package/dist/session-watch-BfdIo-n4.js.map +1 -0
  30. package/dist/{watch-Dp73ph8h.js → watch-DH-zXQH2.js} +2 -2
  31. package/dist/{watch-Dp73ph8h.js.map → watch-DH-zXQH2.js.map} +1 -1
  32. package/package.json +1 -1
  33. package/skills/acpx/SKILL.md +43 -23
  34. package/dist/agent-registry-DdKB-zia.js.map +0 -1
  35. package/dist/client-DeNKZZcu.d.ts.map +0 -1
  36. package/dist/flows-WOQNzCMC.js.map +0 -1
  37. package/dist/invocation-options-B6d7TI-y.js.map +0 -1
  38. package/dist/ipc-BJrvfNXr.js.map +0 -1
  39. package/dist/output-CL18YmsG.js.map +0 -1
  40. package/dist/queue-owner-runtime-Cr0dWJuL.js.map +0 -1
  41. package/dist/session-watch-B8Q_TsGf.js.map +0 -1
package/dist/runtime.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { AcpAgentInspection, AcpAgentInspectionOptions, AcpAgentRegistry, AcpInspectableAgentRegistry, DEFAULT_AGENT_NAME, createAgentRegistry } from "./agent-registry.js";
2
2
  import { C as PermissionPolicy, E as PromptInput, S as PermissionMode, T as SessionRecord, _ as AcpProcessSpawnFailure, a as AcpElicitationHandler, b as McpServer$1, c as AcpElicitationResponse, d as AcpPermissionHandler, f as AcpPermissionRequest, g as AcpProcessLifecycle, h as AcpProcessLaunchScope, i as AcpElicitationContext, l as AcpJsonRpcMessage, m as AcpProcessLaunch, n as SystemPromptOption, o as AcpElicitationMode, p as AcpProcessExit, s as AcpElicitationRequest, t as SessionAgentOptions, u as AcpPermissionDecision, v as AcpProcessStarted, x as NonInteractivePermissionPolicy, y as AuthPolicy } from "./session-options-Dp6mzNSy.js";
3
- import { a as RequestedModelUnsupportedErrorCode, c as AcpControlAuthority, i as RequestedModelUnsupportedError, n as REQUESTED_MODEL_UNSUPPORTED_ERROR_CODE, o as RequestedModelUnsupportedReason, r as REQUESTED_MODEL_UNSUPPORTED_REASONS, s as isRequestedModelUnsupportedError, t as AcpClient } from "./client-DeNKZZcu.js";
3
+ import { a as RequestedModelUnsupportedErrorCode, c as AcpControlAuthority, i as RequestedModelUnsupportedError, n as REQUESTED_MODEL_UNSUPPORTED_ERROR_CODE, o as RequestedModelUnsupportedReason, r as REQUESTED_MODEL_UNSUPPORTED_REASONS, s as isRequestedModelUnsupportedError, t as AcpClient } from "./client-DzaUKazo.js";
4
4
  import { z } from "zod";
5
5
  import { SetSessionConfigOptionResponse, ToolCallContent, ToolCallLocation, ToolKind } from "@agentclientprotocol/sdk";
6
6
  //#region src/session/journal.d.ts
@@ -90,6 +90,7 @@ type AcpRuntimeTurnInput = AcpControlAuthority & {
90
90
  /** Handles ACP elicitation requests owned by this prompt turn. */
91
91
  onElicitation?: AcpElicitationHandler;
92
92
  };
93
+ /** Caller-owned snapshot; local mutations do not change runtime capabilities. */
93
94
  type AcpRuntimeCapabilities = {
94
95
  controls: AcpRuntimeControl[];
95
96
  configOptionKeys?: string[];
@@ -413,6 +414,22 @@ type AcpRuntimeOptions = {
413
414
  /** Optional lifecycle observer for ACP agent processes owned by this runtime. */
414
415
  processLifecycle?: AcpProcessLifecycle;
415
416
  onPermissionRequest?: AcpPermissionHandler;
417
+ /**
418
+ * ACP filesystem callback capability for new and reconnected session clients.
419
+ * Omitted defaults to enabled, matching `AcpClientOptions`. Retained clients
420
+ * keep their original capability. Health probes disable filesystem callbacks
421
+ * and ignore this option. Disabling is a protocol callback policy, not an OS
422
+ * sandbox for the agent's own filesystem access. The setting is not persisted.
423
+ */
424
+ fs?: boolean;
425
+ /**
426
+ * ACP terminal callback capability for new and reconnected session clients.
427
+ * Omitted defaults to enabled, matching `AcpClientOptions`. Retained clients
428
+ * keep their original capability. Health probes disable terminal callbacks
429
+ * and ignore this option. Disabling is a protocol callback policy, not an OS
430
+ * sandbox for the agent's own process access. The setting is not persisted.
431
+ */
432
+ terminal?: boolean;
416
433
  };
417
434
  type AcpFileSessionStoreOptions = {
418
435
  stateDir: string;
@@ -539,6 +556,7 @@ declare class AcpRuntimeManager {
539
556
  private canRetainPersistentSessionOwner;
540
557
  private resolveMcpServers;
541
558
  private resolveSessionPermissions;
559
+ private resolveClientCapabilities;
542
560
  private withRuntimeControlSession;
543
561
  private refreshOwnedRecordLifecycle;
544
562
  ensureSession(input: RuntimeEnsureInput): Promise<SessionRecord>;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","names":[],"sources":["../src/session/journal.ts","../src/runtime/public/contract.ts","../src/runtime/public/probe.ts","../src/runtime/engine/turn.ts","../src/runtime/engine/manager.ts","../src/runtime/public/file-session-store.ts","../src/runtime/public/errors.ts","../src/runtime/public/shared.ts","../src/runtime/public/handle-state.ts","../src/runtime/shared.ts","../src/runtime.ts"],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","names":[],"sources":["../src/session/journal.ts","../src/runtime/public/contract.ts","../src/runtime/public/probe.ts","../src/runtime/engine/turn.ts","../src/runtime/engine/manager.ts","../src/runtime/public/file-session-store.ts","../src/runtime/public/errors.ts","../src/runtime/public/shared.ts","../src/runtime/public/handle-state.ts","../src/runtime/shared.ts","../src/runtime.ts"],"mappings":"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"}
package/dist/runtime.js CHANGED
@@ -1,7 +1,7 @@
1
- import { B as serializeSessionRecordForDisk, F as readSessionRecord, I as resolveSessionRecord, O as findSession, R as assertPersistedKeyPolicy, bt as isAcpResourceNotFoundError, ht as writePrivateJsonFile, t as tryCancelOnRunningOwner, vt as extractAcpError, w as textPrompt, z as parseSessionRecord } from "./ipc-BJrvfNXr.js";
2
- import { A as applyInitialModelSelection, B as cloneSessionAcpxState, C as setSessionModeOnOwner, D as connectAndLoadSession, E as withConnectedSession, F as sessionOptionsFromRecord, G as recordSessionUpdate, I as applyConversation, J as AcpClient, K as trimConversationForRuntime, L as applyLifecycleSnapshotToRecord, M as applyRequestedModelIfAdvertised, N as setDesiredModeId, O as applyConfigOptionSelection, P as persistSessionOptions, Q as isRequestedModelUnsupportedError, R as createInitialSessionRecord, T as setSessionModelOnOwner, U as recordClientOperation, V as cloneSessionConversation, W as recordPromptSubmission, X as REQUESTED_MODEL_UNSUPPORTED_REASONS, Y as REQUESTED_MODEL_UNSUPPORTED_ERROR_CODE, Z as RequestedModelUnsupportedError, _ as cancelSessionPrompt, c as LiveSessionCheckpoint, dt as normalizeOutputError, h as ensureSession, j as applyModelSelection, k as applyConfigOptionsToRecord, l as runPromptTurn, lt as withTimeout, ot as TimeoutError, q as advertisedModelState, r as sendSession, s as DISCARD_OUTPUT_FORMATTER, st as assertControlAuthority, v as closeSession, x as setSessionConfigOptionOnOwner, z as reconcileAgentSessionId } from "./queue-owner-runtime-Cr0dWJuL.js";
3
- import { D as normalizeAgentCommandInput, a as createAgentRegistry, i as DEFAULT_AGENT_NAME } from "./agent-registry-DdKB-zia.js";
4
- import { t as watchSession } from "./watch-Dp73ph8h.js";
1
+ import { D as textPrompt, H as parseSessionRecord, R as readSessionRecord, St as isAcpResourceNotFoundError, U as serializeSessionRecordForDisk, V as assertPersistedKeyPolicy, bt as extractAcpError, j as findSession, t as tryCancelOnRunningOwner, vt as writePrivateJsonFile, z as resolveSessionRecord } from "./ipc-fMgj5vrO.js";
2
+ import { A as applyInitialModelSelection, B as cloneSessionAcpxState, C as setSessionModeOnOwner, D as connectAndLoadSession, E as withConnectedSession, F as sessionOptionsFromRecord, G as recordSessionUpdate, I as applyConversation, J as AcpClient, K as trimConversationForRuntime, L as applyLifecycleSnapshotToRecord, M as applyRequestedModelIfAdvertised, N as setDesiredModeId, O as applyConfigOptionSelection, P as persistSessionOptions, Q as isRequestedModelUnsupportedError, R as createInitialSessionRecord, T as setSessionModelOnOwner, U as recordClientOperation, V as cloneSessionConversation, W as recordPromptSubmission, X as REQUESTED_MODEL_UNSUPPORTED_REASONS, Y as REQUESTED_MODEL_UNSUPPORTED_ERROR_CODE, Z as RequestedModelUnsupportedError, _ as cancelSessionPrompt, c as LiveSessionCheckpoint, dt as normalizeOutputError, h as ensureSession, j as applyModelSelection, k as applyConfigOptionsToRecord, l as runPromptTurn, lt as withTimeout, ot as TimeoutError, q as advertisedModelState, r as sendSession, s as DISCARD_OUTPUT_FORMATTER, st as assertControlAuthority, v as closeSession, x as setSessionConfigOptionOnOwner, z as reconcileAgentSessionId } from "./queue-owner-runtime-CLwjMYNL.js";
3
+ import { D as normalizeAgentCommandInput, a as createAgentRegistry, i as DEFAULT_AGENT_NAME } from "./agent-registry-Ct2yWPW7.js";
4
+ import { t as watchSession } from "./watch-DH-zXQH2.js";
5
5
  import { fileURLToPath } from "node:url";
6
6
  import path from "node:path";
7
7
  import fs from "node:fs/promises";
@@ -23,25 +23,22 @@ function isAcpRuntimeError(value) {
23
23
  }
24
24
  //#endregion
25
25
  //#region src/runtime/engine/controls.ts
26
- /** Controls acpx implements for every backend it exposes. */
27
- const ACPX_CAPABILITIES = { controls: [
28
- "session/set_mode",
29
- "session/set_model",
30
- "session/set_config_option",
31
- "session/status"
32
- ] };
33
26
  function advertisedConfigOptionIds(record) {
34
27
  const configOptions = record?.acpx?.config_options;
35
28
  if (!configOptions) return;
36
29
  return new Set(configOptions.map((option) => option.id).filter((id) => typeof id === "string" && id.trim().length > 0));
37
30
  }
38
- /** Reports the config option keys the session last advertised, if any. */
31
+ /** Caller-owned controls and the config option keys the session last advertised. */
39
32
  function capabilitiesFromRecord(record) {
40
33
  const advertisedIds = advertisedConfigOptionIds(record);
41
- if (!advertisedIds || advertisedIds.size === 0) return ACPX_CAPABILITIES;
42
34
  return {
43
- ...ACPX_CAPABILITIES,
44
- configOptionKeys: [...advertisedIds]
35
+ controls: [
36
+ "session/set_mode",
37
+ "session/set_model",
38
+ "session/set_config_option",
39
+ "session/status"
40
+ ],
41
+ ...advertisedIds?.size ? { configOptionKeys: [...advertisedIds] } : {}
45
42
  };
46
43
  }
47
44
  function resolveSupportedConfigOptionId(record, configId) {
@@ -365,6 +362,7 @@ const TOOL_KINDS = /* @__PURE__ */ new Set([
365
362
  "execute",
366
363
  "fetch",
367
364
  "think",
365
+ "switch_mode",
368
366
  "other"
369
367
  ]);
370
368
  function createToolCallEvent(params) {
@@ -705,6 +703,8 @@ function createProbeClient(options, agentName, agentCommand, deps) {
705
703
  permissionMode: options.permissionMode,
706
704
  nonInteractivePermissions: options.nonInteractivePermissions,
707
705
  permissionPolicy: options.permissionPolicy,
706
+ fs: false,
707
+ terminal: false,
708
708
  processLifecycle: options.processLifecycle,
709
709
  processLaunchScope: {
710
710
  kind: "runtime-probe",
@@ -865,10 +865,15 @@ var AsyncEventQueue = class {
865
865
  return await waiter.promise;
866
866
  }
867
867
  async *iterate() {
868
- while (true) {
869
- const next = await this.next();
870
- if (!next) return;
871
- yield next;
868
+ try {
869
+ while (true) {
870
+ const next = await this.next();
871
+ if (!next) return;
872
+ yield next;
873
+ }
874
+ } finally {
875
+ this.close();
876
+ this.clear();
872
877
  }
873
878
  }
874
879
  };
@@ -1283,7 +1288,13 @@ var AcpRuntimeManager = class {
1283
1288
  onPermissionRequest
1284
1289
  };
1285
1290
  }
1286
- async withRuntimeControlSession(record, sessionMode, run, replacingConfigOption, authority) {
1291
+ resolveClientCapabilities() {
1292
+ return {
1293
+ fs: this.options.fs,
1294
+ terminal: this.options.terminal
1295
+ };
1296
+ }
1297
+ async withRuntimeControlSession(record, sessionMode, run, replayOptions, authority) {
1287
1298
  await this.retrySessionCleanup(record.acpxRecordId);
1288
1299
  assertControlAuthority(authority);
1289
1300
  const owner = await this.readRetainedSessionOwner(record, { consume: false });
@@ -1334,11 +1345,13 @@ var AcpRuntimeManager = class {
1334
1345
  ...record,
1335
1346
  sessionKey: record.name ?? record.acpxRecordId
1336
1347
  }),
1348
+ ...this.resolveClientCapabilities(),
1337
1349
  elicitationModes: this.options.elicitationModes,
1338
1350
  verbose: this.options.verbose,
1339
1351
  timeoutMs: this.options.timeoutMs,
1340
1352
  resumePolicy: resumePolicyForSessionMode(sessionMode),
1341
- replacingConfigOption,
1353
+ replacingMode: replayOptions?.replacingMode,
1354
+ replacingConfigOption: replayOptions?.replacingConfigOption,
1342
1355
  authority,
1343
1356
  run
1344
1357
  }));
@@ -1485,6 +1498,7 @@ var AcpRuntimeManager = class {
1485
1498
  ...agent,
1486
1499
  sessionKey: input.sessionKey
1487
1500
  }),
1501
+ ...this.resolveClientCapabilities(),
1488
1502
  elicitationModes: this.options.elicitationModes,
1489
1503
  processLifecycle: this.options.processLifecycle,
1490
1504
  processLaunchScope: {
@@ -1814,6 +1828,7 @@ var AcpRuntimeManager = class {
1814
1828
  ...record,
1815
1829
  sessionKey: record.name ?? record.acpxRecordId
1816
1830
  }),
1831
+ ...this.resolveClientCapabilities(),
1817
1832
  elicitationModes: this.options.elicitationModes,
1818
1833
  processLifecycle: this.options.processLifecycle,
1819
1834
  processLaunchScope: {
@@ -2043,7 +2058,7 @@ var AcpRuntimeManager = class {
2043
2058
  await this.withRuntimeControlSession(record, sessionMode, async ({ client, sessionId, record: connectedRecord }) => {
2044
2059
  await client.setSessionMode(sessionId, mode, authority);
2045
2060
  setDesiredModeId(connectedRecord, mode);
2046
- }, void 0, authority);
2061
+ }, { replacingMode: true }, authority);
2047
2062
  }
2048
2063
  async setModel(handle, model, sessionMode = "persistent", authority) {
2049
2064
  const recordId = handle.acpxRecordId ?? handle.sessionKey;
@@ -2060,7 +2075,7 @@ var AcpRuntimeManager = class {
2060
2075
  await this.withRuntimeControlSession(record, sessionMode, async ({ client, sessionId, record: connectedRecord }) => {
2061
2076
  const response = await client.setSessionModel(sessionId, model, advertisedModelState(connectedRecord.acpx), authority);
2062
2077
  connectedRecord.acpx = applyModelSelection(connectedRecord.acpx, model, response);
2063
- }, { key: "model" }, authority);
2078
+ }, { replacingConfigOption: { key: "model" } }, authority);
2064
2079
  }
2065
2080
  async setConfigOption(handle, key, value, sessionMode = "persistent", authority) {
2066
2081
  const recordId = handle.acpxRecordId ?? handle.sessionKey;
@@ -2080,10 +2095,10 @@ var AcpRuntimeManager = class {
2080
2095
  const response = await client.setSessionConfigOption(sessionId, configId, value, models, authority);
2081
2096
  connectedRecord.acpx = applyConfigOptionSelection(connectedRecord.acpx, configId, value, response, models?.configId);
2082
2097
  return response;
2083
- }, {
2098
+ }, { replacingConfigOption: {
2084
2099
  key,
2085
2100
  resolve: (connectedRecord) => resolveSupportedConfigOptionId(connectedRecord, key)
2086
- }, authority);
2101
+ } }, authority);
2087
2102
  }
2088
2103
  async cancel(handle) {
2089
2104
  await this.activeControllers.get(handle.acpxRecordId ?? handle.sessionKey)?.requestCancelActivePrompt();
@@ -2222,7 +2237,8 @@ var FileSessionStore = class {
2222
2237
  } catch {
2223
2238
  return;
2224
2239
  }
2225
- return parseSessionRecord(parsed) ?? void 0;
2240
+ const record = parseSessionRecord(parsed);
2241
+ return record?.acpxRecordId === sessionId ? record : void 0;
2226
2242
  }
2227
2243
  async save(record) {
2228
2244
  const persisted = serializeSessionRecordForDisk(record);
@@ -2336,7 +2352,9 @@ var SharedAcpRuntime = class {
2336
2352
  "sessionPermissions",
2337
2353
  "processLifecycle",
2338
2354
  "onPermissionRequest",
2339
- "elicitationModes"
2355
+ "elicitationModes",
2356
+ "fs",
2357
+ "terminal"
2340
2358
  ]) if (Object.hasOwn(options, name)) invalidOption(`${name} belongs to the in-process runtime and is not supported by shared sessions.`);
2341
2359
  this.options = {
2342
2360
  ...options,
@@ -2681,6 +2699,7 @@ var AcpxRuntime = class {
2681
2699
  onElicitation: input.onElicitation,
2682
2700
  onPermissionRequest: input.onPermissionRequest
2683
2701
  }));
2702
+ turnPromise.catch(() => {});
2684
2703
  return {
2685
2704
  requestId: input.requestId,
2686
2705
  get promptStarted() {
@@ -2717,7 +2736,7 @@ var AcpxRuntime = class {
2717
2736
  });
2718
2737
  }
2719
2738
  async getCapabilities(input) {
2720
- if (!input?.handle) return ACPX_CAPABILITIES;
2739
+ if (!input?.handle) return capabilitiesFromRecord(void 0);
2721
2740
  const { handle } = this.resolveManagerHandle(input.handle);
2722
2741
  return capabilitiesFromRecord(await this.options.sessionStore.load(handle.acpxRecordId ?? handle.sessionKey));
2723
2742
  }