pm-orchestrator-runner 1.0.12 → 1.0.14

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.
@@ -7,7 +7,7 @@
7
7
  * - QueuePoller: Polling and task execution
8
8
  * - createNamespacedQueueStore: Factory for namespace-separated QueueStore
9
9
  */
10
- export { QueueStore, QueueStoreConfig, QueueItem, QueueItemStatus, ClaimResult, TaskGroupSummary, } from './queue-store';
10
+ export { QueueStore, QueueStoreConfig, QueueItem, QueueItemStatus, ClaimResult, TaskGroupSummary, StatusUpdateResult, VALID_STATUS_TRANSITIONS, isValidStatusTransition, } from './queue-store';
11
11
  export { QueuePoller, QueuePollerConfig, QueuePollerState, QueuePollerEvents, TaskExecutor, } from './queue-poller';
12
12
  import { QueueStore, QueueStoreConfig } from './queue-store';
13
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,WAAW,EACX,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,oBAAoB,EACrC,WAAW,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,GAChD,UAAU,CAKZ"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,oBAAoB,EACrC,WAAW,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,GAChD,UAAU,CAKZ"}
@@ -9,10 +9,12 @@
9
9
  * - createNamespacedQueueStore: Factory for namespace-separated QueueStore
10
10
  */
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.QueuePoller = exports.QueueStore = void 0;
12
+ exports.QueuePoller = exports.isValidStatusTransition = exports.VALID_STATUS_TRANSITIONS = exports.QueueStore = void 0;
13
13
  exports.createNamespacedQueueStore = createNamespacedQueueStore;
14
14
  var queue_store_1 = require("./queue-store");
15
15
  Object.defineProperty(exports, "QueueStore", { enumerable: true, get: function () { return queue_store_1.QueueStore; } });
16
+ Object.defineProperty(exports, "VALID_STATUS_TRANSITIONS", { enumerable: true, get: function () { return queue_store_1.VALID_STATUS_TRANSITIONS; } });
17
+ Object.defineProperty(exports, "isValidStatusTransition", { enumerable: true, get: function () { return queue_store_1.isValidStatusTransition; } });
16
18
  var queue_poller_1 = require("./queue-poller");
17
19
  Object.defineProperty(exports, "QueuePoller", { enumerable: true, get: function () { return queue_poller_1.QueuePoller; } });
18
20
  const queue_store_2 = require("./queue-store");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAiDH,gEAQC;AAvDD,6CAOuB;AANrB,yGAAA,UAAU,OAAA;AAQZ,+CAMwB;AALtB,2GAAA,WAAW,OAAA;AAOb,+CAA6D;AAa7D;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,0BAA0B,CACxC,eAAqC,EACrC,WAAiD;IAEjD,OAAO,IAAI,wBAAU,CAAC;QACpB,GAAG,WAAW;QACd,SAAS,EAAE,eAAe,CAAC,SAAS;KACrC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAoDH,gEAQC;AA1DD,6CAUuB;AATrB,yGAAA,UAAU,OAAA;AAOV,uHAAA,wBAAwB,OAAA;AACxB,sHAAA,uBAAuB,OAAA;AAGzB,+CAMwB;AALtB,2GAAA,WAAW,OAAA;AAOb,+CAA6D;AAa7D;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,0BAA0B,CACxC,eAAqC,EACrC,WAAiD;IAEjD,OAAO,IAAI,wBAAU,CAAC;QACpB,GAAG,WAAW;QACd,SAAS,EAAE,eAAe,CAAC,SAAS;KACrC,CAAC,CAAC;AACL,CAAC"}
@@ -9,9 +9,18 @@
9
9
  */
10
10
  /**
11
11
  * Queue Item status
12
- * Per spec/20: QUEUED / RUNNING / COMPLETE / ERROR
12
+ * Per spec/20: QUEUED / RUNNING / COMPLETE / ERROR / CANCELLED
13
13
  */
14
- export type QueueItemStatus = 'QUEUED' | 'RUNNING' | 'COMPLETE' | 'ERROR';
14
+ export type QueueItemStatus = 'QUEUED' | 'RUNNING' | 'COMPLETE' | 'ERROR' | 'CANCELLED';
15
+ /**
16
+ * Valid status transitions
17
+ * Per spec/20_QUEUE_STORE.md
18
+ */
19
+ export declare const VALID_STATUS_TRANSITIONS: Record<QueueItemStatus, QueueItemStatus[]>;
20
+ /**
21
+ * Check if a status transition is valid
22
+ */
23
+ export declare function isValidStatusTransition(fromStatus: QueueItemStatus, toStatus: QueueItemStatus): boolean;
15
24
  /**
16
25
  * Queue Item schema
17
26
  * Per spec/20_QUEUE_STORE.md
@@ -45,6 +54,18 @@ export interface ClaimResult {
45
54
  item?: QueueItem;
46
55
  error?: string;
47
56
  }
57
+ /**
58
+ * Status update result
59
+ * Per spec/19_WEB_UI.md: PATCH /api/tasks/:task_id/status response
60
+ */
61
+ export interface StatusUpdateResult {
62
+ success: boolean;
63
+ task_id: string;
64
+ old_status?: QueueItemStatus;
65
+ new_status?: QueueItemStatus;
66
+ error?: string;
67
+ message?: string;
68
+ }
48
69
  /**
49
70
  * Task Group summary for listing
50
71
  * Per spec/19_WEB_UI.md: task group list view
@@ -121,6 +142,15 @@ export declare class QueueStore {
121
142
  * @param errorMessage - Optional error message (for ERROR status)
122
143
  */
123
144
  updateStatus(taskId: string, status: QueueItemStatus, errorMessage?: string): Promise<void>;
145
+ /**
146
+ * Update task status with validation
147
+ * Per spec/19_WEB_UI.md: PATCH /api/tasks/:task_id/status
148
+ *
149
+ * @param taskId - Task ID
150
+ * @param newStatus - Target status
151
+ * @returns StatusUpdateResult with success/error info
152
+ */
153
+ updateStatusWithValidation(taskId: string, newStatus: QueueItemStatus): Promise<StatusUpdateResult>;
124
154
  /**
125
155
  * Get items by session ID
126
156
  * Uses session-index GSI
@@ -1 +1 @@
1
- {"version":3,"file":"queue-store.d.ts","sourceRoot":"","sources":["../../src/queue/queue-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue-store.d.ts","sourceRoot":"","sources":["../../src/queue/queue-store.ts"],"names":[],"mappings":"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"}
@@ -9,10 +9,28 @@
9
9
  * - Fail-closed error handling
10
10
  */
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.QueueStore = void 0;
12
+ exports.QueueStore = exports.VALID_STATUS_TRANSITIONS = void 0;
13
+ exports.isValidStatusTransition = isValidStatusTransition;
13
14
  const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
14
15
  const lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb");
15
16
  const uuid_1 = require("uuid");
17
+ /**
18
+ * Valid status transitions
19
+ * Per spec/20_QUEUE_STORE.md
20
+ */
21
+ exports.VALID_STATUS_TRANSITIONS = {
22
+ QUEUED: ['RUNNING', 'CANCELLED'],
23
+ RUNNING: ['COMPLETE', 'ERROR', 'CANCELLED'],
24
+ COMPLETE: [], // Terminal state
25
+ ERROR: [], // Terminal state
26
+ CANCELLED: [], // Terminal state
27
+ };
28
+ /**
29
+ * Check if a status transition is valid
30
+ */
31
+ function isValidStatusTransition(fromStatus, toStatus) {
32
+ return exports.VALID_STATUS_TRANSITIONS[fromStatus].includes(toStatus);
33
+ }
16
34
  /**
17
35
  * Queue Store
18
36
  * Manages task queue with DynamoDB Local
@@ -283,6 +301,45 @@ class QueueStore {
283
301
  ExpressionAttributeValues: expressionAttributeValues,
284
302
  }));
285
303
  }
304
+ /**
305
+ * Update task status with validation
306
+ * Per spec/19_WEB_UI.md: PATCH /api/tasks/:task_id/status
307
+ *
308
+ * @param taskId - Task ID
309
+ * @param newStatus - Target status
310
+ * @returns StatusUpdateResult with success/error info
311
+ */
312
+ async updateStatusWithValidation(taskId, newStatus) {
313
+ // First, get current task
314
+ const task = await this.getItem(taskId);
315
+ if (!task) {
316
+ return {
317
+ success: false,
318
+ task_id: taskId,
319
+ error: 'Task not found',
320
+ message: `Task not found: ${taskId}`,
321
+ };
322
+ }
323
+ const oldStatus = task.status;
324
+ // Check if transition is valid
325
+ if (!isValidStatusTransition(oldStatus, newStatus)) {
326
+ return {
327
+ success: false,
328
+ task_id: taskId,
329
+ old_status: oldStatus,
330
+ error: 'Invalid status transition',
331
+ message: `Cannot transition from ${oldStatus} to ${newStatus}`,
332
+ };
333
+ }
334
+ // Update status
335
+ await this.updateStatus(taskId, newStatus);
336
+ return {
337
+ success: true,
338
+ task_id: taskId,
339
+ old_status: oldStatus,
340
+ new_status: newStatus,
341
+ };
342
+ }
286
343
  /**
287
344
  * Get items by session ID
288
345
  * Uses session-index GSI
@@ -1 +1 @@
1
- {"version":3,"file":"queue-store.js","sourceRoot":"","sources":["../../src/queue/queue-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue-store.js","sourceRoot":"","sources":["../../src/queue/queue-store.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAwCH,0DAKC;AA3CD,8DAKkC;AAClC,wDAQ+B;AAC/B,+BAAoC;AAQpC;;;GAGG;AACU,QAAA,wBAAwB,GAA+C;IAClF,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC,OAAO,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC;IAC3C,QAAQ,EAAE,EAAE,EAAE,iBAAiB;IAC/B,KAAK,EAAE,EAAE,EAAE,iBAAiB;IAC5B,SAAS,EAAE,EAAE,EAAE,iBAAiB;CACjC,CAAC;AAEF;;GAEG;AACH,SAAgB,uBAAuB,CACrC,UAA2B,EAC3B,QAAyB;IAEzB,OAAO,gCAAwB,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACjE,CAAC;AA8DD;;;GAGG;AACH,MAAa,UAAU;IACJ,MAAM,CAAiB;IACvB,SAAS,CAAyB;IAClC,SAAS,CAAS;IAClB,QAAQ,CAAS;IAElC,YAAY,SAA2B,EAAE;QACvC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,uBAAuB,CAAC;QAC3D,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC;QAExC,IAAI,CAAC,MAAM,GAAG,IAAI,gCAAc,CAAC;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,MAAM;YACd,WAAW,EAAE;gBACX,WAAW,EAAE,OAAO;gBACpB,eAAe,EAAE,OAAO;aACzB;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,qCAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACxD,eAAe,EAAE;gBACf,qBAAqB,EAAE,IAAI;aAC5B;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,IAAI,sCAAoB,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CACxD,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,2CAAyB,EAAE,CAAC;gBAC/C,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW;QACf,MAAM,OAAO,GAAG,IAAI,oCAAkB,CAAC;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC1D,oBAAoB,EAAE;gBACpB,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE;gBAChD,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,EAAE;gBACnD,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE;gBAC/C,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,EAAE;gBACnD,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,EAAE;aACvD;YACD,sBAAsB,EAAE;gBACtB;oBACE,SAAS,EAAE,eAAe;oBAC1B,SAAS,EAAE;wBACT,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE;wBAChD,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE;qBAClD;oBACD,UAAU,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE;oBACrC,qBAAqB,EAAE;wBACrB,iBAAiB,EAAE,CAAC;wBACpB,kBAAkB,EAAE,CAAC;qBACtB;iBACF;gBACD;oBACE,SAAS,EAAE,cAAc;oBACzB,SAAS,EAAE;wBACT,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;wBAC5C,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE;qBAClD;oBACD,UAAU,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE;oBACrC,qBAAqB,EAAE;wBACrB,iBAAiB,EAAE,CAAC;wBACpB,kBAAkB,EAAE,CAAC;qBACtB;iBACF;gBACD;oBACE,SAAS,EAAE,kBAAkB;oBAC7B,SAAS,EAAE;wBACT,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE;wBACnD,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE;qBAClD;oBACD,UAAU,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE;oBACrC,qBAAqB,EAAE;wBACrB,iBAAiB,EAAE,CAAC;wBACpB,kBAAkB,EAAE,CAAC;qBACtB;iBACF;aACF;YACD,qBAAqB,EAAE;gBACrB,iBAAiB,EAAE,CAAC;gBACpB,kBAAkB,EAAE,CAAC;aACtB;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACzB,8BAA8B;YAC9B,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAAC,SAAS,GAAG,KAAK;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACnC,IAAI,sCAAoB,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CACxD,CAAC;gBACF,IAAI,MAAM,CAAC,KAAK,EAAE,WAAW,KAAK,QAAQ,EAAE,CAAC;oBAC3C,OAAO;gBACT,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,iCAAiC,SAAS,IAAI,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO,CACX,SAAiB,EACjB,WAAmB,EACnB,MAAc,EACd,MAAe;QAEf,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,IAAI,GAAc;YACtB,OAAO,EAAE,MAAM,IAAI,IAAA,SAAM,GAAE;YAC3B,aAAa,EAAE,WAAW;YAC1B,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,QAAQ;YAChB,MAAM;YACN,UAAU,EAAE,GAAG;YACf,UAAU,EAAE,GAAG;SAChB,CAAC;QAEF,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACvB,IAAI,yBAAU,CAAC;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI;SACX,CAAC,CACH,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACtC,IAAI,yBAAU,CAAC;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;SACzB,CAAC,CACH,CAAC;QAEF,OAAQ,MAAM,CAAC,IAAkB,IAAI,IAAI,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK;QACT,kDAAkD;QAClD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAC3C,IAAI,2BAAY,CAAC;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,cAAc;YACzB,sBAAsB,EAAE,mBAAmB;YAC3C,wBAAwB,EAAE;gBACxB,SAAS,EAAE,QAAQ;aACpB;YACD,yBAAyB,EAAE;gBACzB,SAAS,EAAE,QAAQ;aACpB;YACD,KAAK,EAAE,CAAC;YACR,gBAAgB,EAAE,IAAI,EAAE,yCAAyC;SAClE,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;QAED,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAc,CAAC;QAE/C,0DAA0D;QAC1D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACvB,IAAI,4BAAa,CAAC;gBAChB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBAC9B,gBAAgB,EAAE,2CAA2C;gBAC7D,mBAAmB,EAAE,mBAAmB;gBACxC,wBAAwB,EAAE;oBACxB,SAAS,EAAE,QAAQ;iBACpB;gBACD,yBAAyB,EAAE;oBACzB,UAAU,EAAE,SAAS;oBACrB,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,GAAG;iBACZ;aACF,CAAC,CACH,CAAC;YAEF,oCAAoC;YACpC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;YAEtB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,0DAA0D;YAC1D,IACE,KAAK;gBACL,OAAO,KAAK,KAAK,QAAQ;gBACzB,MAAM,IAAI,KAAK;gBACf,KAAK,CAAC,IAAI,KAAK,iCAAiC,EAChD,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAC;YAC9E,CAAC;YACD,0CAA0C;YAC1C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,YAAY,CAChB,MAAc,EACd,MAAuB,EACvB,YAAqB;QAErB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,MAAM,gBAAgB,GAAG,YAAY;YACnC,CAAC,CAAC,kEAAkE;YACpE,CAAC,CAAC,0CAA0C,CAAC;QAE/C,MAAM,yBAAyB,GAA2B;YACxD,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,GAAG;SACZ,CAAC;QAEF,IAAI,YAAY,EAAE,CAAC;YACjB,yBAAyB,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;QACrD,CAAC;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACvB,IAAI,4BAAa,CAAC;YAChB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;YACxB,gBAAgB,EAAE,gBAAgB;YAClC,wBAAwB,EAAE;gBACxB,SAAS,EAAE,QAAQ;aACpB;YACD,yBAAyB,EAAE,yBAAyB;SACrD,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,0BAA0B,CAC9B,MAAc,EACd,SAA0B;QAE1B,0BAA0B;QAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,MAAM;gBACf,KAAK,EAAE,gBAAgB;gBACvB,OAAO,EAAE,mBAAmB,MAAM,EAAE;aACrC,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAE9B,+BAA+B;QAC/B,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;YACnD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,SAAS;gBACrB,KAAK,EAAE,2BAA2B;gBAClC,OAAO,EAAE,0BAA0B,SAAS,OAAO,SAAS,EAAE;aAC/D,CAAC;QACJ,CAAC;QAED,gBAAgB;QAChB,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAE3C,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,SAAS;SACtB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,SAAiB;QAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACtC,IAAI,2BAAY,CAAC;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,eAAe;YAC1B,sBAAsB,EAAE,mBAAmB;YAC3C,yBAAyB,EAAE;gBACzB,MAAM,EAAE,SAAS;aAClB;YACD,gBAAgB,EAAE,IAAI,EAAE,0BAA0B;SACnD,CAAC,CACH,CAAC;QAEF,OAAQ,MAAM,CAAC,KAAqB,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,MAAuB;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACtC,IAAI,2BAAY,CAAC;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,cAAc;YACzB,sBAAsB,EAAE,mBAAmB;YAC3C,wBAAwB,EAAE;gBACxB,SAAS,EAAE,QAAQ;aACpB;YACD,yBAAyB,EAAE;gBACzB,SAAS,EAAE,MAAM;aAClB;YACD,gBAAgB,EAAE,IAAI,EAAE,0BAA0B;SACnD,CAAC,CACH,CAAC;QAEF,OAAQ,MAAM,CAAC,KAAqB,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,WAAmB;QACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACtC,IAAI,2BAAY,CAAC;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,kBAAkB;YAC7B,sBAAsB,EAAE,uBAAuB;YAC/C,yBAAyB,EAAE;gBACzB,OAAO,EAAE,WAAW;aACrB;YACD,gBAAgB,EAAE,IAAI,EAAE,0BAA0B;SACnD,CAAC,CACH,CAAC;QAEF,OAAQ,MAAM,CAAC,KAAqB,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB;QACpB,gDAAgD;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACtC,IAAI,0BAAW,CAAC;YACd,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,oBAAoB,EAAE,uCAAuC;SAC9D,CAAC,CACH,CAAC;QAEF,MAAM,KAAK,GAAI,MAAM,CAAC,KAA0E,IAAI,EAAE,CAAC;QAEvG,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyE,CAAC;QAElG,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClD,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACjB,IAAI,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;oBACzC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;gBACvC,CAAC;gBACD,IAAI,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;oBAC/C,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC7C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE;oBAC/B,KAAK,EAAE,CAAC;oBACR,SAAS,EAAE,IAAI,CAAC,UAAU;oBAC1B,eAAe,EAAE,IAAI,CAAC,UAAU;iBACjC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC;gBACV,aAAa,EAAE,WAAW;gBAC1B,UAAU,EAAE,IAAI,CAAC,KAAK;gBACtB,UAAU,EAAE,IAAI,CAAC,SAAS;gBAC1B,iBAAiB,EAAE,IAAI,CAAC,eAAe;aACxC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAEhE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACvB,IAAI,4BAAa,CAAC;YAChB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;SACzB,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,iBAAiB,CAAC,WAAmB,CAAC,GAAG,EAAE,GAAG,IAAI;QACtD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1D,IAAI,OAAO,GAAG,QAAQ,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,YAAY,CACrB,IAAI,CAAC,OAAO,EACZ,OAAO,EACP,2BAA2B,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAC5E,CAAC;gBACF,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;CACF;AA9gBD,gCA8gBC"}
@@ -0,0 +1,951 @@
1
+ <!DOCTYPE html>
2
+ <html lang="ja">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>PM Orchestrator Runner - Web UI</title>
7
+ <style>
8
+ * {
9
+ box-sizing: border-box;
10
+ margin: 0;
11
+ padding: 0;
12
+ }
13
+
14
+ body {
15
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
16
+ background: #f5f5f5;
17
+ color: #333;
18
+ line-height: 1.6;
19
+ }
20
+
21
+ .container {
22
+ max-width: 1200px;
23
+ margin: 0 auto;
24
+ padding: 20px;
25
+ }
26
+
27
+ header {
28
+ background: #2563eb;
29
+ color: white;
30
+ padding: 16px 20px;
31
+ position: sticky;
32
+ top: 0;
33
+ z-index: 100;
34
+ box-shadow: 0 2px 4px rgba(0,0,0,0.1);
35
+ }
36
+
37
+ .header-content {
38
+ max-width: 1200px;
39
+ margin: 0 auto;
40
+ display: flex;
41
+ justify-content: space-between;
42
+ align-items: center;
43
+ }
44
+
45
+ header h1 {
46
+ font-size: 1.3rem;
47
+ font-weight: 600;
48
+ cursor: pointer;
49
+ }
50
+
51
+ nav {
52
+ display: flex;
53
+ gap: 16px;
54
+ }
55
+
56
+ nav a {
57
+ color: rgba(255, 255, 255, 0.9);
58
+ text-decoration: none;
59
+ font-size: 0.9rem;
60
+ padding: 8px 16px;
61
+ border-radius: 4px;
62
+ transition: background 0.2s;
63
+ }
64
+
65
+ nav a:hover {
66
+ background: rgba(255, 255, 255, 0.1);
67
+ }
68
+
69
+ nav a.active {
70
+ background: rgba(255, 255, 255, 0.2);
71
+ color: white;
72
+ }
73
+
74
+ .page-header {
75
+ display: flex;
76
+ justify-content: space-between;
77
+ align-items: center;
78
+ margin-bottom: 20px;
79
+ }
80
+
81
+ .page-header h2 {
82
+ font-size: 1.5rem;
83
+ color: #1f2937;
84
+ }
85
+
86
+ .back-btn {
87
+ display: inline-flex;
88
+ align-items: center;
89
+ gap: 6px;
90
+ padding: 8px 16px;
91
+ background: #e5e7eb;
92
+ color: #374151;
93
+ border: none;
94
+ border-radius: 6px;
95
+ font-size: 0.9rem;
96
+ cursor: pointer;
97
+ text-decoration: none;
98
+ transition: background 0.2s;
99
+ }
100
+
101
+ .back-btn:hover {
102
+ background: #d1d5db;
103
+ }
104
+
105
+ .card {
106
+ background: white;
107
+ border-radius: 8px;
108
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
109
+ padding: 20px;
110
+ margin-bottom: 16px;
111
+ }
112
+
113
+ .card h3 {
114
+ font-size: 1.1rem;
115
+ margin-bottom: 16px;
116
+ color: #1f2937;
117
+ border-bottom: 1px solid #e5e7eb;
118
+ padding-bottom: 8px;
119
+ }
120
+
121
+ .list-item {
122
+ display: flex;
123
+ justify-content: space-between;
124
+ align-items: center;
125
+ padding: 12px 16px;
126
+ border: 1px solid #e5e7eb;
127
+ border-radius: 6px;
128
+ margin-bottom: 8px;
129
+ cursor: pointer;
130
+ transition: all 0.2s;
131
+ }
132
+
133
+ .list-item:hover {
134
+ background: #f9fafb;
135
+ border-color: #2563eb;
136
+ transform: translateX(4px);
137
+ }
138
+
139
+ .list-item-main {
140
+ flex: 1;
141
+ }
142
+
143
+ .list-item-title {
144
+ font-weight: 500;
145
+ color: #111827;
146
+ }
147
+
148
+ .list-item-meta {
149
+ font-size: 0.85rem;
150
+ color: #6b7280;
151
+ margin-top: 4px;
152
+ }
153
+
154
+ .list-item-arrow {
155
+ color: #9ca3af;
156
+ font-size: 1.2rem;
157
+ }
158
+
159
+ .badge {
160
+ display: inline-block;
161
+ padding: 4px 10px;
162
+ border-radius: 4px;
163
+ font-size: 0.75rem;
164
+ font-weight: 600;
165
+ text-transform: uppercase;
166
+ margin-right: 8px;
167
+ }
168
+
169
+ .badge-queued {
170
+ background: #fef3c7;
171
+ color: #92400e;
172
+ }
173
+
174
+ .badge-running {
175
+ background: #dbeafe;
176
+ color: #1e40af;
177
+ }
178
+
179
+ .badge-complete {
180
+ background: #d1fae5;
181
+ color: #065f46;
182
+ }
183
+
184
+ .badge-error {
185
+ background: #fee2e2;
186
+ color: #991b1b;
187
+ }
188
+
189
+ .form-group {
190
+ margin-bottom: 16px;
191
+ }
192
+
193
+ .form-group label {
194
+ display: block;
195
+ font-weight: 500;
196
+ margin-bottom: 6px;
197
+ color: #374151;
198
+ }
199
+
200
+ .form-group input,
201
+ .form-group textarea,
202
+ .form-group select {
203
+ width: 100%;
204
+ padding: 10px 12px;
205
+ border: 1px solid #d1d5db;
206
+ border-radius: 6px;
207
+ font-size: 1rem;
208
+ transition: border-color 0.2s;
209
+ }
210
+
211
+ .form-group input:focus,
212
+ .form-group textarea:focus,
213
+ .form-group select:focus {
214
+ outline: none;
215
+ border-color: #2563eb;
216
+ box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
217
+ }
218
+
219
+ .form-group textarea {
220
+ min-height: 120px;
221
+ resize: vertical;
222
+ font-family: inherit;
223
+ }
224
+
225
+ .btn {
226
+ display: inline-block;
227
+ padding: 10px 20px;
228
+ border: none;
229
+ border-radius: 6px;
230
+ font-size: 1rem;
231
+ font-weight: 500;
232
+ cursor: pointer;
233
+ transition: background 0.2s;
234
+ }
235
+
236
+ .btn-primary {
237
+ background: #2563eb;
238
+ color: white;
239
+ }
240
+
241
+ .btn-primary:hover {
242
+ background: #1d4ed8;
243
+ }
244
+
245
+ .btn-primary:disabled {
246
+ background: #9ca3af;
247
+ cursor: not-allowed;
248
+ }
249
+
250
+ .btn-secondary {
251
+ background: #6b7280;
252
+ color: white;
253
+ }
254
+
255
+ .btn-secondary:hover {
256
+ background: #4b5563;
257
+ }
258
+
259
+ .detail-grid {
260
+ display: grid;
261
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
262
+ gap: 16px;
263
+ margin-bottom: 20px;
264
+ }
265
+
266
+ .detail-item {
267
+ background: #f9fafb;
268
+ padding: 12px;
269
+ border-radius: 6px;
270
+ }
271
+
272
+ .detail-item label {
273
+ display: block;
274
+ font-size: 0.8rem;
275
+ color: #6b7280;
276
+ text-transform: uppercase;
277
+ margin-bottom: 4px;
278
+ }
279
+
280
+ .detail-item value {
281
+ display: block;
282
+ font-weight: 500;
283
+ color: #1f2937;
284
+ word-break: break-all;
285
+ }
286
+
287
+ .prompt-box {
288
+ background: #f9fafb;
289
+ padding: 16px;
290
+ border-radius: 6px;
291
+ font-family: 'Monaco', 'Consolas', monospace;
292
+ font-size: 0.9rem;
293
+ white-space: pre-wrap;
294
+ word-break: break-word;
295
+ border-left: 4px solid #2563eb;
296
+ }
297
+
298
+ .log-section {
299
+ margin-top: 20px;
300
+ }
301
+
302
+ .log-entry {
303
+ padding: 12px;
304
+ border-left: 3px solid #e5e7eb;
305
+ margin-bottom: 8px;
306
+ background: #fafafa;
307
+ }
308
+
309
+ .log-entry.user-input {
310
+ border-left-color: #2563eb;
311
+ }
312
+
313
+ .log-entry.task-started {
314
+ border-left-color: #f59e0b;
315
+ }
316
+
317
+ .log-entry.task-completed {
318
+ border-left-color: #10b981;
319
+ }
320
+
321
+ .log-entry.error {
322
+ border-left-color: #ef4444;
323
+ background: #fef2f2;
324
+ }
325
+
326
+ .log-time {
327
+ font-size: 0.75rem;
328
+ color: #6b7280;
329
+ font-family: monospace;
330
+ }
331
+
332
+ .log-type {
333
+ font-size: 0.8rem;
334
+ font-weight: 600;
335
+ color: #374151;
336
+ margin: 4px 0;
337
+ }
338
+
339
+ .log-content {
340
+ font-size: 0.9rem;
341
+ color: #1f2937;
342
+ white-space: pre-wrap;
343
+ }
344
+
345
+ .empty-state {
346
+ text-align: center;
347
+ padding: 60px 20px;
348
+ color: #6b7280;
349
+ }
350
+
351
+ .empty-state p {
352
+ margin-bottom: 16px;
353
+ }
354
+
355
+ .loading {
356
+ text-align: center;
357
+ padding: 60px 20px;
358
+ color: #6b7280;
359
+ }
360
+
361
+ .loading::after {
362
+ content: '';
363
+ display: inline-block;
364
+ width: 20px;
365
+ height: 20px;
366
+ border: 2px solid #e5e7eb;
367
+ border-top-color: #2563eb;
368
+ border-radius: 50%;
369
+ animation: spin 0.8s linear infinite;
370
+ margin-left: 10px;
371
+ vertical-align: middle;
372
+ }
373
+
374
+ @keyframes spin {
375
+ to { transform: rotate(360deg); }
376
+ }
377
+
378
+ .error-message {
379
+ background: #fee2e2;
380
+ color: #991b1b;
381
+ padding: 12px;
382
+ border-radius: 6px;
383
+ margin-bottom: 16px;
384
+ }
385
+
386
+ .success-message {
387
+ background: #d1fae5;
388
+ color: #065f46;
389
+ padding: 12px;
390
+ border-radius: 6px;
391
+ margin-bottom: 16px;
392
+ }
393
+
394
+ .refresh-btn {
395
+ background: none;
396
+ border: 1px solid #d1d5db;
397
+ padding: 6px 12px;
398
+ border-radius: 4px;
399
+ cursor: pointer;
400
+ font-size: 0.85rem;
401
+ color: #6b7280;
402
+ }
403
+
404
+ .refresh-btn:hover {
405
+ background: #f3f4f6;
406
+ }
407
+
408
+ .action-bar {
409
+ display: flex;
410
+ gap: 12px;
411
+ margin-bottom: 16px;
412
+ }
413
+
414
+ @media (max-width: 600px) {
415
+ .container {
416
+ padding: 12px;
417
+ }
418
+
419
+ header {
420
+ padding: 12px 16px;
421
+ }
422
+
423
+ .header-content {
424
+ flex-direction: column;
425
+ gap: 12px;
426
+ }
427
+
428
+ header h1 {
429
+ font-size: 1.1rem;
430
+ }
431
+
432
+ nav {
433
+ width: 100%;
434
+ justify-content: center;
435
+ }
436
+
437
+ .card {
438
+ padding: 16px;
439
+ }
440
+
441
+ .page-header {
442
+ flex-direction: column;
443
+ gap: 12px;
444
+ align-items: flex-start;
445
+ }
446
+
447
+ .detail-grid {
448
+ grid-template-columns: 1fr;
449
+ }
450
+ }
451
+ </style>
452
+ </head>
453
+ <body>
454
+ <header>
455
+ <div class="header-content">
456
+ <h1 onclick="navigate('/')">PM Orchestrator Runner</h1>
457
+ <nav id="main-nav">
458
+ <a href="/" data-nav="home">Task Groups</a>
459
+ <a href="/new" data-nav="new">+ New Command</a>
460
+ </nav>
461
+ </div>
462
+ </header>
463
+
464
+ <main class="container">
465
+ <div id="app">
466
+ <div class="loading">Loading</div>
467
+ </div>
468
+ </main>
469
+
470
+ <script>
471
+ const app = document.getElementById('app');
472
+ let currentPath = '/';
473
+
474
+ // API helper
475
+ async function api(path, options = {}) {
476
+ const response = await fetch(`/api${path}`, {
477
+ headers: { 'Content-Type': 'application/json' },
478
+ ...options,
479
+ });
480
+ const data = await response.json();
481
+ if (!response.ok) {
482
+ throw new Error(data.message || 'Request failed');
483
+ }
484
+ return data;
485
+ }
486
+
487
+ // Format date
488
+ function formatDate(isoString) {
489
+ if (!isoString) return '-';
490
+ const date = new Date(isoString);
491
+ return date.toLocaleString('ja-JP', {
492
+ month: '2-digit',
493
+ day: '2-digit',
494
+ hour: '2-digit',
495
+ minute: '2-digit',
496
+ });
497
+ }
498
+
499
+ // Format full date
500
+ function formatFullDate(isoString) {
501
+ if (!isoString) return '-';
502
+ const date = new Date(isoString);
503
+ return date.toLocaleString('ja-JP', {
504
+ year: 'numeric',
505
+ month: '2-digit',
506
+ day: '2-digit',
507
+ hour: '2-digit',
508
+ minute: '2-digit',
509
+ second: '2-digit',
510
+ });
511
+ }
512
+
513
+ // Get status badge class
514
+ function getStatusBadgeClass(status) {
515
+ const map = {
516
+ 'QUEUED': 'badge-queued',
517
+ 'RUNNING': 'badge-running',
518
+ 'COMPLETE': 'badge-complete',
519
+ 'ERROR': 'badge-error',
520
+ };
521
+ return map[status] || 'badge-queued';
522
+ }
523
+
524
+ // Escape HTML
525
+ function escapeHtml(str) {
526
+ if (str === null || str === undefined) return '';
527
+ return String(str)
528
+ .replace(/&/g, '&amp;')
529
+ .replace(/</g, '&lt;')
530
+ .replace(/>/g, '&gt;')
531
+ .replace(/"/g, '&quot;')
532
+ .replace(/'/g, '&#039;');
533
+ }
534
+
535
+ // Update nav active state
536
+ function updateNav(path) {
537
+ document.querySelectorAll('#main-nav a').forEach(link => {
538
+ link.classList.remove('active');
539
+ if (path === '/' && link.dataset.nav === 'home') {
540
+ link.classList.add('active');
541
+ } else if (path === '/new' && link.dataset.nav === 'new') {
542
+ link.classList.add('active');
543
+ }
544
+ });
545
+ }
546
+
547
+ // Render task group list (Home)
548
+ async function renderTaskGroupList() {
549
+ app.innerHTML = '<div class="loading">Loading</div>';
550
+
551
+ try {
552
+ const data = await api('/task-groups');
553
+ const groups = data.task_groups || [];
554
+
555
+ if (groups.length === 0) {
556
+ app.innerHTML = `
557
+ <div class="page-header">
558
+ <h2>Task Groups</h2>
559
+ <button class="refresh-btn" onclick="renderTaskGroupList()">Refresh</button>
560
+ </div>
561
+ <div class="card">
562
+ <div class="empty-state">
563
+ <p>No task groups yet.</p>
564
+ <button class="btn btn-primary" onclick="navigate('/new')">+ Create New Command</button>
565
+ </div>
566
+ </div>
567
+ `;
568
+ return;
569
+ }
570
+
571
+ const items = groups.map(g => `
572
+ <div class="list-item" onclick="navigate('/task-groups/${encodeURIComponent(g.task_group_id)}')">
573
+ <div class="list-item-main">
574
+ <div class="list-item-title">${escapeHtml(g.task_group_id)}</div>
575
+ <div class="list-item-meta">
576
+ ${g.task_count} task(s) | Created: ${formatDate(g.created_at)}
577
+ </div>
578
+ </div>
579
+ <span class="list-item-arrow">›</span>
580
+ </div>
581
+ `).join('');
582
+
583
+ app.innerHTML = `
584
+ <div class="page-header">
585
+ <h2>Task Groups</h2>
586
+ <button class="refresh-btn" onclick="renderTaskGroupList()">Refresh</button>
587
+ </div>
588
+ <div class="card">
589
+ ${items}
590
+ </div>
591
+ `;
592
+ } catch (error) {
593
+ app.innerHTML = `
594
+ <div class="page-header">
595
+ <h2>Task Groups</h2>
596
+ </div>
597
+ <div class="card">
598
+ <div class="error-message">Error: ${escapeHtml(error.message)}</div>
599
+ <button class="btn btn-secondary" onclick="renderTaskGroupList()">Retry</button>
600
+ </div>
601
+ `;
602
+ }
603
+ }
604
+
605
+ // Render task list for a task group
606
+ async function renderTaskList(taskGroupId) {
607
+ app.innerHTML = '<div class="loading">Loading</div>';
608
+
609
+ try {
610
+ const data = await api(`/task-groups/${encodeURIComponent(taskGroupId)}/tasks`);
611
+ const tasks = data.tasks || [];
612
+
613
+ const backBtn = `<a href="/" class="back-btn" onclick="event.preventDefault(); navigate('/')">← Back to Groups</a>`;
614
+
615
+ if (tasks.length === 0) {
616
+ app.innerHTML = `
617
+ <div class="page-header">
618
+ <h2>${escapeHtml(taskGroupId)}</h2>
619
+ <div class="action-bar">
620
+ ${backBtn}
621
+ <button class="refresh-btn" onclick="renderTaskList('${escapeHtml(taskGroupId)}')">Refresh</button>
622
+ </div>
623
+ </div>
624
+ <div class="card">
625
+ <div class="empty-state">
626
+ <p>No tasks in this group yet.</p>
627
+ <button class="btn btn-primary" onclick="navigate('/new?group=${encodeURIComponent(taskGroupId)}')">+ Add Task</button>
628
+ </div>
629
+ </div>
630
+ `;
631
+ return;
632
+ }
633
+
634
+ const items = tasks.map(t => `
635
+ <div class="list-item" onclick="navigate('/tasks/${encodeURIComponent(t.task_id)}')">
636
+ <div class="list-item-main">
637
+ <span class="badge ${getStatusBadgeClass(t.status)}">${t.status}</span>
638
+ <span class="list-item-title">${escapeHtml(t.task_id)}</span>
639
+ <div class="list-item-meta">
640
+ ${escapeHtml(t.prompt.substring(0, 80))}${t.prompt.length > 80 ? '...' : ''}
641
+ </div>
642
+ <div class="list-item-meta">
643
+ ${formatDate(t.created_at)}
644
+ </div>
645
+ </div>
646
+ <span class="list-item-arrow">›</span>
647
+ </div>
648
+ `).join('');
649
+
650
+ app.innerHTML = `
651
+ <div class="page-header">
652
+ <h2>${escapeHtml(taskGroupId)}</h2>
653
+ <div class="action-bar">
654
+ ${backBtn}
655
+ <button class="refresh-btn" onclick="renderTaskList('${escapeHtml(taskGroupId)}')">Refresh</button>
656
+ </div>
657
+ </div>
658
+ <div class="card">
659
+ <h3>Tasks (${tasks.length})</h3>
660
+ ${items}
661
+ </div>
662
+ <div style="text-align: center; margin-top: 16px;">
663
+ <button class="btn btn-primary" onclick="navigate('/new?group=${encodeURIComponent(taskGroupId)}')">+ Add Task to This Group</button>
664
+ </div>
665
+ `;
666
+ } catch (error) {
667
+ app.innerHTML = `
668
+ <div class="page-header">
669
+ <h2>${escapeHtml(taskGroupId)}</h2>
670
+ <a href="/" class="back-btn" onclick="event.preventDefault(); navigate('/')">← Back</a>
671
+ </div>
672
+ <div class="card">
673
+ <div class="error-message">Error: ${escapeHtml(error.message)}</div>
674
+ <button class="btn btn-secondary" onclick="renderTaskList('${escapeHtml(taskGroupId)}')">Retry</button>
675
+ </div>
676
+ `;
677
+ }
678
+ }
679
+
680
+ // Render task detail with logs
681
+ async function renderTaskDetail(taskId) {
682
+ app.innerHTML = '<div class="loading">Loading</div>';
683
+
684
+ try {
685
+ const task = await api(`/tasks/${encodeURIComponent(taskId)}`);
686
+
687
+ const backBtn = `<a href="/task-groups/${encodeURIComponent(task.task_group_id)}" class="back-btn" onclick="event.preventDefault(); navigate('/task-groups/${encodeURIComponent(task.task_group_id)}')">← Back to Tasks</a>`;
688
+
689
+ let errorSection = '';
690
+ if (task.error_message) {
691
+ errorSection = `
692
+ <div class="card">
693
+ <h3>Error</h3>
694
+ <div class="log-entry error">
695
+ <div class="log-content">${escapeHtml(task.error_message)}</div>
696
+ </div>
697
+ </div>
698
+ `;
699
+ }
700
+
701
+ // Log entries (simulated based on task status)
702
+ let logEntries = '';
703
+ if (task.status !== 'QUEUED') {
704
+ logEntries = `
705
+ <div class="card log-section">
706
+ <h3>Execution Log</h3>
707
+ <div class="log-entry user-input">
708
+ <div class="log-time">${formatFullDate(task.created_at)}</div>
709
+ <div class="log-type">USER INPUT</div>
710
+ <div class="log-content">${escapeHtml(task.prompt)}</div>
711
+ </div>
712
+ ${task.status === 'RUNNING' ? `
713
+ <div class="log-entry task-started">
714
+ <div class="log-time">${formatFullDate(task.updated_at)}</div>
715
+ <div class="log-type">TASK STARTED</div>
716
+ <div class="log-content">Task is currently running...</div>
717
+ </div>
718
+ ` : ''}
719
+ ${task.status === 'COMPLETE' ? `
720
+ <div class="log-entry task-completed">
721
+ <div class="log-time">${formatFullDate(task.updated_at)}</div>
722
+ <div class="log-type">TASK COMPLETED</div>
723
+ <div class="log-content">Task completed successfully.</div>
724
+ </div>
725
+ ` : ''}
726
+ ${task.status === 'ERROR' ? `
727
+ <div class="log-entry error">
728
+ <div class="log-time">${formatFullDate(task.updated_at)}</div>
729
+ <div class="log-type">TASK ERROR</div>
730
+ <div class="log-content">${escapeHtml(task.error_message || 'Unknown error')}</div>
731
+ </div>
732
+ ` : ''}
733
+ </div>
734
+ `;
735
+ }
736
+
737
+ app.innerHTML = `
738
+ <div class="page-header">
739
+ <h2>Task Detail</h2>
740
+ <div class="action-bar">
741
+ ${backBtn}
742
+ <button class="refresh-btn" onclick="renderTaskDetail('${escapeHtml(taskId)}')">Refresh</button>
743
+ </div>
744
+ </div>
745
+
746
+ <div class="card">
747
+ <h3>Status</h3>
748
+ <span class="badge ${getStatusBadgeClass(task.status)}" style="font-size: 1rem; padding: 8px 16px;">${task.status}</span>
749
+ </div>
750
+
751
+ <div class="card">
752
+ <h3>Details</h3>
753
+ <div class="detail-grid">
754
+ <div class="detail-item">
755
+ <label>Task ID</label>
756
+ <value>${escapeHtml(task.task_id)}</value>
757
+ </div>
758
+ <div class="detail-item">
759
+ <label>Task Group</label>
760
+ <value><a href="/task-groups/${encodeURIComponent(task.task_group_id)}" onclick="event.preventDefault(); navigate('/task-groups/${encodeURIComponent(task.task_group_id)}')">${escapeHtml(task.task_group_id)}</a></value>
761
+ </div>
762
+ <div class="detail-item">
763
+ <label>Session ID</label>
764
+ <value>${escapeHtml(task.session_id)}</value>
765
+ </div>
766
+ <div class="detail-item">
767
+ <label>Created</label>
768
+ <value>${formatFullDate(task.created_at)}</value>
769
+ </div>
770
+ <div class="detail-item">
771
+ <label>Updated</label>
772
+ <value>${formatFullDate(task.updated_at)}</value>
773
+ </div>
774
+ </div>
775
+ </div>
776
+
777
+ <div class="card">
778
+ <h3>Prompt</h3>
779
+ <div class="prompt-box">${escapeHtml(task.prompt)}</div>
780
+ </div>
781
+
782
+ ${errorSection}
783
+ ${logEntries}
784
+ `;
785
+ } catch (error) {
786
+ app.innerHTML = `
787
+ <div class="page-header">
788
+ <h2>Task Detail</h2>
789
+ <a href="/" class="back-btn" onclick="event.preventDefault(); navigate('/')">← Back</a>
790
+ </div>
791
+ <div class="card">
792
+ <div class="error-message">Error: ${escapeHtml(error.message)}</div>
793
+ <button class="btn btn-secondary" onclick="renderTaskDetail('${escapeHtml(taskId)}')">Retry</button>
794
+ </div>
795
+ `;
796
+ }
797
+ }
798
+
799
+ // Render new command form
800
+ async function renderNewCommandForm(prefilledGroup = '') {
801
+ let taskGroups = [];
802
+ try {
803
+ const data = await api('/task-groups');
804
+ taskGroups = data.task_groups || [];
805
+ } catch (error) {
806
+ // Ignore - we can still create new task groups
807
+ }
808
+
809
+ const options = taskGroups.length > 0
810
+ ? taskGroups.map(g => `<option value="${escapeHtml(g.task_group_id)}">${escapeHtml(g.task_group_id)}</option>`).join('')
811
+ : '';
812
+
813
+ const backBtn = `<a href="/" class="back-btn" onclick="event.preventDefault(); navigate('/')">← Back to Groups</a>`;
814
+
815
+ app.innerHTML = `
816
+ <div class="page-header">
817
+ <h2>New Command</h2>
818
+ ${backBtn}
819
+ </div>
820
+
821
+ <div class="card">
822
+ <form id="new-command-form">
823
+ <div class="form-group">
824
+ <label for="task_group_id">Task Group ID</label>
825
+ <input type="text" id="task_group_id" name="task_group_id"
826
+ placeholder="Enter new or select existing"
827
+ list="task-groups-list"
828
+ value="${escapeHtml(prefilledGroup)}"
829
+ required>
830
+ <datalist id="task-groups-list">
831
+ ${options}
832
+ </datalist>
833
+ </div>
834
+
835
+ <div class="form-group">
836
+ <label for="prompt">Command / Prompt</label>
837
+ <textarea id="prompt" name="prompt"
838
+ placeholder="Enter your command or prompt here..." required></textarea>
839
+ </div>
840
+
841
+ <div id="form-message"></div>
842
+
843
+ <button type="submit" class="btn btn-primary" id="submit-btn">Submit to Queue</button>
844
+ </form>
845
+ </div>
846
+
847
+ <div class="card" style="background: #fffbeb; border-left: 4px solid #f59e0b;">
848
+ <p style="color: #92400e; font-size: 0.9rem;">
849
+ <strong>Note:</strong> This adds a task to the queue. The Runner will pick it up and execute it automatically.
850
+ </p>
851
+ </div>
852
+ `;
853
+
854
+ // Form submission
855
+ document.getElementById('new-command-form').addEventListener('submit', async (e) => {
856
+ e.preventDefault();
857
+ const form = e.target;
858
+ const submitBtn = document.getElementById('submit-btn');
859
+ const messageDiv = document.getElementById('form-message');
860
+
861
+ const taskGroupId = form.task_group_id.value.trim();
862
+ const prompt = form.prompt.value.trim();
863
+
864
+ if (!taskGroupId || !prompt) {
865
+ messageDiv.innerHTML = '<div class="error-message">Please fill in all fields.</div>';
866
+ return;
867
+ }
868
+
869
+ submitBtn.disabled = true;
870
+ submitBtn.textContent = 'Submitting...';
871
+
872
+ try {
873
+ const result = await api('/tasks', {
874
+ method: 'POST',
875
+ body: JSON.stringify({ task_group_id: taskGroupId, prompt }),
876
+ });
877
+
878
+ messageDiv.innerHTML = `
879
+ <div class="success-message">
880
+ Task queued successfully!<br>
881
+ Task ID: <strong>${escapeHtml(result.task_id)}</strong>
882
+ </div>
883
+ `;
884
+
885
+ // Clear prompt only
886
+ form.prompt.value = '';
887
+
888
+ // Navigate to task detail after delay
889
+ setTimeout(() => {
890
+ navigate(`/tasks/${encodeURIComponent(result.task_id)}`);
891
+ }, 1000);
892
+ } catch (error) {
893
+ messageDiv.innerHTML = `<div class="error-message">Error: ${escapeHtml(error.message)}</div>`;
894
+ } finally {
895
+ submitBtn.disabled = false;
896
+ submitBtn.textContent = 'Submit to Queue';
897
+ }
898
+ });
899
+ }
900
+
901
+ // Router
902
+ function router() {
903
+ const path = window.location.pathname;
904
+ const search = new URLSearchParams(window.location.search);
905
+ currentPath = path;
906
+ updateNav(path);
907
+
908
+ if (path === '/' || path === '') {
909
+ renderTaskGroupList();
910
+ } else if (path.startsWith('/task-groups/')) {
911
+ const taskGroupId = decodeURIComponent(path.split('/task-groups/')[1]);
912
+ renderTaskList(taskGroupId);
913
+ } else if (path.startsWith('/tasks/')) {
914
+ const taskId = decodeURIComponent(path.split('/tasks/')[1]);
915
+ renderTaskDetail(taskId);
916
+ } else if (path === '/new') {
917
+ const group = search.get('group') || '';
918
+ renderNewCommandForm(group);
919
+ } else {
920
+ app.innerHTML = `
921
+ <div class="card">
922
+ <h2>404 - Page Not Found</h2>
923
+ <p>The page you're looking for doesn't exist.</p>
924
+ <button class="btn btn-primary" onclick="navigate('/')" style="margin-top: 16px;">Go Home</button>
925
+ </div>
926
+ `;
927
+ }
928
+ }
929
+
930
+ // Navigate
931
+ function navigate(path) {
932
+ history.pushState(null, '', path);
933
+ router();
934
+ }
935
+
936
+ // Handle back/forward
937
+ window.addEventListener('popstate', router);
938
+
939
+ // Handle navigation links
940
+ document.querySelectorAll('#main-nav a').forEach(link => {
941
+ link.addEventListener('click', (e) => {
942
+ e.preventDefault();
943
+ navigate(link.getAttribute('href'));
944
+ });
945
+ });
946
+
947
+ // Initial load
948
+ router();
949
+ </script>
950
+ </body>
951
+ </html>
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAgB,EAAE,OAAO,EAAmC,MAAM,SAAS,CAAC;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAUD;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CA8P1D;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,MAAM,CAA8C;gBAEhD,MAAM,EAAE,eAAe;IAMnC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB3B;;OAEG;IACH,QAAQ,IAAI,cAAc;IAQ1B;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;OAEG;IACH,MAAM,IAAI,MAAM;CAGjB"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAgB,EAAE,OAAO,EAAmC,MAAM,SAAS,CAAC;AAE5E,OAAO,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAUD;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CA8T1D;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,MAAM,CAA8C;gBAEhD,MAAM,EAAE,eAAe;IAMnC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB3B;;OAEG;IACH,QAAQ,IAAI,cAAc;IAQ1B;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;OAEG;IACH,MAAM,IAAI,MAAM;CAGjB"}
@@ -33,7 +33,7 @@ function createApp(config) {
33
33
  // CORS headers for local development
34
34
  app.use((_req, res, next) => {
35
35
  res.header('Access-Control-Allow-Origin', '*');
36
- res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
36
+ res.header('Access-Control-Allow-Methods', 'GET, POST, PATCH, OPTIONS');
37
37
  res.header('Access-Control-Allow-Headers', 'Content-Type');
38
38
  next();
39
39
  });
@@ -188,6 +188,65 @@ function createApp(config) {
188
188
  res.status(500).json({ error: 'INTERNAL_ERROR', message });
189
189
  }
190
190
  });
191
+ /**
192
+ * PATCH /api/tasks/:task_id/status
193
+ * Update task status
194
+ * Body: { status: 'CANCELLED' | other valid status }
195
+ *
196
+ * Per spec/19_WEB_UI.md: Status change API
197
+ */
198
+ app.patch('/api/tasks/:task_id/status', async (req, res) => {
199
+ try {
200
+ const task_id = req.params.task_id;
201
+ const { status } = req.body;
202
+ // Fail-closed: validate input
203
+ if (!status || typeof status !== 'string') {
204
+ res.status(400).json({
205
+ error: 'INVALID_INPUT',
206
+ message: 'status is required and must be a string',
207
+ });
208
+ return;
209
+ }
210
+ // Validate status value
211
+ const validStatuses = ['QUEUED', 'RUNNING', 'COMPLETE', 'ERROR', 'CANCELLED'];
212
+ if (!validStatuses.includes(status)) {
213
+ res.status(400).json({
214
+ error: 'INVALID_STATUS',
215
+ message: `Invalid status: ${status}. Must be one of: ${validStatuses.join(', ')}`,
216
+ });
217
+ return;
218
+ }
219
+ // Update with validation
220
+ const result = await queueStore.updateStatusWithValidation(task_id, status);
221
+ if (!result.success) {
222
+ if (result.error === 'Task not found') {
223
+ res.status(404).json({
224
+ error: 'NOT_FOUND',
225
+ task_id: task_id,
226
+ message: result.message,
227
+ });
228
+ }
229
+ else {
230
+ // Invalid status transition
231
+ res.status(400).json({
232
+ error: result.error,
233
+ message: result.message,
234
+ });
235
+ }
236
+ return;
237
+ }
238
+ res.json({
239
+ success: true,
240
+ task_id: result.task_id,
241
+ old_status: result.old_status,
242
+ new_status: result.new_status,
243
+ });
244
+ }
245
+ catch (error) {
246
+ const message = error instanceof Error ? error.message : 'Unknown error';
247
+ res.status(500).json({ error: 'INTERNAL_ERROR', message });
248
+ }
249
+ });
191
250
  // ===================
192
251
  // Frontend Routes
193
252
  // ===================
@@ -245,6 +304,7 @@ function createApp(config) {
245
304
  'GET /api/task-groups/:task_group_id/tasks',
246
305
  'GET /api/tasks/:task_id',
247
306
  'POST /api/tasks',
307
+ 'PATCH /api/tasks/:task_id/status',
248
308
  'GET /api/health',
249
309
  'GET /api/routes',
250
310
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;AAwCH,8BA8TC;AApWD,sDAA4E;AAC5E,gDAAwB;AAkCxB;;GAEG;AACH,SAAgB,SAAS,CAAC,MAAuB;IAC/C,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IACtB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAEzC,aAAa;IACb,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACxB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEhD,eAAe;IACf,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAExD,qCAAqC;IACrC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAa,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QAC3D,GAAG,CAAC,MAAM,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;QAC/C,GAAG,CAAC,MAAM,CAAC,8BAA8B,EAAE,2BAA2B,CAAC,CAAC;QACxE,GAAG,CAAC,MAAM,CAAC,8BAA8B,EAAE,cAAc,CAAC,CAAC;QAC3D,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,sBAAsB;IACtB,kBAAkB;IAClB,wBAAwB;IACxB,sBAAsB;IAEtB;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,IAAa,EAAE,GAAa,EAAE,EAAE;QACjE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,gBAAgB,EAAE,CAAC;YACnD,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAmB,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;;;OAIG;IACH,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QACjE,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAE3C,8BAA8B;YAC9B,IAAI,CAAC,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACvF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,eAAe;oBACtB,OAAO,EAAE,0DAA0D;iBACnD,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAClE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,eAAe;oBACtB,OAAO,EAAE,mDAAmD;iBAC5C,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YAED,uCAAuC;YACvC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAEtF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAmB,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,uCAAuC,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QACrF,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,aAAuB,CAAC;YACzD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAE7D,GAAG,CAAC,IAAI,CAAC;gBACP,aAAa;gBACb,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACrB,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,aAAa,EAAE,CAAC,CAAC,aAAa;iBAC/B,CAAC,CAAC;aACJ,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAmB,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QACnE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAiB,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAE/C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,WAAW;oBAClB,OAAO,EAAE,mBAAmB,OAAO,EAAE;iBACrB,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YAED,GAAG,CAAC,IAAI,CAAC;gBACP,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,kDAAkD;aACnD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAmB,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;;;;;OAMG;IACH,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAC3D,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAE3C,8BAA8B;YAC9B,IAAI,CAAC,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACvF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,eAAe;oBACtB,OAAO,EAAE,0DAA0D;iBACnD,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAClE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,eAAe;oBACtB,OAAO,EAAE,mDAAmD;iBAC5C,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YAED,uCAAuC;YACvC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAEtF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB;gBACrC,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAmB,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;;;;;OAMG;IACH,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAC5E,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAiB,CAAC;YAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAE5B,8BAA8B;YAC9B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC1C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,eAAe;oBACtB,OAAO,EAAE,yCAAyC;iBAClC,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YAED,wBAAwB;YACxB,MAAM,aAAa,GAAsB,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YACjG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAyB,CAAC,EAAE,CAAC;gBACvD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,gBAAgB;oBACvB,OAAO,EAAE,mBAAmB,MAAM,qBAAqB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBACjE,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YAED,yBAAyB;YACzB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAyB,CAAC,CAAC;YAE/F,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,IAAI,MAAM,CAAC,KAAK,KAAK,gBAAgB,EAAE,CAAC;oBACtC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACnB,KAAK,EAAE,WAAW;wBAClB,OAAO,EAAE,OAAO;wBAChB,OAAO,EAAE,MAAM,CAAC,OAAO;qBACxB,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,4BAA4B;oBAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;qBACxB,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO;YACT,CAAC;YAED,GAAG,CAAC,IAAI,CAAC;gBACP,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAmB,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,sBAAsB;IACtB,kBAAkB;IAClB,sBAAsB;IAEtB;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QAC5C,GAAG,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QAC3D,GAAG,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QACrD,GAAG,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QAC/C,GAAG,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,sBAAsB;IACtB,eAAe;IACf,sBAAsB;IAEtB;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QACtD,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,sBAAsB;IACtB,iEAAiE;IACjE,sBAAsB;IAEtB;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QACtD,gEAAgE;QAChE,2DAA2D;QAC3D,MAAM,MAAM,GAAa;YACvB,sBAAsB;YACtB,uBAAuB;YACvB,2CAA2C;YAC3C,yBAAyB;YACzB,iBAAiB;YACjB,kCAAkC;YAClC,iBAAiB;YACjB,iBAAiB;SAClB,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAa,SAAS;IACH,GAAG,CAAU;IACb,IAAI,CAAS;IACb,IAAI,CAAS;IACtB,MAAM,GAAyC,IAAI,CAAC;IAE5D,YAAY,MAAuB;QACjC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;oBACvD,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACxB,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI;YAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;CACF;AAxED,8BAwEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-orchestrator-runner",
3
- "version": "1.0.12",
3
+ "version": "1.0.14",
4
4
  "description": "CLI tool that enforces controlled execution of Claude Code through mandatory orchestration",
5
5
  "main": "dist/cli/index.js",
6
6
  "bin": {