agent-switchboard 0.1.26 → 0.1.28
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/README.md +37 -11
- package/dist/commands/distribution.js +2 -2
- package/dist/commands/distribution.js.map +1 -1
- package/dist/commands/library.d.ts +1 -1
- package/dist/commands/library.js +5 -6
- package/dist/commands/library.js.map +1 -1
- package/dist/config/application-config.d.ts +37 -0
- package/dist/config/application-config.js +83 -0
- package/dist/config/application-config.js.map +1 -0
- package/dist/config/layered-config.js +43 -2
- package/dist/config/layered-config.js.map +1 -1
- package/dist/config/paths.d.ts +13 -2
- package/dist/config/paths.js +21 -3
- package/dist/config/paths.js.map +1 -1
- package/dist/config/schemas.d.ts +408 -43
- package/dist/config/schemas.js +32 -22
- package/dist/config/schemas.js.map +1 -1
- package/dist/config/switchboard-config.d.ts +3 -6
- package/dist/config/switchboard-config.js +3 -6
- package/dist/config/switchboard-config.js.map +1 -1
- package/dist/hooks/distribution.d.ts +27 -0
- package/dist/hooks/distribution.js +235 -0
- package/dist/hooks/distribution.js.map +1 -0
- package/dist/hooks/library.d.ts +40 -0
- package/dist/hooks/library.js +143 -0
- package/dist/hooks/library.js.map +1 -0
- package/dist/hooks/schema.d.ts +542 -0
- package/dist/hooks/schema.js +49 -0
- package/dist/hooks/schema.js.map +1 -0
- package/dist/index.js +708 -168
- package/dist/index.js.map +1 -1
- package/dist/library/fs.d.ts +1 -3
- package/dist/library/fs.js +24 -7
- package/dist/library/fs.js.map +1 -1
- package/dist/library/schema.d.ts +1 -1
- package/dist/library/schema.js +1 -1
- package/dist/library/sources.d.ts +75 -0
- package/dist/library/sources.js +285 -0
- package/dist/library/sources.js.map +1 -0
- package/dist/library/state.d.ts +4 -5
- package/dist/library/state.js +15 -31
- package/dist/library/state.js.map +1 -1
- package/dist/marketplace/plugin-loader.d.ts +30 -0
- package/dist/marketplace/plugin-loader.js +178 -0
- package/dist/marketplace/plugin-loader.js.map +1 -0
- package/dist/marketplace/reader.d.ts +36 -0
- package/dist/marketplace/reader.js +90 -0
- package/dist/marketplace/reader.js.map +1 -0
- package/dist/marketplace/schemas.d.ts +467 -0
- package/dist/marketplace/schemas.js +57 -0
- package/dist/marketplace/schemas.js.map +1 -0
- package/dist/marketplace/source-loader.d.ts +32 -0
- package/dist/marketplace/source-loader.js +45 -0
- package/dist/marketplace/source-loader.js.map +1 -0
- package/dist/rules/agents.d.ts +4 -4
- package/dist/rules/agents.js +10 -4
- package/dist/rules/agents.js.map +1 -1
- package/dist/rules/composer.d.ts +2 -2
- package/dist/rules/composer.js +5 -5
- package/dist/rules/composer.js.map +1 -1
- package/dist/rules/distribution.js +48 -112
- package/dist/rules/distribution.js.map +1 -1
- package/dist/rules/library.d.ts +1 -1
- package/dist/rules/library.js +4 -5
- package/dist/rules/library.js.map +1 -1
- package/dist/skills/distribution.js +6 -6
- package/dist/skills/distribution.js.map +1 -1
- package/dist/skills/library.d.ts +1 -2
- package/dist/skills/library.js +6 -7
- package/dist/skills/library.js.map +1 -1
- package/dist/subagents/distribution.d.ts +1 -1
- package/dist/subagents/distribution.js +319 -20
- package/dist/subagents/distribution.js.map +1 -1
- package/dist/subagents/importer.d.ts +1 -1
- package/dist/subagents/importer.js +61 -1
- package/dist/subagents/importer.js.map +1 -1
- package/dist/subagents/inventory.js +3 -3
- package/dist/subagents/inventory.js.map +1 -1
- package/dist/subagents/library.d.ts +2 -2
- package/dist/subagents/library.js +14 -20
- package/dist/subagents/library.js.map +1 -1
- package/dist/ui/hook-ui.d.ts +8 -0
- package/dist/ui/hook-ui.js +17 -0
- package/dist/ui/hook-ui.js.map +1 -0
- package/dist/ui/library-selector.d.ts +1 -1
- package/dist/ui/subagent-ui.js +3 -3
- package/dist/ui/subagent-ui.js.map +1 -1
- package/dist/util/cli.d.ts +20 -0
- package/dist/util/cli.js +107 -14
- package/dist/util/cli.js.map +1 -1
- package/package.json +3 -2
- package/dist/config/agent-config.d.ts +0 -35
- package/dist/config/agent-config.js +0 -88
- package/dist/config/agent-config.js.map +0 -1
- package/dist/library/subscriptions.d.ts +0 -42
- package/dist/library/subscriptions.js +0 -116
- package/dist/library/subscriptions.js.map +0 -1
package/dist/skills/library.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { getSkillsDir } from '../config/paths.js';
|
|
4
|
-
import {
|
|
4
|
+
import { loadEntriesFromSources } from '../marketplace/source-loader.js';
|
|
5
5
|
import { parseSkillMarkdown } from './parser.js';
|
|
6
6
|
const SKILL_FILE = 'SKILL.md';
|
|
7
7
|
export function ensureSkillsDirectory() {
|
|
@@ -61,20 +61,19 @@ function loadSkillsFromDirectory(directory, namespace) {
|
|
|
61
61
|
return result;
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
|
-
* Load all skills from default library and
|
|
65
|
-
* Each skill is a directory containing a SKILL.md file.
|
|
64
|
+
* Load all skills from default library, flat sources, and marketplace sources.
|
|
66
65
|
*/
|
|
67
66
|
export function loadSkillLibrary() {
|
|
68
67
|
const result = [];
|
|
69
|
-
// Load from default library (no namespace)
|
|
70
68
|
const defaultDir = ensureSkillsDirectory();
|
|
71
69
|
result.push(...loadSkillsFromDirectory(defaultDir));
|
|
72
|
-
|
|
73
|
-
const
|
|
74
|
-
for (const [namespace, basePath] of Object.entries(subscriptions)) {
|
|
70
|
+
const { flatSources, marketplaceEntries } = loadEntriesFromSources();
|
|
71
|
+
for (const { namespace, basePath } of flatSources) {
|
|
75
72
|
const skillsDir = path.join(basePath, 'skills');
|
|
76
73
|
result.push(...loadSkillsFromDirectory(skillsDir, namespace));
|
|
77
74
|
}
|
|
75
|
+
// Marketplace skill entries have the same shape as SkillEntry
|
|
76
|
+
result.push(...marketplaceEntries.skills);
|
|
78
77
|
result.sort((a, b) => a.id.localeCompare(b.id));
|
|
79
78
|
return result;
|
|
80
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../src/skills/library.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../src/skills/library.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ConfigScope } from '../config/scope.js';
|
|
2
2
|
import { type DistributeOutcome } from '../library/distribute.js';
|
|
3
|
-
export type SubagentPlatform = 'claude-code' | 'opencode' | 'cursor';
|
|
3
|
+
export type SubagentPlatform = 'claude-code' | 'opencode' | 'cursor' | 'codex';
|
|
4
4
|
export interface SubagentDistributionResult {
|
|
5
5
|
platform: SubagentPlatform;
|
|
6
6
|
filePath: string;
|
|
@@ -1,17 +1,19 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
1
2
|
import path from 'node:path';
|
|
2
|
-
import {
|
|
3
|
+
import { parse as parseToml, stringify as tomlStringify } from '@iarna/toml';
|
|
4
|
+
import { getClaudeDir, getCodexAgentsDir, getCodexConfigPath, getCursorDir, getOpencodePath, getProjectClaudeDir, getProjectCursorDir, getProjectOpencodePath, } from '../config/paths.js';
|
|
3
5
|
import { distributeLibrary, } from '../library/distribute.js';
|
|
4
|
-
import {
|
|
6
|
+
import { ensureParentDir } from '../library/fs.js';
|
|
7
|
+
import { loadLibraryStateSectionForApplication } from '../library/state.js';
|
|
5
8
|
import { wrapFrontmatter } from '../util/frontmatter.js';
|
|
6
9
|
import { loadSubagentLibrary } from './library.js';
|
|
7
|
-
/**
|
|
8
|
-
* Map platform to agent ID for per-agent configuration lookup
|
|
9
|
-
*/
|
|
10
10
|
function platformToAgentId(platform) {
|
|
11
11
|
return platform;
|
|
12
12
|
}
|
|
13
13
|
export function resolveSubagentFilePath(platform, id, scope) {
|
|
14
|
-
|
|
14
|
+
const dir = resolveSubagentTargetDir(platform, scope);
|
|
15
|
+
const ext = platform === 'codex' ? '.toml' : '.md';
|
|
16
|
+
return path.join(dir, `${id}${ext}`);
|
|
15
17
|
}
|
|
16
18
|
function resolveSubagentTargetDir(platform, scope) {
|
|
17
19
|
const projectRoot = scope?.project?.trim();
|
|
@@ -34,8 +36,14 @@ function resolveSubagentTargetDir(platform, scope) {
|
|
|
34
36
|
}
|
|
35
37
|
return path.join(getCursorDir(), 'agents');
|
|
36
38
|
}
|
|
39
|
+
case 'codex': {
|
|
40
|
+
return getCodexAgentsDir();
|
|
41
|
+
}
|
|
37
42
|
}
|
|
38
43
|
}
|
|
44
|
+
// ---------------------------------------------------------------------------
|
|
45
|
+
// Markdown-based platforms (Claude Code, OpenCode, Cursor)
|
|
46
|
+
// ---------------------------------------------------------------------------
|
|
39
47
|
function buildFrontmatterForClaude(entry) {
|
|
40
48
|
const extras = entry.metadata.extras;
|
|
41
49
|
const cc = extras?.['claude-code'] ?? undefined;
|
|
@@ -46,7 +54,6 @@ function buildFrontmatterForClaude(entry) {
|
|
|
46
54
|
for (const [k, v] of Object.entries(cc))
|
|
47
55
|
base[k] = v;
|
|
48
56
|
}
|
|
49
|
-
// Claude Code requires `name` in frontmatter. If missing/empty, use filename (entry.id).
|
|
50
57
|
const rawName = base.name;
|
|
51
58
|
if (typeof rawName !== 'string' || rawName.trim().length === 0) {
|
|
52
59
|
base.name = entry.id;
|
|
@@ -91,7 +98,7 @@ function buildFrontmatterForCursor(entry) {
|
|
|
91
98
|
base.model = 'inherit';
|
|
92
99
|
return base;
|
|
93
100
|
}
|
|
94
|
-
function
|
|
101
|
+
function renderForMarkdownPlatform(platform, entry) {
|
|
95
102
|
switch (platform) {
|
|
96
103
|
case 'claude-code': {
|
|
97
104
|
const fm = buildFrontmatterForClaude(entry);
|
|
@@ -107,11 +114,297 @@ function renderForPlatform(platform, entry) {
|
|
|
107
114
|
}
|
|
108
115
|
}
|
|
109
116
|
}
|
|
117
|
+
// ---------------------------------------------------------------------------
|
|
118
|
+
// Codex platform (TOML-based agent roles)
|
|
119
|
+
// ---------------------------------------------------------------------------
|
|
120
|
+
const ASB_MANAGED_MARKER = '# managed-by: asb';
|
|
121
|
+
const CODEX_ROLE_CONFIG_FIELDS = new Set([
|
|
122
|
+
'model',
|
|
123
|
+
'model_reasoning_effort',
|
|
124
|
+
'model_reasoning_summary',
|
|
125
|
+
'model_verbosity',
|
|
126
|
+
'sandbox_mode',
|
|
127
|
+
]);
|
|
128
|
+
function hasCodexExtras(entry) {
|
|
129
|
+
const extras = entry.metadata.extras;
|
|
130
|
+
if (!extras?.codex)
|
|
131
|
+
return false;
|
|
132
|
+
const codex = extras.codex;
|
|
133
|
+
return typeof codex === 'object' && Object.keys(codex).length > 0;
|
|
134
|
+
}
|
|
135
|
+
function renderCodexRoleConfig(entry) {
|
|
136
|
+
const extras = entry.metadata.extras;
|
|
137
|
+
const codexExtras = extras?.codex ?? {};
|
|
138
|
+
const config = {};
|
|
139
|
+
for (const field of CODEX_ROLE_CONFIG_FIELDS) {
|
|
140
|
+
const value = codexExtras[field];
|
|
141
|
+
if (value !== undefined && value !== null) {
|
|
142
|
+
config[field] = value;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
const trimmedContent = entry.content.trim();
|
|
146
|
+
if (trimmedContent.length > 0) {
|
|
147
|
+
config.developer_instructions = trimmedContent;
|
|
148
|
+
}
|
|
149
|
+
// Use @iarna/toml for correct value formatting
|
|
150
|
+
let toml = '';
|
|
151
|
+
try {
|
|
152
|
+
toml = tomlStringify(config);
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
// Fallback: skip developer_instructions if it breaks TOML serialization
|
|
156
|
+
const { developer_instructions: _ignored, ...rest } = config;
|
|
157
|
+
toml = tomlStringify(rest);
|
|
158
|
+
}
|
|
159
|
+
return `${ASB_MANAGED_MARKER}\n${toml}`;
|
|
160
|
+
}
|
|
161
|
+
function isAsbManagedToml(filePath) {
|
|
162
|
+
try {
|
|
163
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
164
|
+
return content.startsWith(ASB_MANAGED_MARKER);
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Distribute subagents to Codex as TOML role config files + config.toml injection.
|
|
172
|
+
* Handles:
|
|
173
|
+
* 1. Writing role config TOML files to ~/.codex/agents/
|
|
174
|
+
* 2. Cleaning up orphan ASB-managed TOML files
|
|
175
|
+
* 3. Injecting [agents.<id>] declarations into ~/.codex/config.toml
|
|
176
|
+
* 4. Enabling [features].multi_agent if needed
|
|
177
|
+
*/
|
|
178
|
+
function distributeCodexSubagents(_allEntries, byId, scope) {
|
|
179
|
+
const results = [];
|
|
180
|
+
const platform = 'codex';
|
|
181
|
+
// Resolve active IDs for Codex via per-agent config
|
|
182
|
+
const state = loadLibraryStateSectionForApplication('agents', platformToAgentId(platform), scope);
|
|
183
|
+
const selected = [];
|
|
184
|
+
for (const id of state.active) {
|
|
185
|
+
const e = byId.get(id);
|
|
186
|
+
// Only include entries that have extras.codex (Codex-compatible config)
|
|
187
|
+
if (e && hasCodexExtras(e))
|
|
188
|
+
selected.push(e);
|
|
189
|
+
}
|
|
190
|
+
const targetDir = resolveSubagentTargetDir(platform, scope);
|
|
191
|
+
// Step 1: Write TOML role config files
|
|
192
|
+
const activeIds = new Set();
|
|
193
|
+
for (const entry of selected) {
|
|
194
|
+
activeIds.add(entry.id);
|
|
195
|
+
const filePath = resolveSubagentFilePath(platform, entry.id, scope);
|
|
196
|
+
const content = renderCodexRoleConfig(entry);
|
|
197
|
+
ensureParentDir(filePath);
|
|
198
|
+
let existing = null;
|
|
199
|
+
try {
|
|
200
|
+
if (fs.existsSync(filePath))
|
|
201
|
+
existing = fs.readFileSync(filePath, 'utf-8');
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
existing = null;
|
|
205
|
+
}
|
|
206
|
+
if (existing !== null && existing === content) {
|
|
207
|
+
results.push({ platform, filePath, status: 'skipped', reason: 'up-to-date' });
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
try {
|
|
211
|
+
fs.writeFileSync(filePath, content, 'utf-8');
|
|
212
|
+
results.push({
|
|
213
|
+
platform,
|
|
214
|
+
filePath,
|
|
215
|
+
status: 'written',
|
|
216
|
+
reason: existing ? 'updated' : 'created',
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
221
|
+
results.push({ platform, filePath, status: 'error', error: msg });
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
// Step 2: Clean up orphan ASB-managed TOML files
|
|
226
|
+
if (fs.existsSync(targetDir)) {
|
|
227
|
+
try {
|
|
228
|
+
for (const file of fs.readdirSync(targetDir)) {
|
|
229
|
+
if (!file.endsWith('.toml'))
|
|
230
|
+
continue;
|
|
231
|
+
const id = file.slice(0, -5);
|
|
232
|
+
if (activeIds.has(id))
|
|
233
|
+
continue;
|
|
234
|
+
const filePath = path.join(targetDir, file);
|
|
235
|
+
if (fs.statSync(filePath).isDirectory())
|
|
236
|
+
continue;
|
|
237
|
+
if (!isAsbManagedToml(filePath))
|
|
238
|
+
continue;
|
|
239
|
+
try {
|
|
240
|
+
fs.unlinkSync(filePath);
|
|
241
|
+
results.push({
|
|
242
|
+
platform,
|
|
243
|
+
filePath,
|
|
244
|
+
status: 'deleted',
|
|
245
|
+
reason: 'orphan',
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
catch (error) {
|
|
249
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
250
|
+
results.push({
|
|
251
|
+
platform,
|
|
252
|
+
filePath,
|
|
253
|
+
status: 'error',
|
|
254
|
+
error: `Failed to delete orphan: ${msg}`,
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
catch {
|
|
260
|
+
// Ignore directory read errors
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
// Step 3: Inject agent role declarations into config.toml
|
|
264
|
+
const injectionResult = injectCodexAgentEntries(selected, activeIds);
|
|
265
|
+
if (injectionResult.configResult) {
|
|
266
|
+
results.push(injectionResult.configResult);
|
|
267
|
+
}
|
|
268
|
+
return results;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Inject/remove [agents.<id>] declarations in ~/.codex/config.toml.
|
|
272
|
+
* Also enables [features].multi_agent when roles are distributed.
|
|
273
|
+
*/
|
|
274
|
+
function injectCodexAgentEntries(activeEntries, activeIds) {
|
|
275
|
+
const configPath = getCodexConfigPath();
|
|
276
|
+
const platform = 'codex';
|
|
277
|
+
let content = '';
|
|
278
|
+
try {
|
|
279
|
+
if (fs.existsSync(configPath)) {
|
|
280
|
+
content = fs.readFileSync(configPath, 'utf-8');
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
catch {
|
|
284
|
+
return {
|
|
285
|
+
configResult: {
|
|
286
|
+
platform,
|
|
287
|
+
filePath: configPath,
|
|
288
|
+
status: 'error',
|
|
289
|
+
error: 'Failed to read config.toml',
|
|
290
|
+
},
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
let parsed = {};
|
|
294
|
+
try {
|
|
295
|
+
if (content.trim().length > 0) {
|
|
296
|
+
parsed = parseToml(content);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
return {
|
|
301
|
+
configResult: {
|
|
302
|
+
platform,
|
|
303
|
+
filePath: configPath,
|
|
304
|
+
status: 'error',
|
|
305
|
+
error: 'Failed to parse config.toml',
|
|
306
|
+
},
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
const agents = (parsed.agents ?? {});
|
|
310
|
+
const reservedKeys = new Set(['max_threads', 'max_depth']);
|
|
311
|
+
let changed = false;
|
|
312
|
+
// Add/update entries for active subagents
|
|
313
|
+
for (const entry of activeEntries) {
|
|
314
|
+
const existing = agents[entry.id];
|
|
315
|
+
const newEntry = {
|
|
316
|
+
description: entry.metadata.description || `ASB-managed agent role: ${entry.id}`,
|
|
317
|
+
config_file: `agents/${entry.id}.toml`,
|
|
318
|
+
};
|
|
319
|
+
if (!existing ||
|
|
320
|
+
existing.description !== newEntry.description ||
|
|
321
|
+
existing.config_file !== newEntry.config_file) {
|
|
322
|
+
agents[entry.id] = newEntry;
|
|
323
|
+
changed = true;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
// Remove orphan ASB-managed entries: entries pointing to agents/<id>.toml
|
|
327
|
+
// where the file no longer exists (was cleaned up in step 2) or id is not active
|
|
328
|
+
for (const [key, value] of Object.entries(agents)) {
|
|
329
|
+
if (reservedKeys.has(key))
|
|
330
|
+
continue;
|
|
331
|
+
if (activeIds.has(key))
|
|
332
|
+
continue;
|
|
333
|
+
if (typeof value !== 'object' || value === null)
|
|
334
|
+
continue;
|
|
335
|
+
const roleConfig = value;
|
|
336
|
+
const configFile = roleConfig.config_file;
|
|
337
|
+
if (typeof configFile === 'string' &&
|
|
338
|
+
configFile.startsWith('agents/') &&
|
|
339
|
+
configFile.endsWith('.toml')) {
|
|
340
|
+
// Check if the target file is ASB-managed (or already deleted)
|
|
341
|
+
const fullPath = path.join(path.dirname(configPath), configFile);
|
|
342
|
+
if (!fs.existsSync(fullPath) || isAsbManagedToml(fullPath)) {
|
|
343
|
+
delete agents[key];
|
|
344
|
+
changed = true;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
if (!changed && activeEntries.length === 0) {
|
|
349
|
+
return {};
|
|
350
|
+
}
|
|
351
|
+
parsed.agents = agents;
|
|
352
|
+
// Enable multi_agent feature flag when distributing roles
|
|
353
|
+
if (activeEntries.length > 0) {
|
|
354
|
+
const features = (parsed.features ?? {});
|
|
355
|
+
if (features.multi_agent !== true) {
|
|
356
|
+
features.multi_agent = true;
|
|
357
|
+
changed = true;
|
|
358
|
+
}
|
|
359
|
+
parsed.features = features;
|
|
360
|
+
}
|
|
361
|
+
if (!changed) {
|
|
362
|
+
return {};
|
|
363
|
+
}
|
|
364
|
+
// Rewrite config.toml preserving all sections.
|
|
365
|
+
// Separate mcp_servers to avoid @iarna/toml reformatting issues with its custom rendering.
|
|
366
|
+
const { mcp_servers, ...rest } = parsed;
|
|
367
|
+
try {
|
|
368
|
+
let newContent = tomlStringify(rest).trimEnd();
|
|
369
|
+
// Re-append mcp_servers if they existed (preserved verbatim from parsed structure)
|
|
370
|
+
if (mcp_servers && typeof mcp_servers === 'object' && Object.keys(mcp_servers).length > 0) {
|
|
371
|
+
const mcpPart = tomlStringify({
|
|
372
|
+
mcp_servers,
|
|
373
|
+
}).trimEnd();
|
|
374
|
+
newContent = `${newContent}\n\n${mcpPart}`;
|
|
375
|
+
}
|
|
376
|
+
newContent = `${newContent}\n`;
|
|
377
|
+
ensureParentDir(configPath);
|
|
378
|
+
fs.writeFileSync(configPath, newContent, 'utf-8');
|
|
379
|
+
return {
|
|
380
|
+
configResult: {
|
|
381
|
+
platform,
|
|
382
|
+
filePath: configPath,
|
|
383
|
+
status: 'written',
|
|
384
|
+
reason: 'agents injected',
|
|
385
|
+
},
|
|
386
|
+
};
|
|
387
|
+
}
|
|
388
|
+
catch (error) {
|
|
389
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
390
|
+
return {
|
|
391
|
+
configResult: {
|
|
392
|
+
platform,
|
|
393
|
+
filePath: configPath,
|
|
394
|
+
status: 'error',
|
|
395
|
+
error: `Failed to write config.toml: ${msg}`,
|
|
396
|
+
},
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
// ---------------------------------------------------------------------------
|
|
401
|
+
// Main distribution entry point
|
|
402
|
+
// ---------------------------------------------------------------------------
|
|
110
403
|
export function distributeSubagents(scope) {
|
|
111
404
|
const entries = loadSubagentLibrary();
|
|
112
405
|
const byId = new Map(entries.map((e) => [e.id, e]));
|
|
113
|
-
|
|
114
|
-
|
|
406
|
+
// Markdown-based platforms use the generic distributeLibrary framework
|
|
407
|
+
const markdownPlatforms = ['claude-code', 'opencode', 'cursor'];
|
|
115
408
|
const cleanup = {
|
|
116
409
|
resolveTargetDir: (p) => resolveSubagentTargetDir(p, scope),
|
|
117
410
|
extractId: (filename) => {
|
|
@@ -120,29 +413,35 @@ export function distributeSubagents(scope) {
|
|
|
120
413
|
return filename.slice(0, -3);
|
|
121
414
|
},
|
|
122
415
|
};
|
|
123
|
-
// Filter entries based on per-agent configuration
|
|
124
416
|
const filterSelected = (platform, _allEntries) => {
|
|
125
|
-
const
|
|
126
|
-
const state =
|
|
127
|
-
const activeIds = state.active;
|
|
417
|
+
const appId = platformToAgentId(platform);
|
|
418
|
+
const state = loadLibraryStateSectionForApplication('agents', appId, scope);
|
|
128
419
|
const selected = [];
|
|
129
|
-
for (const id of
|
|
420
|
+
for (const id of state.active) {
|
|
130
421
|
const e = byId.get(id);
|
|
131
422
|
if (e)
|
|
132
423
|
selected.push(e);
|
|
133
424
|
}
|
|
134
425
|
return selected;
|
|
135
426
|
};
|
|
136
|
-
|
|
137
|
-
section: '
|
|
138
|
-
selected: entries,
|
|
139
|
-
platforms,
|
|
427
|
+
const markdownOutcome = distributeLibrary({
|
|
428
|
+
section: 'agents',
|
|
429
|
+
selected: entries,
|
|
430
|
+
platforms: markdownPlatforms,
|
|
140
431
|
resolveFilePath: (p, e) => resolveSubagentFilePath(p, e.id, scope),
|
|
141
|
-
render: (p, e) =>
|
|
432
|
+
render: (p, e) => renderForMarkdownPlatform(p, e),
|
|
142
433
|
getId: (e) => e.id,
|
|
143
434
|
cleanup,
|
|
144
435
|
scope,
|
|
145
436
|
filterSelected,
|
|
146
437
|
});
|
|
438
|
+
// Codex: custom distribution (TOML files + config.toml injection)
|
|
439
|
+
const codexResults = distributeCodexSubagents(entries, byId, scope);
|
|
440
|
+
return {
|
|
441
|
+
results: [
|
|
442
|
+
...markdownOutcome.results,
|
|
443
|
+
...codexResults,
|
|
444
|
+
],
|
|
445
|
+
};
|
|
147
446
|
}
|
|
148
447
|
//# sourceMappingURL=distribution.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/subagents/distribution.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/subagents/distribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
+
import { parse as parseToml } from '@iarna/toml';
|
|
4
|
+
import { getCodexConfigPath } from '../config/paths.js';
|
|
3
5
|
import { wrapFrontmatter } from '../util/frontmatter.js';
|
|
4
6
|
import { extractMergedFrontmatter, slugify } from '../util/markdown.js';
|
|
5
7
|
export function importSubagentFromFile(platform, filePath) {
|
|
@@ -12,7 +14,6 @@ export function importSubagentFromFile(platform, filePath) {
|
|
|
12
14
|
case 'claude-code':
|
|
13
15
|
case 'opencode':
|
|
14
16
|
case 'cursor': {
|
|
15
|
-
// Minimal conversion: description + extras.<platform> = source frontmatter without description
|
|
16
17
|
const extracted = extractMergedFrontmatter(raw, { trimBodyStart: true });
|
|
17
18
|
const metaRecord = extracted.meta;
|
|
18
19
|
const description = typeof metaRecord.description === 'string' ? metaRecord.description : '';
|
|
@@ -21,6 +22,9 @@ export function importSubagentFromFile(platform, filePath) {
|
|
|
21
22
|
const bodyNoFrontmatter = extracted.body.replace(/^\s*---\s*[\s\S]*?\r?\n---\s*\r?\n?/, '');
|
|
22
23
|
return { slug: baseSlug, content: wrapFrontmatter(fm, bodyNoFrontmatter) };
|
|
23
24
|
}
|
|
25
|
+
case 'codex': {
|
|
26
|
+
return importCodexAgentRole(baseSlug, raw, filePath);
|
|
27
|
+
}
|
|
24
28
|
default: {
|
|
25
29
|
// biome-ignore lint/suspicious/noExplicitAny: exhaustive check fallback
|
|
26
30
|
const never = platform;
|
|
@@ -28,4 +32,60 @@ export function importSubagentFromFile(platform, filePath) {
|
|
|
28
32
|
}
|
|
29
33
|
}
|
|
30
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Import a Codex agent role from its TOML config file.
|
|
37
|
+
* Reads the TOML content and converts to ASB library format.
|
|
38
|
+
*/
|
|
39
|
+
function importCodexAgentRole(slug, raw, filePath) {
|
|
40
|
+
let parsed = {};
|
|
41
|
+
try {
|
|
42
|
+
parsed = parseToml(raw);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
throw new Error(`Failed to parse TOML file: ${filePath}`);
|
|
46
|
+
}
|
|
47
|
+
// Also try to read the description from config.toml's [agents.<slug>] entry
|
|
48
|
+
let description = '';
|
|
49
|
+
try {
|
|
50
|
+
const configPath = getCodexConfigPath();
|
|
51
|
+
if (fs.existsSync(configPath)) {
|
|
52
|
+
const configContent = fs.readFileSync(configPath, 'utf-8');
|
|
53
|
+
const configParsed = parseToml(configContent);
|
|
54
|
+
const agents = configParsed.agents;
|
|
55
|
+
if (agents) {
|
|
56
|
+
const entry = agents[slug];
|
|
57
|
+
if (entry && typeof entry.description === 'string') {
|
|
58
|
+
description = entry.description;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// Best-effort: description may be empty
|
|
65
|
+
}
|
|
66
|
+
// Extract Codex-specific fields for extras.codex
|
|
67
|
+
const codexFields = {};
|
|
68
|
+
const IMPORTABLE_FIELDS = [
|
|
69
|
+
'model',
|
|
70
|
+
'model_reasoning_effort',
|
|
71
|
+
'model_reasoning_summary',
|
|
72
|
+
'model_verbosity',
|
|
73
|
+
'sandbox_mode',
|
|
74
|
+
];
|
|
75
|
+
for (const field of IMPORTABLE_FIELDS) {
|
|
76
|
+
if (parsed[field] !== undefined) {
|
|
77
|
+
codexFields[field] = parsed[field];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// developer_instructions becomes the Markdown body
|
|
81
|
+
const devInstructions = typeof parsed.developer_instructions === 'string' ? parsed.developer_instructions : '';
|
|
82
|
+
const fm = { description };
|
|
83
|
+
if (Object.keys(codexFields).length > 0) {
|
|
84
|
+
fm.extras = { codex: codexFields };
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
slug,
|
|
88
|
+
content: wrapFrontmatter(fm, devInstructions.trim() ? `\n${devInstructions}` : '\n'),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
31
91
|
//# sourceMappingURL=importer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importer.js","sourceRoot":"","sources":["../../src/subagents/importer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"importer.js","sourceRoot":"","sources":["../../src/subagents/importer.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,10 +18,10 @@ function getSubagentTitle(entry) {
|
|
|
18
18
|
return typeof title === 'string' ? title : null;
|
|
19
19
|
}
|
|
20
20
|
function getSubagentModel(entry) {
|
|
21
|
-
return pickFirstPlatformString(entry.metadata.extras, ['claude-code', 'opencode', 'cursor'], 'model');
|
|
21
|
+
return pickFirstPlatformString(entry.metadata.extras, ['claude-code', 'opencode', 'cursor', 'codex'], 'model');
|
|
22
22
|
}
|
|
23
23
|
function getSubagentTools(entry) {
|
|
24
|
-
return pickFirstPlatformArray(entry.metadata.extras, ['claude-code', 'opencode', 'cursor'], 'tools');
|
|
24
|
+
return pickFirstPlatformArray(entry.metadata.extras, ['claude-code', 'opencode', 'cursor', 'codex'], 'tools');
|
|
25
25
|
}
|
|
26
26
|
function buildSubagentRow(entry, active, order) {
|
|
27
27
|
return {
|
|
@@ -38,7 +38,7 @@ function buildSubagentRow(entry, active, order) {
|
|
|
38
38
|
}
|
|
39
39
|
export function buildSubagentInventory(scope) {
|
|
40
40
|
const entries = loadSubagentLibrary();
|
|
41
|
-
const state = loadLibraryStateSection('
|
|
41
|
+
const state = loadLibraryStateSection('agents', scope);
|
|
42
42
|
const byId = new Map(entries.map((e) => [e.id, e]));
|
|
43
43
|
const rows = [];
|
|
44
44
|
const seen = new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../src/subagents/inventory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAqB,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAsB,MAAM,cAAc,CAAC;AAmBvE,SAAS,YAAY,CAAC,OAAwB;IAC5C,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAChC,MAAM,KAAK,GAAG,CAAC,CAAC,QAAmC,CAAC;QACpD,MAAM,KAAK,GAAG,CAAC,CAAC,QAAmC,CAAC;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAgB,CAAC;QACtC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAgB,CAAC;QACtC,MAAM,MAAM,GAAG,CACb,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CACvE,CAAC,WAAW,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,CACb,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CACvE,CAAC,WAAW,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAoB;IAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,QAAmC,CAAC;IACvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAgB,CAAC;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAoB;IAC5C,OAAO,uBAAuB,CAC5B,KAAK,CAAC,QAAQ,CAAC,MAAM,EACrB,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../src/subagents/inventory.ts"],"names":[],"mappings":"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"}
|