@cat-kit/agent-context 1.0.4 → 1.0.5

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.
@@ -1,2 +1,2 @@
1
- import{resolve as e}from"node:path";import"node:fs";const t={claude:{id:`claude`,name:`Claude Code`,rootDir:`.claude/commands`,fileExtension:`.md`,supportsFrontmatter:!0,commandSeparator:`:`,commandPrefix:`/`},codex:{id:`codex`,name:`Codex`,rootDir:`.codex/commands`,fileExtension:`.md`,supportsFrontmatter:!0,commandSeparator:`-`,commandPrefix:`/`},cursor:{id:`cursor`,name:`Cursor`,rootDir:`.cursor/commands`,fileExtension:`.md`,supportsFrontmatter:!1,commandSeparator:`-`,commandPrefix:`/`},antigravity:{id:`antigravity`,name:`Antigravity`,rootDir:`.agents`,fileExtension:`.md`,supportsFrontmatter:!0,commandSeparator:`-`,commandPrefix:`/`},copilot:{id:`copilot`,name:`GitHub Copilot`,rootDir:`.github/prompts`,fileExtension:`.prompt.md`,supportsFrontmatter:!0,commandSeparator:`-`,commandPrefix:`#`}},n=[`claude`,`codex`,`cursor`,`antigravity`,`copilot`];function r(e){let t=e.split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean);if(t.length===0)return[...n];let r=[];for(let e of t){if(!o(e))throw Error(`不支持的工具标识: ${e}。可选值: ${n.join(`, `)}`);r.includes(e)||r.push(e)}return r}function i(e){return(e&&e.length>0?e:n).map(e=>({...t[e]}))}function a(t,n){let r=e(n,t.rootDir),i=t.fileExtension;if(t.commandSeparator===`:`){let t=e(r,`ac`);return{commandFile:n=>e(t,`${n}${i}`)}}return{commandFile:t=>e(r,`ac-${t}${i}`)}}function o(e){return Object.hasOwn(t,e)}export{r as parseToolIds,i as resolveToolTargets,a as resolveWorkflowPaths};
1
+ import{resolve as e}from"node:path";import{existsSync as t}from"node:fs";const n={claude:{id:`claude`,name:`Claude Code`,rootDir:`.claude/commands`,fileExtension:`.md`,supportsFrontmatter:!0,commandSeparator:`:`,commandPrefix:`/`},codex:{id:`codex`,name:`Codex`,rootDir:`.codex/commands`,fileExtension:`.md`,supportsFrontmatter:!0,commandSeparator:`-`,commandPrefix:`/`},cursor:{id:`cursor`,name:`Cursor`,rootDir:`.cursor/commands`,fileExtension:`.md`,supportsFrontmatter:!1,commandSeparator:`-`,commandPrefix:`/`},antigravity:{id:`antigravity`,name:`Antigravity`,rootDir:`.agents`,fileExtension:`.md`,supportsFrontmatter:!0,commandSeparator:`-`,commandPrefix:`/`},copilot:{id:`copilot`,name:`GitHub Copilot`,rootDir:`.github/prompts`,fileExtension:`.prompt.md`,supportsFrontmatter:!0,commandSeparator:`-`,commandPrefix:`#`}},r=[`claude`,`codex`,`cursor`,`antigravity`,`copilot`],i=[`init`,`plan`,`replan`,`implement`,`patch`,`done`];function a(){return r.map(e=>({id:e,name:n[e].name}))}function o(e){let t=e.split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean);if(t.length===0)return[...r];let n=[];for(let e of t){if(!u(e))throw Error(`不支持的工具标识: ${e}。可选值: ${r.join(`, `)}`);n.includes(e)||n.push(e)}return n}function s(e){return(e&&e.length>0?e:r).map(e=>({...n[e]}))}function c(e){return r.filter(r=>{let a=n[r],o=l(a,e);return i.some(e=>t(o.commandFile(e)))})}function l(t,n){let r=e(n,t.rootDir),i=t.fileExtension;if(t.commandSeparator===`:`){let t=e(r,`ac`);return{commandFile:n=>e(t,`${n}${i}`)}}return{commandFile:t=>e(r,`ac-${t}${i}`)}}function u(e){return Object.hasOwn(n,e)}export{r as DEFAULT_TOOL_ORDER,c as detectConfiguredToolIds,a as getToolChoices,o as parseToolIds,s as resolveToolTargets,l as resolveWorkflowPaths};
2
2
  //# sourceMappingURL=tool-targets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-targets.js","names":[],"sources":["../../src/adapters/tool-targets.ts"],"sourcesContent":["import { resolve } from 'node:path'\nimport { existsSync } from 'node:fs'\n\nimport type { ToolId, ToolTarget, WorkflowCommandName } from '../domain/types'\n\nconst TOOL_TARGET_MAP: Record<ToolId, ToolTarget> = {\n claude: {\n id: 'claude',\n name: 'Claude Code',\n rootDir: '.claude/commands',\n fileExtension: '.md',\n supportsFrontmatter: true,\n commandSeparator: ':',\n commandPrefix: '/'\n },\n codex: {\n id: 'codex',\n name: 'Codex',\n rootDir: '.codex/commands',\n fileExtension: '.md',\n supportsFrontmatter: true,\n commandSeparator: '-',\n commandPrefix: '/'\n },\n cursor: {\n id: 'cursor',\n name: 'Cursor',\n rootDir: '.cursor/commands',\n fileExtension: '.md',\n supportsFrontmatter: false,\n commandSeparator: '-',\n commandPrefix: '/'\n },\n antigravity: {\n id: 'antigravity',\n name: 'Antigravity',\n rootDir: '.agents',\n fileExtension: '.md',\n supportsFrontmatter: true,\n commandSeparator: '-',\n commandPrefix: '/'\n },\n copilot: {\n id: 'copilot',\n name: 'GitHub Copilot',\n rootDir: '.github/prompts',\n fileExtension: '.prompt.md',\n supportsFrontmatter: true,\n commandSeparator: '-',\n commandPrefix: '#'\n }\n}\n\nexport const DEFAULT_TOOL_ORDER: ToolId[] = [\n 'claude',\n 'codex',\n 'cursor',\n 'antigravity',\n 'copilot'\n]\n\nconst WORKFLOW_COMMAND_ORDER: WorkflowCommandName[] = [\n 'init',\n 'plan',\n 'replan',\n 'implement',\n 'patch',\n 'done'\n]\n\nexport interface ToolChoice {\n id: ToolId\n name: string\n}\n\nexport function getToolChoices(): ToolChoice[] {\n return DEFAULT_TOOL_ORDER.map(id => ({\n id,\n name: TOOL_TARGET_MAP[id].name\n }))\n}\n\nexport function parseToolIds(toolsText: string): ToolId[] {\n const parsed = toolsText\n .split(',')\n .map(item => item.trim().toLowerCase())\n .filter(Boolean)\n\n if (parsed.length === 0) {\n return [...DEFAULT_TOOL_ORDER]\n }\n\n const uniqueIds: ToolId[] = []\n\n for (const value of parsed) {\n if (!isToolId(value)) {\n throw new Error(\n `不支持的工具标识: ${value}。可选值: ${DEFAULT_TOOL_ORDER.join(', ')}`\n )\n }\n\n if (!uniqueIds.includes(value)) {\n uniqueIds.push(value)\n }\n }\n\n return uniqueIds\n}\n\nexport function resolveToolTargets(tools?: ToolId[]): ToolTarget[] {\n const selected = tools && tools.length > 0 ? tools : DEFAULT_TOOL_ORDER\n return selected.map(id => ({ ...TOOL_TARGET_MAP[id] }))\n}\n\nexport function detectConfiguredToolIds(cwd: string): ToolId[] {\n return DEFAULT_TOOL_ORDER.filter((toolId) => {\n const target = TOOL_TARGET_MAP[toolId]\n const workflowPaths = resolveWorkflowPaths(target, cwd)\n\n return WORKFLOW_COMMAND_ORDER.some(command =>\n existsSync(workflowPaths.commandFile(command))\n )\n })\n}\n\n// ── 工作流路径解析 ────────────────────────────────────\n\nexport interface WorkflowPaths {\n commandFile(name: WorkflowCommandName): string\n}\n\n/**\n * 根据工具约束计算工作流文件输出路径\n *\n * - separator=':' (Claude) → 嵌套: .claude/commands/ac/init.md → /ac:init\n * - separator='-' (其他) → 扁平: .cursor/commands/ac-init.md → /ac-init\n */\nexport function resolveWorkflowPaths(target: ToolTarget, cwd: string): WorkflowPaths {\n const root = resolve(cwd, target.rootDir)\n const ext = target.fileExtension\n const nested = target.commandSeparator === ':'\n\n if (nested) {\n const nsDir = resolve(root, 'ac')\n return {\n commandFile: name => resolve(nsDir, `${name}${ext}`)\n }\n }\n\n return {\n commandFile: name => resolve(root, `ac-${name}${ext}`)\n }\n}\n\nfunction isToolId(value: string): value is ToolId {\n return Object.hasOwn(TOOL_TARGET_MAP, value)\n}\n"],"mappings":"oDAKA,MAAM,EAA8C,CAClD,OAAQ,CACN,GAAI,SACJ,KAAM,cACN,QAAS,mBACT,cAAe,MACf,oBAAqB,GACrB,iBAAkB,IAClB,cAAe,IAChB,CACD,MAAO,CACL,GAAI,QACJ,KAAM,QACN,QAAS,kBACT,cAAe,MACf,oBAAqB,GACrB,iBAAkB,IAClB,cAAe,IAChB,CACD,OAAQ,CACN,GAAI,SACJ,KAAM,SACN,QAAS,mBACT,cAAe,MACf,oBAAqB,GACrB,iBAAkB,IAClB,cAAe,IAChB,CACD,YAAa,CACX,GAAI,cACJ,KAAM,cACN,QAAS,UACT,cAAe,MACf,oBAAqB,GACrB,iBAAkB,IAClB,cAAe,IAChB,CACD,QAAS,CACP,GAAI,UACJ,KAAM,iBACN,QAAS,kBACT,cAAe,aACf,oBAAqB,GACrB,iBAAkB,IAClB,cAAe,IAChB,CACF,CAEY,EAA+B,CAC1C,SACA,QACA,SACA,cACA,UACD,CAuBD,SAAgB,EAAa,EAA6B,CACxD,IAAM,EAAS,EACZ,MAAM,IAAI,CACV,IAAI,GAAQ,EAAK,MAAM,CAAC,aAAa,CAAC,CACtC,OAAO,QAAQ,CAElB,GAAI,EAAO,SAAW,EACpB,MAAO,CAAC,GAAG,EAAmB,CAGhC,IAAM,EAAsB,EAAE,CAE9B,IAAK,IAAM,KAAS,EAAQ,CAC1B,GAAI,CAAC,EAAS,EAAM,CAClB,MAAU,MACR,aAAa,EAAM,QAAQ,EAAmB,KAAK,KAAK,GACzD,CAGE,EAAU,SAAS,EAAM,EAC5B,EAAU,KAAK,EAAM,CAIzB,OAAO,EAGT,SAAgB,EAAmB,EAAgC,CAEjE,OADiB,GAAS,EAAM,OAAS,EAAI,EAAQ,GACrC,IAAI,IAAO,CAAE,GAAG,EAAgB,GAAK,EAAE,CA0BzD,SAAgB,EAAqB,EAAoB,EAA4B,CACnF,IAAM,EAAO,EAAQ,EAAK,EAAO,QAAQ,CACnC,EAAM,EAAO,cAGnB,GAFe,EAAO,mBAAqB,IAE/B,CACV,IAAM,EAAQ,EAAQ,EAAM,KAAK,CACjC,MAAO,CACL,YAAa,GAAQ,EAAQ,EAAO,GAAG,IAAO,IAAM,CACrD,CAGH,MAAO,CACL,YAAa,GAAQ,EAAQ,EAAM,MAAM,IAAO,IAAM,CACvD,CAGH,SAAS,EAAS,EAAgC,CAChD,OAAO,OAAO,OAAO,EAAiB,EAAM"}
1
+ {"version":3,"file":"tool-targets.js","names":[],"sources":["../../src/adapters/tool-targets.ts"],"sourcesContent":["import { resolve } from 'node:path'\nimport { existsSync } from 'node:fs'\n\nimport type { ToolId, ToolTarget, WorkflowCommandName } from '../domain/types'\n\nconst TOOL_TARGET_MAP: Record<ToolId, ToolTarget> = {\n claude: {\n id: 'claude',\n name: 'Claude Code',\n rootDir: '.claude/commands',\n fileExtension: '.md',\n supportsFrontmatter: true,\n commandSeparator: ':',\n commandPrefix: '/'\n },\n codex: {\n id: 'codex',\n name: 'Codex',\n rootDir: '.codex/commands',\n fileExtension: '.md',\n supportsFrontmatter: true,\n commandSeparator: '-',\n commandPrefix: '/'\n },\n cursor: {\n id: 'cursor',\n name: 'Cursor',\n rootDir: '.cursor/commands',\n fileExtension: '.md',\n supportsFrontmatter: false,\n commandSeparator: '-',\n commandPrefix: '/'\n },\n antigravity: {\n id: 'antigravity',\n name: 'Antigravity',\n rootDir: '.agents',\n fileExtension: '.md',\n supportsFrontmatter: true,\n commandSeparator: '-',\n commandPrefix: '/'\n },\n copilot: {\n id: 'copilot',\n name: 'GitHub Copilot',\n rootDir: '.github/prompts',\n fileExtension: '.prompt.md',\n supportsFrontmatter: true,\n commandSeparator: '-',\n commandPrefix: '#'\n }\n}\n\nexport const DEFAULT_TOOL_ORDER: ToolId[] = [\n 'claude',\n 'codex',\n 'cursor',\n 'antigravity',\n 'copilot'\n]\n\nconst WORKFLOW_COMMAND_ORDER: WorkflowCommandName[] = [\n 'init',\n 'plan',\n 'replan',\n 'implement',\n 'patch',\n 'done'\n]\n\nexport interface ToolChoice {\n id: ToolId\n name: string\n}\n\nexport function getToolChoices(): ToolChoice[] {\n return DEFAULT_TOOL_ORDER.map(id => ({\n id,\n name: TOOL_TARGET_MAP[id].name\n }))\n}\n\nexport function parseToolIds(toolsText: string): ToolId[] {\n const parsed = toolsText\n .split(',')\n .map(item => item.trim().toLowerCase())\n .filter(Boolean)\n\n if (parsed.length === 0) {\n return [...DEFAULT_TOOL_ORDER]\n }\n\n const uniqueIds: ToolId[] = []\n\n for (const value of parsed) {\n if (!isToolId(value)) {\n throw new Error(\n `不支持的工具标识: ${value}。可选值: ${DEFAULT_TOOL_ORDER.join(', ')}`\n )\n }\n\n if (!uniqueIds.includes(value)) {\n uniqueIds.push(value)\n }\n }\n\n return uniqueIds\n}\n\nexport function resolveToolTargets(tools?: ToolId[]): ToolTarget[] {\n const selected = tools && tools.length > 0 ? tools : DEFAULT_TOOL_ORDER\n return selected.map(id => ({ ...TOOL_TARGET_MAP[id] }))\n}\n\nexport function detectConfiguredToolIds(cwd: string): ToolId[] {\n return DEFAULT_TOOL_ORDER.filter((toolId) => {\n const target = TOOL_TARGET_MAP[toolId]\n const workflowPaths = resolveWorkflowPaths(target, cwd)\n\n return WORKFLOW_COMMAND_ORDER.some(command =>\n existsSync(workflowPaths.commandFile(command))\n )\n })\n}\n\n// ── 工作流路径解析 ────────────────────────────────────\n\nexport interface WorkflowPaths {\n commandFile(name: WorkflowCommandName): string\n}\n\n/**\n * 根据工具约束计算工作流文件输出路径\n *\n * - separator=':' (Claude) → 嵌套: .claude/commands/ac/init.md → /ac:init\n * - separator='-' (其他) → 扁平: .cursor/commands/ac-init.md → /ac-init\n */\nexport function resolveWorkflowPaths(target: ToolTarget, cwd: string): WorkflowPaths {\n const root = resolve(cwd, target.rootDir)\n const ext = target.fileExtension\n const nested = target.commandSeparator === ':'\n\n if (nested) {\n const nsDir = resolve(root, 'ac')\n return {\n commandFile: name => resolve(nsDir, `${name}${ext}`)\n }\n }\n\n return {\n commandFile: name => resolve(root, `ac-${name}${ext}`)\n }\n}\n\nfunction isToolId(value: string): value is ToolId {\n return Object.hasOwn(TOOL_TARGET_MAP, value)\n}\n"],"mappings":"yEAKA,MAAM,EAA8C,CAClD,OAAQ,CACN,GAAI,SACJ,KAAM,cACN,QAAS,mBACT,cAAe,MACf,oBAAqB,GACrB,iBAAkB,IAClB,cAAe,IAChB,CACD,MAAO,CACL,GAAI,QACJ,KAAM,QACN,QAAS,kBACT,cAAe,MACf,oBAAqB,GACrB,iBAAkB,IAClB,cAAe,IAChB,CACD,OAAQ,CACN,GAAI,SACJ,KAAM,SACN,QAAS,mBACT,cAAe,MACf,oBAAqB,GACrB,iBAAkB,IAClB,cAAe,IAChB,CACD,YAAa,CACX,GAAI,cACJ,KAAM,cACN,QAAS,UACT,cAAe,MACf,oBAAqB,GACrB,iBAAkB,IAClB,cAAe,IAChB,CACD,QAAS,CACP,GAAI,UACJ,KAAM,iBACN,QAAS,kBACT,cAAe,aACf,oBAAqB,GACrB,iBAAkB,IAClB,cAAe,IAChB,CACF,CAEY,EAA+B,CAC1C,SACA,QACA,SACA,cACA,UACD,CAEK,EAAgD,CACpD,OACA,OACA,SACA,YACA,QACA,OACD,CAOD,SAAgB,GAA+B,CAC7C,OAAO,EAAmB,IAAI,IAAO,CACnC,KACA,KAAM,EAAgB,GAAI,KAC3B,EAAE,CAGL,SAAgB,EAAa,EAA6B,CACxD,IAAM,EAAS,EACZ,MAAM,IAAI,CACV,IAAI,GAAQ,EAAK,MAAM,CAAC,aAAa,CAAC,CACtC,OAAO,QAAQ,CAElB,GAAI,EAAO,SAAW,EACpB,MAAO,CAAC,GAAG,EAAmB,CAGhC,IAAM,EAAsB,EAAE,CAE9B,IAAK,IAAM,KAAS,EAAQ,CAC1B,GAAI,CAAC,EAAS,EAAM,CAClB,MAAU,MACR,aAAa,EAAM,QAAQ,EAAmB,KAAK,KAAK,GACzD,CAGE,EAAU,SAAS,EAAM,EAC5B,EAAU,KAAK,EAAM,CAIzB,OAAO,EAGT,SAAgB,EAAmB,EAAgC,CAEjE,OADiB,GAAS,EAAM,OAAS,EAAI,EAAQ,GACrC,IAAI,IAAO,CAAE,GAAG,EAAgB,GAAK,EAAE,CAGzD,SAAgB,EAAwB,EAAuB,CAC7D,OAAO,EAAmB,OAAQ,GAAW,CAC3C,IAAM,EAAS,EAAgB,GACzB,EAAgB,EAAqB,EAAQ,EAAI,CAEvD,OAAO,EAAuB,KAAK,GACjC,EAAW,EAAc,YAAY,EAAQ,CAAC,CAC/C,EACD,CAeJ,SAAgB,EAAqB,EAAoB,EAA4B,CACnF,IAAM,EAAO,EAAQ,EAAK,EAAO,QAAQ,CACnC,EAAM,EAAO,cAGnB,GAFe,EAAO,mBAAqB,IAE/B,CACV,IAAM,EAAQ,EAAQ,EAAM,KAAK,CACjC,MAAO,CACL,YAAa,GAAQ,EAAQ,EAAO,GAAG,IAAO,IAAM,CACrD,CAGH,MAAO,CACL,YAAa,GAAQ,EAAQ,EAAM,MAAM,IAAO,IAAM,CACvD,CAGH,SAAS,EAAS,EAAgC,CAChD,OAAO,OAAO,OAAO,EAAiB,EAAM"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1 @@
1
+ export { };
package/dist/cli.js ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import{setupCommand as e}from"./commands/setup.js";import{updateCommand as t}from"./commands/update.js";import{Command as n}from"commander";const r=new n;r.name(`agent-context`).description(`Agent Context 工作流生成工具`).version(`2.0.0`),r.command(`setup`).description(`初始化工作流命令`).option(`--tools <tools>`,`指定目标工具,逗号分隔:claude,codex,cursor,antigravity,copilot`).option(`--yes`,`非交互模式预留参数(当前版本无需确认)`).option(`--check`,`仅检查是否存在待更新内容,不写入文件`).action(e),r.command(`update`).description(`更新工作流命令`).option(`--tools <tools>`,`指定目标工具,逗号分隔:claude,codex,cursor,antigravity,copilot`).option(`--yes`,`非交互模式预留参数(当前版本无需确认)`).option(`--check`,`仅检查是否存在待更新内容,不写入文件`).action(t),r.parseAsync().catch(e=>{let t=e instanceof Error?e.message:String(e);console.error(`\n❌ ${t}`),process.exitCode=1});export{};
3
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","names":[],"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { Command } from 'commander'\n\nimport { setupCommand } from './commands/setup'\nimport { updateCommand } from './commands/update'\n\nconst program = new Command()\n\nprogram.name('agent-context').description('Agent Context 工作流生成工具').version('2.0.0')\n\nprogram\n .command('setup')\n .description('初始化工作流命令')\n .option('--tools <tools>', '指定目标工具,逗号分隔:claude,codex,cursor,antigravity,copilot')\n .option('--yes', '非交互模式预留参数(当前版本无需确认)')\n .option('--check', '仅检查是否存在待更新内容,不写入文件')\n .action(setupCommand)\n\nprogram\n .command('update')\n .description('更新工作流命令')\n .option('--tools <tools>', '指定目标工具,逗号分隔:claude,codex,cursor,antigravity,copilot')\n .option('--yes', '非交互模式预留参数(当前版本无需确认)')\n .option('--check', '仅检查是否存在待更新内容,不写入文件')\n .action(updateCommand)\n\nprogram.parseAsync().catch((error: unknown) => {\n const message = error instanceof Error ? error.message : String(error)\n console.error(`\\n❌ ${message}`) // eslint-disable-line no-console\n process.exitCode = 1\n})\n"],"mappings":";4IAOA,MAAM,EAAU,IAAI,EAEpB,EAAQ,KAAK,gBAAgB,CAAC,YAAY,wBAAwB,CAAC,QAAQ,QAAQ,CAEnF,EACG,QAAQ,QAAQ,CAChB,YAAY,WAAW,CACvB,OAAO,kBAAmB,sDAAsD,CAChF,OAAO,QAAS,sBAAsB,CACtC,OAAO,UAAW,qBAAqB,CACvC,OAAO,EAAa,CAEvB,EACG,QAAQ,SAAS,CACjB,YAAY,UAAU,CACtB,OAAO,kBAAmB,sDAAsD,CAChF,OAAO,QAAS,sBAAsB,CACtC,OAAO,UAAW,qBAAqB,CACvC,OAAO,EAAc,CAExB,EAAQ,YAAY,CAAC,MAAO,GAAmB,CAC7C,IAAM,EAAU,aAAiB,MAAQ,EAAM,QAAU,OAAO,EAAM,CACtE,QAAQ,MAAM,OAAO,IAAU,CAC/B,QAAQ,SAAW,GACnB"}
@@ -0,0 +1,2 @@
1
+ import{DEFAULT_TOOL_ORDER as e,detectConfiguredToolIds as t,getToolChoices as n,parseToolIds as r}from"../adapters/tool-targets.js";import{runSetup as i}from"../runtime/execute.js";import{printCheckResult as a,printRunSummary as o}from"./shared.js";import{checkbox as s}from"@inquirer/prompts";async function c(e={}){let t=process.cwd(),n=await l(t,e),r=e.check??!1,s=await i({cwd:t,tools:n,check:r});if(r){a(s,t),s.changed.length>0&&(process.exitCode=1);return}o(s,t)}async function l(i,a){let o=a.tools;if(!o||o.trim().length===0){let r=t(i);return a.yes?r.length>0?r:[...e]:await s({message:`请选择要生成工作流命令的工具(可多选):`,choices:n().map(e=>({name:e.name,value:e.id,checked:r.includes(e.id)})),required:!0})}return r(o)}export{c as setupCommand};
2
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","names":[],"sources":["../../src/commands/setup.ts"],"sourcesContent":["import { checkbox } from '@inquirer/prompts'\n\nimport {\n DEFAULT_TOOL_ORDER,\n detectConfiguredToolIds,\n getToolChoices,\n parseToolIds\n} from '../adapters/tool-targets'\nimport type { ToolId } from '../domain/types'\nimport { runSetup } from '../runtime/execute'\nimport { printCheckResult, printRunSummary } from './shared'\n\nexport interface SetupCommandOptions {\n tools?: string\n check?: boolean\n yes?: boolean\n}\n\nexport async function setupCommand(options: SetupCommandOptions = {}): Promise<void> {\n const cwd = process.cwd()\n const tools = await resolveTools(cwd, options)\n const check = options.check ?? false\n\n const result = await runSetup({ cwd, tools, check })\n\n if (check) {\n printCheckResult(result, cwd)\n if (result.changed.length > 0) {\n process.exitCode = 1\n }\n return\n }\n\n printRunSummary(result, cwd)\n}\n\nasync function resolveTools(cwd: string, options: SetupCommandOptions): Promise<ToolId[] | undefined> {\n const raw = options.tools\n\n if (!raw || raw.trim().length === 0) {\n const configuredTools = detectConfiguredToolIds(cwd)\n\n if (options.yes) {\n if (configuredTools.length > 0) {\n return configuredTools\n }\n return [...DEFAULT_TOOL_ORDER]\n }\n\n const selectedTools = await checkbox<ToolId>({\n message: '请选择要生成工作流命令的工具(可多选):',\n choices: getToolChoices().map((tool) => ({\n name: tool.name,\n value: tool.id,\n checked: configuredTools.includes(tool.id)\n })),\n required: true\n })\n\n return selectedTools\n }\n\n return parseToolIds(raw)\n}\n"],"mappings":"sSAkBA,eAAsB,EAAa,EAA+B,EAAE,CAAiB,CACnF,IAAM,EAAM,QAAQ,KAAK,CACnB,EAAQ,MAAM,EAAa,EAAK,EAAQ,CACxC,EAAQ,EAAQ,OAAS,GAEzB,EAAS,MAAM,EAAS,CAAE,MAAK,QAAO,QAAO,CAAC,CAEpD,GAAI,EAAO,CACT,EAAiB,EAAQ,EAAI,CACzB,EAAO,QAAQ,OAAS,IAC1B,QAAQ,SAAW,GAErB,OAGF,EAAgB,EAAQ,EAAI,CAG9B,eAAe,EAAa,EAAa,EAA6D,CACpG,IAAM,EAAM,EAAQ,MAEpB,GAAI,CAAC,GAAO,EAAI,MAAM,CAAC,SAAW,EAAG,CACnC,IAAM,EAAkB,EAAwB,EAAI,CAmBpD,OAjBI,EAAQ,IACN,EAAgB,OAAS,EACpB,EAEF,CAAC,GAAG,EAAmB,CAGV,MAAM,EAAiB,CAC3C,QAAS,uBACT,QAAS,GAAgB,CAAC,IAAK,IAAU,CACvC,KAAM,EAAK,KACX,MAAO,EAAK,GACZ,QAAS,EAAgB,SAAS,EAAK,GAAG,CAC3C,EAAE,CACH,SAAU,GACX,CAAC,CAKJ,OAAO,EAAa,EAAI"}
@@ -0,0 +1,4 @@
1
+ import{relative as e}from"node:path";function t(t,n){let r=t.mode===`setup`?`setup`:`update`;if(console.log(`\n✅ agent-context ${r} 完成`),t.created.length>0){console.log(`\n新增 ${t.created.length} 个文件:`);for(let r of t.created)console.log(`- ${e(n,r)}`)}if(t.updated.length>0){console.log(`\n更新 ${t.updated.length} 个文件:`);for(let r of t.updated)console.log(`- ${e(n,r)}`)}t.unchanged.length>0&&console.log(`\n无变更 ${t.unchanged.length} 个文件`)}function n(t,n){if(t.changed.length===0){console.log(`
2
+ ✅ 检查通过:无需更新`);return}console.log(`
3
+ ❌ 检查失败:以下文件需要更新`);for(let r of t.changed)console.log(`- ${e(n,r)}`)}export{n as printCheckResult,t as printRunSummary};
4
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","names":[],"sources":["../../src/commands/shared.ts"],"sourcesContent":["import { relative } from 'node:path'\n\nimport type { RunResult } from '../domain/types'\n\nexport function printRunSummary(result: RunResult, cwd: string): void {\n const modeTitle = result.mode === 'setup' ? 'setup' : 'update'\n console.log(`\\n✅ agent-context ${modeTitle} 完成`) // eslint-disable-line no-console\n\n if (result.created.length > 0) {\n console.log(`\\n新增 ${result.created.length} 个文件:`) // eslint-disable-line no-console\n for (const filePath of result.created) {\n console.log(`- ${relative(cwd, filePath)}`) // eslint-disable-line no-console\n }\n }\n\n if (result.updated.length > 0) {\n console.log(`\\n更新 ${result.updated.length} 个文件:`) // eslint-disable-line no-console\n for (const filePath of result.updated) {\n console.log(`- ${relative(cwd, filePath)}`) // eslint-disable-line no-console\n }\n }\n\n if (result.unchanged.length > 0) {\n console.log(`\\n无变更 ${result.unchanged.length} 个文件`) // eslint-disable-line no-console\n }\n}\n\nexport function printCheckResult(result: RunResult, cwd: string): void {\n if (result.changed.length === 0) {\n console.log('\\n✅ 检查通过:无需更新') // eslint-disable-line no-console\n return\n }\n\n console.log('\\n❌ 检查失败:以下文件需要更新') // eslint-disable-line no-console\n for (const filePath of result.changed) {\n console.log(`- ${relative(cwd, filePath)}`) // eslint-disable-line no-console\n }\n}\n"],"mappings":"qCAIA,SAAgB,EAAgB,EAAmB,EAAmB,CACpE,IAAM,EAAY,EAAO,OAAS,QAAU,QAAU,SAGtD,GAFA,QAAQ,IAAI,qBAAqB,EAAU,KAAK,CAE5C,EAAO,QAAQ,OAAS,EAAG,CAC7B,QAAQ,IAAI,QAAQ,EAAO,QAAQ,OAAO,OAAO,CACjD,IAAK,IAAM,KAAY,EAAO,QAC5B,QAAQ,IAAI,KAAK,EAAS,EAAK,EAAS,GAAG,CAI/C,GAAI,EAAO,QAAQ,OAAS,EAAG,CAC7B,QAAQ,IAAI,QAAQ,EAAO,QAAQ,OAAO,OAAO,CACjD,IAAK,IAAM,KAAY,EAAO,QAC5B,QAAQ,IAAI,KAAK,EAAS,EAAK,EAAS,GAAG,CAI3C,EAAO,UAAU,OAAS,GAC5B,QAAQ,IAAI,SAAS,EAAO,UAAU,OAAO,MAAM,CAIvD,SAAgB,EAAiB,EAAmB,EAAmB,CACrE,GAAI,EAAO,QAAQ,SAAW,EAAG,CAC/B,QAAQ,IAAI;aAAgB,CAC5B,OAGF,QAAQ,IAAI;iBAAoB,CAChC,IAAK,IAAM,KAAY,EAAO,QAC5B,QAAQ,IAAI,KAAK,EAAS,EAAK,EAAS,GAAG"}
@@ -0,0 +1,2 @@
1
+ import{detectConfiguredToolIds as e,parseToolIds as t}from"../adapters/tool-targets.js";import{runUpdate as n}from"../runtime/execute.js";import{printCheckResult as r,printRunSummary as i}from"./shared.js";async function a(e={}){let t=process.cwd(),a=o(t,e.tools),s=e.check??!1,c=await n({cwd:t,tools:a,check:s});if(s){r(c,t),c.changed.length>0&&(process.exitCode=1);return}i(c,t)}function o(n,r){if(!r||r.trim().length===0){let t=e(n);if(t.length===0)throw Error(`未检测到已 setup 的工具,请先执行 setup 或通过 --tools 显式指定工具`);return t}return t(r)}export{a as updateCommand};
2
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","names":[],"sources":["../../src/commands/update.ts"],"sourcesContent":["import { detectConfiguredToolIds, parseToolIds } from '../adapters/tool-targets'\nimport type { ToolId } from '../domain/types'\nimport { runUpdate } from '../runtime/execute'\nimport { printCheckResult, printRunSummary } from './shared'\n\nexport interface UpdateCommandOptions {\n tools?: string\n check?: boolean\n yes?: boolean\n}\n\nexport async function updateCommand(options: UpdateCommandOptions = {}): Promise<void> {\n const cwd = process.cwd()\n const tools = resolveTools(cwd, options.tools)\n const check = options.check ?? false\n\n const result = await runUpdate({\n cwd,\n tools,\n check\n })\n\n if (check) {\n printCheckResult(result, cwd)\n if (result.changed.length > 0) {\n process.exitCode = 1\n }\n return\n }\n\n printRunSummary(result, cwd)\n}\n\nfunction resolveTools(cwd: string, raw?: string): ToolId[] | undefined {\n if (!raw || raw.trim().length === 0) {\n const configuredTools = detectConfiguredToolIds(cwd)\n\n if (configuredTools.length === 0) {\n throw new Error('未检测到已 setup 的工具,请先执行 setup 或通过 --tools 显式指定工具')\n }\n\n return configuredTools\n }\n\n return parseToolIds(raw)\n}\n"],"mappings":"8MAWA,eAAsB,EAAc,EAAgC,EAAE,CAAiB,CACrF,IAAM,EAAM,QAAQ,KAAK,CACnB,EAAQ,EAAa,EAAK,EAAQ,MAAM,CACxC,EAAQ,EAAQ,OAAS,GAEzB,EAAS,MAAM,EAAU,CAC7B,MACA,QACA,QACD,CAAC,CAEF,GAAI,EAAO,CACT,EAAiB,EAAQ,EAAI,CACzB,EAAO,QAAQ,OAAS,IAC1B,QAAQ,SAAW,GAErB,OAGF,EAAgB,EAAQ,EAAI,CAG9B,SAAS,EAAa,EAAa,EAAoC,CACrE,GAAI,CAAC,GAAO,EAAI,MAAM,CAAC,SAAW,EAAG,CACnC,IAAM,EAAkB,EAAwB,EAAI,CAEpD,GAAI,EAAgB,SAAW,EAC7B,MAAU,MAAM,gDAAgD,CAGlE,OAAO,EAGT,OAAO,EAAa,EAAI"}
package/dist/stats.html CHANGED
@@ -4930,7 +4930,7 @@ var drawChart = (function (exports) {
4930
4930
  </script>
4931
4931
  <script>
4932
4932
  /*<!--*/
4933
- const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.d.ts","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/index.d.ts","uid":"ad83e1e8-1"}]},{"name":"index.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/index.ts","uid":"ad83e1e8-3"}]},{"name":"adapters/tool-targets.d.ts","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/adapters/tool-targets.d.ts","uid":"ad83e1e8-5"}]},{"name":"adapters/tool-targets.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/adapters/tool-targets.ts","uid":"ad83e1e8-7"}]},{"name":"domain/types.d.ts","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/types.d.ts","uid":"ad83e1e8-9"}]},{"name":"domain/workflow-content.d.ts","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-content.d.ts","uid":"ad83e1e8-11"}]},{"name":"domain/workflow-content.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-content.ts","uid":"ad83e1e8-13"}]},{"name":"domain/workflow-context.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-context.ts","uid":"ad83e1e8-15"}]},{"name":"domain/workflow-templates/done.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/done.ts","uid":"ad83e1e8-17"}]},{"name":"domain/workflow-templates/implement.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/implement.ts","uid":"ad83e1e8-19"}]},{"name":"domain/workflow-templates/init.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/init.ts","uid":"ad83e1e8-21"}]},{"name":"domain/workflow-templates/patch.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/patch.ts","uid":"ad83e1e8-23"}]},{"name":"domain/workflow-templates/plan.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/plan.ts","uid":"ad83e1e8-25"}]},{"name":"domain/workflow-templates/replan.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/replan.ts","uid":"ad83e1e8-27"}]},{"name":"generators/workflow.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/generators/workflow.ts","uid":"ad83e1e8-29"}]},{"name":"runtime/execute.d.ts","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/runtime/execute.d.ts","uid":"ad83e1e8-31"}]},{"name":"runtime/execute.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/runtime/execute.ts","uid":"ad83e1e8-33"}]},{"name":"shared/fs.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/shared/fs.ts","uid":"ad83e1e8-35"}]}],"isRoot":true},"nodeParts":{"ad83e1e8-1":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-0"},"ad83e1e8-3":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-2"},"ad83e1e8-5":{"renderedLength":378,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-4"},"ad83e1e8-7":{"renderedLength":2332,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-6"},"ad83e1e8-9":{"renderedLength":552,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-8"},"ad83e1e8-11":{"renderedLength":159,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-10"},"ad83e1e8-13":{"renderedLength":340,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-12"},"ad83e1e8-15":{"renderedLength":926,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-14"},"ad83e1e8-17":{"renderedLength":1638,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-16"},"ad83e1e8-19":{"renderedLength":2036,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-18"},"ad83e1e8-21":{"renderedLength":2170,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-20"},"ad83e1e8-23":{"renderedLength":1811,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-22"},"ad83e1e8-25":{"renderedLength":2476,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-24"},"ad83e1e8-27":{"renderedLength":1720,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-26"},"ad83e1e8-29":{"renderedLength":468,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-28"},"ad83e1e8-31":{"renderedLength":257,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-30"},"ad83e1e8-33":{"renderedLength":750,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-32"},"ad83e1e8-35":{"renderedLength":1128,"gzipLength":0,"brotliLength":0,"metaUid":"ad83e1e8-34"}},"nodeMetas":{"ad83e1e8-0":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/index.d.ts","moduleParts":{"index.d.ts":"ad83e1e8-1"},"imported":[{"uid":"ad83e1e8-4"},{"uid":"ad83e1e8-10"},{"uid":"ad83e1e8-30"},{"uid":"ad83e1e8-8"}],"importedBy":[],"isEntry":true},"ad83e1e8-2":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/index.ts","moduleParts":{"index.js":"ad83e1e8-3"},"imported":[{"uid":"ad83e1e8-6"},{"uid":"ad83e1e8-12"},{"uid":"ad83e1e8-32"}],"importedBy":[],"isEntry":true},"ad83e1e8-4":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/adapters/tool-targets.d.ts","moduleParts":{"adapters/tool-targets.d.ts":"ad83e1e8-5"},"imported":[{"uid":"ad83e1e8-8"}],"importedBy":[{"uid":"ad83e1e8-0"}]},"ad83e1e8-6":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/adapters/tool-targets.ts","moduleParts":{"adapters/tool-targets.js":"ad83e1e8-7"},"imported":[{"uid":"ad83e1e8-36"},{"uid":"ad83e1e8-37"}],"importedBy":[{"uid":"ad83e1e8-2"},{"uid":"ad83e1e8-32"},{"uid":"ad83e1e8-28"}]},"ad83e1e8-8":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/types.d.ts","moduleParts":{"domain/types.d.ts":"ad83e1e8-9"},"imported":[],"importedBy":[{"uid":"ad83e1e8-0"},{"uid":"ad83e1e8-4"},{"uid":"ad83e1e8-10"},{"uid":"ad83e1e8-30"}]},"ad83e1e8-10":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-content.d.ts","moduleParts":{"domain/workflow-content.d.ts":"ad83e1e8-11"},"imported":[{"uid":"ad83e1e8-8"}],"importedBy":[{"uid":"ad83e1e8-0"}]},"ad83e1e8-12":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-content.ts","moduleParts":{"domain/workflow-content.js":"ad83e1e8-13"},"imported":[{"uid":"ad83e1e8-38"}],"importedBy":[{"uid":"ad83e1e8-2"},{"uid":"ad83e1e8-28"}]},"ad83e1e8-14":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-context.ts","moduleParts":{"domain/workflow-context.js":"ad83e1e8-15"},"imported":[],"importedBy":[{"uid":"ad83e1e8-38"},{"uid":"ad83e1e8-20"},{"uid":"ad83e1e8-24"},{"uid":"ad83e1e8-26"},{"uid":"ad83e1e8-18"},{"uid":"ad83e1e8-22"},{"uid":"ad83e1e8-16"}]},"ad83e1e8-16":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/done.ts","moduleParts":{"domain/workflow-templates/done.js":"ad83e1e8-17"},"imported":[{"uid":"ad83e1e8-14"}],"importedBy":[{"uid":"ad83e1e8-38"}]},"ad83e1e8-18":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/implement.ts","moduleParts":{"domain/workflow-templates/implement.js":"ad83e1e8-19"},"imported":[{"uid":"ad83e1e8-14"}],"importedBy":[{"uid":"ad83e1e8-38"}]},"ad83e1e8-20":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/init.ts","moduleParts":{"domain/workflow-templates/init.js":"ad83e1e8-21"},"imported":[{"uid":"ad83e1e8-14"}],"importedBy":[{"uid":"ad83e1e8-38"}]},"ad83e1e8-22":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/patch.ts","moduleParts":{"domain/workflow-templates/patch.js":"ad83e1e8-23"},"imported":[{"uid":"ad83e1e8-14"}],"importedBy":[{"uid":"ad83e1e8-38"}]},"ad83e1e8-24":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/plan.ts","moduleParts":{"domain/workflow-templates/plan.js":"ad83e1e8-25"},"imported":[{"uid":"ad83e1e8-14"}],"importedBy":[{"uid":"ad83e1e8-38"}]},"ad83e1e8-26":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/replan.ts","moduleParts":{"domain/workflow-templates/replan.js":"ad83e1e8-27"},"imported":[{"uid":"ad83e1e8-14"}],"importedBy":[{"uid":"ad83e1e8-38"}]},"ad83e1e8-28":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/generators/workflow.ts","moduleParts":{"generators/workflow.js":"ad83e1e8-29"},"imported":[{"uid":"ad83e1e8-6"},{"uid":"ad83e1e8-12"}],"importedBy":[{"uid":"ad83e1e8-32"}]},"ad83e1e8-30":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/runtime/execute.d.ts","moduleParts":{"runtime/execute.d.ts":"ad83e1e8-31"},"imported":[{"uid":"ad83e1e8-8"}],"importedBy":[{"uid":"ad83e1e8-0"}]},"ad83e1e8-32":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/runtime/execute.ts","moduleParts":{"runtime/execute.js":"ad83e1e8-33"},"imported":[{"uid":"ad83e1e8-6"},{"uid":"ad83e1e8-28"},{"uid":"ad83e1e8-34"}],"importedBy":[{"uid":"ad83e1e8-2"}]},"ad83e1e8-34":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/shared/fs.ts","moduleParts":{"shared/fs.js":"ad83e1e8-35"},"imported":[{"uid":"ad83e1e8-36"},{"uid":"ad83e1e8-37"},{"uid":"ad83e1e8-39"}],"importedBy":[{"uid":"ad83e1e8-32"}]},"ad83e1e8-36":{"id":"node:path","moduleParts":{},"imported":[],"importedBy":[{"uid":"ad83e1e8-6"},{"uid":"ad83e1e8-34"}]},"ad83e1e8-37":{"id":"node:fs","moduleParts":{},"imported":[],"importedBy":[{"uid":"ad83e1e8-6"},{"uid":"ad83e1e8-34"}]},"ad83e1e8-38":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/index.ts","moduleParts":{},"imported":[{"uid":"ad83e1e8-14"},{"uid":"ad83e1e8-20"},{"uid":"ad83e1e8-24"},{"uid":"ad83e1e8-26"},{"uid":"ad83e1e8-18"},{"uid":"ad83e1e8-22"},{"uid":"ad83e1e8-16"}],"importedBy":[{"uid":"ad83e1e8-12"}]},"ad83e1e8-39":{"id":"node:fs/promises","moduleParts":{},"imported":[],"importedBy":[{"uid":"ad83e1e8-34"}]}},"env":{"rollup":"4.23.0"},"options":{"gzip":false,"brotli":false,"sourcemap":false}};
4933
+ const data = {"version":2,"tree":{"name":"root","children":[{"name":"cli.d.ts","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/cli.d.ts","uid":"892e0f80-1"}]},{"name":"cli.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/cli.ts","uid":"892e0f80-3"}]},{"name":"adapters/tool-targets.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/adapters/tool-targets.ts","uid":"892e0f80-5"}]},{"name":"commands/setup.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/commands/setup.ts","uid":"892e0f80-7"}]},{"name":"commands/shared.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/commands/shared.ts","uid":"892e0f80-9"}]},{"name":"commands/update.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/commands/update.ts","uid":"892e0f80-11"}]},{"name":"domain/workflow-content.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-content.ts","uid":"892e0f80-13"}]},{"name":"domain/workflow-context.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-context.ts","uid":"892e0f80-15"}]},{"name":"domain/workflow-templates/done.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/done.ts","uid":"892e0f80-17"}]},{"name":"domain/workflow-templates/implement.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/implement.ts","uid":"892e0f80-19"}]},{"name":"domain/workflow-templates/init.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/init.ts","uid":"892e0f80-21"}]},{"name":"domain/workflow-templates/patch.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/patch.ts","uid":"892e0f80-23"}]},{"name":"domain/workflow-templates/plan.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/plan.ts","uid":"892e0f80-25"}]},{"name":"domain/workflow-templates/replan.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/replan.ts","uid":"892e0f80-27"}]},{"name":"generators/workflow.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/generators/workflow.ts","uid":"892e0f80-29"}]},{"name":"runtime/execute.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/runtime/execute.ts","uid":"892e0f80-31"}]},{"name":"shared/fs.js","children":[{"name":"home/whj/codes/cat-kit/packages/agent-context/src/shared/fs.ts","uid":"892e0f80-33"}]}],"isRoot":true},"nodeParts":{"892e0f80-1":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"metaUid":"892e0f80-0"},"892e0f80-3":{"renderedLength":1029,"gzipLength":0,"brotliLength":0,"metaUid":"892e0f80-2"},"892e0f80-5":{"renderedLength":2841,"gzipLength":0,"brotliLength":0,"metaUid":"892e0f80-4"},"892e0f80-7":{"renderedLength":1002,"gzipLength":0,"brotliLength":0,"metaUid":"892e0f80-6"},"892e0f80-9":{"renderedLength":973,"gzipLength":0,"brotliLength":0,"metaUid":"892e0f80-8"},"892e0f80-11":{"renderedLength":752,"gzipLength":0,"brotliLength":0,"metaUid":"892e0f80-10"},"892e0f80-13":{"renderedLength":340,"gzipLength":0,"brotliLength":0,"metaUid":"892e0f80-12"},"892e0f80-15":{"renderedLength":926,"gzipLength":0,"brotliLength":0,"metaUid":"892e0f80-14"},"892e0f80-17":{"renderedLength":1638,"gzipLength":0,"brotliLength":0,"metaUid":"892e0f80-16"},"892e0f80-19":{"renderedLength":2036,"gzipLength":0,"brotliLength":0,"metaUid":"892e0f80-18"},"892e0f80-21":{"renderedLength":2170,"gzipLength":0,"brotliLength":0,"metaUid":"892e0f80-20"},"892e0f80-23":{"renderedLength":1811,"gzipLength":0,"brotliLength":0,"metaUid":"892e0f80-22"},"892e0f80-25":{"renderedLength":2476,"gzipLength":0,"brotliLength":0,"metaUid":"892e0f80-24"},"892e0f80-27":{"renderedLength":1720,"gzipLength":0,"brotliLength":0,"metaUid":"892e0f80-26"},"892e0f80-29":{"renderedLength":468,"gzipLength":0,"brotliLength":0,"metaUid":"892e0f80-28"},"892e0f80-31":{"renderedLength":750,"gzipLength":0,"brotliLength":0,"metaUid":"892e0f80-30"},"892e0f80-33":{"renderedLength":1128,"gzipLength":0,"brotliLength":0,"metaUid":"892e0f80-32"}},"nodeMetas":{"892e0f80-0":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/cli.d.ts","moduleParts":{"cli.d.ts":"892e0f80-1"},"imported":[],"importedBy":[],"isEntry":true},"892e0f80-2":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/cli.ts","moduleParts":{"cli.js":"892e0f80-3"},"imported":[{"uid":"892e0f80-34"},{"uid":"892e0f80-6"},{"uid":"892e0f80-10"}],"importedBy":[],"isEntry":true},"892e0f80-4":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/adapters/tool-targets.ts","moduleParts":{"adapters/tool-targets.js":"892e0f80-5"},"imported":[{"uid":"892e0f80-36"},{"uid":"892e0f80-37"}],"importedBy":[{"uid":"892e0f80-6"},{"uid":"892e0f80-10"},{"uid":"892e0f80-30"},{"uid":"892e0f80-28"}]},"892e0f80-6":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/commands/setup.ts","moduleParts":{"commands/setup.js":"892e0f80-7"},"imported":[{"uid":"892e0f80-35"},{"uid":"892e0f80-4"},{"uid":"892e0f80-30"},{"uid":"892e0f80-8"}],"importedBy":[{"uid":"892e0f80-2"}]},"892e0f80-8":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/commands/shared.ts","moduleParts":{"commands/shared.js":"892e0f80-9"},"imported":[{"uid":"892e0f80-36"}],"importedBy":[{"uid":"892e0f80-6"},{"uid":"892e0f80-10"}]},"892e0f80-10":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/commands/update.ts","moduleParts":{"commands/update.js":"892e0f80-11"},"imported":[{"uid":"892e0f80-4"},{"uid":"892e0f80-30"},{"uid":"892e0f80-8"}],"importedBy":[{"uid":"892e0f80-2"}]},"892e0f80-12":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-content.ts","moduleParts":{"domain/workflow-content.js":"892e0f80-13"},"imported":[{"uid":"892e0f80-39"}],"importedBy":[{"uid":"892e0f80-28"}]},"892e0f80-14":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-context.ts","moduleParts":{"domain/workflow-context.js":"892e0f80-15"},"imported":[],"importedBy":[{"uid":"892e0f80-39"},{"uid":"892e0f80-20"},{"uid":"892e0f80-24"},{"uid":"892e0f80-26"},{"uid":"892e0f80-18"},{"uid":"892e0f80-22"},{"uid":"892e0f80-16"}]},"892e0f80-16":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/done.ts","moduleParts":{"domain/workflow-templates/done.js":"892e0f80-17"},"imported":[{"uid":"892e0f80-14"}],"importedBy":[{"uid":"892e0f80-39"}]},"892e0f80-18":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/implement.ts","moduleParts":{"domain/workflow-templates/implement.js":"892e0f80-19"},"imported":[{"uid":"892e0f80-14"}],"importedBy":[{"uid":"892e0f80-39"}]},"892e0f80-20":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/init.ts","moduleParts":{"domain/workflow-templates/init.js":"892e0f80-21"},"imported":[{"uid":"892e0f80-14"}],"importedBy":[{"uid":"892e0f80-39"}]},"892e0f80-22":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/patch.ts","moduleParts":{"domain/workflow-templates/patch.js":"892e0f80-23"},"imported":[{"uid":"892e0f80-14"}],"importedBy":[{"uid":"892e0f80-39"}]},"892e0f80-24":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/plan.ts","moduleParts":{"domain/workflow-templates/plan.js":"892e0f80-25"},"imported":[{"uid":"892e0f80-14"}],"importedBy":[{"uid":"892e0f80-39"}]},"892e0f80-26":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/replan.ts","moduleParts":{"domain/workflow-templates/replan.js":"892e0f80-27"},"imported":[{"uid":"892e0f80-14"}],"importedBy":[{"uid":"892e0f80-39"}]},"892e0f80-28":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/generators/workflow.ts","moduleParts":{"generators/workflow.js":"892e0f80-29"},"imported":[{"uid":"892e0f80-4"},{"uid":"892e0f80-12"}],"importedBy":[{"uid":"892e0f80-30"}]},"892e0f80-30":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/runtime/execute.ts","moduleParts":{"runtime/execute.js":"892e0f80-31"},"imported":[{"uid":"892e0f80-4"},{"uid":"892e0f80-28"},{"uid":"892e0f80-32"}],"importedBy":[{"uid":"892e0f80-6"},{"uid":"892e0f80-10"}]},"892e0f80-32":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/shared/fs.ts","moduleParts":{"shared/fs.js":"892e0f80-33"},"imported":[{"uid":"892e0f80-36"},{"uid":"892e0f80-37"},{"uid":"892e0f80-38"}],"importedBy":[{"uid":"892e0f80-30"}]},"892e0f80-34":{"id":"commander","moduleParts":{},"imported":[],"importedBy":[{"uid":"892e0f80-2"}]},"892e0f80-35":{"id":"@inquirer/prompts","moduleParts":{},"imported":[],"importedBy":[{"uid":"892e0f80-6"}]},"892e0f80-36":{"id":"node:path","moduleParts":{},"imported":[],"importedBy":[{"uid":"892e0f80-4"},{"uid":"892e0f80-8"},{"uid":"892e0f80-32"}]},"892e0f80-37":{"id":"node:fs","moduleParts":{},"imported":[],"importedBy":[{"uid":"892e0f80-4"},{"uid":"892e0f80-32"}]},"892e0f80-38":{"id":"node:fs/promises","moduleParts":{},"imported":[],"importedBy":[{"uid":"892e0f80-32"}]},"892e0f80-39":{"id":"/home/whj/codes/cat-kit/packages/agent-context/src/domain/workflow-templates/index.ts","moduleParts":{},"imported":[{"uid":"892e0f80-14"},{"uid":"892e0f80-20"},{"uid":"892e0f80-24"},{"uid":"892e0f80-26"},{"uid":"892e0f80-18"},{"uid":"892e0f80-22"},{"uid":"892e0f80-16"}],"importedBy":[{"uid":"892e0f80-12"}]}},"env":{"rollup":"4.23.0"},"options":{"gzip":false,"brotli":false,"sourcemap":false}};
4934
4934
 
4935
4935
  const run = () => {
4936
4936
  const width = window.innerWidth;
package/package.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "name": "@cat-kit/agent-context",
3
- "type": "module",
4
- "version": "1.0.4",
3
+ "version": "1.0.5",
5
4
  "description": "代理上下文管理工具",
6
5
  "bin": {
7
6
  "agent-context": "./dist/cli.js"
@@ -11,13 +10,7 @@
11
10
  "src",
12
11
  "README.md"
13
12
  ],
14
- "exports": {
15
- ".": {
16
- "import": "./dist/index.js",
17
- "types": "./dist/index.d.ts"
18
- },
19
- "./src": "./src/index.ts"
20
- },
13
+ "type": "module",
21
14
  "scripts": {
22
15
  "build": "tsc -p tsconfig.json",
23
16
  "clean": "rm -rf dist"
package/src/cli.ts CHANGED
@@ -11,7 +11,7 @@ program.name('agent-context').description('Agent Context 工作流生成工具')
11
11
 
12
12
  program
13
13
  .command('setup')
14
- .description('初始化工作流命令与 AGENTS 受管区块')
14
+ .description('初始化工作流命令')
15
15
  .option('--tools <tools>', '指定目标工具,逗号分隔:claude,codex,cursor,antigravity,copilot')
16
16
  .option('--yes', '非交互模式预留参数(当前版本无需确认)')
17
17
  .option('--check', '仅检查是否存在待更新内容,不写入文件')
@@ -19,7 +19,7 @@ program
19
19
 
20
20
  program
21
21
  .command('update')
22
- .description('更新工作流命令与 AGENTS 受管区块')
22
+ .description('更新工作流命令')
23
23
  .option('--tools <tools>', '指定目标工具,逗号分隔:claude,codex,cursor,antigravity,copilot')
24
24
  .option('--yes', '非交互模式预留参数(当前版本无需确认)')
25
25
  .option('--check', '仅检查是否存在待更新内容,不写入文件')
@@ -1,18 +0,0 @@
1
- import { ToolId, ToolTarget, WorkflowCommandName } from "../domain/types.js";
2
-
3
- //#region src/adapters/tool-targets.d.ts
4
- declare function parseToolIds(toolsText: string): ToolId[];
5
- declare function resolveToolTargets(tools?: ToolId[]): ToolTarget[];
6
- interface WorkflowPaths {
7
- commandFile(name: WorkflowCommandName): string;
8
- }
9
- /**
10
- * 根据工具约束计算工作流文件输出路径
11
- *
12
- * - separator=':' (Claude) → 嵌套: .claude/commands/ac/init.md → /ac:init
13
- * - separator='-' (其他) → 扁平: .cursor/commands/ac-init.md → /ac-init
14
- */
15
- declare function resolveWorkflowPaths(target: ToolTarget, cwd: string): WorkflowPaths;
16
- //#endregion
17
- export { parseToolIds, resolveToolTargets, resolveWorkflowPaths };
18
- //# sourceMappingURL=tool-targets.d.ts.map
@@ -1,37 +0,0 @@
1
- //#region src/domain/types.d.ts
2
- type ToolId = 'claude' | 'codex' | 'cursor' | 'antigravity' | 'copilot';
3
- interface ToolTarget {
4
- id: ToolId;
5
- name: string;
6
- rootDir: string;
7
- /** 工作流文件扩展名:'.md' | '.prompt.md'(Copilot) */
8
- fileExtension: string;
9
- /** 是否支持 YAML frontmatter(Cursor 不支持) */
10
- supportsFrontmatter: boolean;
11
- /** 命令分隔符:':'(Claude 嵌套目录 ac/init.md → /ac:init)或 '-'(扁平 ac-init.md) */
12
- commandSeparator: string;
13
- /** 命令调用前缀:'/'(Claude/Cursor)或 '#'(Copilot) */
14
- commandPrefix: string;
15
- }
16
- type WorkflowCommandName = 'init' | 'plan' | 'replan' | 'implement' | 'patch' | 'done';
17
- interface WorkflowArtifacts {
18
- commandFiles: Record<WorkflowCommandName, string>;
19
- }
20
- interface ApplyMutationResult {
21
- created: string[];
22
- updated: string[];
23
- unchanged: string[];
24
- changed: string[];
25
- }
26
- interface RunOptions {
27
- cwd?: string;
28
- tools?: ToolId[];
29
- check?: boolean;
30
- }
31
- interface RunResult extends ApplyMutationResult {
32
- mode: 'setup' | 'update';
33
- check: boolean;
34
- }
35
- //#endregion
36
- export { RunOptions, RunResult, ToolId, ToolTarget, WorkflowArtifacts, WorkflowCommandName };
37
- //# sourceMappingURL=types.d.ts.map
@@ -1,7 +0,0 @@
1
- import { ToolTarget, WorkflowArtifacts } from "./types.js";
2
-
3
- //#region src/domain/workflow-content.d.ts
4
- declare function renderWorkflowArtifacts(target: ToolTarget): WorkflowArtifacts;
5
- //#endregion
6
- export { renderWorkflowArtifacts };
7
- //# sourceMappingURL=workflow-content.d.ts.map
package/dist/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- import { RunOptions, RunResult, ToolId, ToolTarget, WorkflowArtifacts, WorkflowCommandName } from "./domain/types.js";
2
- import { parseToolIds, resolveToolTargets, resolveWorkflowPaths } from "./adapters/tool-targets.js";
3
- import { renderWorkflowArtifacts } from "./domain/workflow-content.js";
4
- import { runSetup, runUpdate } from "./runtime/execute.js";
5
- export { type RunOptions, type RunResult, type ToolId, type ToolTarget, type WorkflowArtifacts, type WorkflowCommandName, parseToolIds, renderWorkflowArtifacts, resolveToolTargets, resolveWorkflowPaths, runSetup, runUpdate };
package/dist/index.js DELETED
@@ -1 +0,0 @@
1
- import{parseToolIds as e,resolveToolTargets as t,resolveWorkflowPaths as n}from"./adapters/tool-targets.js";import{renderWorkflowArtifacts as r}from"./domain/workflow-content.js";import{runSetup as i,runUpdate as a}from"./runtime/execute.js";export{e as parseToolIds,r as renderWorkflowArtifacts,t as resolveToolTargets,n as resolveWorkflowPaths,i as runSetup,a as runUpdate};
@@ -1,8 +0,0 @@
1
- import { RunOptions, RunResult } from "../domain/types.js";
2
-
3
- //#region src/runtime/execute.d.ts
4
- declare function runSetup(options?: RunOptions): Promise<RunResult>;
5
- declare function runUpdate(options?: RunOptions): Promise<RunResult>;
6
- //#endregion
7
- export { runSetup, runUpdate };
8
- //# sourceMappingURL=execute.d.ts.map
package/src/index.ts DELETED
@@ -1,11 +0,0 @@
1
- export { resolveToolTargets, parseToolIds, resolveWorkflowPaths } from './adapters/tool-targets'
2
- export { renderWorkflowArtifacts } from './domain/workflow-content'
3
- export { runSetup, runUpdate } from './runtime/execute'
4
- export type {
5
- ToolId,
6
- ToolTarget,
7
- RunOptions,
8
- RunResult,
9
- WorkflowArtifacts,
10
- WorkflowCommandName
11
- } from './domain/types.js'