@pixelml/agenticflow-cli 1.7.1 → 1.10.1
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 +173 -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 +152 -25
- 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 +826 -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,86 @@ 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
|
+
// Match Tier 1 — 100 is the server-side cap and the safe ceiling for
|
|
140
|
+
// research/content/multi-step agents. Prevents the `completed_empty`
|
|
141
|
+
// outcome on deeper investigations without any per-run tuning.
|
|
142
|
+
recursion_limit: 100,
|
|
143
|
+
};
|
|
144
|
+
if (plugins.length > 0)
|
|
145
|
+
body["plugins"] = plugins;
|
|
146
|
+
return { slotKey: slot.role, slot, body };
|
|
147
|
+
});
|
|
117
148
|
}
|
|
118
149
|
function buildSystemPrompt(blueprint, slot) {
|
|
150
|
+
const plugins = slot.plugins ?? [];
|
|
151
|
+
const hasWebSearch = plugins.some((p) => p.nodeTypeName === "web_search");
|
|
152
|
+
const hasWebRetrieval = plugins.some((p) => p.nodeTypeName === "web_retrieval");
|
|
153
|
+
const hasApiCall = plugins.some((p) => p.nodeTypeName === "api_call");
|
|
154
|
+
const hasImageGen = plugins.some((p) => p.nodeTypeName === "agenticflow_generate_image");
|
|
155
|
+
// PDCA round 3 (2026-04-14): Researcher B slot fired NO tool calls despite
|
|
156
|
+
// having web_search and web_retrieval attached — its system prompt wasn't
|
|
157
|
+
// explicit enough that "research" means "call the tool". Fix: when a slot
|
|
158
|
+
// has web_search, make tool-calling a hard REQUIREMENT at the top of the
|
|
159
|
+
// prompt, not just a recommendation in a later block.
|
|
160
|
+
const toolBlock = plugins.length
|
|
161
|
+
? [
|
|
162
|
+
``,
|
|
163
|
+
`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"):`,
|
|
164
|
+
...plugins.map((p) => `- ${p.nodeTypeName}`),
|
|
165
|
+
hasWebSearch
|
|
166
|
+
? `- For ANY question about current events, recent releases, specific products, people, companies, or dates → call web_search FIRST. Do NOT answer from prior knowledge.`
|
|
167
|
+
: null,
|
|
168
|
+
hasWebRetrieval
|
|
169
|
+
? `- After web_search, use web_retrieval to pull full content from the most relevant URLs before synthesizing.`
|
|
170
|
+
: null,
|
|
171
|
+
hasApiCall
|
|
172
|
+
? `- For HTTP-API questions or when given an endpoint, call api_call. Parse the JSON response in your reply.`
|
|
173
|
+
: null,
|
|
174
|
+
hasImageGen
|
|
175
|
+
? `- For image requests, call agenticflow_generate_image with a SPECIFIC, descriptive prompt (not the user's vague wording).`
|
|
176
|
+
: null,
|
|
177
|
+
`- 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.`,
|
|
178
|
+
`- Cite URLs you actually retrieved. If you have no URL, you haven't done your job yet.`,
|
|
179
|
+
].filter((l) => l !== null)
|
|
180
|
+
: [];
|
|
119
181
|
return [
|
|
120
182
|
`You are the ${slot.title} for "${blueprint.name}".`,
|
|
121
183
|
``,
|
|
@@ -126,6 +188,7 @@ function buildSystemPrompt(blueprint, slot) {
|
|
|
126
188
|
slot.suggestedTemplate
|
|
127
189
|
? `REFERENCE: Behave like the AgenticFlow marketplace template "${slot.suggestedTemplate}" for this role.`
|
|
128
190
|
: null,
|
|
191
|
+
...toolBlock,
|
|
129
192
|
``,
|
|
130
193
|
`OPERATING RULES:`,
|
|
131
194
|
`- Stay in your role; do not do work outside ${slot.role} scope.`,
|
|
@@ -162,6 +225,15 @@ export function buildAgentWiredGraph(blueprint, specs, agentIdBySlot) {
|
|
|
162
225
|
throw new Error(`Missing agent_id for coordinator slot "${coordinatorSpec.slotKey}"`);
|
|
163
226
|
}
|
|
164
227
|
const coordinatorNodeName = slotToNodeName(coordinatorSpec.slot);
|
|
228
|
+
// Topology selection. Default = "star" (coordinator → each worker in parallel,
|
|
229
|
+
// output reads coordinator). If any slot is marked isSynthesizer, we use
|
|
230
|
+
// "star-synthesizer" (coordinator → each non-synth worker → synthesizer →
|
|
231
|
+
// output) so fan-out/fan-in patterns like parallel-research actually return
|
|
232
|
+
// the synthesizer's final answer to the user.
|
|
233
|
+
const synthesizerSpec = specs.find((s) => s.slot.isSynthesizer);
|
|
234
|
+
const workerSpecs = specs
|
|
235
|
+
.slice(1)
|
|
236
|
+
.filter((s) => !s.slot.isSynthesizer);
|
|
165
237
|
const GRID_X = 320;
|
|
166
238
|
const GRID_Y = 180;
|
|
167
239
|
const nodes = [
|
|
@@ -175,6 +247,7 @@ export function buildAgentWiredGraph(blueprint, specs, agentIdBySlot) {
|
|
|
175
247
|
blueprint_name: blueprint.name,
|
|
176
248
|
blueprint_goal: blueprint.goal,
|
|
177
249
|
starter_tasks: blueprint.starterTasks,
|
|
250
|
+
topology: synthesizerSpec ? "star-synthesizer" : "star",
|
|
178
251
|
},
|
|
179
252
|
},
|
|
180
253
|
{
|
|
@@ -198,10 +271,8 @@ export function buildAgentWiredGraph(blueprint, specs, agentIdBySlot) {
|
|
|
198
271
|
},
|
|
199
272
|
},
|
|
200
273
|
];
|
|
201
|
-
// Worker agent nodes
|
|
202
|
-
|
|
203
|
-
// workers act on the coordinator's distilled task.
|
|
204
|
-
specs.slice(1).forEach((spec, i) => {
|
|
274
|
+
// Worker agent nodes — each receives the coordinator's last message.
|
|
275
|
+
workerSpecs.forEach((spec, i) => {
|
|
205
276
|
const nodeName = slotToNodeName(spec.slot);
|
|
206
277
|
const agentId = agentIdBySlot[spec.slotKey];
|
|
207
278
|
if (!agentId) {
|
|
@@ -219,31 +290,87 @@ export function buildAgentWiredGraph(blueprint, specs, agentIdBySlot) {
|
|
|
219
290
|
meta: { role: spec.slot.role, title: spec.slot.title },
|
|
220
291
|
});
|
|
221
292
|
});
|
|
222
|
-
// Output node returns the coordinator's final response to the caller.
|
|
223
|
-
// (Workers run in parallel and their outputs remain accessible via
|
|
224
|
-
// nodes.<worker>.output.last_message for users who want a custom aggregation.)
|
|
225
|
-
nodes.push({
|
|
226
|
-
name: "output",
|
|
227
|
-
type: "output",
|
|
228
|
-
position: { x: GRID_X * 3, y: GRID_Y },
|
|
229
|
-
input: {
|
|
230
|
-
message: `{{nodes.${coordinatorNodeName}.output.last_message}}`,
|
|
231
|
-
},
|
|
232
|
-
});
|
|
233
293
|
const edges = [
|
|
234
294
|
// trigger → coordinator
|
|
235
295
|
{ source_node_name: "trigger", target_node_name: coordinatorNodeName, connection_type: "next_step" },
|
|
236
|
-
// coordinator → output
|
|
237
|
-
{ source_node_name: coordinatorNodeName, target_node_name: "output", connection_type: "next_step" },
|
|
238
296
|
];
|
|
239
297
|
// coordinator → each worker agent (fan-out)
|
|
240
|
-
for (const spec of
|
|
298
|
+
for (const spec of workerSpecs) {
|
|
241
299
|
edges.push({
|
|
242
300
|
source_node_name: coordinatorNodeName,
|
|
243
301
|
target_node_name: slotToNodeName(spec.slot),
|
|
244
302
|
connection_type: "next_step",
|
|
245
303
|
});
|
|
246
304
|
}
|
|
305
|
+
if (synthesizerSpec) {
|
|
306
|
+
// Synthesizer topology — workers feed synthesizer; synthesizer feeds output.
|
|
307
|
+
const synthNodeName = slotToNodeName(synthesizerSpec.slot);
|
|
308
|
+
const synthAgentId = agentIdBySlot[synthesizerSpec.slotKey];
|
|
309
|
+
if (!synthAgentId) {
|
|
310
|
+
throw new Error(`Missing agent_id for synthesizer slot "${synthesizerSpec.slotKey}"`);
|
|
311
|
+
}
|
|
312
|
+
// Aggregate all worker outputs into the synthesizer's message input,
|
|
313
|
+
// with a labeled separator per worker so the synthesizer knows which
|
|
314
|
+
// report came from whom.
|
|
315
|
+
const aggregatedMessage = workerSpecs
|
|
316
|
+
.map((s) => `[${s.slot.title}]\n{{nodes.${slotToNodeName(s.slot)}.output.last_message}}`)
|
|
317
|
+
.join("\n\n---\n\n");
|
|
318
|
+
nodes.push({
|
|
319
|
+
name: synthNodeName,
|
|
320
|
+
type: "agent",
|
|
321
|
+
position: { x: GRID_X * 3, y: GRID_Y },
|
|
322
|
+
input: {
|
|
323
|
+
agent_id: synthAgentId,
|
|
324
|
+
message: aggregatedMessage || "{{trigger.message}}",
|
|
325
|
+
thread_option: "create_new",
|
|
326
|
+
},
|
|
327
|
+
meta: {
|
|
328
|
+
role: synthesizerSpec.slot.role,
|
|
329
|
+
title: synthesizerSpec.slot.title,
|
|
330
|
+
is_synthesizer: true,
|
|
331
|
+
},
|
|
332
|
+
});
|
|
333
|
+
// Each worker → synthesizer (fan-in)
|
|
334
|
+
for (const spec of workerSpecs) {
|
|
335
|
+
edges.push({
|
|
336
|
+
source_node_name: slotToNodeName(spec.slot),
|
|
337
|
+
target_node_name: synthNodeName,
|
|
338
|
+
connection_type: "next_step",
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
// Output reads synthesizer's final answer
|
|
342
|
+
nodes.push({
|
|
343
|
+
name: "output",
|
|
344
|
+
type: "output",
|
|
345
|
+
position: { x: GRID_X * 4, y: GRID_Y },
|
|
346
|
+
input: {
|
|
347
|
+
message: `{{nodes.${synthNodeName}.output.last_message}}`,
|
|
348
|
+
},
|
|
349
|
+
});
|
|
350
|
+
edges.push({
|
|
351
|
+
source_node_name: synthNodeName,
|
|
352
|
+
target_node_name: "output",
|
|
353
|
+
connection_type: "next_step",
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
else {
|
|
357
|
+
// Default (no synthesizer): output reads coordinator. Workers run in
|
|
358
|
+
// parallel but their outputs only show in the full schema, not in the
|
|
359
|
+
// user-facing response.
|
|
360
|
+
nodes.push({
|
|
361
|
+
name: "output",
|
|
362
|
+
type: "output",
|
|
363
|
+
position: { x: GRID_X * 3, y: GRID_Y },
|
|
364
|
+
input: {
|
|
365
|
+
message: `{{nodes.${coordinatorNodeName}.output.last_message}}`,
|
|
366
|
+
},
|
|
367
|
+
});
|
|
368
|
+
edges.push({
|
|
369
|
+
source_node_name: coordinatorNodeName,
|
|
370
|
+
target_node_name: "output",
|
|
371
|
+
connection_type: "next_step",
|
|
372
|
+
});
|
|
373
|
+
}
|
|
247
374
|
return { nodes, edges };
|
|
248
375
|
}
|
|
249
376
|
//# 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":"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,oEAAoE;IACpE,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,yBAAyB,CAAC;IACzD,MAAM,KAAK,GAAG,OAAO,CAAC,oBAAoB;QACxC,CAAC,CAAC,SAAS,CAAC,MAAM;QAClB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,uEAAuE;QACvE,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAChD,IAAI,UAAU,GAAkB,IAAI,CAAC;YACrC,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,CAAC,IAAI,0CAA0C,IAAI,CAAC,YAAY,4IAA4I,CAC3O,CAAC;YACJ,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK;gBAC5B,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;oBACzC,CAAC;oBACD,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,EAAE;iBACvD,CAAC,CACH;gBACH,CAAC,CAAC,IAAI,CAAC;YACT,OAAO;gBACL,SAAS,EAAE,IAAI,CAAC,YAAY;gBAC5B,cAAc,EAAE,QAAQ;gBACxB,YAAY,EAAE,UAAmB;gBACjC,UAAU;gBACV,YAAY,EAAE,WAAW;aAC1B,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAA4B;YACpC,IAAI,EAAE,GAAG,OAAO,CAAC,aAAa,MAAM,IAAI,CAAC,KAAK,EAAE;YAChD,UAAU,EAAE,OAAO,CAAC,SAAS;YAC7B,KAAK,EAAE,EAAE;YACT,KAAK;YACL,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,SAAS,SAAS,CAAC,IAAI,aAAa;YAC7D,aAAa,EAAE,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC;YACjD,qEAAqE;YACrE,qEAAqE;YACrE,+DAA+D;YAC/D,eAAe,EAAE,GAAG;SACrB,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;QAClD,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,SAA2B,EAAE,IAAe;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;IAC1E,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,eAAe,CAAC,CAAC;IAChF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,4BAA4B,CAAC,CAAC;IAEzF,2EAA2E;IAC3E,0EAA0E;IAC1E,0EAA0E;IAC1E,yEAAyE;IACzE,sDAAsD;IACtD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM;QAC9B,CAAC,CAAC;YACE,EAAE;YACF,mKAAmK;YACnK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,CAAC;YAC5C,YAAY;gBACV,CAAC,CAAC,uKAAuK;gBACzK,CAAC,CAAC,IAAI;YACR,eAAe;gBACb,CAAC,CAAC,6GAA6G;gBAC/G,CAAC,CAAC,IAAI;YACR,UAAU;gBACR,CAAC,CAAC,2GAA2G;gBAC7G,CAAC,CAAC,IAAI;YACR,WAAW;gBACT,CAAC,CAAC,2HAA2H;gBAC7H,CAAC,CAAC,IAAI;YACR,0JAA0J;YAC1J,wFAAwF;SACzF,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACL,eAAe,IAAI,CAAC,KAAK,SAAS,SAAS,CAAC,IAAI,IAAI;QACpD,EAAE;QACF,cAAc,IAAI,CAAC,WAAW,EAAE;QAChC,EAAE;QACF,cAAc,SAAS,CAAC,IAAI,EAAE;QAC9B,EAAE;QACF,IAAI,CAAC,iBAAiB;YACpB,CAAC,CAAC,gEAAgE,IAAI,CAAC,iBAAiB,kBAAkB;YAC1G,CAAC,CAAC,IAAI;QACR,GAAG,SAAS;QACZ,EAAE;QACF,kBAAkB;QAClB,+CAA+C,IAAI,CAAC,IAAI,SAAS;QACjE,sGAAsG;QACtG,wFAAwF;KACzF;SACE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;SACzB,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAA2B,EAC3B,KAAkB,EAClB,aAAqC;IAErC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;IAClC,MAAM,aAAa,GAAG,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,mBAAmB,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAEjE,+EAA+E;IAC/E,yEAAyE;IACzE,0EAA0E;IAC1E,4EAA4E;IAC5E,8CAA8C;IAC9C,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,KAAK;SACtB,KAAK,CAAC,CAAC,CAAC;SACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAExC,MAAM,MAAM,GAAG,GAAG,CAAC;IACnB,MAAM,MAAM,GAAG,GAAG,CAAC;IAEnB,MAAM,KAAK,GAAuC;QAChD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;YAC7B,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,aAAa,EAAE,SAAS,CAAC,YAAY;gBACrC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM;aACxD;SACF;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE;YAClC,mEAAmE;YACnE,yEAAyE;YACzE,qEAAqE;YACrE,oEAAoE;YACpE,6DAA6D;YAC7D,KAAK,EAAE;gBACL,QAAQ,EAAE,aAAa;gBACvB,OAAO,EAAE,qBAAqB;gBAC9B,aAAa,EAAE,YAAY;aAC5B;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI;gBAC/B,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK;gBACjC,cAAc,EAAE,IAAI;aACrB;SACF;KACF,CAAC;IAEF,qEAAqE;IACrE,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE;YAC1C,KAAK,EAAE;gBACL,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,WAAW,mBAAmB,wBAAwB;gBAC/D,aAAa,EAAE,YAAY;aAC5B;YACD,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;SACvD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAuC;QAChD,wBAAwB;QACxB,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,EAAE;KACrG,CAAC;IACF,4CAA4C;IAC5C,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC;YACT,gBAAgB,EAAE,mBAAmB;YACrC,gBAAgB,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;YAC3C,eAAe,EAAE,WAAW;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,6EAA6E;QAC7E,MAAM,aAAa,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,0CAA0C,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC;QACxF,CAAC;QACD,qEAAqE;QACrE,qEAAqE;QACrE,yBAAyB;QACzB,MAAM,iBAAiB,GAAG,WAAW;aAClC,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,cAAc,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAC/E;aACA,IAAI,CAAC,aAAa,CAAC,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;YACtC,KAAK,EAAE;gBACL,QAAQ,EAAE,YAAY;gBACtB,OAAO,EAAE,iBAAiB,IAAI,qBAAqB;gBACnD,aAAa,EAAE,YAAY;aAC5B;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI;gBAC/B,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK;gBACjC,cAAc,EAAE,IAAI;aACrB;SACF,CAAC,CAAC;QACH,qCAAqC;QACrC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC;gBACT,gBAAgB,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC3C,gBAAgB,EAAE,aAAa;gBAC/B,eAAe,EAAE,WAAW;aAC7B,CAAC,CAAC;QACL,CAAC;QACD,0CAA0C;QAC1C,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;YACtC,KAAK,EAAE;gBACL,OAAO,EAAE,WAAW,aAAa,wBAAwB;aAC1D;SACF,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC;YACT,gBAAgB,EAAE,aAAa;YAC/B,gBAAgB,EAAE,QAAQ;YAC1B,eAAe,EAAE,WAAW;SAC7B,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,qEAAqE;QACrE,sEAAsE;QACtE,wBAAwB;QACxB,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;YACtC,KAAK,EAAE;gBACL,OAAO,EAAE,WAAW,mBAAmB,wBAAwB;aAChE;SACF,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC;YACT,gBAAgB,EAAE,mBAAmB;YACrC,gBAAgB,EAAE,QAAQ;YAC1B,eAAe,EAAE,WAAW;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -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,EA0VrC,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.1",
|
|
10
|
+
date: "2026-04-14",
|
|
11
|
+
highlights: [
|
|
12
|
+
"Blueprint agents ship with `recursion_limit: 100` by default (was 25). Customer-demo setup showed a 2-part research query hit recursion exhaustion at 25, returning `completed_empty` on first try. 100 is the server-side cap and clears every realistic multi-step investigation / research / content-create loop on first attempt. Applies to both Tier 1 (`af agent init --blueprint ...`) and Tier 3 workforce slots (`af workforce init --blueprint ...`)",
|
|
13
|
+
"`af workforce runs get` and `runs stop` now accept `--workforce-id` as an optional flag for parity with `runs list` (the id was already accepted by the backend — this is purely an ergonomic CLI-flag fix so AI operators don't hit `cli_parse_error` when they reach for the same flag across subcommands)",
|
|
14
|
+
],
|
|
15
|
+
for_ai: [
|
|
16
|
+
"If you patched an older agent's recursion_limit up to dodge `completed_empty`, you no longer need to — fresh `af agent init --blueprint` + `af workforce init --blueprint` deploys now bake in 100 by default",
|
|
17
|
+
"On existing agents that still exhibit `completed_empty`: `af agent update --agent-id <id> --patch --body '{\"recursion_limit\":100}' --json` raises in place without replacing anything else",
|
|
18
|
+
],
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
version: "1.10.0",
|
|
22
|
+
date: "2026-04-14",
|
|
23
|
+
highlights: [
|
|
24
|
+
"**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",
|
|
25
|
+
"**`af workflow init --blueprint <id>`** — new command for rungs 0-2. Deploys deterministic multi-node workflows with auto-discovered LLM-provider connection",
|
|
26
|
+
"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",
|
|
27
|
+
"**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)",
|
|
28
|
+
"**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",
|
|
29
|
+
"`af blueprints list --kind workflow|agent|workforce --complexity 0-6` + `af playbook composition-ladder` — dedicated discovery for the ladder",
|
|
30
|
+
"20 total blueprints now (4 workflow + 3 agent + 13 workforce)",
|
|
31
|
+
"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",
|
|
32
|
+
],
|
|
33
|
+
for_ai: [
|
|
34
|
+
"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",
|
|
35
|
+
"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",
|
|
36
|
+
"Agent blueprints (rung 3) don't need any workspace-level connection. They use AgenticFlow-native models via `agenticflow/gpt-4o-mini` directly",
|
|
37
|
+
"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",
|
|
38
|
+
"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",
|
|
39
|
+
],
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
version: "1.9.0",
|
|
43
|
+
date: "2026-04-14",
|
|
44
|
+
highlights: [
|
|
45
|
+
"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",
|
|
46
|
+
"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",
|
|
47
|
+
"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",
|
|
48
|
+
"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`",
|
|
49
|
+
"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`",
|
|
50
|
+
"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",
|
|
51
|
+
],
|
|
52
|
+
for_ai: [
|
|
53
|
+
"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",
|
|
54
|
+
"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",
|
|
55
|
+
"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",
|
|
56
|
+
"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",
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
version: "1.8.2",
|
|
61
|
+
date: "2026-04-14",
|
|
62
|
+
highlights: [
|
|
63
|
+
"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",
|
|
64
|
+
],
|
|
65
|
+
for_ai: [
|
|
66
|
+
"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",
|
|
67
|
+
"Real successes still return `status: \"completed\"` (no `_empty` suffix). Only treat `completed` as done",
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
version: "1.8.1",
|
|
72
|
+
date: "2026-04-14",
|
|
73
|
+
highlights: [
|
|
74
|
+
"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>`",
|
|
75
|
+
"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",
|
|
76
|
+
"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",
|
|
77
|
+
"`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",
|
|
78
|
+
],
|
|
79
|
+
for_ai: [
|
|
80
|
+
"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",
|
|
81
|
+
"Use `af blueprints list --tier 1 --json` to find Tier 1 blueprints without a backend roundtrip. Prior 'scattered discovery' friction eliminated",
|
|
82
|
+
"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",
|
|
83
|
+
],
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
version: "1.8.0",
|
|
87
|
+
date: "2026-04-14",
|
|
88
|
+
highlights: [
|
|
89
|
+
"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`",
|
|
90
|
+
"`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",
|
|
91
|
+
"`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",
|
|
92
|
+
"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",
|
|
93
|
+
"SDK 1.6.0 adds MarketplaceResource, AgentTemplatesResource, WorkflowTemplatesResource, MasTemplatesResource",
|
|
94
|
+
],
|
|
95
|
+
for_ai: [
|
|
96
|
+
"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`",
|
|
97
|
+
"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",
|
|
98
|
+
"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",
|
|
99
|
+
"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",
|
|
100
|
+
],
|
|
101
|
+
},
|
|
8
102
|
{
|
|
9
103
|
version: "1.7.1",
|
|
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
|
|
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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"}
|