@ai-outfitter/outfitter 1.15.0 → 1.16.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.
Files changed (33) hide show
  1. package/README.md +4 -3
  2. package/code/pi-extension/src/outfitter-extension.js +154 -64
  3. package/code/pi-extension/src/outfitter-runtime-extension.js +41 -25
  4. package/dist/cli/commands/ListCommand.d.ts +2 -0
  5. package/dist/cli/commands/ListCommand.js +32 -8
  6. package/dist/cli/commands/ListCommand.js.map +1 -1
  7. package/dist/cli/commands/PiRuntimeLaunch.d.ts +6 -0
  8. package/dist/cli/commands/PiRuntimeLaunch.js +11 -1
  9. package/dist/cli/commands/PiRuntimeLaunch.js.map +1 -1
  10. package/dist/cli/commands/RunAgentCommand.d.ts +2 -0
  11. package/dist/cli/commands/RunAgentCommand.js +30 -13
  12. package/dist/cli/commands/RunAgentCommand.js.map +1 -1
  13. package/dist/cli/commands/SetupCommand.d.ts +22 -1
  14. package/dist/cli/commands/SetupCommand.js +97 -8
  15. package/dist/cli/commands/SetupCommand.js.map +1 -1
  16. package/dist/dump/WorkflowDump.js +3 -0
  17. package/dist/dump/WorkflowDump.js.map +1 -1
  18. package/dist/resolver/ResolverValidation.js +27 -0
  19. package/dist/resolver/ResolverValidation.js.map +1 -1
  20. package/dist/resolver/WorkflowDefinition.d.ts +10 -0
  21. package/dist/resolver/WorkflowDefinition.js.map +1 -1
  22. package/dist/resolver/WorkflowOutput.d.ts +9 -0
  23. package/dist/resolver/WorkflowOutput.js +40 -0
  24. package/dist/resolver/WorkflowOutput.js.map +1 -0
  25. package/dist/schemas/workflow.schema.json +26 -0
  26. package/dist/setup/Setup.d.ts +11 -2
  27. package/dist/setup/Setup.js +19 -29
  28. package/dist/setup/Setup.js.map +1 -1
  29. package/docs/documentation/catalogs.md +36 -1
  30. package/docs/documentation/cli.md +7 -6
  31. package/docs/documentation/dump-and-bake.md +1 -1
  32. package/package.json +1 -1
  33. package/src/schemas/workflow.schema.json +26 -0
@@ -31,6 +31,15 @@ export interface WorkflowNode {
31
31
  readonly uses?: readonly string[];
32
32
  readonly if?: string;
33
33
  }
34
+ export type WorkflowOutput = {
35
+ readonly from: string;
36
+ readonly type: string;
37
+ readonly output?: never;
38
+ } | {
39
+ readonly from: string;
40
+ readonly output: string;
41
+ readonly type?: never;
42
+ };
34
43
  export interface WorkflowDefinition {
35
44
  readonly version: 1;
36
45
  readonly id: string;
@@ -42,6 +51,7 @@ export interface WorkflowDefinition {
42
51
  readonly integrations?: Readonly<Record<string, WorkflowIntegration>>;
43
52
  readonly checks?: Readonly<Record<string, unknown>>;
44
53
  readonly triggers?: readonly Readonly<Record<string, unknown>>[];
54
+ readonly outputs?: Readonly<Record<string, WorkflowOutput>>;
45
55
  readonly nodes: readonly WorkflowNode[];
46
56
  readonly feedback?: readonly {
47
57
  readonly from: string;
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowDefinition.js","sourceRoot":"","sources":["../../src/resolver/WorkflowDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAoDlE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,KAAmD,EACjB,EAAE,CAAC,SAAS,IAAI,KAAK,CAAC;AAE1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAY,EAAgD,EAAE;IACnG,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,kCAAkC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;IAC9E,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,oCAAoC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;IAErG,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,+BAA+B,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;IAC3F,CAAC;IAED,OAAO,MAAM,CAAC,QAA8B,CAAC;AAC/C,CAAC,CAAC"}
1
+ {"version":3,"file":"WorkflowDefinition.js","sourceRoot":"","sources":["../../src/resolver/WorkflowDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAyDlE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,KAAmD,EACjB,EAAE,CAAC,SAAS,IAAI,KAAK,CAAC;AAE1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAY,EAAgD,EAAE;IACnG,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,kCAAkC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;IAC9E,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,oCAAoC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;IAErG,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,+BAA+B,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;IAC3F,CAAC;IAED,OAAO,MAAM,CAAC,QAA8B,CAAC;AAC/C,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { WorkflowDefinition } from './WorkflowDefinition.js';
2
+ export interface ResolvedWorkflowOutput {
3
+ readonly from: string;
4
+ readonly type: string;
5
+ readonly output?: string;
6
+ }
7
+ export type ResolvedWorkflowOutputs = Readonly<Record<string, ResolvedWorkflowOutput>>;
8
+ /** Resolves and name-sorts the valid output declarations of one workflow without mutating inputs. */
9
+ export declare const resolveWorkflowOutputs: (definition: WorkflowDefinition, definitions: ReadonlyMap<string, WorkflowDefinition>) => ResolvedWorkflowOutputs;
@@ -0,0 +1,40 @@
1
+ const resolvedActionType = (definition, output) => {
2
+ const node = definition.nodes.find((candidate) => candidate.id === output.from);
3
+ return node?.action === undefined ? undefined : output.type;
4
+ };
5
+ const resolvedMappedType = (workflowSlug, outputName, definitions, visited) => {
6
+ if (workflowSlug === undefined)
7
+ return undefined;
8
+ const nested = definitions.get(workflowSlug);
9
+ if (nested === undefined)
10
+ return undefined;
11
+ const nestedOutputs = nested.outputs ?? {};
12
+ if (!Object.hasOwn(nestedOutputs, outputName))
13
+ return undefined;
14
+ const nestedOutput = nestedOutputs[outputName];
15
+ const key = `${nested.id}\u0000${outputName}`;
16
+ if (visited.has(key))
17
+ return undefined;
18
+ return resolvedType(nested, nestedOutput, definitions, new Set([...visited, key]));
19
+ };
20
+ const resolvedType = (definition, output, definitions, visited) => {
21
+ if (output.type !== undefined)
22
+ return resolvedActionType(definition, output);
23
+ const workflowSlug = definition.nodes.find((candidate) => candidate.id === output.from)?.workflow;
24
+ return resolvedMappedType(workflowSlug, output.output, definitions, visited);
25
+ };
26
+ /** Resolves and name-sorts the valid output declarations of one workflow without mutating inputs. */
27
+ export const resolveWorkflowOutputs = (definition, definitions) => {
28
+ const resolved = Object.create(null);
29
+ const outputs = definition.outputs ?? {};
30
+ for (const name of Object.keys(outputs).sort()) {
31
+ const output = outputs[name];
32
+ const type = resolvedType(definition, output, definitions, new Set([`${definition.id}\u0000${name}`]));
33
+ if (type === undefined)
34
+ continue;
35
+ resolved[name] =
36
+ output.output === undefined ? { from: output.from, type } : { from: output.from, type, output: output.output };
37
+ }
38
+ return { ...resolved };
39
+ };
40
+ //# sourceMappingURL=WorkflowOutput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowOutput.js","sourceRoot":"","sources":["../../src/resolver/WorkflowOutput.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,32 @@
50
50
  "checks": { "type": "object" },
51
51
  "triggers": { "type": "array", "items": { "type": "object" } },
52
52
  "feedback": { "type": "array", "items": { "type": "object", "required": ["from", "to"] } },
53
+ "outputs": {
54
+ "type": "object",
55
+ "propertyNames": { "pattern": "^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$" },
56
+ "additionalProperties": {
57
+ "oneOf": [
58
+ {
59
+ "type": "object",
60
+ "additionalProperties": false,
61
+ "required": ["from", "type"],
62
+ "properties": {
63
+ "from": { "type": "string" },
64
+ "type": { "type": "string", "pattern": "^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$" }
65
+ }
66
+ },
67
+ {
68
+ "type": "object",
69
+ "additionalProperties": false,
70
+ "required": ["from", "output"],
71
+ "properties": {
72
+ "from": { "type": "string" },
73
+ "output": { "type": "string" }
74
+ }
75
+ }
76
+ ]
77
+ }
78
+ },
53
79
  "nodes": {
54
80
  "type": "array",
55
81
  "minItems": 1,
@@ -1,15 +1,18 @@
1
1
  import type { Harness } from '../settings/Settings.js';
2
2
  export type SetupScope = 'home' | 'project';
3
- export type SetupMode = 'default' | 'create' | 'catalog' | 'source';
3
+ export type SetupMode = 'default' | 'catalog' | 'source';
4
4
  export interface SetupAgentChoice {
5
5
  readonly id: string;
6
6
  readonly label: string;
7
7
  readonly description: string;
8
+ /** Shown on the first setup screen; other profiles sit behind "More profiles". */
9
+ readonly featured?: true;
8
10
  }
11
+ /** Profiles the setup screen shows by default, in this order, when the catalog has them. */
12
+ export declare const featuredSetupProfileIds: readonly string[];
9
13
  export interface SetupSelection {
10
14
  readonly setupMode: SetupMode;
11
15
  readonly agentId?: string;
12
- readonly agentLabel?: string;
13
16
  readonly github?: string;
14
17
  readonly ref?: string;
15
18
  readonly settingsPath?: string;
@@ -18,6 +21,8 @@ export interface SetupSelection {
18
21
  readonly privateCatalogsEnabled?: boolean;
19
22
  readonly privateCatalogAccepted?: boolean;
20
23
  readonly target: SetupScope;
24
+ /** Set when the walkthrough offered Pi's /login for a missing provider and the user skipped it. */
25
+ readonly providerConnection?: 'skipped';
21
26
  }
22
27
  export interface SetupInput {
23
28
  readonly homeDirectory: string;
@@ -33,7 +38,11 @@ export interface SetupResult {
33
38
  readonly defaultAgent?: string;
34
39
  readonly defaultHarness: Harness;
35
40
  readonly messages: readonly string[];
41
+ /** The user skipped the provider step; the relaunch prints a /login hint instead of prompting. */
42
+ readonly providerPromptSkipped?: boolean;
36
43
  }
44
+ /** One-line reminder shown when the user skipped connecting a Pi model provider during setup. */
45
+ export declare const providerLoginHint = "No model provider connected yet. Run '/login' inside Outfitter to connect one.";
37
46
  export declare const setupNextStepMessage = "Run 'outfitter sync', then run 'outfitter' again. Pseudonymous usage analytics are on by default; turn them off with telemetry.enabled: false in ~/.agents/settings.yml.";
38
47
  export declare const sanitizeAgentSlug: (raw: string) => string;
39
48
  /** Returns the profiles shown by the original default-catalog setup picker. */
@@ -4,6 +4,10 @@ import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, s
4
4
  import { dirname, join } from 'node:path';
5
5
  import { HARNESSES } from '../settings/Settings.js';
6
6
  import { defaultCatalogSource, retiredDefaultCatalogSources } from './DefaultCatalog.js';
7
+ /** Profiles the setup screen shows by default, in this order, when the catalog has them. */
8
+ export const featuredSetupProfileIds = ['engineer', 'founder', 'software-factory'];
9
+ /** One-line reminder shown when the user skipped connecting a Pi model provider during setup. */
10
+ export const providerLoginHint = "No model provider connected yet. Run '/login' inside Outfitter to connect one.";
7
11
  export const setupNextStepMessage = "Run 'outfitter sync', then run 'outfitter' again. Pseudonymous usage analytics are on by default; turn them off with telemetry.enabled: false in ~/.agents/settings.yml.";
8
12
  const telemetrySettingsHint = [
9
13
  '# Pseudonymous product analytics. Set enabled: false to opt out.',
@@ -67,6 +71,7 @@ const discoverAgentsInCatalog = (root) => {
67
71
  id,
68
72
  label: readFrontmatterValue(content, 'label') ?? readMarkdownHeading(content) ?? id,
69
73
  description: readFrontmatterValue(content, 'description') ?? 'Outfitter profile from the default catalog.',
74
+ ...(featuredSetupProfileIds.includes(id) ? { featured: true } : {}),
70
75
  },
71
76
  ];
72
77
  }
@@ -74,13 +79,12 @@ const discoverAgentsInCatalog = (root) => {
74
79
  return [];
75
80
  }
76
81
  });
77
- return choices.sort((left, right) => {
78
- if (left.id === 'engineer')
79
- return -1;
80
- if (right.id === 'engineer')
81
- return 1;
82
- return left.id.localeCompare(right.id);
83
- });
82
+ // Featured profiles first in their declared order, then the rest alphabetically.
83
+ const rank = (choice) => {
84
+ const index = featuredSetupProfileIds.indexOf(choice.id);
85
+ return index === -1 ? featuredSetupProfileIds.length : index;
86
+ };
87
+ return choices.sort((left, right) => rank(left) - rank(right) || left.id.localeCompare(right.id));
84
88
  };
85
89
  /** Returns the profiles shown by the original default-catalog setup picker. */
86
90
  export const discoverSetupAgentChoices = (input) => {
@@ -88,8 +92,6 @@ export const discoverSetupAgentChoices = (input) => {
88
92
  return [];
89
93
  return discoverAgentsInCatalog(input.defaultCatalogRoot);
90
94
  };
91
- const userProfileMarkdown = (slug, label) => `---\nname: "${slug}"\nlabel: "${label}"\ndescription: User-created Outfitter profile.\n---\n\n# ${label}\n\n` +
92
- 'You are a helpful coding agent. Follow the instructions and skills available in this .agents tree.\n';
93
95
  const replaceOrAppendScalar = (content, key, value) => {
94
96
  const linePattern = new RegExp(`^${key}:.*$`, 'mu');
95
97
  if (linePattern.test(content))
@@ -173,7 +175,7 @@ const createSettingsContent = (existing, selection) => {
173
175
  }
174
176
  let content = replaceOrAppendScalar(existing, 'default_agent', String(selection.agentId));
175
177
  content = replaceOrAppendScalar(content, 'default_harness', selection.harness);
176
- return appendTelemetrySettingsHint(selection.setupMode === 'default' ? upsertDefaultCatalogSource(content) : content);
178
+ return appendTelemetrySettingsHint(upsertDefaultCatalogSource(content));
177
179
  };
178
180
  const enablePrivateCatalogs = (content) => {
179
181
  if (/^\s*private_catalogs:\s*true\s*$/mu.test(content))
@@ -219,18 +221,16 @@ const assertSelection = (input) => {
219
221
  throw new Error('Setup returned an invalid source URI.');
220
222
  return;
221
223
  }
222
- // Validate the exact id that gets written as the agent directory/frontmatter name — do not
223
- // normalize here, or an id that passes validation could still be written in a schema-invalid form.
224
+ // Validate the exact id that gets written as `default_agent` — do not normalize here, or an id
225
+ // that passes validation could still be written in a schema-invalid form.
224
226
  if (!selection.agentId || !agentSlugPattern.test(selection.agentId)) {
225
227
  throw new Error(`Setup returned invalid agent id '${selection.agentId}'.`);
226
228
  }
227
- if (selection.setupMode === 'default') {
228
- if (!input.availableAgents.some((candidate) => candidate.id === selection.agentId)) {
229
- throw new Error(`Setup selected unavailable agent '${selection.agentId}'.`);
230
- }
231
- if (input.defaultCatalogRoot === undefined)
232
- throw new Error('The default Outfitter profile catalog is unavailable.');
229
+ if (!input.availableAgents.some((candidate) => candidate.id === selection.agentId)) {
230
+ throw new Error(`Setup selected unavailable agent '${selection.agentId}'.`);
233
231
  }
232
+ if (input.defaultCatalogRoot === undefined)
233
+ throw new Error('The default Outfitter profile catalog is unavailable.');
234
234
  };
235
235
  /** Applies a UI selection without touching any existing agent resource. */
236
236
  export const applySetupSelection = (input) => {
@@ -239,18 +239,9 @@ export const applySetupSelection = (input) => {
239
239
  const settingsPath = join(targetRoot, '.agents', 'settings.yml');
240
240
  const created = [];
241
241
  const updated = [];
242
- let createdAgentPath;
243
242
  let privateHomeSettingsPath;
244
243
  let privateHomeSettingsExisted = false;
245
244
  let previousPrivateHomeSettings = '';
246
- if (input.selection.setupMode === 'create') {
247
- const agentPath = join(targetRoot, '.agents', 'agents', input.selection.agentId, 'agent.md');
248
- if (!existsSync(agentPath)) {
249
- atomicWrite(agentPath, userProfileMarkdown(input.selection.agentId, input.selection.agentLabel?.trim() || input.selection.agentId));
250
- created.push(agentPath);
251
- createdAgentPath = agentPath;
252
- }
253
- }
254
245
  try {
255
246
  if (input.selection.setupMode === 'catalog' &&
256
247
  input.selection.privateCatalogAccepted === true &&
@@ -267,8 +258,6 @@ export const applySetupSelection = (input) => {
267
258
  (settingsExisted ? updated : created).unshift(settingsPath);
268
259
  }
269
260
  catch (error) {
270
- if (createdAgentPath !== undefined)
271
- rmSync(createdAgentPath, { force: true });
272
261
  if (privateHomeSettingsPath !== undefined) {
273
262
  if (privateHomeSettingsExisted)
274
263
  atomicWrite(privateHomeSettingsPath, previousPrivateHomeSettings);
@@ -283,6 +272,7 @@ export const applySetupSelection = (input) => {
283
272
  settingsPath,
284
273
  defaultAgent: input.selection.agentId,
285
274
  defaultHarness: input.selection.harness,
275
+ ...(input.selection.providerConnection === 'skipped' ? { providerPromptSkipped: true } : {}),
286
276
  messages: [
287
277
  ...created.map((path) => `Created ${path}`),
288
278
  ...updated.map((path) => `Updated ${path}`),
@@ -1 +1 @@
1
- {"version":3,"file":"Setup.js","sourceRoot":"","sources":["../../src/setup/Setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Setup.js","sourceRoot":"","sources":["../../src/setup/Setup.ts"],"names":[],"mappings":"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"}
@@ -89,7 +89,42 @@ Resources from all sources resolve by slug behind local layers, following [layer
89
89
 
90
90
  Each `workflows/<slug>/workflow.yaml` is a typed graph that names its human, agent, tool, and system actors. Agent actors reference ordinary catalog profiles. Node-level skill, prompt, and MCP assertions must already belong to the selected agent's composed closure. Nested workflow references resolve by slug and may not form cycles.
91
91
 
92
- `outfitter validate --strict` validates the graph and the complete composed dependency closure. `outfitter dump --workflow <slug>` produces a reviewable `.agents` bundle for distribution. Outfitter never schedules or executes the graph.
92
+ A workflow can publish output declarations. Output names must start with a lowercase letter and
93
+ otherwise follow the workflow node ID pattern. An output's `type` is an optional plain label: an
94
+ action node declares it directly, while a nested-workflow node maps one of the nested workflow's
95
+ declared outputs and inherits its label:
96
+
97
+ ```yaml
98
+ outputs:
99
+ pull-request:
100
+ from: draft # an action node in this workflow
101
+ type: pull-request
102
+ review-verdict:
103
+ from: review # a nested-workflow node in this workflow
104
+ output: verdict # declared by the nested workflow
105
+ ```
106
+
107
+ The conventional labels for forge objects are `pull-request`, `git-commit`, `git-branch`, and
108
+ `issue`, so workflows use consistent names for the same kinds of objects. An organization may use
109
+ any slug as an output type label. A mapped output inherits the nested output's resolved label,
110
+ including through multiple nesting levels.
111
+
112
+ A node's `needs` list expresses ordering only among nodes in the same workflow. Cross-task
113
+ prerequisites are an execution engine's responsibility: the engine evaluates them against declared
114
+ outputs rather than treating a workflow node edge as a task dependency.
115
+
116
+ `outfitter validate --strict` validates the graph, output mappings, and complete composed dependency
117
+ closure. `outfitter dump --workflow <slug>` produces a reviewable `.agents` bundle for distribution.
118
+ Outfitter never schedules or executes the graph. See
119
+ [OFTR-013: Workflow Contract](../requirements/OFTR-013-workflow-contract.md) for the normative
120
+ contract.
121
+
122
+ #### Recording values
123
+
124
+ Outfitter declares outputs but does not record or validate their concrete values; that belongs to the
125
+ execution engine. A runtime carrying a value over A2A should use `outfitter-task/v1` artifact metadata
126
+ with `output` set to the declared name, `type` set to its resolved label, and `value` set to the
127
+ concrete value.
93
128
 
94
129
  ### Catalog dependencies (transitive sources)
95
130
 
@@ -42,10 +42,11 @@ outfitter --resume # equivalent to: outfitter run -- --resume
42
42
 
43
43
  ## `outfitter setup [source]`
44
44
 
45
- Open the bundled Pi walkthrough using the original setup wording and sequence. Choose **Use the
46
- default Outfitter profile catalog**, **Create your own profile**, or **Provide a different catalog
47
- to import**; complete that branch; choose a home/project settings target; then choose the default
48
- CLI agent. Pi/Outfitter is preselected. Passing `[source]` retains the original direct-source path
45
+ Open the bundled Pi walkthrough. Choose a featured profile from the default catalog (Engineer,
46
+ Founder, or Software Factory; Engineer is preselected), open **More profiles** for the rest, or
47
+ **Import a different .agents catalog**; complete that branch; choose a home/project
48
+ settings target; then choose the default CLI agent. Pi/Outfitter is preselected. To use a custom
49
+ profile instead, write `.agents/agents/<id>/agent.md` and set `default_agent`. Passing `[source]` retains the original direct-source path
49
50
  and starts at target selection. Pi hosts the deterministic setup UI without a model provider and
50
51
  does not port or symlink harness configuration. The default picker always comes from
51
52
  `ai-outfitter/community-profiles` at the immutable Release Please version tag pinned by the installed
@@ -75,7 +76,7 @@ List resolvable resources across all layers, with the winning source for each sl
75
76
  | -------- | -------------------------------------------------------------------------- |
76
77
  | `[kind]` | Optional filter: `agents`, `skills`, `knowledge`, `commands`, `workflows`. |
77
78
 
78
- `--json` emits an object containing `ok`, `resources`, and `diagnostics`; diagnostics remain available when strict mode fails.
79
+ `--json` emits an object containing `ok`, `resources`, and `diagnostics`; diagnostics remain available when strict mode fails. Each workflow resource entry also contains a name-sorted `outputs` object with resolved output labels, or `{}` when the workflow declares none. Non-JSON output is unchanged. See [OFTR-013: Workflow Contract](../requirements/OFTR-013-workflow-contract.md).
79
80
 
80
81
  ## `outfitter validate`
81
82
 
@@ -96,7 +97,7 @@ Write the composed resource tree as a self-contained `.agents/` directory for re
96
97
  | `--workflow <id>` | Export one workflow, its nested workflows, and every referenced agent closure. |
97
98
  | `--out <dir>` | Destination directory (default `./.agents`). |
98
99
 
99
- Workflow dumps are non-executable configuration bundles. They contain the canonical workflow YAML, composed agent resources, and a hash/provenance manifest. A workflow dump refuses an existing destination instead of replacing user files.
100
+ Workflow dumps are non-executable configuration bundles. They contain the canonical workflow YAML, composed agent resources, and a hash/provenance manifest whose `workflows[]` entries record resolved `outputs`. A workflow dump refuses an existing destination instead of replacing user files.
100
101
 
101
102
  > **Tasks and `outfitter task bake`** — baking a task and its inputs into an immutable execution artifact — are the subject of a separate upcoming RFC and are not part of this command surface yet. See [Tasks](./tasks.md).
102
103
 
@@ -25,7 +25,7 @@ Use dumps to:
25
25
  - **Safe** — a dump may include reviewable source provenance, but never credentials, auth state, sessions, transcripts, caches, backups, mutable harness state, or symlinks escaping the tree.
26
26
  - **Protocol-shaped** — the output is a valid `.agents` payload usable by any protocol consumer, not just Outfitter. Any Outfitter-specific provenance metadata is namespaced, JSON-based, and removable without losing the underlying resources.
27
27
  - **Harness-discoverable** — selected agent-local skills are flattened into top-level `skills/<id>/` in the closure output, with their packaged references, scripts, and assets intact.
28
- - **Workflow-auditable** — workflow exports preserve canonical YAML and record every nested workflow, agent composition, file hash, and winning source in `.outfitter/workflow-composition.json`.
28
+ - **Workflow-auditable** — workflow exports preserve canonical YAML and record every nested workflow, its resolved `outputs`, agent composition, file hash, and winning source in `.outfitter/workflow-composition.json`. Each `workflows[]` entry has an `outputs` object (empty when none are declared). The manifest records only outputs that resolve, and `outfitter validate --strict` is the gate that reports declarations which do not. See [OFTR-013: Workflow Contract](../requirements/OFTR-013-workflow-contract.md).
29
29
 
30
30
  ## Bake
31
31
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-outfitter/outfitter",
3
- "version": "1.15.0",
3
+ "version": "1.16.0",
4
4
  "description": "Profile-oriented wrapper for launching pi, Claude Code, and future agent CLIs with reproducible configuration.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -50,6 +50,32 @@
50
50
  "checks": { "type": "object" },
51
51
  "triggers": { "type": "array", "items": { "type": "object" } },
52
52
  "feedback": { "type": "array", "items": { "type": "object", "required": ["from", "to"] } },
53
+ "outputs": {
54
+ "type": "object",
55
+ "propertyNames": { "pattern": "^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$" },
56
+ "additionalProperties": {
57
+ "oneOf": [
58
+ {
59
+ "type": "object",
60
+ "additionalProperties": false,
61
+ "required": ["from", "type"],
62
+ "properties": {
63
+ "from": { "type": "string" },
64
+ "type": { "type": "string", "pattern": "^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$" }
65
+ }
66
+ },
67
+ {
68
+ "type": "object",
69
+ "additionalProperties": false,
70
+ "required": ["from", "output"],
71
+ "properties": {
72
+ "from": { "type": "string" },
73
+ "output": { "type": "string" }
74
+ }
75
+ }
76
+ ]
77
+ }
78
+ },
53
79
  "nodes": {
54
80
  "type": "array",
55
81
  "minItems": 1,