@spotpatch/shared 1.13.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 (54) 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-node.cjs +178 -20
  29. package/dist/external-agent-node.cjs.map +1 -1
  30. package/dist/external-agent-node.d.cts +18 -3
  31. package/dist/external-agent-node.d.ts +18 -3
  32. package/dist/external-agent-node.js +172 -20
  33. package/dist/external-agent-node.js.map +1 -1
  34. package/dist/{external-handoff-DighrWn8.d.ts → external-handoff-5zHu-fz2.d.ts} +12 -2
  35. package/dist/{external-handoff-DwtFFR6F.d.cts → external-handoff-DeiIvR-2.d.cts} +12 -2
  36. package/dist/external-handoff-browser.cjs +5 -1
  37. package/dist/external-handoff-browser.cjs.map +1 -1
  38. package/dist/external-handoff-browser.d.cts +3 -3
  39. package/dist/external-handoff-browser.d.ts +3 -3
  40. package/dist/external-handoff-browser.js +1 -1
  41. package/dist/index.cjs +28 -6
  42. package/dist/index.cjs.map +1 -1
  43. package/dist/index.d.cts +19 -7
  44. package/dist/index.d.ts +19 -7
  45. package/dist/index.js +23 -8
  46. package/dist/index.js.map +1 -1
  47. package/package.json +1 -1
  48. package/dist/chunk-2LVIH7OA.js.map +0 -1
  49. package/dist/chunk-C2PJ4UUU.js.map +0 -1
  50. package/dist/chunk-DYTWEIES.js.map +0 -1
  51. package/dist/chunk-IUTOVI5G.js.map +0 -1
  52. package/dist/{chunk-YQ5GL523.js.map → chunk-JTZFOTPT.js.map} +0 -0
  53. package/dist/{external-agent-control-CRBbjDDk.d.cts → external-agent-control-C79Nl85y.d.cts} +3 -3
  54. package/dist/{external-agent-control-CRBbjDDk.d.ts → external-agent-control-C79Nl85y.d.ts} +3 -3
@@ -1,10 +1,10 @@
1
1
  import { z } from 'zod';
2
- import { S as SpotAnnotation } from './annotation-C0Me9mN2.js';
2
+ import { S as SpotAnnotation } from './annotation-Cz-NNgR4.js';
3
3
 
4
4
  declare const EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION: 1;
5
5
  declare const EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION: 2;
6
6
  declare const EXTERNAL_HANDOFF_STATES: readonly ["available", "expired", "superseded"];
7
- declare const EXTERNAL_HANDOFF_FRAMEWORKS: readonly ["vite", "next"];
7
+ declare const EXTERNAL_HANDOFF_FRAMEWORKS: readonly ["vite", "next", "astro"];
8
8
  declare const EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS: readonly ["claude-channel", "codex-app-server"];
9
9
  declare const EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES: readonly ["ready", "busy", "blocked"];
10
10
  declare const EXTERNAL_HANDOFF_DISPATCH_PHASES: readonly ["queued", "dispatching", "dispatched", "working", "completed", "failed", "delivery-unknown"];
@@ -54,6 +54,7 @@ declare const externalHandoffReportableDispatchPhaseSchema: z.ZodEnum<{
54
54
  declare const externalHandoffSummarySchema: z.ZodObject<{
55
55
  sessionId: z.ZodString;
56
56
  framework: z.ZodEnum<{
57
+ astro: "astro";
57
58
  vite: "vite";
58
59
  next: "next";
59
60
  }>;
@@ -80,6 +81,7 @@ declare const externalHandoffSnapshotSchema: z.ZodObject<{
80
81
  session: z.ZodObject<{
81
82
  id: z.ZodString;
82
83
  framework: z.ZodEnum<{
84
+ astro: "astro";
83
85
  vite: "vite";
84
86
  next: "next";
85
87
  }>;
@@ -119,6 +121,7 @@ declare const externalHandoffSnapshotSchema: z.ZodObject<{
119
121
  column: z.ZodOptional<z.ZodNumber>;
120
122
  origin: z.ZodEnum<{
121
123
  "jsx-host": "jsx-host";
124
+ "astro-host": "astro-host";
122
125
  "react-fiber": "react-fiber";
123
126
  "dom-ancestor": "dom-ancestor";
124
127
  none: "none";
@@ -144,6 +147,7 @@ declare const externalHandoffSnapshotSchema: z.ZodObject<{
144
147
  column: z.ZodOptional<z.ZodNumber>;
145
148
  origin: z.ZodEnum<{
146
149
  "jsx-host": "jsx-host";
150
+ "astro-host": "astro-host";
147
151
  "react-fiber": "react-fiber";
148
152
  "dom-ancestor": "dom-ancestor";
149
153
  none: "none";
@@ -186,6 +190,7 @@ declare const externalHandoffSnapshotSchema: z.ZodObject<{
186
190
  language: z.ZodEnum<{
187
191
  tsx: "tsx";
188
192
  jsx: "jsx";
193
+ astro: "astro";
189
194
  }>;
190
195
  startLine: z.ZodNumber;
191
196
  endLine: z.ZodNumber;
@@ -266,6 +271,7 @@ declare const externalHandoffPublishRequestSchema: z.ZodObject<{
266
271
  column: z.ZodOptional<z.ZodNumber>;
267
272
  origin: z.ZodEnum<{
268
273
  "jsx-host": "jsx-host";
274
+ "astro-host": "astro-host";
269
275
  "react-fiber": "react-fiber";
270
276
  "dom-ancestor": "dom-ancestor";
271
277
  none: "none";
@@ -291,6 +297,7 @@ declare const externalHandoffPublishRequestSchema: z.ZodObject<{
291
297
  column: z.ZodOptional<z.ZodNumber>;
292
298
  origin: z.ZodEnum<{
293
299
  "jsx-host": "jsx-host";
300
+ "astro-host": "astro-host";
294
301
  "react-fiber": "react-fiber";
295
302
  "dom-ancestor": "dom-ancestor";
296
303
  none: "none";
@@ -333,6 +340,7 @@ declare const externalHandoffPublishRequestSchema: z.ZodObject<{
333
340
  language: z.ZodEnum<{
334
341
  tsx: "tsx";
335
342
  jsx: "jsx";
343
+ astro: "astro";
336
344
  }>;
337
345
  startLine: z.ZodNumber;
338
346
  endLine: z.ZodNumber;
@@ -432,6 +440,7 @@ declare const externalHandoffPublishResultSchema: z.ZodObject<{
432
440
  handoff: z.ZodObject<{
433
441
  sessionId: z.ZodString;
434
442
  framework: z.ZodEnum<{
443
+ astro: "astro";
435
444
  vite: "vite";
436
445
  next: "next";
437
446
  }>;
@@ -494,6 +503,7 @@ declare const externalHandoffStatusResultSchema: z.ZodObject<{
494
503
  handoff: z.ZodObject<{
495
504
  sessionId: z.ZodString;
496
505
  framework: z.ZodEnum<{
506
+ astro: "astro";
497
507
  vite: "vite";
498
508
  next: "next";
499
509
  }>;
@@ -1,10 +1,10 @@
1
1
  import { z } from 'zod';
2
- import { S as SpotAnnotation } from './annotation-C0Me9mN2.cjs';
2
+ import { S as SpotAnnotation } from './annotation-Cz-NNgR4.cjs';
3
3
 
4
4
  declare const EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION: 1;
5
5
  declare const EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION: 2;
6
6
  declare const EXTERNAL_HANDOFF_STATES: readonly ["available", "expired", "superseded"];
7
- declare const EXTERNAL_HANDOFF_FRAMEWORKS: readonly ["vite", "next"];
7
+ declare const EXTERNAL_HANDOFF_FRAMEWORKS: readonly ["vite", "next", "astro"];
8
8
  declare const EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS: readonly ["claude-channel", "codex-app-server"];
9
9
  declare const EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES: readonly ["ready", "busy", "blocked"];
10
10
  declare const EXTERNAL_HANDOFF_DISPATCH_PHASES: readonly ["queued", "dispatching", "dispatched", "working", "completed", "failed", "delivery-unknown"];
@@ -54,6 +54,7 @@ declare const externalHandoffReportableDispatchPhaseSchema: z.ZodEnum<{
54
54
  declare const externalHandoffSummarySchema: z.ZodObject<{
55
55
  sessionId: z.ZodString;
56
56
  framework: z.ZodEnum<{
57
+ astro: "astro";
57
58
  vite: "vite";
58
59
  next: "next";
59
60
  }>;
@@ -80,6 +81,7 @@ declare const externalHandoffSnapshotSchema: z.ZodObject<{
80
81
  session: z.ZodObject<{
81
82
  id: z.ZodString;
82
83
  framework: z.ZodEnum<{
84
+ astro: "astro";
83
85
  vite: "vite";
84
86
  next: "next";
85
87
  }>;
@@ -119,6 +121,7 @@ declare const externalHandoffSnapshotSchema: z.ZodObject<{
119
121
  column: z.ZodOptional<z.ZodNumber>;
120
122
  origin: z.ZodEnum<{
121
123
  "jsx-host": "jsx-host";
124
+ "astro-host": "astro-host";
122
125
  "react-fiber": "react-fiber";
123
126
  "dom-ancestor": "dom-ancestor";
124
127
  none: "none";
@@ -144,6 +147,7 @@ declare const externalHandoffSnapshotSchema: z.ZodObject<{
144
147
  column: z.ZodOptional<z.ZodNumber>;
145
148
  origin: z.ZodEnum<{
146
149
  "jsx-host": "jsx-host";
150
+ "astro-host": "astro-host";
147
151
  "react-fiber": "react-fiber";
148
152
  "dom-ancestor": "dom-ancestor";
149
153
  none: "none";
@@ -186,6 +190,7 @@ declare const externalHandoffSnapshotSchema: z.ZodObject<{
186
190
  language: z.ZodEnum<{
187
191
  tsx: "tsx";
188
192
  jsx: "jsx";
193
+ astro: "astro";
189
194
  }>;
190
195
  startLine: z.ZodNumber;
191
196
  endLine: z.ZodNumber;
@@ -266,6 +271,7 @@ declare const externalHandoffPublishRequestSchema: z.ZodObject<{
266
271
  column: z.ZodOptional<z.ZodNumber>;
267
272
  origin: z.ZodEnum<{
268
273
  "jsx-host": "jsx-host";
274
+ "astro-host": "astro-host";
269
275
  "react-fiber": "react-fiber";
270
276
  "dom-ancestor": "dom-ancestor";
271
277
  none: "none";
@@ -291,6 +297,7 @@ declare const externalHandoffPublishRequestSchema: z.ZodObject<{
291
297
  column: z.ZodOptional<z.ZodNumber>;
292
298
  origin: z.ZodEnum<{
293
299
  "jsx-host": "jsx-host";
300
+ "astro-host": "astro-host";
294
301
  "react-fiber": "react-fiber";
295
302
  "dom-ancestor": "dom-ancestor";
296
303
  none: "none";
@@ -333,6 +340,7 @@ declare const externalHandoffPublishRequestSchema: z.ZodObject<{
333
340
  language: z.ZodEnum<{
334
341
  tsx: "tsx";
335
342
  jsx: "jsx";
343
+ astro: "astro";
336
344
  }>;
337
345
  startLine: z.ZodNumber;
338
346
  endLine: z.ZodNumber;
@@ -432,6 +440,7 @@ declare const externalHandoffPublishResultSchema: z.ZodObject<{
432
440
  handoff: z.ZodObject<{
433
441
  sessionId: z.ZodString;
434
442
  framework: z.ZodEnum<{
443
+ astro: "astro";
435
444
  vite: "vite";
436
445
  next: "next";
437
446
  }>;
@@ -494,6 +503,7 @@ declare const externalHandoffStatusResultSchema: z.ZodObject<{
494
503
  handoff: z.ZodObject<{
495
504
  sessionId: z.ZodString;
496
505
  framework: z.ZodEnum<{
506
+ astro: "astro";
497
507
  vite: "vite";
498
508
  next: "next";
499
509
  }>;
@@ -59,7 +59,11 @@ var EXTERNAL_HANDOFF_STATES = Object.freeze([
59
59
  "expired",
60
60
  "superseded"
61
61
  ]);
62
- var EXTERNAL_HANDOFF_FRAMEWORKS = Object.freeze(["vite", "next"]);
62
+ var EXTERNAL_HANDOFF_FRAMEWORKS = Object.freeze([
63
+ "vite",
64
+ "next",
65
+ "astro"
66
+ ]);
63
67
  var EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS = Object.freeze([
64
68
  "claude-channel",
65
69
  "codex-app-server"
@@ -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 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":"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","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-C79Nl85y.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. */
@@ -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-C79Nl85y.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. */
@@ -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({
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
@@ -1853,7 +1870,11 @@ var EXTERNAL_HANDOFF_STATES = Object.freeze([
1853
1870
  "expired",
1854
1871
  "superseded"
1855
1872
  ]);
1856
- var EXTERNAL_HANDOFF_FRAMEWORKS = Object.freeze(["vite", "next"]);
1873
+ var EXTERNAL_HANDOFF_FRAMEWORKS = Object.freeze([
1874
+ "vite",
1875
+ "next",
1876
+ "astro"
1877
+ ]);
1857
1878
  var EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS = Object.freeze([
1858
1879
  "claude-channel",
1859
1880
  "codex-app-server"
@@ -2014,6 +2035,7 @@ var askJobCreateRequestSchema = import_zod8.z.strictObject({
2014
2035
  requestId: contextualAskOpaqueIdSchema,
2015
2036
  envelope: spotAskTaskEnvelopeSchema,
2016
2037
  executorId: contextualAskOpaqueIdSchema,
2038
+ model: contextualAskBoundedText(limits2.maximumLabelCharacters).optional(),
2017
2039
  providerDataConsent: import_zod8.z.literal(true)
2018
2040
  });
2019
2041
  var askJobActionRequestSchema = import_zod8.z.strictObject({});