@telora/daemon 0.20.54 → 0.20.60

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 (87) hide show
  1. package/build-info.json +6 -3
  2. package/dist/cli/session-state.d.ts +9 -0
  3. package/dist/cli/session-state.d.ts.map +1 -1
  4. package/dist/cli/session-state.js.map +1 -1
  5. package/dist/completion/review-exit-escalations.d.ts +85 -0
  6. package/dist/completion/review-exit-escalations.d.ts.map +1 -0
  7. package/dist/completion/review-exit-escalations.js +203 -0
  8. package/dist/completion/review-exit-escalations.js.map +1 -0
  9. package/dist/completion/review-exit-phase.d.ts.map +1 -1
  10. package/dist/completion/review-exit-phase.js +43 -135
  11. package/dist/completion/review-exit-phase.js.map +1 -1
  12. package/dist/delivery-advance-block.d.ts.map +1 -1
  13. package/dist/delivery-advance-block.js +8 -1
  14. package/dist/delivery-advance-block.js.map +1 -1
  15. package/dist/external-hold.d.ts +104 -0
  16. package/dist/external-hold.d.ts.map +1 -0
  17. package/dist/external-hold.js +149 -0
  18. package/dist/external-hold.js.map +1 -0
  19. package/dist/listener-auto-advance.d.ts.map +1 -1
  20. package/dist/listener-auto-advance.js +12 -0
  21. package/dist/listener-auto-advance.js.map +1 -1
  22. package/dist/listener.d.ts.map +1 -1
  23. package/dist/listener.js +56 -11
  24. package/dist/listener.js.map +1 -1
  25. package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
  26. package/dist/prompt-sections/execution-sections.js +25 -23
  27. package/dist/prompt-sections/execution-sections.js.map +1 -1
  28. package/dist/queries/deliveries.d.ts +62 -0
  29. package/dist/queries/deliveries.d.ts.map +1 -1
  30. package/dist/queries/deliveries.js +1 -0
  31. package/dist/queries/deliveries.js.map +1 -1
  32. package/dist/queries/holds.d.ts +177 -0
  33. package/dist/queries/holds.d.ts.map +1 -0
  34. package/dist/queries/holds.js +232 -0
  35. package/dist/queries/holds.js.map +1 -0
  36. package/dist/queries/issues.d.ts +3 -99
  37. package/dist/queries/issues.d.ts.map +1 -1
  38. package/dist/queries/issues.js +4 -137
  39. package/dist/queries/issues.js.map +1 -1
  40. package/dist/queries/schemas.d.ts +2 -0
  41. package/dist/queries/schemas.d.ts.map +1 -1
  42. package/dist/queries/schemas.js +5 -0
  43. package/dist/queries/schemas.js.map +1 -1
  44. package/dist/resolver-dispatch.d.ts +108 -0
  45. package/dist/resolver-dispatch.d.ts.map +1 -0
  46. package/dist/resolver-dispatch.js +83 -0
  47. package/dist/resolver-dispatch.js.map +1 -0
  48. package/dist/resolver-reach.d.ts +192 -0
  49. package/dist/resolver-reach.d.ts.map +1 -0
  50. package/dist/resolver-reach.js +168 -0
  51. package/dist/resolver-reach.js.map +1 -0
  52. package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
  53. package/dist/resolvers/git-diff-against-base.js +8 -2
  54. package/dist/resolvers/git-diff-against-base.js.map +1 -1
  55. package/dist/resolvers/index.d.ts +1 -1
  56. package/dist/resolvers/index.d.ts.map +1 -1
  57. package/dist/resolvers/index.js +1 -1
  58. package/dist/resolvers/index.js.map +1 -1
  59. package/dist/resolvers/shared/git-diff.d.ts +47 -0
  60. package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
  61. package/dist/resolvers/shared/git-diff.js +103 -15
  62. package/dist/resolvers/shared/git-diff.js.map +1 -1
  63. package/dist/spawn/review-role-fallback.d.ts +37 -3
  64. package/dist/spawn/review-role-fallback.d.ts.map +1 -1
  65. package/dist/spawn/review-role-fallback.js +38 -3
  66. package/dist/spawn/review-role-fallback.js.map +1 -1
  67. package/dist/stall-detectors.d.ts +33 -4
  68. package/dist/stall-detectors.d.ts.map +1 -1
  69. package/dist/stall-detectors.js +64 -5
  70. package/dist/stall-detectors.js.map +1 -1
  71. package/dist/verification-engine.d.ts +10 -0
  72. package/dist/verification-engine.d.ts.map +1 -1
  73. package/dist/verification-engine.js +142 -96
  74. package/dist/verification-engine.js.map +1 -1
  75. package/dist/verification-feedback.d.ts +44 -1
  76. package/dist/verification-feedback.d.ts.map +1 -1
  77. package/dist/verification-feedback.js +130 -1
  78. package/dist/verification-feedback.js.map +1 -1
  79. package/dist/verify-reconciliation.d.ts +25 -1
  80. package/dist/verify-reconciliation.d.ts.map +1 -1
  81. package/dist/verify-reconciliation.js +64 -2
  82. package/dist/verify-reconciliation.js.map +1 -1
  83. package/dist/verify-restatement.d.ts +22 -4
  84. package/dist/verify-restatement.d.ts.map +1 -1
  85. package/dist/verify-restatement.js +18 -1
  86. package/dist/verify-restatement.js.map +1 -1
  87. package/package.json +2 -2
@@ -16,7 +16,8 @@
16
16
  * @module verification-feedback
17
17
  */
18
18
  import { sendMessage } from '@telora/daemon-core';
19
- import { type DeliveryGateState, type ShortfallReconciliationDetail, type VerificationFailureDetail } from './queries/deliveries.js';
19
+ import { type DeliveryGateState, type EvidenceUnavailableDetail, type ShortfallReconciliationDetail, type VerificationFailureDetail } from './queries/deliveries.js';
20
+ import { type CreateEscalationParams } from './queries/issues.js';
20
21
  import { resolveReconciledWrite } from './delivery-reconciler-apply.js';
21
22
  import { getActiveTeams } from './focus-team-state.js';
22
23
  import type { PendingVerification } from './queries/verification.js';
@@ -31,6 +32,16 @@ export declare const DETERMINISTIC_VERIFICATION_GUARD = "deterministic_verificat
31
32
  * deterministic_verification whose exitCode is 0.
32
33
  */
33
34
  export declare const SHORTFALL_RECONCILIATION_GUARD = "verify_shortfall_reconciliation";
35
+ /**
36
+ * gate_state guard name for a verify EVIDENCE-UNAVAILABLE (instrument-fault)
37
+ * hold. The verify path was handed nothing it could judge the work against, so
38
+ * it is BLIND -- distinct from both the deterministic guard (a shell command
39
+ * failed) and the shortfall guard (the work fell short of intent). A reader
40
+ * must never see the gate's own blindness rendered as a verdict about the work.
41
+ */
42
+ export declare const EVIDENCE_UNAVAILABLE_GUARD = "verify_evidence_unavailable";
43
+ /** escalation_kind discriminator for the instrument-fault hold (one open per delivery). */
44
+ export declare const EVIDENCE_UNAVAILABLE_KIND = "verify_evidence_unavailable";
34
45
  /** The slice of a StrategyResult the feedback loop needs. */
35
46
  export interface VerificationFailureResult {
36
47
  logPath?: string;
@@ -122,4 +133,36 @@ export declare function requeueShortfallAsRework(v: Pick<PendingVerification, 'd
122
133
  injected: boolean;
123
134
  detail: ShortfallReconciliationDetail;
124
135
  }>;
136
+ /** Build the gate_state for an evidence-unavailable instrument-fault hold. Pure -- exported for testing. */
137
+ export declare function buildEvidenceUnavailableGateState(detail: EvidenceUnavailableDetail): DeliveryGateState;
138
+ /** Build the informational message injected into a live coding team. Pure -- exported for testing. */
139
+ export declare function buildEvidenceUnavailableInjectMessage(deliveryName: string, detail: EvidenceUnavailableDetail): string;
140
+ /** Injected IO for the evidence-unavailable hold. */
141
+ export interface EvidenceUnavailableDeps extends VerificationFeedbackDeps {
142
+ /** True when an open evidence-unavailable escalation already exists for this delivery. */
143
+ hasOpenEscalationForDelivery: (deliveryId: string, escalationKind: string) => Promise<boolean>;
144
+ /** File the first-occurrence instrument-fault escalation. */
145
+ createEscalation: (params: CreateEscalationParams) => Promise<{
146
+ escalationId: string | null;
147
+ } | void>;
148
+ }
149
+ /**
150
+ * Deliver feedback for a verify EVIDENCE-UNAVAILABLE instrument-fault hold:
151
+ * 1. write gate_state under the evidence-unavailable guard WITHOUT changing
152
+ * execution_status (stays `verify`; same idempotent same-status pattern as
153
+ * the deterministic/shortfall gate_state writes). The delivery is NOT
154
+ * routed to verify_failed, so no iteration_count is consumed.
155
+ * 2. file ONE operator escalation on first occurrence (idempotent per
156
+ * delivery via hasOpenEscalationForDelivery) naming the missing evidence,
157
+ * so an instrument fault escalates immediately instead of cycling to the
158
+ * verify_failed iteration cap.
159
+ * 3. best-effort inject an informational note into a live coding team.
160
+ *
161
+ * Best-effort throughout -- a feedback failure must never crash the verification tick.
162
+ */
163
+ export declare function deliverEvidenceUnavailableFeedback(v: Pick<PendingVerification, 'deliveryId' | 'deliveryName' | 'focusId' | 'productId'>, fault: Omit<EvidenceUnavailableDetail, 'heldAt'>, organizationId: string, deps?: Partial<EvidenceUnavailableDeps>): Promise<{
164
+ gateWritten: boolean;
165
+ escalated: boolean;
166
+ injected: boolean;
167
+ }>;
125
168
  //# sourceMappingURL=verification-feedback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verification-feedback.d.ts","sourceRoot":"","sources":["../src/verification-feedback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification-feedback.d.ts","sourceRoot":"","sources":["../src/verification-feedback.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,9 @@
15
15
  *
16
16
  * @module verification-feedback
17
17
  */
18
- import { DELIVERY_STATUS, sendMessage } from '@telora/daemon-core';
18
+ import { DELIVERY_STATUS, ESCALATION_REASONS, ESCALATION_DISPOSITIONS, sendMessage, withRetry } from '@telora/daemon-core';
19
19
  import { updateDeliveryStatus, } from './queries/deliveries.js';
20
+ import { createEscalation as defaultCreateEscalation, hasOpenEscalationForDelivery as defaultHasOpenEscalationForDelivery, } from './queries/issues.js';
20
21
  import { resolveReconciledWrite } from './delivery-reconciler-apply.js';
21
22
  import { getActiveTeams } from './focus-team-state.js';
22
23
  import { parseFailingTests } from './verification-failure-parser.js';
@@ -32,6 +33,16 @@ export const DETERMINISTIC_VERIFICATION_GUARD = 'deterministic_verification';
32
33
  * deterministic_verification whose exitCode is 0.
33
34
  */
34
35
  export const SHORTFALL_RECONCILIATION_GUARD = 'verify_shortfall_reconciliation';
36
+ /**
37
+ * gate_state guard name for a verify EVIDENCE-UNAVAILABLE (instrument-fault)
38
+ * hold. The verify path was handed nothing it could judge the work against, so
39
+ * it is BLIND -- distinct from both the deterministic guard (a shell command
40
+ * failed) and the shortfall guard (the work fell short of intent). A reader
41
+ * must never see the gate's own blindness rendered as a verdict about the work.
42
+ */
43
+ export const EVIDENCE_UNAVAILABLE_GUARD = 'verify_evidence_unavailable';
44
+ /** escalation_kind discriminator for the instrument-fault hold (one open per delivery). */
45
+ export const EVIDENCE_UNAVAILABLE_KIND = 'verify_evidence_unavailable';
35
46
  /** Build the gate_state for a failed deterministic run. Pure -- exported for testing. */
36
47
  export function buildVerificationFailureGateState(detail) {
37
48
  return {
@@ -284,4 +295,122 @@ export async function requeueShortfallAsRework(v, shortfalls, organizationId, de
284
295
  }
285
296
  return { transitioned, injected, detail };
286
297
  }
298
+ // ---------------------------------------------------------------------------
299
+ // Evidence-unavailable instrument-fault hold (a gate must not report its own
300
+ // blindness as a verdict)
301
+ // ---------------------------------------------------------------------------
302
+ /** Build the gate_state for an evidence-unavailable instrument-fault hold. Pure -- exported for testing. */
303
+ export function buildEvidenceUnavailableGateState(detail) {
304
+ return {
305
+ blocking: [{ guardName: EVIDENCE_UNAVAILABLE_GUARD, passed: false }],
306
+ warnings: [],
307
+ evaluatedAt: detail.heldAt,
308
+ evidenceUnavailable: detail,
309
+ };
310
+ }
311
+ /** Build the informational message injected into a live coding team. Pure -- exported for testing. */
312
+ export function buildEvidenceUnavailableInjectMessage(deliveryName, detail) {
313
+ return [
314
+ `VERIFY HELD for delivery "${deliveryName}": the verify gate was handed NO evidence it could judge the work against.`,
315
+ '',
316
+ 'This is an INSTRUMENT FAULT, not a statement about your work and NOT a failing check. ' +
317
+ 'The verify reconciliation could not see a diff / changed files / inspection finding, so it ' +
318
+ 'declined to render any verdict (it must never report its own blindness as a shortfall).',
319
+ '',
320
+ `Missing evidence: ${detail.missing.join(', ') || '(all judgeable slots empty)'}`,
321
+ detail.commitsAhead > 0
322
+ ? `The branch is ${detail.commitsAhead} commit(s) ahead of the base but the diff resolved empty -- a broken measurement.`
323
+ : 'The branch is level with / behind the base (already merged, or no work attributable) -- no diff to read.',
324
+ '',
325
+ 'An operator escalation has been filed. Do not re-run coding to "fix" this -- there is nothing in the work to fix.',
326
+ ].join('\n');
327
+ }
328
+ const defaultEvidenceUnavailableDeps = () => ({
329
+ ...defaultDeps(),
330
+ hasOpenEscalationForDelivery: defaultHasOpenEscalationForDelivery,
331
+ createEscalation: defaultCreateEscalation,
332
+ });
333
+ /**
334
+ * Deliver feedback for a verify EVIDENCE-UNAVAILABLE instrument-fault hold:
335
+ * 1. write gate_state under the evidence-unavailable guard WITHOUT changing
336
+ * execution_status (stays `verify`; same idempotent same-status pattern as
337
+ * the deterministic/shortfall gate_state writes). The delivery is NOT
338
+ * routed to verify_failed, so no iteration_count is consumed.
339
+ * 2. file ONE operator escalation on first occurrence (idempotent per
340
+ * delivery via hasOpenEscalationForDelivery) naming the missing evidence,
341
+ * so an instrument fault escalates immediately instead of cycling to the
342
+ * verify_failed iteration cap.
343
+ * 3. best-effort inject an informational note into a live coding team.
344
+ *
345
+ * Best-effort throughout -- a feedback failure must never crash the verification tick.
346
+ */
347
+ export async function deliverEvidenceUnavailableFeedback(v, fault, organizationId, deps = {}) {
348
+ const d = { ...defaultEvidenceUnavailableDeps(), ...deps };
349
+ const detail = { heldAt: d.now(), ...fault };
350
+ const gateState = buildEvidenceUnavailableGateState(detail);
351
+ let gateWritten = false;
352
+ try {
353
+ await d.writeGateState(v.deliveryId, gateState, organizationId);
354
+ gateWritten = true;
355
+ }
356
+ catch (err) {
357
+ log.warn(`failed to write evidence-unavailable gate_state for delivery ${v.deliveryId}:`, err.message);
358
+ }
359
+ let escalated = false;
360
+ try {
361
+ if (!(await d.hasOpenEscalationForDelivery(v.deliveryId, EVIDENCE_UNAVAILABLE_KIND))) {
362
+ await withRetry(() => d.createEscalation({
363
+ organizationId,
364
+ sessionId: '',
365
+ issueId: null,
366
+ reasonType: ESCALATION_REASONS.ERROR_ENCOUNTERED,
367
+ // An operator must fix the measurement / disambiguate the empty bundle;
368
+ // the daemon cannot self-clear an instrument fault.
369
+ disposition: ESCALATION_DISPOSITIONS.NEEDS_OPERATOR,
370
+ anchor: { deliveryId: v.deliveryId, ...(v.focusId ? { focusId: v.focusId } : {}) },
371
+ ...(v.productId ? { productId: v.productId } : {}),
372
+ escalationKind: EVIDENCE_UNAVAILABLE_KIND,
373
+ description: `Verify for delivery "${v.deliveryName}" was handed NO evidence it could judge the work ` +
374
+ `against (an instrument fault) -- the gate is BLIND, not the work short.\n\n` +
375
+ `**Delivery:** "${v.deliveryName}" (${v.deliveryId})\n` +
376
+ `**Missing evidence:** ${detail.missing.join(', ') || '(all judgeable slots empty)'}\n` +
377
+ `**commits ahead of base:** ${detail.commitsAhead}\n\n` +
378
+ (detail.commitsAhead > 0
379
+ ? `The branch has commits but the diff resolved empty -- a broken diff MEASUREMENT ` +
380
+ `(wrong range/worktree). Fix the measurement; do not re-code.\n`
381
+ : `The branch is level with / behind the base (already merged or no attributable work) ` +
382
+ `-- there is no diff to read. Confirm whether the work landed and clear this hold.\n`),
383
+ whatWasTried: `The verify reconciliation detected an empty judgeable evidence bundle and declined to ` +
384
+ `render a verdict (it must never report its own blindness as a shortfall). The delivery ` +
385
+ `is held in verify without consuming a re-code iteration.`,
386
+ helpNeeded: `Restore the missing evidence (fix the diff range / confirm the merge) so verify can ` +
387
+ `judge the work, or clear the delivery manually if the work is genuinely complete.`,
388
+ metadata: {
389
+ cause: EVIDENCE_UNAVAILABLE_KIND,
390
+ deliveryName: v.deliveryName,
391
+ missing: detail.missing,
392
+ commitsAhead: detail.commitsAhead,
393
+ },
394
+ }), { maxAttempts: 3, label: `escalation-evidence-unavailable-${v.deliveryId}` });
395
+ escalated = true;
396
+ }
397
+ }
398
+ catch (err) {
399
+ log.warn(`failed to file evidence-unavailable escalation for delivery ${v.deliveryId}:`, err.message);
400
+ }
401
+ let injected = false;
402
+ if (v.focusId) {
403
+ const team = d.getActiveTeams().get(v.focusId);
404
+ if (team && team.leadStdin && team.sessionType !== 'review') {
405
+ try {
406
+ d.sendMessage(team.leadStdin, buildEvidenceUnavailableInjectMessage(v.deliveryName, detail));
407
+ injected = true;
408
+ }
409
+ catch (err) {
410
+ log.warn(`failed to inject evidence-unavailable hold to team ${v.focusId}:`, err.message);
411
+ }
412
+ }
413
+ }
414
+ return { gateWritten, escalated, injected };
415
+ }
287
416
  //# sourceMappingURL=verification-feedback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verification-feedback.js","sourceRoot":"","sources":["../src/verification-feedback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification-feedback.js","sourceRoot":"","sources":["../src/verification-feedback.ts"],"names":[],"mappings":"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"}
@@ -71,12 +71,36 @@ export interface ReconcileJudgment {
71
71
  diffCitation?: string;
72
72
  }
73
73
  export type ReconcileOptions = RestatementOptions;
74
- export declare const RECONCILE_SYSTEM_PROMPT = "You reconcile a software delivery's DECLARED desired effect against what its worktree EVIDENCE actually shows was accomplished, for a Goldratt reality-tree flip.\n\nYou will be given:\n- The DECLARED desired effect: the outcome the work was supposed to realize. This is the intent of record. Do NOT lower it.\n- EVIDENCE from the worktree: the code diff, test/lint/type output, and/or an inspection finding. This is the only ground truth for what was actually achieved.\n\nThe CODE DIFF is the PRIMARY evidence for what was delivered. Ground your judgment in it. Test/lint output and inspection findings are corroborating evidence -- they show that code RUNS, not WHICH declared behavior it implements. Never conclude a shortfall from test output alone: if the diff implements the declared behavior, it is not short even if the tests you see are about something else.\n\nDo TWO things:\n1. Author the ACHIEVED desired effect: ONE concrete positive sentence describing what the EVIDENCE shows was accomplished. Derive it from the evidence, NOT from the declared sentence -- if the evidence accomplished something different from or narrower than the declaration, the achieved sentence must say what the evidence shows, not echo the declaration.\n2. Classify how the achieved outcome compares to the declared desired effect:\n - \"match\": the achieved outcome realizes the declared intent.\n - \"legitimate_divergence\": the achieved outcome differs from the declared intent but is a valid, defensible result (e.g. a better approach, an equivalent substitution). Give a one-sentence reason naming the gap.\n - \"shortfall\": the achieved outcome falls short of the declared intent -- it does less, is incomplete, or the evidence does not support the declaration. Give a one-sentence reason naming what is missing, AND cite the diff: name the changed file(s)/hunk you inspected whose content fails to satisfy the declared node (or state that the diff contains no change addressing it). A shortfall MUST be grounded in the diff -- if you cannot locate the declared behavior's absence in the diff, it is not a shortfall.\n\nRespond with ONE JSON object and nothing else:\n{\"achievedStatement\": \"<one sentence>\", \"classification\": \"match\" | \"legitimate_divergence\" | \"shortfall\", \"divergenceReason\": \"<one sentence, omit or empty when classification is match>\", \"diffCitation\": \"<REQUIRED on shortfall: the file/hunk in the diff whose absence justifies the shortfall; omit on match/legitimate_divergence>\"}";
74
+ export declare const RECONCILE_SYSTEM_PROMPT = "You reconcile a software delivery's DECLARED desired effect against what its worktree EVIDENCE actually shows was accomplished, for a Goldratt reality-tree flip.\n\nYou will be given:\n- The DECLARED desired effect: the outcome the work was supposed to realize. This is the intent of record. Do NOT lower it.\n- EVIDENCE from the worktree: the code diff, test/lint/type output, and/or an inspection finding. This is the only ground truth for what was actually achieved.\n\nThe CODE DIFF is the PRIMARY evidence for what was delivered. Ground your judgment in it. Test/lint output and inspection findings are corroborating evidence -- they show that code RUNS, not WHICH declared behavior it implements. Never conclude a shortfall from test output alone: if the diff implements the declared behavior, it is not short even if the tests you see are about something else.\n\nDo TWO things:\n1. Author the ACHIEVED desired effect: ONE concrete positive sentence describing what the EVIDENCE shows was accomplished. Derive it from the evidence, NOT from the declared sentence -- if the evidence accomplished something different from or narrower than the declaration, the achieved sentence must say what the evidence shows, not echo the declaration.\n2. Classify how the achieved outcome compares to the declared desired effect:\n - \"match\": the achieved outcome realizes the declared intent.\n - \"legitimate_divergence\": the achieved outcome differs from the declared intent but is a valid, defensible result (e.g. a better approach, an equivalent substitution). Give a one-sentence reason naming the gap.\n - \"shortfall\": the achieved outcome falls short of the declared intent -- it does less, is incomplete, or the evidence does not support the declaration. Give a one-sentence reason naming what is missing, AND, when you can, cite the diff: name the changed file(s)/hunk you inspected whose content fails to satisfy the declared node. A shortfall is best grounded in the diff -- prefer to cite a real changed file/hunk. If the diff contains no real file/hunk to point at, LEAVE diffCitation UNSET (omit the field entirely) -- do NOT write prose asserting absence into it (e.g. never write \"no diff was supplied\"). Absence must be represented as an absent field, not as a sentence. Never conclude a shortfall from test output alone.\n\nRespond with ONE JSON object and nothing else:\n{\"achievedStatement\": \"<one sentence>\", \"classification\": \"match\" | \"legitimate_divergence\" | \"shortfall\", \"divergenceReason\": \"<one sentence, omit or empty when classification is match>\", \"diffCitation\": \"<OPTIONAL on shortfall: the real file/hunk in the diff grounding the shortfall; OMIT the field entirely (never absence prose) when the diff has no such file/hunk; omit on match/legitimate_divergence>\"}";
75
75
  export declare function buildReconcileSystemPrompt(): string;
76
76
  /** Render the cited evidence into the user message. Evidence-only -- the UDE text is never included. */
77
77
  export declare function buildReconcileUserMessage(inputs: ReconcileInputs): string;
78
78
  /** True when the evidence bundle carries no usable signal. */
79
79
  export declare function evidenceIsEmpty(ev: VerifyEvidence): boolean;
80
+ /**
81
+ * True when the bundle carries no evidence the ACHIEVED desired effect can be
82
+ * authored from -- no diff, no changed-files list, and no inspection finding.
83
+ *
84
+ * Test/lint output and the strategy verdict rationale are deliberately NOT
85
+ * counted: the reconcile contract forbids authoring an achieved DE (or a
86
+ * shortfall) from test output alone, so a bundle carrying only those is still
87
+ * "nothing to judge the WORK against." This is the instrument-fault trigger --
88
+ * the reconciliation is BLIND to the work and must NOT render a verdict about
89
+ * it (match / legitimate_divergence / shortfall). Distinct from
90
+ * `evidenceIsEmpty`, which is true only when EVERY slot (including test output)
91
+ * is empty.
92
+ */
93
+ export declare function judgeEvidenceIsEmpty(ev: VerifyEvidence): boolean;
94
+ /**
95
+ * Does a diff citation actually reference a real file/hunk present in the
96
+ * evidence? A STRUCTURAL check -- it matches the citation against the
97
+ * changed-files list (or, absent that, path-like tokens present in the raw
98
+ * diff). It never string-sniffs for absence prose: a citation that names no
99
+ * real changed file simply fails to match and is treated as un-cited. This is
100
+ * what lets "the diff had nothing to point at" be represented as an ABSENT
101
+ * diffCitation rather than a sentence asserting absence.
102
+ */
103
+ export declare function citationReferencesEvidence(citation: string, ev: VerifyEvidence): boolean;
80
104
  /** Parse the model's JSON judgment. Tolerates code fences / surrounding prose. */
81
105
  export declare function parseReconcileJson(raw: string): ReconcileJudgment | null;
82
106
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"verify-reconciliation.d.ts","sourceRoot":"","sources":["../src/verify-reconciliation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,uEAAuE;AACvE,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,uBAAuB,GAAG,WAAW,CAAC;AAEnF,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kFAAkF;IAClF,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,oBAAoB,CAAC;IACrC,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAElD,eAAO,MAAM,uBAAuB,m+EAgB0S,CAAC;AAE/U,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED,wGAAwG;AACxG,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CA4CzE;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAQ3D;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAsDxE;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,eAAe,EACvB,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAkB5B"}
1
+ {"version":3,"file":"verify-reconciliation.d.ts","sourceRoot":"","sources":["../src/verify-reconciliation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,uEAAuE;AACvE,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,uBAAuB,GAAG,WAAW,CAAC;AAEnF,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kFAAkF;IAClF,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,oBAAoB,CAAC;IACrC,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAElD,eAAO,MAAM,uBAAuB,4wFAgBoX,CAAC;AAEzZ,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED,wGAAwG;AACxG,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CA4CzE;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAQ3D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAKhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO,CAoBxF;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAsDxE;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,eAAe,EACvB,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CA+B5B"}
@@ -38,10 +38,10 @@ Do TWO things:
38
38
  2. Classify how the achieved outcome compares to the declared desired effect:
39
39
  - "match": the achieved outcome realizes the declared intent.
40
40
  - "legitimate_divergence": the achieved outcome differs from the declared intent but is a valid, defensible result (e.g. a better approach, an equivalent substitution). Give a one-sentence reason naming the gap.
41
- - "shortfall": the achieved outcome falls short of the declared intent -- it does less, is incomplete, or the evidence does not support the declaration. Give a one-sentence reason naming what is missing, AND cite the diff: name the changed file(s)/hunk you inspected whose content fails to satisfy the declared node (or state that the diff contains no change addressing it). A shortfall MUST be grounded in the diff -- if you cannot locate the declared behavior's absence in the diff, it is not a shortfall.
41
+ - "shortfall": the achieved outcome falls short of the declared intent -- it does less, is incomplete, or the evidence does not support the declaration. Give a one-sentence reason naming what is missing, AND, when you can, cite the diff: name the changed file(s)/hunk you inspected whose content fails to satisfy the declared node. A shortfall is best grounded in the diff -- prefer to cite a real changed file/hunk. If the diff contains no real file/hunk to point at, LEAVE diffCitation UNSET (omit the field entirely) -- do NOT write prose asserting absence into it (e.g. never write "no diff was supplied"). Absence must be represented as an absent field, not as a sentence. Never conclude a shortfall from test output alone.
42
42
 
43
43
  Respond with ONE JSON object and nothing else:
44
- {"achievedStatement": "<one sentence>", "classification": "match" | "legitimate_divergence" | "shortfall", "divergenceReason": "<one sentence, omit or empty when classification is match>", "diffCitation": "<REQUIRED on shortfall: the file/hunk in the diff whose absence justifies the shortfall; omit on match/legitimate_divergence>"}`;
44
+ {"achievedStatement": "<one sentence>", "classification": "match" | "legitimate_divergence" | "shortfall", "divergenceReason": "<one sentence, omit or empty when classification is match>", "diffCitation": "<OPTIONAL on shortfall: the real file/hunk in the diff grounding the shortfall; OMIT the field entirely (never absence prose) when the diff has no such file/hunk; omit on match/legitimate_divergence>"}`;
45
45
  export function buildReconcileSystemPrompt() {
46
46
  return RECONCILE_SYSTEM_PROMPT;
47
47
  }
@@ -94,6 +94,57 @@ export function evidenceIsEmpty(ev) {
94
94
  (ev.verdictRationale && ev.verdictRationale.trim() !== '');
95
95
  return !hasText && typeof ev.exitCode !== 'number';
96
96
  }
97
+ /**
98
+ * True when the bundle carries no evidence the ACHIEVED desired effect can be
99
+ * authored from -- no diff, no changed-files list, and no inspection finding.
100
+ *
101
+ * Test/lint output and the strategy verdict rationale are deliberately NOT
102
+ * counted: the reconcile contract forbids authoring an achieved DE (or a
103
+ * shortfall) from test output alone, so a bundle carrying only those is still
104
+ * "nothing to judge the WORK against." This is the instrument-fault trigger --
105
+ * the reconciliation is BLIND to the work and must NOT render a verdict about
106
+ * it (match / legitimate_divergence / shortfall). Distinct from
107
+ * `evidenceIsEmpty`, which is true only when EVERY slot (including test output)
108
+ * is empty.
109
+ */
110
+ export function judgeEvidenceIsEmpty(ev) {
111
+ const hasDiff = !!(ev.diff && ev.diff.trim() !== '');
112
+ const hasChangedFiles = !!(ev.changedFiles && ev.changedFiles.length > 0);
113
+ const hasInspection = !!(ev.inspectionRationale && ev.inspectionRationale.trim() !== '');
114
+ return !hasDiff && !hasChangedFiles && !hasInspection;
115
+ }
116
+ /**
117
+ * Does a diff citation actually reference a real file/hunk present in the
118
+ * evidence? A STRUCTURAL check -- it matches the citation against the
119
+ * changed-files list (or, absent that, path-like tokens present in the raw
120
+ * diff). It never string-sniffs for absence prose: a citation that names no
121
+ * real changed file simply fails to match and is treated as un-cited. This is
122
+ * what lets "the diff had nothing to point at" be represented as an ABSENT
123
+ * diffCitation rather than a sentence asserting absence.
124
+ */
125
+ export function citationReferencesEvidence(citation, ev) {
126
+ const c = citation.trim();
127
+ if (c === '')
128
+ return false;
129
+ const files = ev.changedFiles ?? [];
130
+ if (files.length > 0) {
131
+ return files.some((f) => {
132
+ if (!f)
133
+ return false;
134
+ const base = f.split('/').pop() ?? f;
135
+ return c.includes(f) || (base.length > 2 && c.includes(base));
136
+ });
137
+ }
138
+ // No structured changed-files list: fall back to the raw diff, if present.
139
+ // A citation is grounded only when it names a path-like token (a real
140
+ // file/hunk reference) the diff actually contains.
141
+ const diff = ev.diff?.trim() ?? '';
142
+ if (diff !== '') {
143
+ const tokens = c.match(/[\w./-]+\.[A-Za-z0-9]{1,6}\b/g) ?? [];
144
+ return tokens.some((t) => diff.includes(t));
145
+ }
146
+ return false;
147
+ }
97
148
  /** Parse the model's JSON judgment. Tolerates code fences / surrounding prose. */
98
149
  export function parseReconcileJson(raw) {
99
150
  const stripped = raw.replace(/```(?:json)?\s*/g, '').replace(/```/g, '');
@@ -167,6 +218,17 @@ export async function reconcileAchievedEffect(inputs, opts = {}) {
167
218
  if (!judgment) {
168
219
  throw new Error('verify-reconciliation produced no parseable judgment');
169
220
  }
221
+ // Enforce the diff-citation invariant STRUCTURALLY: keep diffCitation only
222
+ // when it references a real changed file/hunk in the evidence. A judge that
223
+ // fills the field with absence prose ("no diff was supplied") does not match
224
+ // any changed file, so the citation is dropped and the shortfall is recorded
225
+ // as un-cited (absence represented as absence, not as a sentence). Consumers
226
+ // then distinguish cited vs un-cited purely by the field's presence.
227
+ if (judgment.classification === 'shortfall' &&
228
+ judgment.diffCitation &&
229
+ !citationReferencesEvidence(judgment.diffCitation, inputs.evidence)) {
230
+ delete judgment.diffCitation;
231
+ }
170
232
  // A divergence/shortfall with no reason still classifies; backfill a generic
171
233
  // reason so the downstream record/escalation always carries one.
172
234
  if (judgment.classification !== 'match' && !judgment.divergenceReason) {
@@ -1 +1 @@
1
- {"version":3,"file":"verify-reconciliation.js","sourceRoot":"","sources":["../src/verify-reconciliation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify-reconciliation.js","sourceRoot":"","sources":["../src/verify-reconciliation.ts"],"names":[],"mappings":"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"}
@@ -59,10 +59,15 @@ export interface TargetShortfall {
59
59
  /** Why the achieved outcome falls short. */
60
60
  reason: string;
61
61
  /**
62
- * The diff evidence (file / hunk) whose absence grounds the shortfall, when
63
- * the reconciliation supplied one. A shortfall grounded only in test output
64
- * -- not the diff -- leaves this undefined; readers should treat an
65
- * un-cited shortfall as weaker signal than a cited one.
62
+ * The diff evidence (file / hunk) grounding the shortfall. Populated ONLY
63
+ * when the citation references a REAL changed file/hunk present in the
64
+ * evidence -- verify-reconciliation validates it structurally
65
+ * (`citationReferencesEvidence`) and DROPS anything that does not, so absence
66
+ * prose (e.g. "no diff was supplied") can never land here. A shortfall
67
+ * grounded only in test output -- not the diff -- leaves this undefined.
68
+ * Readers distinguish a cited from an un-cited shortfall purely by this
69
+ * field's presence (no string-sniffing its contents); an un-cited shortfall
70
+ * is weaker signal than a cited one.
66
71
  */
67
72
  diffCitation?: string;
68
73
  }
@@ -71,6 +76,19 @@ export interface ReconcileTargetsResult {
71
76
  restatements: TargetRestatement[];
72
77
  /** shortfalls -- the caller must hold the gate and escalate. */
73
78
  shortfalls: TargetShortfall[];
79
+ /**
80
+ * A GATE MUST NOT REPORT ITS OWN BLINDNESS AS A VERDICT. Set true when the
81
+ * injection HAS at least one declared-DE target to judge but the supplied
82
+ * EVIDENCE is empty of anything the achieved DE could be authored from (no
83
+ * diff, no changed files, no inspection finding -- see judgeEvidenceIsEmpty).
84
+ * The reconciliation then declines to classify: it renders NO verdict (no
85
+ * match / legitimate_divergence / shortfall) and returns this instrument-fault
86
+ * signal instead, so absence of evidence is never published as evidence of
87
+ * shortfall. The caller holds the gate under the evidence-unavailable guard
88
+ * and escalates -- it does NOT route to verify_failed. When there is nothing
89
+ * to judge (no targets) this stays falsy and the caller flips as before.
90
+ */
91
+ evidenceUnavailable?: boolean;
74
92
  /**
75
93
  * The reality_tree id the injection (and its targets) were resolved in.
76
94
  * Carried so the caller can surface inward drift proposals for the
@@ -1 +1 @@
1
- {"version":3,"file":"verify-restatement.d.ts","sourceRoot":"","sources":["../src/verify-restatement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAErB,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AASpC,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,OAAO,GAAG,uBAAuB,CAAC;IAClD,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,uFAAuF;AACvF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,gEAAgE;IAChE,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,WAAW,GAAG,CACxB,MAAM,EAAE,eAAe,EACvB,IAAI,CAAC,EAAE,gBAAgB,KACpB,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEhC,MAAM,WAAW,4BAA4B;IAC3C,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9E,oGAAoG;IACpG,SAAS,CAAC,EAAE,WAAW,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,QAAQ,EAAE,cAAc,EACxB,IAAI,GAAE,4BAAiC,GACtC,OAAO,CAAC,sBAAsB,CAAC,CA0FjC"}
1
+ {"version":3,"file":"verify-restatement.d.ts","sourceRoot":"","sources":["../src/verify-restatement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAErB,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AASpC,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,OAAO,GAAG,uBAAuB,CAAC;IAClD,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,uFAAuF;AACvF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,gEAAgE;IAChE,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B;;;;;;;;;;;OAWG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,WAAW,GAAG,CACxB,MAAM,EAAE,eAAe,EACvB,IAAI,CAAC,EAAE,gBAAgB,KACpB,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEhC,MAAM,WAAW,4BAA4B;IAC3C,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9E,oGAAoG;IACpG,SAAS,CAAC,EAAE,WAAW,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,QAAQ,EAAE,cAAc,EACxB,IAAI,GAAE,4BAAiC,GACtC,OAAO,CAAC,sBAAsB,CAAC,CA2GjC"}
@@ -27,7 +27,7 @@
27
27
  * @module verify-restatement
28
28
  */
29
29
  import { callApi as defaultCallApi } from './queries/shared.js';
30
- import { reconcileAchievedEffect as defaultReconcile, } from './verify-reconciliation.js';
30
+ import { reconcileAchievedEffect as defaultReconcile, judgeEvidenceIsEmpty, } from './verify-reconciliation.js';
31
31
  /**
32
32
  * Reconcile the achieved outcome against the declared desired effect for each
33
33
  * UDE the injection targets.
@@ -82,6 +82,23 @@ export async function authorTargetRestatements(injectionNodeId, focusId, evidenc
82
82
  // The injection lives in THIS tree -- record the tree id so the caller can
83
83
  // surface inward drift proposals (which key off the reality_tree id).
84
84
  result.realityTreeId = tree.id;
85
+ // A GATE MUST NOT REPORT ITS OWN BLINDNESS AS A VERDICT. Detect an empty
86
+ // evidence bundle BEFORE classifying: if there is at least one declared-DE
87
+ // target to judge but the evidence carries nothing the achieved DE can be
88
+ // authored from, decline to classify. Return the instrument-fault signal
89
+ // instead of running the model (which, blind, would manufacture a
90
+ // shortfall). With no targets there is nothing to judge -- fall through and
91
+ // let the caller flip as before.
92
+ const hasTarget = edges.some((e) => {
93
+ if (e.edgeType !== 'targets' || e.fromNodeId !== injectionNodeId)
94
+ return false;
95
+ const t = nodeById.get(e.toNodeId);
96
+ return !!t && t.nodeType === 'undesired_effect';
97
+ });
98
+ if (hasTarget && judgeEvidenceIsEmpty(evidence)) {
99
+ result.evidenceUnavailable = true;
100
+ return result; // no verdict rendered; caller holds the gate + escalates
101
+ }
85
102
  for (const e of edges) {
86
103
  if (e.edgeType !== 'targets' || e.fromNodeId !== injectionNodeId)
87
104
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"verify-restatement.js","sourceRoot":"","sources":["../src/verify-restatement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify-restatement.js","sourceRoot":"","sources":["../src/verify-restatement.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.20.54",
3
+ "version": "0.20.60",
4
4
  "description": "Agent orchestration daemon for Telora - spawns and manages Claude Code instances",
5
5
  "type": "module",
6
6
  "bin": {
@@ -38,7 +38,7 @@
38
38
  "//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.",
39
39
  "dependencies": {
40
40
  "@telora/daemon-core": "^0.2.73",
41
- "@telora/mcp-products": "^0.22.104",
41
+ "@telora/mcp-products": "^0.22.105",
42
42
  "commander": "^14.0.3",
43
43
  "yaml": "^2.4.0",
44
44
  "zod": "^4.3.6"