@spotpatch/shared 1.12.0 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/annotation-Cz-NNgR4.d.cts +102 -0
  2. package/dist/annotation-Cz-NNgR4.d.ts +102 -0
  3. package/dist/chunk-CLQ6MIJB.js +586 -0
  4. package/dist/chunk-CLQ6MIJB.js.map +1 -0
  5. package/dist/chunk-EWJTKNL4.js +90 -0
  6. package/dist/chunk-EWJTKNL4.js.map +1 -0
  7. package/dist/{chunk-JGOIBOFI.js → chunk-FPDSZDP2.js} +16 -2
  8. package/dist/chunk-FPDSZDP2.js.map +1 -0
  9. package/dist/{chunk-2LVIH7OA.js → chunk-IX6MSCK6.js} +6 -2
  10. package/dist/chunk-IX6MSCK6.js.map +1 -0
  11. package/dist/{chunk-JU5HIWX7.js → chunk-JTZFOTPT.js} +9 -174
  12. package/dist/chunk-JTZFOTPT.js.map +1 -0
  13. package/dist/chunk-R6QJFNT2.js +195 -0
  14. package/dist/chunk-R6QJFNT2.js.map +1 -0
  15. package/dist/contextual-ask-BpbkpFFf.d.cts +1476 -0
  16. package/dist/contextual-ask-BpbkpFFf.d.ts +1476 -0
  17. package/dist/contextual-ask-browser.cjs +201 -0
  18. package/dist/contextual-ask-browser.cjs.map +1 -0
  19. package/dist/contextual-ask-browser.d.cts +31 -0
  20. package/dist/contextual-ask-browser.d.ts +31 -0
  21. package/dist/contextual-ask-browser.js +66 -0
  22. package/dist/contextual-ask-browser.js.map +1 -0
  23. package/dist/contextual-ask-node.cjs +971 -0
  24. package/dist/contextual-ask-node.cjs.map +1 -0
  25. package/dist/contextual-ask-node.d.cts +14 -0
  26. package/dist/contextual-ask-node.d.ts +14 -0
  27. package/dist/contextual-ask-node.js +122 -0
  28. package/dist/contextual-ask-node.js.map +1 -0
  29. package/dist/{data-flow-runtime-BelOgo8s.d.ts → data-flow-runtime-DhWpQoik.d.ts} +26 -13
  30. package/dist/{data-flow-runtime-oq9m21IP.d.cts → data-flow-runtime-w43iwvGA.d.cts} +26 -13
  31. package/dist/data-flow-runtime.cjs +2 -0
  32. package/dist/data-flow-runtime.cjs.map +1 -1
  33. package/dist/data-flow-runtime.d.cts +2 -2
  34. package/dist/data-flow-runtime.d.ts +2 -2
  35. package/dist/data-flow-runtime.js +1 -1
  36. package/dist/{endpoints-GedF44M2.d.cts → endpoints-O3ohYyAo.d.cts} +7 -1
  37. package/dist/{endpoints-GedF44M2.d.ts → endpoints-O3ohYyAo.d.ts} +7 -1
  38. package/dist/error-code-DRz2eqcB.d.cts +63 -0
  39. package/dist/error-code-DRz2eqcB.d.ts +63 -0
  40. package/dist/external-agent-node.cjs +320 -141
  41. package/dist/external-agent-node.cjs.map +1 -1
  42. package/dist/external-agent-node.d.cts +43 -27
  43. package/dist/external-agent-node.d.ts +43 -27
  44. package/dist/external-agent-node.js +174 -20
  45. package/dist/external-agent-node.js.map +1 -1
  46. package/dist/{external-handoff-BNUyMfNb.d.ts → external-handoff-5zHu-fz2.d.ts} +41 -131
  47. package/dist/{external-handoff-BNUyMfNb.d.cts → external-handoff-DeiIvR-2.d.cts} +41 -131
  48. package/dist/external-handoff-browser.cjs +7 -1
  49. package/dist/external-handoff-browser.cjs.map +1 -1
  50. package/dist/external-handoff-browser.d.cts +4 -3
  51. package/dist/external-handoff-browser.d.ts +4 -3
  52. package/dist/external-handoff-browser.js +2 -2
  53. package/dist/index.cjs +1170 -426
  54. package/dist/index.cjs.map +1 -1
  55. package/dist/index.d.cts +138 -178
  56. package/dist/index.d.ts +138 -178
  57. package/dist/index.js +116 -20
  58. package/dist/index.js.map +1 -1
  59. package/package.json +29 -2
  60. package/dist/chunk-2LVIH7OA.js.map +0 -1
  61. package/dist/chunk-JGOIBOFI.js.map +0 -1
  62. package/dist/chunk-JU5HIWX7.js.map +0 -1
  63. package/dist/{external-agent-control-BMoSq_xI.d.cts → external-agent-control-C79Nl85y.d.cts} +49 -49
  64. package/dist/{external-agent-control-BMoSq_xI.d.ts → external-agent-control-C79Nl85y.d.ts} +49 -49
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spotpatch/shared",
3
- "version": "1.12.0",
3
+ "version": "1.14.0",
4
4
  "description": "Shared immutable models and protocol definitions for SpotPatch.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -69,6 +69,26 @@
69
69
  "types": "./dist/external-handoff-browser.d.cts",
70
70
  "default": "./dist/external-handoff-browser.cjs"
71
71
  }
72
+ },
73
+ "./contextual-ask-browser": {
74
+ "import": {
75
+ "types": "./dist/contextual-ask-browser.d.ts",
76
+ "default": "./dist/contextual-ask-browser.js"
77
+ },
78
+ "require": {
79
+ "types": "./dist/contextual-ask-browser.d.cts",
80
+ "default": "./dist/contextual-ask-browser.cjs"
81
+ }
82
+ },
83
+ "./contextual-ask-node": {
84
+ "import": {
85
+ "types": "./dist/contextual-ask-node.d.ts",
86
+ "default": "./dist/contextual-ask-node.js"
87
+ },
88
+ "require": {
89
+ "types": "./dist/contextual-ask-node.d.cts",
90
+ "default": "./dist/contextual-ask-node.cjs"
91
+ }
72
92
  }
73
93
  },
74
94
  "typesVersions": {
@@ -81,6 +101,12 @@
81
101
  ],
82
102
  "external-handoff-browser": [
83
103
  "dist/external-handoff-browser.d.ts"
104
+ ],
105
+ "contextual-ask-browser": [
106
+ "dist/contextual-ask-browser.d.ts"
107
+ ],
108
+ "contextual-ask-node": [
109
+ "dist/contextual-ask-node.d.ts"
84
110
  ]
85
111
  }
86
112
  },
@@ -92,8 +118,9 @@
92
118
  "registry": "https://registry.npmjs.org/"
93
119
  },
94
120
  "scripts": {
95
- "build": "tsup src/index.ts src/data-flow-runtime.ts src/external-agent-node.ts src/external-handoff-browser.ts --format esm,cjs --dts --sourcemap --clean",
121
+ "build": "tsup src/index.ts src/data-flow-runtime.ts src/external-agent-node.ts src/external-handoff-browser.ts src/contextual-ask-browser.ts src/contextual-ask-node.ts --format esm,cjs --dts --sourcemap --clean",
96
122
  "clean": "node --input-type=module -e \"import { rmSync } from 'node:fs'; rmSync('dist', { recursive: true, force: true })\"",
123
+ "dev": "tsup src/index.ts src/data-flow-runtime.ts src/external-agent-node.ts src/external-handoff-browser.ts src/contextual-ask-browser.ts src/contextual-ask-node.ts --format esm,cjs --dts --sourcemap --watch",
97
124
  "typecheck": "tsc --noEmit -p tsconfig.json"
98
125
  }
99
126
  }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/protocol/external-handoff-constants.ts"],"sourcesContent":["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"],"mappings":";AAAO,IAAM,2CAA2C;AACjD,IAAM,2CAA2C;AACjD,IAAM,0BAA0B,OAAO,OAAO;AAAA,EACnD;AAAA,EACA;AAAA,EACA;AACF,CAAU;AACH,IAAM,8BAA8B,OAAO,OAAO,CAAC,QAAQ,MAAM,CAAU;AAC3E,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;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/protocol/endpoints.ts"],"sourcesContent":["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 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\";\n\nexport function getAgentJobEndpoint(jobId: string, action: AgentJobAction): string {\n return `${SPOTPATCH_ENDPOINTS.agentJobs}/${encodeURIComponent(jobId)}/${action}`;\n}\n"],"mappings":";AAAO,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,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;AAIM,SAAS,oBAAoB,OAAe,QAAgC;AACjF,SAAO,GAAG,oBAAoB,SAAS,IAAI,mBAAmB,KAAK,CAAC,IAAI,MAAM;AAChF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/model/annotation.ts","../src/model/agent.ts","../src/protocol/requests.ts","../src/protocol/external-handoff.ts","../src/errors/error-code.ts","../src/errors/spotpatch-error.ts"],"sourcesContent":["import type { CodeContext } from \"./code-context.js\";\nimport type { ReactContext, SourceRef } from \"./source-ref.js\";\nimport type { StyleContext } from \"./style-context.js\";\n\nexport interface PageContext {\n readonly url: string;\n readonly pathname: string;\n readonly title: string;\n readonly viewportWidth: number;\n readonly viewportHeight: number;\n readonly devicePixelRatio: number;\n}\n\nexport interface ElementContext {\n readonly tagName: string;\n readonly selector: string;\n readonly sanitizedHtml: string;\n readonly textPreview?: string;\n readonly role?: string;\n readonly rect: Readonly<{\n x: number;\n y: number;\n width: number;\n height: number;\n }>;\n}\n\n/** Protocol hard limit. Runtime configuration may choose a smaller limit. */\nexport const MAX_ANNOTATION_TARGETS = 20;\n\n/** Each target owns its requested change; the UI enforces the same bound. */\nexport const MAX_TARGET_INSTRUCTION_CHARACTERS = 2_000;\n\n/** Keeps the complete, atomic user intent within the prompt and request budgets. */\nexport const MAX_ANNOTATION_INSTRUCTION_CHARACTERS = 4_000;\n\nexport const SPOTPATCH_LOCALES = Object.freeze([\"en-US\", \"zh-CN\"] as const);\nexport type SpotPatchLocale = (typeof SPOTPATCH_LOCALES)[number];\nexport const SPOTPATCH_LOCALE_PREFERENCES = Object.freeze([\n \"auto\",\n ...SPOTPATCH_LOCALES,\n] as const);\nexport type SpotPatchLocalePreference = (typeof SPOTPATCH_LOCALE_PREFERENCES)[number];\n\nexport interface SpotTargetContext {\n readonly instruction: string;\n readonly page?: Readonly<PageContext>;\n readonly source: SourceRef;\n readonly react: ReactContext;\n readonly element: ElementContext;\n readonly styles: StyleContext;\n readonly code?: CodeContext;\n readonly warnings: readonly string[];\n}\n\nexport interface SpotAnnotation {\n readonly schemaVersion: 3;\n readonly id: string;\n readonly locale: SpotPatchLocale;\n readonly page: Readonly<PageContext>;\n readonly targets: readonly SpotTargetContext[];\n readonly createdAt: string;\n}\n","import type { ErrorCode } from \"../errors/error-code.js\";\n\nexport type AiProviderProtocol = \"responses\" | \"chat-completions\";\nexport type AiProviderAuthentication = \"bearer\" | \"x-api-key\";\nexport const AGENT_APPLY_MODES = Object.freeze([\n \"review\",\n \"auto\",\n \"trusted-auto\",\n] as const);\nexport type AgentApplyMode = (typeof AGENT_APPLY_MODES)[number];\nexport type AgentWorkingTreeMode = \"require-clean\" | \"include-local-changes\";\n\nexport interface AiModelProfile {\n readonly label: string;\n readonly model: string;\n}\n\nexport interface OpenAICompatibleProviderOptions {\n readonly type: \"openai-compatible\";\n readonly label: string;\n readonly protocol: AiProviderProtocol;\n readonly authentication?: AiProviderAuthentication;\n readonly baseURL: string;\n readonly apiKeyEnv: string;\n readonly models: Readonly<Record<string, AiModelProfile>>;\n readonly defaultModel: string;\n}\n\nexport interface AgentCheckDefinition {\n readonly label: string;\n readonly command: string;\n readonly args?: readonly string[];\n readonly required?: boolean;\n readonly timeoutMs?: number;\n}\n\nexport interface AgentLimits {\n readonly maxTurns: number;\n readonly maxToolCalls: number;\n readonly maxChangedFiles: number;\n readonly maxDiffBytes: number;\n readonly maxReadBytesPerFile: number;\n readonly maxToolOutputCharacters: number;\n readonly maxProviderResponseBytes: number;\n readonly providerConnectTimeoutMs: number;\n readonly providerFirstByteTimeoutMs: number;\n readonly providerIdleTimeoutMs: number;\n readonly checkTimeoutMs: number;\n readonly jobTimeoutMs: number;\n}\n\nexport const DEFAULT_AGENT_LIMITS = Object.freeze({\n maxTurns: 20,\n maxToolCalls: 80,\n maxChangedFiles: 20,\n maxDiffBytes: 512_000,\n maxReadBytesPerFile: 256_000,\n maxToolOutputCharacters: 40_000,\n maxProviderResponseBytes: 2_000_000,\n providerConnectTimeoutMs: 15_000,\n providerFirstByteTimeoutMs: 30_000,\n providerIdleTimeoutMs: 60_000,\n checkTimeoutMs: 120_000,\n jobTimeoutMs: 600_000,\n} satisfies AgentLimits);\n\nexport interface AiExecutionOptions {\n readonly isolation?: \"git-worktree\";\n readonly applyMode?: AgentApplyMode;\n readonly checks?: Readonly<Record<string, AgentCheckDefinition>>;\n readonly limits?: Partial<AgentLimits>;\n}\n\nexport interface AiOptions {\n readonly providers: Readonly<Record<string, OpenAICompatibleProviderOptions>>;\n readonly defaultProvider: string;\n readonly execution?: AiExecutionOptions;\n}\n\nexport interface ResolvedAiModelProfile extends AiModelProfile {\n readonly id: string;\n}\n\nexport interface ResolvedOpenAICompatibleProviderOptions {\n readonly id: string;\n readonly type: \"openai-compatible\";\n readonly label: string;\n readonly protocol: AiProviderProtocol;\n readonly authentication: AiProviderAuthentication;\n readonly baseURL: string;\n readonly apiKeyEnv: string;\n readonly models: Readonly<Record<string, ResolvedAiModelProfile>>;\n readonly defaultModel: string;\n}\n\nexport interface ResolvedAgentCheckDefinition {\n readonly id: string;\n readonly label: string;\n readonly command: string;\n readonly args: readonly string[];\n readonly required: boolean;\n readonly timeoutMs: number;\n}\n\nexport interface ResolvedAiExecutionOptions {\n readonly isolation: \"git-worktree\";\n readonly applyMode: AgentApplyMode;\n readonly checks: Readonly<Record<string, ResolvedAgentCheckDefinition>>;\n readonly limits: Readonly<AgentLimits>;\n}\n\nexport interface ResolvedAiOptions {\n readonly providers: Readonly<Record<string, ResolvedOpenAICompatibleProviderOptions>>;\n readonly defaultProvider: string;\n readonly execution: ResolvedAiExecutionOptions;\n}\n\nexport interface RuntimeAiModelProfile {\n readonly id: string;\n readonly label: string;\n}\n\nexport interface RuntimeAiProviderProfile {\n readonly id: string;\n readonly label: string;\n readonly protocol: AiProviderProtocol;\n readonly models: readonly RuntimeAiModelProfile[];\n readonly defaultModel: string;\n}\n\nexport type RuntimeAiConfig =\n | Readonly<{ enabled: false }>\n | Readonly<{\n enabled: true;\n providers: readonly RuntimeAiProviderProfile[];\n defaultProvider: string;\n applyMode: AgentApplyMode;\n }>;\n\nexport const AGENT_JOB_STATUSES = Object.freeze([\n \"queued\",\n \"preparing\",\n \"running\",\n \"validating\",\n \"awaiting-review\",\n \"applying\",\n \"applied\",\n \"completed\",\n \"cancelling\",\n \"cancelled\",\n \"reverting\",\n \"reverted\",\n \"failed\",\n] as const);\n\nexport type AgentJobStatus = (typeof AGENT_JOB_STATUSES)[number];\n\nexport const AGENT_CAPABILITY_STATES = Object.freeze([\n \"unknown\",\n \"probing\",\n \"agent-ready\",\n \"prompt-only\",\n \"unavailable\",\n] as const);\n\nexport type AgentCapabilityState = (typeof AGENT_CAPABILITY_STATES)[number];\n\nexport interface AgentCapabilitySnapshot {\n readonly providerProfileId: string;\n readonly providerLabel: string;\n readonly modelProfileId: string;\n readonly modelLabel: string;\n readonly protocol: AiProviderProtocol;\n readonly state: AgentCapabilityState;\n readonly authenticated: boolean;\n readonly modelAvailable: boolean;\n readonly toolCalling: boolean;\n readonly toolResultContinuation: boolean;\n readonly streaming: boolean;\n readonly checkedAt?: string;\n readonly errorCode?: ErrorCode;\n}\n\nexport const AGENT_WORKSPACE_STATES = Object.freeze([\n \"ready\",\n \"consent-required\",\n \"blocked\",\n] as const);\n\nexport const AGENT_WORKSPACE_SNAPSHOT_LIMITS = Object.freeze({\n maxUntrackedFiles: 1_000,\n maxUntrackedBytes: 20 * 1024 * 1024,\n});\n\nexport type AgentWorkspaceState = (typeof AGENT_WORKSPACE_STATES)[number];\n\nexport interface AgentWorkspaceChangeSummary {\n readonly staged: number;\n readonly unstaged: number;\n readonly untracked: number;\n readonly conflicted: number;\n readonly total: number;\n}\n\nexport interface AgentWorkspaceHealthSnapshot {\n readonly state: AgentWorkspaceState;\n readonly checkedAt: string;\n readonly changes: AgentWorkspaceChangeSummary;\n readonly canIncludeLocalChanges: boolean;\n readonly errorCode?: ErrorCode;\n}\n\nexport const AGENT_FILE_CHANGE_KINDS = Object.freeze([\n \"added\",\n \"modified\",\n \"deleted\",\n] as const);\n\nexport type AgentFileChangeKind = (typeof AGENT_FILE_CHANGE_KINDS)[number];\n\nexport const AGENT_CHECK_STATUSES = Object.freeze([\n \"passed\",\n \"failed\",\n \"cancelled\",\n \"timed-out\",\n] as const);\n\nexport type AgentCheckStatus = (typeof AGENT_CHECK_STATUSES)[number];\n\nexport interface AgentChangedFile {\n readonly relativePath: string;\n readonly kind: AgentFileChangeKind;\n readonly additions: number;\n readonly deletions: number;\n}\n\nexport interface AgentCheckResult {\n readonly checkId: string;\n readonly label: string;\n readonly status: AgentCheckStatus;\n readonly durationMs: number;\n readonly exitCode?: number;\n readonly output: string;\n}\n\nexport interface AgentJobSnapshot {\n readonly jobId: string;\n readonly status: AgentJobStatus;\n readonly providerProfileId: string;\n readonly providerLabel: string;\n readonly modelProfileId: string;\n readonly modelLabel: string;\n readonly phaseMessage: string;\n readonly createdAt: string;\n readonly updatedAt: string;\n readonly canCancel: boolean;\n readonly canApply: boolean;\n readonly canRevert: boolean;\n readonly errorCode?: ErrorCode;\n}\n\nexport interface AgentJobResult {\n readonly jobId: string;\n readonly summary: string;\n readonly diff: string;\n readonly files: readonly AgentChangedFile[];\n readonly checks: readonly AgentCheckResult[];\n}\n\nexport interface AgentJobResultResponse {\n readonly snapshot: AgentJobSnapshot;\n readonly result?: AgentJobResult;\n}\n","import { z } from \"zod\";\n\nimport {\n MAX_ANNOTATION_INSTRUCTION_CHARACTERS,\n MAX_ANNOTATION_TARGETS,\n MAX_TARGET_INSTRUCTION_CHARACTERS,\n SPOTPATCH_LOCALES,\n type SpotAnnotation,\n} from \"../model/annotation.js\";\nimport { AGENT_APPLY_MODES, type AgentApplyMode } from \"../model/agent.js\";\n\nexport const runtimeBootstrapRequestSchema = z.strictObject({});\n\nconst sourceCoordinatesSchema = z.strictObject({\n fileId: z.string().min(1).max(128),\n line: z.number().int().positive(),\n column: z.number().int().positive(),\n});\n\nexport const sourceContextRequestSchema = sourceCoordinatesSchema\n .extend({\n maxLines: z.number().int().positive(),\n })\n .strict();\n\nexport const openEditorRequestSchema = sourceCoordinatesSchema.strict();\n\nconst dataFlowSourceCoordinatesRequestSchema = sourceCoordinatesSchema\n .extend({\n schemaVersion: z.literal(1),\n sourceVersion: z.string().min(1).max(128).optional(),\n })\n .strict();\n\nconst dataFlowComponentIdentityRequestSchema = z.strictObject({\n schemaVersion: z.literal(1),\n componentSourceId: z.string().min(1).max(128),\n sourceVersion: z.string().min(1).max(128),\n});\n\nexport const dataFlowComponentReportRequestSchema = z.union([\n dataFlowSourceCoordinatesRequestSchema,\n dataFlowComponentIdentityRequestSchema,\n]);\n\nexport const dataFlowPageReportRequestSchema = z.strictObject({\n schemaVersion: z.literal(1),\n targets: z\n .array(dataFlowComponentReportRequestSchema)\n .min(1)\n .max(MAX_ANNOTATION_TARGETS),\n});\n\nconst profileIdSchema = z\n .string()\n .min(1)\n .max(64)\n .regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/);\n\nconst boundedString = (maximum: number): z.ZodString => z.string().max(maximum);\nconst sourceRefSchema = z.strictObject({\n fileId: boundedString(128).optional(),\n relativePath: boundedString(1_024).optional(),\n line: z.number().int().positive().optional(),\n column: z.number().int().positive().optional(),\n origin: z.enum([\"jsx-host\", \"react-fiber\", \"dom-ancestor\", \"none\"]),\n confidence: z.enum([\"exact\", \"probable\", \"approximate\", \"unknown\"]),\n});\nconst matchedStyleRuleSchema = z.strictObject({\n selector: boundedString(2_048),\n declarations: boundedString(8_192),\n source: boundedString(1_024).optional(),\n media: boundedString(1_024).optional(),\n});\nconst codeContextSchema = z.strictObject({\n relativePath: boundedString(1_024),\n language: z.enum([\"tsx\", \"jsx\"]),\n startLine: z.number().int().positive(),\n endLine: z.number().int().positive(),\n excerpt: boundedString(16_000),\n boundary: z.enum([\"component\", \"nearby-lines\"]),\n});\nconst pageContextSchema = z.strictObject({\n url: boundedString(2_048),\n pathname: boundedString(2_048),\n title: boundedString(1_024),\n viewportWidth: z.number().nonnegative(),\n viewportHeight: z.number().nonnegative(),\n devicePixelRatio: z.number().positive(),\n});\n\nexport const spotTargetContextRequestSchema = z.strictObject({\n instruction: z.string().trim().min(1).max(MAX_TARGET_INSTRUCTION_CHARACTERS),\n page: pageContextSchema.optional(),\n source: sourceRefSchema,\n react: z.strictObject({\n supported: z.boolean(),\n version: boundedString(64).optional(),\n componentName: boundedString(256).optional(),\n componentSourceId: boundedString(128).optional(),\n sourceVersion: boundedString(128).optional(),\n componentStack: z.array(boundedString(256)).max(64),\n source: sourceRefSchema.optional(),\n }),\n element: z.strictObject({\n tagName: boundedString(128),\n selector: boundedString(2_048),\n sanitizedHtml: boundedString(8_192),\n textPreview: boundedString(2_048).optional(),\n role: boundedString(256).optional(),\n rect: z.strictObject({\n x: z.number(),\n y: z.number(),\n width: z.number().nonnegative(),\n height: z.number().nonnegative(),\n }),\n }),\n styles: z.strictObject({\n classNames: z.array(boundedString(512)).max(256),\n inlineStyle: boundedString(8_192).optional(),\n matchedRules: z.array(matchedStyleRuleSchema).max(256),\n computed: z.record(boundedString(256), boundedString(2_048)),\n warnings: z.array(boundedString(1_024)).max(64),\n }),\n code: codeContextSchema.optional(),\n warnings: z.array(boundedString(1_024)).max(64),\n});\n\nexport const spotAnnotationRequestSchema = z\n .strictObject({\n schemaVersion: z.literal(3),\n id: boundedString(128),\n locale: z.enum(SPOTPATCH_LOCALES),\n page: pageContextSchema,\n targets: z.array(spotTargetContextRequestSchema).min(1).max(MAX_ANNOTATION_TARGETS),\n createdAt: z.iso.datetime(),\n })\n .superRefine((annotation, context) => {\n const total = annotation.targets.reduce(\n (characters, target) => characters + target.instruction.length,\n 0,\n );\n\n if (total > MAX_ANNOTATION_INSTRUCTION_CHARACTERS) {\n context.addIssue({\n code: \"custom\",\n message: \"Combined target instructions exceed the annotation limit.\",\n path: [\"targets\"],\n });\n }\n });\n\nexport const agentCapabilityRequestSchema = z.strictObject({\n providerProfileId: profileIdSchema,\n modelProfileId: profileIdSchema,\n});\n\nexport const agentWorkspaceHealthRequestSchema = z.strictObject({});\n\nexport const agentJobCreateRequestSchema = z.strictObject({\n annotation: spotAnnotationRequestSchema,\n applyMode: z.enum(AGENT_APPLY_MODES).optional(),\n providerProfileId: profileIdSchema,\n modelProfileId: profileIdSchema,\n providerDataConsent: z.literal(true),\n trustedFastModeConsent: z.literal(true).optional(),\n workingTreeMode: z\n .enum([\"require-clean\", \"include-local-changes\"])\n .default(\"require-clean\"),\n});\n\nexport const agentJobActionRequestSchema = z.strictObject({});\n\nexport type SourceContextRequest = z.infer<typeof sourceContextRequestSchema>;\nexport type RuntimeBootstrapRequest = z.infer<typeof runtimeBootstrapRequestSchema>;\nexport type OpenEditorRequest = z.infer<typeof openEditorRequestSchema>;\nexport type DataFlowComponentReportRequest = z.infer<\n typeof dataFlowComponentReportRequestSchema\n>;\nexport type DataFlowPageReportRequest = z.infer<typeof dataFlowPageReportRequestSchema>;\nexport type AgentCapabilityRequest = z.infer<typeof agentCapabilityRequestSchema>;\nexport interface AgentJobCreateRequest {\n readonly annotation: SpotAnnotation;\n readonly applyMode?: AgentApplyMode;\n readonly providerProfileId: string;\n readonly modelProfileId: string;\n readonly providerDataConsent: true;\n readonly trustedFastModeConsent?: true;\n readonly workingTreeMode: \"require-clean\" | \"include-local-changes\";\n}\n","import { z } from \"zod\";\n\nimport type { SpotAnnotation } from \"../model/annotation.js\";\nimport { spotAnnotationRequestSchema } from \"./requests.js\";\nimport {\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_LIMITS,\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 ExternalHandoffState,\n} from \"./external-handoff-constants.js\";\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_LIMITS,\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 \"./external-handoff-constants.js\";\n\nconst opaqueIdSchema = z\n .string()\n .min(22)\n .max(128)\n .regex(/^[A-Za-z0-9_-]+$/u);\nconst isoTimestampSchema = z.iso.datetime();\nexport const externalHandoffReportableDispatchPhaseSchema = z.enum(\n EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES,\n);\nconst externalHandoffPageSummarySchema = z.strictObject({\n origin: z.string().min(1).max(2_048),\n pathname: z.string().min(1).max(2_048),\n});\n\nexport const externalHandoffSummarySchema = z.strictObject({\n sessionId: opaqueIdSchema,\n framework: z.enum(EXTERNAL_HANDOFF_FRAMEWORKS),\n revision: z.number().int().positive(),\n cursor: opaqueIdSchema,\n targetCount: z.number().int().positive(),\n page: externalHandoffPageSummarySchema,\n publishedAt: isoTimestampSchema,\n expiresAt: isoTimestampSchema,\n state: z.enum(EXTERNAL_HANDOFF_STATES),\n pickupCount: z\n .number()\n .int()\n .nonnegative()\n .max(EXTERNAL_HANDOFF_LIMITS.maximumConnectorReceipts),\n pickedUpAt: isoTimestampSchema.optional(),\n});\n\nexport const externalHandoffSnapshotSchema = z.strictObject({\n schemaVersion: z.literal(EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION),\n cursor: opaqueIdSchema,\n session: z.strictObject({\n id: opaqueIdSchema,\n framework: z.enum(EXTERNAL_HANDOFF_FRAMEWORKS),\n }),\n revision: z.number().int().positive(),\n publishedAt: isoTimestampSchema,\n expiresAt: isoTimestampSchema,\n annotation: spotAnnotationRequestSchema,\n});\n\nexport const activeAdapterSummarySchema = z\n .strictObject({\n kind: z.enum(EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS),\n state: z.enum(EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES),\n canDispatch: z.boolean(),\n connectedAt: isoTimestampSchema,\n updatedAt: isoTimestampSchema,\n })\n .superRefine((value, context) => {\n if (value.canDispatch !== (value.state === \"ready\")) {\n context.addIssue({\n code: \"custom\",\n message: \"canDispatch must match the ready state.\",\n path: [\"canDispatch\"],\n });\n }\n });\n\nexport const dispatchSummarySchema = z.strictObject({\n adapterKind: z.enum(EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS),\n revision: z.number().int().positive(),\n phase: z.enum(EXTERNAL_HANDOFF_DISPATCH_PHASES),\n updatedAt: isoTimestampSchema,\n});\n\nexport const externalHandoffCapabilityRequestSchema = z.strictObject({});\nexport const externalHandoffPublishRequestSchema = z.strictObject({\n requestId: opaqueIdSchema,\n annotation: spotAnnotationRequestSchema,\n});\nexport const externalHandoffStatusRequestSchema = z.strictObject({\n cursor: opaqueIdSchema.optional(),\n});\nexport const externalHandoffResolveDeliveryRequestSchema = z.strictObject({\n cursor: opaqueIdSchema,\n confirmation: z.literal(\"workspace-reviewed\"),\n});\nexport const externalHandoffCapabilitySchema = z.strictObject({\n enabled: z.literal(true),\n brokerReady: z.boolean(),\n activeWaitCount: z\n .number()\n .int()\n .nonnegative()\n .max(EXTERNAL_HANDOFF_LIMITS.maximumWaiters),\n snapshotSchemaVersion: z.literal(EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION),\n brokerProtocolVersion: z.literal(EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION),\n activeAdapter: activeAdapterSummarySchema.nullable(),\n dispatch: dispatchSummarySchema.nullable(),\n});\nexport const externalHandoffPublishDeliverySchema = z.discriminatedUnion(\"mode\", [\n z.strictObject({ mode: z.literal(\"inbox\") }),\n z.strictObject({\n mode: z.literal(\"active\"),\n adapter: activeAdapterSummarySchema,\n dispatch: dispatchSummarySchema,\n }),\n]);\nexport const externalHandoffPublishResultSchema = z.strictObject({\n handoff: externalHandoffSummarySchema,\n delivery: externalHandoffPublishDeliverySchema,\n replayed: z.boolean(),\n});\nexport const externalHandoffStatusResultSchema = z.strictObject({\n handoff: externalHandoffSummarySchema,\n activeAdapter: activeAdapterSummarySchema.nullable(),\n dispatch: dispatchSummarySchema.nullable(),\n});\n\nexport interface ExternalHandoffSummary {\n readonly sessionId: string;\n readonly framework: ExternalHandoffFramework;\n readonly revision: number;\n readonly cursor: string;\n readonly targetCount: number;\n readonly page: Readonly<{ origin: string; pathname: string }>;\n readonly publishedAt: string;\n readonly expiresAt: string;\n readonly state: ExternalHandoffState;\n readonly pickupCount: number;\n readonly pickedUpAt?: string | undefined;\n}\n\nexport interface ExternalHandoffSnapshot {\n readonly schemaVersion: typeof EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION;\n readonly cursor: string;\n readonly session: Readonly<{\n id: string;\n framework: ExternalHandoffFramework;\n }>;\n readonly revision: number;\n readonly publishedAt: string;\n readonly expiresAt: string;\n readonly annotation: SpotAnnotation;\n}\n\nexport interface ActiveAdapterSummary {\n readonly kind: ExternalHandoffActiveAdapterKind;\n readonly state: ExternalHandoffActiveAdapterState;\n readonly canDispatch: boolean;\n readonly connectedAt: string;\n readonly updatedAt: string;\n}\n\nexport interface DispatchSummary {\n readonly adapterKind: ExternalHandoffActiveAdapterKind;\n readonly revision: number;\n readonly phase: ExternalHandoffDispatchPhase;\n readonly updatedAt: string;\n}\n\nexport type ExternalHandoffPublishDelivery =\n | Readonly<{ mode: \"inbox\" }>\n | Readonly<{\n mode: \"active\";\n adapter: ActiveAdapterSummary;\n dispatch: DispatchSummary;\n }>;\n\nexport interface ExternalHandoffPublishResult {\n readonly handoff: ExternalHandoffSummary;\n readonly delivery: ExternalHandoffPublishDelivery;\n readonly replayed: boolean;\n}\n\nexport interface ExternalHandoffStatusResult {\n readonly handoff: ExternalHandoffSummary;\n readonly activeAdapter: ActiveAdapterSummary | null;\n readonly dispatch: DispatchSummary | null;\n}\n\nexport interface ExternalHandoffCapability {\n readonly enabled: true;\n readonly brokerReady: boolean;\n readonly activeWaitCount: number;\n readonly snapshotSchemaVersion: typeof EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION;\n readonly brokerProtocolVersion: typeof EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION;\n readonly activeAdapter: ActiveAdapterSummary | null;\n readonly dispatch: DispatchSummary | null;\n}\n\nexport type ExternalHandoffPublishRequest = z.infer<\n typeof externalHandoffPublishRequestSchema\n>;\nexport type ExternalHandoffStatusRequest = z.infer<\n typeof externalHandoffStatusRequestSchema\n>;\nexport type ExternalHandoffResolveDeliveryRequest = z.infer<\n typeof externalHandoffResolveDeliveryRequestSchema\n>;\n","export const ERROR_CODES = {\n INVALID_REQUEST: \"INVALID_REQUEST\",\n INVALID_TOKEN: \"INVALID_TOKEN\",\n ORIGIN_NOT_ALLOWED: \"ORIGIN_NOT_ALLOWED\",\n SOURCE_NOT_FOUND: \"SOURCE_NOT_FOUND\",\n SOURCE_OUTSIDE_ROOT: \"SOURCE_OUTSIDE_ROOT\",\n SOURCE_TOO_LARGE: \"SOURCE_TOO_LARGE\",\n EDITOR_OPEN_FAILED: \"EDITOR_OPEN_FAILED\",\n DATA_FLOW_DISABLED: \"DATA_FLOW_DISABLED\",\n DATA_FLOW_SOURCE_STALE: \"DATA_FLOW_SOURCE_STALE\",\n DATA_FLOW_ANALYSIS_CANCELLED: \"DATA_FLOW_ANALYSIS_CANCELLED\",\n AI_DISABLED: \"AI_DISABLED\",\n PROVIDER_NOT_CONFIGURED: \"PROVIDER_NOT_CONFIGURED\",\n PROVIDER_AUTH_FAILED: \"PROVIDER_AUTH_FAILED\",\n PROVIDER_PROTOCOL_UNSUPPORTED: \"PROVIDER_PROTOCOL_UNSUPPORTED\",\n MODEL_NOT_ALLOWED: \"MODEL_NOT_ALLOWED\",\n MODEL_TOOL_CALL_UNSUPPORTED: \"MODEL_TOOL_CALL_UNSUPPORTED\",\n PROVIDER_RATE_LIMITED: \"PROVIDER_RATE_LIMITED\",\n AGENT_BUSY: \"AGENT_BUSY\",\n AGENT_LIMIT_EXCEEDED: \"AGENT_LIMIT_EXCEEDED\",\n AGENT_CANCELLED: \"AGENT_CANCELLED\",\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 BRIDGE_UNAUTHORIZED: \"BRIDGE_UNAUTHORIZED\",\n BRIDGE_PROTOCOL_MISMATCH: \"BRIDGE_PROTOCOL_MISMATCH\",\n BRIDGE_BUSY: \"BRIDGE_BUSY\",\n EXTERNAL_AGENT_BUSY: \"EXTERNAL_AGENT_BUSY\",\n ACTIVE_ADAPTER_CONFLICT: \"ACTIVE_ADAPTER_CONFLICT\",\n ACTIVE_ADAPTER_LEASE_INVALID: \"ACTIVE_ADAPTER_LEASE_INVALID\",\n ACTIVE_DISPATCH_INVALID: \"ACTIVE_DISPATCH_INVALID\",\n SESSION_NOT_FOUND: \"SESSION_NOT_FOUND\",\n SESSION_AMBIGUOUS: \"SESSION_AMBIGUOUS\",\n SESSION_CLOSED: \"SESSION_CLOSED\",\n WORKTREE_DIRTY: \"WORKTREE_DIRTY\",\n WORKTREE_NOT_REPOSITORY: \"WORKTREE_NOT_REPOSITORY\",\n WORKTREE_OPERATION_IN_PROGRESS: \"WORKTREE_OPERATION_IN_PROGRESS\",\n WORKTREE_CONFLICTED: \"WORKTREE_CONFLICTED\",\n WORKTREE_LOCAL_CHANGES_TOO_LARGE: \"WORKTREE_LOCAL_CHANGES_TOO_LARGE\",\n WORKTREE_UNTRACKED_UNSUPPORTED: \"WORKTREE_UNTRACKED_UNSUPPORTED\",\n WORKTREE_LOCAL_CHANGES_UNSUPPORTED: \"WORKTREE_LOCAL_CHANGES_UNSUPPORTED\",\n TOOL_DENIED: \"TOOL_DENIED\",\n TOOL_INPUT_INVALID: \"TOOL_INPUT_INVALID\",\n TOOL_ARGUMENTS_INVALID: \"TOOL_ARGUMENTS_INVALID\",\n TOOL_CALL_ID_CONFLICT: \"TOOL_CALL_ID_CONFLICT\",\n TOOL_PATH_DENIED: \"TOOL_PATH_DENIED\",\n PATCH_REJECTED: \"PATCH_REJECTED\",\n VALIDATION_FAILED: \"VALIDATION_FAILED\",\n APPLY_CONFLICT: \"APPLY_CONFLICT\",\n INTERNAL_ERROR: \"INTERNAL_ERROR\",\n} as const;\n\nexport type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\n\nexport const ERROR_CODE_VALUES = Object.freeze(Object.values(ERROR_CODES));\n\nexport function isErrorCode(value: unknown): value is ErrorCode {\n return (\n typeof value === \"string\" &&\n (ERROR_CODE_VALUES as readonly string[]).includes(value)\n );\n}\n","import type { ErrorCode } from \"./error-code.js\";\n\nexport class SpotPatchError extends Error {\n readonly code: ErrorCode;\n\n constructor(code: ErrorCode, message = code, options?: ErrorOptions) {\n super(message, options);\n this.name = \"SpotPatchError\";\n this.code = code;\n }\n}\n"],"mappings":"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","names":["z","z"]}
@@ -47,23 +47,23 @@ declare const externalAgentErrorSchema: z.ZodObject<{
47
47
  MANAGED_CLEANUP_INCOMPLETE: "MANAGED_CLEANUP_INCOMPLETE";
48
48
  }>;
49
49
  stage: z.ZodEnum<{
50
- integration: "integration";
50
+ model: "model";
51
+ snapshot: "snapshot";
52
+ apply: "apply";
51
53
  binary: "binary";
54
+ integration: "integration";
52
55
  handshake: "handshake";
53
56
  auth: "auth";
54
- model: "model";
55
57
  protocol: "protocol";
56
- snapshot: "snapshot";
57
58
  audit: "audit";
58
59
  validation: "validation";
59
- apply: "apply";
60
60
  cleanup: "cleanup";
61
61
  }>;
62
62
  recoverability: z.ZodEnum<{
63
+ none: "none";
63
64
  retry: "retry";
64
65
  "user-action": "user-action";
65
66
  reconfigure: "reconfigure";
66
- none: "none";
67
67
  }>;
68
68
  action: z.ZodEnum<{
69
69
  retry: "retry";
@@ -86,9 +86,9 @@ declare const managedFileSummarySchema: z.ZodObject<{
86
86
  declare const managedCheckSummarySchema: z.ZodObject<{
87
87
  id: z.ZodString;
88
88
  outcome: z.ZodEnum<{
89
+ unavailable: "unavailable";
89
90
  failed: "failed";
90
91
  passed: "passed";
91
- unavailable: "unavailable";
92
92
  }>;
93
93
  durationMs: z.ZodNumber;
94
94
  exitCode: z.ZodOptional<z.ZodNumber>;
@@ -111,29 +111,29 @@ declare const managedTaskStatusSchema: z.ZodObject<{
111
111
  }>;
112
112
  executionStatus: z.ZodEnum<{
113
113
  unknown: "unknown";
114
- "not-observable": "not-observable";
115
114
  started: "started";
115
+ "not-observable": "not-observable";
116
116
  "terminal-succeeded": "terminal-succeeded";
117
117
  "terminal-failed": "terminal-failed";
118
118
  interrupted: "interrupted";
119
119
  }>;
120
120
  managedPhase: z.ZodEnum<{
121
- preparing: "preparing";
122
121
  running: "running";
123
- auditing: "auditing";
122
+ cancelled: "cancelled";
123
+ failed: "failed";
124
+ preparing: "preparing";
124
125
  validating: "validating";
125
126
  applying: "applying";
126
127
  completed: "completed";
128
+ auditing: "auditing";
127
129
  "review-required": "review-required";
128
- failed: "failed";
129
- cancelled: "cancelled";
130
130
  "cleanup-warning": "cleanup-warning";
131
131
  }>;
132
132
  validationOutcome: z.ZodOptional<z.ZodEnum<{
133
+ unavailable: "unavailable";
133
134
  failed: "failed";
134
135
  passed: "passed";
135
136
  "not-configured": "not-configured";
136
- unavailable: "unavailable";
137
137
  }>>;
138
138
  files: z.ZodArray<z.ZodObject<{
139
139
  path: z.ZodString;
@@ -143,9 +143,9 @@ declare const managedTaskStatusSchema: z.ZodObject<{
143
143
  checks: z.ZodArray<z.ZodObject<{
144
144
  id: z.ZodString;
145
145
  outcome: z.ZodEnum<{
146
+ unavailable: "unavailable";
146
147
  failed: "failed";
147
148
  passed: "passed";
148
- unavailable: "unavailable";
149
149
  }>;
150
150
  durationMs: z.ZodNumber;
151
151
  exitCode: z.ZodOptional<z.ZodNumber>;
@@ -178,21 +178,21 @@ declare const externalAgentControlStatusSchema: z.ZodObject<{
178
178
  }>;
179
179
  }, z.core.$strict>;
180
180
  connectionState: z.ZodEnum<{
181
+ error: "error";
182
+ ready: "ready";
183
+ degraded: "degraded";
184
+ busy: "busy";
181
185
  disconnected: "disconnected";
182
186
  diagnosing: "diagnosing";
183
187
  "awaiting-consent": "awaiting-consent";
184
188
  connecting: "connecting";
185
- ready: "ready";
186
- busy: "busy";
187
- degraded: "degraded";
188
- error: "error";
189
189
  disconnecting: "disconnecting";
190
190
  }>;
191
191
  authReadiness: z.ZodEnum<{
192
+ unknown: "unknown";
192
193
  authenticated: "authenticated";
193
194
  "auth-not-required": "auth-not-required";
194
195
  "signed-out": "signed-out";
195
- unknown: "unknown";
196
196
  }>;
197
197
  grantState: z.ZodEnum<{
198
198
  missing: "missing";
@@ -211,29 +211,29 @@ declare const externalAgentControlStatusSchema: z.ZodObject<{
211
211
  }>;
212
212
  executionStatus: z.ZodEnum<{
213
213
  unknown: "unknown";
214
- "not-observable": "not-observable";
215
214
  started: "started";
215
+ "not-observable": "not-observable";
216
216
  "terminal-succeeded": "terminal-succeeded";
217
217
  "terminal-failed": "terminal-failed";
218
218
  interrupted: "interrupted";
219
219
  }>;
220
220
  managedPhase: z.ZodEnum<{
221
- preparing: "preparing";
222
221
  running: "running";
223
- auditing: "auditing";
222
+ cancelled: "cancelled";
223
+ failed: "failed";
224
+ preparing: "preparing";
224
225
  validating: "validating";
225
226
  applying: "applying";
226
227
  completed: "completed";
228
+ auditing: "auditing";
227
229
  "review-required": "review-required";
228
- failed: "failed";
229
- cancelled: "cancelled";
230
230
  "cleanup-warning": "cleanup-warning";
231
231
  }>;
232
232
  validationOutcome: z.ZodOptional<z.ZodEnum<{
233
+ unavailable: "unavailable";
233
234
  failed: "failed";
234
235
  passed: "passed";
235
236
  "not-configured": "not-configured";
236
- unavailable: "unavailable";
237
237
  }>>;
238
238
  files: z.ZodArray<z.ZodObject<{
239
239
  path: z.ZodString;
@@ -243,9 +243,9 @@ declare const externalAgentControlStatusSchema: z.ZodObject<{
243
243
  checks: z.ZodArray<z.ZodObject<{
244
244
  id: z.ZodString;
245
245
  outcome: z.ZodEnum<{
246
+ unavailable: "unavailable";
246
247
  failed: "failed";
247
248
  passed: "passed";
248
- unavailable: "unavailable";
249
249
  }>;
250
250
  durationMs: z.ZodNumber;
251
251
  exitCode: z.ZodOptional<z.ZodNumber>;
@@ -282,23 +282,23 @@ declare const externalAgentControlStatusSchema: z.ZodObject<{
282
282
  MANAGED_CLEANUP_INCOMPLETE: "MANAGED_CLEANUP_INCOMPLETE";
283
283
  }>;
284
284
  stage: z.ZodEnum<{
285
- integration: "integration";
285
+ model: "model";
286
+ snapshot: "snapshot";
287
+ apply: "apply";
286
288
  binary: "binary";
289
+ integration: "integration";
287
290
  handshake: "handshake";
288
291
  auth: "auth";
289
- model: "model";
290
292
  protocol: "protocol";
291
- snapshot: "snapshot";
292
293
  audit: "audit";
293
294
  validation: "validation";
294
- apply: "apply";
295
295
  cleanup: "cleanup";
296
296
  }>;
297
297
  recoverability: z.ZodEnum<{
298
+ none: "none";
298
299
  retry: "retry";
299
300
  "user-action": "user-action";
300
301
  reconfigure: "reconfigure";
301
- none: "none";
302
302
  }>;
303
303
  action: z.ZodEnum<{
304
304
  retry: "retry";
@@ -353,21 +353,21 @@ declare const externalAgentEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
353
353
  }>;
354
354
  }, z.core.$strict>;
355
355
  connectionState: z.ZodEnum<{
356
+ error: "error";
357
+ ready: "ready";
358
+ degraded: "degraded";
359
+ busy: "busy";
356
360
  disconnected: "disconnected";
357
361
  diagnosing: "diagnosing";
358
362
  "awaiting-consent": "awaiting-consent";
359
363
  connecting: "connecting";
360
- ready: "ready";
361
- busy: "busy";
362
- degraded: "degraded";
363
- error: "error";
364
364
  disconnecting: "disconnecting";
365
365
  }>;
366
366
  authReadiness: z.ZodEnum<{
367
+ unknown: "unknown";
367
368
  authenticated: "authenticated";
368
369
  "auth-not-required": "auth-not-required";
369
370
  "signed-out": "signed-out";
370
- unknown: "unknown";
371
371
  }>;
372
372
  grantState: z.ZodEnum<{
373
373
  missing: "missing";
@@ -386,29 +386,29 @@ declare const externalAgentEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
386
386
  }>;
387
387
  executionStatus: z.ZodEnum<{
388
388
  unknown: "unknown";
389
- "not-observable": "not-observable";
390
389
  started: "started";
390
+ "not-observable": "not-observable";
391
391
  "terminal-succeeded": "terminal-succeeded";
392
392
  "terminal-failed": "terminal-failed";
393
393
  interrupted: "interrupted";
394
394
  }>;
395
395
  managedPhase: z.ZodEnum<{
396
- preparing: "preparing";
397
396
  running: "running";
398
- auditing: "auditing";
397
+ cancelled: "cancelled";
398
+ failed: "failed";
399
+ preparing: "preparing";
399
400
  validating: "validating";
400
401
  applying: "applying";
401
402
  completed: "completed";
403
+ auditing: "auditing";
402
404
  "review-required": "review-required";
403
- failed: "failed";
404
- cancelled: "cancelled";
405
405
  "cleanup-warning": "cleanup-warning";
406
406
  }>;
407
407
  validationOutcome: z.ZodOptional<z.ZodEnum<{
408
+ unavailable: "unavailable";
408
409
  failed: "failed";
409
410
  passed: "passed";
410
411
  "not-configured": "not-configured";
411
- unavailable: "unavailable";
412
412
  }>>;
413
413
  files: z.ZodArray<z.ZodObject<{
414
414
  path: z.ZodString;
@@ -418,9 +418,9 @@ declare const externalAgentEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
418
418
  checks: z.ZodArray<z.ZodObject<{
419
419
  id: z.ZodString;
420
420
  outcome: z.ZodEnum<{
421
+ unavailable: "unavailable";
421
422
  failed: "failed";
422
423
  passed: "passed";
423
- unavailable: "unavailable";
424
424
  }>;
425
425
  durationMs: z.ZodNumber;
426
426
  exitCode: z.ZodOptional<z.ZodNumber>;
@@ -457,23 +457,23 @@ declare const externalAgentEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
457
457
  MANAGED_CLEANUP_INCOMPLETE: "MANAGED_CLEANUP_INCOMPLETE";
458
458
  }>;
459
459
  stage: z.ZodEnum<{
460
- integration: "integration";
460
+ model: "model";
461
+ snapshot: "snapshot";
462
+ apply: "apply";
461
463
  binary: "binary";
464
+ integration: "integration";
462
465
  handshake: "handshake";
463
466
  auth: "auth";
464
- model: "model";
465
467
  protocol: "protocol";
466
- snapshot: "snapshot";
467
468
  audit: "audit";
468
469
  validation: "validation";
469
- apply: "apply";
470
470
  cleanup: "cleanup";
471
471
  }>;
472
472
  recoverability: z.ZodEnum<{
473
+ none: "none";
473
474
  retry: "retry";
474
475
  "user-action": "user-action";
475
476
  reconfigure: "reconfigure";
476
- none: "none";
477
477
  }>;
478
478
  action: z.ZodEnum<{
479
479
  retry: "retry";
@@ -509,9 +509,9 @@ declare const externalAgentManagedResultSchema: z.ZodObject<{
509
509
  checks: z.ZodArray<z.ZodObject<{
510
510
  id: z.ZodString;
511
511
  outcome: z.ZodEnum<{
512
+ unavailable: "unavailable";
512
513
  failed: "failed";
513
514
  passed: "passed";
514
- unavailable: "unavailable";
515
515
  }>;
516
516
  durationMs: z.ZodNumber;
517
517
  exitCode: z.ZodOptional<z.ZodNumber>;
@@ -525,10 +525,10 @@ declare const externalAgentManagedResultSchema: z.ZodObject<{
525
525
  total: z.ZodOptional<z.ZodNumber>;
526
526
  }, z.core.$strict>;
527
527
  validationOutcome: z.ZodEnum<{
528
+ unavailable: "unavailable";
528
529
  failed: "failed";
529
530
  passed: "passed";
530
531
  "not-configured": "not-configured";
531
- unavailable: "unavailable";
532
532
  }>;
533
533
  expiresAt: z.ZodISODateTime;
534
534
  }, z.core.$strict>;