@telora/daemon 0.17.31 → 0.17.36

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 (119) hide show
  1. package/build-info.json +4 -3
  2. package/dist/cli/connect.d.ts.map +1 -1
  3. package/dist/cli/connect.js +4 -0
  4. package/dist/cli/connect.js.map +1 -1
  5. package/dist/completion/event.d.ts.map +1 -1
  6. package/dist/completion/event.js +4 -10
  7. package/dist/completion/event.js.map +1 -1
  8. package/dist/completion/team-completion.js +5 -5
  9. package/dist/completion/team-completion.js.map +1 -1
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +70 -41
  12. package/dist/config.js.map +1 -1
  13. package/dist/daemon-process.d.ts.map +1 -1
  14. package/dist/daemon-process.js +8 -0
  15. package/dist/daemon-process.js.map +1 -1
  16. package/dist/delivery-lifecycle.js +8 -8
  17. package/dist/delivery-lifecycle.js.map +1 -1
  18. package/dist/directive-executor.js +2 -2
  19. package/dist/directive-executor.js.map +1 -1
  20. package/dist/focus-engine.d.ts.map +1 -1
  21. package/dist/focus-engine.js +8 -10
  22. package/dist/focus-engine.js.map +1 -1
  23. package/dist/focus-phase.js +6 -6
  24. package/dist/focus-phase.js.map +1 -1
  25. package/dist/focus-stage-lifecycle.js +5 -5
  26. package/dist/focus-stage-lifecycle.js.map +1 -1
  27. package/dist/listener-auto-advance.d.ts.map +1 -1
  28. package/dist/listener-auto-advance.js +10 -6
  29. package/dist/listener-auto-advance.js.map +1 -1
  30. package/dist/merge-back-loop.d.ts.map +1 -1
  31. package/dist/merge-back-loop.js +4 -10
  32. package/dist/merge-back-loop.js.map +1 -1
  33. package/dist/prd-controller.d.ts.map +1 -1
  34. package/dist/prd-controller.js +2 -1
  35. package/dist/prd-controller.js.map +1 -1
  36. package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
  37. package/dist/prompt-sections/execution-sections.js +3 -2
  38. package/dist/prompt-sections/execution-sections.js.map +1 -1
  39. package/dist/review-defect-detector.d.ts +4 -1
  40. package/dist/review-defect-detector.d.ts.map +1 -1
  41. package/dist/review-defect-detector.js +6 -8
  42. package/dist/review-defect-detector.js.map +1 -1
  43. package/dist/session-lifecycle.js +2 -2
  44. package/dist/session-lifecycle.js.map +1 -1
  45. package/dist/stage-classifier.d.ts.map +1 -1
  46. package/dist/stage-classifier.js +6 -5
  47. package/dist/stage-classifier.js.map +1 -1
  48. package/dist/state-cascade.d.ts.map +1 -1
  49. package/dist/state-cascade.js +2 -1
  50. package/dist/state-cascade.js.map +1 -1
  51. package/dist/types/index.d.ts +0 -1
  52. package/dist/types/index.d.ts.map +1 -1
  53. package/dist/types/index.js +0 -1
  54. package/dist/types/index.js.map +1 -1
  55. package/dist/unified-engine-lifecycle.d.ts.map +1 -1
  56. package/dist/unified-engine-lifecycle.js +2 -23
  57. package/dist/unified-engine-lifecycle.js.map +1 -1
  58. package/dist/unified-shell-config.d.ts +2 -7
  59. package/dist/unified-shell-config.d.ts.map +1 -1
  60. package/dist/unified-shell-config.js +2 -23
  61. package/dist/unified-shell-config.js.map +1 -1
  62. package/dist/unified-shell-status.d.ts.map +1 -1
  63. package/dist/unified-shell-status.js +2 -4
  64. package/dist/unified-shell-status.js.map +1 -1
  65. package/dist/unified-shell.d.ts.map +1 -1
  66. package/dist/unified-shell.js +0 -12
  67. package/dist/unified-shell.js.map +1 -1
  68. package/dist/version-check.d.ts.map +1 -1
  69. package/dist/version-check.js +6 -4
  70. package/dist/version-check.js.map +1 -1
  71. package/package.json +3 -3
  72. package/dist/pm/adaptive-poller.d.ts +0 -26
  73. package/dist/pm/adaptive-poller.d.ts.map +0 -1
  74. package/dist/pm/adaptive-poller.js +0 -53
  75. package/dist/pm/adaptive-poller.js.map +0 -1
  76. package/dist/pm/cascade-evaluator.d.ts +0 -29
  77. package/dist/pm/cascade-evaluator.d.ts.map +0 -1
  78. package/dist/pm/cascade-evaluator.js +0 -135
  79. package/dist/pm/cascade-evaluator.js.map +0 -1
  80. package/dist/pm/channel-email.d.ts +0 -42
  81. package/dist/pm/channel-email.d.ts.map +0 -1
  82. package/dist/pm/channel-email.js +0 -47
  83. package/dist/pm/channel-email.js.map +0 -1
  84. package/dist/pm/channel-slack.d.ts +0 -40
  85. package/dist/pm/channel-slack.d.ts.map +0 -1
  86. package/dist/pm/channel-slack.js +0 -46
  87. package/dist/pm/channel-slack.js.map +0 -1
  88. package/dist/pm/communication-drafter.d.ts +0 -44
  89. package/dist/pm/communication-drafter.d.ts.map +0 -1
  90. package/dist/pm/communication-drafter.js +0 -84
  91. package/dist/pm/communication-drafter.js.map +0 -1
  92. package/dist/pm/dialog-handler.d.ts +0 -32
  93. package/dist/pm/dialog-handler.d.ts.map +0 -1
  94. package/dist/pm/dialog-handler.js +0 -107
  95. package/dist/pm/dialog-handler.js.map +0 -1
  96. package/dist/pm/mitigation-correlator.d.ts +0 -29
  97. package/dist/pm/mitigation-correlator.d.ts.map +0 -1
  98. package/dist/pm/mitigation-correlator.js +0 -147
  99. package/dist/pm/mitigation-correlator.js.map +0 -1
  100. package/dist/pm/risk-scanner.d.ts +0 -28
  101. package/dist/pm/risk-scanner.d.ts.map +0 -1
  102. package/dist/pm/risk-scanner.js +0 -112
  103. package/dist/pm/risk-scanner.js.map +0 -1
  104. package/dist/pm-engine.d.ts +0 -96
  105. package/dist/pm-engine.d.ts.map +0 -1
  106. package/dist/pm-engine.js +0 -540
  107. package/dist/pm-engine.js.map +0 -1
  108. package/dist/pm-process.d.ts +0 -45
  109. package/dist/pm-process.d.ts.map +0 -1
  110. package/dist/pm-process.js +0 -195
  111. package/dist/pm-process.js.map +0 -1
  112. package/dist/pm-prompt-builder.d.ts +0 -23
  113. package/dist/pm-prompt-builder.d.ts.map +0 -1
  114. package/dist/pm-prompt-builder.js +0 -64
  115. package/dist/pm-prompt-builder.js.map +0 -1
  116. package/dist/types/pm.d.ts +0 -53
  117. package/dist/types/pm.d.ts.map +0 -1
  118. package/dist/types/pm.js +0 -10
  119. package/dist/types/pm.js.map +0 -1
@@ -1,112 +0,0 @@
1
- /**
2
- * Risk dependency scanner -- core poll logic for the PM engine.
3
- *
4
- * Queries risk_dependencies for items needing follow-up or escalation,
5
- * then produces prioritized RiskFollowupAction items that the PM engine
6
- * can act on (log, notify, or surface to the UI).
7
- */
8
- import { callApi } from '../queries/shared.js';
9
- // ---------------------------------------------------------------------------
10
- // Public API
11
- // ---------------------------------------------------------------------------
12
- /**
13
- * Scan all risk dependencies for a product and return prioritized follow-up actions.
14
- *
15
- * Queries all non-resolved dependencies, then evaluates each against the
16
- * urgency and action rules to produce a sorted list of recommended actions.
17
- */
18
- export async function scanRiskDependencies(productId) {
19
- // 1. Get all risks for the product
20
- const risksResponse = await callApi('risk_list', {
21
- productId,
22
- limit: 500,
23
- offset: 0,
24
- });
25
- const risks = risksResponse.risks;
26
- if (risks.length === 0)
27
- return [];
28
- // Build risk lookup
29
- const riskMap = new Map();
30
- for (const risk of risks) {
31
- riskMap.set(risk.id, { id: risk.id, title: risk.title });
32
- }
33
- // 2. Get all dependencies for each risk (batch by risk)
34
- const actions = [];
35
- const now = Date.now();
36
- const oneDayFromNow = now + 24 * 60 * 60 * 1000;
37
- for (const risk of risks) {
38
- let deps;
39
- try {
40
- deps = await callApi('risk_dependency_list', {
41
- riskId: risk.id,
42
- limit: 500,
43
- offset: 0,
44
- });
45
- }
46
- catch {
47
- // Non-fatal: skip this risk if dependency query fails
48
- console.log(`[PM] Failed to fetch dependencies for risk ${risk.id}, skipping`);
49
- continue;
50
- }
51
- for (const dep of deps.dependencies) {
52
- // Skip resolved/wont_fix dependencies
53
- if (dep.status === 'resolved' || dep.status === 'wont_fix') {
54
- continue;
55
- }
56
- const followupTime = dep.next_followup_at ? new Date(dep.next_followup_at).getTime() : null;
57
- const isPastDue = followupTime !== null && followupTime <= now;
58
- const isWithin24h = followupTime !== null && followupTime <= oneDayFromNow && followupTime > now;
59
- const neverContacted = dep.last_contact_at === null;
60
- // Determine action
61
- let action;
62
- if (dep.status === 'in_progress' && isPastDue) {
63
- action = 'escalate';
64
- }
65
- else if (dep.status === 'waiting' && (isPastDue || neverContacted)) {
66
- action = 'send_followup';
67
- }
68
- else if (dep.status === 'waiting' && isWithin24h) {
69
- action = 'send_followup';
70
- }
71
- else {
72
- // No action needed for this dependency right now
73
- continue;
74
- }
75
- // Determine urgency
76
- let urgency;
77
- if (isPastDue) {
78
- urgency = 'high';
79
- }
80
- else if (isWithin24h) {
81
- urgency = 'medium';
82
- }
83
- else {
84
- urgency = 'low';
85
- }
86
- actions.push({
87
- riskId: risk.id,
88
- riskTitle: risk.title,
89
- dependencyId: dep.id,
90
- dependencyTitle: dep.title,
91
- ownerName: dep.owner_name,
92
- ownerContact: dep.owner_contact,
93
- status: dep.status,
94
- nextFollowupAt: dep.next_followup_at,
95
- lastContactAt: dep.last_contact_at,
96
- action,
97
- urgency,
98
- });
99
- }
100
- }
101
- // Sort by urgency (high first), then by action priority (escalate > send_followup > update_status)
102
- const urgencyOrder = { high: 0, medium: 1, low: 2 };
103
- const actionOrder = { escalate: 0, send_followup: 1, update_status: 2 };
104
- actions.sort((a, b) => {
105
- const urgDiff = (urgencyOrder[a.urgency] ?? 3) - (urgencyOrder[b.urgency] ?? 3);
106
- if (urgDiff !== 0)
107
- return urgDiff;
108
- return (actionOrder[a.action] ?? 3) - (actionOrder[b.action] ?? 3);
109
- });
110
- return actions;
111
- }
112
- //# sourceMappingURL=risk-scanner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"risk-scanner.js","sourceRoot":"","sources":["../../src/pm/risk-scanner.ts"],"names":[],"mappings":"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"}
@@ -1,96 +0,0 @@
1
- /**
2
- * PMEngine -- ExecutionEngine adapter for the PM (Project Manager) engine.
3
- *
4
- * The PM engine now serves dual roles:
5
- * 1. Process supervision: Spawns a persistent Claude Code session per product
6
- * that runs /loop for its PM cycle (report generation, inbox, action plan).
7
- * 2. Risk monitoring: Polls risk states and dependencies (unchanged from before).
8
- *
9
- * Lifecycle (called by the process shell):
10
- * 1. init(config) -- validate config, initialize API client
11
- * 2. recoverFromCrash() -- detect orphaned PM sessions, restart
12
- * 3. start() -- spawn PM processes, begin risk poll loop
13
- * 4. stop() -- clear intervals, set shutting-down flag
14
- * 5. shutdown() -- terminate PM processes gracefully
15
- */
16
- import type { ExecutionEngine, EngineHealth, ResourceUsage, BaseConfig, ResourceGovernor } from '@telora/daemon-core';
17
- export declare class PMEngine implements ExecutionEngine {
18
- readonly name = "pm";
19
- /** Daemon config, set during init(). */
20
- private config;
21
- /** Resource governor for slot management. */
22
- private governor;
23
- /** PM process-specific configuration. */
24
- private pmProcessConfig;
25
- /** Poll cadence configuration (for risk monitoring). */
26
- private pollCadence;
27
- /** Active poll timeout handle (for adaptive interval). */
28
- private pollTimeout;
29
- /** Session status poll interval handle. */
30
- private sessionPollInterval;
31
- /** Pending restart timeouts (for backoff). */
32
- private restartTimeouts;
33
- /** Whether the engine is shutting down. */
34
- private shuttingDown;
35
- /** Count of active (non-resolved, non-draft) risks from last scan. */
36
- private activeRiskCount;
37
- /** Last poll timestamp for health reporting. */
38
- private lastPollAt;
39
- /** Last set of risk stages seen (for adaptive polling). */
40
- private lastRiskStages;
41
- /** Total follow-up actions from last scan. */
42
- private lastFollowupActionCount;
43
- /** Mitigation assessment summary from last scan. */
44
- private lastMitigationSummary;
45
- setGovernor(gov: ResourceGovernor): void;
46
- init(config: BaseConfig & Record<string, unknown>): Promise<void>;
47
- recoverFromCrash(): Promise<void>;
48
- start(): Promise<void>;
49
- stop(): void;
50
- shutdown(): Promise<void>;
51
- healthCheck(): EngineHealth;
52
- getResourceUsage(): ResourceUsage;
53
- /**
54
- * Poll pm_sessions.status for each product and spawn/terminate PM processes
55
- * accordingly. This allows runtime control of the PM agent via UI toggle
56
- * or MCP tool without requiring a daemon restart.
57
- *
58
- * - status=active && no process running → spawn
59
- * - status=stopped/paused && process running → terminate
60
- * - no session → no action (user hasn't started PM yet)
61
- */
62
- private pollSessionStatuses;
63
- /**
64
- * Set up monitoring for a PM process. When it exits, attempt restart
65
- * with exponential backoff. Also triggers a health restart when the
66
- * process exceeds maxSessionAgeMs.
67
- */
68
- private setupProcessMonitor;
69
- /**
70
- * Handle PM process exit -- check session status before scheduling restart.
71
- * Only restarts if the session is still active. If stopped/paused, the
72
- * exit is intentional and no restart is scheduled.
73
- */
74
- private handleProcessExit;
75
- /** Restart count tracking (simple in-memory map). */
76
- private restartCounts;
77
- private getRestartCount;
78
- private incrementRestartCount;
79
- /**
80
- * Run a single poll cycle: scan dependencies, correlate mitigation, log results.
81
- */
82
- private runPollCycle;
83
- /**
84
- * Poll a single product for risk states and follow-up actions.
85
- */
86
- private pollProduct;
87
- /**
88
- * Create communication drafts for high-urgency follow-up actions.
89
- */
90
- private createFollowupDrafts;
91
- /**
92
- * Schedule the next poll cycle using the adaptive interval based on current risk stages.
93
- */
94
- private scheduleNextPoll;
95
- }
96
- //# sourceMappingURL=pm-engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pm-engine.d.ts","sourceRoot":"","sources":["../src/pm-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,UAAU,EACV,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AA0D7B,qBAAa,QAAS,YAAW,eAAe;IAC9C,QAAQ,CAAC,IAAI,QAAQ;IAErB,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAA6B;IAE3C,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAAiC;IAEjD,yCAAyC;IACzC,OAAO,CAAC,eAAe,CAA8C;IAErE,wDAAwD;IACxD,OAAO,CAAC,WAAW,CAA2C;IAE9D,0DAA0D;IAC1D,OAAO,CAAC,WAAW,CAA8C;IAEjE,2CAA2C;IAC3C,OAAO,CAAC,mBAAmB,CAA+C;IAE1E,8CAA8C;IAC9C,OAAO,CAAC,eAAe,CAAoD;IAE3E,2CAA2C;IAC3C,OAAO,CAAC,YAAY,CAAS;IAE7B,sEAAsE;IACtE,OAAO,CAAC,eAAe,CAAK;IAE5B,gDAAgD;IAChD,OAAO,CAAC,UAAU,CAAqB;IAEvC,2DAA2D;IAC3D,OAAO,CAAC,cAAc,CAAgB;IAEtC,8CAA8C;IAC9C,OAAO,CAAC,uBAAuB,CAAK;IAEpC,oDAAoD;IACpD,OAAO,CAAC,qBAAqB,CAA8B;IAM3D,WAAW,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAQlC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDjE,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuDjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC5B,IAAI,IAAI,IAAI;IAsBN,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAc/B,WAAW,IAAI,YAAY;IA+B3B,gBAAgB,IAAI,aAAa;IAYjC;;;;;;;;OAQG;YACW,mBAAmB;IAoDjC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAmC3B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IA8DzB,qDAAqD;IACrD,OAAO,CAAC,aAAa,CAA6B;IAElD,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;YACW,YAAY;IAiB1B;;OAEG;YACW,WAAW;IAuDzB;;OAEG;YACW,oBAAoB;IA4DlC;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAoBzB"}