@ai-outfitter/outfitter 0.11.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.outfitter/skills/outfitter/SKILL.md +67 -37
- package/README.md +63 -35
- package/code/enterprise/cli/privateCatalogSettings.cjs +2 -2
- package/code/enterprise/pi-extension/privateCatalogOnboarding.js +5 -8
- package/code/enterprise/shared/privateCatalogPolicy.cjs +5 -5
- package/code/pi-extension/src/outfitter-extension.js +353 -553
- package/code/pi-extension/src/outfitter-runtime-extension.js +160 -0
- package/dist/agents/AgentLaunch.d.ts +9 -1
- package/dist/agents/AgentLaunch.js +19 -0
- package/dist/agents/AgentLaunch.js.map +1 -1
- package/dist/agents/PiCredentialPersistence.d.ts +6 -0
- package/dist/agents/PiCredentialPersistence.js +33 -0
- package/dist/agents/PiCredentialPersistence.js.map +1 -0
- package/dist/cli/OutfitterCli.js +10 -18
- package/dist/cli/OutfitterCli.js.map +1 -1
- package/dist/cli/commands/CommandObject.d.ts +0 -5
- package/dist/cli/commands/CommandObject.js +1 -4
- package/dist/cli/commands/CommandObject.js.map +1 -1
- package/dist/cli/commands/DumpCommand.d.ts +19 -0
- package/dist/cli/commands/DumpCommand.js +54 -0
- package/dist/cli/commands/DumpCommand.js.map +1 -0
- package/dist/cli/commands/ListCommand.d.ts +17 -0
- package/dist/cli/commands/ListCommand.js +77 -0
- package/dist/cli/commands/ListCommand.js.map +1 -0
- package/dist/cli/commands/PiRuntimeLaunch.d.ts +8 -0
- package/dist/cli/commands/PiRuntimeLaunch.js +47 -0
- package/dist/cli/commands/PiRuntimeLaunch.js.map +1 -0
- package/dist/cli/commands/ProcessDefaults.d.ts +2 -0
- package/dist/cli/commands/ProcessDefaults.js +5 -0
- package/dist/cli/commands/ProcessDefaults.js.map +1 -0
- package/dist/cli/commands/RunAgentCommand.d.ts +46 -0
- package/dist/cli/commands/RunAgentCommand.js +176 -0
- package/dist/cli/commands/RunAgentCommand.js.map +1 -0
- package/dist/cli/commands/SetupCommand.d.ts +38 -6
- package/dist/cli/commands/SetupCommand.js +194 -232
- package/dist/cli/commands/SetupCommand.js.map +1 -1
- package/dist/cli/commands/ValidateCommand.d.ts +20 -0
- package/dist/cli/commands/ValidateCommand.js +54 -0
- package/dist/cli/commands/ValidateCommand.js.map +1 -0
- package/dist/composer/Composer.d.ts +11 -0
- package/dist/composer/Composer.js +72 -0
- package/dist/composer/Composer.js.map +1 -0
- package/dist/composer/Composition.d.ts +33 -0
- package/dist/composer/Composition.js +2 -0
- package/dist/composer/Composition.js.map +1 -0
- package/dist/dump/Containment.d.ts +8 -0
- package/dist/dump/Containment.js +22 -0
- package/dist/dump/Containment.js.map +1 -0
- package/dist/dump/Dump.d.ts +8 -0
- package/dist/dump/Dump.js +182 -0
- package/dist/dump/Dump.js.map +1 -0
- package/dist/extensions/PiExtensionCache.d.ts +30 -0
- package/dist/extensions/PiExtensionCache.js +92 -0
- package/dist/extensions/PiExtensionCache.js.map +1 -0
- package/dist/fs/TypeConflict.d.ts +6 -0
- package/dist/fs/TypeConflict.js +21 -0
- package/dist/fs/TypeConflict.js.map +1 -0
- package/dist/paths/OutfitterCache.d.ts +6 -0
- package/dist/paths/OutfitterCache.js +17 -0
- package/dist/paths/OutfitterCache.js.map +1 -0
- package/dist/projection/Materialize.d.ts +24 -0
- package/dist/projection/Materialize.js +83 -0
- package/dist/projection/Materialize.js.map +1 -0
- package/dist/projection/ProjectHarness.d.ts +5 -0
- package/dist/projection/ProjectHarness.js +77 -0
- package/dist/projection/ProjectHarness.js.map +1 -0
- package/dist/projection/Projection.d.ts +23 -0
- package/dist/projection/Projection.js +2 -0
- package/dist/projection/Projection.js.map +1 -0
- package/dist/resolver/AgentDefinition.d.ts +30 -0
- package/dist/resolver/AgentDefinition.js +123 -0
- package/dist/resolver/AgentDefinition.js.map +1 -0
- package/dist/resolver/Layer.d.ts +12 -0
- package/dist/resolver/Layer.js +30 -0
- package/dist/resolver/Layer.js.map +1 -0
- package/dist/resolver/Resolver.d.ts +3 -0
- package/dist/resolver/Resolver.js +163 -0
- package/dist/resolver/Resolver.js.map +1 -0
- package/dist/resolver/ResolverContext.d.ts +15 -0
- package/dist/resolver/ResolverContext.js +11 -0
- package/dist/resolver/ResolverContext.js.map +1 -0
- package/dist/resolver/ResolverValidation.d.ts +11 -0
- package/dist/resolver/ResolverValidation.js +112 -0
- package/dist/resolver/ResolverValidation.js.map +1 -0
- package/dist/resolver/Resource.d.ts +88 -0
- package/dist/resolver/Resource.js +34 -0
- package/dist/resolver/Resource.js.map +1 -0
- package/dist/schemas/agent.schema.json +48 -0
- package/dist/schemas/settings.schema.json +32 -9
- package/dist/settings/Settings.d.ts +34 -5
- package/dist/settings/Settings.js +3 -1
- package/dist/settings/Settings.js.map +1 -1
- package/dist/settings/SettingsLoader.d.ts +1 -1
- package/dist/settings/SettingsLoader.js +23 -22
- package/dist/settings/SettingsLoader.js.map +1 -1
- package/dist/settings/SettingsMerger.js +12 -10
- package/dist/settings/SettingsMerger.js.map +1 -1
- package/dist/setup/DefaultCatalog.d.ts +20 -0
- package/dist/setup/DefaultCatalog.js +89 -0
- package/dist/setup/DefaultCatalog.js.map +1 -0
- package/dist/setup/Setup.d.ts +43 -0
- package/dist/setup/Setup.js +261 -0
- package/dist/setup/Setup.js.map +1 -0
- package/dist/skills/SkillDocument.d.ts +6 -1
- package/dist/skills/SkillDocument.js.map +1 -1
- package/dist/sources/SourceCache.d.ts +19 -0
- package/dist/{profiles/ProfileCache.js → sources/SourceCache.js} +22 -18
- package/dist/sources/SourceCache.js.map +1 -0
- package/dist/validation/SchemaValidator.d.ts +1 -1
- package/dist/validation/SchemaValidator.js +4 -13
- package/dist/validation/SchemaValidator.js.map +1 -1
- package/docs/architecture/state_writeback_strategy.md +54 -122
- package/docs/documentation/README.md +33 -12
- package/docs/documentation/actions.md +35 -52
- package/docs/documentation/agents.md +109 -0
- package/docs/documentation/best-practices.md +25 -63
- package/docs/documentation/catalogs.md +126 -0
- package/docs/documentation/cli.md +39 -41
- package/docs/documentation/concepts.md +66 -23
- package/docs/documentation/dump-and-bake.md +30 -0
- package/docs/documentation/first-time-cli-agent-users.md +8 -8
- package/docs/documentation/getting-started.md +28 -8
- package/docs/documentation/hooks.md +20 -0
- package/docs/documentation/iterating-on-profiles.md +56 -70
- package/docs/documentation/local-development.md +84 -0
- package/docs/documentation/migration.md +39 -0
- package/docs/documentation/personas.md +41 -0
- package/docs/documentation/porting-claude.md +54 -0
- package/docs/documentation/profiles.md +16 -169
- package/docs/documentation/settings.md +61 -0
- package/docs/documentation/skills.md +93 -334
- package/docs/documentation/state.md +24 -62
- package/docs/documentation/subagents.md +37 -0
- package/docs/documentation/support-matrix.md +40 -35
- package/docs/documentation/switching-to-outfitter.md +75 -81
- package/docs/documentation/tasks.md +13 -0
- package/docs/documentation/usecases/engineering.md +67 -84
- package/docs/documentation/usecases/organization-profile-catalog.md +83 -111
- package/docs/documentation/usecases/persona-reviews.md +133 -139
- package/docs/philosophy.md +2 -2
- package/package.json +3 -3
- package/src/schemas/agent.schema.json +48 -0
- package/src/schemas/settings.schema.json +32 -9
- package/dist/agents/AdapterProfileControls.d.ts +0 -21
- package/dist/agents/AdapterProfileControls.js +0 -76
- package/dist/agents/AdapterProfileControls.js.map +0 -1
- package/dist/agents/AdapterStatePaths.d.ts +0 -12
- package/dist/agents/AdapterStatePaths.js +0 -46
- package/dist/agents/AdapterStatePaths.js.map +0 -1
- package/dist/agents/AgentAdapter.d.ts +0 -44
- package/dist/agents/AgentAdapter.js +0 -2
- package/dist/agents/AgentAdapter.js.map +0 -1
- package/dist/agents/AgentRegistry.d.ts +0 -6
- package/dist/agents/AgentRegistry.js +0 -17
- package/dist/agents/AgentRegistry.js.map +0 -1
- package/dist/agents/LaunchResources.d.ts +0 -17
- package/dist/agents/LaunchResources.js +0 -61
- package/dist/agents/LaunchResources.js.map +0 -1
- package/dist/agents/OutfitterSkill.d.ts +0 -11
- package/dist/agents/OutfitterSkill.js +0 -128
- package/dist/agents/OutfitterSkill.js.map +0 -1
- package/dist/agents/ResourceIdentity.d.ts +0 -2
- package/dist/agents/ResourceIdentity.js +0 -51
- package/dist/agents/ResourceIdentity.js.map +0 -1
- package/dist/agents/claude/ClaudeAdapter.d.ts +0 -2
- package/dist/agents/claude/ClaudeAdapter.js +0 -148
- package/dist/agents/claude/ClaudeAdapter.js.map +0 -1
- package/dist/agents/claude/ClaudeCompositeProfileWriter.d.ts +0 -5
- package/dist/agents/claude/ClaudeCompositeProfileWriter.js +0 -7
- package/dist/agents/claude/ClaudeCompositeProfileWriter.js.map +0 -1
- package/dist/agents/pi/PiAdapter.d.ts +0 -2
- package/dist/agents/pi/PiAdapter.js +0 -363
- package/dist/agents/pi/PiAdapter.js.map +0 -1
- package/dist/agents/pi/PiArgs.d.ts +0 -2
- package/dist/agents/pi/PiArgs.js +0 -15
- package/dist/agents/pi/PiArgs.js.map +0 -1
- package/dist/agents/pi/PiCompositeProfileWriter.d.ts +0 -5
- package/dist/agents/pi/PiCompositeProfileWriter.js +0 -7
- package/dist/agents/pi/PiCompositeProfileWriter.js.map +0 -1
- package/dist/agents/pi/PiExtensionCache.d.ts +0 -12
- package/dist/agents/pi/PiExtensionCache.js +0 -195
- package/dist/agents/pi/PiExtensionCache.js.map +0 -1
- package/dist/agents/pi/PiMcpConfig.d.ts +0 -2
- package/dist/agents/pi/PiMcpConfig.js +0 -114
- package/dist/agents/pi/PiMcpConfig.js.map +0 -1
- package/dist/agents/pi/PiSettingsMergePolicy.d.ts +0 -17
- package/dist/agents/pi/PiSettingsMergePolicy.js +0 -59
- package/dist/agents/pi/PiSettingsMergePolicy.js.map +0 -1
- package/dist/agents/pi/PiSkillSources.d.ts +0 -8
- package/dist/agents/pi/PiSkillSources.js +0 -73
- package/dist/agents/pi/PiSkillSources.js.map +0 -1
- package/dist/cli/commands/FirstRunWelcomeProfile.d.ts +0 -11
- package/dist/cli/commands/FirstRunWelcomeProfile.js +0 -110
- package/dist/cli/commands/FirstRunWelcomeProfile.js.map +0 -1
- package/dist/cli/commands/PiLoginLaunch.d.ts +0 -22
- package/dist/cli/commands/PiLoginLaunch.js +0 -170
- package/dist/cli/commands/PiLoginLaunch.js.map +0 -1
- package/dist/cli/commands/RunCommand.d.ts +0 -36
- package/dist/cli/commands/RunCommand.js +0 -345
- package/dist/cli/commands/RunCommand.js.map +0 -1
- package/dist/cli/commands/SyncCommand.d.ts +0 -46
- package/dist/cli/commands/SyncCommand.js +0 -244
- package/dist/cli/commands/SyncCommand.js.map +0 -1
- package/dist/cli/commands/WelcomeCommand.d.ts +0 -56
- package/dist/cli/commands/WelcomeCommand.js +0 -224
- package/dist/cli/commands/WelcomeCommand.js.map +0 -1
- package/dist/cli/commands/assets/outfitter-ascii.txt +0 -5
- package/dist/cli/commands/profile/Command.d.ts +0 -7
- package/dist/cli/commands/profile/Command.js +0 -24
- package/dist/cli/commands/profile/Command.js.map +0 -1
- package/dist/cli/commands/profile/CreateCommand.d.ts +0 -19
- package/dist/cli/commands/profile/CreateCommand.js +0 -115
- package/dist/cli/commands/profile/CreateCommand.js.map +0 -1
- package/dist/cli/commands/profile/LintCommand.d.ts +0 -19
- package/dist/cli/commands/profile/LintCommand.js +0 -155
- package/dist/cli/commands/profile/LintCommand.js.map +0 -1
- package/dist/cli/commands/profile/ListCommand.d.ts +0 -19
- package/dist/cli/commands/profile/ListCommand.js +0 -91
- package/dist/cli/commands/profile/ListCommand.js.map +0 -1
- package/dist/cli/commands/profile/Shared.d.ts +0 -9
- package/dist/cli/commands/profile/Shared.js +0 -10
- package/dist/cli/commands/profile/Shared.js.map +0 -1
- package/dist/cli/commands/run/RunFirstRunOnboarding.d.ts +0 -7
- package/dist/cli/commands/run/RunFirstRunOnboarding.js +0 -52
- package/dist/cli/commands/run/RunFirstRunOnboarding.js.map +0 -1
- package/dist/cli/commands/run/RunLaunchSummary.d.ts +0 -2
- package/dist/cli/commands/run/RunLaunchSummary.js +0 -35
- package/dist/cli/commands/run/RunLaunchSummary.js.map +0 -1
- package/dist/cli/commands/run/RunProfileResolution.d.ts +0 -39
- package/dist/cli/commands/run/RunProfileResolution.js +0 -128
- package/dist/cli/commands/run/RunProfileResolution.js.map +0 -1
- package/dist/cli/commands/run/RunStateWritePrompt.d.ts +0 -2
- package/dist/cli/commands/run/RunStateWritePrompt.js +0 -29
- package/dist/cli/commands/run/RunStateWritePrompt.js.map +0 -1
- package/dist/cli/commands/setup/SetupPrompts.d.ts +0 -14
- package/dist/cli/commands/setup/SetupPrompts.js +0 -296
- package/dist/cli/commands/setup/SetupPrompts.js.map +0 -1
- package/dist/cli/commands/setup/SetupSourceImport.d.ts +0 -5
- package/dist/cli/commands/setup/SetupSourceImport.js +0 -177
- package/dist/cli/commands/setup/SetupSourceImport.js.map +0 -1
- package/dist/cli/commands/setup/SetupSourceLaunch.d.ts +0 -4
- package/dist/cli/commands/setup/SetupSourceLaunch.js +0 -65
- package/dist/cli/commands/setup/SetupSourceLaunch.js.map +0 -1
- package/dist/cli/commands/setup/SetupStarterSource.d.ts +0 -21
- package/dist/cli/commands/setup/SetupStarterSource.js +0 -133
- package/dist/cli/commands/setup/SetupStarterSource.js.map +0 -1
- package/dist/cli/commands/setup/SetupTypes.d.ts +0 -91
- package/dist/cli/commands/setup/SetupTypes.js +0 -26
- package/dist/cli/commands/setup/SetupTypes.js.map +0 -1
- package/dist/compositeProfile/CompositeProfile.d.ts +0 -8
- package/dist/compositeProfile/CompositeProfile.js +0 -6
- package/dist/compositeProfile/CompositeProfile.js.map +0 -1
- package/dist/compositeProfile/CompositeProfileAssembler.d.ts +0 -12
- package/dist/compositeProfile/CompositeProfileAssembler.js +0 -32
- package/dist/compositeProfile/CompositeProfileAssembler.js.map +0 -1
- package/dist/compositeProfile/CompositeProfileCleanup.d.ts +0 -9
- package/dist/compositeProfile/CompositeProfileCleanup.js +0 -87
- package/dist/compositeProfile/CompositeProfileCleanup.js.map +0 -1
- package/dist/compositeProfile/CompositeProfileFile.d.ts +0 -16
- package/dist/compositeProfile/CompositeProfileFile.js +0 -16
- package/dist/compositeProfile/CompositeProfileFile.js.map +0 -1
- package/dist/compositeProfile/CompositeProfileTemplate.d.ts +0 -15
- package/dist/compositeProfile/CompositeProfileTemplate.js +0 -65
- package/dist/compositeProfile/CompositeProfileTemplate.js.map +0 -1
- package/dist/compositeProfile/CompositeProfileWatcher.d.ts +0 -18
- package/dist/compositeProfile/CompositeProfileWatcher.js +0 -46
- package/dist/compositeProfile/CompositeProfileWatcher.js.map +0 -1
- package/dist/compositeProfile/StatePersistence.d.ts +0 -39
- package/dist/compositeProfile/StatePersistence.js +0 -249
- package/dist/compositeProfile/StatePersistence.js.map +0 -1
- package/dist/fs/SafeSymlink.d.ts +0 -13
- package/dist/fs/SafeSymlink.js +0 -50
- package/dist/fs/SafeSymlink.js.map +0 -1
- package/dist/profiles/Profile.d.ts +0 -60
- package/dist/profiles/Profile.js +0 -7
- package/dist/profiles/Profile.js.map +0 -1
- package/dist/profiles/ProfileCache.d.ts +0 -8
- package/dist/profiles/ProfileCache.js.map +0 -1
- package/dist/profiles/ProfileLoader.d.ts +0 -28
- package/dist/profiles/ProfileLoader.js +0 -299
- package/dist/profiles/ProfileLoader.js.map +0 -1
- package/dist/profiles/ProfileMerger.d.ts +0 -19
- package/dist/profiles/ProfileMerger.js +0 -112
- package/dist/profiles/ProfileMerger.js.map +0 -1
- package/dist/profiles/ProfileSource.d.ts +0 -35
- package/dist/profiles/ProfileSource.js +0 -13
- package/dist/profiles/ProfileSource.js.map +0 -1
- package/dist/profiles/PromptIncludes.d.ts +0 -32
- package/dist/profiles/PromptIncludes.js +0 -147
- package/dist/profiles/PromptIncludes.js.map +0 -1
- package/dist/prompts/SystemPromptExport.d.ts +0 -16
- package/dist/prompts/SystemPromptExport.js +0 -81
- package/dist/prompts/SystemPromptExport.js.map +0 -1
- package/dist/schemas/profile-source.schema.json +0 -29
- package/dist/schemas/profile.schema.json +0 -200
- package/dist/skills/ProfileSkillResolution.d.ts +0 -21
- package/dist/skills/ProfileSkillResolution.js +0 -88
- package/dist/skills/ProfileSkillResolution.js.map +0 -1
- package/dist/skills/SkillCatalog.d.ts +0 -41
- package/dist/skills/SkillCatalog.js +0 -119
- package/dist/skills/SkillCatalog.js.map +0 -1
- package/dist/skills/SkillResolution.d.ts +0 -34
- package/dist/skills/SkillResolution.js +0 -369
- package/dist/skills/SkillResolution.js.map +0 -1
- package/docs/documentation/profile-repository.md +0 -179
- package/src/schemas/SchemaDocument.ts +0 -20
- package/src/schemas/profile-source.schema.json +0 -29
- package/src/schemas/profile.schema.json +0 -200
|
@@ -1,249 +1,211 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
? prepareStarterLayout(input.homeDirectory, input.projectDirectory, input.setupSourceUri, dependencies.setupSourceSynchronizer)
|
|
25
|
-
: undefined;
|
|
26
|
-
const loadedSettings = loadSettings(discoverSettingsLoadPlan(input));
|
|
27
|
-
if (loadedSettings.issues.length > 0) {
|
|
28
|
-
throw new Error(`Cannot setup with invalid settings: ${loadedSettings.issues.map(formatSettingsIssue).join('; ')}`);
|
|
29
|
-
}
|
|
30
|
-
const defaultProfileId = initialSettingsMissing
|
|
31
|
-
? readStarterDefaultProfileId(starterLayout?.settingsPath)
|
|
32
|
-
: readUserDefaultProfileId(loadedSettings.files);
|
|
33
|
-
assertValidDefaultProfileId(defaultProfileId);
|
|
34
|
-
if (input.setupSourceUri !== undefined && dependencies.interactive === true && starterLayout !== undefined) {
|
|
35
|
-
return executeInteractiveSetupSourceCommand({
|
|
36
|
-
input: { ...input, setupSourceUri: input.setupSourceUri },
|
|
37
|
-
dependencies,
|
|
38
|
-
homeSettingsPath: settingsPath,
|
|
39
|
-
initialSettingsMissing,
|
|
40
|
-
starterLayout,
|
|
41
|
-
currentDefaultProfileId: defaultProfileId,
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
const createdSettings = createInitialSettingsIfMissing(settingsPath, starterLayout?.settingsPath);
|
|
45
|
-
ensureExistingUserSettingsDefaultProfile(settingsPath, loadedSettings.files, defaultProfileId);
|
|
46
|
-
const copiedStarterProfileFiles = copyStarterProfileFilesIfPresent(starterLayout?.profilesPath, join(input.homeDirectory, '.outfitter', 'profiles'));
|
|
47
|
-
const rollbackCreatedSettings = createdSettings ? () => rmSync(settingsPath, { force: true }) : () => undefined;
|
|
48
|
-
const syncResult = executeSyncCommand(input, dependencies);
|
|
49
|
-
failOnInitialDefaultProfileSyncFailure(initialSettingsMissing, rollbackCreatedSettings, syncResult);
|
|
50
|
-
const selectedDefaultProfileId = shouldSkipInitialDefaultProfilePrompt(initialSettingsMissing, dependencies)
|
|
51
|
-
? defaultProfileId
|
|
52
|
-
: await selectDefaultProfileIfInteractive(input, settingsPath, defaultProfileId, dependencies, starterLayout);
|
|
53
|
-
const welcomeResult = await runWelcomeAfterInteractiveSetup(input, dependencies);
|
|
54
|
-
const welcomeProfile = persistWelcomeProfileForSetup(input, settingsPath, welcomeResult);
|
|
55
|
-
const finalDefaultProfile = prepareFinalDefaultProfile(input.homeDirectory, selectedDefaultProfileId, welcomeProfile);
|
|
56
|
-
return {
|
|
57
|
-
settingsPath,
|
|
58
|
-
defaultProfilePath: finalDefaultProfile.path,
|
|
59
|
-
createdSettings,
|
|
60
|
-
copiedStarterProfileFiles,
|
|
61
|
-
createdDefaultProfile: finalDefaultProfile.created,
|
|
62
|
-
syncResult,
|
|
63
|
-
welcomeResult,
|
|
64
|
-
messages: buildSetupMessages({
|
|
65
|
-
input,
|
|
66
|
-
starterLayout,
|
|
67
|
-
settingsPath,
|
|
68
|
-
createdSettings,
|
|
69
|
-
copiedStarterProfileFiles,
|
|
70
|
-
defaultProfileId: finalDefaultProfile.id,
|
|
71
|
-
defaultProfilePath: finalDefaultProfile.path,
|
|
72
|
-
createdDefaultProfile: finalDefaultProfile.created,
|
|
73
|
-
syncResult,
|
|
74
|
-
welcomeProfileMessages: welcomeProfile?.messages ?? [],
|
|
75
|
-
runExampleMessages: input.setupSourceUri === undefined ? [] : [formatRunProfileExample(finalDefaultProfile.id)],
|
|
76
|
-
}),
|
|
77
|
-
};
|
|
1
|
+
/* eslint-disable complexity */
|
|
2
|
+
// Provides the universal Pi-hosted `/outfitter` setup walkthrough.
|
|
3
|
+
import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
4
|
+
import { tmpdir } from 'node:os';
|
|
5
|
+
import { join, resolve } from 'node:path';
|
|
6
|
+
import { fileURLToPath } from 'node:url';
|
|
7
|
+
import { Command } from 'commander';
|
|
8
|
+
import { launchThroughSpawn, spawnLauncher } from '../../agents/AgentLaunch.js';
|
|
9
|
+
import { HARNESSES } from '../../settings/Settings.js';
|
|
10
|
+
import { applySetupSelection, discoverSetupAgentChoices } from '../../setup/Setup.js';
|
|
11
|
+
import { bootstrapDefaultCatalog } from '../../setup/DefaultCatalog.js';
|
|
12
|
+
import { resolveHomeDirectory, resolveProjectDirectory } from './ProcessDefaults.js';
|
|
13
|
+
import { executeRunAgentCommand } from './RunAgentCommand.js';
|
|
14
|
+
const readRepositoryCodeAsset = (relativePath) => {
|
|
15
|
+
const sourcePath = fileURLToPath(new URL(`../../../../${relativePath}`, import.meta.url));
|
|
16
|
+
const packagePath = fileURLToPath(new URL(`../../../code/${relativePath}`, import.meta.url));
|
|
17
|
+
/* v8 ignore else -- packaged layout is exercised by the npm package smoke test. */
|
|
18
|
+
if (existsSync(sourcePath))
|
|
19
|
+
return readFileSync(sourcePath, 'utf8');
|
|
20
|
+
/* v8 ignore next 3 -- packaged layout is covered by the package smoke test. */
|
|
21
|
+
if (existsSync(packagePath))
|
|
22
|
+
return readFileSync(packagePath, 'utf8');
|
|
23
|
+
throw new Error(`Outfitter support file '${relativePath}' was not found.`);
|
|
78
24
|
};
|
|
79
|
-
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
rollbackCreatedSettings();
|
|
90
|
-
throw new Error(`Cannot complete first-run setup because the default profiles source failed to sync: ${failedDefaultProfilesSource.message}. ` +
|
|
91
|
-
'Fix the network/git issue and rerun `outfitter setup` once the source is reachable.');
|
|
92
|
-
};
|
|
93
|
-
const executeInteractiveSetupSourceCommand = async ({ input, dependencies, homeSettingsPath, initialSettingsMissing, starterLayout, currentDefaultProfileId, }) => {
|
|
94
|
-
const onboarding = await runSetupSourceOnboarding(input, dependencies, starterLayout, currentDefaultProfileId);
|
|
95
|
-
const appliedImport = applySetupSourceImport(input, starterLayout, onboarding);
|
|
96
|
-
/* v8 ignore next -- setup-source rollback only runs when a home import creates settings and default-profile sync fails. */
|
|
97
|
-
const rollbackCreatedSettings = appliedImport.createdSettings
|
|
98
|
-
? () => rmSync(appliedImport.settingsPath, { force: true })
|
|
99
|
-
: () => undefined;
|
|
100
|
-
const syncResult = executeSyncCommand(input, dependencies);
|
|
101
|
-
failOnInitialDefaultProfileSyncFailure(initialSettingsMissing && appliedImport.settingsPath === homeSettingsPath, rollbackCreatedSettings, syncResult);
|
|
102
|
-
const defaultProfilePath = findSetupProfilePath(appliedImport.profilesPath, onboarding.selectedProfileId);
|
|
103
|
-
const createdDefaultProfile = appliedImport.symlinkedOutfitter
|
|
104
|
-
? false
|
|
105
|
-
: createDefaultProfileIfMissing(defaultProfilePath, onboarding.selectedProfileId);
|
|
106
|
-
const postImportLaunchTarget = appliedImport.selectedProfileAlreadyExists ? 'default' : 'selected';
|
|
107
|
-
const postImportAction = await runSetupSourcePostImportAction(input, dependencies, onboarding.importTarget, onboarding.selectedProfileId, postImportLaunchTarget);
|
|
108
|
-
return {
|
|
109
|
-
settingsPath: appliedImport.settingsPath,
|
|
110
|
-
defaultProfilePath,
|
|
111
|
-
createdSettings: appliedImport.createdSettings,
|
|
112
|
-
copiedStarterProfileFiles: appliedImport.copiedStarterProfileFiles,
|
|
113
|
-
createdDefaultProfile,
|
|
114
|
-
syncResult,
|
|
115
|
-
messages: buildSetupMessages({
|
|
116
|
-
input,
|
|
117
|
-
starterLayout,
|
|
118
|
-
settingsPath: appliedImport.settingsPath,
|
|
119
|
-
settingsDescription: appliedImport.settingsDescription,
|
|
120
|
-
profileTargetPath: appliedImport.profilesPath,
|
|
121
|
-
createdSettings: appliedImport.createdSettings,
|
|
122
|
-
copiedStarterProfileFiles: appliedImport.copiedStarterProfileFiles,
|
|
123
|
-
defaultProfileId: onboarding.selectedProfileId,
|
|
124
|
-
defaultProfilePath,
|
|
125
|
-
createdDefaultProfile,
|
|
126
|
-
syncResult,
|
|
127
|
-
welcomeProfileMessages: appliedImport.selectedProfileConflictMessage === undefined
|
|
128
|
-
? []
|
|
129
|
-
: [appliedImport.selectedProfileConflictMessage],
|
|
130
|
-
runExampleMessages: postImportAction === 'exit'
|
|
131
|
-
? formatSetupSourceExitMessages(input, onboarding.importTarget, onboarding.selectedProfileId, postImportLaunchTarget)
|
|
132
|
-
: [],
|
|
133
|
-
}),
|
|
25
|
+
export const createPiSetupExtensionContent = (input) => {
|
|
26
|
+
const values = {
|
|
27
|
+
OUTFITTER_HOME: input.homeDirectory,
|
|
28
|
+
OUTFITTER_PROJECT: input.projectDirectory,
|
|
29
|
+
OUTFITTER_SETUP_RESULT_PATH: input.resultPath,
|
|
30
|
+
OUTFITTER_AGENT_CHOICES: input.availableAgents,
|
|
31
|
+
OUTFITTER_CURRENT_DEFAULT: input.currentDefault,
|
|
32
|
+
OUTFITTER_SETUP_SOURCE_URI: input.setupSourceUri,
|
|
33
|
+
OUTFITTER_AUTO_OPEN: true,
|
|
134
34
|
};
|
|
35
|
+
// One pass over the asset: every `'__OUTFITTER_X__'` placeholder is replaced with its stamped
|
|
36
|
+
// JSON value; unknown placeholders are left intact.
|
|
37
|
+
return readRepositoryCodeAsset('pi-extension/src/outfitter-extension.js').replace(/["']__(OUTFITTER_[A-Z_]+)__["']/gu, (match, name) => Object.hasOwn(values, name) ? JSON.stringify(values[name]) : match);
|
|
135
38
|
};
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
const
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
? `Created default user profile at ${input.defaultProfilePath}.`
|
|
158
|
-
: `Default user profile at ${input.defaultProfilePath} already exists; left unchanged.`);
|
|
159
|
-
}
|
|
160
|
-
messages.push(`Selected default profile '${input.defaultProfileId}'.`, ...input.welcomeProfileMessages, ...input.runExampleMessages, ...input.syncResult.messages);
|
|
161
|
-
return messages;
|
|
162
|
-
};
|
|
163
|
-
const shouldReportDefaultProfileStatus = (input) => {
|
|
164
|
-
if (input.createdDefaultProfile) {
|
|
165
|
-
return true;
|
|
39
|
+
/** Creates an isolated, model-free Pi setup launch using the bundled extension. */
|
|
40
|
+
export const preparePiSetupLaunch = (input) => {
|
|
41
|
+
const piConfigDirectory = join(input.setupDirectory, 'pi');
|
|
42
|
+
const extensionPath = join(piConfigDirectory, 'outfitter-extension.js');
|
|
43
|
+
const resultPath = join(input.setupDirectory, 'selection.json');
|
|
44
|
+
mkdirSync(piConfigDirectory, { recursive: true });
|
|
45
|
+
writeFileSync(extensionPath, createPiSetupExtensionContent({
|
|
46
|
+
homeDirectory: input.homeDirectory,
|
|
47
|
+
projectDirectory: input.projectDirectory,
|
|
48
|
+
resultPath,
|
|
49
|
+
availableAgents: input.availableAgents,
|
|
50
|
+
currentDefault: readCurrentDefaultAgent(input.homeDirectory),
|
|
51
|
+
setupSourceUri: input.setupSourceUri,
|
|
52
|
+
}));
|
|
53
|
+
for (const [source, destination] of [
|
|
54
|
+
['enterprise/pi-extension/privateCatalogOnboarding.js', 'pi-extension/privateCatalogOnboarding.js'],
|
|
55
|
+
['enterprise/shared/privateCatalogPolicy.cjs', 'shared/privateCatalogPolicy.cjs'],
|
|
56
|
+
]) {
|
|
57
|
+
const destinationPath = join(piConfigDirectory, destination);
|
|
58
|
+
mkdirSync(join(destinationPath, '..'), { recursive: true });
|
|
59
|
+
writeFileSync(destinationPath, readRepositoryCodeAsset(source));
|
|
166
60
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
61
|
+
// Pi currently renders a provider-login warning before extensions can open their UI when its
|
|
62
|
+
// registry is empty. This isolated, offline-only placeholder is never called; it simply gives
|
|
63
|
+
// the setup shell a selected model so the walkthrough can start cleanly without user credentials.
|
|
64
|
+
writeFileSync(join(piConfigDirectory, 'models.json'), `${JSON.stringify({
|
|
65
|
+
providers: {
|
|
66
|
+
'outfitter-setup': {
|
|
67
|
+
baseUrl: 'http://127.0.0.1:9/v1',
|
|
68
|
+
api: 'openai-completions',
|
|
69
|
+
apiKey: 'outfitter-setup-no-network',
|
|
70
|
+
models: [{ id: 'walkthrough', name: 'Outfitter setup UI' }],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
}, null, 2)}\n`);
|
|
74
|
+
writeFileSync(join(piConfigDirectory, 'settings.json'), `${JSON.stringify({ quietStartup: true, defaultProvider: 'outfitter-setup', defaultModel: 'walkthrough' }, null, 2)}\n`);
|
|
75
|
+
return {
|
|
76
|
+
resultPath,
|
|
77
|
+
plan: {
|
|
78
|
+
command: 'pi',
|
|
79
|
+
args: [
|
|
80
|
+
'--no-session',
|
|
81
|
+
'--offline',
|
|
82
|
+
'--no-tools',
|
|
83
|
+
'--no-skills',
|
|
84
|
+
'--no-prompt-templates',
|
|
85
|
+
'--extension',
|
|
86
|
+
extensionPath,
|
|
87
|
+
],
|
|
88
|
+
env: { PI_CODING_AGENT_DIR: piConfigDirectory },
|
|
193
89
|
},
|
|
194
90
|
};
|
|
195
|
-
return command;
|
|
196
|
-
};
|
|
197
|
-
const launchPiOnboardingWithRunCommand = async (input, dependencies) => {
|
|
198
|
-
const { executeRunCommand } = await import('./RunCommand.js');
|
|
199
|
-
return executeRunCommand({
|
|
200
|
-
...input,
|
|
201
|
-
agentId: 'pi',
|
|
202
|
-
forceRuntimeOnboarding: true,
|
|
203
|
-
}, { ...dependencies, interactive: true });
|
|
204
91
|
};
|
|
205
|
-
const
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
const findWelcomeSourceProfileDirectory = (input, profileId) => {
|
|
209
|
-
if (profileId === undefined) {
|
|
92
|
+
const readCurrentDefaultAgent = (homeDirectory) => {
|
|
93
|
+
const settingsPath = join(homeDirectory, '.agents', 'settings.yml');
|
|
94
|
+
if (!existsSync(settingsPath))
|
|
210
95
|
return undefined;
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
96
|
+
const match = /^default_agent:\s*([^\n#]+)/mu.exec(readFileSync(settingsPath, 'utf8'));
|
|
97
|
+
return match?.[1]?.trim().replace(/^['"]|['"]$/gu, '');
|
|
98
|
+
};
|
|
99
|
+
const parseSetupSelection = (path) => {
|
|
100
|
+
if (!existsSync(path))
|
|
215
101
|
return undefined;
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
102
|
+
const value = JSON.parse(readFileSync(path, 'utf8'));
|
|
103
|
+
const invalid = () => {
|
|
104
|
+
throw new Error('Pi setup returned an invalid selection.');
|
|
105
|
+
};
|
|
106
|
+
if (value === null || typeof value !== 'object')
|
|
107
|
+
return invalid();
|
|
108
|
+
const selection = value;
|
|
109
|
+
if (!['default', 'create', 'catalog', 'source'].includes(String(selection.setupMode)))
|
|
110
|
+
return invalid();
|
|
111
|
+
if (!HARNESSES.includes(String(selection.harness)))
|
|
112
|
+
return invalid();
|
|
113
|
+
if (!['catalog', 'source'].includes(String(selection.setupMode)) && typeof selection.agentId !== 'string')
|
|
114
|
+
return invalid();
|
|
115
|
+
if (selection.setupMode === 'catalog' &&
|
|
116
|
+
(typeof selection.github !== 'string' ||
|
|
117
|
+
typeof selection.ref !== 'string' ||
|
|
118
|
+
typeof selection.settingsPath !== 'string'))
|
|
119
|
+
return invalid();
|
|
120
|
+
if (selection.setupMode === 'source' && typeof selection.sourceUri !== 'string')
|
|
121
|
+
return invalid();
|
|
122
|
+
if (!['home', 'project'].includes(String(selection.target)))
|
|
123
|
+
return invalid();
|
|
124
|
+
return selection;
|
|
226
125
|
};
|
|
227
|
-
|
|
228
|
-
|
|
126
|
+
/* v8 ignore next -- wiring to the shared spawn boundary; launchThroughSpawn itself is unit-tested. */
|
|
127
|
+
const defaultLauncher = (plan) => launchThroughSpawn(spawnLauncher, plan);
|
|
128
|
+
/** Launches the walkthrough, then applies its result through the shared setup state machine. */
|
|
129
|
+
export const runSetup = async (dependencies = {}) => {
|
|
130
|
+
/* v8 ignore next -- the process TTY default is exercised through outfitter-dev. */
|
|
131
|
+
const interactive = dependencies.interactive ?? Boolean(process.stdin.isTTY && process.stdout.isTTY);
|
|
132
|
+
if (!interactive)
|
|
229
133
|
return undefined;
|
|
134
|
+
const homeDirectory = resolveHomeDirectory(dependencies.homeDirectory);
|
|
135
|
+
const projectDirectory = resolve(resolveProjectDirectory(dependencies.projectDirectory));
|
|
136
|
+
const defaultCatalogRoot = dependencies.setupSourceUri === undefined
|
|
137
|
+
? (dependencies.defaultCatalogBootstrap ?? ((home) => bootstrapDefaultCatalog(home).root))(homeDirectory)
|
|
138
|
+
: undefined;
|
|
139
|
+
const availableAgents = discoverSetupAgentChoices({ defaultCatalogRoot });
|
|
140
|
+
const setupDirectory = mkdtempSync(join(tmpdir(), 'outfitter-setup-'));
|
|
141
|
+
try {
|
|
142
|
+
const launch = preparePiSetupLaunch({
|
|
143
|
+
homeDirectory,
|
|
144
|
+
projectDirectory,
|
|
145
|
+
setupDirectory,
|
|
146
|
+
availableAgents,
|
|
147
|
+
setupSourceUri: dependencies.setupSourceUri,
|
|
148
|
+
});
|
|
149
|
+
/* v8 ignore next -- the bundled default launcher is exercised through outfitter-dev. */
|
|
150
|
+
const exitCode = await (dependencies.launcher ?? defaultLauncher)(launch.plan);
|
|
151
|
+
if (exitCode !== 0)
|
|
152
|
+
throw new Error(`The Outfitter setup walkthrough exited with code ${exitCode}.`);
|
|
153
|
+
const selection = parseSetupSelection(launch.resultPath);
|
|
154
|
+
if (selection === undefined)
|
|
155
|
+
return undefined;
|
|
156
|
+
return applySetupSelection({
|
|
157
|
+
homeDirectory,
|
|
158
|
+
projectDirectory,
|
|
159
|
+
selection,
|
|
160
|
+
availableAgents,
|
|
161
|
+
defaultCatalogRoot,
|
|
162
|
+
});
|
|
230
163
|
}
|
|
231
|
-
|
|
232
|
-
|
|
164
|
+
finally {
|
|
165
|
+
rmSync(setupDirectory, { recursive: true, force: true });
|
|
233
166
|
}
|
|
234
|
-
return executeWelcomeCommand(input, dependencies);
|
|
235
167
|
};
|
|
236
|
-
|
|
237
|
-
|
|
168
|
+
/* v8 ignore next -- wiring to the shared spawn boundary; launchThroughSpawn itself is unit-tested. */
|
|
169
|
+
const defaultRunLauncher = (plan) => launchThroughSpawn(spawnLauncher, plan);
|
|
170
|
+
// After an explicit `outfitter setup`, start the just-selected profile in pi so the user lands in a
|
|
171
|
+
// working session instead of being told to restart. Only a concrete agent choice (default/create
|
|
172
|
+
// modes set `defaultAgent`) launches immediately; catalog/source setups still need a sync, so they
|
|
173
|
+
// keep their "run outfitter sync / restart" guidance and are skipped here.
|
|
174
|
+
const autoLaunchSelectedProfile = async (dependencies, result, writeLine) => {
|
|
175
|
+
if (result.defaultAgent === undefined)
|
|
238
176
|
return;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
177
|
+
writeLine(`Starting '${result.defaultAgent}' in ${result.defaultHarness}…`);
|
|
178
|
+
const runResult = await executeRunAgentCommand({
|
|
179
|
+
homeDirectory: resolveHomeDirectory(dependencies.homeDirectory),
|
|
180
|
+
projectDirectory: resolve(resolveProjectDirectory(dependencies.projectDirectory)),
|
|
181
|
+
harness: result.defaultHarness,
|
|
182
|
+
launcher: dependencies.runLauncher ?? defaultRunLauncher,
|
|
183
|
+
});
|
|
184
|
+
for (const message of runResult.messages)
|
|
185
|
+
writeLine(message);
|
|
186
|
+
/* v8 ignore next -- surfaces a nonzero profile-launch exit to the shell; happy path returns 0. */
|
|
187
|
+
if (runResult.exitCode !== 0)
|
|
188
|
+
process.exitCode = runResult.exitCode;
|
|
247
189
|
};
|
|
248
|
-
const
|
|
190
|
+
export const createSetupCommand = (dependencies = {}) => ({
|
|
191
|
+
name: 'setup',
|
|
192
|
+
description: 'Configure .agents through the bundled Pi walkthrough.',
|
|
193
|
+
register(program) {
|
|
194
|
+
program.addCommand(new Command('setup')
|
|
195
|
+
.description('Configure .agents through the bundled Pi walkthrough.')
|
|
196
|
+
.argument('[source]', 'Optional setup source URI or path.')
|
|
197
|
+
.action(async (source) => {
|
|
198
|
+
const result = await runSetup({ ...dependencies, setupSourceUri: source ?? dependencies.setupSourceUri });
|
|
199
|
+
/* v8 ignore next -- console fallback is direct CLI behavior. */
|
|
200
|
+
const writeLine = dependencies.writeLine ?? console.log;
|
|
201
|
+
if (result === undefined) {
|
|
202
|
+
writeLine('Outfitter setup made no changes. Run it from an interactive terminal to configure .agents.');
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
for (const message of result.messages)
|
|
206
|
+
writeLine(message);
|
|
207
|
+
await autoLaunchSelectedProfile(dependencies, result, writeLine);
|
|
208
|
+
}));
|
|
209
|
+
},
|
|
210
|
+
});
|
|
249
211
|
//# sourceMappingURL=SetupCommand.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetupCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/SetupCommand.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SetupCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/SetupCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ValidationFinding } from '../../resolver/ResolverValidation.js';
|
|
2
|
+
import type { CommandObject } from './CommandObject.js';
|
|
3
|
+
export interface ValidateInput {
|
|
4
|
+
readonly homeDirectory: string;
|
|
5
|
+
readonly projectDirectory: string;
|
|
6
|
+
readonly strict?: boolean;
|
|
7
|
+
readonly json?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface ValidateResult {
|
|
10
|
+
readonly findings: readonly ValidationFinding[];
|
|
11
|
+
readonly ok: boolean;
|
|
12
|
+
readonly messages: readonly string[];
|
|
13
|
+
}
|
|
14
|
+
export interface ValidateCommandDependencies {
|
|
15
|
+
readonly homeDirectory?: string;
|
|
16
|
+
readonly projectDirectory?: string;
|
|
17
|
+
readonly writeLine?: (message: string) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare const executeValidateCommand: (input: ValidateInput) => ValidateResult;
|
|
20
|
+
export declare const createValidateCommand: (dependencies?: ValidateCommandDependencies) => CommandObject;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// Provides `outfitter validate [--strict] [--json]` over the effective resource set.
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import { resolveEffectiveSet } from '../../resolver/ResolverContext.js';
|
|
4
|
+
import { validateEffectiveSet } from '../../resolver/ResolverValidation.js';
|
|
5
|
+
import { resolveHomeDirectory, resolveProjectDirectory } from './ProcessDefaults.js';
|
|
6
|
+
const settingsFindings = (messages) => messages.map((message) => ({ severity: 'error', resource: 'settings', message }));
|
|
7
|
+
export const executeValidateCommand = (input) => {
|
|
8
|
+
const { set, settingsIssues } = resolveEffectiveSet(input);
|
|
9
|
+
const findings = [
|
|
10
|
+
...settingsFindings(settingsIssues.map((issue) => `${issue.filePath}#${issue.path} ${issue.message}`)),
|
|
11
|
+
...validateEffectiveSet(set),
|
|
12
|
+
];
|
|
13
|
+
const hasErrors = findings.some((finding) => finding.severity === 'error');
|
|
14
|
+
const hasWarnings = findings.some((finding) => finding.severity === 'warning');
|
|
15
|
+
const ok = !hasErrors && !(input.strict === true && hasWarnings);
|
|
16
|
+
const messages = input.json === true ? [JSON.stringify({ ok, findings }, null, 2)] : formatFindings(findings, ok);
|
|
17
|
+
return { findings, ok, messages };
|
|
18
|
+
};
|
|
19
|
+
const formatFindings = (findings, ok) => {
|
|
20
|
+
if (findings.length === 0) {
|
|
21
|
+
return ['✓ No issues found.'];
|
|
22
|
+
}
|
|
23
|
+
const lines = findings.map((finding) => `${finding.severity === 'error' ? '✗' : '⚠'} ${finding.resource}: ${finding.message}`);
|
|
24
|
+
return [...lines, ok ? '✓ Passed (warnings only).' : '✗ Validation failed.'];
|
|
25
|
+
};
|
|
26
|
+
export const createValidateCommand = (dependencies = {}) => ({
|
|
27
|
+
name: 'validate',
|
|
28
|
+
description: 'Validate the resolved .agents tree: schemas, loadout slugs, and shadowing.',
|
|
29
|
+
register(program) {
|
|
30
|
+
program.addCommand(new Command('validate')
|
|
31
|
+
.description('Validate the resolved .agents tree: schemas, loadout slugs, and shadowing.')
|
|
32
|
+
.option('--strict', 'Treat warnings (such as shadowed definitions) as failures.')
|
|
33
|
+
.option('--json', 'Emit findings as JSON.')
|
|
34
|
+
.action((options) => {
|
|
35
|
+
/* v8 ignore next 2 -- process defaults are exercised by the CLI entrypoint, not unit tests. */
|
|
36
|
+
const homeDirectory = resolveHomeDirectory(dependencies.homeDirectory);
|
|
37
|
+
const projectDirectory = resolveProjectDirectory(dependencies.projectDirectory);
|
|
38
|
+
const result = executeValidateCommand({
|
|
39
|
+
homeDirectory,
|
|
40
|
+
projectDirectory,
|
|
41
|
+
strict: options.strict,
|
|
42
|
+
json: options.json,
|
|
43
|
+
});
|
|
44
|
+
for (const message of result.messages) {
|
|
45
|
+
/* v8 ignore next -- console fallback is direct CLI behavior; tests inject a writer. */
|
|
46
|
+
(dependencies.writeLine ?? console.log)(message);
|
|
47
|
+
}
|
|
48
|
+
if (!result.ok) {
|
|
49
|
+
process.exitCode = 1;
|
|
50
|
+
}
|
|
51
|
+
}));
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=ValidateCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ValidateCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/ValidateCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { EffectiveResourceSet } from '../resolver/Resource.js';
|
|
2
|
+
import type { CompositionPlan } from './Composition.js';
|
|
3
|
+
export interface ComposeResult {
|
|
4
|
+
readonly plan?: CompositionPlan;
|
|
5
|
+
readonly errors: readonly string[];
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Composes the selected agent into a CompositionPlan. Returns an error when the agent slug does not
|
|
9
|
+
* resolve or its definition is invalid; loadout slugs that do not resolve are non-fatal warnings.
|
|
10
|
+
*/
|
|
11
|
+
export declare const compose: (set: EffectiveResourceSet, agentSlug: string) => ComposeResult;
|