@pixelml/agenticflow-cli 1.7.0 → 1.10.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.
@@ -98,24 +98,82 @@ export function blueprintToWorkforce(blueprint, options = {}) {
98
98
  * `project_id` is REQUIRED — caller supplies from `af bootstrap > auth.project_id`.
99
99
  */
100
100
  export function blueprintToAgentSpecs(blueprint, options) {
101
- const model = options.model ?? "agenticflow/gemini-2.0-flash";
101
+ // Default model choice for Tier 3: gpt-4o-mini matches Tier 1 (PDCA
102
+ // 2026-04-14 — gemini-2.0-flash refuses tool calls on "latest X" prompts,
103
+ // gpt-4o-mini routes to tools correctly even on 6+ plugin configs).
104
+ const model = options.model ?? "agenticflow/gpt-4o-mini";
102
105
  const slots = options.includeOptionalSlots
103
106
  ? blueprint.agents
104
107
  : blueprint.agents.filter((s) => !s.optional);
105
- return slots.map((slot) => ({
106
- slotKey: slot.role,
107
- slot,
108
- body: {
108
+ return slots.map((slot) => {
109
+ // If the slot declares plugins (v1.8+ Tier 3 blueprints), translate them
110
+ // to the same AgentPluginToolConfig shape Tier 1 uses. For slots without
111
+ // plugins (legacy blueprints like dev-shop, marketing-agency) the agent
112
+ // is created blank-tools and users attach tools via `af agent update`.
113
+ const plugins = (slot.plugins ?? []).map((spec) => {
114
+ let connection = null;
115
+ if (spec.connectionCategory === "pixelml") {
116
+ throw new Error(`Tier 3 blueprint slot "${slot.role}" needs pixelml connection for plugin "${spec.nodeTypeName}" — not yet supported. Use only connection=None plugins (web_search, web_retrieval, api_call, agenticflow_generate_image, string_to_json).`);
117
+ }
118
+ const inputConfig = spec.input
119
+ ? Object.fromEntries(Object.entries(spec.input).map(([k, v]) => [
120
+ k,
121
+ { value: v.value, description: v.description ?? null },
122
+ ]))
123
+ : null;
124
+ return {
125
+ plugin_id: spec.nodeTypeName,
126
+ plugin_version: "v1.0.0",
127
+ run_behavior: "auto_run",
128
+ connection,
129
+ input_config: inputConfig,
130
+ };
131
+ });
132
+ const body = {
109
133
  name: `${options.workforceName} — ${slot.title}`,
110
134
  project_id: options.projectId,
111
135
  tools: [],
112
136
  model,
113
137
  description: `${slot.role} for "${blueprint.name}" workforce`,
114
138
  system_prompt: buildSystemPrompt(blueprint, slot),
115
- },
116
- }));
139
+ };
140
+ if (plugins.length > 0)
141
+ body["plugins"] = plugins;
142
+ return { slotKey: slot.role, slot, body };
143
+ });
117
144
  }
118
145
  function buildSystemPrompt(blueprint, slot) {
146
+ const plugins = slot.plugins ?? [];
147
+ const hasWebSearch = plugins.some((p) => p.nodeTypeName === "web_search");
148
+ const hasWebRetrieval = plugins.some((p) => p.nodeTypeName === "web_retrieval");
149
+ const hasApiCall = plugins.some((p) => p.nodeTypeName === "api_call");
150
+ const hasImageGen = plugins.some((p) => p.nodeTypeName === "agenticflow_generate_image");
151
+ // PDCA round 3 (2026-04-14): Researcher B slot fired NO tool calls despite
152
+ // having web_search and web_retrieval attached — its system prompt wasn't
153
+ // explicit enough that "research" means "call the tool". Fix: when a slot
154
+ // has web_search, make tool-calling a hard REQUIREMENT at the top of the
155
+ // prompt, not just a recommendation in a later block.
156
+ const toolBlock = plugins.length
157
+ ? [
158
+ ``,
159
+ `MANDATORY TOOL USE — your slot has plugins attached. You MUST call at least one before answering, unless the question is trivially timeless (e.g. "what is 2+2"):`,
160
+ ...plugins.map((p) => `- ${p.nodeTypeName}`),
161
+ hasWebSearch
162
+ ? `- For ANY question about current events, recent releases, specific products, people, companies, or dates → call web_search FIRST. Do NOT answer from prior knowledge.`
163
+ : null,
164
+ hasWebRetrieval
165
+ ? `- After web_search, use web_retrieval to pull full content from the most relevant URLs before synthesizing.`
166
+ : null,
167
+ hasApiCall
168
+ ? `- For HTTP-API questions or when given an endpoint, call api_call. Parse the JSON response in your reply.`
169
+ : null,
170
+ hasImageGen
171
+ ? `- For image requests, call agenticflow_generate_image with a SPECIFIC, descriptive prompt (not the user's vague wording).`
172
+ : null,
173
+ `- NEVER say "I cannot provide information that far in the future" or "my knowledge cutoff is..." — your tools are how you get past the cutoff, USE THEM.`,
174
+ `- Cite URLs you actually retrieved. If you have no URL, you haven't done your job yet.`,
175
+ ].filter((l) => l !== null)
176
+ : [];
119
177
  return [
120
178
  `You are the ${slot.title} for "${blueprint.name}".`,
121
179
  ``,
@@ -126,6 +184,7 @@ function buildSystemPrompt(blueprint, slot) {
126
184
  slot.suggestedTemplate
127
185
  ? `REFERENCE: Behave like the AgenticFlow marketplace template "${slot.suggestedTemplate}" for this role.`
128
186
  : null,
187
+ ...toolBlock,
129
188
  ``,
130
189
  `OPERATING RULES:`,
131
190
  `- Stay in your role; do not do work outside ${slot.role} scope.`,
@@ -162,6 +221,15 @@ export function buildAgentWiredGraph(blueprint, specs, agentIdBySlot) {
162
221
  throw new Error(`Missing agent_id for coordinator slot "${coordinatorSpec.slotKey}"`);
163
222
  }
164
223
  const coordinatorNodeName = slotToNodeName(coordinatorSpec.slot);
224
+ // Topology selection. Default = "star" (coordinator → each worker in parallel,
225
+ // output reads coordinator). If any slot is marked isSynthesizer, we use
226
+ // "star-synthesizer" (coordinator → each non-synth worker → synthesizer →
227
+ // output) so fan-out/fan-in patterns like parallel-research actually return
228
+ // the synthesizer's final answer to the user.
229
+ const synthesizerSpec = specs.find((s) => s.slot.isSynthesizer);
230
+ const workerSpecs = specs
231
+ .slice(1)
232
+ .filter((s) => !s.slot.isSynthesizer);
165
233
  const GRID_X = 320;
166
234
  const GRID_Y = 180;
167
235
  const nodes = [
@@ -175,13 +243,23 @@ export function buildAgentWiredGraph(blueprint, specs, agentIdBySlot) {
175
243
  blueprint_name: blueprint.name,
176
244
  blueprint_goal: blueprint.goal,
177
245
  starter_tasks: blueprint.starterTasks,
246
+ topology: synthesizerSpec ? "star-synthesizer" : "star",
178
247
  },
179
248
  },
180
249
  {
181
250
  name: coordinatorNodeName,
182
251
  type: "agent",
183
252
  position: { x: GRID_X, y: GRID_Y },
184
- input: { agent_id: coordinatorId },
253
+ // Coordinator receives the user's trigger payload. The MAS runtime
254
+ // substitutes {{trigger.message}} with trigger_data.message at run time.
255
+ // Without this, the agent gets message:null and the model API throws
256
+ // `TypeError: expected string or buffer`. Discovered 2026-04-14 via
257
+ // public-endpoint runtime test (CLI v1.7.0 → v1.7.1 hotfix).
258
+ input: {
259
+ agent_id: coordinatorId,
260
+ message: "{{trigger.message}}",
261
+ thread_option: "create_new",
262
+ },
185
263
  meta: {
186
264
  role: coordinatorSpec.slot.role,
187
265
  title: coordinatorSpec.slot.title,
@@ -189,8 +267,8 @@ export function buildAgentWiredGraph(blueprint, specs, agentIdBySlot) {
189
267
  },
190
268
  },
191
269
  ];
192
- // Worker agent nodes, laid out to the right of the coordinator, stacked vertically
193
- specs.slice(1).forEach((spec, i) => {
270
+ // Worker agent nodes each receives the coordinator's last message.
271
+ workerSpecs.forEach((spec, i) => {
194
272
  const nodeName = slotToNodeName(spec.slot);
195
273
  const agentId = agentIdBySlot[spec.slotKey];
196
274
  if (!agentId) {
@@ -200,31 +278,95 @@ export function buildAgentWiredGraph(blueprint, specs, agentIdBySlot) {
200
278
  name: nodeName,
201
279
  type: "agent",
202
280
  position: { x: GRID_X * 2, y: i * GRID_Y },
203
- input: { agent_id: agentId },
281
+ input: {
282
+ agent_id: agentId,
283
+ message: `{{nodes.${coordinatorNodeName}.output.last_message}}`,
284
+ thread_option: "create_new",
285
+ },
204
286
  meta: { role: spec.slot.role, title: spec.slot.title },
205
287
  });
206
288
  });
207
- // Output node listens on the coordinator's result
208
- nodes.push({
209
- name: "output",
210
- type: "output",
211
- position: { x: GRID_X * 3, y: GRID_Y },
212
- input: { message: `${blueprint.name} team response` },
213
- });
214
289
  const edges = [
215
290
  // trigger → coordinator
216
291
  { source_node_name: "trigger", target_node_name: coordinatorNodeName, connection_type: "next_step" },
217
- // coordinator → output
218
- { source_node_name: coordinatorNodeName, target_node_name: "output", connection_type: "next_step" },
219
292
  ];
220
293
  // coordinator → each worker agent (fan-out)
221
- for (const spec of specs.slice(1)) {
294
+ for (const spec of workerSpecs) {
222
295
  edges.push({
223
296
  source_node_name: coordinatorNodeName,
224
297
  target_node_name: slotToNodeName(spec.slot),
225
298
  connection_type: "next_step",
226
299
  });
227
300
  }
301
+ if (synthesizerSpec) {
302
+ // Synthesizer topology — workers feed synthesizer; synthesizer feeds output.
303
+ const synthNodeName = slotToNodeName(synthesizerSpec.slot);
304
+ const synthAgentId = agentIdBySlot[synthesizerSpec.slotKey];
305
+ if (!synthAgentId) {
306
+ throw new Error(`Missing agent_id for synthesizer slot "${synthesizerSpec.slotKey}"`);
307
+ }
308
+ // Aggregate all worker outputs into the synthesizer's message input,
309
+ // with a labeled separator per worker so the synthesizer knows which
310
+ // report came from whom.
311
+ const aggregatedMessage = workerSpecs
312
+ .map((s) => `[${s.slot.title}]\n{{nodes.${slotToNodeName(s.slot)}.output.last_message}}`)
313
+ .join("\n\n---\n\n");
314
+ nodes.push({
315
+ name: synthNodeName,
316
+ type: "agent",
317
+ position: { x: GRID_X * 3, y: GRID_Y },
318
+ input: {
319
+ agent_id: synthAgentId,
320
+ message: aggregatedMessage || "{{trigger.message}}",
321
+ thread_option: "create_new",
322
+ },
323
+ meta: {
324
+ role: synthesizerSpec.slot.role,
325
+ title: synthesizerSpec.slot.title,
326
+ is_synthesizer: true,
327
+ },
328
+ });
329
+ // Each worker → synthesizer (fan-in)
330
+ for (const spec of workerSpecs) {
331
+ edges.push({
332
+ source_node_name: slotToNodeName(spec.slot),
333
+ target_node_name: synthNodeName,
334
+ connection_type: "next_step",
335
+ });
336
+ }
337
+ // Output reads synthesizer's final answer
338
+ nodes.push({
339
+ name: "output",
340
+ type: "output",
341
+ position: { x: GRID_X * 4, y: GRID_Y },
342
+ input: {
343
+ message: `{{nodes.${synthNodeName}.output.last_message}}`,
344
+ },
345
+ });
346
+ edges.push({
347
+ source_node_name: synthNodeName,
348
+ target_node_name: "output",
349
+ connection_type: "next_step",
350
+ });
351
+ }
352
+ else {
353
+ // Default (no synthesizer): output reads coordinator. Workers run in
354
+ // parallel but their outputs only show in the full schema, not in the
355
+ // user-facing response.
356
+ nodes.push({
357
+ name: "output",
358
+ type: "output",
359
+ position: { x: GRID_X * 3, y: GRID_Y },
360
+ input: {
361
+ message: `{{nodes.${coordinatorNodeName}.output.last_message}}`,
362
+ },
363
+ });
364
+ edges.push({
365
+ source_node_name: coordinatorNodeName,
366
+ target_node_name: "output",
367
+ connection_type: "next_step",
368
+ });
369
+ }
228
370
  return { nodes, edges };
229
371
  }
230
372
  //# sourceMappingURL=blueprint-to-workforce.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blueprint-to-workforce.js","sourceRoot":"","sources":["../../src/cli/blueprint-to-workforce.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blueprint-to-workforce.js","sourceRoot":"","sources":["../../src/cli/blueprint-to-workforce.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../src/cli/changelog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,eAAO,MAAM,SAAS,EAAE,cAAc,EAgPrC,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,cAAc,CAEnD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE,CAInE"}
1
+ {"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../src/cli/changelog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,eAAO,MAAM,SAAS,EAAE,cAAc,EA8UrC,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,cAAc,CAEnD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE,CAInE"}
@@ -5,6 +5,100 @@
5
5
  * and displayed after upgrade.
6
6
  */
7
7
  export const CHANGELOG = [
8
+ {
9
+ version: "1.10.0",
10
+ date: "2026-04-14",
11
+ highlights: [
12
+ "**Composition ladder** — AgenticFlow's workflow/agent/workforce primitives are now surfaced as a 7-rung complexity ladder. Blueprints span rungs 0-3 + 6. CompanyBlueprint gained `kind` (workflow|agent|workforce) and `complexity` (0-6) fields; `tier` remains for backward compat",
13
+ "**`af workflow init --blueprint <id>`** — new command for rungs 0-2. Deploys deterministic multi-node workflows with auto-discovered LLM-provider connection",
14
+ "4 new workflow blueprints: `llm-hello` (rung 0), `llm-chain` (rung 1), `summarize-url` (rung 2), `api-summary` (rung 2) — all live-verified end-to-end with real data",
15
+ "**Bug fix — `af workforce run` with API-key auth returns a helpful error.** Backend rejects API-key auth on that path (400 `Failed to retrieve user info`); CLI now detects the specific failure and prints a clear 3-step workaround (publish + public SSE run + runs list)",
16
+ "**Regression fix — Tier 3 workforce slot system prompts.** PDCA showed `general` / `researcher` role slots with web_search plugins sometimes didn't call tools. Tool-calling is now MANDATORY at the top of the system prompt for any slot with plugins — fires unconditionally for current-events/post-cutoff questions",
17
+ "`af blueprints list --kind workflow|agent|workforce --complexity 0-6` + `af playbook composition-ladder` — dedicated discovery for the ladder",
18
+ "20 total blueprints now (4 workflow + 3 agent + 13 workforce)",
19
+ "Flag ergonomics (from PDCA): `af blueprints show` (alias for `get`), `af workflow run --body` (alias for `--input`), `af workflow run-status --run-id` (alias for `--workflow-run-id`) — fresh users reach for these variants by analogy; both now work",
20
+ ],
21
+ for_ai: [
22
+ "ROUTING RULE: pick the LOWEST rung that solves the user's problem. Workflow (rung 0-2) for deterministic pipelines. Agent (rung 3) for flexible tool-picking. Workforce (rung 6) only when explicit multi-agent coordination is needed. Anti-pattern: deploying a workforce when one agent suffices",
23
+ "Workflow blueprints need one LLM-provider connection (straico/openai/anthropic/etc.) in the workspace — `af workflow init` auto-discovers. If missing, the error tells the user exactly what connection to create",
24
+ "Agent blueprints (rung 3) don't need any workspace-level connection. They use AgenticFlow-native models via `agenticflow/gpt-4o-mini` directly",
25
+ "Workforce blueprints (rung 6): the 5 batteries-included ones (research-pair, content-duo, api-pipeline, fact-check-loop, parallel-research) have plugins pre-attached to every agent. The 8 vertical teams (dev-shop, etc.) need MCP clients attached post-deploy",
26
+ "If `af workforce run` fails with 'api_key:' in the error, use the printed 3-step workaround (publish + public SSE run). This is a known backend-auth limitation",
27
+ ],
28
+ },
29
+ {
30
+ version: "1.9.0",
31
+ date: "2026-04-14",
32
+ highlights: [
33
+ "5 new built-in-plugin workforce blueprints (`research-pair`, `content-duo`, `api-pipeline`, `fact-check-loop`, `parallel-research`) — each assembles AgenticFlow-native plugins (web_search, web_retrieval, api_call, agenticflow_generate_image, string_to_json) into 2-4 agent patterns. Batteries included: `af workforce init --blueprint <id>` now produces a workforce where every agent has its plugins pre-attached — no post-deploy tool-attachment step",
34
+ "Synthesizer topology: `AgentSlot.isSynthesizer: true` triggers a fan-out → fan-in DAG (coordinator → parallel workers → synthesizer → output). `parallel-research` uses this — users now see the synthesizer's unified answer, not the coordinator's plan. Regression-tested end-to-end",
35
+ "Tier 3 blueprints also default to `agenticflow/gpt-4o-mini` (matching Tier 1) — PDCA confirmed gemini-2.0-flash refuses tool calls on 'latest X' prompts even with explicit system-prompt rules",
36
+ "Deprecated commands (`af pack`, `af paperclip`, `af company`) now HIDDEN from default `af --help` output — reduces first-touch cognitive load. Still work. Unhide with `AF_SHOW_DEPRECATED=1`",
37
+ "New playbook: `af playbook ready-prompts` — 8 copy-paste user prompts for common scenarios. Hand to any AI with `af` access; it discovers + deploys via `bootstrap + blueprints list + marketplace list`",
38
+ "16 total blueprints now: 3 Tier 1 + 13 Tier 3 (5 new batteries-included + 8 legacy vertical teams). `af blueprints list --tier 1|3 --json` filters by tier",
39
+ ],
40
+ for_ai: [
41
+ "If the user asks for a 'parallel research' or 'compare X vs Y' workforce, use `af workforce init --blueprint parallel-research --json`. The topology now routes correctly: coordinator splits the question, 2 researchers work in parallel, a synthesizer merges and feeds the output node",
42
+ "The 5 new blueprints (research-pair, content-duo, api-pipeline, fact-check-loop, parallel-research) have plugins pre-attached to every agent slot — users don't need any follow-up `af agent update --patch` to add tools. Validated via live end-to-end runs",
43
+ "All Tier 3 blueprints default to gpt-4o-mini. Use `--model agenticflow/gemini-2.0-flash` only when you accept that the agents will sometimes refuse 'latest X' questions citing their cutoff",
44
+ "Deprecated commands are still in the CLI but hidden from `--help`. If a user asks 'how do I do X with `af pack`', suggest `af workforce init --blueprint <id>` instead — `af pack` sunset is 2026-10-14",
45
+ ],
46
+ },
47
+ {
48
+ version: "1.8.2",
49
+ date: "2026-04-14",
50
+ highlights: [
51
+ "HOTFIX: `af agent run` now detects silent-empty completion. PDCA round 2 (2026-04-14) showed the backend sometimes returns `{status: \"completed\", response: \"\"}` when the agent exhausts its recursion_limit in a tool loop — a non-interactive caller had no signal anything went wrong. Fix: reclassify as `status: \"completed_empty\"`, add a `warning` field with remediation (inspect thread messages, raise recursion_limit, or refine prompt), and exit non-zero (code 2) so `&&`-chained scripts halt",
52
+ ],
53
+ for_ai: [
54
+ "When `af agent run` returns `status: \"completed_empty\"`, the response text is empty and you MUST NOT treat it as success. The `warning` field names the thread id — fetch with `af agent-threads messages --thread-id <id>` to see where the agent got stuck, then either tighten the prompt or raise the agent's recursion_limit. The exit code is 2 so bash `&&` chains halt automatically",
55
+ "Real successes still return `status: \"completed\"` (no `_empty` suffix). Only treat `completed` as done",
56
+ ],
57
+ },
58
+ {
59
+ version: "1.8.1",
60
+ date: "2026-04-14",
61
+ highlights: [
62
+ "HOTFIX: Tier 1 blueprints now default to `agenticflow/gpt-4o-mini` instead of `agenticflow/gemini-2.0-flash`. PDCA round (2 fresh subagents) showed Gemini 2.0 Flash refuses `web_search` on 'latest X' prompts citing its cutoff — even when the system prompt explicitly forbids cutoff-based refusals. gpt-4o-mini follows the system prompt, calls web_search, returns real post-cutoff URLs + dates. Override via `af agent init --model <other>`",
63
+ "Strengthened the Tier 1 system prompt: per-plugin guidance (web_search routing, query construction, web_retrieval follow-ups, api_call specifics), explicit 'NEVER refuse from knowledge cutoff' rule, and 'call a tool FIRST, then answer' default",
64
+ "New dedicated discovery surface: `af blueprints list [--tier 1|3] [--fields ...]` + `af blueprints get --id <slug>`. Previously blueprints were only discoverable via `agent init --help` text or `bootstrap --json > blueprints[]` — fresh users kept looking for a dedicated catalog command",
65
+ "`af agent get` now accepts `--id <id>` as alias for `--agent-id <id>` (consistency with `marketplace get --id` and `mcp-clients get --id`), and supports `--fields <list>` for response projection",
66
+ ],
67
+ for_ai: [
68
+ "The default model for Tier 1 agent init is now gpt-4o-mini. Pass `--model agenticflow/gemma-4-31b-it` or similar only when you have a specific reason — the default was chosen because it reliably follows the 'call tools first, don't refuse from cutoff' rule",
69
+ "Use `af blueprints list --tier 1 --json` to find Tier 1 blueprints without a backend roundtrip. Prior 'scattered discovery' friction eliminated",
70
+ "Mix-and-match ID flag patterns: `--id` works on agent get, marketplace get, marketplace try, mcp-clients get, blueprints get. `--agent-id` still the canonical on agent-specific commands. When in doubt pass both won't hurt — the CLI prefers --agent-id if both given",
71
+ ],
72
+ },
73
+ {
74
+ version: "1.8.0",
75
+ date: "2026-04-14",
76
+ highlights: [
77
+ "Tier 1 blueprints — 3 new single-agent blueprints (`research-assistant`, `content-creator`, `api-helper`) that deploy via `af agent init --blueprint <id>`. Each creates ONE agent pre-wired with AgenticFlow-native plugins (web_search, web_retrieval, api_call, agenticflow_generate_image, string_to_json). Works in any workspace — no MAS Workforce feature, no external connections. Existing 8 workforce blueprints are tagged `tier: 3`",
78
+ "`af marketplace *` — live backend catalog surfaced. `marketplace list --type agent_template|workflow_template|mas_template` browses /v1/marketplace/items (discovered undocumented endpoint in the live backend), `marketplace get --id <id>` fetches full detail with embedded template snapshot, `marketplace try --id <id>` auto-detects type and clones into your workspace. Complements blueprints (offline, version-locked); does not replace them",
79
+ "`af templates duplicate workforce` — parity with the agent/workflow duplicate flow for MAS templates. Accepts --template-id (marketplace mas item), --template-file, or --workforce-id (latest version of a source workforce). Warns about cross-workspace agent_id references that will 400 on runs",
80
+ "New playbook `marketplace-vs-blueprint` — decision table, command reference, cross-workspace caveats. Plus `af bootstrap --json > blueprints[]` now carries `tier` + `deploy_command` so AI operators pick the right surface without reading descriptions",
81
+ "SDK 1.6.0 adds MarketplaceResource, AgentTemplatesResource, WorkflowTemplatesResource, MasTemplatesResource",
82
+ ],
83
+ for_ai: [
84
+ "Pick the right deploy surface by `blueprint.tier`: tier 1 → `af agent init --blueprint <id>`; tier 3 → `af workforce init --blueprint <id>`. `af bootstrap --json > blueprints[]` returns both fields plus a ready `deploy_command`",
85
+ "When the user wants something the 11 blueprints don't cover, browse the live catalog: `af marketplace list --type <kind> --search <q> --json`. Clone with `af marketplace try --id <item_id> --json` — it auto-detects agent vs workflow vs MAS",
86
+ "MAS template clones (tier 3 marketplace items) reference source-workspace agent_ids. Check the `warnings` field on the try response and duplicate source agents separately, or the workforce will 400 on runs",
87
+ "Tier 1 agent init is ~2 seconds and needs no workspace-ID body injection (regular agent create path). Tier 3 workforce init still needs project_id — same as v1.7",
88
+ ],
89
+ },
90
+ {
91
+ version: "1.7.1",
92
+ date: "2026-04-14",
93
+ highlights: [
94
+ "HOTFIX: workforces created via `af workforce init --blueprint <id>` now actually RUN. Previously, the generated graph deployed successfully and validated with 0 errors but all agent nodes failed at runtime with `TypeError: expected string or buffer` because the trigger payload never reached them — the agent node `input.message` was omitted, defaulting to null",
95
+ "Agent nodes in blueprint-generated graphs now include templated input: coordinator gets `message: \"{{trigger.message}}\"`, workers get `message: \"{{nodes.<coordinator>.output.last_message}}\"`, output returns the coordinator's final response. Verified via the public-endpoint runtime (workforce publish → public run URL)",
96
+ ],
97
+ for_ai: [
98
+ "If you deployed a workforce via `af workforce init` on v1.7.0 and your users reported the run returns only a hardcoded output string, re-deploy on v1.7.1 — the graph structure is the same but the input wiring is now correct",
99
+ "When hand-authoring a workforce graph via `af workforce deploy --body @file`, every agent node needs `input.message` — use `{{trigger.<field>}}` for the first agent and `{{nodes.<upstream>.output.last_message}}` for downstream agents. The MAS runtime substitutes at execution time",
100
+ ],
101
+ },
8
102
  {
9
103
  version: "1.7.0",
10
104
  date: "2026-04-14",
@@ -1 +1 @@
1
- {"version":3,"file":"changelog.js","sourceRoot":"","sources":["../../src/cli/changelog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changelog.js","sourceRoot":"","sources":["../../src/cli/changelog.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,41 @@
1
1
  /**
2
- * Pre-built company blueprints for Paperclip deployment.
2
+ * Pre-built AgenticFlow blueprints the composition ladder.
3
3
  *
4
- * Each blueprint defines a team of AgenticFlow agents that can be
5
- * deployed to Paperclip as a ready-made company. Agents are sourced
6
- * from the AF marketplace templates or the user's existing agents.
4
+ * AgenticFlow building blocks COMPOSE from simple to complex. Each blueprint
5
+ * picks a rung and assembles the right resources.
6
+ *
7
+ * **Composition ladder** (bottom → top, simpler → more complex):
8
+ *
9
+ * Rung 0: WORKFLOW MINIMAL trigger → llm → output (hello world)
10
+ * Rung 1: WORKFLOW CHAINED llm_plan → llm_execute → llm_format (sequential reasoning)
11
+ * Rung 2: WORKFLOW ENRICHED web_retrieval → llm_summarize (deterministic + real data)
12
+ * Rung 3: AGENT + NODE PLUGINS agent with [web_search, api_call] (flexible tool-use)
13
+ * Rung 4: AGENT + WORKFLOW TOOL agent calls workflow as a tool (flexible + deterministic body)
14
+ * Rung 5: AGENT + SUB-AGENTS triage calls specialist agents (lite multi-agent, agent-driven)
15
+ * Rung 6: WORKFORCE (DAG) explicit multi-agent coordination (graph-driven MAS)
16
+ *
17
+ * Deploy verbs map 1:1 to `kind`:
18
+ * kind: "workflow" → `af workflow init --blueprint <id>` (rungs 0-2)
19
+ * kind: "agent" → `af agent init --blueprint <id>` (rungs 3-5)
20
+ * kind: "workforce" → `af workforce init --blueprint <id>` (rung 6)
21
+ *
22
+ * Legacy `tier` field still exists for backward compat:
23
+ * tier 1 = kind "agent" + complexity 3
24
+ * tier 3 = kind "workforce" + complexity 6
7
25
  */
26
+ export interface AgentPluginSpec {
27
+ /** Node type name (e.g. "web_search", "agenticflow_generate_image"). */
28
+ nodeTypeName: string;
29
+ /** Optional pre-set input values (reduces what the LLM has to decide). */
30
+ input?: Record<string, {
31
+ value: unknown;
32
+ description?: string;
33
+ }>;
34
+ /** Whether the plugin needs a connection. If omitted, the CLI auto-discovers. */
35
+ connectionCategory?: "pixelml" | "none";
36
+ }
8
37
  export interface AgentSlot {
9
- /** Paperclip role */
38
+ /** Paperclip role (ceo | engineer | etc.). */
10
39
  role: string;
11
40
  /** What this slot does */
12
41
  title: string;
@@ -16,6 +45,46 @@ export interface AgentSlot {
16
45
  suggestedTemplate?: string;
17
46
  /** Allow user to skip this slot */
18
47
  optional?: boolean;
48
+ /** Built-in AgenticFlow plugins to attach to this agent. Used in Tier 1 blueprints. */
49
+ plugins?: AgentPluginSpec[];
50
+ /**
51
+ * If true, this slot is the workforce's SYNTHESIZER / aggregator:
52
+ * - non-synthesizer workers feed INTO it (instead of back to coordinator)
53
+ * - it feeds the output node (instead of the coordinator)
54
+ * - default input template joins every worker's last_message with separators
55
+ * Only one synthesizer per blueprint. Enables fan-out → fan-in topologies
56
+ * (e.g. parallel-research: coordinator → 2 researchers → synthesizer → output).
57
+ */
58
+ isSynthesizer?: boolean;
59
+ }
60
+ /**
61
+ * Workflow node spec used by workflow-kind blueprints. Mirrors the backend
62
+ * `WorkflowNodeCreateDTO` shape but only the fields a blueprint needs to
63
+ * preset at deploy time.
64
+ */
65
+ export interface WorkflowNodeSpec {
66
+ /** Stable handle for wiring (node names in input_config templates). */
67
+ name: string;
68
+ /** Node type (e.g. "llm", "web_retrieval", "api_call"). */
69
+ nodeType: string;
70
+ /** Human-readable title shown in the UI. */
71
+ title?: string;
72
+ /** What this node does — shown on hover in the builder. */
73
+ description?: string;
74
+ /** Input config passed to the node runner. Values may use `{{trigger.X}}` or `{{nodes.Y.output.Z}}` templates. */
75
+ inputConfig?: Record<string, unknown>;
76
+ /** Optional output mapping. Usually unset — defaults work. */
77
+ outputMapping?: Record<string, unknown> | null;
78
+ /** Optional grid position — auto-assigned if omitted. */
79
+ position?: {
80
+ x: number;
81
+ y: number;
82
+ };
83
+ }
84
+ /** Explicit edge between two workflow nodes. */
85
+ export interface WorkflowEdgeSpec {
86
+ sourceName: string;
87
+ targetName: string;
19
88
  }
20
89
  export interface CompanyBlueprint {
21
90
  /** Short slug */
@@ -26,16 +95,69 @@ export interface CompanyBlueprint {
26
95
  description: string;
27
96
  /** Company goal */
28
97
  goal: string;
29
- /** Starter tasks */
98
+ /**
99
+ * Blueprint kind — the deploy verb:
100
+ * "workflow" → af workflow init --blueprint <id> (pure deterministic flow)
101
+ * "agent" → af agent init --blueprint <id> (single agent, may have plugins/tools/sub-agents)
102
+ * "workforce" → af workforce init --blueprint <id> (multi-agent DAG)
103
+ * Defaults by tier for backward compat: tier 1 → "agent", tier 3 → "workforce".
104
+ */
105
+ kind?: "workflow" | "agent" | "workforce";
106
+ /**
107
+ * Position on the composition ladder (0-6). Higher = more complex.
108
+ * Rungs 0-2 are workflow, 3-5 are agent, 6 is workforce. Surfaced in
109
+ * `af bootstrap` and `af blueprints list` so operators can sort/filter
110
+ * by complexity without reading descriptions.
111
+ */
112
+ complexity?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
113
+ /**
114
+ * Legacy blueprint tier — maps onto kind:
115
+ * 1 = kind "agent" + complexity 3 (agent + plugins)
116
+ * 2 = kind "agent" + complexity 4 (agent + workflow tool)
117
+ * 3 = kind "workforce" + complexity 6 (workforce DAG)
118
+ * Prefer `kind` + `complexity` for new blueprints.
119
+ */
120
+ tier?: 1 | 2 | 3;
121
+ /**
122
+ * Per-user-facing use cases this blueprint supports. Surfaced in `af bootstrap` so
123
+ * an AI operator can pick the right blueprint without reading descriptions.
124
+ */
125
+ useCases?: string[];
126
+ /** Starter tasks (relevant for workforce kind; ignored for workflow/agent). */
30
127
  starterTasks: Array<{
31
128
  title: string;
32
129
  description: string;
33
130
  assigneeRole: string;
34
131
  priority: string;
35
132
  }>;
36
- /** Agent slots to fill */
133
+ /** Agent slots to fill (for kind "agent" and "workforce"). */
37
134
  agents: AgentSlot[];
135
+ /** Workflow-kind blueprints define nodes directly (no agent slots). */
136
+ workflowNodes?: WorkflowNodeSpec[];
137
+ /** Workflow-kind blueprints may specify explicit edges (otherwise sequential wiring is assumed). */
138
+ workflowEdges?: WorkflowEdgeSpec[];
139
+ /** Workflow-kind blueprints may expose named input fields to the trigger. */
140
+ workflowInputSchema?: {
141
+ title?: string;
142
+ fields: Array<{
143
+ name: string;
144
+ title?: string;
145
+ description?: string;
146
+ required?: boolean;
147
+ defaultValue?: unknown;
148
+ }>;
149
+ };
38
150
  }
151
+ /**
152
+ * Resolve the canonical `kind` of a blueprint. New blueprints set it explicitly;
153
+ * legacy ones fall back to tier mapping. Safe for all existing blueprints.
154
+ */
155
+ export declare function blueprintKind(b: CompanyBlueprint): "workflow" | "agent" | "workforce";
156
+ /**
157
+ * Resolve complexity rung (0-6) for a blueprint. New blueprints set it
158
+ * explicitly; legacy ones fall back to a sensible default by tier.
159
+ */
160
+ export declare function blueprintComplexity(b: CompanyBlueprint): 0 | 1 | 2 | 3 | 4 | 5 | 6;
39
161
  export declare const BLUEPRINTS: Record<string, CompanyBlueprint>;
40
162
  export declare function listBlueprints(): CompanyBlueprint[];
41
163
  export declare function getBlueprint(id: string): CompanyBlueprint | null;
@@ -1 +1 @@
1
- {"version":3,"file":"company-blueprints.d.ts","sourceRoot":"","sources":["../../src/cli/company-blueprints.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,SAAS;IACxB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,YAAY,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpG,0BAA0B;IAC1B,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CA2IvD,CAAC;AAEF,wBAAgB,cAAc,IAAI,gBAAgB,EAAE,CAEnD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAEhE"}
1
+ {"version":3,"file":"company-blueprints.d.ts","sourceRoot":"","sources":["../../src/cli/company-blueprints.ts"],"names":[],"mappings":"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"}