pm-orchestrator-runner 1.0.14 → 1.0.16
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.
- package/README.md +7 -7
- package/dist/cli/index.js +89 -9
- package/dist/cli/index.js.map +1 -1
- package/dist/config/namespace.d.ts +38 -11
- package/dist/config/namespace.d.ts.map +1 -1
- package/dist/config/namespace.js +163 -26
- package/dist/config/namespace.js.map +1 -1
- package/dist/queue/index.d.ts +7 -32
- package/dist/queue/index.d.ts.map +1 -1
- package/dist/queue/index.js +9 -28
- package/dist/queue/index.js.map +1 -1
- package/dist/queue/queue-poller.d.ts +20 -1
- package/dist/queue/queue-poller.d.ts.map +1 -1
- package/dist/queue/queue-poller.js +40 -1
- package/dist/queue/queue-poller.js.map +1 -1
- package/dist/queue/queue-store.d.ts +110 -51
- package/dist/queue/queue-store.d.ts.map +1 -1
- package/dist/queue/queue-store.js +341 -120
- package/dist/queue/queue-store.js.map +1 -1
- package/dist/web/index.d.ts +8 -2
- package/dist/web/index.d.ts.map +1 -1
- package/dist/web/index.js +8 -2
- package/dist/web/index.js.map +1 -1
- package/dist/web/public/index.html +81 -1
- package/dist/web/server.d.ts +13 -2
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +101 -33
- package/dist/web/server.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -40,10 +40,10 @@ pm repl --namespace stable
|
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
42
|
# Start Web UI server
|
|
43
|
-
pm web --port
|
|
43
|
+
pm web --port 5678
|
|
44
44
|
|
|
45
45
|
# Verify Web UI
|
|
46
|
-
curl http://localhost:
|
|
46
|
+
curl http://localhost:5678/api/health
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
### Non-Interactive Mode (Scripting)
|
|
@@ -95,7 +95,7 @@ pm --project-mode fixed --project-root /path/to/project
|
|
|
95
95
|
|
|
96
96
|
| Option | Description |
|
|
97
97
|
|--------|-------------|
|
|
98
|
-
| `--port <number>` | Web UI port (default:
|
|
98
|
+
| `--port <number>` | Web UI port (default: 5678) |
|
|
99
99
|
| `--namespace <name>` | Namespace for state separation |
|
|
100
100
|
|
|
101
101
|
## REPL Commands
|
|
@@ -115,18 +115,18 @@ Inside the REPL:
|
|
|
115
115
|
|
|
116
116
|
```bash
|
|
117
117
|
# 1. Start Web UI
|
|
118
|
-
pm web --port
|
|
118
|
+
pm web --port 5678
|
|
119
119
|
|
|
120
120
|
# 2. Health check
|
|
121
|
-
curl http://localhost:
|
|
121
|
+
curl http://localhost:5678/api/health
|
|
122
122
|
|
|
123
123
|
# 3. Submit task
|
|
124
|
-
curl -X POST http://localhost:
|
|
124
|
+
curl -X POST http://localhost:5678/api/tasks \
|
|
125
125
|
-H "Content-Type: application/json" \
|
|
126
126
|
-d '{"task_group_id":"test","prompt":"hello"}'
|
|
127
127
|
|
|
128
128
|
# 4. View tasks
|
|
129
|
-
curl http://localhost:
|
|
129
|
+
curl http://localhost:5678/api/task-groups
|
|
130
130
|
```
|
|
131
131
|
|
|
132
132
|
## Environment Variables
|
package/dist/cli/index.js
CHANGED
|
@@ -51,6 +51,7 @@ const cli_interface_1 = require("./cli-interface");
|
|
|
51
51
|
const repl_interface_1 = require("../repl/repl-interface");
|
|
52
52
|
const server_1 = require("../web/server");
|
|
53
53
|
const queue_1 = require("../queue");
|
|
54
|
+
const claude_code_executor_1 = require("../executor/claude-code-executor");
|
|
54
55
|
const namespace_1 = require("../config/namespace");
|
|
55
56
|
const api_key_onboarding_1 = require("../keys/api-key-onboarding");
|
|
56
57
|
/**
|
|
@@ -88,10 +89,10 @@ REPL Options:
|
|
|
88
89
|
--print-project-path Print PROJECT_PATH=<path> on startup
|
|
89
90
|
--namespace <name> Namespace for state separation (default: 'default')
|
|
90
91
|
Examples: 'stable', 'dev', 'test-1'
|
|
91
|
-
--port <number> Web UI port (default:
|
|
92
|
+
--port <number> Web UI port (default: 5678 for 'default'/'stable', 5679 for 'dev')
|
|
92
93
|
|
|
93
94
|
Web Options:
|
|
94
|
-
--port <number> Web UI port (default:
|
|
95
|
+
--port <number> Web UI port (default: 5678)
|
|
95
96
|
--namespace <name> Namespace for state separation
|
|
96
97
|
|
|
97
98
|
General Options:
|
|
@@ -102,17 +103,17 @@ Examples:
|
|
|
102
103
|
pm # Start REPL in current directory
|
|
103
104
|
pm --project ./my-project # Start REPL with specific project
|
|
104
105
|
pm repl --namespace stable # Start REPL with stable namespace
|
|
105
|
-
pm web --port
|
|
106
|
+
pm web --port 5678 # Start Web UI on port 5678
|
|
106
107
|
pm start ./my-project --dry-run # Start session with dry-run
|
|
107
108
|
pm continue session-2025-01-15-abc123 # Continue a session
|
|
108
109
|
|
|
109
110
|
Web UI Verification:
|
|
110
|
-
1. Start Web UI: pm web --port
|
|
111
|
-
2. Health check: curl http://localhost:
|
|
112
|
-
3. Submit task: curl -X POST http://localhost:
|
|
111
|
+
1. Start Web UI: pm web --port 5678
|
|
112
|
+
2. Health check: curl http://localhost:5678/api/health
|
|
113
|
+
3. Submit task: curl -X POST http://localhost:5678/api/tasks \\
|
|
113
114
|
-H "Content-Type: application/json" \\
|
|
114
115
|
-d '{"task_group_id":"test","prompt":"hello"}'
|
|
115
|
-
4. View tasks: curl http://localhost:
|
|
116
|
+
4. View tasks: curl http://localhost:5678/api/task-groups
|
|
116
117
|
`;
|
|
117
118
|
/**
|
|
118
119
|
* Version - read from package.json
|
|
@@ -251,6 +252,7 @@ async function startRepl(replArgs) {
|
|
|
251
252
|
// Build namespace configuration (per spec/21_STABLE_DEV.md)
|
|
252
253
|
// Fail-closed: buildNamespaceConfig throws on invalid namespace
|
|
253
254
|
const namespaceConfig = (0, namespace_1.buildNamespaceConfig)({
|
|
255
|
+
autoDerive: true,
|
|
254
256
|
namespace: replArgs.namespace,
|
|
255
257
|
projectRoot: projectPath,
|
|
256
258
|
port: replArgs.port,
|
|
@@ -316,6 +318,44 @@ function generateWebSessionId() {
|
|
|
316
318
|
const random = Math.random().toString(36).substring(2, 8);
|
|
317
319
|
return `web-${dateStr}-${random}`;
|
|
318
320
|
}
|
|
321
|
+
/**
|
|
322
|
+
* Create a TaskExecutor that uses ClaudeCodeExecutor
|
|
323
|
+
*/
|
|
324
|
+
function createTaskExecutor(projectPath) {
|
|
325
|
+
return async (item) => {
|
|
326
|
+
console.log(`[Runner] Executing task: ${item.task_id}`);
|
|
327
|
+
console.log(`[Runner] Prompt: ${item.prompt.substring(0, 100)}${item.prompt.length > 100 ? '...' : ''}`);
|
|
328
|
+
try {
|
|
329
|
+
const executor = new claude_code_executor_1.ClaudeCodeExecutor({
|
|
330
|
+
projectPath,
|
|
331
|
+
timeout: 10 * 60 * 1000, // 10 minutes
|
|
332
|
+
softTimeoutMs: 60 * 1000,
|
|
333
|
+
hardTimeoutMs: 120 * 1000,
|
|
334
|
+
});
|
|
335
|
+
const result = await executor.execute({
|
|
336
|
+
id: item.task_id,
|
|
337
|
+
prompt: item.prompt,
|
|
338
|
+
workingDir: projectPath,
|
|
339
|
+
});
|
|
340
|
+
console.log(`[Runner] Task ${item.task_id} completed with status: ${result.status}`);
|
|
341
|
+
if (result.status === 'COMPLETE') {
|
|
342
|
+
return { status: 'COMPLETE' };
|
|
343
|
+
}
|
|
344
|
+
else if (result.status === 'ERROR') {
|
|
345
|
+
return { status: 'ERROR', errorMessage: result.error || 'Task failed' };
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
// INCOMPLETE, NO_EVIDENCE, BLOCKED -> treat as ERROR for queue purposes
|
|
349
|
+
return { status: 'ERROR', errorMessage: `Task ended with status: ${result.status}` };
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
catch (error) {
|
|
353
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
354
|
+
console.error(`[Runner] Task ${item.task_id} failed:`, errorMessage);
|
|
355
|
+
return { status: 'ERROR', errorMessage };
|
|
356
|
+
}
|
|
357
|
+
};
|
|
358
|
+
}
|
|
319
359
|
/**
|
|
320
360
|
* Start Web UI server
|
|
321
361
|
*/
|
|
@@ -323,19 +363,45 @@ async function startWebServer(webArgs) {
|
|
|
323
363
|
const projectPath = process.cwd();
|
|
324
364
|
// Build namespace configuration
|
|
325
365
|
const namespaceConfig = (0, namespace_1.buildNamespaceConfig)({
|
|
366
|
+
autoDerive: true,
|
|
326
367
|
namespace: webArgs.namespace,
|
|
327
368
|
projectRoot: projectPath,
|
|
328
369
|
port: webArgs.port,
|
|
329
370
|
});
|
|
330
371
|
const port = webArgs.port || namespaceConfig.port;
|
|
331
|
-
const queueStore =
|
|
372
|
+
const queueStore = new queue_1.QueueStore({
|
|
332
373
|
namespace: namespaceConfig.namespace,
|
|
333
|
-
|
|
374
|
+
});
|
|
375
|
+
await queueStore.ensureTable();
|
|
376
|
+
// Create TaskExecutor and QueuePoller
|
|
377
|
+
const taskExecutor = createTaskExecutor(projectPath);
|
|
378
|
+
const poller = new queue_1.QueuePoller(queueStore, taskExecutor, {
|
|
379
|
+
pollIntervalMs: 1000,
|
|
380
|
+
recoverOnStartup: true,
|
|
381
|
+
projectRoot: projectPath,
|
|
382
|
+
});
|
|
383
|
+
// Set up poller event listeners
|
|
384
|
+
poller.on('started', () => {
|
|
385
|
+
console.log('[Runner] Queue poller started');
|
|
386
|
+
});
|
|
387
|
+
poller.on('claimed', (item) => {
|
|
388
|
+
console.log(`[Runner] Claimed task: ${item.task_id}`);
|
|
389
|
+
});
|
|
390
|
+
poller.on('completed', (item) => {
|
|
391
|
+
console.log(`[Runner] Completed task: ${item.task_id}`);
|
|
392
|
+
});
|
|
393
|
+
poller.on('error', (item, error) => {
|
|
394
|
+
console.error(`[Runner] Task ${item.task_id} error:`, error.message);
|
|
395
|
+
});
|
|
396
|
+
poller.on('stale-recovered', (count) => {
|
|
397
|
+
console.log(`[Runner] Recovered ${count} stale tasks`);
|
|
334
398
|
});
|
|
335
399
|
const server = new server_1.WebServer({
|
|
336
400
|
port,
|
|
337
401
|
queueStore,
|
|
338
402
|
sessionId: generateWebSessionId(),
|
|
403
|
+
namespace: namespaceConfig.namespace,
|
|
404
|
+
projectRoot: projectPath,
|
|
339
405
|
});
|
|
340
406
|
console.log(`Starting Web UI server on port ${port}...`);
|
|
341
407
|
console.log(`Namespace: ${namespaceConfig.namespace}`);
|
|
@@ -348,7 +414,21 @@ async function startWebServer(webArgs) {
|
|
|
348
414
|
console.log(' -d \'{"task_group_id":"test","prompt":"hello"}\'');
|
|
349
415
|
console.log(` 3. View tasks: curl http://localhost:${port}/api/task-groups`);
|
|
350
416
|
console.log('');
|
|
417
|
+
// Start both web server and poller
|
|
351
418
|
await server.start();
|
|
419
|
+
await poller.start();
|
|
420
|
+
console.log('[Runner] Web server and queue poller are running');
|
|
421
|
+
console.log('[Runner] Press Ctrl+C to stop');
|
|
422
|
+
// Handle graceful shutdown
|
|
423
|
+
const shutdown = async () => {
|
|
424
|
+
console.log('\n[Runner] Shutting down...');
|
|
425
|
+
await poller.stop();
|
|
426
|
+
await server.stop();
|
|
427
|
+
console.log('[Runner] Shutdown complete');
|
|
428
|
+
process.exit(0);
|
|
429
|
+
};
|
|
430
|
+
process.on('SIGINT', shutdown);
|
|
431
|
+
process.on('SIGTERM', shutdown);
|
|
352
432
|
}
|
|
353
433
|
/**
|
|
354
434
|
* Check if argument looks like an option (starts with -)
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Namespace Configuration
|
|
2
|
+
* Namespace Configuration (v2)
|
|
3
3
|
* Per spec/21_STABLE_DEV.md
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* -
|
|
5
|
+
* v2 Changes:
|
|
6
|
+
* - Single table design: namespace is part of the composite key
|
|
7
|
+
* - Table name is fixed: pm-runner-queue
|
|
8
|
+
* - getTableName() returns fixed value
|
|
9
|
+
*
|
|
10
|
+
* Provides state separation between namespaces:
|
|
11
|
+
* - Data separation via namespace partition key
|
|
7
12
|
* - State directory: .claude/state/{namespace}/
|
|
8
13
|
* - Web UI port: configurable via --port
|
|
9
14
|
*
|
|
15
|
+
* Auto-derivation: "Same Folder = Same Queue"
|
|
16
|
+
* - Derives namespace from project root path: {folder_name}-{path_hash_4_chars}
|
|
17
|
+
* - Example: /Users/masa/dev/my-project -> my-project-a1b2
|
|
18
|
+
*
|
|
10
19
|
* Fail-closed: Invalid namespace names cause immediate exit
|
|
11
20
|
*/
|
|
12
21
|
/**
|
|
@@ -19,12 +28,14 @@ export declare const DEFAULT_NAMESPACE = "default";
|
|
|
19
28
|
export interface NamespaceConfig {
|
|
20
29
|
/** Namespace name (default: 'default') */
|
|
21
30
|
namespace: string;
|
|
22
|
-
/** DynamoDB table name
|
|
31
|
+
/** DynamoDB table name (v2: always pm-runner-queue) */
|
|
23
32
|
tableName: string;
|
|
24
33
|
/** State directory path derived from namespace */
|
|
25
34
|
stateDir: string;
|
|
26
|
-
/** Web UI port (default:
|
|
35
|
+
/** Web UI port (default: 5678 for default namespace) */
|
|
27
36
|
port: number;
|
|
37
|
+
/** Whether namespace was auto-derived from project path */
|
|
38
|
+
autoDerived?: boolean;
|
|
28
39
|
}
|
|
29
40
|
/**
|
|
30
41
|
* Validate namespace name
|
|
@@ -32,9 +43,9 @@ export interface NamespaceConfig {
|
|
|
32
43
|
*/
|
|
33
44
|
export declare function validateNamespace(namespace: string): string | undefined;
|
|
34
45
|
/**
|
|
35
|
-
* Get QueueStore table name
|
|
46
|
+
* Get QueueStore table name (v2: always returns fixed table name)
|
|
36
47
|
*/
|
|
37
|
-
export declare function getTableName(
|
|
48
|
+
export declare function getTableName(_namespace: string): string;
|
|
38
49
|
/**
|
|
39
50
|
* Get state directory path for namespace
|
|
40
51
|
* @param projectRoot - The project root directory
|
|
@@ -43,16 +54,31 @@ export declare function getTableName(namespace: string): string;
|
|
|
43
54
|
export declare function getStateDir(projectRoot: string, namespace: string): string;
|
|
44
55
|
/**
|
|
45
56
|
* Get default Web UI port for namespace
|
|
46
|
-
* - default:
|
|
47
|
-
* - stable:
|
|
48
|
-
* - dev:
|
|
49
|
-
* - Others:
|
|
57
|
+
* - default: 5678
|
|
58
|
+
* - stable: 5678
|
|
59
|
+
* - dev: 5679
|
|
60
|
+
* - Others: 5680 + hash(namespace) % 1000
|
|
50
61
|
*/
|
|
51
62
|
export declare function getDefaultPort(namespace: string): number;
|
|
63
|
+
/**
|
|
64
|
+
* Derive namespace from project path
|
|
65
|
+
* Format: {folder_name}-{4_char_hash}
|
|
66
|
+
* Example: /Users/masa/dev/my-project -> my-project-a1b2
|
|
67
|
+
*
|
|
68
|
+
* @param projectPath - Full path to project directory
|
|
69
|
+
* @returns Derived namespace string
|
|
70
|
+
*/
|
|
71
|
+
export declare function deriveNamespaceFromPath(projectPath: string): string;
|
|
52
72
|
/**
|
|
53
73
|
* Build namespace configuration
|
|
54
74
|
* Fail-closed: Throws on invalid namespace
|
|
55
75
|
*
|
|
76
|
+
* Priority order:
|
|
77
|
+
* 1. Explicit namespace option
|
|
78
|
+
* 2. PM_RUNNER_NAMESPACE environment variable
|
|
79
|
+
* 3. Auto-derived from projectRoot (if autoDerive is true)
|
|
80
|
+
* 4. DEFAULT_NAMESPACE ('default')
|
|
81
|
+
*
|
|
56
82
|
* @param options - Configuration options
|
|
57
83
|
* @returns Namespace configuration
|
|
58
84
|
* @throws Error if namespace is invalid
|
|
@@ -61,6 +87,7 @@ export declare function buildNamespaceConfig(options: {
|
|
|
61
87
|
namespace?: string;
|
|
62
88
|
projectRoot: string;
|
|
63
89
|
port?: number;
|
|
90
|
+
autoDerive?: boolean;
|
|
64
91
|
}): NamespaceConfig;
|
|
65
92
|
/**
|
|
66
93
|
* Namespace comparison utilities
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/config/namespace.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/config/namespace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAmBH;;GAEG;AACH,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAY3C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAkBvE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAK1E;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAmBxD;AA2BD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAoCnE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,eAAe,CAgClB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB;;OAEG;yBACkB,MAAM,OAAO,MAAM,GAAG,OAAO;IAIlD;;OAEG;kCAC2B,MAAM,GAAG,OAAO;IAI9C;;OAEG;wBACiB,MAAM,GAAG,OAAO;IAIpC;;OAEG;qBACc,MAAM,GAAG,OAAO;CAGlC,CAAC"}
|
package/dist/config/namespace.js
CHANGED
|
@@ -1,22 +1,68 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Namespace Configuration
|
|
3
|
+
* Namespace Configuration (v2)
|
|
4
4
|
* Per spec/21_STABLE_DEV.md
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* -
|
|
6
|
+
* v2 Changes:
|
|
7
|
+
* - Single table design: namespace is part of the composite key
|
|
8
|
+
* - Table name is fixed: pm-runner-queue
|
|
9
|
+
* - getTableName() returns fixed value
|
|
10
|
+
*
|
|
11
|
+
* Provides state separation between namespaces:
|
|
12
|
+
* - Data separation via namespace partition key
|
|
8
13
|
* - State directory: .claude/state/{namespace}/
|
|
9
14
|
* - Web UI port: configurable via --port
|
|
10
15
|
*
|
|
16
|
+
* Auto-derivation: "Same Folder = Same Queue"
|
|
17
|
+
* - Derives namespace from project root path: {folder_name}-{path_hash_4_chars}
|
|
18
|
+
* - Example: /Users/masa/dev/my-project -> my-project-a1b2
|
|
19
|
+
*
|
|
11
20
|
* Fail-closed: Invalid namespace names cause immediate exit
|
|
12
21
|
*/
|
|
22
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
23
|
+
if (k2 === undefined) k2 = k;
|
|
24
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
25
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
26
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
27
|
+
}
|
|
28
|
+
Object.defineProperty(o, k2, desc);
|
|
29
|
+
}) : (function(o, m, k, k2) {
|
|
30
|
+
if (k2 === undefined) k2 = k;
|
|
31
|
+
o[k2] = m[k];
|
|
32
|
+
}));
|
|
33
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
34
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
35
|
+
}) : function(o, v) {
|
|
36
|
+
o["default"] = v;
|
|
37
|
+
});
|
|
38
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
39
|
+
var ownKeys = function(o) {
|
|
40
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
41
|
+
var ar = [];
|
|
42
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
43
|
+
return ar;
|
|
44
|
+
};
|
|
45
|
+
return ownKeys(o);
|
|
46
|
+
};
|
|
47
|
+
return function (mod) {
|
|
48
|
+
if (mod && mod.__esModule) return mod;
|
|
49
|
+
var result = {};
|
|
50
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
51
|
+
__setModuleDefault(result, mod);
|
|
52
|
+
return result;
|
|
53
|
+
};
|
|
54
|
+
})();
|
|
13
55
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
56
|
exports.NamespaceUtils = exports.DEFAULT_NAMESPACE = void 0;
|
|
15
57
|
exports.validateNamespace = validateNamespace;
|
|
16
58
|
exports.getTableName = getTableName;
|
|
17
59
|
exports.getStateDir = getStateDir;
|
|
18
60
|
exports.getDefaultPort = getDefaultPort;
|
|
61
|
+
exports.deriveNamespaceFromPath = deriveNamespaceFromPath;
|
|
19
62
|
exports.buildNamespaceConfig = buildNamespaceConfig;
|
|
63
|
+
const path = __importStar(require("path"));
|
|
64
|
+
const crypto = __importStar(require("crypto"));
|
|
65
|
+
const queue_store_1 = require("../queue/queue-store");
|
|
20
66
|
/**
|
|
21
67
|
* Valid namespace pattern
|
|
22
68
|
* - Alphanumeric and hyphens only
|
|
@@ -32,6 +78,14 @@ const RESERVED_NAMESPACES = ['all', 'none', 'null', 'undefined', 'system'];
|
|
|
32
78
|
* Default namespace name
|
|
33
79
|
*/
|
|
34
80
|
exports.DEFAULT_NAMESPACE = 'default';
|
|
81
|
+
/**
|
|
82
|
+
* Maximum namespace length
|
|
83
|
+
*/
|
|
84
|
+
const MAX_NAMESPACE_LENGTH = 32;
|
|
85
|
+
/**
|
|
86
|
+
* Hash length for auto-derived namespaces
|
|
87
|
+
*/
|
|
88
|
+
const HASH_LENGTH = 4;
|
|
35
89
|
/**
|
|
36
90
|
* Validate namespace name
|
|
37
91
|
* Fail-closed: Returns error message if invalid, undefined if valid
|
|
@@ -40,25 +94,23 @@ function validateNamespace(namespace) {
|
|
|
40
94
|
if (!namespace) {
|
|
41
95
|
return 'Namespace cannot be empty';
|
|
42
96
|
}
|
|
43
|
-
if (namespace.length >
|
|
44
|
-
return
|
|
97
|
+
if (namespace.length > MAX_NAMESPACE_LENGTH) {
|
|
98
|
+
return 'Namespace too long: ' + namespace.length + ' characters (max ' + MAX_NAMESPACE_LENGTH + ')';
|
|
45
99
|
}
|
|
46
100
|
if (!NAMESPACE_PATTERN.test(namespace)) {
|
|
47
|
-
return
|
|
101
|
+
return 'Invalid namespace format: "' + namespace + '". Use alphanumeric and hyphens only (e.g., "stable", "dev", "test-1")';
|
|
48
102
|
}
|
|
49
103
|
if (RESERVED_NAMESPACES.includes(namespace.toLowerCase())) {
|
|
50
|
-
return
|
|
104
|
+
return 'Reserved namespace name: "' + namespace + '". Cannot use: ' + RESERVED_NAMESPACES.join(', ');
|
|
51
105
|
}
|
|
52
106
|
return undefined; // Valid
|
|
53
107
|
}
|
|
54
108
|
/**
|
|
55
|
-
* Get QueueStore table name
|
|
109
|
+
* Get QueueStore table name (v2: always returns fixed table name)
|
|
56
110
|
*/
|
|
57
|
-
function getTableName(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
return `pm-runner-queue-${namespace}`;
|
|
111
|
+
function getTableName(_namespace) {
|
|
112
|
+
// v2: Single table design - all namespaces share the same table
|
|
113
|
+
return queue_store_1.QUEUE_TABLE_NAME;
|
|
62
114
|
}
|
|
63
115
|
/**
|
|
64
116
|
* Get state directory path for namespace
|
|
@@ -67,55 +119,140 @@ function getTableName(namespace) {
|
|
|
67
119
|
*/
|
|
68
120
|
function getStateDir(projectRoot, namespace) {
|
|
69
121
|
if (namespace === exports.DEFAULT_NAMESPACE) {
|
|
70
|
-
return
|
|
122
|
+
return projectRoot + '/.claude';
|
|
71
123
|
}
|
|
72
|
-
return
|
|
124
|
+
return projectRoot + '/.claude/state/' + namespace;
|
|
73
125
|
}
|
|
74
126
|
/**
|
|
75
127
|
* Get default Web UI port for namespace
|
|
76
|
-
* - default:
|
|
77
|
-
* - stable:
|
|
78
|
-
* - dev:
|
|
79
|
-
* - Others:
|
|
128
|
+
* - default: 5678
|
|
129
|
+
* - stable: 5678
|
|
130
|
+
* - dev: 5679
|
|
131
|
+
* - Others: 5680 + hash(namespace) % 1000
|
|
80
132
|
*/
|
|
81
133
|
function getDefaultPort(namespace) {
|
|
82
134
|
const basePorts = {
|
|
83
|
-
'default':
|
|
84
|
-
'stable':
|
|
85
|
-
'dev':
|
|
135
|
+
'default': 5678,
|
|
136
|
+
'stable': 5678,
|
|
137
|
+
'dev': 5679,
|
|
86
138
|
};
|
|
87
139
|
if (basePorts[namespace] !== undefined) {
|
|
88
140
|
return basePorts[namespace];
|
|
89
141
|
}
|
|
90
|
-
// Hash-based port for other namespaces (
|
|
142
|
+
// Hash-based port for other namespaces (5680-6677)
|
|
91
143
|
let hash = 0;
|
|
92
144
|
for (let i = 0; i < namespace.length; i++) {
|
|
93
145
|
const char = namespace.charCodeAt(i);
|
|
94
146
|
hash = ((hash << 5) - hash) + char;
|
|
95
147
|
hash = hash & hash; // Convert to 32bit integer
|
|
96
148
|
}
|
|
97
|
-
return
|
|
149
|
+
return 5680 + (Math.abs(hash) % 998);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Normalize folder name for namespace
|
|
153
|
+
* - Convert to lowercase
|
|
154
|
+
* - Replace underscores with hyphens
|
|
155
|
+
* - Remove special characters (keep only alphanumeric and hyphens)
|
|
156
|
+
* - Remove leading/trailing hyphens
|
|
157
|
+
*/
|
|
158
|
+
function normalizeFolderName(folderName) {
|
|
159
|
+
return folderName
|
|
160
|
+
.toLowerCase()
|
|
161
|
+
.replace(/_/g, '-') // underscores to hyphens
|
|
162
|
+
.replace(/[^a-z0-9-]/g, '') // remove special chars
|
|
163
|
+
.replace(/^-+|-+$/g, '') // remove leading/trailing hyphens
|
|
164
|
+
.replace(/-+/g, '-'); // collapse multiple hyphens
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Generate 4-character hash from path
|
|
168
|
+
* Uses MD5 for speed and consistency
|
|
169
|
+
*/
|
|
170
|
+
function generatePathHash(fullPath) {
|
|
171
|
+
const hash = crypto.createHash('md5').update(fullPath).digest('hex');
|
|
172
|
+
return hash.substring(0, HASH_LENGTH);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Derive namespace from project path
|
|
176
|
+
* Format: {folder_name}-{4_char_hash}
|
|
177
|
+
* Example: /Users/masa/dev/my-project -> my-project-a1b2
|
|
178
|
+
*
|
|
179
|
+
* @param projectPath - Full path to project directory
|
|
180
|
+
* @returns Derived namespace string
|
|
181
|
+
*/
|
|
182
|
+
function deriveNamespaceFromPath(projectPath) {
|
|
183
|
+
// Normalize path separators and remove trailing slash
|
|
184
|
+
const normalizedPath = projectPath
|
|
185
|
+
.replace(/\\/g, '/') // Windows to Unix paths
|
|
186
|
+
.replace(/\/+$/, ''); // Remove trailing slashes
|
|
187
|
+
// Extract folder name (basename)
|
|
188
|
+
const folderName = path.basename(normalizedPath);
|
|
189
|
+
// Normalize folder name for namespace
|
|
190
|
+
const normalizedFolder = normalizeFolderName(folderName);
|
|
191
|
+
// Generate hash from full path
|
|
192
|
+
const pathHash = generatePathHash(normalizedPath);
|
|
193
|
+
// Calculate max folder length to fit within MAX_NAMESPACE_LENGTH
|
|
194
|
+
// Format: {folder}-{hash} where hash is 4 chars and hyphen is 1 char
|
|
195
|
+
const maxFolderLength = MAX_NAMESPACE_LENGTH - HASH_LENGTH - 1;
|
|
196
|
+
// Truncate folder name if needed
|
|
197
|
+
let truncatedFolder = normalizedFolder;
|
|
198
|
+
if (truncatedFolder.length > maxFolderLength) {
|
|
199
|
+
truncatedFolder = truncatedFolder.substring(0, maxFolderLength);
|
|
200
|
+
// Remove trailing hyphen if truncation created one
|
|
201
|
+
truncatedFolder = truncatedFolder.replace(/-+$/, '');
|
|
202
|
+
}
|
|
203
|
+
// Handle edge case: empty folder name after normalization
|
|
204
|
+
if (!truncatedFolder) {
|
|
205
|
+
truncatedFolder = 'project';
|
|
206
|
+
}
|
|
207
|
+
// Combine folder name and hash
|
|
208
|
+
const namespace = truncatedFolder + '-' + pathHash;
|
|
209
|
+
return namespace;
|
|
98
210
|
}
|
|
99
211
|
/**
|
|
100
212
|
* Build namespace configuration
|
|
101
213
|
* Fail-closed: Throws on invalid namespace
|
|
102
214
|
*
|
|
215
|
+
* Priority order:
|
|
216
|
+
* 1. Explicit namespace option
|
|
217
|
+
* 2. PM_RUNNER_NAMESPACE environment variable
|
|
218
|
+
* 3. Auto-derived from projectRoot (if autoDerive is true)
|
|
219
|
+
* 4. DEFAULT_NAMESPACE ('default')
|
|
220
|
+
*
|
|
103
221
|
* @param options - Configuration options
|
|
104
222
|
* @returns Namespace configuration
|
|
105
223
|
* @throws Error if namespace is invalid
|
|
106
224
|
*/
|
|
107
225
|
function buildNamespaceConfig(options) {
|
|
108
|
-
|
|
226
|
+
let namespace;
|
|
227
|
+
let autoDerived = false;
|
|
228
|
+
if (options.namespace) {
|
|
229
|
+
// 1. Explicit namespace option takes highest priority
|
|
230
|
+
namespace = options.namespace;
|
|
231
|
+
}
|
|
232
|
+
else if (process.env.PM_RUNNER_NAMESPACE) {
|
|
233
|
+
// 2. Environment variable
|
|
234
|
+
namespace = process.env.PM_RUNNER_NAMESPACE;
|
|
235
|
+
}
|
|
236
|
+
else if (options.autoDerive) {
|
|
237
|
+
// 3. Auto-derive from project path
|
|
238
|
+
namespace = deriveNamespaceFromPath(options.projectRoot);
|
|
239
|
+
autoDerived = true;
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
// 4. Default namespace
|
|
243
|
+
namespace = exports.DEFAULT_NAMESPACE;
|
|
244
|
+
}
|
|
109
245
|
// Validate namespace (fail-closed)
|
|
110
246
|
const error = validateNamespace(namespace);
|
|
111
247
|
if (error) {
|
|
112
|
-
throw new Error(
|
|
248
|
+
throw new Error('Invalid namespace: ' + error);
|
|
113
249
|
}
|
|
114
250
|
return {
|
|
115
251
|
namespace,
|
|
116
252
|
tableName: getTableName(namespace),
|
|
117
253
|
stateDir: getStateDir(options.projectRoot, namespace),
|
|
118
254
|
port: options.port || getDefaultPort(namespace),
|
|
255
|
+
autoDerived,
|
|
119
256
|
};
|
|
120
257
|
}
|
|
121
258
|
/**
|