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.
Files changed (79) hide show
  1. package/README.md +12 -11
  2. package/dist/base-process-manager.d.ts +30 -0
  3. package/dist/budget.d.ts +315 -0
  4. package/dist/checkpoint-git.d.ts +98 -0
  5. package/dist/claude-agent-sdk-manager.d.ts +144 -0
  6. package/dist/claude-log-parser.d.ts +63 -0
  7. package/dist/claude-runtime-extractor.d.ts +73 -0
  8. package/dist/codex-runtime-extractor.d.ts +107 -0
  9. package/dist/codon-runner.d.ts +278 -0
  10. package/dist/config-validation/model-validator.d.ts +16 -0
  11. package/dist/config-validation/sentinel.schema.d.ts +6967 -0
  12. package/dist/config.d.ts +40815 -0
  13. package/dist/cost-tracker.d.ts +72 -0
  14. package/dist/execution-planner.d.ts +62 -0
  15. package/dist/execution-thread.d.ts +71 -0
  16. package/dist/exports/schemas.d.ts +9 -0
  17. package/dist/exports/schemas.js +1019 -0
  18. package/dist/exports/types.d.ts +15 -0
  19. package/dist/exports/types.js +60 -0
  20. package/dist/file-resolver.d.ts +33 -0
  21. package/dist/index.js +380 -293
  22. package/dist/index.js.map +33 -29
  23. package/dist/llm/llm-provider-registry.d.ts +207 -0
  24. package/dist/llm/models-dev-schema.d.ts +679 -0
  25. package/dist/llm/provider-config.d.ts +30 -0
  26. package/dist/prompt-builder.d.ts +75 -0
  27. package/dist/prompt-frontmatter.d.ts +61 -0
  28. package/dist/replay-process-manager.d.ts +82 -0
  29. package/dist/runtime-extractor-base.d.ts +120 -0
  30. package/dist/schemas/event-schemas.d.ts +8389 -0
  31. package/dist/schemas/websocket-log-schemas.d.ts +4502 -0
  32. package/dist/shim-process-manager.d.ts +98 -0
  33. package/dist/shim-runtime-extractor.d.ts +51 -0
  34. package/dist/shims/codex/README.md +129 -0
  35. package/dist/shims/codex/THIRDPARTY.md +18 -0
  36. package/dist/shims/codex/VERSION +1 -0
  37. package/dist/shims/codex/common/package.json +24 -0
  38. package/dist/shims/codex/index.js +1154 -970
  39. package/dist/shims/codex/package.json +46 -0
  40. package/dist/shims/codex/tsup.config.ts +16 -0
  41. package/dist/shims/gemini/README.md +59 -0
  42. package/dist/shims/gemini/THIRDPARTY.md +32 -0
  43. package/dist/shims/gemini/VERSION +1 -0
  44. package/dist/shims/gemini/common/package.json +24 -0
  45. package/dist/shims/gemini/index.js +1359 -30
  46. package/dist/shims/gemini/package.json +37 -0
  47. package/dist/shims/opencode/README.md +82 -0
  48. package/dist/shims/opencode/THIRDPARTY.md +32 -0
  49. package/dist/shims/opencode/VERSION +1 -0
  50. package/dist/shims/opencode/common/package.json +24 -0
  51. package/dist/shims/opencode/index.js +1476 -0
  52. package/dist/shims/opencode/package.json +38 -0
  53. package/dist/shims/pi/README.md +87 -0
  54. package/dist/shims/pi/THIRDPARTY.md +24 -0
  55. package/dist/shims/pi/VERSION +1 -0
  56. package/dist/shims/pi/common/package.json +24 -0
  57. package/dist/shims/pi/index.js +249832 -0
  58. package/dist/shims/pi/package.json +53 -0
  59. package/dist/state-manager.d.ts +161 -0
  60. package/dist/state-transition-guards.d.ts +37 -0
  61. package/dist/telemetry/telemetry-types.d.ts +206 -0
  62. package/dist/typed-event-emitter.d.ts +57 -0
  63. package/dist/types/branded-types.d.ts +15 -0
  64. package/dist/types/budget-types.d.ts +82 -0
  65. package/dist/types/claude-session-schema.d.ts +2430 -0
  66. package/dist/types/error-types.d.ts +44 -0
  67. package/dist/types/input-ai-types.d.ts +1070 -0
  68. package/dist/types/llm-call-types.d.ts +3829 -0
  69. package/dist/types/sentinel-types.d.ts +66 -0
  70. package/dist/types/state-types.d.ts +1099 -0
  71. package/dist/types/tool-types.d.ts +86 -0
  72. package/dist/types/types.d.ts +367 -0
  73. package/dist/types/websocket-log-types.d.ts +7 -0
  74. package/dist/utils.d.ts +452 -0
  75. package/package.json +15 -2
  76. package/schemas/hank.schema.json +158 -3
  77. package/schemas/hankweave.schema.json +17 -1
  78. package/shims/codex/index.js +0 -1583
  79. 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
+ };