pm-orchestrator-runner 1.0.0

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 (215) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +108 -0
  3. package/dist/cli/cli-interface.d.ts +150 -0
  4. package/dist/cli/cli-interface.d.ts.map +1 -0
  5. package/dist/cli/cli-interface.js +606 -0
  6. package/dist/cli/cli-interface.js.map +1 -0
  7. package/dist/cli/index.d.ts +13 -0
  8. package/dist/cli/index.d.ts.map +1 -0
  9. package/dist/cli/index.js +243 -0
  10. package/dist/cli/index.js.map +1 -0
  11. package/dist/cli/llm-sentinel.d.ts +15 -0
  12. package/dist/cli/llm-sentinel.d.ts.map +1 -0
  13. package/dist/cli/llm-sentinel.js +184 -0
  14. package/dist/cli/llm-sentinel.js.map +1 -0
  15. package/dist/config/configuration-manager.d.ts +149 -0
  16. package/dist/config/configuration-manager.d.ts.map +1 -0
  17. package/dist/config/configuration-manager.js +241 -0
  18. package/dist/config/configuration-manager.js.map +1 -0
  19. package/dist/continuation/continuation-control-manager.d.ts +154 -0
  20. package/dist/continuation/continuation-control-manager.d.ts.map +1 -0
  21. package/dist/continuation/continuation-control-manager.js +303 -0
  22. package/dist/continuation/continuation-control-manager.js.map +1 -0
  23. package/dist/core/runner-core.d.ts +474 -0
  24. package/dist/core/runner-core.d.ts.map +1 -0
  25. package/dist/core/runner-core.js +1311 -0
  26. package/dist/core/runner-core.js.map +1 -0
  27. package/dist/errors/error-codes.d.ts +105 -0
  28. package/dist/errors/error-codes.d.ts.map +1 -0
  29. package/dist/errors/error-codes.js +198 -0
  30. package/dist/errors/error-codes.js.map +1 -0
  31. package/dist/errors/runner-error.d.ts +14 -0
  32. package/dist/errors/runner-error.d.ts.map +1 -0
  33. package/dist/errors/runner-error.js +33 -0
  34. package/dist/errors/runner-error.js.map +1 -0
  35. package/dist/evidence/evidence-manager.d.ts +112 -0
  36. package/dist/evidence/evidence-manager.d.ts.map +1 -0
  37. package/dist/evidence/evidence-manager.js +337 -0
  38. package/dist/evidence/evidence-manager.js.map +1 -0
  39. package/dist/executor/claude-code-executor.d.ts +136 -0
  40. package/dist/executor/claude-code-executor.d.ts.map +1 -0
  41. package/dist/executor/claude-code-executor.js +643 -0
  42. package/dist/executor/claude-code-executor.js.map +1 -0
  43. package/dist/executor/deterministic-executor.d.ts +40 -0
  44. package/dist/executor/deterministic-executor.d.ts.map +1 -0
  45. package/dist/executor/deterministic-executor.js +269 -0
  46. package/dist/executor/deterministic-executor.js.map +1 -0
  47. package/dist/lifecycle/lifecycle-controller.d.ts +270 -0
  48. package/dist/lifecycle/lifecycle-controller.d.ts.map +1 -0
  49. package/dist/lifecycle/lifecycle-controller.js +596 -0
  50. package/dist/lifecycle/lifecycle-controller.js.map +1 -0
  51. package/dist/limits/resource-limit-manager.d.ts +200 -0
  52. package/dist/limits/resource-limit-manager.d.ts.map +1 -0
  53. package/dist/limits/resource-limit-manager.js +376 -0
  54. package/dist/limits/resource-limit-manager.js.map +1 -0
  55. package/dist/locks/lock-manager.d.ts +116 -0
  56. package/dist/locks/lock-manager.d.ts.map +1 -0
  57. package/dist/locks/lock-manager.js +306 -0
  58. package/dist/locks/lock-manager.js.map +1 -0
  59. package/dist/logging/index.d.ts +8 -0
  60. package/dist/logging/index.d.ts.map +1 -0
  61. package/dist/logging/index.js +22 -0
  62. package/dist/logging/index.js.map +1 -0
  63. package/dist/logging/sensitive-data-masker.d.ts +90 -0
  64. package/dist/logging/sensitive-data-masker.d.ts.map +1 -0
  65. package/dist/logging/sensitive-data-masker.js +228 -0
  66. package/dist/logging/sensitive-data-masker.js.map +1 -0
  67. package/dist/logging/task-log-manager.d.ts +215 -0
  68. package/dist/logging/task-log-manager.d.ts.map +1 -0
  69. package/dist/logging/task-log-manager.js +743 -0
  70. package/dist/logging/task-log-manager.js.map +1 -0
  71. package/dist/mediation/fail-closed-runner.d.ts +131 -0
  72. package/dist/mediation/fail-closed-runner.d.ts.map +1 -0
  73. package/dist/mediation/fail-closed-runner.js +245 -0
  74. package/dist/mediation/fail-closed-runner.js.map +1 -0
  75. package/dist/mediation/llm-client-with-evidence.d.ts +123 -0
  76. package/dist/mediation/llm-client-with-evidence.d.ts.map +1 -0
  77. package/dist/mediation/llm-client-with-evidence.js +245 -0
  78. package/dist/mediation/llm-client-with-evidence.js.map +1 -0
  79. package/dist/mediation/llm-client.d.ts +102 -0
  80. package/dist/mediation/llm-client.d.ts.map +1 -0
  81. package/dist/mediation/llm-client.js +206 -0
  82. package/dist/mediation/llm-client.js.map +1 -0
  83. package/dist/mediation/llm-evidence-manager.d.ts +108 -0
  84. package/dist/mediation/llm-evidence-manager.d.ts.map +1 -0
  85. package/dist/mediation/llm-evidence-manager.js +230 -0
  86. package/dist/mediation/llm-evidence-manager.js.map +1 -0
  87. package/dist/mediation/llm-mediation-layer.d.ts +175 -0
  88. package/dist/mediation/llm-mediation-layer.d.ts.map +1 -0
  89. package/dist/mediation/llm-mediation-layer.js +315 -0
  90. package/dist/mediation/llm-mediation-layer.js.map +1 -0
  91. package/dist/mediation/llm-sentinel.d.ts +107 -0
  92. package/dist/mediation/llm-sentinel.d.ts.map +1 -0
  93. package/dist/mediation/llm-sentinel.js +187 -0
  94. package/dist/mediation/llm-sentinel.js.map +1 -0
  95. package/dist/mediation/real-llm-mediation-layer.d.ts +104 -0
  96. package/dist/mediation/real-llm-mediation-layer.d.ts.map +1 -0
  97. package/dist/mediation/real-llm-mediation-layer.js +322 -0
  98. package/dist/mediation/real-llm-mediation-layer.js.map +1 -0
  99. package/dist/mediation/verdict-reporter.d.ts +61 -0
  100. package/dist/mediation/verdict-reporter.d.ts.map +1 -0
  101. package/dist/mediation/verdict-reporter.js +178 -0
  102. package/dist/mediation/verdict-reporter.js.map +1 -0
  103. package/dist/models/enums.d.ts +133 -0
  104. package/dist/models/enums.d.ts.map +1 -0
  105. package/dist/models/enums.js +201 -0
  106. package/dist/models/enums.js.map +1 -0
  107. package/dist/models/evidence.d.ts +60 -0
  108. package/dist/models/evidence.d.ts.map +1 -0
  109. package/dist/models/evidence.js +135 -0
  110. package/dist/models/evidence.js.map +1 -0
  111. package/dist/models/execution-result.d.ts +89 -0
  112. package/dist/models/execution-result.d.ts.map +1 -0
  113. package/dist/models/execution-result.js +197 -0
  114. package/dist/models/execution-result.js.map +1 -0
  115. package/dist/models/file-lock.d.ts +62 -0
  116. package/dist/models/file-lock.d.ts.map +1 -0
  117. package/dist/models/file-lock.js +133 -0
  118. package/dist/models/file-lock.js.map +1 -0
  119. package/dist/models/index.d.ts +12 -0
  120. package/dist/models/index.d.ts.map +1 -0
  121. package/dist/models/index.js +91 -0
  122. package/dist/models/index.js.map +1 -0
  123. package/dist/models/repl/index.d.ts +7 -0
  124. package/dist/models/repl/index.d.ts.map +1 -0
  125. package/dist/models/repl/index.js +32 -0
  126. package/dist/models/repl/index.js.map +1 -0
  127. package/dist/models/repl/model-registry.d.ts +73 -0
  128. package/dist/models/repl/model-registry.d.ts.map +1 -0
  129. package/dist/models/repl/model-registry.js +116 -0
  130. package/dist/models/repl/model-registry.js.map +1 -0
  131. package/dist/models/repl/repl-state.d.ts +86 -0
  132. package/dist/models/repl/repl-state.d.ts.map +1 -0
  133. package/dist/models/repl/repl-state.js +152 -0
  134. package/dist/models/repl/repl-state.js.map +1 -0
  135. package/dist/models/repl/task-log.d.ts +247 -0
  136. package/dist/models/repl/task-log.d.ts.map +1 -0
  137. package/dist/models/repl/task-log.js +178 -0
  138. package/dist/models/repl/task-log.js.map +1 -0
  139. package/dist/models/session.d.ts +71 -0
  140. package/dist/models/session.d.ts.map +1 -0
  141. package/dist/models/session.js +140 -0
  142. package/dist/models/session.js.map +1 -0
  143. package/dist/models/supporting.d.ts +97 -0
  144. package/dist/models/supporting.d.ts.map +1 -0
  145. package/dist/models/supporting.js +208 -0
  146. package/dist/models/supporting.js.map +1 -0
  147. package/dist/models/task.d.ts +77 -0
  148. package/dist/models/task.d.ts.map +1 -0
  149. package/dist/models/task.js +170 -0
  150. package/dist/models/task.js.map +1 -0
  151. package/dist/output/output-control-manager.d.ts +217 -0
  152. package/dist/output/output-control-manager.d.ts.map +1 -0
  153. package/dist/output/output-control-manager.js +378 -0
  154. package/dist/output/output-control-manager.js.map +1 -0
  155. package/dist/pool/agent-pool.d.ts +284 -0
  156. package/dist/pool/agent-pool.d.ts.map +1 -0
  157. package/dist/pool/agent-pool.js +451 -0
  158. package/dist/pool/agent-pool.js.map +1 -0
  159. package/dist/repl/commands/index.d.ts +12 -0
  160. package/dist/repl/commands/index.d.ts.map +1 -0
  161. package/dist/repl/commands/index.js +26 -0
  162. package/dist/repl/commands/index.js.map +1 -0
  163. package/dist/repl/commands/init.d.ts +31 -0
  164. package/dist/repl/commands/init.d.ts.map +1 -0
  165. package/dist/repl/commands/init.js +234 -0
  166. package/dist/repl/commands/init.js.map +1 -0
  167. package/dist/repl/commands/keys.d.ts +63 -0
  168. package/dist/repl/commands/keys.d.ts.map +1 -0
  169. package/dist/repl/commands/keys.js +114 -0
  170. package/dist/repl/commands/keys.js.map +1 -0
  171. package/dist/repl/commands/logs.d.ts +91 -0
  172. package/dist/repl/commands/logs.d.ts.map +1 -0
  173. package/dist/repl/commands/logs.js +200 -0
  174. package/dist/repl/commands/logs.js.map +1 -0
  175. package/dist/repl/commands/model.d.ts +85 -0
  176. package/dist/repl/commands/model.d.ts.map +1 -0
  177. package/dist/repl/commands/model.js +225 -0
  178. package/dist/repl/commands/model.js.map +1 -0
  179. package/dist/repl/commands/models.d.ts +50 -0
  180. package/dist/repl/commands/models.d.ts.map +1 -0
  181. package/dist/repl/commands/models.js +180 -0
  182. package/dist/repl/commands/models.js.map +1 -0
  183. package/dist/repl/commands/provider.d.ts +79 -0
  184. package/dist/repl/commands/provider.d.ts.map +1 -0
  185. package/dist/repl/commands/provider.js +291 -0
  186. package/dist/repl/commands/provider.js.map +1 -0
  187. package/dist/repl/commands/session.d.ts +50 -0
  188. package/dist/repl/commands/session.d.ts.map +1 -0
  189. package/dist/repl/commands/session.js +152 -0
  190. package/dist/repl/commands/session.js.map +1 -0
  191. package/dist/repl/commands/status.d.ts +55 -0
  192. package/dist/repl/commands/status.d.ts.map +1 -0
  193. package/dist/repl/commands/status.js +182 -0
  194. package/dist/repl/commands/status.js.map +1 -0
  195. package/dist/repl/index.d.ts +6 -0
  196. package/dist/repl/index.d.ts.map +1 -0
  197. package/dist/repl/index.js +25 -0
  198. package/dist/repl/index.js.map +1 -0
  199. package/dist/repl/repl-interface.d.ts +371 -0
  200. package/dist/repl/repl-interface.d.ts.map +1 -0
  201. package/dist/repl/repl-interface.js +1214 -0
  202. package/dist/repl/repl-interface.js.map +1 -0
  203. package/dist/session/session-manager.d.ts +85 -0
  204. package/dist/session/session-manager.d.ts.map +1 -0
  205. package/dist/session/session-manager.js +217 -0
  206. package/dist/session/session-manager.js.map +1 -0
  207. package/dist/supervisor/executor-supervisor.d.ts +90 -0
  208. package/dist/supervisor/executor-supervisor.d.ts.map +1 -0
  209. package/dist/supervisor/executor-supervisor.js +223 -0
  210. package/dist/supervisor/executor-supervisor.js.map +1 -0
  211. package/dist/supervisor/index.d.ts +5 -0
  212. package/dist/supervisor/index.d.ts.map +1 -0
  213. package/dist/supervisor/index.js +9 -0
  214. package/dist/supervisor/index.js.map +1 -0
  215. package/package.json +57 -0
@@ -0,0 +1,303 @@
1
+ "use strict";
2
+ /**
3
+ * Continuation Control Manager
4
+ * Based on 04_COMPONENTS.md L156-166
5
+ *
6
+ * Responsible for:
7
+ * - Automatic progression prevention
8
+ * - Explicit approval requirement
9
+ * - Continuation condition validation
10
+ * - Meaningless continuation rejection
11
+ * - next_action determination
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.ContinuationControlManager = exports.ContinuationControlError = void 0;
15
+ const enums_1 = require("../models/enums");
16
+ const error_codes_1 = require("../errors/error-codes");
17
+ /**
18
+ * Continuation Control Manager Error
19
+ */
20
+ class ContinuationControlError extends Error {
21
+ code;
22
+ details;
23
+ constructor(code, message, details) {
24
+ super(message || (0, error_codes_1.getErrorMessage)(code));
25
+ this.name = 'ContinuationControlError';
26
+ this.code = code;
27
+ this.details = details;
28
+ }
29
+ }
30
+ exports.ContinuationControlError = ContinuationControlError;
31
+ /**
32
+ * Continuation Control Manager class
33
+ */
34
+ class ContinuationControlManager {
35
+ requests;
36
+ requestTimes;
37
+ incompleteReasons;
38
+ approvals;
39
+ /**
40
+ * Create a new ContinuationControlManager
41
+ */
42
+ constructor() {
43
+ this.requests = new Map();
44
+ this.requestTimes = new Map();
45
+ this.incompleteReasons = [];
46
+ this.approvals = new Map();
47
+ }
48
+ /**
49
+ * Check if continuation is allowed based on session state
50
+ */
51
+ canContinue(sessionState) {
52
+ // Block continuation with error statuses
53
+ if (sessionState.overall_status === enums_1.OverallStatus.ERROR) {
54
+ return false;
55
+ }
56
+ if (sessionState.overall_status === enums_1.OverallStatus.NO_EVIDENCE) {
57
+ return false;
58
+ }
59
+ // Require explicit approval for INCOMPLETE status
60
+ if (sessionState.overall_status === enums_1.OverallStatus.INCOMPLETE) {
61
+ return sessionState.has_explicit_approval === true;
62
+ }
63
+ return true;
64
+ }
65
+ /**
66
+ * Check if phase progression is allowed
67
+ */
68
+ canProgressPhase(sessionState) {
69
+ // Even if all tasks in current phase are complete, require explicit approval
70
+ if (!sessionState.has_explicit_approval) {
71
+ return false;
72
+ }
73
+ return true;
74
+ }
75
+ /**
76
+ * Check if approval is required
77
+ */
78
+ requiresApproval(sessionState) {
79
+ // Approval is required for incomplete sessions
80
+ return sessionState.overall_status === enums_1.OverallStatus.INCOMPLETE &&
81
+ !sessionState.has_explicit_approval;
82
+ }
83
+ /**
84
+ * Record an approval
85
+ * @throws ContinuationControlError with E201 if session ID is missing
86
+ */
87
+ recordApproval(sessionId, approvedBy) {
88
+ if (!sessionId || sessionId.length === 0) {
89
+ throw new ContinuationControlError(error_codes_1.ErrorCode.E201_SESSION_ID_MISSING, 'Session ID is required for approval', { sessionId });
90
+ }
91
+ const approval = {
92
+ session_id: sessionId,
93
+ approved_by: approvedBy,
94
+ timestamp: new Date().toISOString(),
95
+ };
96
+ this.approvals.set(sessionId, approval);
97
+ return approval;
98
+ }
99
+ /**
100
+ * Validate all continuation conditions
101
+ */
102
+ validateContinuationConditions(sessionState) {
103
+ const failedConditions = [];
104
+ // Check for minimum task progress
105
+ if (sessionState.tasks_completed === 0) {
106
+ failedConditions.push('minimum_progress');
107
+ }
108
+ // Check evidence validity
109
+ if (sessionState.evidence_valid === false) {
110
+ failedConditions.push('evidence_valid');
111
+ }
112
+ // Check for critical errors
113
+ if (sessionState.no_critical_errors === false) {
114
+ failedConditions.push('no_critical_errors');
115
+ }
116
+ return {
117
+ valid: failedConditions.length === 0,
118
+ failed_conditions: failedConditions,
119
+ };
120
+ }
121
+ /**
122
+ * Request continuation
123
+ * @throws ContinuationControlError with E207 if continuation is meaningless
124
+ */
125
+ requestContinuation(sessionState) {
126
+ // Reject if all tasks complete
127
+ if (sessionState.overall_status === enums_1.OverallStatus.COMPLETE) {
128
+ throw new ContinuationControlError(error_codes_1.ErrorCode.E207_CONTINUATION_REJECTED, 'Cannot continue: all tasks already complete', { overall_status: sessionState.overall_status });
129
+ }
130
+ // Reject if no remaining work
131
+ if (sessionState.remaining_work && sessionState.remaining_work.length === 0 &&
132
+ sessionState.tasks_completed >= sessionState.tasks_total) {
133
+ throw new ContinuationControlError(error_codes_1.ErrorCode.E207_CONTINUATION_REJECTED, 'Cannot continue: no remaining work', { tasks_completed: sessionState.tasks_completed, tasks_total: sessionState.tasks_total });
134
+ }
135
+ // Reject if status is INVALID
136
+ if (sessionState.overall_status === enums_1.OverallStatus.INVALID) {
137
+ throw new ContinuationControlError(error_codes_1.ErrorCode.E207_CONTINUATION_REJECTED, 'Cannot continue: session status is INVALID', { overall_status: sessionState.overall_status });
138
+ }
139
+ // Reject duplicate continuation requests
140
+ if (sessionState.continuation_in_progress) {
141
+ throw new ContinuationControlError(error_codes_1.ErrorCode.E207_CONTINUATION_REJECTED, 'Cannot continue: continuation already in progress', { continuation_in_progress: true });
142
+ }
143
+ }
144
+ /**
145
+ * Create a continuation request
146
+ */
147
+ createContinuationRequest(sessionState) {
148
+ const requestId = `req-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
149
+ const now = Date.now();
150
+ const request = {
151
+ request_id: requestId,
152
+ session_id: sessionState.session_id,
153
+ status: 'pending',
154
+ requested_at: new Date(now).toISOString(),
155
+ };
156
+ this.requests.set(requestId, request);
157
+ this.requestTimes.set(requestId, now);
158
+ return request;
159
+ }
160
+ /**
161
+ * Approve a continuation request
162
+ */
163
+ approveContinuationRequest(requestId) {
164
+ const request = this.requests.get(requestId);
165
+ if (!request) {
166
+ throw new ContinuationControlError(error_codes_1.ErrorCode.E207_CONTINUATION_REJECTED, `Request not found: ${requestId}`, { requestId });
167
+ }
168
+ const approvedRequest = {
169
+ ...request,
170
+ status: 'approved',
171
+ approved_at: new Date().toISOString(),
172
+ };
173
+ this.requests.set(requestId, approvedRequest);
174
+ return approvedRequest;
175
+ }
176
+ /**
177
+ * Reject a continuation request
178
+ */
179
+ rejectContinuationRequest(requestId, reason) {
180
+ const request = this.requests.get(requestId);
181
+ if (!request) {
182
+ throw new ContinuationControlError(error_codes_1.ErrorCode.E207_CONTINUATION_REJECTED, `Request not found: ${requestId}`, { requestId });
183
+ }
184
+ const rejectedRequest = {
185
+ ...request,
186
+ status: 'rejected',
187
+ rejection_reason: reason,
188
+ };
189
+ this.requests.set(requestId, rejectedRequest);
190
+ return rejectedRequest;
191
+ }
192
+ /**
193
+ * Set request time for testing purposes
194
+ */
195
+ setRequestTimeForTesting(requestId, timestamp) {
196
+ this.requestTimes.set(requestId, timestamp);
197
+ }
198
+ /**
199
+ * Expire old pending requests
200
+ */
201
+ expireOldRequests(timeoutMs) {
202
+ const now = Date.now();
203
+ for (const [requestId, request] of this.requests) {
204
+ if (request.status === 'pending') {
205
+ const requestTime = this.requestTimes.get(requestId);
206
+ if (requestTime && (now - requestTime) > timeoutMs) {
207
+ const expiredRequest = {
208
+ ...request,
209
+ status: 'expired',
210
+ };
211
+ this.requests.set(requestId, expiredRequest);
212
+ }
213
+ }
214
+ }
215
+ }
216
+ /**
217
+ * Get a continuation request by ID
218
+ */
219
+ getContinuationRequest(requestId) {
220
+ const request = this.requests.get(requestId);
221
+ if (!request) {
222
+ throw new ContinuationControlError(error_codes_1.ErrorCode.E207_CONTINUATION_REJECTED, `Request not found: ${requestId}`, { requestId });
223
+ }
224
+ return request;
225
+ }
226
+ /**
227
+ * Determine next action based on session state
228
+ */
229
+ determineNextAction(sessionState) {
230
+ // COMPLETE status: next_action=true
231
+ if (sessionState.overall_status === enums_1.OverallStatus.COMPLETE) {
232
+ return {
233
+ next_action: true,
234
+ next_action_reason: 'Session complete - ready for next task',
235
+ };
236
+ }
237
+ // ERROR status: next_action=false
238
+ if (sessionState.overall_status === enums_1.OverallStatus.ERROR) {
239
+ return {
240
+ next_action: false,
241
+ next_action_reason: 'Session has error - cannot proceed',
242
+ };
243
+ }
244
+ // INVALID status: next_action=false
245
+ if (sessionState.overall_status === enums_1.OverallStatus.INVALID) {
246
+ return {
247
+ next_action: false,
248
+ next_action_reason: 'Session status is invalid',
249
+ };
250
+ }
251
+ // NO_EVIDENCE status: next_action=false
252
+ if (sessionState.overall_status === enums_1.OverallStatus.NO_EVIDENCE) {
253
+ return {
254
+ next_action: false,
255
+ next_action_reason: 'No evidence collected - cannot proceed',
256
+ };
257
+ }
258
+ // INCOMPLETE: check for approval and conditions
259
+ if (sessionState.overall_status === enums_1.OverallStatus.INCOMPLETE) {
260
+ if (!sessionState.has_explicit_approval) {
261
+ return {
262
+ next_action: false,
263
+ next_action_reason: 'Explicit approval required for continuation',
264
+ };
265
+ }
266
+ // With approval and valid conditions
267
+ const validation = this.validateContinuationConditions(sessionState);
268
+ if (validation.valid) {
269
+ return {
270
+ next_action: true,
271
+ next_action_reason: 'Continuation approved - ready to proceed',
272
+ };
273
+ }
274
+ return {
275
+ next_action: false,
276
+ next_action_reason: `Conditions not met: ${validation.failed_conditions.join(', ')}`,
277
+ };
278
+ }
279
+ // Default: false
280
+ return {
281
+ next_action: false,
282
+ next_action_reason: 'Unknown status',
283
+ };
284
+ }
285
+ /**
286
+ * Record a reason for incomplete task
287
+ */
288
+ recordIncompleteReason(taskId, reason) {
289
+ this.incompleteReasons.push({
290
+ task_id: taskId,
291
+ reason,
292
+ timestamp: new Date().toISOString(),
293
+ });
294
+ }
295
+ /**
296
+ * Get all incomplete task reasons
297
+ */
298
+ getIncompleteTaskReasons() {
299
+ return [...this.incompleteReasons];
300
+ }
301
+ }
302
+ exports.ContinuationControlManager = ContinuationControlManager;
303
+ //# sourceMappingURL=continuation-control-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continuation-control-manager.js","sourceRoot":"","sources":["../../src/continuation/continuation-control-manager.ts"],"names":[],"mappings":"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"}