@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.
Files changed (41) hide show
  1. package/build-info.json +5 -3
  2. package/dist/completion/delivery-advancement-guard.d.ts +52 -9
  3. package/dist/completion/delivery-advancement-guard.d.ts.map +1 -1
  4. package/dist/completion/delivery-advancement-guard.js +68 -14
  5. package/dist/completion/delivery-advancement-guard.js.map +1 -1
  6. package/dist/completion/event.d.ts +13 -0
  7. package/dist/completion/event.d.ts.map +1 -1
  8. package/dist/completion/event.js +42 -2
  9. package/dist/completion/event.js.map +1 -1
  10. package/dist/directive/directive-dispatch.d.ts +22 -2
  11. package/dist/directive/directive-dispatch.d.ts.map +1 -1
  12. package/dist/directive/directive-dispatch.js +32 -0
  13. package/dist/directive/directive-dispatch.js.map +1 -1
  14. package/dist/directive-executor.d.ts +1 -1
  15. package/dist/directive-executor.d.ts.map +1 -1
  16. package/dist/directive-executor.js +11 -6
  17. package/dist/directive-executor.js.map +1 -1
  18. package/dist/focus-executor.d.ts.map +1 -1
  19. package/dist/focus-executor.js +9 -3
  20. package/dist/focus-executor.js.map +1 -1
  21. package/dist/focus-respawn-guard.d.ts.map +1 -1
  22. package/dist/focus-respawn-guard.js +13 -1
  23. package/dist/focus-respawn-guard.js.map +1 -1
  24. package/dist/resolvers/compose/focus-last-review-report-compose.d.ts +29 -0
  25. package/dist/resolvers/compose/focus-last-review-report-compose.d.ts.map +1 -0
  26. package/dist/resolvers/compose/focus-last-review-report-compose.js +44 -0
  27. package/dist/resolvers/compose/focus-last-review-report-compose.js.map +1 -0
  28. package/dist/resolvers/compose/loop-delivery-index-compose.d.ts +34 -0
  29. package/dist/resolvers/compose/loop-delivery-index-compose.d.ts.map +1 -0
  30. package/dist/resolvers/compose/loop-delivery-index-compose.js +57 -0
  31. package/dist/resolvers/compose/loop-delivery-index-compose.js.map +1 -0
  32. package/dist/resolvers/focus-last-review-report.d.ts +16 -0
  33. package/dist/resolvers/focus-last-review-report.d.ts.map +1 -1
  34. package/dist/resolvers/focus-last-review-report.js +7 -23
  35. package/dist/resolvers/focus-last-review-report.js.map +1 -1
  36. package/dist/resolvers/loop-delivery-index.d.ts.map +1 -1
  37. package/dist/resolvers/loop-delivery-index.js +9 -32
  38. package/dist/resolvers/loop-delivery-index.js.map +1 -1
  39. package/dist/types/workflow.d.ts +14 -2
  40. package/dist/types/workflow.d.ts.map +1 -1
  41. 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":"AAkBA,oGAAoG;AACpG,wBAAgB,qCAAqC,IAAI,IAAI,CAgC5D"}
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;AAEtE;;;;;;;;;;;GAWG;AACH,MAAM,qCAAqC,GAAG,MAAM,CAAC;AAErD,oGAAoG;AACpG,MAAM,UAAU,qCAAqC;IACnD,sBAAsB,CAAC,0BAA0B,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;QACrG,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,6BAA6B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,sDAAuD,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7F,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAE9C,MAAM,OAAO,GAAG,uBAAuB,CAAC;QACxC,MAAM,WAAW,GAAG,gBAAgB,MAAM,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;QAClE,MAAM,aAAa,GAAG,kBAAkB,MAAM,CAAC,WAAW,EAAE,CAAC;QAC7D,MAAM,WAAW,GAAG,GAAG,OAAO,OAAO,WAAW,KAAK,aAAa,MAAM,CAAC;QAEzE,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,WAAW,wBAAwB,CAAC;QAChD,CAAC;QAED,MAAM,SAAS,GAAG,qCAAqC,GAAG,WAAW,CAAC,MAAM,CAAC;QAC7E,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,wEAAwE;YACxE,oEAAoE;YACpE,OAAO,WAAW,CAAC,OAAO,EAAE,CAAC;QAC/B,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS;YACrC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,mBAAmB;YACnD,CAAC,CAAC,OAAO,CAAC;QACZ,OAAO,GAAG,WAAW,GAAG,IAAI,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,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":"AAIA;;;;;;;;;;;;;;GAcG;AACH,oGAAoG;AACpG,wBAAgB,iCAAiC,IAAI,IAAI,CAqDxD"}
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 lines = [];
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
- const seq = bundle.injection.seq;
34
- const nowTargets = bundle.nowTargets ?? [];
35
- let nowTarget;
36
- if (nowTargets.length > 0) {
37
- const first = nowTargets[0];
38
- const target = first.target && first.target.trim().length > 0
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
- if (lines.length === 0)
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;AAEpF;;;;;;;;;;;;;;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,KAAK,GAAa,EAAE,CAAC;YAC3B,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,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;gBACjC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;gBAE3C,IAAI,SAAiB,CAAC;gBACtB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;wBAC3D,CAAC,CAAC,KAAK,CAAC,MAAM;wBACd,CAAC,CAAC,sBAAsB,CAAC;oBAC3B,SAAS,GAAG,QAAQ,KAAK,CAAC,GAAG,eAAe,MAAM,EAAE,CAAC;oBACrD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;wBAAE,SAAS,IAAI,MAAM,UAAU,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC;gBAC9E,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,eAAe,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC;gBAC3D,CAAC;gBAED,KAAK,CAAC,IAAI,CACR,KAAK,YAAY,kBAAkB,GAAG,OAAO,SAAS,GAAG;oBACzD,sDAAsD,GAAG,GAAG,CAC7D,CAAC;YACJ,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAElC,MAAM,MAAM,GAAG;gBACb,uBAAuB;gBACvB,EAAE;gBACF,gFAAgF;gBAChF,gFAAgF;gBAChF,uEAAuE;gBACvE,8EAA8E;gBAC9E,+EAA+E;gBAC/E,oCAAoC;gBACpC,EAAE;aACH,CAAC;YACF,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,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"}
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"}
@@ -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
- /** Execution mode for a stage directive. */
15
- export type DirectiveExecutionMode = 'inject' | 'spawn';
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,4CAA4C;AAC5C,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAExD,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"}
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.37",
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.2",
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",