@bradygaster/squad-sdk 0.8.20 → 0.8.21

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 (105) hide show
  1. package/README.md +296 -296
  2. package/dist/adapter/client.js +1 -1
  3. package/dist/adapter/client.js.map +1 -1
  4. package/dist/agents/charter-compiler.d.ts +4 -0
  5. package/dist/agents/charter-compiler.d.ts.map +1 -1
  6. package/dist/agents/charter-compiler.js +8 -0
  7. package/dist/agents/charter-compiler.js.map +1 -1
  8. package/dist/agents/history-shadow.js +30 -30
  9. package/dist/agents/index.js +1 -1
  10. package/dist/agents/index.js.map +1 -1
  11. package/dist/agents/lifecycle.js +1 -1
  12. package/dist/agents/lifecycle.js.map +1 -1
  13. package/dist/build/github-dist.js +42 -42
  14. package/dist/builders/index.d.ts +156 -0
  15. package/dist/builders/index.d.ts.map +1 -0
  16. package/dist/builders/index.js +404 -0
  17. package/dist/builders/index.js.map +1 -0
  18. package/dist/builders/types.d.ts +187 -0
  19. package/dist/builders/types.d.ts.map +1 -0
  20. package/dist/builders/types.js +12 -0
  21. package/dist/builders/types.js.map +1 -0
  22. package/dist/config/init.d.ts +5 -21
  23. package/dist/config/init.d.ts.map +1 -1
  24. package/dist/config/init.js +270 -182
  25. package/dist/config/init.js.map +1 -1
  26. package/dist/coordinator/coordinator.js +1 -1
  27. package/dist/coordinator/coordinator.js.map +1 -1
  28. package/dist/coordinator/index.js +1 -1
  29. package/dist/coordinator/index.js.map +1 -1
  30. package/dist/index.d.ts +3 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +3 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/runtime/otel-api.d.ts +38 -0
  35. package/dist/runtime/otel-api.d.ts.map +1 -0
  36. package/dist/runtime/otel-api.js +94 -0
  37. package/dist/runtime/otel-api.js.map +1 -0
  38. package/dist/runtime/otel-bridge.js +1 -1
  39. package/dist/runtime/otel-bridge.js.map +1 -1
  40. package/dist/runtime/otel.d.ts +1 -1
  41. package/dist/runtime/otel.d.ts.map +1 -1
  42. package/dist/runtime/otel.js +28 -12
  43. package/dist/runtime/otel.js.map +1 -1
  44. package/dist/runtime/squad-observer.js +1 -1
  45. package/dist/runtime/squad-observer.js.map +1 -1
  46. package/dist/sharing/consult.js +78 -78
  47. package/dist/streams/filter.d.ts +33 -0
  48. package/dist/streams/filter.d.ts.map +1 -0
  49. package/dist/streams/filter.js +29 -0
  50. package/dist/streams/filter.js.map +1 -0
  51. package/dist/streams/index.d.ts +9 -0
  52. package/dist/streams/index.d.ts.map +1 -0
  53. package/dist/streams/index.js +9 -0
  54. package/dist/streams/index.js.map +1 -0
  55. package/dist/streams/resolver.d.ts +40 -0
  56. package/dist/streams/resolver.d.ts.map +1 -0
  57. package/dist/streams/resolver.js +162 -0
  58. package/dist/streams/resolver.js.map +1 -0
  59. package/dist/streams/types.d.ts +44 -0
  60. package/dist/streams/types.d.ts.map +1 -0
  61. package/dist/streams/types.js +10 -0
  62. package/dist/streams/types.js.map +1 -0
  63. package/dist/tools/index.js +1 -1
  64. package/dist/tools/index.js.map +1 -1
  65. package/dist/types.d.ts +20 -0
  66. package/dist/types.d.ts.map +1 -1
  67. package/package.json +12 -11
  68. package/templates/casting-history.json +4 -4
  69. package/templates/casting-policy.json +35 -35
  70. package/templates/casting-registry.json +3 -3
  71. package/templates/ceremonies.md +41 -41
  72. package/templates/charter.md +53 -53
  73. package/templates/constraint-tracking.md +38 -38
  74. package/templates/copilot-instructions.md +46 -46
  75. package/templates/history.md +10 -10
  76. package/templates/identity/now.md +9 -9
  77. package/templates/identity/wisdom.md +15 -15
  78. package/templates/mcp-config.md +98 -98
  79. package/templates/multi-agent-format.md +28 -28
  80. package/templates/orchestration-log.md +27 -27
  81. package/templates/plugin-marketplace.md +49 -49
  82. package/templates/raw-agent-output.md +37 -37
  83. package/templates/roster.md +60 -60
  84. package/templates/routing.md +54 -54
  85. package/templates/run-output.md +50 -50
  86. package/templates/scribe-charter.md +119 -119
  87. package/templates/skill.md +24 -24
  88. package/templates/skills/project-conventions/SKILL.md +56 -56
  89. package/templates/squad.agent.md +1146 -1146
  90. package/templates/workflows/squad-ci.yml +24 -24
  91. package/templates/workflows/squad-docs.yml +50 -50
  92. package/templates/workflows/squad-heartbeat.yml +316 -316
  93. package/templates/workflows/squad-insider-release.yml +61 -61
  94. package/templates/workflows/squad-issue-assign.yml +161 -161
  95. package/templates/workflows/squad-label-enforce.yml +181 -181
  96. package/templates/workflows/squad-preview.yml +55 -55
  97. package/templates/workflows/squad-promote.yml +120 -120
  98. package/templates/workflows/squad-release.yml +77 -77
  99. package/templates/workflows/squad-triage.yml +260 -260
  100. package/templates/workflows/sync-squad-labels.yml +169 -169
  101. package/dist/runtime/event-bus-otel-bridge.d.ts +0 -19
  102. package/dist/runtime/event-bus-otel-bridge.d.ts.map +0 -1
  103. package/dist/runtime/event-bus-otel-bridge.js +0 -61
  104. package/dist/runtime/event-bus-otel-bridge.js.map +0 -1
  105. package/templates/workflows/squad-main-guard.yml +0 -129
@@ -1,120 +1,120 @@
1
- name: Squad Promote
2
-
3
- on:
4
- workflow_dispatch:
5
- inputs:
6
- dry_run:
7
- description: 'Dry run — show what would happen without pushing'
8
- required: false
9
- default: 'false'
10
- type: choice
11
- options: ['false', 'true']
12
-
13
- permissions:
14
- contents: write
15
-
16
- jobs:
17
- dev-to-preview:
18
- name: Promote dev → preview
19
- runs-on: ubuntu-latest
20
- steps:
21
- - uses: actions/checkout@v4
22
- with:
23
- fetch-depth: 0
24
- token: ${{ secrets.GITHUB_TOKEN }}
25
-
26
- - name: Configure git
27
- run: |
28
- git config user.name "github-actions[bot]"
29
- git config user.email "github-actions[bot]@users.noreply.github.com"
30
-
31
- - name: Fetch all branches
32
- run: git fetch --all
33
-
34
- - name: Show current state (dry run info)
35
- run: |
36
- echo "=== dev HEAD ===" && git log origin/dev -1 --oneline
37
- echo "=== preview HEAD ===" && git log origin/preview -1 --oneline
38
- echo "=== Files that would be stripped ==="
39
- git diff origin/preview..origin/dev --name-only | grep -E "^(\.(ai-team|squad|ai-team-templates)|team-docs/|docs/proposals/)" || echo "(none)"
40
-
41
- - name: Merge dev → preview (strip forbidden paths)
42
- if: ${{ inputs.dry_run == 'false' }}
43
- run: |
44
- git checkout preview
45
- git merge origin/dev --no-commit --no-ff -X theirs || true
46
-
47
- # Strip forbidden paths from merge commit
48
- git rm -rf --cached --ignore-unmatch \
49
- .ai-team/ \
50
- .squad/ \
51
- .ai-team-templates/ \
52
- team-docs/ \
53
- "docs/proposals/" || true
54
-
55
- # Commit if there are staged changes
56
- if ! git diff --cached --quiet; then
57
- git commit -m "chore: promote dev → preview (v$(node -e "console.log(require('./package.json').version)"))"
58
- git push origin preview
59
- echo "✅ Pushed preview branch"
60
- else
61
- echo "ℹ️ Nothing to commit — preview is already up to date"
62
- fi
63
-
64
- - name: Dry run complete
65
- if: ${{ inputs.dry_run == 'true' }}
66
- run: echo "🔍 Dry run complete — no changes pushed."
67
-
68
- preview-to-main:
69
- name: Promote preview → main (release)
70
- needs: dev-to-preview
71
- runs-on: ubuntu-latest
72
- steps:
73
- - uses: actions/checkout@v4
74
- with:
75
- fetch-depth: 0
76
- token: ${{ secrets.GITHUB_TOKEN }}
77
-
78
- - name: Configure git
79
- run: |
80
- git config user.name "github-actions[bot]"
81
- git config user.email "github-actions[bot]@users.noreply.github.com"
82
-
83
- - name: Fetch all branches
84
- run: git fetch --all
85
-
86
- - name: Show current state
87
- run: |
88
- echo "=== preview HEAD ===" && git log origin/preview -1 --oneline
89
- echo "=== main HEAD ===" && git log origin/main -1 --oneline
90
- echo "=== Version ===" && node -e "console.log('v' + require('./package.json').version)"
91
-
92
- - name: Validate preview is release-ready
93
- run: |
94
- git checkout preview
95
- VERSION=$(node -e "console.log(require('./package.json').version)")
96
- if ! grep -q "## \[$VERSION\]" CHANGELOG.md 2>/dev/null; then
97
- echo "::error::Version $VERSION not found in CHANGELOG.md — update before releasing"
98
- exit 1
99
- fi
100
- echo "✅ Version $VERSION has CHANGELOG entry"
101
-
102
- # Verify no forbidden files on preview
103
- FORBIDDEN=$(git ls-files | grep -E "^(\.(ai-team|squad|ai-team-templates)/|team-docs/|docs/proposals/)" || true)
104
- if [ -n "$FORBIDDEN" ]; then
105
- echo "::error::Forbidden files found on preview: $FORBIDDEN"
106
- exit 1
107
- fi
108
- echo "✅ No forbidden files on preview"
109
-
110
- - name: Merge preview → main
111
- if: ${{ inputs.dry_run == 'false' }}
112
- run: |
113
- git checkout main
114
- git merge origin/preview --no-ff -m "chore: promote preview → main (v$(node -e "console.log(require('./package.json').version)"))"
115
- git push origin main
116
- echo "✅ Pushed main — squad-release.yml will tag and publish the release"
117
-
118
- - name: Dry run complete
119
- if: ${{ inputs.dry_run == 'true' }}
120
- run: echo "🔍 Dry run complete — no changes pushed."
1
+ name: Squad Promote
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ dry_run:
7
+ description: 'Dry run — show what would happen without pushing'
8
+ required: false
9
+ default: 'false'
10
+ type: choice
11
+ options: ['false', 'true']
12
+
13
+ permissions:
14
+ contents: write
15
+
16
+ jobs:
17
+ dev-to-preview:
18
+ name: Promote dev → preview
19
+ runs-on: ubuntu-latest
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+ with:
23
+ fetch-depth: 0
24
+ token: ${{ secrets.GITHUB_TOKEN }}
25
+
26
+ - name: Configure git
27
+ run: |
28
+ git config user.name "github-actions[bot]"
29
+ git config user.email "github-actions[bot]@users.noreply.github.com"
30
+
31
+ - name: Fetch all branches
32
+ run: git fetch --all
33
+
34
+ - name: Show current state (dry run info)
35
+ run: |
36
+ echo "=== dev HEAD ===" && git log origin/dev -1 --oneline
37
+ echo "=== preview HEAD ===" && git log origin/preview -1 --oneline
38
+ echo "=== Files that would be stripped ==="
39
+ git diff origin/preview..origin/dev --name-only | grep -E "^(\.(ai-team|squad|ai-team-templates)|team-docs/|docs/proposals/)" || echo "(none)"
40
+
41
+ - name: Merge dev → preview (strip forbidden paths)
42
+ if: ${{ inputs.dry_run == 'false' }}
43
+ run: |
44
+ git checkout preview
45
+ git merge origin/dev --no-commit --no-ff -X theirs || true
46
+
47
+ # Strip forbidden paths from merge commit
48
+ git rm -rf --cached --ignore-unmatch \
49
+ .ai-team/ \
50
+ .squad/ \
51
+ .ai-team-templates/ \
52
+ team-docs/ \
53
+ "docs/proposals/" || true
54
+
55
+ # Commit if there are staged changes
56
+ if ! git diff --cached --quiet; then
57
+ git commit -m "chore: promote dev → preview (v$(node -e "console.log(require('./package.json').version)"))"
58
+ git push origin preview
59
+ echo "✅ Pushed preview branch"
60
+ else
61
+ echo "ℹ️ Nothing to commit — preview is already up to date"
62
+ fi
63
+
64
+ - name: Dry run complete
65
+ if: ${{ inputs.dry_run == 'true' }}
66
+ run: echo "🔍 Dry run complete — no changes pushed."
67
+
68
+ preview-to-main:
69
+ name: Promote preview → main (release)
70
+ needs: dev-to-preview
71
+ runs-on: ubuntu-latest
72
+ steps:
73
+ - uses: actions/checkout@v4
74
+ with:
75
+ fetch-depth: 0
76
+ token: ${{ secrets.GITHUB_TOKEN }}
77
+
78
+ - name: Configure git
79
+ run: |
80
+ git config user.name "github-actions[bot]"
81
+ git config user.email "github-actions[bot]@users.noreply.github.com"
82
+
83
+ - name: Fetch all branches
84
+ run: git fetch --all
85
+
86
+ - name: Show current state
87
+ run: |
88
+ echo "=== preview HEAD ===" && git log origin/preview -1 --oneline
89
+ echo "=== main HEAD ===" && git log origin/main -1 --oneline
90
+ echo "=== Version ===" && node -e "console.log('v' + require('./package.json').version)"
91
+
92
+ - name: Validate preview is release-ready
93
+ run: |
94
+ git checkout preview
95
+ VERSION=$(node -e "console.log(require('./package.json').version)")
96
+ if ! grep -q "## \[$VERSION\]" CHANGELOG.md 2>/dev/null; then
97
+ echo "::error::Version $VERSION not found in CHANGELOG.md — update before releasing"
98
+ exit 1
99
+ fi
100
+ echo "✅ Version $VERSION has CHANGELOG entry"
101
+
102
+ # Verify no forbidden files on preview
103
+ FORBIDDEN=$(git ls-files | grep -E "^(\.(ai-team|squad|ai-team-templates)/|team-docs/|docs/proposals/)" || true)
104
+ if [ -n "$FORBIDDEN" ]; then
105
+ echo "::error::Forbidden files found on preview: $FORBIDDEN"
106
+ exit 1
107
+ fi
108
+ echo "✅ No forbidden files on preview"
109
+
110
+ - name: Merge preview → main
111
+ if: ${{ inputs.dry_run == 'false' }}
112
+ run: |
113
+ git checkout main
114
+ git merge origin/preview --no-ff -m "chore: promote preview → main (v$(node -e "console.log(require('./package.json').version)"))"
115
+ git push origin main
116
+ echo "✅ Pushed main — squad-release.yml will tag and publish the release"
117
+
118
+ - name: Dry run complete
119
+ if: ${{ inputs.dry_run == 'true' }}
120
+ run: echo "🔍 Dry run complete — no changes pushed."
@@ -1,77 +1,77 @@
1
- name: Squad Release
2
-
3
- on:
4
- push:
5
- branches: [main]
6
-
7
- permissions:
8
- contents: write
9
-
10
- jobs:
11
- release:
12
- runs-on: ubuntu-latest
13
- steps:
14
- - uses: actions/checkout@v4
15
- with:
16
- fetch-depth: 0
17
-
18
- - uses: actions/setup-node@v4
19
- with:
20
- node-version: 22
21
-
22
- - name: Run tests
23
- run: node --test test/*.test.js
24
-
25
- - name: Validate version consistency
26
- run: |
27
- VERSION=$(node -e "console.log(require('./package.json').version)")
28
- if ! grep -q "## \[$VERSION\]" CHANGELOG.md 2>/dev/null; then
29
- echo "::error::Version $VERSION not found in CHANGELOG.md — update CHANGELOG.md before release"
30
- exit 1
31
- fi
32
- echo "✅ Version $VERSION validated in CHANGELOG.md"
33
-
34
- - name: Read version from package.json
35
- id: version
36
- run: |
37
- VERSION=$(node -e "console.log(require('./package.json').version)")
38
- echo "version=$VERSION" >> "$GITHUB_OUTPUT"
39
- echo "tag=v$VERSION" >> "$GITHUB_OUTPUT"
40
- echo "📦 Version: $VERSION (tag: v$VERSION)"
41
-
42
- - name: Check if tag already exists
43
- id: check_tag
44
- run: |
45
- if git rev-parse "refs/tags/${{ steps.version.outputs.tag }}" >/dev/null 2>&1; then
46
- echo "exists=true" >> "$GITHUB_OUTPUT"
47
- echo "⏭️ Tag ${{ steps.version.outputs.tag }} already exists — skipping release."
48
- else
49
- echo "exists=false" >> "$GITHUB_OUTPUT"
50
- echo "🆕 Tag ${{ steps.version.outputs.tag }} does not exist — creating release."
51
- fi
52
-
53
- - name: Create git tag
54
- if: steps.check_tag.outputs.exists == 'false'
55
- run: |
56
- git config user.name "github-actions[bot]"
57
- git config user.email "github-actions[bot]@users.noreply.github.com"
58
- git tag -a "${{ steps.version.outputs.tag }}" -m "Release ${{ steps.version.outputs.tag }}"
59
- git push origin "${{ steps.version.outputs.tag }}"
60
-
61
- - name: Create GitHub Release
62
- if: steps.check_tag.outputs.exists == 'false'
63
- env:
64
- GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
65
- run: |
66
- gh release create "${{ steps.version.outputs.tag }}" \
67
- --title "${{ steps.version.outputs.tag }}" \
68
- --generate-notes \
69
- --latest
70
-
71
- - name: Verify release
72
- if: steps.check_tag.outputs.exists == 'false'
73
- env:
74
- GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
75
- run: |
76
- gh release view "${{ steps.version.outputs.tag }}"
77
- echo "✅ Release ${{ steps.version.outputs.tag }} created and verified."
1
+ name: Squad Release
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+
7
+ permissions:
8
+ contents: write
9
+
10
+ jobs:
11
+ release:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+ with:
16
+ fetch-depth: 0
17
+
18
+ - uses: actions/setup-node@v4
19
+ with:
20
+ node-version: 22
21
+
22
+ - name: Run tests
23
+ run: node --test test/*.test.js
24
+
25
+ - name: Validate version consistency
26
+ run: |
27
+ VERSION=$(node -e "console.log(require('./package.json').version)")
28
+ if ! grep -q "## \[$VERSION\]" CHANGELOG.md 2>/dev/null; then
29
+ echo "::error::Version $VERSION not found in CHANGELOG.md — update CHANGELOG.md before release"
30
+ exit 1
31
+ fi
32
+ echo "✅ Version $VERSION validated in CHANGELOG.md"
33
+
34
+ - name: Read version from package.json
35
+ id: version
36
+ run: |
37
+ VERSION=$(node -e "console.log(require('./package.json').version)")
38
+ echo "version=$VERSION" >> "$GITHUB_OUTPUT"
39
+ echo "tag=v$VERSION" >> "$GITHUB_OUTPUT"
40
+ echo "📦 Version: $VERSION (tag: v$VERSION)"
41
+
42
+ - name: Check if tag already exists
43
+ id: check_tag
44
+ run: |
45
+ if git rev-parse "refs/tags/${{ steps.version.outputs.tag }}" >/dev/null 2>&1; then
46
+ echo "exists=true" >> "$GITHUB_OUTPUT"
47
+ echo "⏭️ Tag ${{ steps.version.outputs.tag }} already exists — skipping release."
48
+ else
49
+ echo "exists=false" >> "$GITHUB_OUTPUT"
50
+ echo "🆕 Tag ${{ steps.version.outputs.tag }} does not exist — creating release."
51
+ fi
52
+
53
+ - name: Create git tag
54
+ if: steps.check_tag.outputs.exists == 'false'
55
+ run: |
56
+ git config user.name "github-actions[bot]"
57
+ git config user.email "github-actions[bot]@users.noreply.github.com"
58
+ git tag -a "${{ steps.version.outputs.tag }}" -m "Release ${{ steps.version.outputs.tag }}"
59
+ git push origin "${{ steps.version.outputs.tag }}"
60
+
61
+ - name: Create GitHub Release
62
+ if: steps.check_tag.outputs.exists == 'false'
63
+ env:
64
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
65
+ run: |
66
+ gh release create "${{ steps.version.outputs.tag }}" \
67
+ --title "${{ steps.version.outputs.tag }}" \
68
+ --generate-notes \
69
+ --latest
70
+
71
+ - name: Verify release
72
+ if: steps.check_tag.outputs.exists == 'false'
73
+ env:
74
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
75
+ run: |
76
+ gh release view "${{ steps.version.outputs.tag }}"
77
+ echo "✅ Release ${{ steps.version.outputs.tag }} created and verified."