@orchestrator-claude/cli 3.3.15 → 3.3.17
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/dist/api-client/types.d.ts +61 -0
- package/dist/api-client/types.d.ts.map +1 -1
- package/dist/commands/SyncCommand.d.ts +7 -5
- package/dist/commands/SyncCommand.d.ts.map +1 -1
- package/dist/commands/SyncCommand.js +58 -15
- package/dist/commands/SyncCommand.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/parsers/DefinitionFileParser.d.ts +30 -0
- package/dist/parsers/DefinitionFileParser.d.ts.map +1 -0
- package/dist/parsers/DefinitionFileParser.js +230 -0
- package/dist/parsers/DefinitionFileParser.js.map +1 -0
- package/dist/services/BootstrapService.js +2 -2
- package/dist/services/BootstrapService.js.map +1 -1
- package/dist/writers/DefinitionFileWriter.d.ts +28 -0
- package/dist/writers/DefinitionFileWriter.d.ts.map +1 -0
- package/dist/writers/DefinitionFileWriter.js +49 -0
- package/dist/writers/DefinitionFileWriter.js.map +1 -0
- package/package.json +1 -1
|
@@ -228,6 +228,7 @@ export interface WorkflowConfigsResponse {
|
|
|
228
228
|
export interface RegisterRequest {
|
|
229
229
|
email: string;
|
|
230
230
|
password: string;
|
|
231
|
+
role?: 'admin' | 'editor' | 'viewer';
|
|
231
232
|
}
|
|
232
233
|
/**
|
|
233
234
|
* User registration response
|
|
@@ -345,6 +346,8 @@ export interface SyncCounters {
|
|
|
345
346
|
export interface SyncDefinitionsRequest {
|
|
346
347
|
fromFiles?: boolean;
|
|
347
348
|
dryRun?: boolean;
|
|
349
|
+
responseMode?: 'filesystem' | 'payload';
|
|
350
|
+
definitions?: DefinitionsPayload;
|
|
348
351
|
}
|
|
349
352
|
/**
|
|
350
353
|
* Sync definitions response (TD-044 Sprint 3)
|
|
@@ -362,6 +365,64 @@ export interface SyncDefinitionsResponse {
|
|
|
362
365
|
error: string;
|
|
363
366
|
}[];
|
|
364
367
|
dryRun: boolean;
|
|
368
|
+
files?: SyncFilePayload[];
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Parsed agent payload for sync API
|
|
372
|
+
*/
|
|
373
|
+
export interface ParsedAgentPayload {
|
|
374
|
+
slug: string;
|
|
375
|
+
name: string;
|
|
376
|
+
description: string;
|
|
377
|
+
tools: string[];
|
|
378
|
+
content: string;
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Parsed workflow payload for sync API
|
|
382
|
+
*/
|
|
383
|
+
export interface ParsedWorkflowPayload {
|
|
384
|
+
slug: string;
|
|
385
|
+
type: string;
|
|
386
|
+
displayName: string;
|
|
387
|
+
description: string;
|
|
388
|
+
version: string;
|
|
389
|
+
phases: string[];
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Parsed skill payload for sync API
|
|
393
|
+
*/
|
|
394
|
+
export interface ParsedSkillPayload {
|
|
395
|
+
slug: string;
|
|
396
|
+
name: string;
|
|
397
|
+
description: string;
|
|
398
|
+
pattern?: string;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Parsed hook payload for sync API
|
|
402
|
+
*/
|
|
403
|
+
export interface ParsedHookPayload {
|
|
404
|
+
slug: string;
|
|
405
|
+
name: string;
|
|
406
|
+
description: string;
|
|
407
|
+
hookType: 'pre' | 'post';
|
|
408
|
+
triggerPhase: string;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Combined definitions payload for sync API
|
|
412
|
+
*/
|
|
413
|
+
export interface DefinitionsPayload {
|
|
414
|
+
agents?: ParsedAgentPayload[];
|
|
415
|
+
workflows?: ParsedWorkflowPayload[];
|
|
416
|
+
skills?: ParsedSkillPayload[];
|
|
417
|
+
hooks?: ParsedHookPayload[];
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Sync file payload (DB→files response)
|
|
421
|
+
*/
|
|
422
|
+
export interface SyncFilePayload {
|
|
423
|
+
path: string;
|
|
424
|
+
content: string;
|
|
425
|
+
type: 'agent' | 'workflow' | 'skill' | 'hook';
|
|
365
426
|
}
|
|
366
427
|
/**
|
|
367
428
|
* Individual verification check result (RFC-015 Phase 5)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api-client/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api-client/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* SyncCommand
|
|
3
3
|
*
|
|
4
|
-
* CLI command to perform bidirectional sync between
|
|
4
|
+
* CLI command to perform bidirectional sync between local .claude/ files
|
|
5
5
|
* and PostgreSQL definition tables via the POST /api/v1/projects/sync endpoint.
|
|
6
6
|
*
|
|
7
|
+
* Uses payload mode (TD-074): CLI reads/writes local files, server only
|
|
8
|
+
* interacts with the database. No server filesystem access needed.
|
|
9
|
+
*
|
|
7
10
|
* Two flows:
|
|
8
|
-
* Default (--from-files not set): DB →
|
|
9
|
-
* With --from-files flag:
|
|
11
|
+
* Default (--from-files not set): DB → local files (Flow 3)
|
|
12
|
+
* With --from-files flag: local files → DB (Flow 4)
|
|
10
13
|
*
|
|
11
14
|
* @module commands
|
|
12
15
|
*/
|
|
@@ -42,8 +45,7 @@ export interface SyncResult {
|
|
|
42
45
|
/**
|
|
43
46
|
* SyncCommand
|
|
44
47
|
*
|
|
45
|
-
* Calls the sync endpoint and formats the resulting report.
|
|
46
|
-
* Follows the same pattern as SeedCommand.
|
|
48
|
+
* Calls the sync endpoint using payload mode and formats the resulting report.
|
|
47
49
|
*/
|
|
48
50
|
export declare class SyncCommand {
|
|
49
51
|
private readonly apiClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncCommand.d.ts","sourceRoot":"","sources":["../../src/commands/SyncCommand.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"SyncCommand.d.ts","sourceRoot":"","sources":["../../src/commands/SyncCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAKtE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,qBAAqB;IAE7D;;;;;OAKG;IACG,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAgG7D;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM;CAiD/D"}
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* SyncCommand
|
|
3
3
|
*
|
|
4
|
-
* CLI command to perform bidirectional sync between
|
|
4
|
+
* CLI command to perform bidirectional sync between local .claude/ files
|
|
5
5
|
* and PostgreSQL definition tables via the POST /api/v1/projects/sync endpoint.
|
|
6
6
|
*
|
|
7
|
+
* Uses payload mode (TD-074): CLI reads/writes local files, server only
|
|
8
|
+
* interacts with the database. No server filesystem access needed.
|
|
9
|
+
*
|
|
7
10
|
* Two flows:
|
|
8
|
-
* Default (--from-files not set): DB →
|
|
9
|
-
* With --from-files flag:
|
|
11
|
+
* Default (--from-files not set): DB → local files (Flow 3)
|
|
12
|
+
* With --from-files flag: local files → DB (Flow 4)
|
|
10
13
|
*
|
|
11
14
|
* @module commands
|
|
12
15
|
*/
|
|
13
16
|
import { loadEnvFile } from '../utils/env-loader.js';
|
|
17
|
+
import { DefinitionFileParser } from '../parsers/DefinitionFileParser.js';
|
|
18
|
+
import { DefinitionFileWriter } from '../writers/DefinitionFileWriter.js';
|
|
14
19
|
/**
|
|
15
20
|
* SyncCommand
|
|
16
21
|
*
|
|
17
|
-
* Calls the sync endpoint and formats the resulting report.
|
|
18
|
-
* Follows the same pattern as SeedCommand.
|
|
22
|
+
* Calls the sync endpoint using payload mode and formats the resulting report.
|
|
19
23
|
*/
|
|
20
24
|
export class SyncCommand {
|
|
21
25
|
apiClient;
|
|
@@ -55,16 +59,55 @@ export class SyncCommand {
|
|
|
55
59
|
};
|
|
56
60
|
}
|
|
57
61
|
try {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
: '
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
if (fromFiles) {
|
|
63
|
+
// Flow 4: local files → DB (payload mode)
|
|
64
|
+
const parser = new DefinitionFileParser(process.cwd());
|
|
65
|
+
const definitions = await parser.parseAll();
|
|
66
|
+
const report = await this.apiClient.syncDefinitions({
|
|
67
|
+
fromFiles: true,
|
|
68
|
+
dryRun,
|
|
69
|
+
responseMode: 'payload',
|
|
70
|
+
definitions,
|
|
71
|
+
});
|
|
72
|
+
const dryRunSuffix = report.dryRun ? ' (dry run)' : '';
|
|
73
|
+
return {
|
|
74
|
+
success: report.success,
|
|
75
|
+
message: report.success
|
|
76
|
+
? `Sync complete: filesystem → DB${dryRunSuffix}`
|
|
77
|
+
: 'Sync completed with errors',
|
|
78
|
+
report,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
// Flow 3: DB → local files (payload mode)
|
|
83
|
+
const report = await this.apiClient.syncDefinitions({
|
|
84
|
+
fromFiles: false,
|
|
85
|
+
dryRun,
|
|
86
|
+
responseMode: 'payload',
|
|
87
|
+
});
|
|
88
|
+
// Write received files to local project directory
|
|
89
|
+
if (report.files && report.files.length > 0 && !dryRun) {
|
|
90
|
+
const writer = new DefinitionFileWriter(process.cwd());
|
|
91
|
+
const writeResult = await writer.writeAll(report.files);
|
|
92
|
+
if (writeResult.errors.length > 0) {
|
|
93
|
+
return {
|
|
94
|
+
success: false,
|
|
95
|
+
message: `Sync received ${report.files.length} files but ${writeResult.errors.length} failed to write`,
|
|
96
|
+
report,
|
|
97
|
+
error: writeResult.errors.join('; '),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const dryRunSuffix = report.dryRun ? ' (dry run)' : '';
|
|
102
|
+
const fileCount = report.files?.length ?? 0;
|
|
103
|
+
return {
|
|
104
|
+
success: report.success,
|
|
105
|
+
message: report.success
|
|
106
|
+
? `Sync complete: DB → filesystem (${fileCount} files)${dryRunSuffix}`
|
|
107
|
+
: 'Sync completed with errors',
|
|
108
|
+
report,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
68
111
|
}
|
|
69
112
|
catch (error) {
|
|
70
113
|
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncCommand.js","sourceRoot":"","sources":["../../src/commands/SyncCommand.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"SyncCommand.js","sourceRoot":"","sources":["../../src/commands/SyncCommand.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DefinitionFileParser
|
|
3
|
+
*
|
|
4
|
+
* Reads the user's local .claude/ directory and parses definition files
|
|
5
|
+
* into payload structures for the sync API (TD-074).
|
|
6
|
+
*
|
|
7
|
+
* Parsing logic mirrors SeedDefinitionsService's private parse methods:
|
|
8
|
+
* - Agents: *.md files — H1 for name, first paragraph for description, ## Tools section
|
|
9
|
+
* - Workflows: *.json files — name/displayName/description/version/phases
|
|
10
|
+
* - Skills: SKILL.md in subdirs — name from H1, description from body
|
|
11
|
+
* - Hooks: *.sh files — classify by pre-/post- prefix
|
|
12
|
+
*
|
|
13
|
+
* Gracefully handles missing directories (returns empty arrays).
|
|
14
|
+
*
|
|
15
|
+
* @module parsers
|
|
16
|
+
*/
|
|
17
|
+
import type { DefinitionsPayload } from '../api-client/types.js';
|
|
18
|
+
export declare class DefinitionFileParser {
|
|
19
|
+
private readonly projectDir;
|
|
20
|
+
constructor(projectDir: string);
|
|
21
|
+
/**
|
|
22
|
+
* Parse all definition files from .claude/ directory.
|
|
23
|
+
*/
|
|
24
|
+
parseAll(): Promise<DefinitionsPayload>;
|
|
25
|
+
private parseAgents;
|
|
26
|
+
private parseWorkflows;
|
|
27
|
+
private parseSkills;
|
|
28
|
+
private parseHooks;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=DefinitionFileParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefinitionFileParser.d.ts","sourceRoot":"","sources":["../../src/parsers/DefinitionFileParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAKV,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM;IAE/C;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,kBAAkB,CAAC;YAa/B,WAAW;YAiEX,cAAc;YAyDd,WAAW;YAyCX,UAAU;CAmDzB"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DefinitionFileParser
|
|
3
|
+
*
|
|
4
|
+
* Reads the user's local .claude/ directory and parses definition files
|
|
5
|
+
* into payload structures for the sync API (TD-074).
|
|
6
|
+
*
|
|
7
|
+
* Parsing logic mirrors SeedDefinitionsService's private parse methods:
|
|
8
|
+
* - Agents: *.md files — H1 for name, first paragraph for description, ## Tools section
|
|
9
|
+
* - Workflows: *.json files — name/displayName/description/version/phases
|
|
10
|
+
* - Skills: SKILL.md in subdirs — name from H1, description from body
|
|
11
|
+
* - Hooks: *.sh files — classify by pre-/post- prefix
|
|
12
|
+
*
|
|
13
|
+
* Gracefully handles missing directories (returns empty arrays).
|
|
14
|
+
*
|
|
15
|
+
* @module parsers
|
|
16
|
+
*/
|
|
17
|
+
import { readdir, readFile } from 'node:fs/promises';
|
|
18
|
+
import { join, basename, extname } from 'node:path';
|
|
19
|
+
export class DefinitionFileParser {
|
|
20
|
+
projectDir;
|
|
21
|
+
constructor(projectDir) {
|
|
22
|
+
this.projectDir = projectDir;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Parse all definition files from .claude/ directory.
|
|
26
|
+
*/
|
|
27
|
+
async parseAll() {
|
|
28
|
+
const claudeDir = join(this.projectDir, '.claude');
|
|
29
|
+
const [agents, workflows, skills, hooks] = await Promise.all([
|
|
30
|
+
this.parseAgents(join(claudeDir, 'agents')),
|
|
31
|
+
this.parseWorkflows(join(claudeDir, 'workflows')),
|
|
32
|
+
this.parseSkills(join(claudeDir, 'skills')),
|
|
33
|
+
this.parseHooks(join(claudeDir, 'hooks')),
|
|
34
|
+
]);
|
|
35
|
+
return { agents, workflows, skills, hooks };
|
|
36
|
+
}
|
|
37
|
+
async parseAgents(dir) {
|
|
38
|
+
let files;
|
|
39
|
+
try {
|
|
40
|
+
files = await readdir(dir);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
const results = [];
|
|
46
|
+
const mdFiles = files.filter((f) => extname(f) === '.md');
|
|
47
|
+
for (const file of mdFiles) {
|
|
48
|
+
try {
|
|
49
|
+
const content = await readFile(join(dir, file), 'utf-8');
|
|
50
|
+
const slug = basename(file, '.md');
|
|
51
|
+
let name = slug;
|
|
52
|
+
let description = '';
|
|
53
|
+
let tools = [];
|
|
54
|
+
// Extract frontmatter YAML
|
|
55
|
+
const frontmatterMatch = /^---\n([\s\S]*?)\n---/.exec(content);
|
|
56
|
+
const frontmatter = frontmatterMatch?.[1] ?? '';
|
|
57
|
+
if (frontmatter.length > 0) {
|
|
58
|
+
const nameMatch = /^name:\s*(.+)$/m.exec(frontmatter);
|
|
59
|
+
if (nameMatch?.[1])
|
|
60
|
+
name = nameMatch[1].trim();
|
|
61
|
+
const descMatch = /^description:\s*(.+)$/m.exec(frontmatter);
|
|
62
|
+
if (descMatch?.[1])
|
|
63
|
+
description = descMatch[1].trim();
|
|
64
|
+
const toolsMatch = /^tools:\s*(.+)$/m.exec(frontmatter);
|
|
65
|
+
if (toolsMatch?.[1]) {
|
|
66
|
+
tools = toolsMatch[1].split(',').map((t) => t.trim()).filter((t) => t.length > 0);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Fallback: H1 for name
|
|
70
|
+
if (name === slug) {
|
|
71
|
+
const h1Match = /^#\s+(.+)$/m.exec(content);
|
|
72
|
+
if (h1Match?.[1])
|
|
73
|
+
name = h1Match[1].trim();
|
|
74
|
+
}
|
|
75
|
+
// Fallback: first paragraph for description
|
|
76
|
+
if (description.length === 0) {
|
|
77
|
+
const bodyContent = content.replace(/^---[\s\S]*?---\n/, '');
|
|
78
|
+
const paragraphs = bodyContent.split(/\n\n+/);
|
|
79
|
+
for (const para of paragraphs) {
|
|
80
|
+
const cleaned = para.replace(/^#+\s+.*$/m, '').trim();
|
|
81
|
+
if (cleaned.length > 0 && !cleaned.startsWith('#')) {
|
|
82
|
+
description = cleaned.replace(/\n/g, ' ').slice(0, 200);
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
results.push({ slug, name, description, tools, content });
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// Skip files that can't be read
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return results;
|
|
94
|
+
}
|
|
95
|
+
async parseWorkflows(dir) {
|
|
96
|
+
let files;
|
|
97
|
+
try {
|
|
98
|
+
files = await readdir(dir);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return [];
|
|
102
|
+
}
|
|
103
|
+
const results = [];
|
|
104
|
+
const jsonFiles = files.filter((f) => extname(f) === '.json');
|
|
105
|
+
for (const file of jsonFiles) {
|
|
106
|
+
try {
|
|
107
|
+
const content = await readFile(join(dir, file), 'utf-8');
|
|
108
|
+
const json = JSON.parse(content);
|
|
109
|
+
const rawId = json.id;
|
|
110
|
+
const rawName = json.name;
|
|
111
|
+
const slug = typeof rawId === 'string' ? rawId
|
|
112
|
+
: typeof rawName === 'string' ? rawName
|
|
113
|
+
: basename(file, '.json');
|
|
114
|
+
const rawType = json.type;
|
|
115
|
+
const type = typeof rawType === 'string' ? rawType : slug.replace(/-/g, '_');
|
|
116
|
+
const rawDisplayName = json.displayName;
|
|
117
|
+
const displayName = typeof rawDisplayName === 'string' ? rawDisplayName
|
|
118
|
+
: typeof rawName === 'string' ? rawName : slug;
|
|
119
|
+
const rawDescription = json.description;
|
|
120
|
+
const description = typeof rawDescription === 'string' ? rawDescription : '';
|
|
121
|
+
const rawVersion = json.version;
|
|
122
|
+
const version = typeof rawVersion === 'string' ? rawVersion : '1.0.0';
|
|
123
|
+
const phasesRaw = json.phases;
|
|
124
|
+
const phases = [];
|
|
125
|
+
if (Array.isArray(phasesRaw)) {
|
|
126
|
+
for (const phase of phasesRaw) {
|
|
127
|
+
if (phase !== null && typeof phase === 'object' && 'name' in phase) {
|
|
128
|
+
const phaseName = phase.name;
|
|
129
|
+
if (typeof phaseName === 'string')
|
|
130
|
+
phases.push(phaseName);
|
|
131
|
+
}
|
|
132
|
+
else if (typeof phase === 'string') {
|
|
133
|
+
phases.push(phase);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
results.push({ slug, type, displayName, description, version, phases });
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
// Skip files that can't be parsed
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return results;
|
|
144
|
+
}
|
|
145
|
+
async parseSkills(dir) {
|
|
146
|
+
let entries;
|
|
147
|
+
try {
|
|
148
|
+
entries = await readdir(dir);
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
return [];
|
|
152
|
+
}
|
|
153
|
+
const results = [];
|
|
154
|
+
for (const entry of entries) {
|
|
155
|
+
try {
|
|
156
|
+
const skillMdPath = join(dir, entry, 'SKILL.md');
|
|
157
|
+
const content = await readFile(skillMdPath, 'utf-8');
|
|
158
|
+
let name = entry;
|
|
159
|
+
let description = '';
|
|
160
|
+
const h1Match = /^#\s+(.+)$/m.exec(content);
|
|
161
|
+
if (h1Match?.[1])
|
|
162
|
+
name = h1Match[1].trim();
|
|
163
|
+
// Description: first paragraph after H1
|
|
164
|
+
const bodyContent = content.replace(/^#\s+.*$/m, '');
|
|
165
|
+
const paragraphs = bodyContent.split(/\n\n+/);
|
|
166
|
+
for (const para of paragraphs) {
|
|
167
|
+
const cleaned = para.replace(/^#+\s+.*$/m, '').trim();
|
|
168
|
+
if (cleaned.length > 0 && !cleaned.startsWith('#')) {
|
|
169
|
+
description = cleaned.replace(/\n/g, ' ').slice(0, 200);
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
results.push({ slug: entry, name, description });
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
// Entry may not be a directory or SKILL.md may not exist
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return results;
|
|
180
|
+
}
|
|
181
|
+
async parseHooks(dir) {
|
|
182
|
+
let files;
|
|
183
|
+
try {
|
|
184
|
+
files = await readdir(dir);
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
return [];
|
|
188
|
+
}
|
|
189
|
+
const results = [];
|
|
190
|
+
const shFiles = files.filter((f) => extname(f) === '.sh');
|
|
191
|
+
for (const file of shFiles) {
|
|
192
|
+
try {
|
|
193
|
+
const content = await readFile(join(dir, file), 'utf-8');
|
|
194
|
+
const slug = basename(file, '.sh');
|
|
195
|
+
// Classify hook type by prefix
|
|
196
|
+
const hookType = slug.startsWith('pre-') ? 'pre' : 'post';
|
|
197
|
+
// Extract description from first comment line after shebang
|
|
198
|
+
let description = slug;
|
|
199
|
+
const lines = content.split('\n');
|
|
200
|
+
for (const line of lines) {
|
|
201
|
+
const trimmed = line.trim();
|
|
202
|
+
if (trimmed.startsWith('#!'))
|
|
203
|
+
continue;
|
|
204
|
+
if (trimmed.startsWith('# ')) {
|
|
205
|
+
description = trimmed.slice(2).trim();
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
if (trimmed.length > 0 && !trimmed.startsWith('#'))
|
|
209
|
+
break;
|
|
210
|
+
}
|
|
211
|
+
// Extract trigger phase from slug
|
|
212
|
+
let triggerPhase = 'IMPLEMENT';
|
|
213
|
+
const phaseNames = ['research', 'specify', 'plan', 'tasks', 'implement', 'validate'];
|
|
214
|
+
const slugLower = slug.toLowerCase();
|
|
215
|
+
for (const phase of phaseNames) {
|
|
216
|
+
if (slugLower.includes(phase)) {
|
|
217
|
+
triggerPhase = phase.toUpperCase();
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
results.push({ slug, name: description, description, hookType, triggerPhase });
|
|
222
|
+
}
|
|
223
|
+
catch {
|
|
224
|
+
// Skip unreadable files
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return results;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=DefinitionFileParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefinitionFileParser.js","sourceRoot":"","sources":["../../src/parsers/DefinitionFileParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -186,7 +186,7 @@ export class BootstrapService {
|
|
|
186
186
|
*/
|
|
187
187
|
async registerUserBestEffort(email, password) {
|
|
188
188
|
try {
|
|
189
|
-
await this.apiClient.register({ email, password });
|
|
189
|
+
await this.apiClient.register({ email, password, role: 'admin' });
|
|
190
190
|
}
|
|
191
191
|
catch (error) {
|
|
192
192
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
@@ -206,7 +206,7 @@ export class BootstrapService {
|
|
|
206
206
|
*/
|
|
207
207
|
async registerUser(projectPath, email, password, onConflict) {
|
|
208
208
|
try {
|
|
209
|
-
await this.apiClient.register({ email, password });
|
|
209
|
+
await this.apiClient.register({ email, password, role: 'admin' });
|
|
210
210
|
}
|
|
211
211
|
catch (error) {
|
|
212
212
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BootstrapService.js","sourceRoot":"","sources":["../../src/services/BootstrapService.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"BootstrapService.js","sourceRoot":"","sources":["../../src/services/BootstrapService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DefinitionFileWriter
|
|
3
|
+
*
|
|
4
|
+
* Writes definition files received from the sync API payload
|
|
5
|
+
* to the user's local project directory (TD-074).
|
|
6
|
+
*
|
|
7
|
+
* For each file: resolve path relative to projectDir, ensure parent
|
|
8
|
+
* directory exists, write content. Set executable on .sh files.
|
|
9
|
+
*
|
|
10
|
+
* @module writers
|
|
11
|
+
*/
|
|
12
|
+
import type { SyncFilePayload } from '../api-client/types.js';
|
|
13
|
+
export interface WriteResult {
|
|
14
|
+
readonly written: number;
|
|
15
|
+
readonly errors: string[];
|
|
16
|
+
}
|
|
17
|
+
export declare class DefinitionFileWriter {
|
|
18
|
+
private readonly projectDir;
|
|
19
|
+
constructor(projectDir: string);
|
|
20
|
+
/**
|
|
21
|
+
* Write all files to the project directory.
|
|
22
|
+
*
|
|
23
|
+
* @param files - Array of file payloads from sync API
|
|
24
|
+
* @returns Write result with count and any errors
|
|
25
|
+
*/
|
|
26
|
+
writeAll(files: SyncFilePayload[]): Promise<WriteResult>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=DefinitionFileWriter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefinitionFileWriter.d.ts","sourceRoot":"","sources":["../../src/writers/DefinitionFileWriter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM;IAE/C;;;;;OAKG;IACG,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;CA4B/D"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DefinitionFileWriter
|
|
3
|
+
*
|
|
4
|
+
* Writes definition files received from the sync API payload
|
|
5
|
+
* to the user's local project directory (TD-074).
|
|
6
|
+
*
|
|
7
|
+
* For each file: resolve path relative to projectDir, ensure parent
|
|
8
|
+
* directory exists, write content. Set executable on .sh files.
|
|
9
|
+
*
|
|
10
|
+
* @module writers
|
|
11
|
+
*/
|
|
12
|
+
import { writeFile, mkdir, chmod } from 'node:fs/promises';
|
|
13
|
+
import { join, dirname } from 'node:path';
|
|
14
|
+
export class DefinitionFileWriter {
|
|
15
|
+
projectDir;
|
|
16
|
+
constructor(projectDir) {
|
|
17
|
+
this.projectDir = projectDir;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Write all files to the project directory.
|
|
21
|
+
*
|
|
22
|
+
* @param files - Array of file payloads from sync API
|
|
23
|
+
* @returns Write result with count and any errors
|
|
24
|
+
*/
|
|
25
|
+
async writeAll(files) {
|
|
26
|
+
let written = 0;
|
|
27
|
+
const errors = [];
|
|
28
|
+
for (const file of files) {
|
|
29
|
+
try {
|
|
30
|
+
const fullPath = join(this.projectDir, file.path);
|
|
31
|
+
const dir = dirname(fullPath);
|
|
32
|
+
// Ensure parent directory exists
|
|
33
|
+
await mkdir(dir, { recursive: true });
|
|
34
|
+
// Write file content
|
|
35
|
+
await writeFile(fullPath, file.content, 'utf-8');
|
|
36
|
+
// Set executable permission on shell scripts
|
|
37
|
+
if (file.path.endsWith('.sh')) {
|
|
38
|
+
await chmod(fullPath, 0o755);
|
|
39
|
+
}
|
|
40
|
+
written++;
|
|
41
|
+
}
|
|
42
|
+
catch (cause) {
|
|
43
|
+
errors.push(`Failed to write ${file.path}: ${String(cause)}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return { written, errors };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=DefinitionFileWriter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefinitionFileWriter.js","sourceRoot":"","sources":["../../src/writers/DefinitionFileWriter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQ1C,MAAM,OAAO,oBAAoB;IACF;IAA7B,YAA6B,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;IAAG,CAAC;IAEnD;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,KAAwB;QACrC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAE9B,iCAAiC;gBACjC,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAEtC,qBAAqB;gBACrB,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAEjD,6CAA6C;gBAC7C,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9B,MAAM,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC/B,CAAC;gBAED,OAAO,EAAE,CAAC;YACZ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;CACF"}
|