@madebywild/agent-harness-framework 1.1.0 → 1.3.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 (97) hide show
  1. package/README.md +32 -32
  2. package/dist/cli/adapters/commander.d.ts.map +1 -1
  3. package/dist/cli/adapters/commander.js +76 -1
  4. package/dist/cli/adapters/commander.js.map +1 -1
  5. package/dist/cli/adapters/interactive.d.ts.map +1 -1
  6. package/dist/cli/adapters/interactive.js +111 -11
  7. package/dist/cli/adapters/interactive.js.map +1 -1
  8. package/dist/cli/command-registry.d.ts.map +1 -1
  9. package/dist/cli/command-registry.js +111 -4
  10. package/dist/cli/command-registry.js.map +1 -1
  11. package/dist/cli/contracts.d.ts +17 -3
  12. package/dist/cli/contracts.d.ts.map +1 -1
  13. package/dist/cli/handlers/entities.d.ts +4 -0
  14. package/dist/cli/handlers/entities.d.ts.map +1 -1
  15. package/dist/cli/handlers/entities.js +22 -0
  16. package/dist/cli/handlers/entities.js.map +1 -1
  17. package/dist/cli/handlers/init.d.ts +7 -1
  18. package/dist/cli/handlers/init.d.ts.map +1 -1
  19. package/dist/cli/handlers/init.js +41 -2
  20. package/dist/cli/handlers/init.js.map +1 -1
  21. package/dist/cli/handlers/preset.d.ts +13 -0
  22. package/dist/cli/handlers/preset.d.ts.map +1 -0
  23. package/dist/cli/handlers/preset.js +51 -0
  24. package/dist/cli/handlers/preset.js.map +1 -0
  25. package/dist/cli/renderers/text.d.ts.map +1 -1
  26. package/dist/cli/renderers/text.js +55 -0
  27. package/dist/cli/renderers/text.js.map +1 -1
  28. package/dist/delegated-init.d.ts +20 -0
  29. package/dist/delegated-init.d.ts.map +1 -0
  30. package/dist/delegated-init.js +71 -0
  31. package/dist/delegated-init.js.map +1 -0
  32. package/dist/engine/entities.d.ts +14 -1
  33. package/dist/engine/entities.d.ts.map +1 -1
  34. package/dist/engine/entities.js +263 -107
  35. package/dist/engine/entities.js.map +1 -1
  36. package/dist/engine/presets.d.ts +3 -0
  37. package/dist/engine/presets.d.ts.map +1 -0
  38. package/dist/engine/presets.js +237 -0
  39. package/dist/engine/presets.js.map +1 -0
  40. package/dist/engine/utils.d.ts +1 -0
  41. package/dist/engine/utils.d.ts.map +1 -1
  42. package/dist/engine/utils.js +12 -6
  43. package/dist/engine/utils.js.map +1 -1
  44. package/dist/engine.d.ts +13 -1
  45. package/dist/engine.d.ts.map +1 -1
  46. package/dist/engine.js +43 -1
  47. package/dist/engine.js.map +1 -1
  48. package/dist/entity-registries.d.ts +28 -2
  49. package/dist/entity-registries.d.ts.map +1 -1
  50. package/dist/entity-registries.js +209 -135
  51. package/dist/entity-registries.js.map +1 -1
  52. package/dist/loader.d.ts.map +1 -1
  53. package/dist/loader.js +123 -2
  54. package/dist/loader.js.map +1 -1
  55. package/dist/paths.d.ts +3 -0
  56. package/dist/paths.d.ts.map +1 -1
  57. package/dist/paths.js +8 -0
  58. package/dist/paths.js.map +1 -1
  59. package/dist/planner.d.ts.map +1 -1
  60. package/dist/planner.js +24 -0
  61. package/dist/planner.js.map +1 -1
  62. package/dist/preset-builtin.d.ts +3 -0
  63. package/dist/preset-builtin.d.ts.map +1 -0
  64. package/dist/preset-builtin.js +139 -0
  65. package/dist/preset-builtin.js.map +1 -0
  66. package/dist/preset-packages.d.ts +9 -0
  67. package/dist/preset-packages.d.ts.map +1 -0
  68. package/dist/preset-packages.js +109 -0
  69. package/dist/preset-packages.js.map +1 -0
  70. package/dist/presets.d.ts +12 -0
  71. package/dist/presets.d.ts.map +1 -0
  72. package/dist/presets.js +79 -0
  73. package/dist/presets.js.map +1 -0
  74. package/dist/provider-adapters/claude.d.ts.map +1 -1
  75. package/dist/provider-adapters/claude.js +44 -13
  76. package/dist/provider-adapters/claude.js.map +1 -1
  77. package/dist/provider-adapters/codex.d.ts.map +1 -1
  78. package/dist/provider-adapters/codex.js +10 -6
  79. package/dist/provider-adapters/codex.js.map +1 -1
  80. package/dist/provider-adapters/copilot.d.ts.map +1 -1
  81. package/dist/provider-adapters/copilot.js +16 -2
  82. package/dist/provider-adapters/copilot.js.map +1 -1
  83. package/dist/registry-validator.d.ts.map +1 -1
  84. package/dist/registry-validator.js +150 -7
  85. package/dist/registry-validator.js.map +1 -1
  86. package/dist/repository.d.ts.map +1 -1
  87. package/dist/repository.js +4 -0
  88. package/dist/repository.js.map +1 -1
  89. package/dist/types.d.ts +55 -3
  90. package/dist/types.d.ts.map +1 -1
  91. package/dist/types.js +2 -1
  92. package/dist/types.js.map +1 -1
  93. package/dist/utils.d.ts +10 -0
  94. package/dist/utils.d.ts.map +1 -1
  95. package/dist/utils.js +56 -0
  96. package/dist/utils.js.map +1 -1
  97. package/package.json +16 -2
@@ -0,0 +1,139 @@
1
+ import { buildDelegatedBootstrapPrompt, DELEGATED_INIT_PRESET_ID } from "./delegated-init.js";
2
+ export const BUILTIN_PRESETS = [
3
+ {
4
+ source: "builtin",
5
+ definition: {
6
+ id: DELEGATED_INIT_PRESET_ID,
7
+ name: "Delegated Prompt Init",
8
+ description: "Seed one shared bootstrap prompt for all providers before handing prompt authoring to a chosen agent CLI.",
9
+ operations: [
10
+ { type: "enable_provider", provider: "claude" },
11
+ { type: "enable_provider", provider: "codex" },
12
+ { type: "enable_provider", provider: "copilot" },
13
+ { type: "add_prompt" },
14
+ ],
15
+ },
16
+ content: {
17
+ prompt: buildDelegatedBootstrapPrompt(),
18
+ },
19
+ },
20
+ {
21
+ source: "builtin",
22
+ definition: {
23
+ id: "starter",
24
+ name: "Starter Workspace",
25
+ description: "A fast starting point with a shared system prompt, a review skill, and a fix-issue command.",
26
+ recommended: true,
27
+ operations: [
28
+ { type: "enable_provider", provider: "claude" },
29
+ { type: "enable_provider", provider: "codex" },
30
+ { type: "enable_provider", provider: "copilot" },
31
+ { type: "add_prompt" },
32
+ { type: "add_skill", id: "reviewer" },
33
+ { type: "add_command", id: "fix-issue" },
34
+ ],
35
+ },
36
+ content: {
37
+ prompt: `# System Prompt
38
+
39
+ Be precise, implementation-focused, and explicit about trade-offs. Prefer inspecting the repository before proposing changes, keep edits minimal, and explain any blockers directly.
40
+ `,
41
+ skills: {
42
+ reviewer: [
43
+ {
44
+ path: "SKILL.md",
45
+ content: `---
46
+ name: reviewer
47
+ description: Review implementation plans and patches for correctness, regressions, and missing tests.
48
+ ---
49
+
50
+ # reviewer
51
+
52
+ Use this skill when you want a rigorous code review mindset. Prioritize concrete bugs, behavioral regressions, weak assumptions, and missing coverage before giving summaries.
53
+ `,
54
+ },
55
+ ],
56
+ },
57
+ commands: {
58
+ "fix-issue": `---
59
+ description: "Investigate a bug report, locate the root cause, and implement the smallest defensible fix"
60
+ ---
61
+
62
+ # fix-issue
63
+
64
+ Analyze the reported issue, confirm the failing behavior, inspect the relevant code path, and implement the narrowest fix that resolves the root cause. Add or update tests when the failure mode is testable.
65
+ `,
66
+ },
67
+ },
68
+ },
69
+ {
70
+ source: "builtin",
71
+ definition: {
72
+ id: "researcher",
73
+ name: "Research Assistant",
74
+ description: "A preset for repositories that need synthesis-heavy work with a dedicated research subagent.",
75
+ operations: [
76
+ { type: "enable_provider", provider: "claude" },
77
+ { type: "enable_provider", provider: "codex" },
78
+ { type: "enable_provider", provider: "copilot" },
79
+ { type: "add_prompt" },
80
+ { type: "add_subagent", id: "research-assistant" },
81
+ ],
82
+ },
83
+ content: {
84
+ prompt: `# System Prompt
85
+
86
+ Prefer evidence-driven analysis. Separate facts from assumptions, cite the files and commands you used, and keep recommendations actionable.
87
+ `,
88
+ subagents: {
89
+ "research-assistant": `---
90
+ name: Research Assistant
91
+ description: Gather relevant context, compare alternatives, and return a concise evidence-backed summary.
92
+ ---
93
+
94
+ You are a research-focused subagent. Collect the minimum set of repository context needed to answer the question, identify trade-offs, and summarize concrete findings with supporting references.
95
+ `,
96
+ },
97
+ },
98
+ },
99
+ {
100
+ source: "builtin",
101
+ definition: {
102
+ id: "yolo",
103
+ name: "YOLO Mode",
104
+ description: "Maximum autonomy — all providers enabled with full permissions, no approval prompts, and no sandboxing.",
105
+ operations: [
106
+ { type: "enable_provider", provider: "claude" },
107
+ { type: "enable_provider", provider: "codex" },
108
+ { type: "enable_provider", provider: "copilot" },
109
+ { type: "add_prompt" },
110
+ { type: "add_settings", provider: "claude" },
111
+ { type: "add_settings", provider: "codex" },
112
+ { type: "add_settings", provider: "copilot" },
113
+ ],
114
+ },
115
+ content: {
116
+ prompt: `# System Prompt
117
+
118
+ You have full autonomy. Proceed without asking for confirmation — read, write, execute, and search freely. Prefer action over discussion.
119
+ `,
120
+ settings: {
121
+ claude: {
122
+ permissions: {
123
+ allow: ["Bash", "Read", "Edit", "Write", "WebFetch", "WebSearch", "Agent", "mcp__*"],
124
+ defaultMode: "bypassPermissions",
125
+ },
126
+ },
127
+ codex: {
128
+ approval_policy: "never",
129
+ sandbox_mode: "danger-full-access",
130
+ },
131
+ copilot: {
132
+ "chat.tools.global.autoApprove": true,
133
+ "chat.autopilot.enabled": true,
134
+ },
135
+ },
136
+ },
137
+ },
138
+ ];
139
+ //# sourceMappingURL=preset-builtin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset-builtin.js","sourceRoot":"","sources":["../src/preset-builtin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type PresetDefinition } from "@madebywild/agent-harness-manifest";
2
+ import type { ResolvedPresetSource } from "./types.js";
3
+ export interface LoadedPresetPackage {
4
+ definition: PresetDefinition;
5
+ content: ResolvedPresetSource;
6
+ }
7
+ export declare function readPresetPackageFromDir(presetDir: string): Promise<LoadedPresetPackage>;
8
+ export declare function listPresetDirectories(rootDir: string): Promise<string[]>;
9
+ //# sourceMappingURL=preset-packages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset-packages.d.ts","sourceRoot":"","sources":["../src/preset-packages.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,gBAAgB,EAA2C,MAAM,oCAAoC,CAAC;AAGpH,OAAO,KAAK,EAAc,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGnE,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AAED,wBAAsB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA2C9F;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAU9E"}
@@ -0,0 +1,109 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import * as TOML from "@iarna/toml";
4
+ import { parsePresetDefinition, providerIdSchema } from "@madebywild/agent-harness-manifest";
5
+ import { defaultSettingsSourcePath } from "./paths.js";
6
+ import { listFilesRecursively } from "./repository.js";
7
+ import { exists, normalizeRelativePath, parseJsonAsRecord, parseTomlAsRecord } from "./utils.js";
8
+ export async function readPresetPackageFromDir(presetDir) {
9
+ const definitionPath = path.join(presetDir, "preset.json");
10
+ const definitionText = await fs.readFile(definitionPath, "utf8");
11
+ const definition = parsePresetDefinition(JSON.parse(definitionText));
12
+ const content = {};
13
+ const promptPath = path.join(presetDir, "prompt.md");
14
+ if (await exists(promptPath)) {
15
+ content.prompt = await fs.readFile(promptPath, "utf8");
16
+ }
17
+ const skillsDir = path.join(presetDir, "skills");
18
+ if (await exists(skillsDir)) {
19
+ content.skills = await loadPresetSkills(skillsDir);
20
+ }
21
+ const mcpDir = path.join(presetDir, "mcp");
22
+ if (await exists(mcpDir)) {
23
+ content.mcp = await loadObjectFiles(mcpDir, ".json");
24
+ }
25
+ const subagentsDir = path.join(presetDir, "subagents");
26
+ if (await exists(subagentsDir)) {
27
+ content.subagents = await loadTextFiles(subagentsDir, ".md");
28
+ }
29
+ const hooksDir = path.join(presetDir, "hooks");
30
+ if (await exists(hooksDir)) {
31
+ content.hooks = await loadObjectFiles(hooksDir, ".json");
32
+ }
33
+ const settingsDir = path.join(presetDir, "settings");
34
+ if (await exists(settingsDir)) {
35
+ content.settings = await loadSettingsFiles(settingsDir);
36
+ }
37
+ const commandsDir = path.join(presetDir, "commands");
38
+ if (await exists(commandsDir)) {
39
+ content.commands = await loadTextFiles(commandsDir, ".md");
40
+ }
41
+ return { definition, content };
42
+ }
43
+ export async function listPresetDirectories(rootDir) {
44
+ if (!(await exists(rootDir))) {
45
+ return [];
46
+ }
47
+ const entries = await fs.readdir(rootDir, { withFileTypes: true });
48
+ return entries
49
+ .filter((entry) => entry.isDirectory())
50
+ .map((entry) => path.join(rootDir, entry.name))
51
+ .sort((left, right) => left.localeCompare(right));
52
+ }
53
+ async function loadPresetSkills(skillsDir) {
54
+ const entries = await fs.readdir(skillsDir, { withFileTypes: true });
55
+ const skills = {};
56
+ for (const entry of entries) {
57
+ if (!entry.isDirectory()) {
58
+ continue;
59
+ }
60
+ const skillRoot = path.join(skillsDir, entry.name);
61
+ const files = await listFilesRecursively(skillRoot);
62
+ const loadedFiles = await Promise.all(files.map(async (absolutePath) => ({
63
+ path: normalizeRelativePath(path.relative(skillRoot, absolutePath).replace(/\\/g, "/")),
64
+ content: await fs.readFile(absolutePath, "utf8"),
65
+ })));
66
+ loadedFiles.sort((left, right) => left.path.localeCompare(right.path));
67
+ skills[entry.name] = loadedFiles;
68
+ }
69
+ return skills;
70
+ }
71
+ async function loadObjectFiles(directory, extension) {
72
+ const entries = await fs.readdir(directory, { withFileTypes: true });
73
+ const result = {};
74
+ for (const entry of entries) {
75
+ if (!entry.isFile() || !entry.name.endsWith(extension)) {
76
+ continue;
77
+ }
78
+ const id = entry.name.slice(0, -extension.length);
79
+ const text = await fs.readFile(path.join(directory, entry.name), "utf8");
80
+ result[id] = parseJsonAsRecord(text);
81
+ }
82
+ return result;
83
+ }
84
+ async function loadTextFiles(directory, extension) {
85
+ const entries = await fs.readdir(directory, { withFileTypes: true });
86
+ const result = {};
87
+ for (const entry of entries) {
88
+ if (!entry.isFile() || !entry.name.endsWith(extension)) {
89
+ continue;
90
+ }
91
+ const id = entry.name.slice(0, -extension.length);
92
+ result[id] = await fs.readFile(path.join(directory, entry.name), "utf8");
93
+ }
94
+ return result;
95
+ }
96
+ async function loadSettingsFiles(settingsDir) {
97
+ const result = {};
98
+ for (const provider of providerIdSchema.options) {
99
+ const fileName = path.basename(defaultSettingsSourcePath(provider));
100
+ const filePath = path.join(settingsDir, fileName);
101
+ if (!(await exists(filePath))) {
102
+ continue;
103
+ }
104
+ const text = await fs.readFile(filePath, "utf8");
105
+ result[provider] = fileName.endsWith(".toml") ? parseTomlAsRecord(text, TOML) : parseJsonAsRecord(text);
106
+ }
107
+ return result;
108
+ }
109
+ //# sourceMappingURL=preset-packages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset-packages.js","sourceRoot":"","sources":["../src/preset-packages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { RegistryId } from "@madebywild/agent-harness-manifest";
2
+ import type { AgentsManifest, PresetSummary, ResolvedPreset } from "./types.js";
3
+ export declare function summarizePreset(preset: ResolvedPreset): PresetSummary;
4
+ export declare function listBuiltinPresets(): Promise<ResolvedPreset[]>;
5
+ export declare function listLocalPresets(cwd: string): Promise<ResolvedPreset[]>;
6
+ export declare function listRegistryPresets(manifest: AgentsManifest, registryId: RegistryId): Promise<ResolvedPreset[]>;
7
+ export declare function resolvePreset(cwd: string, options: {
8
+ presetId: string;
9
+ manifest?: AgentsManifest;
10
+ registry?: RegistryId;
11
+ }): Promise<ResolvedPreset>;
12
+ //# sourceMappingURL=presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAMrE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhF,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CASrE;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAEpE;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAe7E;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CASrH;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB,GACA,OAAO,CAAC,cAAc,CAAC,CAoCzB"}
@@ -0,0 +1,79 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { lookupRegistryDefinition } from "./engine/utils.js";
4
+ import { fetchPresetFromRegistry, listPresetsFromRegistry } from "./entity-registries.js";
5
+ import { resolveHarnessPaths } from "./paths.js";
6
+ import { BUILTIN_PRESETS } from "./preset-builtin.js";
7
+ import { listPresetDirectories, readPresetPackageFromDir } from "./preset-packages.js";
8
+ export function summarizePreset(preset) {
9
+ return {
10
+ id: preset.definition.id,
11
+ name: preset.definition.name,
12
+ description: preset.definition.description,
13
+ recommended: preset.definition.recommended === true,
14
+ source: preset.source,
15
+ registry: preset.registry,
16
+ };
17
+ }
18
+ export async function listBuiltinPresets() {
19
+ return [...BUILTIN_PRESETS];
20
+ }
21
+ export async function listLocalPresets(cwd) {
22
+ const presetDirs = await listPresetDirectories(resolveHarnessPaths(cwd).presetsDir);
23
+ const presets = await Promise.all(presetDirs.map(async (presetDir) => {
24
+ const loaded = await readPresetPackageFromDir(presetDir);
25
+ return {
26
+ source: "local",
27
+ definition: loaded.definition,
28
+ content: loaded.content,
29
+ };
30
+ }));
31
+ presets.sort((left, right) => left.definition.id.localeCompare(right.definition.id));
32
+ return presets;
33
+ }
34
+ export async function listRegistryPresets(manifest, registryId) {
35
+ const definition = lookupRegistryDefinition(manifest, registryId);
36
+ const fetched = await listPresetsFromRegistry(registryId, definition);
37
+ return fetched.map((entry) => ({
38
+ source: "registry",
39
+ registry: registryId,
40
+ definition: entry.definition,
41
+ content: entry.content,
42
+ }));
43
+ }
44
+ export async function resolvePreset(cwd, options) {
45
+ if (options.registry) {
46
+ if (!options.manifest) {
47
+ throw new Error(`REGISTRY_NOT_FOUND: registry '${options.registry}' is not configured`);
48
+ }
49
+ const definition = lookupRegistryDefinition(options.manifest, options.registry);
50
+ const fetched = await fetchPresetFromRegistry(options.registry, definition, options.presetId);
51
+ return {
52
+ source: "registry",
53
+ registry: options.registry,
54
+ definition: fetched.definition,
55
+ content: fetched.content,
56
+ };
57
+ }
58
+ const builtin = BUILTIN_PRESETS.find((entry) => entry.definition.id === options.presetId);
59
+ if (builtin) {
60
+ return builtin;
61
+ }
62
+ const localPresetDir = path.join(resolveHarnessPaths(cwd).presetsDir, options.presetId);
63
+ try {
64
+ await fs.stat(localPresetDir);
65
+ }
66
+ catch (error) {
67
+ if (typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT") {
68
+ throw new Error(`PRESET_NOT_FOUND: preset '${options.presetId}' was not found`);
69
+ }
70
+ throw error;
71
+ }
72
+ const loaded = await readPresetPackageFromDir(localPresetDir);
73
+ return {
74
+ source: "local",
75
+ definition: loaded.definition,
76
+ content: loaded.content,
77
+ };
78
+ }
79
+ //# sourceMappingURL=presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/provider-adapters/claude.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,aAAa,CAAC;AAOrE,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,YAAY,CAAC;AAQrE,wBAAgB,kBAAkB,CAAC,oBAAoB,EAAE,cAAc,GAAG,eAAe,CAiExF"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/provider-adapters/claude.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,aAAa,CAAC;AAcrE,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,YAAY,CAAC;AAQrE,wBAAgB,kBAAkB,CAAC,oBAAoB,EAAE,cAAc,GAAG,eAAe,CAyGxF"}
@@ -1,7 +1,8 @@
1
- import { normalizeRelativePath, uniqSorted, withSingleTrailingNewline } from "../utils.js";
1
+ import { deepMergeObjects, normalizeRelativePath, stableStringify, uniqSorted, withSingleTrailingNewline, } from "../utils.js";
2
2
  import { PROVIDER_DEFAULTS } from "./constants.js";
3
3
  import { createProviderAdapter } from "./create-adapter.js";
4
4
  import { renderClaudeHookSettings, resolveHookTargetPath } from "./hooks.js";
5
+ import { mergeMcpServers, resolveMcpTargetPath } from "./mcp.js";
5
6
  import { createJsonMcpRenderer } from "./renderers.js";
6
7
  import { parseClaudeSubagentOptions, renderSubagentMarkdown } from "./subagents.js";
7
8
  const CLAUDE_DEFINITION = {
@@ -13,21 +14,51 @@ export function buildClaudeAdapter(skillFilesByEntityId) {
13
14
  const base = createProviderAdapter(CLAUDE_DEFINITION, skillFilesByEntityId);
14
15
  return {
15
16
  ...base,
16
- async renderHooks(input, overrideByEntity) {
17
- const enabledHooks = input.filter((entry) => overrideByEntity?.get(entry.id)?.enabled !== false);
18
- if (enabledHooks.length === 0) {
17
+ async renderProviderState(input) {
18
+ const artifacts = [];
19
+ const enabledMcps = input.mcps.filter((entry) => input.mcpOverrideByEntity?.get(entry.id)?.enabled !== false);
20
+ const enabledHooks = input.hooks.filter((entry) => input.hookOverrideByEntity?.get(entry.id)?.enabled !== false);
21
+ const settingsPayload = input.settings?.payload;
22
+ if (enabledMcps.length === 0 && enabledHooks.length === 0 && !settingsPayload) {
19
23
  return [];
20
24
  }
21
- const targetPath = resolveHookTargetPath("claude", PROVIDER_DEFAULTS.claude.hookTarget, enabledHooks.map((entry) => entry.id), overrideByEntity);
22
- return [
23
- {
24
- path: targetPath,
25
- content: renderClaudeHookSettings(enabledHooks),
26
- ownerEntityId: uniqSorted(enabledHooks.map((entry) => entry.id)).join(","),
25
+ if (enabledMcps.length > 0) {
26
+ const mcpTargetPath = resolveMcpTargetPath("claude", PROVIDER_DEFAULTS.claude.mcpTarget, enabledMcps, input.mcpOverrideByEntity);
27
+ artifacts.push({
28
+ path: mcpTargetPath,
29
+ content: CLAUDE_DEFINITION.mcpRenderer.render(mergeMcpServers(enabledMcps)),
30
+ ownerEntityId: enabledMcps
31
+ .map((entry) => entry.id)
32
+ .sort()
33
+ .join(","),
27
34
  provider: "claude",
28
- format: "json",
29
- },
30
- ];
35
+ format: CLAUDE_DEFINITION.mcpRenderer.format,
36
+ });
37
+ }
38
+ if (enabledHooks.length > 0 || settingsPayload) {
39
+ const settingsTargetPath = enabledHooks.length === 0
40
+ ? normalizeRelativePath(PROVIDER_DEFAULTS.claude.hookTarget)
41
+ : resolveHookTargetPath("claude", PROVIDER_DEFAULTS.claude.hookTarget, enabledHooks.map((entry) => entry.id), input.hookOverrideByEntity);
42
+ const hookPayload = enabledHooks.length === 0
43
+ ? {}
44
+ : JSON.parse(renderClaudeHookSettings(enabledHooks));
45
+ const mergedPayload = settingsPayload
46
+ ? deepMergeObjects(hookPayload, settingsPayload)
47
+ : hookPayload;
48
+ if (Object.keys(mergedPayload).length > 0) {
49
+ artifacts.push({
50
+ path: settingsTargetPath,
51
+ content: stableStringify(mergedPayload),
52
+ ownerEntityId: uniqSorted([
53
+ ...enabledHooks.map((entry) => entry.id),
54
+ ...(input.settings ? [input.settings.id] : []),
55
+ ]).join(","),
56
+ provider: "claude",
57
+ format: "json",
58
+ });
59
+ }
60
+ }
61
+ return artifacts;
31
62
  },
32
63
  async renderSubagent(input, override) {
33
64
  if (override?.enabled === false) {
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/provider-adapters/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/provider-adapters/claude.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/provider-adapters/codex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAOnD,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,YAAY,CAAC;AAiBrE,wBAAgB,iBAAiB,CAAC,oBAAoB,EAAE,cAAc,GAAG,eAAe,CA6EvF"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/provider-adapters/codex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAOnD,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,YAAY,CAAC;AAiBrE,wBAAgB,iBAAiB,CAAC,oBAAoB,EAAE,cAAc,GAAG,eAAe,CAkFvF"}
@@ -1,5 +1,5 @@
1
1
  import * as TOML from "@iarna/toml";
2
- import { normalizeRelativePath, uniqSorted, withSingleTrailingNewline } from "../utils.js";
2
+ import { deepMergeObjects, normalizeRelativePath, uniqSorted, withSingleTrailingNewline } from "../utils.js";
3
3
  import { PROVIDER_DEFAULTS } from "./constants.js";
4
4
  import { createProviderAdapter } from "./create-adapter.js";
5
5
  import { resolveCodexNotifyCommand } from "./hooks.js";
@@ -25,7 +25,8 @@ export function buildCodexAdapter(skillFilesByEntityId) {
25
25
  const enabledMcps = input.mcps.filter((entry) => input.mcpOverrideByEntity?.get(entry.id)?.enabled !== false);
26
26
  const enabledSubagents = input.subagents.filter((entry) => input.subagentOverrideByEntity?.get(entry.id)?.enabled !== false);
27
27
  const enabledHooks = input.hooks.filter((entry) => input.hookOverrideByEntity?.get(entry.id)?.enabled !== false);
28
- if (enabledMcps.length === 0 && enabledSubagents.length === 0 && enabledHooks.length === 0) {
28
+ const settingsPayload = input.settings?.payload;
29
+ if (enabledMcps.length === 0 && enabledSubagents.length === 0 && enabledHooks.length === 0 && !settingsPayload) {
29
30
  return [];
30
31
  }
31
32
  const targetPath = resolveCodexConfigTargetPath(input, enabledMcps.map((entry) => entry.id), enabledSubagents, enabledHooks.map((entry) => entry.id));
@@ -34,7 +35,6 @@ export function buildCodexAdapter(skillFilesByEntityId) {
34
35
  payload.mcp_servers = mergeMcpServers(enabledMcps);
35
36
  }
36
37
  if (enabledSubagents.length > 0) {
37
- payload.experimental_use_role = true;
38
38
  const agents = Object.fromEntries(enabledSubagents
39
39
  .slice()
40
40
  .sort((left, right) => left.id.localeCompare(right.id))
@@ -42,7 +42,7 @@ export function buildCodexAdapter(skillFilesByEntityId) {
42
42
  const options = parseCodexSubagentOptions(input.subagentOverrideByEntity?.get(subagent.id));
43
43
  const agentState = {
44
44
  description: subagent.description,
45
- prompt: subagent.body,
45
+ developer_instructions: subagent.body,
46
46
  };
47
47
  if (options.model) {
48
48
  agentState.model = options.model;
@@ -58,18 +58,22 @@ export function buildCodexAdapter(skillFilesByEntityId) {
58
58
  if (notifyCommand) {
59
59
  payload.notify = notifyCommand;
60
60
  }
61
- if (Object.keys(payload).length === 0) {
61
+ const mergedPayload = settingsPayload
62
+ ? deepMergeObjects(payload, settingsPayload)
63
+ : payload;
64
+ if (Object.keys(mergedPayload).length === 0) {
62
65
  return [];
63
66
  }
64
67
  const ownerEntityId = uniqSorted([
65
68
  ...enabledMcps.map((entry) => entry.id),
66
69
  ...enabledSubagents.map((entry) => entry.id),
67
70
  ...enabledHooks.map((entry) => entry.id),
71
+ ...(input.settings ? [input.settings.id] : []),
68
72
  ]).join(",");
69
73
  return [
70
74
  {
71
75
  path: targetPath,
72
- content: withSingleTrailingNewline(TOML.stringify(payload)),
76
+ content: withSingleTrailingNewline(TOML.stringify(mergedPayload)),
73
77
  ownerEntityId,
74
78
  provider: "codex",
75
79
  format: "toml",
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/provider-adapters/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/provider-adapters/codex.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/provider-adapters/copilot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,aAAa,CAAC;AAOrE,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,YAAY,CAAC;AAQrE,wBAAgB,mBAAmB,CAAC,oBAAoB,EAAE,cAAc,GAAG,eAAe,CAkEzF"}
1
+ {"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/provider-adapters/copilot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,aAAa,CAAC;AAOrE,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,YAAY,CAAC;AAQrE,wBAAgB,mBAAmB,CAAC,oBAAoB,EAAE,cAAc,GAAG,eAAe,CAiFzF"}
@@ -1,4 +1,4 @@
1
- import { normalizeRelativePath, uniqSorted, withSingleTrailingNewline } from "../utils.js";
1
+ import { normalizeRelativePath, stableStringify, uniqSorted, withSingleTrailingNewline } from "../utils.js";
2
2
  import { PROVIDER_DEFAULTS } from "./constants.js";
3
3
  import { createProviderAdapter } from "./create-adapter.js";
4
4
  import { renderCopilotHookConfig, resolveHookTargetPath } from "./hooks.js";
@@ -65,10 +65,24 @@ export function buildCopilotAdapter(skillFilesByEntityId) {
65
65
  },
66
66
  ];
67
67
  },
68
+ async renderSettings(input) {
69
+ if (input.provider !== "copilot") {
70
+ return [];
71
+ }
72
+ return [
73
+ {
74
+ path: ".vscode/settings.json",
75
+ content: stableStringify(input.payload),
76
+ ownerEntityId: input.id,
77
+ provider: "copilot",
78
+ format: "json",
79
+ },
80
+ ];
81
+ },
68
82
  };
69
83
  }
70
84
  function renderCopilotCommandMarkdown(input) {
71
- const frontmatterLines = ["mode: agent", `description: ${JSON.stringify(input.description)}`];
85
+ const frontmatterLines = ["agent: agent", `description: ${JSON.stringify(input.description)}`];
72
86
  const parts = ["---", ...frontmatterLines, "---"];
73
87
  if (input.body) {
74
88
  parts.push("", input.body);
@@ -1 +1 @@
1
- {"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/provider-adapters/copilot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAGrF,MAAM,kBAAkB,GAAuB;IAC7C,EAAE,EAAE,SAAS;IACb,QAAQ,EAAE,iBAAiB,CAAC,OAAO;IACnC,WAAW,EAAE,qBAAqB,CAAC,SAAS,CAAC;CAC9C,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,oBAAoC;IACtE,MAAM,IAAI,GAAG,qBAAqB,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;IAC7E,OAAO;QACL,GAAG,IAAI;QACP,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,gBAAgB;YACvC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC;YACjG,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,UAAU,GAAG,qBAAqB,CACtC,SAAS,EACT,iBAAiB,CAAC,OAAO,CAAC,UAAU,EACpC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EACrC,gBAAgB,CACjB,CAAC;YAEF,OAAO;gBACL;oBACE,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,uBAAuB,CAAC,YAAY,CAAC;oBAC9C,aAAa,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;oBAC1E,QAAQ,EAAE,SAAS;oBACnB,MAAM,EAAE,MAAM;iBACf;aACF,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ;YAClC,IAAI,QAAQ,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;gBAChC,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,EAAE,UAAU,IAAI,kBAAkB,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC;YACxG,MAAM,OAAO,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;YACtD,OAAO;gBACL;oBACE,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,sBAAsB,CAAC,KAAK,EAAE;wBACrC,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;qBAC3B,CAAC;oBACF,aAAa,EAAE,KAAK,CAAC,EAAE;oBACvB,QAAQ,EAAE,SAAS;oBACnB,MAAM,EAAE,UAAU;iBACnB;aACF,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ;YACjC,IAAI,QAAQ,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;gBAChC,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,aAAa,GAAG,GAAG,iBAAiB,CAAC,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,EAAE,YAAY,CAAC;YACvF,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,EAAE,UAAU,IAAI,aAAa,CAAC,CAAC;YAChF,OAAO;gBACL;oBACE,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,4BAA4B,CAAC,KAAK,CAAC;oBAC5C,aAAa,EAAE,KAAK,CAAC,EAAE;oBACvB,QAAQ,EAAE,SAAS;oBACnB,MAAM,EAAE,UAAU;iBACnB;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAuB;IAC3D,MAAM,gBAAgB,GAAG,CAAC,aAAa,EAAE,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9F,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,GAAG,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/provider-adapters/copilot.ts"],"names":[],"mappings":"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"}