@bradygaster/squad-cli 0.6.2 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +77 -77
- package/dist/cli/commands/copilot.d.ts +13 -0
- package/dist/cli/commands/copilot.d.ts.map +1 -0
- package/dist/cli/commands/copilot.js +86 -0
- package/dist/cli/commands/copilot.js.map +1 -0
- package/dist/cli/commands/export.d.ts +9 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +89 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/import.d.ts +9 -0
- package/dist/cli/commands/import.d.ts.map +1 -0
- package/dist/cli/commands/import.js +116 -0
- package/dist/cli/commands/import.js.map +1 -0
- package/dist/cli/commands/plugin.d.ts +14 -0
- package/dist/cli/commands/plugin.d.ts.map +1 -0
- package/dist/cli/commands/plugin.js +134 -0
- package/dist/cli/commands/plugin.js.map +1 -0
- package/dist/cli/commands/watch.d.ts +8 -0
- package/dist/cli/commands/watch.d.ts.map +1 -0
- package/dist/cli/commands/watch.js +178 -0
- package/dist/cli/commands/watch.js.map +1 -0
- package/dist/cli/copilot-install.d.ts +73 -0
- package/dist/cli/copilot-install.d.ts.map +1 -0
- package/dist/cli/copilot-install.js +117 -0
- package/dist/cli/copilot-install.js.map +1 -0
- package/dist/cli/core/detect-squad-dir.d.ts +13 -0
- package/dist/cli/core/detect-squad-dir.d.ts.map +1 -0
- package/dist/cli/core/detect-squad-dir.js +21 -0
- package/dist/cli/core/detect-squad-dir.js.map +1 -0
- package/dist/cli/core/email-scrub.d.ts +10 -0
- package/dist/cli/core/email-scrub.d.ts.map +1 -0
- package/dist/cli/core/email-scrub.js +103 -0
- package/dist/cli/core/email-scrub.js.map +1 -0
- package/dist/cli/core/errors.d.ts +17 -0
- package/dist/cli/core/errors.d.ts.map +1 -0
- package/dist/cli/core/errors.js +22 -0
- package/dist/cli/core/errors.js.map +1 -0
- package/dist/cli/core/gh-cli.d.ts +41 -0
- package/dist/cli/core/gh-cli.d.ts.map +1 -0
- package/dist/cli/core/gh-cli.js +67 -0
- package/dist/cli/core/gh-cli.js.map +1 -0
- package/dist/cli/core/history-split.d.ts +9 -0
- package/dist/cli/core/history-split.d.ts.map +1 -0
- package/dist/cli/core/history-split.js +65 -0
- package/dist/cli/core/history-split.js.map +1 -0
- package/dist/cli/core/init.d.ts +9 -0
- package/dist/cli/core/init.d.ts.map +1 -0
- package/dist/cli/core/init.js +296 -0
- package/dist/cli/core/init.js.map +1 -0
- package/dist/cli/core/migrate-directory.d.ts +11 -0
- package/dist/cli/core/migrate-directory.d.ts.map +1 -0
- package/dist/cli/core/migrate-directory.js +71 -0
- package/dist/cli/core/migrate-directory.js.map +1 -0
- package/dist/cli/core/migrations.d.ts +11 -0
- package/dist/cli/core/migrations.d.ts.map +1 -0
- package/dist/cli/core/migrations.js +78 -0
- package/dist/cli/core/migrations.js.map +1 -0
- package/dist/cli/core/output.d.ts +34 -0
- package/dist/cli/core/output.d.ts.map +1 -0
- package/dist/cli/core/output.js +47 -0
- package/dist/cli/core/output.js.map +1 -0
- package/dist/cli/core/project-type.d.ts +9 -0
- package/dist/cli/core/project-type.d.ts.map +1 -0
- package/dist/cli/core/project-type.js +29 -0
- package/dist/cli/core/project-type.js.map +1 -0
- package/dist/cli/core/team-md.d.ts +28 -0
- package/dist/cli/core/team-md.d.ts.map +1 -0
- package/dist/cli/core/team-md.js +91 -0
- package/dist/cli/core/team-md.js.map +1 -0
- package/dist/cli/core/templates.d.ts +30 -0
- package/dist/cli/core/templates.d.ts.map +1 -0
- package/dist/cli/core/templates.js +247 -0
- package/dist/cli/core/templates.js.map +1 -0
- package/dist/cli/core/upgrade.d.ts +20 -0
- package/dist/cli/core/upgrade.d.ts.map +1 -0
- package/dist/cli/core/upgrade.js +399 -0
- package/dist/cli/core/upgrade.js.map +1 -0
- package/dist/cli/core/version.d.ts +18 -0
- package/dist/cli/core/version.d.ts.map +1 -0
- package/dist/cli/core/version.js +61 -0
- package/dist/cli/core/version.js.map +1 -0
- package/dist/cli/core/workflows.d.ts +10 -0
- package/dist/cli/core/workflows.d.ts.map +1 -0
- package/dist/cli/core/workflows.js +155 -0
- package/dist/cli/core/workflows.js.map +1 -0
- package/dist/cli/index.d.ts +26 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +26 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/shell/autocomplete.d.ts +12 -0
- package/dist/cli/shell/autocomplete.d.ts.map +1 -0
- package/dist/cli/shell/autocomplete.js +39 -0
- package/dist/cli/shell/autocomplete.js.map +1 -0
- package/dist/cli/shell/commands.d.ts +19 -0
- package/dist/cli/shell/commands.d.ts.map +1 -0
- package/dist/cli/shell/commands.js +87 -0
- package/dist/cli/shell/commands.js.map +1 -0
- package/dist/cli/shell/components/AgentPanel.d.ts +8 -0
- package/dist/cli/shell/components/AgentPanel.d.ts.map +1 -0
- package/dist/cli/shell/components/AgentPanel.js +17 -0
- package/dist/cli/shell/components/AgentPanel.js.map +1 -0
- package/dist/cli/shell/components/InputPrompt.d.ts +9 -0
- package/dist/cli/shell/components/InputPrompt.d.ts.map +1 -0
- package/dist/cli/shell/components/InputPrompt.js +50 -0
- package/dist/cli/shell/components/InputPrompt.js.map +1 -0
- package/dist/cli/shell/components/MessageStream.d.ts +13 -0
- package/dist/cli/shell/components/MessageStream.d.ts.map +1 -0
- package/dist/cli/shell/components/MessageStream.js +7 -0
- package/dist/cli/shell/components/MessageStream.js.map +1 -0
- package/dist/cli/shell/components/index.d.ts +4 -0
- package/dist/cli/shell/components/index.d.ts.map +1 -0
- package/dist/cli/shell/components/index.js +4 -0
- package/dist/cli/shell/components/index.js.map +1 -0
- package/dist/cli/shell/coordinator.d.ts +32 -0
- package/dist/cli/shell/coordinator.d.ts.map +1 -0
- package/dist/cli/shell/coordinator.js +113 -0
- package/dist/cli/shell/coordinator.js.map +1 -0
- package/dist/cli/shell/index.d.ts +28 -0
- package/dist/cli/shell/index.d.ts.map +1 -0
- package/dist/cli/shell/index.js +66 -0
- package/dist/cli/shell/index.js.map +1 -0
- package/dist/cli/shell/lifecycle.d.ts +52 -0
- package/dist/cli/shell/lifecycle.d.ts.map +1 -0
- package/dist/cli/shell/lifecycle.js +168 -0
- package/dist/cli/shell/lifecycle.js.map +1 -0
- package/dist/cli/shell/memory.d.ts +36 -0
- package/dist/cli/shell/memory.d.ts.map +1 -0
- package/dist/cli/shell/memory.js +53 -0
- package/dist/cli/shell/memory.js.map +1 -0
- package/dist/cli/shell/render.d.ts +22 -0
- package/dist/cli/shell/render.d.ts.map +1 -0
- package/dist/cli/shell/render.js +44 -0
- package/dist/cli/shell/render.js.map +1 -0
- package/dist/cli/shell/router.d.ts +17 -0
- package/dist/cli/shell/router.d.ts.map +1 -0
- package/dist/cli/shell/router.js +55 -0
- package/dist/cli/shell/router.js.map +1 -0
- package/dist/cli/shell/sessions.d.ts +15 -0
- package/dist/cli/shell/sessions.d.ts.map +1 -0
- package/dist/cli/shell/sessions.js +37 -0
- package/dist/cli/shell/sessions.js.map +1 -0
- package/dist/cli/shell/spawn.d.ts +47 -0
- package/dist/cli/shell/spawn.d.ts.map +1 -0
- package/dist/cli/shell/spawn.js +77 -0
- package/dist/cli/shell/spawn.js.map +1 -0
- package/dist/cli/shell/stream-bridge.d.ts +60 -0
- package/dist/cli/shell/stream-bridge.d.ts.map +1 -0
- package/dist/cli/shell/stream-bridge.js +98 -0
- package/dist/cli/shell/stream-bridge.js.map +1 -0
- package/dist/cli/shell/terminal.d.ts +30 -0
- package/dist/cli/shell/terminal.d.ts.map +1 -0
- package/dist/cli/shell/terminal.js +34 -0
- package/dist/cli/shell/terminal.js.map +1 -0
- package/dist/cli/shell/types.d.ts +21 -0
- package/dist/cli/shell/types.d.ts.map +1 -0
- package/dist/cli/shell/types.js +5 -0
- package/dist/cli/shell/types.js.map +1 -0
- package/dist/cli/upgrade.d.ts +141 -0
- package/dist/cli/upgrade.d.ts.map +1 -0
- package/dist/cli/upgrade.js +226 -0
- package/dist/cli/upgrade.js.map +1 -0
- package/dist/cli-entry.d.ts +10 -0
- package/dist/cli-entry.d.ts.map +1 -0
- package/dist/cli-entry.js +213 -0
- package/dist/cli-entry.js.map +1 -0
- package/package.json +44 -34
- package/templates/casting-history.json +4 -0
- package/templates/casting-policy.json +35 -0
- package/templates/casting-registry.json +3 -0
- package/templates/ceremonies.md +41 -0
- package/templates/charter.md +53 -0
- package/templates/constraint-tracking.md +38 -0
- package/templates/copilot-instructions.md +46 -0
- package/templates/history.md +10 -0
- package/templates/identity/now.md +9 -0
- package/templates/identity/wisdom.md +15 -0
- package/templates/mcp-config.md +90 -0
- package/templates/multi-agent-format.md +28 -0
- package/templates/orchestration-log.md +27 -0
- package/templates/plugin-marketplace.md +49 -0
- package/templates/raw-agent-output.md +37 -0
- package/templates/roster.md +60 -0
- package/templates/routing.md +54 -0
- package/templates/run-output.md +50 -0
- package/templates/scribe-charter.md +119 -0
- package/templates/skill.md +24 -0
- package/templates/skills/squad-conventions/SKILL.md +69 -0
- package/templates/squad.agent.md +1146 -0
- package/templates/workflows/squad-ci.yml +24 -0
- package/templates/workflows/squad-docs.yml +50 -0
- package/templates/workflows/squad-heartbeat.yml +315 -0
- package/templates/workflows/squad-insider-release.yml +61 -0
- package/templates/workflows/squad-issue-assign.yml +161 -0
- package/templates/workflows/squad-label-enforce.yml +181 -0
- package/templates/workflows/squad-main-guard.yml +129 -0
- package/templates/workflows/squad-preview.yml +55 -0
- package/templates/workflows/squad-promote.yml +121 -0
- package/templates/workflows/squad-release.yml +77 -0
- package/templates/workflows/squad-triage.yml +260 -0
- package/templates/workflows/sync-squad-labels.yml +169 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/core/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Directory migration utility — renames .ai-team/ → .squad/
|
|
3
|
+
* @module cli/core/migrate-directory
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Migrate .ai-team/ directory to .squad/
|
|
7
|
+
* Updates .gitattributes and .gitignore references
|
|
8
|
+
* Scrubs email addresses from all files
|
|
9
|
+
*/
|
|
10
|
+
export declare function migrateDirectory(dest: string): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=migrate-directory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-directory.d.ts","sourceRoot":"","sources":["../../../src/cli/core/migrate-directory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DlE"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Directory migration utility — renames .ai-team/ → .squad/
|
|
3
|
+
* @module cli/core/migrate-directory
|
|
4
|
+
*/
|
|
5
|
+
import fs from 'node:fs';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import { success, dim, bold } from './output.js';
|
|
8
|
+
import { fatal } from './errors.js';
|
|
9
|
+
import { scrubEmails } from './email-scrub.js';
|
|
10
|
+
/**
|
|
11
|
+
* Migrate .ai-team/ directory to .squad/
|
|
12
|
+
* Updates .gitattributes and .gitignore references
|
|
13
|
+
* Scrubs email addresses from all files
|
|
14
|
+
*/
|
|
15
|
+
export async function migrateDirectory(dest) {
|
|
16
|
+
const aiTeamDir = path.join(dest, '.ai-team');
|
|
17
|
+
const squadDir = path.join(dest, '.squad');
|
|
18
|
+
if (!fs.existsSync(aiTeamDir)) {
|
|
19
|
+
fatal('No .ai-team/ directory found — nothing to migrate.');
|
|
20
|
+
}
|
|
21
|
+
if (fs.existsSync(squadDir)) {
|
|
22
|
+
fatal('.squad/ directory already exists — migration appears to be complete.');
|
|
23
|
+
}
|
|
24
|
+
dim('Migrating .ai-team/ → .squad/...');
|
|
25
|
+
// Rename directory
|
|
26
|
+
fs.renameSync(aiTeamDir, squadDir);
|
|
27
|
+
success('Renamed .ai-team/ → .squad/');
|
|
28
|
+
// Update .gitattributes
|
|
29
|
+
const gitattributes = path.join(dest, '.gitattributes');
|
|
30
|
+
if (fs.existsSync(gitattributes)) {
|
|
31
|
+
let content = fs.readFileSync(gitattributes, 'utf8');
|
|
32
|
+
const updated = content.replace(/\.ai-team\//g, '.squad/');
|
|
33
|
+
if (content !== updated) {
|
|
34
|
+
fs.writeFileSync(gitattributes, updated);
|
|
35
|
+
success('Updated .gitattributes');
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Update .gitignore
|
|
39
|
+
const gitignore = path.join(dest, '.gitignore');
|
|
40
|
+
if (fs.existsSync(gitignore)) {
|
|
41
|
+
let content = fs.readFileSync(gitignore, 'utf8');
|
|
42
|
+
const updated = content.replace(/\.ai-team\//g, '.squad/');
|
|
43
|
+
if (content !== updated) {
|
|
44
|
+
fs.writeFileSync(gitignore, updated);
|
|
45
|
+
success('Updated .gitignore');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Scrub email addresses
|
|
49
|
+
dim('Scrubbing email addresses from .squad/ files...');
|
|
50
|
+
const scrubbedCount = await scrubEmails(squadDir);
|
|
51
|
+
if (scrubbedCount > 0) {
|
|
52
|
+
success(`Scrubbed email addresses from ${scrubbedCount} file(s)`);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
success('No email addresses found');
|
|
56
|
+
}
|
|
57
|
+
// Rename .ai-team-templates/ if it exists
|
|
58
|
+
const aiTeamTemplatesDir = path.join(dest, '.ai-team-templates');
|
|
59
|
+
const squadTemplatesDir = path.join(dest, '.squad-templates');
|
|
60
|
+
if (fs.existsSync(aiTeamTemplatesDir)) {
|
|
61
|
+
fs.renameSync(aiTeamTemplatesDir, squadTemplatesDir);
|
|
62
|
+
success('Renamed .ai-team-templates/ → .squad-templates/');
|
|
63
|
+
}
|
|
64
|
+
console.log();
|
|
65
|
+
console.log(`${bold('Migration complete.')}`);
|
|
66
|
+
dim('Commit the change:');
|
|
67
|
+
console.log(' git add -A');
|
|
68
|
+
console.log(' git commit -m "chore: migrate .ai-team/ → .squad/"');
|
|
69
|
+
console.log();
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=migrate-directory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-directory.js","sourceRoot":"","sources":["../../../src/cli/core/migrate-directory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version-based migration runner
|
|
3
|
+
* Runs additive migrations between versions
|
|
4
|
+
* @module cli/core/migrations
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Run migrations applicable for upgrading from oldVersion to newVersion
|
|
8
|
+
* Returns array of migration descriptions that were applied
|
|
9
|
+
*/
|
|
10
|
+
export declare function runMigrations(squadDir: string, oldVersion: string, newVersion: string): Promise<string[]>;
|
|
11
|
+
//# sourceMappingURL=migrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../src/cli/core/migrations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA+DH;;;GAGG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBnB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version-based migration runner
|
|
3
|
+
* Runs additive migrations between versions
|
|
4
|
+
* @module cli/core/migrations
|
|
5
|
+
*/
|
|
6
|
+
import fs from 'node:fs';
|
|
7
|
+
import path from 'node:path';
|
|
8
|
+
import { success } from './output.js';
|
|
9
|
+
import { scrubEmails } from './email-scrub.js';
|
|
10
|
+
/**
|
|
11
|
+
* Migration registry — additive-only operations keyed by version
|
|
12
|
+
*/
|
|
13
|
+
const migrations = [
|
|
14
|
+
{
|
|
15
|
+
version: '0.2.0',
|
|
16
|
+
description: 'Create skills/ directory',
|
|
17
|
+
run(squadDir) {
|
|
18
|
+
const skillsDir = path.join(squadDir, 'skills');
|
|
19
|
+
fs.mkdirSync(skillsDir, { recursive: true });
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
version: '0.4.0',
|
|
24
|
+
description: 'Create plugins/ directory',
|
|
25
|
+
run(squadDir) {
|
|
26
|
+
const pluginsDir = path.join(squadDir, 'plugins');
|
|
27
|
+
fs.mkdirSync(pluginsDir, { recursive: true });
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
version: '0.5.0',
|
|
32
|
+
description: 'Scrub email addresses from Squad state files (privacy fix)',
|
|
33
|
+
async run(squadDir) {
|
|
34
|
+
if (fs.existsSync(squadDir)) {
|
|
35
|
+
const scrubbedCount = await scrubEmails(squadDir);
|
|
36
|
+
if (scrubbedCount > 0) {
|
|
37
|
+
success(`Privacy migration: scrubbed email addresses from ${scrubbedCount} file(s)`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
];
|
|
43
|
+
/**
|
|
44
|
+
* Compare semver strings: -1 (a<b), 0 (a==b), 1 (a>b)
|
|
45
|
+
*/
|
|
46
|
+
function compareSemver(a, b) {
|
|
47
|
+
const stripPre = (v) => v.split('-')[0];
|
|
48
|
+
const pa = stripPre(a).split('.').map(Number);
|
|
49
|
+
const pb = stripPre(b).split('.').map(Number);
|
|
50
|
+
for (let i = 0; i < 3; i++) {
|
|
51
|
+
if ((pa[i] || 0) < (pb[i] || 0))
|
|
52
|
+
return -1;
|
|
53
|
+
if ((pa[i] || 0) > (pb[i] || 0))
|
|
54
|
+
return 1;
|
|
55
|
+
}
|
|
56
|
+
return 0;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Run migrations applicable for upgrading from oldVersion to newVersion
|
|
60
|
+
* Returns array of migration descriptions that were applied
|
|
61
|
+
*/
|
|
62
|
+
export async function runMigrations(squadDir, oldVersion, newVersion) {
|
|
63
|
+
const applicable = migrations
|
|
64
|
+
.filter(m => compareSemver(m.version, oldVersion) > 0 && compareSemver(m.version, newVersion) <= 0)
|
|
65
|
+
.sort((a, b) => compareSemver(a.version, b.version));
|
|
66
|
+
const applied = [];
|
|
67
|
+
for (const m of applicable) {
|
|
68
|
+
try {
|
|
69
|
+
await m.run(squadDir);
|
|
70
|
+
applied.push(`${m.version}: ${m.description}`);
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
console.error(`✗ Migration failed (${m.version}: ${m.description}): ${err.message}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return applied;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=migrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/cli/core/migrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Color and emoji output utilities — zero dependencies
|
|
3
|
+
*/
|
|
4
|
+
export declare const GREEN = "\u001B[32m";
|
|
5
|
+
export declare const RED = "\u001B[31m";
|
|
6
|
+
export declare const YELLOW = "\u001B[33m";
|
|
7
|
+
export declare const DIM = "\u001B[2m";
|
|
8
|
+
export declare const BOLD = "\u001B[1m";
|
|
9
|
+
export declare const RESET = "\u001B[0m";
|
|
10
|
+
/**
|
|
11
|
+
* Print success message with green checkmark
|
|
12
|
+
*/
|
|
13
|
+
export declare function success(msg: string): void;
|
|
14
|
+
/**
|
|
15
|
+
* Print error message with red cross
|
|
16
|
+
*/
|
|
17
|
+
export declare function error(msg: string): void;
|
|
18
|
+
/**
|
|
19
|
+
* Print warning message with yellow warning sign
|
|
20
|
+
*/
|
|
21
|
+
export declare function warn(msg: string): void;
|
|
22
|
+
/**
|
|
23
|
+
* Print info message
|
|
24
|
+
*/
|
|
25
|
+
export declare function info(msg: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Print dimmed text
|
|
28
|
+
*/
|
|
29
|
+
export declare function dim(msg: string): void;
|
|
30
|
+
/**
|
|
31
|
+
* Print bold text
|
|
32
|
+
*/
|
|
33
|
+
export declare function bold(msg: string): void;
|
|
34
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/cli/core/output.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,KAAK,eAAa,CAAC;AAChC,eAAO,MAAM,GAAG,eAAa,CAAC;AAC9B,eAAO,MAAM,MAAM,eAAa,CAAC;AACjC,eAAO,MAAM,GAAG,cAAY,CAAC;AAC7B,eAAO,MAAM,IAAI,cAAY,CAAC;AAC9B,eAAO,MAAM,KAAK,cAAY,CAAC;AAE/B;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEzC;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAErC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Color and emoji output utilities — zero dependencies
|
|
3
|
+
*/
|
|
4
|
+
// ANSI color codes
|
|
5
|
+
export const GREEN = '\x1b[32m';
|
|
6
|
+
export const RED = '\x1b[31m';
|
|
7
|
+
export const YELLOW = '\x1b[33m';
|
|
8
|
+
export const DIM = '\x1b[2m';
|
|
9
|
+
export const BOLD = '\x1b[1m';
|
|
10
|
+
export const RESET = '\x1b[0m';
|
|
11
|
+
/**
|
|
12
|
+
* Print success message with green checkmark
|
|
13
|
+
*/
|
|
14
|
+
export function success(msg) {
|
|
15
|
+
console.log(`${GREEN}✓${RESET} ${msg}`);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Print error message with red cross
|
|
19
|
+
*/
|
|
20
|
+
export function error(msg) {
|
|
21
|
+
console.error(`${RED}✗${RESET} ${msg}`);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Print warning message with yellow warning sign
|
|
25
|
+
*/
|
|
26
|
+
export function warn(msg) {
|
|
27
|
+
console.log(`${YELLOW}⚠️${RESET} ${msg}`);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Print info message
|
|
31
|
+
*/
|
|
32
|
+
export function info(msg) {
|
|
33
|
+
console.log(msg);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Print dimmed text
|
|
37
|
+
*/
|
|
38
|
+
export function dim(msg) {
|
|
39
|
+
console.log(`${DIM}${msg}${RESET}`);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Print bold text
|
|
43
|
+
*/
|
|
44
|
+
export function bold(msg) {
|
|
45
|
+
console.log(`${BOLD}${msg}${RESET}`);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/cli/core/output.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,mBAAmB;AACnB,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAAC;AAChC,MAAM,CAAC,MAAM,GAAG,GAAG,UAAU,CAAC;AAC9B,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC;AACjC,MAAM,CAAC,MAAM,GAAG,GAAG,SAAS,CAAC;AAC7B,MAAM,CAAC,MAAM,IAAI,GAAG,SAAS,CAAC;AAC9B,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC;AAE/B;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,GAAW;IAC/B,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,GAAW;IAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,KAAK,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,GAAW;IAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,GAAW;IAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,GAAW;IAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project type detection — zero dependencies
|
|
3
|
+
*/
|
|
4
|
+
export type ProjectType = 'npm' | 'go' | 'python' | 'java' | 'dotnet' | 'unknown';
|
|
5
|
+
/**
|
|
6
|
+
* Detect project type by checking for marker files in the target directory
|
|
7
|
+
*/
|
|
8
|
+
export declare function detectProjectType(dir: string): ProjectType;
|
|
9
|
+
//# sourceMappingURL=project-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-type.d.ts","sourceRoot":"","sources":["../../../src/cli/core/project-type.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAa1D"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project type detection — zero dependencies
|
|
3
|
+
*/
|
|
4
|
+
import fs from 'node:fs';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
/**
|
|
7
|
+
* Detect project type by checking for marker files in the target directory
|
|
8
|
+
*/
|
|
9
|
+
export function detectProjectType(dir) {
|
|
10
|
+
if (fs.existsSync(path.join(dir, 'package.json')))
|
|
11
|
+
return 'npm';
|
|
12
|
+
if (fs.existsSync(path.join(dir, 'go.mod')))
|
|
13
|
+
return 'go';
|
|
14
|
+
if (fs.existsSync(path.join(dir, 'requirements.txt')) ||
|
|
15
|
+
fs.existsSync(path.join(dir, 'pyproject.toml')))
|
|
16
|
+
return 'python';
|
|
17
|
+
if (fs.existsSync(path.join(dir, 'pom.xml')) ||
|
|
18
|
+
fs.existsSync(path.join(dir, 'build.gradle')) ||
|
|
19
|
+
fs.existsSync(path.join(dir, 'build.gradle.kts')))
|
|
20
|
+
return 'java';
|
|
21
|
+
try {
|
|
22
|
+
const entries = fs.readdirSync(dir);
|
|
23
|
+
if (entries.some(e => e.endsWith('.csproj') || e.endsWith('.sln') || e.endsWith('.slnx') || e.endsWith('.fsproj') || e.endsWith('.vbproj')))
|
|
24
|
+
return 'dotnet';
|
|
25
|
+
}
|
|
26
|
+
catch { }
|
|
27
|
+
return 'unknown';
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=project-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-type.js","sourceRoot":"","sources":["../../../src/cli/core/project-type.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACjD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC;IACrE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACxC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC7C,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IACrE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAAE,OAAO,QAAQ,CAAC;IAC/J,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* team.md parser and editor utilities — zero dependencies
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Read team.md content from squad directory
|
|
6
|
+
*/
|
|
7
|
+
export declare function readTeamMd(squadDir: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Write team.md content to squad directory
|
|
10
|
+
*/
|
|
11
|
+
export declare function writeTeamMd(squadDir: string, content: string): void;
|
|
12
|
+
/**
|
|
13
|
+
* Check if @copilot section exists in team.md
|
|
14
|
+
*/
|
|
15
|
+
export declare function hasCopilot(content: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Insert @copilot section before Project Context
|
|
18
|
+
*/
|
|
19
|
+
export declare function insertCopilotSection(content: string, autoAssign?: boolean): string;
|
|
20
|
+
/**
|
|
21
|
+
* Remove @copilot section from team.md
|
|
22
|
+
*/
|
|
23
|
+
export declare function removeCopilotSection(content: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Set auto-assign flag in team.md
|
|
26
|
+
*/
|
|
27
|
+
export declare function setAutoAssign(content: string, enabled: boolean): string;
|
|
28
|
+
//# sourceMappingURL=team-md.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-md.d.ts","sourceRoot":"","sources":["../../../src/cli/core/team-md.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAGnE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,GAAG,MAAM,CA4CzF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAOvE"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* team.md parser and editor utilities — zero dependencies
|
|
3
|
+
*/
|
|
4
|
+
import fs from 'node:fs';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
/**
|
|
7
|
+
* Read team.md content from squad directory
|
|
8
|
+
*/
|
|
9
|
+
export function readTeamMd(squadDir) {
|
|
10
|
+
const teamMdPath = path.join(squadDir, 'team.md');
|
|
11
|
+
if (!fs.existsSync(teamMdPath)) {
|
|
12
|
+
throw new Error('team.md not found — run init first');
|
|
13
|
+
}
|
|
14
|
+
return fs.readFileSync(teamMdPath, 'utf8');
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Write team.md content to squad directory
|
|
18
|
+
*/
|
|
19
|
+
export function writeTeamMd(squadDir, content) {
|
|
20
|
+
const teamMdPath = path.join(squadDir, 'team.md');
|
|
21
|
+
fs.writeFileSync(teamMdPath, content, 'utf8');
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Check if @copilot section exists in team.md
|
|
25
|
+
*/
|
|
26
|
+
export function hasCopilot(content) {
|
|
27
|
+
return content.includes('🤖 Coding Agent');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Insert @copilot section before Project Context
|
|
31
|
+
*/
|
|
32
|
+
export function insertCopilotSection(content, autoAssign = false) {
|
|
33
|
+
const autoAssignValue = autoAssign ? 'true' : 'false';
|
|
34
|
+
const copilotSection = `
|
|
35
|
+
## Coding Agent
|
|
36
|
+
|
|
37
|
+
<!-- copilot-auto-assign: ${autoAssignValue} -->
|
|
38
|
+
|
|
39
|
+
| Name | Role | Charter | Status |
|
|
40
|
+
|------|------|---------|--------|
|
|
41
|
+
| @copilot | Coding Agent | — | 🤖 Coding Agent |
|
|
42
|
+
|
|
43
|
+
### Capabilities
|
|
44
|
+
|
|
45
|
+
**🟢 Good fit — auto-route when enabled:**
|
|
46
|
+
- Bug fixes with clear reproduction steps
|
|
47
|
+
- Test coverage (adding missing tests, fixing flaky tests)
|
|
48
|
+
- Lint/format fixes and code style cleanup
|
|
49
|
+
- Dependency updates and version bumps
|
|
50
|
+
- Small isolated features with clear specs
|
|
51
|
+
- Boilerplate/scaffolding generation
|
|
52
|
+
- Documentation fixes and README updates
|
|
53
|
+
|
|
54
|
+
**🟡 Needs review — route to @copilot but flag for squad member PR review:**
|
|
55
|
+
- Medium features with clear specs and acceptance criteria
|
|
56
|
+
- Refactoring with existing test coverage
|
|
57
|
+
- API endpoint additions following established patterns
|
|
58
|
+
- Migration scripts with well-defined schemas
|
|
59
|
+
|
|
60
|
+
**🔴 Not suitable — route to squad member instead:**
|
|
61
|
+
- Architecture decisions and system design
|
|
62
|
+
- Multi-system integration requiring coordination
|
|
63
|
+
- Ambiguous requirements needing clarification
|
|
64
|
+
- Security-critical changes (auth, encryption, access control)
|
|
65
|
+
- Performance-critical paths requiring benchmarking
|
|
66
|
+
- Changes requiring cross-team discussion
|
|
67
|
+
|
|
68
|
+
`;
|
|
69
|
+
// Insert before "## Project Context" if it exists, otherwise append
|
|
70
|
+
if (content.includes('## Project Context')) {
|
|
71
|
+
return content.replace('## Project Context', copilotSection + '## Project Context');
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
return content.trimEnd() + '\n' + copilotSection;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Remove @copilot section from team.md
|
|
79
|
+
*/
|
|
80
|
+
export function removeCopilotSection(content) {
|
|
81
|
+
return content.replace(/\n## Coding Agent\n[\s\S]*?(?=\n## |\n*$)/, '');
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Set auto-assign flag in team.md
|
|
85
|
+
*/
|
|
86
|
+
export function setAutoAssign(content, enabled) {
|
|
87
|
+
const targetValue = enabled ? 'true' : 'false';
|
|
88
|
+
const oppositeValue = enabled ? 'false' : 'true';
|
|
89
|
+
return content.replace(`<!-- copilot-auto-assign: ${oppositeValue} -->`, `<!-- copilot-auto-assign: ${targetValue} -->`);
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=team-md.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-md.js","sourceRoot":"","sources":["../../../src/cli/core/team-md.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,OAAe;IAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,aAAsB,KAAK;IAC/E,MAAM,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACtD,MAAM,cAAc,GAAG;;;4BAGG,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B1C,CAAC;IAEA,oEAAoE;IACpE,IAAI,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,cAAc,GAAG,oBAAoB,CAAC,CAAC;IACtF,CAAC;SAAM,CAAC;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,cAAc,CAAC;IACnD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,OAAO,OAAO,CAAC,OAAO,CAAC,2CAA2C,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,OAAgB;IAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAC/C,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IACjD,OAAO,OAAO,CAAC,OAAO,CACpB,6BAA6B,aAAa,MAAM,EAChD,6BAA6B,WAAW,MAAM,CAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template system types and manifest for Squad initialization.
|
|
3
|
+
* @module cli/core/templates
|
|
4
|
+
*/
|
|
5
|
+
/** Template file descriptor */
|
|
6
|
+
export interface TemplateFile {
|
|
7
|
+
/** Source path relative to templates/ */
|
|
8
|
+
source: string;
|
|
9
|
+
/** Destination path relative to .squad/ directory */
|
|
10
|
+
destination: string;
|
|
11
|
+
/** Whether this file should be overwritten on upgrade */
|
|
12
|
+
overwriteOnUpgrade: boolean;
|
|
13
|
+
/** Description for logging */
|
|
14
|
+
description: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Template manifest — all files that init copies.
|
|
18
|
+
*
|
|
19
|
+
* Categorization:
|
|
20
|
+
* - Squad-owned (overwriteOnUpgrade: true): squad.agent.md, workflows, template files, casting data
|
|
21
|
+
* - User-owned (overwriteOnUpgrade: false): team.md, routing.md, decisions.md, ceremonies.md, agent history/identity
|
|
22
|
+
*/
|
|
23
|
+
export declare const TEMPLATE_MANIFEST: TemplateFile[];
|
|
24
|
+
/**
|
|
25
|
+
* Get the templates directory path.
|
|
26
|
+
* Walks up from the current file to find templates/ — works both
|
|
27
|
+
* from compiled dist/cli/core/templates.js and from a bundled cli.js at the root.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getTemplatesDir(): string;
|
|
30
|
+
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/cli/core/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,+BAA+B;AAC/B,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,YAAY,EA0N3C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAWxC"}
|