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,241 @@
1
+ "use strict";
2
+ /**
3
+ * Configuration Manager
4
+ * Based on 04_COMPONENTS.md L52-82
5
+ *
6
+ * Responsible for:
7
+ * - Loading and validating project configuration
8
+ * - Enforcing configuration schema
9
+ * - Applying default values
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.ConfigurationManager = exports.ConfigurationError = void 0;
46
+ const fs = __importStar(require("fs"));
47
+ const path = __importStar(require("path"));
48
+ const error_codes_1 = require("../errors/error-codes");
49
+ /**
50
+ * Configuration error
51
+ */
52
+ class ConfigurationError extends Error {
53
+ code;
54
+ details;
55
+ constructor(code, message, details) {
56
+ super(message || (0, error_codes_1.getErrorMessage)(code));
57
+ this.name = 'ConfigurationError';
58
+ this.code = code;
59
+ this.details = details;
60
+ }
61
+ }
62
+ exports.ConfigurationError = ConfigurationError;
63
+ /**
64
+ * Default configuration values
65
+ */
66
+ const DEFAULTS = {
67
+ task_limits: {
68
+ files: 5,
69
+ tests: 10,
70
+ seconds: 300,
71
+ },
72
+ parallel_limits: {
73
+ subagents: 9,
74
+ executors: 4,
75
+ },
76
+ timeouts: {
77
+ deadlock_timeout_seconds: 60,
78
+ operation_timeout_seconds: 120,
79
+ },
80
+ evidence_settings: {
81
+ retention_days: 30,
82
+ compression_enabled: true,
83
+ },
84
+ };
85
+ /**
86
+ * Validation ranges
87
+ */
88
+ const RANGES = {
89
+ task_limits: {
90
+ files: { min: 1, max: 20 },
91
+ tests: { min: 1, max: 50 },
92
+ seconds: { min: 30, max: 900 },
93
+ },
94
+ parallel_limits: {
95
+ subagents: { min: 1, max: 9 },
96
+ executors: { min: 1, max: 4 },
97
+ },
98
+ };
99
+ /**
100
+ * Configuration Manager class
101
+ */
102
+ class ConfigurationManager {
103
+ /**
104
+ * Load configuration from project path
105
+ * @throws ConfigurationError if configuration is invalid
106
+ */
107
+ loadConfiguration(projectPath) {
108
+ // Validate project path exists
109
+ if (!fs.existsSync(projectPath)) {
110
+ throw new ConfigurationError(error_codes_1.ErrorCode.E102_INVALID_PROJECT_PATH, `Project path does not exist: ${projectPath}`, { projectPath });
111
+ }
112
+ // Check for .claude directory
113
+ const claudeDir = path.join(projectPath, '.claude');
114
+ if (!fs.existsSync(claudeDir)) {
115
+ throw new ConfigurationError(error_codes_1.ErrorCode.E101_MISSING_CLAUDE_DIRECTORY, `Missing .claude directory in project path: ${projectPath}`, { projectPath, expectedPath: claudeDir });
116
+ }
117
+ // Check required files and directories
118
+ this.validateRequiredStructure(claudeDir);
119
+ // Load and parse settings.json
120
+ const settingsPath = path.join(claudeDir, 'settings.json');
121
+ const rawSettings = this.loadSettingsJson(settingsPath);
122
+ // Validate and apply configuration
123
+ const config = this.buildConfiguration(rawSettings, projectPath, claudeDir);
124
+ return config;
125
+ }
126
+ /**
127
+ * Validate required project structure
128
+ */
129
+ validateRequiredStructure(claudeDir) {
130
+ const requiredFiles = ['CLAUDE.md', 'settings.json'];
131
+ const requiredDirs = ['agents', 'rules'];
132
+ for (const file of requiredFiles) {
133
+ const filePath = path.join(claudeDir, file);
134
+ if (!fs.existsSync(filePath)) {
135
+ throw new ConfigurationError(error_codes_1.ErrorCode.E103_CONFIGURATION_FILE_MISSING, `Missing required file: ${file} in .claude directory`, { missingFile: file, claudeDir });
136
+ }
137
+ }
138
+ for (const dir of requiredDirs) {
139
+ const dirPath = path.join(claudeDir, dir);
140
+ if (!fs.existsSync(dirPath)) {
141
+ throw new ConfigurationError(error_codes_1.ErrorCode.E103_CONFIGURATION_FILE_MISSING, `Missing required directory: ${dir} in .claude directory`, { missingDir: dir, claudeDir });
142
+ }
143
+ }
144
+ }
145
+ /**
146
+ * Load and parse settings.json
147
+ */
148
+ loadSettingsJson(settingsPath) {
149
+ try {
150
+ const content = fs.readFileSync(settingsPath, 'utf-8');
151
+ return JSON.parse(content);
152
+ }
153
+ catch (error) {
154
+ if (error instanceof SyntaxError) {
155
+ throw new ConfigurationError(error_codes_1.ErrorCode.E105_CRITICAL_CONFIGURATION_CORRUPTION, `Malformed JSON in settings.json: ${error.message}`, { settingsPath, parseError: error.message });
156
+ }
157
+ throw new ConfigurationError(error_codes_1.ErrorCode.E103_CONFIGURATION_FILE_MISSING, `Failed to read settings.json: ${error.message}`, { settingsPath });
158
+ }
159
+ }
160
+ /**
161
+ * Build and validate configuration
162
+ */
163
+ buildConfiguration(rawSettings, projectPath, claudeDir) {
164
+ // Apply defaults and merge with provided settings
165
+ const taskLimits = {
166
+ files: rawSettings.task_limits?.files ?? DEFAULTS.task_limits.files,
167
+ tests: rawSettings.task_limits?.tests ?? DEFAULTS.task_limits.tests,
168
+ seconds: rawSettings.task_limits?.seconds ?? DEFAULTS.task_limits.seconds,
169
+ };
170
+ const parallelLimits = {
171
+ subagents: rawSettings.parallel_limits?.subagents ?? DEFAULTS.parallel_limits.subagents,
172
+ executors: rawSettings.parallel_limits?.executors ?? DEFAULTS.parallel_limits.executors,
173
+ };
174
+ const timeouts = {
175
+ deadlock_timeout_seconds: rawSettings.timeouts?.deadlock_timeout_seconds ??
176
+ DEFAULTS.timeouts.deadlock_timeout_seconds,
177
+ operation_timeout_seconds: rawSettings.timeouts?.operation_timeout_seconds ??
178
+ DEFAULTS.timeouts.operation_timeout_seconds,
179
+ };
180
+ const evidenceSettings = {
181
+ retention_days: rawSettings.evidence_settings?.retention_days ??
182
+ DEFAULTS.evidence_settings.retention_days,
183
+ compression_enabled: rawSettings.evidence_settings?.compression_enabled ??
184
+ DEFAULTS.evidence_settings.compression_enabled,
185
+ };
186
+ // Validate ranges
187
+ this.validateTaskLimits(taskLimits);
188
+ this.validateParallelLimits(parallelLimits);
189
+ return {
190
+ task_limits: taskLimits,
191
+ parallel_limits: parallelLimits,
192
+ timeouts,
193
+ evidence_settings: evidenceSettings,
194
+ project_path: projectPath,
195
+ claude_dir: claudeDir,
196
+ };
197
+ }
198
+ /**
199
+ * Validate task limits are within range
200
+ */
201
+ validateTaskLimits(limits) {
202
+ const { files, tests, seconds } = limits;
203
+ const ranges = RANGES.task_limits;
204
+ if (files < ranges.files.min || files > ranges.files.max) {
205
+ throw new ConfigurationError(error_codes_1.ErrorCode.E104_CONFIGURATION_SCHEMA_VALIDATION_FAILURE, `task_limits.files must be between ${ranges.files.min} and ${ranges.files.max}, got ${files}`, { field: 'task_limits.files', value: files, range: ranges.files });
206
+ }
207
+ if (tests < ranges.tests.min || tests > ranges.tests.max) {
208
+ throw new ConfigurationError(error_codes_1.ErrorCode.E104_CONFIGURATION_SCHEMA_VALIDATION_FAILURE, `task_limits.tests must be between ${ranges.tests.min} and ${ranges.tests.max}, got ${tests}`, { field: 'task_limits.tests', value: tests, range: ranges.tests });
209
+ }
210
+ if (seconds < ranges.seconds.min || seconds > ranges.seconds.max) {
211
+ throw new ConfigurationError(error_codes_1.ErrorCode.E104_CONFIGURATION_SCHEMA_VALIDATION_FAILURE, `task_limits.seconds must be between ${ranges.seconds.min} and ${ranges.seconds.max}, got ${seconds}`, { field: 'task_limits.seconds', value: seconds, range: ranges.seconds });
212
+ }
213
+ }
214
+ /**
215
+ * Validate parallel limits are within range
216
+ */
217
+ validateParallelLimits(limits) {
218
+ const { subagents, executors } = limits;
219
+ const ranges = RANGES.parallel_limits;
220
+ if (subagents < ranges.subagents.min || subagents > ranges.subagents.max) {
221
+ throw new ConfigurationError(error_codes_1.ErrorCode.E104_CONFIGURATION_SCHEMA_VALIDATION_FAILURE, `parallel_limits.subagents must be between ${ranges.subagents.min} and ${ranges.subagents.max}, got ${subagents}`, { field: 'parallel_limits.subagents', value: subagents, range: ranges.subagents });
222
+ }
223
+ if (executors < ranges.executors.min || executors > ranges.executors.max) {
224
+ throw new ConfigurationError(error_codes_1.ErrorCode.E104_CONFIGURATION_SCHEMA_VALIDATION_FAILURE, `parallel_limits.executors must be between ${ranges.executors.min} and ${ranges.executors.max}, got ${executors}`, { field: 'parallel_limits.executors', value: executors, range: ranges.executors });
225
+ }
226
+ }
227
+ /**
228
+ * Get default configuration
229
+ */
230
+ getDefaults() {
231
+ return { ...DEFAULTS };
232
+ }
233
+ /**
234
+ * Get validation ranges
235
+ */
236
+ getRanges() {
237
+ return { ...RANGES };
238
+ }
239
+ }
240
+ exports.ConfigurationManager = ConfigurationManager;
241
+ //# sourceMappingURL=configuration-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration-manager.js","sourceRoot":"","sources":["../../src/config/configuration-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Continuation Control Manager
3
+ * Based on 04_COMPONENTS.md L156-166
4
+ *
5
+ * Responsible for:
6
+ * - Automatic progression prevention
7
+ * - Explicit approval requirement
8
+ * - Continuation condition validation
9
+ * - Meaningless continuation rejection
10
+ * - next_action determination
11
+ */
12
+ import { OverallStatus } from '../models/enums';
13
+ import { ErrorCode } from '../errors/error-codes';
14
+ /**
15
+ * Continuation Control Manager Error
16
+ */
17
+ export declare class ContinuationControlError extends Error {
18
+ readonly code: ErrorCode;
19
+ readonly details?: Record<string, unknown>;
20
+ constructor(code: ErrorCode, message?: string, details?: Record<string, unknown>);
21
+ }
22
+ /**
23
+ * Session state interface for continuation checks
24
+ */
25
+ interface SessionState {
26
+ session_id: string;
27
+ overall_status: OverallStatus;
28
+ tasks_completed: number;
29
+ tasks_total: number;
30
+ has_explicit_approval?: boolean;
31
+ evidence_valid?: boolean;
32
+ no_critical_errors?: boolean;
33
+ current_phase?: string;
34
+ remaining_work?: string[];
35
+ continuation_in_progress?: boolean;
36
+ }
37
+ /**
38
+ * Approval record interface
39
+ */
40
+ interface ApprovalRecord {
41
+ session_id: string;
42
+ approved_by: string;
43
+ timestamp: string;
44
+ }
45
+ /**
46
+ * Validation result interface
47
+ */
48
+ interface ValidationResult {
49
+ valid: boolean;
50
+ failed_conditions: string[];
51
+ }
52
+ /**
53
+ * Continuation request interface
54
+ */
55
+ interface ContinuationRequest {
56
+ request_id: string;
57
+ session_id: string;
58
+ status: 'pending' | 'approved' | 'rejected' | 'expired';
59
+ requested_at: string;
60
+ approved_at?: string;
61
+ rejection_reason?: string;
62
+ }
63
+ /**
64
+ * Next action determination interface
65
+ */
66
+ interface NextAction {
67
+ next_action: boolean;
68
+ next_action_reason: string;
69
+ }
70
+ /**
71
+ * Incomplete task reason interface
72
+ */
73
+ interface IncompleteTaskReason {
74
+ task_id: string;
75
+ reason: string;
76
+ timestamp: string;
77
+ }
78
+ /**
79
+ * Continuation Control Manager class
80
+ */
81
+ export declare class ContinuationControlManager {
82
+ private requests;
83
+ private requestTimes;
84
+ private incompleteReasons;
85
+ private approvals;
86
+ /**
87
+ * Create a new ContinuationControlManager
88
+ */
89
+ constructor();
90
+ /**
91
+ * Check if continuation is allowed based on session state
92
+ */
93
+ canContinue(sessionState: SessionState): boolean;
94
+ /**
95
+ * Check if phase progression is allowed
96
+ */
97
+ canProgressPhase(sessionState: SessionState): boolean;
98
+ /**
99
+ * Check if approval is required
100
+ */
101
+ requiresApproval(sessionState: SessionState): boolean;
102
+ /**
103
+ * Record an approval
104
+ * @throws ContinuationControlError with E201 if session ID is missing
105
+ */
106
+ recordApproval(sessionId: string, approvedBy: string): ApprovalRecord;
107
+ /**
108
+ * Validate all continuation conditions
109
+ */
110
+ validateContinuationConditions(sessionState: SessionState): ValidationResult;
111
+ /**
112
+ * Request continuation
113
+ * @throws ContinuationControlError with E207 if continuation is meaningless
114
+ */
115
+ requestContinuation(sessionState: SessionState): void;
116
+ /**
117
+ * Create a continuation request
118
+ */
119
+ createContinuationRequest(sessionState: SessionState): ContinuationRequest;
120
+ /**
121
+ * Approve a continuation request
122
+ */
123
+ approveContinuationRequest(requestId: string): ContinuationRequest;
124
+ /**
125
+ * Reject a continuation request
126
+ */
127
+ rejectContinuationRequest(requestId: string, reason: string): ContinuationRequest;
128
+ /**
129
+ * Set request time for testing purposes
130
+ */
131
+ setRequestTimeForTesting(requestId: string, timestamp: number): void;
132
+ /**
133
+ * Expire old pending requests
134
+ */
135
+ expireOldRequests(timeoutMs: number): void;
136
+ /**
137
+ * Get a continuation request by ID
138
+ */
139
+ getContinuationRequest(requestId: string): ContinuationRequest;
140
+ /**
141
+ * Determine next action based on session state
142
+ */
143
+ determineNextAction(sessionState: SessionState): NextAction;
144
+ /**
145
+ * Record a reason for incomplete task
146
+ */
147
+ recordIncompleteReason(taskId: string, reason: string): void;
148
+ /**
149
+ * Get all incomplete task reasons
150
+ */
151
+ getIncompleteTaskReasons(): IncompleteTaskReason[];
152
+ }
153
+ export {};
154
+ //# sourceMappingURL=continuation-control-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continuation-control-manager.d.ts","sourceRoot":"","sources":["../../src/continuation/continuation-control-manager.ts"],"names":[],"mappings":"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"}