@telora/daemon 0.17.28 → 0.17.31

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "commitSha": "c113310c",
3
- "builtAt": "2026-06-08T21:14:55.859Z",
2
+ "commitSha": "adcfd672",
3
+ "builtAt": "2026-06-09T01:42:53.967Z",
4
4
  "expectedMigrations": [
5
5
  "20250829113330_create_org_nodes_table.sql",
6
6
  "20250829113402_fix_function_security_search_path.sql",
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Eager FRT-cascade desired-effect restatement authoring.
3
+ *
4
+ * When an injection flips a UDE, the derived-FRT engine marks not just the
5
+ * directly-targeted UDE as resolved but the FULL downstream consequence
6
+ * cascade (every UDE the flip propagates through). Today the verify-time path
7
+ * (`verify-restatement.ts`) only authors prose for the directly-targeted
8
+ * nodes, and only at verify -- so flipped downstream consequences keep reading
9
+ * as present-tense problems until (and unless) they are themselves a verify
10
+ * target.
11
+ *
12
+ * This module closes that gap. It authors future-state desired-effect prose
13
+ * (`frt_statement`) EAGERLY across the whole resolved cascade -- the targeted
14
+ * UDE plus every downstream resolved consequence -- in future tense, while the
15
+ * CRT base statement stays untouched until verify. It is the "daemon
16
+ * reconciliation backstop" the targetInjection edge comment promises.
17
+ *
18
+ * Reuses the de-restatement prose helper (`authorRestatement`) -- it does NOT
19
+ * duplicate the prompt/model logic -- and the server-side derive-FRT action
20
+ * (`reality_tree_derive_frt`, Delivery A) which returns the engine's derived
21
+ * cascade. Overlay-only: only `frt_statement` is written; node_type and the
22
+ * base statement are left untouched.
23
+ *
24
+ * Idempotent at the prose level: a cascade node that already carries a
25
+ * positive `frt_statement` is skipped (`needsRestatement` is false), so the
26
+ * per-tick scan does not churn already-authored trees.
27
+ *
28
+ * @module cascade-restatement
29
+ */
30
+ import { type RestatementInputs, type RestatementOptions } from './de-restatement.js';
31
+ import { proposeNegativeBranchesForInjection as defaultProposeNegativeBranches, type ProposeNegativeBranchesDeps, type ProposeNegativeBranchesResult } from './negative-branch.js';
32
+ import { getActiveFocuses } from './queries/deliveries.js';
33
+ import type { DaemonConfig } from './types.js';
34
+ export type CallApiFn = <T>(action: string, params?: Record<string, unknown>) => Promise<T>;
35
+ export type AuthorRestatementFn = (inputs: RestatementInputs, opts?: RestatementOptions) => Promise<string>;
36
+ /** One FRT-visible node as returned by the derive-FRT action (Delivery A). */
37
+ export interface DerivedFrtNode {
38
+ id: string;
39
+ seq: number;
40
+ derivedNodeType: 'entity' | 'undesired_effect' | 'desired_effect' | 'injection';
41
+ resolved: boolean;
42
+ statement: string;
43
+ frtStatement: string | null;
44
+ }
45
+ /** Shape of the `reality_tree_derive_frt` server action response (Delivery A). */
46
+ export interface DeriveFrtResponse {
47
+ treeId: string;
48
+ clearedNodeIds: string[];
49
+ flippedNodeIds: string[];
50
+ nodes: DerivedFrtNode[];
51
+ }
52
+ export interface AuthorCascadeRestatementsDeps {
53
+ callApi?: CallApiFn;
54
+ authorRestatement?: AuthorRestatementFn;
55
+ }
56
+ /**
57
+ * Author injection-conditioned desired-effect prose across the FULL resolved
58
+ * cascade of a tree (the targeted UDE plus every downstream resolved
59
+ * consequence), eagerly.
60
+ *
61
+ * For each flipped/resolved node that still needs prose, authors one positive
62
+ * future-state sentence conditioned on the tree's active injection statements,
63
+ * then writes it to `frt_statement` via `reality_tree_node_update` (which
64
+ * leaves node_type and the base statement untouched).
65
+ *
66
+ * Best-effort per node: a per-node author-or-write failure is swallowed (that
67
+ * node is recorded as skipped) so one failure never aborts the cascade.
68
+ *
69
+ * Idempotent: a node whose `frt_statement` is already a positive sentence is
70
+ * skipped, not re-authored.
71
+ */
72
+ export declare function authorCascadeRestatements(treeId: string, deps?: AuthorCascadeRestatementsDeps): Promise<{
73
+ authored: string[];
74
+ skipped: string[];
75
+ }>;
76
+ export interface RunCascadeProseTickDeps {
77
+ callApi?: CallApiFn;
78
+ authorRestatement?: AuthorRestatementFn;
79
+ /** Enumerate active focuses for a product. Defaults to the live query. */
80
+ getActiveFocuses?: typeof getActiveFocuses;
81
+ /** Author cascade prose for one tree. Defaults to authorCascadeRestatements. */
82
+ authorCascadeRestatements?: typeof authorCascadeRestatements;
83
+ }
84
+ /**
85
+ * Eager reconciliation tick. For every product -> active focus -> active
86
+ * reality tree that carries at least one applied injection, runs
87
+ * authorCascadeRestatements so flipped cascade nodes get future-state prose
88
+ * without waiting for verify.
89
+ *
90
+ * Trees with no applied (derivedNodeType==='injection') injection are skipped
91
+ * cheaply -- there is nothing flipped to restate. Idempotency in
92
+ * authorCascadeRestatements prevents churn on already-authored trees.
93
+ */
94
+ export declare function runCascadeProseTick(config: DaemonConfig, deps?: RunCascadeProseTickDeps): Promise<{
95
+ treesScanned: number;
96
+ authored: number;
97
+ }>;
98
+ export interface RunNegativeBranchTickDeps {
99
+ callApi?: CallApiFn;
100
+ /** Enumerate active focuses for a product. Defaults to the live query. */
101
+ getActiveFocuses?: typeof getActiveFocuses;
102
+ /** Propose NB candidates for one injection. Defaults to proposeNegativeBranchesForInjection. */
103
+ proposeNegativeBranches?: (inputs: Parameters<typeof defaultProposeNegativeBranches>[0], deps?: ProposeNegativeBranchesDeps) => Promise<ProposeNegativeBranchesResult>;
104
+ }
105
+ /**
106
+ * Background tick that proposes negative-branch reservations for every applied
107
+ * injection that has not yet had candidates generated.
108
+ *
109
+ * Idempotency: an injection is skipped when any non-dismissed `add_node`
110
+ * proposal with `proposedMetadata.isNegativeBranch === true` and
111
+ * `proposedMetadata.sourceInjectionId === injectionId` already exists for the
112
+ * tree. This prevents re-generating on re-ticks and leaves dismissed proposals
113
+ * behind (the user cleared the concern; don't re-surface it).
114
+ *
115
+ * Shares the `TELORA_FRT_PROSE_LOOP` opt-out signal with the prose tick --
116
+ * both are FRT-overlay authoring concerns driven by the same guard.
117
+ */
118
+ export declare function runNegativeBranchTick(config: DaemonConfig, deps?: RunNegativeBranchTickDeps): Promise<{
119
+ treesScanned: number;
120
+ proposed: number;
121
+ }>;
122
+ //# sourceMappingURL=cascade-restatement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cascade-restatement.d.ts","sourceRoot":"","sources":["../src/cascade-restatement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,271 @@
1
+ /**
2
+ * Eager FRT-cascade desired-effect restatement authoring.
3
+ *
4
+ * When an injection flips a UDE, the derived-FRT engine marks not just the
5
+ * directly-targeted UDE as resolved but the FULL downstream consequence
6
+ * cascade (every UDE the flip propagates through). Today the verify-time path
7
+ * (`verify-restatement.ts`) only authors prose for the directly-targeted
8
+ * nodes, and only at verify -- so flipped downstream consequences keep reading
9
+ * as present-tense problems until (and unless) they are themselves a verify
10
+ * target.
11
+ *
12
+ * This module closes that gap. It authors future-state desired-effect prose
13
+ * (`frt_statement`) EAGERLY across the whole resolved cascade -- the targeted
14
+ * UDE plus every downstream resolved consequence -- in future tense, while the
15
+ * CRT base statement stays untouched until verify. It is the "daemon
16
+ * reconciliation backstop" the targetInjection edge comment promises.
17
+ *
18
+ * Reuses the de-restatement prose helper (`authorRestatement`) -- it does NOT
19
+ * duplicate the prompt/model logic -- and the server-side derive-FRT action
20
+ * (`reality_tree_derive_frt`, Delivery A) which returns the engine's derived
21
+ * cascade. Overlay-only: only `frt_statement` is written; node_type and the
22
+ * base statement are left untouched.
23
+ *
24
+ * Idempotent at the prose level: a cascade node that already carries a
25
+ * positive `frt_statement` is skipped (`needsRestatement` is false), so the
26
+ * per-tick scan does not churn already-authored trees.
27
+ *
28
+ * @module cascade-restatement
29
+ */
30
+ import { callApi as defaultCallApi } from './queries/shared.js';
31
+ import { authorRestatement as defaultAuthorRestatement, needsRestatement, } from './de-restatement.js';
32
+ import { proposeNegativeBranchesForInjection as defaultProposeNegativeBranches, } from './negative-branch.js';
33
+ import { configForProduct } from './config.js';
34
+ import { getActiveFocuses } from './queries/deliveries.js';
35
+ /**
36
+ * Author injection-conditioned desired-effect prose across the FULL resolved
37
+ * cascade of a tree (the targeted UDE plus every downstream resolved
38
+ * consequence), eagerly.
39
+ *
40
+ * For each flipped/resolved node that still needs prose, authors one positive
41
+ * future-state sentence conditioned on the tree's active injection statements,
42
+ * then writes it to `frt_statement` via `reality_tree_node_update` (which
43
+ * leaves node_type and the base statement untouched).
44
+ *
45
+ * Best-effort per node: a per-node author-or-write failure is swallowed (that
46
+ * node is recorded as skipped) so one failure never aborts the cascade.
47
+ *
48
+ * Idempotent: a node whose `frt_statement` is already a positive sentence is
49
+ * skipped, not re-authored.
50
+ */
51
+ export async function authorCascadeRestatements(treeId, deps = {}) {
52
+ const callApi = deps.callApi ?? defaultCallApi;
53
+ const author = deps.authorRestatement ?? defaultAuthorRestatement;
54
+ const authored = [];
55
+ const skipped = [];
56
+ const derived = await callApi('reality_tree_derive_frt', { treeId });
57
+ const nodes = derived.nodes ?? [];
58
+ // Active (applied) injection statements condition the prose so each UDE
59
+ // becomes the positive state it reaches GIVEN those injections.
60
+ const injectionStatements = nodes
61
+ .filter((n) => n.derivedNodeType === 'injection' && n.statement && n.statement.trim() !== '')
62
+ .map((n) => n.statement);
63
+ // The resolved cascade: the engine's flipped set, plus any node it derives
64
+ // as resolved (defensive union -- they should coincide).
65
+ const flippedIds = new Set(derived.flippedNodeIds ?? []);
66
+ const cascade = nodes.filter((n) => flippedIds.has(n.id) || n.resolved === true);
67
+ for (const node of cascade) {
68
+ // Idempotent: prose already authored -> skip, never re-author.
69
+ if (!needsRestatement(node.frtStatement)) {
70
+ skipped.push(node.id);
71
+ continue;
72
+ }
73
+ try {
74
+ const text = await author({
75
+ udeStatement: node.statement,
76
+ injectionStatements: injectionStatements.length > 0 ? injectionStatements : undefined,
77
+ });
78
+ if (!text || text.trim() === '') {
79
+ skipped.push(node.id);
80
+ continue;
81
+ }
82
+ await callApi('reality_tree_node_update', { nodeId: node.id, frtStatement: text.trim() });
83
+ authored.push(node.id);
84
+ }
85
+ catch {
86
+ // best-effort: skip this node, keep going.
87
+ skipped.push(node.id);
88
+ }
89
+ }
90
+ return { authored, skipped };
91
+ }
92
+ /**
93
+ * Eager reconciliation tick. For every product -> active focus -> active
94
+ * reality tree that carries at least one applied injection, runs
95
+ * authorCascadeRestatements so flipped cascade nodes get future-state prose
96
+ * without waiting for verify.
97
+ *
98
+ * Trees with no applied (derivedNodeType==='injection') injection are skipped
99
+ * cheaply -- there is nothing flipped to restate. Idempotency in
100
+ * authorCascadeRestatements prevents churn on already-authored trees.
101
+ */
102
+ export async function runCascadeProseTick(config, deps = {}) {
103
+ const callApi = deps.callApi ?? defaultCallApi;
104
+ const listFocuses = deps.getActiveFocuses ?? getActiveFocuses;
105
+ const authorCascade = deps.authorCascadeRestatements ?? authorCascadeRestatements;
106
+ let treesScanned = 0;
107
+ let authored = 0;
108
+ for (const product of config.products) {
109
+ const pc = configForProduct(config, product);
110
+ let focuses;
111
+ try {
112
+ focuses = await listFocuses(pc.organizationId, product.id);
113
+ }
114
+ catch (err) {
115
+ console.warn(`[frt-prose] getActiveFocuses failed for product ${product.id}:`, err.message);
116
+ continue;
117
+ }
118
+ for (const focus of focuses) {
119
+ let trees;
120
+ try {
121
+ const resp = await callApi('reality_tree_list', {
122
+ focusId: focus.focus_id,
123
+ });
124
+ trees = (resp.items ?? []).filter((t) => t.status === 'active');
125
+ }
126
+ catch (err) {
127
+ console.warn(`[frt-prose] reality_tree_list failed for focus ${focus.focus_id}:`, err.message);
128
+ continue;
129
+ }
130
+ for (const tree of trees) {
131
+ // Cheap pre-check: derive the FRT once, skip trees with no applied
132
+ // injection (nothing flipped to restate).
133
+ let derived;
134
+ try {
135
+ derived = await callApi('reality_tree_derive_frt', { treeId: tree.id });
136
+ }
137
+ catch (err) {
138
+ console.warn(`[frt-prose] derive_frt failed for tree ${tree.id}:`, err.message);
139
+ continue;
140
+ }
141
+ const hasInjection = (derived.nodes ?? []).some((n) => n.derivedNodeType === 'injection' && n.statement && n.statement.trim() !== '');
142
+ if (!hasInjection)
143
+ continue;
144
+ treesScanned += 1;
145
+ try {
146
+ const res = await authorCascade(tree.id, {
147
+ callApi,
148
+ authorRestatement: deps.authorRestatement,
149
+ });
150
+ authored += res.authored.length;
151
+ }
152
+ catch (err) {
153
+ console.warn(`[frt-prose] authorCascadeRestatements failed for tree ${tree.id}:`, err.message);
154
+ }
155
+ }
156
+ }
157
+ }
158
+ return { treesScanned, authored };
159
+ }
160
+ /**
161
+ * Background tick that proposes negative-branch reservations for every applied
162
+ * injection that has not yet had candidates generated.
163
+ *
164
+ * Idempotency: an injection is skipped when any non-dismissed `add_node`
165
+ * proposal with `proposedMetadata.isNegativeBranch === true` and
166
+ * `proposedMetadata.sourceInjectionId === injectionId` already exists for the
167
+ * tree. This prevents re-generating on re-ticks and leaves dismissed proposals
168
+ * behind (the user cleared the concern; don't re-surface it).
169
+ *
170
+ * Shares the `TELORA_FRT_PROSE_LOOP` opt-out signal with the prose tick --
171
+ * both are FRT-overlay authoring concerns driven by the same guard.
172
+ */
173
+ export async function runNegativeBranchTick(config, deps = {}) {
174
+ const callApi = deps.callApi ?? defaultCallApi;
175
+ const listFocuses = deps.getActiveFocuses ?? getActiveFocuses;
176
+ const proposeNb = deps.proposeNegativeBranches ?? defaultProposeNegativeBranches;
177
+ let treesScanned = 0;
178
+ let proposed = 0;
179
+ for (const product of config.products) {
180
+ const pc = configForProduct(config, product);
181
+ let focuses;
182
+ try {
183
+ focuses = await listFocuses(pc.organizationId, product.id);
184
+ }
185
+ catch (err) {
186
+ console.warn(`[negative-branch] getActiveFocuses failed for product ${product.id}:`, err.message);
187
+ continue;
188
+ }
189
+ for (const focus of focuses) {
190
+ let trees;
191
+ try {
192
+ const resp = await callApi('reality_tree_list', {
193
+ focusId: focus.focus_id,
194
+ });
195
+ trees = (resp.items ?? []).filter((t) => t.status === 'active');
196
+ }
197
+ catch (err) {
198
+ console.warn(`[negative-branch] reality_tree_list failed for focus ${focus.focus_id}:`, err.message);
199
+ continue;
200
+ }
201
+ for (const tree of trees) {
202
+ let derived;
203
+ try {
204
+ derived = await callApi('reality_tree_derive_frt', {
205
+ treeId: tree.id,
206
+ });
207
+ }
208
+ catch (err) {
209
+ console.warn(`[negative-branch] derive_frt failed for tree ${tree.id}:`, err.message);
210
+ continue;
211
+ }
212
+ // Only trees with at least one applied injection need NB analysis.
213
+ const appliedInjections = (derived.nodes ?? []).filter((n) => n.derivedNodeType === 'injection' && n.statement && n.statement.trim() !== '');
214
+ if (appliedInjections.length === 0)
215
+ continue;
216
+ treesScanned += 1;
217
+ // Load existing proposals for this tree to check idempotency.
218
+ let existingProposals = [];
219
+ try {
220
+ const pr = await callApi('crt_drift_proposal_list', {
221
+ realityTreeId: tree.id,
222
+ });
223
+ existingProposals = pr.items ?? [];
224
+ }
225
+ catch (err) {
226
+ console.warn(`[negative-branch] proposal_list failed for tree ${tree.id}:`, err.message);
227
+ continue;
228
+ }
229
+ // Build a set of injection IDs that already have non-dismissed NB proposals.
230
+ const alreadyProposed = new Set();
231
+ for (const p of existingProposals) {
232
+ if (p.status === 'dismissed')
233
+ continue;
234
+ const meta = p.proposedMetadata ?? {};
235
+ if (meta.isNegativeBranch === true &&
236
+ typeof meta.sourceInjectionId === 'string' &&
237
+ meta.sourceInjectionId !== '') {
238
+ alreadyProposed.add(meta.sourceInjectionId);
239
+ }
240
+ }
241
+ // UDE statements for context: nodes that are flipped in the current cascade.
242
+ const flippedIds = new Set(derived.flippedNodeIds ?? []);
243
+ const targetUdeStatements = (derived.nodes ?? [])
244
+ .filter((n) => n.derivedNodeType === 'undesired_effect' && flippedIds.has(n.id))
245
+ .map((n) => n.statement);
246
+ for (const inj of appliedInjections) {
247
+ if (alreadyProposed.has(inj.id))
248
+ continue;
249
+ try {
250
+ const res = await proposeNb({
251
+ injectionNodeId: inj.id,
252
+ injectionStatement: inj.statement,
253
+ realityTreeId: tree.id,
254
+ focusId: focus.focus_id,
255
+ targetUdeStatements,
256
+ }, { callApi });
257
+ proposed += res.proposalIds.length;
258
+ if (res.errors.length > 0) {
259
+ console.warn(`[negative-branch] partial errors for injection ${inj.id}:`, res.errors.join('; '));
260
+ }
261
+ }
262
+ catch (err) {
263
+ console.warn(`[negative-branch] proposeNegativeBranches failed for injection ${inj.id}:`, err.message);
264
+ }
265
+ }
266
+ }
267
+ }
268
+ }
269
+ return { treesScanned, proposed };
270
+ }
271
+ //# sourceMappingURL=cascade-restatement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cascade-restatement.js","sourceRoot":"","sources":["../src/cascade-restatement.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"focus-engine.d.ts","sourceRoot":"","sources":["../src/focus-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAA2B,gBAAgB,EAAmB,MAAM,qBAAqB,CAAC;AAwDjG;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAKT;AAMD,qBAAa,WAAY,YAAW,eAAe;IACjD,QAAQ,CAAC,IAAI,WAAW;IAExB,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAA6B;IAE3C,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAiC;IAEjD,sEAAsE;IACtE,OAAO,CAAC,SAAS,CAAwC;IAEzD,8EAA8E;IAC9E,OAAO,CAAC,qBAAqB,CAA6B;IAE1D;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAUlC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDjE,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsEjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAwPd,aAAa;YA8Bb,wBAAwB;IA+BtC,IAAI,IAAI,IAAI;IAeN,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAqG/B,WAAW,IAAI,YAAY;IA0D3B,gBAAgB,IAAI,aAAa;IAwBjC;;;OAGG;IACH,OAAO,CAAC,aAAa;CAStB"}
1
+ {"version":3,"file":"focus-engine.d.ts","sourceRoot":"","sources":["../src/focus-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAA2B,gBAAgB,EAAmB,MAAM,qBAAqB,CAAC;AAyDjG;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAKT;AAMD,qBAAa,WAAY,YAAW,eAAe;IACjD,QAAQ,CAAC,IAAI,WAAW;IAExB,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAA6B;IAE3C,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAiC;IAEjD,sEAAsE;IACtE,OAAO,CAAC,SAAS,CAAwC;IAEzD,8EAA8E;IAC9E,OAAO,CAAC,qBAAqB,CAA6B;IAE1D;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAUlC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDjE,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsEjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAwSd,aAAa;YA8Bb,wBAAwB;IA+BtC,IAAI,IAAI,IAAI;IAeN,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAqG/B,WAAW,IAAI,YAAY;IA0D3B,gBAAgB,IAAI,aAAa;IAwBjC;;;OAGG;IACH,OAAO,CAAC,aAAa;CAStB"}
@@ -35,6 +35,7 @@ import { upsertGitActivity, getLatestGitActivityTimestamp } from './queries/git-
35
35
  import { getActiveFocuses } from './queries/deliveries.js';
36
36
  import { runFocusLoopOnce } from './focus-loop.js';
37
37
  import { runVerificationTick } from './verification-engine.js';
38
+ import { runCascadeProseTick, runNegativeBranchTick } from './cascade-restatement.js';
38
39
  import { runPrdControllerTickAll } from './prd-controller.js';
39
40
  import { runMergeBackTick } from './merge-back-loop.js';
40
41
  import { runDriftEvalTick, runPendingDriftEvalRequestsTick } from './drift-eval-loop.js';
@@ -264,6 +265,47 @@ export class FocusEngine {
264
265
  else {
265
266
  console.log('Verification loop tick: disabled (TELORA_VERIFICATION_LOOP=0)');
266
267
  }
268
+ // FRT-rethink-on-flip: eager cascade-prose reconciliation tick (60s).
269
+ // Authors future-state desired-effect prose (frt_statement) across the full
270
+ // resolved cascade of any tree with an applied injection, so flipped
271
+ // downstream consequences stop reading as present-tense problems without
272
+ // waiting for verify. Idempotent -- a no-op on already-authored trees.
273
+ // Opt-out semantics: unset -> enabled (default), set TELORA_FRT_PROSE_LOOP=0 to disable.
274
+ if (shouldRunLoop('TELORA_FRT_PROSE_LOOP')) {
275
+ console.log('FRT-prose loop tick: enabled (set TELORA_FRT_PROSE_LOOP=0 to disable)');
276
+ this.intervals.push(safeInterval(async () => {
277
+ try {
278
+ const counts = await runCascadeProseTick(config);
279
+ if (counts.authored > 0) {
280
+ console.log(`[frt-prose] tick: treesScanned=${counts.treesScanned} authored=${counts.authored}`);
281
+ }
282
+ }
283
+ catch (err) {
284
+ console.warn('[frt-prose] tick failed:', err.message);
285
+ }
286
+ }, 60_000, 'frt-prose-loop'));
287
+ }
288
+ else {
289
+ console.log('FRT-prose loop tick: disabled (TELORA_FRT_PROSE_LOOP=0)');
290
+ }
291
+ // Negative-branch reservation tick: for each applied injection without
292
+ // existing NB proposals, ask the model for candidate new UDEs and persist
293
+ // them as ratify-able drift proposals. Shares the TELORA_FRT_PROSE_LOOP
294
+ // opt-out -- same guard, FRT authoring family. Runs at 5-minute interval
295
+ // (model invocations; slower cadence than the prose tick is appropriate).
296
+ if (shouldRunLoop('TELORA_FRT_PROSE_LOOP')) {
297
+ this.intervals.push(safeInterval(async () => {
298
+ try {
299
+ const counts = await runNegativeBranchTick(config);
300
+ if (counts.proposed > 0) {
301
+ console.log(`[negative-branch] tick: treesScanned=${counts.treesScanned} proposed=${counts.proposed}`);
302
+ }
303
+ }
304
+ catch (err) {
305
+ console.warn('[negative-branch] tick failed:', err.message);
306
+ }
307
+ }, 300_000, 'negative-branch-loop'));
308
+ }
267
309
  // Staged Assembly PRD layer: PRD-lifecycle controller tick (60s).
268
310
  // Computes the PRT frontier for active PRDs and arms frontier foci via the
269
311
  // existing assigned_agent_role_id queue toggle (focus_update). Adds NO new
@@ -1 +1 @@
1
- {"version":3,"file":"focus-engine.js","sourceRoot":"","sources":["../src/focus-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"focus-engine.js","sourceRoot":"","sources":["../src/focus-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Negative-branch (negative branch reservation) generation helper.
3
+ *
4
+ * The INVERSE of `de-restatement.ts`. Where de-restatement turns a UDE into the
5
+ * positive desired effect it becomes once an injection resolves it, this asks
6
+ * the opposite question: what NEW undesired effects might this injection ITSELF
7
+ * introduce? In Goldratt's Thinking Processes this is a "negative branch
8
+ * reservation" -- a side effect the injection drags in that the clean recolor
9
+ * never surfaces.
10
+ *
11
+ * Reuses the same model-invocation pattern as `de-restatement.ts` -- spawning
12
+ * the `claude` CLI in print mode -- so there is NO new client or secret wiring.
13
+ * A clean injection yields ZERO candidates (the model emits "NONE" -> []).
14
+ *
15
+ * The generated candidates are persisted as `crt_drift_proposals`
16
+ * (`proposal_kind='add_node'`) carrying `sourceInjectionId` + `isNegativeBranch`
17
+ * so a human ratifies/dismisses them: ratify -> the UDE is created and wired to
18
+ * the injection (see realign-apply `handleAddNode`); dismiss -> no residue.
19
+ *
20
+ * @module negative-branch
21
+ */
22
+ import { type ChildProcess } from 'node:child_process';
23
+ export interface NegativeBranchInputs {
24
+ /** The injection whose side effects we are probing. */
25
+ injectionStatement: string;
26
+ /** Optional UDE statements the injection targets, for context. */
27
+ targetUdeStatements?: string[];
28
+ }
29
+ interface SpawnOpts {
30
+ stdio: ['pipe', 'pipe', 'pipe'];
31
+ }
32
+ export interface NegativeBranchOptions {
33
+ /** Path to the `claude` CLI binary (default: 'claude'). */
34
+ claudeBin?: string;
35
+ /** Timeout in ms; defaults to 2 minutes. */
36
+ timeoutMs?: number;
37
+ /** Override spawn for tests. Defaults to node:child_process spawn. */
38
+ spawnFn?: (cmd: string, args: string[], opts: SpawnOpts) => ChildProcess;
39
+ /**
40
+ * Override the entire model invocation for tests -- bypasses spawning the
41
+ * CLI. Receives the system prompt and user message, returns the raw model
42
+ * text. When omitted, the default spawns the `claude` CLI in print mode.
43
+ */
44
+ invokeModel?: (systemPrompt: string, userMessage: string) => Promise<string>;
45
+ }
46
+ export declare const NEGATIVE_BRANCH_SYSTEM_PROMPT = "You author Goldratt \"negative branch reservations\" for a reality tree: the NEW undesirable effects that an injection might itself introduce.\n\nAn injection resolves one problem but can drag in fresh side effects. Your job is to surface those candidate new undesired effects (UDEs) so a human can decide whether they are real.\n\nRules:\n- Output ONE candidate undesired effect per line. No numbering, no bullets, no preamble, no commentary, no quotes.\n- Each line is a single concrete negative outcome the injection could cause -- a genuinely NEW problem, not a restatement of the problem the injection solves.\n- Be conservative: only list effects with a plausible causal link to the injection. Do NOT pad the list.\n- If the injection introduces no plausible new undesired effect, output exactly: NONE";
47
+ /** Exposed as a function to mirror `de-restatement`'s shape. */
48
+ export declare function buildNegativeBranchSystemPrompt(): string;
49
+ /** Build the user message describing the injection (and any targeted UDEs). */
50
+ export declare function buildNegativeBranchUserMessage(inputs: NegativeBranchInputs): string;
51
+ /**
52
+ * Parse raw model output into a list of candidate UDE statements.
53
+ *
54
+ * One candidate per line, trimmed, empties dropped. A lone "NONE" (case
55
+ * insensitive, optionally with surrounding punctuation) yields an empty list.
56
+ * Strips a leading bullet/number if the model added one despite the prompt.
57
+ */
58
+ export declare function parseNegativeBranchCandidates(raw: string): string[];
59
+ /**
60
+ * Generate candidate negative-branch UDE statements for an injection.
61
+ *
62
+ * Returns 0-N candidates. A clean injection (model outputs "NONE") yields [].
63
+ * Throws only on model-invocation failure; callers catch and skip so a single
64
+ * failure never aborts the surrounding loop.
65
+ */
66
+ export declare function generateNegativeBranches(inputs: NegativeBranchInputs, opts?: NegativeBranchOptions): Promise<string[]>;
67
+ type CallApi = <T>(action: string, params?: Record<string, unknown>) => Promise<T>;
68
+ export interface ProposeNegativeBranchesInputs {
69
+ /** The injection node these negative branches hang off. */
70
+ injectionNodeId: string;
71
+ /** The injection statement (the probe input). */
72
+ injectionStatement: string;
73
+ /** Reality tree the proposals belong to (required by the create action). */
74
+ realityTreeId: string;
75
+ /** Focus context for the proposal (optional but recommended). */
76
+ focusId?: string | null;
77
+ /** UDE statements the injection targets, for generation context. */
78
+ targetUdeStatements?: string[];
79
+ }
80
+ export interface ProposeNegativeBranchesDeps {
81
+ callApi?: CallApi;
82
+ /** Override generation for tests. Defaults to `generateNegativeBranches`. */
83
+ generate?: (inputs: NegativeBranchInputs, opts?: NegativeBranchOptions) => Promise<string[]>;
84
+ /** Options forwarded to the default generator (model/spawn overrides). */
85
+ generateOptions?: NegativeBranchOptions;
86
+ }
87
+ export interface ProposeNegativeBranchesResult {
88
+ /** Candidate statements the model produced. */
89
+ candidates: string[];
90
+ /** Drift-proposal ids successfully created (one per candidate). */
91
+ proposalIds: string[];
92
+ /** Per-candidate creation errors (creation failures do not abort the rest). */
93
+ errors: string[];
94
+ }
95
+ /**
96
+ * Run generation for an injection, then persist each candidate as a
97
+ * ratify-able `add_node` drift proposal wired (via `sourceInjectionId`) to the
98
+ * injection that introduces it. Idempotency / dedupe is a human concern --
99
+ * proposals are surfaced, not auto-applied.
100
+ *
101
+ * A clean injection produces no candidates and creates no proposals.
102
+ */
103
+ export declare function proposeNegativeBranchesForInjection(inputs: ProposeNegativeBranchesInputs, deps?: ProposeNegativeBranchesDeps): Promise<ProposeNegativeBranchesResult>;
104
+ export {};
105
+ //# sourceMappingURL=negative-branch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negative-branch.d.ts","sourceRoot":"","sources":["../src/negative-branch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAI9D,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,UAAU,SAAS;IACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,KAAK,YAAY,CAAC;IACzE;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9E;AAID,eAAO,MAAM,6BAA6B,4yBAQ4C,CAAC;AAEvF,gEAAgE;AAChE,wBAAgB,+BAA+B,IAAI,MAAM,CAExD;AAED,+EAA+E;AAC/E,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAYnF;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBnE;AA8DD;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,oBAAoB,EAC5B,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,MAAM,EAAE,CAAC,CAMnB;AAMD,KAAK,OAAO,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAEnF,MAAM,WAAW,6BAA6B;IAC5C,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7F,0EAA0E;IAC1E,eAAe,CAAC,EAAE,qBAAqB,CAAC;CACzC;AAED,MAAM,WAAW,6BAA6B;IAC5C,+CAA+C;IAC/C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,mEAAmE;IACnE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,+EAA+E;IAC/E,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAsB,mCAAmC,CACvD,MAAM,EAAE,6BAA6B,EACrC,IAAI,GAAE,2BAAgC,GACrC,OAAO,CAAC,6BAA6B,CAAC,CA4CxC"}
@@ -0,0 +1,192 @@
1
+ /**
2
+ * Negative-branch (negative branch reservation) generation helper.
3
+ *
4
+ * The INVERSE of `de-restatement.ts`. Where de-restatement turns a UDE into the
5
+ * positive desired effect it becomes once an injection resolves it, this asks
6
+ * the opposite question: what NEW undesired effects might this injection ITSELF
7
+ * introduce? In Goldratt's Thinking Processes this is a "negative branch
8
+ * reservation" -- a side effect the injection drags in that the clean recolor
9
+ * never surfaces.
10
+ *
11
+ * Reuses the same model-invocation pattern as `de-restatement.ts` -- spawning
12
+ * the `claude` CLI in print mode -- so there is NO new client or secret wiring.
13
+ * A clean injection yields ZERO candidates (the model emits "NONE" -> []).
14
+ *
15
+ * The generated candidates are persisted as `crt_drift_proposals`
16
+ * (`proposal_kind='add_node'`) carrying `sourceInjectionId` + `isNegativeBranch`
17
+ * so a human ratifies/dismisses them: ratify -> the UDE is created and wired to
18
+ * the injection (see realign-apply `handleAddNode`); dismiss -> no residue.
19
+ *
20
+ * @module negative-branch
21
+ */
22
+ import { spawn } from 'node:child_process';
23
+ import { callApi as defaultCallApi } from './queries/shared.js';
24
+ const DEFAULT_TIMEOUT_MS = 2 * 60 * 1000;
25
+ export const NEGATIVE_BRANCH_SYSTEM_PROMPT = `You author Goldratt "negative branch reservations" for a reality tree: the NEW undesirable effects that an injection might itself introduce.
26
+
27
+ An injection resolves one problem but can drag in fresh side effects. Your job is to surface those candidate new undesired effects (UDEs) so a human can decide whether they are real.
28
+
29
+ Rules:
30
+ - Output ONE candidate undesired effect per line. No numbering, no bullets, no preamble, no commentary, no quotes.
31
+ - Each line is a single concrete negative outcome the injection could cause -- a genuinely NEW problem, not a restatement of the problem the injection solves.
32
+ - Be conservative: only list effects with a plausible causal link to the injection. Do NOT pad the list.
33
+ - If the injection introduces no plausible new undesired effect, output exactly: NONE`;
34
+ /** Exposed as a function to mirror `de-restatement`'s shape. */
35
+ export function buildNegativeBranchSystemPrompt() {
36
+ return NEGATIVE_BRANCH_SYSTEM_PROMPT;
37
+ }
38
+ /** Build the user message describing the injection (and any targeted UDEs). */
39
+ export function buildNegativeBranchUserMessage(inputs) {
40
+ const parts = [`Injection:\n${inputs.injectionStatement}`];
41
+ const targets = (inputs.targetUdeStatements ?? []).filter((s) => s && s.trim() !== '');
42
+ if (targets.length > 0) {
43
+ parts.push(`Undesired effect(s) this injection resolves:\n${targets.map((s) => `- ${s}`).join('\n')}`);
44
+ }
45
+ parts.push('List the candidate NEW undesired effects this injection might itself introduce, one per line. If there are none, output exactly: NONE');
46
+ return parts.join('\n\n');
47
+ }
48
+ /**
49
+ * Parse raw model output into a list of candidate UDE statements.
50
+ *
51
+ * One candidate per line, trimmed, empties dropped. A lone "NONE" (case
52
+ * insensitive, optionally with surrounding punctuation) yields an empty list.
53
+ * Strips a leading bullet/number if the model added one despite the prompt.
54
+ */
55
+ export function parseNegativeBranchCandidates(raw) {
56
+ let s = raw.trim();
57
+ // Strip code fences if the model wrapped the answer.
58
+ s = s.replace(/```[a-zA-Z]*\s*/g, '').replace(/```/g, '').trim();
59
+ if (s === '')
60
+ return [];
61
+ const lines = s.split('\n');
62
+ const out = [];
63
+ for (const rawLine of lines) {
64
+ let line = rawLine.trim();
65
+ if (line === '')
66
+ continue;
67
+ // Drop a leading bullet ("- ", "* ") or "1. " numbering.
68
+ line = line.replace(/^[-*]\s+/, '').replace(/^\d+[.)]\s+/, '').trim();
69
+ // Strip a single layer of surrounding quotes/backticks.
70
+ line = line.replace(/^["'`]+/, '').replace(/["'`]+$/, '').trim();
71
+ if (line === '')
72
+ continue;
73
+ // A standalone NONE sentinel means "no negative branches".
74
+ if (/^none[.!]?$/i.test(line))
75
+ continue;
76
+ out.push(line);
77
+ }
78
+ return out;
79
+ }
80
+ /** Default model invocation: spawn the `claude` CLI in print mode and return stdout. */
81
+ function invokeClaudeCli(systemPrompt, userMessage, opts) {
82
+ const claudeBin = opts.claudeBin ?? 'claude';
83
+ const timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
84
+ const spawnFn = opts.spawnFn ?? ((cmd, args, sopts) => spawn(cmd, args, sopts));
85
+ const args = [
86
+ '--print',
87
+ '--output-format', 'text',
88
+ '--bare',
89
+ '--no-session-persistence',
90
+ '--system-prompt', systemPrompt,
91
+ ];
92
+ return new Promise((resolve, reject) => {
93
+ let child;
94
+ try {
95
+ child = spawnFn(claudeBin, args, { stdio: ['pipe', 'pipe', 'pipe'] });
96
+ }
97
+ catch (err) {
98
+ reject(new Error(`negative-branch spawn failed: ${err.message}`));
99
+ return;
100
+ }
101
+ let stdout = '';
102
+ let stderr = '';
103
+ child.stdout?.on('data', (chunk) => { stdout += chunk.toString('utf8'); });
104
+ child.stderr?.on('data', (chunk) => { stderr += chunk.toString('utf8'); });
105
+ const timer = setTimeout(() => {
106
+ try {
107
+ child.kill('SIGKILL');
108
+ }
109
+ catch { /* ignore */ }
110
+ }, timeoutMs);
111
+ child.on('error', (err) => {
112
+ clearTimeout(timer);
113
+ reject(new Error(`negative-branch spawn error: ${err.message}`));
114
+ });
115
+ child.on('close', (code) => {
116
+ clearTimeout(timer);
117
+ if (code !== 0) {
118
+ reject(new Error(`negative-branch exited ${code}: ${stderr.slice(-2000)}`));
119
+ return;
120
+ }
121
+ resolve(stdout);
122
+ });
123
+ try {
124
+ child.stdin?.write(userMessage);
125
+ child.stdin?.end();
126
+ }
127
+ catch (err) {
128
+ clearTimeout(timer);
129
+ reject(new Error(`negative-branch stdin write failed: ${err.message}`));
130
+ }
131
+ });
132
+ }
133
+ /**
134
+ * Generate candidate negative-branch UDE statements for an injection.
135
+ *
136
+ * Returns 0-N candidates. A clean injection (model outputs "NONE") yields [].
137
+ * Throws only on model-invocation failure; callers catch and skip so a single
138
+ * failure never aborts the surrounding loop.
139
+ */
140
+ export async function generateNegativeBranches(inputs, opts = {}) {
141
+ const systemPrompt = buildNegativeBranchSystemPrompt();
142
+ const userMessage = buildNegativeBranchUserMessage(inputs);
143
+ const invoke = opts.invokeModel ?? ((sys, msg) => invokeClaudeCli(sys, msg, opts));
144
+ const raw = await invoke(systemPrompt, userMessage);
145
+ return parseNegativeBranchCandidates(raw);
146
+ }
147
+ /**
148
+ * Run generation for an injection, then persist each candidate as a
149
+ * ratify-able `add_node` drift proposal wired (via `sourceInjectionId`) to the
150
+ * injection that introduces it. Idempotency / dedupe is a human concern --
151
+ * proposals are surfaced, not auto-applied.
152
+ *
153
+ * A clean injection produces no candidates and creates no proposals.
154
+ */
155
+ export async function proposeNegativeBranchesForInjection(inputs, deps = {}) {
156
+ const callApi = deps.callApi ?? defaultCallApi;
157
+ const generate = deps.generate ?? generateNegativeBranches;
158
+ const candidates = await generate({
159
+ injectionStatement: inputs.injectionStatement,
160
+ targetUdeStatements: inputs.targetUdeStatements,
161
+ }, deps.generateOptions);
162
+ const proposalIds = [];
163
+ const errors = [];
164
+ for (const candidate of candidates) {
165
+ const params = {
166
+ realityTreeId: inputs.realityTreeId,
167
+ proposalKind: 'add_node',
168
+ observedState: 'injection introduces a new undesired effect',
169
+ proposedCorrection: candidate,
170
+ proposedMetadata: {
171
+ statement: candidate,
172
+ nodeType: 'undesired_effect',
173
+ viewScope: 'frt_only',
174
+ sourceInjectionId: inputs.injectionNodeId,
175
+ isNegativeBranch: true,
176
+ },
177
+ };
178
+ if (inputs.focusId)
179
+ params.focusId = inputs.focusId;
180
+ try {
181
+ const res = await callApi('crt_drift_proposal_create', params);
182
+ const id = res?.proposal?.id;
183
+ if (typeof id === 'string')
184
+ proposalIds.push(id);
185
+ }
186
+ catch (err) {
187
+ errors.push(`negative-branch proposal create failed: ${err.message}`);
188
+ }
189
+ }
190
+ return { candidates, proposalIds, errors };
191
+ }
192
+ //# sourceMappingURL=negative-branch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negative-branch.js","sourceRoot":"","sources":["../src/negative-branch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"realign-apply.d.ts","sourceRoot":"","sources":["../src/realign-apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAqB7B,oFAAoF;AACpF,MAAM,MAAM,YAAY,GACpB,kBAAkB,GAClB,UAAU,GACV,aAAa,GACb,kBAAkB,GAClB,gBAAgB,GAChB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjD,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IAC1D,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAOD,iFAAiF;AACjF,MAAM,MAAM,mBAAmB,GAAG,CAChC,MAAM,EAAE,iBAAiB,EACzB,IAAI,CAAC,EAAE,kBAAkB,KACtB,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,WAAW,iBAAiB;IAChC,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,yFAAyF;IACzF,iBAAiB,CAAC,EAAE,mBAAmB,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAoPD;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAwC9B"}
1
+ {"version":3,"file":"realign-apply.d.ts","sourceRoot":"","sources":["../src/realign-apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAqB7B,oFAAoF;AACpF,MAAM,MAAM,YAAY,GACpB,kBAAkB,GAClB,UAAU,GACV,aAAa,GACb,kBAAkB,GAClB,gBAAgB,GAChB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjD,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IAC1D,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAOD,iFAAiF;AACjF,MAAM,MAAM,mBAAmB,GAAG,CAChC,MAAM,EAAE,iBAAiB,EACzB,IAAI,CAAC,EAAE,kBAAkB,KACtB,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,WAAW,iBAAiB;IAChC,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,yFAAyF;IACzF,iBAAiB,CAAC,EAAE,mBAAmB,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AA8QD;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAwC9B"}
@@ -69,6 +69,13 @@ const handleUpdateStatement = async (proposal, callApi) => {
69
69
  * proposed_metadata must carry { statement, nodeType }. viewScope is
70
70
  * optional and defaults to 'both' (a proposed CRT node is normally visible
71
71
  * in both views unless explicitly restricted).
72
+ *
73
+ * Negative-branch wiring: when proposed_metadata carries a `sourceInjectionId`
74
+ * (the injection that introduces this new UDE -- see `negative-branch.ts`),
75
+ * after creating the node we wire a causal edge FROM the injection TO the new
76
+ * node so a ratified negative branch is structurally attached to the injection
77
+ * that introduced it. Absent sourceInjectionId, no edge is created (the plain
78
+ * add_node behavior is unchanged).
72
79
  */
73
80
  const handleAddNode = async (proposal, callApi) => {
74
81
  const meta = proposal.proposedMetadata ?? {};
@@ -88,12 +95,31 @@ const handleAddNode = async (proposal, callApi) => {
88
95
  }
89
96
  viewScope = rawViewScope;
90
97
  }
91
- await callApi('reality_tree_node_create', {
98
+ // Negative-branch attachment: wire the injection -> new UDE causal edge.
99
+ const sourceInjectionId = meta.sourceInjectionId;
100
+ const createParams = {
92
101
  treeId: proposal.realityTreeId,
93
102
  statement: statement.trim(),
94
103
  nodeType,
95
104
  viewScope,
96
- });
105
+ };
106
+ // Persist the source injection so the node carries the NB provenance signal.
107
+ if (typeof sourceInjectionId === 'string' && sourceInjectionId !== '') {
108
+ createParams.sourceInjectionId = sourceInjectionId;
109
+ }
110
+ const created = await callApi('reality_tree_node_create', createParams);
111
+ if (typeof sourceInjectionId === 'string' && sourceInjectionId !== '') {
112
+ const newNodeId = created?.node?.id;
113
+ if (typeof newNodeId !== 'string' || newNodeId === '') {
114
+ throw new Error('add_node: node_create did not return a node id; cannot wire sourceInjectionId edge');
115
+ }
116
+ await callApi('reality_tree_edge_create', {
117
+ treeId: proposal.realityTreeId,
118
+ fromNodeId: sourceInjectionId,
119
+ toNodeId: newNodeId,
120
+ edgeType: 'sufficient',
121
+ });
122
+ }
97
123
  };
98
124
  /**
99
125
  * retire_node -- soft-retire the node. Cascade effects (edge cleanup,
@@ -1 +1 @@
1
- {"version":3,"file":"realign-apply.js","sourceRoot":"","sources":["../src/realign-apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"realign-apply.js","sourceRoot":"","sources":["../src/realign-apply.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.28",
3
+ "version": "0.17.31",
4
4
  "description": "Agent orchestration daemon for Telora - spawns and manages Claude Code instances",
5
5
  "type": "module",
6
6
  "bin": {