@bradygaster/squad-cli 0.8.20 → 0.8.23
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/build.d.ts +31 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/build.js +453 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/cli/commands/init-remote.d.ts.map +1 -1
- package/dist/cli/commands/init-remote.js +13 -0
- package/dist/cli/commands/init-remote.js.map +1 -1
- package/dist/cli/commands/link.d.ts.map +1 -1
- package/dist/cli/commands/link.js +13 -0
- package/dist/cli/commands/link.js.map +1 -1
- package/dist/cli/commands/migrate.d.ts +14 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -0
- package/dist/cli/commands/migrate.js +419 -0
- package/dist/cli/commands/migrate.js.map +1 -0
- package/dist/cli/commands/rc.d.ts.map +1 -1
- package/dist/cli/commands/rc.js +10 -3
- package/dist/cli/commands/rc.js.map +1 -1
- package/dist/cli/commands/streams.d.ts +15 -0
- package/dist/cli/commands/streams.d.ts.map +1 -0
- package/dist/cli/commands/streams.js +147 -0
- package/dist/cli/commands/streams.js.map +1 -0
- package/dist/cli/core/cast.d.ts.map +1 -1
- package/dist/cli/core/cast.js +111 -63
- package/dist/cli/core/cast.js.map +1 -1
- package/dist/cli/core/init.d.ts +4 -0
- package/dist/cli/core/init.d.ts.map +1 -1
- package/dist/cli/core/init.js +2 -2
- package/dist/cli/core/init.js.map +1 -1
- package/dist/cli/core/team-md.js +34 -34
- package/dist/cli/core/templates.d.ts.map +1 -1
- package/dist/cli/core/templates.js +0 -6
- package/dist/cli/core/templates.js.map +1 -1
- package/dist/cli/core/upgrade.d.ts.map +1 -1
- package/dist/cli/core/upgrade.js +2 -1
- package/dist/cli/core/upgrade.js.map +1 -1
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +1 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/shell/commands.d.ts +6 -0
- package/dist/cli/shell/commands.d.ts.map +1 -1
- package/dist/cli/shell/commands.js +2 -1
- package/dist/cli/shell/commands.js.map +1 -1
- package/dist/cli/shell/components/AgentPanel.d.ts.map +1 -1
- package/dist/cli/shell/components/AgentPanel.js +4 -3
- package/dist/cli/shell/components/AgentPanel.js.map +1 -1
- package/dist/cli/shell/components/App.d.ts.map +1 -1
- package/dist/cli/shell/components/App.js +36 -2
- package/dist/cli/shell/components/App.js.map +1 -1
- package/dist/cli/shell/components/MessageStream.d.ts.map +1 -1
- package/dist/cli/shell/components/MessageStream.js +2 -1
- package/dist/cli/shell/components/MessageStream.js.map +1 -1
- package/dist/cli/shell/components/ThinkingIndicator.js +2 -2
- package/dist/cli/shell/components/ThinkingIndicator.js.map +1 -1
- package/dist/cli/shell/coordinator.js +88 -88
- package/dist/cli/shell/index.d.ts.map +1 -1
- package/dist/cli/shell/index.js +41 -3
- package/dist/cli/shell/index.js.map +1 -1
- package/dist/cli-entry.js +220 -22
- package/dist/cli-entry.js.map +1 -1
- package/dist/remote-ui/app.js +334 -0
- package/dist/remote-ui/index.html +57 -0
- package/dist/remote-ui/manifest.json +10 -0
- package/dist/remote-ui/styles.css +249 -0
- package/package.json +35 -3
- package/scripts/patch-esm-imports.mjs +77 -0
- package/templates/casting-history.json +4 -4
- package/templates/casting-policy.json +35 -35
- package/templates/casting-registry.json +3 -3
- package/templates/ceremonies.md +41 -41
- package/templates/charter.md +53 -53
- package/templates/constraint-tracking.md +38 -38
- package/templates/copilot-instructions.md +46 -46
- package/templates/history.md +10 -10
- package/templates/identity/now.md +9 -9
- package/templates/identity/wisdom.md +15 -15
- package/templates/mcp-config.md +90 -90
- package/templates/multi-agent-format.md +28 -28
- package/templates/orchestration-log.md +27 -27
- package/templates/plugin-marketplace.md +49 -49
- package/templates/raw-agent-output.md +37 -37
- package/templates/roster.md +60 -60
- package/templates/routing.md +54 -54
- package/templates/run-output.md +50 -50
- package/templates/scribe-charter.md +119 -119
- package/templates/skill.md +24 -24
- package/templates/skills/squad-conventions/SKILL.md +69 -69
- package/templates/squad.agent.md +1146 -1146
- package/templates/workflows/squad-ci.yml +24 -24
- package/templates/workflows/squad-docs.yml +50 -50
- package/templates/workflows/squad-insider-release.yml +61 -61
- package/templates/workflows/squad-issue-assign.yml +161 -161
- package/templates/workflows/squad-label-enforce.yml +181 -181
- package/templates/workflows/squad-preview.yml +55 -55
- package/templates/workflows/squad-promote.yml +120 -120
- package/templates/workflows/squad-release.yml +77 -77
- package/templates/workflows/squad-triage.yml +260 -260
- package/templates/workflows/sync-squad-labels.yml +169 -169
- package/dist/cli/shell/sdk-bridge.d.ts +0 -50
- package/dist/cli/shell/sdk-bridge.d.ts.map +0 -1
- package/dist/cli/shell/sdk-bridge.js +0 -235
- package/dist/cli/shell/sdk-bridge.js.map +0 -1
- package/dist/cli/shell/theme-colors.d.ts +0 -39
- package/dist/cli/shell/theme-colors.d.ts.map +0 -1
- package/dist/cli/shell/theme-colors.js +0 -39
- package/dist/cli/shell/theme-colors.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -4
- package/dist/cli.js.map +0 -1
- package/templates/workflows/squad-main-guard.yml +0 -129
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Squad CLI — Semantic Color System
|
|
3
|
-
*
|
|
4
|
-
* Consistent color roles for all CLI components.
|
|
5
|
-
* All colors target ≥4.5:1 contrast ratio on standard dark terminals.
|
|
6
|
-
*
|
|
7
|
-
* Import:
|
|
8
|
-
* import { colors } from '../theme-colors.js';
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
* <Text color={noColor ? undefined : colors.info}>...</Text>
|
|
12
|
-
*
|
|
13
|
-
* Color roles:
|
|
14
|
-
* cyan (info) — user input, prompts, neutral informational text
|
|
15
|
-
* green (success) — agent ready, task complete, confirmations
|
|
16
|
-
* yellow (warning) — experimental flags, caution, in-progress attention
|
|
17
|
-
* red (error) — error states, failures, crash messages
|
|
18
|
-
* gray (secondary) — hints, timestamps, metadata — readable, never dim
|
|
19
|
-
*
|
|
20
|
-
* Contrast guidance:
|
|
21
|
-
* - Use `colors.secondary` ("gray") for readable secondary text.
|
|
22
|
-
* ANSI dim (SGR 2) drops below 4.5:1 on many terminals — avoid for text.
|
|
23
|
-
* - Reserve `dimColor` ONLY for decorative elements (separators, box rules).
|
|
24
|
-
* - "gray" (ANSI 90 / bright-black) holds ~5:1 contrast on dark backgrounds.
|
|
25
|
-
*/
|
|
26
|
-
/** Ink-compatible color values for the semantic color system. */
|
|
27
|
-
export declare const colors: {
|
|
28
|
-
/** Info / neutral — user input, prompts, informational highlights */
|
|
29
|
-
readonly info: "cyan";
|
|
30
|
-
/** Success / completion — agent ready, task done, confirmations */
|
|
31
|
-
readonly success: "green";
|
|
32
|
-
/** Warning / caution — experimental flags, in-progress work */
|
|
33
|
-
readonly warning: "yellow";
|
|
34
|
-
/** Error / failure — error states, crashes */
|
|
35
|
-
readonly error: "red";
|
|
36
|
-
/** Secondary text — hints, timestamps, metadata. Readable, not dim. */
|
|
37
|
-
readonly secondary: "gray";
|
|
38
|
-
};
|
|
39
|
-
//# sourceMappingURL=theme-colors.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"theme-colors.d.ts","sourceRoot":"","sources":["../../../src/cli/shell/theme-colors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,iEAAiE;AACjE,eAAO,MAAM,MAAM;IACjB,qEAAqE;;IAErE,mEAAmE;;IAEnE,+DAA+D;;IAE/D,8CAA8C;;IAE9C,uEAAuE;;CAE/D,CAAC"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Squad CLI — Semantic Color System
|
|
3
|
-
*
|
|
4
|
-
* Consistent color roles for all CLI components.
|
|
5
|
-
* All colors target ≥4.5:1 contrast ratio on standard dark terminals.
|
|
6
|
-
*
|
|
7
|
-
* Import:
|
|
8
|
-
* import { colors } from '../theme-colors.js';
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
* <Text color={noColor ? undefined : colors.info}>...</Text>
|
|
12
|
-
*
|
|
13
|
-
* Color roles:
|
|
14
|
-
* cyan (info) — user input, prompts, neutral informational text
|
|
15
|
-
* green (success) — agent ready, task complete, confirmations
|
|
16
|
-
* yellow (warning) — experimental flags, caution, in-progress attention
|
|
17
|
-
* red (error) — error states, failures, crash messages
|
|
18
|
-
* gray (secondary) — hints, timestamps, metadata — readable, never dim
|
|
19
|
-
*
|
|
20
|
-
* Contrast guidance:
|
|
21
|
-
* - Use `colors.secondary` ("gray") for readable secondary text.
|
|
22
|
-
* ANSI dim (SGR 2) drops below 4.5:1 on many terminals — avoid for text.
|
|
23
|
-
* - Reserve `dimColor` ONLY for decorative elements (separators, box rules).
|
|
24
|
-
* - "gray" (ANSI 90 / bright-black) holds ~5:1 contrast on dark backgrounds.
|
|
25
|
-
*/
|
|
26
|
-
/** Ink-compatible color values for the semantic color system. */
|
|
27
|
-
export const colors = {
|
|
28
|
-
/** Info / neutral — user input, prompts, informational highlights */
|
|
29
|
-
info: 'cyan',
|
|
30
|
-
/** Success / completion — agent ready, task done, confirmations */
|
|
31
|
-
success: 'green',
|
|
32
|
-
/** Warning / caution — experimental flags, in-progress work */
|
|
33
|
-
warning: 'yellow',
|
|
34
|
-
/** Error / failure — error states, crashes */
|
|
35
|
-
error: 'red',
|
|
36
|
-
/** Secondary text — hints, timestamps, metadata. Readable, not dim. */
|
|
37
|
-
secondary: 'gray',
|
|
38
|
-
};
|
|
39
|
-
//# sourceMappingURL=theme-colors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"theme-colors.js","sourceRoot":"","sources":["../../../src/cli/shell/theme-colors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,iEAAiE;AACjE,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,qEAAqE;IACrE,IAAI,EAAE,MAAM;IACZ,mEAAmE;IACnE,OAAO,EAAE,OAAO;IAChB,+DAA+D;IAC/D,OAAO,EAAE,QAAQ;IACjB,8CAA8C;IAC9C,KAAK,EAAE,KAAK;IACZ,uEAAuE;IACvE,SAAS,EAAE,MAAM;CACT,CAAC"}
|
package/dist/cli.d.ts
DELETED
package/dist/cli.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
DELETED
package/dist/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC"}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
name: Squad Protected Branch Guard
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
pull_request:
|
|
5
|
-
branches: [main, preview, insider]
|
|
6
|
-
types: [opened, synchronize, reopened]
|
|
7
|
-
push:
|
|
8
|
-
branches: [main, preview, insider]
|
|
9
|
-
|
|
10
|
-
permissions:
|
|
11
|
-
contents: read
|
|
12
|
-
pull-requests: read
|
|
13
|
-
|
|
14
|
-
jobs:
|
|
15
|
-
guard:
|
|
16
|
-
runs-on: ubuntu-latest
|
|
17
|
-
steps:
|
|
18
|
-
- uses: actions/checkout@v4
|
|
19
|
-
|
|
20
|
-
- name: Check for forbidden paths
|
|
21
|
-
uses: actions/github-script@v7
|
|
22
|
-
with:
|
|
23
|
-
script: |
|
|
24
|
-
// Fetch all files changed - handles both PR and push events
|
|
25
|
-
let files = [];
|
|
26
|
-
|
|
27
|
-
if (context.eventName === 'pull_request') {
|
|
28
|
-
// PR event: use pulls.listFiles API
|
|
29
|
-
let page = 1;
|
|
30
|
-
while (true) {
|
|
31
|
-
const resp = await github.rest.pulls.listFiles({
|
|
32
|
-
owner: context.repo.owner,
|
|
33
|
-
repo: context.repo.repo,
|
|
34
|
-
pull_number: context.payload.pull_request.number,
|
|
35
|
-
per_page: 100,
|
|
36
|
-
page
|
|
37
|
-
});
|
|
38
|
-
files.push(...resp.data);
|
|
39
|
-
if (resp.data.length < 100) break;
|
|
40
|
-
page++;
|
|
41
|
-
}
|
|
42
|
-
} else if (context.eventName === 'push') {
|
|
43
|
-
// Push event: compare against base branch
|
|
44
|
-
const base = context.payload.before;
|
|
45
|
-
const head = context.payload.after;
|
|
46
|
-
|
|
47
|
-
// If this is not a force push and base exists, compare commits
|
|
48
|
-
if (base && base !== '0000000000000000000000000000000000000000') {
|
|
49
|
-
const comparison = await github.rest.repos.compareCommits({
|
|
50
|
-
owner: context.repo.owner,
|
|
51
|
-
repo: context.repo.repo,
|
|
52
|
-
base,
|
|
53
|
-
head
|
|
54
|
-
});
|
|
55
|
-
files = comparison.data.files || [];
|
|
56
|
-
} else {
|
|
57
|
-
// Force push or initial commit: list all files in the current tree
|
|
58
|
-
core.info('Force push detected or initial commit, checking tree state');
|
|
59
|
-
const { data: tree } = await github.rest.git.getTree({
|
|
60
|
-
owner: context.repo.owner,
|
|
61
|
-
repo: context.repo.repo,
|
|
62
|
-
tree_sha: head,
|
|
63
|
-
recursive: 'true'
|
|
64
|
-
});
|
|
65
|
-
files = tree.tree
|
|
66
|
-
.filter(item => item.type === 'blob')
|
|
67
|
-
.map(item => ({ filename: item.path, status: 'added' }));
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Check each file against forbidden path rules
|
|
72
|
-
// Allow removals ΓÇö deleting forbidden files from protected branches is fine
|
|
73
|
-
const forbidden = files
|
|
74
|
-
.filter(f => f.status !== 'removed')
|
|
75
|
-
.map(f => f.filename)
|
|
76
|
-
.filter(f => {
|
|
77
|
-
// .ai-team/** and .squad/** ΓÇö ALL team state files, zero exceptions
|
|
78
|
-
if (f === '.ai-team' || f.startsWith('.ai-team/') || f === '.squad' || f.startsWith('.squad/')) return true;
|
|
79
|
-
// .ai-team-templates/** ΓÇö Squad's own templates, stay on dev
|
|
80
|
-
if (f === '.ai-team-templates' || f.startsWith('.ai-team-templates/')) return true;
|
|
81
|
-
// team-docs/** ΓÇö ALL internal team docs, zero exceptions
|
|
82
|
-
if (f.startsWith('team-docs/')) return true;
|
|
83
|
-
// docs/proposals/** ΓÇö internal design proposals, stay on dev
|
|
84
|
-
if (f.startsWith('docs/proposals/')) return true;
|
|
85
|
-
return false;
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
if (forbidden.length === 0) {
|
|
89
|
-
core.info('✅ No forbidden paths found in PR — all clear.');
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// Build a clear, actionable error message
|
|
94
|
-
const lines = [
|
|
95
|
-
'## 🚫 Forbidden files detected in PR to main',
|
|
96
|
-
'',
|
|
97
|
-
'The following files must NOT be merged into `main`.',
|
|
98
|
-
'`.ai-team/` and `.squad/` are runtime team state ΓÇö they belong on dev branches only.',
|
|
99
|
-
'`.ai-team-templates/` is Squad\'s internal planning ΓÇö it belongs on dev branches only.',
|
|
100
|
-
'`team-docs/` is internal team content ΓÇö it belongs on dev branches only.',
|
|
101
|
-
'`docs/proposals/` is internal design proposals ΓÇö it belongs on dev branches only.',
|
|
102
|
-
'',
|
|
103
|
-
'### Forbidden files found:',
|
|
104
|
-
'',
|
|
105
|
-
...forbidden.map(f => `- \`${f}\``),
|
|
106
|
-
'',
|
|
107
|
-
'### How to fix:',
|
|
108
|
-
'',
|
|
109
|
-
'```bash',
|
|
110
|
-
'# Remove tracked .ai-team/ files (keeps local copies):',
|
|
111
|
-
'git rm --cached -r .ai-team/',
|
|
112
|
-
'',
|
|
113
|
-
'# Remove tracked .squad/ files (keeps local copies):',
|
|
114
|
-
'git rm --cached -r .squad/',
|
|
115
|
-
'',
|
|
116
|
-
'# Remove tracked team-docs/ files:',
|
|
117
|
-
'git rm --cached -r team-docs/',
|
|
118
|
-
'',
|
|
119
|
-
'# Commit the removal and push:',
|
|
120
|
-
'git commit -m "chore: remove forbidden paths from PR"',
|
|
121
|
-
'git push',
|
|
122
|
-
'```',
|
|
123
|
-
'',
|
|
124
|
-
'> ⚠️ `.ai-team/` and `.squad/` are committed on `dev` and feature branches by design.',
|
|
125
|
-
'> The guard workflow is the enforcement mechanism that keeps these files off `main` and `preview`.',
|
|
126
|
-
'> `git rm --cached` untracks them from this PR without deleting your local copies.',
|
|
127
|
-
];
|
|
128
|
-
|
|
129
|
-
core.setFailed(lines.join('\n'));
|