@spotpatch/shared 1.11.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 (64) hide show
  1. package/dist/annotation-C0Me9mN2.d.cts +102 -0
  2. package/dist/annotation-C0Me9mN2.d.ts +102 -0
  3. package/dist/{chunk-RK46Y7LD.js → chunk-5CHYMRNS.js} +3 -2
  4. package/dist/chunk-5CHYMRNS.js.map +1 -0
  5. package/dist/chunk-C2PJ4UUU.js +195 -0
  6. package/dist/chunk-C2PJ4UUU.js.map +1 -0
  7. package/dist/chunk-DYTWEIES.js +89 -0
  8. package/dist/chunk-DYTWEIES.js.map +1 -0
  9. package/dist/{chunk-JGOIBOFI.js → chunk-FPDSZDP2.js} +16 -2
  10. package/dist/chunk-FPDSZDP2.js.map +1 -0
  11. package/dist/chunk-IUTOVI5G.js +584 -0
  12. package/dist/chunk-IUTOVI5G.js.map +1 -0
  13. package/dist/{chunk-JU5HIWX7.js → chunk-YQ5GL523.js} +8 -173
  14. package/dist/chunk-YQ5GL523.js.map +1 -0
  15. package/dist/contextual-ask-B0mCFn92.d.cts +1451 -0
  16. package/dist/contextual-ask-B0mCFn92.d.ts +1451 -0
  17. package/dist/contextual-ask-browser.cjs +200 -0
  18. package/dist/contextual-ask-browser.cjs.map +1 -0
  19. package/dist/contextual-ask-browser.d.cts +31 -0
  20. package/dist/contextual-ask-browser.d.ts +31 -0
  21. package/dist/contextual-ask-browser.js +66 -0
  22. package/dist/contextual-ask-browser.js.map +1 -0
  23. package/dist/contextual-ask-node.cjs +968 -0
  24. package/dist/contextual-ask-node.cjs.map +1 -0
  25. package/dist/contextual-ask-node.d.cts +14 -0
  26. package/dist/contextual-ask-node.d.ts +14 -0
  27. package/dist/contextual-ask-node.js +122 -0
  28. package/dist/contextual-ask-node.js.map +1 -0
  29. package/dist/{data-flow-runtime-oKZOBYAB.d.ts → data-flow-runtime-D8HPSb2i.d.cts} +14 -13
  30. package/dist/{data-flow-runtime-BiouPr1G.d.cts → data-flow-runtime-vKeEaJgT.d.ts} +14 -13
  31. package/dist/data-flow-runtime.cjs +4 -1
  32. package/dist/data-flow-runtime.cjs.map +1 -1
  33. package/dist/data-flow-runtime.d.cts +2 -2
  34. package/dist/data-flow-runtime.d.ts +2 -2
  35. package/dist/data-flow-runtime.js +2 -2
  36. package/dist/{endpoints-GedF44M2.d.cts → endpoints-O3ohYyAo.d.cts} +7 -1
  37. package/dist/{endpoints-GedF44M2.d.ts → endpoints-O3ohYyAo.d.ts} +7 -1
  38. package/dist/error-code-DRz2eqcB.d.cts +63 -0
  39. package/dist/error-code-DRz2eqcB.d.ts +63 -0
  40. package/dist/external-agent-node.cjs +142 -121
  41. package/dist/external-agent-node.cjs.map +1 -1
  42. package/dist/external-agent-node.d.cts +28 -27
  43. package/dist/external-agent-node.d.ts +28 -27
  44. package/dist/external-agent-node.js +4 -2
  45. package/dist/external-agent-node.js.map +1 -1
  46. package/dist/{external-handoff--lT9XQEw.d.ts → external-handoff-DighrWn8.d.ts} +33 -133
  47. package/dist/{external-handoff--lT9XQEw.d.cts → external-handoff-DwtFFR6F.d.cts} +33 -133
  48. package/dist/external-handoff-browser.cjs +2 -0
  49. package/dist/external-handoff-browser.cjs.map +1 -1
  50. package/dist/external-handoff-browser.d.cts +4 -3
  51. package/dist/external-handoff-browser.d.ts +4 -3
  52. package/dist/external-handoff-browser.js +1 -1
  53. package/dist/index.cjs +1146 -423
  54. package/dist/index.cjs.map +1 -1
  55. package/dist/index.d.cts +106 -158
  56. package/dist/index.d.ts +106 -158
  57. package/dist/index.js +98 -17
  58. package/dist/index.js.map +1 -1
  59. package/package.json +29 -2
  60. package/dist/chunk-JGOIBOFI.js.map +0 -1
  61. package/dist/chunk-JU5HIWX7.js.map +0 -1
  62. package/dist/chunk-RK46Y7LD.js.map +0 -1
  63. package/dist/{external-agent-control-BB-oicmw.d.cts → external-agent-control-CRBbjDDk.d.cts} +31 -31
  64. package/dist/{external-agent-control-BB-oicmw.d.ts → external-agent-control-CRBbjDDk.d.ts} +31 -31
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/external-agent-node.ts"],"sourcesContent":["/// <reference types=\"node\" />\n\nimport { createHash } from \"node:crypto\";\nimport { lstat, mkdir, realpath } from \"node:fs/promises\";\nimport os from \"node:os\";\nimport path from \"node:path\";\n\nimport { z } from \"zod\";\n\nimport {\n EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS,\n EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION,\n EXTERNAL_HANDOFF_FRAMEWORKS,\n EXTERNAL_HANDOFF_LIMITS,\n activeAdapterSummarySchema,\n dispatchSummarySchema,\n externalHandoffReportableDispatchPhaseSchema,\n externalHandoffSnapshotSchema,\n externalHandoffSummarySchema,\n type ActiveAdapterSummary,\n type DispatchSummary,\n type ExternalHandoffSnapshot,\n} from \"./protocol/external-handoff.js\";\nimport { ERROR_CODES } from \"./errors/error-code.js\";\nimport { SpotPatchError } from \"./errors/spotpatch-error.js\";\n\nexport const SPOTPATCH_BRIDGE_TOKEN_HEADER = \"X-SpotPatch-Bridge-Token\" as const;\nexport const SPOTPATCH_BRIDGE_PATHS = Object.freeze({\n status: \"/bridge/v1/status\",\n current: \"/bridge/v1/handoff/current\",\n wait: \"/bridge/v1/handoff/wait\",\n ack: \"/bridge/v1/handoff/ack\",\n activeClaim: \"/bridge/v1/active/claim\",\n activeHeartbeat: \"/bridge/v1/active/heartbeat\",\n activeReport: \"/bridge/v1/active/report\",\n activeRelease: \"/bridge/v1/active/release\",\n});\nexport const EXTERNAL_HANDOFF_PROJECT_KEY_SALT =\n \"spotpatch-external-agent-project-v1\" as const;\n\nconst opaqueIdSchema = z\n .string()\n .min(22)\n .max(128)\n .regex(/^[A-Za-z0-9_-]+$/u);\nconst projectKeySchema = z\n .string()\n .length(64)\n .regex(/^[a-f0-9]+$/u);\nconst loopbackEndpointSchema = z.url().refine((value) => {\n const match = /^http:\\/\\/127\\.0\\.0\\.1:([1-9][0-9]{0,4})$/u.exec(value);\n\n if (match?.[1] === undefined) {\n return false;\n }\n\n const port = Number(match[1]);\n return Number.isSafeInteger(port) && port <= 65_535;\n});\n\nexport const externalHandoffDescriptorSchema = z.strictObject({\n schemaVersion: z.literal(1),\n brokerProtocolVersion: z.literal(EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION),\n projectKey: projectKeySchema,\n sessionId: opaqueIdSchema,\n framework: z.enum(EXTERNAL_HANDOFF_FRAMEWORKS),\n endpoint: loopbackEndpointSchema,\n bridgeToken: z\n .string()\n .min(43)\n .max(128)\n .regex(/^[A-Za-z0-9_-]+$/u),\n pid: z.number().int().positive(),\n createdAt: z.iso.datetime(),\n});\n\nexport const bridgeStatusRequestSchema = z.strictObject({});\nexport const bridgeCurrentRequestSchema = z.strictObject({\n cursor: opaqueIdSchema.optional(),\n});\nexport const bridgeWaitRequestSchema = z.strictObject({\n afterCursor: opaqueIdSchema.optional(),\n timeoutMs: z\n .number()\n .int()\n .positive()\n .max(EXTERNAL_HANDOFF_LIMITS.maximumWaitMs)\n .default(EXTERNAL_HANDOFF_LIMITS.defaultWaitMs),\n});\nexport const bridgeAckRequestSchema = z.strictObject({\n cursor: opaqueIdSchema,\n connectorInstanceId: opaqueIdSchema,\n});\nexport const bridgeActiveClaimRequestSchema = z.strictObject({\n adapterKind: z.enum(EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS),\n connectorInstanceId: opaqueIdSchema,\n});\nexport const bridgeActiveHeartbeatRequestSchema = z.strictObject({\n leaseToken: opaqueIdSchema,\n});\nexport const bridgeActiveReportRequestSchema = z.strictObject({\n leaseToken: opaqueIdSchema,\n cursor: opaqueIdSchema,\n phase: externalHandoffReportableDispatchPhaseSchema,\n});\nexport const bridgeActiveReleaseRequestSchema = z.strictObject({\n leaseToken: opaqueIdSchema,\n});\nexport const bridgeStatusSchema = z.strictObject({\n brokerProtocolVersion: z.literal(EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION),\n projectKey: projectKeySchema,\n sessionId: opaqueIdSchema,\n framework: z.enum(EXTERNAL_HANDOFF_FRAMEWORKS),\n current: externalHandoffSummarySchema.nullable(),\n});\nexport const bridgeCurrentResultSchema = z.strictObject({\n outcome: z.literal(\"handoff\"),\n snapshot: externalHandoffSnapshotSchema,\n});\nexport const bridgeWaitResultSchema = z.discriminatedUnion(\"outcome\", [\n bridgeCurrentResultSchema,\n z.strictObject({ outcome: z.literal(\"timeout\") }),\n]);\nexport const bridgeAckResultSchema = z.strictObject({\n summary: externalHandoffSummarySchema,\n});\nexport const bridgeActiveClaimResultSchema = z.strictObject({\n leaseToken: opaqueIdSchema,\n heartbeatIntervalMs: z.literal(EXTERNAL_HANDOFF_LIMITS.activeHeartbeatIntervalMs),\n baselineCursor: opaqueIdSchema.nullable(),\n activeAdapter: activeAdapterSummarySchema,\n});\nexport const bridgeActiveStateResultSchema = z.strictObject({\n activeAdapter: activeAdapterSummarySchema.nullable(),\n dispatch: dispatchSummarySchema.nullable(),\n});\nexport const bridgeActiveHeartbeatResultSchema = bridgeActiveStateResultSchema;\nexport const bridgeActiveReportResultSchema = bridgeActiveStateResultSchema;\nexport const bridgeActiveReleaseResultSchema = bridgeActiveStateResultSchema;\n\nexport type ExternalHandoffDescriptor = z.infer<typeof externalHandoffDescriptorSchema>;\nexport type BridgeStatus = z.infer<typeof bridgeStatusSchema>;\nexport type BridgeWaitResult =\n | Readonly<{ outcome: \"handoff\"; snapshot: ExternalHandoffSnapshot }>\n | Readonly<{ outcome: \"timeout\" }>;\nexport interface BridgeActiveClaimResult {\n readonly leaseToken: string;\n readonly heartbeatIntervalMs: typeof EXTERNAL_HANDOFF_LIMITS.activeHeartbeatIntervalMs;\n readonly baselineCursor: string | null;\n readonly activeAdapter: ActiveAdapterSummary;\n}\nexport interface BridgeActiveStateResult {\n readonly activeAdapter: ActiveAdapterSummary | null;\n readonly dispatch: DispatchSummary | null;\n}\n\nfunction currentUid(): number {\n const uid = process.getuid?.();\n\n if (uid === undefined) {\n throw new SpotPatchError(ERROR_CODES.BRIDGE_UNAUTHORIZED);\n }\n\n return uid;\n}\n\nasync function assertPrivateDirectory(directory: string, uid: number): Promise<void> {\n const status = await lstat(directory);\n\n if (\n !status.isDirectory() ||\n status.isSymbolicLink() ||\n status.uid !== uid ||\n (status.mode & 0o077) !== 0\n ) {\n throw new SpotPatchError(ERROR_CODES.BRIDGE_UNAUTHORIZED);\n }\n}\n\nasync function ensurePrivateSubdirectory(\n base: string,\n uid: number,\n create: boolean,\n): Promise<string> {\n const directory = path.join(base, \"spotpatch\");\n\n if (create) {\n try {\n await mkdir(directory, { mode: 0o700 });\n } catch (error: unknown) {\n if ((error as NodeJS.ErrnoException).code !== \"EEXIST\") {\n throw error;\n }\n }\n }\n\n await assertPrivateDirectory(directory, uid);\n return directory;\n}\n\nexport async function resolveExternalHandoffRuntimeDirectory(\n create: boolean,\n): Promise<string> {\n if (process.platform === \"win32\") {\n throw new SpotPatchError(ERROR_CODES.BRIDGE_UNAUTHORIZED);\n }\n\n const uid = currentUid();\n const xdgRuntimeDirectory = process.env.XDG_RUNTIME_DIR;\n\n if (xdgRuntimeDirectory !== undefined && !path.isAbsolute(xdgRuntimeDirectory)) {\n throw new SpotPatchError(ERROR_CODES.BRIDGE_UNAUTHORIZED);\n }\n\n if (xdgRuntimeDirectory !== undefined) {\n try {\n await assertPrivateDirectory(xdgRuntimeDirectory, uid);\n return await ensurePrivateSubdirectory(xdgRuntimeDirectory, uid, create);\n } catch (error: unknown) {\n if (!create && (error as NodeJS.ErrnoException).code === \"ENOENT\") {\n throw new SpotPatchError(ERROR_CODES.SESSION_NOT_FOUND);\n }\n\n throw error;\n }\n }\n\n const fallback = path.join(os.tmpdir(), `spotpatch-${String(uid)}`);\n\n if (create) {\n try {\n await mkdir(fallback, { mode: 0o700 });\n } catch (error: unknown) {\n if ((error as NodeJS.ErrnoException).code !== \"EEXIST\") {\n throw error;\n }\n }\n }\n\n try {\n await assertPrivateDirectory(fallback, uid);\n } catch (error: unknown) {\n if (!create && (error as NodeJS.ErrnoException).code === \"ENOENT\") {\n throw new SpotPatchError(ERROR_CODES.SESSION_NOT_FOUND);\n }\n\n throw error;\n }\n\n return fallback;\n}\n\nexport async function computeExternalHandoffProjectKey(root: string): Promise<string> {\n const canonicalRoot = await realpath(root);\n return createHash(\"sha256\")\n .update(`${EXTERNAL_HANDOFF_PROJECT_KEY_SALT}\\0${canonicalRoot}`)\n .digest(\"hex\");\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/external-agent-node.ts"],"sourcesContent":["/// <reference types=\"node\" />\n\nimport { createHash } from \"node:crypto\";\nimport { lstat, mkdir, realpath } from \"node:fs/promises\";\nimport os from \"node:os\";\nimport path from \"node:path\";\n\nimport { z } from \"zod\";\n\nimport {\n EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS,\n EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION,\n EXTERNAL_HANDOFF_FRAMEWORKS,\n EXTERNAL_HANDOFF_LIMITS,\n activeAdapterSummarySchema,\n dispatchSummarySchema,\n externalHandoffReportableDispatchPhaseSchema,\n externalHandoffSnapshotSchema,\n externalHandoffSummarySchema,\n type ActiveAdapterSummary,\n type DispatchSummary,\n type ExternalHandoffSnapshot,\n} from \"./protocol/external-handoff.js\";\nimport { ERROR_CODES } from \"./errors/error-code.js\";\nimport { SpotPatchError } from \"./errors/spotpatch-error.js\";\n\nexport const SPOTPATCH_BRIDGE_TOKEN_HEADER = \"X-SpotPatch-Bridge-Token\" as const;\nexport const SPOTPATCH_BRIDGE_PATHS = Object.freeze({\n status: \"/bridge/v1/status\",\n current: \"/bridge/v1/handoff/current\",\n wait: \"/bridge/v1/handoff/wait\",\n ack: \"/bridge/v1/handoff/ack\",\n activeClaim: \"/bridge/v1/active/claim\",\n activeHeartbeat: \"/bridge/v1/active/heartbeat\",\n activeReport: \"/bridge/v1/active/report\",\n activeRelease: \"/bridge/v1/active/release\",\n});\nexport const EXTERNAL_HANDOFF_PROJECT_KEY_SALT =\n \"spotpatch-external-agent-project-v1\" as const;\n\nconst opaqueIdSchema = z\n .string()\n .min(22)\n .max(128)\n .regex(/^[A-Za-z0-9_-]+$/u);\nconst projectKeySchema = z\n .string()\n .length(64)\n .regex(/^[a-f0-9]+$/u);\nconst loopbackEndpointSchema = z.url().refine((value) => {\n const match = /^http:\\/\\/127\\.0\\.0\\.1:([1-9][0-9]{0,4})$/u.exec(value);\n\n if (match?.[1] === undefined) {\n return false;\n }\n\n const port = Number(match[1]);\n return Number.isSafeInteger(port) && port <= 65_535;\n});\n\nexport const externalHandoffDescriptorSchema = z.strictObject({\n schemaVersion: z.literal(1),\n brokerProtocolVersion: z.literal(EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION),\n projectKey: projectKeySchema,\n sessionId: opaqueIdSchema,\n framework: z.enum(EXTERNAL_HANDOFF_FRAMEWORKS),\n endpoint: loopbackEndpointSchema,\n bridgeToken: z\n .string()\n .min(43)\n .max(128)\n .regex(/^[A-Za-z0-9_-]+$/u),\n pid: z.number().int().positive(),\n createdAt: z.iso.datetime(),\n});\n\nexport const bridgeStatusRequestSchema = z.strictObject({});\nexport const bridgeCurrentRequestSchema = z.strictObject({\n cursor: opaqueIdSchema.optional(),\n});\nexport const bridgeWaitRequestSchema = z.strictObject({\n afterCursor: opaqueIdSchema.optional(),\n timeoutMs: z\n .number()\n .int()\n .positive()\n .max(EXTERNAL_HANDOFF_LIMITS.maximumWaitMs)\n .default(EXTERNAL_HANDOFF_LIMITS.defaultWaitMs),\n});\nexport const bridgeAckRequestSchema = z.strictObject({\n cursor: opaqueIdSchema,\n connectorInstanceId: opaqueIdSchema,\n});\nexport const bridgeActiveClaimRequestSchema = z.strictObject({\n adapterKind: z.enum(EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS),\n connectorInstanceId: opaqueIdSchema,\n});\nexport const bridgeActiveHeartbeatRequestSchema = z.strictObject({\n leaseToken: opaqueIdSchema,\n});\nexport const bridgeActiveReportRequestSchema = z.strictObject({\n leaseToken: opaqueIdSchema,\n cursor: opaqueIdSchema,\n phase: externalHandoffReportableDispatchPhaseSchema,\n});\nexport const bridgeActiveReleaseRequestSchema = z.strictObject({\n leaseToken: opaqueIdSchema,\n});\nexport const bridgeStatusSchema = z.strictObject({\n brokerProtocolVersion: z.literal(EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION),\n projectKey: projectKeySchema,\n sessionId: opaqueIdSchema,\n framework: z.enum(EXTERNAL_HANDOFF_FRAMEWORKS),\n current: externalHandoffSummarySchema.nullable(),\n});\nexport const bridgeCurrentResultSchema = z.strictObject({\n outcome: z.literal(\"handoff\"),\n snapshot: externalHandoffSnapshotSchema,\n});\nexport const bridgeWaitResultSchema = z.discriminatedUnion(\"outcome\", [\n bridgeCurrentResultSchema,\n z.strictObject({ outcome: z.literal(\"timeout\") }),\n]);\nexport const bridgeAckResultSchema = z.strictObject({\n summary: externalHandoffSummarySchema,\n});\nexport const bridgeActiveClaimResultSchema = z.strictObject({\n leaseToken: opaqueIdSchema,\n heartbeatIntervalMs: z.literal(EXTERNAL_HANDOFF_LIMITS.activeHeartbeatIntervalMs),\n baselineCursor: opaqueIdSchema.nullable(),\n activeAdapter: activeAdapterSummarySchema,\n});\nexport const bridgeActiveStateResultSchema = z.strictObject({\n activeAdapter: activeAdapterSummarySchema.nullable(),\n dispatch: dispatchSummarySchema.nullable(),\n});\nexport const bridgeActiveHeartbeatResultSchema = bridgeActiveStateResultSchema;\nexport const bridgeActiveReportResultSchema = bridgeActiveStateResultSchema;\nexport const bridgeActiveReleaseResultSchema = bridgeActiveStateResultSchema;\n\nexport type ExternalHandoffDescriptor = z.infer<typeof externalHandoffDescriptorSchema>;\nexport type BridgeStatus = z.infer<typeof bridgeStatusSchema>;\nexport type BridgeWaitResult =\n | Readonly<{ outcome: \"handoff\"; snapshot: ExternalHandoffSnapshot }>\n | Readonly<{ outcome: \"timeout\" }>;\nexport interface BridgeActiveClaimResult {\n readonly leaseToken: string;\n readonly heartbeatIntervalMs: typeof EXTERNAL_HANDOFF_LIMITS.activeHeartbeatIntervalMs;\n readonly baselineCursor: string | null;\n readonly activeAdapter: ActiveAdapterSummary;\n}\nexport interface BridgeActiveStateResult {\n readonly activeAdapter: ActiveAdapterSummary | null;\n readonly dispatch: DispatchSummary | null;\n}\n\nfunction currentUid(): number {\n const uid = process.getuid?.();\n\n if (uid === undefined) {\n throw new SpotPatchError(ERROR_CODES.BRIDGE_UNAUTHORIZED);\n }\n\n return uid;\n}\n\nasync function assertPrivateDirectory(directory: string, uid: number): Promise<void> {\n const status = await lstat(directory);\n\n if (\n !status.isDirectory() ||\n status.isSymbolicLink() ||\n status.uid !== uid ||\n (status.mode & 0o077) !== 0\n ) {\n throw new SpotPatchError(ERROR_CODES.BRIDGE_UNAUTHORIZED);\n }\n}\n\nasync function ensurePrivateSubdirectory(\n base: string,\n uid: number,\n create: boolean,\n): Promise<string> {\n const directory = path.join(base, \"spotpatch\");\n\n if (create) {\n try {\n await mkdir(directory, { mode: 0o700 });\n } catch (error: unknown) {\n if ((error as NodeJS.ErrnoException).code !== \"EEXIST\") {\n throw error;\n }\n }\n }\n\n await assertPrivateDirectory(directory, uid);\n return directory;\n}\n\nexport async function resolveExternalHandoffRuntimeDirectory(\n create: boolean,\n): Promise<string> {\n if (process.platform === \"win32\") {\n throw new SpotPatchError(ERROR_CODES.BRIDGE_UNAUTHORIZED);\n }\n\n const uid = currentUid();\n const xdgRuntimeDirectory = process.env.XDG_RUNTIME_DIR;\n\n if (xdgRuntimeDirectory !== undefined && !path.isAbsolute(xdgRuntimeDirectory)) {\n throw new SpotPatchError(ERROR_CODES.BRIDGE_UNAUTHORIZED);\n }\n\n if (xdgRuntimeDirectory !== undefined) {\n try {\n await assertPrivateDirectory(xdgRuntimeDirectory, uid);\n return await ensurePrivateSubdirectory(xdgRuntimeDirectory, uid, create);\n } catch (error: unknown) {\n if (!create && (error as NodeJS.ErrnoException).code === \"ENOENT\") {\n throw new SpotPatchError(ERROR_CODES.SESSION_NOT_FOUND);\n }\n\n throw error;\n }\n }\n\n const fallback = path.join(os.tmpdir(), `spotpatch-${String(uid)}`);\n\n if (create) {\n try {\n await mkdir(fallback, { mode: 0o700 });\n } catch (error: unknown) {\n if ((error as NodeJS.ErrnoException).code !== \"EEXIST\") {\n throw error;\n }\n }\n }\n\n try {\n await assertPrivateDirectory(fallback, uid);\n } catch (error: unknown) {\n if (!create && (error as NodeJS.ErrnoException).code === \"ENOENT\") {\n throw new SpotPatchError(ERROR_CODES.SESSION_NOT_FOUND);\n }\n\n throw error;\n }\n\n return fallback;\n}\n\nexport async function computeExternalHandoffProjectKey(root: string): Promise<string> {\n const canonicalRoot = await realpath(root);\n return createHash(\"sha256\")\n .update(`${EXTERNAL_HANDOFF_PROJECT_KEY_SALT}\\0${canonicalRoot}`)\n .digest(\"hex\");\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAEA,SAAS,kBAAkB;AAC3B,SAAS,OAAO,OAAO,gBAAgB;AACvC,OAAO,QAAQ;AACf,OAAO,UAAU;AAEjB,SAAS,SAAS;AAmBX,IAAM,gCAAgC;AACtC,IAAM,yBAAyB,OAAO,OAAO;AAAA,EAClD,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,KAAK;AAAA,EACL,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,eAAe;AACjB,CAAC;AACM,IAAM,oCACX;AAEF,IAAM,iBAAiB,EACpB,OAAO,EACP,IAAI,EAAE,EACN,IAAI,GAAG,EACP,MAAM,mBAAmB;AAC5B,IAAM,mBAAmB,EACtB,OAAO,EACP,OAAO,EAAE,EACT,MAAM,cAAc;AACvB,IAAM,yBAAyB,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU;AACvD,QAAM,QAAQ,6CAA6C,KAAK,KAAK;AAErE,MAAI,QAAQ,CAAC,MAAM,QAAW;AAC5B,WAAO;AAAA,EACT;AAEA,QAAM,OAAO,OAAO,MAAM,CAAC,CAAC;AAC5B,SAAO,OAAO,cAAc,IAAI,KAAK,QAAQ;AAC/C,CAAC;AAEM,IAAM,kCAAkC,EAAE,aAAa;AAAA,EAC5D,eAAe,EAAE,QAAQ,CAAC;AAAA,EAC1B,uBAAuB,EAAE,QAAQ,wCAAwC;AAAA,EACzE,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,WAAW,EAAE,KAAK,2BAA2B;AAAA,EAC7C,UAAU;AAAA,EACV,aAAa,EACV,OAAO,EACP,IAAI,EAAE,EACN,IAAI,GAAG,EACP,MAAM,mBAAmB;AAAA,EAC5B,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAC/B,WAAW,EAAE,IAAI,SAAS;AAC5B,CAAC;AAEM,IAAM,4BAA4B,EAAE,aAAa,CAAC,CAAC;AACnD,IAAM,6BAA6B,EAAE,aAAa;AAAA,EACvD,QAAQ,eAAe,SAAS;AAClC,CAAC;AACM,IAAM,0BAA0B,EAAE,aAAa;AAAA,EACpD,aAAa,eAAe,SAAS;AAAA,EACrC,WAAW,EACR,OAAO,EACP,IAAI,EACJ,SAAS,EACT,IAAI,wBAAwB,aAAa,EACzC,QAAQ,wBAAwB,aAAa;AAClD,CAAC;AACM,IAAM,yBAAyB,EAAE,aAAa;AAAA,EACnD,QAAQ;AAAA,EACR,qBAAqB;AACvB,CAAC;AACM,IAAM,iCAAiC,EAAE,aAAa;AAAA,EAC3D,aAAa,EAAE,KAAK,qCAAqC;AAAA,EACzD,qBAAqB;AACvB,CAAC;AACM,IAAM,qCAAqC,EAAE,aAAa;AAAA,EAC/D,YAAY;AACd,CAAC;AACM,IAAM,kCAAkC,EAAE,aAAa;AAAA,EAC5D,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,OAAO;AACT,CAAC;AACM,IAAM,mCAAmC,EAAE,aAAa;AAAA,EAC7D,YAAY;AACd,CAAC;AACM,IAAM,qBAAqB,EAAE,aAAa;AAAA,EAC/C,uBAAuB,EAAE,QAAQ,wCAAwC;AAAA,EACzE,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,WAAW,EAAE,KAAK,2BAA2B;AAAA,EAC7C,SAAS,6BAA6B,SAAS;AACjD,CAAC;AACM,IAAM,4BAA4B,EAAE,aAAa;AAAA,EACtD,SAAS,EAAE,QAAQ,SAAS;AAAA,EAC5B,UAAU;AACZ,CAAC;AACM,IAAM,yBAAyB,EAAE,mBAAmB,WAAW;AAAA,EACpE;AAAA,EACA,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,SAAS,EAAE,CAAC;AAClD,CAAC;AACM,IAAM,wBAAwB,EAAE,aAAa;AAAA,EAClD,SAAS;AACX,CAAC;AACM,IAAM,gCAAgC,EAAE,aAAa;AAAA,EAC1D,YAAY;AAAA,EACZ,qBAAqB,EAAE,QAAQ,wBAAwB,yBAAyB;AAAA,EAChF,gBAAgB,eAAe,SAAS;AAAA,EACxC,eAAe;AACjB,CAAC;AACM,IAAM,gCAAgC,EAAE,aAAa;AAAA,EAC1D,eAAe,2BAA2B,SAAS;AAAA,EACnD,UAAU,sBAAsB,SAAS;AAC3C,CAAC;AACM,IAAM,oCAAoC;AAC1C,IAAM,iCAAiC;AACvC,IAAM,kCAAkC;AAkB/C,SAAS,aAAqB;AAC5B,QAAM,MAAM,QAAQ,SAAS;AAE7B,MAAI,QAAQ,QAAW;AACrB,UAAM,IAAI,eAAe,YAAY,mBAAmB;AAAA,EAC1D;AAEA,SAAO;AACT;AAEA,eAAe,uBAAuB,WAAmB,KAA4B;AACnF,QAAM,SAAS,MAAM,MAAM,SAAS;AAEpC,MACE,CAAC,OAAO,YAAY,KACpB,OAAO,eAAe,KACtB,OAAO,QAAQ,QACd,OAAO,OAAO,QAAW,GAC1B;AACA,UAAM,IAAI,eAAe,YAAY,mBAAmB;AAAA,EAC1D;AACF;AAEA,eAAe,0BACb,MACA,KACA,QACiB;AACjB,QAAM,YAAY,KAAK,KAAK,MAAM,WAAW;AAE7C,MAAI,QAAQ;AACV,QAAI;AACF,YAAM,MAAM,WAAW,EAAE,MAAM,IAAM,CAAC;AAAA,IACxC,SAAS,OAAgB;AACvB,UAAK,MAAgC,SAAS,UAAU;AACtD,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,QAAM,uBAAuB,WAAW,GAAG;AAC3C,SAAO;AACT;AAEA,eAAsB,uCACpB,QACiB;AACjB,MAAI,QAAQ,aAAa,SAAS;AAChC,UAAM,IAAI,eAAe,YAAY,mBAAmB;AAAA,EAC1D;AAEA,QAAM,MAAM,WAAW;AACvB,QAAM,sBAAsB,QAAQ,IAAI;AAExC,MAAI,wBAAwB,UAAa,CAAC,KAAK,WAAW,mBAAmB,GAAG;AAC9E,UAAM,IAAI,eAAe,YAAY,mBAAmB;AAAA,EAC1D;AAEA,MAAI,wBAAwB,QAAW;AACrC,QAAI;AACF,YAAM,uBAAuB,qBAAqB,GAAG;AACrD,aAAO,MAAM,0BAA0B,qBAAqB,KAAK,MAAM;AAAA,IACzE,SAAS,OAAgB;AACvB,UAAI,CAAC,UAAW,MAAgC,SAAS,UAAU;AACjE,cAAM,IAAI,eAAe,YAAY,iBAAiB;AAAA,MACxD;AAEA,YAAM;AAAA,IACR;AAAA,EACF;AAEA,QAAM,WAAW,KAAK,KAAK,GAAG,OAAO,GAAG,aAAa,OAAO,GAAG,CAAC,EAAE;AAElE,MAAI,QAAQ;AACV,QAAI;AACF,YAAM,MAAM,UAAU,EAAE,MAAM,IAAM,CAAC;AAAA,IACvC,SAAS,OAAgB;AACvB,UAAK,MAAgC,SAAS,UAAU;AACtD,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,MAAI;AACF,UAAM,uBAAuB,UAAU,GAAG;AAAA,EAC5C,SAAS,OAAgB;AACvB,QAAI,CAAC,UAAW,MAAgC,SAAS,UAAU;AACjE,YAAM,IAAI,eAAe,YAAY,iBAAiB;AAAA,IACxD;AAEA,UAAM;AAAA,EACR;AAEA,SAAO;AACT;AAEA,eAAsB,iCAAiC,MAA+B;AACpF,QAAM,gBAAgB,MAAM,SAAS,IAAI;AACzC,SAAO,WAAW,QAAQ,EACvB,OAAO,GAAG,iCAAiC,KAAK,aAAa,EAAE,EAC/D,OAAO,KAAK;AACjB;","names":[]}
@@ -1,105 +1,5 @@
1
1
  import { z } from 'zod';
2
-
3
- interface ContextBudget {
4
- readonly totalCharacters: number;
5
- readonly domCharacters: number;
6
- readonly cssCharacters: number;
7
- readonly codeCharacters: number;
8
- readonly maxCodeLines: number;
9
- readonly maxComponentDepth: number;
10
- }
11
- interface CodeContext {
12
- readonly relativePath: string;
13
- readonly language: "tsx" | "jsx";
14
- readonly startLine: number;
15
- readonly endLine: number;
16
- readonly excerpt: string;
17
- readonly boundary: "component" | "nearby-lines";
18
- }
19
-
20
- type SourceConfidence = "exact" | "probable" | "approximate" | "unknown";
21
- type SourceOrigin = "jsx-host" | "react-fiber" | "dom-ancestor" | "none";
22
- interface SourceRef {
23
- readonly fileId?: string;
24
- readonly relativePath?: string;
25
- readonly line?: number;
26
- readonly column?: number;
27
- readonly origin: SourceOrigin;
28
- readonly confidence: SourceConfidence;
29
- }
30
- interface ReactContext {
31
- readonly supported: boolean;
32
- readonly version?: string;
33
- readonly componentName?: string;
34
- readonly componentSourceId?: string;
35
- readonly sourceVersion?: string;
36
- readonly componentStack: readonly string[];
37
- readonly source?: SourceRef;
38
- }
39
-
40
- interface MatchedStyleRule {
41
- readonly selector: string;
42
- readonly declarations: string;
43
- readonly source?: string;
44
- readonly media?: string;
45
- }
46
- interface StyleContext {
47
- readonly classNames: readonly string[];
48
- readonly inlineStyle?: string;
49
- readonly matchedRules: readonly MatchedStyleRule[];
50
- readonly computed: Readonly<Record<string, string>>;
51
- readonly warnings: readonly string[];
52
- }
53
-
54
- interface PageContext {
55
- readonly url: string;
56
- readonly pathname: string;
57
- readonly title: string;
58
- readonly viewportWidth: number;
59
- readonly viewportHeight: number;
60
- readonly devicePixelRatio: number;
61
- }
62
- interface ElementContext {
63
- readonly tagName: string;
64
- readonly selector: string;
65
- readonly sanitizedHtml: string;
66
- readonly textPreview?: string;
67
- readonly role?: string;
68
- readonly rect: Readonly<{
69
- x: number;
70
- y: number;
71
- width: number;
72
- height: number;
73
- }>;
74
- }
75
- /** Protocol hard limit. Runtime configuration may choose a smaller limit. */
76
- declare const MAX_ANNOTATION_TARGETS = 20;
77
- /** Each target owns its requested change; the UI enforces the same bound. */
78
- declare const MAX_TARGET_INSTRUCTION_CHARACTERS = 2000;
79
- /** Keeps the complete, atomic user intent within the prompt and request budgets. */
80
- declare const MAX_ANNOTATION_INSTRUCTION_CHARACTERS = 4000;
81
- declare const SPOTPATCH_LOCALES: readonly ["en-US", "zh-CN"];
82
- type SpotPatchLocale = (typeof SPOTPATCH_LOCALES)[number];
83
- declare const SPOTPATCH_LOCALE_PREFERENCES: readonly ["auto", "en-US", "zh-CN"];
84
- type SpotPatchLocalePreference = (typeof SPOTPATCH_LOCALE_PREFERENCES)[number];
85
- interface SpotTargetContext {
86
- readonly instruction: string;
87
- readonly page?: Readonly<PageContext>;
88
- readonly source: SourceRef;
89
- readonly react: ReactContext;
90
- readonly element: ElementContext;
91
- readonly styles: StyleContext;
92
- readonly code?: CodeContext;
93
- readonly warnings: readonly string[];
94
- }
95
- interface SpotAnnotation {
96
- readonly schemaVersion: 3;
97
- readonly id: string;
98
- readonly locale: SpotPatchLocale;
99
- readonly page: Readonly<PageContext>;
100
- readonly targets: readonly SpotTargetContext[];
101
- readonly createdAt: string;
102
- }
2
+ import { S as SpotAnnotation } from './annotation-C0Me9mN2.js';
103
3
 
104
4
  declare const EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION: 1;
105
5
  declare const EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION: 2;
@@ -144,11 +44,11 @@ type ExternalHandoffDispatchPhase = (typeof EXTERNAL_HANDOFF_DISPATCH_PHASES)[nu
144
44
  type ExternalHandoffReportableDispatchPhase = (typeof EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES)[number];
145
45
 
146
46
  declare const externalHandoffReportableDispatchPhaseSchema: z.ZodEnum<{
147
- dispatching: "dispatching";
47
+ failed: "failed";
148
48
  dispatched: "dispatched";
149
- working: "working";
150
49
  completed: "completed";
151
- failed: "failed";
50
+ dispatching: "dispatching";
51
+ working: "working";
152
52
  "delivery-unknown": "delivery-unknown";
153
53
  }>;
154
54
  declare const externalHandoffSummarySchema: z.ZodObject<{
@@ -167,8 +67,8 @@ declare const externalHandoffSummarySchema: z.ZodObject<{
167
67
  publishedAt: z.ZodISODateTime;
168
68
  expiresAt: z.ZodISODateTime;
169
69
  state: z.ZodEnum<{
170
- available: "available";
171
70
  expired: "expired";
71
+ available: "available";
172
72
  superseded: "superseded";
173
73
  }>;
174
74
  pickupCount: z.ZodNumber;
@@ -307,8 +207,8 @@ declare const activeAdapterSummarySchema: z.ZodObject<{
307
207
  }>;
308
208
  state: z.ZodEnum<{
309
209
  ready: "ready";
310
- busy: "busy";
311
210
  blocked: "blocked";
211
+ busy: "busy";
312
212
  }>;
313
213
  canDispatch: z.ZodBoolean;
314
214
  connectedAt: z.ZodISODateTime;
@@ -321,13 +221,13 @@ declare const dispatchSummarySchema: z.ZodObject<{
321
221
  }>;
322
222
  revision: z.ZodNumber;
323
223
  phase: z.ZodEnum<{
324
- dispatching: "dispatching";
224
+ queued: "queued";
225
+ failed: "failed";
325
226
  dispatched: "dispatched";
326
- working: "working";
327
227
  completed: "completed";
328
- failed: "failed";
228
+ dispatching: "dispatching";
229
+ working: "working";
329
230
  "delivery-unknown": "delivery-unknown";
330
- queued: "queued";
331
231
  }>;
332
232
  updatedAt: z.ZodISODateTime;
333
233
  }, z.core.$strict>;
@@ -467,8 +367,8 @@ declare const externalHandoffCapabilitySchema: z.ZodObject<{
467
367
  }>;
468
368
  state: z.ZodEnum<{
469
369
  ready: "ready";
470
- busy: "busy";
471
370
  blocked: "blocked";
371
+ busy: "busy";
472
372
  }>;
473
373
  canDispatch: z.ZodBoolean;
474
374
  connectedAt: z.ZodISODateTime;
@@ -481,13 +381,13 @@ declare const externalHandoffCapabilitySchema: z.ZodObject<{
481
381
  }>;
482
382
  revision: z.ZodNumber;
483
383
  phase: z.ZodEnum<{
484
- dispatching: "dispatching";
384
+ queued: "queued";
385
+ failed: "failed";
485
386
  dispatched: "dispatched";
486
- working: "working";
487
387
  completed: "completed";
488
- failed: "failed";
388
+ dispatching: "dispatching";
389
+ working: "working";
489
390
  "delivery-unknown": "delivery-unknown";
490
- queued: "queued";
491
391
  }>;
492
392
  updatedAt: z.ZodISODateTime;
493
393
  }, z.core.$strict>>;
@@ -503,8 +403,8 @@ declare const externalHandoffPublishDeliverySchema: z.ZodDiscriminatedUnion<[z.Z
503
403
  }>;
504
404
  state: z.ZodEnum<{
505
405
  ready: "ready";
506
- busy: "busy";
507
406
  blocked: "blocked";
407
+ busy: "busy";
508
408
  }>;
509
409
  canDispatch: z.ZodBoolean;
510
410
  connectedAt: z.ZodISODateTime;
@@ -517,13 +417,13 @@ declare const externalHandoffPublishDeliverySchema: z.ZodDiscriminatedUnion<[z.Z
517
417
  }>;
518
418
  revision: z.ZodNumber;
519
419
  phase: z.ZodEnum<{
520
- dispatching: "dispatching";
420
+ queued: "queued";
421
+ failed: "failed";
521
422
  dispatched: "dispatched";
522
- working: "working";
523
423
  completed: "completed";
524
- failed: "failed";
424
+ dispatching: "dispatching";
425
+ working: "working";
525
426
  "delivery-unknown": "delivery-unknown";
526
- queued: "queued";
527
427
  }>;
528
428
  updatedAt: z.ZodISODateTime;
529
429
  }, z.core.$strict>;
@@ -545,8 +445,8 @@ declare const externalHandoffPublishResultSchema: z.ZodObject<{
545
445
  publishedAt: z.ZodISODateTime;
546
446
  expiresAt: z.ZodISODateTime;
547
447
  state: z.ZodEnum<{
548
- available: "available";
549
448
  expired: "expired";
449
+ available: "available";
550
450
  superseded: "superseded";
551
451
  }>;
552
452
  pickupCount: z.ZodNumber;
@@ -563,8 +463,8 @@ declare const externalHandoffPublishResultSchema: z.ZodObject<{
563
463
  }>;
564
464
  state: z.ZodEnum<{
565
465
  ready: "ready";
566
- busy: "busy";
567
466
  blocked: "blocked";
467
+ busy: "busy";
568
468
  }>;
569
469
  canDispatch: z.ZodBoolean;
570
470
  connectedAt: z.ZodISODateTime;
@@ -577,13 +477,13 @@ declare const externalHandoffPublishResultSchema: z.ZodObject<{
577
477
  }>;
578
478
  revision: z.ZodNumber;
579
479
  phase: z.ZodEnum<{
580
- dispatching: "dispatching";
480
+ queued: "queued";
481
+ failed: "failed";
581
482
  dispatched: "dispatched";
582
- working: "working";
583
483
  completed: "completed";
584
- failed: "failed";
484
+ dispatching: "dispatching";
485
+ working: "working";
585
486
  "delivery-unknown": "delivery-unknown";
586
- queued: "queued";
587
487
  }>;
588
488
  updatedAt: z.ZodISODateTime;
589
489
  }, z.core.$strict>;
@@ -607,8 +507,8 @@ declare const externalHandoffStatusResultSchema: z.ZodObject<{
607
507
  publishedAt: z.ZodISODateTime;
608
508
  expiresAt: z.ZodISODateTime;
609
509
  state: z.ZodEnum<{
610
- available: "available";
611
510
  expired: "expired";
511
+ available: "available";
612
512
  superseded: "superseded";
613
513
  }>;
614
514
  pickupCount: z.ZodNumber;
@@ -621,8 +521,8 @@ declare const externalHandoffStatusResultSchema: z.ZodObject<{
621
521
  }>;
622
522
  state: z.ZodEnum<{
623
523
  ready: "ready";
624
- busy: "busy";
625
524
  blocked: "blocked";
525
+ busy: "busy";
626
526
  }>;
627
527
  canDispatch: z.ZodBoolean;
628
528
  connectedAt: z.ZodISODateTime;
@@ -635,13 +535,13 @@ declare const externalHandoffStatusResultSchema: z.ZodObject<{
635
535
  }>;
636
536
  revision: z.ZodNumber;
637
537
  phase: z.ZodEnum<{
638
- dispatching: "dispatching";
538
+ queued: "queued";
539
+ failed: "failed";
639
540
  dispatched: "dispatched";
640
- working: "working";
641
541
  completed: "completed";
642
- failed: "failed";
542
+ dispatching: "dispatching";
543
+ working: "working";
643
544
  "delivery-unknown": "delivery-unknown";
644
- queued: "queued";
645
545
  }>;
646
546
  updatedAt: z.ZodISODateTime;
647
547
  }, z.core.$strict>>;
@@ -717,4 +617,4 @@ type ExternalHandoffPublishRequest = z.infer<typeof externalHandoffPublishReques
717
617
  type ExternalHandoffStatusRequest = z.infer<typeof externalHandoffStatusRequestSchema>;
718
618
  type ExternalHandoffResolveDeliveryRequest = z.infer<typeof externalHandoffResolveDeliveryRequestSchema>;
719
619
 
720
- export { externalHandoffResolveDeliveryRequestSchema as $, type ActiveAdapterSummary as A, type ElementContext as B, type ContextBudget as C, type DispatchSummary as D, EXTERNAL_HANDOFF_LIMITS as E, MAX_ANNOTATION_TARGETS as F, MAX_TARGET_INSTRUCTION_CHARACTERS as G, type MatchedStyleRule as H, SPOTPATCH_LOCALES as I, type SourceConfidence as J, type SourceOrigin as K, type SourceRef as L, MAX_ANNOTATION_INSTRUCTION_CHARACTERS as M, type SpotPatchLocalePreference as N, type SpotTargetContext as O, type PageContext as P, type StyleContext as Q, type ReactContext as R, type SpotAnnotation as S, activeAdapterSummarySchema as T, dispatchSummarySchema as U, externalHandoffCapabilityRequestSchema as V, externalHandoffCapabilitySchema as W, externalHandoffPublishDeliverySchema as X, externalHandoffPublishRequestSchema as Y, externalHandoffPublishResultSchema as Z, externalHandoffReportableDispatchPhaseSchema as _, type ExternalHandoffSnapshot as a, externalHandoffSnapshotSchema as a0, externalHandoffStatusRequestSchema as a1, externalHandoffStatusResultSchema as a2, externalHandoffSummarySchema as a3, EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS as b, EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES as c, EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION as d, EXTERNAL_HANDOFF_DISPATCH_PHASES as e, EXTERNAL_HANDOFF_FRAMEWORKS as f, EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES as g, EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION as h, EXTERNAL_HANDOFF_STATES as i, type ExternalHandoffActiveAdapterKind as j, type ExternalHandoffActiveAdapterState as k, type ExternalHandoffCapability as l, type ExternalHandoffDispatchPhase as m, type ExternalHandoffFramework as n, type ExternalHandoffPublishDelivery as o, type ExternalHandoffPublishRequest as p, type ExternalHandoffPublishResult as q, type ExternalHandoffReportableDispatchPhase as r, type ExternalHandoffResolveDeliveryRequest as s, type ExternalHandoffState as t, type ExternalHandoffStatusRequest as u, type ExternalHandoffStatusResult as v, type ExternalHandoffSummary as w, type SpotPatchLocale as x, SPOTPATCH_LOCALE_PREFERENCES as y, type CodeContext as z };
620
+ export { type ActiveAdapterSummary as A, externalHandoffCapabilitySchema as B, externalHandoffPublishDeliverySchema as C, type DispatchSummary as D, EXTERNAL_HANDOFF_LIMITS as E, externalHandoffPublishRequestSchema as F, externalHandoffPublishResultSchema as G, externalHandoffReportableDispatchPhaseSchema as H, externalHandoffResolveDeliveryRequestSchema as I, externalHandoffSnapshotSchema as J, externalHandoffStatusRequestSchema as K, externalHandoffStatusResultSchema as L, externalHandoffSummarySchema as M, type ExternalHandoffSnapshot as a, EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS as b, EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES as c, EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION as d, EXTERNAL_HANDOFF_DISPATCH_PHASES as e, EXTERNAL_HANDOFF_FRAMEWORKS as f, EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES as g, EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION as h, EXTERNAL_HANDOFF_STATES as i, type ExternalHandoffActiveAdapterKind as j, type ExternalHandoffActiveAdapterState as k, type ExternalHandoffCapability as l, type ExternalHandoffDispatchPhase as m, type ExternalHandoffFramework as n, type ExternalHandoffPublishDelivery as o, type ExternalHandoffPublishRequest as p, type ExternalHandoffPublishResult as q, type ExternalHandoffReportableDispatchPhase as r, type ExternalHandoffResolveDeliveryRequest as s, type ExternalHandoffState as t, type ExternalHandoffStatusRequest as u, type ExternalHandoffStatusResult as v, type ExternalHandoffSummary as w, activeAdapterSummarySchema as x, dispatchSummarySchema as y, externalHandoffCapabilityRequestSchema as z };
@@ -1,105 +1,5 @@
1
1
  import { z } from 'zod';
2
-
3
- interface ContextBudget {
4
- readonly totalCharacters: number;
5
- readonly domCharacters: number;
6
- readonly cssCharacters: number;
7
- readonly codeCharacters: number;
8
- readonly maxCodeLines: number;
9
- readonly maxComponentDepth: number;
10
- }
11
- interface CodeContext {
12
- readonly relativePath: string;
13
- readonly language: "tsx" | "jsx";
14
- readonly startLine: number;
15
- readonly endLine: number;
16
- readonly excerpt: string;
17
- readonly boundary: "component" | "nearby-lines";
18
- }
19
-
20
- type SourceConfidence = "exact" | "probable" | "approximate" | "unknown";
21
- type SourceOrigin = "jsx-host" | "react-fiber" | "dom-ancestor" | "none";
22
- interface SourceRef {
23
- readonly fileId?: string;
24
- readonly relativePath?: string;
25
- readonly line?: number;
26
- readonly column?: number;
27
- readonly origin: SourceOrigin;
28
- readonly confidence: SourceConfidence;
29
- }
30
- interface ReactContext {
31
- readonly supported: boolean;
32
- readonly version?: string;
33
- readonly componentName?: string;
34
- readonly componentSourceId?: string;
35
- readonly sourceVersion?: string;
36
- readonly componentStack: readonly string[];
37
- readonly source?: SourceRef;
38
- }
39
-
40
- interface MatchedStyleRule {
41
- readonly selector: string;
42
- readonly declarations: string;
43
- readonly source?: string;
44
- readonly media?: string;
45
- }
46
- interface StyleContext {
47
- readonly classNames: readonly string[];
48
- readonly inlineStyle?: string;
49
- readonly matchedRules: readonly MatchedStyleRule[];
50
- readonly computed: Readonly<Record<string, string>>;
51
- readonly warnings: readonly string[];
52
- }
53
-
54
- interface PageContext {
55
- readonly url: string;
56
- readonly pathname: string;
57
- readonly title: string;
58
- readonly viewportWidth: number;
59
- readonly viewportHeight: number;
60
- readonly devicePixelRatio: number;
61
- }
62
- interface ElementContext {
63
- readonly tagName: string;
64
- readonly selector: string;
65
- readonly sanitizedHtml: string;
66
- readonly textPreview?: string;
67
- readonly role?: string;
68
- readonly rect: Readonly<{
69
- x: number;
70
- y: number;
71
- width: number;
72
- height: number;
73
- }>;
74
- }
75
- /** Protocol hard limit. Runtime configuration may choose a smaller limit. */
76
- declare const MAX_ANNOTATION_TARGETS = 20;
77
- /** Each target owns its requested change; the UI enforces the same bound. */
78
- declare const MAX_TARGET_INSTRUCTION_CHARACTERS = 2000;
79
- /** Keeps the complete, atomic user intent within the prompt and request budgets. */
80
- declare const MAX_ANNOTATION_INSTRUCTION_CHARACTERS = 4000;
81
- declare const SPOTPATCH_LOCALES: readonly ["en-US", "zh-CN"];
82
- type SpotPatchLocale = (typeof SPOTPATCH_LOCALES)[number];
83
- declare const SPOTPATCH_LOCALE_PREFERENCES: readonly ["auto", "en-US", "zh-CN"];
84
- type SpotPatchLocalePreference = (typeof SPOTPATCH_LOCALE_PREFERENCES)[number];
85
- interface SpotTargetContext {
86
- readonly instruction: string;
87
- readonly page?: Readonly<PageContext>;
88
- readonly source: SourceRef;
89
- readonly react: ReactContext;
90
- readonly element: ElementContext;
91
- readonly styles: StyleContext;
92
- readonly code?: CodeContext;
93
- readonly warnings: readonly string[];
94
- }
95
- interface SpotAnnotation {
96
- readonly schemaVersion: 3;
97
- readonly id: string;
98
- readonly locale: SpotPatchLocale;
99
- readonly page: Readonly<PageContext>;
100
- readonly targets: readonly SpotTargetContext[];
101
- readonly createdAt: string;
102
- }
2
+ import { S as SpotAnnotation } from './annotation-C0Me9mN2.cjs';
103
3
 
104
4
  declare const EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION: 1;
105
5
  declare const EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION: 2;
@@ -144,11 +44,11 @@ type ExternalHandoffDispatchPhase = (typeof EXTERNAL_HANDOFF_DISPATCH_PHASES)[nu
144
44
  type ExternalHandoffReportableDispatchPhase = (typeof EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES)[number];
145
45
 
146
46
  declare const externalHandoffReportableDispatchPhaseSchema: z.ZodEnum<{
147
- dispatching: "dispatching";
47
+ failed: "failed";
148
48
  dispatched: "dispatched";
149
- working: "working";
150
49
  completed: "completed";
151
- failed: "failed";
50
+ dispatching: "dispatching";
51
+ working: "working";
152
52
  "delivery-unknown": "delivery-unknown";
153
53
  }>;
154
54
  declare const externalHandoffSummarySchema: z.ZodObject<{
@@ -167,8 +67,8 @@ declare const externalHandoffSummarySchema: z.ZodObject<{
167
67
  publishedAt: z.ZodISODateTime;
168
68
  expiresAt: z.ZodISODateTime;
169
69
  state: z.ZodEnum<{
170
- available: "available";
171
70
  expired: "expired";
71
+ available: "available";
172
72
  superseded: "superseded";
173
73
  }>;
174
74
  pickupCount: z.ZodNumber;
@@ -307,8 +207,8 @@ declare const activeAdapterSummarySchema: z.ZodObject<{
307
207
  }>;
308
208
  state: z.ZodEnum<{
309
209
  ready: "ready";
310
- busy: "busy";
311
210
  blocked: "blocked";
211
+ busy: "busy";
312
212
  }>;
313
213
  canDispatch: z.ZodBoolean;
314
214
  connectedAt: z.ZodISODateTime;
@@ -321,13 +221,13 @@ declare const dispatchSummarySchema: z.ZodObject<{
321
221
  }>;
322
222
  revision: z.ZodNumber;
323
223
  phase: z.ZodEnum<{
324
- dispatching: "dispatching";
224
+ queued: "queued";
225
+ failed: "failed";
325
226
  dispatched: "dispatched";
326
- working: "working";
327
227
  completed: "completed";
328
- failed: "failed";
228
+ dispatching: "dispatching";
229
+ working: "working";
329
230
  "delivery-unknown": "delivery-unknown";
330
- queued: "queued";
331
231
  }>;
332
232
  updatedAt: z.ZodISODateTime;
333
233
  }, z.core.$strict>;
@@ -467,8 +367,8 @@ declare const externalHandoffCapabilitySchema: z.ZodObject<{
467
367
  }>;
468
368
  state: z.ZodEnum<{
469
369
  ready: "ready";
470
- busy: "busy";
471
370
  blocked: "blocked";
371
+ busy: "busy";
472
372
  }>;
473
373
  canDispatch: z.ZodBoolean;
474
374
  connectedAt: z.ZodISODateTime;
@@ -481,13 +381,13 @@ declare const externalHandoffCapabilitySchema: z.ZodObject<{
481
381
  }>;
482
382
  revision: z.ZodNumber;
483
383
  phase: z.ZodEnum<{
484
- dispatching: "dispatching";
384
+ queued: "queued";
385
+ failed: "failed";
485
386
  dispatched: "dispatched";
486
- working: "working";
487
387
  completed: "completed";
488
- failed: "failed";
388
+ dispatching: "dispatching";
389
+ working: "working";
489
390
  "delivery-unknown": "delivery-unknown";
490
- queued: "queued";
491
391
  }>;
492
392
  updatedAt: z.ZodISODateTime;
493
393
  }, z.core.$strict>>;
@@ -503,8 +403,8 @@ declare const externalHandoffPublishDeliverySchema: z.ZodDiscriminatedUnion<[z.Z
503
403
  }>;
504
404
  state: z.ZodEnum<{
505
405
  ready: "ready";
506
- busy: "busy";
507
406
  blocked: "blocked";
407
+ busy: "busy";
508
408
  }>;
509
409
  canDispatch: z.ZodBoolean;
510
410
  connectedAt: z.ZodISODateTime;
@@ -517,13 +417,13 @@ declare const externalHandoffPublishDeliverySchema: z.ZodDiscriminatedUnion<[z.Z
517
417
  }>;
518
418
  revision: z.ZodNumber;
519
419
  phase: z.ZodEnum<{
520
- dispatching: "dispatching";
420
+ queued: "queued";
421
+ failed: "failed";
521
422
  dispatched: "dispatched";
522
- working: "working";
523
423
  completed: "completed";
524
- failed: "failed";
424
+ dispatching: "dispatching";
425
+ working: "working";
525
426
  "delivery-unknown": "delivery-unknown";
526
- queued: "queued";
527
427
  }>;
528
428
  updatedAt: z.ZodISODateTime;
529
429
  }, z.core.$strict>;
@@ -545,8 +445,8 @@ declare const externalHandoffPublishResultSchema: z.ZodObject<{
545
445
  publishedAt: z.ZodISODateTime;
546
446
  expiresAt: z.ZodISODateTime;
547
447
  state: z.ZodEnum<{
548
- available: "available";
549
448
  expired: "expired";
449
+ available: "available";
550
450
  superseded: "superseded";
551
451
  }>;
552
452
  pickupCount: z.ZodNumber;
@@ -563,8 +463,8 @@ declare const externalHandoffPublishResultSchema: z.ZodObject<{
563
463
  }>;
564
464
  state: z.ZodEnum<{
565
465
  ready: "ready";
566
- busy: "busy";
567
466
  blocked: "blocked";
467
+ busy: "busy";
568
468
  }>;
569
469
  canDispatch: z.ZodBoolean;
570
470
  connectedAt: z.ZodISODateTime;
@@ -577,13 +477,13 @@ declare const externalHandoffPublishResultSchema: z.ZodObject<{
577
477
  }>;
578
478
  revision: z.ZodNumber;
579
479
  phase: z.ZodEnum<{
580
- dispatching: "dispatching";
480
+ queued: "queued";
481
+ failed: "failed";
581
482
  dispatched: "dispatched";
582
- working: "working";
583
483
  completed: "completed";
584
- failed: "failed";
484
+ dispatching: "dispatching";
485
+ working: "working";
585
486
  "delivery-unknown": "delivery-unknown";
586
- queued: "queued";
587
487
  }>;
588
488
  updatedAt: z.ZodISODateTime;
589
489
  }, z.core.$strict>;
@@ -607,8 +507,8 @@ declare const externalHandoffStatusResultSchema: z.ZodObject<{
607
507
  publishedAt: z.ZodISODateTime;
608
508
  expiresAt: z.ZodISODateTime;
609
509
  state: z.ZodEnum<{
610
- available: "available";
611
510
  expired: "expired";
511
+ available: "available";
612
512
  superseded: "superseded";
613
513
  }>;
614
514
  pickupCount: z.ZodNumber;
@@ -621,8 +521,8 @@ declare const externalHandoffStatusResultSchema: z.ZodObject<{
621
521
  }>;
622
522
  state: z.ZodEnum<{
623
523
  ready: "ready";
624
- busy: "busy";
625
524
  blocked: "blocked";
525
+ busy: "busy";
626
526
  }>;
627
527
  canDispatch: z.ZodBoolean;
628
528
  connectedAt: z.ZodISODateTime;
@@ -635,13 +535,13 @@ declare const externalHandoffStatusResultSchema: z.ZodObject<{
635
535
  }>;
636
536
  revision: z.ZodNumber;
637
537
  phase: z.ZodEnum<{
638
- dispatching: "dispatching";
538
+ queued: "queued";
539
+ failed: "failed";
639
540
  dispatched: "dispatched";
640
- working: "working";
641
541
  completed: "completed";
642
- failed: "failed";
542
+ dispatching: "dispatching";
543
+ working: "working";
643
544
  "delivery-unknown": "delivery-unknown";
644
- queued: "queued";
645
545
  }>;
646
546
  updatedAt: z.ZodISODateTime;
647
547
  }, z.core.$strict>>;
@@ -717,4 +617,4 @@ type ExternalHandoffPublishRequest = z.infer<typeof externalHandoffPublishReques
717
617
  type ExternalHandoffStatusRequest = z.infer<typeof externalHandoffStatusRequestSchema>;
718
618
  type ExternalHandoffResolveDeliveryRequest = z.infer<typeof externalHandoffResolveDeliveryRequestSchema>;
719
619
 
720
- export { externalHandoffResolveDeliveryRequestSchema as $, type ActiveAdapterSummary as A, type ElementContext as B, type ContextBudget as C, type DispatchSummary as D, EXTERNAL_HANDOFF_LIMITS as E, MAX_ANNOTATION_TARGETS as F, MAX_TARGET_INSTRUCTION_CHARACTERS as G, type MatchedStyleRule as H, SPOTPATCH_LOCALES as I, type SourceConfidence as J, type SourceOrigin as K, type SourceRef as L, MAX_ANNOTATION_INSTRUCTION_CHARACTERS as M, type SpotPatchLocalePreference as N, type SpotTargetContext as O, type PageContext as P, type StyleContext as Q, type ReactContext as R, type SpotAnnotation as S, activeAdapterSummarySchema as T, dispatchSummarySchema as U, externalHandoffCapabilityRequestSchema as V, externalHandoffCapabilitySchema as W, externalHandoffPublishDeliverySchema as X, externalHandoffPublishRequestSchema as Y, externalHandoffPublishResultSchema as Z, externalHandoffReportableDispatchPhaseSchema as _, type ExternalHandoffSnapshot as a, externalHandoffSnapshotSchema as a0, externalHandoffStatusRequestSchema as a1, externalHandoffStatusResultSchema as a2, externalHandoffSummarySchema as a3, EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS as b, EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES as c, EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION as d, EXTERNAL_HANDOFF_DISPATCH_PHASES as e, EXTERNAL_HANDOFF_FRAMEWORKS as f, EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES as g, EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION as h, EXTERNAL_HANDOFF_STATES as i, type ExternalHandoffActiveAdapterKind as j, type ExternalHandoffActiveAdapterState as k, type ExternalHandoffCapability as l, type ExternalHandoffDispatchPhase as m, type ExternalHandoffFramework as n, type ExternalHandoffPublishDelivery as o, type ExternalHandoffPublishRequest as p, type ExternalHandoffPublishResult as q, type ExternalHandoffReportableDispatchPhase as r, type ExternalHandoffResolveDeliveryRequest as s, type ExternalHandoffState as t, type ExternalHandoffStatusRequest as u, type ExternalHandoffStatusResult as v, type ExternalHandoffSummary as w, type SpotPatchLocale as x, SPOTPATCH_LOCALE_PREFERENCES as y, type CodeContext as z };
620
+ export { type ActiveAdapterSummary as A, externalHandoffCapabilitySchema as B, externalHandoffPublishDeliverySchema as C, type DispatchSummary as D, EXTERNAL_HANDOFF_LIMITS as E, externalHandoffPublishRequestSchema as F, externalHandoffPublishResultSchema as G, externalHandoffReportableDispatchPhaseSchema as H, externalHandoffResolveDeliveryRequestSchema as I, externalHandoffSnapshotSchema as J, externalHandoffStatusRequestSchema as K, externalHandoffStatusResultSchema as L, externalHandoffSummarySchema as M, type ExternalHandoffSnapshot as a, EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS as b, EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES as c, EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION as d, EXTERNAL_HANDOFF_DISPATCH_PHASES as e, EXTERNAL_HANDOFF_FRAMEWORKS as f, EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES as g, EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION as h, EXTERNAL_HANDOFF_STATES as i, type ExternalHandoffActiveAdapterKind as j, type ExternalHandoffActiveAdapterState as k, type ExternalHandoffCapability as l, type ExternalHandoffDispatchPhase as m, type ExternalHandoffFramework as n, type ExternalHandoffPublishDelivery as o, type ExternalHandoffPublishRequest as p, type ExternalHandoffPublishResult as q, type ExternalHandoffReportableDispatchPhase as r, type ExternalHandoffResolveDeliveryRequest as s, type ExternalHandoffState as t, type ExternalHandoffStatusRequest as u, type ExternalHandoffStatusResult as v, type ExternalHandoffSummary as w, activeAdapterSummarySchema as x, dispatchSummarySchema as y, externalHandoffCapabilityRequestSchema as z };
@@ -126,6 +126,8 @@ var SPOTPATCH_ENDPOINTS = Object.freeze({
126
126
  agentCapability: `${SPOTPATCH_API_BASE}/agent/capability`,
127
127
  agentWorkspaceHealth: `${SPOTPATCH_API_BASE}/agent/workspace-health`,
128
128
  agentJobs: `${SPOTPATCH_API_BASE}/agent/jobs`,
129
+ askCapability: `${SPOTPATCH_API_BASE}/ask/capability`,
130
+ askJobs: `${SPOTPATCH_API_BASE}/ask/jobs`,
129
131
  externalHandoffCapability: `${SPOTPATCH_API_BASE}/external-handoff/capability`,
130
132
  externalHandoffPublish: `${SPOTPATCH_API_BASE}/external-handoff/publish`,
131
133
  externalHandoffStatus: `${SPOTPATCH_API_BASE}/external-handoff/status`,