@telora/daemon 0.22.136 → 0.22.144
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 +17 -3
- package/dist/audit/audit-phase.d.ts.map +1 -1
- package/dist/audit/audit-phase.js +15 -0
- package/dist/audit/audit-phase.js.map +1 -1
- package/dist/audit/audit-prompt.d.ts +174 -0
- package/dist/audit/audit-prompt.d.ts.map +1 -1
- package/dist/audit/audit-prompt.js +365 -2
- package/dist/audit/audit-prompt.js.map +1 -1
- package/dist/completion/review-coverage-shas.d.ts +49 -0
- package/dist/completion/review-coverage-shas.d.ts.map +1 -0
- package/dist/completion/review-coverage-shas.js +128 -0
- package/dist/completion/review-coverage-shas.js.map +1 -0
- package/dist/completion/review-exit-deps.d.ts +15 -2
- package/dist/completion/review-exit-deps.d.ts.map +1 -1
- package/dist/completion/review-exit-deps.js +9 -3
- package/dist/completion/review-exit-deps.js.map +1 -1
- package/dist/delivery/delivery-review-coverage.d.ts +200 -0
- package/dist/delivery/delivery-review-coverage.d.ts.map +1 -0
- package/dist/delivery/delivery-review-coverage.js +192 -0
- package/dist/delivery/delivery-review-coverage.js.map +1 -0
- package/dist/queries/focus-branch-work-evidence.d.ts +55 -0
- package/dist/queries/focus-branch-work-evidence.d.ts.map +1 -0
- package/dist/queries/focus-branch-work-evidence.js +65 -0
- package/dist/queries/focus-branch-work-evidence.js.map +1 -0
- package/dist/queries/focus-criteria-standing.d.ts +138 -0
- package/dist/queries/focus-criteria-standing.d.ts.map +1 -0
- package/dist/queries/focus-criteria-standing.js +98 -0
- package/dist/queries/focus-criteria-standing.js.map +1 -0
- package/dist/queries/focus-review-watermark.d.ts +35 -0
- package/dist/queries/focus-review-watermark.d.ts.map +1 -0
- package/dist/queries/focus-review-watermark.js +47 -0
- package/dist/queries/focus-review-watermark.js.map +1 -0
- package/dist/queries/focuses.d.ts +0 -9
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +0 -14
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/shared.js +1 -1
- package/dist/queries/verification.d.ts +23 -25
- package/dist/queries/verification.d.ts.map +1 -1
- package/dist/queries/verification.js +66 -45
- package/dist/queries/verification.js.map +1 -1
- package/dist/resolvers/assembly-engine.d.ts.map +1 -1
- package/dist/resolvers/assembly-engine.js +2 -0
- package/dist/resolvers/assembly-engine.js.map +1 -1
- package/dist/resolvers/compose/focus-injections-compose.d.ts +35 -0
- package/dist/resolvers/compose/focus-injections-compose.d.ts.map +1 -1
- package/dist/resolvers/compose/focus-injections-compose.js +49 -1
- package/dist/resolvers/compose/focus-injections-compose.js.map +1 -1
- package/dist/resolvers/compose/loop-delivery-index-compose.d.ts +10 -0
- package/dist/resolvers/compose/loop-delivery-index-compose.d.ts.map +1 -1
- package/dist/resolvers/compose/loop-delivery-index-compose.js +30 -2
- package/dist/resolvers/compose/loop-delivery-index-compose.js.map +1 -1
- package/dist/resolvers/focus-criteria-standing.d.ts +24 -0
- package/dist/resolvers/focus-criteria-standing.d.ts.map +1 -0
- package/dist/resolvers/focus-criteria-standing.js +234 -0
- package/dist/resolvers/focus-criteria-standing.js.map +1 -0
- package/dist/resolvers/focus-injections.d.ts.map +1 -1
- package/dist/resolvers/focus-injections.js.map +1 -1
- package/dist/resolvers/focus-review-coverage.d.ts +189 -0
- package/dist/resolvers/focus-review-coverage.d.ts.map +1 -0
- package/dist/resolvers/focus-review-coverage.js +487 -0
- package/dist/resolvers/focus-review-coverage.js.map +1 -0
- package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
- package/dist/resolvers/git-diff-against-base.js +11 -0
- package/dist/resolvers/git-diff-against-base.js.map +1 -1
- package/dist/resolvers/index.d.ts.map +1 -1
- package/dist/resolvers/index.js +7 -1
- package/dist/resolvers/index.js.map +1 -1
- package/dist/resolvers/loop-delivery-index.d.ts.map +1 -1
- package/dist/resolvers/loop-delivery-index.js +4 -0
- package/dist/resolvers/loop-delivery-index.js.map +1 -1
- package/dist/resolvers/reality-tree-snapshot.d.ts +9 -4
- package/dist/resolvers/reality-tree-snapshot.d.ts.map +1 -1
- package/dist/resolvers/reality-tree-snapshot.js +64 -17
- package/dist/resolvers/reality-tree-snapshot.js.map +1 -1
- package/dist/resolvers/shared/branch-fact-provenance.d.ts +258 -0
- package/dist/resolvers/shared/branch-fact-provenance.d.ts.map +1 -0
- package/dist/resolvers/shared/branch-fact-provenance.js +571 -0
- package/dist/resolvers/shared/branch-fact-provenance.js.map +1 -0
- package/dist/resolvers/shared/reality-tree-arrival.d.ts +71 -0
- package/dist/resolvers/shared/reality-tree-arrival.d.ts.map +1 -0
- package/dist/resolvers/shared/reality-tree-arrival.js +129 -0
- package/dist/resolvers/shared/reality-tree-arrival.js.map +1 -0
- package/dist/testing/fixtures/index.js +1 -1
- package/package.json +3 -3
|
@@ -49,19 +49,56 @@ async function callVerifyInjectionIdempotent(call, body) {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
|
-
*
|
|
52
|
+
* Build the SINGLE `reality_tree_verify_injection` body: the injection id, the
|
|
53
|
+
* restatement entries (key omitted when there are none, so a plain flip sends
|
|
54
|
+
* the body it always did), and the evidence.
|
|
55
|
+
*
|
|
56
|
+
* EVIDENCE RIDES THIS BODY rather than a preceding `reality_tree_node_update`,
|
|
57
|
+
* and that is the whole point of the collapse. The earned-promotion gate lives
|
|
58
|
+
* INSIDE the verify action
|
|
59
|
+
* (`supabase/functions/product-api/handlers/reality-tree/graph-verification.ts`
|
|
60
|
+
* `verifyInjectionImpl`), so
|
|
61
|
+
* any write issued before it is a write an ordinary refusal -- the common case
|
|
62
|
+
* the gate exists to produce -- has already made and cannot take back. Nor is
|
|
63
|
+
* the answer to reorder the two calls: a verify that succeeded followed by an
|
|
64
|
+
* evidence write that failed leaves a verified injection citing nothing, which
|
|
65
|
+
* inverts the defect instead of closing it. The edge now persists `evidence` in
|
|
66
|
+
* the SAME update that flips `injection_status='verified'` and `status=
|
|
67
|
+
* 'retired'`, strictly after the gate, so a refusal of ANY kind
|
|
68
|
+
* (`unearned_promotion`, `override_reason_required`, a bad lifecycle status,
|
|
69
|
+
* unreadable anchors) leaves the injection byte-for-byte as it found it. The
|
|
70
|
+
* MCP tool `telora_reality_tree_injection_verify` was collapsed onto the same
|
|
71
|
+
* action first (f5527c3c1); this is the same fix on the busier caller.
|
|
72
|
+
*
|
|
73
|
+
* A blank/absent citation sends NO `evidence` key, mirroring the edge's own
|
|
74
|
+
* rule: an absent value writes no column rather than blanking the citation
|
|
75
|
+
* already there. Several callers (the plain stamp with no evidence resolved)
|
|
76
|
+
* legitimately have none, and treating that as "erase what is there" would
|
|
77
|
+
* destroy evidence on a path that never had any to offer.
|
|
78
|
+
*/
|
|
79
|
+
function buildVerifyInjectionBody(injectionNodeId, entries, evidence) {
|
|
80
|
+
const body = { injectionNodeId };
|
|
81
|
+
if (entries.length > 0)
|
|
82
|
+
body.restatements = entries;
|
|
83
|
+
// Trimmed, because the edge trims before deciding whether to write -- sending
|
|
84
|
+
// the trimmed text keeps client and server reading the same citation.
|
|
85
|
+
const cited = typeof evidence === 'string' ? evidence.trim() : '';
|
|
86
|
+
if (cited.length > 0)
|
|
87
|
+
body.evidence = cited;
|
|
88
|
+
return body;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Compound op: retires the injection, persists the evidence that justifies it,
|
|
92
|
+
* and promotes its FRT overlay to CRT -- in ONE gated call.
|
|
53
93
|
* Idempotent: an injection already 'verified' is a success, not an error.
|
|
54
94
|
* Optional per-target restatements (authored on the passing verdict) are
|
|
55
95
|
* applied by the edge as each targeted UDE's new base statement; the edge
|
|
56
96
|
* never authors prose itself.
|
|
57
97
|
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* `
|
|
61
|
-
*
|
|
62
|
-
* tests it was verified on (rather than evidence=null). An empty/blank evidence
|
|
63
|
-
* string is skipped -- the retire still happens, but only a real citation is
|
|
64
|
-
* written.
|
|
98
|
+
* `evidence`, when a real citation, is carried on the verify body and written
|
|
99
|
+
* by the edge in the same update that retires the node -- never by a preceding
|
|
100
|
+
* `reality_tree_node_update`, which a refused verify could not take back. See
|
|
101
|
+
* `buildVerifyInjectionBody`. A blank/absent value writes nothing.
|
|
65
102
|
*
|
|
66
103
|
* `withheldNodeIds` are targets that must NOT flip with the injection: nodes an
|
|
67
104
|
* operator EXCUSED from a shortfall (verify/shortfall-rulings.ts) -- cleared from
|
|
@@ -72,36 +109,25 @@ async function callVerifyInjectionIdempotent(call, body) {
|
|
|
72
109
|
*/
|
|
73
110
|
export async function verifyInjectionOnPass(injectionNodeId, restatements, evidence, withheldNodeIds = [], deps = {}) {
|
|
74
111
|
const call = deps.callApi ?? callApi;
|
|
75
|
-
if (evidence && evidence.trim().length > 0) {
|
|
76
|
-
await call('reality_tree_node_update', { nodeId: injectionNodeId, evidence });
|
|
77
|
-
}
|
|
78
112
|
const withheld = withheldNodeIds.map((nodeId) => ({ nodeId, classification: 'shortfall' }));
|
|
79
113
|
const entries = [...(restatements ?? []), ...withheld];
|
|
80
|
-
|
|
81
|
-
if (entries.length > 0)
|
|
82
|
-
body.restatements = entries;
|
|
83
|
-
await callVerifyInjectionIdempotent(call, body);
|
|
114
|
+
await callVerifyInjectionIdempotent(call, buildVerifyInjectionBody(injectionNodeId, entries, evidence));
|
|
84
115
|
}
|
|
85
116
|
/**
|
|
86
|
-
* Same compound op as `verifyInjectionOnPass
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
* 1. `reality_tree_node_update` writes the evidence rationale onto the
|
|
91
|
-
* injection node so audit reads can later see why the verify was made.
|
|
92
|
-
* 2. `reality_tree_verify_injection` flips injection_status to 'verified',
|
|
93
|
-
* deletes targets edges, and promotes FRT overlays.
|
|
117
|
+
* Same compound op as `verifyInjectionOnPass`, for a caller that always has a
|
|
118
|
+
* citation: ONE `reality_tree_verify_injection` call carrying `evidence`, which
|
|
119
|
+
* the edge persists in the same update that flips injection_status to
|
|
120
|
+
* 'verified', retains targets edges, and promotes FRT overlays.
|
|
94
121
|
*
|
|
95
122
|
* Used by the focus-level close-loop injection sweep so the rationale
|
|
96
123
|
* (which closed delivery anchored the realization) is persisted alongside
|
|
97
|
-
* the verify decision
|
|
124
|
+
* the verify decision -- and, because it is one gated call, persisted if and
|
|
125
|
+
* only if that decision was actually made. See `buildVerifyInjectionBody` for
|
|
126
|
+
* why the evidence cannot be a separate preceding write.
|
|
98
127
|
*/
|
|
99
|
-
export async function verifyInjectionWithEvidence(injectionNodeId, evidence) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
evidence,
|
|
103
|
-
});
|
|
104
|
-
await callVerifyInjectionIdempotent(callApi, { injectionNodeId });
|
|
128
|
+
export async function verifyInjectionWithEvidence(injectionNodeId, evidence, deps = {}) {
|
|
129
|
+
const call = deps.callApi ?? callApi;
|
|
130
|
+
await callVerifyInjectionIdempotent(call, buildVerifyInjectionBody(injectionNodeId, [], evidence));
|
|
105
131
|
}
|
|
106
132
|
/**
|
|
107
133
|
* Translate the pure `decideNodeWriteback` output into the verify call's
|
|
@@ -175,13 +201,15 @@ export function planNodeWritebackApply(writebacks) {
|
|
|
175
201
|
* targeted carry an explicit match / legitimate_divergence status legible to a
|
|
176
202
|
* later reader.
|
|
177
203
|
*
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
*
|
|
204
|
+
* ONE gated call does all of it: `reality_tree_verify_injection` carries the
|
|
205
|
+
* per-node restatements AND the evidence, so the edge flips the injection,
|
|
206
|
+
* promotes overlays, applies the classification (+ reason) to each targeted
|
|
207
|
+
* UDE, and persists the citation in a single post-gate update. Writebacks with
|
|
208
|
+
* no achieved prose, and shortfalls, are skipped (logged) -- there is no edge
|
|
209
|
+
* path that persists a classification without prose / a flip. The evidence is
|
|
210
|
+
* NOT a preceding `reality_tree_node_update`: see `buildVerifyInjectionBody`
|
|
211
|
+
* for why a write ahead of the earned-promotion gate is a write a refusal
|
|
212
|
+
* cannot take back.
|
|
185
213
|
*
|
|
186
214
|
* Non-destructive: only stamps status + evidence/reason on nodes the injection
|
|
187
215
|
* owns; a match carries the declared desired effect forward unchanged. When
|
|
@@ -189,20 +217,13 @@ export function planNodeWritebackApply(writebacks) {
|
|
|
189
217
|
*/
|
|
190
218
|
export async function verifyInjectionWithWriteback(injectionNodeId, evidence, writebacks, realityTreeId, deps = {}) {
|
|
191
219
|
const call = deps.callApi ?? callApi;
|
|
192
|
-
await call('reality_tree_node_update', {
|
|
193
|
-
nodeId: injectionNodeId,
|
|
194
|
-
evidence,
|
|
195
|
-
});
|
|
196
220
|
const { restatements, skipped } = planNodeWritebackApply(writebacks);
|
|
197
221
|
if (skipped.length > 0) {
|
|
198
222
|
log.warn(`[reality-writeback] injection ${injectionNodeId.slice(0, 8)}: ` +
|
|
199
223
|
`${skipped.length} targeted node writeback(s) not stamped -- ` +
|
|
200
224
|
skipped.map((s) => `${s.nodeId.slice(0, 8)} (${s.reason})`).join('; '));
|
|
201
225
|
}
|
|
202
|
-
|
|
203
|
-
if (restatements.length > 0)
|
|
204
|
-
verifyBody.restatements = restatements;
|
|
205
|
-
await callVerifyInjectionIdempotent(call, verifyBody);
|
|
226
|
+
await callVerifyInjectionIdempotent(call, buildVerifyInjectionBody(injectionNodeId, restatements, evidence));
|
|
206
227
|
// Inward drift: any node reality CONTRADICTED (legitimate_divergence /
|
|
207
228
|
// shortfall) is a claim the tree got wrong. Turn each one into an inward
|
|
208
229
|
// crt_drift_proposal so the tree-owner can correct the asserting claim,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification.js","sourceRoot":"","sources":["../../src/queries/verification.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,0GAA0G;AAC1G,gBAAgB;AAEhB;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAoB,MAAM,aAAa,CAAC;AACxD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kCAAkC,GAMnC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;AA2C1D,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,SAAkB;IAElB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,kCAAkC,EAClC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAC/B,CAAC;IACF,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACrD,UAAkB,EAClB,OAA4B;IAE5B,MAAM,OAAO,CAAC,6CAA6C,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;AACxF,CAAC;AAiBD;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CAAC,GAAY;IACrD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,OAAO,8CAA8C,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,6BAA6B,CAC1C,IAAoB,EACpB,IAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC;YAAE,MAAM,GAAG,CAAC;QAChD,GAAG,CAAC,IAAI,CACN,gCAAgC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,0BAA0B;YAClG,mDAAmD,CACpD,CAAC;IACJ,CAAC;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"verification.js","sourceRoot":"","sources":["../../src/queries/verification.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assembly-engine.d.ts","sourceRoot":"","sources":["../../src/resolvers/assembly-engine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assembly-engine.d.ts","sourceRoot":"","sources":["../../src/resolvers/assembly-engine.ts"],"names":[],"mappings":"AAuBA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMtD,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,0EAA0E;AAC1E,MAAM,MAAM,cAAc,GAAG,CAC3B,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC3B,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IACpC,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,qFAAqF;AACrF,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AAKD,0DAA0D;AAC1D,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CAEzF;AAED,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAE1E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,EAAE,CAErD;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAelG;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iCAAiC,CACrD,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,gBAAgB,CAAC,CA0D3B"}
|
|
@@ -9,10 +9,12 @@
|
|
|
9
9
|
// packages/daemon/src/resolvers/escalation-answers-resolver.test.ts,
|
|
10
10
|
// packages/daemon/src/resolvers/focus-anchoring-injections-resolver.test.ts,
|
|
11
11
|
// packages/daemon/src/resolvers/focus-context-resolver.test.ts,
|
|
12
|
+
// packages/daemon/src/resolvers/focus-criteria-standing.test.ts,
|
|
12
13
|
// packages/daemon/src/resolvers/focus-endpoint-catalog.test.ts,
|
|
13
14
|
// packages/daemon/src/resolvers/focus-injections-resolver.test.ts,
|
|
14
15
|
// packages/daemon/src/resolvers/focus-last-review-report-resolver.test.ts,
|
|
15
16
|
// packages/daemon/src/resolvers/focus-reality-tree-resolver.test.ts,
|
|
17
|
+
// packages/daemon/src/resolvers/focus-review-coverage.test.ts,
|
|
16
18
|
// packages/daemon/src/resolvers/linear-linked-issues.test.ts,
|
|
17
19
|
// packages/daemon/src/resolvers/prd-resolvers.test.ts,
|
|
18
20
|
// packages/daemon/src/resolvers/shared/review-window-commits.test.ts,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assembly-engine.js","sourceRoot":"","sources":["../../src/resolvers/assembly-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"assembly-engine.js","sourceRoot":"","sources":["../../src/resolvers/assembly-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,10 +23,32 @@ export interface FocusInjectionNowTarget {
|
|
|
23
23
|
now: string;
|
|
24
24
|
target: string | null;
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* A delivery anchored to an injection, as the API resolves it from
|
|
28
|
+
* org_nodes.injection_id.
|
|
29
|
+
*/
|
|
30
|
+
export interface FocusInjectionAnchoredDelivery {
|
|
31
|
+
deliveryId: string;
|
|
32
|
+
deliveryName: string;
|
|
33
|
+
executionStatus: string | null;
|
|
34
|
+
/** Whether this delivery still holds the anchor (not cancelled). */
|
|
35
|
+
isLive: boolean;
|
|
36
|
+
}
|
|
26
37
|
/** One focus-injection item: the injection plus its per-UDE Now->Target lines. */
|
|
27
38
|
export interface FocusInjectionItem {
|
|
28
39
|
injection: FocusInjectionNode;
|
|
29
40
|
nowTargets?: FocusInjectionNowTarget[];
|
|
41
|
+
/**
|
|
42
|
+
* Deliveries materializing this injection. An empty array means genuinely
|
|
43
|
+
* none ONLY when `anchorsResolved` is true; see below.
|
|
44
|
+
*/
|
|
45
|
+
anchoredDeliveries?: FocusInjectionAnchoredDelivery[];
|
|
46
|
+
/**
|
|
47
|
+
* Whether the anchor lookup actually ran. When false/undefined the map must
|
|
48
|
+
* NOT claim the injection is free -- reading silence as "no delivery" is the
|
|
49
|
+
* inference that let a lead assert an injection had none when one existed.
|
|
50
|
+
*/
|
|
51
|
+
anchorsResolved?: boolean;
|
|
30
52
|
}
|
|
31
53
|
/** Cross-injection coordination structure for the focus map. */
|
|
32
54
|
export interface FocusInjectionStructure {
|
|
@@ -46,10 +68,23 @@ export interface FocusInjectionStructure {
|
|
|
46
68
|
udeSeqs: number[];
|
|
47
69
|
}[];
|
|
48
70
|
}
|
|
71
|
+
/** An active tree on the focus that is NOT the plan of record. */
|
|
72
|
+
export interface FocusSupersededTree {
|
|
73
|
+
treeId: string;
|
|
74
|
+
treeName: string;
|
|
75
|
+
createdAt?: string | null;
|
|
76
|
+
}
|
|
49
77
|
/** Full input to the focus.injections composer. */
|
|
50
78
|
export interface FocusInjectionsInput {
|
|
51
79
|
items: FocusInjectionItem[];
|
|
52
80
|
structure?: FocusInjectionStructure;
|
|
81
|
+
/**
|
|
82
|
+
* Active trees on this focus other than the plan of record. When non-empty
|
|
83
|
+
* the map is showing ONE tree's injections and withholding these -- which
|
|
84
|
+
* must be stated, or a lead reading a shorter map cannot tell "this focus
|
|
85
|
+
* has few injections" from "some are hidden".
|
|
86
|
+
*/
|
|
87
|
+
supersededTrees?: FocusSupersededTree[];
|
|
53
88
|
}
|
|
54
89
|
/**
|
|
55
90
|
* Render the focus's reality-tree structure as the LEAD COORDINATION MAP: per
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-injections-compose.d.ts","sourceRoot":"","sources":["../../../src/resolvers/compose/focus-injections-compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,0DAA0D;AAC1D,eAAO,MAAM,GAAG,qBAAqB,CAAC;AAEtC,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,yEAAyE;AACzE,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,UAAU,CAAC,EAAE,uBAAuB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"focus-injections-compose.d.ts","sourceRoot":"","sources":["../../../src/resolvers/compose/focus-injections-compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,0DAA0D;AAC1D,eAAO,MAAM,GAAG,qBAAqB,CAAC;AAEtC,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,yEAAyE;AACzE,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,oEAAoE;IACpE,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,UAAU,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACvC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,8BAA8B,EAAE,CAAC;IACtD;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,gEAAgE;AAChE,MAAM,WAAW,uBAAuB;IACtC,eAAe,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtD,sBAAsB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IAClG,iBAAiB,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;CAC1G;AAED,kEAAkE;AAClE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,mDAAmD;AACnD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACzC;AAgCD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CA2F1E"}
|
|
@@ -11,6 +11,33 @@
|
|
|
11
11
|
*/
|
|
12
12
|
/** The assembly source-reference this module composes. */
|
|
13
13
|
export const REF = 'focus.injections';
|
|
14
|
+
/**
|
|
15
|
+
* Render one injection's anchor state as a single line.
|
|
16
|
+
*
|
|
17
|
+
* Three distinct states, deliberately worded so none can be mistaken for
|
|
18
|
+
* another:
|
|
19
|
+
* - anchors not resolved -> say so; never imply the injection is free.
|
|
20
|
+
* - no live delivery -> state it AFFIRMATIVELY ("none yet"), so a free
|
|
21
|
+
* injection is a claim the map makes rather than
|
|
22
|
+
* something a reader infers from missing text.
|
|
23
|
+
* - one or more -> name them; flag two or more as a DOUBLE ANCHOR.
|
|
24
|
+
*/
|
|
25
|
+
function renderAnchorLine(item) {
|
|
26
|
+
if (item.anchorsResolved !== true) {
|
|
27
|
+
return 'Anchored deliveries: not resolved (this read did not look them up -- do NOT assume none)';
|
|
28
|
+
}
|
|
29
|
+
const anchored = item.anchoredDeliveries ?? [];
|
|
30
|
+
const live = anchored.filter((d) => d.isLive);
|
|
31
|
+
if (live.length === 0) {
|
|
32
|
+
const cancelled = anchored.length - live.length;
|
|
33
|
+
const cancelledNote = cancelled > 0 ? ` (${cancelled} cancelled, not holding the anchor)` : '';
|
|
34
|
+
return `Anchored: none yet -- this injection is unmaterialized${cancelledNote}`;
|
|
35
|
+
}
|
|
36
|
+
const named = live.map((d) => `"${d.deliveryName}" [${d.executionStatus ?? 'unknown'}]`).join(', ');
|
|
37
|
+
if (live.length === 1)
|
|
38
|
+
return `Anchored: ${named} -- already materialized`;
|
|
39
|
+
return `DOUBLE ANCHOR (${live.length} live deliveries on this injection): ${named} -- reconcile before adding work`;
|
|
40
|
+
}
|
|
14
41
|
/**
|
|
15
42
|
* Render the focus's reality-tree structure as the LEAD COORDINATION MAP: per
|
|
16
43
|
* injection a one-line Now->Target, the dependency order to sequence deliveries,
|
|
@@ -18,7 +45,11 @@ export const REF = 'focus.injections';
|
|
|
18
45
|
* no injections.
|
|
19
46
|
*/
|
|
20
47
|
export function composeFocusInjections(input) {
|
|
21
|
-
|
|
48
|
+
const supersededTrees = input.supersededTrees ?? [];
|
|
49
|
+
// Empty items with a superseded tree is NOT nothing to say: the plan of
|
|
50
|
+
// record may be empty while another active tree holds injections, and a
|
|
51
|
+
// blank map would hide the duplicate on the surface that matters most.
|
|
52
|
+
if ((!input.items || input.items.length === 0) && supersededTrees.length === 0)
|
|
22
53
|
return '';
|
|
23
54
|
const structure = input.structure ?? {
|
|
24
55
|
dependencyOrder: [],
|
|
@@ -35,6 +66,15 @@ export function composeFocusInjections(input) {
|
|
|
35
66
|
"delivery's full differential on demand with telora_reality_tree_injection_context",
|
|
36
67
|
'(by injection seq).',
|
|
37
68
|
'',
|
|
69
|
+
'Each injection reports the deliveries that already materialize it. An injection',
|
|
70
|
+
'showing an anchored delivery is ALREADY MATERIALIZED: residual work on it belongs',
|
|
71
|
+
'on THAT delivery -- re-scope the residual onto it (telora_product_issue create with',
|
|
72
|
+
'its deliveryId) rather than creating a second delivery for the same injection.',
|
|
73
|
+
'Finding an injection\'s desired effect already partly landed is NOT a reason to skip',
|
|
74
|
+
'the injection or abandon the work; the anchor is what would be wrong, not the work.',
|
|
75
|
+
'A DOUBLE ANCHOR line means one injection already carries two live deliveries --',
|
|
76
|
+
'reconcile it (retire or unlink one side) rather than adding a third.',
|
|
77
|
+
'',
|
|
38
78
|
'### Injections (Now -> Target)',
|
|
39
79
|
'',
|
|
40
80
|
];
|
|
@@ -46,6 +86,14 @@ export function composeFocusInjections(input) {
|
|
|
46
86
|
const target = nt.target && nt.target.trim().length > 0 ? nt.target : '(no FRT overlay yet)';
|
|
47
87
|
lines.push(` - Now: #${nt.seq} ${nt.now} -> Target: ${target}`);
|
|
48
88
|
}
|
|
89
|
+
lines.push(` - ${renderAnchorLine(item)}`);
|
|
90
|
+
}
|
|
91
|
+
if (supersededTrees.length > 0) {
|
|
92
|
+
lines.push('', '### Superseded trees (their injections are NOT listed above)', '', 'This focus carries more than one ACTIVE reality tree. The map above shows only the', 'PLAN OF RECORD (the focus\'s oldest active tree -- the one its deliveries anchor to).', 'The injections of the tree(s) below are deliberately withheld, so do NOT read the list', 'above as the whole focus, and do NOT scope deliveries against a superseded tree.', 'Resolve it: fold anything still needed into the plan of record, then archive the', 'duplicate (telora_reality_tree update with status="archived") -- archiving is enough to', 'drop it from this map.', '');
|
|
93
|
+
for (const t of supersededTrees) {
|
|
94
|
+
const created = t.createdAt ? ` (created ${t.createdAt})` : '';
|
|
95
|
+
lines.push(`- "${t.treeName}" (${t.treeId})${created}`);
|
|
96
|
+
}
|
|
49
97
|
}
|
|
50
98
|
if (structure.dependencyOrder.length > 0) {
|
|
51
99
|
lines.push('', '### Dependency Order (sequence deliveries this way)', '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-injections-compose.js","sourceRoot":"","sources":["../../../src/resolvers/compose/focus-injections-compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,0DAA0D;AAC1D,MAAM,CAAC,MAAM,GAAG,GAAG,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"focus-injections-compose.js","sourceRoot":"","sources":["../../../src/resolvers/compose/focus-injections-compose.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,16 @@ export interface LoopDeliveryIndexEntry {
|
|
|
22
22
|
seq: number;
|
|
23
23
|
statement: string;
|
|
24
24
|
nowTargets?: DeliveryIndexNowTarget[];
|
|
25
|
+
/**
|
|
26
|
+
* The injection's node id -- the key shared-injection detection groups on.
|
|
27
|
+
*
|
|
28
|
+
* NOT the bare seq: seq is per-tree, and a focus can carry more than one
|
|
29
|
+
* reality tree, so two DIFFERENT injections can share a seq. Grouping on seq
|
|
30
|
+
* would then flag two unrelated deliveries as sharing an injection, and a
|
|
31
|
+
* false shared-injection flag is worse than none. When this is absent the
|
|
32
|
+
* entry is excluded from detection rather than falling back to seq.
|
|
33
|
+
*/
|
|
34
|
+
injectionId?: string;
|
|
25
35
|
}
|
|
26
36
|
/**
|
|
27
37
|
* Render the lead's per-delivery INDEX: one flat line per in-focus delivery
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-delivery-index-compose.d.ts","sourceRoot":"","sources":["../../../src/resolvers/compose/loop-delivery-index-compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,0DAA0D;AAC1D,eAAO,MAAM,GAAG,wBAAwB,CAAC;AAEzC,+DAA+D;AAC/D,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,gFAAgF;AAChF,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"loop-delivery-index-compose.d.ts","sourceRoot":"","sources":["../../../src/resolvers/compose/loop-delivery-index-compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,0DAA0D;AAC1D,eAAO,MAAM,GAAG,wBAAwB,CAAC;AAEzC,+DAA+D;AAC/D,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,gFAAgF;AAChF,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACtC;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,MAAM,CA6ElF"}
|
|
@@ -19,6 +19,24 @@ export const REF = 'loop.delivery_index';
|
|
|
19
19
|
* differential on demand. Returns '' when there are no entries.
|
|
20
20
|
*/
|
|
21
21
|
export function composeLoopDeliveryIndex(entries) {
|
|
22
|
+
// Shared-injection detection: group by injection NODE ID, never by seq (see
|
|
23
|
+
// LoopDeliveryIndexEntry.injectionId). Two deliveries citing one injection is
|
|
24
|
+
// the defect this flag exists to surface -- it was previously latent here,
|
|
25
|
+
// visible only as two lines happening to cite the same #seq, which is what
|
|
26
|
+
// left an inheriting lead to re-derive the duplication by hand.
|
|
27
|
+
const namesByInjection = new Map();
|
|
28
|
+
for (const entry of entries) {
|
|
29
|
+
if (!entry.injectionId)
|
|
30
|
+
continue;
|
|
31
|
+
const names = namesByInjection.get(entry.injectionId) ?? [];
|
|
32
|
+
names.push(entry.deliveryName);
|
|
33
|
+
namesByInjection.set(entry.injectionId, names);
|
|
34
|
+
}
|
|
35
|
+
const sharedByInjection = new Map();
|
|
36
|
+
for (const [injectionId, names] of namesByInjection) {
|
|
37
|
+
if (names.length > 1)
|
|
38
|
+
sharedByInjection.set(injectionId, names);
|
|
39
|
+
}
|
|
22
40
|
const lines = [];
|
|
23
41
|
for (const entry of entries) {
|
|
24
42
|
const { deliveryName, seq, statement } = entry;
|
|
@@ -36,8 +54,15 @@ export function composeLoopDeliveryIndex(entries) {
|
|
|
36
54
|
else {
|
|
37
55
|
nowTarget = `(injection: ${statement})`;
|
|
38
56
|
}
|
|
57
|
+
const shared = entry.injectionId ? sharedByInjection.get(entry.injectionId) : undefined;
|
|
58
|
+
const sharedTag = shared
|
|
59
|
+
? ` -- SHARED INJECTION with ${shared
|
|
60
|
+
.filter((n) => n !== deliveryName)
|
|
61
|
+
.map((n) => `"${n}"`)
|
|
62
|
+
.join(', ')}`
|
|
63
|
+
: '';
|
|
39
64
|
lines.push(`- ${deliveryName} -> injection #${seq} -> ${nowTarget} ` +
|
|
40
|
-
`-> pull: telora_reality_tree_injection_context(seq=${seq})`);
|
|
65
|
+
`-> pull: telora_reality_tree_injection_context(seq=${seq})${sharedTag}`);
|
|
41
66
|
}
|
|
42
67
|
if (lines.length === 0)
|
|
43
68
|
return '';
|
|
@@ -50,8 +75,11 @@ export function composeLoopDeliveryIndex(entries) {
|
|
|
50
75
|
'(telora_reality_tree_injection_context with the injection seq) and embed the',
|
|
51
76
|
"returned Now->Target in the worker's task prompt so the worker begins holding",
|
|
52
77
|
"its delivery's start->end context.",
|
|
53
|
-
'',
|
|
54
78
|
];
|
|
79
|
+
if (sharedByInjection.size > 0) {
|
|
80
|
+
header.push('', 'SHARED INJECTIONS: the deliveries flagged below materialize the SAME injection.', 'That splits the evidence for one desired effect -- verify partitions commits by the', 'Telora-Delivery trailer, so whichever delivery the coder did not use holds acceptance', 'criteria with no trailered commits to evidence and the gate re-queues it. Resolve the', 'ANCHOR (retire or unlink one side, or record the split as deliberate); do NOT write the', 'work twice, and do NOT abandon it. The operator-facing focus surface lists every', 'injection carrying more than one live delivery if you need the full picture.');
|
|
81
|
+
}
|
|
82
|
+
header.push('');
|
|
55
83
|
return header.concat(lines).join('\n');
|
|
56
84
|
}
|
|
57
85
|
//# sourceMappingURL=loop-delivery-index-compose.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-delivery-index-compose.js","sourceRoot":"","sources":["../../../src/resolvers/compose/loop-delivery-index-compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,0DAA0D;AAC1D,MAAM,CAAC,MAAM,GAAG,GAAG,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"loop-delivery-index-compose.js","sourceRoot":"","sources":["../../../src/resolvers/compose/loop-delivery-index-compose.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AssemblyContext } from './assembly-engine.js';
|
|
2
|
+
import type { FocusCriteriaStanding } from '../queries/focus-criteria-standing.js';
|
|
3
|
+
/** Section heading, shared by the rendered standing and the failure line. */
|
|
4
|
+
export declare const CRITERIA_STANDING_HEADING = "## Focus acceptance criteria standing (what did THIS focus declare it was for?)";
|
|
5
|
+
/** Render the standing. Never returns an empty string. */
|
|
6
|
+
export declare function renderFocusCriteriaStanding(standing: FocusCriteriaStanding): string;
|
|
7
|
+
/**
|
|
8
|
+
* Render the EXPLICIT failure line. Rendered instead of nothing on every read
|
|
9
|
+
* failure, because an absent section reads as "there is nothing left to
|
|
10
|
+
* address" -- a floor nobody measured.
|
|
11
|
+
*/
|
|
12
|
+
export declare function renderFocusCriteriaStandingFailure(reason: string): string;
|
|
13
|
+
/** Injected seam; the default is the real product-api read. */
|
|
14
|
+
export interface FocusCriteriaStandingResolverDeps {
|
|
15
|
+
getStanding: (focusId: string) => Promise<FocusCriteriaStanding>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Resolve the section. Exported (with an injectable deps seam) so tests drive
|
|
19
|
+
* it without registering a module mock.
|
|
20
|
+
*/
|
|
21
|
+
export declare function resolveFocusCriteriaStanding(context: AssemblyContext, deps?: FocusCriteriaStandingResolverDeps): Promise<string>;
|
|
22
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
23
|
+
export declare function registerFocusCriteriaStandingResolver(): void;
|
|
24
|
+
//# sourceMappingURL=focus-criteria-standing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-criteria-standing.d.ts","sourceRoot":"","sources":["../../src/resolvers/focus-criteria-standing.ts"],"names":[],"mappings":"AA8CA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAEV,qBAAqB,EACtB,MAAM,uCAAuC,CAAC;AAK/C,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,oFAC6C,CAAC;AAwFpF,0DAA0D;AAC1D,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,CAmBnF;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAazE;AAID,+DAA+D;AAC/D,MAAM,WAAW,iCAAiC;IAChD,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAClE;AA+CD;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,eAAe,EACxB,IAAI,GAAE,iCAA+C,GACpD,OAAO,CAAC,MAAM,CAAC,CAkBjB;AAED,oGAAoG;AACpG,wBAAgB,qCAAqC,IAAI,IAAI,CAG5D"}
|