@ai-outfitter/outfitter 1.13.0 → 1.15.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 (92) hide show
  1. package/README.md +4 -1
  2. package/code/pi-extension/src/outfitter-extension.js +2 -2
  3. package/dist/cli/OutfitterCli.js +2 -0
  4. package/dist/cli/OutfitterCli.js.map +1 -1
  5. package/dist/cli/commands/DumpCommand.js +17 -4
  6. package/dist/cli/commands/DumpCommand.js.map +1 -1
  7. package/dist/cli/commands/LinkCommand.d.ts +27 -0
  8. package/dist/cli/commands/LinkCommand.js +137 -0
  9. package/dist/cli/commands/LinkCommand.js.map +1 -0
  10. package/dist/cli/commands/ListCommand.js +8 -2
  11. package/dist/cli/commands/ListCommand.js.map +1 -1
  12. package/dist/cli/commands/RunAgentCommand.js +6 -1
  13. package/dist/cli/commands/RunAgentCommand.js.map +1 -1
  14. package/dist/cli/commands/ValidateCommand.js +5 -2
  15. package/dist/cli/commands/ValidateCommand.js.map +1 -1
  16. package/dist/cli.js +14 -6
  17. package/dist/cli.js.map +1 -1
  18. package/dist/composer/Chain.d.ts +10 -0
  19. package/dist/composer/Chain.js +47 -0
  20. package/dist/composer/Chain.js.map +1 -0
  21. package/dist/composer/Composer.d.ts +6 -0
  22. package/dist/composer/Composer.js +42 -141
  23. package/dist/composer/Composer.js.map +1 -1
  24. package/dist/composer/Composition.d.ts +16 -0
  25. package/dist/composer/Defaults.d.ts +33 -0
  26. package/dist/composer/Defaults.js +103 -0
  27. package/dist/composer/Defaults.js.map +1 -0
  28. package/dist/composer/Mcp.d.ts +3 -0
  29. package/dist/composer/Mcp.js +68 -0
  30. package/dist/composer/Mcp.js.map +1 -0
  31. package/dist/dump/Dump.d.ts +2 -1
  32. package/dist/dump/Dump.js +67 -4
  33. package/dist/dump/Dump.js.map +1 -1
  34. package/dist/dump/WorkflowDump.d.ts +9 -1
  35. package/dist/dump/WorkflowDump.js +4 -3
  36. package/dist/dump/WorkflowDump.js.map +1 -1
  37. package/dist/links/HarnessHome.d.ts +15 -0
  38. package/dist/links/HarnessHome.js +23 -0
  39. package/dist/links/HarnessHome.js.map +1 -0
  40. package/dist/links/HarnessLinkApply.d.ts +26 -0
  41. package/dist/links/HarnessLinkApply.js +356 -0
  42. package/dist/links/HarnessLinkApply.js.map +1 -0
  43. package/dist/links/HarnessLinkPlan.d.ts +70 -0
  44. package/dist/links/HarnessLinkPlan.js +224 -0
  45. package/dist/links/HarnessLinkPlan.js.map +1 -0
  46. package/dist/links/HarnessMcp.d.ts +9 -0
  47. package/dist/links/HarnessMcp.js +67 -0
  48. package/dist/links/HarnessMcp.js.map +1 -0
  49. package/dist/projection/CodexSettings.d.ts +3 -0
  50. package/dist/projection/CodexSettings.js +17 -0
  51. package/dist/projection/CodexSettings.js.map +1 -0
  52. package/dist/projection/Materialize.d.ts +20 -2
  53. package/dist/projection/Materialize.js +66 -33
  54. package/dist/projection/Materialize.js.map +1 -1
  55. package/dist/projection/ProjectHarness.js +58 -14
  56. package/dist/projection/ProjectHarness.js.map +1 -1
  57. package/dist/projection/Projection.d.ts +3 -1
  58. package/dist/resolver/ResolverValidation.d.ts +7 -0
  59. package/dist/resolver/ResolverValidation.js +46 -14
  60. package/dist/resolver/ResolverValidation.js.map +1 -1
  61. package/dist/schemas/settings.schema.json +54 -1
  62. package/dist/settings/Settings.d.ts +24 -0
  63. package/dist/settings/Settings.js +15 -0
  64. package/dist/settings/Settings.js.map +1 -1
  65. package/dist/settings/SettingsLoader.js +18 -0
  66. package/dist/settings/SettingsLoader.js.map +1 -1
  67. package/dist/settings/SettingsMerger.js +43 -0
  68. package/dist/settings/SettingsMerger.js.map +1 -1
  69. package/dist/setup/DefaultCatalog.d.ts +4 -2
  70. package/dist/setup/DefaultCatalog.js +5 -3
  71. package/dist/setup/DefaultCatalog.js.map +1 -1
  72. package/dist/setup/Setup.js +34 -12
  73. package/dist/setup/Setup.js.map +1 -1
  74. package/dist/version/NodeVersionGuard.d.ts +13 -0
  75. package/dist/version/NodeVersionGuard.js +50 -0
  76. package/dist/version/NodeVersionGuard.js.map +1 -0
  77. package/docs/architecture/state_writeback_strategy.md +1 -1
  78. package/docs/documentation/README.md +1 -1
  79. package/docs/documentation/cli.md +35 -1
  80. package/docs/documentation/conventions.md +1 -1
  81. package/docs/documentation/getting-started.md +4 -2
  82. package/docs/documentation/linking-harnesses.md +88 -0
  83. package/docs/documentation/local-development.md +5 -7
  84. package/docs/documentation/migration.md +1 -1
  85. package/docs/documentation/settings.md +75 -4
  86. package/docs/documentation/state.md +1 -1
  87. package/docs/documentation/support-matrix.md +3 -1
  88. package/docs/documentation/switching-to-outfitter.md +1 -1
  89. package/docs/documentation/usecases/shared-conventions.md +1 -1
  90. package/package.json +2 -1
  91. package/src/schemas/settings.schema.json +54 -1
  92. package/docs/documentation/porting-claude.md +0 -58
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chain.js","sourceRoot":"","sources":["../../src/composer/Chain.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAG7F,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAOvD,MAAM,cAAc,GAAG,CAAC,KAAuB,EAA4B,EAAE;IAC3E,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC7E,IAAI,sBAAsB,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC,OAAO,CAAC;IAClE,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;QAAE,OAAO,kBAAkB,UAAU,CAAC,IAAI,6BAA6B,CAAC;IAC1G,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,GAAyB,EACzB,SAAiB,EAC+C,EAAE;IAClE,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,MAAM,KAAK,GAAG,CAAC,IAAY,EAAQ,EAAE;QACnC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QAC/B,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxG,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAClD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CACT,gDAAgD,IAAI,cAAc,CAAC,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CACtG,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,iBAAiB,UAAU,EAAE,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,QAAQ;YAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACxD,QAAQ,CAAC,GAAG,EAAE,CAAC;QAEf,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,CAAC;IACjB,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAClE,CAAC,CAAC"}
@@ -1,8 +1,14 @@
1
1
  import type { EffectiveResourceSet } from '../resolver/Resource.js';
2
+ import type { AgentDefaults } from '../settings/Settings.js';
2
3
  import type { CompositionPlan } from './Composition.js';
3
4
  export interface ComposeOptions {
4
5
  /** Active repository root for `repo_file` prompt references. */
5
6
  readonly projectDirectory?: string;
7
+ /**
8
+ * Settings-layer (`agent_defaults`) loadout entries composed into the agent ahead of its own
9
+ * inheritance chain. Absent or empty defaults leave composition byte-identical to no settings.
10
+ */
11
+ readonly agentDefaults?: AgentDefaults;
6
12
  }
7
13
  export interface ComposeResult {
8
14
  readonly plan?: CompositionPlan;
@@ -2,8 +2,10 @@
2
2
  import { existsSync, readFileSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
4
  import { escapesRoots } from '../dump/Containment.js';
5
- import { isAgentDefinitionIssue, readAgentDefinition } from '../resolver/AgentDefinition.js';
6
- import { findLoadoutResource, findResource } from '../resolver/Resource.js';
5
+ import { findResource } from '../resolver/Resource.js';
6
+ import { resolveInheritanceChain } from './Chain.js';
7
+ import { SETTINGS_DEFAULTS_DECLARER, mergePromptSelections, mergeSelections, planAgentDefaults, resolveDeclaredSlugs, resolveSettingsPromptSelection, settingsPromptSelections, settingsSelections, } from './Defaults.js';
8
+ import { composeMcpServers } from './Mcp.js';
7
9
  import { resolveModelRegistry } from './Models.js';
8
10
  import { agentBodyFragment, promptSourceKey, resolvePromptSource, rootPromptFragment } from './PromptSource.js';
9
11
  /** Reads the highest-precedence tree-root file (e.g. system-prompt.md) across layers, or undefined. */
@@ -16,49 +18,6 @@ const readRootFile = (set, fileName) => {
16
18
  }
17
19
  return undefined;
18
20
  };
19
- const readValidAgent = (agent) => {
20
- const definition = readAgentDefinition(agent.winner.path, agent.configPaths);
21
- if (isAgentDefinitionIssue(definition))
22
- return definition.message;
23
- if (definition.name !== agent.slug)
24
- return `agent.md name '${definition.name}' must match its directory.`;
25
- return definition;
26
- };
27
- const resolveInheritanceChain = (set, agentSlug) => {
28
- const entries = [];
29
- const composed = new Set();
30
- const visiting = [];
31
- const errors = [];
32
- const visit = (slug) => {
33
- if (composed.has(slug))
34
- return;
35
- const cycleIndex = visiting.indexOf(slug);
36
- if (cycleIndex !== -1) {
37
- errors.push(`Agent inheritance cycle detected: ${[...visiting.slice(cycleIndex), slug].join(' -> ')}.`);
38
- return;
39
- }
40
- const resource = findResource(set, 'agent', slug);
41
- if (resource === undefined) {
42
- errors.push(`Agent inheritance references unknown parent '${slug}' in chain ${[...visiting, slug].join(' -> ')}.`);
43
- return;
44
- }
45
- const definition = readValidAgent(resource);
46
- if (typeof definition === 'string') {
47
- errors.push(`Agent '${slug}' is invalid: ${definition}`);
48
- return;
49
- }
50
- visiting.push(slug);
51
- for (const parent of definition.inherits)
52
- visit(parent);
53
- visiting.pop();
54
- if (!composed.has(slug)) {
55
- composed.add(slug);
56
- entries.push({ resource, definition });
57
- }
58
- };
59
- visit(agentSlug);
60
- return errors.length > 0 ? { errors } : { entries, errors: [] };
61
- };
62
21
  const stablePush = (items, keySet, key, value) => {
63
22
  if (!keySet.has(key)) {
64
23
  keySet.add(key);
@@ -114,17 +73,18 @@ const nearestPrompt = (chain, select) => {
114
73
  }
115
74
  return undefined;
116
75
  };
117
- const composeEffectiveControls = (chain) => {
118
- const skills = declaredSelections(chain, (definition) => definition.loadout.skills);
119
- const subagents = declaredSelections(chain, (definition) => definition.loadout.subagents);
120
- const mcp = declaredSelections(chain, (definition) => definition.loadout.mcp);
76
+ const composeEffectiveControls = (chain, defaults) => {
77
+ // Settings defaults compose ahead of the whole chain, parent-first, like a root-most ancestor.
78
+ const skills = mergeSelections(settingsSelections(defaults?.skills), declaredSelections(chain, (definition) => definition.loadout.skills));
79
+ const subagents = mergeSelections(settingsSelections(defaults?.subagents), declaredSelections(chain, (definition) => definition.loadout.subagents));
80
+ const mcp = mergeSelections(settingsSelections(defaults?.mcp), declaredSelections(chain, (definition) => definition.loadout.mcp));
121
81
  const model = nearest(chain, (definition) => definition.loadout.model);
122
82
  const thinking = nearest(chain, (definition) => definition.loadout.thinking);
123
83
  return {
124
84
  skillSelections: skills,
125
85
  subagentSelections: subagents,
126
86
  mcpSelections: mcp,
127
- appendPromptSelections: appendPromptSelections(chain),
87
+ appendPromptSelections: mergePromptSelections(settingsPromptSelections(defaults?.appendSystemPrompt), appendPromptSelections(chain)),
128
88
  systemPrompt: nearestPrompt(chain, (definition) => definition.promptControls.systemPrompt),
129
89
  promptTemplate: nearestPrompt(chain, (definition) => definition.promptControls.promptTemplate),
130
90
  label: nearest(chain, (definition) => definition.label),
@@ -133,90 +93,21 @@ const composeEffectiveControls = (chain) => {
133
93
  skills: skills.map((selection) => selection.slug),
134
94
  subagents: subagents.map((selection) => selection.slug),
135
95
  mcp: mcp.map((selection) => selection.slug),
136
- extensions: uniqueStrings(chain.flatMap((entry) => entry.definition.loadout.extensions)),
137
- plugins: uniqueStrings(chain.flatMap((entry) => entry.definition.loadout.plugins)),
96
+ extensions: uniqueStrings([
97
+ ...(defaults?.extensions ?? []),
98
+ ...chain.flatMap((entry) => entry.definition.loadout.extensions),
99
+ ]),
100
+ plugins: uniqueStrings([
101
+ ...(defaults?.plugins ?? []),
102
+ ...chain.flatMap((entry) => entry.definition.loadout.plugins),
103
+ ]),
138
104
  model,
139
105
  thinking,
140
106
  tools: composeTools(chain),
141
107
  },
142
108
  };
143
109
  };
144
- const resolveDeclaredSlugs = (set, kind, reference, selections, warnings) => {
145
- const resolved = [];
146
- for (const selection of selections) {
147
- const resource = findLoadoutResource(set, selection.owner, kind, selection.slug);
148
- if (resource === undefined) {
149
- warnings.push(`${reference} references unknown ${kind} '${selection.slug}'.`);
150
- }
151
- else {
152
- resolved.push(resource);
153
- }
154
- }
155
- return resolved;
156
- };
157
- const asRecord = (value) => value !== null && typeof value === 'object' && !Array.isArray(value) ? value : undefined;
158
- const readMcpServers = (path, warnings) => {
159
- let parsed;
160
- try {
161
- parsed = JSON.parse(readFileSync(path, 'utf8'));
162
- }
163
- catch (error) {
164
- warnings.push(`MCP configuration '${path}' is not readable JSON: ${String(error)}`);
165
- return {};
166
- }
167
- const document = asRecord(parsed);
168
- const servers = document === undefined ? undefined : asRecord(document.mcpServers);
169
- if (servers === undefined) {
170
- warnings.push(`MCP configuration '${path}' must contain an object-valued 'mcpServers' map.`);
171
- return {};
172
- }
173
- return servers;
174
- };
175
- const composeMcpServers = (set, selections, warnings) => {
176
- if (selections.length === 0)
177
- return {};
178
- const rootPaths = set.layers.map((layer) => join(layer.root, 'mcp.json')).filter((path) => existsSync(path));
179
- const roots = set.layers.map((layer) => layer.root);
180
- const cache = new Map();
181
- const serversAt = (path) => {
182
- const cached = cache.get(path);
183
- if (cached !== undefined)
184
- return cached;
185
- let servers;
186
- if (escapesRoots(path, roots)) {
187
- warnings.push(`MCP configuration '${path}' resolves outside the resource layers and was skipped.`);
188
- servers = {};
189
- }
190
- else {
191
- servers = readMcpServers(path, warnings);
192
- }
193
- cache.set(path, servers);
194
- return servers;
195
- };
196
- const selected = {};
197
- for (const selection of selections) {
198
- // MCP selections are created only from entries in the resolved inheritance chain.
199
- const owner = findResource(set, 'agent', selection.owner);
200
- // Root definitions are shared; only the declaring agent's overlays may override its selection.
201
- const ownerPaths = [...owner.mcpPaths].reverse();
202
- const pathsByPrecedence = [...rootPaths].reverse().concat(ownerPaths);
203
- let definition;
204
- let found = false;
205
- for (const path of pathsByPrecedence) {
206
- const servers = serversAt(path);
207
- if (Object.hasOwn(servers, selection.slug)) {
208
- definition = servers[selection.slug];
209
- found = true;
210
- }
211
- }
212
- if (found)
213
- selected[selection.slug] = definition;
214
- else
215
- warnings.push(`loadout mcp references unknown server '${selection.slug}'.`);
216
- }
217
- return selected;
218
- };
219
- const resolveDelegateSkills = (set, subagents, leaderSkills, warnings) => {
110
+ const resolveDelegateSkills = (set, subagents, leaderSkills, defaults, warnings) => {
220
111
  const skills = new Map(leaderSkills.map((skill) => [skill.slug, skill]));
221
112
  const delegateSkills = [];
222
113
  const roots = set.layers.map((layer) => layer.root);
@@ -228,8 +119,8 @@ const resolveDelegateSkills = (set, subagents, leaderSkills, warnings) => {
228
119
  const chain = resolveInheritanceChain(set, subagent.slug);
229
120
  if (chain.entries === undefined)
230
121
  continue;
231
- const controls = composeEffectiveControls(chain.entries);
232
- for (const skill of resolveDeclaredSlugs(set, 'skill', `subagent '${subagent.slug}' loadout skills`, controls.skillSelections, warnings)) {
122
+ const controls = composeEffectiveControls(chain.entries, defaults);
123
+ for (const skill of resolveDeclaredSlugs(set, 'skill', controls.skillSelections, warnings, `subagent '${subagent.slug}' `)) {
233
124
  const selected = skills.get(skill.slug);
234
125
  if (selected === undefined) {
235
126
  skills.set(skill.slug, skill);
@@ -242,12 +133,12 @@ const resolveDelegateSkills = (set, subagents, leaderSkills, warnings) => {
242
133
  }
243
134
  return delegateSkills;
244
135
  };
245
- const composeLoadout = (set, controls, warnings) => {
246
- const subagents = resolveDeclaredSlugs(set, 'agent', 'loadout subagents', controls.subagentSelections, warnings);
247
- const skills = resolveDeclaredSlugs(set, 'skill', 'loadout skills', controls.skillSelections, warnings);
136
+ const composeLoadout = (set, controls, defaults, warnings) => {
137
+ const subagents = resolveDeclaredSlugs(set, 'agent', controls.subagentSelections, warnings);
138
+ const skills = resolveDeclaredSlugs(set, 'skill', controls.skillSelections, warnings);
248
139
  return {
249
140
  skills,
250
- delegateSkills: resolveDelegateSkills(set, subagents, skills, warnings),
141
+ delegateSkills: resolveDelegateSkills(set, subagents, skills, defaults, warnings),
251
142
  subagents,
252
143
  mcp: controls.loadout.mcp,
253
144
  mcpServers: composeMcpServers(set, controls.mcpSelections, warnings),
@@ -259,7 +150,10 @@ const composeLoadout = (set, controls, warnings) => {
259
150
  };
260
151
  };
261
152
  const resolvePromptSelection = (set, selection, options, label, warnings, errors) => {
262
- // Prompt selections are created only from entries in the resolved inheritance chain.
153
+ if (selection.owner === undefined) {
154
+ return resolveSettingsPromptSelection(set, selection, options.projectDirectory, label, warnings, errors);
155
+ }
156
+ // Prompt selections from the chain resolve in their declaring agent's namespace.
263
157
  const owner = findResource(set, 'agent', selection.owner);
264
158
  const resolved = resolvePromptSource({
265
159
  source: selection.source,
@@ -275,7 +169,11 @@ const resolvePromptSelection = (set, selection, options, label, warnings, errors
275
169
  errors.push(resolved.error);
276
170
  return resolved.fragment;
277
171
  };
278
- const resolveOptionalPrompt = (set, selection, options, label, warnings, errors) => selection === undefined ? undefined : resolvePromptSelection(set, selection, options, label, warnings, errors);
172
+ const resolveOptionalPrompt = (set, selection, options, label, warnings, errors) =>
173
+ // The fixed role label carries the provenance here; the index is never part of it.
174
+ selection === undefined
175
+ ? undefined
176
+ : resolvePromptSelection(set, { ...selection, index: 0 }, options, label, warnings, errors);
279
177
  const composeIdentity = (set, chain, controls, options, warnings, errors) => {
280
178
  const declaredSystemPrompt = resolveOptionalPrompt(set, controls.systemPrompt, options, 'system-prompt', warnings, errors);
281
179
  if (declaredSystemPrompt?.kind === 'repo_file') {
@@ -284,7 +182,7 @@ const composeIdentity = (set, chain, controls, options, warnings, errors) => {
284
182
  const systemPrompt = declaredSystemPrompt ?? readRootFile(set, 'system-prompt.md');
285
183
  const sharedContext = readRootFile(set, 'agents.md');
286
184
  const appendSystemPrompts = controls.appendPromptSelections
287
- .map((selection) => resolvePromptSelection(set, selection, options, `append-${selection.owner}-${selection.index + 1}`, warnings, errors))
185
+ .map((selection) => resolvePromptSelection(set, selection, options, `append-${selection.owner ?? SETTINGS_DEFAULTS_DECLARER}-${selection.index + 1}`, warnings, errors))
288
186
  .filter((fragment) => fragment !== undefined);
289
187
  const promptTemplate = resolveOptionalPrompt(set, controls.promptTemplate, options, 'prompt-template', warnings, errors);
290
188
  const agentBodies = chain.map((entry) => agentBodyFragment({
@@ -318,9 +216,10 @@ const composeSubagents = (set, subagents, options, warnings, errors) => {
318
216
  errors.push(...chainResult.errors.map((error) => `Subagent '${resource.slug}' is invalid: ${error}`));
319
217
  continue;
320
218
  }
321
- const controls = composeEffectiveControls(chainResult.entries);
219
+ // Delegates are agents too, so settings defaults compose into them ahead of their own chain.
220
+ const controls = composeEffectiveControls(chainResult.entries, options.agentDefaults);
322
221
  const identity = composeIdentity(set, chainResult.entries, controls, options, warnings, errors);
323
- const skills = resolveDeclaredSlugs(set, 'skill', `subagent '${resource.slug}' loadout skills`, controls.skillSelections, warnings);
222
+ const skills = resolveDeclaredSlugs(set, 'skill', controls.skillSelections, warnings, `subagent '${resource.slug}' `);
324
223
  composed.push({
325
224
  resource,
326
225
  identity,
@@ -347,14 +246,15 @@ export const compose = (set, agentSlug, options = {}) => {
347
246
  const chain = chainResult.entries;
348
247
  const warnings = [];
349
248
  const errors = [];
350
- const controls = composeEffectiveControls(chain);
249
+ const controls = composeEffectiveControls(chain, options.agentDefaults);
351
250
  const identity = composeIdentity(set, chain, controls, options, warnings, errors);
352
- const loadout = composeLoadout(set, controls, warnings);
251
+ const loadout = composeLoadout(set, controls, options.agentDefaults, warnings);
353
252
  const models = resolveModelRegistry(set, loadout.model, warnings, errors);
354
253
  const composedSubagents = composeSubagents(set, loadout.subagents, options, warnings, errors);
355
254
  const uniqueWarnings = uniqueStrings(warnings);
356
255
  if (errors.length > 0)
357
256
  return { errors, warnings: uniqueWarnings };
257
+ const agentDefaults = planAgentDefaults(options.agentDefaults);
358
258
  return {
359
259
  plan: {
360
260
  agent: agentSlug,
@@ -363,6 +263,7 @@ export const compose = (set, agentSlug, options = {}) => {
363
263
  loadout: { ...loadout, composedSubagents },
364
264
  contributingAgents: chain.map((entry) => entry.resource),
365
265
  inheritanceChain: chain.map((entry) => entry.resource.slug),
266
+ ...(agentDefaults === undefined ? {} : { agentDefaults }),
366
267
  warnings: uniqueWarnings,
367
268
  },
368
269
  errors: [],
@@ -1 +1 @@
1
- {"version":3,"file":"Composer.js","sourceRoot":"","sources":["../../src/composer/Composer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Composer.js","sourceRoot":"","sources":["../../src/composer/Composer.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { PromptSourceReference } from './PromptSource.js';
1
2
  import type { Loadout, ResolvedResource } from '../resolver/Resource.js';
2
3
  import type { EffectiveModelRegistry } from './Models.js';
3
4
  import type { PromptFragment } from './PromptSource.js';
@@ -37,6 +38,19 @@ export interface ComposedSubagent {
37
38
  readonly thinking?: string;
38
39
  readonly tools?: Loadout['tools'];
39
40
  }
41
+ /**
42
+ * Settings-layer (`settings.yml:agent_defaults`) entries composed into one agent, as declared.
43
+ * Present on a plan only when the settings layer actually declares defaults, so catalogs without
44
+ * `agent_defaults` compose byte-identical plans.
45
+ */
46
+ export interface CompositionAgentDefaults {
47
+ readonly extensions?: readonly string[];
48
+ readonly skills?: readonly string[];
49
+ readonly mcp?: readonly string[];
50
+ readonly plugins?: readonly string[];
51
+ readonly subagents?: readonly string[];
52
+ readonly appendSystemPrompt?: readonly PromptSourceReference[];
53
+ }
40
54
  /** A loadout with its slug references resolved against the effective set. */
41
55
  export interface ComposedLoadout {
42
56
  readonly skills: readonly ResolvedResource[];
@@ -68,6 +82,8 @@ export interface CompositionPlan {
68
82
  readonly contributingAgents?: readonly ResolvedResource[];
69
83
  /** Parent-first chain of agent slugs that contributed to this composition, selected child last. */
70
84
  readonly inheritanceChain?: readonly string[];
85
+ /** Settings-layer defaults composed ahead of the inheritance chain, when declared. */
86
+ readonly agentDefaults?: CompositionAgentDefaults;
71
87
  /** Non-fatal issues (e.g. unknown loadout slugs) surfaced during composition. */
72
88
  readonly warnings: readonly string[];
73
89
  }
@@ -0,0 +1,33 @@
1
+ import type { CompositionAgentDefaults } from './Composition.js';
2
+ import type { PromptFragment, PromptSourceReference } from './PromptSource.js';
3
+ import type { EffectiveResourceSet, ResolvedResource } from '../resolver/Resource.js';
4
+ import type { AgentDefaults } from '../settings/Settings.js';
5
+ /** One declared loadout slug and where it was declared; `owner` is unset for settings defaults. */
6
+ export interface DeclaredSlug {
7
+ readonly slug: string;
8
+ readonly owner?: string;
9
+ }
10
+ export interface PromptSelection {
11
+ readonly source: PromptSourceReference;
12
+ readonly owner?: string;
13
+ /** Position within the declaring surface; append selections number fragments for their labels. */
14
+ readonly index: number;
15
+ }
16
+ /** Provenance label for settings-layer declarations; the colon is unreachable by agent slugs. */
17
+ export declare const SETTINGS_DEFAULTS_DECLARER = "settings:agent_defaults";
18
+ /** Settings-layer selections resolve catalog-wide; chain entries resolve owner-first. */
19
+ export declare const settingsSelections: (slugs: readonly string[] | undefined) => readonly DeclaredSlug[];
20
+ /** Composes selection groups parent-first, collapsing duplicate slugs to their first occurrence. */
21
+ export declare const mergeSelections: (...groups: readonly (readonly DeclaredSlug[])[]) => readonly DeclaredSlug[];
22
+ export declare const settingsPromptSelections: (sources: readonly PromptSourceReference[] | undefined) => readonly PromptSelection[];
23
+ /** Composes prompt-selection groups parent-first, collapsing duplicate sources to their first occurrence. */
24
+ export declare const mergePromptSelections: (...groups: readonly (readonly PromptSelection[])[]) => readonly PromptSelection[];
25
+ /** Resolves a selection where it was declared: settings defaults catalog-wide, chain entries owner-first. */
26
+ export declare const resolveSelectionResource: (set: EffectiveResourceSet, kind: "skill" | "agent", selection: DeclaredSlug) => ResolvedResource | undefined;
27
+ /** Names the declaring layer of a selection so unresolved references point at the right surface. */
28
+ export declare const selectionReference: (kind: "skill" | "agent", selection: DeclaredSlug) => string;
29
+ export declare const resolveDeclaredSlugs: (set: EffectiveResourceSet, kind: "skill" | "agent", selections: readonly DeclaredSlug[], warnings: string[], prefix?: string) => readonly ResolvedResource[];
30
+ /** Resolves one settings-layer prompt source; catalog `file` sources use the first layer that has the file. */
31
+ export declare const resolveSettingsPromptSelection: (set: EffectiveResourceSet, selection: PromptSelection, projectDirectory: string | undefined, label: string, warnings: string[], errors: string[]) => PromptFragment | undefined;
32
+ /** The settings-layer defaults a plan records, present only when the layer actually declares some. */
33
+ export declare const planAgentDefaults: (defaults: AgentDefaults | undefined) => CompositionAgentDefaults | undefined;
@@ -0,0 +1,103 @@
1
+ // Composes settings-layer (`settings.yml:agent_defaults`) entries into an agent's effective loadout.
2
+ // Defaults ride the same deterministic parent-first ordering and stable de-duplication as inherited
3
+ // agent loadouts, resolving catalog-wide ahead of the whole inheritance chain — like a root-most
4
+ // ancestor — while agent-declared entries keep owner-first resolution.
5
+ import { existsSync } from 'node:fs';
6
+ import { join } from 'node:path';
7
+ import { promptSourceKey, resolvePromptSource } from './PromptSource.js';
8
+ import { findLoadoutResource, findResource } from '../resolver/Resource.js';
9
+ import { isEmptyAgentDefaults } from '../settings/Settings.js';
10
+ /** Provenance label for settings-layer declarations; the colon is unreachable by agent slugs. */
11
+ export const SETTINGS_DEFAULTS_DECLARER = 'settings:agent_defaults';
12
+ /** Settings-layer selections resolve catalog-wide; chain entries resolve owner-first. */
13
+ export const settingsSelections = (slugs) => (slugs ?? []).map((slug) => ({ slug, owner: undefined }));
14
+ /** Composes selection groups parent-first, collapsing duplicate slugs to their first occurrence. */
15
+ export const mergeSelections = (...groups) => {
16
+ const selections = [];
17
+ const seen = new Set();
18
+ for (const group of groups) {
19
+ for (const selection of group) {
20
+ if (!seen.has(selection.slug)) {
21
+ seen.add(selection.slug);
22
+ selections.push(selection);
23
+ }
24
+ }
25
+ }
26
+ return selections;
27
+ };
28
+ export const settingsPromptSelections = (sources) => (sources ?? []).map((source, index) => ({ source, owner: undefined, index }));
29
+ /** Composes prompt-selection groups parent-first, collapsing duplicate sources to their first occurrence. */
30
+ export const mergePromptSelections = (...groups) => {
31
+ const selections = [];
32
+ const seen = new Set();
33
+ for (const group of groups) {
34
+ for (const selection of group) {
35
+ const key = promptSourceKey(selection.source);
36
+ if (!seen.has(key)) {
37
+ seen.add(key);
38
+ selections.push(selection);
39
+ }
40
+ }
41
+ }
42
+ return selections;
43
+ };
44
+ /** Resolves a selection where it was declared: settings defaults catalog-wide, chain entries owner-first. */
45
+ export const resolveSelectionResource = (set, kind, selection) => selection.owner === undefined
46
+ ? findResource(set, kind, selection.slug)
47
+ : findLoadoutResource(set, selection.owner, kind, selection.slug);
48
+ /** Names the declaring layer of a selection so unresolved references point at the right surface. */
49
+ export const selectionReference = (kind, selection) => {
50
+ const noun = kind === 'agent' ? 'subagents' : `${kind}s`;
51
+ return selection.owner === undefined ? `agent_defaults ${noun}` : `loadout ${noun}`;
52
+ };
53
+ export const resolveDeclaredSlugs = (set, kind, selections, warnings, prefix = '') => {
54
+ const resolved = [];
55
+ for (const selection of selections) {
56
+ const resource = resolveSelectionResource(set, kind, selection);
57
+ if (resource === undefined) {
58
+ warnings.push(`${prefix}${selectionReference(kind, selection)} references unknown ${kind} '${selection.slug}'.`);
59
+ }
60
+ else {
61
+ resolved.push(resource);
62
+ }
63
+ }
64
+ return resolved;
65
+ };
66
+ /** Resolves one settings-layer prompt source; catalog `file` sources use the first layer that has the file. */
67
+ export const resolveSettingsPromptSelection = (set, selection, projectDirectory, label, warnings, errors) => {
68
+ const file = selection.source.file;
69
+ // Highest-precedence layer wins; a file no layer contains falls through to the workspace layer so
70
+ // resolvePromptSource reports the standard missing-file error. Prompt resolution only runs for a
71
+ // resolvable agent, and agents live inside layers, so a layer always exists here.
72
+ const layer = file !== undefined
73
+ ? (set.layers.find((candidate) => existsSync(join(candidate.root, file))) ?? set.layers[0])
74
+ : set.layers[0];
75
+ const resolved = resolvePromptSource({
76
+ source: selection.source,
77
+ declaringAgent: SETTINGS_DEFAULTS_DECLARER,
78
+ layer,
79
+ projectDirectory,
80
+ optionalRepoFile: true,
81
+ label,
82
+ });
83
+ if (resolved.warning !== undefined)
84
+ warnings.push(resolved.warning);
85
+ if (resolved.error !== undefined)
86
+ errors.push(resolved.error);
87
+ return resolved.fragment;
88
+ };
89
+ /** The settings-layer defaults a plan records, present only when the layer actually declares some. */
90
+ export const planAgentDefaults = (defaults) => {
91
+ if (defaults === undefined || isEmptyAgentDefaults(defaults))
92
+ return undefined;
93
+ const nonEmpty = (values) => values !== undefined && values.length > 0 ? values : undefined;
94
+ return {
95
+ extensions: nonEmpty(defaults.extensions),
96
+ skills: nonEmpty(defaults.skills),
97
+ mcp: nonEmpty(defaults.mcp),
98
+ plugins: nonEmpty(defaults.plugins),
99
+ subagents: nonEmpty(defaults.subagents),
100
+ appendSystemPrompt: nonEmpty(defaults.appendSystemPrompt),
101
+ };
102
+ };
103
+ //# sourceMappingURL=Defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Defaults.js","sourceRoot":"","sources":["../../src/composer/Defaults.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { EffectiveResourceSet } from '../resolver/Resource.js';
2
+ import type { DeclaredSlug } from './Defaults.js';
3
+ export declare const composeMcpServers: (set: EffectiveResourceSet, selections: readonly DeclaredSlug[], warnings: string[]) => Readonly<Record<string, unknown>>;
@@ -0,0 +1,68 @@
1
+ // Resolves selected MCP server ids into their effective definitions, layer- and owner-aware.
2
+ import { existsSync, readFileSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+ import { escapesRoots } from '../dump/Containment.js';
5
+ import { findResource } from '../resolver/Resource.js';
6
+ const asRecord = (value) => value !== null && typeof value === 'object' && !Array.isArray(value) ? value : undefined;
7
+ const readMcpServers = (path, warnings) => {
8
+ let parsed;
9
+ try {
10
+ parsed = JSON.parse(readFileSync(path, 'utf8'));
11
+ }
12
+ catch (error) {
13
+ warnings.push(`MCP configuration '${path}' is not readable JSON: ${String(error)}`);
14
+ return {};
15
+ }
16
+ const document = asRecord(parsed);
17
+ const servers = document === undefined ? undefined : asRecord(document.mcpServers);
18
+ if (servers === undefined) {
19
+ warnings.push(`MCP configuration '${path}' must contain an object-valued 'mcpServers' map.`);
20
+ return {};
21
+ }
22
+ return servers;
23
+ };
24
+ export const composeMcpServers = (set, selections, warnings) => {
25
+ if (selections.length === 0)
26
+ return {};
27
+ const rootPaths = set.layers.map((layer) => join(layer.root, 'mcp.json')).filter((path) => existsSync(path));
28
+ const roots = set.layers.map((layer) => layer.root);
29
+ const cache = new Map();
30
+ const serversAt = (path) => {
31
+ const cached = cache.get(path);
32
+ if (cached !== undefined)
33
+ return cached;
34
+ let servers;
35
+ if (escapesRoots(path, roots)) {
36
+ warnings.push(`MCP configuration '${path}' resolves outside the resource layers and was skipped.`);
37
+ servers = {};
38
+ }
39
+ else {
40
+ servers = readMcpServers(path, warnings);
41
+ }
42
+ cache.set(path, servers);
43
+ return servers;
44
+ };
45
+ const selected = {};
46
+ for (const selection of selections) {
47
+ // Settings defaults resolve against tree-root mcp.json only; chain entries also consult the
48
+ // declaring agent's overlays. Resolver annotates every agent resource with mcpPaths.
49
+ const ownerPaths = selection.owner === undefined ? [] : [...findResource(set, 'agent', selection.owner).mcpPaths].reverse();
50
+ // Root definitions are shared; only the declaring agent's overlays may override its selection.
51
+ const pathsByPrecedence = [...rootPaths].reverse().concat(ownerPaths);
52
+ let definition;
53
+ let found = false;
54
+ for (const path of pathsByPrecedence) {
55
+ const servers = serversAt(path);
56
+ if (Object.hasOwn(servers, selection.slug)) {
57
+ definition = servers[selection.slug];
58
+ found = true;
59
+ }
60
+ }
61
+ if (found)
62
+ selected[selection.slug] = definition;
63
+ else
64
+ warnings.push(`${selection.owner === undefined ? 'agent_defaults mcp' : 'loadout mcp'} references unknown server '${selection.slug}'.`);
65
+ }
66
+ return selected;
67
+ };
68
+ //# sourceMappingURL=Mcp.js.map