@spotpatch/shared 1.9.0 → 1.10.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 (39) hide show
  1. package/dist/chunk-2LVIH7OA.js +75 -0
  2. package/dist/chunk-2LVIH7OA.js.map +1 -0
  3. package/dist/chunk-MOGITGPP.js +431 -0
  4. package/dist/chunk-MOGITGPP.js.map +1 -0
  5. package/dist/{chunk-K2UAPG7T.js → chunk-RK46Y7LD.js} +2 -23
  6. package/dist/chunk-RK46Y7LD.js.map +1 -0
  7. package/dist/chunk-ZCG3DLSW.js +28 -0
  8. package/dist/chunk-ZCG3DLSW.js.map +1 -0
  9. package/dist/{data-flow-runtime-zwbvImvl.d.cts → data-flow-runtime-BMm3F-eV.d.cts} +2 -16
  10. package/dist/{data-flow-runtime-zwbvImvl.d.ts → data-flow-runtime-Dp-xznQW.d.ts} +2 -16
  11. package/dist/data-flow-runtime.cjs +5 -1
  12. package/dist/data-flow-runtime.cjs.map +1 -1
  13. package/dist/data-flow-runtime.d.cts +2 -1
  14. package/dist/data-flow-runtime.d.ts +2 -1
  15. package/dist/data-flow-runtime.js +4 -2
  16. package/dist/endpoints-BT-Bl1WS.d.cts +20 -0
  17. package/dist/endpoints-BT-Bl1WS.d.ts +20 -0
  18. package/dist/external-agent-node.cjs +692 -0
  19. package/dist/external-agent-node.cjs.map +1 -0
  20. package/dist/external-agent-node.d.cts +556 -0
  21. package/dist/external-agent-node.d.ts +556 -0
  22. package/dist/external-agent-node.js +210 -0
  23. package/dist/external-agent-node.js.map +1 -0
  24. package/dist/external-handoff-CWoooqhp.d.cts +720 -0
  25. package/dist/external-handoff-CWoooqhp.d.ts +720 -0
  26. package/dist/external-handoff-browser.cjs +163 -0
  27. package/dist/external-handoff-browser.cjs.map +1 -0
  28. package/dist/external-handoff-browser.d.cts +32 -0
  29. package/dist/external-handoff-browser.d.ts +32 -0
  30. package/dist/external-handoff-browser.js +58 -0
  31. package/dist/external-handoff-browser.js.map +1 -0
  32. package/dist/index.cjs +302 -65
  33. package/dist/index.cjs.map +1 -1
  34. package/dist/index.d.cts +139 -105
  35. package/dist/index.d.ts +139 -105
  36. package/dist/index.js +165 -340
  37. package/dist/index.js.map +1 -1
  38. package/package.json +28 -2
  39. package/dist/chunk-K2UAPG7T.js.map +0 -1
package/dist/index.cjs CHANGED
@@ -44,6 +44,16 @@ __export(index_exports, {
44
44
  DEFAULT_DATA_FLOW_LIMITS: () => DEFAULT_DATA_FLOW_LIMITS,
45
45
  DEFAULT_RUNTIME_DATA_FLOW_LIMITS: () => DEFAULT_RUNTIME_DATA_FLOW_LIMITS,
46
46
  ERROR_CODES: () => ERROR_CODES,
47
+ ERROR_CODE_VALUES: () => ERROR_CODE_VALUES,
48
+ EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS: () => EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS,
49
+ EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES: () => EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES,
50
+ EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION: () => EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION,
51
+ EXTERNAL_HANDOFF_DISPATCH_PHASES: () => EXTERNAL_HANDOFF_DISPATCH_PHASES,
52
+ EXTERNAL_HANDOFF_FRAMEWORKS: () => EXTERNAL_HANDOFF_FRAMEWORKS,
53
+ EXTERNAL_HANDOFF_LIMITS: () => EXTERNAL_HANDOFF_LIMITS,
54
+ EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES: () => EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES,
55
+ EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION: () => EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION,
56
+ EXTERNAL_HANDOFF_STATES: () => EXTERNAL_HANDOFF_STATES,
47
57
  MAX_ANNOTATION_INSTRUCTION_CHARACTERS: () => MAX_ANNOTATION_INSTRUCTION_CHARACTERS,
48
58
  MAX_ANNOTATION_TARGETS: () => MAX_ANNOTATION_TARGETS,
49
59
  MAX_TARGET_INSTRUCTION_CHARACTERS: () => MAX_TARGET_INSTRUCTION_CHARACTERS,
@@ -58,6 +68,7 @@ __export(index_exports, {
58
68
  SPOTPATCH_REPOSITORY_URL: () => SPOTPATCH_REPOSITORY_URL,
59
69
  SPOTPATCH_TOKEN_HEADER: () => SPOTPATCH_TOKEN_HEADER,
60
70
  SpotPatchError: () => SpotPatchError,
71
+ activeAdapterSummarySchema: () => activeAdapterSummarySchema,
61
72
  agentCapabilityRequestSchema: () => agentCapabilityRequestSchema,
62
73
  agentCapabilitySnapshotSchema: () => agentCapabilitySnapshotSchema,
63
74
  agentChangedFileSchema: () => agentChangedFileSchema,
@@ -74,8 +85,21 @@ __export(index_exports, {
74
85
  dataDependencySchema: () => dataDependencySchema,
75
86
  dataFlowComponentReportRequestSchema: () => dataFlowComponentReportRequestSchema,
76
87
  dataFlowPageReportRequestSchema: () => dataFlowPageReportRequestSchema,
88
+ dispatchSummarySchema: () => dispatchSummarySchema,
89
+ externalHandoffCapabilityRequestSchema: () => externalHandoffCapabilityRequestSchema,
90
+ externalHandoffCapabilitySchema: () => externalHandoffCapabilitySchema,
91
+ externalHandoffPublishDeliverySchema: () => externalHandoffPublishDeliverySchema,
92
+ externalHandoffPublishRequestSchema: () => externalHandoffPublishRequestSchema,
93
+ externalHandoffPublishResultSchema: () => externalHandoffPublishResultSchema,
94
+ externalHandoffReportableDispatchPhaseSchema: () => externalHandoffReportableDispatchPhaseSchema,
95
+ externalHandoffResolveDeliveryRequestSchema: () => externalHandoffResolveDeliveryRequestSchema,
96
+ externalHandoffSnapshotSchema: () => externalHandoffSnapshotSchema,
97
+ externalHandoffStatusRequestSchema: () => externalHandoffStatusRequestSchema,
98
+ externalHandoffStatusResultSchema: () => externalHandoffStatusResultSchema,
99
+ externalHandoffSummarySchema: () => externalHandoffSummarySchema,
77
100
  formatSourceMarker: () => formatSourceMarker,
78
101
  getAgentJobEndpoint: () => getAgentJobEndpoint,
102
+ isErrorCode: () => isErrorCode,
79
103
  isSensitiveName: () => isSensitiveName,
80
104
  limitDataFlowReportCollections: () => limitDataFlowReportCollections,
81
105
  networkObservationSchema: () => networkObservationSchema,
@@ -125,6 +149,24 @@ var ERROR_CODES = {
125
149
  AGENT_BUSY: "AGENT_BUSY",
126
150
  AGENT_LIMIT_EXCEEDED: "AGENT_LIMIT_EXCEEDED",
127
151
  AGENT_CANCELLED: "AGENT_CANCELLED",
152
+ EXTERNAL_HANDOFF_DISABLED: "EXTERNAL_HANDOFF_DISABLED",
153
+ EXTERNAL_HANDOFF_UNAVAILABLE: "EXTERNAL_HANDOFF_UNAVAILABLE",
154
+ HANDOFF_VALIDATION_FAILED: "HANDOFF_VALIDATION_FAILED",
155
+ HANDOFF_SOURCE_STALE: "HANDOFF_SOURCE_STALE",
156
+ HANDOFF_NOT_FOUND: "HANDOFF_NOT_FOUND",
157
+ HANDOFF_EXPIRED: "HANDOFF_EXPIRED",
158
+ HANDOFF_CURSOR_INVALID: "HANDOFF_CURSOR_INVALID",
159
+ HANDOFF_RESPONSE_TOO_LARGE: "HANDOFF_RESPONSE_TOO_LARGE",
160
+ BRIDGE_UNAUTHORIZED: "BRIDGE_UNAUTHORIZED",
161
+ BRIDGE_PROTOCOL_MISMATCH: "BRIDGE_PROTOCOL_MISMATCH",
162
+ BRIDGE_BUSY: "BRIDGE_BUSY",
163
+ EXTERNAL_AGENT_BUSY: "EXTERNAL_AGENT_BUSY",
164
+ ACTIVE_ADAPTER_CONFLICT: "ACTIVE_ADAPTER_CONFLICT",
165
+ ACTIVE_ADAPTER_LEASE_INVALID: "ACTIVE_ADAPTER_LEASE_INVALID",
166
+ ACTIVE_DISPATCH_INVALID: "ACTIVE_DISPATCH_INVALID",
167
+ SESSION_NOT_FOUND: "SESSION_NOT_FOUND",
168
+ SESSION_AMBIGUOUS: "SESSION_AMBIGUOUS",
169
+ SESSION_CLOSED: "SESSION_CLOSED",
128
170
  WORKTREE_DIRTY: "WORKTREE_DIRTY",
129
171
  WORKTREE_NOT_REPOSITORY: "WORKTREE_NOT_REPOSITORY",
130
172
  WORKTREE_OPERATION_IN_PROGRESS: "WORKTREE_OPERATION_IN_PROGRESS",
@@ -142,6 +184,10 @@ var ERROR_CODES = {
142
184
  APPLY_CONFLICT: "APPLY_CONFLICT",
143
185
  INTERNAL_ERROR: "INTERNAL_ERROR"
144
186
  };
187
+ var ERROR_CODE_VALUES = Object.freeze(Object.values(ERROR_CODES));
188
+ function isErrorCode(value) {
189
+ return typeof value === "string" && ERROR_CODE_VALUES.includes(value);
190
+ }
145
191
 
146
192
  // src/security/redaction.ts
147
193
  var INLINE_DATA_PATTERN = /data:[^\s"'<>]*;base64,[a-z0-9+/_=-]+/giu;
@@ -712,7 +758,11 @@ var SPOTPATCH_ENDPOINTS = Object.freeze({
712
758
  dataFlowPageReport: `${SPOTPATCH_API_BASE}/data-flow/page-report`,
713
759
  agentCapability: `${SPOTPATCH_API_BASE}/agent/capability`,
714
760
  agentWorkspaceHealth: `${SPOTPATCH_API_BASE}/agent/workspace-health`,
715
- agentJobs: `${SPOTPATCH_API_BASE}/agent/jobs`
761
+ agentJobs: `${SPOTPATCH_API_BASE}/agent/jobs`,
762
+ externalHandoffCapability: `${SPOTPATCH_API_BASE}/external-handoff/capability`,
763
+ externalHandoffPublish: `${SPOTPATCH_API_BASE}/external-handoff/publish`,
764
+ externalHandoffStatus: `${SPOTPATCH_API_BASE}/external-handoff/status`,
765
+ externalHandoffResolveDelivery: `${SPOTPATCH_API_BASE}/external-handoff/resolve-delivery`
716
766
  });
717
767
  function getAgentJobEndpoint(jobId, action) {
718
768
  return `${SPOTPATCH_ENDPOINTS.agentJobs}/${encodeURIComponent(jobId)}/${action}`;
@@ -834,6 +884,7 @@ var runtimeConfigBaseShape = {
834
884
  debug: import_zod2.z.boolean(),
835
885
  dataFlow: runtimeDataFlowConfigSchema,
836
886
  editor: import_zod2.z.enum(SPOTPATCH_EDITOR_PREFERENCES),
887
+ externalAgent: import_zod2.z.strictObject({ enabled: import_zod2.z.boolean() }),
837
888
  frameworkVersion: boundedText2(64),
838
889
  locale: import_zod2.z.enum(SPOTPATCH_LOCALE_PREFERENCES),
839
890
  maxTargets: import_zod2.z.number().int().min(1).max(MAX_ANNOTATION_TARGETS),
@@ -879,6 +930,9 @@ function parseSourceMarker(value) {
879
930
  return Object.freeze({ fileId, line, column });
880
931
  }
881
932
 
933
+ // src/protocol/external-handoff.ts
934
+ var import_zod4 = require("zod");
935
+
882
936
  // src/protocol/requests.ts
883
937
  var import_zod3 = require("zod");
884
938
  var runtimeBootstrapRequestSchema = import_zod3.z.strictObject({});
@@ -1012,37 +1066,196 @@ var agentJobCreateRequestSchema = import_zod3.z.strictObject({
1012
1066
  });
1013
1067
  var agentJobActionRequestSchema = import_zod3.z.strictObject({});
1014
1068
 
1069
+ // src/protocol/external-handoff-constants.ts
1070
+ var EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION = 1;
1071
+ var EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION = 2;
1072
+ var EXTERNAL_HANDOFF_STATES = Object.freeze([
1073
+ "available",
1074
+ "expired",
1075
+ "superseded"
1076
+ ]);
1077
+ var EXTERNAL_HANDOFF_FRAMEWORKS = Object.freeze(["vite", "next"]);
1078
+ var EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS = Object.freeze([
1079
+ "claude-channel",
1080
+ "codex-app-server"
1081
+ ]);
1082
+ var EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES = Object.freeze([
1083
+ "ready",
1084
+ "busy",
1085
+ "blocked"
1086
+ ]);
1087
+ var EXTERNAL_HANDOFF_DISPATCH_PHASES = Object.freeze([
1088
+ "queued",
1089
+ "dispatching",
1090
+ "dispatched",
1091
+ "working",
1092
+ "completed",
1093
+ "failed",
1094
+ "delivery-unknown"
1095
+ ]);
1096
+ var EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES = Object.freeze([
1097
+ "dispatching",
1098
+ "dispatched",
1099
+ "working",
1100
+ "completed",
1101
+ "failed",
1102
+ "delivery-unknown"
1103
+ ]);
1104
+ var EXTERNAL_HANDOFF_LIMITS = Object.freeze({
1105
+ maximumSnapshotBytes: 256 * 1024,
1106
+ maximumPublishBodyBytes: 256 * 1024,
1107
+ maximumBrokerRequestBytes: 8 * 1024,
1108
+ maximumDescriptorBytes: 8 * 1024,
1109
+ maximumHistorySummaries: 8,
1110
+ maximumConnectorReceipts: 64,
1111
+ handoffTtlMs: 15 * 60 * 1e3,
1112
+ defaultWaitMs: 2e4,
1113
+ maximumWaitMs: 25e3,
1114
+ maximumWaiters: 8,
1115
+ maximumDescriptorsPerScan: 32,
1116
+ maximumProjectAncestors: 64,
1117
+ maximumBrokerHeaderBytes: 8 * 1024,
1118
+ maximumBrokerSockets: 32,
1119
+ brokerDiscoveryTimeoutMs: 750,
1120
+ brokerRequestTimeoutMs: 2e3,
1121
+ brokerWaitGraceMs: 2e3,
1122
+ maximumSetupConfigBytes: 1024 * 1024,
1123
+ maximumRequestIdRecords: 16,
1124
+ requestIdTtlMs: 15 * 60 * 1e3,
1125
+ activeHeartbeatIntervalMs: 3e3,
1126
+ activeLeaseDurationMs: 1e4,
1127
+ activeTransportWriteTimeoutMs: 5e3,
1128
+ activeDispatchTimeoutMs: 30 * 60 * 1e3,
1129
+ activeStatusPollMs: 1e3
1130
+ });
1131
+
1132
+ // src/protocol/external-handoff.ts
1133
+ var opaqueIdSchema2 = import_zod4.z.string().min(22).max(128).regex(/^[A-Za-z0-9_-]+$/u);
1134
+ var isoTimestampSchema = import_zod4.z.iso.datetime();
1135
+ var externalHandoffReportableDispatchPhaseSchema = import_zod4.z.enum(
1136
+ EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES
1137
+ );
1138
+ var externalHandoffPageSummarySchema = import_zod4.z.strictObject({
1139
+ origin: import_zod4.z.string().min(1).max(2048),
1140
+ pathname: import_zod4.z.string().min(1).max(2048)
1141
+ });
1142
+ var externalHandoffSummarySchema = import_zod4.z.strictObject({
1143
+ sessionId: opaqueIdSchema2,
1144
+ framework: import_zod4.z.enum(EXTERNAL_HANDOFF_FRAMEWORKS),
1145
+ revision: import_zod4.z.number().int().positive(),
1146
+ cursor: opaqueIdSchema2,
1147
+ targetCount: import_zod4.z.number().int().positive(),
1148
+ page: externalHandoffPageSummarySchema,
1149
+ publishedAt: isoTimestampSchema,
1150
+ expiresAt: isoTimestampSchema,
1151
+ state: import_zod4.z.enum(EXTERNAL_HANDOFF_STATES),
1152
+ pickupCount: import_zod4.z.number().int().nonnegative().max(EXTERNAL_HANDOFF_LIMITS.maximumConnectorReceipts),
1153
+ pickedUpAt: isoTimestampSchema.optional()
1154
+ });
1155
+ var externalHandoffSnapshotSchema = import_zod4.z.strictObject({
1156
+ schemaVersion: import_zod4.z.literal(EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION),
1157
+ cursor: opaqueIdSchema2,
1158
+ session: import_zod4.z.strictObject({
1159
+ id: opaqueIdSchema2,
1160
+ framework: import_zod4.z.enum(EXTERNAL_HANDOFF_FRAMEWORKS)
1161
+ }),
1162
+ revision: import_zod4.z.number().int().positive(),
1163
+ publishedAt: isoTimestampSchema,
1164
+ expiresAt: isoTimestampSchema,
1165
+ annotation: spotAnnotationRequestSchema
1166
+ });
1167
+ var activeAdapterSummarySchema = import_zod4.z.strictObject({
1168
+ kind: import_zod4.z.enum(EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS),
1169
+ state: import_zod4.z.enum(EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES),
1170
+ canDispatch: import_zod4.z.boolean(),
1171
+ connectedAt: isoTimestampSchema,
1172
+ updatedAt: isoTimestampSchema
1173
+ }).superRefine((value, context) => {
1174
+ if (value.canDispatch !== (value.state === "ready")) {
1175
+ context.addIssue({
1176
+ code: "custom",
1177
+ message: "canDispatch must match the ready state.",
1178
+ path: ["canDispatch"]
1179
+ });
1180
+ }
1181
+ });
1182
+ var dispatchSummarySchema = import_zod4.z.strictObject({
1183
+ adapterKind: import_zod4.z.enum(EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS),
1184
+ revision: import_zod4.z.number().int().positive(),
1185
+ phase: import_zod4.z.enum(EXTERNAL_HANDOFF_DISPATCH_PHASES),
1186
+ updatedAt: isoTimestampSchema
1187
+ });
1188
+ var externalHandoffCapabilityRequestSchema = import_zod4.z.strictObject({});
1189
+ var externalHandoffPublishRequestSchema = import_zod4.z.strictObject({
1190
+ requestId: opaqueIdSchema2,
1191
+ annotation: spotAnnotationRequestSchema
1192
+ });
1193
+ var externalHandoffStatusRequestSchema = import_zod4.z.strictObject({
1194
+ cursor: opaqueIdSchema2.optional()
1195
+ });
1196
+ var externalHandoffResolveDeliveryRequestSchema = import_zod4.z.strictObject({
1197
+ cursor: opaqueIdSchema2,
1198
+ confirmation: import_zod4.z.literal("workspace-reviewed")
1199
+ });
1200
+ var externalHandoffCapabilitySchema = import_zod4.z.strictObject({
1201
+ enabled: import_zod4.z.literal(true),
1202
+ brokerReady: import_zod4.z.boolean(),
1203
+ activeWaitCount: import_zod4.z.number().int().nonnegative().max(EXTERNAL_HANDOFF_LIMITS.maximumWaiters),
1204
+ snapshotSchemaVersion: import_zod4.z.literal(EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION),
1205
+ brokerProtocolVersion: import_zod4.z.literal(EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION),
1206
+ activeAdapter: activeAdapterSummarySchema.nullable(),
1207
+ dispatch: dispatchSummarySchema.nullable()
1208
+ });
1209
+ var externalHandoffPublishDeliverySchema = import_zod4.z.discriminatedUnion("mode", [
1210
+ import_zod4.z.strictObject({ mode: import_zod4.z.literal("inbox") }),
1211
+ import_zod4.z.strictObject({
1212
+ mode: import_zod4.z.literal("active"),
1213
+ adapter: activeAdapterSummarySchema,
1214
+ dispatch: dispatchSummarySchema
1215
+ })
1216
+ ]);
1217
+ var externalHandoffPublishResultSchema = import_zod4.z.strictObject({
1218
+ handoff: externalHandoffSummarySchema,
1219
+ delivery: externalHandoffPublishDeliverySchema,
1220
+ replayed: import_zod4.z.boolean()
1221
+ });
1222
+ var externalHandoffStatusResultSchema = import_zod4.z.strictObject({
1223
+ handoff: externalHandoffSummarySchema,
1224
+ activeAdapter: activeAdapterSummarySchema.nullable(),
1225
+ dispatch: dispatchSummarySchema.nullable()
1226
+ });
1227
+
1015
1228
  // src/protocol/agent-schemas.ts
1016
- var import_zod4 = require("zod");
1017
- var profileIdSchema3 = import_zod4.z.string().min(1).max(64).regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/);
1018
- var boundedString2 = (maximum) => import_zod4.z.string().max(maximum);
1019
- var errorCodeSchema = import_zod4.z.enum(ERROR_CODES);
1020
- var agentCapabilitySnapshotSchema = import_zod4.z.strictObject({
1229
+ var import_zod5 = require("zod");
1230
+ var profileIdSchema3 = import_zod5.z.string().min(1).max(64).regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/);
1231
+ var boundedString2 = (maximum) => import_zod5.z.string().max(maximum);
1232
+ var errorCodeSchema = import_zod5.z.enum(ERROR_CODES);
1233
+ var agentCapabilitySnapshotSchema = import_zod5.z.strictObject({
1021
1234
  providerProfileId: profileIdSchema3,
1022
1235
  providerLabel: boundedString2(100),
1023
1236
  modelProfileId: profileIdSchema3,
1024
1237
  modelLabel: boundedString2(100),
1025
- protocol: import_zod4.z.enum(["responses", "chat-completions"]),
1026
- state: import_zod4.z.enum(AGENT_CAPABILITY_STATES),
1027
- authenticated: import_zod4.z.boolean(),
1028
- modelAvailable: import_zod4.z.boolean(),
1029
- toolCalling: import_zod4.z.boolean(),
1030
- toolResultContinuation: import_zod4.z.boolean(),
1031
- streaming: import_zod4.z.boolean(),
1032
- checkedAt: import_zod4.z.iso.datetime().optional(),
1238
+ protocol: import_zod5.z.enum(["responses", "chat-completions"]),
1239
+ state: import_zod5.z.enum(AGENT_CAPABILITY_STATES),
1240
+ authenticated: import_zod5.z.boolean(),
1241
+ modelAvailable: import_zod5.z.boolean(),
1242
+ toolCalling: import_zod5.z.boolean(),
1243
+ toolResultContinuation: import_zod5.z.boolean(),
1244
+ streaming: import_zod5.z.boolean(),
1245
+ checkedAt: import_zod5.z.iso.datetime().optional(),
1033
1246
  errorCode: errorCodeSchema.optional()
1034
1247
  });
1035
- var agentWorkspaceHealthSnapshotSchema = import_zod4.z.strictObject({
1036
- state: import_zod4.z.enum(AGENT_WORKSPACE_STATES),
1037
- checkedAt: import_zod4.z.iso.datetime(),
1038
- changes: import_zod4.z.strictObject({
1039
- staged: import_zod4.z.number().int().nonnegative(),
1040
- unstaged: import_zod4.z.number().int().nonnegative(),
1041
- untracked: import_zod4.z.number().int().nonnegative(),
1042
- conflicted: import_zod4.z.number().int().nonnegative(),
1043
- total: import_zod4.z.number().int().nonnegative()
1248
+ var agentWorkspaceHealthSnapshotSchema = import_zod5.z.strictObject({
1249
+ state: import_zod5.z.enum(AGENT_WORKSPACE_STATES),
1250
+ checkedAt: import_zod5.z.iso.datetime(),
1251
+ changes: import_zod5.z.strictObject({
1252
+ staged: import_zod5.z.number().int().nonnegative(),
1253
+ unstaged: import_zod5.z.number().int().nonnegative(),
1254
+ untracked: import_zod5.z.number().int().nonnegative(),
1255
+ conflicted: import_zod5.z.number().int().nonnegative(),
1256
+ total: import_zod5.z.number().int().nonnegative()
1044
1257
  }),
1045
- canIncludeLocalChanges: import_zod4.z.boolean(),
1258
+ canIncludeLocalChanges: import_zod5.z.boolean(),
1046
1259
  errorCode: errorCodeSchema.optional()
1047
1260
  }).refine(
1048
1261
  ({ state, changes, canIncludeLocalChanges, errorCode }) => {
@@ -1060,42 +1273,42 @@ var agentWorkspaceHealthSnapshotSchema = import_zod4.z.strictObject({
1060
1273
  },
1061
1274
  { message: "Agent workspace health fields are inconsistent." }
1062
1275
  );
1063
- var agentChangedFileSchema = import_zod4.z.strictObject({
1276
+ var agentChangedFileSchema = import_zod5.z.strictObject({
1064
1277
  relativePath: boundedString2(1024),
1065
- kind: import_zod4.z.enum(AGENT_FILE_CHANGE_KINDS),
1066
- additions: import_zod4.z.number().int().nonnegative(),
1067
- deletions: import_zod4.z.number().int().nonnegative()
1278
+ kind: import_zod5.z.enum(AGENT_FILE_CHANGE_KINDS),
1279
+ additions: import_zod5.z.number().int().nonnegative(),
1280
+ deletions: import_zod5.z.number().int().nonnegative()
1068
1281
  });
1069
- var agentCheckResultSchema = import_zod4.z.strictObject({
1282
+ var agentCheckResultSchema = import_zod5.z.strictObject({
1070
1283
  checkId: profileIdSchema3,
1071
1284
  label: boundedString2(100),
1072
- status: import_zod4.z.enum(AGENT_CHECK_STATUSES),
1073
- durationMs: import_zod4.z.number().int().nonnegative(),
1285
+ status: import_zod5.z.enum(AGENT_CHECK_STATUSES),
1286
+ durationMs: import_zod5.z.number().int().nonnegative(),
1074
1287
  output: boundedString2(8e4)
1075
1288
  });
1076
- var agentJobSnapshotSchema = import_zod4.z.strictObject({
1077
- jobId: import_zod4.z.string().min(22).max(128).regex(/^[A-Za-z0-9_-]+$/),
1078
- status: import_zod4.z.enum(AGENT_JOB_STATUSES),
1289
+ var agentJobSnapshotSchema = import_zod5.z.strictObject({
1290
+ jobId: import_zod5.z.string().min(22).max(128).regex(/^[A-Za-z0-9_-]+$/),
1291
+ status: import_zod5.z.enum(AGENT_JOB_STATUSES),
1079
1292
  providerProfileId: profileIdSchema3,
1080
1293
  providerLabel: boundedString2(100),
1081
1294
  modelProfileId: profileIdSchema3,
1082
1295
  modelLabel: boundedString2(100),
1083
1296
  phaseMessage: boundedString2(1024),
1084
- createdAt: import_zod4.z.iso.datetime(),
1085
- updatedAt: import_zod4.z.iso.datetime(),
1086
- canCancel: import_zod4.z.boolean(),
1087
- canApply: import_zod4.z.boolean(),
1088
- canRevert: import_zod4.z.boolean(),
1297
+ createdAt: import_zod5.z.iso.datetime(),
1298
+ updatedAt: import_zod5.z.iso.datetime(),
1299
+ canCancel: import_zod5.z.boolean(),
1300
+ canApply: import_zod5.z.boolean(),
1301
+ canRevert: import_zod5.z.boolean(),
1089
1302
  errorCode: errorCodeSchema.optional()
1090
1303
  });
1091
- var agentJobResultSchema = import_zod4.z.strictObject({
1092
- jobId: import_zod4.z.string().min(22).max(128).regex(/^[A-Za-z0-9_-]+$/),
1304
+ var agentJobResultSchema = import_zod5.z.strictObject({
1305
+ jobId: import_zod5.z.string().min(22).max(128).regex(/^[A-Za-z0-9_-]+$/),
1093
1306
  summary: boundedString2(8e4),
1094
1307
  diff: boundedString2(1e6),
1095
- files: import_zod4.z.array(agentChangedFileSchema).max(100),
1096
- checks: import_zod4.z.array(agentCheckResultSchema).max(100)
1308
+ files: import_zod5.z.array(agentChangedFileSchema).max(100),
1309
+ checks: import_zod5.z.array(agentCheckResultSchema).max(100)
1097
1310
  });
1098
- var agentJobResultResponseSchema = import_zod4.z.strictObject({
1311
+ var agentJobResultResponseSchema = import_zod5.z.strictObject({
1099
1312
  snapshot: agentJobSnapshotSchema,
1100
1313
  result: agentJobResultSchema.optional()
1101
1314
  }).superRefine((value, context) => {
@@ -1107,44 +1320,44 @@ var agentJobResultResponseSchema = import_zod4.z.strictObject({
1107
1320
  });
1108
1321
  }
1109
1322
  });
1110
- var agentJobEventBaseSchema = import_zod4.z.strictObject({
1111
- schemaVersion: import_zod4.z.literal(2),
1112
- sequence: import_zod4.z.number().int().positive(),
1113
- jobId: import_zod4.z.string().min(22).max(128).regex(/^[A-Za-z0-9_-]+$/),
1114
- status: import_zod4.z.enum(AGENT_JOB_STATUSES),
1115
- timestamp: import_zod4.z.iso.datetime()
1323
+ var agentJobEventBaseSchema = import_zod5.z.strictObject({
1324
+ schemaVersion: import_zod5.z.literal(2),
1325
+ sequence: import_zod5.z.number().int().positive(),
1326
+ jobId: import_zod5.z.string().min(22).max(128).regex(/^[A-Za-z0-9_-]+$/),
1327
+ status: import_zod5.z.enum(AGENT_JOB_STATUSES),
1328
+ timestamp: import_zod5.z.iso.datetime()
1116
1329
  });
1117
- var agentJobEventSchema = import_zod4.z.discriminatedUnion("type", [
1330
+ var agentJobEventSchema = import_zod5.z.discriminatedUnion("type", [
1118
1331
  agentJobEventBaseSchema.extend({
1119
- type: import_zod4.z.literal("snapshot"),
1120
- data: import_zod4.z.strictObject({ snapshot: agentJobSnapshotSchema })
1332
+ type: import_zod5.z.literal("snapshot"),
1333
+ data: import_zod5.z.strictObject({ snapshot: agentJobSnapshotSchema })
1121
1334
  }),
1122
1335
  agentJobEventBaseSchema.extend({
1123
- type: import_zod4.z.literal("phase"),
1124
- data: import_zod4.z.strictObject({ message: boundedString2(1024) })
1336
+ type: import_zod5.z.literal("phase"),
1337
+ data: import_zod5.z.strictObject({ message: boundedString2(1024) })
1125
1338
  }),
1126
1339
  agentJobEventBaseSchema.extend({
1127
- type: import_zod4.z.literal("tool"),
1128
- data: import_zod4.z.strictObject({
1129
- turn: import_zod4.z.number().int().positive(),
1340
+ type: import_zod5.z.literal("tool"),
1341
+ data: import_zod5.z.strictObject({
1342
+ turn: import_zod5.z.number().int().positive(),
1130
1343
  toolCallId: boundedString2(256),
1131
1344
  toolName: boundedString2(100),
1132
- state: import_zod4.z.enum(["started", "succeeded", "failed"]),
1345
+ state: import_zod5.z.enum(["started", "succeeded", "failed"]),
1133
1346
  relativePath: boundedString2(1024).optional(),
1134
1347
  checkLabel: boundedString2(100).optional()
1135
1348
  })
1136
1349
  }),
1137
1350
  agentJobEventBaseSchema.extend({
1138
- type: import_zod4.z.literal("check"),
1139
- data: import_zod4.z.strictObject({ result: agentCheckResultSchema })
1351
+ type: import_zod5.z.literal("check"),
1352
+ data: import_zod5.z.strictObject({ result: agentCheckResultSchema })
1140
1353
  }),
1141
1354
  agentJobEventBaseSchema.extend({
1142
- type: import_zod4.z.literal("result-ready"),
1143
- data: import_zod4.z.strictObject({ hasResult: import_zod4.z.literal(true) })
1355
+ type: import_zod5.z.literal("result-ready"),
1356
+ data: import_zod5.z.strictObject({ hasResult: import_zod5.z.literal(true) })
1144
1357
  }),
1145
1358
  agentJobEventBaseSchema.extend({
1146
- type: import_zod4.z.literal("error"),
1147
- data: import_zod4.z.strictObject({
1359
+ type: import_zod5.z.literal("error"),
1360
+ data: import_zod5.z.strictObject({
1148
1361
  code: errorCodeSchema,
1149
1362
  message: boundedString2(1024)
1150
1363
  })
@@ -1197,6 +1410,16 @@ var SPOTPATCH_REPOSITORY_URL = "https://github.com/huanglvjing/spotpatch";
1197
1410
  DEFAULT_DATA_FLOW_LIMITS,
1198
1411
  DEFAULT_RUNTIME_DATA_FLOW_LIMITS,
1199
1412
  ERROR_CODES,
1413
+ ERROR_CODE_VALUES,
1414
+ EXTERNAL_HANDOFF_ACTIVE_ADAPTER_KINDS,
1415
+ EXTERNAL_HANDOFF_ACTIVE_ADAPTER_STATES,
1416
+ EXTERNAL_HANDOFF_BROKER_PROTOCOL_VERSION,
1417
+ EXTERNAL_HANDOFF_DISPATCH_PHASES,
1418
+ EXTERNAL_HANDOFF_FRAMEWORKS,
1419
+ EXTERNAL_HANDOFF_LIMITS,
1420
+ EXTERNAL_HANDOFF_REPORTABLE_DISPATCH_PHASES,
1421
+ EXTERNAL_HANDOFF_SNAPSHOT_SCHEMA_VERSION,
1422
+ EXTERNAL_HANDOFF_STATES,
1200
1423
  MAX_ANNOTATION_INSTRUCTION_CHARACTERS,
1201
1424
  MAX_ANNOTATION_TARGETS,
1202
1425
  MAX_TARGET_INSTRUCTION_CHARACTERS,
@@ -1211,6 +1434,7 @@ var SPOTPATCH_REPOSITORY_URL = "https://github.com/huanglvjing/spotpatch";
1211
1434
  SPOTPATCH_REPOSITORY_URL,
1212
1435
  SPOTPATCH_TOKEN_HEADER,
1213
1436
  SpotPatchError,
1437
+ activeAdapterSummarySchema,
1214
1438
  agentCapabilityRequestSchema,
1215
1439
  agentCapabilitySnapshotSchema,
1216
1440
  agentChangedFileSchema,
@@ -1227,8 +1451,21 @@ var SPOTPATCH_REPOSITORY_URL = "https://github.com/huanglvjing/spotpatch";
1227
1451
  dataDependencySchema,
1228
1452
  dataFlowComponentReportRequestSchema,
1229
1453
  dataFlowPageReportRequestSchema,
1454
+ dispatchSummarySchema,
1455
+ externalHandoffCapabilityRequestSchema,
1456
+ externalHandoffCapabilitySchema,
1457
+ externalHandoffPublishDeliverySchema,
1458
+ externalHandoffPublishRequestSchema,
1459
+ externalHandoffPublishResultSchema,
1460
+ externalHandoffReportableDispatchPhaseSchema,
1461
+ externalHandoffResolveDeliveryRequestSchema,
1462
+ externalHandoffSnapshotSchema,
1463
+ externalHandoffStatusRequestSchema,
1464
+ externalHandoffStatusResultSchema,
1465
+ externalHandoffSummarySchema,
1230
1466
  formatSourceMarker,
1231
1467
  getAgentJobEndpoint,
1468
+ isErrorCode,
1232
1469
  isSensitiveName,
1233
1470
  limitDataFlowReportCollections,
1234
1471
  networkObservationSchema,