@sylphx/flow 3.22.0 → 3.24.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/CHANGELOG.md +12 -0
- package/assets/agents/builder.md +19 -6
- package/package.json +1 -1
- package/src/commands/flow/execute-v2.ts +1 -0
- package/src/commands/flow/types.ts +1 -0
- package/src/commands/flow-command.ts +1 -0
- package/src/index.ts +1 -0
- package/src/targets/claude-code.ts +13 -1
- package/src/types/cli.types.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @sylphx/flow
|
|
2
2
|
|
|
3
|
+
## 3.24.0 (2026-02-15)
|
|
4
|
+
|
|
5
|
+
### ✨ Features
|
|
6
|
+
|
|
7
|
+
- **agent:** replace Drizzle migrations with Atlas in builder prompt ([e3b7367](https://github.com/SylphxAI/flow/commit/e3b7367c10860e3f8d8c7bf9ec2d5682a75df73a))
|
|
8
|
+
|
|
9
|
+
## 3.23.0 (2026-02-14)
|
|
10
|
+
|
|
11
|
+
### ✨ Features
|
|
12
|
+
|
|
13
|
+
- **flow:** add --resume flag to resume Claude Code sessions ([17e4189](https://github.com/SylphxAI/flow/commit/17e41893275c7fff8f43f63d2353294bfc333c6f))
|
|
14
|
+
|
|
3
15
|
## 3.22.0 (2026-02-09)
|
|
4
16
|
|
|
5
17
|
Add fal.ai MCP server for generative AI models (image, video, audio)
|
package/assets/agents/builder.md
CHANGED
|
@@ -74,7 +74,7 @@ State-of-the-art industrial standard. Every time. Would you stake your reputatio
|
|
|
74
74
|
|
|
75
75
|
**Tooling:** Biome (lint/format), Bunup (build), Bun test
|
|
76
76
|
|
|
77
|
-
**CLI:** Vercel CLI, Neon CLI, Modal CLI, GitHub CLI — use directly, install if missing, never ask user to run manually
|
|
77
|
+
**CLI:** Vercel CLI, Neon CLI, Atlas CLI, Modal CLI, GitHub CLI — use directly, install if missing, never ask user to run manually
|
|
78
78
|
|
|
79
79
|
## Execution
|
|
80
80
|
|
|
@@ -185,17 +185,30 @@ Errors should be:
|
|
|
185
185
|
- E2E tests for critical user flows
|
|
186
186
|
- Test the behavior, not the implementation
|
|
187
187
|
|
|
188
|
-
## Database (
|
|
188
|
+
## Database (Atlas)
|
|
189
189
|
|
|
190
|
-
**
|
|
190
|
+
**Schema management via Atlas.** Drizzle ORM is for queries only — never use `drizzle-kit` for migrations.
|
|
191
191
|
|
|
192
|
-
|
|
192
|
+
**Source of truth = `schema.sql`** (or `.hcl`) in the repo. Atlas diffs it against the live database and generates migrations.
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
# Generate migration from schema changes
|
|
196
|
+
atlas migrate diff --env local
|
|
197
|
+
|
|
198
|
+
# Apply pending migrations
|
|
199
|
+
atlas migrate apply --env local
|
|
200
|
+
|
|
201
|
+
# Lint migrations for safety (destructive changes, locks)
|
|
202
|
+
atlas migrate lint --env local --latest 1
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
**`atlas.hcl` config** defines environments (local, staging, prod) with connection strings and migration directory.
|
|
193
206
|
|
|
194
207
|
**Build-time verification:**
|
|
195
208
|
```bash
|
|
196
|
-
|
|
209
|
+
atlas migrate lint --env ci --latest 1
|
|
197
210
|
```
|
|
198
|
-
If
|
|
211
|
+
If lint fails (data loss, long locks), block the deploy.
|
|
199
212
|
|
|
200
213
|
## Hono RPC
|
|
201
214
|
|
package/package.json
CHANGED
|
@@ -27,6 +27,7 @@ export const flowCommand = new Command('flow')
|
|
|
27
27
|
.option('--dry-run', 'Show what would be done without making changes')
|
|
28
28
|
.option('-p, --print', 'Headless print mode (output only, no interactive)')
|
|
29
29
|
.option('-c, --continue', 'Continue previous conversation (requires print mode)')
|
|
30
|
+
.option('-r, --resume [session-id]', 'Resume a previous Claude Code session')
|
|
30
31
|
.option('--merge', 'Merge Flow settings with existing settings (default: replace all)')
|
|
31
32
|
|
|
32
33
|
// Prompt argument
|
package/src/index.ts
CHANGED
|
@@ -58,6 +58,7 @@ export function createCLI(): Command {
|
|
|
58
58
|
.option('--dry-run', 'Show what would be done without making changes')
|
|
59
59
|
.option('-p, --print', 'Headless print mode (output only, no interactive)')
|
|
60
60
|
.option('-c, --continue', 'Continue previous conversation (requires print mode)')
|
|
61
|
+
.option('-r, --resume [session-id]', 'Resume a previous Claude Code session')
|
|
61
62
|
.option('--merge', 'Merge Flow settings with existing settings (default: replace all)')
|
|
62
63
|
|
|
63
64
|
.action(async (prompt, options) => {
|
|
@@ -199,7 +199,7 @@ export const claudeCodeTarget: Target = {
|
|
|
199
199
|
async executeCommand(
|
|
200
200
|
systemPrompt: string,
|
|
201
201
|
userPrompt: string,
|
|
202
|
-
options: { verbose?: boolean; dryRun?: boolean; print?: boolean; continue?: boolean } = {}
|
|
202
|
+
options: { verbose?: boolean; dryRun?: boolean; print?: boolean; continue?: boolean; resume?: string | boolean } = {}
|
|
203
203
|
): Promise<void> {
|
|
204
204
|
// Sanitize and validate inputs
|
|
205
205
|
const sanitizedSystemPrompt = sanitize.yamlContent(systemPrompt);
|
|
@@ -220,6 +220,12 @@ Please begin your response with a comprehensive summary of all the instructions
|
|
|
220
220
|
if (options.continue) {
|
|
221
221
|
dryRunArgs.push('-c');
|
|
222
222
|
}
|
|
223
|
+
if (options.resume) {
|
|
224
|
+
dryRunArgs.push('--resume');
|
|
225
|
+
if (typeof options.resume === 'string') {
|
|
226
|
+
dryRunArgs.push(options.resume);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
223
229
|
dryRunArgs.push('--system-prompt', '"<agent content>"');
|
|
224
230
|
if (sanitizedUserPrompt.trim() !== '') {
|
|
225
231
|
dryRunArgs.push(`"${sanitizedUserPrompt}"`);
|
|
@@ -247,6 +253,12 @@ Please begin your response with a comprehensive summary of all the instructions
|
|
|
247
253
|
if (options.continue) {
|
|
248
254
|
args.push('-c');
|
|
249
255
|
}
|
|
256
|
+
if (options.resume) {
|
|
257
|
+
args.push('--resume');
|
|
258
|
+
if (typeof options.resume === 'string') {
|
|
259
|
+
args.push(options.resume);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
250
262
|
|
|
251
263
|
args.push('--system-prompt', enhancedSystemPrompt);
|
|
252
264
|
if (options.verbose) {
|