@ai-outfitter/outfitter 0.3.0 → 0.4.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 (43) hide show
  1. package/README.md +13 -7
  2. package/dist/agents/AdapterProfileControls.d.ts +1 -0
  3. package/dist/agents/AdapterProfileControls.js +6 -0
  4. package/dist/agents/AdapterProfileControls.js.map +1 -1
  5. package/dist/agents/claude/ClaudeAdapter.js +2 -2
  6. package/dist/agents/claude/ClaudeAdapter.js.map +1 -1
  7. package/dist/agents/pi/PiAdapter.js +16 -12
  8. package/dist/agents/pi/PiAdapter.js.map +1 -1
  9. package/dist/cli/OutfitterCli.js +7 -2
  10. package/dist/cli/OutfitterCli.js.map +1 -1
  11. package/dist/cli/commands/RunCommand.js +4 -1
  12. package/dist/cli/commands/RunCommand.js.map +1 -1
  13. package/dist/cli/commands/SetupCommand.d.ts +15 -0
  14. package/dist/cli/commands/SetupCommand.js +355 -32
  15. package/dist/cli/commands/SetupCommand.js.map +1 -1
  16. package/dist/cli/commands/WelcomeCommand.d.ts +1 -0
  17. package/dist/cli/commands/WelcomeCommand.js +10 -7
  18. package/dist/cli/commands/WelcomeCommand.js.map +1 -1
  19. package/dist/cli/commands/profile/ListCommand.d.ts +2 -0
  20. package/dist/cli/commands/profile/ListCommand.js +9 -3
  21. package/dist/cli/commands/profile/ListCommand.js.map +1 -1
  22. package/dist/merge/ArrayMergePolicy.d.ts +2 -1
  23. package/dist/merge/ArrayMergePolicy.js +14 -11
  24. package/dist/merge/ArrayMergePolicy.js.map +1 -1
  25. package/dist/merge/SettingsValueMerger.js +27 -2
  26. package/dist/merge/SettingsValueMerger.js.map +1 -1
  27. package/dist/profiles/Profile.d.ts +3 -1
  28. package/dist/profiles/Profile.js.map +1 -1
  29. package/dist/profiles/ProfileLoader.js +15 -2
  30. package/dist/profiles/ProfileLoader.js.map +1 -1
  31. package/dist/profiles/ProfileMerger.d.ts +0 -1
  32. package/dist/profiles/ProfileMerger.js +20 -9
  33. package/dist/profiles/ProfileMerger.js.map +1 -1
  34. package/dist/schemas/profile.schema.json +16 -4
  35. package/doc/architecture.md +28 -7
  36. package/package.json +1 -1
  37. package/requirements/OFTR-001-project-foundation.md +1 -1
  38. package/requirements/OFTR-003-profiles.md +13 -5
  39. package/requirements/OFTR-004-sync-and-setup.md +11 -1
  40. package/requirements/OFTR-006-agent-adapters.md +2 -0
  41. package/requirements/OFTR-009-release-publishing.md +11 -2
  42. package/requirements/OFTR-010-onboarding-welcome.md +1 -0
  43. package/src/schemas/profile.schema.json +16 -4
@@ -1 +1 @@
1
- {"version":3,"file":"WelcomeCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/WelcomeCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WelcomeCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/WelcomeCommand.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,12 @@ export interface ListedProfile {
4
4
  readonly id: string;
5
5
  readonly label?: string;
6
6
  readonly profilePath: string;
7
+ readonly template: boolean;
7
8
  }
8
9
  export interface ListProfilesInput {
9
10
  readonly homeDirectory: string;
10
11
  readonly projectDirectory: string;
12
+ readonly includeTemplates?: boolean;
11
13
  }
12
14
  export interface ListProfilesResult {
13
15
  readonly profiles: readonly ListedProfile[];
@@ -15,12 +15,16 @@ export const createProfileListCommand = (dependencies) => {
15
15
  };
16
16
  return command;
17
17
  };
18
- const createProfileListCommander = (dependencies) => new Command('list').description('List available Outfitter profiles.').action(() => {
18
+ const createProfileListCommander = (dependencies) => new Command('list')
19
+ .description('List available Outfitter profiles.')
20
+ .option('--all', 'Include template profiles that are intended only for inheritance.')
21
+ .action((options) => {
19
22
  const result = executeListProfilesCommand({
20
23
  /* v8 ignore next -- default process home is exercised by the direct CLI entrypoint, not unit tests. */
21
24
  homeDirectory: dependencies.homeDirectory ?? homedir(),
22
25
  /* v8 ignore next -- default process cwd is exercised by the direct CLI entrypoint, not unit tests. */
23
26
  projectDirectory: dependencies.projectDirectory ?? process.cwd(),
27
+ includeTemplates: options.all,
24
28
  });
25
29
  emitMessages(result.messages, dependencies.writeLine);
26
30
  });
@@ -33,10 +37,10 @@ export const executeListProfilesCommand = (input) => {
33
37
  if (profileLoadResult.issues.length > 0) {
34
38
  throw new Error(`Cannot list profiles with invalid profiles: ${profileLoadResult.issues.map(formatProfileIssue).join('; ')}`);
35
39
  }
36
- const profiles = listHighestPrecedenceProfiles(profileLoadResult.profiles);
40
+ const profiles = listHighestPrecedenceProfiles(profileLoadResult.profiles).filter((profile) => input.includeTemplates === true || !profile.template);
37
41
  return {
38
42
  profiles,
39
- messages: profiles.length === 0 ? ['No profiles found.'] : profiles.map((profile) => profile.id),
43
+ messages: profiles.length === 0 ? ['No profiles found.'] : profiles.map(formatListedProfile),
40
44
  };
41
45
  };
42
46
  const emitMessages = (messages, writeLine) => {
@@ -76,10 +80,12 @@ const listHighestPrecedenceProfiles = (loadedProfiles) => {
76
80
  id: loadedProfile.profile.id,
77
81
  label: loadedProfile.profile.label,
78
82
  profilePath: loadedProfile.profilePath,
83
+ template: loadedProfile.profile.template === true,
79
84
  });
80
85
  }
81
86
  return [...profilesById.values()].sort((left, right) => left.id.localeCompare(right.id));
82
87
  };
88
+ const formatListedProfile = (profile) => profile.template ? `${profile.id} (template)` : profile.id;
83
89
  const formatSettingsIssue = (issue) => `${issue.filePath}#${issue.path} ${issue.message}`;
84
90
  const formatProfileIssue = (issue) => `${issue.path} ${issue.message}`;
85
91
  //# sourceMappingURL=ListCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListCommand.js","sourceRoot":"","sources":["../../../../src/cli/commands/profile/ListCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListCommand.js","sourceRoot":"","sources":["../../../../src/cli/commands/profile/ListCommand.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAG5E,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAG3F,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAoB1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,YAAwC,EAAiB,EAAE;IAClG,MAAM,OAAO,GAAkB;QAC7B,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,oCAAoC;QACjD,QAAQ,CAAC,OAAgB;YACvB,2BAA2B,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5F,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CAAC,YAAwC,EAAW,EAAE,CACvF,IAAI,OAAO,CAAC,MAAM,CAAC;KAChB,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,OAAO,EAAE,mEAAmE,CAAC;KACpF,MAAM,CAAC,CAAC,OAA0B,EAAE,EAAE;IACrC,MAAM,MAAM,GAAG,0BAA0B,CAAC;QACxC,uGAAuG;QACvG,aAAa,EAAE,YAAY,CAAC,aAAa,IAAI,OAAO,EAAE;QACtD,sGAAsG;QACtG,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE;QAChE,gBAAgB,EAAE,OAAO,CAAC,GAAG;KAC9B,CAAC,CAAC;IAEH,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEP,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAwB,EAAsB,EAAE;IACzF,MAAM,cAAc,GAAG,oCAAoC,CAAC,KAAK,CAAC,CAAC;IAEnE,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,+CAA+C,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3G,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,KAAK,CAAC,aAAa,EAAE,cAAc,CAAC,QAAQ,CAAC,cAAe,CAAC,CAAC;IAE3G,IAAI,iBAAiB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,+CAA+C,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7G,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,6BAA6B,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC/E,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAClE,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,QAAQ,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC;KAC7F,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,QAA2B,EAAE,SAAkD,EAAQ,EAAE;IAC7G,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,uFAAuF;QACvF,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CACzB,aAAqB,EACrB,OAA0C,EAI1C,EAAE;IACF,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,MAAM,GAA0D,EAAE,CAAC;IAEzE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;QAC1D,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,aAAqB,EAAE,MAA8B,EAA0B,EAAE;IAC1G,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACtF,OAAO,EAAE,IAAI,EAAE,4BAA4B,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACrH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,8BAA8B,CAAC,+BAA+B,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC;QACzG,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,6BAA6B,GAAG,CAAC,cAAwC,EAA4B,EAAE;IAC3G,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEtD,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC3C,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE;YACzC,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE;YAC5B,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK;YAClC,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI;SAClD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,OAAsB,EAAU,EAAE,CAC7D,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;AAE7D,MAAM,mBAAmB,GAAG,CAAC,KAI5B,EAAU,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AAEjE,MAAM,kBAAkB,GAAG,CAAC,KAA0D,EAAU,EAAE,CAChG,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export type ArrayMergeKey<T> = (item: T) => string;
2
- export type ArrayMergePolicy<T = unknown> = 'replace' | 'append' | 'prepend' | 'appendUnique' | 'prependUnique' | {
2
+ export type StringArrayMergePolicy = 'replace' | 'append' | 'prepend' | 'appendUnique' | 'prependUnique' | 'appendList' | 'prependList';
3
+ export type ArrayMergePolicy<T = unknown> = StringArrayMergePolicy | {
3
4
  readonly mode: 'uniqueBy';
4
5
  readonly key: ArrayMergeKey<T>;
5
6
  readonly order: 'append' | 'prepend';
@@ -1,22 +1,25 @@
1
1
  export const mergeArrayByPolicy = (lowerPrecedence, higherPrecedence, policy = 'replace') => {
2
2
  const lower = lowerPrecedence ?? [];
3
+ if (typeof policy === 'string') {
4
+ return mergeArrayByStringPolicy(lower, higherPrecedence, policy);
5
+ }
6
+ const ordered = policy.order === 'append' ? [...lower, ...higherPrecedence] : [...higherPrecedence, ...lower];
7
+ return uniqueBy(ordered, policy.key, policy.winner);
8
+ };
9
+ const mergeArrayByStringPolicy = (lower, higher, policy) => {
3
10
  if (policy === 'replace') {
4
- return [...higherPrecedence];
11
+ return [...higher];
5
12
  }
6
- if (policy === 'append') {
7
- return [...lower, ...higherPrecedence];
13
+ if (policy === 'append' || policy === 'appendList') {
14
+ return [...lower, ...higher];
8
15
  }
9
- if (policy === 'prepend') {
10
- return [...higherPrecedence, ...lower];
16
+ if (policy === 'prepend' || policy === 'prependList') {
17
+ return [...higher, ...lower];
11
18
  }
12
19
  if (policy === 'appendUnique') {
13
- return uniqueBy([...lower, ...higherPrecedence], defaultArrayMergeKey, 'first');
20
+ return uniqueBy([...lower, ...higher], defaultArrayMergeKey, 'first');
14
21
  }
15
- if (policy === 'prependUnique') {
16
- return uniqueBy([...higherPrecedence, ...lower], defaultArrayMergeKey, 'first');
17
- }
18
- const ordered = policy.order === 'append' ? [...lower, ...higherPrecedence] : [...higherPrecedence, ...lower];
19
- return uniqueBy(ordered, policy.key, policy.winner);
22
+ return uniqueBy([...higher, ...lower], defaultArrayMergeKey, 'first');
20
23
  };
21
24
  const uniqueBy = (items, key, winner) => {
22
25
  if (winner === 'first') {
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayMergePolicy.js","sourceRoot":"","sources":["../../src/merge/ArrayMergePolicy.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,eAAyC,EACzC,gBAA8B,EAC9B,SAA8B,SAAS,EACzB,EAAE;IAChB,MAAM,KAAK,GAAG,eAAe,IAAI,EAAE,CAAC;IAEpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,gBAAgB,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,gBAAgB,EAAE,GAAG,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,gBAAgB,CAAC,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,CAAC,GAAG,gBAAgB,EAAE,GAAG,KAAK,CAAC,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,EAAE,GAAG,KAAK,CAAC,CAAC;IAE9G,OAAO,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAI,KAAmB,EAAE,GAAqB,EAAE,MAAwB,EAAgB,EAAE;IACzG,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,MAAM,GAAQ,EAAE,CAAC;QAEvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;YAE1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAI,IAAO,EAAU,EAAE;IAClD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC"}
1
+ {"version":3,"file":"ArrayMergePolicy.js","sourceRoot":"","sources":["../../src/merge/ArrayMergePolicy.ts"],"names":[],"mappings":"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"}
@@ -12,14 +12,32 @@ const mergeObjectValue = (lowerPrecedence, higherPrecedence, path, options) => (
12
12
  ])),
13
13
  });
14
14
  const mergeMemberValue = (lowerPrecedence, higherPrecedence, path, options) => {
15
- if (Array.isArray(higherPrecedence)) {
16
- return mergeArrayByPolicy(isMergeableArray(lowerPrecedence) ? lowerPrecedence : undefined, higherPrecedence, options.arrayPolicyForPath?.(path) ?? 'replace');
15
+ const arrayPolicy = options.arrayPolicyForPath?.(path);
16
+ const listMergedValue = mergeListMemberValue(lowerPrecedence, higherPrecedence, arrayPolicy);
17
+ if (listMergedValue !== undefined) {
18
+ return listMergedValue;
19
+ }
20
+ const arrayMergedValue = mergeArrayMemberValue(lowerPrecedence, higherPrecedence, arrayPolicy);
21
+ if (arrayMergedValue !== undefined) {
22
+ return arrayMergedValue;
17
23
  }
18
24
  if (isPlainMergeableObject(lowerPrecedence) && isPlainMergeableObject(higherPrecedence)) {
19
25
  return mergeObjectValue(lowerPrecedence, higherPrecedence, path, options);
20
26
  }
21
27
  return cloneMergeableValue(higherPrecedence);
22
28
  };
29
+ const mergeListMemberValue = (lowerPrecedence, higherPrecedence, arrayPolicy) => {
30
+ if (arrayPolicy !== 'appendList' && arrayPolicy !== 'prependList') {
31
+ return undefined;
32
+ }
33
+ return mergeArrayByPolicy(coerceMergeableList(lowerPrecedence), coerceDefinedMergeableList(higherPrecedence), arrayPolicy === 'appendList' ? 'append' : 'prepend');
34
+ };
35
+ const mergeArrayMemberValue = (lowerPrecedence, higherPrecedence, arrayPolicy) => {
36
+ if (!Array.isArray(higherPrecedence)) {
37
+ return undefined;
38
+ }
39
+ return mergeArrayByPolicy(isMergeableArray(lowerPrecedence) ? lowerPrecedence : undefined, higherPrecedence, arrayPolicy ?? 'replace');
40
+ };
23
41
  const cloneMergeableValue = (value) => {
24
42
  if (isMergeableArray(value)) {
25
43
  return value.map(cloneMergeableValue);
@@ -31,4 +49,11 @@ const cloneMergeableValue = (value) => {
31
49
  };
32
50
  const isPlainMergeableObject = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
33
51
  const isMergeableArray = (value) => Array.isArray(value);
52
+ const coerceMergeableList = (value) => {
53
+ if (value === undefined) {
54
+ return undefined;
55
+ }
56
+ return coerceDefinedMergeableList(value);
57
+ };
58
+ const coerceDefinedMergeableList = (value) => isMergeableArray(value) ? value : [value];
34
59
  //# sourceMappingURL=SettingsValueMerger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsValueMerger.js","sourceRoot":"","sources":["../../src/merge/SettingsValueMerger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAmB3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,eAA8B,EAC9B,gBAAmB,EACnB,UAA6B,EAAE,EAC5B,EAAE,CAAC,gBAAgB,CAAC,eAAe,IAAI,EAAE,EAAE,gBAAmC,EAAE,EAAE,EAAE,OAAO,CAAM,CAAC;AAEvG,MAAM,gBAAgB,GAAG,CACvB,eAAgC,EAChC,gBAAiC,EACjC,IAAe,EACf,OAA0B,EACT,EAAE,CAAC,CAAC;IACrB,GAAG,eAAe;IAClB,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC7B,MAAM,CAAC,CAAC,KAAK,EAAqC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;SAC5E,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACrB,GAAG;QACH,GAAG,IAAI,eAAe;YACpB,CAAC,CAAC,gBAAgB,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC;YACxE,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC;KAC/B,CAAC,CACL;CACF,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CACvB,eAA2C,EAC3C,gBAAgC,EAChC,IAAe,EACf,OAA0B,EACV,EAAE;IAClB,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpC,OAAO,kBAAkB,CACvB,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,EAC/D,gBAAgB,EAChB,OAAO,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,IAAI,SAAS,CAChD,CAAC;IACJ,CAAC;IAED,IAAI,sBAAsB,CAAC,eAAe,CAAC,IAAI,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACxF,OAAO,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,KAAqB,EAAkB,EAAE;IACpE,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,KAAc,EAA4B,EAAE,CAC1E,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEvE,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAsC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"SettingsValueMerger.js","sourceRoot":"","sources":["../../src/merge/SettingsValueMerger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAmB3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,eAA8B,EAC9B,gBAAmB,EACnB,UAA6B,EAAE,EAC5B,EAAE,CAAC,gBAAgB,CAAC,eAAe,IAAI,EAAE,EAAE,gBAAmC,EAAE,EAAE,EAAE,OAAO,CAAM,CAAC;AAEvG,MAAM,gBAAgB,GAAG,CACvB,eAAgC,EAChC,gBAAiC,EACjC,IAAe,EACf,OAA0B,EACT,EAAE,CAAC,CAAC;IACrB,GAAG,eAAe;IAClB,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC7B,MAAM,CAAC,CAAC,KAAK,EAAqC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;SAC5E,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACrB,GAAG;QACH,GAAG,IAAI,eAAe;YACpB,CAAC,CAAC,gBAAgB,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC;YACxE,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC;KAC/B,CAAC,CACL;CACF,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CACvB,eAA2C,EAC3C,gBAAgC,EAChC,IAAe,EACf,OAA0B,EACV,EAAE;IAClB,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,oBAAoB,CAAC,eAAe,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAE7F,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,eAAe,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAE/F,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,IAAI,sBAAsB,CAAC,eAAe,CAAC,IAAI,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACxF,OAAO,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,eAA2C,EAC3C,gBAAgC,EAChC,WAAyD,EAC7B,EAAE;IAC9B,IAAI,WAAW,KAAK,YAAY,IAAI,WAAW,KAAK,aAAa,EAAE,CAAC;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,kBAAkB,CACvB,mBAAmB,CAAC,eAAe,CAAC,EACpC,0BAA0B,CAAC,gBAAgB,CAAC,EAC5C,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CACpD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC5B,eAA2C,EAC3C,gBAAgC,EAChC,WAAyD,EAC7B,EAAE;IAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,kBAAkB,CACvB,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,EAC/D,gBAAgB,EAChB,WAAW,IAAI,SAAS,CACzB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,KAAqB,EAAkB,EAAE;IACpE,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,KAAc,EAA4B,EAAE,CAC1E,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEvE,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAsC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEtG,MAAM,mBAAmB,GAAG,CAAC,KAAiC,EAAyC,EAAE;IACvG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,0BAA0B,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CAAC,KAAqB,EAA6B,EAAE,CACtF,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { StatePersistenceStrategy } from '../compositeProfile/StatePersistence.js';
2
2
  export type StatePersistenceOverrides = Readonly<Record<string, StatePersistenceStrategy>>;
3
+ export type AppendSystemPromptControl = string | readonly string[];
3
4
  interface BaseProfileControls {
4
5
  readonly [controlName: string]: unknown;
5
6
  readonly model?: string;
@@ -12,7 +13,7 @@ interface BaseProfileControls {
12
13
  readonly skills?: readonly string[];
13
14
  readonly promptTemplate?: string;
14
15
  readonly systemPrompt?: string;
15
- readonly appendSystemPrompt?: string;
16
+ readonly appendSystemPrompt?: AppendSystemPromptControl;
16
17
  }
17
18
  export type AgentSpecificProfileControls = BaseProfileControls;
18
19
  export type PiProfileControls = AgentSpecificProfileControls;
@@ -24,6 +25,7 @@ export interface ProfileControls extends BaseProfileControls {
24
25
  export interface Profile {
25
26
  readonly id: string;
26
27
  readonly label?: string;
28
+ readonly template?: boolean;
27
29
  readonly inherits: readonly string[];
28
30
  readonly controls: ProfileControls;
29
31
  readonly statePersistence?: StatePersistenceOverrides;
@@ -1 +1 @@
1
- {"version":3,"file":"Profile.js","sourceRoot":"","sources":["../../src/profiles/Profile.ts"],"names":[],"mappings":"AAqCA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAU,EAAW,EAAE,CAAC,CAAC;IAC1D,EAAE;IACF,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,gBAAgB,EAAE,EAAE;CACrB,CAAC,CAAC"}
1
+ {"version":3,"file":"Profile.js","sourceRoot":"","sources":["../../src/profiles/Profile.ts"],"names":[],"mappings":"AAuCA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAU,EAAW,EAAE,CAAC,CAAC;IAC1D,EAAE;IACF,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,gBAAgB,EAAE,EAAE;CACrB,CAAC,CAAC"}
@@ -24,6 +24,7 @@ export const parseProfileDocument = (document, fallbackId) => {
24
24
  return omitUndefined({
25
25
  id,
26
26
  label: readOptionalString(record.label),
27
+ template: readOptionalBoolean(record.template),
27
28
  inherits: readStringArray(record.inherits),
28
29
  controls: readControls(record.controls),
29
30
  statePersistence: Object.keys(statePersistence).length > 0 ? statePersistence : undefined,
@@ -91,6 +92,12 @@ const readOptionalString = (value) => {
91
92
  }
92
93
  return undefined;
93
94
  };
95
+ const readOptionalBoolean = (value) => {
96
+ if (typeof value === 'boolean') {
97
+ return value;
98
+ }
99
+ return undefined;
100
+ };
94
101
  const readStringArray = (value) => {
95
102
  if (Array.isArray(value)) {
96
103
  return value.filter((item) => typeof item === 'string');
@@ -103,6 +110,12 @@ const readOptionalStringArray = (value) => {
103
110
  }
104
111
  return undefined;
105
112
  };
113
+ const readOptionalStringOrStringArray = (value) => {
114
+ if (typeof value === 'string') {
115
+ return value;
116
+ }
117
+ return readOptionalStringArray(value);
118
+ };
106
119
  const readControls = (value) => {
107
120
  const controls = readObject(value);
108
121
  if (controls === undefined) {
@@ -120,7 +133,7 @@ const readControls = (value) => {
120
133
  skills: readOptionalStringArray(controls.skills),
121
134
  promptTemplate: readOptionalString(controls.prompt_template),
122
135
  systemPrompt: readOptionalString(controls.system_prompt),
123
- appendSystemPrompt: readOptionalString(controls.append_system_prompt),
136
+ appendSystemPrompt: readOptionalStringOrStringArray(controls.append_system_prompt),
124
137
  pi: readAgentSpecificControls(controls.pi),
125
138
  claude: readAgentSpecificControls(controls.claude),
126
139
  });
@@ -142,7 +155,7 @@ const readAgentSpecificControls = (value) => {
142
155
  skills: readOptionalStringArray(controls.skills),
143
156
  promptTemplate: readOptionalString(controls.prompt_template),
144
157
  systemPrompt: readOptionalString(controls.system_prompt),
145
- appendSystemPrompt: readOptionalString(controls.append_system_prompt),
158
+ appendSystemPrompt: readOptionalStringOrStringArray(controls.append_system_prompt),
146
159
  });
147
160
  };
148
161
  const omitUndefined = (record) => Object.fromEntries(Object.entries(record).filter((entry) => entry[1] !== undefined));
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileLoader.js","sourceRoot":"","sources":["../../src/profiles/ProfileLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProfileLoader.js","sourceRoot":"","sources":["../../src/profiles/ProfileLoader.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAIlE,MAAM,gBAAgB,GAAG,4CAA4C,CAAC;AAoBtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAA0C,EAAmB,EAAE,CAAC,CAAC;IACrG,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAW,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAEjG,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,SAAiB,EAAE,MAA8B,EAAW,EAAE,CACtG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAiB,EAAE,UAAkB,EAA8B,EAAE;IACxG,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAC7C,MAAM,eAAe,GAAG,qBAAqB,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAEjE,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAExE,OAAO,aAAa,CAAC;QACnB,EAAE;QACF,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC;QACvC,QAAQ,EAAE,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC9C,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1C,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;KAC1F,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,UAAkB,EAA8B,EAAE;IAClG,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAE1D,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,OAAO,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAA8B,EAAqB,EAAE;IAC1F,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO;YACL,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,oDAAoD,EAAE,CAAC;SAClG,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACrE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,+CAA+C,EAAE,CAAC,EAAE,CAAC;IACrH,CAAC;IAED,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,MAAM,GAAuB,EAAE,CAAC;IAEtC,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAEpD,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAClE,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,MAA8B,EAC9B,UAAkB,EAClB,UAAkB,EAClB,WAAmB,EACnB,QAAyB,EACzB,MAA0B,EACpB,EAAE;IACR,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;IAEhF,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACpF,CAAC;SAAM,IAAI,yBAAyB,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;QACzD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,MAAyC,EAAgC,EAAE;IACxG,MAAM,UAAU,GAAG,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAErD,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAc,EAAiD,EAAE;IACnF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,KAA0C,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAc,EAAE,QAAgB,EAAU,EAAE;IAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAsB,EAAE;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAuB,EAAE;IAClE,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAc,EAAqB,EAAE;IAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,KAAc,EAAiC,EAAE;IAChF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,+BAA+B,GAAG,CAAC,KAAc,EAA0C,EAAE;IACjG,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAc,EAAmB,EAAE;IACvD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAEnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,aAAa,CAAC;QACnB,GAAG,QAAQ;QACX,KAAK,EAAE,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC;QACzC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/C,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/C,WAAW,EAAE,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC;QAClD,IAAI,EAAE,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC5C,gBAAgB,EAAE,kBAAkB,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAChE,UAAU,EAAE,uBAAuB,CAAC,QAAQ,CAAC,UAAU,CAAC;QACxD,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC;QAChD,cAAc,EAAE,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC5D,YAAY,EAAE,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC;QACxD,kBAAkB,EAAE,+BAA+B,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAClF,EAAE,EAAE,yBAAyB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,EAAE,yBAAyB,CAAC,QAAQ,CAAC,MAAM,CAAC;KACnD,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,KAAc,EAA4C,EAAE;IAC7F,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAEnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,aAAa,CAAC;QACnB,GAAG,QAAQ;QACX,KAAK,EAAE,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC;QACzC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/C,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/C,WAAW,EAAE,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC;QAClD,IAAI,EAAE,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC5C,gBAAgB,EAAE,kBAAkB,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAChE,UAAU,EAAE,uBAAuB,CAAC,QAAQ,CAAC,UAAU,CAAC;QACxD,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC;QAChD,cAAc,EAAE,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC5D,YAAY,EAAE,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC;QACxD,kBAAkB,EAAE,+BAA+B,CAAC,QAAQ,CAAC,oBAAoB,CAAC;KACnF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAA8C,MAAS,EAAK,EAAE,CAClF,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAM,CAAC;AAE5F,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAA6B,EAAE;IACzE,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAE3C,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,MAAM,CACrC,CAAC,KAAK,EAAwD,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAC9F,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAc,EAAgD,EAAE;IACvF,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CACvG,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAU,EAAE;IACzD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC,CAAC"}
@@ -5,7 +5,6 @@ export interface ProfileResolutionInput {
5
5
  /** Profiles ordered from lowest precedence to highest precedence. */
6
6
  readonly profiles: readonly LoadedProfile[];
7
7
  readonly profileId: string;
8
- readonly defaultProfileId?: string;
9
8
  }
10
9
  export interface ProfileResolutionIssue {
11
10
  readonly path: string;
@@ -2,7 +2,14 @@ import { mergeObjectsWithPolicy } from '../merge/SettingsValueMerger.js';
2
2
  import { normalizeExtensionResourceIdentity, normalizeLaunchResourceIdentity } from '../agents/ResourceIdentity.js';
3
3
  export const mergeProfileStack = (profileStack) => {
4
4
  const [baseProfile, ...higherPrecedenceProfiles] = profileStack;
5
- return higherPrecedenceProfiles.reduce((mergedProfile, profile) => mergeObjectsWithPolicy(mergedProfile, profile, { arrayPolicyForPath: profileArrayPolicy }), baseProfile);
5
+ const mergedProfile = higherPrecedenceProfiles.reduce((mergedProfile, profile) => mergeObjectsWithPolicy(mergedProfile, profile, { arrayPolicyForPath: profileArrayPolicy }), baseProfile);
6
+ return withProfileTemplateFromTopProfile(mergedProfile, profileStack[profileStack.length - 1]);
7
+ };
8
+ const withProfileTemplateFromTopProfile = (profile, topProfile) => {
9
+ if (topProfile.template === true) {
10
+ return { ...profile, template: true };
11
+ }
12
+ return Object.fromEntries(Object.entries(profile).filter(([key]) => key !== 'template'));
6
13
  };
7
14
  const profileArrayPolicy = (path) => {
8
15
  const pathKey = path.join('.');
@@ -12,6 +19,9 @@ const profileArrayPolicy = (path) => {
12
19
  if (['controls.args', 'controls.pi.args', 'controls.claude.args'].includes(pathKey)) {
13
20
  return 'prepend';
14
21
  }
22
+ if (isAppendSystemPromptPath(pathKey)) {
23
+ return 'prependList';
24
+ }
15
25
  if (['controls.extensions', 'controls.pi.extensions', 'controls.claude.extensions'].includes(pathKey)) {
16
26
  return {
17
27
  mode: 'uniqueBy',
@@ -30,17 +40,18 @@ const profileArrayPolicy = (path) => {
30
40
  }
31
41
  return undefined;
32
42
  };
43
+ const isAppendSystemPromptPath = (pathKey) => [
44
+ 'controls.appendSystemPrompt',
45
+ 'controls.append_system_prompt',
46
+ 'controls.pi.appendSystemPrompt',
47
+ 'controls.pi.append_system_prompt',
48
+ 'controls.claude.appendSystemPrompt',
49
+ 'controls.claude.append_system_prompt',
50
+ ].includes(pathKey);
33
51
  export const resolveProfile = (input) => {
34
52
  const definitions = createProfileDefinitions(input.profiles);
35
53
  const issues = [];
36
- const explicitStack = resolveProfileStack(input.profileId, definitions, [], issues);
37
- const defaultStack = input.defaultProfileId === undefined || input.defaultProfileId === input.profileId
38
- ? []
39
- : resolveProfileStack(input.defaultProfileId, definitions, [], issues);
40
- const profileStack = uniqueProfileStack([
41
- ...defaultStack.filter((profile) => profile.id !== input.profileId),
42
- ...explicitStack,
43
- ]);
54
+ const profileStack = uniqueProfileStack(resolveProfileStack(input.profileId, definitions, [], issues));
44
55
  return {
45
56
  profile: issues.length === 0 && profileStack.length > 0
46
57
  ? mergeProfileStack(profileStack)
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileMerger.js","sourceRoot":"","sources":["../../src/profiles/ProfileMerger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProfileMerger.js","sourceRoot":"","sources":["../../src/profiles/ProfileMerger.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@
9
9
  "pattern": "^[a-z0-9][a-z0-9._-]*[a-z0-9]$|^[a-z0-9]$"
10
10
  },
11
11
  "label": { "type": "string" },
12
+ "template": { "type": "boolean" },
12
13
  "inherits": {
13
14
  "type": "array",
14
15
  "items": {
@@ -43,7 +44,7 @@
43
44
  },
44
45
  "prompt_template": { "type": "string" },
45
46
  "system_prompt": { "type": "string" },
46
- "append_system_prompt": { "type": "string" },
47
+ "append_system_prompt": { "$ref": "#/$defs/appendSystemPrompt" },
47
48
  "environment": {
48
49
  "type": "object",
49
50
  "additionalProperties": { "type": "string" }
@@ -69,7 +70,7 @@
69
70
  },
70
71
  "prompt_template": { "type": "string" },
71
72
  "system_prompt": { "type": "string" },
72
- "append_system_prompt": { "type": "string" },
73
+ "append_system_prompt": { "$ref": "#/$defs/appendSystemPrompt" },
73
74
  "allow_external_deepwork_jobs": { "type": "boolean" },
74
75
  "environment": {
75
76
  "type": "object",
@@ -99,7 +100,7 @@
99
100
  },
100
101
  "prompt_template": { "type": "string" },
101
102
  "system_prompt": { "type": "string" },
102
- "append_system_prompt": { "type": "string" },
103
+ "append_system_prompt": { "$ref": "#/$defs/appendSystemPrompt" },
103
104
  "environment": {
104
105
  "type": "object",
105
106
  "additionalProperties": { "type": "string" }
@@ -111,5 +112,16 @@
111
112
  "additionalProperties": true
112
113
  }
113
114
  },
114
- "additionalProperties": true
115
+ "additionalProperties": true,
116
+ "$defs": {
117
+ "appendSystemPrompt": {
118
+ "oneOf": [
119
+ { "type": "string" },
120
+ {
121
+ "type": "array",
122
+ "items": { "type": "string" }
123
+ }
124
+ ]
125
+ }
126
+ }
115
127
  }
@@ -362,6 +362,8 @@ profiles/
362
362
  prompts/
363
363
  skills/
364
364
  extensions/
365
+ deepwork/
366
+ jobs/
365
367
  cli_specific/
366
368
  pi/
367
369
  claude/
@@ -372,6 +374,7 @@ Example `profile.yml`:
372
374
  ```yaml
373
375
  id: engineering
374
376
  label: Engineering
377
+ template: false
375
378
  inherits:
376
379
  - base-typescript
377
380
 
@@ -396,10 +399,14 @@ Rules:
396
399
 
397
400
  - Every `profile.yml` MUST validate against `profile.schema.json`.
398
401
  - `inherits` is an ordered array of profile names.
399
- - `cli_specific/<cli-name>/` contains files copied or translated directly into the generated composite profile for that CLI.
400
- - Pi profiles may provide `cli_specific/pi/.mcp.json`; Outfitter merges contributing profile fragments into the composite profile with unique array entries by identity and last writer wins for duplicate identities.
401
- - Pi profiles may provide DeepWork jobs under `cli_specific/pi/deepwork/jobs/`; Outfitter appends contributing job folders to `DEEPWORK_ADDITIONAL_JOBS_FOLDERS` when launching Pi so DeepWork can discover those profile-owned workflows.
402
+ - `template: true` marks a profile as inheritance-only: it may contribute controls to runnable profiles through `inherits`, but `outfitter run --profile <id>` and `default_profile: <id>` launches reject it directly.
403
+ - `skills/` contains profile-bundled Agent Skills. Outfitter exposes valid skills from contributing profile folders when launching Pi.
404
+ - `deepwork/jobs/` contains profile-bundled DeepWork jobs. Outfitter appends contributing profile job folders to `DEEPWORK_ADDITIONAL_JOBS_FOLDERS` when launching Pi so DeepWork can discover profile-owned workflows.
402
405
  Profile-bundled jobs are isolated by default: inherited `DEEPWORK_ADDITIONAL_JOBS_FOLDERS` entries are included only when the profile sets `controls.pi.allow_external_deepwork_jobs: true`.
406
+ - `cli_specific/<cli-name>/` contains files copied or translated directly into the generated composite profile for that CLI, plus resources that intentionally apply only to one adapter.
407
+ - Pi profiles may provide `cli_specific/pi/.mcp.json`; Outfitter merges contributing profile fragments into the composite profile with unique array entries by identity and last writer wins for duplicate identities.
408
+ - Pi-specific skills and DeepWork jobs may also live under `cli_specific/pi/skills/` and `cli_specific/pi/deepwork/jobs/` when they should not be exposed to other adapters.
409
+ - `append_system_prompt` accepts a string or an ordered string array. When multiple resolved profile layers provide it, Outfitter composes the values into repeated agent append-prompt inputs in profile precedence order so shared prompt profiles do not need to use raw CLI `args`.
403
410
  - CLI-specific configuration wins over generic controls when both apply to the same generated artifact.
404
411
 
405
412
  ### Profile Directory Examples
@@ -435,12 +442,23 @@ controls:
435
442
  NODE_ENV: development
436
443
  ```
437
444
 
445
+ ```yaml
446
+ # ~/.outfitter/profiles/shared-prose/profile.yml
447
+ id: shared-prose
448
+ label: Shared Prose
449
+ template: true
450
+
451
+ controls:
452
+ append_system_prompt: ./prompts/prose.md
453
+ ```
454
+
438
455
  ```yaml
439
456
  # ~/.outfitter/profiles/personal-engineering/profile.yml
440
457
  id: personal-engineering
441
458
  label: Personal Engineering
442
459
  inherits:
443
460
  - base-typescript
461
+ - shared-prose
444
462
 
445
463
  controls:
446
464
  append_system_prompt: ./prompts/system.md
@@ -696,15 +714,16 @@ Responsibilities:
696
714
 
697
715
  - create `~/.outfitter/settings.yml` when missing;
698
716
  - accept an optional setup source URI, for example `outfitter setup https://github.com/example/outfitter-config`, and clone/update it under `~/.outfitter/cache/repos/<encoded-uri-and-ref>/`;
699
- - when a setup source is provided, use its root `settings.yml` or `.outfitter/settings.yml` and `profiles/` or `.outfitter/profiles/` as the initial non-overwriting user setup starting point;
717
+
718
+ - when a setup source is provided, use its root `settings.yml` or `.outfitter/settings.yml` and `profiles/` or `.outfitter/profiles/` as the initial non-overwriting setup starting point for the selected import target;
719
+ - during interactive setup-source onboarding, show the Outfitter welcome first, explain the source being imported, ask whether to install into user home or the current project, then ask exactly one source-profile/default prompt;
700
720
  - require an interactive TTY on both stdin and stdout before running setup prompts;
701
721
  - create a default profile when missing;
702
722
  - validate all discovered settings files and any starter settings file;
703
723
  - run `outfitter sync` behavior for URI profile sources before profile selection;
704
- - on initial interactive first-run setup, skip the older setup default-profile prompt and let welcome onboarding choose the generated local default profile;
705
- - outside that initial welcome handoff, show a setup wizard with synced profile choices, preserve display labels where available, validate the selected profile ID, and write the selected default profile to user settings;
724
+
725
+ - outside that initial welcome handoff and outside setup-source import onboarding, show a setup wizard with synced profile choices, preserve display labels where available, validate the selected profile ID, and write the selected default profile to user settings;
706
726
  - create any missing fallback default profile file for the final selected default profile;
707
- - run welcome onboarding after interactive setup completes;
708
727
  - report actionable next steps.
709
728
 
710
729
  ### `outfitter welcome`
@@ -745,6 +764,8 @@ Responsibilities:
745
764
 
746
765
  - read and validate settings;
747
766
  - load configured local and cached remote profile sources;
767
+ - hide template profiles by default because they are inheritance-only;
768
+ - include template profiles when `--all` is requested and mark them as templates in output;
748
769
  - report unique profile IDs deterministically;
749
770
  - use the highest-precedence loaded definition when duplicate profile IDs exist.
750
771
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-outfitter/outfitter",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Profile-oriented wrapper for launching pi, Claude Code, and future agent CLIs with reproducible configuration.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -22,7 +22,7 @@ This document specifies the baseline runtime, language, test, lint, and document
22
22
  1. The project MUST use Vitest as its test framework before implementing substantial runtime behavior.
23
23
  2. The test command MUST be runnable from package scripts.
24
24
  3. The coverage command MUST use `@vitest/coverage-v8`.
25
- 4. The test configuration MUST enforce 100% global coverage for statements, branches, functions, and lines.
25
+ 4. The test configuration MUST enforce at least 99% global coverage for statements, branches, functions, and lines.
26
26
  5. The coverage configuration MUST include all `src/**/*.ts` files even when a source file is not imported by any test.
27
27
  6. Tests that validate formal requirements MUST follow the traceability format required by OFTR-008.3.
28
28