@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
@@ -31,6 +31,7 @@ declare const CONTEXTUAL_ASK_LIMITS: Readonly<{
31
31
  readonly maximumLanguageCharacters: 64;
32
32
  readonly maximumPhaseMessageCharacters: 1024;
33
33
  readonly maximumExecutors: 32;
34
+ readonly maximumModels: 800;
34
35
  readonly contentHashHexCharacters: 64;
35
36
  }>;
36
37
  declare const CONTEXTUAL_ASK_EXECUTOR_KINDS: readonly ["configured-key", "managed-codex"];
@@ -76,6 +77,7 @@ declare const spotSelectionTargetSchema: z.ZodObject<{
76
77
  column: z.ZodOptional<z.ZodNumber>;
77
78
  origin: z.ZodEnum<{
78
79
  "jsx-host": "jsx-host";
80
+ "astro-host": "astro-host";
79
81
  "react-fiber": "react-fiber";
80
82
  "dom-ancestor": "dom-ancestor";
81
83
  none: "none";
@@ -101,6 +103,7 @@ declare const spotSelectionTargetSchema: z.ZodObject<{
101
103
  column: z.ZodOptional<z.ZodNumber>;
102
104
  origin: z.ZodEnum<{
103
105
  "jsx-host": "jsx-host";
106
+ "astro-host": "astro-host";
104
107
  "react-fiber": "react-fiber";
105
108
  "dom-ancestor": "dom-ancestor";
106
109
  none: "none";
@@ -144,6 +147,7 @@ declare const spotSelectionTargetSchema: z.ZodObject<{
144
147
  language: z.ZodEnum<{
145
148
  tsx: "tsx";
146
149
  jsx: "jsx";
150
+ astro: "astro";
147
151
  }>;
148
152
  startLine: z.ZodNumber;
149
153
  endLine: z.ZodNumber;
@@ -178,6 +182,7 @@ declare const spotSelectionContextSchema: z.ZodObject<{
178
182
  column: z.ZodOptional<z.ZodNumber>;
179
183
  origin: z.ZodEnum<{
180
184
  "jsx-host": "jsx-host";
185
+ "astro-host": "astro-host";
181
186
  "react-fiber": "react-fiber";
182
187
  "dom-ancestor": "dom-ancestor";
183
188
  none: "none";
@@ -203,6 +208,7 @@ declare const spotSelectionContextSchema: z.ZodObject<{
203
208
  column: z.ZodOptional<z.ZodNumber>;
204
209
  origin: z.ZodEnum<{
205
210
  "jsx-host": "jsx-host";
211
+ "astro-host": "astro-host";
206
212
  "react-fiber": "react-fiber";
207
213
  "dom-ancestor": "dom-ancestor";
208
214
  none: "none";
@@ -246,6 +252,7 @@ declare const spotSelectionContextSchema: z.ZodObject<{
246
252
  language: z.ZodEnum<{
247
253
  tsx: "tsx";
248
254
  jsx: "jsx";
255
+ astro: "astro";
249
256
  }>;
250
257
  startLine: z.ZodNumber;
251
258
  endLine: z.ZodNumber;
@@ -296,6 +303,7 @@ declare const spotAskTaskEnvelopeSchema: z.ZodObject<{
296
303
  column: z.ZodOptional<z.ZodNumber>;
297
304
  origin: z.ZodEnum<{
298
305
  "jsx-host": "jsx-host";
306
+ "astro-host": "astro-host";
299
307
  "react-fiber": "react-fiber";
300
308
  "dom-ancestor": "dom-ancestor";
301
309
  none: "none";
@@ -321,6 +329,7 @@ declare const spotAskTaskEnvelopeSchema: z.ZodObject<{
321
329
  column: z.ZodOptional<z.ZodNumber>;
322
330
  origin: z.ZodEnum<{
323
331
  "jsx-host": "jsx-host";
332
+ "astro-host": "astro-host";
324
333
  "react-fiber": "react-fiber";
325
334
  "dom-ancestor": "dom-ancestor";
326
335
  none: "none";
@@ -364,6 +373,7 @@ declare const spotAskTaskEnvelopeSchema: z.ZodObject<{
364
373
  language: z.ZodEnum<{
365
374
  tsx: "tsx";
366
375
  jsx: "jsx";
376
+ astro: "astro";
367
377
  }>;
368
378
  startLine: z.ZodNumber;
369
379
  endLine: z.ZodNumber;
@@ -419,6 +429,7 @@ declare const spotChangeTaskEnvelopeSchema: z.ZodObject<{
419
429
  column: z.ZodOptional<z.ZodNumber>;
420
430
  origin: z.ZodEnum<{
421
431
  "jsx-host": "jsx-host";
432
+ "astro-host": "astro-host";
422
433
  "react-fiber": "react-fiber";
423
434
  "dom-ancestor": "dom-ancestor";
424
435
  none: "none";
@@ -444,6 +455,7 @@ declare const spotChangeTaskEnvelopeSchema: z.ZodObject<{
444
455
  column: z.ZodOptional<z.ZodNumber>;
445
456
  origin: z.ZodEnum<{
446
457
  "jsx-host": "jsx-host";
458
+ "astro-host": "astro-host";
447
459
  "react-fiber": "react-fiber";
448
460
  "dom-ancestor": "dom-ancestor";
449
461
  none: "none";
@@ -487,6 +499,7 @@ declare const spotChangeTaskEnvelopeSchema: z.ZodObject<{
487
499
  language: z.ZodEnum<{
488
500
  tsx: "tsx";
489
501
  jsx: "jsx";
502
+ astro: "astro";
490
503
  }>;
491
504
  startLine: z.ZodNumber;
492
505
  endLine: z.ZodNumber;
@@ -532,6 +545,7 @@ declare const spotTaskEnvelopeSchema: z.ZodUnion<readonly [z.ZodObject<{
532
545
  column: z.ZodOptional<z.ZodNumber>;
533
546
  origin: z.ZodEnum<{
534
547
  "jsx-host": "jsx-host";
548
+ "astro-host": "astro-host";
535
549
  "react-fiber": "react-fiber";
536
550
  "dom-ancestor": "dom-ancestor";
537
551
  none: "none";
@@ -557,6 +571,7 @@ declare const spotTaskEnvelopeSchema: z.ZodUnion<readonly [z.ZodObject<{
557
571
  column: z.ZodOptional<z.ZodNumber>;
558
572
  origin: z.ZodEnum<{
559
573
  "jsx-host": "jsx-host";
574
+ "astro-host": "astro-host";
560
575
  "react-fiber": "react-fiber";
561
576
  "dom-ancestor": "dom-ancestor";
562
577
  none: "none";
@@ -600,6 +615,7 @@ declare const spotTaskEnvelopeSchema: z.ZodUnion<readonly [z.ZodObject<{
600
615
  language: z.ZodEnum<{
601
616
  tsx: "tsx";
602
617
  jsx: "jsx";
618
+ astro: "astro";
603
619
  }>;
604
620
  startLine: z.ZodNumber;
605
621
  endLine: z.ZodNumber;
@@ -654,6 +670,7 @@ declare const spotTaskEnvelopeSchema: z.ZodUnion<readonly [z.ZodObject<{
654
670
  column: z.ZodOptional<z.ZodNumber>;
655
671
  origin: z.ZodEnum<{
656
672
  "jsx-host": "jsx-host";
673
+ "astro-host": "astro-host";
657
674
  "react-fiber": "react-fiber";
658
675
  "dom-ancestor": "dom-ancestor";
659
676
  none: "none";
@@ -679,6 +696,7 @@ declare const spotTaskEnvelopeSchema: z.ZodUnion<readonly [z.ZodObject<{
679
696
  column: z.ZodOptional<z.ZodNumber>;
680
697
  origin: z.ZodEnum<{
681
698
  "jsx-host": "jsx-host";
699
+ "astro-host": "astro-host";
682
700
  "react-fiber": "react-fiber";
683
701
  "dom-ancestor": "dom-ancestor";
684
702
  none: "none";
@@ -722,6 +740,7 @@ declare const spotTaskEnvelopeSchema: z.ZodUnion<readonly [z.ZodObject<{
722
740
  language: z.ZodEnum<{
723
741
  tsx: "tsx";
724
742
  jsx: "jsx";
743
+ astro: "astro";
725
744
  }>;
726
745
  startLine: z.ZodNumber;
727
746
  endLine: z.ZodNumber;
@@ -920,6 +939,7 @@ declare const contextualAskExecutorCapabilitySchema: z.ZodObject<{
920
939
  label: z.ZodString;
921
940
  requestedModelLabel: z.ZodString;
922
941
  effectiveModelLabel: z.ZodString;
942
+ models: z.ZodOptional<z.ZodArray<z.ZodString>>;
923
943
  state: z.ZodEnum<{
924
944
  ready: "ready";
925
945
  degraded: "degraded";
@@ -958,6 +978,7 @@ declare const contextualAskCapabilitySchema: z.ZodObject<{
958
978
  label: z.ZodString;
959
979
  requestedModelLabel: z.ZodString;
960
980
  effectiveModelLabel: z.ZodString;
981
+ models: z.ZodOptional<z.ZodArray<z.ZodString>>;
961
982
  state: z.ZodEnum<{
962
983
  ready: "ready";
963
984
  degraded: "degraded";
@@ -1036,6 +1057,7 @@ declare const askJobCreateRequestSchema: z.ZodObject<{
1036
1057
  column: z.ZodOptional<z.ZodNumber>;
1037
1058
  origin: z.ZodEnum<{
1038
1059
  "jsx-host": "jsx-host";
1060
+ "astro-host": "astro-host";
1039
1061
  "react-fiber": "react-fiber";
1040
1062
  "dom-ancestor": "dom-ancestor";
1041
1063
  none: "none";
@@ -1061,6 +1083,7 @@ declare const askJobCreateRequestSchema: z.ZodObject<{
1061
1083
  column: z.ZodOptional<z.ZodNumber>;
1062
1084
  origin: z.ZodEnum<{
1063
1085
  "jsx-host": "jsx-host";
1086
+ "astro-host": "astro-host";
1064
1087
  "react-fiber": "react-fiber";
1065
1088
  "dom-ancestor": "dom-ancestor";
1066
1089
  none: "none";
@@ -1104,6 +1127,7 @@ declare const askJobCreateRequestSchema: z.ZodObject<{
1104
1127
  language: z.ZodEnum<{
1105
1128
  tsx: "tsx";
1106
1129
  jsx: "jsx";
1130
+ astro: "astro";
1107
1131
  }>;
1108
1132
  startLine: z.ZodNumber;
1109
1133
  endLine: z.ZodNumber;
@@ -1128,6 +1152,7 @@ declare const askJobCreateRequestSchema: z.ZodObject<{
1128
1152
  createdAt: z.ZodISODateTime;
1129
1153
  }, z.core.$strict>;
1130
1154
  executorId: z.ZodString;
1155
+ model: z.ZodOptional<z.ZodString>;
1131
1156
  providerDataConsent: z.ZodLiteral<true>;
1132
1157
  }, z.core.$strict>;
1133
1158
  declare const askJobActionRequestSchema: z.ZodObject<{}, z.core.$strict>;
@@ -70,6 +70,7 @@ var CONTEXTUAL_ASK_LIMITS = Object.freeze({
70
70
  maximumLanguageCharacters: 64,
71
71
  maximumPhaseMessageCharacters: 1024,
72
72
  maximumExecutors: 32,
73
+ maximumModels: 800,
73
74
  contentHashHexCharacters: 64
74
75
  });
75
76
  var CONTEXTUAL_ASK_EXECUTOR_KINDS = Object.freeze([
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/contextual-ask-browser.ts","../src/protocol/contextual-ask-constants.ts","../src/protocol/endpoints.ts"],"sourcesContent":["import type { ERROR_CODES as GLOBAL_ERROR_CODES } from \"./errors/error-code.js\";\nimport type { ContextualAskErrorCode } from \"./errors/error-code.js\";\n\nconst CONTEXTUAL_ASK_ERRORS = {\n ASK_DISABLED: \"ASK_DISABLED\",\n ASK_SELECTION_REQUIRED: \"ASK_SELECTION_REQUIRED\",\n ASK_SELECTION_STALE: \"ASK_SELECTION_STALE\",\n ASK_QUESTION_INVALID: \"ASK_QUESTION_INVALID\",\n ASK_EXECUTOR_UNAVAILABLE: \"ASK_EXECUTOR_UNAVAILABLE\",\n ASK_TIMEOUT: \"ASK_TIMEOUT\",\n ASK_CONSENT_REQUIRED: \"ASK_CONSENT_REQUIRED\",\n ASK_BUSY: \"ASK_BUSY\",\n ASK_IDEMPOTENCY_CONFLICT: \"ASK_IDEMPOTENCY_CONFLICT\",\n ASK_SOURCE_SCOPE_DENIED: \"ASK_SOURCE_SCOPE_DENIED\",\n ASK_LIMIT_EXCEEDED: \"ASK_LIMIT_EXCEEDED\",\n ASK_ANSWER_INVALID: \"ASK_ANSWER_INVALID\",\n ASK_WRITE_ATTEMPTED: \"ASK_WRITE_ATTEMPTED\",\n ASK_CANCELLED: \"ASK_CANCELLED\",\n ASK_RESULT_EXPIRED: \"ASK_RESULT_EXPIRED\",\n ASK_PROTOCOL_INCOMPATIBLE: \"ASK_PROTOCOL_INCOMPATIBLE\",\n} as const satisfies Record<ContextualAskErrorCode, ContextualAskErrorCode>;\n\n/** Browser-reachable Ask errors only; no provider details or Node failures. */\nexport const ERROR_CODES = Object.freeze({\n INVALID_REQUEST: \"INVALID_REQUEST\",\n INVALID_TOKEN: \"INVALID_TOKEN\",\n ORIGIN_NOT_ALLOWED: \"ORIGIN_NOT_ALLOWED\",\n ...CONTEXTUAL_ASK_ERRORS,\n INTERNAL_ERROR: \"INTERNAL_ERROR\",\n} as const satisfies Pick<\n typeof GLOBAL_ERROR_CODES,\n \"INTERNAL_ERROR\" | \"INVALID_REQUEST\" | \"INVALID_TOKEN\" | \"ORIGIN_NOT_ALLOWED\"\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\nexport {\n ASK_ANSWER_WARNING_CODES,\n ASK_EXECUTOR_ANSWER_WARNING_CODES,\n ASK_FILE_COUNT_BUCKETS,\n ASK_JOB_STATUSES,\n ASK_READ_ACTIVITY_STATES,\n ASK_SOURCE_CONFIDENCES,\n CONTEXTUAL_ASK_EXECUTOR_KINDS,\n CONTEXTUAL_ASK_EXECUTOR_STATES,\n CONTEXTUAL_ASK_LIMITS,\n CONTEXTUAL_ASK_SCHEMA_VERSION,\n type AskAnswerWarningCode,\n type AskExecutorAnswerWarningCode,\n type AskFileCountBucket,\n type AskJobStatus,\n type AskReadActivityState,\n type AskSourceConfidence,\n type ContextualAskExecutorKind,\n type ContextualAskExecutorState,\n} from \"./protocol/contextual-ask-constants.js\";\nexport {\n getAskJobEndpoint,\n SPOTPATCH_ENDPOINTS,\n SPOTPATCH_TOKEN_HEADER,\n type AskJobAction,\n} from \"./protocol/endpoints.js\";\nexport type {\n AskAnswerBlock,\n AskAnswerResult,\n AskAnswerWarning,\n AskDraftOrigin,\n AskSourceReference,\n ContextualAskCapability,\n ContextualAskExecutorCapability,\n SpotAskTaskEnvelope,\n SpotChangeTaskEnvelope,\n SpotSelectionContext,\n SpotSelectionTarget,\n SpotTaskEnvelope,\n} from \"./model/contextual-ask.js\";\nexport type {\n AskJobActionRequest,\n AskJobCreateRequest,\n AskJobEvent,\n AskJobEventsRequest,\n AskJobResultResponse,\n AskJobSnapshot,\n ContextualAskCapabilityRequest,\n} from \"./protocol/contextual-ask.js\";\n","export const CONTEXTUAL_ASK_SCHEMA_VERSION = 1 as const;\n\nexport const CONTEXTUAL_ASK_LIMITS = Object.freeze({\n maximumTargets: 20,\n maximumQuestionCharacters: 4_000,\n maximumAnswerCharacters: 40_000,\n maximumAnswerBlocks: 40,\n maximumSources: 64,\n maximumReadFiles: 32,\n maximumReadBytesPerFile: 64 * 1_024,\n maximumReadBytesTotal: 512 * 1_024,\n maximumToolCalls: 48,\n maximumModelTurns: 12,\n jobTimeoutMs: 300_000,\n resultTtlMs: 900_000,\n maximumActiveJobsPerSession: 1,\n maximumRetainedResultsPerSession: 1,\n maximumRetainedEvents: 256,\n maximumEventSubscribers: 4,\n eventHeartbeatMs: 15_000,\n maximumRequestBodyBytes: 256 * 1_024,\n maximumSearchQueryCharacters: 256,\n maximumSearchResults: 64,\n maximumSearchPreviewCharacters: 500,\n capabilityTimeoutMs: 30_000,\n maximumIdCharacters: 128,\n maximumProfileIdCharacters: 64,\n maximumLabelCharacters: 256,\n maximumRelativePathCharacters: 1_024,\n maximumLanguageCharacters: 64,\n maximumPhaseMessageCharacters: 1_024,\n maximumExecutors: 32,\n contentHashHexCharacters: 64,\n} as const);\n\nexport const CONTEXTUAL_ASK_EXECUTOR_KINDS = Object.freeze([\n \"configured-key\",\n \"managed-codex\",\n] as const);\nexport type ContextualAskExecutorKind = (typeof CONTEXTUAL_ASK_EXECUTOR_KINDS)[number];\n\nexport const CONTEXTUAL_ASK_EXECUTOR_STATES = Object.freeze([\n \"ready\",\n \"degraded\",\n \"unavailable\",\n] as const);\nexport type ContextualAskExecutorState =\n (typeof CONTEXTUAL_ASK_EXECUTOR_STATES)[number];\n\nexport const ASK_JOB_STATUSES = Object.freeze([\n \"queued\",\n \"authorizing\",\n \"running\",\n \"cancelling\",\n \"answered\",\n \"cancelled\",\n \"failed\",\n] as const);\nexport type AskJobStatus = (typeof ASK_JOB_STATUSES)[number];\n\nexport const ASK_ANSWER_WARNING_CODES = Object.freeze([\n \"insufficient-evidence\",\n \"partial-context\",\n \"source-truncated\",\n \"source-stale\",\n] as const);\nexport type AskAnswerWarningCode = (typeof ASK_ANSWER_WARNING_CODES)[number];\n\n/** Warnings an executor may declare from its own evidence assessment. */\nexport const ASK_EXECUTOR_ANSWER_WARNING_CODES = Object.freeze([\n \"insufficient-evidence\",\n \"partial-context\",\n] as const satisfies readonly AskAnswerWarningCode[]);\nexport type AskExecutorAnswerWarningCode =\n (typeof ASK_EXECUTOR_ANSWER_WARNING_CODES)[number];\n\nexport const ASK_READ_ACTIVITY_STATES = Object.freeze([\n \"started\",\n \"succeeded\",\n \"failed\",\n] as const);\nexport type AskReadActivityState = (typeof ASK_READ_ACTIVITY_STATES)[number];\n\nexport const ASK_FILE_COUNT_BUCKETS = Object.freeze([\"one\", \"few\", \"many\"] as const);\nexport type AskFileCountBucket = (typeof ASK_FILE_COUNT_BUCKETS)[number];\n\nexport const ASK_SOURCE_CONFIDENCES = Object.freeze([\n \"exact\",\n \"probable\",\n \"approximate\",\n] as const);\nexport type AskSourceConfidence = (typeof ASK_SOURCE_CONFIDENCES)[number];\n\nexport const CONTEXTUAL_ASK_PERMISSION_PROFILE = \"spotpatch-ask-readonly\" as const;\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":[]}
1
+ {"version":3,"sources":["../src/contextual-ask-browser.ts","../src/protocol/contextual-ask-constants.ts","../src/protocol/endpoints.ts"],"sourcesContent":["import type { ERROR_CODES as GLOBAL_ERROR_CODES } from \"./errors/error-code.js\";\nimport type { ContextualAskErrorCode } from \"./errors/error-code.js\";\n\nconst CONTEXTUAL_ASK_ERRORS = {\n ASK_DISABLED: \"ASK_DISABLED\",\n ASK_SELECTION_REQUIRED: \"ASK_SELECTION_REQUIRED\",\n ASK_SELECTION_STALE: \"ASK_SELECTION_STALE\",\n ASK_QUESTION_INVALID: \"ASK_QUESTION_INVALID\",\n ASK_EXECUTOR_UNAVAILABLE: \"ASK_EXECUTOR_UNAVAILABLE\",\n ASK_TIMEOUT: \"ASK_TIMEOUT\",\n ASK_CONSENT_REQUIRED: \"ASK_CONSENT_REQUIRED\",\n ASK_BUSY: \"ASK_BUSY\",\n ASK_IDEMPOTENCY_CONFLICT: \"ASK_IDEMPOTENCY_CONFLICT\",\n ASK_SOURCE_SCOPE_DENIED: \"ASK_SOURCE_SCOPE_DENIED\",\n ASK_LIMIT_EXCEEDED: \"ASK_LIMIT_EXCEEDED\",\n ASK_ANSWER_INVALID: \"ASK_ANSWER_INVALID\",\n ASK_WRITE_ATTEMPTED: \"ASK_WRITE_ATTEMPTED\",\n ASK_CANCELLED: \"ASK_CANCELLED\",\n ASK_RESULT_EXPIRED: \"ASK_RESULT_EXPIRED\",\n ASK_PROTOCOL_INCOMPATIBLE: \"ASK_PROTOCOL_INCOMPATIBLE\",\n} as const satisfies Record<ContextualAskErrorCode, ContextualAskErrorCode>;\n\n/** Browser-reachable Ask errors only; no provider details or Node failures. */\nexport const ERROR_CODES = Object.freeze({\n INVALID_REQUEST: \"INVALID_REQUEST\",\n INVALID_TOKEN: \"INVALID_TOKEN\",\n ORIGIN_NOT_ALLOWED: \"ORIGIN_NOT_ALLOWED\",\n ...CONTEXTUAL_ASK_ERRORS,\n INTERNAL_ERROR: \"INTERNAL_ERROR\",\n} as const satisfies Pick<\n typeof GLOBAL_ERROR_CODES,\n \"INTERNAL_ERROR\" | \"INVALID_REQUEST\" | \"INVALID_TOKEN\" | \"ORIGIN_NOT_ALLOWED\"\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\nexport {\n ASK_ANSWER_WARNING_CODES,\n ASK_EXECUTOR_ANSWER_WARNING_CODES,\n ASK_FILE_COUNT_BUCKETS,\n ASK_JOB_STATUSES,\n ASK_READ_ACTIVITY_STATES,\n ASK_SOURCE_CONFIDENCES,\n CONTEXTUAL_ASK_EXECUTOR_KINDS,\n CONTEXTUAL_ASK_EXECUTOR_STATES,\n CONTEXTUAL_ASK_LIMITS,\n CONTEXTUAL_ASK_SCHEMA_VERSION,\n type AskAnswerWarningCode,\n type AskExecutorAnswerWarningCode,\n type AskFileCountBucket,\n type AskJobStatus,\n type AskReadActivityState,\n type AskSourceConfidence,\n type ContextualAskExecutorKind,\n type ContextualAskExecutorState,\n} from \"./protocol/contextual-ask-constants.js\";\nexport {\n getAskJobEndpoint,\n SPOTPATCH_ENDPOINTS,\n SPOTPATCH_TOKEN_HEADER,\n type AskJobAction,\n} from \"./protocol/endpoints.js\";\nexport type {\n AskAnswerBlock,\n AskAnswerResult,\n AskAnswerWarning,\n AskDraftOrigin,\n AskSourceReference,\n ContextualAskCapability,\n ContextualAskExecutorCapability,\n SpotAskTaskEnvelope,\n SpotChangeTaskEnvelope,\n SpotSelectionContext,\n SpotSelectionTarget,\n SpotTaskEnvelope,\n} from \"./model/contextual-ask.js\";\nexport type {\n AskJobActionRequest,\n AskJobCreateRequest,\n AskJobEvent,\n AskJobEventsRequest,\n AskJobResultResponse,\n AskJobSnapshot,\n ContextualAskCapabilityRequest,\n} from \"./protocol/contextual-ask.js\";\n","export const CONTEXTUAL_ASK_SCHEMA_VERSION = 1 as const;\n\nexport const CONTEXTUAL_ASK_LIMITS = Object.freeze({\n maximumTargets: 20,\n maximumQuestionCharacters: 4_000,\n maximumAnswerCharacters: 40_000,\n maximumAnswerBlocks: 40,\n maximumSources: 64,\n maximumReadFiles: 32,\n maximumReadBytesPerFile: 64 * 1_024,\n maximumReadBytesTotal: 512 * 1_024,\n maximumToolCalls: 48,\n maximumModelTurns: 12,\n jobTimeoutMs: 300_000,\n resultTtlMs: 900_000,\n maximumActiveJobsPerSession: 1,\n maximumRetainedResultsPerSession: 1,\n maximumRetainedEvents: 256,\n maximumEventSubscribers: 4,\n eventHeartbeatMs: 15_000,\n maximumRequestBodyBytes: 256 * 1_024,\n maximumSearchQueryCharacters: 256,\n maximumSearchResults: 64,\n maximumSearchPreviewCharacters: 500,\n capabilityTimeoutMs: 30_000,\n maximumIdCharacters: 128,\n maximumProfileIdCharacters: 64,\n maximumLabelCharacters: 256,\n maximumRelativePathCharacters: 1_024,\n maximumLanguageCharacters: 64,\n maximumPhaseMessageCharacters: 1_024,\n maximumExecutors: 32,\n maximumModels: 800,\n contentHashHexCharacters: 64,\n} as const);\n\nexport const CONTEXTUAL_ASK_EXECUTOR_KINDS = Object.freeze([\n \"configured-key\",\n \"managed-codex\",\n] as const);\nexport type ContextualAskExecutorKind = (typeof CONTEXTUAL_ASK_EXECUTOR_KINDS)[number];\n\nexport const CONTEXTUAL_ASK_EXECUTOR_STATES = Object.freeze([\n \"ready\",\n \"degraded\",\n \"unavailable\",\n] as const);\nexport type ContextualAskExecutorState =\n (typeof CONTEXTUAL_ASK_EXECUTOR_STATES)[number];\n\nexport const ASK_JOB_STATUSES = Object.freeze([\n \"queued\",\n \"authorizing\",\n \"running\",\n \"cancelling\",\n \"answered\",\n \"cancelled\",\n \"failed\",\n] as const);\nexport type AskJobStatus = (typeof ASK_JOB_STATUSES)[number];\n\nexport const ASK_ANSWER_WARNING_CODES = Object.freeze([\n \"insufficient-evidence\",\n \"partial-context\",\n \"source-truncated\",\n \"source-stale\",\n] as const);\nexport type AskAnswerWarningCode = (typeof ASK_ANSWER_WARNING_CODES)[number];\n\n/** Warnings an executor may declare from its own evidence assessment. */\nexport const ASK_EXECUTOR_ANSWER_WARNING_CODES = Object.freeze([\n \"insufficient-evidence\",\n \"partial-context\",\n] as const satisfies readonly AskAnswerWarningCode[]);\nexport type AskExecutorAnswerWarningCode =\n (typeof ASK_EXECUTOR_ANSWER_WARNING_CODES)[number];\n\nexport const ASK_READ_ACTIVITY_STATES = Object.freeze([\n \"started\",\n \"succeeded\",\n \"failed\",\n] as const);\nexport type AskReadActivityState = (typeof ASK_READ_ACTIVITY_STATES)[number];\n\nexport const ASK_FILE_COUNT_BUCKETS = Object.freeze([\"one\", \"few\", \"many\"] as const);\nexport type AskFileCountBucket = (typeof ASK_FILE_COUNT_BUCKETS)[number];\n\nexport const ASK_SOURCE_CONFIDENCES = Object.freeze([\n \"exact\",\n \"probable\",\n \"approximate\",\n] as const);\nexport type AskSourceConfidence = (typeof ASK_SOURCE_CONFIDENCES)[number];\n\nexport const CONTEXTUAL_ASK_PERMISSION_PROFILE = \"spotpatch-ask-readonly\" as const;\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":[]}
@@ -1,4 +1,4 @@
1
- export { A as ASK_ANSWER_WARNING_CODES, a as ASK_EXECUTOR_ANSWER_WARNING_CODES, b as ASK_FILE_COUNT_BUCKETS, c as ASK_JOB_STATUSES, d as ASK_READ_ACTIVITY_STATES, e as ASK_SOURCE_CONFIDENCES, f as AskAnswerBlock, g as AskAnswerResult, h as AskAnswerWarning, i as AskAnswerWarningCode, j as AskDraftOrigin, k as AskExecutorAnswerWarningCode, l as AskFileCountBucket, m as AskJobActionRequest, n as AskJobCreateRequest, o as AskJobEvent, p as AskJobEventsRequest, q as AskJobResultResponse, r as AskJobSnapshot, s as AskJobStatus, t as AskReadActivityState, u as AskSourceConfidence, v as AskSourceReference, C as CONTEXTUAL_ASK_EXECUTOR_KINDS, w as CONTEXTUAL_ASK_EXECUTOR_STATES, x as CONTEXTUAL_ASK_LIMITS, y as CONTEXTUAL_ASK_SCHEMA_VERSION, z as ContextualAskCapability, B as ContextualAskCapabilityRequest, D as ContextualAskExecutorCapability, E as ContextualAskExecutorKind, F as ContextualAskExecutorState, S as SpotAskTaskEnvelope, G as SpotChangeTaskEnvelope, H as SpotSelectionContext, I as SpotSelectionTarget, J as SpotTaskEnvelope } from './contextual-ask-B0mCFn92.cjs';
1
+ export { A as ASK_ANSWER_WARNING_CODES, a as ASK_EXECUTOR_ANSWER_WARNING_CODES, b as ASK_FILE_COUNT_BUCKETS, c as ASK_JOB_STATUSES, d as ASK_READ_ACTIVITY_STATES, e as ASK_SOURCE_CONFIDENCES, f as AskAnswerBlock, g as AskAnswerResult, h as AskAnswerWarning, i as AskAnswerWarningCode, j as AskDraftOrigin, k as AskExecutorAnswerWarningCode, l as AskFileCountBucket, m as AskJobActionRequest, n as AskJobCreateRequest, o as AskJobEvent, p as AskJobEventsRequest, q as AskJobResultResponse, r as AskJobSnapshot, s as AskJobStatus, t as AskReadActivityState, u as AskSourceConfidence, v as AskSourceReference, C as CONTEXTUAL_ASK_EXECUTOR_KINDS, w as CONTEXTUAL_ASK_EXECUTOR_STATES, x as CONTEXTUAL_ASK_LIMITS, y as CONTEXTUAL_ASK_SCHEMA_VERSION, z as ContextualAskCapability, B as ContextualAskCapabilityRequest, D as ContextualAskExecutorCapability, E as ContextualAskExecutorKind, F as ContextualAskExecutorState, S as SpotAskTaskEnvelope, G as SpotChangeTaskEnvelope, H as SpotSelectionContext, I as SpotSelectionTarget, J as SpotTaskEnvelope } from './contextual-ask-BpbkpFFf.cjs';
2
2
  export { A as AskJobAction, S as SPOTPATCH_ENDPOINTS, a as SPOTPATCH_TOKEN_HEADER, g as getAskJobEndpoint } from './endpoints-O3ohYyAo.cjs';
3
3
  import 'zod';
4
4
 
@@ -1,4 +1,4 @@
1
- export { A as ASK_ANSWER_WARNING_CODES, a as ASK_EXECUTOR_ANSWER_WARNING_CODES, b as ASK_FILE_COUNT_BUCKETS, c as ASK_JOB_STATUSES, d as ASK_READ_ACTIVITY_STATES, e as ASK_SOURCE_CONFIDENCES, f as AskAnswerBlock, g as AskAnswerResult, h as AskAnswerWarning, i as AskAnswerWarningCode, j as AskDraftOrigin, k as AskExecutorAnswerWarningCode, l as AskFileCountBucket, m as AskJobActionRequest, n as AskJobCreateRequest, o as AskJobEvent, p as AskJobEventsRequest, q as AskJobResultResponse, r as AskJobSnapshot, s as AskJobStatus, t as AskReadActivityState, u as AskSourceConfidence, v as AskSourceReference, C as CONTEXTUAL_ASK_EXECUTOR_KINDS, w as CONTEXTUAL_ASK_EXECUTOR_STATES, x as CONTEXTUAL_ASK_LIMITS, y as CONTEXTUAL_ASK_SCHEMA_VERSION, z as ContextualAskCapability, B as ContextualAskCapabilityRequest, D as ContextualAskExecutorCapability, E as ContextualAskExecutorKind, F as ContextualAskExecutorState, S as SpotAskTaskEnvelope, G as SpotChangeTaskEnvelope, H as SpotSelectionContext, I as SpotSelectionTarget, J as SpotTaskEnvelope } from './contextual-ask-B0mCFn92.js';
1
+ export { A as ASK_ANSWER_WARNING_CODES, a as ASK_EXECUTOR_ANSWER_WARNING_CODES, b as ASK_FILE_COUNT_BUCKETS, c as ASK_JOB_STATUSES, d as ASK_READ_ACTIVITY_STATES, e as ASK_SOURCE_CONFIDENCES, f as AskAnswerBlock, g as AskAnswerResult, h as AskAnswerWarning, i as AskAnswerWarningCode, j as AskDraftOrigin, k as AskExecutorAnswerWarningCode, l as AskFileCountBucket, m as AskJobActionRequest, n as AskJobCreateRequest, o as AskJobEvent, p as AskJobEventsRequest, q as AskJobResultResponse, r as AskJobSnapshot, s as AskJobStatus, t as AskReadActivityState, u as AskSourceConfidence, v as AskSourceReference, C as CONTEXTUAL_ASK_EXECUTOR_KINDS, w as CONTEXTUAL_ASK_EXECUTOR_STATES, x as CONTEXTUAL_ASK_LIMITS, y as CONTEXTUAL_ASK_SCHEMA_VERSION, z as ContextualAskCapability, B as ContextualAskCapabilityRequest, D as ContextualAskExecutorCapability, E as ContextualAskExecutorKind, F as ContextualAskExecutorState, S as SpotAskTaskEnvelope, G as SpotChangeTaskEnvelope, H as SpotSelectionContext, I as SpotSelectionTarget, J as SpotTaskEnvelope } from './contextual-ask-BpbkpFFf.js';
2
2
  export { A as AskJobAction, S as SPOTPATCH_ENDPOINTS, a as SPOTPATCH_TOKEN_HEADER, g as getAskJobEndpoint } from './endpoints-O3ohYyAo.js';
3
3
  import 'zod';
4
4
 
@@ -9,7 +9,7 @@ import {
9
9
  CONTEXTUAL_ASK_EXECUTOR_STATES,
10
10
  CONTEXTUAL_ASK_LIMITS,
11
11
  CONTEXTUAL_ASK_SCHEMA_VERSION
12
- } from "./chunk-DYTWEIES.js";
12
+ } from "./chunk-EWJTKNL4.js";
13
13
  import {
14
14
  SPOTPATCH_ENDPOINTS,
15
15
  SPOTPATCH_TOKEN_HEADER,
@@ -83,7 +83,7 @@ var sourceRefSchema = import_zod.z.strictObject({
83
83
  relativePath: boundedString(1024).optional(),
84
84
  line: import_zod.z.number().int().positive().optional(),
85
85
  column: import_zod.z.number().int().positive().optional(),
86
- origin: import_zod.z.enum(["jsx-host", "react-fiber", "dom-ancestor", "none"]),
86
+ origin: import_zod.z.enum(["jsx-host", "astro-host", "react-fiber", "dom-ancestor", "none"]),
87
87
  confidence: import_zod.z.enum(["exact", "probable", "approximate", "unknown"])
88
88
  });
89
89
  var matchedStyleRuleSchema = import_zod.z.strictObject({
@@ -94,7 +94,7 @@ var matchedStyleRuleSchema = import_zod.z.strictObject({
94
94
  });
95
95
  var codeContextSchema = import_zod.z.strictObject({
96
96
  relativePath: boundedString(1024),
97
- language: import_zod.z.enum(["tsx", "jsx"]),
97
+ language: import_zod.z.enum(["tsx", "jsx", "astro"]),
98
98
  startLine: import_zod.z.number().int().positive(),
99
99
  endLine: import_zod.z.number().int().positive(),
100
100
  excerpt: boundedString(16e3),
@@ -277,6 +277,7 @@ var CONTEXTUAL_ASK_LIMITS = Object.freeze({
277
277
  maximumLanguageCharacters: 64,
278
278
  maximumPhaseMessageCharacters: 1024,
279
279
  maximumExecutors: 32,
280
+ maximumModels: 800,
280
281
  contentHashHexCharacters: 64
281
282
  });
282
283
  var CONTEXTUAL_ASK_EXECUTOR_KINDS = Object.freeze([
@@ -647,6 +648,7 @@ var contextualAskExecutorCapabilitySchema = import_zod2.z.strictObject({
647
648
  label: contextualAskBoundedText(limits.maximumLabelCharacters),
648
649
  requestedModelLabel: contextualAskBoundedText(limits.maximumLabelCharacters),
649
650
  effectiveModelLabel: contextualAskBoundedText(limits.maximumLabelCharacters),
651
+ models: import_zod2.z.array(contextualAskBoundedText(limits.maximumLabelCharacters)).min(1).max(limits.maximumModels).refine((models) => new Set(models).size === models.length).optional(),
650
652
  state: import_zod2.z.enum(CONTEXTUAL_ASK_EXECUTOR_STATES),
651
653
  providerDataConsentRequired: import_zod2.z.boolean(),
652
654
  readOnlyProven: import_zod2.z.boolean(),
@@ -690,6 +692,7 @@ var askJobCreateRequestSchema = import_zod3.z.strictObject({
690
692
  requestId: contextualAskOpaqueIdSchema,
691
693
  envelope: spotAskTaskEnvelopeSchema,
692
694
  executorId: contextualAskOpaqueIdSchema,
695
+ model: contextualAskBoundedText(limits2.maximumLabelCharacters).optional(),
693
696
  providerDataConsent: import_zod3.z.literal(true)
694
697
  });
695
698
  var askJobActionRequestSchema = import_zod3.z.strictObject({});