swellai 1.0.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 (130) hide show
  1. package/README.md +711 -0
  2. package/dist/agents/linear-agent.d.ts +32 -0
  3. package/dist/agents/linear-agent.d.ts.map +1 -0
  4. package/dist/agents/linear-agent.js +263 -0
  5. package/dist/agents/linear-agent.js.map +1 -0
  6. package/dist/agents/planning-agent.d.ts +36 -0
  7. package/dist/agents/planning-agent.d.ts.map +1 -0
  8. package/dist/agents/planning-agent.js +248 -0
  9. package/dist/agents/planning-agent.js.map +1 -0
  10. package/dist/cli/index.d.ts +3 -0
  11. package/dist/cli/index.d.ts.map +1 -0
  12. package/dist/cli/index.js +102 -0
  13. package/dist/cli/index.js.map +1 -0
  14. package/dist/cli/install.d.ts +11 -0
  15. package/dist/cli/install.d.ts.map +1 -0
  16. package/dist/cli/install.js +257 -0
  17. package/dist/cli/install.js.map +1 -0
  18. package/dist/cli/manifest.d.ts +27 -0
  19. package/dist/cli/manifest.d.ts.map +1 -0
  20. package/dist/cli/manifest.js +65 -0
  21. package/dist/cli/manifest.js.map +1 -0
  22. package/dist/index.d.ts +17 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +17 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/lib/claude-agent-sdk.d.ts +73 -0
  27. package/dist/lib/claude-agent-sdk.d.ts.map +1 -0
  28. package/dist/lib/claude-agent-sdk.js +114 -0
  29. package/dist/lib/claude-agent-sdk.js.map +1 -0
  30. package/dist/lib/conversation-logger.d.ts +66 -0
  31. package/dist/lib/conversation-logger.d.ts.map +1 -0
  32. package/dist/lib/conversation-logger.js +159 -0
  33. package/dist/lib/conversation-logger.js.map +1 -0
  34. package/dist/lib/opencode.d.ts +68 -0
  35. package/dist/lib/opencode.d.ts.map +1 -0
  36. package/dist/lib/opencode.js +151 -0
  37. package/dist/lib/opencode.js.map +1 -0
  38. package/dist/lib/turso-schema.d.ts +13 -0
  39. package/dist/lib/turso-schema.d.ts.map +1 -0
  40. package/dist/lib/turso-schema.js +69 -0
  41. package/dist/lib/turso-schema.js.map +1 -0
  42. package/dist/lib/turso.d.ts +56 -0
  43. package/dist/lib/turso.d.ts.map +1 -0
  44. package/dist/lib/turso.js +144 -0
  45. package/dist/lib/turso.js.map +1 -0
  46. package/dist/lib/types.d.ts +31 -0
  47. package/dist/lib/types.d.ts.map +1 -0
  48. package/dist/lib/types.js +20 -0
  49. package/dist/lib/types.js.map +1 -0
  50. package/dist/lib/utils.d.ts +34 -0
  51. package/dist/lib/utils.d.ts.map +1 -0
  52. package/dist/lib/utils.js +72 -0
  53. package/dist/lib/utils.js.map +1 -0
  54. package/dist/scripts/build-templates.d.ts +17 -0
  55. package/dist/scripts/build-templates.d.ts.map +1 -0
  56. package/dist/scripts/build-templates.js +132 -0
  57. package/dist/scripts/build-templates.js.map +1 -0
  58. package/dist/scripts/claude-agent-runner.d.ts +28 -0
  59. package/dist/scripts/claude-agent-runner.d.ts.map +1 -0
  60. package/dist/scripts/claude-agent-runner.js +278 -0
  61. package/dist/scripts/claude-agent-runner.js.map +1 -0
  62. package/dist/src/agents/linear-agent.d.ts +32 -0
  63. package/dist/src/agents/linear-agent.d.ts.map +1 -0
  64. package/dist/src/agents/linear-agent.js +285 -0
  65. package/dist/src/agents/linear-agent.js.map +1 -0
  66. package/dist/src/agents/planning-agent.d.ts +36 -0
  67. package/dist/src/agents/planning-agent.d.ts.map +1 -0
  68. package/dist/src/agents/planning-agent.js +248 -0
  69. package/dist/src/agents/planning-agent.js.map +1 -0
  70. package/dist/src/cli/index.d.ts +3 -0
  71. package/dist/src/cli/index.d.ts.map +1 -0
  72. package/dist/src/cli/index.js +102 -0
  73. package/dist/src/cli/index.js.map +1 -0
  74. package/dist/src/cli/install.d.ts +11 -0
  75. package/dist/src/cli/install.d.ts.map +1 -0
  76. package/dist/src/cli/install.js +257 -0
  77. package/dist/src/cli/install.js.map +1 -0
  78. package/dist/src/cli/manifest.d.ts +27 -0
  79. package/dist/src/cli/manifest.d.ts.map +1 -0
  80. package/dist/src/cli/manifest.js +65 -0
  81. package/dist/src/cli/manifest.js.map +1 -0
  82. package/dist/src/index.d.ts +17 -0
  83. package/dist/src/index.d.ts.map +1 -0
  84. package/dist/src/index.js +17 -0
  85. package/dist/src/index.js.map +1 -0
  86. package/dist/src/lib/claude-agent-sdk.d.ts +73 -0
  87. package/dist/src/lib/claude-agent-sdk.d.ts.map +1 -0
  88. package/dist/src/lib/claude-agent-sdk.js +114 -0
  89. package/dist/src/lib/claude-agent-sdk.js.map +1 -0
  90. package/dist/src/lib/conversation-logger.d.ts +66 -0
  91. package/dist/src/lib/conversation-logger.d.ts.map +1 -0
  92. package/dist/src/lib/conversation-logger.js +159 -0
  93. package/dist/src/lib/conversation-logger.js.map +1 -0
  94. package/dist/src/lib/opencode.d.ts +153 -0
  95. package/dist/src/lib/opencode.d.ts.map +1 -0
  96. package/dist/src/lib/opencode.js +153 -0
  97. package/dist/src/lib/opencode.js.map +1 -0
  98. package/dist/src/lib/turso-schema.d.ts +13 -0
  99. package/dist/src/lib/turso-schema.d.ts.map +1 -0
  100. package/dist/src/lib/turso-schema.js +69 -0
  101. package/dist/src/lib/turso-schema.js.map +1 -0
  102. package/dist/src/lib/turso.d.ts +56 -0
  103. package/dist/src/lib/turso.d.ts.map +1 -0
  104. package/dist/src/lib/turso.js +144 -0
  105. package/dist/src/lib/turso.js.map +1 -0
  106. package/dist/src/lib/types.d.ts +31 -0
  107. package/dist/src/lib/types.d.ts.map +1 -0
  108. package/dist/src/lib/types.js +20 -0
  109. package/dist/src/lib/types.js.map +1 -0
  110. package/dist/src/lib/utils.d.ts +34 -0
  111. package/dist/src/lib/utils.d.ts.map +1 -0
  112. package/dist/src/lib/utils.js +72 -0
  113. package/dist/src/lib/utils.js.map +1 -0
  114. package/package.json +63 -0
  115. package/templates/.env.example +51 -0
  116. package/templates/agents/codebase-analyzer.md +121 -0
  117. package/templates/agents/codebase-locator.md +105 -0
  118. package/templates/agents/coding-agent.md +187 -0
  119. package/templates/agents/debug-agent.md +300 -0
  120. package/templates/prompts/consolidate-and-create-linear.md +282 -0
  121. package/templates/prompts/implementation.md +94 -0
  122. package/templates/prompts/plan-generation.md +171 -0
  123. package/templates/prompts/review.md +39 -0
  124. package/templates/prompts/verify.md +80 -0
  125. package/templates/scripts/claude-agent-runner.js +12887 -0
  126. package/templates/scripts/detect-runtime.sh +95 -0
  127. package/templates/scripts/linear-agent.js +1753 -0
  128. package/templates/scripts/planning-agent.js +1738 -0
  129. package/templates/workflows/claude-implement.yml +931 -0
  130. package/templates/workflows/claude-plan.yml +301 -0
@@ -0,0 +1,301 @@
1
+ name: Claude Plan - Multi-Provider Implementation Planning
2
+
3
+ on:
4
+ issues:
5
+ types: [opened, labeled]
6
+ workflow_dispatch:
7
+ inputs:
8
+ issue_number:
9
+ description: 'Issue number to generate plan for'
10
+ required: true
11
+ type: number
12
+ linear_project_id:
13
+ description: 'Linear project ID to add issues to (optional)'
14
+ required: false
15
+ type: string
16
+ run_anthropic:
17
+ description: 'Run Anthropic Claude provider'
18
+ required: false
19
+ type: boolean
20
+ default: true
21
+ run_openai:
22
+ description: 'Run OpenAI GPT provider'
23
+ required: false
24
+ type: boolean
25
+ default: true
26
+ run_google:
27
+ description: 'Run Google Gemini provider'
28
+ required: false
29
+ type: boolean
30
+ default: true
31
+ anthropic_model:
32
+ description: 'Anthropic model to use'
33
+ required: false
34
+ type: string
35
+ default: 'claude-opus-4-5'
36
+ openai_model:
37
+ description: 'OpenAI model to use'
38
+ required: false
39
+ type: string
40
+ default: 'gpt-5.2-pro'
41
+ google_model:
42
+ description: 'Google model to use'
43
+ required: false
44
+ type: string
45
+ default: 'gemini-2.5-pro'
46
+
47
+ jobs:
48
+ # Get issue details once and share with all jobs
49
+ get-issue:
50
+ if: |
51
+ github.event_name == 'workflow_dispatch' ||
52
+ (github.event_name == 'issues' && contains(github.event.issue.labels.*.name, 'claude-plan'))
53
+ runs-on: ubuntu-latest
54
+ outputs:
55
+ number: ${{ steps.issue.outputs.number }}
56
+ title: ${{ steps.issue.outputs.title }}
57
+ body: ${{ steps.body.outputs.content }}
58
+ steps:
59
+ - name: Checkout repository
60
+ uses: actions/checkout@v4
61
+
62
+ - name: Get issue details
63
+ id: issue
64
+ env:
65
+ GH_TOKEN: ${{ secrets.GH_PAT }}
66
+ run: |
67
+ # Determine issue number based on event type
68
+ if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
69
+ ISSUE_NUMBER="${{ inputs.issue_number }}"
70
+ else
71
+ ISSUE_NUMBER="${{ github.event.issue.number }}"
72
+ fi
73
+
74
+ # Validate issue number is provided
75
+ if [ -z "$ISSUE_NUMBER" ]; then
76
+ echo "Error: Issue number is required"
77
+ exit 1
78
+ fi
79
+
80
+ # Fetch issue details from GitHub
81
+ ISSUE_JSON=$(gh issue view "$ISSUE_NUMBER" --json title,body)
82
+
83
+ # Output issue number and title
84
+ echo "number=$ISSUE_NUMBER" >> $GITHUB_OUTPUT
85
+ echo "title=$(echo "$ISSUE_JSON" | jq -r '.title')" >> $GITHUB_OUTPUT
86
+
87
+ # Write body to file to handle multiline content
88
+ echo "$ISSUE_JSON" | jq -r '.body // ""' > /tmp/issue_body.txt
89
+ echo "body_file=/tmp/issue_body.txt" >> $GITHUB_OUTPUT
90
+
91
+ - name: Read issue body
92
+ id: body
93
+ run: |
94
+ BODY=$(cat ${{ steps.issue.outputs.body_file }})
95
+ # Use multiline output format for GitHub Actions
96
+ echo "content<<EOF" >> $GITHUB_OUTPUT
97
+ echo "$BODY" >> $GITHUB_OUTPUT
98
+ echo "EOF" >> $GITHUB_OUTPUT
99
+
100
+ # Generate plan from Anthropic Claude
101
+ generate-plan-anthropic:
102
+ needs: get-issue
103
+ if: github.event_name == 'issues' || inputs.run_anthropic
104
+ runs-on: ubuntu-latest
105
+ outputs:
106
+ plan: ${{ steps.generate.outputs.plan }}
107
+ success: ${{ steps.generate.outputs.success }}
108
+ steps:
109
+ - name: Checkout repository
110
+ uses: actions/checkout@v4
111
+
112
+ - name: Setup Bun
113
+ uses: oven-sh/setup-bun@v1
114
+ with:
115
+ bun-version: latest
116
+
117
+ - name: Install OpenCode CLI
118
+ run: |
119
+ echo "Installing OpenCode CLI..."
120
+ bun install -g opencode-ai@latest
121
+ echo "OpenCode CLI installed: $(opencode --version || echo 'version check not supported')"
122
+
123
+ - name: Install dependencies
124
+ run: bun install
125
+
126
+ - name: Generate plan
127
+ id: generate
128
+ env:
129
+ PROVIDER: anthropic
130
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
131
+ MODEL: ${{ github.event_name == 'workflow_dispatch' && inputs.anthropic_model || 'claude-opus-4-5' }}
132
+ ISSUE_TITLE: ${{ needs.get-issue.outputs.title }}
133
+ ISSUE_BODY: ${{ needs.get-issue.outputs.body }}
134
+ run: |
135
+ # Generate plan using the bundled script from installed location
136
+ set +e
137
+ PLAN=$(node .github/claude-parallel/scripts/planning-agent.js "$ISSUE_TITLE: $ISSUE_BODY")
138
+ EXIT_CODE=$?
139
+ set -e
140
+
141
+ # Check if generation was successful
142
+ if [ $EXIT_CODE -ne 0 ]; then
143
+ echo "Error: Plan generation failed with exit code $EXIT_CODE"
144
+ exit $EXIT_CODE
145
+ fi
146
+
147
+ # Use multiline output format
148
+ echo "plan<<EOF" >> $GITHUB_OUTPUT
149
+ echo "$PLAN" >> $GITHUB_OUTPUT
150
+ echo "EOF" >> $GITHUB_OUTPUT
151
+ echo "success=true" >> $GITHUB_OUTPUT
152
+
153
+ # Generate plan from OpenAI GPT
154
+ generate-plan-openai:
155
+ needs: get-issue
156
+ if: github.event_name == 'issues' || inputs.run_openai
157
+ runs-on: ubuntu-latest
158
+ outputs:
159
+ plan: ${{ steps.generate.outputs.plan }}
160
+ success: ${{ steps.generate.outputs.success }}
161
+ steps:
162
+ - name: Checkout repository
163
+ uses: actions/checkout@v4
164
+
165
+ - name: Setup Bun
166
+ uses: oven-sh/setup-bun@v1
167
+ with:
168
+ bun-version: latest
169
+
170
+ - name: Install OpenCode CLI
171
+ run: |
172
+ echo "Installing OpenCode CLI..."
173
+ bun install -g opencode-ai@latest
174
+ echo "OpenCode CLI installed: $(opencode --version || echo 'version check not supported')"
175
+
176
+ - name: Install dependencies
177
+ run: bun install
178
+
179
+ - name: Generate plan
180
+ id: generate
181
+ env:
182
+ PROVIDER: openai
183
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
184
+ MODEL: ${{ github.event_name == 'workflow_dispatch' && inputs.openai_model || 'gpt-5.2-pro' }}
185
+ ISSUE_TITLE: ${{ needs.get-issue.outputs.title }}
186
+ ISSUE_BODY: ${{ needs.get-issue.outputs.body }}
187
+ run: |
188
+ # Generate plan using the bundled script from installed location
189
+ set +e
190
+ PLAN=$(node .github/claude-parallel/scripts/planning-agent.js "$ISSUE_TITLE: $ISSUE_BODY")
191
+ EXIT_CODE=$?
192
+ set -e
193
+
194
+ # Check if generation was successful
195
+ if [ $EXIT_CODE -ne 0 ]; then
196
+ echo "Error: Plan generation failed with exit code $EXIT_CODE"
197
+ exit $EXIT_CODE
198
+ fi
199
+
200
+ # Use multiline output format
201
+ echo "plan<<EOF" >> $GITHUB_OUTPUT
202
+ echo "$PLAN" >> $GITHUB_OUTPUT
203
+ echo "EOF" >> $GITHUB_OUTPUT
204
+ echo "success=true" >> $GITHUB_OUTPUT
205
+
206
+ # Generate plan from Google Gemini
207
+ generate-plan-google:
208
+ needs: get-issue
209
+ if: github.event_name == 'issues' || inputs.run_google
210
+ runs-on: ubuntu-latest
211
+ outputs:
212
+ plan: ${{ steps.generate.outputs.plan }}
213
+ success: ${{ steps.generate.outputs.success }}
214
+ steps:
215
+ - name: Checkout repository
216
+ uses: actions/checkout@v4
217
+
218
+ - name: Setup Bun
219
+ uses: oven-sh/setup-bun@v1
220
+ with:
221
+ bun-version: latest
222
+
223
+ - name: Install OpenCode CLI
224
+ run: |
225
+ echo "Installing OpenCode CLI..."
226
+ bun install -g opencode-ai@latest
227
+ echo "OpenCode CLI installed: $(opencode --version || echo 'version check not supported')"
228
+
229
+ - name: Install dependencies
230
+ run: bun install
231
+
232
+ - name: Generate plan
233
+ id: generate
234
+ env:
235
+ PROVIDER: google
236
+ GOOGLE_GENERATIVE_AI_API_KEY: ${{ secrets.GOOGLE_GENERATIVE_AI_API_KEY }}
237
+ MODEL: ${{ github.event_name == 'workflow_dispatch' && inputs.google_model || 'gemini-2.5-pro' }}
238
+ ISSUE_TITLE: ${{ needs.get-issue.outputs.title }}
239
+ ISSUE_BODY: ${{ needs.get-issue.outputs.body }}
240
+ run: |
241
+ # Generate plan using the bundled script from installed location
242
+ set +e
243
+ PLAN=$(node .github/claude-parallel/scripts/planning-agent.js "$ISSUE_TITLE: $ISSUE_BODY")
244
+ EXIT_CODE=$?
245
+ set -e
246
+
247
+ # Check if generation was successful
248
+ if [ $EXIT_CODE -ne 0 ]; then
249
+ echo "Error: Plan generation failed with exit code $EXIT_CODE"
250
+ exit $EXIT_CODE
251
+ fi
252
+
253
+ # Use multiline output format
254
+ echo "plan<<EOF" >> $GITHUB_OUTPUT
255
+ echo "$PLAN" >> $GITHUB_OUTPUT
256
+ echo "EOF" >> $GITHUB_OUTPUT
257
+ echo "success=true" >> $GITHUB_OUTPUT
258
+
259
+ # Consolidate all plans and create Linear issues
260
+ consolidate-and-create-linear:
261
+ needs: [get-issue, generate-plan-anthropic, generate-plan-openai, generate-plan-google]
262
+ if: |
263
+ always() &&
264
+ (needs.generate-plan-anthropic.result == 'success' ||
265
+ needs.generate-plan-openai.result == 'success' ||
266
+ needs.generate-plan-google.result == 'success')
267
+ runs-on: ubuntu-latest
268
+ steps:
269
+ - name: Checkout repository
270
+ uses: actions/checkout@v4
271
+
272
+ - name: Setup Bun
273
+ uses: oven-sh/setup-bun@v1
274
+ with:
275
+ bun-version: latest
276
+
277
+ - name: Install OpenCode CLI
278
+ run: |
279
+ echo "Installing OpenCode CLI..."
280
+ bun install -g opencode-ai@latest
281
+ echo "OpenCode CLI installed: $(opencode --version || echo 'version check not supported')"
282
+
283
+ - name: Install dependencies
284
+ run: bun install
285
+
286
+ - name: Consolidate plans and create Linear issues
287
+ id: consolidate
288
+ env:
289
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
290
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
291
+ LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }}
292
+ LINEAR_TEAM_ID: ${{ secrets.LINEAR_TEAM_ID }}
293
+ LINEAR_PROJECT_ID: ${{ github.event_name == 'workflow_dispatch' && inputs.linear_project_id || secrets.LINEAR_PROJECT_ID }}
294
+ GITHUB_ISSUE_URL: ${{ github.event.repository.html_url }}/issues/${{ needs.get-issue.outputs.number }}
295
+ ISSUE_TITLE: ${{ needs.get-issue.outputs.title }}
296
+ ANTHROPIC_PLAN: ${{ needs.generate-plan-anthropic.result == 'success' && needs.generate-plan-anthropic.outputs.plan || '' }}
297
+ OPENAI_PLAN: ${{ needs.generate-plan-openai.result == 'success' && needs.generate-plan-openai.outputs.plan || '' }}
298
+ GOOGLE_PLAN: ${{ needs.generate-plan-google.result == 'success' && needs.generate-plan-google.outputs.plan || '' }}
299
+ run: |
300
+ # Run linear agent using the bundled script from installed location
301
+ node .github/claude-parallel/scripts/linear-agent.js