acpx 0.19.3 → 0.19.4

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 (40) hide show
  1. package/dist/{agent-registry-DWnqUICY.js → agent-registry-kHdpsK9F.js} +16 -5
  2. package/dist/agent-registry-kHdpsK9F.js.map +1 -0
  3. package/dist/agent-registry.d.ts.map +1 -1
  4. package/dist/agent-registry.js +1 -1
  5. package/dist/{cli-C1uofM8S.js → cli-DCtHeMEi.js} +34 -46
  6. package/dist/cli-DCtHeMEi.js.map +1 -0
  7. package/dist/cli.js +11 -10
  8. package/dist/cli.js.map +1 -1
  9. package/dist/{client-CdG6nVDG.d.ts → client-DqCXdF0Q.d.ts} +3 -16
  10. package/dist/client-DqCXdF0Q.d.ts.map +1 -0
  11. package/dist/{flows-hz_Pfsp-.js → flows--1zpaEh9.js} +34 -14
  12. package/dist/flows--1zpaEh9.js.map +1 -0
  13. package/dist/flows.d.ts +1 -1
  14. package/dist/flows.js +1 -1
  15. package/dist/{invocation-options-DbZzMvKM.js → invocation-options-CvkenzCc.js} +6 -12
  16. package/dist/invocation-options-CvkenzCc.js.map +1 -0
  17. package/dist/{ipc-BW06Pbb8.js → ipc-D7zT86b9.js} +94 -20
  18. package/dist/ipc-D7zT86b9.js.map +1 -0
  19. package/dist/{output-BjeeG-cj.js → output-lylSoEBd.js} +12 -4
  20. package/dist/output-lylSoEBd.js.map +1 -0
  21. package/dist/{queue-owner-runtime-Dhr4gxNE.js → queue-owner-runtime-C0wIYowh.js} +314 -154
  22. package/dist/queue-owner-runtime-C0wIYowh.js.map +1 -0
  23. package/dist/runtime.d.ts +17 -2
  24. package/dist/runtime.d.ts.map +1 -1
  25. package/dist/runtime.js +32 -9
  26. package/dist/runtime.js.map +1 -1
  27. package/dist/{session-watch-CgfkUKLA.js → session-watch-DPOwDRf8.js} +4 -4
  28. package/dist/{session-watch-CgfkUKLA.js.map → session-watch-DPOwDRf8.js.map} +1 -1
  29. package/dist/{watch-BGdqBiNX.js → watch-H7rNOJtv.js} +2 -2
  30. package/dist/{watch-BGdqBiNX.js.map → watch-H7rNOJtv.js.map} +1 -1
  31. package/package.json +9 -8
  32. package/skills/acpx/SKILL.md +6 -1
  33. package/dist/agent-registry-DWnqUICY.js.map +0 -1
  34. package/dist/cli-C1uofM8S.js.map +0 -1
  35. package/dist/client-CdG6nVDG.d.ts.map +0 -1
  36. package/dist/flows-hz_Pfsp-.js.map +0 -1
  37. package/dist/invocation-options-DbZzMvKM.js.map +0 -1
  38. package/dist/ipc-BW06Pbb8.js.map +0 -1
  39. package/dist/output-BjeeG-cj.js.map +0 -1
  40. package/dist/queue-owner-runtime-Dhr4gxNE.js.map +0 -1
package/dist/flows.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { C as PermissionPolicy, E as PromptInput, S as PermissionMode, b as McpServer$1, t as SessionAgentOptions, x as NonInteractivePermissionPolicy, y as AuthPolicy } from "./session-options-X7LhX9BF.js";
2
- import "./client-CdG6nVDG.js";
2
+ import "./client-DqCXdF0Q.js";
3
3
  import { SetSessionConfigOptionResponse } from "@agentclientprotocol/sdk";
4
4
  import net from "node:net";
5
5
  //#region src/flows/types.d.ts
package/dist/flows.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as parseStrictJsonObject, d as checkpoint, f as compute, i as parseJsonObject, l as acp, m as shell, n as decisionEdge, o as FlowRunner, p as defineFlow, r as extractJsonObject, s as flowRunsBaseDir, t as decision, u as action } from "./flows-hz_Pfsp-.js";
1
+ import { a as parseStrictJsonObject, d as checkpoint, f as compute, i as parseJsonObject, l as acp, m as shell, n as decisionEdge, o as FlowRunner, p as defineFlow, r as extractJsonObject, s as flowRunsBaseDir, t as decision, u as action } from "./flows--1zpaEh9.js";
2
2
  export { FlowRunner, acp, action, checkpoint, compute, decision, decisionEdge, defineFlow, extractJsonObject, flowRunsBaseDir, parseJsonObject, parseStrictJsonObject, shell };
@@ -1,16 +1,10 @@
1
- import "./output-BjeeG-cj.js";
2
- import { Et as AUTH_POLICIES, Ot as NON_INTERACTIVE_PERMISSION_POLICIES, jt as PERMISSION_POLICY_ACTIONS, kt as OUTPUT_FORMATS } from "./ipc-BW06Pbb8.js";
3
- import { d as resolveAgentCommand, l as normalizeAgentName, p as resolveCanonicalAgentName, u as resolveAgentArgv } from "./agent-registry-DWnqUICY.js";
4
- import "./queue-owner-runtime-Dhr4gxNE.js";
1
+ import { o as toTimerMilliseconds } from "./output-lylSoEBd.js";
2
+ import { Et as AUTH_POLICIES, Ot as NON_INTERACTIVE_PERMISSION_POLICIES, jt as PERMISSION_POLICY_ACTIONS, kt as OUTPUT_FORMATS } from "./ipc-D7zT86b9.js";
3
+ import { d as resolveAgentCommand, l as normalizeAgentName, p as resolveCanonicalAgentName, u as resolveAgentArgv } from "./agent-registry-kHdpsK9F.js";
4
+ import "./queue-owner-runtime-C0wIYowh.js";
5
5
  import path from "node:path";
6
6
  import { InvalidArgumentError } from "commander";
7
7
  import fs from "node:fs/promises";
8
- function toTimerMilliseconds(seconds, allowZero) {
9
- if (allowZero && seconds === 0) return 0;
10
- const milliseconds = Math.max(1, Math.round(seconds * 1e3));
11
- return milliseconds <= 2147483647 ? milliseconds : void 0;
12
- }
13
- //#endregion
14
8
  //#region src/cli/flags.ts
15
9
  function hasExplicitPermissionModeFlag(flags) {
16
10
  return flags.approveAll === true || flags.approveReads === true || flags.denyAll === true;
@@ -346,6 +340,6 @@ async function resolvePermissionPolicyFromFlags(globalFlags) {
346
340
  }
347
341
  }
348
342
  //#endregion
349
- export { resolvePermissionMode as C, toTimerMilliseconds as D, resolveSessionsListFlags as E, resolveOutputPolicy as S, resolveSessionNameFromFlags as T, parseSessionName as _, addGlobalFlags as a, resolveAgentInvocation as b, addSessionOption as c, parseDaysOlderThan as d, parseHistoryLimit as f, parsePruneBeforeDate as g, parseOutputFormat as h, addExecConfigOption as i, hasExplicitPermissionModeFlag as l, parseNonEmptyValue as m, sessionConnectionOptions as n, addPromptInputOption as o, parseMaxTurns as p, sessionOptionsFromGlobalFlags as r, addSessionNameOption as s, resolvePermissionPolicyFromFlags as t, parseAllowedTools as u, parseTimeoutSeconds as v, resolvePromptFlags as w, resolveGlobalFlags as x, parseTtlSeconds as y };
343
+ export { resolvePermissionMode as C, resolveSessionsListFlags as E, resolveOutputPolicy as S, resolveSessionNameFromFlags as T, parseSessionName as _, addGlobalFlags as a, resolveAgentInvocation as b, addSessionOption as c, parseDaysOlderThan as d, parseHistoryLimit as f, parsePruneBeforeDate as g, parseOutputFormat as h, addExecConfigOption as i, hasExplicitPermissionModeFlag as l, parseNonEmptyValue as m, sessionConnectionOptions as n, addPromptInputOption as o, parseMaxTurns as p, sessionOptionsFromGlobalFlags as r, addSessionNameOption as s, resolvePermissionPolicyFromFlags as t, parseAllowedTools as u, parseTimeoutSeconds as v, resolvePromptFlags as w, resolveGlobalFlags as x, parseTtlSeconds as y };
350
344
 
351
- //# sourceMappingURL=invocation-options-DbZzMvKM.js.map
345
+ //# sourceMappingURL=invocation-options-CvkenzCc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invocation-options-CvkenzCc.js","names":["resolveAgentCommandFromRegistry"],"sources":["../src/cli/flags.ts","../src/permission-policy.ts","../src/cli/invocation-options.ts"],"sourcesContent":["import path from \"node:path\";\nimport { InvalidArgumentError } from \"commander\";\nimport type { Command } from \"commander\";\nimport {\n DEFAULT_AGENT_NAME,\n normalizeAgentName,\n resolveCanonicalAgentName,\n resolveAgentArgv,\n resolveAgentCommand as resolveAgentCommandFromRegistry,\n} from \"../agent-registry.js\";\nimport type { SystemPromptOption } from \"../runtime/engine/session-options.js\";\nimport { DEFAULT_QUEUE_OWNER_TTL_MS } from \"../session/session.js\";\nimport {\n AUTH_POLICIES,\n NON_INTERACTIVE_PERMISSION_POLICIES,\n OUTPUT_FORMATS,\n type AuthPolicy,\n type NonInteractivePermissionPolicy,\n type OutputFormat,\n type OutputPolicy,\n type PermissionMode,\n} from \"../types.js\";\nimport type { ResolvedAcpxConfig } from \"./config.js\";\nimport { toTimerMilliseconds } from \"./timer-duration.js\";\n\nexport type PermissionFlags = {\n approveAll?: boolean;\n approveReads?: boolean;\n denyAll?: boolean;\n};\n\nexport function hasExplicitPermissionModeFlag(flags: PermissionFlags): boolean {\n return flags.approveAll === true || flags.approveReads === true || flags.denyAll === true;\n}\n\nexport type GlobalFlags = PermissionFlags & {\n agent?: string;\n cwd: string;\n authPolicy?: AuthPolicy;\n nonInteractivePermissions: NonInteractivePermissionPolicy;\n jsonStrict?: boolean;\n suppressReads?: boolean;\n fs?: boolean;\n terminal?: boolean;\n timeout?: number;\n ttl: number;\n verbose?: boolean;\n format: OutputFormat;\n model?: string;\n allowedTools?: string[];\n maxTurns?: number;\n systemPrompt?: SystemPromptOption;\n promptRetries?: number;\n permissionPolicy?: string;\n};\n\nexport type PromptFlags = {\n session?: string;\n wait?: boolean;\n file?: string;\n};\n\nexport type ExecFlags = {\n file?: string;\n configOption?: SessionConfigOptionAssignment[];\n};\n\nexport type SessionConfigOptionAssignment = {\n configId: string;\n value: string;\n};\n\nexport type SessionsNewFlags = {\n name?: string;\n resumeSession?: string;\n};\n\nexport type SessionsHistoryFlags = {\n limit: number;\n};\n\nexport type SessionsListFlags = {\n cursor?: string;\n filterCwd?: string;\n local?: boolean;\n};\n\nexport type SessionsExportFlags = {\n output: string;\n sourceCwd?: string;\n};\n\nexport type SessionsImportFlags = {\n name?: string;\n destinationCwd?: string;\n};\n\nexport type StatusFlags = {\n session?: string;\n};\n\ntype SessionSelectionFlags = {\n session?: string;\n};\n\nexport type SessionsPruneFlags = {\n dryRun?: boolean;\n before?: Date;\n olderThan?: number;\n includeHistory?: boolean;\n};\n\nfunction stringOption(value: unknown): string | undefined {\n return typeof value === \"string\" ? value : undefined;\n}\n\nfunction numberOption(value: unknown): number | undefined {\n return typeof value === \"number\" ? value : undefined;\n}\n\nfunction stringArrayOption(value: unknown): string[] | undefined {\n return Array.isArray(value) && value.every((entry) => typeof entry === \"string\")\n ? value\n : undefined;\n}\n\nfunction nonEmptyStringOption(value: unknown): string | undefined {\n return typeof value === \"string\" && value.length > 0 ? value : undefined;\n}\n\nexport function parseOutputFormat(value: string): OutputFormat {\n if (!OUTPUT_FORMATS.includes(value as OutputFormat)) {\n throw new InvalidArgumentError(\n `Invalid format \"${value}\". Expected one of: ${OUTPUT_FORMATS.join(\", \")}`,\n );\n }\n return value as OutputFormat;\n}\n\nexport function parseAuthPolicy(value: string): AuthPolicy {\n if (!AUTH_POLICIES.includes(value as AuthPolicy)) {\n throw new InvalidArgumentError(\n `Invalid auth policy \"${value}\". Expected one of: ${AUTH_POLICIES.join(\", \")}`,\n );\n }\n return value as AuthPolicy;\n}\n\nexport function parseNonInteractivePermissionPolicy(value: string): NonInteractivePermissionPolicy {\n if (!NON_INTERACTIVE_PERMISSION_POLICIES.includes(value as NonInteractivePermissionPolicy)) {\n throw new InvalidArgumentError(\n `Invalid non-interactive permission policy \"${value}\". Expected one of: ${NON_INTERACTIVE_PERMISSION_POLICIES.join(\", \")}`,\n );\n }\n return value as NonInteractivePermissionPolicy;\n}\n\nexport function parseTimeoutSeconds(value: string): number {\n const parsed = Number(value);\n if (!Number.isFinite(parsed) || parsed <= 0) {\n throw new InvalidArgumentError(\"Timeout must be a positive number of seconds\");\n }\n const milliseconds = toTimerMilliseconds(parsed, false);\n if (milliseconds === undefined) {\n throw new InvalidArgumentError(\"Timeout exceeds the maximum supported timer delay\");\n }\n return milliseconds;\n}\n\nexport function parseTtlSeconds(value: string): number {\n const parsed = Number(value);\n if (!Number.isFinite(parsed) || parsed < 0) {\n throw new InvalidArgumentError(\"TTL must be a non-negative number of seconds\");\n }\n const milliseconds = toTimerMilliseconds(parsed, true);\n if (milliseconds === undefined) {\n throw new InvalidArgumentError(\"TTL exceeds the maximum supported timer delay\");\n }\n return milliseconds;\n}\n\nexport function parseSessionName(value: string): string {\n const trimmed = value.trim();\n if (trimmed.length === 0) {\n throw new InvalidArgumentError(\"Session name must not be empty\");\n }\n return trimmed;\n}\n\nexport function parseNonEmptyValue(label: string, value: string): string {\n const trimmed = value.trim();\n if (trimmed.length === 0) {\n throw new InvalidArgumentError(`${label} must not be empty`);\n }\n return trimmed;\n}\n\nexport function parseSessionConfigOptionAssignment(value: string): SessionConfigOptionAssignment {\n const separator = value.indexOf(\"=\");\n if (separator <= 0 || separator === value.length - 1) {\n throw new InvalidArgumentError(\n 'Session config option must use \"<key>=<value>\" with non-empty parts',\n );\n }\n\n const configId = value.slice(0, separator).trim();\n const configValue = value.slice(separator + 1).trim();\n if (configId.length === 0 || configValue.length === 0) {\n throw new InvalidArgumentError(\n 'Session config option must use \"<key>=<value>\" with non-empty parts',\n );\n }\n return { configId, value: configValue };\n}\n\nfunction collectSessionConfigOptionAssignment(\n value: string,\n previous: SessionConfigOptionAssignment[] = [],\n): SessionConfigOptionAssignment[] {\n return [...previous, parseSessionConfigOptionAssignment(value)];\n}\n\nexport function parseHistoryLimit(value: string): number {\n const parsed = Number(value);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new InvalidArgumentError(\"Limit must be a positive integer\");\n }\n return parsed;\n}\n\nexport function parseDaysOlderThan(value: string): number {\n const parsed = Number(value);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new InvalidArgumentError(\"--older-than must be a positive integer number of days\");\n }\n return parsed;\n}\n\nexport function parsePruneBeforeDate(value: string): Date {\n const date = new Date(value);\n if (Number.isNaN(date.getTime())) {\n throw new InvalidArgumentError(\n `--before must be a valid date (e.g. 2026-01-01 or 2026-01-01T00:00:00Z)`,\n );\n }\n return date;\n}\n\nexport function parseAllowedTools(value: string): string[] {\n const trimmed = value.trim();\n if (trimmed.length === 0) {\n return [];\n }\n\n const items = trimmed.split(\",\").map((item) => item.trim());\n if (items.some((item) => item.length === 0)) {\n throw new InvalidArgumentError(\n \"Allowed tools must be a comma-separated list without empty entries\",\n );\n }\n\n return items;\n}\n\nexport function parseMaxTurns(value: string): number {\n const parsed = Number(value);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new InvalidArgumentError(\"Max turns must be a positive integer\");\n }\n return parsed;\n}\n\nexport function resolveSystemPromptFlag(opts: {\n systemPrompt?: unknown;\n appendSystemPrompt?: unknown;\n}): SystemPromptOption | undefined {\n const replace = nonEmptyStringOption(opts.systemPrompt);\n const append = nonEmptyStringOption(opts.appendSystemPrompt);\n\n if (replace !== undefined && append !== undefined) {\n throw new InvalidArgumentError(\"Use only one of --system-prompt or --append-system-prompt\");\n }\n if (replace !== undefined) {\n return replace;\n }\n if (append !== undefined) {\n return { append };\n }\n return undefined;\n}\n\nexport function parsePromptRetries(value: string): number {\n const parsed = Number(value);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new InvalidArgumentError(\"Prompt retries must be a non-negative integer\");\n }\n return parsed;\n}\n\nexport function resolvePermissionMode(\n flags: PermissionFlags,\n defaultMode: PermissionMode,\n): PermissionMode {\n const selected = [flags.approveAll, flags.approveReads, flags.denyAll].filter(Boolean).length;\n\n if (selected > 1) {\n throw new InvalidArgumentError(\n \"Use only one permission mode: --approve-all, --approve-reads, or --deny-all\",\n );\n }\n\n if (flags.approveAll) {\n return \"approve-all\";\n }\n if (flags.approveReads) {\n return \"approve-reads\";\n }\n if (flags.denyAll) {\n return \"deny-all\";\n }\n\n return defaultMode;\n}\n\nexport function addGlobalFlags(command: Command): Command {\n return command\n .option(\"--agent <command>\", \"Raw ACP agent command (escape hatch)\")\n .option(\"--cwd <dir>\", \"Working directory\", process.cwd())\n .option(\n \"--auth-policy <policy>\",\n \"Authentication policy: skip or fail when auth is required\",\n parseAuthPolicy,\n )\n .option(\"--approve-all\", \"Auto-approve all permission requests\")\n .option(\"--approve-reads\", \"Auto-approve read/search requests and prompt for writes\")\n .option(\"--deny-all\", \"Deny all permission requests\")\n .option(\n \"--non-interactive-permissions <policy>\",\n \"When prompting is unavailable: deny or fail\",\n parseNonInteractivePermissionPolicy,\n )\n .option(\n \"--permission-policy <json-or-file>\",\n \"Permission policy JSON or path (autoApprove, autoDeny, escalate, defaultAction)\",\n )\n .option(\"--policy <json-or-file>\", \"Alias for --permission-policy\")\n .option(\"--format <fmt>\", \"Output format: text, json, quiet\", parseOutputFormat)\n .option(\"--suppress-reads\", \"Suppress raw read-file contents in output\")\n .option(\"--model <id>\", \"Agent model id\")\n .option(\n \"--allowed-tools <list>\",\n 'Allowed tool names as a comma-separated list (use \"\" for no tools)',\n parseAllowedTools,\n )\n .option(\"--max-turns <count>\", \"Maximum turns for the session\", parseMaxTurns)\n .option(\n \"--system-prompt <text>\",\n \"Replace the agent system prompt (claude-agent-acp via ACP _meta.systemPrompt)\",\n (value: string) => parseNonEmptyValue(\"System prompt\", value),\n )\n .option(\n \"--append-system-prompt <text>\",\n \"Append text to the agent system prompt (claude-agent-acp via ACP _meta.systemPrompt.append)\",\n (value: string) => parseNonEmptyValue(\"Append system prompt\", value),\n )\n .option(\n \"--prompt-retries <count>\",\n \"Retry failed prompt turns on transient errors (default: 0)\",\n parsePromptRetries,\n )\n .option(\n \"--json-strict\",\n \"Strict JSON mode: requires --format json and suppresses non-JSON stderr output\",\n )\n .option(\"--no-fs\", \"Do not advertise ACP filesystem capabilities\")\n .option(\"--no-terminal\", \"Do not advertise ACP terminal capability\")\n .option(\"--timeout <seconds>\", \"Maximum time to wait for agent response\", parseTimeoutSeconds)\n .option(\n \"--ttl <seconds>\",\n \"Queue owner idle TTL before shutdown (0 = keep alive forever) (default: 300)\",\n parseTtlSeconds,\n )\n .option(\n \"--mcp-config <path>\",\n \"Load MCP servers from a JSON config file instead of project/global mcpServers\",\n )\n .option(\"--verbose\", \"Enable verbose debug logs\");\n}\n\nexport function addSessionOption(command: Command): Command {\n return command\n .option(\"-s, --session <name>\", \"Use named session instead of cwd default\", parseSessionName)\n .option(\n \"--no-wait\",\n \"Queue prompt and return immediately when another prompt is already running\",\n );\n}\n\nexport function addSessionNameOption(command: Command): Command {\n return command.option(\n \"-s, --session <name>\",\n \"Use named session instead of cwd default\",\n parseSessionName,\n );\n}\n\nexport function resolveSessionNameFromFlags(\n flags: SessionSelectionFlags,\n command: Command,\n): string | undefined {\n const directSession = parseOptionalSessionName(flags.session);\n if (directSession !== undefined) {\n return directSession;\n }\n\n // Commander parses options on the parent command when flags appear before the\n // subcommand (e.g. `acpx codex -s foo cancel`). Use optsWithGlobals() so\n // subcommands can still access those values.\n const allOpts = command.optsWithGlobals<Record<string, unknown>>();\n return parseOptionalSessionName(allOpts.session);\n}\n\nfunction parseOptionalSessionName(value: unknown): string | undefined {\n const session = stringOption(value);\n return session === undefined ? undefined : parseSessionName(session);\n}\n\nfunction resolveCommandOption(command: Command, key: string, fallback: unknown): unknown {\n // Explicit child values win; a child's --no-wait default must not hide a parent flag.\n for (let current: Command | null = command; current; current = current.parent) {\n if (current.getOptionValueSource(key) === \"cli\") {\n return current.opts<Record<string, unknown>>()[key];\n }\n }\n return fallback;\n}\n\nexport function resolvePromptFlags(flags: PromptFlags, command: Command): PromptFlags {\n return {\n ...flags,\n file: stringOption(resolveCommandOption(command, \"file\", flags.file)),\n wait: resolveCommandOption(command, \"wait\", flags.wait) !== false,\n };\n}\n\nexport function resolveSessionsListFlags(\n flags: SessionsListFlags,\n command: Command,\n): SessionsListFlags {\n return {\n cursor: stringOption(resolveCommandOption(command, \"cursor\", flags.cursor)),\n filterCwd: stringOption(resolveCommandOption(command, \"filterCwd\", flags.filterCwd)),\n local: resolveCommandOption(command, \"local\", flags.local) === true,\n };\n}\n\nexport function addPromptInputOption(command: Command): Command {\n return command.option(\"-f, --file <path>\", \"Read prompt text from file path (use - for stdin)\");\n}\n\nexport function addExecConfigOption(command: Command): Command {\n return command.option(\n \"--config-option <key=value>\",\n \"Set an ACP session config option before the one-shot prompt (repeatable)\",\n collectSessionConfigOptionAssignment,\n );\n}\n\nexport function resolveGlobalFlags(command: Command, config: ResolvedAcpxConfig): GlobalFlags {\n const opts = command.optsWithGlobals<Record<string, unknown>>();\n const format = parseOutputFormat(\n opts.json === true ? \"json\" : (stringOption(opts.format) ?? config.format ?? \"text\"),\n );\n const jsonStrict = opts.jsonStrict === true;\n const verbose = opts.verbose === true;\n assertOutputFlagCompatibility(format, jsonStrict, verbose);\n\n return {\n agent: resolveAgentOverride(stringOption(opts.agent)),\n cwd: resolveCwdOption(opts.cwd),\n authPolicy: resolveAuthPolicy(opts.authPolicy, config),\n nonInteractivePermissions: resolveNonInteractivePermissions(\n opts.nonInteractivePermissions,\n config,\n ),\n permissionPolicy: resolvePermissionPolicyOption(opts),\n jsonStrict,\n suppressReads: opts.suppressReads === true,\n fs: resolveCapabilityOption(opts.fs),\n terminal: resolveCapabilityOption(opts.terminal),\n timeout: resolveTimeoutOption(opts.timeout, config),\n ttl: resolveTtlOption(opts.ttl, config),\n verbose,\n format,\n model: resolveModelOption(opts.model),\n allowedTools: stringArrayOption(opts.allowedTools),\n maxTurns: numberOption(opts.maxTurns),\n systemPrompt: resolveSystemPromptFlag(opts),\n promptRetries: numberOption(opts.promptRetries),\n approveAll: opts.approveAll ? true : undefined,\n approveReads: opts.approveReads ? true : undefined,\n denyAll: opts.denyAll ? true : undefined,\n };\n}\n\nfunction resolveCwdOption(value: unknown): string {\n return stringOption(value) ?? process.cwd();\n}\n\nfunction resolveAuthPolicy(optsValue: unknown, config: ResolvedAcpxConfig): AuthPolicy {\n const value = stringOption(optsValue);\n return value === undefined ? config.authPolicy : parseAuthPolicy(value);\n}\n\nfunction resolveNonInteractivePermissions(\n optsValue: unknown,\n config: ResolvedAcpxConfig,\n): NonInteractivePermissionPolicy {\n const value = stringOption(optsValue);\n return value === undefined\n ? config.nonInteractivePermissions\n : parseNonInteractivePermissionPolicy(value);\n}\n\nfunction resolvePermissionPolicyOption(opts: Record<string, unknown>): string | undefined {\n const primary = stringOption(opts.permissionPolicy);\n const alias = stringOption(opts.policy);\n if (primary !== undefined && alias !== undefined && primary !== alias) {\n throw new InvalidArgumentError(\n \"Use only one permission policy flag: --permission-policy or --policy\",\n );\n }\n return primary ?? alias;\n}\n\nfunction resolveCapabilityOption(value: unknown): boolean | undefined {\n return value === false ? false : undefined;\n}\n\nfunction resolveTimeoutOption(value: unknown, config: ResolvedAcpxConfig): number | undefined {\n return numberOption(value) ?? config.timeoutMs;\n}\n\nfunction resolveTtlOption(value: unknown, config: ResolvedAcpxConfig): number {\n return numberOption(value) ?? config.ttlMs ?? DEFAULT_QUEUE_OWNER_TTL_MS;\n}\n\nfunction assertOutputFlagCompatibility(\n format: OutputFormat,\n jsonStrict: boolean,\n verbose: boolean,\n): void {\n if (jsonStrict && format !== \"json\") {\n throw new InvalidArgumentError(\"--json-strict requires --format json\");\n }\n\n if (jsonStrict && verbose) {\n throw new InvalidArgumentError(\"--json-strict cannot be combined with --verbose\");\n }\n}\n\nfunction resolveModelOption(value: unknown): string | undefined {\n const model = stringOption(value);\n return model === undefined ? undefined : parseNonEmptyValue(\"Model\", model);\n}\n\nfunction resolveAgentOverride(value: string | undefined): string | undefined {\n return value === undefined ? undefined : parseNonEmptyValue(\"Agent command\", value);\n}\n\nexport function resolveOutputPolicy(format: OutputFormat, jsonStrict: boolean): OutputPolicy {\n return {\n format,\n jsonStrict,\n suppressReads: false,\n suppressNonJsonStderr: jsonStrict,\n queueErrorAlreadyEmitted: format !== \"quiet\",\n suppressSdkConsoleErrors: jsonStrict || format === \"quiet\",\n };\n}\n\nexport function resolveAgentInvocation(\n explicitAgentName: string | undefined,\n globalFlags: GlobalFlags,\n config: ResolvedAcpxConfig,\n): {\n agentName: string;\n agentCommand: string;\n agentArgv?: string[];\n cwd: string;\n} {\n const override = resolveAgentOverride(globalFlags.agent);\n if (override !== undefined && explicitAgentName !== undefined) {\n throw new InvalidArgumentError(\"Do not combine positional agent with --agent override\");\n }\n\n const agentName = explicitAgentName ?? config.defaultAgent ?? DEFAULT_AGENT_NAME;\n const command = resolveInvocationCommand(agentName, override, config);\n\n return {\n agentName,\n ...command,\n cwd: path.resolve(globalFlags.cwd),\n };\n}\n\nfunction resolveInvocationCommand(\n agentName: string,\n override: string | undefined,\n config: ResolvedAcpxConfig,\n): { agentCommand: string; agentArgv?: string[] } {\n if (override !== undefined) {\n return { agentCommand: override };\n }\n const normalizedAgentName = normalizeAgentName(agentName);\n const canonicalAgentName = resolveCanonicalAgentName(agentName);\n const configuredAgent = Object.hasOwn(config.agents, normalizedAgentName)\n ? config.agents[normalizedAgentName]\n : Object.hasOwn(config.agents, canonicalAgentName)\n ? config.agents[canonicalAgentName]\n : undefined;\n if (configuredAgent) {\n return {\n agentCommand: configuredAgent.command,\n ...(configuredAgent.argv ? { agentArgv: [...configuredAgent.argv] } : {}),\n };\n }\n const agentArgv = resolveAgentArgv(agentName);\n return {\n agentCommand: resolveAgentCommandFromRegistry(agentName),\n ...(agentArgv ? { agentArgv } : {}),\n };\n}\n","import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport {\n PERMISSION_POLICY_ACTIONS,\n type PermissionPolicy,\n type PermissionPolicyAction,\n} from \"./types.js\";\n\nfunction asRecord(value: unknown): Record<string, unknown> | undefined {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return undefined;\n }\n return value as Record<string, unknown>;\n}\n\nfunction parseRuleList(value: unknown, key: string, source: string): string[] | undefined {\n if (value == null) {\n return undefined;\n }\n if (!Array.isArray(value)) {\n throw new Error(`${source}: permission policy ${key} must be an array of strings`);\n }\n\n const parsed = value.map((entry) => {\n if (typeof entry !== \"string\" || entry.trim().length === 0) {\n throw new Error(`${source}: permission policy ${key} must contain only non-empty strings`);\n }\n return entry.trim();\n });\n\n return parsed;\n}\n\nfunction isPermissionPolicyAction(value: unknown): value is PermissionPolicyAction {\n return (\n typeof value === \"string\" && PERMISSION_POLICY_ACTIONS.includes(value as PermissionPolicyAction)\n );\n}\n\nfunction parseDefaultAction(\n value: unknown,\n source: string,\n): PermissionPolicy[\"defaultAction\"] | undefined {\n if (value == null) {\n return undefined;\n }\n if (!isPermissionPolicyAction(value)) {\n throw new Error(\n `${source}: permission policy defaultAction must be one of ${PERMISSION_POLICY_ACTIONS.join(\", \")}`,\n );\n }\n return value;\n}\n\nfunction assignRuleList(\n policy: PermissionPolicy,\n key: \"autoApprove\" | \"autoDeny\" | \"escalate\",\n value: string[] | undefined,\n): void {\n if (value) {\n policy[key] = value;\n }\n}\n\nexport function parsePermissionPolicy(\n value: unknown,\n source = \"permission policy\",\n): PermissionPolicy {\n const record = asRecord(value);\n if (!record) {\n throw new Error(`${source}: permission policy must be a JSON object`);\n }\n\n const policy: PermissionPolicy = {};\n assignRuleList(policy, \"autoApprove\", parseRuleList(record.autoApprove, \"autoApprove\", source));\n assignRuleList(policy, \"autoDeny\", parseRuleList(record.autoDeny, \"autoDeny\", source));\n assignRuleList(policy, \"escalate\", parseRuleList(record.escalate, \"escalate\", source));\n\n const defaultAction = parseDefaultAction(record.defaultAction, source);\n if (defaultAction) {\n policy.defaultAction = defaultAction;\n }\n\n return policy;\n}\n\nexport async function loadPermissionPolicySpec(\n spec: string | undefined,\n cwd: string,\n): Promise<PermissionPolicy | undefined> {\n const trimmed = spec?.trim();\n if (!trimmed) {\n return undefined;\n }\n\n if (trimmed.startsWith(\"{\")) {\n return parsePermissionPolicy(JSON.parse(trimmed), \"--permission-policy\");\n }\n\n const policyPath = path.resolve(cwd, trimmed);\n const raw = await fs.readFile(policyPath, \"utf8\");\n return parsePermissionPolicy(JSON.parse(raw), policyPath);\n}\n","import { InvalidArgumentError } from \"commander\";\nimport { loadPermissionPolicySpec } from \"../permission-policy.js\";\nimport type {\n SessionConnectionOptions,\n SessionCreateOptions,\n} from \"../session/execution/contracts.js\";\nimport type { PermissionPolicy } from \"../types.js\";\nimport type { ResolvedAcpxConfig } from \"./config.js\";\nimport type { GlobalFlags } from \"./flags.js\";\n\nexport function sessionOptionsFromGlobalFlags(\n globalFlags: GlobalFlags,\n): NonNullable<SessionCreateOptions[\"sessionOptions\"]> {\n return {\n model: globalFlags.model,\n allowedTools: globalFlags.allowedTools,\n maxTurns: globalFlags.maxTurns,\n systemPrompt: globalFlags.systemPrompt,\n };\n}\n\nexport function sessionConnectionOptions(\n globalFlags: GlobalFlags,\n config: ResolvedAcpxConfig,\n): SessionConnectionOptions {\n return {\n mcpServers: config.mcpServers,\n nonInteractivePermissions: globalFlags.nonInteractivePermissions,\n authCredentials: config.auth,\n authPolicy: globalFlags.authPolicy,\n fs: globalFlags.fs,\n terminal: globalFlags.terminal,\n timeoutMs: globalFlags.timeout,\n verbose: globalFlags.verbose,\n };\n}\n\nexport async function resolvePermissionPolicyFromFlags(\n globalFlags: GlobalFlags,\n): Promise<PermissionPolicy | undefined> {\n try {\n return await loadPermissionPolicySpec(globalFlags.permissionPolicy, globalFlags.cwd);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new InvalidArgumentError(`Invalid permission policy: ${message}`);\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { C as PROCESS_HELPER_TIMEOUT_MS, E as isChildProcessRunning, N as runTimedExecFile, S as PROCESS_HELPER_MAX_BUFFER_BYTES, n as AGENT_REGISTRY, r as BUILT_IN_AGENT_PACKAGES, t as AGENT_ARGV_REGISTRY } from "./agent-registry-DWnqUICY.js";
1
+ import { C as PROCESS_HELPER_TIMEOUT_MS, E as isChildProcessRunning, N as runTimedExecFile, P as splitCommandLine, S as PROCESS_HELPER_MAX_BUFFER_BYTES, n as AGENT_REGISTRY, r as BUILT_IN_AGENT_PACKAGES, t as AGENT_ARGV_REGISTRY } from "./agent-registry-kHdpsK9F.js";
2
2
  import fs, { statSync } from "node:fs";
3
3
  import path from "node:path";
4
4
  import fs$1 from "node:fs/promises";
@@ -1264,7 +1264,8 @@ const LEGACY_AGENT_COMMANDS = {
1264
1264
  pi: [
1265
1265
  "npx pi-acp",
1266
1266
  "npx pi-acp@^0.0.22",
1267
- "npx pi-acp@^0.0.26"
1267
+ "npx pi-acp@^0.0.26",
1268
+ "npx pi-acp@^0.0.31"
1268
1269
  ],
1269
1270
  codex: [
1270
1271
  "npx @zed-industries/codex-acp",
@@ -1283,10 +1284,19 @@ const LEGACY_AGENT_COMMANDS = {
1283
1284
  "npx -y @zed-industries/claude-agent-acp@^0.24.2",
1284
1285
  "npx -y @zed-industries/claude-agent-acp@^0.25.0",
1285
1286
  "npx -y @zed-industries/claude-agent-acp@^0.31.0",
1287
+ "npx -y @agentclientprotocol/claude-agent-acp@^0.24.2",
1288
+ "npx -y @agentclientprotocol/claude-agent-acp@^0.25.0",
1289
+ "npx -y @agentclientprotocol/claude-agent-acp@^0.31.0",
1286
1290
  "npx -y @agentclientprotocol/claude-agent-acp@^0.36.1",
1287
1291
  "npx -y @agentclientprotocol/claude-agent-acp@^0.37.0",
1292
+ "npx -y @agentclientprotocol/claude-agent-acp@^0.60.0",
1293
+ "npx -y @agentclientprotocol/claude-agent-acp@^0.76.0",
1294
+ "npm exec @agentclientprotocol/claude-agent-acp@^0.25.0",
1295
+ "npm exec @agentclientprotocol/claude-agent-acp@^0.31.0",
1288
1296
  "npm exec @agentclientprotocol/claude-agent-acp@^0.36.1",
1289
- "npm exec @agentclientprotocol/claude-agent-acp@^0.37.0"
1297
+ "npm exec @agentclientprotocol/claude-agent-acp@^0.37.0",
1298
+ "npm exec @agentclientprotocol/claude-agent-acp@^0.60.0",
1299
+ "npm exec @agentclientprotocol/claude-agent-acp@^0.76.0"
1290
1300
  ],
1291
1301
  gemini: ["gemini", "gemini --experimental-acp"],
1292
1302
  kiro: ["kiro-cli acp"],
@@ -1297,10 +1307,52 @@ function currentArgv(name) {
1297
1307
  const argv = AGENT_ARGV_REGISTRY[name];
1298
1308
  return argv ? [...argv] : void 0;
1299
1309
  }
1310
+ function isFallbackCommand(name, agentCommand) {
1311
+ return (BUILT_IN_AGENT_PACKAGES[name]?.legacyFallbackCommands ?? []).includes(agentCommand);
1312
+ }
1313
+ /** Built-in agent whose current or earlier default command is exactly `agentCommand`. */
1314
+ function builtInAgentForCommand(agentCommand) {
1315
+ return Object.keys(AGENT_REGISTRY).find((name) => AGENT_REGISTRY[name] === agentCommand) ?? Object.keys(BUILT_IN_AGENT_PACKAGES).find((name) => isFallbackCommand(name, agentCommand)) ?? Object.keys(LEGACY_AGENT_COMMANDS).find((name) => LEGACY_AGENT_COMMANDS[name].includes(agentCommand));
1316
+ }
1300
1317
  function resolveAgentArgvForCommand(agentCommand) {
1301
- for (const [name, command] of Object.entries(AGENT_REGISTRY)) if (command === agentCommand) return currentArgv(name);
1302
- for (const [name, spec] of Object.entries(BUILT_IN_AGENT_PACKAGES)) if ((spec.legacyFallbackCommands ?? []).includes(agentCommand)) return currentArgv(name);
1303
- for (const [name, commands] of Object.entries(LEGACY_AGENT_COMMANDS)) if (commands.includes(agentCommand)) return currentArgv(name);
1318
+ const name = builtInAgentForCommand(agentCommand);
1319
+ return name ? currentArgv(name) : void 0;
1320
+ }
1321
+ function commandArgv(agentCommand) {
1322
+ const { command, args } = splitCommandLine(agentCommand);
1323
+ return [command, ...args];
1324
+ }
1325
+ function sameArgv(left, right) {
1326
+ return left.length === right.length && left.every((value, index) => value === right[index]);
1327
+ }
1328
+ function launchesBuiltIn(agentCommand, agentArgv, name) {
1329
+ return agentArgv === void 0 || sameArgv(agentArgv, commandArgv(agentCommand)) || sameArgv(agentArgv, AGENT_ARGV_REGISTRY[name] ?? []);
1330
+ }
1331
+ /**
1332
+ * Maps a saved launch identity from an earlier built-in default onto the current
1333
+ * built-in command and argv, so agent-scoped lookup keeps finding the session
1334
+ * after an adapter range change. Identities with a custom argv, and commands
1335
+ * acpx never shipped as a built-in default, are returned unchanged.
1336
+ */
1337
+ function migrateBuiltInAgentIdentity(agentCommand, agentArgv) {
1338
+ const name = builtInAgentForCommand(agentCommand);
1339
+ const current = name ? AGENT_REGISTRY[name] : void 0;
1340
+ if (!name || !current || current === agentCommand) return {
1341
+ agentCommand,
1342
+ agentArgv
1343
+ };
1344
+ if (!launchesBuiltIn(agentCommand, agentArgv, name)) return {
1345
+ agentCommand,
1346
+ agentArgv
1347
+ };
1348
+ return {
1349
+ agentCommand: current,
1350
+ agentArgv: currentArgv(name)
1351
+ };
1352
+ }
1353
+ /** The agent command a session saved under `agentCommand` is filed under after migration. */
1354
+ function canonicalAgentCommand(agentCommand) {
1355
+ return migrateBuiltInAgentIdentity(agentCommand).agentCommand;
1304
1356
  }
1305
1357
  //#endregion
1306
1358
  //#region src/session/persistence/parse.ts
@@ -1317,8 +1369,12 @@ function isStringArray(value) {
1317
1369
  function parseOptionalAgentArgv(value) {
1318
1370
  return isStringArray(value) && value.length > 0 && value[0]?.length > 0 ? value : void 0;
1319
1371
  }
1320
- function parsePersistedAgentArgv(record) {
1321
- return parseOptionalAgentArgv(record.agent_argv) ?? (typeof record.agent_command === "string" ? resolveAgentArgvForCommand(record.agent_command) : void 0);
1372
+ function parsePersistedAgentIdentity(agentCommand, rawArgv) {
1373
+ const identity = migrateBuiltInAgentIdentity(agentCommand, parseOptionalAgentArgv(rawArgv));
1374
+ return {
1375
+ agentCommand: identity.agentCommand,
1376
+ agentArgv: identity.agentArgv ?? resolveAgentArgvForCommand(identity.agentCommand)
1377
+ };
1322
1378
  }
1323
1379
  function hasModelConfigOption(options) {
1324
1380
  if (!Array.isArray(options)) return false;
@@ -1414,7 +1470,12 @@ function parseRequestTokenUsage(raw) {
1414
1470
  for (const [key, value] of Object.entries(record)) {
1415
1471
  const parsed = parseTokenUsage(value);
1416
1472
  if (parsed == null) return null;
1417
- usage[key] = parsed;
1473
+ Object.defineProperty(usage, key, {
1474
+ value: parsed,
1475
+ writable: true,
1476
+ enumerable: true,
1477
+ configurable: true
1478
+ });
1418
1479
  }
1419
1480
  return usage;
1420
1481
  }
@@ -1673,13 +1734,14 @@ function parseSessionRecord(raw) {
1673
1734
  const eventLog = parseEventLog(record.event_log, record.acpx_record_id);
1674
1735
  const metadata = parseSessionRecordMetadata(record);
1675
1736
  if (!metadata) return null;
1737
+ const agent = parsePersistedAgentIdentity(record.agent_command, record.agent_argv);
1676
1738
  return {
1677
1739
  schema: SESSION_RECORD_SCHEMA,
1678
1740
  acpxRecordId: record.acpx_record_id,
1679
1741
  acpSessionId: record.acp_session_id,
1680
1742
  agentSessionId: normalizeAgentSessionId(record.agent_session_id),
1681
- agentCommand: record.agent_command,
1682
- agentArgv: parsePersistedAgentArgv(record),
1743
+ agentCommand: agent.agentCommand,
1744
+ agentArgv: agent.agentArgv,
1683
1745
  cwd: record.cwd,
1684
1746
  name: optionals.name,
1685
1747
  createdAt: record.created_at,
@@ -1849,8 +1911,16 @@ async function* sessionRecords(readOnly = false) {
1849
1911
  if (!readOnly) await ensureSessionDir();
1850
1912
  yield* scanSessionRecords(sessionBaseDir());
1851
1913
  }
1852
- function matchesSession(session, agentCommand, normalizedName, includeClosed = false) {
1853
- if (session.agentCommand !== agentCommand) return false;
1914
+ /**
1915
+ * Commands a scoped query matches: the query itself, plus the current built-in
1916
+ * command when the query is an earlier built-in default (records under it are
1917
+ * migrated on read unless they carry a custom launcher).
1918
+ */
1919
+ function agentScope(agentCommand) {
1920
+ return /* @__PURE__ */ new Set([agentCommand, canonicalAgentCommand(agentCommand)]);
1921
+ }
1922
+ function matchesSession(session, scope, normalizedName, includeClosed = false) {
1923
+ if (!scope.has(session.agentCommand)) return false;
1854
1924
  if (!includeClosed && session.closed) return false;
1855
1925
  if (normalizedName == null) return session.name == null;
1856
1926
  return session.name === normalizedName;
@@ -1952,25 +2022,28 @@ async function listSessionsForAgent(agentCommand) {
1952
2022
  return await collectSessionRecords(agentCommand);
1953
2023
  }
1954
2024
  async function collectSessionRecords(agentCommand) {
2025
+ const scope = agentCommand === void 0 ? void 0 : agentScope(agentCommand);
1955
2026
  const records = [];
1956
- for await (const record of sessionRecords()) if (agentCommand === void 0 || record.agentCommand === agentCommand) records.push(record);
2027
+ for await (const record of sessionRecords()) if (scope === void 0 || scope.has(record.agentCommand)) records.push(record);
1957
2028
  return records.toSorted((a, b) => b.lastUsedAt.localeCompare(a.lastUsedAt));
1958
2029
  }
1959
2030
  async function findSession(options) {
1960
2031
  const normalizedCwd = absolutePath(options.cwd);
1961
2032
  const normalizedName = normalizeName(options.name);
2033
+ const scope = agentScope(options.agentCommand);
1962
2034
  let match;
1963
- for await (const record of sessionRecords(options.readOnly)) if (record.cwd === normalizedCwd && matchesSession(record, options.agentCommand, normalizedName, options.includeClosed) && isNewer(record, match)) match = record;
2035
+ for await (const record of sessionRecords(options.readOnly)) if (record.cwd === normalizedCwd && matchesSession(record, scope, normalizedName, options.includeClosed) && isNewer(record, match)) match = record;
1964
2036
  return match;
1965
2037
  }
1966
2038
  async function findSessionByDirectoryWalk(options) {
1967
2039
  const normalizedName = normalizeName(options.name);
2040
+ const scope = agentScope(options.agentCommand);
1968
2041
  const directories = walkDirectories(options);
1969
2042
  let match;
1970
2043
  let distance = Infinity;
1971
2044
  for await (const record of sessionRecords()) {
1972
2045
  const candidateDistance = directories.get(record.cwd);
1973
- if (candidateDistance !== void 0 && matchesSession(record, options.agentCommand, normalizedName) && (candidateDistance < distance || candidateDistance === distance && isNewer(record, match))) {
2046
+ if (candidateDistance !== void 0 && matchesSession(record, scope, normalizedName) && (candidateDistance < distance || candidateDistance === distance && isNewer(record, match))) {
1974
2047
  match = record;
1975
2048
  distance = candidateDistance;
1976
2049
  }
@@ -2023,13 +2096,14 @@ async function pruneSessions(options = {}) {
2023
2096
  dryRun: false
2024
2097
  };
2025
2098
  }
2026
- function isPruneCandidate(record, agentCommand) {
2027
- return record.closed === true && (!agentCommand || record.agentCommand === agentCommand);
2099
+ function isPruneCandidate(record, scope) {
2100
+ return record.closed === true && (!scope || scope.has(record.agentCommand));
2028
2101
  }
2029
2102
  async function loadPrunableRecords(cutoff, agentCommand) {
2030
2103
  const records = [];
2031
2104
  const cutoffIso = cutoff?.toISOString();
2032
- for await (const record of sessionRecords()) if (isPruneCandidate(record, agentCommand) && isBeforeCutoff(record, cutoffIso)) records.push(record);
2105
+ const scope = agentCommand === void 0 ? void 0 : agentScope(agentCommand);
2106
+ for await (const record of sessionRecords()) if (isPruneCandidate(record, scope) && isBeforeCutoff(record, cutoffIso)) records.push(record);
2033
2107
  return records.toSorted((a, b) => b.lastUsedAt.localeCompare(a.lastUsedAt));
2034
2108
  }
2035
2109
  function isBeforeCutoff(record, cutoffIso) {
@@ -5219,4 +5293,4 @@ async function trySetConfigOptionOnRunningOwner(sessionId, configId, value, time
5219
5293
  //#endregion
5220
5294
  export { resetPerfMetrics as $, findSession as A, PERMISSION_MODES as At, assertPersistedKeyPolicy as B, GeminiAcpStartupTimeoutError as Bt, textPrompt as C, normalizeOutputError as Ct, DEFAULT_HISTORY_LIMIT as D, EXIT_CODES as Dt, observeProcessIncarnation as E, AUTH_POLICIES as Et, normalizeName as F, AgentSpawnError as Ft, SESSION_JOURNAL_SCHEMA as G, SessionModeReplayError as Gt, serializeSessionRecordForDisk as H, PermissionPromptUnavailableError as Ht, pruneSessions as I, AgentStartupError as It, watchSession as J, SessionResumeRequiredError as Jt, SessionJournalReader as K, SessionModelReplayError as Kt, readSessionRecord as L, AuthPolicyError as Lt, isoNow as M, SESSION_RECORD_SCHEMA as Mt, listSessions as N, AcpxOperationalError as Nt, absolutePath as O, NON_INTERACTIVE_PERMISSION_POLICIES as Ot, listSessionsForAgent as P, AgentDisconnectedError as Pt, measurePerf as Q, resolveSessionRecord as R, ClaudeAcpSessionCreateTimeoutError as Rt, promptToDisplayText as S, isRetryablePromptError as St, lockOwnerPid as T, isAcpResourceNotFoundError as Tt, extractAgentSessionId as U, QueueConnectionError as Ut, parseSessionRecord as V, PermissionDeniedError as Vt, normalizeAgentSessionId as W, SessionConfigOptionReplayError as Wt, getPerfMetricsSnapshot as X, formatPerfMetric as Y, UnsupportedPromptContentError as Yt, incrementPerfCounter as Z, ProcessDescendants as _, _usingCtx as _t, trySetModelOnRunningOwner as a, isSessionUpdateNotification as at, mergePromptSourceWithText as b, formatErrorMessage as bt, probeQueueOwnerHealth as c, parsePromptStopReason as ct, releaseQueueOwnerLease as d, sessionBaseDir as dt, setPerfGauge as et, terminateProcess as f, sessionEventActivePath as ft, QueueLeaseGuardSettlementError as g, writePrivateJsonFile as gt, waitMs as h, writePrivateFile as ht, trySetModeOnRunningOwner as i, isAcpMessageObject as it, findSessionByDirectoryWalk as j, PERMISSION_POLICY_ACTIONS as jt, findGitRepositoryRoot as k, OUTPUT_FORMATS as kt, readQueueOwnerRecord as l, DEFAULT_EVENT_SEGMENT_MAX_BYTES as lt, tryAcquireQueueOwnerLease as m, sessionEventSegmentPath as mt, tryCloseSessionOnRunningOwner as n, extractSessionUpdateNotification as nt, trySubmitToRunningOwner as o, parseJsonRpcErrorMessage as ot, terminateQueueOwnerForSession as p, sessionEventLockPath as pt, SessionWatchError as q, SessionNotFoundError as qt, trySetConfigOptionOnRunningOwner as r, isAcpJsonRpcMessage as rt, SessionQueueOwner as s, parsePermissionNotice as st, tryCancelOnRunningOwner as t, startPerfTimer as tt, refreshQueueOwnerLease as u, defaultSessionEventLog as ut, PromptInputValidationError as v, isProcessAlive as vt, createLockOwner as w, extractAcpError as wt, parsePromptSource as x, isAcpQueryClosedBeforeResponseError as xt, getUnsupportedPromptContentMessage as y, exitCodeForOutputErrorCode as yt, writeSessionRecord as z, CopilotAcpUnsupportedError as zt };
5221
5295
 
5222
- //# sourceMappingURL=ipc-BW06Pbb8.js.map
5296
+ //# sourceMappingURL=ipc-D7zT86b9.js.map