@decencia/ch-cli 1.34.5 → 1.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent/2t-decencia-channel-issue-coder.md +1 -1
- package/agent/2t-decencia-channel-pr-merger.md +1 -1
- package/agent/2t-decencia-channel-terraformer.md +1 -1
- package/dist/client.d.ts +4 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +7 -1
- package/dist/client.js.map +1 -1
- package/dist/commands/skills.d.ts +29 -0
- package/dist/commands/skills.d.ts.map +1 -1
- package/dist/commands/skills.js +707 -2
- package/dist/commands/skills.js.map +1 -1
- package/dist/skills-cache.d.ts +140 -0
- package/dist/skills-cache.d.ts.map +1 -0
- package/dist/skills-cache.js +388 -0
- package/dist/skills-cache.js.map +1 -0
- package/dist/skills-diff.d.ts +151 -0
- package/dist/skills-diff.d.ts.map +1 -0
- package/dist/skills-diff.js +476 -0
- package/dist/skills-diff.js.map +1 -0
- package/package.json +1 -1
- package/skill/2t-decencia-channel-change-manager/SKILL.md +1 -1
- package/skill/2t-decencia-channel-change-propagation-v2/SKILL.md +1 -1
- package/skill/2t-decencia-channel-cli-v2/SKILL.md +1 -1
- package/skill/2t-decencia-channel-db-schema-v2/SKILL.md +1 -1
- package/skill/2t-decencia-channel-github-issue/SKILL.md +1 -1
- package/skill/2t-decencia-channel-ia-v2/SKILL.md +1 -1
- package/skill/2t-decencia-channel-orchestrator/SKILL.md +5 -1
- package/skill/2t-decencia-channel-policy-v2/SKILL.md +1 -1
- package/skill/2t-decencia-channel-prd-v2/SKILL.md +1 -1
- package/skill/2t-decencia-channel-project-bootstrap/SKILL.md +1 -1
- package/skill/2t-decencia-channel-screen-v2/SKILL.md +1 -1
- package/skill/2t-decencia-channel-spec-v2/SKILL.md +1 -1
- package/skill/2t-decencia-channel-sprint-builder-v2/SKILL.md +1 -1
- package/skill/2t-decencia-channel-sprint-runner/SKILL.md +1 -1
- package/skill/2t-decencia-channel-sqa-v2/SKILL.md +1 -1
- package/skill/2t-decencia-channel-userflow-v2/SKILL.md +1 -1
- package/skill/2t-decencia-channel-work-status-v2/SKILL.md +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,oCAEC;AAGD,sCAEC;AAYD,oCAEC;AAMD,kCAGC;AAQD,8CAqBC;AAMD,0CAQC;AASD,0DAGC;AAoCD,sDAsBC;AAGD,8CAKC;AASD,gDAuCC;AAMD,kDAOC;AAMD,gCAEC;AAOD,8CAOC;AAkCD,sDAuPC;AAtjBD,uCAAyB;AACzB,2CAA6B;AAC7B,qCAA+B;AAC/B,0DAAiC;AACjC,sCAAyC;AACzC,sCAMmB;AAyBnB,iDAAiD;AACpC,QAAA,uBAAuB,GAAG,UAAU,CAAC;AAElD,kEAAkE;AAElE;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAAC,IAA0B;IACrD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,yBAAyB;AACzB,SAAgB,aAAa,CAAC,KAAiB;IAC7C,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC;AACnE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAAC,IAA0B;IACrD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,WAA+B;IACzD,MAAM,IAAI,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,OAAO,IAAI,IAAI,0BAA0B,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,GAAW;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAkB,EAAE,CAAC;IAE9B,MAAM,IAAI,GAAG,CAAC,OAAe,EAAQ,EAAE;QACrC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,KAAK,CAAC,cAAc,EAAE;gBAAE,SAAS;YACrC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,CAAC;IACX,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,QAAkB;IAChD,OAAO,QAAQ;SACZ,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,KAAK,+BAAuB;QAC7B,CAAC,CAAC,QAAQ,CAAC,IAAI,+BAAuB,EAAE,CAAC,CAC5C;SACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,qDAAqD;AACrD,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAE5E;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,KAAa;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,iEAAiE;AACjE,SAAS,uBAAuB,CAAC,QAAgB;IAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAElC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,KAAK,EAAE,CAAC;IACnE,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAExE,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0DAA0D;AAC1D,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,QAAgB;IACpD,MAAM,KAAK,GAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAC9D,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5B,MAAM,KAAK,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEjC,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,IAAA,cAAI,EAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;QAC/B,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,SAAgB,iBAAiB,CAC/B,IAAuB,EACvB,IAAY;IAEZ,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,GAAW;IAI5C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,kBAAkB,QAAQ,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,8BAA8B,+BAAuB,aAAa,QAAQ,EAAE,CAC7E,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAE,CAAC;IAC/D,MAAM,WAAW,GAAG,qBAAqB,CACvC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAC1C,CAAC;IACF,wDAAwD;IACxD,IACE,CAAC,uBAAuB,CAAC,WAAW,CAAC,IAAI,CAAC;QAC1C,CAAC,uBAAuB,CAAC,WAAW,CAAC,WAAW,CAAC,EACjD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,GAAG,+BAAuB,+CAA+C,UAAU,EAAE,CACtF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CACjC,IAAS,EACT,KAAyB;IAEzB,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAC,KAAa,EAAE,QAAkB;IAC1D,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAC/B,IAAS,EACT,GAAuB;IAEvB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,eAAe,CACtB,OAAsB,EACtB,KAAc,EACd,IAAe;IAEf,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CACT,OAAO,EACP,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAC9C,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,IAAI,YAAY;QAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACrD,KAAK,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO;YAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yEAAyE;AAEzE,SAAgB,qBAAqB,CAAC,OAAgB;IACpD,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,2CAA2C,CAAC,CAAC;IAE5D,iBAAiB;IACjB,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,sDAAsD,CACvD;SACA,MAAM,CACL,UAAU,EACV,0DAA0D,CAC3D;SACA,MAAM,CACL,gBAAgB,EAChB,6CAA6C,CAC9C;SACA,MAAM,CACL,cAAc,EACd,uCAAuC,CACxC;SACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QAE/D,2CAA2C;QAC3C,gDAAgD;QAChD,MAAM,MAAM,GACV,EAAE,CAAC;QACL,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,iEAAiE;YACnE,CAAC;QACH,CAAC;QACD,kDAAkD;QAClD,IAAA,qBAAY,EACV,iBAAiB,CACf,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAC1C,OAAO,CAAC,GAAG,CACZ,EACD,UAAU,CACX,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,0DAA0D;IAC1D,MAAM;SACH,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CACV,oDAAoD,CACrD;SACA,MAAM,CACL,UAAU,EACV,wEAAwE,CACzE;SACA,MAAM,CACL,eAAe,EACf,mGAAmG,CACpG;SACA,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAO,EAAE,EAAE;QACtC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAE/D,8CAA8C;YAC9C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9D,MAAM,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,IAAA,kBAAS,EACP,mBAAmB,IAAI,MAAM,KAAK,gCAAgC,CACnE,CAAC;gBACF,OAAO;YACT,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,8BAA8B;gBAC9B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;oBACjE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;oBAC9B,YAAY,EAAE,aAAa;iBAC5B,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,IAAA,sBAAa,GAAE,EAAE,CAAC;oBACpB,0CAA0C;oBAC1C,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;oBAChD,MAAM,IAAI,GAAG,WAAW,CACtB,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAC1D,CAAC;oBACF,IAAA,qBAAY,EACV;wBACE,KAAK;wBACL,IAAI;wBACJ,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,IAAI;wBACJ,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;qBACjC,EACD,UAAU,CACX,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,4CAA4C;oBAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC;gBACD,OAAO;YACT,CAAC;YAED,kCAAkC;YAClC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACnE,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,8CAA8C;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,8CAA8C;IAC9C,MAAM;SACH,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CACL,UAAU,EACV,2GAA2G,CAC5G;SACA,MAAM,CACL,gBAAgB,EAChB,uDAAuD,CACxD;SACA,MAAM,CACL,cAAc,EACd,sEAAsE,EACtE,UAAU,EACV,EAAE,CACH;SACA,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,OAAO,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,QAA+C,CAAC;QACpD,IAAI,CAAC;YACH,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAA,kBAAS,EAAC,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;QAC1C,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,MAAM,OAAO,GACX,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM;gBAC/B,CAAC,CAAC,WAAW,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;gBACrC,CAAC,CAAC,EAAE,CAAC;YACT,IAAA,kBAAS,EACP,iBAAiB,WAAW,CAAC,IAAI,KAAK,KAAK,gBAAgB,OAAO,CAAC,MAAM,IAAI,SAAS,GAAG,OAAO,EAAE,CACnG,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE;gBAC7D,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE;aAClC,CAAC,CAAC;YACH,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC/B,IAAA,qBAAY,EACV,OAAO,WAAW,CAAC,IAAI,kBAAkB,KAAK,QAAQ,OAAO,CAAC,MAAM,KAAK,CAC1E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,2CAA2C;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,mDAAmD;IACnD,MAAM;SACH,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CACL,UAAU,EACV,wEAAwE,CACzE;SACA,MAAM,CACL,gBAAgB,EAChB,2DAA2D,CAC5D;SACA,MAAM,CACL,cAAc,EACd,0EAA0E,EAC1E,UAAU,EACV,EAAE,CACH;SACA,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,GAAW,EAAE,OAAO,EAAE,EAAE;QACnD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,QAA+C,CAAC;QACpD,IAAI,CAAC;YACH,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAA,kBAAS,EAAC,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;QAC7B,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,MAAM,OAAO,GACX,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM;gBAC/B,CAAC,CAAC,WAAW,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;gBACrC,CAAC,CAAC,EAAE,CAAC;YACT,IAAA,kBAAS,EACP,iBAAiB,IAAI,KAAK,KAAK,mBAAmB,OAAO,CAAC,MAAM,IAAI,SAAS,GAAG,OAAO,EAAE,CAC1F,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAE/D,+CAA+C;YAC/C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9D,MAAM,EAAE,GAAG,iBAAiB,CAC1B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAC/B,IAAI,CACL,CAAC;YACF,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,IAAA,kBAAS,EACP,uBAAuB,IAAI,MAAM,KAAK,6BAA6B,CACpE,CAAC;gBACF,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAClE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CACjC,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAC/B,IAAI,EACJ,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,CACtC,CAAC;YACF,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC/B,IAAA,qBAAY,EACV,OAAO,IAAI,kBAAkB,KAAK,QAAQ,OAAO,CAAC,MAAM,KAAK,CAC9D,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import type { SkillScope } from './commands/skills';
|
|
2
|
+
/**
|
|
3
|
+
* 목록 스냅샷을 신선도 맵으로 재사용하는 시간 창(ms).
|
|
4
|
+
*
|
|
5
|
+
* 에이전트의 `ch skills list` → `ch skills use` 는 몇 초 안에 잇따라 일어나므로
|
|
6
|
+
* 이 창 안에서는 목록 응답을 그대로 신선도 판정에 쓴다(추가 조회 0회). 창을 넘기면
|
|
7
|
+
* 다시 서버 목록을 읽는다 — 스냅샷이 낡아 변경을 놓치는 구간을 1분으로 묶는다.
|
|
8
|
+
* 방금 서버에서 고쳐 즉시 확인해야 하면 `--refresh` 로 창을 무시할 수 있다.
|
|
9
|
+
*/
|
|
10
|
+
export declare const SKILL_INDEX_TTL_MS = 60000;
|
|
11
|
+
/**
|
|
12
|
+
* 캐시 좌표 — 스킬 하나를 가리키는 키.
|
|
13
|
+
* 프로젝트 스킬은 프로젝트마다 같은 이름이 있을 수 있어 projectId 까지 넣는다.
|
|
14
|
+
*/
|
|
15
|
+
export interface SkillCacheTarget {
|
|
16
|
+
scope: SkillScope;
|
|
17
|
+
/** project 스코프의 대상 프로젝트. global 이면 무시된다. */
|
|
18
|
+
projectId?: string | null;
|
|
19
|
+
name: string;
|
|
20
|
+
}
|
|
21
|
+
/** 신선도 토큰을 뽑을 수 있는 최소 형태(목록 항목·단건 응답 공용). */
|
|
22
|
+
export interface SkillTimestamps {
|
|
23
|
+
updatedAt?: unknown;
|
|
24
|
+
createdAt?: unknown;
|
|
25
|
+
}
|
|
26
|
+
/** meta.json 에 저장하는 캐시 레코드(경로는 저장하지 않는다 — 읽을 때 계산). */
|
|
27
|
+
export interface CachedSkillRecord {
|
|
28
|
+
scope: SkillScope;
|
|
29
|
+
projectId: string | null;
|
|
30
|
+
name: string;
|
|
31
|
+
/** 서버 문서 id — 재다운로드 때 그대로 쓴다. */
|
|
32
|
+
id: string;
|
|
33
|
+
/** 신선도 토큰(`updatedAt ?? createdAt`). 모르면 null. */
|
|
34
|
+
token: string | null;
|
|
35
|
+
/** 스킬 폴더 기준 SKILL.md 상대경로. */
|
|
36
|
+
manifestPath: string;
|
|
37
|
+
/** 캐시에 실제로 쓴 파일들의 상대경로(매니페스트 포함). */
|
|
38
|
+
files: string[];
|
|
39
|
+
cachedAt: string;
|
|
40
|
+
}
|
|
41
|
+
/** 캐시 레코드 + 이번 실행에서 계산한 폴더 절대경로. */
|
|
42
|
+
export interface CachedSkill extends CachedSkillRecord {
|
|
43
|
+
dir: string;
|
|
44
|
+
}
|
|
45
|
+
/** 캐시에 적재할 내용(호출측이 서버에서 받아 넘긴다). */
|
|
46
|
+
export interface SkillCachePayload {
|
|
47
|
+
id: string;
|
|
48
|
+
token: string | null;
|
|
49
|
+
/** SKILL.md 의 스킬 폴더 기준 상대경로. 비었거나 위험하면 SKILL.md 로 떨어진다. */
|
|
50
|
+
manifestPath?: string;
|
|
51
|
+
/** SKILL.md 본문. */
|
|
52
|
+
content: string;
|
|
53
|
+
/** 번들 파일(매니페스트 제외). 폴더 구조 그대로 저장된다. */
|
|
54
|
+
files?: Array<{
|
|
55
|
+
path: string;
|
|
56
|
+
data: Buffer;
|
|
57
|
+
}>;
|
|
58
|
+
}
|
|
59
|
+
/** 목록 스냅샷의 항목 — 재다운로드에 필요한 id 와 신선도 토큰. */
|
|
60
|
+
export interface SkillSnapshotEntry {
|
|
61
|
+
id: string;
|
|
62
|
+
token: string | null;
|
|
63
|
+
}
|
|
64
|
+
/** 한 스코프의 목록 스냅샷. */
|
|
65
|
+
export interface SkillIndexSnapshot {
|
|
66
|
+
fetchedAt: string;
|
|
67
|
+
entries: Record<string, SkillSnapshotEntry>;
|
|
68
|
+
}
|
|
69
|
+
/** 캐시 루트 — `~/.ch/skills-cache`. */
|
|
70
|
+
export declare function cacheRoot(): string;
|
|
71
|
+
/**
|
|
72
|
+
* 스킬 이름을 폴더명으로 바꾼다.
|
|
73
|
+
*
|
|
74
|
+
* 이름은 서버(=남이 올린 SKILL.md frontmatter)에서 오므로 그대로 경로에 쓰면
|
|
75
|
+
* `..`·`/` 같은 값이 캐시 밖을 가리킬 수 있다. 파일명에 안전한 이름은 그대로 쓰고,
|
|
76
|
+
* 아니면 슬러그 + 원본 해시로 바꾼다(같은 이름이면 항상 같은 폴더, 다른 이름이면
|
|
77
|
+
* 슬러그가 같아도 해시가 갈라놓는다).
|
|
78
|
+
*/
|
|
79
|
+
export declare function cacheDirName(name: string): string;
|
|
80
|
+
/** 캐시 키 — meta.json 의 레코드 키. */
|
|
81
|
+
export declare function cacheKey(target: SkillCacheTarget): string;
|
|
82
|
+
/** 스킬 하나가 풀리는 캐시 폴더(절대경로). */
|
|
83
|
+
export declare function skillCacheDir(target: SkillCacheTarget): string;
|
|
84
|
+
/**
|
|
85
|
+
* 서버가 준 상대경로가 캐시 폴더 안에 머무는지 본다.
|
|
86
|
+
* 절대경로·드라이브문자·`..`·역슬래시는 거부한다(경로 탈출 방지).
|
|
87
|
+
*/
|
|
88
|
+
export declare function isSafeRelPath(relPath: string): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* 신선도 토큰 — `updatedAt ?? createdAt`.
|
|
91
|
+
*
|
|
92
|
+
* 한 번도 수정되지 않은 스킬은 updatedAt 이 null 이다(실측: 글로벌 52개 중 17개).
|
|
93
|
+
* updatedAt 만 토큰으로 쓰면 그 17개가 `null === null` 로 늘 캐시 적중이 되어
|
|
94
|
+
* *삭제 후 재등록* 같은 변경을 놓친다. createdAt 은 모든 문서에 있으므로 이를
|
|
95
|
+
* 폴백으로 두면 재등록이 새 토큰으로 드러난다.
|
|
96
|
+
*/
|
|
97
|
+
export declare function freshnessToken(entry: SkillTimestamps | null | undefined): string | null;
|
|
98
|
+
/**
|
|
99
|
+
* 캐시가 서버 토큰과 같은지 본다.
|
|
100
|
+
* 어느 한쪽 토큰이라도 모르면 신선하다고 단정하지 않는다(모르면 다시 받는다).
|
|
101
|
+
*/
|
|
102
|
+
export declare function isFresh(cached: CachedSkill | null | undefined, token: string | null): boolean;
|
|
103
|
+
/**
|
|
104
|
+
* 캐시된 스킬을 찾는다. 메타에는 있는데 본문 파일이 사라졌으면 미적중으로 본다
|
|
105
|
+
* (사람이 폴더를 지웠을 수 있다 — 메타만 믿고 빈 본문을 내보내지 않는다).
|
|
106
|
+
*/
|
|
107
|
+
export declare function readCachedSkill(target: SkillCacheTarget): CachedSkill | null;
|
|
108
|
+
/** 캐시된 SKILL.md 본문. 없으면 null. */
|
|
109
|
+
export declare function readCachedManifest(target: SkillCacheTarget): string | null;
|
|
110
|
+
/**
|
|
111
|
+
* 스킬 하나를 캐시에 적재한다(폴더 통째 교체).
|
|
112
|
+
*
|
|
113
|
+
* 서버에서 사라진 번들 파일이 남지 않도록 폴더를 비우고 다시 쓴다. 메타는 파일을
|
|
114
|
+
* 다 쓴 뒤에 갱신한다 — 중간에 실패하면 메타가 없으니 다음 실행이 다시 받는다.
|
|
115
|
+
*/
|
|
116
|
+
export declare function writeCachedSkill(target: SkillCacheTarget, payload: SkillCachePayload): CachedSkill;
|
|
117
|
+
/**
|
|
118
|
+
* 캐시에서 스킬을 회수한다(파일 + 메타 + 목록 스냅샷 항목).
|
|
119
|
+
* 서버에서 지운 스킬이 로컬에 유령으로 남지 않게 하는 자리다(SKILL-017).
|
|
120
|
+
* 지울 게 있었으면 true.
|
|
121
|
+
*/
|
|
122
|
+
export declare function removeCachedSkill(target: SkillCacheTarget): boolean;
|
|
123
|
+
/** 캐시에 들어있는 스킬 전부(후속 명령의 전량 동기화·대조용). */
|
|
124
|
+
export declare function listCachedSkills(): CachedSkill[];
|
|
125
|
+
/**
|
|
126
|
+
* `ch skills list` 응답을 신선도 맵으로 저장한다.
|
|
127
|
+
* 이 스냅샷이 있으면 뒤이은 `use` 가 서버를 다시 묻지 않는다(추가 조회 0회).
|
|
128
|
+
* 필터(--group/--tag) 이전의 전체 응답을 넣어야 맵이 온전하다.
|
|
129
|
+
*/
|
|
130
|
+
export declare function saveIndexSnapshot(scope: SkillScope, projectId: string | null, rows: Array<{
|
|
131
|
+
id?: unknown;
|
|
132
|
+
name?: unknown;
|
|
133
|
+
} & SkillTimestamps>): void;
|
|
134
|
+
/**
|
|
135
|
+
* 저장된 목록 스냅샷을 읽는다. 시간 창(기본 SKILL_INDEX_TTL_MS)을 넘겼거나
|
|
136
|
+
* 시계가 뒤로 간 흔적(미래 시각)이면 없는 셈 친다 — 낡은 맵으로 캐시 적중을
|
|
137
|
+
* 우겨서 변경을 놓치지 않게.
|
|
138
|
+
*/
|
|
139
|
+
export declare function readIndexSnapshot(scope: SkillScope, projectId: string | null, maxAgeMs?: number): SkillIndexSnapshot | null;
|
|
140
|
+
//# sourceMappingURL=skills-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills-cache.d.ts","sourceRoot":"","sources":["../src/skills-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.SKILL_INDEX_TTL_MS = void 0;
|
|
37
|
+
exports.cacheRoot = cacheRoot;
|
|
38
|
+
exports.cacheDirName = cacheDirName;
|
|
39
|
+
exports.cacheKey = cacheKey;
|
|
40
|
+
exports.skillCacheDir = skillCacheDir;
|
|
41
|
+
exports.isSafeRelPath = isSafeRelPath;
|
|
42
|
+
exports.freshnessToken = freshnessToken;
|
|
43
|
+
exports.isFresh = isFresh;
|
|
44
|
+
exports.readCachedSkill = readCachedSkill;
|
|
45
|
+
exports.readCachedManifest = readCachedManifest;
|
|
46
|
+
exports.writeCachedSkill = writeCachedSkill;
|
|
47
|
+
exports.removeCachedSkill = removeCachedSkill;
|
|
48
|
+
exports.listCachedSkills = listCachedSkills;
|
|
49
|
+
exports.saveIndexSnapshot = saveIndexSnapshot;
|
|
50
|
+
exports.readIndexSnapshot = readIndexSnapshot;
|
|
51
|
+
const crypto = __importStar(require("crypto"));
|
|
52
|
+
const fs = __importStar(require("fs"));
|
|
53
|
+
const os = __importStar(require("os"));
|
|
54
|
+
const path = __importStar(require("path"));
|
|
55
|
+
/**
|
|
56
|
+
* 공유스킬 로컬 캐시 저장소 (SKILL-011).
|
|
57
|
+
*
|
|
58
|
+
* ── 왜 별도 모듈인가
|
|
59
|
+
* 캐시 읽기·쓰기·메타 갱신·신선도 토큰 계산을 한곳에 모은다. `ch skills use`
|
|
60
|
+
* 말고도 후속 명령(사용 기록 ping·`sync --full`·`diff`)이 같은 캐시를 읽고
|
|
61
|
+
* 쓰므로, 커맨드 파일에 인라인하면 서로 같은 자리를 고치게 된다.
|
|
62
|
+
*
|
|
63
|
+
* ── 왜 `~/.claude/skills/` 가 아닌가 (설계 결정, 바꾸지 말 것)
|
|
64
|
+
* 거기 두면 Claude Code 가 디스크에서 직접 읽어 CLI 가 개입할 지점이 사라진다.
|
|
65
|
+
* 신선도 게이트를 걸 수 없고, 공유스킬 전체의 description 이 매 세션 프롬프트에
|
|
66
|
+
* 얹힌다. 그래서 ch 관리 영역(`~/.ch/skills-cache/`)에만 둔다.
|
|
67
|
+
*
|
|
68
|
+
* ── 디스크 레이아웃
|
|
69
|
+
* ```
|
|
70
|
+
* ~/.ch/skills-cache/
|
|
71
|
+
* meta.json 캐시된 스킬(키 → 레코드)
|
|
72
|
+
* index.json 목록 스냅샷(세션 신선도 맵)
|
|
73
|
+
* files/global/<dir>/SKILL.md 글로벌 스킬 본문
|
|
74
|
+
* files/global/<dir>/references/... 번들 파일(폴더 구조 보존)
|
|
75
|
+
* files/project/<projectId>/<dir>/SKILL.md 프로젝트 스킬
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* 이 모듈은 디스크만 만진다 — HTTP 는 호출측(commands/skills.ts)의 몫이다.
|
|
79
|
+
*/
|
|
80
|
+
const CACHE_DIRNAME = 'skills-cache';
|
|
81
|
+
const FILES_DIRNAME = 'files';
|
|
82
|
+
const META_FILENAME = 'meta.json';
|
|
83
|
+
const INDEX_FILENAME = 'index.json';
|
|
84
|
+
const STORE_VERSION = 1;
|
|
85
|
+
/**
|
|
86
|
+
* 목록 스냅샷을 신선도 맵으로 재사용하는 시간 창(ms).
|
|
87
|
+
*
|
|
88
|
+
* 에이전트의 `ch skills list` → `ch skills use` 는 몇 초 안에 잇따라 일어나므로
|
|
89
|
+
* 이 창 안에서는 목록 응답을 그대로 신선도 판정에 쓴다(추가 조회 0회). 창을 넘기면
|
|
90
|
+
* 다시 서버 목록을 읽는다 — 스냅샷이 낡아 변경을 놓치는 구간을 1분으로 묶는다.
|
|
91
|
+
* 방금 서버에서 고쳐 즉시 확인해야 하면 `--refresh` 로 창을 무시할 수 있다.
|
|
92
|
+
*/
|
|
93
|
+
exports.SKILL_INDEX_TTL_MS = 60000;
|
|
94
|
+
/** 스킬 폴더 규약상 고정된 매니페스트 파일명(캐시 기본 경로). */
|
|
95
|
+
const DEFAULT_MANIFEST_PATH = 'SKILL.md';
|
|
96
|
+
// ── 경로 ──────────────────────────────────────────────────────────────────
|
|
97
|
+
/** 캐시 루트 — `~/.ch/skills-cache`. */
|
|
98
|
+
function cacheRoot() {
|
|
99
|
+
return path.join(os.homedir(), '.ch', CACHE_DIRNAME);
|
|
100
|
+
}
|
|
101
|
+
const SAFE_SEGMENT = /^[A-Za-z0-9._-]+$/;
|
|
102
|
+
/**
|
|
103
|
+
* 스킬 이름을 폴더명으로 바꾼다.
|
|
104
|
+
*
|
|
105
|
+
* 이름은 서버(=남이 올린 SKILL.md frontmatter)에서 오므로 그대로 경로에 쓰면
|
|
106
|
+
* `..`·`/` 같은 값이 캐시 밖을 가리킬 수 있다. 파일명에 안전한 이름은 그대로 쓰고,
|
|
107
|
+
* 아니면 슬러그 + 원본 해시로 바꾼다(같은 이름이면 항상 같은 폴더, 다른 이름이면
|
|
108
|
+
* 슬러그가 같아도 해시가 갈라놓는다).
|
|
109
|
+
*/
|
|
110
|
+
function cacheDirName(name) {
|
|
111
|
+
const trimmed = (name ?? '').trim();
|
|
112
|
+
if (SAFE_SEGMENT.test(trimmed) && trimmed !== '.' && trimmed !== '..') {
|
|
113
|
+
return trimmed;
|
|
114
|
+
}
|
|
115
|
+
const slug = trimmed
|
|
116
|
+
.replace(/[^A-Za-z0-9._-]+/g, '-')
|
|
117
|
+
.replace(/^[-.]+|[-.]+$/g, '')
|
|
118
|
+
.slice(0, 40) || 'skill';
|
|
119
|
+
const hash = crypto.createHash('sha1').update(trimmed).digest('hex');
|
|
120
|
+
return `${slug}-${hash.slice(0, 8)}`;
|
|
121
|
+
}
|
|
122
|
+
/** 캐시 키 — meta.json 의 레코드 키. */
|
|
123
|
+
function cacheKey(target) {
|
|
124
|
+
return target.scope === 'global'
|
|
125
|
+
? `global:${target.name}`
|
|
126
|
+
: `project:${target.projectId ?? '-'}:${target.name}`;
|
|
127
|
+
}
|
|
128
|
+
/** 스킬 하나가 풀리는 캐시 폴더(절대경로). */
|
|
129
|
+
function skillCacheDir(target) {
|
|
130
|
+
const base = path.join(cacheRoot(), FILES_DIRNAME);
|
|
131
|
+
const dir = cacheDirName(target.name);
|
|
132
|
+
return target.scope === 'global'
|
|
133
|
+
? path.join(base, 'global', dir)
|
|
134
|
+
: path.join(base, 'project', cacheDirName(target.projectId ?? '-'), dir);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* 서버가 준 상대경로가 캐시 폴더 안에 머무는지 본다.
|
|
138
|
+
* 절대경로·드라이브문자·`..`·역슬래시는 거부한다(경로 탈출 방지).
|
|
139
|
+
*/
|
|
140
|
+
function isSafeRelPath(relPath) {
|
|
141
|
+
if (!relPath || typeof relPath !== 'string')
|
|
142
|
+
return false;
|
|
143
|
+
if (relPath.includes('\\') || relPath.includes('\0'))
|
|
144
|
+
return false;
|
|
145
|
+
if (relPath.startsWith('/') || /^[A-Za-z]:/.test(relPath))
|
|
146
|
+
return false;
|
|
147
|
+
return relPath
|
|
148
|
+
.split('/')
|
|
149
|
+
.every((seg) => seg.length > 0 && seg !== '.' && seg !== '..');
|
|
150
|
+
}
|
|
151
|
+
// ── 신선도 ────────────────────────────────────────────────────────────────
|
|
152
|
+
function asText(value) {
|
|
153
|
+
return typeof value === 'string' ? value.trim() : '';
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* 신선도 토큰 — `updatedAt ?? createdAt`.
|
|
157
|
+
*
|
|
158
|
+
* 한 번도 수정되지 않은 스킬은 updatedAt 이 null 이다(실측: 글로벌 52개 중 17개).
|
|
159
|
+
* updatedAt 만 토큰으로 쓰면 그 17개가 `null === null` 로 늘 캐시 적중이 되어
|
|
160
|
+
* *삭제 후 재등록* 같은 변경을 놓친다. createdAt 은 모든 문서에 있으므로 이를
|
|
161
|
+
* 폴백으로 두면 재등록이 새 토큰으로 드러난다.
|
|
162
|
+
*/
|
|
163
|
+
function freshnessToken(entry) {
|
|
164
|
+
return asText(entry?.updatedAt) || asText(entry?.createdAt) || null;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* 캐시가 서버 토큰과 같은지 본다.
|
|
168
|
+
* 어느 한쪽 토큰이라도 모르면 신선하다고 단정하지 않는다(모르면 다시 받는다).
|
|
169
|
+
*/
|
|
170
|
+
function isFresh(cached, token) {
|
|
171
|
+
if (!cached || !token || !cached.token)
|
|
172
|
+
return false;
|
|
173
|
+
return cached.token === token;
|
|
174
|
+
}
|
|
175
|
+
// ── 저장소 입출력 ─────────────────────────────────────────────────────────
|
|
176
|
+
/**
|
|
177
|
+
* JSON 파일을 읽는다. 없거나 깨졌으면 폴백 — 캐시가 깨졌다고 명령이 죽으면 안 된다
|
|
178
|
+
* (다음 실행이 다시 받아 덮어쓴다).
|
|
179
|
+
*/
|
|
180
|
+
function readJsonFile(file, fallback) {
|
|
181
|
+
try {
|
|
182
|
+
if (!fs.existsSync(file))
|
|
183
|
+
return fallback;
|
|
184
|
+
const parsed = JSON.parse(fs.readFileSync(file, 'utf-8'));
|
|
185
|
+
if (!parsed || typeof parsed !== 'object')
|
|
186
|
+
return fallback;
|
|
187
|
+
return parsed;
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
return fallback;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/** JSON 파일을 임시파일 → rename 으로 쓴다(중간에 죽어도 반쪽 파일이 남지 않게). */
|
|
194
|
+
function writeJsonFile(file, data) {
|
|
195
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
196
|
+
const tmp = `${file}.${process.pid}.tmp`;
|
|
197
|
+
fs.writeFileSync(tmp, JSON.stringify(data, null, 2), 'utf-8');
|
|
198
|
+
fs.renameSync(tmp, file);
|
|
199
|
+
}
|
|
200
|
+
function metaPath() {
|
|
201
|
+
return path.join(cacheRoot(), META_FILENAME);
|
|
202
|
+
}
|
|
203
|
+
function indexPath() {
|
|
204
|
+
return path.join(cacheRoot(), INDEX_FILENAME);
|
|
205
|
+
}
|
|
206
|
+
function readMeta() {
|
|
207
|
+
const meta = readJsonFile(metaPath(), {
|
|
208
|
+
version: STORE_VERSION,
|
|
209
|
+
skills: {},
|
|
210
|
+
});
|
|
211
|
+
if (!meta.skills || typeof meta.skills !== 'object') {
|
|
212
|
+
return { version: STORE_VERSION, skills: {} };
|
|
213
|
+
}
|
|
214
|
+
return meta;
|
|
215
|
+
}
|
|
216
|
+
function withDir(record) {
|
|
217
|
+
return {
|
|
218
|
+
...record,
|
|
219
|
+
dir: skillCacheDir({
|
|
220
|
+
scope: record.scope,
|
|
221
|
+
projectId: record.projectId,
|
|
222
|
+
name: record.name,
|
|
223
|
+
}),
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
// ── 캐시 본체 ─────────────────────────────────────────────────────────────
|
|
227
|
+
/**
|
|
228
|
+
* 캐시된 스킬을 찾는다. 메타에는 있는데 본문 파일이 사라졌으면 미적중으로 본다
|
|
229
|
+
* (사람이 폴더를 지웠을 수 있다 — 메타만 믿고 빈 본문을 내보내지 않는다).
|
|
230
|
+
*/
|
|
231
|
+
function readCachedSkill(target) {
|
|
232
|
+
const record = readMeta().skills[cacheKey(target)];
|
|
233
|
+
if (!record)
|
|
234
|
+
return null;
|
|
235
|
+
const cached = withDir(record);
|
|
236
|
+
const manifest = path.join(cached.dir, cached.manifestPath);
|
|
237
|
+
return fs.existsSync(manifest) ? cached : null;
|
|
238
|
+
}
|
|
239
|
+
/** 캐시된 SKILL.md 본문. 없으면 null. */
|
|
240
|
+
function readCachedManifest(target) {
|
|
241
|
+
const cached = readCachedSkill(target);
|
|
242
|
+
if (!cached)
|
|
243
|
+
return null;
|
|
244
|
+
try {
|
|
245
|
+
return fs.readFileSync(path.join(cached.dir, cached.manifestPath), 'utf-8');
|
|
246
|
+
}
|
|
247
|
+
catch {
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* 스킬 하나를 캐시에 적재한다(폴더 통째 교체).
|
|
253
|
+
*
|
|
254
|
+
* 서버에서 사라진 번들 파일이 남지 않도록 폴더를 비우고 다시 쓴다. 메타는 파일을
|
|
255
|
+
* 다 쓴 뒤에 갱신한다 — 중간에 실패하면 메타가 없으니 다음 실행이 다시 받는다.
|
|
256
|
+
*/
|
|
257
|
+
function writeCachedSkill(target, payload) {
|
|
258
|
+
const dir = skillCacheDir(target);
|
|
259
|
+
const manifestPath = payload.manifestPath && isSafeRelPath(payload.manifestPath)
|
|
260
|
+
? payload.manifestPath
|
|
261
|
+
: DEFAULT_MANIFEST_PATH;
|
|
262
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
263
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
264
|
+
const written = [];
|
|
265
|
+
const writeOne = (relPath, data) => {
|
|
266
|
+
const abs = path.join(dir, relPath);
|
|
267
|
+
fs.mkdirSync(path.dirname(abs), { recursive: true });
|
|
268
|
+
fs.writeFileSync(abs, data);
|
|
269
|
+
written.push(relPath);
|
|
270
|
+
};
|
|
271
|
+
writeOne(manifestPath, payload.content ?? '');
|
|
272
|
+
for (const file of payload.files ?? []) {
|
|
273
|
+
// 안전하지 않은 경로는 건너뛴다 — 캐시 폴더 밖으로 나가는 파일은 쓰지 않는다.
|
|
274
|
+
if (!isSafeRelPath(file.path) || file.path === manifestPath)
|
|
275
|
+
continue;
|
|
276
|
+
writeOne(file.path, file.data);
|
|
277
|
+
}
|
|
278
|
+
const record = {
|
|
279
|
+
scope: target.scope,
|
|
280
|
+
projectId: target.scope === 'global' ? null : target.projectId ?? null,
|
|
281
|
+
name: target.name,
|
|
282
|
+
id: payload.id,
|
|
283
|
+
token: payload.token,
|
|
284
|
+
manifestPath,
|
|
285
|
+
files: written,
|
|
286
|
+
cachedAt: new Date().toISOString(),
|
|
287
|
+
};
|
|
288
|
+
const meta = readMeta();
|
|
289
|
+
meta.version = STORE_VERSION;
|
|
290
|
+
meta.skills[cacheKey(target)] = record;
|
|
291
|
+
writeJsonFile(metaPath(), meta);
|
|
292
|
+
return withDir(record);
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* 캐시에서 스킬을 회수한다(파일 + 메타 + 목록 스냅샷 항목).
|
|
296
|
+
* 서버에서 지운 스킬이 로컬에 유령으로 남지 않게 하는 자리다(SKILL-017).
|
|
297
|
+
* 지울 게 있었으면 true.
|
|
298
|
+
*/
|
|
299
|
+
function removeCachedSkill(target) {
|
|
300
|
+
const key = cacheKey(target);
|
|
301
|
+
const meta = readMeta();
|
|
302
|
+
const dir = skillCacheDir(target);
|
|
303
|
+
const existed = !!meta.skills[key] || fs.existsSync(dir);
|
|
304
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
305
|
+
if (meta.skills[key]) {
|
|
306
|
+
delete meta.skills[key];
|
|
307
|
+
writeJsonFile(metaPath(), meta);
|
|
308
|
+
}
|
|
309
|
+
pruneIndexEntry(target);
|
|
310
|
+
return existed;
|
|
311
|
+
}
|
|
312
|
+
/** 캐시에 들어있는 스킬 전부(후속 명령의 전량 동기화·대조용). */
|
|
313
|
+
function listCachedSkills() {
|
|
314
|
+
return Object.values(readMeta().skills).map(withDir);
|
|
315
|
+
}
|
|
316
|
+
// ── 목록 스냅샷(세션 신선도 맵) ───────────────────────────────────────────
|
|
317
|
+
function scopeKey(scope, projectId) {
|
|
318
|
+
return scope === 'global' ? 'global' : `project:${projectId ?? '-'}`;
|
|
319
|
+
}
|
|
320
|
+
function readIndexFile() {
|
|
321
|
+
const file = readJsonFile(indexPath(), {
|
|
322
|
+
version: STORE_VERSION,
|
|
323
|
+
scopes: {},
|
|
324
|
+
});
|
|
325
|
+
if (!file.scopes || typeof file.scopes !== 'object') {
|
|
326
|
+
return { version: STORE_VERSION, scopes: {} };
|
|
327
|
+
}
|
|
328
|
+
return file;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* `ch skills list` 응답을 신선도 맵으로 저장한다.
|
|
332
|
+
* 이 스냅샷이 있으면 뒤이은 `use` 가 서버를 다시 묻지 않는다(추가 조회 0회).
|
|
333
|
+
* 필터(--group/--tag) 이전의 전체 응답을 넣어야 맵이 온전하다.
|
|
334
|
+
*/
|
|
335
|
+
function saveIndexSnapshot(scope, projectId, rows) {
|
|
336
|
+
// 어느 프로젝트의 목록인지 모르면 저장하지 않는다 — 주인 없는 맵은 아무도
|
|
337
|
+
// 읽을 수 없고(use 는 프로젝트가 정해져야 진행한다) 파일만 늘린다.
|
|
338
|
+
if (scope === 'project' && !projectId)
|
|
339
|
+
return;
|
|
340
|
+
const entries = {};
|
|
341
|
+
for (const row of rows ?? []) {
|
|
342
|
+
const name = asText(row?.name);
|
|
343
|
+
const id = asText(row?.id);
|
|
344
|
+
if (!name || !id)
|
|
345
|
+
continue;
|
|
346
|
+
entries[name] = { id, token: freshnessToken(row) };
|
|
347
|
+
}
|
|
348
|
+
const file = readIndexFile();
|
|
349
|
+
file.version = STORE_VERSION;
|
|
350
|
+
file.scopes[scopeKey(scope, projectId)] = {
|
|
351
|
+
fetchedAt: new Date().toISOString(),
|
|
352
|
+
entries,
|
|
353
|
+
};
|
|
354
|
+
writeJsonFile(indexPath(), file);
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* 저장된 목록 스냅샷을 읽는다. 시간 창(기본 SKILL_INDEX_TTL_MS)을 넘겼거나
|
|
358
|
+
* 시계가 뒤로 간 흔적(미래 시각)이면 없는 셈 친다 — 낡은 맵으로 캐시 적중을
|
|
359
|
+
* 우겨서 변경을 놓치지 않게.
|
|
360
|
+
*/
|
|
361
|
+
function readIndexSnapshot(scope, projectId, maxAgeMs = exports.SKILL_INDEX_TTL_MS) {
|
|
362
|
+
const snapshot = readIndexFile().scopes[scopeKey(scope, projectId)];
|
|
363
|
+
if (!snapshot || !snapshot.entries || typeof snapshot.entries !== 'object') {
|
|
364
|
+
return null;
|
|
365
|
+
}
|
|
366
|
+
const fetchedAt = Date.parse(snapshot.fetchedAt ?? '');
|
|
367
|
+
if (Number.isNaN(fetchedAt))
|
|
368
|
+
return null;
|
|
369
|
+
const age = Date.now() - fetchedAt;
|
|
370
|
+
if (age < 0 || age > maxAgeMs)
|
|
371
|
+
return null;
|
|
372
|
+
// 스킬 이름이 곧 키다. 프로토타입을 지워 `constructor` 같은 이름이 Object 의
|
|
373
|
+
// 상속 속성으로 조회되는 일을 막는다(있지도 않은 항목을 적중으로 착각).
|
|
374
|
+
return {
|
|
375
|
+
fetchedAt: snapshot.fetchedAt,
|
|
376
|
+
entries: Object.assign(Object.create(null), snapshot.entries),
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
/** 스냅샷에서 항목 하나를 지운다(삭제된 스킬이 맵에 남지 않게). */
|
|
380
|
+
function pruneIndexEntry(target) {
|
|
381
|
+
const file = readIndexFile();
|
|
382
|
+
const snapshot = file.scopes[scopeKey(target.scope, target.projectId)];
|
|
383
|
+
if (!snapshot?.entries || !snapshot.entries[target.name])
|
|
384
|
+
return;
|
|
385
|
+
delete snapshot.entries[target.name];
|
|
386
|
+
writeJsonFile(indexPath(), file);
|
|
387
|
+
}
|
|
388
|
+
//# sourceMappingURL=skills-cache.js.map
|