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,371 @@
1
+ /**
2
+ * REPL Interface for PM Orchestrator Runner
3
+ * Provides an interactive CLI experience with slash commands
4
+ *
5
+ * Supports two execution modes (per spec 10_REPL_UX.md):
6
+ * - Interactive mode: TTY connected, readline with prompt
7
+ * - Non-interactive mode: stdin script / heredoc / pipe
8
+ *
9
+ * Non-interactive mode guarantees:
10
+ * - Sequential Processing: Each command completes before next starts
11
+ * - Output Flush: All stdout is flushed before exit
12
+ * - Deterministic Exit Code: 0=COMPLETE, 1=ERROR, 2=INCOMPLETE
13
+ *
14
+ * Project Mode (per spec 10_REPL_UX.md, Property 32, 33):
15
+ * - temp: Use temporary directory (default, cleaned up on exit)
16
+ * - fixed: Use specified directory (persists after exit)
17
+ */
18
+ import { EventEmitter } from 'events';
19
+ import { RunnerCore } from '../core/runner-core';
20
+ import { ExecutorSupervisor } from '../supervisor/executor-supervisor';
21
+ /**
22
+ * Project Mode - per spec 10_REPL_UX.md
23
+ * Controls how verification_root is determined
24
+ * - temp: Use temporary directory (default)
25
+ * - fixed: Use specified --project-root directory
26
+ */
27
+ export type ProjectMode = 'temp' | 'fixed';
28
+ /**
29
+ * Verified File record - per spec 06_CORRECTNESS_PROPERTIES.md Property 33
30
+ * Records file verification result with traceability information
31
+ */
32
+ export interface VerifiedFile {
33
+ /** Path relative to verification_root */
34
+ path: string;
35
+ /** Whether the file exists */
36
+ exists: boolean;
37
+ /** ISO 8601 timestamp when detection occurred */
38
+ detected_at: string;
39
+ /** Method used to detect the file */
40
+ detection_method: 'diff' | 'executor_claim';
41
+ }
42
+ /**
43
+ * Task Log structure with verification info - per spec 05_DATA_MODELS.md
44
+ */
45
+ export interface TaskLog {
46
+ task_id: string;
47
+ description: string;
48
+ verification_root: string;
49
+ verified_files?: VerifiedFile[];
50
+ created_at: string;
51
+ }
52
+ /**
53
+ * REPL configuration - extended for Property 32, 33
54
+ */
55
+ export interface REPLConfig {
56
+ projectPath?: string;
57
+ evidenceDir?: string;
58
+ prompt?: string;
59
+ authMode?: 'claude-code' | 'api-key';
60
+ /** Timeout for Claude Code execution in milliseconds (default: 120000) */
61
+ timeout?: number;
62
+ /** Force non-interactive mode (for testing) */
63
+ forceNonInteractive?: boolean;
64
+ /**
65
+ * Project mode - per spec 10_REPL_UX.md
66
+ * - 'temp': Use temporary directory for verification_root (default)
67
+ * - 'fixed': Use projectRoot as verification_root
68
+ */
69
+ projectMode?: ProjectMode;
70
+ /**
71
+ * Project root for fixed mode - per spec 10_REPL_UX.md
72
+ * Required when projectMode is 'fixed'
73
+ * Must be an existing directory
74
+ */
75
+ projectRoot?: string;
76
+ /**
77
+ * Print project path on startup - per spec 10_REPL_UX.md
78
+ * Outputs PROJECT_PATH=<path> for machine-readable parsing
79
+ */
80
+ printProjectPath?: boolean;
81
+ }
82
+ /**
83
+ * REPL Execution Mode - per spec 05_DATA_MODELS.md
84
+ * Detected at startup, determines I/O behavior
85
+ */
86
+ export type ReplExecutionMode = 'interactive' | 'non_interactive';
87
+ /**
88
+ * Exit codes for non-interactive mode - per spec 10_REPL_UX.md
89
+ * These are deterministic based on session state
90
+ */
91
+ export declare const EXIT_CODES: {
92
+ readonly COMPLETE: 0;
93
+ readonly ERROR: 1;
94
+ readonly INCOMPLETE: 2;
95
+ };
96
+ /**
97
+ * Command result - per spec 10_REPL_UX.md L66
98
+ * All commands must return a status (fail-closed principle)
99
+ */
100
+ export interface CommandResult {
101
+ success: boolean;
102
+ message?: string;
103
+ error?: {
104
+ code: string;
105
+ message: string;
106
+ };
107
+ }
108
+ /**
109
+ * REPL session state
110
+ */
111
+ interface REPLSession {
112
+ sessionId: string | null;
113
+ projectPath: string;
114
+ runner: RunnerCore | null;
115
+ supervisor: ExecutorSupervisor | null;
116
+ status: 'idle' | 'running' | 'paused';
117
+ }
118
+ /**
119
+ * REPL Interface class
120
+ */
121
+ export declare class REPLInterface extends EventEmitter {
122
+ private readonly config;
123
+ private rl;
124
+ private session;
125
+ private running;
126
+ private initOnlyMode;
127
+ private inputQueue;
128
+ private isProcessingInput;
129
+ private executionMode;
130
+ private exitCode;
131
+ private hasError;
132
+ private hasIncompleteTasks;
133
+ private sessionCompleted;
134
+ private projectMode;
135
+ private verificationRoot;
136
+ private tempVerificationRoot;
137
+ private initCommand;
138
+ private modelCommand;
139
+ private sessionCommands;
140
+ private statusCommands;
141
+ private providerCommand;
142
+ private modelsCommand;
143
+ private keysCommand;
144
+ private logsCommand;
145
+ constructor(config?: REPLConfig);
146
+ /**
147
+ * Get project mode - per spec 10_REPL_UX.md
148
+ * @returns Current project mode ('temp' or 'fixed')
149
+ */
150
+ getProjectMode(): ProjectMode;
151
+ /**
152
+ * Get verification root - per spec Property 32, 33
153
+ * @returns Absolute path to verification root directory
154
+ */
155
+ getVerificationRoot(): string;
156
+ /**
157
+ * Initialize for use - called by start() or manually for testing
158
+ * Handles project path setup and PROJECT_PATH output
159
+ */
160
+ initialize(): Promise<void>;
161
+ /**
162
+ * Initialize temporary project root - per spec Property 32
163
+ * Creates a temporary directory for verification_root in temp mode
164
+ * Also creates minimal .claude structure to avoid init-only mode
165
+ */
166
+ initializeTempProjectRoot(): Promise<void>;
167
+ /**
168
+ * Verify files and return verification records - per spec Property 33
169
+ * @param absolutePaths - Array of absolute file paths to verify
170
+ * @returns Array of VerifiedFile records with relative paths
171
+ */
172
+ verifyFiles(absolutePaths: string[]): VerifiedFile[];
173
+ /**
174
+ * Create a TaskLog with verification info - per spec Property 33
175
+ * @param taskId - Task identifier
176
+ * @param description - Task description
177
+ * @returns TaskLog with verification_root populated
178
+ */
179
+ createTaskLog(taskId: string, description: string): TaskLog;
180
+ /**
181
+ * Cleanup resources - handles temp directory cleanup
182
+ * Per spec Property 32: temp mode directories may be cleaned up
183
+ */
184
+ cleanup(): Promise<void>;
185
+ /**
186
+ * Start the REPL
187
+ * Per spec 10_REPL_UX.md L45: validate project structure on startup
188
+ *
189
+ * If .claude is missing, enter init-only mode instead of throwing.
190
+ * In init-only mode, only /help, /init, /exit are available.
191
+ */
192
+ start(): Promise<void>;
193
+ /**
194
+ * Process input line
195
+ */
196
+ private processInput;
197
+ /**
198
+ * Enqueue input for sequential processing
199
+ * This prevents race conditions when piped input arrives faster than processing
200
+ */
201
+ private enqueueInput;
202
+ /**
203
+ * Process queued inputs sequentially
204
+ * Ensures each input completes before the next one starts
205
+ * Per spec 10_REPL_UX.md: Sequential Processing Guarantee
206
+ */
207
+ private processQueue;
208
+ /**
209
+ * Process slash command
210
+ * Per spec 10_REPL_UX.md L66: All commands must return a status (fail-closed)
211
+ *
212
+ * In init-only mode, only /help, /init, /exit are allowed.
213
+ * Other commands return ERROR with instruction to run /init first.
214
+ */
215
+ processCommand(input: string): Promise<CommandResult>;
216
+ /**
217
+ * Process natural language input
218
+ * Per spec 10_REPL_UX.md L117-118: Model selection is REPL-local
219
+ * Model is read from .claude/repl.json and passed to executor via runner
220
+ */
221
+ private processNaturalLanguage;
222
+ /**
223
+ * Print welcome message
224
+ */
225
+ private printWelcome;
226
+ /**
227
+ * Print help
228
+ */
229
+ private printHelp;
230
+ /**
231
+ * Handle /init command
232
+ */
233
+ private handleInit;
234
+ /**
235
+ * Handle /model command
236
+ * Per spec 10_REPL_UX.md L113-143:
237
+ * - /model displays current model or "UNSET"
238
+ * - /model <name> sets model and generates Evidence
239
+ * - .claude/ missing -> E101 ERROR
240
+ * - JSON parse error -> E105 ERROR
241
+ */
242
+ private handleModel;
243
+ /**
244
+ * Handle /provider command
245
+ * Per spec 10_REPL_UX.md Section 2.1
246
+ */
247
+ private handleProvider;
248
+ /**
249
+ * Handle /models command
250
+ * Per spec 10_REPL_UX.md Section 2.2
251
+ */
252
+ private handleModels;
253
+ /**
254
+ * Handle /keys command
255
+ * Per spec 10_REPL_UX.md Section 2.3
256
+ */
257
+ private handleKeys;
258
+ /**
259
+ * Handle /logs command
260
+ * Per spec 10_REPL_UX.md Section 2.4
261
+ */
262
+ private handleLogs;
263
+ /**
264
+ * Handle /tasks command
265
+ */
266
+ private handleTasks;
267
+ /**
268
+ * Handle /status command
269
+ */
270
+ private handleStatus;
271
+ /**
272
+ * Handle /start command
273
+ * Per spec Property 32, 33: Use verification_root for file operations in temp mode
274
+ */
275
+ private handleStart;
276
+ /**
277
+ * Handle /continue command
278
+ */
279
+ private handleContinue;
280
+ /**
281
+ * Handle /approve command
282
+ */
283
+ private handleApprove;
284
+ /**
285
+ * Handle /exit command
286
+ * Per spec 10_REPL_UX.md: Ensure clean exit with flushed output
287
+ *
288
+ * Guarantees:
289
+ * - Session state is persisted before exit
290
+ * - All output is flushed before readline closes
291
+ * - Double-completion is prevented via sessionCompleted flag
292
+ */
293
+ private handleExit;
294
+ /**
295
+ * Print execution result
296
+ * Per spec 10_REPL_UX.md: Error details must be visible for fail-closed debugging
297
+ */
298
+ private printExecutionResult;
299
+ /**
300
+ * Print message with flush guarantee for non-interactive mode
301
+ * Per spec 10_REPL_UX.md: Output Flush Guarantee
302
+ */
303
+ private print;
304
+ /**
305
+ * Flush stdout - ensures all output is written before continuing
306
+ * Critical for non-interactive mode where process may exit immediately after
307
+ */
308
+ private flushStdout;
309
+ /**
310
+ * Print error
311
+ */
312
+ private printError;
313
+ /**
314
+ * Validate project structure - per spec 10_REPL_UX.md L45
315
+ * "REPL の起動時点で validate 相当の検証を行い、必須構造がなければ即 ERROR とする。"
316
+ *
317
+ * @returns Validation result with valid flag and errors array
318
+ */
319
+ validateProjectStructure(): Promise<{
320
+ valid: boolean;
321
+ errors: string[];
322
+ }>;
323
+ /**
324
+ * Check if REPL is in init-only mode
325
+ * Init-only mode is active when .claude directory is missing
326
+ * In this mode, only /help, /init, /exit are allowed
327
+ *
328
+ * @returns true if in init-only mode (rechecks file system)
329
+ */
330
+ isInitOnlyMode(): Promise<boolean>;
331
+ /**
332
+ * Tab completion for slash commands
333
+ * Per spec 10_REPL_UX.md: Tab completion support
334
+ *
335
+ * @param line - Current input line
336
+ * @returns Tuple of [completions, original line]
337
+ */
338
+ private completer;
339
+ /**
340
+ * Detect execution mode based on TTY, environment, or config
341
+ * Per spec 10_REPL_UX.md: Non-interactive mode detection
342
+ */
343
+ private detectExecutionMode;
344
+ /**
345
+ * Check if running in non-interactive mode
346
+ */
347
+ isNonInteractiveMode(): boolean;
348
+ /**
349
+ * Get the current execution mode
350
+ */
351
+ getExecutionMode(): ReplExecutionMode;
352
+ /**
353
+ * Set exit code based on current state
354
+ * Per spec 10_REPL_UX.md: Deterministic exit codes
355
+ */
356
+ private updateExitCode;
357
+ /**
358
+ * Get the exit code (for non-interactive mode)
359
+ */
360
+ getExitCode(): number;
361
+ /**
362
+ * Get session state (for testing)
363
+ */
364
+ getSessionState(): REPLSession;
365
+ /**
366
+ * Check if running (for testing)
367
+ */
368
+ isRunning(): boolean;
369
+ }
370
+ export {};
371
+ //# sourceMappingURL=repl-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repl-interface.d.ts","sourceRoot":"","sources":["../../src/repl/repl-interface.ts"],"names":[],"mappings":"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"}