@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.
- package/build-info.json +6 -3
- package/dist/cli/session-state.d.ts +9 -0
- package/dist/cli/session-state.d.ts.map +1 -1
- package/dist/cli/session-state.js.map +1 -1
- package/dist/completion/review-exit-escalations.d.ts +85 -0
- package/dist/completion/review-exit-escalations.d.ts.map +1 -0
- package/dist/completion/review-exit-escalations.js +203 -0
- package/dist/completion/review-exit-escalations.js.map +1 -0
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +43 -135
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/delivery-advance-block.d.ts.map +1 -1
- package/dist/delivery-advance-block.js +8 -1
- package/dist/delivery-advance-block.js.map +1 -1
- package/dist/external-hold.d.ts +104 -0
- package/dist/external-hold.d.ts.map +1 -0
- package/dist/external-hold.js +149 -0
- package/dist/external-hold.js.map +1 -0
- package/dist/listener-auto-advance.d.ts.map +1 -1
- package/dist/listener-auto-advance.js +12 -0
- package/dist/listener-auto-advance.js.map +1 -1
- package/dist/listener.d.ts.map +1 -1
- package/dist/listener.js +56 -11
- package/dist/listener.js.map +1 -1
- package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.js +25 -23
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/queries/deliveries.d.ts +62 -0
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +1 -0
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/holds.d.ts +177 -0
- package/dist/queries/holds.d.ts.map +1 -0
- package/dist/queries/holds.js +232 -0
- package/dist/queries/holds.js.map +1 -0
- package/dist/queries/issues.d.ts +3 -99
- package/dist/queries/issues.d.ts.map +1 -1
- package/dist/queries/issues.js +4 -137
- package/dist/queries/issues.js.map +1 -1
- package/dist/queries/schemas.d.ts +2 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +5 -0
- package/dist/queries/schemas.js.map +1 -1
- package/dist/resolver-dispatch.d.ts +108 -0
- package/dist/resolver-dispatch.d.ts.map +1 -0
- package/dist/resolver-dispatch.js +83 -0
- package/dist/resolver-dispatch.js.map +1 -0
- package/dist/resolver-reach.d.ts +192 -0
- package/dist/resolver-reach.d.ts.map +1 -0
- package/dist/resolver-reach.js +168 -0
- package/dist/resolver-reach.js.map +1 -0
- package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
- package/dist/resolvers/git-diff-against-base.js +8 -2
- package/dist/resolvers/git-diff-against-base.js.map +1 -1
- package/dist/resolvers/index.d.ts +1 -1
- package/dist/resolvers/index.d.ts.map +1 -1
- package/dist/resolvers/index.js +1 -1
- package/dist/resolvers/index.js.map +1 -1
- package/dist/resolvers/shared/git-diff.d.ts +47 -0
- package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
- package/dist/resolvers/shared/git-diff.js +103 -15
- package/dist/resolvers/shared/git-diff.js.map +1 -1
- package/dist/spawn/review-role-fallback.d.ts +37 -3
- package/dist/spawn/review-role-fallback.d.ts.map +1 -1
- package/dist/spawn/review-role-fallback.js +38 -3
- package/dist/spawn/review-role-fallback.js.map +1 -1
- package/dist/stall-detectors.d.ts +33 -4
- package/dist/stall-detectors.d.ts.map +1 -1
- package/dist/stall-detectors.js +64 -5
- package/dist/stall-detectors.js.map +1 -1
- package/dist/verification-engine.d.ts +10 -0
- package/dist/verification-engine.d.ts.map +1 -1
- package/dist/verification-engine.js +142 -96
- package/dist/verification-engine.js.map +1 -1
- package/dist/verification-feedback.d.ts +44 -1
- package/dist/verification-feedback.d.ts.map +1 -1
- package/dist/verification-feedback.js +130 -1
- package/dist/verification-feedback.js.map +1 -1
- package/dist/verify-reconciliation.d.ts +25 -1
- package/dist/verify-reconciliation.d.ts.map +1 -1
- package/dist/verify-reconciliation.js +64 -2
- package/dist/verify-reconciliation.js.map +1 -1
- package/dist/verify-restatement.d.ts +22 -4
- package/dist/verify-restatement.d.ts.map +1 -1
- package/dist/verify-restatement.js +18 -1
- package/dist/verify-restatement.js.map +1 -1
- 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":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,
|
|
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
|
|
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,
|
|
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
|
|
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": "<
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EACL,eAAe,GAEhB,MAAM,qBAAqB,CAAC;AAqD7B,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;
|
|
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)
|
|
63
|
-
* the
|
|
64
|
-
*
|
|
65
|
-
*
|
|
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,
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EACL,uBAAuB,IAAI,gBAAgB,
|
|
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.
|
|
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.
|
|
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"
|