@ai-outfitter/outfitter 1.14.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 (111) hide show
  1. package/README.md +8 -4
  2. package/code/pi-extension/src/outfitter-extension.js +155 -65
  3. package/code/pi-extension/src/outfitter-runtime-extension.js +41 -25
  4. package/dist/cli/OutfitterCli.js +2 -0
  5. package/dist/cli/OutfitterCli.js.map +1 -1
  6. package/dist/cli/commands/DumpCommand.js +2 -2
  7. package/dist/cli/commands/DumpCommand.js.map +1 -1
  8. package/dist/cli/commands/LinkCommand.d.ts +27 -0
  9. package/dist/cli/commands/LinkCommand.js +137 -0
  10. package/dist/cli/commands/LinkCommand.js.map +1 -0
  11. package/dist/cli/commands/ListCommand.d.ts +2 -0
  12. package/dist/cli/commands/ListCommand.js +32 -8
  13. package/dist/cli/commands/ListCommand.js.map +1 -1
  14. package/dist/cli/commands/PiRuntimeLaunch.d.ts +6 -0
  15. package/dist/cli/commands/PiRuntimeLaunch.js +11 -1
  16. package/dist/cli/commands/PiRuntimeLaunch.js.map +1 -1
  17. package/dist/cli/commands/RunAgentCommand.d.ts +2 -0
  18. package/dist/cli/commands/RunAgentCommand.js +36 -14
  19. package/dist/cli/commands/RunAgentCommand.js.map +1 -1
  20. package/dist/cli/commands/SetupCommand.d.ts +22 -1
  21. package/dist/cli/commands/SetupCommand.js +97 -8
  22. package/dist/cli/commands/SetupCommand.js.map +1 -1
  23. package/dist/cli/commands/ValidateCommand.js +4 -1
  24. package/dist/cli/commands/ValidateCommand.js.map +1 -1
  25. package/dist/cli.js +14 -6
  26. package/dist/cli.js.map +1 -1
  27. package/dist/composer/Chain.d.ts +10 -0
  28. package/dist/composer/Chain.js +47 -0
  29. package/dist/composer/Chain.js.map +1 -0
  30. package/dist/composer/Composer.d.ts +6 -0
  31. package/dist/composer/Composer.js +42 -141
  32. package/dist/composer/Composer.js.map +1 -1
  33. package/dist/composer/Composition.d.ts +16 -0
  34. package/dist/composer/Defaults.d.ts +33 -0
  35. package/dist/composer/Defaults.js +103 -0
  36. package/dist/composer/Defaults.js.map +1 -0
  37. package/dist/composer/Mcp.d.ts +3 -0
  38. package/dist/composer/Mcp.js +68 -0
  39. package/dist/composer/Mcp.js.map +1 -0
  40. package/dist/dump/Dump.d.ts +2 -1
  41. package/dist/dump/Dump.js +67 -4
  42. package/dist/dump/Dump.js.map +1 -1
  43. package/dist/dump/WorkflowDump.d.ts +9 -1
  44. package/dist/dump/WorkflowDump.js +7 -3
  45. package/dist/dump/WorkflowDump.js.map +1 -1
  46. package/dist/links/HarnessHome.d.ts +15 -0
  47. package/dist/links/HarnessHome.js +23 -0
  48. package/dist/links/HarnessHome.js.map +1 -0
  49. package/dist/links/HarnessLinkApply.d.ts +26 -0
  50. package/dist/links/HarnessLinkApply.js +356 -0
  51. package/dist/links/HarnessLinkApply.js.map +1 -0
  52. package/dist/links/HarnessLinkPlan.d.ts +70 -0
  53. package/dist/links/HarnessLinkPlan.js +224 -0
  54. package/dist/links/HarnessLinkPlan.js.map +1 -0
  55. package/dist/links/HarnessMcp.d.ts +9 -0
  56. package/dist/links/HarnessMcp.js +67 -0
  57. package/dist/links/HarnessMcp.js.map +1 -0
  58. package/dist/projection/CodexSettings.d.ts +3 -0
  59. package/dist/projection/CodexSettings.js +17 -0
  60. package/dist/projection/CodexSettings.js.map +1 -0
  61. package/dist/projection/Materialize.d.ts +20 -2
  62. package/dist/projection/Materialize.js +66 -33
  63. package/dist/projection/Materialize.js.map +1 -1
  64. package/dist/projection/ProjectHarness.js +58 -14
  65. package/dist/projection/ProjectHarness.js.map +1 -1
  66. package/dist/projection/Projection.d.ts +3 -1
  67. package/dist/resolver/ResolverValidation.d.ts +5 -0
  68. package/dist/resolver/ResolverValidation.js +45 -10
  69. package/dist/resolver/ResolverValidation.js.map +1 -1
  70. package/dist/resolver/WorkflowDefinition.d.ts +10 -0
  71. package/dist/resolver/WorkflowDefinition.js.map +1 -1
  72. package/dist/resolver/WorkflowOutput.d.ts +9 -0
  73. package/dist/resolver/WorkflowOutput.js +40 -0
  74. package/dist/resolver/WorkflowOutput.js.map +1 -0
  75. package/dist/schemas/settings.schema.json +48 -1
  76. package/dist/schemas/workflow.schema.json +26 -0
  77. package/dist/settings/Settings.d.ts +22 -0
  78. package/dist/settings/Settings.js +14 -0
  79. package/dist/settings/Settings.js.map +1 -1
  80. package/dist/settings/SettingsLoader.js +17 -0
  81. package/dist/settings/SettingsLoader.js.map +1 -1
  82. package/dist/settings/SettingsMerger.js +37 -0
  83. package/dist/settings/SettingsMerger.js.map +1 -1
  84. package/dist/setup/DefaultCatalog.d.ts +4 -2
  85. package/dist/setup/DefaultCatalog.js +5 -3
  86. package/dist/setup/DefaultCatalog.js.map +1 -1
  87. package/dist/setup/Setup.d.ts +11 -2
  88. package/dist/setup/Setup.js +51 -39
  89. package/dist/setup/Setup.js.map +1 -1
  90. package/dist/version/NodeVersionGuard.d.ts +13 -0
  91. package/dist/version/NodeVersionGuard.js +50 -0
  92. package/dist/version/NodeVersionGuard.js.map +1 -0
  93. package/docs/architecture/state_writeback_strategy.md +1 -1
  94. package/docs/documentation/README.md +1 -1
  95. package/docs/documentation/catalogs.md +36 -1
  96. package/docs/documentation/cli.md +42 -7
  97. package/docs/documentation/conventions.md +1 -1
  98. package/docs/documentation/dump-and-bake.md +1 -1
  99. package/docs/documentation/getting-started.md +4 -2
  100. package/docs/documentation/linking-harnesses.md +88 -0
  101. package/docs/documentation/local-development.md +5 -7
  102. package/docs/documentation/migration.md +1 -1
  103. package/docs/documentation/settings.md +68 -3
  104. package/docs/documentation/state.md +1 -1
  105. package/docs/documentation/support-matrix.md +3 -1
  106. package/docs/documentation/switching-to-outfitter.md +1 -1
  107. package/docs/documentation/usecases/shared-conventions.md +1 -1
  108. package/package.json +2 -1
  109. package/src/schemas/settings.schema.json +48 -1
  110. package/src/schemas/workflow.schema.json +26 -0
  111. package/docs/documentation/porting-claude.md +0 -58
@@ -5,14 +5,20 @@ import { tmpdir } from 'node:os';
5
5
  import { join, resolve } from 'node:path';
6
6
  import { Command, Option } from 'commander';
7
7
  import { launchThroughSpawn, spawnLauncher } from '../../agents/AgentLaunch.js';
8
+ import { resolvePiUserAgentDirectory, seedPiCredentials } from '../../agents/PiCredentialPersistence.js';
8
9
  import { readRepositoryCodeAsset } from '../../paths/RepositoryAssets.js';
9
10
  import { HARNESSES } from '../../settings/Settings.js';
10
11
  import { discoverSettingsLoadPlan, loadSettings } from '../../settings/SettingsLoader.js';
11
- import { applySetupSelection, discoverSetupAgentChoices, setupNextStepMessage } from '../../setup/Setup.js';
12
+ import { applySetupSelection, discoverSetupAgentChoices, providerLoginHint, setupNextStepMessage, } from '../../setup/Setup.js';
12
13
  import { bootstrapDefaultCatalog } from '../../setup/DefaultCatalog.js';
13
14
  import { startTerminalLoading } from '../TerminalLoading.js';
14
15
  import { resolveHomeDirectory, resolveProjectDirectory } from './ProcessDefaults.js';
15
16
  import { executeRunAgentCommand } from './RunAgentCommand.js';
17
+ /**
18
+ * The offline placeholder provider given to the setup shell so pi starts without a login warning.
19
+ * The walkthrough's provider check ignores it, so only real providers count as connected.
20
+ */
21
+ export const setupPlaceholderProviderId = 'outfitter-setup';
16
22
  export const createPiSetupExtensionContent = (input) => {
17
23
  const values = {
18
24
  OUTFITTER_HOME: input.homeDirectory,
@@ -22,12 +28,80 @@ export const createPiSetupExtensionContent = (input) => {
22
28
  OUTFITTER_CURRENT_DEFAULT: input.currentDefault,
23
29
  OUTFITTER_SETUP_SOURCE_URI: input.setupSourceUri,
24
30
  OUTFITTER_AUTO_OPEN: true,
31
+ OUTFITTER_SETUP_PROVIDER: setupPlaceholderProviderId,
25
32
  };
26
33
  // One pass over the asset: every `'__OUTFITTER_X__'` placeholder is replaced with its stamped
27
34
  // JSON value; unknown placeholders are left intact.
28
35
  return readRepositoryCodeAsset('pi-extension/src/outfitter-extension.js').replace(/["']__(OUTFITTER_[A-Z_]+)__["']/gu, (match, name) => Object.hasOwn(values, name) ? JSON.stringify(values[name]) : match);
29
36
  };
30
- /** Creates an isolated, model-free Pi setup launch using the bundled extension. */
37
+ // pi reads models.json as JSONC through its own stripper (pi-coding-agent utils/json.ts, not
38
+ // exported): `//` comments and trailing commas are removed, string literals are kept verbatim, and
39
+ // block comments are not supported. Mirror it exactly so the same user file parses in both places.
40
+ const stripJsonComments = (input) => input
41
+ .replace(/"(?:\\.|[^"\\])*"|\/\/[^\n]*/gu, (match) => (match.startsWith('"') ? match : ''))
42
+ .replace(/"(?:\\.|[^"\\])*"|,(\s*[}\]])/gu, (match, tail) => tail ?? (match.startsWith('"') ? match : ''));
43
+ // The walkthrough's provider check must see the same providers the real session will, so the
44
+ // user's own models.json providers join the placeholder; without them a custom-provider-only user
45
+ // would be asked to connect a provider they already have.
46
+ const readUserModelProviders = (piUserAgentDirectory) => {
47
+ const modelsPath = join(piUserAgentDirectory, 'models.json');
48
+ if (!existsSync(modelsPath))
49
+ return {};
50
+ try {
51
+ const parsed = JSON.parse(stripJsonComments(readFileSync(modelsPath, 'utf8')));
52
+ const providers = parsed?.providers;
53
+ return providers !== null && typeof providers === 'object' ? providers : {};
54
+ }
55
+ catch {
56
+ return {};
57
+ }
58
+ };
59
+ const readOptionalFile = (path) => existsSync(path) ? readFileSync(path, 'utf8') : undefined;
60
+ // pi treats an empty or unreadable auth.json as no credentials; anything but a plain object is
61
+ // also nothing.
62
+ const parseCredentials = (content) => {
63
+ if (content === undefined)
64
+ return {};
65
+ try {
66
+ const parsed = JSON.parse(content);
67
+ return parsed !== null && typeof parsed === 'object' && !Array.isArray(parsed)
68
+ ? parsed
69
+ : {};
70
+ }
71
+ catch {
72
+ return {};
73
+ }
74
+ };
75
+ /**
76
+ * Copies a `/login` made inside the walkthrough back to pi's durable agent directory. pi lists the
77
+ * placeholder provider among its API-key choices, so that entry is dropped first (it is never a
78
+ * real provider). Only the providers the walkthrough added, changed, or removed relative to what
79
+ * was seeded are applied, on top of the durable file as it is now, so a concurrent pi session's
80
+ * token rotation for another provider survives. Nothing is written when nothing changed.
81
+ */
82
+ export const persistSetupCredentials = (launch, piUserAgentDirectory) => {
83
+ const current = { ...parseCredentials(readOptionalFile(join(launch.piConfigDirectory, 'auth.json'))) };
84
+ delete current[setupPlaceholderProviderId];
85
+ const seeded = parseCredentials(launch.seededAuth);
86
+ const changed = [...new Set([...Object.keys(seeded), ...Object.keys(current)])].filter((provider) => JSON.stringify(seeded[provider]) !== JSON.stringify(current[provider]));
87
+ if (changed.length === 0)
88
+ return;
89
+ const durablePath = join(piUserAgentDirectory, 'auth.json');
90
+ const merged = { ...parseCredentials(readOptionalFile(durablePath)) };
91
+ for (const provider of changed) {
92
+ if (Object.hasOwn(current, provider))
93
+ merged[provider] = current[provider];
94
+ else
95
+ delete merged[provider];
96
+ }
97
+ mkdirSync(piUserAgentDirectory, { recursive: true, mode: 0o700 });
98
+ writeFileSync(durablePath, `${JSON.stringify(merged, null, 2)}\n`, { mode: 0o600 });
99
+ };
100
+ /**
101
+ * Creates an isolated, offline Pi setup launch using the bundled extension. The shell starts on a
102
+ * placeholder provider and is seeded with pi's durable credentials so the walkthrough's provider
103
+ * check reflects what the user already has; `runSetup` copies any `/login` result back.
104
+ */
31
105
  export const preparePiSetupLaunch = (input) => {
32
106
  const piConfigDirectory = join(input.setupDirectory, 'pi');
33
107
  const extensionPath = join(piConfigDirectory, 'outfitter-extension.js');
@@ -52,19 +126,25 @@ export const preparePiSetupLaunch = (input) => {
52
126
  // Pi currently renders a provider-login warning before extensions can open their UI when its
53
127
  // registry is empty. This isolated, offline-only placeholder is never called; it simply gives
54
128
  // the setup shell a selected model so the walkthrough can start cleanly without user credentials.
129
+ const piUserAgentDirectory = resolvePiUserAgentDirectory(input.homeDirectory);
55
130
  writeFileSync(join(piConfigDirectory, 'models.json'), `${JSON.stringify({
56
131
  providers: {
57
- 'outfitter-setup': {
132
+ ...readUserModelProviders(piUserAgentDirectory),
133
+ [setupPlaceholderProviderId]: {
58
134
  baseUrl: 'http://127.0.0.1:9/v1',
59
135
  api: 'openai-completions',
60
136
  apiKey: 'outfitter-setup-no-network',
61
137
  models: [{ id: 'walkthrough', name: 'Outfitter setup UI' }],
62
138
  },
63
139
  },
64
- }, null, 2)}\n`);
65
- writeFileSync(join(piConfigDirectory, 'settings.json'), `${JSON.stringify({ quietStartup: true, defaultProvider: 'outfitter-setup', defaultModel: 'walkthrough' }, null, 2)}\n`);
140
+ }, null, 2)}\n`, { mode: 0o600 });
141
+ writeFileSync(join(piConfigDirectory, 'settings.json'), `${JSON.stringify({ quietStartup: true, defaultProvider: setupPlaceholderProviderId, defaultModel: 'walkthrough' }, null, 2)}\n`);
142
+ // auth.json only: the placeholder models.json above already exists, so it is left in place.
143
+ seedPiCredentials(piConfigDirectory, piUserAgentDirectory);
66
144
  return {
67
145
  resultPath,
146
+ piConfigDirectory,
147
+ seededAuth: readOptionalFile(join(piUserAgentDirectory, 'auth.json')),
68
148
  plan: {
69
149
  command: 'pi',
70
150
  args: [
@@ -97,7 +177,7 @@ const parseSetupSelection = (path) => {
97
177
  if (value === null || typeof value !== 'object')
98
178
  return invalid();
99
179
  const selection = value;
100
- if (!['default', 'create', 'catalog', 'source'].includes(String(selection.setupMode)))
180
+ if (!['default', 'catalog', 'source'].includes(String(selection.setupMode)))
101
181
  return invalid();
102
182
  if (!HARNESSES.includes(String(selection.harness)))
103
183
  return invalid();
@@ -112,6 +192,8 @@ const parseSetupSelection = (path) => {
112
192
  return invalid();
113
193
  if (!['home', 'project'].includes(String(selection.target)))
114
194
  return invalid();
195
+ if (selection.providerConnection !== undefined && selection.providerConnection !== 'skipped')
196
+ return invalid();
115
197
  return selection;
116
198
  };
117
199
  /* v8 ignore next -- wiring to the shared spawn boundary; launchThroughSpawn itself is unit-tested. */
@@ -142,6 +224,10 @@ export const runSetup = async (dependencies = {}) => {
142
224
  });
143
225
  /* v8 ignore next -- the bundled default launcher is exercised through outfitter-dev. */
144
226
  const exitCode = await (dependencies.launcher ?? defaultLauncher)(launch.plan);
227
+ // A /login inside the walkthrough wrote to the setup shell's auth.json; keep it durable so the
228
+ // relaunched profile (and later runs) start with the provider connected. Credentials only: the
229
+ // placeholder models.json is setup scaffolding, not user state.
230
+ persistSetupCredentials(launch, resolvePiUserAgentDirectory(homeDirectory));
145
231
  if (exitCode !== 0)
146
232
  throw new Error(`The Outfitter setup walkthrough exited with code ${exitCode}.`);
147
233
  const selection = parseSetupSelection(launch.resultPath);
@@ -162,8 +248,8 @@ export const runSetup = async (dependencies = {}) => {
162
248
  /* v8 ignore next -- wiring to the shared spawn boundary; launchThroughSpawn itself is unit-tested. */
163
249
  const defaultRunLauncher = (plan) => launchThroughSpawn(spawnLauncher, plan);
164
250
  // After an explicit `outfitter setup`, start the just-selected profile in pi so the user lands in a
165
- // working session instead of being told to restart. Only a concrete agent choice (default/create
166
- // modes set `defaultAgent`) launches immediately; catalog/source setups still need a sync, so they
251
+ // working session instead of being told to restart. Only a catalog profile choice (which sets
252
+ // `defaultAgent`) launches immediately; imported catalog/source setups still need a sync, so they
167
253
  // keep their "run outfitter sync / restart" guidance and are skipped here.
168
254
  const autoLaunchSelectedProfile = async (dependencies, result, writeLine) => {
169
255
  if (result.defaultAgent === undefined)
@@ -173,6 +259,7 @@ const autoLaunchSelectedProfile = async (dependencies, result, writeLine) => {
173
259
  projectDirectory: resolve(resolveProjectDirectory(dependencies.projectDirectory)),
174
260
  harness: result.defaultHarness,
175
261
  logLevel: dependencies.logLevel,
262
+ providerPromptSkipped: result.providerPromptSkipped,
176
263
  launcher: dependencies.runLauncher ?? defaultRunLauncher,
177
264
  startLoading: dependencies.startLoading ?? startTerminalLoading,
178
265
  sourceCachePreparer: dependencies.sourceCachePreparer,
@@ -206,6 +293,8 @@ export const createSetupCommand = (dependencies = {}) => ({
206
293
  // confirmation. Setups that still need sync receive one concise next action.
207
294
  if (result.defaultAgent === undefined) {
208
295
  writeLine(setupNextStepMessage);
296
+ if (result.providerPromptSkipped === true)
297
+ writeLine(providerLoginHint);
209
298
  }
210
299
  await autoLaunchSelectedProfile({ ...dependencies, logLevel: options.logLevel }, result, writeLine);
211
300
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"SetupCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/SetupCommand.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,mEAAmE;AACnE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAG1E,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAE1F,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAiC9D,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,KAO7C,EAAU,EAAE;IACX,MAAM,MAAM,GAAG;QACb,cAAc,EAAE,KAAK,CAAC,aAAa;QACnC,iBAAiB,EAAE,KAAK,CAAC,gBAAgB;QACzC,2BAA2B,EAAE,KAAK,CAAC,UAAU;QAC7C,uBAAuB,EAAE,KAAK,CAAC,eAAe;QAC9C,yBAAyB,EAAE,KAAK,CAAC,cAAc;QAC/C,0BAA0B,EAAE,KAAK,CAAC,cAAc;QAChD,mBAAmB,EAAE,IAAI;KACjB,CAAC;IAEX,8FAA8F;IAC9F,oDAAoD;IACpD,OAAO,uBAAuB,CAAC,yCAAyC,CAAC,CAAC,OAAO,CAC/E,mCAAmC,EACnC,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE,CACtB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAE,MAAkC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAClG,CAAC;AACJ,CAAC,CAAC;AAEF,mFAAmF;AACnF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAiB,EAAE;IACtF,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAChE,SAAS,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,aAAa,CACX,aAAa,EACb,6BAA6B,CAAC;QAC5B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,UAAU;QACV,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,cAAc,EAAE,uBAAuB,CAAC,KAAK,CAAC,aAAa,CAAC;QAC5D,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC,CACH,CAAC;IACF,KAAK,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI;QAClC,CAAC,qDAAqD,EAAE,0CAA0C,CAAC;QACnG,CAAC,4CAA4C,EAAE,iCAAiC,CAAC;KACzE,EAAE,CAAC;QACX,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAC7D,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,aAAa,CAAC,eAAe,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,6FAA6F;IAC7F,8FAA8F;IAC9F,kGAAkG;IAClG,aAAa,CACX,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,EACtC,GAAG,IAAI,CAAC,SAAS,CACf;QACE,SAAS,EAAE;YACT,iBAAiB,EAAE;gBACjB,OAAO,EAAE,uBAAuB;gBAChC,GAAG,EAAE,oBAAoB;gBACzB,MAAM,EAAE,4BAA4B;gBACpC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;aAC5D;SACF;KACF,EACD,IAAI,EACJ,CAAC,CACF,IAAI,CACN,CAAC;IACF,aAAa,CACX,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,EACxC,GAAG,IAAI,CAAC,SAAS,CACf,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,EACvF,IAAI,EACJ,CAAC,CACF,IAAI,CACN,CAAC;IAEF,OAAO;QACL,UAAU;QACV,IAAI,EAAE;YACJ,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,cAAc;gBACd,WAAW;gBACX,YAAY;gBACZ,aAAa;gBACb,uBAAuB;gBACvB,aAAa;gBACb,aAAa;aACd;YACD,GAAG,EAAE,EAAE,mBAAmB,EAAE,iBAAiB,EAAE;SAChD;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,aAAqB,EAAsB,EAAE;IAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IACpE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,KAAK,GAAG,+BAA+B,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IACvF,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAA8B,EAAE;IACvE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,GAAU,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC,CAAC;IACF,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,OAAO,EAAE,CAAC;IAClE,MAAM,SAAS,GAAG,KAAgC,CAAC;IACnD,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,OAAO,EAAE,CAAC;IACxG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAY,CAAC;QAAE,OAAO,OAAO,EAAE,CAAC;IAChF,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ;QACvG,OAAO,OAAO,EAAE,CAAC;IACnB,IACE,SAAS,CAAC,SAAS,KAAK,SAAS;QACjC,CAAC,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ;YACnC,OAAO,SAAS,CAAC,GAAG,KAAK,QAAQ;YACjC,OAAO,SAAS,CAAC,YAAY,KAAK,QAAQ,CAAC;QAE7C,OAAO,OAAO,EAAE,CAAC;IACnB,IAAI,SAAS,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,OAAO,EAAE,CAAC;IAClG,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,OAAO,EAAE,CAAC;IAC9E,OAAO,SAA2B,CAAC;AACrC,CAAC,CAAC;AAEF,sGAAsG;AACtG,MAAM,eAAe,GAAyB,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAEhG,gGAAgG;AAChG,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,eAAyC,EAAE,EAAoC,EAAE;IAC9G,mFAAmF;IACnF,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrG,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IAEnC,MAAM,aAAa,GAAG,oBAAoB,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IACvE,MAAM,gBAAgB,GAAG,OAAO,CAAC,uBAAuB,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACzF,MAAM,aAAa,GAAG,YAAY,CAAC,wBAAwB,CAAC,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAClG,MAAM,SAAS,GACb,YAAY,CAAC,uBAAuB;QACpC,CAAC,CAAC,IAAY,EAAE,cAAuB,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC;IAClG,MAAM,kBAAkB,GACtB,YAAY,CAAC,cAAc,KAAK,SAAS;QACvC,CAAC,CAAC,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC;QACjE,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,eAAe,GAAG,yBAAyB,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAEvE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,oBAAoB,CAAC;YAClC,aAAa;YACb,gBAAgB;YAChB,cAAc;YACd,eAAe;YACf,cAAc,EAAE,YAAY,CAAC,cAAc;SAC5C,CAAC,CAAC;QACH,wFAAwF;QACxF,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,IAAI,eAAe,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/E,IAAI,QAAQ,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,QAAQ,GAAG,CAAC,CAAC;QACrG,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,OAAO,mBAAmB,CAAC;YACzB,aAAa;YACb,gBAAgB;YAChB,SAAS;YACT,eAAe;YACf,kBAAkB;SACnB,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC,CAAC;AAEF,sGAAsG;AACtG,MAAM,kBAAkB,GAAyB,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAEnG,oGAAoG;AACpG,iGAAiG;AACjG,mGAAmG;AACnG,2EAA2E;AAC3E,MAAM,yBAAyB,GAAG,KAAK,EACrC,YAAsC,EACtC,MAAmB,EACnB,SAAoC,EACrB,EAAE;IACjB,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO;IAE9C,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC;QAC7C,aAAa,EAAE,oBAAoB,CAAC,YAAY,CAAC,aAAa,CAAC;QAC/D,gBAAgB,EAAE,OAAO,CAAC,uBAAuB,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QACjF,OAAO,EAAE,MAAM,CAAC,cAAc;QAC9B,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,QAAQ,EAAE,YAAY,CAAC,WAAW,IAAI,kBAAkB;QACxD,YAAY,EAAE,YAAY,CAAC,YAAY,IAAI,oBAAoB;QAC/D,mBAAmB,EAAE,YAAY,CAAC,mBAAmB;KACtD,CAAC,CAAC;IACH,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ;QAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC7D,kGAAkG;IAClG,IAAI,SAAS,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;AACtE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,eAAyC,EAAE,EAAiB,EAAE,CAAC,CAAC;IACjG,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,uDAAuD;IACpE,QAAQ,CAAC,OAAgB;QACvB,OAAO,CAAC,UAAU,CAChB,IAAI,OAAO,CAAC,OAAO,CAAC;aACjB,WAAW,CAAC,uDAAuD,CAAC;aACpE,QAAQ,CAAC,UAAU,EAAE,oCAAoC,CAAC;aAC1D,SAAS,CACR,IAAI,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;aACzD,OAAO,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;aAC1B,OAAO,CAAC,MAAM,CAAC;aACf,GAAG,CAAC,qBAAqB,CAAC,CAC9B;aACA,MAAM,CAAC,KAAK,EAAE,MAA0B,EAAE,OAAkC,EAAE,EAAE;YAC/E,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,GAAG,YAAY,EAAE,cAAc,EAAE,MAAM,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;YAC1G,gEAAgE;YAChE,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC;YACxD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,SAAS,CAAC,4FAA4F,CAAC,CAAC;gBACxG,OAAO;YACT,CAAC;YACD,qFAAqF;YACrF,6EAA6E;YAC7E,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACtC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,yBAAyB,CAAC,EAAE,GAAG,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACtG,CAAC,CAAC,CACL,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"SetupCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/SetupCommand.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,10 @@ export const executeValidateCommand = (input) => {
10
10
  const findings = [
11
11
  ...settingsFindings(settingsIssues.map(formatSettingsIssue)),
12
12
  ...warnings.map((message) => ({ severity: 'warning', resource: 'settings', message })),
13
- ...validateEffectiveSet(set, input.projectDirectory, { workflowRoots: settings.workflows }),
13
+ ...validateEffectiveSet(set, input.projectDirectory, {
14
+ workflowRoots: settings.workflows,
15
+ agentDefaults: settings.agentDefaults,
16
+ }),
14
17
  ];
15
18
  const hasErrors = findings.some((finding) => finding.severity === 'error');
16
19
  const hasWarnings = findings.some((finding) => finding.severity === 'warning');
@@ -1 +1 @@
1
- {"version":3,"file":"ValidateCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/ValidateCommand.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAqBrF,MAAM,gBAAgB,GAAG,CAAC,QAA2B,EAAgC,EAAE,CACrF,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AAE7F,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAoB,EAAkB,EAAE;IAC7E,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG;QACf,GAAG,gBAAgB,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC5D,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAkB,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/F,GAAG,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,gBAAgB,EAAE,EAAE,aAAa,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;KAC5F,CAAC;IAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;IAC/E,MAAM,EAAE,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,WAAW,CAAC,CAAC;IAEjE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAElH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,QAAsC,EAAE,EAAW,EAAqB,EAAE;IAChG,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CACxB,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,OAAO,EAAE,CACnG,CAAC;IAEF,OAAO,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;AAC/E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,eAA4C,EAAE,EAAiB,EAAE,CAAC,CAAC;IACvG,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,4EAA4E;IACzF,QAAQ,CAAC,OAAgB;QACvB,OAAO,CAAC,UAAU,CAChB,IAAI,OAAO,CAAC,UAAU,CAAC;aACpB,WAAW,CAAC,4EAA4E,CAAC;aACzF,MAAM,CAAC,UAAU,EAAE,qEAAqE,CAAC;aACzF,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC;aAC1C,MAAM,CAAC,CAAC,OAA6C,EAAE,EAAE;YACxD,+FAA+F;YAC/F,MAAM,aAAa,GAAG,oBAAoB,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YACvE,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;YAChF,MAAM,MAAM,GAAG,sBAAsB,CAAC;gBACpC,aAAa;gBACb,gBAAgB;gBAChB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAC;YAEH,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,uFAAuF;gBACvF,CAAC,YAAY,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CACL,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"ValidateCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/ValidateCommand.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -6,6 +6,7 @@ import { resolveHomeDirectory, resolveProjectDirectory } from './cli/commands/Pr
6
6
  import { createOutfitterProgram } from './cli/OutfitterCli.js';
7
7
  import { createTelemetryContext } from './telemetry/TelemetryContext.js';
8
8
  import { createTelemetryService } from './telemetry/TelemetryService.js';
9
+ import { enforceNodeVersion } from './version/NodeVersionGuard.js';
9
10
  import { readOutfitterVersion } from './version/OutfitterVersion.js';
10
11
  export const createProgram = createOutfitterProgram;
11
12
  const noOpTelemetryService = () => ({
@@ -106,14 +107,21 @@ export const isDirectCliExecution = (moduleUrl, argvPath) => {
106
107
  return false;
107
108
  }
108
109
  };
109
- /* v8 ignore next 8 -- direct bin execution is covered by local install smoke tests. */
110
+ /* v8 ignore next 12 -- direct bin execution is covered by local install smoke tests. */
110
111
  if (isDirectCliExecution(import.meta.url, process.argv[1])) {
111
- try {
112
- await runCli(createProgram(), process.argv);
113
- }
114
- catch (error) {
115
- console.error(error instanceof Error ? error.message : String(error));
112
+ // Every subcommand can spawn the bundled pi, which crashes on Node below the published
113
+ // floor, so the guard runs before parsing and before the telemetry notice (issue #368).
114
+ if (!enforceNodeVersion()) {
116
115
  process.exitCode = 1;
117
116
  }
117
+ else {
118
+ try {
119
+ await runCli(createProgram(), process.argv);
120
+ }
121
+ catch (error) {
122
+ console.error(error instanceof Error ? error.message : String(error));
123
+ process.exitCode = 1;
124
+ }
125
+ }
118
126
  }
119
127
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { AgentDefinition } from '../resolver/AgentDefinition.js';
2
+ import type { EffectiveResourceSet, ResolvedResource } from '../resolver/Resource.js';
3
+ export interface ChainEntry {
4
+ readonly resource: ResolvedResource;
5
+ readonly definition: AgentDefinition;
6
+ }
7
+ export declare const resolveInheritanceChain: (set: EffectiveResourceSet, agentSlug: string) => {
8
+ entries?: readonly ChainEntry[];
9
+ errors: readonly string[];
10
+ };
@@ -0,0 +1,47 @@
1
+ // Resolves an agent's inheritance chain: ordered parent-first entries with cycle and parent checks.
2
+ import { isAgentDefinitionIssue, readAgentDefinition } from '../resolver/AgentDefinition.js';
3
+ import { findResource } from '../resolver/Resource.js';
4
+ const readValidAgent = (agent) => {
5
+ const definition = readAgentDefinition(agent.winner.path, agent.configPaths);
6
+ if (isAgentDefinitionIssue(definition))
7
+ return definition.message;
8
+ if (definition.name !== agent.slug)
9
+ return `agent.md name '${definition.name}' must match its directory.`;
10
+ return definition;
11
+ };
12
+ export const resolveInheritanceChain = (set, agentSlug) => {
13
+ const entries = [];
14
+ const composed = new Set();
15
+ const visiting = [];
16
+ const errors = [];
17
+ const visit = (slug) => {
18
+ if (composed.has(slug))
19
+ return;
20
+ const cycleIndex = visiting.indexOf(slug);
21
+ if (cycleIndex !== -1) {
22
+ errors.push(`Agent inheritance cycle detected: ${[...visiting.slice(cycleIndex), slug].join(' -> ')}.`);
23
+ return;
24
+ }
25
+ const resource = findResource(set, 'agent', slug);
26
+ if (resource === undefined) {
27
+ errors.push(`Agent inheritance references unknown parent '${slug}' in chain ${[...visiting, slug].join(' -> ')}.`);
28
+ return;
29
+ }
30
+ const definition = readValidAgent(resource);
31
+ if (typeof definition === 'string') {
32
+ errors.push(`Agent '${slug}' is invalid: ${definition}`);
33
+ return;
34
+ }
35
+ visiting.push(slug);
36
+ for (const parent of definition.inherits)
37
+ visit(parent);
38
+ visiting.pop();
39
+ if (!composed.has(slug)) {
40
+ composed.add(slug);
41
+ entries.push({ resource, definition });
42
+ }
43
+ };
44
+ visit(agentSlug);
45
+ return errors.length > 0 ? { errors } : { entries, errors: [] };
46
+ };
47
+ //# sourceMappingURL=Chain.js.map
@@ -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;