hankweave 0.5.7 → 0.6.2
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.
- package/README.md +12 -11
- package/dist/base-process-manager.d.ts +30 -0
- package/dist/budget.d.ts +315 -0
- package/dist/checkpoint-git.d.ts +98 -0
- package/dist/claude-agent-sdk-manager.d.ts +144 -0
- package/dist/claude-log-parser.d.ts +63 -0
- package/dist/claude-runtime-extractor.d.ts +73 -0
- package/dist/codex-runtime-extractor.d.ts +107 -0
- package/dist/codon-runner.d.ts +278 -0
- package/dist/config-validation/model-validator.d.ts +16 -0
- package/dist/config-validation/sentinel.schema.d.ts +6967 -0
- package/dist/config.d.ts +40815 -0
- package/dist/cost-tracker.d.ts +72 -0
- package/dist/execution-planner.d.ts +62 -0
- package/dist/execution-thread.d.ts +71 -0
- package/dist/exports/schemas.d.ts +9 -0
- package/dist/exports/schemas.js +1019 -0
- package/dist/exports/types.d.ts +15 -0
- package/dist/exports/types.js +60 -0
- package/dist/file-resolver.d.ts +33 -0
- package/dist/index.js +380 -293
- package/dist/index.js.map +33 -29
- package/dist/llm/llm-provider-registry.d.ts +207 -0
- package/dist/llm/models-dev-schema.d.ts +679 -0
- package/dist/llm/provider-config.d.ts +30 -0
- package/dist/prompt-builder.d.ts +75 -0
- package/dist/prompt-frontmatter.d.ts +61 -0
- package/dist/replay-process-manager.d.ts +82 -0
- package/dist/runtime-extractor-base.d.ts +120 -0
- package/dist/schemas/event-schemas.d.ts +8389 -0
- package/dist/schemas/websocket-log-schemas.d.ts +4502 -0
- package/dist/shim-process-manager.d.ts +98 -0
- package/dist/shim-runtime-extractor.d.ts +51 -0
- package/dist/shims/codex/README.md +129 -0
- package/dist/shims/codex/THIRDPARTY.md +18 -0
- package/dist/shims/codex/VERSION +1 -0
- package/dist/shims/codex/common/package.json +24 -0
- package/dist/shims/codex/index.js +1154 -970
- package/dist/shims/codex/package.json +46 -0
- package/dist/shims/codex/tsup.config.ts +16 -0
- package/dist/shims/gemini/README.md +59 -0
- package/dist/shims/gemini/THIRDPARTY.md +32 -0
- package/dist/shims/gemini/VERSION +1 -0
- package/dist/shims/gemini/common/package.json +24 -0
- package/dist/shims/gemini/index.js +1359 -30
- package/dist/shims/gemini/package.json +37 -0
- package/dist/shims/opencode/README.md +82 -0
- package/dist/shims/opencode/THIRDPARTY.md +32 -0
- package/dist/shims/opencode/VERSION +1 -0
- package/dist/shims/opencode/common/package.json +24 -0
- package/dist/shims/opencode/index.js +1476 -0
- package/dist/shims/opencode/package.json +38 -0
- package/dist/shims/pi/README.md +87 -0
- package/dist/shims/pi/THIRDPARTY.md +24 -0
- package/dist/shims/pi/VERSION +1 -0
- package/dist/shims/pi/common/package.json +24 -0
- package/dist/shims/pi/index.js +249832 -0
- package/dist/shims/pi/package.json +53 -0
- package/dist/state-manager.d.ts +161 -0
- package/dist/state-transition-guards.d.ts +37 -0
- package/dist/telemetry/telemetry-types.d.ts +206 -0
- package/dist/typed-event-emitter.d.ts +57 -0
- package/dist/types/branded-types.d.ts +15 -0
- package/dist/types/budget-types.d.ts +82 -0
- package/dist/types/claude-session-schema.d.ts +2430 -0
- package/dist/types/error-types.d.ts +44 -0
- package/dist/types/input-ai-types.d.ts +1070 -0
- package/dist/types/llm-call-types.d.ts +3829 -0
- package/dist/types/sentinel-types.d.ts +66 -0
- package/dist/types/state-types.d.ts +1099 -0
- package/dist/types/tool-types.d.ts +86 -0
- package/dist/types/types.d.ts +367 -0
- package/dist/types/websocket-log-types.d.ts +7 -0
- package/dist/utils.d.ts +452 -0
- package/package.json +15 -2
- package/schemas/hank.schema.json +158 -3
- package/schemas/hankweave.schema.json +17 -1
- package/shims/codex/index.js +0 -1583
- package/shims/gemini/index.js +0 -31
|
@@ -0,0 +1,1019 @@
|
|
|
1
|
+
// server/schemas/event-schemas.ts
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
// server/types/budget-types.ts
|
|
5
|
+
var BUDGET_CURRENCIES = ["cost", "duration", "outputTokens", "contextTokens"];
|
|
6
|
+
|
|
7
|
+
// server/schemas/event-schemas.ts
|
|
8
|
+
var processExitSchema = z.discriminatedUnion("type", [
|
|
9
|
+
z.object({ type: z.literal("success") }),
|
|
10
|
+
z.object({ type: z.literal("error"), code: z.number() }),
|
|
11
|
+
z.object({ type: z.literal("killed"), signal: z.string() })
|
|
12
|
+
]);
|
|
13
|
+
var failureReasonSchema = z.object({
|
|
14
|
+
type: z.enum(["timeout", "rate-limit", "api-error", "sentinel-load-failure", "unknown"]),
|
|
15
|
+
retriable: z.boolean(),
|
|
16
|
+
message: z.string().optional(),
|
|
17
|
+
sentinelRefs: z.array(z.string()).optional()
|
|
18
|
+
});
|
|
19
|
+
var budgetExceededDataSchema = z.object({
|
|
20
|
+
currency: z.enum(BUDGET_CURRENCIES),
|
|
21
|
+
limit: z.number(),
|
|
22
|
+
used: z.number()
|
|
23
|
+
});
|
|
24
|
+
var tokenUsageSchema = z.object({
|
|
25
|
+
inputTokens: z.number(),
|
|
26
|
+
outputTokens: z.number(),
|
|
27
|
+
cacheCreationTokens: z.number(),
|
|
28
|
+
cacheReadTokens: z.number()
|
|
29
|
+
});
|
|
30
|
+
var fileNodeSchema = z.lazy(() => z.discriminatedUnion("isDirectory", [
|
|
31
|
+
z.object({
|
|
32
|
+
name: z.string(),
|
|
33
|
+
path: z.string(),
|
|
34
|
+
isDirectory: z.literal(true),
|
|
35
|
+
children: z.array(fileNodeSchema)
|
|
36
|
+
}),
|
|
37
|
+
z.object({
|
|
38
|
+
name: z.string(),
|
|
39
|
+
path: z.string(),
|
|
40
|
+
isDirectory: z.literal(false),
|
|
41
|
+
lastModified: z.string(),
|
|
42
|
+
children: z.array(fileNodeSchema)
|
|
43
|
+
})
|
|
44
|
+
]));
|
|
45
|
+
var codonExecutionSchema = z.object({
|
|
46
|
+
codonId: z.string(),
|
|
47
|
+
codonName: z.string().optional(),
|
|
48
|
+
status: z.enum([
|
|
49
|
+
"preparing",
|
|
50
|
+
"starting",
|
|
51
|
+
"initializing",
|
|
52
|
+
"running",
|
|
53
|
+
"completing-sentinels",
|
|
54
|
+
"completed",
|
|
55
|
+
"failed",
|
|
56
|
+
"skipped"
|
|
57
|
+
]),
|
|
58
|
+
startTime: z.string(),
|
|
59
|
+
endTime: z.string().optional(),
|
|
60
|
+
sessionId: z.string().optional(),
|
|
61
|
+
previousSessionId: z.string().optional(),
|
|
62
|
+
claudeSessionId: z.string().optional(),
|
|
63
|
+
tokenUsage: tokenUsageSchema.optional(),
|
|
64
|
+
cost: z.number().optional(),
|
|
65
|
+
duration: z.number().optional(),
|
|
66
|
+
exitStatus: processExitSchema.optional(),
|
|
67
|
+
failureReason: failureReasonSchema.optional(),
|
|
68
|
+
description: z.string().optional(),
|
|
69
|
+
finalCost: z.number().optional(),
|
|
70
|
+
partialCost: z.number().optional(),
|
|
71
|
+
currentCost: z.number().optional(),
|
|
72
|
+
completionCheckpoint: z.string().optional(),
|
|
73
|
+
rigSetupCheckpoint: z.string().optional(),
|
|
74
|
+
errorCheckpoint: z.string().optional(),
|
|
75
|
+
skipCheckpoint: z.string().optional()
|
|
76
|
+
});
|
|
77
|
+
var checkpointQueryInfoSchema = z.object({
|
|
78
|
+
codonId: z.string(),
|
|
79
|
+
codonName: z.string(),
|
|
80
|
+
checkpointType: z.enum(["rig-setup", "completed", "error", "skipped"]),
|
|
81
|
+
sha: z.string(),
|
|
82
|
+
status: z.enum([
|
|
83
|
+
"preparing",
|
|
84
|
+
"starting",
|
|
85
|
+
"initializing",
|
|
86
|
+
"running",
|
|
87
|
+
"completing-sentinels",
|
|
88
|
+
"completed",
|
|
89
|
+
"failed",
|
|
90
|
+
"skipped"
|
|
91
|
+
]),
|
|
92
|
+
timestamp: z.string()
|
|
93
|
+
});
|
|
94
|
+
var serverReadyEventDataSchema = z.object({
|
|
95
|
+
serverVersion: z.string(),
|
|
96
|
+
executionPath: z.string(),
|
|
97
|
+
agentRootPath: z.string(),
|
|
98
|
+
dataPath: z.string(),
|
|
99
|
+
port: z.number(),
|
|
100
|
+
proxyPort: z.number().optional(),
|
|
101
|
+
outputDirectory: z.string().optional()
|
|
102
|
+
});
|
|
103
|
+
var stateSnapshotEventDataSchema = z.object({
|
|
104
|
+
currentCodon: codonExecutionSchema.optional(),
|
|
105
|
+
completedCodons: z.array(codonExecutionSchema),
|
|
106
|
+
fileTree: z.array(fileNodeSchema),
|
|
107
|
+
totalCost: z.number(),
|
|
108
|
+
totalTime: z.number(),
|
|
109
|
+
recentFileAccess: z.object({
|
|
110
|
+
path: z.string(),
|
|
111
|
+
content: z.string(),
|
|
112
|
+
timestamp: z.date()
|
|
113
|
+
}).optional(),
|
|
114
|
+
isRollingBack: z.boolean()
|
|
115
|
+
});
|
|
116
|
+
var codonStartedEventDataSchema = z.object({
|
|
117
|
+
codonId: z.string(),
|
|
118
|
+
codonName: z.string(),
|
|
119
|
+
codonDescription: z.string().optional(),
|
|
120
|
+
sessionId: z.string(),
|
|
121
|
+
previousSessionId: z.string().optional(),
|
|
122
|
+
startTime: z.string().datetime(),
|
|
123
|
+
promptMetadata: z.object({
|
|
124
|
+
name: z.string().optional(),
|
|
125
|
+
description: z.string().optional(),
|
|
126
|
+
tags: z.array(z.string()).optional(),
|
|
127
|
+
version: z.string().optional(),
|
|
128
|
+
author: z.string().optional()
|
|
129
|
+
}).optional()
|
|
130
|
+
});
|
|
131
|
+
var codonCompletedEventDataSchema = z.object({
|
|
132
|
+
codonId: z.string(),
|
|
133
|
+
success: z.boolean(),
|
|
134
|
+
cost: z.number(),
|
|
135
|
+
duration: z.number(),
|
|
136
|
+
exitStatus: processExitSchema,
|
|
137
|
+
failureReason: failureReasonSchema.optional(),
|
|
138
|
+
failureIgnored: z.boolean().optional(),
|
|
139
|
+
budgetExceeded: budgetExceededDataSchema.optional()
|
|
140
|
+
});
|
|
141
|
+
var codonExtendedEventDataSchema = z.object({
|
|
142
|
+
codonId: z.string(),
|
|
143
|
+
codonName: z.string(),
|
|
144
|
+
extensionNumber: z.number().int().positive(),
|
|
145
|
+
exhaustWithPrompt: z.string(),
|
|
146
|
+
cumulativeTokens: tokenUsageSchema,
|
|
147
|
+
cumulativeCost: z.number()
|
|
148
|
+
});
|
|
149
|
+
var rigSetupCompletedEventDataSchema = z.object({
|
|
150
|
+
codonId: z.string(),
|
|
151
|
+
rigType: z.enum(["command", "commands"]),
|
|
152
|
+
commandCount: z.number().int().nonnegative(),
|
|
153
|
+
durationMs: z.number(),
|
|
154
|
+
createdCheckpoint: z.boolean()
|
|
155
|
+
});
|
|
156
|
+
var rigSetupFailedEventDataSchema = z.object({
|
|
157
|
+
codonId: z.string(),
|
|
158
|
+
failureType: z.enum(["command_failed", "timeout", "other"]),
|
|
159
|
+
exitCode: z.number().optional(),
|
|
160
|
+
commandIndex: z.number().int().nonnegative().optional(),
|
|
161
|
+
ignored: z.boolean()
|
|
162
|
+
});
|
|
163
|
+
var rigOutputEventDataSchema = z.object({
|
|
164
|
+
codonId: z.string(),
|
|
165
|
+
stream: z.enum(["stdout", "stderr"]),
|
|
166
|
+
line: z.string(),
|
|
167
|
+
commandIndex: z.number().int().nonnegative()
|
|
168
|
+
});
|
|
169
|
+
var loopIterationCompletedEventDataSchema = z.object({
|
|
170
|
+
loopId: z.string(),
|
|
171
|
+
iteration: z.number().int().nonnegative(),
|
|
172
|
+
durationMs: z.number(),
|
|
173
|
+
costUsd: z.number(),
|
|
174
|
+
tokensUsed: z.number(),
|
|
175
|
+
isFinal: z.boolean(),
|
|
176
|
+
terminationReason: z.enum(["iteration_limit", "context_exceeded", "sentinel_skip", "failure"]).optional()
|
|
177
|
+
});
|
|
178
|
+
var assistantActionEventDataSchema = z.object({
|
|
179
|
+
codonId: z.string(),
|
|
180
|
+
action: z.enum(["thinking", "message", "tool_use"]),
|
|
181
|
+
content: z.string(),
|
|
182
|
+
toolName: z.string().optional(),
|
|
183
|
+
toolInput: z.record(z.unknown()).optional()
|
|
184
|
+
});
|
|
185
|
+
var tokenUsageEventDataSchema = z.object({
|
|
186
|
+
codonId: z.string(),
|
|
187
|
+
inputTokens: z.number(),
|
|
188
|
+
outputTokens: z.number(),
|
|
189
|
+
cacheCreationTokens: z.number(),
|
|
190
|
+
cacheReadTokens: z.number(),
|
|
191
|
+
totalCost: z.number(),
|
|
192
|
+
modelId: z.string().optional(),
|
|
193
|
+
modelUsage: z.record(z.string(), z.object({
|
|
194
|
+
inputTokens: z.number(),
|
|
195
|
+
outputTokens: z.number(),
|
|
196
|
+
cacheReadInputTokens: z.number().optional(),
|
|
197
|
+
cacheCreationInputTokens: z.number().optional(),
|
|
198
|
+
costUSD: z.number()
|
|
199
|
+
})).optional()
|
|
200
|
+
});
|
|
201
|
+
var toolResultEventDataSchema = z.object({
|
|
202
|
+
codonId: z.string(),
|
|
203
|
+
toolUseId: z.string(),
|
|
204
|
+
toolName: z.string(),
|
|
205
|
+
result: z.string(),
|
|
206
|
+
truncated: z.boolean(),
|
|
207
|
+
originalLength: z.number(),
|
|
208
|
+
executionTimeMs: z.number(),
|
|
209
|
+
isError: z.boolean()
|
|
210
|
+
});
|
|
211
|
+
var fileUpdatedEventDataSchema = z.object({
|
|
212
|
+
path: z.string(),
|
|
213
|
+
filename: z.string(),
|
|
214
|
+
content: z.string(),
|
|
215
|
+
action: z.enum(["created", "modified", "deleted"])
|
|
216
|
+
});
|
|
217
|
+
var fileTreeUpdatedEventDataSchema = z.object({
|
|
218
|
+
tree: z.array(fileNodeSchema)
|
|
219
|
+
});
|
|
220
|
+
var errorEventDataSchema = z.object({
|
|
221
|
+
message: z.string(),
|
|
222
|
+
codon: z.string().optional(),
|
|
223
|
+
fatal: z.boolean(),
|
|
224
|
+
severity: z.enum(["fatal", "codon", "operation", "warning"]).optional(),
|
|
225
|
+
context: z.string().optional(),
|
|
226
|
+
code: z.string().optional()
|
|
227
|
+
});
|
|
228
|
+
var incompleteCodonEventDataSchema = z.object({
|
|
229
|
+
codonId: z.string(),
|
|
230
|
+
codonName: z.string(),
|
|
231
|
+
message: z.string()
|
|
232
|
+
});
|
|
233
|
+
var infoEventDataSchema = z.object({
|
|
234
|
+
message: z.string()
|
|
235
|
+
});
|
|
236
|
+
var serverIdleEventDataSchema = z.object({
|
|
237
|
+
reason: z.enum(["startup", "codon-completed", "all-codons-completed", "rollback-completed"]),
|
|
238
|
+
message: z.string()
|
|
239
|
+
});
|
|
240
|
+
var checkpointListEventDataSchema = z.object({
|
|
241
|
+
runId: z.string(),
|
|
242
|
+
checkpoints: z.array(checkpointQueryInfoSchema),
|
|
243
|
+
currentBranch: z.string()
|
|
244
|
+
});
|
|
245
|
+
var rollbackStartedEventDataSchema = z.object({
|
|
246
|
+
fromRun: z.string(),
|
|
247
|
+
fromCodon: z.string(),
|
|
248
|
+
toCodon: z.string(),
|
|
249
|
+
toCheckpoint: z.string(),
|
|
250
|
+
checkpointType: z.string(),
|
|
251
|
+
codonsToProcess: z.array(z.string())
|
|
252
|
+
});
|
|
253
|
+
var rollbackCodonCheckpointEventDataSchema = z.object({
|
|
254
|
+
codonId: z.string(),
|
|
255
|
+
codonName: z.string(),
|
|
256
|
+
checkpoint: z.string(),
|
|
257
|
+
checkpointType: z.string(),
|
|
258
|
+
message: z.string()
|
|
259
|
+
});
|
|
260
|
+
var rollbackRigCleanupEventDataSchema = z.object({
|
|
261
|
+
codonId: z.string(),
|
|
262
|
+
codonName: z.string(),
|
|
263
|
+
directories: z.array(z.string()),
|
|
264
|
+
status: z.enum(["started", "completed", "failed", "partial"]),
|
|
265
|
+
successfulCleanups: z.array(z.string()).optional(),
|
|
266
|
+
failedCleanups: z.array(z.object({
|
|
267
|
+
directory: z.string(),
|
|
268
|
+
error: z.string()
|
|
269
|
+
})).optional(),
|
|
270
|
+
error: z.string().optional()
|
|
271
|
+
});
|
|
272
|
+
var rollbackProgressEventDataSchema = z.object({
|
|
273
|
+
currentStep: z.number(),
|
|
274
|
+
totalSteps: z.number(),
|
|
275
|
+
message: z.string()
|
|
276
|
+
});
|
|
277
|
+
var rollbackCompletedEventDataSchema = z.object({
|
|
278
|
+
fromRun: z.string(),
|
|
279
|
+
toRun: z.string(),
|
|
280
|
+
checkpoint: z.string(),
|
|
281
|
+
codonId: z.string(),
|
|
282
|
+
codonName: z.string(),
|
|
283
|
+
checkpointType: z.string(),
|
|
284
|
+
autoRestart: z.boolean()
|
|
285
|
+
});
|
|
286
|
+
var archiveCompletedEventDataSchema = z.object({
|
|
287
|
+
codonId: z.string(),
|
|
288
|
+
archivedPaths: z.array(z.string())
|
|
289
|
+
});
|
|
290
|
+
var archivePartialEventDataSchema = z.object({
|
|
291
|
+
codonId: z.string(),
|
|
292
|
+
archivedPaths: z.array(z.string()),
|
|
293
|
+
failedPaths: z.array(z.object({
|
|
294
|
+
path: z.string(),
|
|
295
|
+
error: z.string()
|
|
296
|
+
}))
|
|
297
|
+
});
|
|
298
|
+
var rollbackArchiveRestoreEventDataSchema = z.object({
|
|
299
|
+
codonId: z.string(),
|
|
300
|
+
restoredPaths: z.array(z.string()),
|
|
301
|
+
failedPaths: z.array(z.object({
|
|
302
|
+
path: z.string(),
|
|
303
|
+
error: z.string()
|
|
304
|
+
})).optional(),
|
|
305
|
+
status: z.enum(["completed", "partial", "failed"])
|
|
306
|
+
});
|
|
307
|
+
var pongEventDataSchema = z.object({
|
|
308
|
+
message: z.string(),
|
|
309
|
+
timestamp: z.string(),
|
|
310
|
+
clientId: z.string().optional()
|
|
311
|
+
});
|
|
312
|
+
var historyBatchEventDataSchema = z.object({
|
|
313
|
+
events: z.array(z.any()),
|
|
314
|
+
hasMore: z.boolean()
|
|
315
|
+
});
|
|
316
|
+
var stateTransitionEventDataSchema = z.object({
|
|
317
|
+
transitionType: z.enum([
|
|
318
|
+
"RunStarted",
|
|
319
|
+
"RunCompleted",
|
|
320
|
+
"RunFailed",
|
|
321
|
+
"RunCrashed",
|
|
322
|
+
"CodonStarted",
|
|
323
|
+
"CodonTransitioned",
|
|
324
|
+
"CostsUpdated",
|
|
325
|
+
"CostsIncremented",
|
|
326
|
+
"AssistantMessageCountUpdated",
|
|
327
|
+
"ExtensionCountUpdated",
|
|
328
|
+
"CheckpointCreated",
|
|
329
|
+
"InitialCheckpointSet",
|
|
330
|
+
"CodonFinalCostSet",
|
|
331
|
+
"SentinelStatesUpdated"
|
|
332
|
+
]),
|
|
333
|
+
runId: z.string().optional(),
|
|
334
|
+
codonId: z.string().optional(),
|
|
335
|
+
transition: z.object({
|
|
336
|
+
type: z.string(),
|
|
337
|
+
data: z.record(z.unknown())
|
|
338
|
+
}),
|
|
339
|
+
resultingState: z.object({
|
|
340
|
+
currentRunId: z.string().nullable(),
|
|
341
|
+
runCount: z.number(),
|
|
342
|
+
totalCost: z.number(),
|
|
343
|
+
currentRunCost: z.number()
|
|
344
|
+
})
|
|
345
|
+
});
|
|
346
|
+
var sentinelLoadedEventDataSchema = z.object({
|
|
347
|
+
sentinelId: z.string(),
|
|
348
|
+
codonId: z.string(),
|
|
349
|
+
model: z.string(),
|
|
350
|
+
triggerType: z.enum(["event", "sequence"]),
|
|
351
|
+
executionStrategy: z.enum(["immediate", "debounce", "count", "timeWindow"]),
|
|
352
|
+
conversational: z.boolean(),
|
|
353
|
+
source: z.enum(["file", "inline"]),
|
|
354
|
+
sourcePath: z.string().optional()
|
|
355
|
+
});
|
|
356
|
+
var sentinelUnloadedEventDataSchema = z.object({
|
|
357
|
+
sentinelId: z.string(),
|
|
358
|
+
codonId: z.string(),
|
|
359
|
+
reason: z.enum(["codon-complete", "fatal-error", "consecutive-failures", "shutdown"]),
|
|
360
|
+
errorType: z.enum(["template", "configuration", "corruption", "resource"]).optional(),
|
|
361
|
+
finalCost: z.number(),
|
|
362
|
+
llmCallCount: z.number()
|
|
363
|
+
});
|
|
364
|
+
var sentinelErrorEventDataSchema = z.object({
|
|
365
|
+
sentinelId: z.string(),
|
|
366
|
+
codonId: z.string(),
|
|
367
|
+
errorType: z.enum(["llm-call-failed", "template-render-failed", "file-write-failed"]),
|
|
368
|
+
message: z.string(),
|
|
369
|
+
retriable: z.boolean(),
|
|
370
|
+
consecutiveFailureCount: z.number()
|
|
371
|
+
});
|
|
372
|
+
var sentinelOutputEventDataSchema = z.object({
|
|
373
|
+
sentinelId: z.string(),
|
|
374
|
+
codonId: z.string(),
|
|
375
|
+
triggerNumber: z.number(),
|
|
376
|
+
outputType: z.enum(["text", "structured"]),
|
|
377
|
+
content: z.union([z.string(), z.record(z.unknown())]),
|
|
378
|
+
cost: z.number(),
|
|
379
|
+
tokens: z.object({
|
|
380
|
+
input: z.number(),
|
|
381
|
+
output: z.number()
|
|
382
|
+
}),
|
|
383
|
+
eventCount: z.number()
|
|
384
|
+
});
|
|
385
|
+
var sentinelTriggeredEventDataSchema = z.object({
|
|
386
|
+
sentinelId: z.string(),
|
|
387
|
+
codonId: z.string(),
|
|
388
|
+
triggerNumber: z.number(),
|
|
389
|
+
strategy: z.enum(["immediate", "debounce", "count", "timeWindow"]),
|
|
390
|
+
eventCount: z.number(),
|
|
391
|
+
queueSize: z.number()
|
|
392
|
+
});
|
|
393
|
+
var codonBudgetSummaryRowSchema = z.object({
|
|
394
|
+
codonId: z.string(),
|
|
395
|
+
loopContext: z.object({
|
|
396
|
+
loopId: z.string(),
|
|
397
|
+
iteration: z.number(),
|
|
398
|
+
codonIndexInLoop: z.number()
|
|
399
|
+
}).optional(),
|
|
400
|
+
status: z.enum(["completed", "failed", "skipped", "exceeded", "running"]),
|
|
401
|
+
budget: z.object({
|
|
402
|
+
maxDollars: z.number().optional(),
|
|
403
|
+
maxTimeSeconds: z.number().optional(),
|
|
404
|
+
maxOutputTokens: z.number().optional()
|
|
405
|
+
}),
|
|
406
|
+
actual: z.object({
|
|
407
|
+
dollars: z.number(),
|
|
408
|
+
timeSeconds: z.number(),
|
|
409
|
+
outputTokens: z.number()
|
|
410
|
+
})
|
|
411
|
+
});
|
|
412
|
+
var budgetSummaryEventDataSchema = z.object({
|
|
413
|
+
ceiling: z.object({
|
|
414
|
+
maxDollars: z.number().optional(),
|
|
415
|
+
maxTimeSeconds: z.number().optional()
|
|
416
|
+
}),
|
|
417
|
+
allocation: z.enum(["shared", "proportional", "proportional-strict"]),
|
|
418
|
+
rows: z.array(codonBudgetSummaryRowSchema),
|
|
419
|
+
totals: z.object({
|
|
420
|
+
budgetDollars: z.number().optional(),
|
|
421
|
+
actualDollars: z.number(),
|
|
422
|
+
actualTimeSeconds: z.number()
|
|
423
|
+
})
|
|
424
|
+
});
|
|
425
|
+
var baseEventSchema = z.object({
|
|
426
|
+
id: z.string(),
|
|
427
|
+
timestamp: z.string()
|
|
428
|
+
});
|
|
429
|
+
var serverReadyEventSchema = baseEventSchema.extend({
|
|
430
|
+
type: z.literal("server.ready"),
|
|
431
|
+
data: serverReadyEventDataSchema
|
|
432
|
+
});
|
|
433
|
+
var stateSnapshotEventSchema = baseEventSchema.extend({
|
|
434
|
+
type: z.literal("state.snapshot"),
|
|
435
|
+
data: stateSnapshotEventDataSchema
|
|
436
|
+
});
|
|
437
|
+
var codonStartedEventSchema = baseEventSchema.extend({
|
|
438
|
+
type: z.literal("codon.started"),
|
|
439
|
+
data: codonStartedEventDataSchema
|
|
440
|
+
});
|
|
441
|
+
var codonCompletedEventSchema = baseEventSchema.extend({
|
|
442
|
+
type: z.literal("codon.completed"),
|
|
443
|
+
data: codonCompletedEventDataSchema
|
|
444
|
+
});
|
|
445
|
+
var codonExtendedEventSchema = baseEventSchema.extend({
|
|
446
|
+
type: z.literal("codon.extended"),
|
|
447
|
+
data: codonExtendedEventDataSchema
|
|
448
|
+
});
|
|
449
|
+
var assistantActionEventSchema = baseEventSchema.extend({
|
|
450
|
+
type: z.literal("assistant.action"),
|
|
451
|
+
data: assistantActionEventDataSchema
|
|
452
|
+
});
|
|
453
|
+
var tokenUsageEventSchema = baseEventSchema.extend({
|
|
454
|
+
type: z.literal("token.usage"),
|
|
455
|
+
data: tokenUsageEventDataSchema
|
|
456
|
+
});
|
|
457
|
+
var toolResultEventSchema = baseEventSchema.extend({
|
|
458
|
+
type: z.literal("tool.result"),
|
|
459
|
+
data: toolResultEventDataSchema
|
|
460
|
+
});
|
|
461
|
+
var fileUpdatedEventSchema = baseEventSchema.extend({
|
|
462
|
+
type: z.literal("file.updated"),
|
|
463
|
+
data: fileUpdatedEventDataSchema
|
|
464
|
+
});
|
|
465
|
+
var fileTreeUpdatedEventSchema = baseEventSchema.extend({
|
|
466
|
+
type: z.literal("filetree.updated"),
|
|
467
|
+
data: fileTreeUpdatedEventDataSchema
|
|
468
|
+
});
|
|
469
|
+
var rigSetupCompletedEventSchema = baseEventSchema.extend({
|
|
470
|
+
type: z.literal("rig.setup.completed"),
|
|
471
|
+
data: rigSetupCompletedEventDataSchema
|
|
472
|
+
});
|
|
473
|
+
var rigSetupFailedEventSchema = baseEventSchema.extend({
|
|
474
|
+
type: z.literal("rig.setup.failed"),
|
|
475
|
+
data: rigSetupFailedEventDataSchema
|
|
476
|
+
});
|
|
477
|
+
var rigOutputEventSchema = baseEventSchema.extend({
|
|
478
|
+
type: z.literal("rig.output"),
|
|
479
|
+
data: rigOutputEventDataSchema
|
|
480
|
+
});
|
|
481
|
+
var loopIterationCompletedEventSchema = baseEventSchema.extend({
|
|
482
|
+
type: z.literal("loop.iteration.completed"),
|
|
483
|
+
data: loopIterationCompletedEventDataSchema
|
|
484
|
+
});
|
|
485
|
+
var errorEventSchema = baseEventSchema.extend({
|
|
486
|
+
type: z.literal("error"),
|
|
487
|
+
data: errorEventDataSchema
|
|
488
|
+
});
|
|
489
|
+
var incompleteCodonEventSchema = baseEventSchema.extend({
|
|
490
|
+
type: z.literal("incomplete.codon"),
|
|
491
|
+
data: incompleteCodonEventDataSchema
|
|
492
|
+
});
|
|
493
|
+
var infoEventSchema = baseEventSchema.extend({
|
|
494
|
+
type: z.literal("info"),
|
|
495
|
+
data: infoEventDataSchema
|
|
496
|
+
});
|
|
497
|
+
var serverIdleEventSchema = baseEventSchema.extend({
|
|
498
|
+
type: z.literal("server.idle"),
|
|
499
|
+
data: serverIdleEventDataSchema
|
|
500
|
+
});
|
|
501
|
+
var checkpointListEventSchema = baseEventSchema.extend({
|
|
502
|
+
type: z.literal("checkpoint.list"),
|
|
503
|
+
data: checkpointListEventDataSchema
|
|
504
|
+
});
|
|
505
|
+
var rollbackStartedEventSchema = baseEventSchema.extend({
|
|
506
|
+
type: z.literal("rollback.started"),
|
|
507
|
+
data: rollbackStartedEventDataSchema
|
|
508
|
+
});
|
|
509
|
+
var rollbackCodonCheckpointEventSchema = baseEventSchema.extend({
|
|
510
|
+
type: z.literal("rollback.codonCheckpoint"),
|
|
511
|
+
data: rollbackCodonCheckpointEventDataSchema
|
|
512
|
+
});
|
|
513
|
+
var rollbackRigCleanupEventSchema = baseEventSchema.extend({
|
|
514
|
+
type: z.literal("rollback.rigCleanup"),
|
|
515
|
+
data: rollbackRigCleanupEventDataSchema
|
|
516
|
+
});
|
|
517
|
+
var rollbackProgressEventSchema = baseEventSchema.extend({
|
|
518
|
+
type: z.literal("rollback.progress"),
|
|
519
|
+
data: rollbackProgressEventDataSchema
|
|
520
|
+
});
|
|
521
|
+
var rollbackCompletedEventSchema = baseEventSchema.extend({
|
|
522
|
+
type: z.literal("rollback.completed"),
|
|
523
|
+
data: rollbackCompletedEventDataSchema
|
|
524
|
+
});
|
|
525
|
+
var archiveCompletedEventSchema = baseEventSchema.extend({
|
|
526
|
+
type: z.literal("archive.completed"),
|
|
527
|
+
data: archiveCompletedEventDataSchema
|
|
528
|
+
});
|
|
529
|
+
var archivePartialEventSchema = baseEventSchema.extend({
|
|
530
|
+
type: z.literal("archive.partial"),
|
|
531
|
+
data: archivePartialEventDataSchema
|
|
532
|
+
});
|
|
533
|
+
var rollbackArchiveRestoreEventSchema = baseEventSchema.extend({
|
|
534
|
+
type: z.literal("rollback.archiveRestore"),
|
|
535
|
+
data: rollbackArchiveRestoreEventDataSchema
|
|
536
|
+
});
|
|
537
|
+
var pongEventSchema = baseEventSchema.extend({
|
|
538
|
+
type: z.literal("pong"),
|
|
539
|
+
data: pongEventDataSchema
|
|
540
|
+
});
|
|
541
|
+
var historyBatchEventSchema = baseEventSchema.extend({
|
|
542
|
+
type: z.literal("history.batch"),
|
|
543
|
+
data: historyBatchEventDataSchema
|
|
544
|
+
});
|
|
545
|
+
var stateTransitionEventSchema = baseEventSchema.extend({
|
|
546
|
+
type: z.literal("state.transition"),
|
|
547
|
+
data: stateTransitionEventDataSchema
|
|
548
|
+
});
|
|
549
|
+
var sentinelLoadedEventSchema = baseEventSchema.extend({
|
|
550
|
+
type: z.literal("sentinel.loaded"),
|
|
551
|
+
data: sentinelLoadedEventDataSchema
|
|
552
|
+
});
|
|
553
|
+
var sentinelUnloadedEventSchema = baseEventSchema.extend({
|
|
554
|
+
type: z.literal("sentinel.unloaded"),
|
|
555
|
+
data: sentinelUnloadedEventDataSchema
|
|
556
|
+
});
|
|
557
|
+
var sentinelErrorEventSchema = baseEventSchema.extend({
|
|
558
|
+
type: z.literal("sentinel.error"),
|
|
559
|
+
data: sentinelErrorEventDataSchema
|
|
560
|
+
});
|
|
561
|
+
var sentinelOutputEventSchema = baseEventSchema.extend({
|
|
562
|
+
type: z.literal("sentinel.output"),
|
|
563
|
+
data: sentinelOutputEventDataSchema
|
|
564
|
+
});
|
|
565
|
+
var sentinelTriggeredEventSchema = baseEventSchema.extend({
|
|
566
|
+
type: z.literal("sentinel.triggered"),
|
|
567
|
+
data: sentinelTriggeredEventDataSchema
|
|
568
|
+
});
|
|
569
|
+
var budgetSummaryEventSchema = baseEventSchema.extend({
|
|
570
|
+
type: z.literal("budget.summary"),
|
|
571
|
+
data: budgetSummaryEventDataSchema
|
|
572
|
+
});
|
|
573
|
+
var startCodonCommandSchema = z.object({
|
|
574
|
+
id: z.string(),
|
|
575
|
+
type: z.literal("codon.start"),
|
|
576
|
+
data: z.object({
|
|
577
|
+
codonId: z.string(),
|
|
578
|
+
skipPreCommands: z.boolean().optional()
|
|
579
|
+
})
|
|
580
|
+
});
|
|
581
|
+
var nextCodonCommandSchema = z.object({
|
|
582
|
+
id: z.string(),
|
|
583
|
+
type: z.literal("codon.next")
|
|
584
|
+
});
|
|
585
|
+
var skipCodonCommandSchema = z.object({
|
|
586
|
+
id: z.string(),
|
|
587
|
+
type: z.literal("codon.skip")
|
|
588
|
+
});
|
|
589
|
+
var redoCodonCommandSchema = z.object({
|
|
590
|
+
id: z.string(),
|
|
591
|
+
type: z.literal("codon.redo")
|
|
592
|
+
});
|
|
593
|
+
var shutdownCommandSchema = z.object({
|
|
594
|
+
id: z.string(),
|
|
595
|
+
type: z.literal("server.shutdown")
|
|
596
|
+
});
|
|
597
|
+
var forceStopCommandSchema = z.object({
|
|
598
|
+
id: z.string(),
|
|
599
|
+
type: z.literal("codon.forceStop"),
|
|
600
|
+
data: z.object({
|
|
601
|
+
reason: z.string().optional()
|
|
602
|
+
}).optional()
|
|
603
|
+
});
|
|
604
|
+
var listCheckpointsCommandSchema = z.object({
|
|
605
|
+
id: z.string(),
|
|
606
|
+
type: z.literal("checkpoint.list"),
|
|
607
|
+
data: z.object({
|
|
608
|
+
runId: z.string().optional()
|
|
609
|
+
}).optional()
|
|
610
|
+
});
|
|
611
|
+
var rollbackToCheckpointCommandSchema = z.object({
|
|
612
|
+
id: z.string(),
|
|
613
|
+
type: z.literal("rollback.toCheckpoint"),
|
|
614
|
+
data: z.object({
|
|
615
|
+
checkpointSha: z.string(),
|
|
616
|
+
autoRestart: z.boolean().optional()
|
|
617
|
+
})
|
|
618
|
+
});
|
|
619
|
+
var rollbackToCodonCommandSchema = z.object({
|
|
620
|
+
id: z.string(),
|
|
621
|
+
type: z.literal("rollback.toCodon"),
|
|
622
|
+
data: z.object({
|
|
623
|
+
codonId: z.string(),
|
|
624
|
+
checkpointType: z.enum(["start", "end", "rig-setup", "completed", "error", "skipped"]),
|
|
625
|
+
autoRestart: z.boolean().optional()
|
|
626
|
+
})
|
|
627
|
+
});
|
|
628
|
+
var rollbackToLastSuccessCommandSchema = z.object({
|
|
629
|
+
id: z.string(),
|
|
630
|
+
type: z.literal("rollback.toLastSuccess"),
|
|
631
|
+
data: z.object({
|
|
632
|
+
autoRestart: z.boolean().optional()
|
|
633
|
+
}).optional()
|
|
634
|
+
});
|
|
635
|
+
var pingCommandSchema = z.object({
|
|
636
|
+
id: z.string(),
|
|
637
|
+
type: z.literal("ping")
|
|
638
|
+
});
|
|
639
|
+
var pingBroadcastCommandSchema = z.object({
|
|
640
|
+
id: z.string(),
|
|
641
|
+
type: z.literal("ping.broadcast")
|
|
642
|
+
});
|
|
643
|
+
var historySyncCommandSchema = z.object({
|
|
644
|
+
id: z.string(),
|
|
645
|
+
type: z.literal("history.sync")
|
|
646
|
+
});
|
|
647
|
+
var clientCommandSchema = z.discriminatedUnion("type", [
|
|
648
|
+
startCodonCommandSchema,
|
|
649
|
+
nextCodonCommandSchema,
|
|
650
|
+
skipCodonCommandSchema,
|
|
651
|
+
redoCodonCommandSchema,
|
|
652
|
+
shutdownCommandSchema,
|
|
653
|
+
forceStopCommandSchema,
|
|
654
|
+
listCheckpointsCommandSchema,
|
|
655
|
+
rollbackToCheckpointCommandSchema,
|
|
656
|
+
rollbackToCodonCommandSchema,
|
|
657
|
+
rollbackToLastSuccessCommandSchema,
|
|
658
|
+
pingCommandSchema,
|
|
659
|
+
pingBroadcastCommandSchema,
|
|
660
|
+
historySyncCommandSchema
|
|
661
|
+
]);
|
|
662
|
+
var serverEventSchema = z.discriminatedUnion("type", [
|
|
663
|
+
serverReadyEventSchema,
|
|
664
|
+
stateSnapshotEventSchema,
|
|
665
|
+
codonStartedEventSchema,
|
|
666
|
+
codonCompletedEventSchema,
|
|
667
|
+
codonExtendedEventSchema,
|
|
668
|
+
assistantActionEventSchema,
|
|
669
|
+
tokenUsageEventSchema,
|
|
670
|
+
toolResultEventSchema,
|
|
671
|
+
fileUpdatedEventSchema,
|
|
672
|
+
fileTreeUpdatedEventSchema,
|
|
673
|
+
rigSetupCompletedEventSchema,
|
|
674
|
+
rigSetupFailedEventSchema,
|
|
675
|
+
rigOutputEventSchema,
|
|
676
|
+
loopIterationCompletedEventSchema,
|
|
677
|
+
errorEventSchema,
|
|
678
|
+
incompleteCodonEventSchema,
|
|
679
|
+
infoEventSchema,
|
|
680
|
+
serverIdleEventSchema,
|
|
681
|
+
checkpointListEventSchema,
|
|
682
|
+
rollbackStartedEventSchema,
|
|
683
|
+
rollbackCodonCheckpointEventSchema,
|
|
684
|
+
rollbackRigCleanupEventSchema,
|
|
685
|
+
rollbackProgressEventSchema,
|
|
686
|
+
rollbackCompletedEventSchema,
|
|
687
|
+
rollbackArchiveRestoreEventSchema,
|
|
688
|
+
archiveCompletedEventSchema,
|
|
689
|
+
archivePartialEventSchema,
|
|
690
|
+
pongEventSchema,
|
|
691
|
+
historyBatchEventSchema,
|
|
692
|
+
stateTransitionEventSchema,
|
|
693
|
+
sentinelLoadedEventSchema,
|
|
694
|
+
sentinelUnloadedEventSchema,
|
|
695
|
+
sentinelErrorEventSchema,
|
|
696
|
+
sentinelOutputEventSchema,
|
|
697
|
+
sentinelTriggeredEventSchema,
|
|
698
|
+
budgetSummaryEventSchema
|
|
699
|
+
]);
|
|
700
|
+
var SERVER_STATE_EVENT_TYPES_ARRAY = [
|
|
701
|
+
"codon.started",
|
|
702
|
+
"codon.completed",
|
|
703
|
+
"codon.extended",
|
|
704
|
+
"state.snapshot",
|
|
705
|
+
"server.idle",
|
|
706
|
+
"token.usage",
|
|
707
|
+
"info",
|
|
708
|
+
"error",
|
|
709
|
+
"checkpoint.list",
|
|
710
|
+
"rollback.started",
|
|
711
|
+
"rollback.progress",
|
|
712
|
+
"rollback.codonCheckpoint",
|
|
713
|
+
"rollback.completed",
|
|
714
|
+
"rollback.rigCleanup",
|
|
715
|
+
"rollback.archiveRestore",
|
|
716
|
+
"state.transition",
|
|
717
|
+
"loop.iteration.completed",
|
|
718
|
+
"archive.completed",
|
|
719
|
+
"archive.partial",
|
|
720
|
+
"budget.summary"
|
|
721
|
+
];
|
|
722
|
+
var AGENTIC_BACKBONE_EVENT_TYPES_ARRAY = [
|
|
723
|
+
"assistant.action",
|
|
724
|
+
"tool.result",
|
|
725
|
+
"file.updated",
|
|
726
|
+
"filetree.updated",
|
|
727
|
+
"rig.setup.completed",
|
|
728
|
+
"rig.setup.failed",
|
|
729
|
+
"rig.output"
|
|
730
|
+
];
|
|
731
|
+
var SENTINEL_EVENT_TYPES_ARRAY = [
|
|
732
|
+
"sentinel.loaded",
|
|
733
|
+
"sentinel.unloaded",
|
|
734
|
+
"sentinel.error",
|
|
735
|
+
"sentinel.output",
|
|
736
|
+
"sentinel.triggered"
|
|
737
|
+
];
|
|
738
|
+
var CONNECTION_STATE_EVENT_TYPES_ARRAY = [
|
|
739
|
+
"server.ready",
|
|
740
|
+
"pong",
|
|
741
|
+
"history.batch",
|
|
742
|
+
"incomplete.codon"
|
|
743
|
+
];
|
|
744
|
+
var SERVER_STATE_EVENT_TYPES = new Set(SERVER_STATE_EVENT_TYPES_ARRAY);
|
|
745
|
+
var AGENTIC_BACKBONE_EVENT_TYPES = new Set(AGENTIC_BACKBONE_EVENT_TYPES_ARRAY);
|
|
746
|
+
var SENTINEL_EVENT_TYPES = new Set(SENTINEL_EVENT_TYPES_ARRAY);
|
|
747
|
+
var CONNECTION_STATE_EVENT_TYPES = new Set(CONNECTION_STATE_EVENT_TYPES_ARRAY);
|
|
748
|
+
function isServerStateEvent(event) {
|
|
749
|
+
return SERVER_STATE_EVENT_TYPES.has(event.type);
|
|
750
|
+
}
|
|
751
|
+
function isAgenticBackboneEvent(event) {
|
|
752
|
+
return AGENTIC_BACKBONE_EVENT_TYPES.has(event.type);
|
|
753
|
+
}
|
|
754
|
+
function isSentinelEvent(event) {
|
|
755
|
+
return SENTINEL_EVENT_TYPES.has(event.type);
|
|
756
|
+
}
|
|
757
|
+
function isConnectionStateEvent(event) {
|
|
758
|
+
return CONNECTION_STATE_EVENT_TYPES.has(event.type);
|
|
759
|
+
}
|
|
760
|
+
var serverEventDataSchemas = {
|
|
761
|
+
"server.ready": serverReadyEventDataSchema,
|
|
762
|
+
"state.snapshot": stateSnapshotEventDataSchema,
|
|
763
|
+
"codon.started": codonStartedEventDataSchema,
|
|
764
|
+
"codon.completed": codonCompletedEventDataSchema,
|
|
765
|
+
"codon.extended": codonExtendedEventDataSchema,
|
|
766
|
+
"assistant.action": assistantActionEventDataSchema,
|
|
767
|
+
"token.usage": tokenUsageEventDataSchema,
|
|
768
|
+
"tool.result": toolResultEventDataSchema,
|
|
769
|
+
"file.updated": fileUpdatedEventDataSchema,
|
|
770
|
+
"filetree.updated": fileTreeUpdatedEventDataSchema,
|
|
771
|
+
"rig.setup.completed": rigSetupCompletedEventDataSchema,
|
|
772
|
+
"rig.setup.failed": rigSetupFailedEventDataSchema,
|
|
773
|
+
"rig.output": rigOutputEventDataSchema,
|
|
774
|
+
"loop.iteration.completed": loopIterationCompletedEventDataSchema,
|
|
775
|
+
error: errorEventDataSchema,
|
|
776
|
+
"incomplete.codon": incompleteCodonEventDataSchema,
|
|
777
|
+
info: infoEventDataSchema,
|
|
778
|
+
"server.idle": serverIdleEventDataSchema,
|
|
779
|
+
"checkpoint.list": checkpointListEventDataSchema,
|
|
780
|
+
"rollback.started": rollbackStartedEventDataSchema,
|
|
781
|
+
"rollback.codonCheckpoint": rollbackCodonCheckpointEventDataSchema,
|
|
782
|
+
"rollback.rigCleanup": rollbackRigCleanupEventDataSchema,
|
|
783
|
+
"rollback.progress": rollbackProgressEventDataSchema,
|
|
784
|
+
"rollback.completed": rollbackCompletedEventDataSchema,
|
|
785
|
+
"rollback.archiveRestore": rollbackArchiveRestoreEventDataSchema,
|
|
786
|
+
"archive.completed": archiveCompletedEventDataSchema,
|
|
787
|
+
"archive.partial": archivePartialEventDataSchema,
|
|
788
|
+
pong: pongEventDataSchema,
|
|
789
|
+
"history.batch": historyBatchEventDataSchema,
|
|
790
|
+
"state.transition": stateTransitionEventDataSchema,
|
|
791
|
+
"sentinel.loaded": sentinelLoadedEventDataSchema,
|
|
792
|
+
"sentinel.unloaded": sentinelUnloadedEventDataSchema,
|
|
793
|
+
"sentinel.error": sentinelErrorEventDataSchema,
|
|
794
|
+
"sentinel.output": sentinelOutputEventDataSchema,
|
|
795
|
+
"sentinel.triggered": sentinelTriggeredEventDataSchema,
|
|
796
|
+
"budget.summary": budgetSummaryEventDataSchema
|
|
797
|
+
};
|
|
798
|
+
var serverEventTypes = Object.keys(serverEventDataSchemas);
|
|
799
|
+
// server/types/claude-session-schema.ts
|
|
800
|
+
import { z as z2 } from "zod";
|
|
801
|
+
var sessionIdSchema = z2.string();
|
|
802
|
+
var uuidSchema = z2.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i, "Must be a valid UUID v4");
|
|
803
|
+
var toolNameSchema = z2.string();
|
|
804
|
+
var modelSchema = z2.string().min(1, "Model identifier cannot be empty");
|
|
805
|
+
var permissionModeSchema = z2.enum(["bypassPermissions", "requestPermissions"]);
|
|
806
|
+
var apiKeySourceSchema = z2.string().min(1);
|
|
807
|
+
var systemMessageSchema = z2.object({
|
|
808
|
+
type: z2.literal("system"),
|
|
809
|
+
subtype: z2.literal("init"),
|
|
810
|
+
cwd: z2.string().min(1, "Working directory cannot be empty"),
|
|
811
|
+
session_id: sessionIdSchema,
|
|
812
|
+
tools: z2.array(toolNameSchema).min(1, "Must have at least one tool"),
|
|
813
|
+
mcp_servers: z2.array(z2.unknown()).default([]),
|
|
814
|
+
model: modelSchema,
|
|
815
|
+
permissionMode: permissionModeSchema,
|
|
816
|
+
apiKeySource: apiKeySourceSchema
|
|
817
|
+
}).passthrough();
|
|
818
|
+
var toolUseContentSchema = z2.object({
|
|
819
|
+
type: z2.literal("tool_use"),
|
|
820
|
+
id: z2.string().regex(/^(toolu_[a-zA-Z0-9]+|call_[a-fA-F0-9]+)$/, "Invalid tool use ID format"),
|
|
821
|
+
name: toolNameSchema,
|
|
822
|
+
input: z2.record(z2.unknown()).optional()
|
|
823
|
+
});
|
|
824
|
+
var textContentSchema = z2.object({
|
|
825
|
+
type: z2.literal("text"),
|
|
826
|
+
text: z2.string()
|
|
827
|
+
});
|
|
828
|
+
var thinkingContentSchema = z2.object({
|
|
829
|
+
type: z2.literal("thinking"),
|
|
830
|
+
thinking: z2.string()
|
|
831
|
+
});
|
|
832
|
+
var toolResultContentSchema = z2.object({
|
|
833
|
+
type: z2.literal("tool_result"),
|
|
834
|
+
tool_use_id: z2.string().regex(/^(toolu_[a-zA-Z0-9]+|call_[a-fA-F0-9]+)$/, "Invalid tool use ID format"),
|
|
835
|
+
content: z2.union([
|
|
836
|
+
z2.string(),
|
|
837
|
+
z2.record(z2.unknown()),
|
|
838
|
+
z2.array(z2.object({
|
|
839
|
+
type: z2.literal("text"),
|
|
840
|
+
text: z2.string()
|
|
841
|
+
}))
|
|
842
|
+
])
|
|
843
|
+
});
|
|
844
|
+
var messageContentSchema = z2.union([
|
|
845
|
+
toolUseContentSchema,
|
|
846
|
+
textContentSchema,
|
|
847
|
+
thinkingContentSchema,
|
|
848
|
+
toolResultContentSchema
|
|
849
|
+
]);
|
|
850
|
+
var assistantMessageSchema = z2.object({
|
|
851
|
+
type: z2.literal("assistant"),
|
|
852
|
+
message: z2.object({
|
|
853
|
+
id: z2.string().regex(/^(msg_[a-zA-Z0-9]+|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/i, "Invalid message ID format"),
|
|
854
|
+
type: z2.literal("message"),
|
|
855
|
+
role: z2.literal("assistant"),
|
|
856
|
+
model: modelSchema,
|
|
857
|
+
content: z2.union([
|
|
858
|
+
z2.array(messageContentSchema),
|
|
859
|
+
z2.string()
|
|
860
|
+
]),
|
|
861
|
+
usage: z2.object({
|
|
862
|
+
input_tokens: z2.number().int().nonnegative(),
|
|
863
|
+
output_tokens: z2.number().int().nonnegative(),
|
|
864
|
+
cache_creation_input_tokens: z2.number().int().nonnegative().optional(),
|
|
865
|
+
cache_read_input_tokens: z2.number().int().nonnegative().optional()
|
|
866
|
+
}).passthrough().optional(),
|
|
867
|
+
stop_reason: z2.enum(["end_turn", "max_tokens", "stop_sequence", "tool_use"]).nullable().optional(),
|
|
868
|
+
stop_sequence: z2.string().nullable().optional()
|
|
869
|
+
})
|
|
870
|
+
});
|
|
871
|
+
var userMessageSchema = z2.object({
|
|
872
|
+
type: z2.literal("user"),
|
|
873
|
+
message: z2.object({
|
|
874
|
+
role: z2.literal("user"),
|
|
875
|
+
content: z2.union([
|
|
876
|
+
z2.array(messageContentSchema),
|
|
877
|
+
z2.string()
|
|
878
|
+
])
|
|
879
|
+
})
|
|
880
|
+
});
|
|
881
|
+
var resultMessageSchema = z2.object({
|
|
882
|
+
type: z2.literal("result"),
|
|
883
|
+
subtype: z2.enum(["success", "error", "error_during_execution"]),
|
|
884
|
+
is_error: z2.boolean(),
|
|
885
|
+
duration_ms: z2.number().int().nonnegative(),
|
|
886
|
+
duration_api_ms: z2.number().int().nonnegative(),
|
|
887
|
+
num_turns: z2.number().int().nonnegative(),
|
|
888
|
+
result: z2.string(),
|
|
889
|
+
session_id: z2.string().optional(),
|
|
890
|
+
total_cost_usd: z2.number().optional(),
|
|
891
|
+
usage: z2.object({
|
|
892
|
+
input_tokens: z2.number().int().nonnegative().optional(),
|
|
893
|
+
output_tokens: z2.number().int().nonnegative().optional(),
|
|
894
|
+
cache_creation_input_tokens: z2.number().int().nonnegative().optional(),
|
|
895
|
+
cache_read_input_tokens: z2.number().int().nonnegative().optional(),
|
|
896
|
+
server_tool_use: z2.object({
|
|
897
|
+
web_search_requests: z2.number().int().nonnegative().optional()
|
|
898
|
+
}).passthrough().optional()
|
|
899
|
+
}).passthrough().optional()
|
|
900
|
+
}).passthrough();
|
|
901
|
+
var logMessageSchema = z2.union([
|
|
902
|
+
systemMessageSchema,
|
|
903
|
+
assistantMessageSchema,
|
|
904
|
+
userMessageSchema,
|
|
905
|
+
resultMessageSchema
|
|
906
|
+
]);
|
|
907
|
+
var sessionLogSchema = z2.array(logMessageSchema).min(1, "Session must contain at least one message");
|
|
908
|
+
var sessionMetadataSchema = z2.object({
|
|
909
|
+
filename: z2.string(),
|
|
910
|
+
session_id: uuidSchema,
|
|
911
|
+
total_messages: z2.number().int().nonnegative(),
|
|
912
|
+
message_type_counts: z2.record(z2.number().int().nonnegative()),
|
|
913
|
+
tools_used: z2.array(toolNameSchema),
|
|
914
|
+
tool_use_count: z2.number().int().nonnegative(),
|
|
915
|
+
duration_ms: z2.number().int().nonnegative().optional(),
|
|
916
|
+
duration_api_ms: z2.number().int().nonnegative().optional(),
|
|
917
|
+
num_turns: z2.number().int().nonnegative().optional(),
|
|
918
|
+
success: z2.boolean().optional(),
|
|
919
|
+
cwd: z2.string(),
|
|
920
|
+
model: modelSchema
|
|
921
|
+
});
|
|
922
|
+
var cacheControlSchema = z2.object({
|
|
923
|
+
type: z2.literal("ephemeral")
|
|
924
|
+
});
|
|
925
|
+
var apiMessageContentSchema = z2.union([
|
|
926
|
+
z2.object({
|
|
927
|
+
type: z2.literal("text"),
|
|
928
|
+
text: z2.string(),
|
|
929
|
+
cache_control: cacheControlSchema.optional()
|
|
930
|
+
}),
|
|
931
|
+
z2.object({
|
|
932
|
+
type: z2.literal("tool_use"),
|
|
933
|
+
id: z2.string(),
|
|
934
|
+
name: toolNameSchema,
|
|
935
|
+
input: z2.record(z2.unknown()).optional(),
|
|
936
|
+
cache_control: cacheControlSchema.optional()
|
|
937
|
+
}),
|
|
938
|
+
z2.object({
|
|
939
|
+
type: z2.literal("tool_result"),
|
|
940
|
+
tool_use_id: z2.string(),
|
|
941
|
+
content: z2.union([z2.string(), z2.record(z2.unknown())]),
|
|
942
|
+
cache_control: cacheControlSchema.optional()
|
|
943
|
+
})
|
|
944
|
+
]);
|
|
945
|
+
var apiMessageSchema = z2.object({
|
|
946
|
+
role: z2.enum(["user", "assistant", "system"]),
|
|
947
|
+
content: z2.union([z2.string(), z2.array(apiMessageContentSchema)])
|
|
948
|
+
});
|
|
949
|
+
var apiSystemMessageSchema = z2.object({
|
|
950
|
+
type: z2.literal("text"),
|
|
951
|
+
text: z2.string(),
|
|
952
|
+
cache_control: cacheControlSchema.optional()
|
|
953
|
+
});
|
|
954
|
+
var apiToolSchema = z2.object({
|
|
955
|
+
name: toolNameSchema,
|
|
956
|
+
description: z2.string(),
|
|
957
|
+
input_schema: z2.record(z2.unknown())
|
|
958
|
+
});
|
|
959
|
+
var apiMetadataSchema = z2.object({
|
|
960
|
+
user_id: z2.string()
|
|
961
|
+
}).passthrough();
|
|
962
|
+
var claudeApiRequestSchema = z2.object({
|
|
963
|
+
model: modelSchema,
|
|
964
|
+
messages: z2.array(apiMessageSchema),
|
|
965
|
+
temperature: z2.number().min(0).max(2).optional(),
|
|
966
|
+
system: z2.array(apiSystemMessageSchema).optional(),
|
|
967
|
+
tools: z2.array(apiToolSchema).optional(),
|
|
968
|
+
metadata: apiMetadataSchema.optional(),
|
|
969
|
+
max_tokens: z2.number().int().positive().optional(),
|
|
970
|
+
stream: z2.boolean().optional()
|
|
971
|
+
});
|
|
972
|
+
export {
|
|
973
|
+
userMessageSchema,
|
|
974
|
+
toolUseContentSchema,
|
|
975
|
+
toolResultEventSchema,
|
|
976
|
+
toolResultEventDataSchema,
|
|
977
|
+
toolResultContentSchema,
|
|
978
|
+
tokenUsageEventSchema,
|
|
979
|
+
tokenUsageEventDataSchema,
|
|
980
|
+
thinkingContentSchema,
|
|
981
|
+
textContentSchema,
|
|
982
|
+
systemMessageSchema,
|
|
983
|
+
serverReadyEventSchema,
|
|
984
|
+
serverEventSchema,
|
|
985
|
+
sentinelUnloadedEventSchema,
|
|
986
|
+
sentinelUnloadedEventDataSchema,
|
|
987
|
+
sentinelTriggeredEventSchema,
|
|
988
|
+
sentinelOutputEventSchema,
|
|
989
|
+
sentinelOutputEventDataSchema,
|
|
990
|
+
sentinelLoadedEventSchema,
|
|
991
|
+
sentinelLoadedEventDataSchema,
|
|
992
|
+
sentinelErrorEventSchema,
|
|
993
|
+
rigSetupFailedEventSchema,
|
|
994
|
+
rigSetupFailedEventDataSchema,
|
|
995
|
+
rigSetupCompletedEventSchema,
|
|
996
|
+
rigSetupCompletedEventDataSchema,
|
|
997
|
+
rigOutputEventSchema,
|
|
998
|
+
resultMessageSchema,
|
|
999
|
+
messageContentSchema,
|
|
1000
|
+
loopIterationCompletedEventSchema,
|
|
1001
|
+
loopIterationCompletedEventDataSchema,
|
|
1002
|
+
logMessageSchema,
|
|
1003
|
+
isServerStateEvent,
|
|
1004
|
+
isSentinelEvent,
|
|
1005
|
+
isConnectionStateEvent,
|
|
1006
|
+
isAgenticBackboneEvent,
|
|
1007
|
+
infoEventSchema,
|
|
1008
|
+
fileUpdatedEventSchema,
|
|
1009
|
+
errorEventSchema,
|
|
1010
|
+
codonStartedEventSchema,
|
|
1011
|
+
codonStartedEventDataSchema,
|
|
1012
|
+
codonExtendedEventSchema,
|
|
1013
|
+
codonCompletedEventSchema,
|
|
1014
|
+
codonCompletedEventDataSchema,
|
|
1015
|
+
budgetSummaryEventSchema,
|
|
1016
|
+
assistantMessageSchema,
|
|
1017
|
+
assistantActionEventSchema,
|
|
1018
|
+
assistantActionEventDataSchema
|
|
1019
|
+
};
|