@telora/daemon 0.17.75 → 0.17.82
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -5
- package/build-info.json +6 -3
- package/dist/auto-update.d.ts +8 -4
- package/dist/auto-update.d.ts.map +1 -1
- package/dist/auto-update.js +9 -5
- package/dist/auto-update.js.map +1 -1
- package/dist/cascade-restatement.d.ts +8 -0
- package/dist/cascade-restatement.d.ts.map +1 -1
- package/dist/cascade-restatement.js +16 -1
- package/dist/cascade-restatement.js.map +1 -1
- package/dist/cli/backfill-frt-prose.d.ts +42 -0
- package/dist/cli/backfill-frt-prose.d.ts.map +1 -1
- package/dist/cli/backfill-frt-prose.js +61 -4
- package/dist/cli/backfill-frt-prose.js.map +1 -1
- package/dist/cli/connect.d.ts +25 -15
- package/dist/cli/connect.d.ts.map +1 -1
- package/dist/cli/connect.js +76 -20
- package/dist/cli/connect.js.map +1 -1
- package/dist/de-restatement.d.ts +2 -0
- package/dist/de-restatement.d.ts.map +1 -1
- package/dist/de-restatement.js +1 -1
- package/dist/de-restatement.js.map +1 -1
- package/dist/index.js +14 -7
- package/dist/index.js.map +1 -1
- package/dist/loop-engine.d.ts.map +1 -1
- package/dist/loop-engine.js +12 -3
- package/dist/loop-engine.js.map +1 -1
- package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.js +19 -1
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/prompts/starter-prompt.d.ts +1 -1
- package/dist/prompts/starter-prompt.d.ts.map +1 -1
- package/dist/prompts/starter-prompt.js +1 -1
- package/dist/queries/focuses.d.ts +39 -0
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +87 -0
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/index.d.ts +2 -2
- package/dist/queries/index.d.ts.map +1 -1
- package/dist/queries/index.js +1 -1
- package/dist/queries/index.js.map +1 -1
- package/dist/queries/verification.d.ts +10 -1
- package/dist/queries/verification.d.ts.map +1 -1
- package/dist/queries/verification.js.map +1 -1
- package/dist/resolvers/shared/reality-tree.d.ts +15 -0
- package/dist/resolvers/shared/reality-tree.d.ts.map +1 -1
- package/dist/resolvers/shared/reality-tree.js.map +1 -1
- package/dist/retire-aware-restatement.d.ts +35 -0
- package/dist/retire-aware-restatement.d.ts.map +1 -1
- package/dist/retire-aware-restatement.js +111 -17
- package/dist/retire-aware-restatement.js.map +1 -1
- package/dist/self-update.d.ts +21 -0
- package/dist/self-update.d.ts.map +1 -1
- package/dist/self-update.js +56 -4
- package/dist/self-update.js.map +1 -1
- package/dist/unified-init.d.ts.map +1 -1
- package/dist/unified-init.js +40 -1
- package/dist/unified-init.js.map +1 -1
- package/dist/unified-shell.d.ts.map +1 -1
- package/dist/unified-shell.js +11 -1
- package/dist/unified-shell.js.map +1 -1
- package/dist/verification-engine.d.ts +21 -8
- package/dist/verification-engine.d.ts.map +1 -1
- package/dist/verification-engine.js +108 -14
- package/dist/verification-engine.js.map +1 -1
- package/dist/verify-reconciliation.d.ts +75 -0
- package/dist/verify-reconciliation.d.ts.map +1 -0
- package/dist/verify-reconciliation.js +164 -0
- package/dist/verify-reconciliation.js.map +1 -0
- package/dist/verify-restatement.d.ts +82 -28
- package/dist/verify-restatement.d.ts.map +1 -1
- package/dist/verify-restatement.js +98 -43
- package/dist/verify-restatement.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,45 +1,99 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Verify-time desired-effect
|
|
2
|
+
* Verify-time desired-effect reconciliation.
|
|
3
3
|
*
|
|
4
4
|
* When the verification engine produces a 'passed' verdict for an injection,
|
|
5
|
-
* it
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* a per-tick reconciliation scan.
|
|
5
|
+
* it reconciles the DECLARED desired effect (the UDE's preserved frt_statement,
|
|
6
|
+
* authored at target time) against the ACHIEVED desired effect re-derived from
|
|
7
|
+
* the delivery's CITED worktree EVIDENCE (diff, test output, inspection finding)
|
|
8
|
+
* -- NOT from the targeted UDE's problem text. Each targeted UDE gets a
|
|
9
|
+
* classification:
|
|
11
10
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
11
|
+
* - match -- the achieved outcome realizes the declared intent.
|
|
12
|
+
* - legitimate_divergence -- a valid but different outcome (carries a reason).
|
|
13
|
+
* - shortfall -- the achieved outcome falls short of the intent.
|
|
14
|
+
*
|
|
15
|
+
* match / legitimate_divergence are carried INTO the verify call as the UDE's
|
|
16
|
+
* new base statement (+ classification + reason). The edge applies the supplied
|
|
17
|
+
* prose; it never runs the LLM.
|
|
18
|
+
*
|
|
19
|
+
* ASYMMETRY: a shortfall is NEVER carried into verify and NEVER softens the
|
|
20
|
+
* declared DE. The caller short-circuits the flip and escalates to a human --
|
|
21
|
+
* reality is moved toward intent, never the reverse. Shortfalls are returned
|
|
22
|
+
* here so the caller can hold the gate and file the escalation.
|
|
23
|
+
*
|
|
24
|
+
* Reuses the de-restatement CLI plumbing via verify-reconciliation (no new
|
|
25
|
+
* client or secret wiring).
|
|
15
26
|
*
|
|
16
27
|
* @module verify-restatement
|
|
17
28
|
*/
|
|
18
|
-
import { type
|
|
19
|
-
|
|
29
|
+
import { type ReconcileInputs, type ReconcileJudgment, type ReconcileOptions, type VerifyEvidence } from './verify-reconciliation.js';
|
|
30
|
+
export type { VerifyEvidence } from './verify-reconciliation.js';
|
|
31
|
+
/**
|
|
32
|
+
* Per-target reconciled statement carried into the verify call. Only ever
|
|
33
|
+
* holds match / legitimate_divergence (shortfalls are excluded by construction
|
|
34
|
+
* -- they are returned separately as `shortfalls`).
|
|
35
|
+
*/
|
|
20
36
|
export interface TargetRestatement {
|
|
21
37
|
nodeId: string;
|
|
38
|
+
/** The ACHIEVED desired effect, authored from evidence. */
|
|
22
39
|
statement: string;
|
|
40
|
+
classification: 'match' | 'legitimate_divergence';
|
|
41
|
+
/** Populated on legitimate_divergence: what the gap is. */
|
|
42
|
+
divergenceReason?: string;
|
|
43
|
+
}
|
|
44
|
+
/** A targeted UDE whose achieved outcome fell short of the declared desired effect. */
|
|
45
|
+
export interface TargetShortfall {
|
|
46
|
+
nodeId: string;
|
|
47
|
+
/** The DECLARED desired effect (preserved, never softened). */
|
|
48
|
+
declaredStatement: string;
|
|
49
|
+
/** The ACHIEVED desired effect, authored from evidence. */
|
|
50
|
+
achievedStatement: string;
|
|
51
|
+
/** Why the achieved outcome falls short. */
|
|
52
|
+
reason: string;
|
|
23
53
|
}
|
|
24
|
-
export
|
|
54
|
+
export interface ReconcileTargetsResult {
|
|
55
|
+
/** match / legitimate_divergence -- safe to carry into verify. */
|
|
56
|
+
restatements: TargetRestatement[];
|
|
57
|
+
/** shortfalls -- the caller must hold the gate and escalate. */
|
|
58
|
+
shortfalls: TargetShortfall[];
|
|
59
|
+
}
|
|
60
|
+
export type ReconcileFn = (inputs: ReconcileInputs, opts?: ReconcileOptions) => Promise<ReconcileJudgment>;
|
|
25
61
|
export interface AuthorTargetRestatementsDeps {
|
|
26
62
|
callApi?: <T>(action: string, params?: Record<string, unknown>) => Promise<T>;
|
|
27
|
-
/**
|
|
28
|
-
|
|
63
|
+
/** Reconciles declared-vs-achieved and classifies. Defaults to the verify-reconciliation helper. */
|
|
64
|
+
reconcile?: ReconcileFn;
|
|
29
65
|
}
|
|
30
66
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
67
|
+
* Reconcile the achieved outcome against the declared desired effect for each
|
|
68
|
+
* UDE the injection targets.
|
|
69
|
+
*
|
|
70
|
+
* For each targeted UDE:
|
|
71
|
+
* - The DECLARED desired effect is the UDE's preserved `frtStatement` (intent
|
|
72
|
+
* of record). When absent, there is no declared intent to fall short of, so
|
|
73
|
+
* the achieved DE authored from evidence is treated as a match.
|
|
74
|
+
* - The ACHIEVED desired effect is authored from the supplied `evidence`
|
|
75
|
+
* (diff/tests/inspection), NOT from the UDE problem text.
|
|
76
|
+
* - The judgment classifies match / legitimate_divergence / shortfall.
|
|
77
|
+
*
|
|
78
|
+
* match / legitimate_divergence -> `restatements` (carried into verify).
|
|
79
|
+
* shortfall -> `shortfalls` (caller holds gate + escalates).
|
|
80
|
+
*
|
|
81
|
+
* Best-effort per target: a reconciliation FAILURE (model error / parse error)
|
|
82
|
+
* is treated as a SHORTFALL -- we cannot prove the achieved outcome realizes the
|
|
83
|
+
* declared intent, so we do not flip it and we surface it to a human. (This is
|
|
84
|
+
* the asymmetric-safe default: never flip what you could not reconcile.)
|
|
85
|
+
*
|
|
86
|
+
* SCOPE BOUNDARY (intentional): this reconciles ONLY the UDEs the injection
|
|
87
|
+
* DIRECTLY targets (its `targets` edges). Downstream consequences that resolve
|
|
88
|
+
* by causal PROPAGATION at verify are NOT reconciled here -- they have no
|
|
89
|
+
* declared DE to measure against, and their forward prose is authored by the
|
|
90
|
+
* injection-conditioned draft-assist loop (cascade-restatement.ts), not from raw
|
|
91
|
+
* code evidence. Verify flips their node_type but leaves verify_classification
|
|
92
|
+
* null; display falls back to the draft-assist frt_statement. See the matching
|
|
93
|
+
* note in graph-verification.ts (verifyInjectionImpl, Step 6).
|
|
94
|
+
*
|
|
95
|
+
* Returns empty result when focusId is null or the injection is not in the
|
|
96
|
+
* focus's active tree(s).
|
|
43
97
|
*/
|
|
44
|
-
export declare function authorTargetRestatements(injectionNodeId: string, focusId: string | null, deps?: AuthorTargetRestatementsDeps): Promise<
|
|
98
|
+
export declare function authorTargetRestatements(injectionNodeId: string, focusId: string | null, evidence: VerifyEvidence, deps?: AuthorTargetRestatementsDeps): Promise<ReconcileTargetsResult>;
|
|
45
99
|
//# sourceMappingURL=verify-restatement.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-restatement.d.ts","sourceRoot":"","sources":["../src/verify-restatement.ts"],"names":[],"mappings":"AAAA
|
|
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;CAC3B;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;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,gEAAgE;IAChE,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;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,CAiFjC"}
|
|
@@ -1,42 +1,71 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Verify-time desired-effect
|
|
2
|
+
* Verify-time desired-effect reconciliation.
|
|
3
3
|
*
|
|
4
4
|
* When the verification engine produces a 'passed' verdict for an injection,
|
|
5
|
-
* it
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* a per-tick reconciliation scan.
|
|
5
|
+
* it reconciles the DECLARED desired effect (the UDE's preserved frt_statement,
|
|
6
|
+
* authored at target time) against the ACHIEVED desired effect re-derived from
|
|
7
|
+
* the delivery's CITED worktree EVIDENCE (diff, test output, inspection finding)
|
|
8
|
+
* -- NOT from the targeted UDE's problem text. Each targeted UDE gets a
|
|
9
|
+
* classification:
|
|
11
10
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
11
|
+
* - match -- the achieved outcome realizes the declared intent.
|
|
12
|
+
* - legitimate_divergence -- a valid but different outcome (carries a reason).
|
|
13
|
+
* - shortfall -- the achieved outcome falls short of the intent.
|
|
14
|
+
*
|
|
15
|
+
* match / legitimate_divergence are carried INTO the verify call as the UDE's
|
|
16
|
+
* new base statement (+ classification + reason). The edge applies the supplied
|
|
17
|
+
* prose; it never runs the LLM.
|
|
18
|
+
*
|
|
19
|
+
* ASYMMETRY: a shortfall is NEVER carried into verify and NEVER softens the
|
|
20
|
+
* declared DE. The caller short-circuits the flip and escalates to a human --
|
|
21
|
+
* reality is moved toward intent, never the reverse. Shortfalls are returned
|
|
22
|
+
* here so the caller can hold the gate and file the escalation.
|
|
23
|
+
*
|
|
24
|
+
* Reuses the de-restatement CLI plumbing via verify-reconciliation (no new
|
|
25
|
+
* client or secret wiring).
|
|
15
26
|
*
|
|
16
27
|
* @module verify-restatement
|
|
17
28
|
*/
|
|
18
29
|
import { callApi as defaultCallApi } from './queries/shared.js';
|
|
19
|
-
import {
|
|
30
|
+
import { reconcileAchievedEffect as defaultReconcile, } from './verify-reconciliation.js';
|
|
20
31
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
32
|
+
* Reconcile the achieved outcome against the declared desired effect for each
|
|
33
|
+
* UDE the injection targets.
|
|
34
|
+
*
|
|
35
|
+
* For each targeted UDE:
|
|
36
|
+
* - The DECLARED desired effect is the UDE's preserved `frtStatement` (intent
|
|
37
|
+
* of record). When absent, there is no declared intent to fall short of, so
|
|
38
|
+
* the achieved DE authored from evidence is treated as a match.
|
|
39
|
+
* - The ACHIEVED desired effect is authored from the supplied `evidence`
|
|
40
|
+
* (diff/tests/inspection), NOT from the UDE problem text.
|
|
41
|
+
* - The judgment classifies match / legitimate_divergence / shortfall.
|
|
42
|
+
*
|
|
43
|
+
* match / legitimate_divergence -> `restatements` (carried into verify).
|
|
44
|
+
* shortfall -> `shortfalls` (caller holds gate + escalates).
|
|
45
|
+
*
|
|
46
|
+
* Best-effort per target: a reconciliation FAILURE (model error / parse error)
|
|
47
|
+
* is treated as a SHORTFALL -- we cannot prove the achieved outcome realizes the
|
|
48
|
+
* declared intent, so we do not flip it and we surface it to a human. (This is
|
|
49
|
+
* the asymmetric-safe default: never flip what you could not reconcile.)
|
|
23
50
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
51
|
+
* SCOPE BOUNDARY (intentional): this reconciles ONLY the UDEs the injection
|
|
52
|
+
* DIRECTLY targets (its `targets` edges). Downstream consequences that resolve
|
|
53
|
+
* by causal PROPAGATION at verify are NOT reconciled here -- they have no
|
|
54
|
+
* declared DE to measure against, and their forward prose is authored by the
|
|
55
|
+
* injection-conditioned draft-assist loop (cascade-restatement.ts), not from raw
|
|
56
|
+
* code evidence. Verify flips their node_type but leaves verify_classification
|
|
57
|
+
* null; display falls back to the draft-assist frt_statement. See the matching
|
|
58
|
+
* note in graph-verification.ts (verifyInjectionImpl, Step 6).
|
|
30
59
|
*
|
|
31
|
-
* Returns
|
|
32
|
-
*
|
|
60
|
+
* Returns empty result when focusId is null or the injection is not in the
|
|
61
|
+
* focus's active tree(s).
|
|
33
62
|
*/
|
|
34
|
-
export async function authorTargetRestatements(injectionNodeId, focusId, deps = {}) {
|
|
63
|
+
export async function authorTargetRestatements(injectionNodeId, focusId, evidence, deps = {}) {
|
|
35
64
|
const callApi = deps.callApi ?? defaultCallApi;
|
|
36
|
-
const
|
|
37
|
-
const
|
|
65
|
+
const reconcile = deps.reconcile ?? defaultReconcile;
|
|
66
|
+
const result = { restatements: [], shortfalls: [] };
|
|
38
67
|
if (!focusId)
|
|
39
|
-
return
|
|
68
|
+
return result;
|
|
40
69
|
const treesResp = await callApi('reality_tree_list', { focusId });
|
|
41
70
|
const trees = (treesResp.items ?? []).filter((t) => t.status === 'active');
|
|
42
71
|
for (const tree of trees) {
|
|
@@ -50,36 +79,62 @@ export async function authorTargetRestatements(injectionNodeId, focusId, deps =
|
|
|
50
79
|
const injection = nodeById.get(injectionNodeId);
|
|
51
80
|
if (!injection || injection.nodeType !== 'injection')
|
|
52
81
|
continue; // not in this tree
|
|
53
|
-
const injectionStatements = injection.statement.trim() !== '' ? [injection.statement] : undefined;
|
|
54
82
|
for (const e of edges) {
|
|
55
83
|
if (e.edgeType !== 'targets' || e.fromNodeId !== injectionNodeId)
|
|
56
84
|
continue;
|
|
57
85
|
const target = nodeById.get(e.toNodeId);
|
|
58
86
|
if (!target || target.nodeType !== 'undesired_effect')
|
|
59
87
|
continue;
|
|
60
|
-
//
|
|
61
|
-
//
|
|
62
|
-
|
|
63
|
-
|
|
88
|
+
// The DECLARED desired effect is the preserved frt_statement (intent of
|
|
89
|
+
// record). When none was ever authored there is nothing to fall short of.
|
|
90
|
+
const declared = target.frtStatement && target.frtStatement.trim() !== ''
|
|
91
|
+
? target.frtStatement.trim()
|
|
92
|
+
: null;
|
|
93
|
+
let judgment;
|
|
94
|
+
try {
|
|
95
|
+
judgment = await reconcile({
|
|
96
|
+
declaredStatement: declared ?? '',
|
|
97
|
+
evidence,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
// Asymmetric-safe: a reconciliation we could not complete is a shortfall.
|
|
102
|
+
// We never flip an injection whose achievement we could not verify.
|
|
103
|
+
result.shortfalls.push({
|
|
104
|
+
nodeId: target.id,
|
|
105
|
+
declaredStatement: declared ?? target.statement,
|
|
106
|
+
achievedStatement: '(reconciliation failed)',
|
|
107
|
+
reason: `Reconciliation failed: ${err.message}`,
|
|
108
|
+
});
|
|
64
109
|
continue;
|
|
65
110
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
111
|
+
const classification = declared
|
|
112
|
+
? judgment.classification
|
|
113
|
+
// No declared intent to measure against -> the evidence-derived outcome
|
|
114
|
+
// stands on its own as a match (cannot fall short of nothing).
|
|
115
|
+
: 'match';
|
|
116
|
+
if (classification === 'shortfall') {
|
|
117
|
+
result.shortfalls.push({
|
|
118
|
+
nodeId: target.id,
|
|
119
|
+
declaredStatement: declared ?? target.statement,
|
|
120
|
+
achievedStatement: judgment.achievedStatement,
|
|
121
|
+
reason: judgment.divergenceReason
|
|
122
|
+
?? 'Achieved outcome falls short of the declared desired effect.',
|
|
71
123
|
});
|
|
72
|
-
|
|
73
|
-
out.push({ nodeId: target.id, statement: text.trim() });
|
|
74
|
-
}
|
|
124
|
+
continue;
|
|
75
125
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
126
|
+
const entry = {
|
|
127
|
+
nodeId: target.id,
|
|
128
|
+
statement: judgment.achievedStatement,
|
|
129
|
+
classification,
|
|
130
|
+
};
|
|
131
|
+
if (classification === 'legitimate_divergence' && judgment.divergenceReason) {
|
|
132
|
+
entry.divergenceReason = judgment.divergenceReason;
|
|
79
133
|
}
|
|
134
|
+
result.restatements.push(entry);
|
|
80
135
|
}
|
|
81
|
-
return
|
|
136
|
+
return result; // injection found and processed
|
|
82
137
|
}
|
|
83
|
-
return
|
|
138
|
+
return result;
|
|
84
139
|
}
|
|
85
140
|
//# sourceMappingURL=verify-restatement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-restatement.js","sourceRoot":"","sources":["../src/verify-restatement.ts"],"names":[],"mappings":"AAAA
|
|
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.17.
|
|
3
|
+
"version": "0.17.82",
|
|
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.
|
|
40
|
-
"@telora/mcp-products": "^0.22.
|
|
39
|
+
"@telora/daemon-core": "^0.2.44",
|
|
40
|
+
"@telora/mcp-products": "^0.22.66",
|
|
41
41
|
"commander": "^14.0.3",
|
|
42
42
|
"yaml": "^2.4.0",
|
|
43
43
|
"zod": "^4.3.6"
|