pm-orchestrator-runner 1.0.7 → 1.0.8

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 (94) hide show
  1. package/README.md +20 -10
  2. package/dist/cli/index.js +36 -1
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/config/index.d.ts +9 -0
  5. package/dist/config/index.d.ts.map +1 -0
  6. package/dist/config/index.js +19 -0
  7. package/dist/config/index.js.map +1 -0
  8. package/dist/config/namespace.d.ts +86 -0
  9. package/dist/config/namespace.d.ts.map +1 -0
  10. package/dist/config/namespace.js +150 -0
  11. package/dist/config/namespace.js.map +1 -0
  12. package/dist/core/runner-core.d.ts +2 -0
  13. package/dist/core/runner-core.d.ts.map +1 -1
  14. package/dist/core/runner-core.js +27 -1
  15. package/dist/core/runner-core.js.map +1 -1
  16. package/dist/executor/claude-code-executor.d.ts +28 -0
  17. package/dist/executor/claude-code-executor.d.ts.map +1 -1
  18. package/dist/executor/claude-code-executor.js +184 -1
  19. package/dist/executor/claude-code-executor.js.map +1 -1
  20. package/dist/executor/deterministic-executor.d.ts +2 -1
  21. package/dist/executor/deterministic-executor.d.ts.map +1 -1
  22. package/dist/executor/deterministic-executor.js +7 -0
  23. package/dist/executor/deterministic-executor.js.map +1 -1
  24. package/dist/executor/recovery-executor.d.ts +2 -1
  25. package/dist/executor/recovery-executor.d.ts.map +1 -1
  26. package/dist/executor/recovery-executor.js +7 -0
  27. package/dist/executor/recovery-executor.js.map +1 -1
  28. package/dist/models/enums.d.ts +54 -0
  29. package/dist/models/enums.d.ts.map +1 -1
  30. package/dist/models/enums.js +59 -1
  31. package/dist/models/enums.js.map +1 -1
  32. package/dist/models/index.d.ts +4 -1
  33. package/dist/models/index.d.ts.map +1 -1
  34. package/dist/models/index.js +50 -2
  35. package/dist/models/index.js.map +1 -1
  36. package/dist/models/run.d.ts +82 -0
  37. package/dist/models/run.d.ts.map +1 -0
  38. package/dist/models/run.js +161 -0
  39. package/dist/models/run.js.map +1 -0
  40. package/dist/models/task-group.d.ts +164 -0
  41. package/dist/models/task-group.d.ts.map +1 -0
  42. package/dist/models/task-group.js +246 -0
  43. package/dist/models/task-group.js.map +1 -0
  44. package/dist/models/task.d.ts +7 -0
  45. package/dist/models/task.d.ts.map +1 -1
  46. package/dist/models/task.js.map +1 -1
  47. package/dist/models/thread.d.ts +53 -0
  48. package/dist/models/thread.d.ts.map +1 -0
  49. package/dist/models/thread.js +92 -0
  50. package/dist/models/thread.js.map +1 -0
  51. package/dist/pool/agent-pool.d.ts.map +1 -1
  52. package/dist/pool/agent-pool.js +2 -3
  53. package/dist/pool/agent-pool.js.map +1 -1
  54. package/dist/prompt/index.d.ts +8 -0
  55. package/dist/prompt/index.d.ts.map +1 -0
  56. package/dist/prompt/index.js +13 -0
  57. package/dist/prompt/index.js.map +1 -0
  58. package/dist/prompt/prompt-assembler.d.ts +145 -0
  59. package/dist/prompt/prompt-assembler.d.ts.map +1 -0
  60. package/dist/prompt/prompt-assembler.js +242 -0
  61. package/dist/prompt/prompt-assembler.js.map +1 -0
  62. package/dist/queue/index.d.ts +41 -0
  63. package/dist/queue/index.d.ts.map +1 -0
  64. package/dist/queue/index.js +42 -0
  65. package/dist/queue/index.js.map +1 -0
  66. package/dist/queue/queue-poller.d.ts +107 -0
  67. package/dist/queue/queue-poller.d.ts.map +1 -0
  68. package/dist/queue/queue-poller.js +181 -0
  69. package/dist/queue/queue-poller.js.map +1 -0
  70. package/dist/queue/queue-store.d.ts +163 -0
  71. package/dist/queue/queue-store.d.ts.map +1 -0
  72. package/dist/queue/queue-store.js +421 -0
  73. package/dist/queue/queue-store.js.map +1 -0
  74. package/dist/repl/index.d.ts +1 -0
  75. package/dist/repl/index.d.ts.map +1 -1
  76. package/dist/repl/index.js +3 -1
  77. package/dist/repl/index.js.map +1 -1
  78. package/dist/repl/repl-interface.d.ts +40 -5
  79. package/dist/repl/repl-interface.d.ts.map +1 -1
  80. package/dist/repl/repl-interface.js +95 -17
  81. package/dist/repl/repl-interface.js.map +1 -1
  82. package/dist/repl/two-pane-renderer.d.ts +148 -0
  83. package/dist/repl/two-pane-renderer.d.ts.map +1 -0
  84. package/dist/repl/two-pane-renderer.js +239 -0
  85. package/dist/repl/two-pane-renderer.js.map +1 -0
  86. package/dist/web/index.d.ts +45 -0
  87. package/dist/web/index.d.ts.map +1 -0
  88. package/dist/web/index.js +47 -0
  89. package/dist/web/index.js.map +1 -0
  90. package/dist/web/server.d.ts +71 -0
  91. package/dist/web/server.d.ts.map +1 -0
  92. package/dist/web/server.js +329 -0
  93. package/dist/web/server.js.map +1 -0
  94. package/package.json +11 -3
@@ -0,0 +1,421 @@
1
+ "use strict";
2
+ /**
3
+ * Queue Store - DynamoDB Local implementation
4
+ * Per spec/20_QUEUE_STORE.md
5
+ *
6
+ * Provides queue operations with:
7
+ * - Atomic QUEUED -> RUNNING transitions (conditional update)
8
+ * - Double execution prevention
9
+ * - Fail-closed error handling
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.QueueStore = void 0;
13
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
14
+ const lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb");
15
+ const uuid_1 = require("uuid");
16
+ /**
17
+ * Queue Store
18
+ * Manages task queue with DynamoDB Local
19
+ */
20
+ class QueueStore {
21
+ client;
22
+ docClient;
23
+ tableName;
24
+ endpoint;
25
+ constructor(config = {}) {
26
+ this.endpoint = config.endpoint || 'http://localhost:8000';
27
+ this.tableName = config.tableName || 'pm-runner-queue';
28
+ const region = config.region || 'local';
29
+ this.client = new client_dynamodb_1.DynamoDBClient({
30
+ endpoint: this.endpoint,
31
+ region: region,
32
+ credentials: {
33
+ accessKeyId: 'local',
34
+ secretAccessKey: 'local',
35
+ },
36
+ });
37
+ this.docClient = lib_dynamodb_1.DynamoDBDocumentClient.from(this.client, {
38
+ marshallOptions: {
39
+ removeUndefinedValues: true,
40
+ },
41
+ });
42
+ }
43
+ /**
44
+ * Get table name
45
+ */
46
+ getTableName() {
47
+ return this.tableName;
48
+ }
49
+ /**
50
+ * Get endpoint
51
+ */
52
+ getEndpoint() {
53
+ return this.endpoint;
54
+ }
55
+ /**
56
+ * Check if table exists
57
+ */
58
+ async tableExists() {
59
+ try {
60
+ await this.client.send(new client_dynamodb_1.DescribeTableCommand({ TableName: this.tableName }));
61
+ return true;
62
+ }
63
+ catch (error) {
64
+ if (error instanceof client_dynamodb_1.ResourceNotFoundException) {
65
+ return false;
66
+ }
67
+ throw error;
68
+ }
69
+ }
70
+ /**
71
+ * Create table with required GSIs
72
+ * Per spec/20_QUEUE_STORE.md table definition
73
+ */
74
+ async createTable() {
75
+ const command = new client_dynamodb_1.CreateTableCommand({
76
+ TableName: this.tableName,
77
+ KeySchema: [{ AttributeName: 'task_id', KeyType: 'HASH' }],
78
+ AttributeDefinitions: [
79
+ { AttributeName: 'task_id', AttributeType: 'S' },
80
+ { AttributeName: 'session_id', AttributeType: 'S' },
81
+ { AttributeName: 'status', AttributeType: 'S' },
82
+ { AttributeName: 'created_at', AttributeType: 'S' },
83
+ { AttributeName: 'task_group_id', AttributeType: 'S' },
84
+ ],
85
+ GlobalSecondaryIndexes: [
86
+ {
87
+ IndexName: 'session-index',
88
+ KeySchema: [
89
+ { AttributeName: 'session_id', KeyType: 'HASH' },
90
+ { AttributeName: 'created_at', KeyType: 'RANGE' },
91
+ ],
92
+ Projection: { ProjectionType: 'ALL' },
93
+ ProvisionedThroughput: {
94
+ ReadCapacityUnits: 5,
95
+ WriteCapacityUnits: 5,
96
+ },
97
+ },
98
+ {
99
+ IndexName: 'status-index',
100
+ KeySchema: [
101
+ { AttributeName: 'status', KeyType: 'HASH' },
102
+ { AttributeName: 'created_at', KeyType: 'RANGE' },
103
+ ],
104
+ Projection: { ProjectionType: 'ALL' },
105
+ ProvisionedThroughput: {
106
+ ReadCapacityUnits: 5,
107
+ WriteCapacityUnits: 5,
108
+ },
109
+ },
110
+ {
111
+ IndexName: 'task-group-index',
112
+ KeySchema: [
113
+ { AttributeName: 'task_group_id', KeyType: 'HASH' },
114
+ { AttributeName: 'created_at', KeyType: 'RANGE' },
115
+ ],
116
+ Projection: { ProjectionType: 'ALL' },
117
+ ProvisionedThroughput: {
118
+ ReadCapacityUnits: 5,
119
+ WriteCapacityUnits: 5,
120
+ },
121
+ },
122
+ ],
123
+ ProvisionedThroughput: {
124
+ ReadCapacityUnits: 5,
125
+ WriteCapacityUnits: 5,
126
+ },
127
+ });
128
+ await this.client.send(command);
129
+ }
130
+ /**
131
+ * Ensure table exists, create if not
132
+ */
133
+ async ensureTable() {
134
+ const exists = await this.tableExists();
135
+ if (!exists) {
136
+ await this.createTable();
137
+ // Wait for table to be active
138
+ await this.waitForTableActive();
139
+ }
140
+ }
141
+ /**
142
+ * Wait for table to become active
143
+ */
144
+ async waitForTableActive(maxWaitMs = 30000) {
145
+ const startTime = Date.now();
146
+ while (Date.now() - startTime < maxWaitMs) {
147
+ try {
148
+ const result = await this.client.send(new client_dynamodb_1.DescribeTableCommand({ TableName: this.tableName }));
149
+ if (result.Table?.TableStatus === 'ACTIVE') {
150
+ return;
151
+ }
152
+ }
153
+ catch {
154
+ // Table not ready yet
155
+ }
156
+ await new Promise(resolve => setTimeout(resolve, 100));
157
+ }
158
+ throw new Error(`Table ${this.tableName} did not become active within ${maxWaitMs}ms`);
159
+ }
160
+ /**
161
+ * Enqueue a new task
162
+ * Creates item with status=QUEUED
163
+ *
164
+ * @param sessionId - Session ID
165
+ * @param taskGroupId - Task Group ID
166
+ * @param prompt - User prompt
167
+ * @param taskId - Optional task ID (generates if not provided)
168
+ * @returns Created queue item
169
+ */
170
+ async enqueue(sessionId, taskGroupId, prompt, taskId) {
171
+ const now = new Date().toISOString();
172
+ const item = {
173
+ task_id: taskId || (0, uuid_1.v4)(),
174
+ task_group_id: taskGroupId,
175
+ session_id: sessionId,
176
+ status: 'QUEUED',
177
+ prompt,
178
+ created_at: now,
179
+ updated_at: now,
180
+ };
181
+ await this.docClient.send(new lib_dynamodb_1.PutCommand({
182
+ TableName: this.tableName,
183
+ Item: item,
184
+ }));
185
+ return item;
186
+ }
187
+ /**
188
+ * Get item by task_id
189
+ */
190
+ async getItem(taskId) {
191
+ const result = await this.docClient.send(new lib_dynamodb_1.GetCommand({
192
+ TableName: this.tableName,
193
+ Key: { task_id: taskId },
194
+ }));
195
+ return result.Item || null;
196
+ }
197
+ /**
198
+ * Claim the oldest QUEUED task (atomic QUEUED -> RUNNING)
199
+ * Per spec: Uses conditional update for double execution prevention
200
+ *
201
+ * @returns ClaimResult with success flag and item if claimed
202
+ */
203
+ async claim() {
204
+ // Query for oldest QUEUED item using status-index
205
+ const queryResult = await this.docClient.send(new lib_dynamodb_1.QueryCommand({
206
+ TableName: this.tableName,
207
+ IndexName: 'status-index',
208
+ KeyConditionExpression: '#status = :queued',
209
+ ExpressionAttributeNames: {
210
+ '#status': 'status',
211
+ },
212
+ ExpressionAttributeValues: {
213
+ ':queued': 'QUEUED',
214
+ },
215
+ Limit: 1,
216
+ ScanIndexForward: true, // Ascending by created_at (oldest first)
217
+ }));
218
+ if (!queryResult.Items || queryResult.Items.length === 0) {
219
+ return { success: false };
220
+ }
221
+ const item = queryResult.Items[0];
222
+ // Atomic update: QUEUED -> RUNNING with conditional check
223
+ try {
224
+ const now = new Date().toISOString();
225
+ await this.docClient.send(new lib_dynamodb_1.UpdateCommand({
226
+ TableName: this.tableName,
227
+ Key: { task_id: item.task_id },
228
+ UpdateExpression: 'SET #status = :running, updated_at = :now',
229
+ ConditionExpression: '#status = :queued',
230
+ ExpressionAttributeNames: {
231
+ '#status': 'status',
232
+ },
233
+ ExpressionAttributeValues: {
234
+ ':running': 'RUNNING',
235
+ ':queued': 'QUEUED',
236
+ ':now': now,
237
+ },
238
+ }));
239
+ // Update local item with new status
240
+ item.status = 'RUNNING';
241
+ item.updated_at = now;
242
+ return { success: true, item };
243
+ }
244
+ catch (error) {
245
+ // ConditionalCheckFailed means another process claimed it
246
+ if (error &&
247
+ typeof error === 'object' &&
248
+ 'name' in error &&
249
+ error.name === 'ConditionalCheckFailedException') {
250
+ return { success: false, error: 'Task already claimed by another process' };
251
+ }
252
+ // Fail-closed: re-throw unexpected errors
253
+ throw error;
254
+ }
255
+ }
256
+ /**
257
+ * Update task status
258
+ * Per spec: RUNNING -> COMPLETE or RUNNING -> ERROR
259
+ *
260
+ * @param taskId - Task ID
261
+ * @param status - New status
262
+ * @param errorMessage - Optional error message (for ERROR status)
263
+ */
264
+ async updateStatus(taskId, status, errorMessage) {
265
+ const now = new Date().toISOString();
266
+ const updateExpression = errorMessage
267
+ ? 'SET #status = :status, updated_at = :now, error_message = :error'
268
+ : 'SET #status = :status, updated_at = :now';
269
+ const expressionAttributeValues = {
270
+ ':status': status,
271
+ ':now': now,
272
+ };
273
+ if (errorMessage) {
274
+ expressionAttributeValues[':error'] = errorMessage;
275
+ }
276
+ await this.docClient.send(new lib_dynamodb_1.UpdateCommand({
277
+ TableName: this.tableName,
278
+ Key: { task_id: taskId },
279
+ UpdateExpression: updateExpression,
280
+ ExpressionAttributeNames: {
281
+ '#status': 'status',
282
+ },
283
+ ExpressionAttributeValues: expressionAttributeValues,
284
+ }));
285
+ }
286
+ /**
287
+ * Get items by session ID
288
+ * Uses session-index GSI
289
+ */
290
+ async getBySession(sessionId) {
291
+ const result = await this.docClient.send(new lib_dynamodb_1.QueryCommand({
292
+ TableName: this.tableName,
293
+ IndexName: 'session-index',
294
+ KeyConditionExpression: 'session_id = :sid',
295
+ ExpressionAttributeValues: {
296
+ ':sid': sessionId,
297
+ },
298
+ ScanIndexForward: true, // Ascending by created_at
299
+ }));
300
+ return result.Items || [];
301
+ }
302
+ /**
303
+ * Get items by status
304
+ * Uses status-index GSI
305
+ */
306
+ async getByStatus(status) {
307
+ const result = await this.docClient.send(new lib_dynamodb_1.QueryCommand({
308
+ TableName: this.tableName,
309
+ IndexName: 'status-index',
310
+ KeyConditionExpression: '#status = :status',
311
+ ExpressionAttributeNames: {
312
+ '#status': 'status',
313
+ },
314
+ ExpressionAttributeValues: {
315
+ ':status': status,
316
+ },
317
+ ScanIndexForward: true, // Ascending by created_at
318
+ }));
319
+ return result.Items || [];
320
+ }
321
+ /**
322
+ * Get items by task group ID
323
+ * Uses task-group-index GSI
324
+ * Per spec/19_WEB_UI.md: for listing tasks in a task group
325
+ */
326
+ async getByTaskGroup(taskGroupId) {
327
+ const result = await this.docClient.send(new lib_dynamodb_1.QueryCommand({
328
+ TableName: this.tableName,
329
+ IndexName: 'task-group-index',
330
+ KeyConditionExpression: 'task_group_id = :tgid',
331
+ ExpressionAttributeValues: {
332
+ ':tgid': taskGroupId,
333
+ },
334
+ ScanIndexForward: true, // Ascending by created_at
335
+ }));
336
+ return result.Items || [];
337
+ }
338
+ /**
339
+ * Get all distinct task groups with summary
340
+ * Per spec/19_WEB_UI.md: for task group list view
341
+ * Note: Uses Scan - consider pagination for large datasets
342
+ */
343
+ async getAllTaskGroups() {
344
+ // Scan all items and aggregate by task_group_id
345
+ const result = await this.docClient.send(new lib_dynamodb_1.ScanCommand({
346
+ TableName: this.tableName,
347
+ ProjectionExpression: 'task_group_id, created_at, updated_at',
348
+ }));
349
+ const items = result.Items || [];
350
+ // Aggregate by task_group_id
351
+ const groupMap = new Map();
352
+ for (const item of items) {
353
+ const existing = groupMap.get(item.task_group_id);
354
+ if (existing) {
355
+ existing.count++;
356
+ if (item.created_at < existing.createdAt) {
357
+ existing.createdAt = item.created_at;
358
+ }
359
+ if (item.updated_at > existing.latestUpdatedAt) {
360
+ existing.latestUpdatedAt = item.updated_at;
361
+ }
362
+ }
363
+ else {
364
+ groupMap.set(item.task_group_id, {
365
+ count: 1,
366
+ createdAt: item.created_at,
367
+ latestUpdatedAt: item.updated_at,
368
+ });
369
+ }
370
+ }
371
+ // Convert to array and sort by created_at (oldest first)
372
+ const groups = [];
373
+ for (const [taskGroupId, data] of groupMap) {
374
+ groups.push({
375
+ task_group_id: taskGroupId,
376
+ task_count: data.count,
377
+ created_at: data.createdAt,
378
+ latest_updated_at: data.latestUpdatedAt,
379
+ });
380
+ }
381
+ groups.sort((a, b) => a.created_at.localeCompare(b.created_at));
382
+ return groups;
383
+ }
384
+ /**
385
+ * Delete item (for testing)
386
+ */
387
+ async deleteItem(taskId) {
388
+ await this.docClient.send(new lib_dynamodb_1.DeleteCommand({
389
+ TableName: this.tableName,
390
+ Key: { task_id: taskId },
391
+ }));
392
+ }
393
+ /**
394
+ * Mark stale RUNNING tasks as ERROR
395
+ * Per spec: fail-closed - don't leave tasks in "limbo"
396
+ *
397
+ * @param maxAgeMs - Max age in milliseconds for RUNNING tasks
398
+ * @returns Number of tasks marked as ERROR
399
+ */
400
+ async recoverStaleTasks(maxAgeMs = 5 * 60 * 1000) {
401
+ const runningTasks = await this.getByStatus('RUNNING');
402
+ const now = Date.now();
403
+ let recovered = 0;
404
+ for (const task of runningTasks) {
405
+ const taskAge = now - new Date(task.updated_at).getTime();
406
+ if (taskAge > maxAgeMs) {
407
+ await this.updateStatus(task.task_id, 'ERROR', `Task stale: running for ${Math.round(taskAge / 1000)}s without completion`);
408
+ recovered++;
409
+ }
410
+ }
411
+ return recovered;
412
+ }
413
+ /**
414
+ * Close the client connection
415
+ */
416
+ destroy() {
417
+ this.client.destroy();
418
+ }
419
+ }
420
+ exports.QueueStore = QueueStore;
421
+ //# sourceMappingURL=queue-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-store.js","sourceRoot":"","sources":["../../src/queue/queue-store.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@
3
3
  */
4
4
  export { REPLInterface, REPLConfig, ReplExecutionMode, EXIT_CODES, ProjectMode, VerifiedFile, TaskLog, } from './repl-interface';
5
5
  export * from './commands';
6
+ export { TwoPaneRenderer, TwoPaneRendererConfig, RunningInfo, CompleteInfo, } from './two-pane-renderer';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repl/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,UAAU,EAEV,WAAW,EACX,YAAY,EACZ,OAAO,GACR,MAAM,kBAAkB,CAAC;AAC1B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repl/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,UAAU,EAEV,WAAW,EACX,YAAY,EACZ,OAAO,GACR,MAAM,kBAAkB,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,YAAY,GACb,MAAM,qBAAqB,CAAC"}
@@ -17,9 +17,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
17
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.EXIT_CODES = exports.REPLInterface = void 0;
20
+ exports.TwoPaneRenderer = exports.EXIT_CODES = exports.REPLInterface = void 0;
21
21
  var repl_interface_1 = require("./repl-interface");
22
22
  Object.defineProperty(exports, "REPLInterface", { enumerable: true, get: function () { return repl_interface_1.REPLInterface; } });
23
23
  Object.defineProperty(exports, "EXIT_CODES", { enumerable: true, get: function () { return repl_interface_1.EXIT_CODES; } });
24
24
  __exportStar(require("./commands"), exports);
25
+ var two_pane_renderer_1 = require("./two-pane-renderer");
26
+ Object.defineProperty(exports, "TwoPaneRenderer", { enumerable: true, get: function () { return two_pane_renderer_1.TwoPaneRenderer; } });
25
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repl/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;AAEH,mDAS0B;AARxB,+GAAA,aAAa,OAAA;AAGb,4GAAA,UAAU,OAAA;AAMZ,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repl/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;AAEH,mDAS0B;AARxB,+GAAA,aAAa,OAAA;AAGb,4GAAA,UAAU,OAAA;AAMZ,6CAA2B;AAC3B,yDAK6B;AAJ3B,oHAAA,eAAe,OAAA"}
@@ -12,7 +12,8 @@
12
12
  * - Deterministic Exit Code: 0=COMPLETE, 1=ERROR, 2=INCOMPLETE
13
13
  *
14
14
  * Project Mode (per spec 10_REPL_UX.md, Property 32, 33):
15
- * - temp: Use temporary directory (default, cleaned up on exit)
15
+ * - cwd: Use current working directory (DEFAULT per spec)
16
+ * - temp: Use temporary directory (cleaned up on exit)
16
17
  * - fixed: Use specified directory (persists after exit)
17
18
  */
18
19
  import { EventEmitter } from 'events';
@@ -21,10 +22,11 @@ import { ExecutorSupervisor } from '../supervisor/executor-supervisor';
21
22
  /**
22
23
  * Project Mode - per spec 10_REPL_UX.md
23
24
  * Controls how verification_root is determined
24
- * - temp: Use temporary directory (default)
25
+ * - cwd: Use current working directory (DEFAULT per spec)
26
+ * - temp: Use temporary directory
25
27
  * - fixed: Use specified --project-root directory
26
28
  */
27
- export type ProjectMode = 'temp' | 'fixed';
29
+ export type ProjectMode = 'cwd' | 'temp' | 'fixed';
28
30
  /**
29
31
  * Verified File record - per spec 06_CORRECTNESS_PROPERTIES.md Property 33
30
32
  * Records file verification result with traceability information
@@ -63,7 +65,8 @@ export interface REPLConfig {
63
65
  forceNonInteractive?: boolean;
64
66
  /**
65
67
  * Project mode - per spec 10_REPL_UX.md
66
- * - 'temp': Use temporary directory for verification_root (default)
68
+ * - 'cwd': Use current working directory (DEFAULT per spec)
69
+ * - 'temp': Use temporary directory for verification_root
67
70
  * - 'fixed': Use projectRoot as verification_root
68
71
  */
69
72
  projectMode?: ProjectMode;
@@ -78,6 +81,22 @@ export interface REPLConfig {
78
81
  * Outputs PROJECT_PATH=<path> for machine-readable parsing
79
82
  */
80
83
  printProjectPath?: boolean;
84
+ /**
85
+ * Namespace for state separation - per spec/21_STABLE_DEV.md
86
+ * Separates QueueStore, state dir, Web UI port
87
+ * Examples: 'stable', 'dev', 'test-1'
88
+ */
89
+ namespace?: string;
90
+ /**
91
+ * Full namespace configuration - per spec/21_STABLE_DEV.md
92
+ * Contains derived values: tableName, stateDir, port
93
+ */
94
+ namespaceConfig?: {
95
+ namespace: string;
96
+ tableName: string;
97
+ stateDir: string;
98
+ port: number;
99
+ };
81
100
  }
82
101
  /**
83
102
  * REPL Execution Mode - per spec 05_DATA_MODELS.md
@@ -188,6 +207,7 @@ export declare class REPLInterface extends EventEmitter {
188
207
  private modelsCommand;
189
208
  private keysCommand;
190
209
  private logsCommand;
210
+ private renderer;
191
211
  constructor(config?: REPLConfig);
192
212
  /**
193
213
  * Get project mode - per spec 10_REPL_UX.md
@@ -228,6 +248,13 @@ export declare class REPLInterface extends EventEmitter {
228
248
  * Per spec Property 32: temp mode directories may be cleaned up
229
249
  */
230
250
  cleanup(): Promise<void>;
251
+ /**
252
+ * Check Claude Code CLI auth status
253
+ * Per spec/15_API_KEY_ENV_SANITIZE.md: Check at startup, exit on failure
254
+ *
255
+ * @returns AuthCheckResult with availability and login status
256
+ */
257
+ private checkClaudeCodeAuth;
231
258
  /**
232
259
  * Check API key status and show warning if not configured
233
260
  * API keys are stored in global config file (~/.pm-orchestrator-runner/config.json)
@@ -315,6 +342,7 @@ export declare class REPLInterface extends EventEmitter {
315
342
  private handleClarificationNeeded;
316
343
  /**
317
344
  * Print welcome message with clear auth status
345
+ * Per spec/15_API_KEY_ENV_SANITIZE.md: Show required startup display
318
346
  */
319
347
  private printWelcome;
320
348
  /**
@@ -370,7 +398,10 @@ export declare class REPLInterface extends EventEmitter {
370
398
  private handleStatus;
371
399
  /**
372
400
  * Handle /start command
373
- * Per spec Property 32, 33: Use verification_root for file operations in temp mode
401
+ * Per spec Property 32, 33: Use verification_root for file operations
402
+ * - cwd mode: use process.cwd() (verificationRoot)
403
+ * - temp mode: use temp directory (verificationRoot)
404
+ * - fixed mode: use projectRoot
374
405
  */
375
406
  private handleStart;
376
407
  /**
@@ -422,6 +453,10 @@ export declare class REPLInterface extends EventEmitter {
422
453
  /**
423
454
  * Print message with flush guarantee for non-interactive mode
424
455
  * Per spec 10_REPL_UX.md: Output Flush Guarantee
456
+ * Per spec 18_CLI_TWO_PANE.md: Use TwoPaneRenderer for TTY output
457
+ *
458
+ * Syncs readline input state to renderer before output,
459
+ * ensuring input line is preserved during log output.
425
460
  */
426
461
  private print;
427
462
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"repl-interface.d.ts","sourceRoot":"","sources":["../../src/repl/repl-interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repl-interface.d.ts","sourceRoot":"","sources":["../../src/repl/repl-interface.ts"],"names":[],"mappings":"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"}