@telora/daemon 0.22.137 → 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 +13 -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/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-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/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 +2 -2
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The canonical arrival verdict, as a prompt consumer reads it.
|
|
3
|
+
*
|
|
4
|
+
* `reality_tree_dump` computes arrival server-side (product-api
|
|
5
|
+
* handlers/reality-tree/tree-crud.ts) by putting every retired injection's
|
|
6
|
+
* anchored deliveries to the same predicate the verify path uses to refuse a
|
|
7
|
+
* new unearned promotion. This module does NOT recompute any of that -- it
|
|
8
|
+
* VALIDATES the returned block and RENDERS it. A second implementation would
|
|
9
|
+
* give the dashboard and the audit pass two answers to one question.
|
|
10
|
+
*
|
|
11
|
+
* Why it must be rendered at all: a retired injection is absent from the
|
|
12
|
+
* active-node listing the snapshot renders, so a tree whose UDEs were all
|
|
13
|
+
* promoted by an unearned retirement reads as an empty, finished tree. The
|
|
14
|
+
* hold is visible ONLY here.
|
|
15
|
+
*
|
|
16
|
+
* Every read resolves to one of two states -- a verdict, or UNREADABLE. There
|
|
17
|
+
* is no third state in which the absence of a verdict renders as nothing: a
|
|
18
|
+
* verdict nobody could read is not an earned one, and a section that silently
|
|
19
|
+
* disappears is the failure this module exists to prevent.
|
|
20
|
+
*/
|
|
21
|
+
/** One delivery holding a retirement back, named rather than counted. */
|
|
22
|
+
export interface ArrivalBlockingDelivery {
|
|
23
|
+
deliveryId: string;
|
|
24
|
+
deliveryName: string;
|
|
25
|
+
executionStatus: string | null;
|
|
26
|
+
}
|
|
27
|
+
/** One retired injection whose promotion the work under it has not earned. */
|
|
28
|
+
export interface ArrivalUnearnedRetirement {
|
|
29
|
+
nodeId: string;
|
|
30
|
+
seq: number;
|
|
31
|
+
blockingDeliveries: ArrivalBlockingDelivery[];
|
|
32
|
+
}
|
|
33
|
+
/** The `arrival` block of a `reality_tree_dump` response. */
|
|
34
|
+
export interface TreeArrivalVerdict {
|
|
35
|
+
allEarned: boolean;
|
|
36
|
+
examined: number;
|
|
37
|
+
unearnedRetirements: ArrivalUnearnedRetirement[];
|
|
38
|
+
}
|
|
39
|
+
/** The shape of a dump response this module reads (it reads only `arrival`). */
|
|
40
|
+
export interface RealityTreeDumpResponse {
|
|
41
|
+
arrival?: unknown;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The outcome of one tree's arrival read. `unreadable` carries WHY, because a
|
|
45
|
+
* bare "unknown" tells the assessor only that the line is not green.
|
|
46
|
+
*/
|
|
47
|
+
export type ArrivalRead = {
|
|
48
|
+
kind: 'verdict';
|
|
49
|
+
verdict: TreeArrivalVerdict;
|
|
50
|
+
} | {
|
|
51
|
+
kind: 'unreadable';
|
|
52
|
+
reason: string;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Validate a dump response's `arrival` block. A response predating the block,
|
|
56
|
+
* or carrying a shape this reader cannot trust, is UNREADABLE -- never an
|
|
57
|
+
* implied "earned". Fails closed on every malformed field.
|
|
58
|
+
*/
|
|
59
|
+
export declare function parseArrivalBlock(payload: unknown): ArrivalRead;
|
|
60
|
+
/**
|
|
61
|
+
* Render one tree's arrival read for the assessor. Always returns a non-empty
|
|
62
|
+
* section: there is no input for which arrival silently disappears.
|
|
63
|
+
*/
|
|
64
|
+
export declare function renderArrivalSection(read: ArrivalRead): string;
|
|
65
|
+
/**
|
|
66
|
+
* The whole-snapshot failure state. The snapshot used to render '' when its
|
|
67
|
+
* reads threw, which is indistinguishable to the assessor from a focus with no
|
|
68
|
+
* tree at all -- and therefore from an arrived one.
|
|
69
|
+
*/
|
|
70
|
+
export declare function renderSnapshotReadFailure(reason: string): string;
|
|
71
|
+
//# sourceMappingURL=reality-tree-arrival.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reality-tree-arrival.d.ts","sourceRoot":"","sources":["../../../src/resolvers/shared/reality-tree-arrival.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,yEAAyE;AACzE,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,8EAA8E;AAC9E,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB,EAAE,uBAAuB,EAAE,CAAC;CAC/C;AAED,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,yBAAyB,EAAE,CAAC;CAClD;AAED,gFAAgF;AAChF,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAiC3C;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAsB/D;AAkDD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAM9D;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQhE"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon/src/resolvers/shared/reality-tree-arrival.test.ts
|
|
3
|
+
// PINNED-BY-END
|
|
4
|
+
function unreadable(reason) {
|
|
5
|
+
return { kind: 'unreadable', reason };
|
|
6
|
+
}
|
|
7
|
+
function isRecord(value) {
|
|
8
|
+
return typeof value === 'object' && value !== null;
|
|
9
|
+
}
|
|
10
|
+
function parseBlockingDelivery(value) {
|
|
11
|
+
if (!isRecord(value))
|
|
12
|
+
return null;
|
|
13
|
+
const { deliveryId, deliveryName, executionStatus } = value;
|
|
14
|
+
if (typeof deliveryId !== 'string' || typeof deliveryName !== 'string')
|
|
15
|
+
return null;
|
|
16
|
+
const status = typeof executionStatus === 'string' || executionStatus === null ? executionStatus : null;
|
|
17
|
+
return { deliveryId, deliveryName, executionStatus: status };
|
|
18
|
+
}
|
|
19
|
+
function parseUnearnedRetirement(value) {
|
|
20
|
+
if (!isRecord(value))
|
|
21
|
+
return null;
|
|
22
|
+
const { nodeId, seq, blockingDeliveries } = value;
|
|
23
|
+
if (typeof nodeId !== 'string' || typeof seq !== 'number')
|
|
24
|
+
return null;
|
|
25
|
+
if (!Array.isArray(blockingDeliveries))
|
|
26
|
+
return null;
|
|
27
|
+
const parsed = [];
|
|
28
|
+
for (const entry of blockingDeliveries) {
|
|
29
|
+
const delivery = parseBlockingDelivery(entry);
|
|
30
|
+
if (delivery === null)
|
|
31
|
+
return null;
|
|
32
|
+
parsed.push(delivery);
|
|
33
|
+
}
|
|
34
|
+
return { nodeId, seq, blockingDeliveries: parsed };
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Validate a dump response's `arrival` block. A response predating the block,
|
|
38
|
+
* or carrying a shape this reader cannot trust, is UNREADABLE -- never an
|
|
39
|
+
* implied "earned". Fails closed on every malformed field.
|
|
40
|
+
*/
|
|
41
|
+
export function parseArrivalBlock(payload) {
|
|
42
|
+
if (!isRecord(payload))
|
|
43
|
+
return unreadable('the dump response was not an object');
|
|
44
|
+
const raw = payload.arrival;
|
|
45
|
+
if (raw === undefined || raw === null) {
|
|
46
|
+
return unreadable('the dump carried no arrival block (an older deployment, or a partial response)');
|
|
47
|
+
}
|
|
48
|
+
if (!isRecord(raw))
|
|
49
|
+
return unreadable('the arrival block was not an object');
|
|
50
|
+
if (typeof raw.allEarned !== 'boolean')
|
|
51
|
+
return unreadable('the arrival block carried no allEarned verdict');
|
|
52
|
+
if (typeof raw.examined !== 'number')
|
|
53
|
+
return unreadable('the arrival block carried no examined count');
|
|
54
|
+
if (!Array.isArray(raw.unearnedRetirements)) {
|
|
55
|
+
return unreadable('the arrival block carried no unearnedRetirements list');
|
|
56
|
+
}
|
|
57
|
+
const findings = [];
|
|
58
|
+
for (const entry of raw.unearnedRetirements) {
|
|
59
|
+
const finding = parseUnearnedRetirement(entry);
|
|
60
|
+
if (finding === null)
|
|
61
|
+
return unreadable('the arrival block carried a malformed unearned retirement');
|
|
62
|
+
findings.push(finding);
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
kind: 'verdict',
|
|
66
|
+
verdict: { allEarned: raw.allEarned, examined: raw.examined, unearnedRetirements: findings },
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
function renderBlockingDelivery(d) {
|
|
70
|
+
return `${d.deliveryName} (${d.executionStatus ?? 'no execution status'})`;
|
|
71
|
+
}
|
|
72
|
+
function renderNotArrived(verdict) {
|
|
73
|
+
const lines = [];
|
|
74
|
+
lines.push('#### Arrival: NOT ARRIVED');
|
|
75
|
+
lines.push('');
|
|
76
|
+
lines.push(`${verdict.unearnedRetirements.length} retired injection(s) on this tree were promoted ` +
|
|
77
|
+
'ahead of the work anchored under them. A retired injection is ABSENT from the active ' +
|
|
78
|
+
'node listing above, so this hold is visible only here: do not read an empty UDE or ' +
|
|
79
|
+
'injection list as a finished tree.');
|
|
80
|
+
for (const finding of verdict.unearnedRetirements) {
|
|
81
|
+
const blockers = finding.blockingDeliveries.length > 0
|
|
82
|
+
? finding.blockingDeliveries.map(renderBlockingDelivery).join(', ')
|
|
83
|
+
: 'no delivery named (the verdict listed none)';
|
|
84
|
+
lines.push(`- injection #${finding.seq} -- held by: ${blockers}`);
|
|
85
|
+
}
|
|
86
|
+
return lines.join('\n');
|
|
87
|
+
}
|
|
88
|
+
function renderArrived(verdict) {
|
|
89
|
+
if (verdict.examined === 0) {
|
|
90
|
+
return ('#### Arrival: no retired injection to examine (0 examined)\n\n' +
|
|
91
|
+
'_"All earned" over an empty retired set is a true statement about nothing._ It is ' +
|
|
92
|
+
'not evidence that this tree arrived.');
|
|
93
|
+
}
|
|
94
|
+
return (`#### Arrival: every retired promotion earned (${verdict.examined} examined)\n\n` +
|
|
95
|
+
'No retired injection on this tree was promoted ahead of the delivery anchored under ' +
|
|
96
|
+
'it, per the canonical server-side verdict.');
|
|
97
|
+
}
|
|
98
|
+
function renderUnreadable(reason) {
|
|
99
|
+
return ('#### Arrival: UNKNOWN -- READ FAILED\n\n' +
|
|
100
|
+
`_The canonical arrival verdict could not be read for this tree: ${reason}._ ` +
|
|
101
|
+
'Treat this tree as NOT ARRIVED. An unread verdict is not an earned one, and nobody ' +
|
|
102
|
+
'looked must never read the same as nothing there -- do not conclude this focus is ' +
|
|
103
|
+
'finished on this tree\'s evidence.');
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Render one tree's arrival read for the assessor. Always returns a non-empty
|
|
107
|
+
* section: there is no input for which arrival silently disappears.
|
|
108
|
+
*/
|
|
109
|
+
export function renderArrivalSection(read) {
|
|
110
|
+
if (read.kind === 'unreadable')
|
|
111
|
+
return renderUnreadable(read.reason);
|
|
112
|
+
if (!read.verdict.allEarned || read.verdict.unearnedRetirements.length > 0) {
|
|
113
|
+
return renderNotArrived(read.verdict);
|
|
114
|
+
}
|
|
115
|
+
return renderArrived(read.verdict);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* The whole-snapshot failure state. The snapshot used to render '' when its
|
|
119
|
+
* reads threw, which is indistinguishable to the assessor from a focus with no
|
|
120
|
+
* tree at all -- and therefore from an arrived one.
|
|
121
|
+
*/
|
|
122
|
+
export function renderSnapshotReadFailure(reason) {
|
|
123
|
+
return ('## Reality Tree Snapshot\n\n' +
|
|
124
|
+
`_READ FAILED -- the focus's reality tree(s) could not be read: ${reason}._ ` +
|
|
125
|
+
'This is not an empty tree and not an arrived one: the current graph and its arrival ' +
|
|
126
|
+
'verdict are both UNKNOWN for this pass. Do not conclude anything about arrival, and ' +
|
|
127
|
+
'do not treat unseen structure as absent structure.');
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=reality-tree-arrival.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reality-tree-arrival.js","sourceRoot":"","sources":["../../../src/resolvers/shared/reality-tree-arrival.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by:
|
|
2
|
+
// Pinned by: 197 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/testing/fixtures/index.ts
|
|
3
3
|
// PINNED-BY-END
|
|
4
4
|
/**
|
|
5
5
|
* Build an ActiveFocusRow (a getActiveFocuses row): an active, armed focus with
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telora/daemon",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.144",
|
|
4
4
|
"description": "Agent orchestration daemon for Telora - spawns and manages Claude Code instances",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"//testRunner": "Uses Node.js built-in test runner (node:test) via tsx for TypeScript support. The root package uses Vitest; this is a deliberate choice for the daemon package to avoid framework dependencies. Test files live beside the modules they exercise (owner-directory layout); the runner discovers them recursively.",
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@telora/daemon-core": "^0.2.98",
|
|
41
|
-
"@telora/mcp-products": "^0.22.
|
|
41
|
+
"@telora/mcp-products": "^0.22.155",
|
|
42
42
|
"commander": "^14.0.3",
|
|
43
43
|
"yaml": "^2.4.0",
|
|
44
44
|
"zod": "^4.3.6"
|