@flowapt/flowiq-cli 0.1.8 → 0.1.9
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
CHANGED
|
@@ -283,6 +283,11 @@ flowiq agent config <org> --agent <agent_id> --model gpt-5.4-mini
|
|
|
283
283
|
`pull` records the agent id in the JSON, so `push` always writes back to the exact
|
|
284
284
|
agent you pulled from (never "whatever is active now").
|
|
285
285
|
|
|
286
|
+
**Filenames:** the active agent saves to `<org-slug>.json`; a non-active agent
|
|
287
|
+
(pulled with `--agent`) saves to `<org-slug>-<agent-slug>.json`. So pulling
|
|
288
|
+
multiple agents from one org produces distinct files that don't overwrite each
|
|
289
|
+
other. (Fixed in 0.1.9 — before that, both used `<org-slug>.json`.)
|
|
290
|
+
|
|
286
291
|
### Agent config — `flowiq agent config <organization_id> [flags]`
|
|
287
292
|
|
|
288
293
|
Set an allowlisted set of the active agent's config fields (the prompt-builder
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flowapt/flowiq-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -67,7 +67,12 @@ export async function pull(orgId, opts = {}) {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
await fs.mkdir(FT_DIR, { recursive: true });
|
|
70
|
-
|
|
70
|
+
// Non-active agents get an agent-suffixed filename so pulling multiple agents
|
|
71
|
+
// from the same org doesn't clobber each other's working copy.
|
|
72
|
+
const orgSlug = slugify(resp.organization_name, resp.organization_id);
|
|
73
|
+
const slug = resp.is_active === false
|
|
74
|
+
? `${orgSlug}-${slugify(resp.agent_name, resp.agent_id.slice(0, 8))}`
|
|
75
|
+
: orgSlug;
|
|
71
76
|
const filePath = path.join(FT_DIR, `${slug}.json`);
|
|
72
77
|
const overwriting = await fileExists(filePath);
|
|
73
78
|
await fs.writeFile(filePath, JSON.stringify(resp, null, 2) + "\n", "utf8");
|
package/src/commands/prompts.js
CHANGED
|
@@ -54,7 +54,13 @@ export async function pull(orgId, opts = {}) {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
await fs.mkdir(PROMPTS_DIR, { recursive: true });
|
|
57
|
-
|
|
57
|
+
// Non-active agents get an agent-suffixed filename so pulling multiple agents
|
|
58
|
+
// from the same org doesn't clobber each other's working copy. The active
|
|
59
|
+
// agent keeps the plain <org>.json name (backwards-compatible).
|
|
60
|
+
const orgSlug = slugify(resp.organization_name, resp.organization_id);
|
|
61
|
+
const slug = resp.is_active === false
|
|
62
|
+
? `${orgSlug}-${slugify(resp.agent_name, resp.agent_id.slice(0, 8))}`
|
|
63
|
+
: orgSlug;
|
|
58
64
|
const filePath = path.join(PROMPTS_DIR, `${slug}.json`);
|
|
59
65
|
const overwriting = await fileExists(filePath);
|
|
60
66
|
await fs.writeFile(filePath, JSON.stringify(resp, null, 2) + "\n", "utf8");
|
|
@@ -67,7 +67,12 @@ export async function pull(orgId, opts = {}) {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
await fs.mkdir(QS_DIR, { recursive: true });
|
|
70
|
-
|
|
70
|
+
// Non-active agents get an agent-suffixed filename so pulling multiple agents
|
|
71
|
+
// from the same org doesn't clobber each other's working copy.
|
|
72
|
+
const orgSlug = slugify(resp.organization_name, resp.organization_id);
|
|
73
|
+
const slug = resp.is_active === false
|
|
74
|
+
? `${orgSlug}-${slugify(resp.agent_name, resp.agent_id.slice(0, 8))}`
|
|
75
|
+
: orgSlug;
|
|
71
76
|
const filePath = path.join(QS_DIR, `${slug}.json`);
|
|
72
77
|
const overwriting = await fileExists(filePath);
|
|
73
78
|
await fs.writeFile(filePath, JSON.stringify(resp, null, 2) + "\n", "utf8");
|