@telora/daemon 0.17.59 → 0.17.64

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 (103) hide show
  1. package/build-info.json +15 -3
  2. package/dist/cascade-restatement.d.ts +10 -0
  3. package/dist/cascade-restatement.d.ts.map +1 -1
  4. package/dist/cascade-restatement.js +107 -37
  5. package/dist/cascade-restatement.js.map +1 -1
  6. package/dist/ci-escalation.d.ts.map +1 -1
  7. package/dist/ci-escalation.js +5 -3
  8. package/dist/ci-escalation.js.map +1 -1
  9. package/dist/cli/backfill-frt-prose.d.ts +101 -0
  10. package/dist/cli/backfill-frt-prose.d.ts.map +1 -0
  11. package/dist/cli/backfill-frt-prose.js +195 -0
  12. package/dist/cli/backfill-frt-prose.js.map +1 -0
  13. package/dist/completion/event-escalations.d.ts +4 -11
  14. package/dist/completion/event-escalations.d.ts.map +1 -1
  15. package/dist/completion/event-escalations.js +21 -5
  16. package/dist/completion/event-escalations.js.map +1 -1
  17. package/dist/completion/event.d.ts +4 -11
  18. package/dist/completion/event.d.ts.map +1 -1
  19. package/dist/completion/event.js.map +1 -1
  20. package/dist/completion/review-exit-phase.d.ts.map +1 -1
  21. package/dist/completion/review-exit-phase.js +6 -2
  22. package/dist/completion/review-exit-phase.js.map +1 -1
  23. package/dist/crash-recovery-cleanup.d.ts.map +1 -1
  24. package/dist/crash-recovery-cleanup.js +7 -1
  25. package/dist/crash-recovery-cleanup.js.map +1 -1
  26. package/dist/crash-recovery-types.d.ts +4 -9
  27. package/dist/crash-recovery-types.d.ts.map +1 -1
  28. package/dist/crash-recovery-types.js.map +1 -1
  29. package/dist/crash-recovery.d.ts +4 -9
  30. package/dist/crash-recovery.d.ts.map +1 -1
  31. package/dist/crash-recovery.js +5 -1
  32. package/dist/crash-recovery.js.map +1 -1
  33. package/dist/delivery-advance-block.d.ts +8 -6
  34. package/dist/delivery-advance-block.d.ts.map +1 -1
  35. package/dist/delivery-advance-block.js +14 -12
  36. package/dist/delivery-advance-block.js.map +1 -1
  37. package/dist/delivery-guards.d.ts.map +1 -1
  38. package/dist/delivery-guards.js +4 -1
  39. package/dist/delivery-guards.js.map +1 -1
  40. package/dist/delivery-lifecycle.d.ts.map +1 -1
  41. package/dist/delivery-lifecycle.js +7 -1
  42. package/dist/delivery-lifecycle.js.map +1 -1
  43. package/dist/delivery-merge.d.ts.map +1 -1
  44. package/dist/delivery-merge.js +5 -1
  45. package/dist/delivery-merge.js.map +1 -1
  46. package/dist/directive/directive-dispatch.d.ts.map +1 -1
  47. package/dist/directive/directive-dispatch.js +4 -1
  48. package/dist/directive/directive-dispatch.js.map +1 -1
  49. package/dist/escalation-provenance.d.ts +60 -0
  50. package/dist/escalation-provenance.d.ts.map +1 -0
  51. package/dist/escalation-provenance.js +153 -0
  52. package/dist/escalation-provenance.js.map +1 -0
  53. package/dist/escalations.d.ts +33 -3
  54. package/dist/escalations.d.ts.map +1 -1
  55. package/dist/escalations.js +58 -12
  56. package/dist/escalations.js.map +1 -1
  57. package/dist/focus-executor.js +1 -1
  58. package/dist/focus-executor.js.map +1 -1
  59. package/dist/focus-merge.d.ts.map +1 -1
  60. package/dist/focus-merge.js +3 -1
  61. package/dist/focus-merge.js.map +1 -1
  62. package/dist/focus-stage-lifecycle.d.ts.map +1 -1
  63. package/dist/focus-stage-lifecycle.js +5 -2
  64. package/dist/focus-stage-lifecycle.js.map +1 -1
  65. package/dist/index.js +16 -0
  66. package/dist/index.js.map +1 -1
  67. package/dist/listener-auto-advance.d.ts.map +1 -1
  68. package/dist/listener-auto-advance.js +8 -3
  69. package/dist/listener-auto-advance.js.map +1 -1
  70. package/dist/listener.d.ts.map +1 -1
  71. package/dist/listener.js +6 -0
  72. package/dist/listener.js.map +1 -1
  73. package/dist/merge-back-loop.d.ts.map +1 -1
  74. package/dist/merge-back-loop.js +7 -2
  75. package/dist/merge-back-loop.js.map +1 -1
  76. package/dist/nexus-escalation-bridge.d.ts +92 -0
  77. package/dist/nexus-escalation-bridge.d.ts.map +1 -0
  78. package/dist/nexus-escalation-bridge.js +109 -0
  79. package/dist/nexus-escalation-bridge.js.map +1 -0
  80. package/dist/nexus-incoming.d.ts +47 -0
  81. package/dist/nexus-incoming.d.ts.map +1 -0
  82. package/dist/nexus-incoming.js +93 -0
  83. package/dist/nexus-incoming.js.map +1 -0
  84. package/dist/nexus-return.d.ts +79 -0
  85. package/dist/nexus-return.d.ts.map +1 -0
  86. package/dist/nexus-return.js +193 -0
  87. package/dist/nexus-return.js.map +1 -0
  88. package/dist/queries/deliveries.d.ts +12 -0
  89. package/dist/queries/deliveries.d.ts.map +1 -1
  90. package/dist/queries/deliveries.js +17 -0
  91. package/dist/queries/deliveries.js.map +1 -1
  92. package/dist/queries/issues.d.ts +62 -12
  93. package/dist/queries/issues.d.ts.map +1 -1
  94. package/dist/queries/issues.js +46 -13
  95. package/dist/queries/issues.js.map +1 -1
  96. package/dist/resolvers/escalation-answers.d.ts +22 -0
  97. package/dist/resolvers/escalation-answers.d.ts.map +1 -0
  98. package/dist/resolvers/escalation-answers.js +98 -0
  99. package/dist/resolvers/escalation-answers.js.map +1 -0
  100. package/dist/resolvers/index.d.ts.map +1 -1
  101. package/dist/resolvers/index.js +2 -0
  102. package/dist/resolvers/index.js.map +1 -1
  103. package/package.json +3 -3
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { callApi, callApiValidated } from './shared.js';
5
5
  import { DeliveryIssuesResponseSchema, DeliverySessionCountResponseSchema, IssueCreateResponseSchema, } from './schemas.js';
6
+ import { resolveProvenance } from '../escalation-provenance.js';
6
7
  /**
7
8
  * Fetch all issues for a delivery (used by completion guards).
8
9
  */
@@ -37,9 +38,21 @@ export async function updateIssueStatus(issueId, status) {
37
38
  }
38
39
  /**
39
40
  * Create an escalation request.
41
+ *
42
+ * When `anchor` is supplied, provenance is derived centrally via
43
+ * resolveProvenance and merged with any explicit productId/focusId/deliveryId
44
+ * on params (explicit wins). This is the single stamping point that closes
45
+ * Delivery C: every site routes through here and provenance is guaranteed
46
+ * whenever an anchor is available. resolveProvenance never throws, so a
47
+ * derivation miss degrades to the explicit fields (or none) rather than
48
+ * aborting the escalation.
40
49
  */
41
50
  export async function createEscalation(params) {
42
- await callApi('escalation_create', {
51
+ const derived = params.anchor ? await resolveProvenance(params.anchor) : {};
52
+ const productId = params.productId ?? derived.productId;
53
+ const focusId = params.focusId ?? derived.focusId;
54
+ const deliveryId = params.deliveryId ?? derived.deliveryId;
55
+ const res = await callApi('escalation_create', {
43
56
  issueId: params.issueId,
44
57
  fields: {
45
58
  reasonType: params.reasonType,
@@ -48,8 +61,14 @@ export async function createEscalation(params) {
48
61
  helpNeeded: params.helpNeeded,
49
62
  ...(params.escalationKind ? { escalationKind: params.escalationKind } : {}),
50
63
  ...(params.metadata ? { metadata: params.metadata } : {}),
64
+ ...(productId ? { productId } : {}),
65
+ ...(focusId ? { focusId } : {}),
66
+ ...(deliveryId ? { deliveryId } : {}),
67
+ ...(params.targetProductId ? { targetProductId: params.targetProductId } : {}),
68
+ ...(params.disposition ? { disposition: params.disposition } : {}),
51
69
  },
52
70
  });
71
+ return { escalationId: res.escalation?.id ?? null };
53
72
  }
54
73
  /**
55
74
  * List open (not-yet-resolved) escalations for the organization.
@@ -78,47 +97,61 @@ export async function listPendingEscalations() {
78
97
  }
79
98
  /**
80
99
  * Returns true when an open (status pending or in_review) team_failure
81
- * escalation exists with metadata.focusId matching the given focus.
100
+ * escalation exists for the given focus.
82
101
  *
83
102
  * Used by the focus-executor spawn precondition to prevent respawning a
84
103
  * team that has already given up on a focus. The escalation row is the
85
104
  * signal "this focus is not currently workable"; until a human resolves
86
105
  * it, the daemon should not spend cycles re-deriving the same conclusion.
87
106
  *
88
- * The team_failure escalation is filed by escalateNoProgress in
89
- * focus-completion-event.ts; it stamps metadata.focusId on every row.
107
+ * Dedup matches on the first-class `focus_id` column (stamped via the
108
+ * anchor since Delivery B of the Escalation Signal Richness focus). A
109
+ * metadata.focusId fallback covers any rows that predate the migration's
110
+ * backfill and landed in the deployment window before the daemon restarted.
90
111
  */
91
112
  export async function hasOpenTeamFailureEscalation(focusId) {
92
113
  const result = await callApi('escalation_list', {
93
114
  fields: {
94
115
  statuses: ['pending', 'in_review'],
95
116
  escalationKind: 'team_failure',
117
+ focusId,
96
118
  },
97
119
  limit: 500,
98
120
  });
99
- return (result.escalations ?? []).some((e) => e.metadata?.focusId === focusId);
121
+ // Primary: column-filtered result. Fallback: metadata.focusId for any rows
122
+ // that predate the column backfill (deployment-window back-compat only).
123
+ return (result.escalations ?? []).some((e) => e.focusId === focusId ||
124
+ e.metadata?.focusId === focusId);
100
125
  }
101
126
  /**
102
127
  * Returns true when an open (status pending or in_review) escalation exists
103
- * whose metadata carries both `kind === metadataKind` and
104
- * `deliveryId === deliveryId`.
128
+ * for the given delivery + kind discriminator.
105
129
  *
106
- * The dedup discriminator lives in the unconstrained `metadata` JSONB rather
107
- * than the `escalation_kind` column (which has a fixed DB CHECK constraint),
108
- * so the advance-block class can dedup without a schema migration. Mirrors
109
- * hasOpenTeamFailureEscalation, which dedups on metadata.focusId.
130
+ * Now that the advance-block class is a first-class `escalation_kind`
131
+ * ('advance_blocked', added to the DB CHECK + ESCALATION_KINDS) and the
132
+ * delivery is a first-class `delivery_id` column, dedup matches on the
133
+ * COLUMNS in preference to the metadata bag. A metadata fallback is retained
134
+ * for back-compat with rows already open at deploy time (filed before this
135
+ * promotion, which carry the discriminator only in metadata.kind /
136
+ * metadata.deliveryId).
110
137
  *
111
138
  * Used by the delivery advance-block path so a delivery stuck across many
112
139
  * polls files exactly one open escalation instead of one per tick.
113
140
  */
114
- export async function hasOpenEscalationForDelivery(deliveryId, metadataKind) {
141
+ export async function hasOpenEscalationForDelivery(deliveryId, escalationKind) {
115
142
  const result = await callApi('escalation_list', {
116
143
  fields: { statuses: ['pending', 'in_review'] },
117
144
  limit: 500,
118
145
  });
119
146
  return (result.escalations ?? []).some((e) => {
147
+ // Preferred: match on the typed columns.
148
+ if (e.escalationKind === escalationKind && e.deliveryId === deliveryId) {
149
+ return true;
150
+ }
151
+ // Back-compat: rows filed before the column promotion carry the
152
+ // discriminator in the metadata bag.
120
153
  const meta = e.metadata ?? null;
121
- return meta?.kind === metadataKind && meta?.deliveryId === deliveryId;
154
+ return meta?.kind === escalationKind && meta?.deliveryId === deliveryId;
122
155
  });
123
156
  }
124
157
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/queries/issues.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/queries/issues.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * escalation.answers
3
+ *
4
+ * The directed-answer return: when a human resolves a DIRECTED escalation
5
+ * (disposition needs_intent / needs_clarification -- a question literally
6
+ * addressed to a human) by providing a structured answer, that answer has had
7
+ * nowhere to land back in the agent's context. The daemon's other escalation
8
+ * read paths fetch only OPEN rows (merge-back dedup) or ignore the answer
9
+ * (current-cycle audit), and a freshly-spawned team carries nothing of the
10
+ * prior answer -- so the next cycle re-asks the same question or guesses.
11
+ *
12
+ * This resolver closes that loop. It reads resolved + answered + directed
13
+ * escalations for THIS focus (routed by the provenance focus_id column, so the
14
+ * answer reaches the focus that asked even across the fresh-spawn boundary) and
15
+ * composes an "Answers to your prior questions" section into the spawn prompt.
16
+ *
17
+ * Windowed by the prior audit cycle's lower bound (best effort) so the section
18
+ * surfaces answers given since the last cycle rather than the full history.
19
+ */
20
+ /** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
21
+ export declare function registerEscalationAnswersResolver(): void;
22
+ //# sourceMappingURL=escalation-answers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escalation-answers.d.ts","sourceRoot":"","sources":["../../src/resolvers/escalation-answers.ts"],"names":[],"mappings":"AAuEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,oGAAoG;AACpG,wBAAgB,iCAAiC,IAAI,IAAI,CAsCxD"}
@@ -0,0 +1,98 @@
1
+ import { registerSourceResolver } from '../assembly-engine.js';
2
+ import { callApi } from '../queries/shared.js';
3
+ import { getAuditCycleLowerBound } from './shared/audit.js';
4
+ /**
5
+ * Fetch resolved DIRECTED escalations that a human has ANSWERED for a focus --
6
+ * the directed-answer read-back. Scope-guarded server-side to the two directed
7
+ * dispositions (needs_intent / needs_clarification), status resolved, and a
8
+ * non-null structured answer, routed by the provenance focus_id column.
9
+ *
10
+ * Kept self-contained in the resolver module (calling callApi directly, like
11
+ * the sibling agent_escalations / agent_session_summaries resolvers) so the
12
+ * assembly-registry load chain does not drag in unrelated query modules.
13
+ *
14
+ * `sinceIso` (optional) windows to answers stamped at/after that instant.
15
+ */
16
+ async function getAnsweredDirectedEscalationsForFocus(focusId, sinceIso) {
17
+ const params = { focusId };
18
+ if (sinceIso)
19
+ params.sinceIso = sinceIso;
20
+ const result = await callApi('daemon_get_answered_directed_escalations_for_focus', params);
21
+ return result.escalations ?? [];
22
+ }
23
+ /**
24
+ * Stamp the given answers consumed once they have been assembled into this
25
+ * spawn's prompt -- the closure that stops a delivered answer re-surfacing as an
26
+ * open ask next cycle. Best-effort: a failure here degrades to at-least-once
27
+ * (the answer re-surfaces) rather than losing it, so we swallow the error.
28
+ *
29
+ * Identity contract: consumption is per escalation id, so a legitimately
30
+ * recurring blocker files a NEW escalation (unconsumed) that still surfaces,
31
+ * while the already-answered question stays consumed -- dedup by question
32
+ * identity, not by answer text.
33
+ */
34
+ async function markDirectedAnswersConsumed(ids) {
35
+ if (ids.length === 0)
36
+ return;
37
+ try {
38
+ await callApi('daemon_mark_directed_answers_consumed', { ids });
39
+ }
40
+ catch (err) {
41
+ console.warn(`[assembly] escalation.answers mark-consumed failed: ${err.message}`);
42
+ }
43
+ }
44
+ /**
45
+ * escalation.answers
46
+ *
47
+ * The directed-answer return: when a human resolves a DIRECTED escalation
48
+ * (disposition needs_intent / needs_clarification -- a question literally
49
+ * addressed to a human) by providing a structured answer, that answer has had
50
+ * nowhere to land back in the agent's context. The daemon's other escalation
51
+ * read paths fetch only OPEN rows (merge-back dedup) or ignore the answer
52
+ * (current-cycle audit), and a freshly-spawned team carries nothing of the
53
+ * prior answer -- so the next cycle re-asks the same question or guesses.
54
+ *
55
+ * This resolver closes that loop. It reads resolved + answered + directed
56
+ * escalations for THIS focus (routed by the provenance focus_id column, so the
57
+ * answer reaches the focus that asked even across the fresh-spawn boundary) and
58
+ * composes an "Answers to your prior questions" section into the spawn prompt.
59
+ *
60
+ * Windowed by the prior audit cycle's lower bound (best effort) so the section
61
+ * surfaces answers given since the last cycle rather than the full history.
62
+ */
63
+ /** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
64
+ export function registerEscalationAnswersResolver() {
65
+ registerSourceResolver('escalation.answers', async (context) => {
66
+ try {
67
+ const since = await getAuditCycleLowerBound(context.focusId);
68
+ const answered = await getAnsweredDirectedEscalationsForFocus(context.focusId, since ?? undefined);
69
+ if (answered.length === 0)
70
+ return '';
71
+ const blocks = answered.map((e) => {
72
+ const question = e.description.replace(/\n/g, ' ').trim();
73
+ const truncatedQ = question.length > 400 ? `${question.slice(0, 397)}...` : question;
74
+ const answer = e.answer.trim();
75
+ const when = e.answeredAt ? ` (answered ${e.answeredAt})` : '';
76
+ return `- **You asked** [${e.disposition}]: ${truncatedQ}\n **Answer**${when}: ${answer}`;
77
+ });
78
+ const section = [
79
+ '## Answers to your prior questions',
80
+ '',
81
+ 'A human has answered directed questions you raised in earlier cycles.',
82
+ 'Treat these as resolved intent/clarification -- act on them and do NOT re-ask.',
83
+ '',
84
+ blocks.join('\n'),
85
+ ].join('\n');
86
+ // Consumed once it is in this spawn's prompt -- stops the same answer
87
+ // re-surfacing (no re-ask). After this, the read-back's
88
+ // answer_consumed_at IS NULL filter excludes these ids.
89
+ await markDirectedAnswersConsumed(answered.map((e) => e.id));
90
+ return section;
91
+ }
92
+ catch (err) {
93
+ console.warn(`[assembly] escalation.answers failed: ${err.message}`);
94
+ return '';
95
+ }
96
+ });
97
+ }
98
+ //# sourceMappingURL=escalation-answers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escalation-answers.js","sourceRoot":"","sources":["../../src/resolvers/escalation-answers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAmFH;;;;;;;;;GASG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAgBxC;AAGD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAqFH;;;;;;;;;GASG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAgBxC;AAGD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC"}
@@ -50,6 +50,7 @@ import { registerLoopDeliveryIndexResolver } from './loop-delivery-index.js';
50
50
  import { registerRetiredInjectionsResolver } from './retired-injections.js';
51
51
  import { registerAgentSessionSummariesResolver } from './agent-session-summaries.js';
52
52
  import { registerAgentEscalationsResolver } from './agent-escalations.js';
53
+ import { registerEscalationAnswersResolver } from './escalation-answers.js';
53
54
  import { registerRealityTreeSnapshotResolver } from './reality-tree-snapshot.js';
54
55
  import { registerPrdPersonaResolver } from './prd-persona.js';
55
56
  import { registerPrdContextResolver } from './prd-context.js';
@@ -88,6 +89,7 @@ const REGISTER_FUNCTIONS = [
88
89
  registerRetiredInjectionsResolver,
89
90
  registerAgentSessionSummariesResolver,
90
91
  registerAgentEscalationsResolver,
92
+ registerEscalationAnswersResolver,
91
93
  registerRealityTreeSnapshotResolver,
92
94
  registerPrdPersonaResolver,
93
95
  registerPrdContextResolver,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telora/daemon",
3
- "version": "0.17.59",
3
+ "version": "0.17.64",
4
4
  "description": "Agent orchestration daemon for Telora - spawns and manages Claude Code instances",
5
5
  "type": "module",
6
6
  "bin": {
@@ -36,8 +36,8 @@
36
36
  },
37
37
  "//testRunner": "Uses Node.js built-in test runner (node:test) via tsx for TypeScript support. The root package uses Vitest; this is a deliberate choice for the daemon package to avoid framework dependencies. See src/__tests__/ for test files.",
38
38
  "dependencies": {
39
- "@telora/daemon-core": "^0.2.38",
40
- "@telora/mcp-products": "^0.22.57",
39
+ "@telora/daemon-core": "^0.2.41",
40
+ "@telora/mcp-products": "^0.22.60",
41
41
  "commander": "^14.0.3",
42
42
  "yaml": "^2.4.0",
43
43
  "zod": "^4.3.6"