@zmice/zc 0.2.5 → 0.2.7

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 (103) hide show
  1. package/README.md +98 -11
  2. package/dist/cli/__tests__/platform.test.js +215 -2
  3. package/dist/cli/__tests__/platform.test.js.map +1 -1
  4. package/dist/cli/__tests__/surface.test.js +52 -0
  5. package/dist/cli/__tests__/surface.test.js.map +1 -1
  6. package/dist/cli/__tests__/team.test.d.ts +2 -0
  7. package/dist/cli/__tests__/team.test.d.ts.map +1 -0
  8. package/dist/cli/__tests__/team.test.js +29 -0
  9. package/dist/cli/__tests__/team.test.js.map +1 -0
  10. package/dist/cli/__tests__/upstream.test.js +4 -0
  11. package/dist/cli/__tests__/upstream.test.js.map +1 -1
  12. package/dist/cli/platform.d.ts +11 -3
  13. package/dist/cli/platform.d.ts.map +1 -1
  14. package/dist/cli/platform.js +216 -54
  15. package/dist/cli/platform.js.map +1 -1
  16. package/dist/cli/team.d.ts.map +1 -1
  17. package/dist/cli/team.js +114 -4
  18. package/dist/cli/team.js.map +1 -1
  19. package/dist/cli/upstream.d.ts +1 -0
  20. package/dist/cli/upstream.d.ts.map +1 -1
  21. package/dist/cli/upstream.js +84 -5
  22. package/dist/cli/upstream.js.map +1 -1
  23. package/dist/node_modules/@zmice/platform-core/dist/index.d.ts +37 -3
  24. package/dist/node_modules/@zmice/platform-core/dist/index.d.ts.map +1 -1
  25. package/dist/node_modules/@zmice/platform-core/dist/index.js +68 -0
  26. package/dist/node_modules/@zmice/platform-core/dist/index.js.map +1 -1
  27. package/dist/node_modules/@zmice/platform-core/dist/index.test.js +44 -1
  28. package/dist/node_modules/@zmice/platform-core/dist/index.test.js.map +1 -1
  29. package/dist/runtime/__tests__/worktree-manager.test.js +63 -1
  30. package/dist/runtime/__tests__/worktree-manager.test.js.map +1 -1
  31. package/dist/runtime/worktree-manager.d.ts +26 -1
  32. package/dist/runtime/worktree-manager.d.ts.map +1 -1
  33. package/dist/runtime/worktree-manager.js +126 -12
  34. package/dist/runtime/worktree-manager.js.map +1 -1
  35. package/dist/team/__tests__/orchestrator.test.js +40 -0
  36. package/dist/team/__tests__/orchestrator.test.js.map +1 -1
  37. package/dist/team/__tests__/planner.test.d.ts +2 -0
  38. package/dist/team/__tests__/planner.test.d.ts.map +1 -0
  39. package/dist/team/__tests__/planner.test.js +43 -0
  40. package/dist/team/__tests__/planner.test.js.map +1 -0
  41. package/dist/team/__tests__/task-queue.test.js +18 -0
  42. package/dist/team/__tests__/task-queue.test.js.map +1 -1
  43. package/dist/team/orchestrator.d.ts +2 -1
  44. package/dist/team/orchestrator.d.ts.map +1 -1
  45. package/dist/team/orchestrator.js +29 -10
  46. package/dist/team/orchestrator.js.map +1 -1
  47. package/dist/team/planner.d.ts +27 -0
  48. package/dist/team/planner.d.ts.map +1 -0
  49. package/dist/team/planner.js +120 -0
  50. package/dist/team/planner.js.map +1 -0
  51. package/dist/team/task-queue.d.ts +3 -0
  52. package/dist/team/task-queue.d.ts.map +1 -1
  53. package/dist/team/task-queue.js +11 -2
  54. package/dist/team/task-queue.js.map +1 -1
  55. package/package.json +2 -2
  56. package/vendor/node_modules/@zmice/platform-core/dist/index.d.ts +37 -3
  57. package/vendor/node_modules/@zmice/platform-core/dist/index.d.ts.map +1 -1
  58. package/vendor/node_modules/@zmice/platform-core/dist/index.js +68 -0
  59. package/vendor/node_modules/@zmice/platform-core/dist/index.js.map +1 -1
  60. package/vendor/node_modules/@zmice/platform-core/dist/index.test.js +44 -1
  61. package/vendor/node_modules/@zmice/platform-core/dist/index.test.js.map +1 -1
  62. package/vendor/packages/platform-claude/dist/index.d.ts.map +1 -1
  63. package/vendor/packages/platform-claude/dist/index.js +12 -70
  64. package/vendor/packages/platform-claude/dist/index.js.map +1 -1
  65. package/vendor/packages/platform-codex/dist/generate.d.ts +1 -1
  66. package/vendor/packages/platform-codex/dist/generate.d.ts.map +1 -1
  67. package/vendor/packages/platform-codex/dist/generate.js +1 -1
  68. package/vendor/packages/platform-codex/dist/generate.js.map +1 -1
  69. package/vendor/packages/platform-codex/dist/index.d.ts +15 -1
  70. package/vendor/packages/platform-codex/dist/index.d.ts.map +1 -1
  71. package/vendor/packages/platform-codex/dist/index.js +320 -47
  72. package/vendor/packages/platform-codex/dist/index.js.map +1 -1
  73. package/vendor/packages/platform-codex/dist/index.test.js +113 -5
  74. package/vendor/packages/platform-codex/dist/index.test.js.map +1 -1
  75. package/vendor/packages/platform-opencode/dist/index.d.ts.map +1 -1
  76. package/vendor/packages/platform-opencode/dist/index.js +15 -81
  77. package/vendor/packages/platform-opencode/dist/index.js.map +1 -1
  78. package/vendor/packages/platform-qwen/dist/index.d.ts.map +1 -1
  79. package/vendor/packages/platform-qwen/dist/index.js +28 -84
  80. package/vendor/packages/platform-qwen/dist/index.js.map +1 -1
  81. package/vendor/packages/toolkit/src/content/agents/architect/body.md +8 -0
  82. package/vendor/packages/toolkit/src/content/agents/code-reviewer/body.md +10 -0
  83. package/vendor/packages/toolkit/src/content/agents/product-owner/body.md +8 -0
  84. package/vendor/packages/toolkit/src/content/commands/plan-review/body.md +3 -1
  85. package/vendor/packages/toolkit/src/content/commands/start/body.md +51 -2
  86. package/vendor/packages/toolkit/src/content/commands/start/meta.yaml +2 -2
  87. package/vendor/packages/toolkit/src/content/skills/branch-finish-and-cleanup/body.md +17 -0
  88. package/vendor/packages/toolkit/src/content/skills/browser-qa-testing/body.md +77 -520
  89. package/vendor/packages/toolkit/src/content/skills/ci-cd-and-automation/body.md +56 -387
  90. package/vendor/packages/toolkit/src/content/skills/code-review-and-quality/body.md +10 -0
  91. package/vendor/packages/toolkit/src/content/skills/code-simplification/body.md +55 -301
  92. package/vendor/packages/toolkit/src/content/skills/context-engineering/body.md +10 -0
  93. package/vendor/packages/toolkit/src/content/skills/continuous-learning/body.md +66 -331
  94. package/vendor/packages/toolkit/src/content/skills/multi-perspective-review/body.md +30 -1
  95. package/vendor/packages/toolkit/src/content/skills/parallel-agent-dispatch/body.md +79 -317
  96. package/vendor/packages/toolkit/src/content/skills/performance-optimization/body.md +60 -330
  97. package/vendor/packages/toolkit/src/content/skills/planning-and-task-breakdown/body.md +35 -0
  98. package/vendor/packages/toolkit/src/content/skills/sdd-tdd-workflow/body.md +66 -342
  99. package/vendor/packages/toolkit/src/content/skills/sprint-retrospective/body.md +66 -303
  100. package/vendor/packages/toolkit/src/content/skills/team-orchestration/body.md +81 -327
  101. package/vendor/packages/toolkit/src/content/skills/test-driven-development/body.md +50 -346
  102. package/vendor/packages/toolkit/src/content/skills/using-agent-skills/body.md +26 -2
  103. package/vendor/references/upstreams.yaml +5 -0
@@ -1,13 +1,17 @@
1
- import { attachPlanMetadata, createInstallPlan, describeAsset, selectMatchedAssets, } from "@zmice/platform-core";
1
+ import { attachPlanMetadata, createSkillArtifact, createInstallPlan, describeAsset, renderPlatformAssetList, selectMatchedAssets, stripAssetKindPrefix, } from "@zmice/platform-core";
2
2
  export const platformName = "codex";
3
3
  export const packageName = "@zmice/platform-codex";
4
4
  export const templateFiles = {
5
5
  agents: "AGENTS.md",
6
+ config: "config.toml",
7
+ projectConfig: ".codex/config.toml",
8
+ pluginManifest: ".codex-plugin/plugin.json",
9
+ marketplace: ".agents/plugins/marketplace.json",
6
10
  };
7
11
  export const capability = {
8
12
  platform: platformName,
9
13
  namespace: "zc",
10
- surfaces: ["entry-file", "skills-dir"],
14
+ surfaces: ["entry-file", "skills-dir", "agents-dir"],
11
15
  entryFile: {
12
16
  fileName: templateFiles.agents,
13
17
  },
@@ -15,26 +19,47 @@ export const capability = {
15
19
  relativeDir: "skills",
16
20
  fileName: "SKILL.md",
17
21
  },
22
+ agents: {
23
+ relativeDir: "agents",
24
+ fileExtension: ".toml",
25
+ },
18
26
  };
27
+ const namespacedSkillNaming = { prefix: "zc-" };
28
+ const pluginSkillNaming = { prefix: "" };
19
29
  function getScopeLayout(scope) {
20
30
  if (scope === "project") {
21
31
  return {
22
32
  entryFile: templateFiles.agents,
33
+ configFile: templateFiles.projectConfig,
34
+ displayConfigFile: ".codex/config.toml",
23
35
  skillsDir: ".codex/skills",
24
36
  displaySkillsDir: ".codex/skills",
37
+ agentsDir: ".codex/agents",
38
+ displayAgentsDir: ".codex/agents",
39
+ agentConfigPrefix: "agents",
25
40
  };
26
41
  }
27
42
  if (scope === "global") {
28
43
  return {
29
44
  entryFile: templateFiles.agents,
45
+ configFile: templateFiles.config,
46
+ displayConfigFile: "~/.codex/config.toml",
30
47
  skillsDir: "skills",
31
48
  displaySkillsDir: "~/.codex/skills",
49
+ agentsDir: "agents",
50
+ displayAgentsDir: "~/.codex/agents",
51
+ agentConfigPrefix: "agents",
32
52
  };
33
53
  }
34
54
  return {
35
55
  entryFile: templateFiles.agents,
56
+ configFile: templateFiles.config,
57
+ displayConfigFile: "config.toml",
36
58
  skillsDir: "skills",
37
59
  displaySkillsDir: "skills",
60
+ agentsDir: "agents",
61
+ displayAgentsDir: "agents",
62
+ agentConfigPrefix: "agents",
38
63
  };
39
64
  }
40
65
  function createCapability(layout) {
@@ -48,22 +73,19 @@ function createCapability(layout) {
48
73
  relativeDir: layout.skillsDir,
49
74
  fileName: capability.skills.fileName,
50
75
  },
76
+ agents: {
77
+ relativeDir: layout.agentsDir,
78
+ fileExtension: ".toml",
79
+ },
51
80
  };
52
81
  }
53
82
  function selectMatchedAssetsByKind(manifest, kind) {
54
83
  return selectMatchedAssets(manifest, platformName).filter((asset) => asset.kind === kind);
55
84
  }
56
- function renderAssetList(assets) {
57
- if (assets.length === 0) {
58
- return "- 尚未匹配到任何工具包资产。";
59
- }
60
- return assets
61
- .map((asset) => `- \`${asset.kind}\` \`${asset.id}\`: ${describeAsset(asset)}`)
62
- .join("\n");
63
- }
64
85
  function renderAgentsFile(manifestSource, assets, layout) {
65
86
  const commandCount = assets.filter((asset) => asset.kind === "command").length;
66
87
  const skillCount = assets.filter((asset) => asset.kind === "skill").length;
88
+ const agentCount = assets.filter((asset) => asset.kind === "agent").length;
67
89
  return `# Codex 工作流入口
68
90
 
69
91
  这是安装到 Codex 的薄入口文件。
@@ -75,10 +97,13 @@ function renderAgentsFile(manifestSource, assets, layout) {
75
97
  3. 把 \`zc:*\` 命令语义映射成 Codex 实际可调用的 \`$zc-*\` skill
76
98
 
77
99
  详细方法不写在这里,完整内容都在 \`${layout.displaySkillsDir}/zc-*/SKILL.md\`。
100
+ 角色化 custom agents 位于 \`${layout.displayAgentsDir}/zc-*.toml\`。
101
+ Codex agent role 注册位于 \`${layout.displayConfigFile}\` 的 \`[agents.*]\` 配置。
78
102
  其中:
79
103
 
80
104
  - \`$zc-start\`、\`$zc-spec\`、\`$zc-build\` 这类是 command-alias skill
81
105
  - \`$zc-sdd-tdd-workflow\`、\`$zc-debugging-and-error-recovery\` 这类是专题/流程 skill
106
+ - \`zc_*\` 这类是 Codex custom agent,只在显式要求多 agent / 指定 agent 时使用
82
107
 
83
108
  ## 核心规则
84
109
 
@@ -196,66 +221,205 @@ function renderAgentsFile(manifestSource, assets, layout) {
196
221
  - 匹配到的资产:${assets.length}
197
222
  - command-alias skills:${commandCount} 个
198
223
  - skills:${skillCount} 个
224
+ - custom agents:${agentCount} 个
199
225
 
200
- ${renderAssetList(assets)}
226
+ ${renderPlatformAssetList(assets)}
201
227
  `;
202
228
  }
229
+ function renderPluginCompanionAgentsFile(options) {
230
+ const commandAssets = options.assets.filter((asset) => asset.kind === "command");
231
+ const skillCount = options.assets.filter((asset) => asset.kind === "skill").length;
232
+ const agentCount = options.assets.filter((asset) => asset.kind === "agent").length;
233
+ const commandMappings = commandAssets.length > 0
234
+ ? commandAssets
235
+ .map((asset) => {
236
+ const commandName = toCodexSkillSlug(asset);
237
+ return `- \`zc:${commandName}\` -> \`$${toCodexSkillName(asset, pluginSkillNaming)}\``;
238
+ })
239
+ .join("\n")
240
+ : "- 当前清单未匹配 command-alias skill";
241
+ return `# Codex zc-toolkit 插件入口
242
+
243
+ 这是 \`${options.pluginName}\` Codex 插件的薄入口文件。
244
+
245
+ 它负责保留插件安装后的全局 / 项目级默认规则,并把统一 \`zc:*\` 语义映射到插件内 skill。详细方法不写在这里,完整内容都在 \`${options.displayPluginSkillsDir}/<skill>/SKILL.md\`。
246
+
247
+ ## 全局规则
248
+
249
+ - 默认先判断任务属于哪条 workflow,再决定入口
250
+ - 不确定入口时,先用 \`$start\`
251
+ - 中文优先,命令名、参数名、文件名、JSON 键和平台产物名保持原样
252
+ - 证据先于断言,完成前必须给出实际验证结果
253
+ - 不做超出任务边界的顺手修改
254
+ - 需要多 agent 或指定角色时,再使用 Codex custom agents
255
+
256
+ ## 统一命令语义到插件 skill 的映射
257
+
258
+ ${commandMappings}
259
+
260
+ ## 推荐开始方式
261
+
262
+ - 不确定从哪开始:\`$start\`
263
+ - 需求还模糊:\`$product-analysis\`
264
+ - 完整交付主流程:\`$sdd-tdd\`
265
+ - 修 bug:\`$debug\`
266
+ - 代码审查和反馈收敛:\`$quality-review\`
267
+ - 文档或发布说明:\`$doc\`
268
+ - 陌生项目先摸底:\`$onboard\` 或 \`$ctx-health\`
269
+
270
+ ## 详细内容在哪里
271
+
272
+ - 插件 skills:\`${options.displayPluginSkillsDir}/<command-or-skill>/SKILL.md\`
273
+ - custom agents:\`${options.displayAgentsDir}/zc-<agent>.toml\`
274
+ - Codex agent role 注册:\`${options.displayConfigFile}\` 的 \`[agents.*]\` 配置
275
+ - 当前入口文件:\`${options.displayEntryFile}\`
276
+
277
+ ## 已安装能力
278
+
279
+ 此安装当前包含:
280
+
281
+ - 清单来源:\`${options.manifestSource}\`
282
+ - 匹配到的资产:${options.assets.length}
283
+ - command-alias skills:${commandAssets.length} 个
284
+ - skills:${skillCount} 个
285
+ - custom agents:${agentCount} 个
286
+ `;
287
+ }
288
+ function renderPluginManifest(options) {
289
+ const commandCount = options.matchedAssets.filter((asset) => asset.kind === "command").length;
290
+ const skillCount = options.matchedAssets.filter((asset) => asset.kind === "skill").length;
291
+ return `${JSON.stringify({
292
+ name: options.name,
293
+ version: options.version,
294
+ description: "Bundle zc AI coding workflows for Codex.",
295
+ author: {
296
+ name: "zc",
297
+ },
298
+ license: "MIT",
299
+ keywords: ["codex", "skills", "workflow", "multi-agent"],
300
+ skills: "./skills/",
301
+ interface: {
302
+ displayName: "zc AI Coding Toolkit",
303
+ shortDescription: "Reusable engineering workflows for Codex.",
304
+ longDescription: "Installs zc workflow skills for planning, building, reviewing, verifying, and coordinating agentic coding work in Codex.",
305
+ developerName: "zc",
306
+ category: "Developer Tools",
307
+ capabilities: ["Read", "Write"],
308
+ defaultPrompt: [
309
+ "Use start to choose the right workflow for this task.",
310
+ "Use team-orchestration when multiple agents need coordinated worktree isolation.",
311
+ ],
312
+ },
313
+ zc: {
314
+ commands: commandCount,
315
+ skills: skillCount,
316
+ },
317
+ }, null, 2)}\n`;
318
+ }
319
+ function renderMarketplaceManifest(options) {
320
+ return `${JSON.stringify({
321
+ name: options.marketplaceName,
322
+ interface: {
323
+ displayName: options.marketplaceDisplayName,
324
+ },
325
+ plugins: [
326
+ {
327
+ name: options.pluginName,
328
+ source: {
329
+ source: "local",
330
+ path: options.pluginPath,
331
+ },
332
+ policy: {
333
+ installation: "AVAILABLE",
334
+ authentication: "ON_INSTALL",
335
+ },
336
+ category: "Developer Tools",
337
+ },
338
+ ],
339
+ }, null, 2)}\n`;
340
+ }
203
341
  function toCodexSkillSlug(asset) {
204
- return asset.id.replace(/^(skill|command):/, "");
342
+ return stripAssetKindPrefix(asset.id);
205
343
  }
206
- function toCodexSkillDirectory(asset, layout) {
207
- return `${layout.skillsDir}/zc-${toCodexSkillSlug(asset)}`;
344
+ function toCodexSkillName(asset, naming) {
345
+ return `${naming.prefix}${asset.name ?? toCodexSkillSlug(asset)}`;
208
346
  }
209
- function renderYamlFrontmatter(fields) {
210
- const lines = ["---"];
211
- for (const [key, value] of Object.entries(fields)) {
212
- if (!value) {
213
- continue;
214
- }
215
- lines.push(`${key}: ${JSON.stringify(value)}`);
216
- }
217
- lines.push("---");
218
- return `${lines.join("\n")}\n`;
347
+ function toCodexSkillDirectory(asset, layout, naming) {
348
+ return `${layout.skillsDir}/${naming.prefix}${toCodexSkillSlug(asset)}`;
219
349
  }
220
- function renderSkillFile(options) {
221
- return `${renderYamlFrontmatter({
222
- name: options.name,
223
- description: options.description,
224
- })}\n${options.body.trim()}\n`;
350
+ function toCodexAgentName(asset) {
351
+ return `zc_${toCodexSkillSlug(asset).replace(/[^A-Za-z0-9_]+/g, "_")}`;
352
+ }
353
+ function renderTomlScalar(value) {
354
+ return JSON.stringify(value);
225
355
  }
226
- function renderCodexCommandAliasBody(asset) {
356
+ function renderCodexCommandAliasBody(asset, naming) {
227
357
  const commandName = toCodexSkillSlug(asset);
358
+ const invocationName = `${naming.prefix}${commandName}`;
228
359
  return `# zc:${commandName}
229
360
 
230
361
  这是 Codex 的 command-alias skill。
231
362
 
232
363
  使用方式:
233
364
 
234
- - 在 Codex 中直接调用 \`$zc-${commandName}\`
365
+ - 在 Codex 中直接调用 \`$${invocationName}\`
235
366
  - 它对应统一命令语义 \`zc:${commandName}\`
236
367
  - 如果需要更深的方法细节,再继续调用相关专题 skill
237
368
 
238
369
  ${(asset.body ?? `# ${describeAsset(asset)}\n`).trim()}
239
370
  `;
240
371
  }
241
- function renderCodexSkillArtifacts(assets, layout) {
242
- return assets.map((asset) => ({
243
- path: `${toCodexSkillDirectory(asset, layout)}/SKILL.md`,
244
- content: renderSkillFile({
245
- name: `zc-${asset.name ?? toCodexSkillSlug(asset)}`,
246
- description: asset.summary ?? describeAsset(asset),
247
- body: asset.body ?? `# ${describeAsset(asset)}\n`,
248
- }),
372
+ function renderCodexSkillArtifacts(assets, layout, naming = namespacedSkillNaming) {
373
+ return assets.map((asset) => createSkillArtifact({
374
+ path: `${toCodexSkillDirectory(asset, layout, naming)}/SKILL.md`,
375
+ asset,
376
+ name: toCodexSkillName(asset, naming),
377
+ description: asset.summary ?? describeAsset(asset),
378
+ body: asset.body ?? `# ${describeAsset(asset)}\n`,
249
379
  }));
250
380
  }
251
- function renderCodexCommandAliasArtifacts(assets, layout) {
252
- return assets.map((asset) => ({
253
- path: `${toCodexSkillDirectory(asset, layout)}/SKILL.md`,
254
- content: renderSkillFile({
255
- name: `zc-${asset.name ?? toCodexSkillSlug(asset)}`,
256
- description: asset.summary ?? describeAsset(asset),
257
- body: renderCodexCommandAliasBody(asset),
258
- }),
381
+ function renderCodexAgentArtifacts(assets, layout) {
382
+ return assets.map((asset) => {
383
+ const slug = toCodexSkillSlug(asset);
384
+ return {
385
+ path: `${layout.agentsDir}/zc-${slug}.toml`,
386
+ content: [
387
+ `name = ${renderTomlScalar(toCodexAgentName(asset))}`,
388
+ `description = ${renderTomlScalar(asset.summary ?? describeAsset(asset))}`,
389
+ `developer_instructions = ${renderTomlScalar(asset.body ?? `# ${describeAsset(asset)}\n`)}`,
390
+ "",
391
+ ].join("\n"),
392
+ };
393
+ });
394
+ }
395
+ function renderCodexAgentConfigArtifacts(assets, layout) {
396
+ if (assets.length === 0) {
397
+ return [];
398
+ }
399
+ const lines = [
400
+ "# Generated by zc. Merge with existing Codex config before forcing overwrites.",
401
+ "# See: https://developers.openai.com/codex/config-reference",
402
+ "",
403
+ ];
404
+ for (const asset of assets) {
405
+ const slug = toCodexSkillSlug(asset);
406
+ const agentName = toCodexAgentName(asset);
407
+ lines.push(`[agents.${agentName}]`, `description = ${renderTomlScalar(asset.summary ?? describeAsset(asset))}`, `config_file = ${renderTomlScalar(`${layout.agentConfigPrefix}/zc-${slug}.toml`)}`, "");
408
+ }
409
+ return [
410
+ {
411
+ path: layout.configFile,
412
+ content: `${lines.join("\n").trimEnd()}\n`,
413
+ },
414
+ ];
415
+ }
416
+ function renderCodexCommandAliasArtifacts(assets, layout, naming = namespacedSkillNaming) {
417
+ return assets.map((asset) => createSkillArtifact({
418
+ path: `${toCodexSkillDirectory(asset, layout, naming)}/SKILL.md`,
419
+ asset,
420
+ name: toCodexSkillName(asset, naming),
421
+ description: asset.summary ?? describeAsset(asset),
422
+ body: renderCodexCommandAliasBody(asset, naming),
259
423
  }));
260
424
  }
261
425
  export function createCodexGenerationPlan(manifest, options = {}) {
@@ -265,6 +429,7 @@ export function createCodexGenerationPlan(manifest, options = {}) {
265
429
  const matchedAssets = selectMatchedAssets(manifest, platformName);
266
430
  const commandAssets = selectMatchedAssetsByKind(manifest, "command");
267
431
  const skillAssets = selectMatchedAssetsByKind(manifest, "skill");
432
+ const agentAssets = selectMatchedAssetsByKind(manifest, "agent");
268
433
  const manifestSource = options.manifestSource ?? manifest.source ?? "toolkit-manifest";
269
434
  const resolvedPackageName = options.packageName ?? packageName;
270
435
  return attachPlanMetadata({
@@ -278,8 +443,116 @@ export function createCodexGenerationPlan(manifest, options = {}) {
278
443
  path: layout.entryFile,
279
444
  content: renderAgentsFile(manifestSource, matchedAssets, layout),
280
445
  },
446
+ ...renderCodexAgentConfigArtifacts(agentAssets, layout),
281
447
  ...renderCodexCommandAliasArtifacts(commandAssets, layout),
282
448
  ...renderCodexSkillArtifacts(skillAssets, layout),
449
+ ...renderCodexAgentArtifacts(agentAssets, layout),
450
+ ],
451
+ });
452
+ }
453
+ export function createCodexPluginGenerationPlan(manifest, options = {}) {
454
+ const layout = getScopeLayout("dir");
455
+ const matchedAssets = selectMatchedAssets(manifest, platformName);
456
+ const commandAssets = selectMatchedAssetsByKind(manifest, "command");
457
+ const skillAssets = selectMatchedAssetsByKind(manifest, "skill");
458
+ const manifestSource = options.manifestSource ?? manifest.source ?? "toolkit-manifest";
459
+ const resolvedPackageName = options.packageName ?? packageName;
460
+ const pluginName = options.pluginName ?? "zc-toolkit";
461
+ const pluginVersion = options.pluginVersion ?? "0.0.0";
462
+ return attachPlanMetadata({
463
+ platform: platformName,
464
+ packageName: resolvedPackageName,
465
+ manifestSource,
466
+ matchedAssets,
467
+ capability: {
468
+ ...createCapability(layout),
469
+ surfaces: ["plugin-dir", "skills-dir"],
470
+ entryFile: undefined,
471
+ },
472
+ artifacts: [
473
+ {
474
+ path: templateFiles.pluginManifest,
475
+ content: renderPluginManifest({
476
+ name: pluginName,
477
+ version: pluginVersion,
478
+ matchedAssets,
479
+ }),
480
+ },
481
+ ...renderCodexCommandAliasArtifacts(commandAssets, layout, pluginSkillNaming),
482
+ ...renderCodexSkillArtifacts(skillAssets, layout, pluginSkillNaming),
483
+ ],
484
+ });
485
+ }
486
+ export function createCodexMarketplaceGenerationPlan(manifest, options = {}) {
487
+ const pluginName = options.pluginName ?? "zc-toolkit";
488
+ const marketplaceName = options.marketplaceName ?? "zc-toolkit";
489
+ const marketplaceDisplayName = options.marketplaceDisplayName ?? "zc AI Coding Toolkit";
490
+ const marketplaceScope = options.scope ?? "project";
491
+ const pluginRoot = marketplaceScope === "global"
492
+ ? `.codex/plugins/${pluginName}`
493
+ : `plugins/${pluginName}`;
494
+ const pluginPlan = createCodexPluginGenerationPlan(manifest, options);
495
+ const repoLayout = getScopeLayout("project");
496
+ const agentAssets = selectMatchedAssetsByKind(manifest, "agent");
497
+ const manifestSource = options.manifestSource ?? manifest.source ?? "toolkit-manifest";
498
+ const entryFile = marketplaceScope === "global"
499
+ ? ".codex/AGENTS.md"
500
+ : templateFiles.agents;
501
+ const displayEntryFile = marketplaceScope === "global"
502
+ ? "~/.codex/AGENTS.md"
503
+ : templateFiles.agents;
504
+ const displayPluginSkillsDir = marketplaceScope === "global"
505
+ ? `~/.codex/plugins/${pluginName}/skills`
506
+ : `${pluginRoot}/skills`;
507
+ return attachPlanMetadata({
508
+ ...pluginPlan,
509
+ capability: {
510
+ ...pluginPlan.capability,
511
+ surfaces: ["entry-file", "plugin-dir", "skills-dir", "agents-dir"],
512
+ entryFile: {
513
+ fileName: entryFile,
514
+ },
515
+ skills: {
516
+ relativeDir: `${pluginRoot}/skills`,
517
+ fileName: capability.skills.fileName,
518
+ },
519
+ agents: {
520
+ relativeDir: repoLayout.agentsDir,
521
+ fileExtension: ".toml",
522
+ },
523
+ },
524
+ artifacts: [
525
+ {
526
+ path: templateFiles.marketplace,
527
+ content: renderMarketplaceManifest({
528
+ marketplaceName,
529
+ marketplaceDisplayName,
530
+ pluginName,
531
+ pluginPath: `./${pluginRoot}`,
532
+ }),
533
+ },
534
+ {
535
+ path: entryFile,
536
+ content: renderPluginCompanionAgentsFile({
537
+ manifestSource,
538
+ assets: pluginPlan.matchedAssets,
539
+ pluginName,
540
+ displayEntryFile,
541
+ displayPluginSkillsDir,
542
+ displayAgentsDir: marketplaceScope === "global"
543
+ ? "~/.codex/agents"
544
+ : repoLayout.displayAgentsDir,
545
+ displayConfigFile: marketplaceScope === "global"
546
+ ? "~/.codex/config.toml"
547
+ : repoLayout.displayConfigFile,
548
+ }),
549
+ },
550
+ ...pluginPlan.artifacts.map((artifact) => ({
551
+ path: `${pluginRoot}/${artifact.path}`,
552
+ content: artifact.content,
553
+ })),
554
+ ...renderCodexAgentConfigArtifacts(agentAssets, repoLayout),
555
+ ...renderCodexAgentArtifacts(agentAssets, repoLayout),
283
556
  ],
284
557
  });
285
558
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}