@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.
Files changed (200) hide show
  1. package/README.md +77 -77
  2. package/dist/cli/commands/copilot.d.ts +13 -0
  3. package/dist/cli/commands/copilot.d.ts.map +1 -0
  4. package/dist/cli/commands/copilot.js +86 -0
  5. package/dist/cli/commands/copilot.js.map +1 -0
  6. package/dist/cli/commands/export.d.ts +9 -0
  7. package/dist/cli/commands/export.d.ts.map +1 -0
  8. package/dist/cli/commands/export.js +89 -0
  9. package/dist/cli/commands/export.js.map +1 -0
  10. package/dist/cli/commands/import.d.ts +9 -0
  11. package/dist/cli/commands/import.d.ts.map +1 -0
  12. package/dist/cli/commands/import.js +116 -0
  13. package/dist/cli/commands/import.js.map +1 -0
  14. package/dist/cli/commands/plugin.d.ts +14 -0
  15. package/dist/cli/commands/plugin.d.ts.map +1 -0
  16. package/dist/cli/commands/plugin.js +134 -0
  17. package/dist/cli/commands/plugin.js.map +1 -0
  18. package/dist/cli/commands/watch.d.ts +8 -0
  19. package/dist/cli/commands/watch.d.ts.map +1 -0
  20. package/dist/cli/commands/watch.js +178 -0
  21. package/dist/cli/commands/watch.js.map +1 -0
  22. package/dist/cli/copilot-install.d.ts +73 -0
  23. package/dist/cli/copilot-install.d.ts.map +1 -0
  24. package/dist/cli/copilot-install.js +117 -0
  25. package/dist/cli/copilot-install.js.map +1 -0
  26. package/dist/cli/core/detect-squad-dir.d.ts +13 -0
  27. package/dist/cli/core/detect-squad-dir.d.ts.map +1 -0
  28. package/dist/cli/core/detect-squad-dir.js +21 -0
  29. package/dist/cli/core/detect-squad-dir.js.map +1 -0
  30. package/dist/cli/core/email-scrub.d.ts +10 -0
  31. package/dist/cli/core/email-scrub.d.ts.map +1 -0
  32. package/dist/cli/core/email-scrub.js +103 -0
  33. package/dist/cli/core/email-scrub.js.map +1 -0
  34. package/dist/cli/core/errors.d.ts +17 -0
  35. package/dist/cli/core/errors.d.ts.map +1 -0
  36. package/dist/cli/core/errors.js +22 -0
  37. package/dist/cli/core/errors.js.map +1 -0
  38. package/dist/cli/core/gh-cli.d.ts +41 -0
  39. package/dist/cli/core/gh-cli.d.ts.map +1 -0
  40. package/dist/cli/core/gh-cli.js +67 -0
  41. package/dist/cli/core/gh-cli.js.map +1 -0
  42. package/dist/cli/core/history-split.d.ts +9 -0
  43. package/dist/cli/core/history-split.d.ts.map +1 -0
  44. package/dist/cli/core/history-split.js +65 -0
  45. package/dist/cli/core/history-split.js.map +1 -0
  46. package/dist/cli/core/init.d.ts +9 -0
  47. package/dist/cli/core/init.d.ts.map +1 -0
  48. package/dist/cli/core/init.js +296 -0
  49. package/dist/cli/core/init.js.map +1 -0
  50. package/dist/cli/core/migrate-directory.d.ts +11 -0
  51. package/dist/cli/core/migrate-directory.d.ts.map +1 -0
  52. package/dist/cli/core/migrate-directory.js +71 -0
  53. package/dist/cli/core/migrate-directory.js.map +1 -0
  54. package/dist/cli/core/migrations.d.ts +11 -0
  55. package/dist/cli/core/migrations.d.ts.map +1 -0
  56. package/dist/cli/core/migrations.js +78 -0
  57. package/dist/cli/core/migrations.js.map +1 -0
  58. package/dist/cli/core/output.d.ts +34 -0
  59. package/dist/cli/core/output.d.ts.map +1 -0
  60. package/dist/cli/core/output.js +47 -0
  61. package/dist/cli/core/output.js.map +1 -0
  62. package/dist/cli/core/project-type.d.ts +9 -0
  63. package/dist/cli/core/project-type.d.ts.map +1 -0
  64. package/dist/cli/core/project-type.js +29 -0
  65. package/dist/cli/core/project-type.js.map +1 -0
  66. package/dist/cli/core/team-md.d.ts +28 -0
  67. package/dist/cli/core/team-md.d.ts.map +1 -0
  68. package/dist/cli/core/team-md.js +91 -0
  69. package/dist/cli/core/team-md.js.map +1 -0
  70. package/dist/cli/core/templates.d.ts +30 -0
  71. package/dist/cli/core/templates.d.ts.map +1 -0
  72. package/dist/cli/core/templates.js +247 -0
  73. package/dist/cli/core/templates.js.map +1 -0
  74. package/dist/cli/core/upgrade.d.ts +20 -0
  75. package/dist/cli/core/upgrade.d.ts.map +1 -0
  76. package/dist/cli/core/upgrade.js +399 -0
  77. package/dist/cli/core/upgrade.js.map +1 -0
  78. package/dist/cli/core/version.d.ts +18 -0
  79. package/dist/cli/core/version.d.ts.map +1 -0
  80. package/dist/cli/core/version.js +61 -0
  81. package/dist/cli/core/version.js.map +1 -0
  82. package/dist/cli/core/workflows.d.ts +10 -0
  83. package/dist/cli/core/workflows.d.ts.map +1 -0
  84. package/dist/cli/core/workflows.js +155 -0
  85. package/dist/cli/core/workflows.js.map +1 -0
  86. package/dist/cli/index.d.ts +26 -0
  87. package/dist/cli/index.d.ts.map +1 -0
  88. package/dist/cli/index.js +26 -0
  89. package/dist/cli/index.js.map +1 -0
  90. package/dist/cli/shell/autocomplete.d.ts +12 -0
  91. package/dist/cli/shell/autocomplete.d.ts.map +1 -0
  92. package/dist/cli/shell/autocomplete.js +39 -0
  93. package/dist/cli/shell/autocomplete.js.map +1 -0
  94. package/dist/cli/shell/commands.d.ts +19 -0
  95. package/dist/cli/shell/commands.d.ts.map +1 -0
  96. package/dist/cli/shell/commands.js +87 -0
  97. package/dist/cli/shell/commands.js.map +1 -0
  98. package/dist/cli/shell/components/AgentPanel.d.ts +8 -0
  99. package/dist/cli/shell/components/AgentPanel.d.ts.map +1 -0
  100. package/dist/cli/shell/components/AgentPanel.js +17 -0
  101. package/dist/cli/shell/components/AgentPanel.js.map +1 -0
  102. package/dist/cli/shell/components/InputPrompt.d.ts +9 -0
  103. package/dist/cli/shell/components/InputPrompt.d.ts.map +1 -0
  104. package/dist/cli/shell/components/InputPrompt.js +50 -0
  105. package/dist/cli/shell/components/InputPrompt.js.map +1 -0
  106. package/dist/cli/shell/components/MessageStream.d.ts +13 -0
  107. package/dist/cli/shell/components/MessageStream.d.ts.map +1 -0
  108. package/dist/cli/shell/components/MessageStream.js +7 -0
  109. package/dist/cli/shell/components/MessageStream.js.map +1 -0
  110. package/dist/cli/shell/components/index.d.ts +4 -0
  111. package/dist/cli/shell/components/index.d.ts.map +1 -0
  112. package/dist/cli/shell/components/index.js +4 -0
  113. package/dist/cli/shell/components/index.js.map +1 -0
  114. package/dist/cli/shell/coordinator.d.ts +32 -0
  115. package/dist/cli/shell/coordinator.d.ts.map +1 -0
  116. package/dist/cli/shell/coordinator.js +113 -0
  117. package/dist/cli/shell/coordinator.js.map +1 -0
  118. package/dist/cli/shell/index.d.ts +28 -0
  119. package/dist/cli/shell/index.d.ts.map +1 -0
  120. package/dist/cli/shell/index.js +66 -0
  121. package/dist/cli/shell/index.js.map +1 -0
  122. package/dist/cli/shell/lifecycle.d.ts +52 -0
  123. package/dist/cli/shell/lifecycle.d.ts.map +1 -0
  124. package/dist/cli/shell/lifecycle.js +168 -0
  125. package/dist/cli/shell/lifecycle.js.map +1 -0
  126. package/dist/cli/shell/memory.d.ts +36 -0
  127. package/dist/cli/shell/memory.d.ts.map +1 -0
  128. package/dist/cli/shell/memory.js +53 -0
  129. package/dist/cli/shell/memory.js.map +1 -0
  130. package/dist/cli/shell/render.d.ts +22 -0
  131. package/dist/cli/shell/render.d.ts.map +1 -0
  132. package/dist/cli/shell/render.js +44 -0
  133. package/dist/cli/shell/render.js.map +1 -0
  134. package/dist/cli/shell/router.d.ts +17 -0
  135. package/dist/cli/shell/router.d.ts.map +1 -0
  136. package/dist/cli/shell/router.js +55 -0
  137. package/dist/cli/shell/router.js.map +1 -0
  138. package/dist/cli/shell/sessions.d.ts +15 -0
  139. package/dist/cli/shell/sessions.d.ts.map +1 -0
  140. package/dist/cli/shell/sessions.js +37 -0
  141. package/dist/cli/shell/sessions.js.map +1 -0
  142. package/dist/cli/shell/spawn.d.ts +47 -0
  143. package/dist/cli/shell/spawn.d.ts.map +1 -0
  144. package/dist/cli/shell/spawn.js +77 -0
  145. package/dist/cli/shell/spawn.js.map +1 -0
  146. package/dist/cli/shell/stream-bridge.d.ts +60 -0
  147. package/dist/cli/shell/stream-bridge.d.ts.map +1 -0
  148. package/dist/cli/shell/stream-bridge.js +98 -0
  149. package/dist/cli/shell/stream-bridge.js.map +1 -0
  150. package/dist/cli/shell/terminal.d.ts +30 -0
  151. package/dist/cli/shell/terminal.d.ts.map +1 -0
  152. package/dist/cli/shell/terminal.js +34 -0
  153. package/dist/cli/shell/terminal.js.map +1 -0
  154. package/dist/cli/shell/types.d.ts +21 -0
  155. package/dist/cli/shell/types.d.ts.map +1 -0
  156. package/dist/cli/shell/types.js +5 -0
  157. package/dist/cli/shell/types.js.map +1 -0
  158. package/dist/cli/upgrade.d.ts +141 -0
  159. package/dist/cli/upgrade.d.ts.map +1 -0
  160. package/dist/cli/upgrade.js +226 -0
  161. package/dist/cli/upgrade.js.map +1 -0
  162. package/dist/cli-entry.d.ts +10 -0
  163. package/dist/cli-entry.d.ts.map +1 -0
  164. package/dist/cli-entry.js +213 -0
  165. package/dist/cli-entry.js.map +1 -0
  166. package/package.json +44 -34
  167. package/templates/casting-history.json +4 -0
  168. package/templates/casting-policy.json +35 -0
  169. package/templates/casting-registry.json +3 -0
  170. package/templates/ceremonies.md +41 -0
  171. package/templates/charter.md +53 -0
  172. package/templates/constraint-tracking.md +38 -0
  173. package/templates/copilot-instructions.md +46 -0
  174. package/templates/history.md +10 -0
  175. package/templates/identity/now.md +9 -0
  176. package/templates/identity/wisdom.md +15 -0
  177. package/templates/mcp-config.md +90 -0
  178. package/templates/multi-agent-format.md +28 -0
  179. package/templates/orchestration-log.md +27 -0
  180. package/templates/plugin-marketplace.md +49 -0
  181. package/templates/raw-agent-output.md +37 -0
  182. package/templates/roster.md +60 -0
  183. package/templates/routing.md +54 -0
  184. package/templates/run-output.md +50 -0
  185. package/templates/scribe-charter.md +119 -0
  186. package/templates/skill.md +24 -0
  187. package/templates/skills/squad-conventions/SKILL.md +69 -0
  188. package/templates/squad.agent.md +1146 -0
  189. package/templates/workflows/squad-ci.yml +24 -0
  190. package/templates/workflows/squad-docs.yml +50 -0
  191. package/templates/workflows/squad-heartbeat.yml +315 -0
  192. package/templates/workflows/squad-insider-release.yml +61 -0
  193. package/templates/workflows/squad-issue-assign.yml +161 -0
  194. package/templates/workflows/squad-label-enforce.yml +181 -0
  195. package/templates/workflows/squad-main-guard.yml +129 -0
  196. package/templates/workflows/squad-preview.yml +55 -0
  197. package/templates/workflows/squad-promote.yml +121 -0
  198. package/templates/workflows/squad-release.yml +77 -0
  199. package/templates/workflows/squad-triage.yml +260 -0
  200. 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"}