cdspec 0.1.3 → 0.1.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.
- package/README.md +40 -66
- package/dist/cli.js +1 -1
- package/dist/config/default.js +1 -1
- package/dist/config/loader.js +1 -1
- package/dist/config/path.js +1 -1
- package/dist/skill-core/adapters/claudecode-adapter.js +1 -1
- package/dist/skill-core/adapters/codex-adapter.js +1 -1
- package/dist/skill-core/adapters/iflow-adapter.js +1 -1
- package/dist/skill-core/adapters/index.js +1 -1
- package/dist/skill-core/adapters/shared.js +1 -1
- package/dist/skill-core/manifest-loader.js +1 -1
- package/dist/skill-core/scaffold.js +1 -1
- package/dist/skill-core/service.js +1 -1
- package/dist/skill-core/tool-interactions.js +1 -1
- package/dist/skill-core/validator.js +1 -1
- package/dist/utils/frontmatter.js +1 -1
- package/dist/utils/fs.js +1 -1
- package/package.json +3 -3
- package/cdspec.config.yaml +0 -34
package/README.md
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
# CDSpec
|
|
1
|
+
# CDSpec
|
|
2
2
|
|
|
3
|
-
`cdspec`
|
|
3
|
+
`cdspec` 是一个用于规范项目开发、提高开发效率的 Skill 初始化 CLI。
|
|
4
|
+
它会把项目内 `templates/` 的技能模板一键安装到不同编程智能体(Codex / ClaudeCode / iFlow)可识别的目录,并自动生成对应命令文件。
|
|
4
5
|
|
|
5
6
|
## 功能
|
|
6
7
|
|
|
7
|
-
-
|
|
8
|
-
- 自动为每个 skill
|
|
9
|
-
-
|
|
10
|
-
-
|
|
8
|
+
- 基于 `templates/` 一键生成并安装 skills
|
|
9
|
+
- 自动为每个 skill 生成可调用命令(`cd-<skill-name>`)
|
|
10
|
+
- 支持选择生成路径:默认路径(用户目录)或当前项目路径
|
|
11
|
+
- 支持目标智能体:`codex`、`claudecode`、`iflow`
|
|
11
12
|
|
|
12
13
|
## 安装
|
|
13
14
|
|
|
14
|
-
全局安装(已发布到 npm):
|
|
15
|
-
|
|
16
15
|
```bash
|
|
17
16
|
npm i -g cdspec
|
|
18
17
|
```
|
|
@@ -23,17 +22,28 @@ npm i -g cdspec
|
|
|
23
22
|
cdspec --help
|
|
24
23
|
```
|
|
25
24
|
|
|
26
|
-
|
|
25
|
+
## 使用
|
|
26
|
+
|
|
27
|
+
执行初始化(交互选择智能体 + 路径模式):
|
|
27
28
|
|
|
28
29
|
```bash
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
cdspec init
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
非交互方式:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
cdspec init --agents codex,claudecode,iflow --path-mode default
|
|
32
37
|
```
|
|
33
38
|
|
|
34
|
-
|
|
39
|
+
可选参数:
|
|
35
40
|
|
|
36
|
-
|
|
41
|
+
- `--agents <agents>`: `codex|claudecode|iflow`,支持逗号分隔
|
|
42
|
+
- `--path-mode <mode>`: `default|project`
|
|
43
|
+
|
|
44
|
+
## 模板约定
|
|
45
|
+
|
|
46
|
+
在项目根目录准备 `templates/`,每个技能一个目录,且至少包含 `SKILL.md`。
|
|
37
47
|
|
|
38
48
|
示例:
|
|
39
49
|
|
|
@@ -43,66 +53,30 @@ templates/
|
|
|
43
53
|
SKILL.md
|
|
44
54
|
agents/openai.yaml
|
|
45
55
|
references/*
|
|
46
|
-
frontend-
|
|
56
|
+
frontend-standard/
|
|
57
|
+
SKILL.md
|
|
58
|
+
backend-standard/
|
|
47
59
|
SKILL.md
|
|
48
60
|
```
|
|
49
61
|
|
|
50
|
-
执行初始化:
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
cdspec init
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
或指定智能体:
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
cdspec init --agents codex,claudecode,iflow
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
## 生成规则(当前版本)
|
|
63
|
-
|
|
64
|
-
1. `templates/*` 下每个 skill 目录会被安装到目标智能体的 `skills/`。
|
|
65
|
-
2. 每个 skill 自动生成一个命令文件,命令名规则为:
|
|
66
|
-
`cd-<skill-name>`
|
|
67
|
-
3. `init` 默认覆盖旧文件(不需要 `--force`)。
|
|
68
|
-
|
|
69
|
-
示例:
|
|
70
|
-
|
|
71
|
-
- skill: `frontend-develop-standard`
|
|
72
|
-
- 命令文件:`cd-frontend-develop-standard.md`
|
|
73
|
-
|
|
74
62
|
## 输出目录
|
|
75
63
|
|
|
76
|
-
|
|
64
|
+
`--path-mode default`(默认,用户目录):
|
|
77
65
|
|
|
78
66
|
- Codex: `~/.codex/skills/*` 和 `~/.codex/prompts/*`
|
|
79
|
-
- ClaudeCode:
|
|
80
|
-
- iFlow:
|
|
81
|
-
|
|
82
|
-
附加说明文件:
|
|
67
|
+
- ClaudeCode: `~/.claude/skills/*` 和 `~/.claude/commands/opsx/*`
|
|
68
|
+
- iFlow: `~/.iflow/skills/*` 和 `~/.iflow/commands/*`
|
|
83
69
|
|
|
84
|
-
-
|
|
85
|
-
- 项目根 `AGENTS.md`
|
|
86
|
-
- 项目根 `CLAUDE.md`(当启用 claudecode)
|
|
87
|
-
- `.iflow/IFLOW.md`(当启用 iflow)
|
|
70
|
+
`--path-mode project`(当前项目目录):
|
|
88
71
|
|
|
89
|
-
|
|
72
|
+
- Codex: `./.codex/skills/*` 和 `./.codex/prompts/*`
|
|
73
|
+
- ClaudeCode: `./.claude/skills/*` 和 `./.claude/commands/opsx/*`
|
|
74
|
+
- iFlow: `./.iflow/skills/*` 和 `./.iflow/commands/*`
|
|
90
75
|
|
|
91
|
-
|
|
76
|
+
## 开发
|
|
92
77
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
## 常见问题
|
|
100
|
-
|
|
101
|
-
1. `init` 后看不到新命令
|
|
102
|
-
重启 Codex 会话;部分客户端启动时才扫描 prompt 列表。
|
|
103
|
-
|
|
104
|
-
2. 命令重复(Team/个人各一份)
|
|
105
|
-
这是不同来源同时存在,清理个人或团队同名 skill 即可。
|
|
106
|
-
|
|
107
|
-
3. 发布 npm 报 401/404
|
|
108
|
-
先 `npm login`,再检查包名与权限后发布。
|
|
78
|
+
```bash
|
|
79
|
+
npm install
|
|
80
|
+
npm run build
|
|
81
|
+
npm run dev
|
|
82
|
+
```
|
package/dist/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const
|
|
2
|
+
const _0x841b17=_0x1077;(function(_0x2e70e1,_0x1d7965){const _0x46472a=_0x1077,_0x1730ff=_0x2e70e1();while(!![]){try{const _0xfee2df=-parseInt(_0x46472a(0x1d9))/(-0x1ec*0x1+-0x1*-0x1ff9+0x783*-0x4)+parseInt(_0x46472a(0x1c5))/(0x54f+-0x994+0x447)*(-parseInt(_0x46472a(0x1d2))/(-0x17*0x79+-0x2e*0x8b+-0x1cb*-0x14))+-parseInt(_0x46472a(0x1c7))/(0x861+-0x1*0x137d+0x1*0xb20)*(-parseInt(_0x46472a(0x1e8))/(-0x13c9+0x43*-0x7c+0x3442))+-parseInt(_0x46472a(0x1ce))/(0x1de1+0x3b*-0x7d+-0x10c)*(-parseInt(_0x46472a(0x1ea))/(-0x26be*-0x1+-0x1a9a+-0xc1d))+-parseInt(_0x46472a(0x1c8))/(0x41*-0x2d+-0x1*0x20ad+0x2c22)+-parseInt(_0x46472a(0x1db))/(0x1*0x1636+-0x1d07*0x1+0x6da)*(parseInt(_0x46472a(0x1ba))/(0x1*-0x2487+-0x1*0xfc5+0x3456))+parseInt(_0x46472a(0x1dd))/(-0x169*-0x3+0x14a5+-0x18d5);if(_0xfee2df===_0x1d7965)break;else _0x1730ff['push'](_0x1730ff['shift']());}catch(_0x4b7979){_0x1730ff['push'](_0x1730ff['shift']());}}}(_0x23e5,-0x6*0x12d8b+-0x2212c+-0x2a5c9*-0x5));function _0x1077(_0x9d0223,_0x2dfca1){_0x9d0223=_0x9d0223-(-0x25a0+0x2055+0x5*0x167);const _0x46e8b5=_0x23e5();let _0x4a05ad=_0x46e8b5[_0x9d0223];return _0x4a05ad;}import _0x5339ae from'@inquirer/checkbox';import _0x311401 from'@inquirer/select';import{Command}from'commander';import _0x59cab6 from'node:path';import _0x557c1c from'node:process';import{initSkills}from'./skill-core/service.js';const program=new Command();program[_0x841b17(0x1df)](_0x841b17(0x1d4))['description'](_0x841b17(0x1dc))[_0x841b17(0x1e4)](_0x841b17(0x1c1)),program['command'](_0x841b17(0x1e0))['description'](_0x841b17(0x1bf))[_0x841b17(0x1da)](_0x841b17(0x1c9),_0x841b17(0x1c6))[_0x841b17(0x1da)](_0x841b17(0x1cb),_0x841b17(0x1b9))[_0x841b17(0x1e5)](async _0x4f2019=>{const _0x127ac6=_0x841b17,_0x484f82=_0x4f2019[_0x127ac6(0x1e2)]??await askAgentsSelection(),_0x157fc3=normalizePathMode(_0x4f2019[_0x127ac6(0x1be)])??await askPathModeSelection(),_0x5f7cab=await initSkills(_0x557c1c[_0x127ac6(0x1c4)](),_0x484f82,!![],_0x157fc3);console[_0x127ac6(0x1d6)]('已完成初始化:'+_0x484f82),console[_0x127ac6(0x1d6)](_0x127ac6(0x1b8)+(_0x157fc3==='project'?'当前项目路径':_0x127ac6(0x1d5))),console[_0x127ac6(0x1d6)](_0x127ac6(0x1bb));for(const _0x1a46e3 of _0x5f7cab){console[_0x127ac6(0x1d6)](_0x59cab6[_0x127ac6(0x1e1)](_0x1a46e3));}}),program[_0x841b17(0x1cf)](_0x557c1c[_0x841b17(0x1cd)])['catch'](_0x505d48=>{const _0x101888=_0x841b17,_0x2134bc=_0x505d48 instanceof Error?_0x505d48[_0x101888(0x1bd)]:String(_0x505d48);console[_0x101888(0x1cc)](_0x2134bc),_0x557c1c[_0x101888(0x1eb)]=0x4*0x2c8+-0x24e2*0x1+0x19c3*0x1;});async function askAgentsSelection(){const _0x496c6b=_0x841b17;if(!_0x557c1c[_0x496c6b(0x1e7)][_0x496c6b(0x1d3)])return _0x496c6b(0x1c3);const _0x2dd262=await _0x5339ae({'message':_0x496c6b(0x1e6),'required':!![],'theme':{'icon':{'checked':'[✓]','unchecked':'[\x20]','cursor':'>'}},'choices':[{'name':_0x496c6b(0x1c3),'value':'codex','checked':!![]},{'name':'claudecode','value':'claudecode'},{'name':_0x496c6b(0x1e3),'value':_0x496c6b(0x1e3)}]});if(_0x2dd262['length']===0x12d7*-0x1+0x14fc+0x9*-0x3d)return _0x496c6b(0x1c3);return _0x2dd262[_0x496c6b(0x1d7)](',');}async function askPathModeSelection(){const _0x4fd82d=_0x841b17;if(!_0x557c1c[_0x4fd82d(0x1e7)]['isTTY'])return'default';return _0x311401({'message':_0x4fd82d(0x1de),'choices':[{'name':_0x4fd82d(0x1d5),'value':'default'},{'name':_0x4fd82d(0x1c0),'value':_0x4fd82d(0x1d1)}],'default':_0x4fd82d(0x1c2)});}function normalizePathMode(_0x2eec64){const _0x2936c2=_0x841b17;if(typeof _0x2eec64!==_0x2936c2(0x1ca))return undefined;const _0x190fdd=_0x2eec64[_0x2936c2(0x1e9)]()[_0x2936c2(0x1bc)]();if(_0x190fdd===_0x2936c2(0x1c2)||_0x190fdd===_0x2936c2(0x1d1))return _0x190fdd;throw new Error(_0x2936c2(0x1d8)+_0x2eec64+_0x2936c2(0x1d0));}function _0x23e5(){const _0x18b293=['action','请选择编程智能体','stdin','55fOIqvR','trim','686672buCHoC','exitCode','生成路径模式:','default|project','622780zLDjPF','已生成技能包:','toLowerCase','message','pathMode','为所选编程智能体初始化技能','当前项目路径','0.1.0','default','codex','cwd','4scEFhR','codex|claudecode|iflow|all\x20or\x20comma-separated','164692bEZCkE','2852992AkuoxI','--agents\x20<agents>','string','--path-mode\x20<mode>','error','argv','24QiMbmY','parseAsync',',可选值:\x20default\x20|\x20project','project','330363xKedtW','isTTY','cdspec','默认路径(按配置)','log','join','未知路径模式:\x20','286911ykcpAM','option','9qJMBLm','Skill\x20init\x20CLI','3801589NSUflp','请选择生成路径','name','init','resolve','agents','iflow','version'];_0x23e5=function(){return _0x18b293;};return _0x23e5();}
|
package/dist/config/default.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x4ac092=_0xdb95;function _0xe1a1(){const _0x49997b=['commands','{id}.md','IFLOW.md','Archive\x20completed\x20changes\x20and\x20update\x20baseline\x20specs.','/opsx:{id}','2711107eYjDdq','/opsx-{id}','~/.claude','68UURftD','233625EpCTqG','610827vcHEhY','opsx-{id}.md','1695eIQUgE','8000469yCrxYa','21342CCPidR','~/.iflow','8yBtkjV','openspec-core','.codex','3138286OOOnKp','archive','CLAUDE.md','764390YlbcbF','propose'];_0xe1a1=function(){return _0x49997b;};return _0xe1a1();}(function(_0x5d579d,_0x557ad4){const _0x19973d=_0xdb95,_0x36f088=_0x5d579d();while(!![]){try{const _0x1a7c03=-parseInt(_0x19973d(0xe1))/(0x1*0x1803+0x564+-0x1d66)+-parseInt(_0x19973d(0xea))/(0x708+-0x1709*0x1+0x1003)+-parseInt(_0x19973d(0xe0))/(-0xaa9+-0x190b+-0x29*-0xdf)*(-parseInt(_0x19973d(0xdf))/(0x25b5+-0x117a*0x1+0x73*-0x2d))+parseInt(_0x19973d(0xe3))/(-0x1ad*-0xd+-0x89*0x1+-0x153b)*(parseInt(_0x19973d(0xe5))/(-0x9*0x1cb+-0x135*0x11+0x24ae))+parseInt(_0x19973d(0xdc))/(-0x133*0x8+0xf39+0x1de*-0x3)*(-parseInt(_0x19973d(0xe7))/(0x1037*-0x1+0x6a6+0x15f*0x7))+parseInt(_0x19973d(0xe4))/(-0x1*0x120e+0x80*0x20+0x5*0x6b)+parseInt(_0x19973d(0xed))/(-0x1fda+0x2244+-0x260);if(_0x1a7c03===_0x557ad4)break;else _0x36f088['push'](_0x36f088['shift']());}catch(_0x53209a){_0x36f088['push'](_0x36f088['shift']());}}}(_0xe1a1,-0x19*0x37c9+0x3*-0x6d883+0x282469));function _0xdb95(_0x2612cf,_0x341d31){_0x2612cf=_0x2612cf-(-0xffc+0x13ba+-0xf7*0x3);const _0x40fc15=_0xe1a1();let _0x4f84a5=_0x40fc15[_0x2612cf];return _0x4f84a5;}export const defaultConfig={'commandBindings':[{'id':_0x4ac092(0xee),'skill':_0x4ac092(0xe8),'description':'Create\x20a\x20change\x20proposal\x20with\x20scope\x20and\x20impacted\x20specs.'},{'id':'explore','skill':'openspec-core','description':'Analyze\x20existing\x20specs\x20and\x20produce\x20planned\x20deltas.'},{'id':'apply','skill':_0x4ac092(0xe8),'description':'Implement\x20approved\x20tasks\x20and\x20keep\x20spec\x20updates\x20in\x20sync.'},{'id':_0x4ac092(0xeb),'skill':'openspec-core','description':_0x4ac092(0xda)}],'agents':{'codex':{'rootDir':_0x4ac092(0xe9),'commandsDir':'prompts','commandFilePattern':_0x4ac092(0xe2),'slashPattern':'/opsx-{id}','guideFile':'AGENTS.md'},'claudecode':{'rootDir':_0x4ac092(0xde),'commandsDir':'commands/opsx','commandFilePattern':_0x4ac092(0xf0),'slashPattern':_0x4ac092(0xdb),'guideFile':_0x4ac092(0xec),'guideAtProjectRoot':!![]},'iflow':{'rootDir':_0x4ac092(0xe6),'commandsDir':_0x4ac092(0xef),'commandFilePattern':'opsx-{id}.md','slashPattern':_0x4ac092(0xdd),'guideFile':_0x4ac092(0xd9)}}};
|
package/dist/config/loader.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
const _0x409c25=_0x2606;(function(_0x22f0ae,_0x5f1089){const _0x248e8d=_0x2606,_0x463ccf=_0x22f0ae();while(!![]){try{const _0x32c6b9=-parseInt(_0x248e8d(0x124))/(-0x5*-0x361+0x248b+-0x356f)+-parseInt(_0x248e8d(0x11a))/(-0x3a4*-0x1+0x1*-0x1563+0x5*0x38d)+-parseInt(_0x248e8d(0x128))/(0x2163+-0x19c4+0x79c*-0x1)+-parseInt(_0x248e8d(0x11f))/(0x1255+-0x2c7*0xe+-0x27*-0x87)*(-parseInt(_0x248e8d(0x120))/(-0x1147+0x155*-0x2+-0xa*-0x1ff))+-parseInt(_0x248e8d(0x11e))/(-0x39*-0x99+-0xe20+-0x13eb)+-parseInt(_0x248e8d(0x121))/(-0x12a7*0x2+-0x89*-0x7+0x2196)+parseInt(_0x248e8d(0x11c))/(-0x4*-0x752+-0x2058+0x318)*(parseInt(_0x248e8d(0x11d))/(-0x12f0+0x3f3*-0x3+0x5*0x62a));if(_0x32c6b9===_0x5f1089)break;else _0x463ccf['push'](_0x463ccf['shift']());}catch(_0xaa5713){_0x463ccf['push'](_0x463ccf['shift']());}}}(_0x102e,-0x60e3d+-0x1*-0x93d1+-0x58fd5*-0x3));function _0x2606(_0x620435,_0x2e8569){_0x620435=_0x620435-(0x1b25+0x216+-0x1c22*0x1);const _0x581be7=_0x102e();let _0x3222a2=_0x581be7[_0x620435];return _0x3222a2;}import _0xcecf0 from'node:path';import{readFile}from'node:fs/promises';import{parse}from'yaml';function _0x102e(){const _0x42fe55=['71570qdGnoe','3177972XvBEHW','commandBindings','length','994802mgmPFF','claudecode','iflow','cdspec.config.yaml','3060882ERUQcg','utf8','codex','join','1925556VrIUxZ','agents','21408bMsHBo','9783kqmrrw','785502XGKSsJ','388wQKchl'];_0x102e=function(){return _0x42fe55;};return _0x102e();}import{pathExists}from'../utils/fs.js';import{defaultConfig}from'./default.js';const CONFIG_FILE=_0x409c25(0x127);export async function loadConfig(_0x514fd4){const _0x205b3c=_0x409c25,_0x334751=_0xcecf0[_0x205b3c(0x119)](_0x514fd4,CONFIG_FILE);if(!await pathExists(_0x334751))return defaultConfig;const _0x537fcf=await readFile(_0x334751,_0x205b3c(0x129)),_0x25c8f8=parse(_0x537fcf);if(!_0x25c8f8)return defaultConfig;const _0x532865={'commandBindings':_0x25c8f8[_0x205b3c(0x122)]&&_0x25c8f8[_0x205b3c(0x122)][_0x205b3c(0x123)]>-0x9*0x422+-0x17e7+0x3d19?_0x25c8f8['commandBindings']:defaultConfig[_0x205b3c(0x122)],'agents':{'codex':{...defaultConfig[_0x205b3c(0x11b)][_0x205b3c(0x12a)],..._0x25c8f8[_0x205b3c(0x11b)]?.[_0x205b3c(0x12a)]||{}},'claudecode':{...defaultConfig[_0x205b3c(0x11b)][_0x205b3c(0x125)],..._0x25c8f8['agents']?.['claudecode']||{}},'iflow':{...defaultConfig[_0x205b3c(0x11b)][_0x205b3c(0x126)],..._0x25c8f8[_0x205b3c(0x11b)]?.[_0x205b3c(0x126)]||{}}}};return _0x532865;}
|
package/dist/config/path.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function _0x455e(_0x24cd23,_0x1e5031){_0x24cd23=_0x24cd23-(0x2a*0x67+-0x5*-0x4e7+-0x2814);var _0x1902d7=_0x5733();var _0x1fa8e3=_0x1902d7[_0x24cd23];return _0x1fa8e3;}(function(_0x46f3c2,_0xc1fdc){var _0x5418ff=_0x455e,_0x106c3e=_0x46f3c2();while(!![]){try{var _0x13beae=-parseInt(_0x5418ff(0x15b))/(-0x25a2+-0x10c1*-0x2+0x421)+parseInt(_0x5418ff(0x158))/(-0x24*0x6a+-0x869+0x1753)+-parseInt(_0x5418ff(0x162))/(0x1d*0x13a+-0x779+0x1*-0x1c16)*(-parseInt(_0x5418ff(0x15a))/(0xc57+-0x2*-0xdca+-0x1*0x27e7))+parseInt(_0x5418ff(0x156))/(0x2165+0x89*0x17+-0x2daf)*(parseInt(_0x5418ff(0x15c))/(-0x30*-0x96+0x21af*0x1+-0x3dc9))+parseInt(_0x5418ff(0x165))/(-0x551*0x2+0x1f5+0x8b4)*(parseInt(_0x5418ff(0x160))/(-0x1b5d+-0x1384+0x2ee9))+-parseInt(_0x5418ff(0x164))/(0x6c9+-0x627*-0x2+-0x130e)*(parseInt(_0x5418ff(0x161))/(-0x1f*-0x11b+0xa08+-0x2c43*0x1))+parseInt(_0x5418ff(0x15e))/(-0x11a*0x13+-0x2*-0xf63+-0x9cd);if(_0x13beae===_0xc1fdc)break;else _0x106c3e['push'](_0x106c3e['shift']());}catch(_0x50810e){_0x106c3e['push'](_0x106c3e['shift']());}}}(_0x5733,-0x86955+0x1195d1+0x50bc7));import _0x513d05 from'node:os';import _0x21e452 from'node:path';export function resolveAgentRoot(_0x37f641,_0x23977d){var _0x4d1b09=_0x455e;if(_0x23977d[_0x4d1b09(0x159)]('~/')||_0x23977d[_0x4d1b09(0x159)]('~\x5c'))return _0x21e452[_0x4d1b09(0x15d)](_0x513d05[_0x4d1b09(0x15f)](),_0x23977d[_0x4d1b09(0x157)](-0xd22+-0x1*0x251e+0x1921*0x2));if(_0x21e452['win32'][_0x4d1b09(0x163)](_0x23977d)||_0x21e452['posix'][_0x4d1b09(0x163)](_0x23977d))return _0x21e452[_0x4d1b09(0x155)](_0x23977d);return _0x21e452['join'](_0x37f641,_0x23977d);}function _0x5733(){var _0x25bd93=['2771310YAMdpe','9nOoQFx','isAbsolute','36OPThdP','63JcTudl','normalize','35NGSYqz','slice','618364LUbFkq','startsWith','1165460KSPVLv','813650QDGhPC','28092SHRJoz','join','6000423HXkLvJ','homedir','971144BQpdWk'];_0x5733=function(){return _0x25bd93;};return _0x5733();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const _0xb3c9f7=_0x3cfb;(function(_0x4b4527,_0x2a7c8c){const _0x3a7df7=_0x3cfb,_0x176a8b=_0x4b4527();while(!![]){try{const _0x2be807=parseInt(_0x3a7df7(0xbe))/(0x2397+0x12a1*0x1+-0x3637*0x1)*(parseInt(_0x3a7df7(0xb5))/(0x29*0x3b+-0xf46+0x5d5))+-parseInt(_0x3a7df7(0xc5))/(-0x1*-0x611+0xa67+-0x1*0x1075)+parseInt(_0x3a7df7(0xc4))/(-0x536+-0x86a*0x3+-0x258*-0xd)*(-parseInt(_0x3a7df7(0xb1))/(0x1*0x35e+0x270d*0x1+0x1b*-0x192))+parseInt(_0x3a7df7(0xb2))/(0x1*0x25a0+0x1e9d+-0x4437)+-parseInt(_0x3a7df7(0xb9))/(-0x1249+-0x15a*-0x1b+0x2*-0x917)*(parseInt(_0x3a7df7(0xb7))/(0x7e1+-0x1ab*-0x15+0xab8*-0x4))+-parseInt(_0x3a7df7(0xc1))/(0x1*-0x2414+-0x1f8e+0x43ab*0x1)*(parseInt(_0x3a7df7(0xbc))/(0xef8+-0x179b+0x8ad))+parseInt(_0x3a7df7(0xba))/(-0x1b34+0xcc0+0x3*0x4d5)*(parseInt(_0x3a7df7(0xb0))/(-0x238f*-0x1+0xf6a*0x2+-0x9*0x75f));if(_0x2be807===_0x2a7c8c)break;else _0x176a8b['push'](_0x176a8b['shift']());}catch(_0x211eb1){_0x176a8b['push'](_0x176a8b['shift']());}}}(_0x357e,0x1*-0x3b7c4+-0xd2e86+0x1b281f));import _0x19e5b4 from'node:path';import{emptyDir,pathExists}from'../../utils/fs.js';import{emitWithLayout}from'./shared.js';export class ClaudeCodeAdapter{[_0xb3c9f7(0xb4)]=_0xb3c9f7(0xc0);[_0xb3c9f7(0xb6)](_0x28f9fb){const _0x52efde=_0xb3c9f7,_0x2ac0d8=[];return!_0x28f9fb[_0x52efde(0xbf)]&&_0x2ac0d8['push']({'level':'error','message':_0x52efde(0xb3)}),_0x2ac0d8;}async['emit'](_0x397763,_0x5945e7,_0x5bdde8){const _0x2ecc4f=_0xb3c9f7;if(await pathExists(_0x5945e7)&&!_0x5bdde8)throw new Error(_0x2ecc4f(0xbd)+_0x397763['name']+_0x2ecc4f(0xae)+_0x5945e7+_0x2ecc4f(0xbb));_0x5bdde8&&await emptyDir(_0x5945e7);const _0x4c5b74={'name':_0x397763[_0x2ecc4f(0xbf)],'description':_0x397763[_0x2ecc4f(0xc3)],'entry':_0x2ecc4f(0xc2)};await emitWithLayout(_0x397763,_0x5945e7,!![],[{'relativePath':'claudecode.skill.json','content':JSON[_0x2ecc4f(0xaf)](_0x4c5b74,null,0xb5b+-0x345+-0x814)+'\x0a'}]);}}export function claudecodeSkillPath(_0x276a82,_0x5acd4d){const _0x5c3ec2=_0xb3c9f7;return _0x19e5b4[_0x5c3ec2(0xb8)](_0x276a82,_0x5c3ec2(0xc0),_0x5acd4d);}function _0x3cfb(_0x2e3863,_0x262ed9){_0x2e3863=_0x2e3863-(0x3*0x17b+0xa96*0x3+-0x2385);const _0x54c928=_0x357e();let _0x3d8c7a=_0x54c928[_0x2e3863];return _0x3d8c7a;}function _0x357e(){const _0x9f5e4e=['validate','1096MjgKbW','join','47418rBEoSr','4186589EwumEb','.\x20Use\x20--force\x20to\x20overwrite.','890UOFDIO','Target\x20already\x20exists\x20for\x20skill\x20\x22','1zcwDmN','name','claudecode','65601bPanri','SKILL.md','description','3796516TDDWgb','3925959HqJyHs','\x22\x20at\x20','stringify','108eRaHVi','5JYkaJE','4375596jnHjsa','[claudecode]\x20name\x20is\x20required.','target','704194DEWFxH'];_0x357e=function(){return _0x9f5e4e;};return _0x357e();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function _0x464c(_0x2161a6,_0x5f4e09){_0x2161a6=_0x2161a6-(-0x1b2a+-0x1fd*-0x5+0x123b);const _0x5013b5=_0x50cf();let _0x49cf69=_0x5013b5[_0x2161a6];return _0x49cf69;}const _0x584dd3=_0x464c;function _0x50cf(){const _0x214480=['codex','error','3206200CTivSi','Target\x20already\x20exists\x20for\x20skill\x20\x22','535929dqvJCm','95994rhZLpc','emit','4xpcyfm','name','target','320cgprQh','\x22\x20at\x20','description','77urQJws',':\x20description\x20is\x20required.','push','239418EZkYGB','2173378sZUXCx','462415dfwDMf','5484390cDvTmg'];_0x50cf=function(){return _0x214480;};return _0x50cf();}(function(_0x5169fb,_0x1a0f0a){const _0x49d6bf=_0x464c,_0x4716cd=_0x5169fb();while(!![]){try{const _0x46f068=-parseInt(_0x49d6bf(0x113))/(-0x49*-0x35+0xb59+0x1a75*-0x1)+parseInt(_0x49d6bf(0x112))/(0x43f*-0x7+-0x1484+0x323f)+parseInt(_0x49d6bf(0x105))/(0x1*-0x1660+-0x2071+0x36d4)*(-parseInt(_0x49d6bf(0x108))/(-0x713*0x5+-0x50b*0x3+0x1*0x3284))+parseInt(_0x49d6bf(0x114))/(0x1860+0x228a+-0x3ae5)+-parseInt(_0x49d6bf(0x106))/(0x172a+-0xa37+-0x44f*0x3)*(parseInt(_0x49d6bf(0x10e))/(-0x1802+0xebd+0x94c))+-parseInt(_0x49d6bf(0x10b))/(0x531+-0x224c+0x1d23)*(parseInt(_0x49d6bf(0x111))/(-0x147c+0x5*0x81+0x1200))+parseInt(_0x49d6bf(0x103))/(0xfd4+0x1*0x337+-0x2b7*0x7);if(_0x46f068===_0x1a0f0a)break;else _0x4716cd['push'](_0x4716cd['shift']());}catch(_0x3298b4){_0x4716cd['push'](_0x4716cd['shift']());}}}(_0x50cf,-0x57e4f+0x1*-0x11ee31+0x20ee54));import _0x14db7d from'node:path';import{emptyDir,pathExists}from'../../utils/fs.js';import{emitWithLayout}from'./shared.js';export class CodexAdapter{[_0x584dd3(0x10a)]=_0x584dd3(0x115);['validate'](_0x11fe2b){const _0x14c10a=_0x584dd3,_0x577205=[];return!_0x11fe2b[_0x14c10a(0x10d)]&&_0x577205[_0x14c10a(0x110)]({'level':_0x14c10a(0x102),'message':'[codex]\x20'+_0x11fe2b[_0x14c10a(0x109)]+_0x14c10a(0x10f)}),_0x577205;}async[_0x584dd3(0x107)](_0x5dda18,_0x4eb208,_0x40c942){const _0x5d8daf=_0x584dd3;if(await pathExists(_0x4eb208)&&!_0x40c942)throw new Error(_0x5d8daf(0x104)+_0x5dda18['name']+_0x5d8daf(0x10c)+_0x4eb208+'.\x20Use\x20--force\x20to\x20overwrite.');_0x40c942&&await emptyDir(_0x4eb208),await emitWithLayout(_0x5dda18,_0x4eb208,!![],[]);}}export function codexSkillPath(_0x14ffcd,_0x17ca71){return _0x14db7d['join'](_0x14ffcd,'codex',_0x17ca71);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x402e9e=_0x4863;(function(_0x21512c,_0x349d5b){const _0x427b35=_0x4863,_0x2e1146=_0x21512c();while(!![]){try{const _0x22f77c=parseInt(_0x427b35(0xf3))/(-0x1d63+-0x1*-0x11f2+0xb72)*(-parseInt(_0x427b35(0xf7))/(0x1747*-0x1+0x24cb*-0x1+0x3c14))+-parseInt(_0x427b35(0xe1))/(0x7*-0x23d+0x19fa+-0xa4c)*(-parseInt(_0x427b35(0xe3))/(0x1*-0x2f2+-0x5*-0x1f1+-0x6bf))+-parseInt(_0x427b35(0xe2))/(0x1c9a+-0xaeb*-0x3+-0x3d56)*(-parseInt(_0x427b35(0xec))/(0x683*0x1+-0x1*0x1b2f+0x14b2))+parseInt(_0x427b35(0xf8))/(0x3*0x8a5+-0xe5f+-0xb89)+parseInt(_0x427b35(0xf1))/(0x20b2+-0x177*0xe+-0xc28)+parseInt(_0x427b35(0xe5))/(-0x234e*0x1+-0xe7f+0x31d6)+-parseInt(_0x427b35(0xe9))/(-0x1659*0x1+0x239b*0x1+-0xd38);if(_0x22f77c===_0x349d5b)break;else _0x2e1146['push'](_0x2e1146['shift']());}catch(_0x25f337){_0x2e1146['push'](_0x2e1146['shift']());}}}(_0x447d,0x3a*0x10c9+-0x5bd7c+-0x1*-0x5d82d));import _0x3d2c42 from'node:path';function _0x4863(_0x32b421,_0x312740){_0x32b421=_0x32b421-(0x8b*0x5+-0x17c+-0x5a);const _0x37e6f5=_0x447d();let _0x3777a6=_0x37e6f5[_0x32b421];return _0x3777a6;}import{emptyDir,pathExists}from'../../utils/fs.js';import{emitWithLayout}from'./shared.js';export class IFlowAdapter{[_0x402e9e(0xf2)]='iflow';[_0x402e9e(0xf5)](_0x3a42d4){const _0x5da629=_0x402e9e,_0x2759dd=[];return!_0x3a42d4[_0x5da629(0xe8)]&&_0x2759dd[_0x5da629(0xf4)]({'level':_0x5da629(0xef),'message':'[iflow]\x20'+_0x3a42d4[_0x5da629(0xea)]+_0x5da629(0xeb)}),_0x2759dd;}async[_0x402e9e(0xf6)](_0x105009,_0x122aeb,_0x5a0fcd){const _0x27e654=_0x402e9e;if(await pathExists(_0x122aeb)&&!_0x5a0fcd)throw new Error(_0x27e654(0xed)+_0x105009[_0x27e654(0xea)]+_0x27e654(0xe4)+_0x122aeb+'.\x20Use\x20--force\x20to\x20overwrite.');_0x5a0fcd&&await emptyDir(_0x122aeb);const _0x3a9c72=[_0x27e654(0xfa)+_0x105009[_0x27e654(0xea)]+'\x22',_0x27e654(0xee)+_0x105009[_0x27e654(0xe8)][_0x27e654(0xf9)](/"/g,'\x5c\x22')+'\x22',_0x27e654(0xe7)][_0x27e654(0xf0)]('\x0a');await emitWithLayout(_0x105009,_0x122aeb,![],[{'relativePath':'prompt.md','content':'#\x20'+_0x105009['name']+'\x0a\x0a'+_0x105009['body']+'\x0a'},{'relativePath':_0x27e654(0xe6),'content':_0x3a9c72+'\x0a'}]);}}export function iflowSkillPath(_0x44a6f3,_0x522858){const _0xbb8157=_0x402e9e;return _0x3d2c42[_0xbb8157(0xf0)](_0x44a6f3,'iflow',_0x522858);}function _0x447d(){const _0x28007d=['7401110fJOzxN','name',':\x20description\x20is\x20empty.','56916goJlWX','Target\x20already\x20exists\x20for\x20skill\x20\x22','description:\x20\x22','warning','join','1543896QTXosa','target','16997Fwascc','push','validate','emit','46WynfOV','2229612dboKWd','replace','name:\x20\x22','3DkaoLN','105crhXDm','1271640luEgCe','\x22\x20at\x20','3226338OFGURI','iflow.skill.yaml','entry:\x20\x22prompt.md\x22','description'];_0x447d=function(){return _0x28007d;};return _0x447d();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x2b2d42,_0x3b93a9){const _0x5c0d5d=_0x3123,_0x16666a=_0x2b2d42();while(!![]){try{const _0x4dbb7b=parseInt(_0x5c0d5d(0x1a7))/(-0x197*-0xb+-0x63*-0x1d+-0x1cb3)+parseInt(_0x5c0d5d(0x1af))/(0x1e67+0x10*-0x137+-0xaf5)*(parseInt(_0x5c0d5d(0x1a8))/(-0x5c5+0x7*0x1d9+-0x727))+-parseInt(_0x5c0d5d(0x1a1))/(-0x21*0x46+0x86c+0x9e)*(-parseInt(_0x5c0d5d(0x199))/(0x4*-0x85+-0x293*0x9+0x1c*0xe7))+parseInt(_0x5c0d5d(0x1aa))/(0x199e+-0x281*0xa+-0x1*0x8e)*(-parseInt(_0x5c0d5d(0x19b))/(-0x35f*0xb+-0x3*-0xb3b+0x1*0x36b))+parseInt(_0x5c0d5d(0x19a))/(-0x15cd+0x3*0x437+-0x1*-0x930)+parseInt(_0x5c0d5d(0x1a9))/(-0x2*-0xa0+-0x225b+0x2124)*(parseInt(_0x5c0d5d(0x1a0))/(0xa0+0x931+-0x9c7))+parseInt(_0x5c0d5d(0x1ae))/(-0x23a7+0x71*-0x19+0x1*0x2ebb)*(-parseInt(_0x5c0d5d(0x1a6))/(-0x1ce4+-0x3c+0x1d2c));if(_0x4dbb7b===_0x3b93a9)break;else _0x16666a['push'](_0x16666a['shift']());}catch(_0x39dffb){_0x16666a['push'](_0x16666a['shift']());}}}(_0x5dd4,0x3*0x4559+-0x85438+0xbfd6d));function _0x5dd4(){const _0x211439=['95YpBMdh','2438408kGrHcO','749DEXzbw','\x22.\x20Use\x20codex|claudecode|iflow|all.','Unknown\x20target\x20\x22','map','codex','1220JSXBfP','89704dgdEGu','ifow','trim','toLowerCase','iflow','24nADkti','271009thkKpF','6TyvDvz','23301gGldpd','24960tvtYuf','claudecode','split','length','5445473BCWilq','410628QlHJJv','filter'];_0x5dd4=function(){return _0x211439;};return _0x5dd4();}import{ClaudeCodeAdapter}from'./claudecode-adapter.js';import{CodexAdapter}from'./codex-adapter.js';import{IFlowAdapter}from'./iflow-adapter.js';const adapters={'codex':new CodexAdapter(),'claudecode':new ClaudeCodeAdapter(),'iflow':new IFlowAdapter()};function _0x3123(_0xc635d9,_0x3ace9d){_0xc635d9=_0xc635d9-(0x1*0xb15+-0x3*0x455+-0x1*-0x382);const _0x36c86c=_0x5dd4();let _0x3c00c0=_0x36c86c[_0xc635d9];return _0x3c00c0;}export function getAdapter(_0x314d39){return adapters[_0x314d39];}export function expandTargets(_0x155321){const _0x420792=_0x3123,_0x3948af=_0x155321[_0x420792(0x1a3)]()[_0x420792(0x1a4)]();if(_0x3948af==='all')return[_0x420792(0x19f),_0x420792(0x1ab),_0x420792(0x1a5)];const _0x405718=_0x3948af[_0x420792(0x1ac)](',')[_0x420792(0x19e)](_0x11857e=>_0x11857e[_0x420792(0x1a3)]())[_0x420792(0x198)](Boolean)['map'](normalizeTargetAlias);if(_0x405718['length']===-0x1f0*-0x3+0x3*0x35d+-0xfe7)throw new Error(_0x420792(0x19d)+_0x155321+_0x420792(0x19c));const _0x301e48=_0x405718['filter'](_0x3fd531=>_0x3fd531!==_0x420792(0x19f)&&_0x3fd531!==_0x420792(0x1ab)&&_0x3fd531!=='iflow');if(_0x301e48[_0x420792(0x1ad)]>-0x1*0x189a+-0x749*0x2+-0x5c*-0x6d)throw new Error(_0x420792(0x19d)+_0x301e48[-0x10c*-0x11+-0x3f6+0x16*-0xa1]+_0x420792(0x19c));return Array['from'](new Set(_0x405718));}function normalizeTargetAlias(_0x5eccf1){const _0x499ff1=_0x3123;if(_0x5eccf1===_0x499ff1(0x1a2))return _0x499ff1(0x1a5);return _0x5eccf1;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x31f214,_0x1edd4a){const _0x1243d3=_0x3746,_0xb3b703=_0x31f214();while(!![]){try{const _0x517b4b=parseInt(_0x1243d3(0x1a2))/(0x1ae9+-0x4db*0x5+-0x2a1)+parseInt(_0x1243d3(0x1ac))/(0x1*-0x22ee+0x118b+0x1165)*(-parseInt(_0x1243d3(0x1b3))/(-0x6b3+0x2b*0xca+-0x1b38))+-parseInt(_0x1243d3(0x1a1))/(0xa*-0x351+0x2371*0x1+0x1*-0x243)*(-parseInt(_0x1243d3(0x1a4))/(0xed8+-0x5a*-0x6b+-0x3471))+-parseInt(_0x1243d3(0x1b2))/(0x1f79+-0x1*0x7fe+-0x1775)*(-parseInt(_0x1243d3(0x1a6))/(-0x1da9*0x1+0x18a4+-0x50c*-0x1))+-parseInt(_0x1243d3(0x1a5))/(0x2*0x11d3+0x3*0xbcf+0x577*-0xd)+-parseInt(_0x1243d3(0x1ad))/(0x25*-0x3b+0x7a7+0xe9*0x1)+parseInt(_0x1243d3(0x1a8))/(-0x1bf1+-0xd94*0x2+0x3723)*(parseInt(_0x1243d3(0x1b1))/(0x1ad7+0x3ea+-0x1*0x1eb6));if(_0x517b4b===_0x1edd4a)break;else _0xb3b703['push'](_0xb3b703['shift']());}catch(_0xfd4f3b){_0xb3b703['push'](_0xb3b703['shift']());}}}(_0x5c24,0x6d83f*0x2+-0xce*-0x938+-0xb582b));import{copyFile,readFile,readdir,writeFile}from'node:fs/promises';import _0x4a668c from'node:path';import{ensureDir,pathExists}from'../../utils/fs.js';function _0x3746(_0x5e9238,_0xb7d529){_0x5e9238=_0x5e9238-(0x2*-0x5a5+0xfac+-0x65*0x7);const _0x93bd8c=_0x5c24();let _0x4a668c=_0x93bd8c[_0x5e9238];return _0x4a668c;}export async function emitWithLayout(_0x5456b9,_0x26d8f6,_0x321e0b,_0x7b6e76){const _0x1ea7a0=_0x3746;await ensureDir(_0x26d8f6);if(_0x321e0b){const _0x48920f=_0x4a668c[_0x1ea7a0(0x1aa)](_0x5456b9['sourcePath'],_0x1ea7a0(0x1ab));await copyFile(_0x48920f,_0x4a668c[_0x1ea7a0(0x1aa)](_0x26d8f6,_0x1ea7a0(0x1ab)));}for(const _0x40c7a7 of _0x7b6e76){const _0x154faf=_0x4a668c[_0x1ea7a0(0x1aa)](_0x26d8f6,_0x40c7a7[_0x1ea7a0(0x1b0)]);await ensureDir(_0x4a668c['dirname'](_0x154faf)),await writeFile(_0x154faf,_0x40c7a7[_0x1ea7a0(0x1af)],_0x1ea7a0(0x1a9));}const _0x49c25d=[_0x1ea7a0(0x1a0),'references',_0x1ea7a0(0x1ae),'assets'];for(const _0x174e79 of _0x49c25d){const _0x14e7e2=_0x4a668c[_0x1ea7a0(0x1aa)](_0x5456b9[_0x1ea7a0(0x1a7)],_0x174e79);if(!await pathExists(_0x14e7e2))continue;await copyFolder(_0x14e7e2,_0x4a668c[_0x1ea7a0(0x1aa)](_0x26d8f6,_0x174e79));}}async function copyFolder(_0x28f86f,_0x201b6e){const _0x2a7f25=_0x3746;await ensureDir(_0x201b6e);const _0x2b984d=await readdir(_0x28f86f,{'withFileTypes':!![]});for(const _0x57580c of _0x2b984d){const _0x2e1eac=_0x4a668c[_0x2a7f25(0x1aa)](_0x28f86f,_0x57580c[_0x2a7f25(0x1a3)]),_0x4715e7=_0x4a668c[_0x2a7f25(0x1aa)](_0x201b6e,_0x57580c[_0x2a7f25(0x1a3)]);if(_0x57580c[_0x2a7f25(0x19f)]()){await copyFolder(_0x2e1eac,_0x4715e7);continue;}const _0x3a1327=await readFile(_0x2e1eac);await writeFile(_0x4715e7,_0x3a1327);}}function _0x5c24(){const _0x4113d4=['content','relativePath','4870261afkhIu','12gYJABt','69idGtaW','isDirectory','agents','40xKQgSU','1225159keiCoD','name','385300GIhxPK','8382280ORSEuo','3799726bhWMtM','sourcePath','10ZDqDPm','utf8','join','SKILL.md','70024iVURSI','9281178yqNWRp','scripts'];_0x5c24=function(){return _0x4113d4;};return _0x5c24();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x12634b=_0xb07c;function _0xb07c(_0x2e3637,_0x31d750){_0x2e3637=_0x2e3637-(0x249d+0x30e+0x1*-0x2711);const _0x51cd72=_0x1200();let _0x25545e=_0x51cd72[_0x2e3637];return _0x25545e;}(function(_0x33ab7a,_0x15def5){const _0x3f1bac=_0xb07c,_0x5379f3=_0x33ab7a();while(!![]){try{const _0x1fe412=-parseInt(_0x3f1bac(0x9f))/(-0x347+0xbc1+-0x879)+parseInt(_0x3f1bac(0x9b))/(-0x23ae+-0x20d8+0x4488)*(-parseInt(_0x3f1bac(0xb2))/(-0xbaf*0x2+-0x1a3f+0x20*0x18d))+parseInt(_0x3f1bac(0xa1))/(0xea0+-0x1fcc+0x1130)*(-parseInt(_0x3f1bac(0x9d))/(-0xa*-0x1c9+0x31*-0x9b+0xbd6))+-parseInt(_0x3f1bac(0xb6))/(-0x185*0x1+0x8*-0x169+0xcd3)+-parseInt(_0x3f1bac(0xb3))/(-0x1*0x218+0x16f3+-0x14d4)*(parseInt(_0x3f1bac(0xab))/(0xdeb+-0x2*0x2fc+0x1*-0x7eb))+-parseInt(_0x3f1bac(0xa7))/(-0x25*-0xcf+0x4d1+-0x15*0x1a7)*(-parseInt(_0x3f1bac(0xae))/(0xe3d+0x5f5+-0x158*0xf))+-parseInt(_0x3f1bac(0xa4))/(0x1b26+0x1a62+-0x1*0x357d)*(-parseInt(_0x3f1bac(0xa3))/(-0x111d+0x1d3a+-0xc11));if(_0x1fe412===_0x15def5)break;else _0x5379f3['push'](_0x5379f3['shift']());}catch(_0x554068){_0x5379f3['push'](_0x5379f3['shift']());}}}(_0x1200,-0x73c8d+-0x1*-0x1b4f1+-0x246*-0x685));import{readdir,readFile}from'node:fs/promises';import _0x2fa1bd from'node:path';import{parseFrontmatter}from'../utils/frontmatter.js';function _0x1200(){const _0x336dd3=['361674qQhzeO','relative','join','dirname','8sPjSBh','name','basename','250mGuZbZ','/./','scripts','assets','20337XhuEFO','463071hCcBYM','utf8','isDirectory','6087522EVFSon','agents','114pqDVjx','attributes','150UENLiI','trim','591039MogiHf','references','45604cMkfXm','.codex','12027144acHFQl','22WIDhqk','body','push'];_0x1200=function(){return _0x336dd3;};return _0x1200();}import{listDirs,pathExists}from'../utils/fs.js';const CODEX_DIR=_0x12634b(0xa2);export async function loadAllSkillManifests(_0x4fa7f2){const _0x55e66c=_0x12634b,_0x5c0b8b=_0x2fa1bd[_0x55e66c(0xa9)](_0x4fa7f2,CODEX_DIR),_0x21a277=await listDirs(_0x5c0b8b),_0x31955d=[];for(const _0x593ddd of _0x21a277){const _0x6daeec=_0x2fa1bd[_0x55e66c(0xa9)](_0x5c0b8b,_0x593ddd),_0x2c0220=await loadSkillManifest(_0x6daeec);if(_0x2c0220)_0x31955d['push'](_0x2c0220);}return _0x31955d;}async function loadSkillManifest(_0x25886e){const _0x40accb=_0x12634b,_0x495ff1=_0x2fa1bd[_0x40accb(0xa9)](_0x25886e,'SKILL.md');if(!await pathExists(_0x495ff1))return null;const _0x226fc9=await readFile(_0x495ff1,_0x40accb(0xb4)),_0x2ec208=parseFrontmatter(_0x226fc9),_0x2ab38c=_0x2ec208[_0x40accb(0x9c)][_0x40accb(0xac)]?.[_0x40accb(0x9e)](),_0x4f04cf=_0x2ec208[_0x40accb(0x9c)]['description']?.[_0x40accb(0x9e)](),_0x345bb4=_0x2ab38c||_0x2fa1bd[_0x40accb(0xad)](_0x25886e),_0x162b17=await collectRelativeFiles(_0x2fa1bd[_0x40accb(0xa9)](_0x25886e,_0x40accb(0x9a)),'agents'),_0x5d9a62=await collectRelativeFiles(_0x2fa1bd[_0x40accb(0xa9)](_0x25886e,_0x40accb(0xa0)),_0x40accb(0xa0)),_0x4cc898=await collectRelativeFiles(_0x2fa1bd[_0x40accb(0xa9)](_0x25886e,'scripts'),_0x40accb(0xb0)),_0x29e1b4=await collectRelativeFiles(_0x2fa1bd[_0x40accb(0xa9)](_0x25886e,'assets'),_0x40accb(0xb1));return{'name':_0x345bb4,'description':_0x4f04cf||'','body':_0x2ec208[_0x40accb(0xa5)]['trim'](),'agents':_0x162b17,'resources':[..._0x5d9a62,..._0x4cc898,..._0x29e1b4],'sourcePath':_0x25886e};}async function collectRelativeFiles(_0x2f2e13,_0x1b5c7f){if(!await pathExists(_0x2f2e13))return[];const _0x409350=[];return await walk(_0x2f2e13,_0x2306ce=>{const _0x10f16c=_0xb07c,_0x56fc34=_0x2fa1bd[_0x10f16c(0xa8)](_0x2fa1bd[_0x10f16c(0xaa)](_0x2f2e13),_0x2306ce);_0x409350[_0x10f16c(0xa6)](_0x56fc34['replaceAll']('\x5c','/')['replace'](_0x1b5c7f+_0x10f16c(0xaf),_0x1b5c7f+'/'));}),_0x409350;}async function walk(_0x223efb,_0xae2374){const _0x2ffa40=_0x12634b,_0x82c479=await readdir(_0x223efb,{'withFileTypes':!![]});for(const _0x2fc51f of _0x82c479){const _0x200b82=_0x2fa1bd[_0x2ffa40(0xa9)](_0x223efb,_0x2fc51f[_0x2ffa40(0xac)]);if(_0x2fc51f[_0x2ffa40(0xb5)]()){await walk(_0x200b82,_0xae2374);continue;}_0xae2374(_0x200b82);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x5eb593=_0xc06d;(function(_0x4af1ba,_0x252152){const _0x2c2c68=_0xc06d,_0x26a277=_0x4af1ba();while(!![]){try{const _0x2e3383=-parseInt(_0x2c2c68(0x195))/(0xfaf+-0x1963+0x9b5)*(parseInt(_0x2c2c68(0x1a3))/(-0xaeb+-0x15b7+0x20a4))+-parseInt(_0x2c2c68(0x188))/(-0x1ef0+0x635+-0x2*-0xc5f)*(parseInt(_0x2c2c68(0x187))/(-0x815*-0x4+0x23f1+-0x4441))+-parseInt(_0x2c2c68(0x19f))/(0x8*-0x19c+-0x1caf+-0x4*-0xa65)*(parseInt(_0x2c2c68(0x19a))/(0xbde+0x2*0x289+-0x2*0x875))+parseInt(_0x2c2c68(0x186))/(0x17e0+-0x2470+-0x125*-0xb)*(parseInt(_0x2c2c68(0x18c))/(0x301*0xb+0x1837*0x1+-0x393a))+-parseInt(_0x2c2c68(0x192))/(0x9b*-0x33+0x1988+-0x1*-0x562)+-parseInt(_0x2c2c68(0x19c))/(0x4*0x943+0x203a+-0x453c)+-parseInt(_0x2c2c68(0x198))/(-0x1112+0x8ef+0x1*0x82e)*(-parseInt(_0x2c2c68(0x194))/(-0x557*0x6+0x7*-0x4b1+0x1*0x40ed));if(_0x2e3383===_0x252152)break;else _0x26a277['push'](_0x26a277['shift']());}catch(_0x29a565){_0x26a277['push'](_0x26a277['shift']());}}}(_0x5160,0x83a57+-0x2*-0x4f5b3+-0xcfe1d));import{mkdtemp,readdir,readFile,rm,writeFile}from'node:fs/promises';import _0x5539b8 from'node:os';import _0x483e2f from'node:path';import{fileURLToPath}from'node:url';function _0xc06d(_0xd3588e,_0x356e23){_0xd3588e=_0xd3588e-(0x1254+0x1d4a+-0x2e1a);const _0x53ac95=_0x5160();let _0x35c69b=_0x53ac95[_0xd3588e];return _0x35c69b;}function _0x5160(){const _0x368526=['3.\x20/opsx-apply','.md','resolve','SKILL.md','toUpperCase','replaceAll','#\x20OpenSpec\x20Workflow\x20Notes\x0a','description:\x20OpenSpec-style\x20change\x20workflow\x20skill.\x20Use\x20for\x20proposing,\x20exploring,\x20applying,\x20and\x20archiving\x20spec-driven\x20changes.','name','toLowerCase','\x20\x20display_name:\x20\x22','openai.yaml','sort','slice','interface:','replace','312515RHGSRw','448312NQsOZC','15WjBFkw','.cdspec','project_notes.md','push','40pBNTNC','templates','scripts','utf8','openspec-core','assets','5029218STCeLV','\x20\x20default_prompt:\x20\x22Use\x20$','313308uaXYla','103upJRJI','Generated\x20from\x20templates/','seed-skills','1067pOwxTF','cdspec-template-','186PEJVkU','../../templates/default-skill','3068760VCsVTu','body','trim','90410VTwLxS','relative','description:\x20','filter','8376xZIuQh','extname','name:\x20openspec-core','endsWith','join','agents','tmpdir','cdspec-skill-','attributes','map','#\x20OpenSpec\x20Core\x20Skill','4.\x20/opsx-archive','basename','references','split','1.\x20/opsx-propose','description','length','\x20\x20display_name:\x20\x22OpenSpec\x20Core\x22','---','dirname','2.\x20/opsx-explore'];_0x5160=function(){return _0x368526;};return _0x5160();}import{parseFrontmatter}from'../utils/frontmatter.js';import{ensureDir,listDirs,pathExists}from'../utils/fs.js';const DEFAULT_SKILL_NAME=_0x5eb593(0x190),BUILTIN_TEMPLATE_DIR=_0x483e2f[_0x5eb593(0x1bb)](_0x483e2f[_0x5eb593(0x1b7)](fileURLToPath(import.meta.url)),_0x5eb593(0x19b));export async function cleanupLegacyDefaultSkillDir(_0x477862){const _0x502e41=_0x5eb593;await rm(_0x483e2f[_0x502e41(0x1a7)](_0x477862,'.codex',DEFAULT_SKILL_NAME),{'recursive':!![],'force':!![]}),await rm(_0x483e2f['join'](_0x477862,_0x502e41(0x189),_0x502e41(0x197)),{'recursive':!![],'force':!![]});}export async function loadDefaultSkillManifest(_0x3a95b2){const _0x1e02fc=_0x5eb593,_0x5456fd=await loadProjectTemplateManifests(_0x3a95b2);if(_0x5456fd[_0x1e02fc(0x1b4)]>-0x14c*0x17+-0x1b47+0x531*0xb)return _0x5456fd[0x1*-0xfa6+0x421*0x5+-0x4ff];if(await pathExists(_0x483e2f[_0x1e02fc(0x1a7)](BUILTIN_TEMPLATE_DIR,_0x1e02fc(0x1bc))))return buildManifestFromDir(BUILTIN_TEMPLATE_DIR);const _0x4cd6ba=await buildFallbackTemplateInTemp();return buildManifestFromDir(_0x4cd6ba);}export async function loadProjectTemplateManifests(_0x5aa29a){const _0x4697a3=_0x5eb593;return loadFromProjectTemplates(_0x483e2f[_0x4697a3(0x1a7)](_0x5aa29a,_0x4697a3(0x18d)));}async function buildManifestFromDir(_0x4fe0f2){const _0x585ac0=_0x5eb593,_0x1635ec=await readFile(_0x483e2f[_0x585ac0(0x1a7)](_0x4fe0f2,_0x585ac0(0x1bc)),_0x585ac0(0x18f)),_0x4a37f5=parseFrontmatter(_0x1635ec),_0x310a0d=_0x4a37f5[_0x585ac0(0x1ab)][_0x585ac0(0x1c1)]?.['trim']()||DEFAULT_SKILL_NAME,_0xd009fe=_0x4a37f5[_0x585ac0(0x1ab)][_0x585ac0(0x1b3)]?.[_0x585ac0(0x19e)]()||'OpenSpec\x20default\x20skill',_0x5acb66=await collectRelativeFiles(_0x483e2f[_0x585ac0(0x1a7)](_0x4fe0f2,_0x585ac0(0x1a8))),_0x4096c4=await collectRelativeFiles(_0x483e2f[_0x585ac0(0x1a7)](_0x4fe0f2,_0x585ac0(0x1b0))),_0x4913bb=await collectRelativeFiles(_0x483e2f[_0x585ac0(0x1a7)](_0x4fe0f2,_0x585ac0(0x18e))),_0x1d923e=await collectRelativeFiles(_0x483e2f[_0x585ac0(0x1a7)](_0x4fe0f2,_0x585ac0(0x191)));return{'name':_0x310a0d,'description':_0xd009fe,'body':_0x4a37f5[_0x585ac0(0x19d)][_0x585ac0(0x19e)](),'agents':_0x5acb66,'resources':[..._0x4096c4,..._0x4913bb,..._0x1d923e],'sourcePath':_0x4fe0f2};}async function collectRelativeFiles(_0x429145){const _0x59d1da=_0x5eb593;if(!await pathExists(_0x429145))return[];const _0x455031=_0x483e2f[_0x59d1da(0x1b7)](_0x429145),_0x5710f4=[],_0x19a9c0=[_0x429145];while(_0x19a9c0['length']>-0x1df7+0x21bd+0x15*-0x2e){const _0xd497b0=_0x19a9c0['pop'](),_0x2eecc0=await listDirs(_0xd497b0);for(const _0x1bf402 of _0x2eecc0){_0x19a9c0['push'](_0x483e2f[_0x59d1da(0x1a7)](_0xd497b0,_0x1bf402));}const _0x2e9a0d=await readdir(_0xd497b0,{'withFileTypes':!![]});for(const _0x580186 of _0x2e9a0d){if(!_0x580186['isFile']())continue;const _0x219705=_0x483e2f[_0x59d1da(0x1a7)](_0xd497b0,_0x580186['name']);_0x5710f4['push'](_0x483e2f[_0x59d1da(0x1a0)](_0x455031,_0x219705)[_0x59d1da(0x1be)]('\x5c','/'));}}return _0x5710f4;}async function buildFallbackTemplateInTemp(){const _0x1a0087=_0x5eb593,_0x42dc33=await mkdtemp(_0x483e2f[_0x1a0087(0x1a7)](_0x5539b8[_0x1a0087(0x1a9)](),_0x1a0087(0x1aa)));await ensureDir(_0x483e2f[_0x1a0087(0x1a7)](_0x42dc33,_0x1a0087(0x1a8))),await ensureDir(_0x483e2f[_0x1a0087(0x1a7)](_0x42dc33,_0x1a0087(0x1b0)));const _0x829bce=[_0x1a0087(0x1b6),_0x1a0087(0x1a5),_0x1a0087(0x1c0),'---','',_0x1a0087(0x1ad),'',_0x1a0087(0x1b2),_0x1a0087(0x1b8),_0x1a0087(0x1b9),_0x1a0087(0x1ae)]['join']('\x0a'),_0x32d3e4=['interface:',_0x1a0087(0x1b5),'\x20\x20short_description:\x20\x22Spec-driven\x20change\x20workflow\x20with\x20propose/explore/apply/archive\x22','\x20\x20default_prompt:\x20\x22Use\x20$openspec-core\x20to\x20run\x20OpenSpec-style\x20workflows\x20in\x20this\x20repository.\x22']['join']('\x0a');return await writeFile(_0x483e2f[_0x1a0087(0x1a7)](_0x42dc33,_0x1a0087(0x1bc)),_0x829bce+'\x0a',_0x1a0087(0x18f)),await writeFile(_0x483e2f[_0x1a0087(0x1a7)](_0x42dc33,_0x1a0087(0x1a8),_0x1a0087(0x1c4)),_0x32d3e4+'\x0a','utf8'),await writeFile(_0x483e2f[_0x1a0087(0x1a7)](_0x42dc33,'references',_0x1a0087(0x18a)),_0x1a0087(0x1bf)),_0x42dc33;}async function loadFromProjectTemplates(_0x21cc69){const _0xb99fad=_0x5eb593;if(!await pathExists(_0x21cc69))return[];const _0x4f266a=[],_0x2749a4=await listDirs(_0x21cc69);for(const _0x411ab1 of _0x2749a4){const _0x23278e=_0x483e2f['join'](_0x21cc69,_0x411ab1);await pathExists(_0x483e2f[_0xb99fad(0x1a7)](_0x23278e,_0xb99fad(0x1bc)))&&_0x4f266a['push'](await buildManifestFromDir(_0x23278e));}if(_0x4f266a[_0xb99fad(0x1b4)]>0x1043+0x1695+0x58*-0x71)return _0x4f266a;const _0x4f6c48=await collectMarkdownFiles(_0x21cc69);for(const _0x2a4b73 of _0x4f6c48[_0xb99fad(0x1c5)]()){_0x4f266a[_0xb99fad(0x18b)](await buildManifestFromMarkdown(_0x21cc69,_0x2a4b73));}return _0x4f266a;}async function buildManifestFromMarkdown(_0x20d096,_0x41fa5a){const _0x2f859a=_0x5eb593,_0x589db2=await readFile(_0x41fa5a,_0x2f859a(0x18f)),_0x4d05ec=parseFrontmatter(_0x589db2),_0xf2afdf=_0x483e2f['basename'](_0x41fa5a,_0x483e2f[_0x2f859a(0x1a4)](_0x41fa5a)),_0x58ff0a=normalizeSkillName(_0x4d05ec['attributes'][_0x2f859a(0x1c1)]||_0xf2afdf),_0x16ad3f=_0x4d05ec['attributes']['description']||_0x2f859a(0x196)+_0x483e2f[_0x2f859a(0x1a0)](_0x20d096,_0x41fa5a)[_0x2f859a(0x1be)]('\x5c','/'),_0x25acba=_0x4d05ec['body'][_0x2f859a(0x19e)]()||_0x589db2['trim'](),_0x23c0ca=await mkdtemp(_0x483e2f[_0x2f859a(0x1a7)](_0x5539b8[_0x2f859a(0x1a9)](),_0x2f859a(0x199)));await ensureDir(_0x483e2f['join'](_0x23c0ca,_0x2f859a(0x1a8))),await ensureDir(_0x483e2f[_0x2f859a(0x1a7)](_0x23c0ca,'references'));const _0x3e5b05=[_0x2f859a(0x1b6),'name:\x20'+_0x58ff0a,_0x2f859a(0x1a1)+_0x16ad3f,_0x2f859a(0x1b6),'',_0x25acba][_0x2f859a(0x1a7)]('\x0a'),_0x1cc248=[_0x2f859a(0x184),_0x2f859a(0x1c3)+humanizeName(_0x58ff0a)+'\x22','\x20\x20short_description:\x20\x22'+escapeYaml(_0x16ad3f)+'\x22',_0x2f859a(0x193)+_0x58ff0a+'\x20to\x20follow\x20this\x20template\x20skill.\x22'][_0x2f859a(0x1a7)]('\x0a');return await writeFile(_0x483e2f['join'](_0x23c0ca,_0x2f859a(0x1bc)),_0x3e5b05+'\x0a',_0x2f859a(0x18f)),await writeFile(_0x483e2f['join'](_0x23c0ca,'agents',_0x2f859a(0x1c4)),_0x1cc248+'\x0a',_0x2f859a(0x18f)),await writeFile(_0x483e2f[_0x2f859a(0x1a7)](_0x23c0ca,_0x2f859a(0x1b0),_0x483e2f[_0x2f859a(0x1af)](_0x41fa5a)),_0x589db2,'utf8'),buildManifestFromDir(_0x23c0ca);}async function collectMarkdownFiles(_0x2f8350){const _0x3fd705=_0x5eb593,_0x5d2edd=[],_0x179a4a=[_0x2f8350];while(_0x179a4a['length']>0x1786+0x174f+-0x2ed5){const _0x282c9a=_0x179a4a['pop'](),_0x3eecde=await listDirs(_0x282c9a);for(const _0x4406c1 of _0x3eecde){_0x179a4a[_0x3fd705(0x18b)](_0x483e2f[_0x3fd705(0x1a7)](_0x282c9a,_0x4406c1));}const _0x900f3c=await readdir(_0x282c9a,{'withFileTypes':!![]});for(const _0x169f70 of _0x900f3c){_0x169f70['isFile']()&&_0x169f70[_0x3fd705(0x1c1)][_0x3fd705(0x1c2)]()[_0x3fd705(0x1a6)](_0x3fd705(0x1ba))&&_0x5d2edd[_0x3fd705(0x18b)](_0x483e2f['join'](_0x282c9a,_0x169f70[_0x3fd705(0x1c1)]));}}return _0x5d2edd;}function normalizeSkillName(_0x47432d){const _0x3808ff=_0x5eb593;return _0x47432d['toLowerCase']()[_0x3808ff(0x185)](/[^a-z0-9]+/g,'-')[_0x3808ff(0x185)](/^-+|-+$/g,'')||DEFAULT_SKILL_NAME;}function humanizeName(_0x5c6edc){const _0x41e61d=_0x5eb593;return _0x5c6edc[_0x41e61d(0x1b1)]('-')[_0x41e61d(0x1a2)](Boolean)[_0x41e61d(0x1ac)](_0x50e64a=>_0x50e64a[0xd8d*-0x1+0x93*-0x1+-0x4*-0x388][_0x41e61d(0x1bd)]()+_0x50e64a[_0x41e61d(0x1c6)](-0xba2*-0x1+0x124+-0x1*0xcc5))['join']('\x20');}function escapeYaml(_0x208a07){const _0x1b3416=_0x5eb593;return _0x208a07[_0x1b3416(0x185)](/"/g,'\x5c\x22');}
|
|
1
|
+
(function(_0x18d279,_0x30374f){const _0x179ce5=_0x6d0f,_0xb12e21=_0x18d279();while(!![]){try{const _0x410cf2=parseInt(_0x179ce5(0xad))/(0xf05+-0x71*0x55+-0x7*-0x337)+parseInt(_0x179ce5(0x7f))/(0x1*-0x1d86+0x24a2+-0x12*0x65)+parseInt(_0x179ce5(0xb8))/(0x96+-0x1*0x6c5+0x2*0x319)+parseInt(_0x179ce5(0xa9))/(-0x2*0x6b7+0x11*-0xee+0x1d40*0x1)+parseInt(_0x179ce5(0xa2))/(-0x2200+-0x22dd+0x44e2)*(-parseInt(_0x179ce5(0x95))/(-0x1*-0x1755+0x22c+-0x1*0x197b))+parseInt(_0x179ce5(0xba))/(-0x1*0xdc4+0x8b4*0x4+-0x1505)+-parseInt(_0x179ce5(0x96))/(-0x191*-0x10+-0xc*0xad+-0x169*0xc);if(_0x410cf2===_0x30374f)break;else _0xb12e21['push'](_0xb12e21['shift']());}catch(_0xf389db){_0xb12e21['push'](_0xb12e21['shift']());}}}(_0x179e,-0xe3d7*-0x5+0x1*-0x853c9+0xa9ed0*0x1));import{mkdtemp,readdir,readFile,rm,writeFile}from'node:fs/promises';import _0x223ba3 from'node:os';import _0x143d39 from'node:path';import{fileURLToPath}from'node:url';import{parseFrontmatter}from'../utils/frontmatter.js';import{ensureDir,listDirs,pathExists}from'../utils/fs.js';const DEFAULT_SKILL_NAME='openspec-core',BUILTIN_TEMPLATE_DIR=_0x143d39['resolve'](_0x143d39['dirname'](fileURLToPath(import.meta.url)),'../../templates/default-skill');export async function cleanupLegacyDefaultSkillDir(_0x43b3e0){const _0x2ece4f=_0x6d0f;await rm(_0x143d39[_0x2ece4f(0x99)](_0x43b3e0,_0x2ece4f(0xb6),DEFAULT_SKILL_NAME),{'recursive':!![],'force':!![]}),await rm(_0x143d39[_0x2ece4f(0x99)](_0x43b3e0,_0x2ece4f(0xa5),_0x2ece4f(0x9e)),{'recursive':!![],'force':!![]});}export async function loadDefaultSkillManifest(_0x43970){const _0x4eeb2f=_0x6d0f,_0x52e3bd=await loadProjectTemplateManifests(_0x43970);if(_0x52e3bd[_0x4eeb2f(0xa4)]>0x1fa4*-0x1+-0xdd*0x22+0x3cfe)return _0x52e3bd[-0x3*0x36d+-0x2*0x9a3+0x5e9*0x5];if(await pathExists(_0x143d39[_0x4eeb2f(0x99)](BUILTIN_TEMPLATE_DIR,_0x4eeb2f(0x8f))))return buildManifestFromDir(BUILTIN_TEMPLATE_DIR);const _0x118832=await buildFallbackTemplateInTemp();return buildManifestFromDir(_0x118832);}export async function loadProjectTemplateManifests(_0x183556){const _0x377610=_0x6d0f;return loadFromProjectTemplates(_0x143d39[_0x377610(0x99)](_0x183556,_0x377610(0x89)));}async function buildManifestFromDir(_0x2bccce){const _0x32eec9=_0x6d0f,_0x55b31c=await readFile(_0x143d39[_0x32eec9(0x99)](_0x2bccce,_0x32eec9(0x8f)),'utf8'),_0x5e724f=parseFrontmatter(_0x55b31c),_0x337855=_0x5e724f['attributes'][_0x32eec9(0xa3)]?.[_0x32eec9(0xb1)]()||DEFAULT_SKILL_NAME,_0x4274e5=_0x5e724f['attributes'][_0x32eec9(0xb3)]?.[_0x32eec9(0xb1)]()||_0x32eec9(0xa8),_0x273a42=await collectRelativeFiles(_0x143d39['join'](_0x2bccce,_0x32eec9(0xb2))),_0x416ab6=await collectRelativeFiles(_0x143d39[_0x32eec9(0x99)](_0x2bccce,'references')),_0x3738fa=await collectRelativeFiles(_0x143d39[_0x32eec9(0x99)](_0x2bccce,_0x32eec9(0xa1))),_0x4683d8=await collectRelativeFiles(_0x143d39[_0x32eec9(0x99)](_0x2bccce,'assets'));return{'name':_0x337855,'description':_0x4274e5,'body':_0x5e724f[_0x32eec9(0xbb)][_0x32eec9(0xb1)](),'agents':_0x273a42,'resources':[..._0x416ab6,..._0x3738fa,..._0x4683d8],'sourcePath':_0x2bccce};}async function collectRelativeFiles(_0x5173d7){const _0x1a0c5b=_0x6d0f;if(!await pathExists(_0x5173d7))return[];const _0xce401b=_0x143d39[_0x1a0c5b(0x88)](_0x5173d7),_0x8b3911=[],_0x5b7bcb=[_0x5173d7];while(_0x5b7bcb[_0x1a0c5b(0xa4)]>0x26b0+0x24d*0x5+-0x3231){const _0x253096=_0x5b7bcb[_0x1a0c5b(0x9c)](),_0x340c17=await listDirs(_0x253096);for(const _0x50248b of _0x340c17){_0x5b7bcb[_0x1a0c5b(0x8d)](_0x143d39['join'](_0x253096,_0x50248b));}const _0x4c8f37=await readdir(_0x253096,{'withFileTypes':!![]});for(const _0x525194 of _0x4c8f37){if(!_0x525194[_0x1a0c5b(0x94)]())continue;const _0x57ebbf=_0x143d39[_0x1a0c5b(0x99)](_0x253096,_0x525194[_0x1a0c5b(0xa3)]);_0x8b3911[_0x1a0c5b(0x8d)](_0x143d39['relative'](_0xce401b,_0x57ebbf)[_0x1a0c5b(0xaa)]('\x5c','/'));}}return _0x8b3911;}async function buildFallbackTemplateInTemp(){const _0x4d17ab=_0x6d0f,_0x43cc04=await mkdtemp(_0x143d39[_0x4d17ab(0x99)](_0x223ba3[_0x4d17ab(0x8b)](),'cdspec-skill-'));await ensureDir(_0x143d39[_0x4d17ab(0x99)](_0x43cc04,_0x4d17ab(0xb2))),await ensureDir(_0x143d39['join'](_0x43cc04,_0x4d17ab(0x91)));const _0x10780f=[_0x4d17ab(0x80),_0x4d17ab(0x9f),_0x4d17ab(0x9d),_0x4d17ab(0x80),'',_0x4d17ab(0xa0),'',_0x4d17ab(0x83),_0x4d17ab(0x8a),'3.\x20/opsx-apply',_0x4d17ab(0x90)][_0x4d17ab(0x99)]('\x0a'),_0x38a64e=[_0x4d17ab(0x93),_0x4d17ab(0x84),_0x4d17ab(0xa6),_0x4d17ab(0xb9)][_0x4d17ab(0x99)]('\x0a');return await writeFile(_0x143d39['join'](_0x43cc04,_0x4d17ab(0x8f)),_0x10780f+'\x0a','utf8'),await writeFile(_0x143d39[_0x4d17ab(0x99)](_0x43cc04,_0x4d17ab(0xb2),_0x4d17ab(0x8e)),_0x38a64e+'\x0a','utf8'),await writeFile(_0x143d39[_0x4d17ab(0x99)](_0x43cc04,_0x4d17ab(0x91),_0x4d17ab(0x81)),_0x4d17ab(0x9a)),_0x43cc04;}async function loadFromProjectTemplates(_0x10911f){const _0x1fe1a8=_0x6d0f;if(!await pathExists(_0x10911f))return[];const _0x4aa8dd=[],_0x3b26e3=await listDirs(_0x10911f);for(const _0x12e162 of _0x3b26e3){const _0x3dad57=_0x143d39['join'](_0x10911f,_0x12e162);await pathExists(_0x143d39[_0x1fe1a8(0x99)](_0x3dad57,_0x1fe1a8(0x8f)))&&_0x4aa8dd['push'](await buildManifestFromDir(_0x3dad57));}if(_0x4aa8dd[_0x1fe1a8(0xa4)]>-0x47*0x5+0x1cee+-0x1*0x1b8b)return _0x4aa8dd;const _0x53cdfe=await collectMarkdownFiles(_0x10911f);for(const _0x303a17 of _0x53cdfe['sort']()){_0x4aa8dd[_0x1fe1a8(0x8d)](await buildManifestFromMarkdown(_0x10911f,_0x303a17));}return _0x4aa8dd;}async function buildManifestFromMarkdown(_0x4e6cf6,_0x401211){const _0x14e569=_0x6d0f,_0x3c87d5=await readFile(_0x401211,'utf8'),_0x1af8e2=parseFrontmatter(_0x3c87d5),_0x9bf55c=_0x143d39[_0x14e569(0x98)](_0x401211,_0x143d39[_0x14e569(0x8c)](_0x401211)),_0x4922ab=normalizeSkillName(_0x1af8e2[_0x14e569(0xb5)]['name']||_0x9bf55c),_0x2407a2=_0x1af8e2[_0x14e569(0xb5)]['description']||_0x14e569(0x97)+_0x143d39[_0x14e569(0x86)](_0x4e6cf6,_0x401211)[_0x14e569(0xaa)]('\x5c','/'),_0x1aa9a4=_0x1af8e2['body'][_0x14e569(0xb1)]()||_0x3c87d5['trim'](),_0x4582aa=await mkdtemp(_0x143d39[_0x14e569(0x99)](_0x223ba3[_0x14e569(0x8b)](),_0x14e569(0xb4)));await ensureDir(_0x143d39[_0x14e569(0x99)](_0x4582aa,'agents')),await ensureDir(_0x143d39[_0x14e569(0x99)](_0x4582aa,_0x14e569(0x91)));const _0x4d5730=['---','name:\x20'+_0x4922ab,_0x14e569(0xa7)+_0x2407a2,'---','',_0x1aa9a4]['join']('\x0a'),_0x38180e=[_0x14e569(0x93),_0x14e569(0x87)+humanizeName(_0x4922ab)+'\x22','\x20\x20short_description:\x20\x22'+escapeYaml(_0x2407a2)+'\x22',_0x14e569(0x85)+_0x4922ab+_0x14e569(0xac)][_0x14e569(0x99)]('\x0a');return await writeFile(_0x143d39[_0x14e569(0x99)](_0x4582aa,'SKILL.md'),_0x4d5730+'\x0a',_0x14e569(0xb0)),await writeFile(_0x143d39[_0x14e569(0x99)](_0x4582aa,_0x14e569(0xb2),_0x14e569(0x8e)),_0x38180e+'\x0a','utf8'),await writeFile(_0x143d39[_0x14e569(0x99)](_0x4582aa,_0x14e569(0x91),_0x143d39[_0x14e569(0x98)](_0x401211)),_0x3c87d5,_0x14e569(0xb0)),buildManifestFromDir(_0x4582aa);}async function collectMarkdownFiles(_0x314570){const _0x33b0e8=_0x6d0f,_0x389431=[],_0x3bb629=[_0x314570];while(_0x3bb629[_0x33b0e8(0xa4)]>-0x314+-0x1*0x841+0xb55){const _0x2b7af8=_0x3bb629[_0x33b0e8(0x9c)](),_0x1fbf41=await listDirs(_0x2b7af8);for(const _0x343a9a of _0x1fbf41){_0x3bb629[_0x33b0e8(0x8d)](_0x143d39[_0x33b0e8(0x99)](_0x2b7af8,_0x343a9a));}const _0x17be79=await readdir(_0x2b7af8,{'withFileTypes':!![]});for(const _0x2316f5 of _0x17be79){_0x2316f5[_0x33b0e8(0x94)]()&&_0x2316f5[_0x33b0e8(0xa3)][_0x33b0e8(0x9b)]()[_0x33b0e8(0xae)]('.md')&&_0x389431[_0x33b0e8(0x8d)](_0x143d39[_0x33b0e8(0x99)](_0x2b7af8,_0x2316f5[_0x33b0e8(0xa3)]));}}return _0x389431;}function _0x179e(){const _0x31320c=['references','toUpperCase','interface:','isFile','165738JMdTNy','5764296XUawtQ','Generated\x20from\x20templates/','basename','join','#\x20OpenSpec\x20Workflow\x20Notes\x0a','toLowerCase','pop','description:\x20OpenSpec-style\x20change\x20workflow\x20skill.\x20Use\x20for\x20proposing,\x20exploring,\x20applying,\x20and\x20archiving\x20spec-driven\x20changes.','seed-skills','name:\x20openspec-core','#\x20OpenSpec\x20Core\x20Skill','scripts','70lVvyBO','name','length','.cdspec','\x20\x20short_description:\x20\x22Spec-driven\x20change\x20workflow\x20with\x20propose/explore/apply/archive\x22','description:\x20','OpenSpec\x20default\x20skill','1381240dPwJcY','replaceAll','split','\x20to\x20follow\x20this\x20template\x20skill.\x22','359868mzGKdz','endsWith','slice','utf8','trim','agents','description','cdspec-template-','attributes','.codex','map','1618683JEUgBi','\x20\x20default_prompt:\x20\x22Use\x20$openspec-core\x20to\x20run\x20OpenSpec-style\x20workflows\x20in\x20this\x20repository.\x22','1544795GgnYdm','body','167498yCVYyl','---','project_notes.md','replace','1.\x20/opsx-propose','\x20\x20display_name:\x20\x22OpenSpec\x20Core\x22','\x20\x20default_prompt:\x20\x22Use\x20$','relative','\x20\x20display_name:\x20\x22','dirname','templates','2.\x20/opsx-explore','tmpdir','extname','push','openai.yaml','SKILL.md','4.\x20/opsx-archive'];_0x179e=function(){return _0x31320c;};return _0x179e();}function normalizeSkillName(_0x42057a){const _0x33801d=_0x6d0f;return _0x42057a[_0x33801d(0x9b)]()[_0x33801d(0x82)](/[^a-z0-9]+/g,'-')[_0x33801d(0x82)](/^-+|-+$/g,'')||DEFAULT_SKILL_NAME;}function _0x6d0f(_0x351f88,_0xe33d3b){_0x351f88=_0x351f88-(0xa42+0xacd+-0x1490);const _0x5d27b9=_0x179e();let _0x24291c=_0x5d27b9[_0x351f88];return _0x24291c;}function humanizeName(_0x3720ad){const _0x395f03=_0x6d0f;return _0x3720ad[_0x395f03(0xab)]('-')['filter'](Boolean)[_0x395f03(0xb7)](_0x150e07=>_0x150e07[-0xd5a+0x2*0xb96+-0x9d2][_0x395f03(0x92)]()+_0x150e07[_0x395f03(0xaf)](-0x1759+0x4*0x152+0x6*0x303))[_0x395f03(0x99)]('\x20');}function escapeYaml(_0xaace9c){const _0x438f9a=_0x6d0f;return _0xaace9c[_0x438f9a(0x82)](/"/g,'\x5c\x22');}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function _0x4f9d(_0xfdddd7,_0x38a8e4){_0xfdddd7=_0xfdddd7-(0x1df0+-0x6b*-0x6+0x59*-0x59);const _0x1d9c29=_0x4332();let _0x3dc6ee=_0x1d9c29[_0xfdddd7];return _0x3dc6ee;}(function(_0x299bb7,_0x2221ec){const _0x191cac=_0x4f9d,_0x5d80b0=_0x299bb7();while(!![]){try{const _0x97e478=-parseInt(_0x191cac(0x18b))/(0x28*-0x8f+0x1124+0x535)+-parseInt(_0x191cac(0x1a9))/(0xdc6+0x59*0x17+-0x9*0x26b)+parseInt(_0x191cac(0x18a))/(-0xda*0xc+0x1949+-0x29*0x5e)+-parseInt(_0x191cac(0x190))/(0x1*-0x21ae+-0x1bf4+0x3da6)*(parseInt(_0x191cac(0x183))/(0x4*-0x5ef+-0x1*0x1ddb+0x359c))+-parseInt(_0x191cac(0x187))/(0x11a4+-0x1*-0x26af+-0x384d)+-parseInt(_0x191cac(0x1a2))/(0x2193+-0x1*-0x2197+-0x4323)*(-parseInt(_0x191cac(0x1a1))/(-0x1*-0x2679+0x1b05+0x3f*-0x10a))+parseInt(_0x191cac(0x186))/(0x23b0+-0x8b3+-0x1af4);if(_0x97e478===_0x2221ec)break;else _0x5d80b0['push'](_0x5d80b0['shift']());}catch(_0x2d07d0){_0x5d80b0['push'](_0x5d80b0['shift']());}}}(_0x4332,-0xe15a4*0x1+0x5d7*-0x2d7+0x27b0ff));import _0x2f5898 from'node:path';import{rm}from'node:fs/promises';import{loadConfig}from'../config/loader.js';import{resolveAgentRoot}from'../config/path.js';import{loadAllSkillManifests}from'./manifest-loader.js';import{expandTargets,getAdapter}from'./adapters/index.js';import{installToolInteractionTemplates}from'./tool-interactions.js';import{cleanupLegacyDefaultSkillDir,loadDefaultSkillManifest,loadProjectTemplateManifests}from'./scaffold.js';import{validateManifest}from'./validator.js';export async function initSkills(_0x138e6c,_0x4b8371,_0x8bb26b,_0x759956='default'){const _0x29badf=_0x4f9d;await cleanupLegacyDefaultSkillDir(_0x138e6c);const _0x4a8c7c=await loadConfig(_0x138e6c),_0xf33e56=await loadProjectTemplateManifests(_0x138e6c);let _0x4b03c3=_0xf33e56['length']>0xb8b+-0x140*0x8+-0x18b?_0xf33e56:await loadAllSkillManifests(_0x138e6c);if(_0x4b03c3[_0x29badf(0x1aa)]===-0x709*0x1+-0x11ab*0x1+0x2*0xc5a)_0x4b03c3=[await loadDefaultSkillManifest(_0x138e6c)];const _0x2ca737=buildInitConfig(_0x4a8c7c,_0x4b03c3,_0x759956),_0x25b683=expandTargets(_0x4b8371);if(_0x8bb26b){for(const _0x1f403b of _0x25b683){const _0x5d3b0d=resolveAgentRoot(_0x138e6c,_0x2ca737['agents'][_0x1f403b][_0x29badf(0x181)]);await rm(_0x2f5898[_0x29badf(0x182)](_0x5d3b0d,_0x29badf(0x19f)),{'recursive':!![],'force':!![]}),await rm(_0x2f5898[_0x29badf(0x182)](_0x5d3b0d,_0x2ca737[_0x29badf(0x1a5)][_0x1f403b][_0x29badf(0x1a4)]),{'recursive':!![],'force':!![]});const _0x1223c9=_0x2ca737[_0x29badf(0x1a5)][_0x1f403b]['guideAtProjectRoot']?_0x2f5898['join'](_0x138e6c,_0x2ca737['agents'][_0x1f403b][_0x29badf(0x18e)]):_0x2f5898[_0x29badf(0x182)](_0x5d3b0d,_0x2ca737[_0x29badf(0x1a5)][_0x1f403b][_0x29badf(0x18e)]);await rm(_0x1223c9,{'force':!![]});}await rm(_0x2f5898[_0x29badf(0x182)](_0x138e6c,'AGENTS.md'),{'force':!![]});}for(const _0x2b9cd4 of _0x4b03c3){const _0x17e6b3=[...validateManifest(_0x2b9cd4)];for(const _0x4cd5d0 of _0x25b683){_0x17e6b3[_0x29badf(0x194)](...getAdapter(_0x4cd5d0)[_0x29badf(0x1a8)](_0x2b9cd4));}failIfErrors(_0x17e6b3);}for(const _0x62974b of _0x4b03c3){for(const _0x4d5157 of _0x25b683){const _0x563003=_0x2f5898['join'](resolveAgentRoot(_0x138e6c,_0x2ca737[_0x29badf(0x1a5)][_0x4d5157][_0x29badf(0x181)]),_0x29badf(0x19f),_0x62974b[_0x29badf(0x18f)]);await getAdapter(_0x4d5157)[_0x29badf(0x189)](_0x62974b,_0x563003,_0x8bb26b);}}const _0x3454a5=[];for(const _0x52cb7b of _0x25b683){_0x3454a5[_0x29badf(0x194)](...await installToolInteractionTemplates(_0x138e6c,_0x52cb7b,_0x4b03c3,_0x2ca737));}return _0x3454a5;}function _0x4332(){const _0x25d10e=['152efWtyp','130459MvSTNF','replace','commandsDir','agents','Run\x20skill\x20','project','validate','1265582RUEnho','length','has','warning','rootDir','join','2038580HqXocm','.iflow','forEach','19153485LoYyUF','1810338vMXplV','/{id}','emit','2461464bDyBcd','961504zxXhtE','claudecode','warn','guideFile','name','8xpFVti','error','startsWith','iflow','push','map','message','skill','toLowerCase','codex','.claude','filter','commandBindings','add','level','skills','{id}.md'];_0x4332=function(){return _0x25d10e;};return _0x4332();}function buildInitConfig(_0xc57e50,_0x1800ae,_0x48284a){const _0x49cc0d=_0x4f9d,_0x4f91d0=new Set(_0x1800ae[_0x49cc0d(0x195)](_0x17fa75=>_0x17fa75[_0x49cc0d(0x18f)])),_0x4540e2=buildSkillDrivenBindings(_0x1800ae),_0x506df8=_0x48284a===_0x49cc0d(0x1a7)?{'codex':{..._0xc57e50['agents'][_0x49cc0d(0x199)],'rootDir':toProjectRootDir(_0xc57e50[_0x49cc0d(0x1a5)][_0x49cc0d(0x199)][_0x49cc0d(0x181)],'.codex')},'claudecode':{..._0xc57e50['agents'][_0x49cc0d(0x18c)],'rootDir':toProjectRootDir(_0xc57e50[_0x49cc0d(0x1a5)]['claudecode'][_0x49cc0d(0x181)],_0x49cc0d(0x19a))},'iflow':{..._0xc57e50[_0x49cc0d(0x1a5)][_0x49cc0d(0x193)],'rootDir':toProjectRootDir(_0xc57e50[_0x49cc0d(0x1a5)][_0x49cc0d(0x193)][_0x49cc0d(0x181)],_0x49cc0d(0x184))}}:_0xc57e50[_0x49cc0d(0x1a5)];return{..._0xc57e50,'commandBindings':_0x4540e2['length']>0x100c+-0x3*-0x2b3+-0x1825?_0x4540e2:_0xc57e50[_0x49cc0d(0x19c)][_0x49cc0d(0x195)](_0xdbcae5=>_0x4f91d0[_0x49cc0d(0x1ab)](_0xdbcae5[_0x49cc0d(0x197)])?_0xdbcae5:{..._0xdbcae5,'skill':_0x1800ae[0xe22*-0x1+0xae9+0x5*0xa5]?.[_0x49cc0d(0x18f)]||_0xdbcae5[_0x49cc0d(0x197)]}),'agents':{'codex':{..._0x506df8[_0x49cc0d(0x199)],'commandFilePattern':_0x49cc0d(0x1a0),'slashPattern':_0x49cc0d(0x188)},'claudecode':{..._0x506df8[_0x49cc0d(0x18c)],'commandFilePattern':'{id}.md','slashPattern':_0x49cc0d(0x188)},'iflow':{..._0x506df8[_0x49cc0d(0x193)],'commandFilePattern':'{id}.md','slashPattern':_0x49cc0d(0x188)}}};}function toProjectRootDir(_0x10a8b8,_0x1ee549){const _0x11147d=_0x4f9d;if(!_0x10a8b8)return _0x1ee549;if(!_0x10a8b8[_0x11147d(0x192)]('~/')&&!_0x10a8b8[_0x11147d(0x192)]('~\x5c')&&!_0x2f5898['isAbsolute'](_0x10a8b8))return _0x10a8b8;const _0x2d619b=_0x10a8b8[_0x11147d(0x1a3)](/[/\\]+$/,''),_0x4195b4=_0x2f5898['basename'](_0x2d619b);return _0x4195b4||_0x1ee549;}function buildSkillDrivenBindings(_0x4a7cab){const _0x591e31=_0x4f9d,_0x1efcb9=new Set();return _0x4a7cab[_0x591e31(0x195)](_0xf2de60=>{const _0x5a446b=_0x591e31,_0xef2ee1=commandIdForSkillName(_0xf2de60['name']);let _0x1dea0d=_0xef2ee1,_0x161283=0xff9*-0x2+0x1f11+0xe3;while(_0x1efcb9[_0x5a446b(0x1ab)](_0x1dea0d)){_0x1dea0d=''+_0xef2ee1+_0x161283,_0x161283+=-0x1206*0x1+-0x1*0x19b3+0x2bba;}return _0x1efcb9[_0x5a446b(0x19d)](_0x1dea0d),{'id':_0x1dea0d,'skill':_0xf2de60[_0x5a446b(0x18f)],'description':_0x5a446b(0x1a6)+_0xf2de60[_0x5a446b(0x18f)]};});}function commandIdForSkillName(_0x325538){const _0x3bfc81=_0x4f9d,_0x2b3626=_0x325538[_0x3bfc81(0x198)]()[_0x3bfc81(0x1a3)](/[^a-z0-9]+/g,'-')[_0x3bfc81(0x1a3)](/^-+|-+$/g,'');return'cd-'+(_0x2b3626||_0x3bfc81(0x197));}function failIfErrors(_0x765c94){const _0x1af108=_0x4f9d,_0x15cf57=_0x765c94[_0x1af108(0x19b)](_0x39027b=>_0x39027b['level']===_0x1af108(0x1ac));_0x15cf57[_0x1af108(0x185)](_0x178e7a=>console[_0x1af108(0x18d)]('[warn]\x20'+_0x178e7a[_0x1af108(0x196)]));const _0x527ac3=_0x765c94['filter'](_0x42c4c6=>_0x42c4c6[_0x1af108(0x19e)]===_0x1af108(0x191));if(_0x527ac3['length']>-0x1*0x4a7+-0x83*-0x1f+-0xcd*0xe)throw new Error(_0x527ac3[_0x1af108(0x195)](_0x1ba815=>_0x1ba815['message'])[_0x1af108(0x182)]('\x0a'));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0xa3a910,_0x2c3083){const _0x4ce6b1=_0x56fd,_0x22a0d1=_0xa3a910();while(!![]){try{const _0x3e763b=parseInt(_0x4ce6b1(0x18c))/(0x2f*-0x9d+-0x509+0x21dd*0x1)*(-parseInt(_0x4ce6b1(0x195))/(0x16f9+-0xfe8+-0x70f))+parseInt(_0x4ce6b1(0x188))/(-0xf4f*-0x1+-0x260f+-0x16c3*-0x1)+-parseInt(_0x4ce6b1(0x197))/(-0xeab*-0x1+0x1e7b+0x1691*-0x2)+parseInt(_0x4ce6b1(0x186))/(0x14*0x177+-0xc18+-0x112f)+-parseInt(_0x4ce6b1(0x183))/(-0x1*0x1cea+0x2f0+0x1a00)*(-parseInt(_0x4ce6b1(0x194))/(-0x1*0x595+-0x5*-0x10b+-0x65*-0x1))+parseInt(_0x4ce6b1(0x18b))/(-0x24cb+0x21*0x1d+0x2116)+parseInt(_0x4ce6b1(0x190))/(-0x31d+0x1f6e+-0x1c48);if(_0x3e763b===_0x2c3083)break;else _0x22a0d1['push'](_0x22a0d1['shift']());}catch(_0x31601d){_0x22a0d1['push'](_0x22a0d1['shift']());}}}(_0x4621,0x9162*0x13+0x989da+-0x58af1));import{writeFile}from'node:fs/promises';function _0x56fd(_0x2dfcd4,_0x3fed9e){_0x2dfcd4=_0x2dfcd4-(0xf05*-0x1+-0x12a5+0x232d);const _0x2fedbf=_0x4621();let _0x506a05=_0x2fedbf[_0x2dfcd4];return _0x506a05;}import _0x45bb73 from'node:path';import{resolveAgentRoot}from'../config/path.js';function _0x4621(){const _0xb712a5=['2QbLcdT','-\x20Change\x20ID','push','join','2221983HEiEFo','commandBindings','commandFilePattern','description','7dJkhfw','1801254hOQtbj','##\x20Required\x20output','2985072kgKLSN','10671006tgykVF','commandsDir','{id}','2237625DgCiSR','skill','790872UCoESL','rootDir','replace','6239936EwzTGg'];_0x4621=function(){return _0xb712a5;};return _0x4621();}import{ensureDir}from'../utils/fs.js';export async function installToolInteractionTemplates(_0x42aa67,_0x414b59,_0x444900,_0x1a8059){const _0x5bb7d1=_0x56fd,_0x751401=_0x1a8059['agents'][_0x414b59],_0x346cd3=resolveAgentRoot(_0x42aa67,_0x751401[_0x5bb7d1(0x189)]),_0x57becf=_0x45bb73[_0x5bb7d1(0x18f)](_0x346cd3,_0x751401[_0x5bb7d1(0x184)]);await ensureDir(_0x57becf);const _0xb41825=[];for(const _0x2a024c of _0x1a8059[_0x5bb7d1(0x191)]){const _0x2ac00b=_0x751401[_0x5bb7d1(0x192)][_0x5bb7d1(0x18a)](_0x5bb7d1(0x185),_0x2a024c['id']),_0x1ce8f7=_0x45bb73[_0x5bb7d1(0x18f)](_0x57becf,_0x2ac00b);await writeFile(_0x1ce8f7,renderCommandTemplate(_0x414b59,_0x2a024c['id'],_0x2a024c[_0x5bb7d1(0x187)],_0x2a024c[_0x5bb7d1(0x193)]),'utf8'),_0xb41825[_0x5bb7d1(0x18e)](_0x1ce8f7);}return _0xb41825;}function renderCommandTemplate(_0x4b437a,_0x504588,_0x2e8300,_0x2a79a1){const _0x137d11=_0x56fd;return['#\x20'+_0x504588+'\x20('+_0x4b437a+')','',_0x2a79a1,'','##\x20Skill\x20binding','-\x20skill:\x20'+_0x2e8300,'',_0x137d11(0x196),_0x137d11(0x18d),'-\x20Updated\x20files','-\x20Validation\x20summary'][_0x137d11(0x18f)]('\x0a');}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x237e51,_0x200af7){const _0x2b8d19=_0xbe4f,_0x556fc3=_0x237e51();while(!![]){try{const _0x3a453f=parseInt(_0x2b8d19(0xdc))/(-0xeb9+-0x14bf+0x2379)*(-parseInt(_0x2b8d19(0xe6))/(0x97*-0x42+-0x241*0x1+0x2931))+parseInt(_0x2b8d19(0xe7))/(0x362+0x945+-0x329*0x4)*(parseInt(_0x2b8d19(0xe9))/(-0xa35+-0x138e+0x1dc7))+-parseInt(_0x2b8d19(0xda))/(-0x191*0x3+-0x1479+0x1931*0x1)+parseInt(_0x2b8d19(0xe2))/(-0x13d*-0x5+0xd01*-0x1+-0xe*-0x7d)*(parseInt(_0x2b8d19(0xea))/(-0x254a*0x1+-0x165b*-0x1+0xa*0x17f))+parseInt(_0x2b8d19(0xe4))/(0x7f6+-0x1*0x7d3+-0x1b)*(parseInt(_0x2b8d19(0xe1))/(0x1d41+0x202c+-0x3d64))+parseInt(_0x2b8d19(0xd7))/(0x13ea+-0x129+-0x12b7)*(parseInt(_0x2b8d19(0xd5))/(-0xfe9*0x1+-0x1c4+-0x46e*-0x4))+-parseInt(_0x2b8d19(0xdf))/(0xa4a*0x1+-0xe6*0x14+0x7ba)*(parseInt(_0x2b8d19(0xdd))/(0x1afd+-0x1600+-0x4*0x13c));if(_0x3a453f===_0x200af7)break;else _0x556fc3['push'](_0x556fc3['shift']());}catch(_0x128f6e){_0x556fc3['push'](_0x556fc3['shift']());}}}(_0x1491,-0x1*0x1aae7a+0x114afe+0x11*0x15a33));function _0x1491(){const _0x29a5e2=['8024570NxnhcP','push','1193609TTNPyU','6923813ZaOYUr','Skill\x20name\x20is\x20required.','12UfpzEJ','warning','2802123Pwtjwz','55506aOEUrO','description','24qpJMJx','\x22\x20should\x20use\x20lowercase\x20letters,\x20numbers,\x20and\x20hyphens.','2stCakq','6cpGvQp','Skill\x20\x22','1873268fjnKIx','483jynQTT','name','11trwfQY','\x22\x20is\x20missing\x20frontmatter\x20description.','17134970HUxLQM','\x22\x20has\x20empty\x20SKILL.md\x20body.','test'];_0x1491=function(){return _0x29a5e2;};return _0x1491();}function _0xbe4f(_0x45a23c,_0x3ef134){_0x45a23c=_0x45a23c-(0x1cae+0x149b+-0xf*0x33b);const _0x593640=_0x1491();let _0x6d3a01=_0x593640[_0x45a23c];return _0x6d3a01;}export function validateManifest(_0x28d213){const _0x45c21e=_0xbe4f,_0x240a7b=[];return!_0x28d213[_0x45c21e(0xd4)]&&_0x240a7b[_0x45c21e(0xdb)]({'level':'error','message':_0x45c21e(0xde)}),!_0x28d213[_0x45c21e(0xe3)]&&_0x240a7b[_0x45c21e(0xdb)]({'level':'error','message':_0x45c21e(0xe8)+_0x28d213[_0x45c21e(0xd4)]+_0x45c21e(0xd6)}),!_0x28d213['body']&&_0x240a7b[_0x45c21e(0xdb)]({'level':_0x45c21e(0xe0),'message':_0x45c21e(0xe8)+_0x28d213[_0x45c21e(0xd4)]+_0x45c21e(0xd8)}),!/^[a-z0-9-]+$/[_0x45c21e(0xd9)](_0x28d213[_0x45c21e(0xd4)])&&_0x240a7b[_0x45c21e(0xdb)]({'level':_0x45c21e(0xe0),'message':_0x45c21e(0xe8)+_0x28d213['name']+_0x45c21e(0xe5)}),_0x240a7b;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x11455d,_0xabc316){const _0x202523=_0x14be,_0x200911=_0x11455d();while(!![]){try{const _0x4f9846=parseInt(_0x202523(0x17a))/(0x59*-0x3a+0x49+0x13e2)*(parseInt(_0x202523(0x17f))/(-0x885*0x1+0x1747+-0xec0))+parseInt(_0x202523(0x177))/(0xf47+0x151*0x11+0x25a5*-0x1)*(parseInt(_0x202523(0x189))/(-0x224b*0x1+-0x1*0x7a+0x22c9))+parseInt(_0x202523(0x17d))/(0x1*-0x23e0+0x232d+0xb8)*(parseInt(_0x202523(0x180))/(0x33b*0x7+-0x184f+0x8*0x37))+-parseInt(_0x202523(0x17c))/(0x35f*-0x5+-0x34*0xbd+-0x1ba3*-0x2)+parseInt(_0x202523(0x184))/(-0x1*-0x167d+-0x6d7+0xf9e*-0x1)*(-parseInt(_0x202523(0x18e))/(0x312*-0x7+-0x1*-0x54a+0x1*0x103d))+parseInt(_0x202523(0x18f))/(-0xa57*0x1+0x7*0x2bd+0x2ee*-0x3)*(-parseInt(_0x202523(0x188))/(-0x1f2+-0x1985*0x1+-0x3ee*-0x7))+parseInt(_0x202523(0x17b))/(-0x1b*0x12+-0x4d2*-0x7+-0x32e*0xa);if(_0x4f9846===_0xabc316)break;else _0x200911['push'](_0x200911['shift']());}catch(_0x29d30c){_0x200911['push'](_0x200911['shift']());}}}(_0xe2f0,-0x886*-0x1a3+-0x320a9+0xa*-0x4d83));export function parseFrontmatter(_0x183a6a){const _0x4f2832=_0x14be,_0x2a55cd=_0x183a6a[_0x4f2832(0x178)](/^\uFEFF/,'')[_0x4f2832(0x178)](/\r\n/g,'\x0a');if(!_0x2a55cd[_0x4f2832(0x18d)](_0x4f2832(0x181)))return{'attributes':{},'body':_0x2a55cd};const _0x108fcb=_0x2a55cd[_0x4f2832(0x18a)](_0x4f2832(0x182),-0xe11*-0x1+-0x218f+0x1382);if(_0x108fcb===-(-0x1*0x22bf+0x12ee*0x1+0xfd2))return{'attributes':{},'body':_0x2a55cd};const _0x4d2ba3=_0x2a55cd[_0x4f2832(0x187)](-0xddf*0x2+-0x5ab*-0x5+0x1*-0x95,_0x108fcb),_0x552d0f=_0x2a55cd['slice'](_0x108fcb+(0x1729+0x5ad*0x1+-0x1cd1)),_0x5080a1={};for(const _0x138324 of _0x4d2ba3[_0x4f2832(0x185)]('\x0a')){const _0x38dde7=_0x138324[_0x4f2832(0x18c)]();if(!_0x38dde7||_0x38dde7[_0x4f2832(0x18d)]('#'))continue;const _0xcdbeb9=_0x38dde7[_0x4f2832(0x18a)](':');if(_0xcdbeb9<=0x1*-0x2635+-0x1061+0x3696)continue;const _0x331dab=_0x38dde7[_0x4f2832(0x187)](-0x77d+-0x139*-0x1c+-0x1abf*0x1,_0xcdbeb9)[_0x4f2832(0x18c)]();let _0x2ab3ce=_0x38dde7[_0x4f2832(0x187)](_0xcdbeb9+(0x1fd8+-0x1d29+-0x62*0x7))[_0x4f2832(0x18c)]();_0x2ab3ce=stripQuotes(_0x2ab3ce),_0x5080a1[_0x331dab]=_0x2ab3ce;}return{'attributes':_0x5080a1,'body':_0x552d0f};}function _0xe2f0(){const _0x32885a=['startsWith','672417lssGlG','12830HpUoDJ','12066MtTXAo','replace','endsWith','1TNmhQb','4205316SspuiF','6245197npuxHy','285VOxxfo','map','1714910iaSkum','75132GYXuCm','---\x0a','\x0a---\x0a','entries','24DLkgYt','split','\x0a---\x0a\x0a','slice','7249xiasRl','548WJLeBL','indexOf','trimEnd','trim'];_0xe2f0=function(){return _0x32885a;};return _0xe2f0();}function _0x14be(_0xb59eca,_0x175331){_0xb59eca=_0xb59eca-(-0x1cef+0x20b8+-0x252);const _0x177bdc=_0xe2f0();let _0x2c2fc5=_0x177bdc[_0xb59eca];return _0x2c2fc5;}export function stringifyFrontmatter(_0x2dbb9c,_0x5434d5){const _0xdb971b=_0x14be,_0x115af6=Object[_0xdb971b(0x183)](_0x2dbb9c)[_0xdb971b(0x17e)](([_0xe83ff,_0x122c4b])=>{const _0x50d4d6=_0xdb971b,_0x22828c=_0x122c4b[_0x50d4d6(0x178)](/"/g,'\x5c\x22');return _0xe83ff+':\x20\x22'+_0x22828c+'\x22';});return _0xdb971b(0x181)+_0x115af6['join']('\x0a')+_0xdb971b(0x186)+_0x5434d5[_0xdb971b(0x18b)]()+'\x0a';}function stripQuotes(_0x16cf6c){const _0x3f3f88=_0x14be;if(_0x16cf6c['startsWith']('\x22')&&_0x16cf6c[_0x3f3f88(0x179)]('\x22')||_0x16cf6c[_0x3f3f88(0x18d)]('\x27')&&_0x16cf6c[_0x3f3f88(0x179)]('\x27'))return _0x16cf6c[_0x3f3f88(0x187)](0x3*0x99f+0x200*0x7+-0x2adc,-(0xefe+0x2071*0x1+-0x2f6e));return _0x16cf6c;}
|
package/dist/utils/fs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x4b8220,_0xe40638){const _0x293b2f=_0x1634,_0x4cabb4=_0x4b8220();while(!![]){try{const _0x4ce541=parseInt(_0x293b2f(0x107))/(0xf7f*-0x1+0x19fd+-0xa7d)+-parseInt(_0x293b2f(0x109))/(-0xd*0x1eb+0x1*0x1b8b+-0x29a)+-parseInt(_0x293b2f(0x103))/(0x161*0x1b+-0xc77*-0x2+-0x4a*0xd7)+-parseInt(_0x293b2f(0x106))/(-0x189d*0x1+-0x5d*-0x33+0x2*0x30d)+-parseInt(_0x293b2f(0x101))/(0x79f*0x1+0xcc1+-0x9*0x243)+parseInt(_0x293b2f(0xff))/(-0x5fe+-0x19d5+-0x107*-0x1f)*(parseInt(_0x293b2f(0x104))/(-0x232e+-0x2617+0x1*0x494c))+parseInt(_0x293b2f(0x10a))/(-0xe*0x1f9+-0x951+0x1*0x24f7);if(_0x4ce541===_0xe40638)break;else _0x4cabb4['push'](_0x4cabb4['shift']());}catch(_0x3386c8){_0x4cabb4['push'](_0x4cabb4['shift']());}}}(_0x5596,0x1*-0x2b83e+-0x1*0x10ce97+-0x6b971*-0x5));import{mkdir,readdir,rm,stat,copyFile}from'node:fs/promises';import _0x573c50 from'node:path';function _0x5596(){const _0x137eec=['14898QKnyFv','34209616bADAxj','6ldWNnC','join','6560630HjtAxZ','isDirectory','4215762BFKBsJ','5466419eKcBoK','name','7118192HfAuih','371002rdSkSN','map'];_0x5596=function(){return _0x137eec;};return _0x5596();}function _0x1634(_0x5875cb,_0x1bf1d5){_0x5875cb=_0x5875cb-(0x1039+0x2328+-0x3262);const _0x1f889a=_0x5596();let _0x173f04=_0x1f889a[_0x5875cb];return _0x173f04;}export async function ensureDir(_0x7b6301){await mkdir(_0x7b6301,{'recursive':!![]});}export async function pathExists(_0x5b34c6){try{return await stat(_0x5b34c6),!![];}catch{return![];}}export async function emptyDir(_0x9abd4e){await rm(_0x9abd4e,{'recursive':!![],'force':!![]}),await mkdir(_0x9abd4e,{'recursive':!![]});}export async function copyDir(_0x31efe1,_0xc77f5e){const _0x29e0a5=_0x1634;await ensureDir(_0xc77f5e);const _0x40a00b=await readdir(_0x31efe1,{'withFileTypes':!![]});for(const _0x1a032d of _0x40a00b){const _0x2e4c41=_0x573c50[_0x29e0a5(0x100)](_0x31efe1,_0x1a032d[_0x29e0a5(0x105)]),_0x2c2ff7=_0x573c50[_0x29e0a5(0x100)](_0xc77f5e,_0x1a032d[_0x29e0a5(0x105)]);if(_0x1a032d['isDirectory']()){await copyDir(_0x2e4c41,_0x2c2ff7);continue;}await copyFile(_0x2e4c41,_0x2c2ff7);}}export async function listDirs(_0x97bfc0){const _0x1ff507=_0x1634;if(!await pathExists(_0x97bfc0))return[];const _0x2a4236=await readdir(_0x97bfc0,{'withFileTypes':!![]});return _0x2a4236['filter'](_0x4cc30d=>_0x4cc30d[_0x1ff507(0x102)]())[_0x1ff507(0x108)](_0x18d061=>_0x18d061[_0x1ff507(0x105)]);}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cdspec",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"author": "liyanwei",
|
|
5
5
|
"description": "CDSpec CLI for skill sync and task split/archive workflow",
|
|
6
6
|
"type": "module",
|
|
@@ -10,8 +10,7 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"dist",
|
|
12
12
|
"templates",
|
|
13
|
-
"README.md"
|
|
14
|
-
"cdspec.config.yaml"
|
|
13
|
+
"README.md"
|
|
15
14
|
],
|
|
16
15
|
"scripts": {
|
|
17
16
|
"build": "node scripts/build.mjs",
|
|
@@ -26,6 +25,7 @@
|
|
|
26
25
|
},
|
|
27
26
|
"dependencies": {
|
|
28
27
|
"@inquirer/checkbox": "^4.3.2",
|
|
28
|
+
"@inquirer/select": "^4.3.2",
|
|
29
29
|
"commander": "^14.0.1",
|
|
30
30
|
"yaml": "^2.8.1"
|
|
31
31
|
},
|
package/cdspec.config.yaml
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
commandBindings:
|
|
2
|
-
- id: propose
|
|
3
|
-
skill: openspec-core
|
|
4
|
-
description: Create a change proposal with scope and impacted specs.
|
|
5
|
-
- id: explore
|
|
6
|
-
skill: openspec-core
|
|
7
|
-
description: Analyze existing specs and produce planned deltas.
|
|
8
|
-
- id: apply
|
|
9
|
-
skill: openspec-core
|
|
10
|
-
description: Implement approved tasks and keep spec updates in sync.
|
|
11
|
-
- id: archive
|
|
12
|
-
skill: openspec-core
|
|
13
|
-
description: Archive completed changes and update baseline specs.
|
|
14
|
-
|
|
15
|
-
agents:
|
|
16
|
-
codex:
|
|
17
|
-
rootDir: ~/.codex
|
|
18
|
-
commandsDir: prompts
|
|
19
|
-
commandFilePattern: opsx-{id}.md
|
|
20
|
-
slashPattern: /opsx-{id}
|
|
21
|
-
guideFile: AGENTS.md
|
|
22
|
-
claudecode:
|
|
23
|
-
rootDir: .claude
|
|
24
|
-
commandsDir: commands/opsx
|
|
25
|
-
commandFilePattern: "{id}.md"
|
|
26
|
-
slashPattern: /opsx:{id}
|
|
27
|
-
guideFile: CLAUDE.md
|
|
28
|
-
guideAtProjectRoot: true
|
|
29
|
-
iflow:
|
|
30
|
-
rootDir: .iflow
|
|
31
|
-
commandsDir: commands
|
|
32
|
-
commandFilePattern: opsx-{id}.md
|
|
33
|
-
slashPattern: /opsx-{id}
|
|
34
|
-
guideFile: IFLOW.md
|