@telora/daemon 0.19.37 → 0.19.42
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 +5 -3
- package/dist/completion/delivery-advancement-guard.d.ts +52 -9
- package/dist/completion/delivery-advancement-guard.d.ts.map +1 -1
- package/dist/completion/delivery-advancement-guard.js +68 -14
- package/dist/completion/delivery-advancement-guard.js.map +1 -1
- package/dist/completion/event.d.ts +13 -0
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +42 -2
- package/dist/completion/event.js.map +1 -1
- package/dist/directive/directive-dispatch.d.ts +22 -2
- package/dist/directive/directive-dispatch.d.ts.map +1 -1
- package/dist/directive/directive-dispatch.js +32 -0
- package/dist/directive/directive-dispatch.js.map +1 -1
- package/dist/directive-executor.d.ts +1 -1
- package/dist/directive-executor.d.ts.map +1 -1
- package/dist/directive-executor.js +11 -6
- package/dist/directive-executor.js.map +1 -1
- package/dist/focus-executor.d.ts.map +1 -1
- package/dist/focus-executor.js +9 -3
- package/dist/focus-executor.js.map +1 -1
- package/dist/focus-respawn-guard.d.ts.map +1 -1
- package/dist/focus-respawn-guard.js +13 -1
- package/dist/focus-respawn-guard.js.map +1 -1
- package/dist/resolvers/compose/focus-last-review-report-compose.d.ts +29 -0
- package/dist/resolvers/compose/focus-last-review-report-compose.d.ts.map +1 -0
- package/dist/resolvers/compose/focus-last-review-report-compose.js +44 -0
- package/dist/resolvers/compose/focus-last-review-report-compose.js.map +1 -0
- package/dist/resolvers/compose/loop-delivery-index-compose.d.ts +34 -0
- package/dist/resolvers/compose/loop-delivery-index-compose.d.ts.map +1 -0
- package/dist/resolvers/compose/loop-delivery-index-compose.js +57 -0
- package/dist/resolvers/compose/loop-delivery-index-compose.js.map +1 -0
- package/dist/resolvers/focus-last-review-report.d.ts +16 -0
- package/dist/resolvers/focus-last-review-report.d.ts.map +1 -1
- package/dist/resolvers/focus-last-review-report.js +7 -23
- package/dist/resolvers/focus-last-review-report.js.map +1 -1
- package/dist/resolvers/loop-delivery-index.d.ts.map +1 -1
- package/dist/resolvers/loop-delivery-index.js +9 -32
- package/dist/resolvers/loop-delivery-index.js.map +1 -1
- package/dist/types/workflow.d.ts +14 -2
- package/dist/types/workflow.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GENERATED FILE -- DO NOT EDIT.
|
|
3
|
+
*
|
|
4
|
+
* Deno edge-function copy of src/lib/context-assembly/resolvers/loop-delivery-index-compose.ts, produced by
|
|
5
|
+
* `npm run gen:shared-mirrors`. The canonical source is the ONLY hand-edited
|
|
6
|
+
* copy of this algorithm; edit it there and regenerate. The drift gate
|
|
7
|
+
* (`npm run lint:shared-mirrors`) fails CI when this file differs from what
|
|
8
|
+
* generation would produce, so the same algorithm runs in both runtimes.
|
|
9
|
+
*
|
|
10
|
+
* @module resolvers/compose/loop-delivery-index-compose
|
|
11
|
+
*/
|
|
12
|
+
/** The assembly source-reference this module composes. */
|
|
13
|
+
export const REF = 'loop.delivery_index';
|
|
14
|
+
/**
|
|
15
|
+
* Render the lead's per-delivery INDEX: one flat line per in-focus delivery
|
|
16
|
+
* with a linked injection -- delivery name, injection seq, its first Now->Target
|
|
17
|
+
* (with a "+N more" tail), and the pull handle
|
|
18
|
+
* telora_reality_tree_injection_context(seq=<seq>) that returns the full
|
|
19
|
+
* differential on demand. Returns '' when there are no entries.
|
|
20
|
+
*/
|
|
21
|
+
export function composeLoopDeliveryIndex(entries) {
|
|
22
|
+
const lines = [];
|
|
23
|
+
for (const entry of entries) {
|
|
24
|
+
const { deliveryName, seq, statement } = entry;
|
|
25
|
+
const nowTargets = entry.nowTargets ?? [];
|
|
26
|
+
let nowTarget;
|
|
27
|
+
if (nowTargets.length > 0) {
|
|
28
|
+
const first = nowTargets[0];
|
|
29
|
+
const target = first.target && first.target.trim().length > 0
|
|
30
|
+
? first.target
|
|
31
|
+
: '(no FRT overlay yet)';
|
|
32
|
+
nowTarget = `Now: ${first.now} -> Target: ${target}`;
|
|
33
|
+
if (nowTargets.length > 1)
|
|
34
|
+
nowTarget += ` (+${nowTargets.length - 1} more)`;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
nowTarget = `(injection: ${statement})`;
|
|
38
|
+
}
|
|
39
|
+
lines.push(`- ${deliveryName} -> injection #${seq} -> ${nowTarget} ` +
|
|
40
|
+
`-> pull: telora_reality_tree_injection_context(seq=${seq})`);
|
|
41
|
+
}
|
|
42
|
+
if (lines.length === 0)
|
|
43
|
+
return '';
|
|
44
|
+
const header = [
|
|
45
|
+
'## Per-Delivery Index',
|
|
46
|
+
'',
|
|
47
|
+
'One line per delivery: the injection it materializes, its Now->Target, and the',
|
|
48
|
+
'pull handle that returns the full differential on demand. This is your handoff',
|
|
49
|
+
'surface: when you spawn a worker for a delivery, call its pull handle',
|
|
50
|
+
'(telora_reality_tree_injection_context with the injection seq) and embed the',
|
|
51
|
+
"returned Now->Target in the worker's task prompt so the worker begins holding",
|
|
52
|
+
"its delivery's start->end context.",
|
|
53
|
+
'',
|
|
54
|
+
];
|
|
55
|
+
return header.concat(lines).join('\n');
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=loop-delivery-index-compose.js.map
|
|
@@ -0,0 +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;AAgBzC;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAiC;IACxE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;QAE1C,IAAI,SAAiB,CAAC;QACtB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;gBAC3D,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,sBAAsB,CAAC;YAC3B,SAAS,GAAG,QAAQ,KAAK,CAAC,GAAG,eAAe,MAAM,EAAE,CAAC;YACrD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS,IAAI,MAAM,UAAU,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC;QAC9E,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,eAAe,SAAS,GAAG,CAAC;QAC1C,CAAC;QAED,KAAK,CAAC,IAAI,CACR,KAAK,YAAY,kBAAkB,GAAG,OAAO,SAAS,GAAG;YACzD,sDAAsD,GAAG,GAAG,CAC7D,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,MAAM,MAAM,GAAG;QACb,uBAAuB;QACvB,EAAE;QACF,gFAAgF;QAChF,gFAAgF;QAChF,uEAAuE;QACvE,8EAA8E;QAC9E,+EAA+E;QAC/E,oCAAoC;QACpC,EAAE;KACH,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* focus.last_review_report
|
|
3
|
+
*
|
|
4
|
+
* Read the most recent completed review report for the focus and render it
|
|
5
|
+
* as a markdown section. Returns an empty string when no completed report
|
|
6
|
+
* exists yet.
|
|
7
|
+
*
|
|
8
|
+
* The dev-stage assembly directive (see migration
|
|
9
|
+
* 20260512_*_add_last_review_report_to_dev_stage_assembly.sql) inserts this
|
|
10
|
+
* resolver immediately after focus.context so remediation work is informed
|
|
11
|
+
* by the reviewer's narrative, not just by individual issue descriptions.
|
|
12
|
+
*
|
|
13
|
+
* THIN FETCH HALF: fetches the latest completed review, then delegates
|
|
14
|
+
* rendering to the shared, drift-mirrored composeFocusLastReviewReport so the
|
|
15
|
+
* inspector's preview renders identically.
|
|
16
|
+
*/
|
|
1
17
|
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
2
18
|
export declare function registerFocusLastReviewReportResolver(): void;
|
|
3
19
|
//# sourceMappingURL=focus-last-review-report.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-last-review-report.d.ts","sourceRoot":"","sources":["../../src/resolvers/focus-last-review-report.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"focus-last-review-report.d.ts","sourceRoot":"","sources":["../../src/resolvers/focus-last-review-report.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;GAeG;AACH,oGAAoG;AACpG,wBAAgB,qCAAqC,IAAI,IAAI,CAU5D"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { registerSourceResolver } from '../assembly-engine.js';
|
|
2
2
|
import { getLatestCompletedFocusReview } from '../queries/focuses.js';
|
|
3
|
+
import { composeFocusLastReviewReport } from './compose/focus-last-review-report-compose.js';
|
|
3
4
|
/**
|
|
4
5
|
* focus.last_review_report
|
|
5
6
|
*
|
|
@@ -11,39 +12,22 @@ import { getLatestCompletedFocusReview } from '../queries/focuses.js';
|
|
|
11
12
|
* 20260512_*_add_last_review_report_to_dev_stage_assembly.sql) inserts this
|
|
12
13
|
* resolver immediately after focus.context so remediation work is informed
|
|
13
14
|
* by the reviewer's narrative, not just by individual issue descriptions.
|
|
15
|
+
*
|
|
16
|
+
* THIN FETCH HALF: fetches the latest completed review, then delegates
|
|
17
|
+
* rendering to the shared, drift-mirrored composeFocusLastReviewReport so the
|
|
18
|
+
* inspector's preview renders identically.
|
|
14
19
|
*/
|
|
15
|
-
const FOCUS_LAST_REVIEW_REPORT_BUDGET_CHARS = 10_000;
|
|
16
20
|
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
17
21
|
export function registerFocusLastReviewReportResolver() {
|
|
18
22
|
registerSourceResolver('focus.last_review_report', async (context) => {
|
|
19
|
-
let review;
|
|
20
23
|
try {
|
|
21
|
-
review = await getLatestCompletedFocusReview(context.focusId);
|
|
24
|
+
const review = await getLatestCompletedFocusReview(context.focusId);
|
|
25
|
+
return composeFocusLastReviewReport(review);
|
|
22
26
|
}
|
|
23
27
|
catch (err) {
|
|
24
28
|
console.warn(`[assembly-engine] focus.last_review_report failed: ${err.message}`);
|
|
25
29
|
return '';
|
|
26
30
|
}
|
|
27
|
-
if (!review || !review.completedAt)
|
|
28
|
-
return '';
|
|
29
|
-
const heading = '## Last Review Report';
|
|
30
|
-
const outcomeLine = `**Outcome:** ${review.outcome ?? 'unknown'}`;
|
|
31
|
-
const completedLine = `**Completed:** ${review.completedAt}`;
|
|
32
|
-
const fixedPrefix = `${heading}\n\n${outcomeLine}\n${completedLine}\n\n`;
|
|
33
|
-
const summary = (review.summary ?? '').trim();
|
|
34
|
-
if (!summary) {
|
|
35
|
-
return `${fixedPrefix}_No summary provided._`;
|
|
36
|
-
}
|
|
37
|
-
const remaining = FOCUS_LAST_REVIEW_REPORT_BUDGET_CHARS - fixedPrefix.length;
|
|
38
|
-
if (remaining <= 0) {
|
|
39
|
-
// Prefix alone exceeds the budget (unlikely with a fixed-size heading +
|
|
40
|
-
// outcome + ISO timestamp). Drop the summary to stay under the cap.
|
|
41
|
-
return fixedPrefix.trimEnd();
|
|
42
|
-
}
|
|
43
|
-
const body = summary.length > remaining
|
|
44
|
-
? `${summary.slice(0, remaining)}\n\n_[truncated]_`
|
|
45
|
-
: summary;
|
|
46
|
-
return `${fixedPrefix}${body}`;
|
|
47
31
|
});
|
|
48
32
|
}
|
|
49
33
|
//# sourceMappingURL=focus-last-review-report.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-last-review-report.js","sourceRoot":"","sources":["../../src/resolvers/focus-last-review-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"focus-last-review-report.js","sourceRoot":"","sources":["../../src/resolvers/focus-last-review-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAE7F;;;;;;;;;;;;;;;GAeG;AACH,oGAAoG;AACpG,MAAM,UAAU,qCAAqC;IACnD,sBAAsB,CAAC,0BAA0B,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;QACrG,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACpE,OAAO,4BAA4B,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,sDAAuD,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7F,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-delivery-index.d.ts","sourceRoot":"","sources":["../../src/resolvers/loop-delivery-index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loop-delivery-index.d.ts","sourceRoot":"","sources":["../../src/resolvers/loop-delivery-index.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;GAcG;AACH,oGAAoG;AACpG,wBAAgB,iCAAiC,IAAI,IAAI,CA2BxD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { registerSourceResolver } from '../assembly-engine.js';
|
|
2
2
|
import { getDeliveryInjectionPairs, fetchInjectionBundles } from './shared/loop.js';
|
|
3
|
+
import { composeLoopDeliveryIndex } from './compose/loop-delivery-index-compose.js';
|
|
3
4
|
/**
|
|
4
5
|
* loop.delivery_index
|
|
5
6
|
*
|
|
@@ -25,43 +26,19 @@ export function registerLoopDeliveryIndexResolver() {
|
|
|
25
26
|
const bundles = await fetchInjectionBundles(pairs.map((p) => p.injectionId));
|
|
26
27
|
if (bundles.size === 0)
|
|
27
28
|
return '';
|
|
28
|
-
const
|
|
29
|
+
const entries = [];
|
|
29
30
|
for (const { deliveryName, injectionId } of pairs) {
|
|
30
31
|
const bundle = bundles.get(injectionId);
|
|
31
32
|
if (!bundle)
|
|
32
33
|
continue;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
? first.target
|
|
40
|
-
: '(no FRT overlay yet)';
|
|
41
|
-
nowTarget = `Now: ${first.now} -> Target: ${target}`;
|
|
42
|
-
if (nowTargets.length > 1)
|
|
43
|
-
nowTarget += ` (+${nowTargets.length - 1} more)`;
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
nowTarget = `(injection: ${bundle.injection.statement})`;
|
|
47
|
-
}
|
|
48
|
-
lines.push(`- ${deliveryName} -> injection #${seq} -> ${nowTarget} ` +
|
|
49
|
-
`-> pull: telora_reality_tree_injection_context(seq=${seq})`);
|
|
34
|
+
entries.push({
|
|
35
|
+
deliveryName,
|
|
36
|
+
seq: bundle.injection.seq,
|
|
37
|
+
statement: bundle.injection.statement,
|
|
38
|
+
nowTargets: bundle.nowTargets,
|
|
39
|
+
});
|
|
50
40
|
}
|
|
51
|
-
|
|
52
|
-
return '';
|
|
53
|
-
const header = [
|
|
54
|
-
'## Per-Delivery Index',
|
|
55
|
-
'',
|
|
56
|
-
'One line per delivery: the injection it materializes, its Now->Target, and the',
|
|
57
|
-
'pull handle that returns the full differential on demand. This is your handoff',
|
|
58
|
-
'surface: when you spawn a worker for a delivery, call its pull handle',
|
|
59
|
-
'(telora_reality_tree_injection_context with the injection seq) and embed the',
|
|
60
|
-
"returned Now->Target in the worker's task prompt so the worker begins holding",
|
|
61
|
-
"its delivery's start->end context.",
|
|
62
|
-
'',
|
|
63
|
-
];
|
|
64
|
-
return header.concat(lines).join('\n');
|
|
41
|
+
return composeLoopDeliveryIndex(entries);
|
|
65
42
|
}
|
|
66
43
|
catch (err) {
|
|
67
44
|
console.warn(`[assembly] loop.delivery_index failed: ${err.message}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-delivery-index.js","sourceRoot":"","sources":["../../src/resolvers/loop-delivery-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"loop-delivery-index.js","sourceRoot":"","sources":["../../src/resolvers/loop-delivery-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAGpF;;;;;;;;;;;;;;GAcG;AACH,oGAAoG;AACpG,MAAM,UAAU,iCAAiC;IAC/C,sBAAsB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;QAChG,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;YACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAElC,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAC7E,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAElC,MAAM,OAAO,GAA6B,EAAE,CAAC;YAC7C,KAAK,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,KAAK,EAAE,CAAC;gBAClD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACxC,IAAI,CAAC,MAAM;oBAAE,SAAS;gBACtB,OAAO,CAAC,IAAI,CAAC;oBACX,YAAY;oBACZ,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG;oBACzB,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS;oBACrC,UAAU,EAAE,MAAM,CAAC,UAAU;iBAC9B,CAAC,CAAC;YACL,CAAC;YAED,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,0CAA2C,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACjF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/types/workflow.d.ts
CHANGED
|
@@ -11,8 +11,20 @@ export type { GuardEnforcement, TriggerEvent, TriggerActionType, WorkflowStage,
|
|
|
11
11
|
* The canonical definition lives in @telora/daemon-core/escalation-types.
|
|
12
12
|
*/
|
|
13
13
|
export type { EscalationReasonType } from '@telora/daemon-core';
|
|
14
|
-
/**
|
|
15
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Execution mode for a stage directive.
|
|
16
|
+
*
|
|
17
|
+
* - `inject` / `spawn` are the two ACTIONABLE modes (a live agent is retasked
|
|
18
|
+
* or a fresh team is spawned).
|
|
19
|
+
* - `none` is the explicit AGENTLESS declaration: "no agent runs at this stage."
|
|
20
|
+
* It is a POSITIVE typed marker, not the absence of a value -- it exists so a
|
|
21
|
+
* deliberately-agentless stage (e.g. the verify hold state) can be told apart
|
|
22
|
+
* from a stage whose directive is simply unset/misconfigured. The daemon
|
|
23
|
+
* treats `none` as a no-op with behavioral parity to a NULL agent_directive
|
|
24
|
+
* (silent entry: no spawn, no inject, on_enter triggers still fire). See
|
|
25
|
+
* `isAgentlessDirective` / `AGENTLESS_EXECUTION_MODE` in directive-dispatch.ts.
|
|
26
|
+
*/
|
|
27
|
+
export type DirectiveExecutionMode = 'inject' | 'spawn' | 'none';
|
|
16
28
|
/** Compaction recipe: guidance for /compact command. */
|
|
17
29
|
export interface CompactRecipe {
|
|
18
30
|
preserve: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/types/workflow.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B;;;GAGG;AACH,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAMhE
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/types/workflow.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B;;;GAGG;AACH,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAMhE;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjE,wDAAwD;AACxD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,sBAAsB,CAAC;IAClC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;CACxC;AAMD,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE7G;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telora/daemon",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.42",
|
|
4
4
|
"description": "Agent orchestration daemon for Telora - spawns and manages Claude Code instances",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"//testRunner": "Uses Node.js built-in test runner (node:test) via tsx for TypeScript support. The root package uses Vitest; this is a deliberate choice for the daemon package to avoid framework dependencies. See src/__tests__/ for test files.",
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@telora/daemon": "^0.19.
|
|
39
|
+
"@telora/daemon": "^0.19.38",
|
|
40
40
|
"@telora/daemon-core": "^0.2.57",
|
|
41
41
|
"@telora/mcp-products": "^0.22.94",
|
|
42
42
|
"commander": "^14.0.3",
|