@spotpatch/shared 1.13.0 → 1.14.1

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 (55) hide show
  1. package/dist/{annotation-C0Me9mN2.d.cts → annotation-Cz-NNgR4.d.cts} +2 -2
  2. package/dist/{annotation-C0Me9mN2.d.ts → annotation-Cz-NNgR4.d.ts} +2 -2
  3. package/dist/{chunk-IUTOVI5G.js → chunk-CLQ6MIJB.js} +5 -3
  4. package/dist/chunk-CLQ6MIJB.js.map +1 -0
  5. package/dist/{chunk-DYTWEIES.js → chunk-EWJTKNL4.js} +2 -1
  6. package/dist/chunk-EWJTKNL4.js.map +1 -0
  7. package/dist/{chunk-2LVIH7OA.js → chunk-IX6MSCK6.js} +6 -2
  8. package/dist/chunk-IX6MSCK6.js.map +1 -0
  9. package/dist/{chunk-YQ5GL523.js → chunk-JTZFOTPT.js} +3 -3
  10. package/dist/{chunk-C2PJ4UUU.js → chunk-R6QJFNT2.js} +3 -3
  11. package/dist/chunk-R6QJFNT2.js.map +1 -0
  12. package/dist/{contextual-ask-B0mCFn92.d.cts → contextual-ask-BpbkpFFf.d.cts} +25 -0
  13. package/dist/{contextual-ask-B0mCFn92.d.ts → contextual-ask-BpbkpFFf.d.ts} +25 -0
  14. package/dist/contextual-ask-browser.cjs +1 -0
  15. package/dist/contextual-ask-browser.cjs.map +1 -1
  16. package/dist/contextual-ask-browser.d.cts +1 -1
  17. package/dist/contextual-ask-browser.d.ts +1 -1
  18. package/dist/contextual-ask-browser.js +1 -1
  19. package/dist/contextual-ask-node.cjs +5 -2
  20. package/dist/contextual-ask-node.cjs.map +1 -1
  21. package/dist/contextual-ask-node.d.cts +3 -3
  22. package/dist/contextual-ask-node.d.ts +3 -3
  23. package/dist/contextual-ask-node.js +3 -3
  24. package/dist/{data-flow-runtime-vKeEaJgT.d.ts → data-flow-runtime-DhWpQoik.d.ts} +13 -0
  25. package/dist/{data-flow-runtime-D8HPSb2i.d.cts → data-flow-runtime-w43iwvGA.d.cts} +13 -0
  26. package/dist/data-flow-runtime.d.cts +1 -1
  27. package/dist/data-flow-runtime.d.ts +1 -1
  28. package/dist/{external-agent-control-CRBbjDDk.d.cts → external-agent-control-DKxQACUv.d.cts} +8 -3
  29. package/dist/{external-agent-control-CRBbjDDk.d.ts → external-agent-control-DKxQACUv.d.ts} +8 -3
  30. package/dist/external-agent-node.cjs +178 -20
  31. package/dist/external-agent-node.cjs.map +1 -1
  32. package/dist/external-agent-node.d.cts +18 -3
  33. package/dist/external-agent-node.d.ts +18 -3
  34. package/dist/external-agent-node.js +172 -20
  35. package/dist/external-agent-node.js.map +1 -1
  36. package/dist/{external-handoff-DighrWn8.d.ts → external-handoff-5zHu-fz2.d.ts} +12 -2
  37. package/dist/{external-handoff-DwtFFR6F.d.cts → external-handoff-DeiIvR-2.d.cts} +12 -2
  38. package/dist/external-handoff-browser.cjs +7 -1
  39. package/dist/external-handoff-browser.cjs.map +1 -1
  40. package/dist/external-handoff-browser.d.cts +5 -3
  41. package/dist/external-handoff-browser.d.ts +5 -3
  42. package/dist/external-handoff-browser.js +3 -1
  43. package/dist/external-handoff-browser.js.map +1 -1
  44. package/dist/index.cjs +36 -9
  45. package/dist/index.cjs.map +1 -1
  46. package/dist/index.d.cts +19 -7
  47. package/dist/index.d.ts +19 -7
  48. package/dist/index.js +31 -11
  49. package/dist/index.js.map +1 -1
  50. package/package.json +1 -1
  51. package/dist/chunk-2LVIH7OA.js.map +0 -1
  52. package/dist/chunk-C2PJ4UUU.js.map +0 -1
  53. package/dist/chunk-DYTWEIES.js.map +0 -1
  54. package/dist/chunk-IUTOVI5G.js.map +0 -1
  55. /package/dist/{chunk-YQ5GL523.js.map → chunk-JTZFOTPT.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/external-handoff-browser.ts","../src/protocol/external-handoff-constants.ts","../src/protocol/endpoints.ts"],"sourcesContent":["import type { ERROR_CODES as GLOBAL_ERROR_CODES } from \"./errors/error-code.js\";\nimport type {\n EXTERNAL_AGENT_ACTIONS as GLOBAL_EXTERNAL_AGENT_ACTIONS,\n EXTERNAL_AGENT_AUTH_READINESS as GLOBAL_EXTERNAL_AGENT_AUTH_READINESS,\n EXTERNAL_AGENT_CHECK_OUTCOMES as GLOBAL_EXTERNAL_AGENT_CHECK_OUTCOMES,\n EXTERNAL_AGENT_CONNECTION_STATES as GLOBAL_EXTERNAL_AGENT_CONNECTION_STATES,\n EXTERNAL_AGENT_CONTROL_LIMITS as GLOBAL_EXTERNAL_AGENT_CONTROL_LIMITS,\n EXTERNAL_AGENT_DELIVERY_STATUSES as GLOBAL_EXTERNAL_AGENT_DELIVERY_STATUSES,\n EXTERNAL_AGENT_ERROR_CODES as GLOBAL_EXTERNAL_AGENT_ERROR_CODES,\n EXTERNAL_AGENT_ERROR_RECOVERABILITY as GLOBAL_EXTERNAL_AGENT_ERROR_RECOVERABILITY,\n EXTERNAL_AGENT_ERROR_STAGES as GLOBAL_EXTERNAL_AGENT_ERROR_STAGES,\n EXTERNAL_AGENT_EXECUTION_STATUSES as GLOBAL_EXTERNAL_AGENT_EXECUTION_STATUSES,\n EXTERNAL_AGENT_GRANT_STATES as GLOBAL_EXTERNAL_AGENT_GRANT_STATES,\n EXTERNAL_AGENT_MANAGED_PROFILE as GLOBAL_EXTERNAL_AGENT_MANAGED_PROFILE,\n EXTERNAL_AGENT_MANAGED_PHASES as GLOBAL_EXTERNAL_AGENT_MANAGED_PHASES,\n EXTERNAL_AGENT_MODES as GLOBAL_EXTERNAL_AGENT_MODES,\n EXTERNAL_AGENT_VALIDATION_OUTCOMES as GLOBAL_EXTERNAL_AGENT_VALIDATION_OUTCOMES,\n} from \"./protocol/external-agent-control.js\";\nimport type { EXTERNAL_HANDOFF_LIMITS as GLOBAL_EXTERNAL_HANDOFF_LIMITS } from \"./protocol/external-handoff-constants.js\";\n\n/** Browser-reachable errors only; keeps unrelated Agent/worktree codes out of the lazy UI. */\nexport const ERROR_CODES = Object.freeze({\n INVALID_REQUEST: \"INVALID_REQUEST\",\n INVALID_TOKEN: \"INVALID_TOKEN\",\n ORIGIN_NOT_ALLOWED: \"ORIGIN_NOT_ALLOWED\",\n EXTERNAL_HANDOFF_DISABLED: \"EXTERNAL_HANDOFF_DISABLED\",\n EXTERNAL_HANDOFF_UNAVAILABLE: \"EXTERNAL_HANDOFF_UNAVAILABLE\",\n HANDOFF_VALIDATION_FAILED: \"HANDOFF_VALIDATION_FAILED\",\n HANDOFF_SOURCE_STALE: \"HANDOFF_SOURCE_STALE\",\n HANDOFF_NOT_FOUND: \"HANDOFF_NOT_FOUND\",\n HANDOFF_EXPIRED: \"HANDOFF_EXPIRED\",\n HANDOFF_CURSOR_INVALID: \"HANDOFF_CURSOR_INVALID\",\n HANDOFF_RESPONSE_TOO_LARGE: \"HANDOFF_RESPONSE_TOO_LARGE\",\n EXTERNAL_AGENT_BUSY: \"EXTERNAL_AGENT_BUSY\",\n ACTIVE_DISPATCH_INVALID: \"ACTIVE_DISPATCH_INVALID\",\n SESSION_CLOSED: \"SESSION_CLOSED\",\n INTERNAL_ERROR: \"INTERNAL_ERROR\",\n} as const satisfies Pick<\n typeof GLOBAL_ERROR_CODES,\n | \"ACTIVE_DISPATCH_INVALID\"\n | \"EXTERNAL_AGENT_BUSY\"\n | \"EXTERNAL_HANDOFF_DISABLED\"\n | \"EXTERNAL_HANDOFF_UNAVAILABLE\"\n | \"HANDOFF_CURSOR_INVALID\"\n | \"HANDOFF_EXPIRED\"\n | \"HANDOFF_NOT_FOUND\"\n | \"HANDOFF_RESPONSE_TOO_LARGE\"\n | \"HANDOFF_SOURCE_STALE\"\n | \"HANDOFF_VALIDATION_FAILED\"\n | \"INTERNAL_ERROR\"\n | \"INVALID_REQUEST\"\n | \"INVALID_TOKEN\"\n | \"ORIGIN_NOT_ALLOWED\"\n | \"SESSION_CLOSED\"\n>);\nexport type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\nconst ERROR_CODE_VALUES: readonly string[] = Object.values(ERROR_CODES);\n\nexport function isErrorCode(value: unknown): value is ErrorCode {\n return typeof value === \"string\" && ERROR_CODE_VALUES.includes(value);\n}\n\n/** Browser-consumed limits only; literal types make drift from the canonical limits fail. */\nexport const EXTERNAL_HANDOFF_LIMITS = Object.freeze({\n maximumConnectorReceipts: 64,\n maximumWaiters: 8,\n activeStatusPollMs: 1_000,\n} as const satisfies Pick<\n typeof GLOBAL_EXTERNAL_HANDOFF_LIMITS,\n \"activeStatusPollMs\" | \"maximumConnectorReceipts\" | \"maximumWaiters\"\n>);\n\nexport const EXTERNAL_AGENT_CONTROL_LIMITS = Object.freeze({\n maximumEventSubscribers: 4,\n eventHeartbeatMs: 15_000,\n eventReconnectMinimumMs: 500,\n eventReconnectMaximumMs: 10_000,\n maximumChangedFiles: 20,\n maximumChecks: 64,\n maximumEventLineBytes: 64 * 1_024,\n maximumResultDiffBytes: 512_000,\n} as const satisfies typeof GLOBAL_EXTERNAL_AGENT_CONTROL_LIMITS);\nexport const EXTERNAL_AGENT_MANAGED_PROFILE =\n \"managed-apply-v1\" as const satisfies typeof GLOBAL_EXTERNAL_AGENT_MANAGED_PROFILE;\n\n/** Browser-safe literal projections; type-only checks prevent protocol drift without Zod. */\nexport const EXTERNAL_AGENT_MODES = Object.freeze([\n \"inbox\",\n \"managed\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_MODES);\nexport const EXTERNAL_AGENT_CONNECTION_STATES = Object.freeze([\n \"disconnected\",\n \"diagnosing\",\n \"awaiting-consent\",\n \"connecting\",\n \"ready\",\n \"busy\",\n \"degraded\",\n \"error\",\n \"disconnecting\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_CONNECTION_STATES);\nexport const EXTERNAL_AGENT_AUTH_READINESS = Object.freeze([\n \"authenticated\",\n \"auth-not-required\",\n \"signed-out\",\n \"unknown\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_AUTH_READINESS);\nexport const EXTERNAL_AGENT_GRANT_STATES = Object.freeze([\n \"missing\",\n \"valid\",\n \"invalid\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_GRANT_STATES);\nexport const EXTERNAL_AGENT_DELIVERY_STATUSES = Object.freeze([\n \"queued\",\n \"dispatching\",\n \"accepted\",\n \"unknown\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_DELIVERY_STATUSES);\nexport const EXTERNAL_AGENT_EXECUTION_STATUSES = Object.freeze([\n \"not-observable\",\n \"started\",\n \"terminal-succeeded\",\n \"terminal-failed\",\n \"interrupted\",\n \"unknown\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_EXECUTION_STATUSES);\nexport const EXTERNAL_AGENT_MANAGED_PHASES = Object.freeze([\n \"preparing\",\n \"running\",\n \"auditing\",\n \"validating\",\n \"applying\",\n \"completed\",\n \"review-required\",\n \"failed\",\n \"cancelled\",\n \"cleanup-warning\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_MANAGED_PHASES);\nexport const EXTERNAL_AGENT_VALIDATION_OUTCOMES = Object.freeze([\n \"passed\",\n \"failed\",\n \"not-configured\",\n \"unavailable\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_VALIDATION_OUTCOMES);\nexport const EXTERNAL_AGENT_CHECK_OUTCOMES = Object.freeze([\n \"passed\",\n \"failed\",\n \"unavailable\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_CHECK_OUTCOMES);\nexport const EXTERNAL_AGENT_ERROR_CODES = Object.freeze([\n \"AGENT_BINARY_NOT_FOUND\",\n \"AGENT_BINARY_UNTRUSTED\",\n \"AGENT_VERSION_UNSUPPORTED\",\n \"APP_SERVER_HANDSHAKE_FAILED\",\n \"AGENT_AUTH_REQUIRED\",\n \"AGENT_MODEL_UNAVAILABLE\",\n \"AGENT_PROTOCOL_INCOMPATIBLE\",\n \"CODEX_CONFIG_ISOLATION_UNSUPPORTED\",\n \"MANAGED_GRANT_INVALID\",\n \"MANAGED_PLATFORM_UNSUPPORTED\",\n \"MANAGED_GIT_REQUIRED\",\n \"MANAGED_SNAPSHOT_FAILED\",\n \"MANAGED_SCOPE_VIOLATION\",\n \"MANAGED_CHANGE_LIMIT_EXCEEDED\",\n \"MANAGED_VALIDATION_FAILED\",\n \"MANAGED_WORKSPACE_CONFLICT\",\n \"MANAGED_APPLY_FAILED\",\n \"MANAGED_CLEANUP_INCOMPLETE\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_ERROR_CODES);\nexport const EXTERNAL_AGENT_ERROR_STAGES = Object.freeze([\n \"integration\",\n \"binary\",\n \"handshake\",\n \"auth\",\n \"model\",\n \"protocol\",\n \"snapshot\",\n \"audit\",\n \"validation\",\n \"apply\",\n \"cleanup\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_ERROR_STAGES);\nexport const EXTERNAL_AGENT_ERROR_RECOVERABILITY = Object.freeze([\n \"retry\",\n \"user-action\",\n \"reconfigure\",\n \"none\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_ERROR_RECOVERABILITY);\nexport const EXTERNAL_AGENT_ACTIONS = Object.freeze([\n \"install-agent\",\n \"use-supported-version\",\n \"sign-in\",\n \"choose-available-model\",\n \"use-inbox\",\n \"confirm-managed-access\",\n \"review-candidate-diff\",\n \"review-workspace-conflict\",\n \"retry\",\n \"inspect-cleanup-warning\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_ACTIONS);\n\nexport {\n EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS,\n EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES,\n EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION,\n EXTERNAL_HANDOFF_DISPATCH_PHASES,\n EXTERNAL_HANDOFF_FRAMEWORKS,\n EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES,\n EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION,\n EXTERNAL_HANDOFF_STATES,\n type ExternalHandoffActiveAdapterKind,\n type ExternalHandoffActiveAdapterState,\n type ExternalHandoffDispatchPhase,\n type ExternalHandoffFramework,\n type ExternalHandoffReportableDispatchPhase,\n type ExternalHandoffState,\n} from \"./protocol/external-handoff-constants.js\";\nexport { SPOTPATCH_ENDPOINTS, SPOTPATCH_TOKEN_HEADER } from \"./protocol/endpoints.js\";\nexport type {\n ExternalAgentAction,\n ExternalAgentConnectionState,\n ExternalAgentControlCancelRequest,\n ExternalAgentControlConnectRequest,\n ExternalAgentControlDisconnectRequest,\n ExternalAgentControlStatus,\n ExternalAgentErrorCode,\n ExternalAgentEvent,\n ExternalAgentEventsRequest,\n ExternalAgentManagedResult,\n ExternalAgentResultRequest,\n} from \"./protocol/external-agent-control.js\";\nexport type {\n ActiveAdapterSummary,\n DispatchSummary,\n ExternalHandoffCapability,\n ExternalHandoffPublishDelivery,\n ExternalHandoffPublishRequest,\n ExternalHandoffPublishResult,\n ExternalHandoffResolveDeliveryRequest,\n ExternalHandoffSnapshot,\n ExternalHandoffStatusRequest,\n ExternalHandoffStatusResult,\n ExternalHandoffSummary,\n} from \"./protocol/external-handoff.js\";\nexport type { SpotAnnotation, SpotPatchLocale } from \"./model/annotation.js\";\n","export const EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION = 1 as const;\nexport const EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION = 2 as const;\nexport const EXTERNAL_HANDOFF_STATES = Object.freeze([\n \"available\",\n \"expired\",\n \"superseded\",\n] as const);\nexport const EXTERNAL_HANDOFF_FRAMEWORKS = Object.freeze([\"vite\", \"next\"] as const);\nexport const EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS = Object.freeze([\n \"claude-channel\",\n \"codex-app-server\",\n] as const);\nexport const EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES = Object.freeze([\n \"ready\",\n \"busy\",\n \"blocked\",\n] as const);\nexport const EXTERNAL_HANDOFF_DISPATCH_PHASES = Object.freeze([\n \"queued\",\n \"dispatching\",\n \"dispatched\",\n \"working\",\n \"completed\",\n \"failed\",\n \"delivery-unknown\",\n] as const);\nexport const EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES = Object.freeze([\n \"dispatching\",\n \"dispatched\",\n \"working\",\n \"completed\",\n \"failed\",\n \"delivery-unknown\",\n] as const);\n\nexport const EXTERNAL_HANDOFF_LIMITS = Object.freeze({\n maximumSnapshotBytes: 256 * 1024,\n maximumPublishBodyBytes: 256 * 1024,\n maximumBrokerRequestBytes: 8 * 1024,\n maximumDescriptorBytes: 8 * 1024,\n maximumHistorySummaries: 8,\n maximumConnectorReceipts: 64,\n handoffTtlMs: 15 * 60 * 1_000,\n defaultWaitMs: 20_000,\n maximumWaitMs: 25_000,\n maximumWaiters: 8,\n maximumDescriptorsPerScan: 32,\n maximumProjectAncestors: 64,\n maximumBrokerHeaderBytes: 8 * 1024,\n maximumBrokerSockets: 32,\n brokerDiscoveryTimeoutMs: 750,\n brokerRequestTimeoutMs: 2_000,\n brokerWaitGraceMs: 2_000,\n maximumSetupConfigBytes: 1_024 * 1_024,\n maximumRequestIdRecords: 16,\n requestIdTtlMs: 15 * 60 * 1_000,\n activeHeartbeatIntervalMs: 3_000,\n activeLeaseDurationMs: 10_000,\n activeTransportWriteTimeoutMs: 5_000,\n activeDispatchTimeoutMs: 30 * 60 * 1_000,\n activeStatusPollMs: 1_000,\n} as const);\n\nexport type ExternalHandoffState = (typeof EXTERNAL_HANDOFF_STATES)[number];\nexport type ExternalHandoffFramework = (typeof EXTERNAL_HANDOFF_FRAMEWORKS)[number];\nexport type ExternalHandoffActiveAdapterKind =\n (typeof EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS)[number];\nexport type ExternalHandoffActiveAdapterState =\n (typeof EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES)[number];\nexport type ExternalHandoffDispatchPhase =\n (typeof EXTERNAL_HANDOFF_DISPATCH_PHASES)[number];\nexport type ExternalHandoffReportableDispatchPhase =\n (typeof EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES)[number];\n","export const SPOTPATCH_API_BASE = \"/__spotpatch/v1\" as const;\nexport const SPOTPATCH_TOKEN_HEADER = \"X-SpotPatch-Token\" as const;\n\nexport const SPOTPATCH_ENDPOINTS = Object.freeze({\n bootstrap: `${SPOTPATCH_API_BASE}/bootstrap`,\n sourceContext: `${SPOTPATCH_API_BASE}/source-context`,\n openEditor: `${SPOTPATCH_API_BASE}/open-editor`,\n dataFlowComponentReport: `${SPOTPATCH_API_BASE}/data-flow/component-report`,\n dataFlowPageReport: `${SPOTPATCH_API_BASE}/data-flow/page-report`,\n agentCapability: `${SPOTPATCH_API_BASE}/agent/capability`,\n agentWorkspaceHealth: `${SPOTPATCH_API_BASE}/agent/workspace-health`,\n agentJobs: `${SPOTPATCH_API_BASE}/agent/jobs`,\n askCapability: `${SPOTPATCH_API_BASE}/ask/capability`,\n askJobs: `${SPOTPATCH_API_BASE}/ask/jobs`,\n externalHandoffCapability: `${SPOTPATCH_API_BASE}/external-handoff/capability`,\n externalHandoffPublish: `${SPOTPATCH_API_BASE}/external-handoff/publish`,\n externalHandoffStatus: `${SPOTPATCH_API_BASE}/external-handoff/status`,\n externalHandoffResolveDelivery: `${SPOTPATCH_API_BASE}/external-handoff/resolve-delivery`,\n externalAgentControlStatus: `${SPOTPATCH_API_BASE}/external-agent/control/status`,\n externalAgentControlConnect: `${SPOTPATCH_API_BASE}/external-agent/control/connect`,\n externalAgentControlDisconnect: `${SPOTPATCH_API_BASE}/external-agent/control/disconnect`,\n externalAgentControlCancel: `${SPOTPATCH_API_BASE}/external-agent/control/cancel`,\n externalAgentEvents: `${SPOTPATCH_API_BASE}/external-agent/events`,\n externalAgentResult: `${SPOTPATCH_API_BASE}/external-agent/result`,\n});\n\nexport type AgentJobAction = \"events\" | \"result\" | \"cancel\" | \"apply\" | \"revert\";\nexport type AskJobAction = \"events\" | \"result\" | \"cancel\";\n\nexport function getAgentJobEndpoint(jobId: string, action: AgentJobAction): string {\n return `${SPOTPATCH_ENDPOINTS.agentJobs}/${encodeURIComponent(jobId)}/${action}`;\n}\n\nexport function getAskJobEndpoint(\n jobId: string,\n action: AskJobAction,\n options: Readonly<{ afterSequence?: number }> = {},\n): string {\n const endpoint = `${SPOTPATCH_ENDPOINTS.askJobs}/${encodeURIComponent(jobId)}/${action}`;\n if (action !== \"events\" && options.afterSequence !== undefined) {\n throw new RangeError(\"afterSequence is only valid for the events endpoint.\");\n }\n if (options.afterSequence === undefined) return endpoint;\n if (!Number.isSafeInteger(options.afterSequence) || options.afterSequence < 0) {\n throw new RangeError(\"afterSequence must be a non-negative safe integer.\");\n }\n return `${endpoint}?afterSequence=${String(options.afterSequence)}`;\n}\n"],"mappings":"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","names":["EXTERNAL_HANDOFF_LIMITS","EXTERNAL_HANDOFF_LIMITS"]}
1
+ {"version":3,"sources":["../src/external-handoff-browser.ts","../src/protocol/external-handoff-constants.ts","../src/protocol/endpoints.ts"],"sourcesContent":["import type { ERROR_CODES as GLOBAL_ERROR_CODES } from \"./errors/error-code.js\";\nimport type {\n EXTERNAL_AGENT_ACTIONS as GLOBAL_EXTERNAL_AGENT_ACTIONS,\n EXTERNAL_AGENT_AUTH_READINESS as GLOBAL_EXTERNAL_AGENT_AUTH_READINESS,\n EXTERNAL_AGENT_CHECK_OUTCOMES as GLOBAL_EXTERNAL_AGENT_CHECK_OUTCOMES,\n EXTERNAL_AGENT_CONNECTION_STATES as GLOBAL_EXTERNAL_AGENT_CONNECTION_STATES,\n EXTERNAL_AGENT_CONTROL_LIMITS as GLOBAL_EXTERNAL_AGENT_CONTROL_LIMITS,\n EXTERNAL_AGENT_DELIVERY_STATUSES as GLOBAL_EXTERNAL_AGENT_DELIVERY_STATUSES,\n EXTERNAL_AGENT_ERROR_CODES as GLOBAL_EXTERNAL_AGENT_ERROR_CODES,\n EXTERNAL_AGENT_ERROR_RECOVERABILITY as GLOBAL_EXTERNAL_AGENT_ERROR_RECOVERABILITY,\n EXTERNAL_AGENT_ERROR_STAGES as GLOBAL_EXTERNAL_AGENT_ERROR_STAGES,\n EXTERNAL_AGENT_EXECUTION_STATUSES as GLOBAL_EXTERNAL_AGENT_EXECUTION_STATUSES,\n EXTERNAL_AGENT_GRANT_STATES as GLOBAL_EXTERNAL_AGENT_GRANT_STATES,\n EXTERNAL_AGENT_MANAGED_PROFILE as GLOBAL_EXTERNAL_AGENT_MANAGED_PROFILE,\n EXTERNAL_AGENT_MANAGED_PHASES as GLOBAL_EXTERNAL_AGENT_MANAGED_PHASES,\n EXTERNAL_AGENT_MODES as GLOBAL_EXTERNAL_AGENT_MODES,\n EXTERNAL_AGENT_VALIDATION_OUTCOMES as GLOBAL_EXTERNAL_AGENT_VALIDATION_OUTCOMES,\n} from \"./protocol/external-agent-control.js\";\nimport type { EXTERNAL_HANDOFF_LIMITS as GLOBAL_EXTERNAL_HANDOFF_LIMITS } from \"./protocol/external-handoff-constants.js\";\n\n/** Browser-reachable errors only; keeps unrelated Agent/worktree codes out of the lazy UI. */\nexport const ERROR_CODES = Object.freeze({\n INVALID_REQUEST: \"INVALID_REQUEST\",\n INVALID_TOKEN: \"INVALID_TOKEN\",\n ORIGIN_NOT_ALLOWED: \"ORIGIN_NOT_ALLOWED\",\n EXTERNAL_HANDOFF_DISABLED: \"EXTERNAL_HANDOFF_DISABLED\",\n EXTERNAL_HANDOFF_UNAVAILABLE: \"EXTERNAL_HANDOFF_UNAVAILABLE\",\n HANDOFF_VALIDATION_FAILED: \"HANDOFF_VALIDATION_FAILED\",\n HANDOFF_SOURCE_STALE: \"HANDOFF_SOURCE_STALE\",\n HANDOFF_NOT_FOUND: \"HANDOFF_NOT_FOUND\",\n HANDOFF_EXPIRED: \"HANDOFF_EXPIRED\",\n HANDOFF_CURSOR_INVALID: \"HANDOFF_CURSOR_INVALID\",\n HANDOFF_RESPONSE_TOO_LARGE: \"HANDOFF_RESPONSE_TOO_LARGE\",\n EXTERNAL_AGENT_BUSY: \"EXTERNAL_AGENT_BUSY\",\n ACTIVE_DISPATCH_INVALID: \"ACTIVE_DISPATCH_INVALID\",\n SESSION_CLOSED: \"SESSION_CLOSED\",\n INTERNAL_ERROR: \"INTERNAL_ERROR\",\n} as const satisfies Pick<\n typeof GLOBAL_ERROR_CODES,\n | \"ACTIVE_DISPATCH_INVALID\"\n | \"EXTERNAL_AGENT_BUSY\"\n | \"EXTERNAL_HANDOFF_DISABLED\"\n | \"EXTERNAL_HANDOFF_UNAVAILABLE\"\n | \"HANDOFF_CURSOR_INVALID\"\n | \"HANDOFF_EXPIRED\"\n | \"HANDOFF_NOT_FOUND\"\n | \"HANDOFF_RESPONSE_TOO_LARGE\"\n | \"HANDOFF_SOURCE_STALE\"\n | \"HANDOFF_VALIDATION_FAILED\"\n | \"INTERNAL_ERROR\"\n | \"INVALID_REQUEST\"\n | \"INVALID_TOKEN\"\n | \"ORIGIN_NOT_ALLOWED\"\n | \"SESSION_CLOSED\"\n>);\nexport type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\nconst ERROR_CODE_VALUES: readonly string[] = Object.values(ERROR_CODES);\n\nexport function isErrorCode(value: unknown): value is ErrorCode {\n return typeof value === \"string\" && ERROR_CODE_VALUES.includes(value);\n}\n\n/** Browser-consumed limits only; literal types make drift from the canonical limits fail. */\nexport const EXTERNAL_HANDOFF_LIMITS = Object.freeze({\n maximumConnectorReceipts: 64,\n maximumWaiters: 8,\n activeStatusPollMs: 1_000,\n} as const satisfies Pick<\n typeof GLOBAL_EXTERNAL_HANDOFF_LIMITS,\n \"activeStatusPollMs\" | \"maximumConnectorReceipts\" | \"maximumWaiters\"\n>);\n\nexport const EXTERNAL_AGENT_CONTROL_LIMITS = Object.freeze({\n maximumModels: 128,\n maximumModelCharacters: 128,\n maximumEventSubscribers: 4,\n eventHeartbeatMs: 15_000,\n eventReconnectMinimumMs: 500,\n eventReconnectMaximumMs: 10_000,\n maximumChangedFiles: 20,\n maximumChecks: 64,\n maximumEventLineBytes: 64 * 1_024,\n maximumResultDiffBytes: 512_000,\n} as const satisfies typeof GLOBAL_EXTERNAL_AGENT_CONTROL_LIMITS);\nexport const EXTERNAL_AGENT_MANAGED_PROFILE =\n \"managed-apply-v1\" as const satisfies typeof GLOBAL_EXTERNAL_AGENT_MANAGED_PROFILE;\n\n/** Browser-safe literal projections; type-only checks prevent protocol drift without Zod. */\nexport const EXTERNAL_AGENT_MODES = Object.freeze([\n \"inbox\",\n \"managed\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_MODES);\nexport const EXTERNAL_AGENT_CONNECTION_STATES = Object.freeze([\n \"disconnected\",\n \"diagnosing\",\n \"awaiting-consent\",\n \"connecting\",\n \"ready\",\n \"busy\",\n \"degraded\",\n \"error\",\n \"disconnecting\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_CONNECTION_STATES);\nexport const EXTERNAL_AGENT_AUTH_READINESS = Object.freeze([\n \"authenticated\",\n \"auth-not-required\",\n \"signed-out\",\n \"unknown\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_AUTH_READINESS);\nexport const EXTERNAL_AGENT_GRANT_STATES = Object.freeze([\n \"missing\",\n \"valid\",\n \"invalid\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_GRANT_STATES);\nexport const EXTERNAL_AGENT_DELIVERY_STATUSES = Object.freeze([\n \"queued\",\n \"dispatching\",\n \"accepted\",\n \"unknown\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_DELIVERY_STATUSES);\nexport const EXTERNAL_AGENT_EXECUTION_STATUSES = Object.freeze([\n \"not-observable\",\n \"started\",\n \"terminal-succeeded\",\n \"terminal-failed\",\n \"interrupted\",\n \"unknown\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_EXECUTION_STATUSES);\nexport const EXTERNAL_AGENT_MANAGED_PHASES = Object.freeze([\n \"preparing\",\n \"running\",\n \"auditing\",\n \"validating\",\n \"applying\",\n \"completed\",\n \"review-required\",\n \"failed\",\n \"cancelled\",\n \"cleanup-warning\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_MANAGED_PHASES);\nexport const EXTERNAL_AGENT_VALIDATION_OUTCOMES = Object.freeze([\n \"passed\",\n \"failed\",\n \"not-configured\",\n \"unavailable\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_VALIDATION_OUTCOMES);\nexport const EXTERNAL_AGENT_CHECK_OUTCOMES = Object.freeze([\n \"passed\",\n \"failed\",\n \"unavailable\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_CHECK_OUTCOMES);\nexport const EXTERNAL_AGENT_ERROR_CODES = Object.freeze([\n \"AGENT_BINARY_NOT_FOUND\",\n \"AGENT_BINARY_UNTRUSTED\",\n \"AGENT_VERSION_UNSUPPORTED\",\n \"APP_SERVER_HANDSHAKE_FAILED\",\n \"AGENT_AUTH_REQUIRED\",\n \"AGENT_MODEL_UNAVAILABLE\",\n \"AGENT_PROTOCOL_INCOMPATIBLE\",\n \"CODEX_CONFIG_ISOLATION_UNSUPPORTED\",\n \"MANAGED_GRANT_INVALID\",\n \"MANAGED_PLATFORM_UNSUPPORTED\",\n \"MANAGED_GIT_REQUIRED\",\n \"MANAGED_SNAPSHOT_FAILED\",\n \"MANAGED_SCOPE_VIOLATION\",\n \"MANAGED_CHANGE_LIMIT_EXCEEDED\",\n \"MANAGED_VALIDATION_FAILED\",\n \"MANAGED_WORKSPACE_CONFLICT\",\n \"MANAGED_APPLY_FAILED\",\n \"MANAGED_CLEANUP_INCOMPLETE\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_ERROR_CODES);\nexport const EXTERNAL_AGENT_ERROR_STAGES = Object.freeze([\n \"integration\",\n \"binary\",\n \"handshake\",\n \"auth\",\n \"model\",\n \"protocol\",\n \"snapshot\",\n \"audit\",\n \"validation\",\n \"apply\",\n \"cleanup\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_ERROR_STAGES);\nexport const EXTERNAL_AGENT_ERROR_RECOVERABILITY = Object.freeze([\n \"retry\",\n \"user-action\",\n \"reconfigure\",\n \"none\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_ERROR_RECOVERABILITY);\nexport const EXTERNAL_AGENT_ACTIONS = Object.freeze([\n \"install-agent\",\n \"use-supported-version\",\n \"sign-in\",\n \"choose-available-model\",\n \"use-inbox\",\n \"confirm-managed-access\",\n \"review-candidate-diff\",\n \"review-workspace-conflict\",\n \"retry\",\n \"inspect-cleanup-warning\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_ACTIONS);\n\nexport {\n EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS,\n EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES,\n EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION,\n EXTERNAL_HANDOFF_DISPATCH_PHASES,\n EXTERNAL_HANDOFF_FRAMEWORKS,\n EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES,\n EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION,\n EXTERNAL_HANDOFF_STATES,\n type ExternalHandoffActiveAdapterKind,\n type ExternalHandoffActiveAdapterState,\n type ExternalHandoffDispatchPhase,\n type ExternalHandoffFramework,\n type ExternalHandoffReportableDispatchPhase,\n type ExternalHandoffState,\n} from \"./protocol/external-handoff-constants.js\";\nexport { SPOTPATCH_ENDPOINTS, SPOTPATCH_TOKEN_HEADER } from \"./protocol/endpoints.js\";\nexport type {\n ExternalAgentAction,\n ExternalAgentConnectionState,\n ExternalAgentControlCancelRequest,\n ExternalAgentControlConnectRequest,\n ExternalAgentControlDisconnectRequest,\n ExternalAgentControlStatus,\n ExternalAgentErrorCode,\n ExternalAgentEvent,\n ExternalAgentEventsRequest,\n ExternalAgentManagedResult,\n ExternalAgentResultRequest,\n} from \"./protocol/external-agent-control.js\";\nexport type {\n ActiveAdapterSummary,\n DispatchSummary,\n ExternalHandoffCapability,\n ExternalHandoffPublishDelivery,\n ExternalHandoffPublishRequest,\n ExternalHandoffPublishResult,\n ExternalHandoffResolveDeliveryRequest,\n ExternalHandoffSnapshot,\n ExternalHandoffStatusRequest,\n ExternalHandoffStatusResult,\n ExternalHandoffSummary,\n} from \"./protocol/external-handoff.js\";\nexport type { SpotAnnotation, SpotPatchLocale } from \"./model/annotation.js\";\n","export const EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION = 1 as const;\nexport const EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION = 2 as const;\nexport const EXTERNAL_HANDOFF_STATES = Object.freeze([\n \"available\",\n \"expired\",\n \"superseded\",\n] as const);\nexport const EXTERNAL_HANDOFF_FRAMEWORKS = Object.freeze([\n \"vite\",\n \"next\",\n \"astro\",\n] as const);\nexport const EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS = Object.freeze([\n \"claude-channel\",\n \"codex-app-server\",\n] as const);\nexport const EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES = Object.freeze([\n \"ready\",\n \"busy\",\n \"blocked\",\n] as const);\nexport const EXTERNAL_HANDOFF_DISPATCH_PHASES = Object.freeze([\n \"queued\",\n \"dispatching\",\n \"dispatched\",\n \"working\",\n \"completed\",\n \"failed\",\n \"delivery-unknown\",\n] as const);\nexport const EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES = Object.freeze([\n \"dispatching\",\n \"dispatched\",\n \"working\",\n \"completed\",\n \"failed\",\n \"delivery-unknown\",\n] as const);\n\nexport const EXTERNAL_HANDOFF_LIMITS = Object.freeze({\n maximumSnapshotBytes: 256 * 1024,\n maximumPublishBodyBytes: 256 * 1024,\n maximumBrokerRequestBytes: 8 * 1024,\n maximumDescriptorBytes: 8 * 1024,\n maximumHistorySummaries: 8,\n maximumConnectorReceipts: 64,\n handoffTtlMs: 15 * 60 * 1_000,\n defaultWaitMs: 20_000,\n maximumWaitMs: 25_000,\n maximumWaiters: 8,\n maximumDescriptorsPerScan: 32,\n maximumProjectAncestors: 64,\n maximumBrokerHeaderBytes: 8 * 1024,\n maximumBrokerSockets: 32,\n brokerDiscoveryTimeoutMs: 750,\n brokerRequestTimeoutMs: 2_000,\n brokerWaitGraceMs: 2_000,\n maximumSetupConfigBytes: 1_024 * 1_024,\n maximumRequestIdRecords: 16,\n requestIdTtlMs: 15 * 60 * 1_000,\n activeHeartbeatIntervalMs: 3_000,\n activeLeaseDurationMs: 10_000,\n activeTransportWriteTimeoutMs: 5_000,\n activeDispatchTimeoutMs: 30 * 60 * 1_000,\n activeStatusPollMs: 1_000,\n} as const);\n\nexport type ExternalHandoffState = (typeof EXTERNAL_HANDOFF_STATES)[number];\nexport type ExternalHandoffFramework = (typeof EXTERNAL_HANDOFF_FRAMEWORKS)[number];\nexport type ExternalHandoffActiveAdapterKind =\n (typeof EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS)[number];\nexport type ExternalHandoffActiveAdapterState =\n (typeof EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES)[number];\nexport type ExternalHandoffDispatchPhase =\n (typeof EXTERNAL_HANDOFF_DISPATCH_PHASES)[number];\nexport type ExternalHandoffReportableDispatchPhase =\n (typeof EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES)[number];\n","export const SPOTPATCH_API_BASE = \"/__spotpatch/v1\" as const;\nexport const SPOTPATCH_TOKEN_HEADER = \"X-SpotPatch-Token\" as const;\n\nexport const SPOTPATCH_ENDPOINTS = Object.freeze({\n bootstrap: `${SPOTPATCH_API_BASE}/bootstrap`,\n sourceContext: `${SPOTPATCH_API_BASE}/source-context`,\n openEditor: `${SPOTPATCH_API_BASE}/open-editor`,\n dataFlowComponentReport: `${SPOTPATCH_API_BASE}/data-flow/component-report`,\n dataFlowPageReport: `${SPOTPATCH_API_BASE}/data-flow/page-report`,\n agentCapability: `${SPOTPATCH_API_BASE}/agent/capability`,\n agentWorkspaceHealth: `${SPOTPATCH_API_BASE}/agent/workspace-health`,\n agentJobs: `${SPOTPATCH_API_BASE}/agent/jobs`,\n askCapability: `${SPOTPATCH_API_BASE}/ask/capability`,\n askJobs: `${SPOTPATCH_API_BASE}/ask/jobs`,\n externalHandoffCapability: `${SPOTPATCH_API_BASE}/external-handoff/capability`,\n externalHandoffPublish: `${SPOTPATCH_API_BASE}/external-handoff/publish`,\n externalHandoffStatus: `${SPOTPATCH_API_BASE}/external-handoff/status`,\n externalHandoffResolveDelivery: `${SPOTPATCH_API_BASE}/external-handoff/resolve-delivery`,\n externalAgentControlStatus: `${SPOTPATCH_API_BASE}/external-agent/control/status`,\n externalAgentControlConnect: `${SPOTPATCH_API_BASE}/external-agent/control/connect`,\n externalAgentControlDisconnect: `${SPOTPATCH_API_BASE}/external-agent/control/disconnect`,\n externalAgentControlCancel: `${SPOTPATCH_API_BASE}/external-agent/control/cancel`,\n externalAgentEvents: `${SPOTPATCH_API_BASE}/external-agent/events`,\n externalAgentResult: `${SPOTPATCH_API_BASE}/external-agent/result`,\n});\n\nexport type AgentJobAction = \"events\" | \"result\" | \"cancel\" | \"apply\" | \"revert\";\nexport type AskJobAction = \"events\" | \"result\" | \"cancel\";\n\nexport function getAgentJobEndpoint(jobId: string, action: AgentJobAction): string {\n return `${SPOTPATCH_ENDPOINTS.agentJobs}/${encodeURIComponent(jobId)}/${action}`;\n}\n\nexport function getAskJobEndpoint(\n jobId: string,\n action: AskJobAction,\n options: Readonly<{ afterSequence?: number }> = {},\n): string {\n const endpoint = `${SPOTPATCH_ENDPOINTS.askJobs}/${encodeURIComponent(jobId)}/${action}`;\n if (action !== \"events\" && options.afterSequence !== undefined) {\n throw new RangeError(\"afterSequence is only valid for the events endpoint.\");\n }\n if (options.afterSequence === undefined) return endpoint;\n if (!Number.isSafeInteger(options.afterSequence) || options.afterSequence < 0) {\n throw new RangeError(\"afterSequence must be a non-negative safe integer.\");\n }\n return `${endpoint}?afterSequence=${String(options.afterSequence)}`;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,2CAA2C;AACjD,IAAM,2CAA2C;AACjD,IAAM,0BAA0B,OAAO,OAAO;AAAA,EACnD;AAAA,EACA;AAAA,EACA;AACF,CAAU;AACH,IAAM,8BAA8B,OAAO,OAAO;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AACF,CAAU;AACH,IAAM,wCAAwC,OAAO,OAAO;AAAA,EACjE;AAAA,EACA;AACF,CAAU;AACH,IAAM,yCAAyC,OAAO,OAAO;AAAA,EAClE;AAAA,EACA;AAAA,EACA;AACF,CAAU;AACH,IAAM,mCAAmC,OAAO,OAAO;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAU;AACH,IAAM,8CAA8C,OAAO,OAAO;AAAA,EACvE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAU;AAEH,IAAM,0BAA0B,OAAO,OAAO;AAAA,EACnD,sBAAsB,MAAM;AAAA,EAC5B,yBAAyB,MAAM;AAAA,EAC/B,2BAA2B,IAAI;AAAA,EAC/B,wBAAwB,IAAI;AAAA,EAC5B,yBAAyB;AAAA,EACzB,0BAA0B;AAAA,EAC1B,cAAc,KAAK,KAAK;AAAA,EACxB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,2BAA2B;AAAA,EAC3B,yBAAyB;AAAA,EACzB,0BAA0B,IAAI;AAAA,EAC9B,sBAAsB;AAAA,EACtB,0BAA0B;AAAA,EAC1B,wBAAwB;AAAA,EACxB,mBAAmB;AAAA,EACnB,yBAAyB,OAAQ;AAAA,EACjC,yBAAyB;AAAA,EACzB,gBAAgB,KAAK,KAAK;AAAA,EAC1B,2BAA2B;AAAA,EAC3B,uBAAuB;AAAA,EACvB,+BAA+B;AAAA,EAC/B,yBAAyB,KAAK,KAAK;AAAA,EACnC,oBAAoB;AACtB,CAAU;;;ACjEH,IAAM,qBAAqB;AAC3B,IAAM,yBAAyB;AAE/B,IAAM,sBAAsB,OAAO,OAAO;AAAA,EAC/C,WAAW,GAAG,kBAAkB;AAAA,EAChC,eAAe,GAAG,kBAAkB;AAAA,EACpC,YAAY,GAAG,kBAAkB;AAAA,EACjC,yBAAyB,GAAG,kBAAkB;AAAA,EAC9C,oBAAoB,GAAG,kBAAkB;AAAA,EACzC,iBAAiB,GAAG,kBAAkB;AAAA,EACtC,sBAAsB,GAAG,kBAAkB;AAAA,EAC3C,WAAW,GAAG,kBAAkB;AAAA,EAChC,eAAe,GAAG,kBAAkB;AAAA,EACpC,SAAS,GAAG,kBAAkB;AAAA,EAC9B,2BAA2B,GAAG,kBAAkB;AAAA,EAChD,wBAAwB,GAAG,kBAAkB;AAAA,EAC7C,uBAAuB,GAAG,kBAAkB;AAAA,EAC5C,gCAAgC,GAAG,kBAAkB;AAAA,EACrD,4BAA4B,GAAG,kBAAkB;AAAA,EACjD,6BAA6B,GAAG,kBAAkB;AAAA,EAClD,gCAAgC,GAAG,kBAAkB;AAAA,EACrD,4BAA4B,GAAG,kBAAkB;AAAA,EACjD,qBAAqB,GAAG,kBAAkB;AAAA,EAC1C,qBAAqB,GAAG,kBAAkB;AAC5C,CAAC;;;AFHM,IAAM,cAAc,OAAO,OAAO;AAAA,EACvC,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,2BAA2B;AAAA,EAC3B,8BAA8B;AAAA,EAC9B,2BAA2B;AAAA,EAC3B,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,wBAAwB;AAAA,EACxB,4BAA4B;AAAA,EAC5B,qBAAqB;AAAA,EACrB,yBAAyB;AAAA,EACzB,gBAAgB;AAAA,EAChB,gBAAgB;AAClB,CAiBC;AAED,IAAM,oBAAuC,OAAO,OAAO,WAAW;AAE/D,SAAS,YAAY,OAAoC;AAC9D,SAAO,OAAO,UAAU,YAAY,kBAAkB,SAAS,KAAK;AACtE;AAGO,IAAMC,2BAA0B,OAAO,OAAO;AAAA,EACnD,0BAA0B;AAAA,EAC1B,gBAAgB;AAAA,EAChB,oBAAoB;AACtB,CAGC;AAEM,IAAM,gCAAgC,OAAO,OAAO;AAAA,EACzD,eAAe;AAAA,EACf,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,kBAAkB;AAAA,EAClB,yBAAyB;AAAA,EACzB,yBAAyB;AAAA,EACzB,qBAAqB;AAAA,EACrB,eAAe;AAAA,EACf,uBAAuB,KAAK;AAAA,EAC5B,wBAAwB;AAC1B,CAAgE;AACzD,IAAM,iCACX;AAGK,IAAM,uBAAuB,OAAO,OAAO;AAAA,EAChD;AAAA,EACA;AACF,CAAuD;AAChD,IAAM,mCAAmC,OAAO,OAAO;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAmE;AAC5D,IAAM,gCAAgC,OAAO,OAAO;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAgE;AACzD,IAAM,8BAA8B,OAAO,OAAO;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AACF,CAA8D;AACvD,IAAM,mCAAmC,OAAO,OAAO;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAmE;AAC5D,IAAM,oCAAoC,OAAO,OAAO;AAAA,EAC7D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAoE;AAC7D,IAAM,gCAAgC,OAAO,OAAO;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAgE;AACzD,IAAM,qCAAqC,OAAO,OAAO;AAAA,EAC9D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAqE;AAC9D,IAAM,gCAAgC,OAAO,OAAO;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AACF,CAAgE;AACzD,IAAM,6BAA6B,OAAO,OAAO;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAA6D;AACtD,IAAM,8BAA8B,OAAO,OAAO;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAA8D;AACvD,IAAM,sCAAsC,OAAO,OAAO;AAAA,EAC/D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAsE;AAC/D,IAAM,yBAAyB,OAAO,OAAO;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAyD;","names":["EXTERNAL_HANDOFF_LIMITS","EXTERNAL_HANDOFF_LIMITS"]}
@@ -1,7 +1,7 @@
1
- export { A as ActiveAdapterSummary, D as DispatchSummary, b as EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS, c as EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES, d as EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION, e as EXTERNAL_HANDOFF_DISPATCH_PHASES, f as EXTERNAL_HANDOFF_FRAMEWORKS, g as EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES, h as EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION, i as EXTERNAL_HANDOFF_STATES, j as ExternalHandoffActiveAdapterKind, k as ExternalHandoffActiveAdapterState, l as ExternalHandoffCapability, m as ExternalHandoffDispatchPhase, n as ExternalHandoffFramework, o as ExternalHandoffPublishDelivery, p as ExternalHandoffPublishRequest, q as ExternalHandoffPublishResult, r as ExternalHandoffReportableDispatchPhase, s as ExternalHandoffResolveDeliveryRequest, a as ExternalHandoffSnapshot, t as ExternalHandoffState, u as ExternalHandoffStatusRequest, v as ExternalHandoffStatusResult, w as ExternalHandoffSummary } from './external-handoff-DwtFFR6F.cjs';
1
+ export { A as ActiveAdapterSummary, D as DispatchSummary, b as EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS, c as EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES, d as EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION, e as EXTERNAL_HANDOFF_DISPATCH_PHASES, f as EXTERNAL_HANDOFF_FRAMEWORKS, g as EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES, h as EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION, i as EXTERNAL_HANDOFF_STATES, j as ExternalHandoffActiveAdapterKind, k as ExternalHandoffActiveAdapterState, l as ExternalHandoffCapability, m as ExternalHandoffDispatchPhase, n as ExternalHandoffFramework, o as ExternalHandoffPublishDelivery, p as ExternalHandoffPublishRequest, q as ExternalHandoffPublishResult, r as ExternalHandoffReportableDispatchPhase, s as ExternalHandoffResolveDeliveryRequest, a as ExternalHandoffSnapshot, t as ExternalHandoffState, u as ExternalHandoffStatusRequest, v as ExternalHandoffStatusResult, w as ExternalHandoffSummary } from './external-handoff-DeiIvR-2.cjs';
2
2
  export { S as SPOTPATCH_ENDPOINTS, a as SPOTPATCH_TOKEN_HEADER } from './endpoints-O3ohYyAo.cjs';
3
- export { E as ExternalAgentAction, a as ExternalAgentConnectionState, b as ExternalAgentControlCancelRequest, c as ExternalAgentControlConnectRequest, d as ExternalAgentControlDisconnectRequest, e as ExternalAgentControlStatus, f as ExternalAgentErrorCode, g as ExternalAgentEvent, h as ExternalAgentEventsRequest, i as ExternalAgentManagedResult, j as ExternalAgentResultRequest } from './external-agent-control-CRBbjDDk.cjs';
4
- export { S as SpotAnnotation, a as SpotPatchLocale } from './annotation-C0Me9mN2.cjs';
3
+ export { E as ExternalAgentAction, a as ExternalAgentConnectionState, b as ExternalAgentControlCancelRequest, c as ExternalAgentControlConnectRequest, d as ExternalAgentControlDisconnectRequest, e as ExternalAgentControlStatus, f as ExternalAgentErrorCode, g as ExternalAgentEvent, h as ExternalAgentEventsRequest, i as ExternalAgentManagedResult, j as ExternalAgentResultRequest } from './external-agent-control-DKxQACUv.cjs';
4
+ export { S as SpotAnnotation, a as SpotPatchLocale } from './annotation-Cz-NNgR4.cjs';
5
5
  import 'zod';
6
6
 
7
7
  /** Browser-reachable errors only; keeps unrelated Agent/worktree codes out of the lazy UI. */
@@ -31,6 +31,8 @@ declare const EXTERNAL_HANDOFF_LIMITS: Readonly<{
31
31
  readonly activeStatusPollMs: 1000;
32
32
  }>;
33
33
  declare const EXTERNAL_AGENT_CONTROL_LIMITS: Readonly<{
34
+ readonly maximumModels: 128;
35
+ readonly maximumModelCharacters: 128;
34
36
  readonly maximumEventSubscribers: 4;
35
37
  readonly eventHeartbeatMs: 15000;
36
38
  readonly eventReconnectMinimumMs: 500;
@@ -1,7 +1,7 @@
1
- export { A as ActiveAdapterSummary, D as DispatchSummary, b as EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS, c as EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES, d as EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION, e as EXTERNAL_HANDOFF_DISPATCH_PHASES, f as EXTERNAL_HANDOFF_FRAMEWORKS, g as EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES, h as EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION, i as EXTERNAL_HANDOFF_STATES, j as ExternalHandoffActiveAdapterKind, k as ExternalHandoffActiveAdapterState, l as ExternalHandoffCapability, m as ExternalHandoffDispatchPhase, n as ExternalHandoffFramework, o as ExternalHandoffPublishDelivery, p as ExternalHandoffPublishRequest, q as ExternalHandoffPublishResult, r as ExternalHandoffReportableDispatchPhase, s as ExternalHandoffResolveDeliveryRequest, a as ExternalHandoffSnapshot, t as ExternalHandoffState, u as ExternalHandoffStatusRequest, v as ExternalHandoffStatusResult, w as ExternalHandoffSummary } from './external-handoff-DighrWn8.js';
1
+ export { A as ActiveAdapterSummary, D as DispatchSummary, b as EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS, c as EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES, d as EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION, e as EXTERNAL_HANDOFF_DISPATCH_PHASES, f as EXTERNAL_HANDOFF_FRAMEWORKS, g as EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES, h as EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION, i as EXTERNAL_HANDOFF_STATES, j as ExternalHandoffActiveAdapterKind, k as ExternalHandoffActiveAdapterState, l as ExternalHandoffCapability, m as ExternalHandoffDispatchPhase, n as ExternalHandoffFramework, o as ExternalHandoffPublishDelivery, p as ExternalHandoffPublishRequest, q as ExternalHandoffPublishResult, r as ExternalHandoffReportableDispatchPhase, s as ExternalHandoffResolveDeliveryRequest, a as ExternalHandoffSnapshot, t as ExternalHandoffState, u as ExternalHandoffStatusRequest, v as ExternalHandoffStatusResult, w as ExternalHandoffSummary } from './external-handoff-5zHu-fz2.js';
2
2
  export { S as SPOTPATCH_ENDPOINTS, a as SPOTPATCH_TOKEN_HEADER } from './endpoints-O3ohYyAo.js';
3
- export { E as ExternalAgentAction, a as ExternalAgentConnectionState, b as ExternalAgentControlCancelRequest, c as ExternalAgentControlConnectRequest, d as ExternalAgentControlDisconnectRequest, e as ExternalAgentControlStatus, f as ExternalAgentErrorCode, g as ExternalAgentEvent, h as ExternalAgentEventsRequest, i as ExternalAgentManagedResult, j as ExternalAgentResultRequest } from './external-agent-control-CRBbjDDk.js';
4
- export { S as SpotAnnotation, a as SpotPatchLocale } from './annotation-C0Me9mN2.js';
3
+ export { E as ExternalAgentAction, a as ExternalAgentConnectionState, b as ExternalAgentControlCancelRequest, c as ExternalAgentControlConnectRequest, d as ExternalAgentControlDisconnectRequest, e as ExternalAgentControlStatus, f as ExternalAgentErrorCode, g as ExternalAgentEvent, h as ExternalAgentEventsRequest, i as ExternalAgentManagedResult, j as ExternalAgentResultRequest } from './external-agent-control-DKxQACUv.js';
4
+ export { S as SpotAnnotation, a as SpotPatchLocale } from './annotation-Cz-NNgR4.js';
5
5
  import 'zod';
6
6
 
7
7
  /** Browser-reachable errors only; keeps unrelated Agent/worktree codes out of the lazy UI. */
@@ -31,6 +31,8 @@ declare const EXTERNAL_HANDOFF_LIMITS: Readonly<{
31
31
  readonly activeStatusPollMs: 1000;
32
32
  }>;
33
33
  declare const EXTERNAL_AGENT_CONTROL_LIMITS: Readonly<{
34
+ readonly maximumModels: 128;
35
+ readonly maximumModelCharacters: 128;
34
36
  readonly maximumEventSubscribers: 4;
35
37
  readonly eventHeartbeatMs: 15000;
36
38
  readonly eventReconnectMinimumMs: 500;
@@ -11,7 +11,7 @@ import {
11
11
  EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES,
12
12
  EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION,
13
13
  EXTERNAL_HANDOFF_STATES
14
- } from "./chunk-2LVIH7OA.js";
14
+ } from "./chunk-IX6MSCK6.js";
15
15
 
16
16
  // src/external-handoff-browser.ts
17
17
  var ERROR_CODES = Object.freeze({
@@ -41,6 +41,8 @@ var EXTERNAL_HANDOFF_LIMITS = Object.freeze({
41
41
  activeStatusPollMs: 1e3
42
42
  });
43
43
  var EXTERNAL_AGENT_CONTROL_LIMITS = Object.freeze({
44
+ maximumModels: 128,
45
+ maximumModelCharacters: 128,
44
46
  maximumEventSubscribers: 4,
45
47
  eventHeartbeatMs: 15e3,
46
48
  eventReconnectMinimumMs: 500,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/external-handoff-browser.ts"],"sourcesContent":["import type { ERROR_CODES as GLOBAL_ERROR_CODES } from \"./errors/error-code.js\";\nimport type {\n EXTERNAL_AGENT_ACTIONS as GLOBAL_EXTERNAL_AGENT_ACTIONS,\n EXTERNAL_AGENT_AUTH_READINESS as GLOBAL_EXTERNAL_AGENT_AUTH_READINESS,\n EXTERNAL_AGENT_CHECK_OUTCOMES as GLOBAL_EXTERNAL_AGENT_CHECK_OUTCOMES,\n EXTERNAL_AGENT_CONNECTION_STATES as GLOBAL_EXTERNAL_AGENT_CONNECTION_STATES,\n EXTERNAL_AGENT_CONTROL_LIMITS as GLOBAL_EXTERNAL_AGENT_CONTROL_LIMITS,\n EXTERNAL_AGENT_DELIVERY_STATUSES as GLOBAL_EXTERNAL_AGENT_DELIVERY_STATUSES,\n EXTERNAL_AGENT_ERROR_CODES as GLOBAL_EXTERNAL_AGENT_ERROR_CODES,\n EXTERNAL_AGENT_ERROR_RECOVERABILITY as GLOBAL_EXTERNAL_AGENT_ERROR_RECOVERABILITY,\n EXTERNAL_AGENT_ERROR_STAGES as GLOBAL_EXTERNAL_AGENT_ERROR_STAGES,\n EXTERNAL_AGENT_EXECUTION_STATUSES as GLOBAL_EXTERNAL_AGENT_EXECUTION_STATUSES,\n EXTERNAL_AGENT_GRANT_STATES as GLOBAL_EXTERNAL_AGENT_GRANT_STATES,\n EXTERNAL_AGENT_MANAGED_PROFILE as GLOBAL_EXTERNAL_AGENT_MANAGED_PROFILE,\n EXTERNAL_AGENT_MANAGED_PHASES as GLOBAL_EXTERNAL_AGENT_MANAGED_PHASES,\n EXTERNAL_AGENT_MODES as GLOBAL_EXTERNAL_AGENT_MODES,\n EXTERNAL_AGENT_VALIDATION_OUTCOMES as GLOBAL_EXTERNAL_AGENT_VALIDATION_OUTCOMES,\n} from \"./protocol/external-agent-control.js\";\nimport type { EXTERNAL_HANDOFF_LIMITS as GLOBAL_EXTERNAL_HANDOFF_LIMITS } from \"./protocol/external-handoff-constants.js\";\n\n/** Browser-reachable errors only; keeps unrelated Agent/worktree codes out of the lazy UI. */\nexport const ERROR_CODES = Object.freeze({\n INVALID_REQUEST: \"INVALID_REQUEST\",\n INVALID_TOKEN: \"INVALID_TOKEN\",\n ORIGIN_NOT_ALLOWED: \"ORIGIN_NOT_ALLOWED\",\n EXTERNAL_HANDOFF_DISABLED: \"EXTERNAL_HANDOFF_DISABLED\",\n EXTERNAL_HANDOFF_UNAVAILABLE: \"EXTERNAL_HANDOFF_UNAVAILABLE\",\n HANDOFF_VALIDATION_FAILED: \"HANDOFF_VALIDATION_FAILED\",\n HANDOFF_SOURCE_STALE: \"HANDOFF_SOURCE_STALE\",\n HANDOFF_NOT_FOUND: \"HANDOFF_NOT_FOUND\",\n HANDOFF_EXPIRED: \"HANDOFF_EXPIRED\",\n HANDOFF_CURSOR_INVALID: \"HANDOFF_CURSOR_INVALID\",\n HANDOFF_RESPONSE_TOO_LARGE: \"HANDOFF_RESPONSE_TOO_LARGE\",\n EXTERNAL_AGENT_BUSY: \"EXTERNAL_AGENT_BUSY\",\n ACTIVE_DISPATCH_INVALID: \"ACTIVE_DISPATCH_INVALID\",\n SESSION_CLOSED: \"SESSION_CLOSED\",\n INTERNAL_ERROR: \"INTERNAL_ERROR\",\n} as const satisfies Pick<\n typeof GLOBAL_ERROR_CODES,\n | \"ACTIVE_DISPATCH_INVALID\"\n | \"EXTERNAL_AGENT_BUSY\"\n | \"EXTERNAL_HANDOFF_DISABLED\"\n | \"EXTERNAL_HANDOFF_UNAVAILABLE\"\n | \"HANDOFF_CURSOR_INVALID\"\n | \"HANDOFF_EXPIRED\"\n | \"HANDOFF_NOT_FOUND\"\n | \"HANDOFF_RESPONSE_TOO_LARGE\"\n | \"HANDOFF_SOURCE_STALE\"\n | \"HANDOFF_VALIDATION_FAILED\"\n | \"INTERNAL_ERROR\"\n | \"INVALID_REQUEST\"\n | \"INVALID_TOKEN\"\n | \"ORIGIN_NOT_ALLOWED\"\n | \"SESSION_CLOSED\"\n>);\nexport type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\nconst ERROR_CODE_VALUES: readonly string[] = Object.values(ERROR_CODES);\n\nexport function isErrorCode(value: unknown): value is ErrorCode {\n return typeof value === \"string\" && ERROR_CODE_VALUES.includes(value);\n}\n\n/** Browser-consumed limits only; literal types make drift from the canonical limits fail. */\nexport const EXTERNAL_HANDOFF_LIMITS = Object.freeze({\n maximumConnectorReceipts: 64,\n maximumWaiters: 8,\n activeStatusPollMs: 1_000,\n} as const satisfies Pick<\n typeof GLOBAL_EXTERNAL_HANDOFF_LIMITS,\n \"activeStatusPollMs\" | \"maximumConnectorReceipts\" | \"maximumWaiters\"\n>);\n\nexport const EXTERNAL_AGENT_CONTROL_LIMITS = Object.freeze({\n maximumEventSubscribers: 4,\n eventHeartbeatMs: 15_000,\n eventReconnectMinimumMs: 500,\n eventReconnectMaximumMs: 10_000,\n maximumChangedFiles: 20,\n maximumChecks: 64,\n maximumEventLineBytes: 64 * 1_024,\n maximumResultDiffBytes: 512_000,\n} as const satisfies typeof GLOBAL_EXTERNAL_AGENT_CONTROL_LIMITS);\nexport const EXTERNAL_AGENT_MANAGED_PROFILE =\n \"managed-apply-v1\" as const satisfies typeof GLOBAL_EXTERNAL_AGENT_MANAGED_PROFILE;\n\n/** Browser-safe literal projections; type-only checks prevent protocol drift without Zod. */\nexport const EXTERNAL_AGENT_MODES = Object.freeze([\n \"inbox\",\n \"managed\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_MODES);\nexport const EXTERNAL_AGENT_CONNECTION_STATES = Object.freeze([\n \"disconnected\",\n \"diagnosing\",\n \"awaiting-consent\",\n \"connecting\",\n \"ready\",\n \"busy\",\n \"degraded\",\n \"error\",\n \"disconnecting\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_CONNECTION_STATES);\nexport const EXTERNAL_AGENT_AUTH_READINESS = Object.freeze([\n \"authenticated\",\n \"auth-not-required\",\n \"signed-out\",\n \"unknown\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_AUTH_READINESS);\nexport const EXTERNAL_AGENT_GRANT_STATES = Object.freeze([\n \"missing\",\n \"valid\",\n \"invalid\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_GRANT_STATES);\nexport const EXTERNAL_AGENT_DELIVERY_STATUSES = Object.freeze([\n \"queued\",\n \"dispatching\",\n \"accepted\",\n \"unknown\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_DELIVERY_STATUSES);\nexport const EXTERNAL_AGENT_EXECUTION_STATUSES = Object.freeze([\n \"not-observable\",\n \"started\",\n \"terminal-succeeded\",\n \"terminal-failed\",\n \"interrupted\",\n \"unknown\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_EXECUTION_STATUSES);\nexport const EXTERNAL_AGENT_MANAGED_PHASES = Object.freeze([\n \"preparing\",\n \"running\",\n \"auditing\",\n \"validating\",\n \"applying\",\n \"completed\",\n \"review-required\",\n \"failed\",\n \"cancelled\",\n \"cleanup-warning\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_MANAGED_PHASES);\nexport const EXTERNAL_AGENT_VALIDATION_OUTCOMES = Object.freeze([\n \"passed\",\n \"failed\",\n \"not-configured\",\n \"unavailable\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_VALIDATION_OUTCOMES);\nexport const EXTERNAL_AGENT_CHECK_OUTCOMES = Object.freeze([\n \"passed\",\n \"failed\",\n \"unavailable\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_CHECK_OUTCOMES);\nexport const EXTERNAL_AGENT_ERROR_CODES = Object.freeze([\n \"AGENT_BINARY_NOT_FOUND\",\n \"AGENT_BINARY_UNTRUSTED\",\n \"AGENT_VERSION_UNSUPPORTED\",\n \"APP_SERVER_HANDSHAKE_FAILED\",\n \"AGENT_AUTH_REQUIRED\",\n \"AGENT_MODEL_UNAVAILABLE\",\n \"AGENT_PROTOCOL_INCOMPATIBLE\",\n \"CODEX_CONFIG_ISOLATION_UNSUPPORTED\",\n \"MANAGED_GRANT_INVALID\",\n \"MANAGED_PLATFORM_UNSUPPORTED\",\n \"MANAGED_GIT_REQUIRED\",\n \"MANAGED_SNAPSHOT_FAILED\",\n \"MANAGED_SCOPE_VIOLATION\",\n \"MANAGED_CHANGE_LIMIT_EXCEEDED\",\n \"MANAGED_VALIDATION_FAILED\",\n \"MANAGED_WORKSPACE_CONFLICT\",\n \"MANAGED_APPLY_FAILED\",\n \"MANAGED_CLEANUP_INCOMPLETE\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_ERROR_CODES);\nexport const EXTERNAL_AGENT_ERROR_STAGES = Object.freeze([\n \"integration\",\n \"binary\",\n \"handshake\",\n \"auth\",\n \"model\",\n \"protocol\",\n \"snapshot\",\n \"audit\",\n \"validation\",\n \"apply\",\n \"cleanup\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_ERROR_STAGES);\nexport const EXTERNAL_AGENT_ERROR_RECOVERABILITY = Object.freeze([\n \"retry\",\n \"user-action\",\n \"reconfigure\",\n \"none\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_ERROR_RECOVERABILITY);\nexport const EXTERNAL_AGENT_ACTIONS = Object.freeze([\n \"install-agent\",\n \"use-supported-version\",\n \"sign-in\",\n \"choose-available-model\",\n \"use-inbox\",\n \"confirm-managed-access\",\n \"review-candidate-diff\",\n \"review-workspace-conflict\",\n \"retry\",\n \"inspect-cleanup-warning\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_ACTIONS);\n\nexport {\n EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS,\n EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES,\n EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION,\n EXTERNAL_HANDOFF_DISPATCH_PHASES,\n EXTERNAL_HANDOFF_FRAMEWORKS,\n EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES,\n EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION,\n EXTERNAL_HANDOFF_STATES,\n type ExternalHandoffActiveAdapterKind,\n type ExternalHandoffActiveAdapterState,\n type ExternalHandoffDispatchPhase,\n type ExternalHandoffFramework,\n type ExternalHandoffReportableDispatchPhase,\n type ExternalHandoffState,\n} from \"./protocol/external-handoff-constants.js\";\nexport { SPOTPATCH_ENDPOINTS, SPOTPATCH_TOKEN_HEADER } from \"./protocol/endpoints.js\";\nexport type {\n ExternalAgentAction,\n ExternalAgentConnectionState,\n ExternalAgentControlCancelRequest,\n ExternalAgentControlConnectRequest,\n ExternalAgentControlDisconnectRequest,\n ExternalAgentControlStatus,\n ExternalAgentErrorCode,\n ExternalAgentEvent,\n ExternalAgentEventsRequest,\n ExternalAgentManagedResult,\n ExternalAgentResultRequest,\n} from \"./protocol/external-agent-control.js\";\nexport type {\n ActiveAdapterSummary,\n DispatchSummary,\n ExternalHandoffCapability,\n ExternalHandoffPublishDelivery,\n ExternalHandoffPublishRequest,\n ExternalHandoffPublishResult,\n ExternalHandoffResolveDeliveryRequest,\n ExternalHandoffSnapshot,\n ExternalHandoffStatusRequest,\n ExternalHandoffStatusResult,\n ExternalHandoffSummary,\n} from \"./protocol/external-handoff.js\";\nexport type { SpotAnnotation, SpotPatchLocale } from \"./model/annotation.js\";\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/external-handoff-browser.ts"],"sourcesContent":["import type { ERROR_CODES as GLOBAL_ERROR_CODES } from \"./errors/error-code.js\";\nimport type {\n EXTERNAL_AGENT_ACTIONS as GLOBAL_EXTERNAL_AGENT_ACTIONS,\n EXTERNAL_AGENT_AUTH_READINESS as GLOBAL_EXTERNAL_AGENT_AUTH_READINESS,\n EXTERNAL_AGENT_CHECK_OUTCOMES as GLOBAL_EXTERNAL_AGENT_CHECK_OUTCOMES,\n EXTERNAL_AGENT_CONNECTION_STATES as GLOBAL_EXTERNAL_AGENT_CONNECTION_STATES,\n EXTERNAL_AGENT_CONTROL_LIMITS as GLOBAL_EXTERNAL_AGENT_CONTROL_LIMITS,\n EXTERNAL_AGENT_DELIVERY_STATUSES as GLOBAL_EXTERNAL_AGENT_DELIVERY_STATUSES,\n EXTERNAL_AGENT_ERROR_CODES as GLOBAL_EXTERNAL_AGENT_ERROR_CODES,\n EXTERNAL_AGENT_ERROR_RECOVERABILITY as GLOBAL_EXTERNAL_AGENT_ERROR_RECOVERABILITY,\n EXTERNAL_AGENT_ERROR_STAGES as GLOBAL_EXTERNAL_AGENT_ERROR_STAGES,\n EXTERNAL_AGENT_EXECUTION_STATUSES as GLOBAL_EXTERNAL_AGENT_EXECUTION_STATUSES,\n EXTERNAL_AGENT_GRANT_STATES as GLOBAL_EXTERNAL_AGENT_GRANT_STATES,\n EXTERNAL_AGENT_MANAGED_PROFILE as GLOBAL_EXTERNAL_AGENT_MANAGED_PROFILE,\n EXTERNAL_AGENT_MANAGED_PHASES as GLOBAL_EXTERNAL_AGENT_MANAGED_PHASES,\n EXTERNAL_AGENT_MODES as GLOBAL_EXTERNAL_AGENT_MODES,\n EXTERNAL_AGENT_VALIDATION_OUTCOMES as GLOBAL_EXTERNAL_AGENT_VALIDATION_OUTCOMES,\n} from \"./protocol/external-agent-control.js\";\nimport type { EXTERNAL_HANDOFF_LIMITS as GLOBAL_EXTERNAL_HANDOFF_LIMITS } from \"./protocol/external-handoff-constants.js\";\n\n/** Browser-reachable errors only; keeps unrelated Agent/worktree codes out of the lazy UI. */\nexport const ERROR_CODES = Object.freeze({\n INVALID_REQUEST: \"INVALID_REQUEST\",\n INVALID_TOKEN: \"INVALID_TOKEN\",\n ORIGIN_NOT_ALLOWED: \"ORIGIN_NOT_ALLOWED\",\n EXTERNAL_HANDOFF_DISABLED: \"EXTERNAL_HANDOFF_DISABLED\",\n EXTERNAL_HANDOFF_UNAVAILABLE: \"EXTERNAL_HANDOFF_UNAVAILABLE\",\n HANDOFF_VALIDATION_FAILED: \"HANDOFF_VALIDATION_FAILED\",\n HANDOFF_SOURCE_STALE: \"HANDOFF_SOURCE_STALE\",\n HANDOFF_NOT_FOUND: \"HANDOFF_NOT_FOUND\",\n HANDOFF_EXPIRED: \"HANDOFF_EXPIRED\",\n HANDOFF_CURSOR_INVALID: \"HANDOFF_CURSOR_INVALID\",\n HANDOFF_RESPONSE_TOO_LARGE: \"HANDOFF_RESPONSE_TOO_LARGE\",\n EXTERNAL_AGENT_BUSY: \"EXTERNAL_AGENT_BUSY\",\n ACTIVE_DISPATCH_INVALID: \"ACTIVE_DISPATCH_INVALID\",\n SESSION_CLOSED: \"SESSION_CLOSED\",\n INTERNAL_ERROR: \"INTERNAL_ERROR\",\n} as const satisfies Pick<\n typeof GLOBAL_ERROR_CODES,\n | \"ACTIVE_DISPATCH_INVALID\"\n | \"EXTERNAL_AGENT_BUSY\"\n | \"EXTERNAL_HANDOFF_DISABLED\"\n | \"EXTERNAL_HANDOFF_UNAVAILABLE\"\n | \"HANDOFF_CURSOR_INVALID\"\n | \"HANDOFF_EXPIRED\"\n | \"HANDOFF_NOT_FOUND\"\n | \"HANDOFF_RESPONSE_TOO_LARGE\"\n | \"HANDOFF_SOURCE_STALE\"\n | \"HANDOFF_VALIDATION_FAILED\"\n | \"INTERNAL_ERROR\"\n | \"INVALID_REQUEST\"\n | \"INVALID_TOKEN\"\n | \"ORIGIN_NOT_ALLOWED\"\n | \"SESSION_CLOSED\"\n>);\nexport type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\nconst ERROR_CODE_VALUES: readonly string[] = Object.values(ERROR_CODES);\n\nexport function isErrorCode(value: unknown): value is ErrorCode {\n return typeof value === \"string\" && ERROR_CODE_VALUES.includes(value);\n}\n\n/** Browser-consumed limits only; literal types make drift from the canonical limits fail. */\nexport const EXTERNAL_HANDOFF_LIMITS = Object.freeze({\n maximumConnectorReceipts: 64,\n maximumWaiters: 8,\n activeStatusPollMs: 1_000,\n} as const satisfies Pick<\n typeof GLOBAL_EXTERNAL_HANDOFF_LIMITS,\n \"activeStatusPollMs\" | \"maximumConnectorReceipts\" | \"maximumWaiters\"\n>);\n\nexport const EXTERNAL_AGENT_CONTROL_LIMITS = Object.freeze({\n maximumModels: 128,\n maximumModelCharacters: 128,\n maximumEventSubscribers: 4,\n eventHeartbeatMs: 15_000,\n eventReconnectMinimumMs: 500,\n eventReconnectMaximumMs: 10_000,\n maximumChangedFiles: 20,\n maximumChecks: 64,\n maximumEventLineBytes: 64 * 1_024,\n maximumResultDiffBytes: 512_000,\n} as const satisfies typeof GLOBAL_EXTERNAL_AGENT_CONTROL_LIMITS);\nexport const EXTERNAL_AGENT_MANAGED_PROFILE =\n \"managed-apply-v1\" as const satisfies typeof GLOBAL_EXTERNAL_AGENT_MANAGED_PROFILE;\n\n/** Browser-safe literal projections; type-only checks prevent protocol drift without Zod. */\nexport const EXTERNAL_AGENT_MODES = Object.freeze([\n \"inbox\",\n \"managed\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_MODES);\nexport const EXTERNAL_AGENT_CONNECTION_STATES = Object.freeze([\n \"disconnected\",\n \"diagnosing\",\n \"awaiting-consent\",\n \"connecting\",\n \"ready\",\n \"busy\",\n \"degraded\",\n \"error\",\n \"disconnecting\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_CONNECTION_STATES);\nexport const EXTERNAL_AGENT_AUTH_READINESS = Object.freeze([\n \"authenticated\",\n \"auth-not-required\",\n \"signed-out\",\n \"unknown\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_AUTH_READINESS);\nexport const EXTERNAL_AGENT_GRANT_STATES = Object.freeze([\n \"missing\",\n \"valid\",\n \"invalid\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_GRANT_STATES);\nexport const EXTERNAL_AGENT_DELIVERY_STATUSES = Object.freeze([\n \"queued\",\n \"dispatching\",\n \"accepted\",\n \"unknown\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_DELIVERY_STATUSES);\nexport const EXTERNAL_AGENT_EXECUTION_STATUSES = Object.freeze([\n \"not-observable\",\n \"started\",\n \"terminal-succeeded\",\n \"terminal-failed\",\n \"interrupted\",\n \"unknown\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_EXECUTION_STATUSES);\nexport const EXTERNAL_AGENT_MANAGED_PHASES = Object.freeze([\n \"preparing\",\n \"running\",\n \"auditing\",\n \"validating\",\n \"applying\",\n \"completed\",\n \"review-required\",\n \"failed\",\n \"cancelled\",\n \"cleanup-warning\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_MANAGED_PHASES);\nexport const EXTERNAL_AGENT_VALIDATION_OUTCOMES = Object.freeze([\n \"passed\",\n \"failed\",\n \"not-configured\",\n \"unavailable\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_VALIDATION_OUTCOMES);\nexport const EXTERNAL_AGENT_CHECK_OUTCOMES = Object.freeze([\n \"passed\",\n \"failed\",\n \"unavailable\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_CHECK_OUTCOMES);\nexport const EXTERNAL_AGENT_ERROR_CODES = Object.freeze([\n \"AGENT_BINARY_NOT_FOUND\",\n \"AGENT_BINARY_UNTRUSTED\",\n \"AGENT_VERSION_UNSUPPORTED\",\n \"APP_SERVER_HANDSHAKE_FAILED\",\n \"AGENT_AUTH_REQUIRED\",\n \"AGENT_MODEL_UNAVAILABLE\",\n \"AGENT_PROTOCOL_INCOMPATIBLE\",\n \"CODEX_CONFIG_ISOLATION_UNSUPPORTED\",\n \"MANAGED_GRANT_INVALID\",\n \"MANAGED_PLATFORM_UNSUPPORTED\",\n \"MANAGED_GIT_REQUIRED\",\n \"MANAGED_SNAPSHOT_FAILED\",\n \"MANAGED_SCOPE_VIOLATION\",\n \"MANAGED_CHANGE_LIMIT_EXCEEDED\",\n \"MANAGED_VALIDATION_FAILED\",\n \"MANAGED_WORKSPACE_CONFLICT\",\n \"MANAGED_APPLY_FAILED\",\n \"MANAGED_CLEANUP_INCOMPLETE\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_ERROR_CODES);\nexport const EXTERNAL_AGENT_ERROR_STAGES = Object.freeze([\n \"integration\",\n \"binary\",\n \"handshake\",\n \"auth\",\n \"model\",\n \"protocol\",\n \"snapshot\",\n \"audit\",\n \"validation\",\n \"apply\",\n \"cleanup\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_ERROR_STAGES);\nexport const EXTERNAL_AGENT_ERROR_RECOVERABILITY = Object.freeze([\n \"retry\",\n \"user-action\",\n \"reconfigure\",\n \"none\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_ERROR_RECOVERABILITY);\nexport const EXTERNAL_AGENT_ACTIONS = Object.freeze([\n \"install-agent\",\n \"use-supported-version\",\n \"sign-in\",\n \"choose-available-model\",\n \"use-inbox\",\n \"confirm-managed-access\",\n \"review-candidate-diff\",\n \"review-workspace-conflict\",\n \"retry\",\n \"inspect-cleanup-warning\",\n] as const satisfies typeof GLOBAL_EXTERNAL_AGENT_ACTIONS);\n\nexport {\n EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS,\n EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES,\n EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION,\n EXTERNAL_HANDOFF_DISPATCH_PHASES,\n EXTERNAL_HANDOFF_FRAMEWORKS,\n EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES,\n EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION,\n EXTERNAL_HANDOFF_STATES,\n type ExternalHandoffActiveAdapterKind,\n type ExternalHandoffActiveAdapterState,\n type ExternalHandoffDispatchPhase,\n type ExternalHandoffFramework,\n type ExternalHandoffReportableDispatchPhase,\n type ExternalHandoffState,\n} from \"./protocol/external-handoff-constants.js\";\nexport { SPOTPATCH_ENDPOINTS, SPOTPATCH_TOKEN_HEADER } from \"./protocol/endpoints.js\";\nexport type {\n ExternalAgentAction,\n ExternalAgentConnectionState,\n ExternalAgentControlCancelRequest,\n ExternalAgentControlConnectRequest,\n ExternalAgentControlDisconnectRequest,\n ExternalAgentControlStatus,\n ExternalAgentErrorCode,\n ExternalAgentEvent,\n ExternalAgentEventsRequest,\n ExternalAgentManagedResult,\n ExternalAgentResultRequest,\n} from \"./protocol/external-agent-control.js\";\nexport type {\n ActiveAdapterSummary,\n DispatchSummary,\n ExternalHandoffCapability,\n ExternalHandoffPublishDelivery,\n ExternalHandoffPublishRequest,\n ExternalHandoffPublishResult,\n ExternalHandoffResolveDeliveryRequest,\n ExternalHandoffSnapshot,\n ExternalHandoffStatusRequest,\n ExternalHandoffStatusResult,\n ExternalHandoffSummary,\n} from \"./protocol/external-handoff.js\";\nexport type { SpotAnnotation, SpotPatchLocale } from \"./model/annotation.js\";\n"],"mappings":"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","names":[]}
package/dist/index.cjs CHANGED
@@ -388,6 +388,7 @@ var CONTEXTUAL_ASK_LIMITS = Object.freeze({
388
388
  maximumLanguageCharacters: 64,
389
389
  maximumPhaseMessageCharacters: 1024,
390
390
  maximumExecutors: 32,
391
+ maximumModels: 800,
391
392
  contentHashHexCharacters: 64
392
393
  });
393
394
  var CONTEXTUAL_ASK_EXECUTOR_KINDS = Object.freeze([
@@ -439,7 +440,7 @@ var sourceRefSchema = import_zod.z.strictObject({
439
440
  relativePath: boundedString(1024).optional(),
440
441
  line: import_zod.z.number().int().positive().optional(),
441
442
  column: import_zod.z.number().int().positive().optional(),
442
- origin: import_zod.z.enum(["jsx-host", "react-fiber", "dom-ancestor", "none"]),
443
+ origin: import_zod.z.enum(["jsx-host", "astro-host", "react-fiber", "dom-ancestor", "none"]),
443
444
  confidence: import_zod.z.enum(["exact", "probable", "approximate", "unknown"])
444
445
  });
445
446
  var matchedStyleRuleSchema = import_zod.z.strictObject({
@@ -450,7 +451,7 @@ var matchedStyleRuleSchema = import_zod.z.strictObject({
450
451
  });
451
452
  var codeContextSchema = import_zod.z.strictObject({
452
453
  relativePath: boundedString(1024),
453
- language: import_zod.z.enum(["tsx", "jsx"]),
454
+ language: import_zod.z.enum(["tsx", "jsx", "astro"]),
454
455
  startLine: import_zod.z.number().int().positive(),
455
456
  endLine: import_zod.z.number().int().positive(),
456
457
  excerpt: boundedString(16e3),
@@ -848,6 +849,7 @@ var contextualAskExecutorCapabilitySchema = import_zod2.z.strictObject({
848
849
  label: contextualAskBoundedText(limits.maximumLabelCharacters),
849
850
  requestedModelLabel: contextualAskBoundedText(limits.maximumLabelCharacters),
850
851
  effectiveModelLabel: contextualAskBoundedText(limits.maximumLabelCharacters),
852
+ models: import_zod2.z.array(contextualAskBoundedText(limits.maximumLabelCharacters)).min(1).max(limits.maximumModels).refine((models) => new Set(models).size === models.length).optional(),
851
853
  state: import_zod2.z.enum(CONTEXTUAL_ASK_EXECUTOR_STATES),
852
854
  providerDataConsentRequired: import_zod2.z.boolean(),
853
855
  readOnlyProven: import_zod2.z.boolean(),
@@ -1093,6 +1095,7 @@ var dataDependencySchema = import_zod3.z.strictObject({
1093
1095
  kind: import_zod3.z.enum(["http", "graphql", "rpc", "server-action", "unknown"]),
1094
1096
  direction: import_zod3.z.enum(["read", "write", "read-write", "unknown"]),
1095
1097
  execution: import_zod3.z.enum(DATA_FLOW_EXECUTION_STATES),
1098
+ environment: import_zod3.z.enum(["server", "client"]).optional(),
1096
1099
  proof: import_zod3.z.enum(DATA_FLOW_PROOF_STATES),
1097
1100
  association: import_zod3.z.enum(DATA_FLOW_ASSOCIATION_KINDS),
1098
1101
  method: boundedText(32).optional(),
@@ -1529,6 +1532,10 @@ var runtimeConfigBaseShape = {
1529
1532
  spotPatchVersion: boundedText2(64)
1530
1533
  };
1531
1534
  var runtimeConfigSchema = import_zod4.z.discriminatedUnion("framework", [
1535
+ import_zod4.z.strictObject({
1536
+ ...runtimeConfigBaseShape,
1537
+ framework: import_zod4.z.literal("astro")
1538
+ }),
1532
1539
  import_zod4.z.strictObject({
1533
1540
  ...runtimeConfigBaseShape,
1534
1541
  framework: import_zod4.z.literal("vite")
@@ -1543,9 +1550,14 @@ var runtimeConfigSchema = import_zod4.z.discriminatedUnion("framework", [
1543
1550
 
1544
1551
  // src/model/source-marker.ts
1545
1552
  var SOURCE_MARKER_ATTRIBUTE = "data-spotpatch-source";
1546
- var SOURCE_MARKER_PATTERN = /^([A-Za-z0-9_-]+):([1-9]\d*):([1-9]\d*)$/;
1553
+ var SOURCE_MARKER_PATTERN = /^([A-Za-z0-9_-]+):([1-9]\d*):([1-9]\d*)(:astro)?$/;
1547
1554
  function formatSourceMarker(marker) {
1548
- return [marker.fileId, String(marker.line), String(marker.column)].join(":");
1555
+ return [
1556
+ marker.fileId,
1557
+ String(marker.line),
1558
+ String(marker.column),
1559
+ ...marker.kind === void 0 ? [] : [marker.kind]
1560
+ ].join(":");
1549
1561
  }
1550
1562
  function parseSourceMarker(value) {
1551
1563
  if (value === null) {
@@ -1561,7 +1573,12 @@ function parseSourceMarker(value) {
1561
1573
  if (fileId === void 0 || !Number.isSafeInteger(line) || !Number.isSafeInteger(column)) {
1562
1574
  return void 0;
1563
1575
  }
1564
- return Object.freeze({ fileId, line, column });
1576
+ return Object.freeze({
1577
+ fileId,
1578
+ line,
1579
+ column,
1580
+ ...match[4] === void 0 ? {} : { kind: "astro" }
1581
+ });
1565
1582
  }
1566
1583
 
1567
1584
  // src/protocol/external-agent-control.ts
@@ -1681,6 +1698,8 @@ var EXTERNAL_AGENT_ACTIONS = Object.freeze([
1681
1698
  ]);
1682
1699
  var EXTERNAL_AGENT_MANAGED_PROFILE = "managed-apply-v1";
1683
1700
  var EXTERNAL_AGENT_CONTROL_LIMITS = Object.freeze({
1701
+ maximumModels: 128,
1702
+ maximumModelCharacters: 128,
1684
1703
  maximumEventSubscribers: 4,
1685
1704
  eventHeartbeatMs: 15e3,
1686
1705
  eventReconnectMinimumMs: 500,
@@ -1691,6 +1710,7 @@ var EXTERNAL_AGENT_CONTROL_LIMITS = Object.freeze({
1691
1710
  maximumResultDiffBytes: DEFAULT_AGENT_LIMITS.maxDiffBytes
1692
1711
  });
1693
1712
  var isoTimestampSchema = import_zod5.z.iso.datetime();
1713
+ var modelSchema = import_zod5.z.string().min(1).max(EXTERNAL_AGENT_CONTROL_LIMITS.maximumModelCharacters).refine((value) => value.trim() === value);
1694
1714
  var requestIdSchema = import_zod5.z.string().min(22).max(128).regex(/^[A-Za-z0-9_-]+$/u);
1695
1715
  var safeRelativePathSchema = import_zod5.z.string().min(1).max(4096).superRefine((value, context) => {
1696
1716
  const segments = value.split("/");
@@ -1748,8 +1768,9 @@ var externalAgentControlStatusSchema = import_zod5.z.strictObject({
1748
1768
  connectionState: import_zod5.z.enum(EXTERNAL_AGENT_CONNECTION_STATES),
1749
1769
  authReadiness: import_zod5.z.enum(EXTERNAL_AGENT_AUTH_READINESS),
1750
1770
  grantState: import_zod5.z.enum(EXTERNAL_AGENT_GRANT_STATES),
1751
- requestedModel: import_zod5.z.string().min(1).max(128).optional(),
1752
- effectiveModel: import_zod5.z.string().min(1).max(128).optional(),
1771
+ requestedModel: modelSchema.optional(),
1772
+ effectiveModel: modelSchema.optional(),
1773
+ models: import_zod5.z.array(modelSchema).min(1).max(EXTERNAL_AGENT_CONTROL_LIMITS.maximumModels).refine((values) => new Set(values).size === values.length).readonly().optional(),
1753
1774
  task: managedTaskStatusSchema.optional(),
1754
1775
  error: externalAgentErrorSchema.optional(),
1755
1776
  updatedAt: isoTimestampSchema
@@ -1758,7 +1779,8 @@ var externalAgentControlStatusRequestSchema = import_zod5.z.strictObject({});
1758
1779
  var externalAgentControlConnectRequestSchema = import_zod5.z.strictObject({
1759
1780
  requestId: requestIdSchema,
1760
1781
  adapterKind: import_zod5.z.literal("codex"),
1761
- profile: import_zod5.z.literal(EXTERNAL_AGENT_MANAGED_PROFILE)
1782
+ profile: import_zod5.z.literal(EXTERNAL_AGENT_MANAGED_PROFILE),
1783
+ model: modelSchema.optional()
1762
1784
  });
1763
1785
  var externalAgentControlDisconnectRequestSchema = import_zod5.z.strictObject({
1764
1786
  requestId: requestIdSchema,
@@ -1853,7 +1875,11 @@ var EXTERNAL_HANDOFF_STATES = Object.freeze([
1853
1875
  "expired",
1854
1876
  "superseded"
1855
1877
  ]);
1856
- var EXTERNAL_HANDOFF_FRAMEWORKS = Object.freeze(["vite", "next"]);
1878
+ var EXTERNAL_HANDOFF_FRAMEWORKS = Object.freeze([
1879
+ "vite",
1880
+ "next",
1881
+ "astro"
1882
+ ]);
1857
1883
  var EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS = Object.freeze([
1858
1884
  "claude-channel",
1859
1885
  "codex-app-server"
@@ -2014,6 +2040,7 @@ var askJobCreateRequestSchema = import_zod8.z.strictObject({
2014
2040
  requestId: contextualAskOpaqueIdSchema,
2015
2041
  envelope: spotAskTaskEnvelopeSchema,
2016
2042
  executorId: contextualAskOpaqueIdSchema,
2043
+ model: contextualAskBoundedText(limits2.maximumLabelCharacters).optional(),
2017
2044
  providerDataConsent: import_zod8.z.literal(true)
2018
2045
  });
2019
2046
  var askJobActionRequestSchema = import_zod8.z.strictObject({});