@spotpatch/shared 1.12.0 → 1.13.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 (61) hide show
  1. package/dist/annotation-C0Me9mN2.d.cts +102 -0
  2. package/dist/annotation-C0Me9mN2.d.ts +102 -0
  3. package/dist/chunk-C2PJ4UUU.js +195 -0
  4. package/dist/chunk-C2PJ4UUU.js.map +1 -0
  5. package/dist/chunk-DYTWEIES.js +89 -0
  6. package/dist/chunk-DYTWEIES.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-IUTOVI5G.js +584 -0
  10. package/dist/chunk-IUTOVI5G.js.map +1 -0
  11. package/dist/{chunk-JU5HIWX7.js → chunk-YQ5GL523.js} +8 -173
  12. package/dist/chunk-YQ5GL523.js.map +1 -0
  13. package/dist/contextual-ask-B0mCFn92.d.cts +1451 -0
  14. package/dist/contextual-ask-B0mCFn92.d.ts +1451 -0
  15. package/dist/contextual-ask-browser.cjs +200 -0
  16. package/dist/contextual-ask-browser.cjs.map +1 -0
  17. package/dist/contextual-ask-browser.d.cts +31 -0
  18. package/dist/contextual-ask-browser.d.ts +31 -0
  19. package/dist/contextual-ask-browser.js +66 -0
  20. package/dist/contextual-ask-browser.js.map +1 -0
  21. package/dist/contextual-ask-node.cjs +968 -0
  22. package/dist/contextual-ask-node.cjs.map +1 -0
  23. package/dist/contextual-ask-node.d.cts +14 -0
  24. package/dist/contextual-ask-node.d.ts +14 -0
  25. package/dist/contextual-ask-node.js +122 -0
  26. package/dist/contextual-ask-node.js.map +1 -0
  27. package/dist/{data-flow-runtime-oq9m21IP.d.cts → data-flow-runtime-D8HPSb2i.d.cts} +13 -13
  28. package/dist/{data-flow-runtime-BelOgo8s.d.ts → data-flow-runtime-vKeEaJgT.d.ts} +13 -13
  29. package/dist/data-flow-runtime.cjs +2 -0
  30. package/dist/data-flow-runtime.cjs.map +1 -1
  31. package/dist/data-flow-runtime.d.cts +2 -2
  32. package/dist/data-flow-runtime.d.ts +2 -2
  33. package/dist/data-flow-runtime.js +1 -1
  34. package/dist/{endpoints-GedF44M2.d.cts → endpoints-O3ohYyAo.d.cts} +7 -1
  35. package/dist/{endpoints-GedF44M2.d.ts → endpoints-O3ohYyAo.d.ts} +7 -1
  36. package/dist/error-code-DRz2eqcB.d.cts +63 -0
  37. package/dist/error-code-DRz2eqcB.d.ts +63 -0
  38. package/dist/external-agent-node.cjs +142 -121
  39. package/dist/external-agent-node.cjs.map +1 -1
  40. package/dist/external-agent-node.d.cts +27 -26
  41. package/dist/external-agent-node.d.ts +27 -26
  42. package/dist/external-agent-node.js +4 -2
  43. package/dist/external-agent-node.js.map +1 -1
  44. package/dist/{external-handoff-BNUyMfNb.d.ts → external-handoff-DighrWn8.d.ts} +30 -130
  45. package/dist/{external-handoff-BNUyMfNb.d.cts → external-handoff-DwtFFR6F.d.cts} +30 -130
  46. package/dist/external-handoff-browser.cjs +2 -0
  47. package/dist/external-handoff-browser.cjs.map +1 -1
  48. package/dist/external-handoff-browser.d.cts +4 -3
  49. package/dist/external-handoff-browser.d.ts +4 -3
  50. package/dist/external-handoff-browser.js +1 -1
  51. package/dist/index.cjs +1144 -422
  52. package/dist/index.cjs.map +1 -1
  53. package/dist/index.d.cts +126 -178
  54. package/dist/index.d.ts +126 -178
  55. package/dist/index.js +97 -16
  56. package/dist/index.js.map +1 -1
  57. package/package.json +29 -2
  58. package/dist/chunk-JGOIBOFI.js.map +0 -1
  59. package/dist/chunk-JU5HIWX7.js.map +0 -1
  60. package/dist/{external-agent-control-BMoSq_xI.d.cts → external-agent-control-CRBbjDDk.d.cts} +46 -46
  61. package/dist/{external-agent-control-BMoSq_xI.d.ts → external-agent-control-CRBbjDDk.d.ts} +46 -46
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/contextual-ask-browser.ts
21
+ var contextual_ask_browser_exports = {};
22
+ __export(contextual_ask_browser_exports, {
23
+ ASK_ANSWER_WARNING_CODES: () => ASK_ANSWER_WARNING_CODES,
24
+ ASK_EXECUTOR_ANSWER_WARNING_CODES: () => ASK_EXECUTOR_ANSWER_WARNING_CODES,
25
+ ASK_FILE_COUNT_BUCKETS: () => ASK_FILE_COUNT_BUCKETS,
26
+ ASK_JOB_STATUSES: () => ASK_JOB_STATUSES,
27
+ ASK_READ_ACTIVITY_STATES: () => ASK_READ_ACTIVITY_STATES,
28
+ ASK_SOURCE_CONFIDENCES: () => ASK_SOURCE_CONFIDENCES,
29
+ CONTEXTUAL_ASK_EXECUTOR_KINDS: () => CONTEXTUAL_ASK_EXECUTOR_KINDS,
30
+ CONTEXTUAL_ASK_EXECUTOR_STATES: () => CONTEXTUAL_ASK_EXECUTOR_STATES,
31
+ CONTEXTUAL_ASK_LIMITS: () => CONTEXTUAL_ASK_LIMITS,
32
+ CONTEXTUAL_ASK_SCHEMA_VERSION: () => CONTEXTUAL_ASK_SCHEMA_VERSION,
33
+ ERROR_CODES: () => ERROR_CODES,
34
+ SPOTPATCH_ENDPOINTS: () => SPOTPATCH_ENDPOINTS,
35
+ SPOTPATCH_TOKEN_HEADER: () => SPOTPATCH_TOKEN_HEADER,
36
+ getAskJobEndpoint: () => getAskJobEndpoint,
37
+ isErrorCode: () => isErrorCode
38
+ });
39
+ module.exports = __toCommonJS(contextual_ask_browser_exports);
40
+
41
+ // src/protocol/contextual-ask-constants.ts
42
+ var CONTEXTUAL_ASK_SCHEMA_VERSION = 1;
43
+ var CONTEXTUAL_ASK_LIMITS = Object.freeze({
44
+ maximumTargets: 20,
45
+ maximumQuestionCharacters: 4e3,
46
+ maximumAnswerCharacters: 4e4,
47
+ maximumAnswerBlocks: 40,
48
+ maximumSources: 64,
49
+ maximumReadFiles: 32,
50
+ maximumReadBytesPerFile: 64 * 1024,
51
+ maximumReadBytesTotal: 512 * 1024,
52
+ maximumToolCalls: 48,
53
+ maximumModelTurns: 12,
54
+ jobTimeoutMs: 3e5,
55
+ resultTtlMs: 9e5,
56
+ maximumActiveJobsPerSession: 1,
57
+ maximumRetainedResultsPerSession: 1,
58
+ maximumRetainedEvents: 256,
59
+ maximumEventSubscribers: 4,
60
+ eventHeartbeatMs: 15e3,
61
+ maximumRequestBodyBytes: 256 * 1024,
62
+ maximumSearchQueryCharacters: 256,
63
+ maximumSearchResults: 64,
64
+ maximumSearchPreviewCharacters: 500,
65
+ capabilityTimeoutMs: 3e4,
66
+ maximumIdCharacters: 128,
67
+ maximumProfileIdCharacters: 64,
68
+ maximumLabelCharacters: 256,
69
+ maximumRelativePathCharacters: 1024,
70
+ maximumLanguageCharacters: 64,
71
+ maximumPhaseMessageCharacters: 1024,
72
+ maximumExecutors: 32,
73
+ contentHashHexCharacters: 64
74
+ });
75
+ var CONTEXTUAL_ASK_EXECUTOR_KINDS = Object.freeze([
76
+ "configured-key",
77
+ "managed-codex"
78
+ ]);
79
+ var CONTEXTUAL_ASK_EXECUTOR_STATES = Object.freeze([
80
+ "ready",
81
+ "degraded",
82
+ "unavailable"
83
+ ]);
84
+ var ASK_JOB_STATUSES = Object.freeze([
85
+ "queued",
86
+ "authorizing",
87
+ "running",
88
+ "cancelling",
89
+ "answered",
90
+ "cancelled",
91
+ "failed"
92
+ ]);
93
+ var ASK_ANSWER_WARNING_CODES = Object.freeze([
94
+ "insufficient-evidence",
95
+ "partial-context",
96
+ "source-truncated",
97
+ "source-stale"
98
+ ]);
99
+ var ASK_EXECUTOR_ANSWER_WARNING_CODES = Object.freeze([
100
+ "insufficient-evidence",
101
+ "partial-context"
102
+ ]);
103
+ var ASK_READ_ACTIVITY_STATES = Object.freeze([
104
+ "started",
105
+ "succeeded",
106
+ "failed"
107
+ ]);
108
+ var ASK_FILE_COUNT_BUCKETS = Object.freeze(["one", "few", "many"]);
109
+ var ASK_SOURCE_CONFIDENCES = Object.freeze([
110
+ "exact",
111
+ "probable",
112
+ "approximate"
113
+ ]);
114
+
115
+ // src/protocol/endpoints.ts
116
+ var SPOTPATCH_API_BASE = "/__spotpatch/v1";
117
+ var SPOTPATCH_TOKEN_HEADER = "X-SpotPatch-Token";
118
+ var SPOTPATCH_ENDPOINTS = Object.freeze({
119
+ bootstrap: `${SPOTPATCH_API_BASE}/bootstrap`,
120
+ sourceContext: `${SPOTPATCH_API_BASE}/source-context`,
121
+ openEditor: `${SPOTPATCH_API_BASE}/open-editor`,
122
+ dataFlowComponentReport: `${SPOTPATCH_API_BASE}/data-flow/component-report`,
123
+ dataFlowPageReport: `${SPOTPATCH_API_BASE}/data-flow/page-report`,
124
+ agentCapability: `${SPOTPATCH_API_BASE}/agent/capability`,
125
+ agentWorkspaceHealth: `${SPOTPATCH_API_BASE}/agent/workspace-health`,
126
+ agentJobs: `${SPOTPATCH_API_BASE}/agent/jobs`,
127
+ askCapability: `${SPOTPATCH_API_BASE}/ask/capability`,
128
+ askJobs: `${SPOTPATCH_API_BASE}/ask/jobs`,
129
+ externalHandoffCapability: `${SPOTPATCH_API_BASE}/external-handoff/capability`,
130
+ externalHandoffPublish: `${SPOTPATCH_API_BASE}/external-handoff/publish`,
131
+ externalHandoffStatus: `${SPOTPATCH_API_BASE}/external-handoff/status`,
132
+ externalHandoffResolveDelivery: `${SPOTPATCH_API_BASE}/external-handoff/resolve-delivery`,
133
+ externalAgentControlStatus: `${SPOTPATCH_API_BASE}/external-agent/control/status`,
134
+ externalAgentControlConnect: `${SPOTPATCH_API_BASE}/external-agent/control/connect`,
135
+ externalAgentControlDisconnect: `${SPOTPATCH_API_BASE}/external-agent/control/disconnect`,
136
+ externalAgentControlCancel: `${SPOTPATCH_API_BASE}/external-agent/control/cancel`,
137
+ externalAgentEvents: `${SPOTPATCH_API_BASE}/external-agent/events`,
138
+ externalAgentResult: `${SPOTPATCH_API_BASE}/external-agent/result`
139
+ });
140
+ function getAskJobEndpoint(jobId, action, options = {}) {
141
+ const endpoint = `${SPOTPATCH_ENDPOINTS.askJobs}/${encodeURIComponent(jobId)}/${action}`;
142
+ if (action !== "events" && options.afterSequence !== void 0) {
143
+ throw new RangeError("afterSequence is only valid for the events endpoint.");
144
+ }
145
+ if (options.afterSequence === void 0) return endpoint;
146
+ if (!Number.isSafeInteger(options.afterSequence) || options.afterSequence < 0) {
147
+ throw new RangeError("afterSequence must be a non-negative safe integer.");
148
+ }
149
+ return `${endpoint}?afterSequence=${String(options.afterSequence)}`;
150
+ }
151
+
152
+ // src/contextual-ask-browser.ts
153
+ var CONTEXTUAL_ASK_ERRORS = {
154
+ ASK_DISABLED: "ASK_DISABLED",
155
+ ASK_SELECTION_REQUIRED: "ASK_SELECTION_REQUIRED",
156
+ ASK_SELECTION_STALE: "ASK_SELECTION_STALE",
157
+ ASK_QUESTION_INVALID: "ASK_QUESTION_INVALID",
158
+ ASK_EXECUTOR_UNAVAILABLE: "ASK_EXECUTOR_UNAVAILABLE",
159
+ ASK_TIMEOUT: "ASK_TIMEOUT",
160
+ ASK_CONSENT_REQUIRED: "ASK_CONSENT_REQUIRED",
161
+ ASK_BUSY: "ASK_BUSY",
162
+ ASK_IDEMPOTENCY_CONFLICT: "ASK_IDEMPOTENCY_CONFLICT",
163
+ ASK_SOURCE_SCOPE_DENIED: "ASK_SOURCE_SCOPE_DENIED",
164
+ ASK_LIMIT_EXCEEDED: "ASK_LIMIT_EXCEEDED",
165
+ ASK_ANSWER_INVALID: "ASK_ANSWER_INVALID",
166
+ ASK_WRITE_ATTEMPTED: "ASK_WRITE_ATTEMPTED",
167
+ ASK_CANCELLED: "ASK_CANCELLED",
168
+ ASK_RESULT_EXPIRED: "ASK_RESULT_EXPIRED",
169
+ ASK_PROTOCOL_INCOMPATIBLE: "ASK_PROTOCOL_INCOMPATIBLE"
170
+ };
171
+ var ERROR_CODES = Object.freeze({
172
+ INVALID_REQUEST: "INVALID_REQUEST",
173
+ INVALID_TOKEN: "INVALID_TOKEN",
174
+ ORIGIN_NOT_ALLOWED: "ORIGIN_NOT_ALLOWED",
175
+ ...CONTEXTUAL_ASK_ERRORS,
176
+ INTERNAL_ERROR: "INTERNAL_ERROR"
177
+ });
178
+ var ERROR_CODE_VALUES = Object.values(ERROR_CODES);
179
+ function isErrorCode(value) {
180
+ return typeof value === "string" && ERROR_CODE_VALUES.includes(value);
181
+ }
182
+ // Annotate the CommonJS export names for ESM import in node:
183
+ 0 && (module.exports = {
184
+ ASK_ANSWER_WARNING_CODES,
185
+ ASK_EXECUTOR_ANSWER_WARNING_CODES,
186
+ ASK_FILE_COUNT_BUCKETS,
187
+ ASK_JOB_STATUSES,
188
+ ASK_READ_ACTIVITY_STATES,
189
+ ASK_SOURCE_CONFIDENCES,
190
+ CONTEXTUAL_ASK_EXECUTOR_KINDS,
191
+ CONTEXTUAL_ASK_EXECUTOR_STATES,
192
+ CONTEXTUAL_ASK_LIMITS,
193
+ CONTEXTUAL_ASK_SCHEMA_VERSION,
194
+ ERROR_CODES,
195
+ SPOTPATCH_ENDPOINTS,
196
+ SPOTPATCH_TOKEN_HEADER,
197
+ getAskJobEndpoint,
198
+ isErrorCode
199
+ });
200
+ //# sourceMappingURL=contextual-ask-browser.cjs.map
@@ -0,0 +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":[]}
@@ -0,0 +1,31 @@
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';
2
+ export { A as AskJobAction, S as SPOTPATCH_ENDPOINTS, a as SPOTPATCH_TOKEN_HEADER, g as getAskJobEndpoint } from './endpoints-O3ohYyAo.cjs';
3
+ import 'zod';
4
+
5
+ /** Browser-reachable Ask errors only; no provider details or Node failures. */
6
+ declare const ERROR_CODES: Readonly<{
7
+ readonly INTERNAL_ERROR: "INTERNAL_ERROR";
8
+ readonly ASK_DISABLED: "ASK_DISABLED";
9
+ readonly ASK_SELECTION_REQUIRED: "ASK_SELECTION_REQUIRED";
10
+ readonly ASK_SELECTION_STALE: "ASK_SELECTION_STALE";
11
+ readonly ASK_QUESTION_INVALID: "ASK_QUESTION_INVALID";
12
+ readonly ASK_EXECUTOR_UNAVAILABLE: "ASK_EXECUTOR_UNAVAILABLE";
13
+ readonly ASK_TIMEOUT: "ASK_TIMEOUT";
14
+ readonly ASK_CONSENT_REQUIRED: "ASK_CONSENT_REQUIRED";
15
+ readonly ASK_BUSY: "ASK_BUSY";
16
+ readonly ASK_IDEMPOTENCY_CONFLICT: "ASK_IDEMPOTENCY_CONFLICT";
17
+ readonly ASK_SOURCE_SCOPE_DENIED: "ASK_SOURCE_SCOPE_DENIED";
18
+ readonly ASK_LIMIT_EXCEEDED: "ASK_LIMIT_EXCEEDED";
19
+ readonly ASK_ANSWER_INVALID: "ASK_ANSWER_INVALID";
20
+ readonly ASK_WRITE_ATTEMPTED: "ASK_WRITE_ATTEMPTED";
21
+ readonly ASK_CANCELLED: "ASK_CANCELLED";
22
+ readonly ASK_RESULT_EXPIRED: "ASK_RESULT_EXPIRED";
23
+ readonly ASK_PROTOCOL_INCOMPATIBLE: "ASK_PROTOCOL_INCOMPATIBLE";
24
+ readonly INVALID_REQUEST: "INVALID_REQUEST";
25
+ readonly INVALID_TOKEN: "INVALID_TOKEN";
26
+ readonly ORIGIN_NOT_ALLOWED: "ORIGIN_NOT_ALLOWED";
27
+ }>;
28
+ type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];
29
+ declare function isErrorCode(value: unknown): value is ErrorCode;
30
+
31
+ export { ERROR_CODES, type ErrorCode, isErrorCode };
@@ -0,0 +1,31 @@
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';
2
+ export { A as AskJobAction, S as SPOTPATCH_ENDPOINTS, a as SPOTPATCH_TOKEN_HEADER, g as getAskJobEndpoint } from './endpoints-O3ohYyAo.js';
3
+ import 'zod';
4
+
5
+ /** Browser-reachable Ask errors only; no provider details or Node failures. */
6
+ declare const ERROR_CODES: Readonly<{
7
+ readonly INTERNAL_ERROR: "INTERNAL_ERROR";
8
+ readonly ASK_DISABLED: "ASK_DISABLED";
9
+ readonly ASK_SELECTION_REQUIRED: "ASK_SELECTION_REQUIRED";
10
+ readonly ASK_SELECTION_STALE: "ASK_SELECTION_STALE";
11
+ readonly ASK_QUESTION_INVALID: "ASK_QUESTION_INVALID";
12
+ readonly ASK_EXECUTOR_UNAVAILABLE: "ASK_EXECUTOR_UNAVAILABLE";
13
+ readonly ASK_TIMEOUT: "ASK_TIMEOUT";
14
+ readonly ASK_CONSENT_REQUIRED: "ASK_CONSENT_REQUIRED";
15
+ readonly ASK_BUSY: "ASK_BUSY";
16
+ readonly ASK_IDEMPOTENCY_CONFLICT: "ASK_IDEMPOTENCY_CONFLICT";
17
+ readonly ASK_SOURCE_SCOPE_DENIED: "ASK_SOURCE_SCOPE_DENIED";
18
+ readonly ASK_LIMIT_EXCEEDED: "ASK_LIMIT_EXCEEDED";
19
+ readonly ASK_ANSWER_INVALID: "ASK_ANSWER_INVALID";
20
+ readonly ASK_WRITE_ATTEMPTED: "ASK_WRITE_ATTEMPTED";
21
+ readonly ASK_CANCELLED: "ASK_CANCELLED";
22
+ readonly ASK_RESULT_EXPIRED: "ASK_RESULT_EXPIRED";
23
+ readonly ASK_PROTOCOL_INCOMPATIBLE: "ASK_PROTOCOL_INCOMPATIBLE";
24
+ readonly INVALID_REQUEST: "INVALID_REQUEST";
25
+ readonly INVALID_TOKEN: "INVALID_TOKEN";
26
+ readonly ORIGIN_NOT_ALLOWED: "ORIGIN_NOT_ALLOWED";
27
+ }>;
28
+ type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];
29
+ declare function isErrorCode(value: unknown): value is ErrorCode;
30
+
31
+ export { ERROR_CODES, type ErrorCode, isErrorCode };
@@ -0,0 +1,66 @@
1
+ import {
2
+ ASK_ANSWER_WARNING_CODES,
3
+ ASK_EXECUTOR_ANSWER_WARNING_CODES,
4
+ ASK_FILE_COUNT_BUCKETS,
5
+ ASK_JOB_STATUSES,
6
+ ASK_READ_ACTIVITY_STATES,
7
+ ASK_SOURCE_CONFIDENCES,
8
+ CONTEXTUAL_ASK_EXECUTOR_KINDS,
9
+ CONTEXTUAL_ASK_EXECUTOR_STATES,
10
+ CONTEXTUAL_ASK_LIMITS,
11
+ CONTEXTUAL_ASK_SCHEMA_VERSION
12
+ } from "./chunk-DYTWEIES.js";
13
+ import {
14
+ SPOTPATCH_ENDPOINTS,
15
+ SPOTPATCH_TOKEN_HEADER,
16
+ getAskJobEndpoint
17
+ } from "./chunk-FPDSZDP2.js";
18
+
19
+ // src/contextual-ask-browser.ts
20
+ var CONTEXTUAL_ASK_ERRORS = {
21
+ ASK_DISABLED: "ASK_DISABLED",
22
+ ASK_SELECTION_REQUIRED: "ASK_SELECTION_REQUIRED",
23
+ ASK_SELECTION_STALE: "ASK_SELECTION_STALE",
24
+ ASK_QUESTION_INVALID: "ASK_QUESTION_INVALID",
25
+ ASK_EXECUTOR_UNAVAILABLE: "ASK_EXECUTOR_UNAVAILABLE",
26
+ ASK_TIMEOUT: "ASK_TIMEOUT",
27
+ ASK_CONSENT_REQUIRED: "ASK_CONSENT_REQUIRED",
28
+ ASK_BUSY: "ASK_BUSY",
29
+ ASK_IDEMPOTENCY_CONFLICT: "ASK_IDEMPOTENCY_CONFLICT",
30
+ ASK_SOURCE_SCOPE_DENIED: "ASK_SOURCE_SCOPE_DENIED",
31
+ ASK_LIMIT_EXCEEDED: "ASK_LIMIT_EXCEEDED",
32
+ ASK_ANSWER_INVALID: "ASK_ANSWER_INVALID",
33
+ ASK_WRITE_ATTEMPTED: "ASK_WRITE_ATTEMPTED",
34
+ ASK_CANCELLED: "ASK_CANCELLED",
35
+ ASK_RESULT_EXPIRED: "ASK_RESULT_EXPIRED",
36
+ ASK_PROTOCOL_INCOMPATIBLE: "ASK_PROTOCOL_INCOMPATIBLE"
37
+ };
38
+ var ERROR_CODES = Object.freeze({
39
+ INVALID_REQUEST: "INVALID_REQUEST",
40
+ INVALID_TOKEN: "INVALID_TOKEN",
41
+ ORIGIN_NOT_ALLOWED: "ORIGIN_NOT_ALLOWED",
42
+ ...CONTEXTUAL_ASK_ERRORS,
43
+ INTERNAL_ERROR: "INTERNAL_ERROR"
44
+ });
45
+ var ERROR_CODE_VALUES = Object.values(ERROR_CODES);
46
+ function isErrorCode(value) {
47
+ return typeof value === "string" && ERROR_CODE_VALUES.includes(value);
48
+ }
49
+ export {
50
+ ASK_ANSWER_WARNING_CODES,
51
+ ASK_EXECUTOR_ANSWER_WARNING_CODES,
52
+ ASK_FILE_COUNT_BUCKETS,
53
+ ASK_JOB_STATUSES,
54
+ ASK_READ_ACTIVITY_STATES,
55
+ ASK_SOURCE_CONFIDENCES,
56
+ CONTEXTUAL_ASK_EXECUTOR_KINDS,
57
+ CONTEXTUAL_ASK_EXECUTOR_STATES,
58
+ CONTEXTUAL_ASK_LIMITS,
59
+ CONTEXTUAL_ASK_SCHEMA_VERSION,
60
+ ERROR_CODES,
61
+ SPOTPATCH_ENDPOINTS,
62
+ SPOTPATCH_TOKEN_HEADER,
63
+ getAskJobEndpoint,
64
+ isErrorCode
65
+ };
66
+ //# sourceMappingURL=contextual-ask-browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/contextual-ask-browser.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"],"mappings":";;;;;;;;;;;;;;;;;;;AAGA,IAAM,wBAAwB;AAAA,EAC5B,cAAc;AAAA,EACd,wBAAwB;AAAA,EACxB,qBAAqB;AAAA,EACrB,sBAAsB;AAAA,EACtB,0BAA0B;AAAA,EAC1B,aAAa;AAAA,EACb,sBAAsB;AAAA,EACtB,UAAU;AAAA,EACV,0BAA0B;AAAA,EAC1B,yBAAyB;AAAA,EACzB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,2BAA2B;AAC7B;AAGO,IAAM,cAAc,OAAO,OAAO;AAAA,EACvC,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,GAAG;AAAA,EACH,gBAAgB;AAClB,CAGC;AAED,IAAM,oBAAuC,OAAO,OAAO,WAAW;AAE/D,SAAS,YAAY,OAAoC;AAC9D,SAAO,OAAO,UAAU,YAAY,kBAAkB,SAAS,KAAK;AACtE;","names":[]}