@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,20 +1,33 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: outfitter
|
|
3
|
-
description: Explain Outfitter and help users
|
|
3
|
+
description: Explain Outfitter and help users compose, inspect, and maintain .agents resources, agents and their loadouts, personas, skills, and settings. Use when a user asks about Outfitter itself — the .agents protocol, agent profiles and personas, catalogs, skills, state persistence, launch configuration — or asks to set up, change, debug, or migrate an Outfitter-managed launch.
|
|
4
4
|
|
|
5
|
+
# TODO: once directory reference materialization lands, collapse the list
|
|
6
|
+
# below to a single `- file: docs/documentation` entry so the whole
|
|
7
|
+
# documentation tree ships with this skill. Kept per-file until then.
|
|
5
8
|
references:
|
|
6
9
|
- file: docs/documentation/README.md
|
|
7
10
|
- file: docs/documentation/getting-started.md
|
|
8
11
|
- file: docs/documentation/concepts.md
|
|
12
|
+
- file: docs/documentation/settings.md
|
|
9
13
|
- file: docs/documentation/cli.md
|
|
10
14
|
- file: docs/documentation/profiles.md
|
|
11
|
-
- file: docs/documentation/
|
|
15
|
+
- file: docs/documentation/personas.md
|
|
16
|
+
- file: docs/documentation/subagents.md
|
|
17
|
+
- file: docs/documentation/agents.md
|
|
12
18
|
- file: docs/documentation/skills.md
|
|
19
|
+
- file: docs/documentation/tasks.md
|
|
20
|
+
- file: docs/documentation/dump-and-bake.md
|
|
21
|
+
- file: docs/documentation/catalogs.md
|
|
13
22
|
- file: docs/documentation/state.md
|
|
14
23
|
- file: docs/documentation/support-matrix.md
|
|
15
24
|
- file: docs/documentation/best-practices.md
|
|
16
25
|
- file: docs/documentation/actions.md
|
|
26
|
+
- file: docs/documentation/hooks.md
|
|
17
27
|
- file: docs/documentation/switching-to-outfitter.md
|
|
28
|
+
- file: docs/documentation/porting-claude.md
|
|
29
|
+
- file: docs/documentation/local-development.md
|
|
30
|
+
- file: docs/documentation/migration.md
|
|
18
31
|
- file: docs/documentation/first-time-cli-agent-users.md
|
|
19
32
|
- file: docs/documentation/iterating-on-profiles.md
|
|
20
33
|
---
|
|
@@ -22,36 +35,54 @@ references:
|
|
|
22
35
|
# Outfitter
|
|
23
36
|
|
|
24
37
|
Use this skill to answer questions about Outfitter and to guide changes to
|
|
25
|
-
|
|
26
|
-
only the relevant reference, and follow its cross-references
|
|
27
|
-
or editing configuration.
|
|
38
|
+
`.agents` resources, agents and their loadouts, and launches. Classify the
|
|
39
|
+
request, read only the relevant reference, and follow its cross-references
|
|
40
|
+
before answering or editing configuration.
|
|
28
41
|
|
|
29
42
|
## Routing
|
|
30
43
|
|
|
31
44
|
- New to Outfitter, installing, or first launch: read
|
|
32
45
|
`references/getting-started.md`.
|
|
33
|
-
- How a launch works —
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
`
|
|
37
|
-
-
|
|
38
|
-
read `references/
|
|
39
|
-
-
|
|
40
|
-
|
|
46
|
+
- How a launch works — the `.agents` protocol, layers, resolver, composition:
|
|
47
|
+
read `references/concepts.md`.
|
|
48
|
+
- Settings scopes, schema, or `settings.local.yml`: read
|
|
49
|
+
`references/settings.md`.
|
|
50
|
+
- Command flags and syntax for `outfitter run`, `setup`, `sync`, `list`,
|
|
51
|
+
`validate`, or `dump`: read `references/cli.md`.
|
|
52
|
+
- Agent profiles — an agent and its loadout (skills, subagents, mcp,
|
|
53
|
+
extensions, plugins, model, thinking, tools): read `references/profiles.md`.
|
|
54
|
+
- The `agents/<id>/agent.md` resource format and loadout fields: read
|
|
55
|
+
`references/agents.md`.
|
|
56
|
+
- Personas — the base-agent-plus-persona-documents convention: read
|
|
57
|
+
`references/personas.md`.
|
|
58
|
+
- Subagents and leader-agent delegation: read `references/subagents.md`.
|
|
41
59
|
- Authoring or selecting skills, SKILL.md layout, skill references: read
|
|
42
60
|
`references/skills.md`.
|
|
61
|
+
- Tasks and bake (a separate upcoming RFC): read `references/tasks.md`.
|
|
62
|
+
- Dumping the composed tree: read `references/dump-and-bake.md`.
|
|
63
|
+
- Shared catalogs, standalone `.agents` repositories, remote sources,
|
|
64
|
+
publishing resources: read `references/catalogs.md`.
|
|
43
65
|
- What persists between runs, state persistence strategies, prompt choices:
|
|
44
66
|
read `references/state.md`.
|
|
45
|
-
- What Outfitter can
|
|
67
|
+
- What Outfitter can project per agent CLI (pi, Claude Code): read
|
|
46
68
|
`references/support-matrix.md`.
|
|
47
|
-
- Structuring
|
|
48
|
-
`references/best-practices.md`.
|
|
49
|
-
- Running
|
|
69
|
+
- Structuring agent identity versus skills, keeping instructions in one place:
|
|
70
|
+
read `references/best-practices.md`.
|
|
71
|
+
- Running tasks headlessly in GitHub Actions: read `references/actions.md`.
|
|
72
|
+
- Getting hooks working per harness: read `references/hooks.md`.
|
|
50
73
|
- Migrating from another agent CLI setup: read
|
|
51
74
|
`references/switching-to-outfitter.md`.
|
|
75
|
+
- Porting an existing `~/.claude` directory into `~/.agents`: read
|
|
76
|
+
`references/porting-claude.md`.
|
|
77
|
+
- Developing a personal `.agents` repository and upstreaming changes: read
|
|
78
|
+
`references/local-development.md`.
|
|
79
|
+
- **Migrating from legacy `.outfitter` profiles** (`profile.yml`,
|
|
80
|
+
`.outfitter/profiles`, `--profile` file ids): read `references/migration.md`.
|
|
81
|
+
The runtime has no legacy compatibility; this reference is the manual
|
|
82
|
+
migration path.
|
|
52
83
|
- Never used a CLI coding agent before: read
|
|
53
84
|
`references/first-time-cli-agent-users.md`.
|
|
54
|
-
- Improving the currently active
|
|
85
|
+
- Improving the currently active agent, including this launch's own
|
|
55
86
|
configuration: read `references/iterating-on-profiles.md`.
|
|
56
87
|
|
|
57
88
|
`references/README.md` is the documentation index if no entry above fits.
|
|
@@ -59,28 +90,27 @@ or editing configuration.
|
|
|
59
90
|
## Working on Outfitter configuration
|
|
60
91
|
|
|
61
92
|
1. Inspect the current configuration before editing:
|
|
62
|
-
- `.
|
|
63
|
-
- `.
|
|
64
|
-
- `~/.
|
|
65
|
-
2. Prefer Outfitter commands over manual
|
|
66
|
-
- `outfitter
|
|
67
|
-
- `outfitter
|
|
68
|
-
|
|
69
|
-
- `outfitter
|
|
70
|
-
- `outfitter
|
|
71
|
-
- `outfitter
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
the profile, per-capability procedure belongs in a skill
|
|
93
|
+
- `.agents/settings.yml` and `.agents/settings.local.yml`
|
|
94
|
+
- `.agents/agents/` and `.agents/skills/`
|
|
95
|
+
- `~/.agents/settings.yml` and the `~/.agents/` tree
|
|
96
|
+
2. Prefer Outfitter commands over manual inspection:
|
|
97
|
+
- `outfitter list` to inspect resolvable resources and their sources
|
|
98
|
+
- `outfitter validate` to check layout, loadouts, and references
|
|
99
|
+
- `outfitter setup <source>` to import catalogs
|
|
100
|
+
- `outfitter sync` to refresh remote sources
|
|
101
|
+
- `outfitter run <agent-id>` to verify launch behavior
|
|
102
|
+
- `outfitter dump --out <dir>` to inspect exactly what a run composes
|
|
103
|
+
3. Keep each instruction in one place: durable identity belongs in the agent
|
|
104
|
+
definition, per-capability procedure belongs in a skill
|
|
75
105
|
(`references/best-practices.md`).
|
|
76
|
-
4. Validate changes with `outfitter
|
|
77
|
-
test such as `outfitter run
|
|
106
|
+
4. Validate changes with `outfitter validate --strict` and, when possible, a
|
|
107
|
+
smoke test such as `outfitter run <agent-id> -- --help`.
|
|
78
108
|
|
|
79
109
|
## Default behavior
|
|
80
110
|
|
|
81
111
|
If the user asks for help with Outfitter without a specific request:
|
|
82
112
|
|
|
83
|
-
1. Run `outfitter
|
|
84
|
-
2. Summarize the
|
|
85
|
-
3. Ask whether the user wants to
|
|
86
|
-
`references/profiles.md` before
|
|
113
|
+
1. Run `outfitter list agents` to show resolvable agents and resources.
|
|
114
|
+
2. Summarize the agents by name, scope or source, and default status.
|
|
115
|
+
3. Ask whether the user wants to compose or change an agent, and read
|
|
116
|
+
`references/profiles.md` and `references/agents.md` before editing.
|
package/README.md
CHANGED
|
@@ -1,68 +1,96 @@
|
|
|
1
1
|
# Outfitter
|
|
2
2
|
|
|
3
|
-
Outfitter
|
|
3
|
+
Outfitter is the toolchain for the [Dotagents `.agents` protocol](https://dotagentsprotocol.com/): it resolves agent configuration from local and remote `.agents` trees, composes personas, skills, and tasks by slug, bakes tasks into deterministic execution artifacts, and launches the result through wrapped agent CLIs like [`pi`](https://github.com/earendil-works/pi-coding-agent) and Claude Code.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Outfitter does not own a configuration format. Your `.agents/` directory is the source of truth — useful without Outfitter, committed and reviewed like any other code.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
> **Status:** these docs describe the target architecture of [RFC #165](https://github.com/ai-outfitter/outfitter/issues/165) (protocol revision `502a9d5`). Implementation is landing as a chain of PRs; the released CLI still runs the legacy profile system until then.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
## Quick start
|
|
10
10
|
|
|
11
|
-
Run without installing
|
|
11
|
+
Run without installing:
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
14
|
npx @ai-outfitter/outfitter
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
Full install
|
|
17
|
+
Full install:
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
20
|
npm install -g @ai-outfitter/outfitter
|
|
21
21
|
outfitter
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
Pi is bundled and also hosts Outfitter's setup walkthrough. Install other runtime harnesses, such as
|
|
25
|
+
Claude Code, separately. For the full walkthrough, see [Getting started](./docs/documentation/getting-started.md).
|
|
25
26
|
|
|
26
|
-
|
|
27
|
+
## Already have a `.agents/` directory?
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
Then you already have Outfitter configuration. Each agent's loadout references your existing skills, subagents, MCP, knowledge, and commands by slug with zero porting:
|
|
29
30
|
|
|
30
|
-
|
|
31
|
+
```
|
|
32
|
+
<!-- .agents/agents/engineer/agent.md -->
|
|
33
|
+
---
|
|
34
|
+
name: engineer
|
|
35
|
+
skills: [wiki, research]
|
|
36
|
+
subagents: [code-reviewer]
|
|
37
|
+
mcp: [github]
|
|
38
|
+
---
|
|
39
|
+
```
|
|
31
40
|
|
|
32
41
|
```yaml
|
|
33
|
-
#
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
# .agents/settings.yml
|
|
43
|
+
default_agent: engineer
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
`outfitter setup` restores the original Pi-native profile-catalog walkthrough on top of `.agents`:
|
|
47
|
+
choose the default Outfitter catalog, create your own profile, or provide another catalog, then pick
|
|
48
|
+
the home/project target and default CLI agent. The default picker is fetched from the immutable
|
|
49
|
+
`ai-outfitter/default-profiles` Release Please tag pinned by Outfitter—never from a sibling checkout.
|
|
50
|
+
Managed porting and persistent harness symlinks are deferred to
|
|
51
|
+
[#187](https://github.com/ai-outfitter/outfitter/issues/187).
|
|
52
|
+
|
|
53
|
+
## The `.agents` protocol in 30 seconds
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
.agents/
|
|
57
|
+
agents.md # shared operating context
|
|
58
|
+
system-prompt.md # base system prompt
|
|
59
|
+
mcp.json # MCP servers
|
|
60
|
+
models.json # model configuration
|
|
61
|
+
agents/<id>/agent.md # identities + loadouts — run directly or as subagents
|
|
62
|
+
skills/<id>/... # capability packages
|
|
63
|
+
knowledge/ # reference documents
|
|
64
|
+
commands/ # slash commands
|
|
47
65
|
```
|
|
48
66
|
|
|
67
|
+
Layers merge by ID: `<project>/.agents/` over `~/.agents/` over pinned remote [catalogs](./docs/documentation/catalogs.md). An [agent](./docs/documentation/agents.md) carries both its identity and its loadout — an [agent profile](./docs/documentation/profiles.md) — and is what you run; a [persona](./docs/documentation/personas.md) is a review convention layered on a base agent; a [subagent](./docs/documentation/subagents.md) is an agent a run delegates to, including through [GitHub Actions](./docs/documentation/actions.md).
|
|
68
|
+
|
|
69
|
+
Agents can also run headlessly in GitHub Actions via [`ai-outfitter/actions`](https://github.com/ai-outfitter/actions).
|
|
70
|
+
|
|
49
71
|
## Documentation
|
|
50
72
|
|
|
51
73
|
- [Getting started](./docs/documentation/getting-started.md)
|
|
52
|
-
- [
|
|
53
|
-
- [
|
|
54
|
-
- [
|
|
55
|
-
- [
|
|
56
|
-
- [
|
|
57
|
-
- [
|
|
58
|
-
- [
|
|
59
|
-
- [
|
|
74
|
+
- [Concepts](./docs/documentation/concepts.md)
|
|
75
|
+
- [Settings](./docs/documentation/settings.md)
|
|
76
|
+
- [Agents](./docs/documentation/agents.md) · [Agent profiles](./docs/documentation/profiles.md) · [Personas](./docs/documentation/personas.md) · [Subagents](./docs/documentation/subagents.md)
|
|
77
|
+
- [Skills](./docs/documentation/skills.md) · [Tasks (future RFC)](./docs/documentation/tasks.md)
|
|
78
|
+
- [Catalogs](./docs/documentation/catalogs.md) · [Dump](./docs/documentation/dump-and-bake.md)
|
|
79
|
+
- [Running an agent in GitHub Actions](./docs/documentation/actions.md)
|
|
80
|
+
- [Hooks](./docs/documentation/hooks.md) · [State persistence](./docs/documentation/state.md)
|
|
81
|
+
- [Adapter support matrix](./docs/documentation/support-matrix.md)
|
|
82
|
+
- [Local dotagents development](./docs/documentation/local-development.md)
|
|
83
|
+
- [Switching to Outfitter](./docs/documentation/switching-to-outfitter.md) · [Migration from legacy profiles](./docs/documentation/migration.md)
|
|
60
84
|
- [Documentation index](./docs/documentation/README.md)
|
|
61
85
|
|
|
62
86
|
Use cases:
|
|
63
87
|
|
|
64
|
-
- [Organization
|
|
65
|
-
- [Engineering
|
|
66
|
-
- [Persona reviews](./docs/documentation/usecases/persona-reviews.md) —
|
|
88
|
+
- [Organization catalog](./docs/documentation/usecases/organization-profile-catalog.md) — Publish shared org resources and defaults through an `owner/.outfitter` control repository.
|
|
89
|
+
- [Engineering catalog](./docs/documentation/usecases/engineering.md) — Package engineering personas, skills, and tasks for repeatable workflows.
|
|
90
|
+
- [Persona reviews](./docs/documentation/usecases/persona-reviews.md) — Compose customer personas to get feedback on ideas, documentation, and designs.
|
|
67
91
|
|
|
68
92
|
For local development, repository structure, and release workflow details, see [Contributing](./CONTRIBUTING.md).
|
|
93
|
+
|
|
94
|
+
## License
|
|
95
|
+
|
|
96
|
+
Outfitter is [MIT licensed](./LICENSE.md), except for code in `code/enterprise/`, which is under the [Unsupervised Enterprise license](./code/enterprise/LICENSE). Production use of that code requires a valid Unsupervised Enterprise license.
|
|
@@ -27,7 +27,7 @@ const enablePrivateProfileCatalogs = (settingsPath) => {
|
|
|
27
27
|
...document,
|
|
28
28
|
enterprise: {
|
|
29
29
|
...enterprise,
|
|
30
|
-
|
|
30
|
+
private_catalogs: true,
|
|
31
31
|
},
|
|
32
32
|
}),
|
|
33
33
|
);
|
|
@@ -38,7 +38,7 @@ const readPrivateProfileCatalogsSetting = (value) => {
|
|
|
38
38
|
return undefined;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
return value.enterprise?.
|
|
41
|
+
return value.enterprise?.private_catalogs;
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
const readSettingsRecord = (settingsPath) => {
|
|
@@ -20,27 +20,24 @@ export const confirmPrivateCatalog = async (ctx, selectDescribedOption, reposito
|
|
|
20
20
|
export const readPrivateProfileCatalogsEnabled = (fs, settingsPath) => {
|
|
21
21
|
if (!fs.existsSync(settingsPath)) return false;
|
|
22
22
|
const content = fs.readFileSync(settingsPath, 'utf8');
|
|
23
|
-
return /^enterprise:\s*(?:\n\s+[A-Za-z0-9_-]+:\s*[^\n]*)*\n\s+
|
|
23
|
+
return /^enterprise:\s*(?:\n\s+[A-Za-z0-9_-]+:\s*[^\n]*)*\n\s+private_catalogs:\s*true\s*$/mu.test(content);
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
export const writePrivateProfileCatalogsEnabled = (fs, settingsPath) => {
|
|
27
27
|
fs.mkdirSync(fs.dirname(settingsPath), { recursive: true });
|
|
28
28
|
const content = fs.existsSync(settingsPath) ? fs.readFileSync(settingsPath, 'utf8') : '';
|
|
29
|
-
if (/^\s*
|
|
29
|
+
if (/^\s*private_catalogs:\s*(?:true|false)\s*$/mu.test(content)) {
|
|
30
30
|
fs.writeFileSync(
|
|
31
31
|
settingsPath,
|
|
32
|
-
content.replace(/^\s*
|
|
32
|
+
content.replace(/^\s*private_catalogs:\s*(?:true|false)\s*$/gmu, ' private_catalogs: true'),
|
|
33
33
|
);
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
36
|
if (/^enterprise:\s*$/mu.test(content)) {
|
|
37
|
-
fs.writeFileSync(
|
|
38
|
-
settingsPath,
|
|
39
|
-
content.replace(/^enterprise:\s*$/mu, 'enterprise:\n private_profile_catalogs: true'),
|
|
40
|
-
);
|
|
37
|
+
fs.writeFileSync(settingsPath, content.replace(/^enterprise:\s*$/mu, 'enterprise:\n private_catalogs: true'));
|
|
41
38
|
return;
|
|
42
39
|
}
|
|
43
|
-
fs.writeFileSync(settingsPath, content.replace(/\s*$/u, '\n') + 'enterprise:\n
|
|
40
|
+
fs.writeFileSync(settingsPath, content.replace(/\s*$/u, '\n') + 'enterprise:\n private_catalogs: true\n');
|
|
44
41
|
};
|
|
45
42
|
|
|
46
43
|
export const classifyGitHubRepositoryVisibility = async (repository) => {
|
|
@@ -18,15 +18,15 @@ const formatPrivateCatalogCliPrompt = (repository) =>
|
|
|
18
18
|
'Private profile catalog support is covered by the Outfitter Enterprise license.',
|
|
19
19
|
'Review code/enterprise/LICENSE or your enterprise agreement before enabling.',
|
|
20
20
|
'',
|
|
21
|
-
'Enable private profile catalogs in ~/.
|
|
21
|
+
'Enable private profile catalogs in ~/.agents/settings.yml? [y/N] ',
|
|
22
22
|
].join('\n');
|
|
23
23
|
|
|
24
24
|
const formatPrivateCatalogSkippedMessage = (repository, interactive) =>
|
|
25
25
|
interactive
|
|
26
26
|
? `info: Private profile catalog setup was skipped for ${repository}; no settings were changed.`
|
|
27
|
-
: `info: Private GitHub profile catalog detected: ${repository}. Enable enterprise.
|
|
27
|
+
: `info: Private GitHub profile catalog detected: ${repository}. Enable enterprise.private_catalogs in ~/.agents/settings.yml after reviewing code/enterprise/LICENSE or your enterprise agreement.`;
|
|
28
28
|
|
|
29
|
-
const privateCatalogEnabledMessage = 'info: Enabled private profile catalogs in ~/.
|
|
29
|
+
const privateCatalogEnabledMessage = 'info: Enabled private profile catalogs in ~/.agents/settings.yml.';
|
|
30
30
|
|
|
31
31
|
const formatPrivateCatalogSkipResultMessage = (repository) =>
|
|
32
32
|
`Private profile catalog setup was skipped for ${repository}; no settings were changed.`;
|
|
@@ -35,7 +35,7 @@ const privateCatalogPiPromptItems = Object.freeze([
|
|
|
35
35
|
Object.freeze({
|
|
36
36
|
value: 'enable',
|
|
37
37
|
label: 'Enable and continue',
|
|
38
|
-
description: 'Write enterprise.
|
|
38
|
+
description: 'Write enterprise.private_catalogs: true to ~/.agents/settings.yml and save this catalog.',
|
|
39
39
|
}),
|
|
40
40
|
Object.freeze({
|
|
41
41
|
value: 'cancel',
|
|
@@ -50,7 +50,7 @@ const formatPrivateCatalogPiPromptTitle = (repository) => [
|
|
|
50
50
|
'Private profile catalog support is covered by the Outfitter Enterprise license.',
|
|
51
51
|
'Review code/enterprise/LICENSE or your enterprise agreement before enabling.',
|
|
52
52
|
'',
|
|
53
|
-
'Enable private profile catalogs in ~/.
|
|
53
|
+
'Enable private profile catalogs in ~/.agents/settings.yml and use this catalog?',
|
|
54
54
|
];
|
|
55
55
|
|
|
56
56
|
module.exports = {
|