@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.
- package/dist/cli/blueprint-to-agent.d.ts +67 -0
- package/dist/cli/blueprint-to-agent.d.ts.map +1 -0
- package/dist/cli/blueprint-to-agent.js +167 -0
- package/dist/cli/blueprint-to-agent.js.map +1 -0
- package/dist/cli/blueprint-to-workflow.d.ts +72 -0
- package/dist/cli/blueprint-to-workflow.d.ts.map +1 -0
- package/dist/cli/blueprint-to-workflow.js +120 -0
- package/dist/cli/blueprint-to-workflow.js.map +1 -0
- package/dist/cli/blueprint-to-workforce.d.ts.map +1 -1
- package/dist/cli/blueprint-to-workforce.js +163 -21
- package/dist/cli/blueprint-to-workforce.js.map +1 -1
- package/dist/cli/changelog.d.ts.map +1 -1
- package/dist/cli/changelog.js +94 -0
- package/dist/cli/changelog.js.map +1 -1
- package/dist/cli/company-blueprints.d.ts +129 -7
- package/dist/cli/company-blueprints.d.ts.map +1 -1
- package/dist/cli/company-blueprints.js +514 -4
- package/dist/cli/company-blueprints.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +824 -30
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/playbooks.d.ts.map +1 -1
- package/dist/cli/playbooks.js +230 -0
- package/dist/cli/playbooks.js.map +1 -1
- package/package.json +1 -1
|
@@ -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
|
-
|
|
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
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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
|
-
|
|
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
|
|
193
|
-
|
|
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: {
|
|
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
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAqBH,mDAAmD;AACnD,MAAM,UAAU,cAAc,CAAC,IAAe;IAC5C,OAAO,SAAS,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,SAA2B,EAC3B,UAAmD,EAAE;IAErD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC;IACrD,MAAM,oBAAoB,GAAG,OAAO,CAAC,WAAW,IAAI,SAAS,CAAC,WAAW,CAAC;IAE1E,sEAAsE;IACtE,4EAA4E;IAC5E,2BAA2B;IAC3B,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,IAAI,IAAI;QAClD,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChC,kBAAkB,EAAE,cAAc,CAAC,IAAI,CAAC;KACzC,CAAC,CAAC,CAAC;IAEJ,MAAM,KAAK,GAAuC;QAChD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;YACxB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE;gBACJ,gBAAgB,EAAE,SAAS,CAAC,EAAE;gBAC9B,cAAc,EAAE,SAAS,CAAC,IAAI;gBAC9B,cAAc,EAAE,SAAS,CAAC,IAAI;gBAC9B,cAAc,EAAE,aAAa;gBAC7B,aAAa,EAAE,SAAS,CAAC,YAAY;gBACrC,aAAa,EAAE,WAAW;aAC3B;SACF;QACD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;YAC1B,KAAK,EAAE;gBACL,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,0FAA0F;aACrH;SACF;KACF,CAAC;IAEF,MAAM,KAAK,GAAuC;QAChD;YACE,gBAAgB,EAAE,SAAS;YAC3B,gBAAgB,EAAE,QAAQ;YAC1B,eAAe,EAAE,WAAW;SAC7B;KACF,CAAC;IAEF,MAAM,oBAAoB,GAAG;QAC3B,2FAA2F,SAAS,CAAC,MAAM,CAAC,MAAM,UAAU;QAC5H,GAAG,aAAa;aACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;aAC1B,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,sBAAsB,CAAC,CAAC,kBAAkB,eAAe,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,GAAG;YAC/E,CAAC,CAAC,CAAC,kBAAkB;gBACnB,CAAC,CAAC,uCAAuC,CAAC,CAAC,kBAAkB,IAAI;gBACjE,CAAC,CAAC,GAAG,CAAC,CACX;QACH,4DAA4D;QAC5D,yFAAyF;QACzF,yEAAyE;KAC1E,CAAC;IAEF,OAAO;QACL,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,oBAAoB,EAAE;QACrE,KAAK;QACL,KAAK;QACL,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAoBD;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAA2B,EAC3B,OAKC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,
|
|
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,
|
|
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"}
|
package/dist/cli/changelog.js
CHANGED
|
@@ -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":"AAAA;;;;;GAKG;AASH,MAAM,CAAC,MAAM,SAAS,GAAqB;IACzC;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,uRAAuR;YACvR,8JAA8J;YAC9J,uKAAuK;YACvK,8QAA8Q;YAC9Q,0TAA0T;YAC1T,+IAA+I;YAC/I,+DAA+D;YAC/D,yPAAyP;SAC1P;QACD,MAAM,EAAE;YACN,qSAAqS;YACrS,mNAAmN;YACnN,gJAAgJ;YAChJ,mQAAmQ;YACnQ,iKAAiK;SAClK;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,mcAAmc;YACnc,yRAAyR;YACzR,iMAAiM;YACjM,+LAA+L;YAC/L,0MAA0M;YAC1M,4JAA4J;SAC7J;QACD,MAAM,EAAE;YACN,4RAA4R;YAC5R,+PAA+P;YAC/P,8LAA8L;YAC9L,yMAAyM;SAC1M;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,ofAAof;SACrf;QACD,MAAM,EAAE;YACN,gYAAgY;YAChY,0GAA0G;SAC3G;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,wbAAwb;YACxb,qPAAqP;YACrP,gSAAgS;YAChS,oMAAoM;SACrM;QACD,MAAM,EAAE;YACN,kQAAkQ;YAClQ,iJAAiJ;YACjJ,0QAA0Q;SAC3Q;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,kbAAkb;YAClb,0bAA0b;YAC1b,sSAAsS;YACtS,2PAA2P;YAC3P,6GAA6G;SAC9G;QACD,MAAM,EAAE;YACN,qOAAqO;YACrO,iPAAiP;YACjP,+MAA+M;YAC/M,mKAAmK;SACpK;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,2WAA2W;YAC3W,oUAAoU;SACrU;QACD,MAAM,EAAE;YACN,iOAAiO;YACjO,0RAA0R;SAC3R;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,8ZAA8Z;YAC9Z,yVAAyV;YACzV,8NAA8N;SAC/N;QACD,MAAM,EAAE;YACN,6TAA6T;YAC7T,wLAAwL;YACxL,0GAA0G;SAC3G;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,4QAA4Q;YAC5Q,8IAA8I;YAC9I,wOAAwO;YACxO,0MAA0M;YAC1M,sMAAsM;SACvM;QACD,MAAM,EAAE;YACN,mKAAmK;YACnK,6GAA6G;YAC7G,2LAA2L;SAC5L;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,kSAAkS;YAClS,yOAAyO;YACzO,0LAA0L;SAC3L;QACD,MAAM,EAAE;YACN,uLAAuL;YACvL,iNAAiN;YACjN,yIAAyI;SAC1I;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,0SAA0S;YAC1S,+JAA+J;YAC/J,4NAA4N;YAC5N,uFAAuF;SACxF;QACD,MAAM,EAAE;YACN,oKAAoK;YACpK,kHAAkH;YAClH,iJAAiJ;SAClJ;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,gQAAgQ;YAChQ,kJAAkJ;YAClJ,yLAAyL;YACzL,8KAA8K;SAC/K;QACD,MAAM,EAAE;YACN,+NAA+N;YAC/N,8KAA8K;YAC9K,uLAAuL;SACxL;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,wRAAwR;YACxR,iJAAiJ;YACjJ,gJAAgJ;YAChJ,qLAAqL;YACrL,2IAA2I;SAC5I;QACD,MAAM,EAAE;YACN,kPAAkP;YAClP,uKAAuK;YACvK,kMAAkM;YAClM,+JAA+J;YAC/J,0KAA0K;SAC3K;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,kPAAkP;YAClP,kOAAkO;YAClO,oPAAoP;SACrP;QACD,MAAM,EAAE;YACN,mMAAmM;YACnM,gMAAgM;YAChM,wOAAwO;SACzO;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,8PAA8P;YAC9P,2JAA2J;YAC3J,0KAA0K;YAC1K,uNAAuN;YACvN,2RAA2R;YAC3R,sKAAsK;SACvK;QACD,MAAM,EAAE;YACN,8GAA8G;YAC9G,sKAAsK;YACtK,2HAA2H;YAC3H,mKAAmK;YACnK,4IAA4I;SAC7I;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,gSAAgS;YAChS,0HAA0H;YAC1H,2KAA2K;YAC3K,sSAAsS;YACtS,wOAAwO;YACxO,yLAAyL;SAC1L;QACD,MAAM,EAAE;YACN,0UAA0U;YAC1U,+IAA+I;YAC/I,4IAA4I;YAC5I,mKAAmK;SACpK;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,iKAAiK;YACjK,mIAAmI;YACnI,4JAA4J;YAC5J,qJAAqJ;YACrJ,8GAA8G;YAC9G,yGAAyG;SAC1G;QACD,MAAM,EAAE;YACN,mMAAmM;YACnM,wLAAwL;YACxL,wGAAwG;YACxG,gGAAgG;YAChG,iIAAiI;YACjI,oIAAoI;SACrI;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,2GAA2G;YAC3G,+MAA+M;YAC/M,2LAA2L;YAC3L,kJAAkJ;YAClJ,2GAA2G;YAC3G,2GAA2G;YAC3G,iKAAiK;YACjK,kHAAkH;YAClH,uHAAuH;SACxH;QACD,MAAM,EAAE;YACN,6LAA6L;YAC7L,uLAAuL;YACvL,4PAA4P;YAC5P,+JAA+J;YAC/J,2GAA2G;SAC5G;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,uEAAuE;YACvE,mFAAmF;YACnF,yFAAyF;YACzF,gFAAgF;YAChF,kEAAkE;YAClE,uFAAuF;YACvF,iEAAiE;YACjE,uEAAuE;YACvE,yDAAyD;YACzD,wDAAwD;YACxD,6EAA6E;YAC7E,6GAA6G;SAC9G;QACD,MAAM,EAAE;YACN,6FAA6F;YAC7F,+GAA+G;YAC/G,qFAAqF;YACrF,6EAA6E;YAC7E,qEAAqE;YACrE,oHAAoH;YACpH,wGAAwG;YACxG,mGAAmG;SACpG;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,gEAAgE;YAChE,uEAAuE;YACvE,mDAAmD;YACnD,4CAA4C;SAC7C;QACD,MAAM,EAAE;YACN,6CAA6C;YAC7C,6DAA6D;SAC9D;KACF;IACD;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACV,kCAAkC;YAClC,6CAA6C;YAC7C,qCAAqC;SACtC;QACD,MAAM,EAAE;YACN,0CAA0C;SAC3C;KACF;CACF,CAAC;AAEF,MAAM,UAAU,kBAAkB;IAChC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IAC9D,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -1,12 +1,41 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Pre-built
|
|
2
|
+
* Pre-built AgenticFlow blueprints — the composition ladder.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
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
|
-
/**
|
|
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
|
|
1
|
+
{"version":3,"file":"company-blueprints.d.ts","sourceRoot":"","sources":["../../src/cli/company-blueprints.ts"],"names":[],"mappings":"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"}
|