@te-river/opencode-team-mode 1.5.0 → 1.5.2
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 +157 -53
- package/README.zh-CN.md +137 -53
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +128 -26
- package/dist/agents.js.map +1 -1
- package/dist/approval-gate.d.ts +147 -0
- package/dist/approval-gate.d.ts.map +1 -0
- package/dist/approval-gate.js +471 -0
- package/dist/approval-gate.js.map +1 -0
- package/dist/commands.js +3 -3
- package/dist/commands.js.map +1 -1
- package/dist/envprotect.d.ts +234 -0
- package/dist/envprotect.d.ts.map +1 -0
- package/dist/envprotect.js +820 -0
- package/dist/envprotect.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +112 -1
- package/dist/index.js.map +1 -1
- package/dist/tm/config.d.ts +105 -0
- package/dist/tm/config.d.ts.map +1 -0
- package/dist/tm/config.js +118 -0
- package/dist/tm/config.js.map +1 -0
- package/dist/tm/guard.d.ts +56 -0
- package/dist/tm/guard.d.ts.map +1 -0
- package/dist/tm/guard.js +249 -0
- package/dist/tm/guard.js.map +1 -0
- package/dist/tm/index.d.ts +41 -0
- package/dist/tm/index.d.ts.map +1 -0
- package/dist/tm/index.js +93 -0
- package/dist/tm/index.js.map +1 -0
- package/dist/tm/preview.d.ts +46 -0
- package/dist/tm/preview.d.ts.map +1 -0
- package/dist/tm/preview.js +354 -0
- package/dist/tm/preview.js.map +1 -0
- package/dist/tm/ptc.d.ts +279 -0
- package/dist/tm/ptc.d.ts.map +1 -0
- package/dist/tm/ptc.js +839 -0
- package/dist/tm/ptc.js.map +1 -0
- package/dist/tm/refs.d.ts +37 -0
- package/dist/tm/refs.d.ts.map +1 -0
- package/dist/tm/refs.js +58 -0
- package/dist/tm/refs.js.map +1 -0
- package/dist/tm/store.d.ts +95 -0
- package/dist/tm/store.d.ts.map +1 -0
- package/dist/tm/store.js +222 -0
- package/dist/tm/store.js.map +1 -0
- package/dist/tm/tools.d.ts +84 -0
- package/dist/tm/tools.d.ts.map +1 -0
- package/dist/tm/tools.js +710 -0
- package/dist/tm/tools.js.map +1 -0
- package/dist/types.d.ts +155 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ptc.js","sourceRoot":"","sources":["../../src/tm/ptc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAiB,MAAM,aAAa,CAAA;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,OAAO,EAAkC,MAAM,YAAY,CAAA;AAEpE,4EAA4E;AAE5E,6CAA6C;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,IAAI;IACJ,sBAAsB;IACtB,qBAAqB;IACrB,SAAS;IACT,cAAc;CACN,CAAA;AAKV,gFAAgF;AAChF,MAAM,CAAC,MAAM,YAAY,GAA0B,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;AAEhG,6EAA6E;AAC7E,MAAM,CAAC,MAAM,gBAAgB,GAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;AAmFlF;;;;GAIG;AACH,SAAS,WAAW,CAAC,GAAY,EAAE,OAAe,EAAE,KAAa;IAC/D,MAAM,CAAC,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACzE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,OAAO,CAAA;IACvC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACvB,IAAI,CAAC,GAAG,OAAO;QAAE,OAAO,OAAO,CAAA;IAC/B,IAAI,CAAC,GAAG,KAAK;QAAE,OAAO,KAAK,CAAA;IAC3B,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAa,EAAE,OAA4C;IAC3F,MAAM,CAAC,GAAG,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/D,OAAO;QACL,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,uBAAuB,CAAC,QAAQ,CAAC;QACrF,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,YAAY,EAAE,uBAAuB,CAAC,SAAS,CAAC;QACzF,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,YAAY,EAAE,uBAAuB,CAAC,SAAS,CAAC;KAC1F,CAAA;AACH,CAAC;AAED,4EAA4E;AAC5E,sEAAsE;AACtE,MAAM,uBAAuB,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAW,CAAA;AAEvF,gDAAgD;AAEhD,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAA;AAS/B;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAwC,EAAE,GAAa;IAClF,MAAM,CAAC,GAAG,GAAG,IAAI,EAAE,CAAA;IACnB,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,8DAA8D,CAAC,EAAE,CAAA;IAC5H,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAC5C,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,OAAO,CACZ,YAAY,EACZ,MAAM,EACN,kBAAkB,GAAG,CAAC,kBAAkB,UAAU,OAAO,CAAC,MAAM,sCAAsC,CACvG;SACF,CAAA;IACH,CAAC;IACD,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACtF,IAAI,KAAK,CAAC,MAAM,GAAG,aAAa;QAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;IACvE,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,OAA2B,CAAC,CAAA;IACrE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAA;AACxD,CAAC;AAED,+EAA+E;AAE/E;sDACsD;AACtD,MAAM,cAAc,GAAsB;IACxC,aAAa;IACb,YAAY;IACZ,aAAa;IACb,gBAAgB;IAChB,UAAU;IACV,SAAS;IACT,QAAQ;IACR,SAAS;IACT,mBAAmB;CACpB,CAAA;AAED;kEACkE;AAClE,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;QAChC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;IACrF,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;AAChD,CAAC;AAyCD,8EAA8E;AAE9E,MAAM,aAAc,SAAQ,KAAK;IACV;IAArB,YAAqB,MAAkD;QACrE,KAAK,CAAC,YAAY,MAAM,EAAE,CAAC,CAAA;QADR,WAAM,GAAN,MAAM,CAA4C;QAErE,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;IAC7B,CAAC;CACF;AAED,SAAS,UAAU,CAAC,MAAiB;IACnC,MAAM,GAAG,GACP,CAAC,IAAgB,EAAE,EAAE,CACrB,CAAC,IAA6B,EAA0B,EAAE,CACxD,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACnE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAA;AACrG,CAAC;AAED,0EAA0E;AAC1E,SAAS,WAAW,CAAC,GAAY;IAC/B,MAAM,CAAC,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAA;IACpE,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC3B,IAAI,CAAC,EAAE,CAAC;QACN,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAA;IAClC,CAAC;IACD,MAAM,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACvC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACvC,CAAC;AAED,MAAM,OAAO,sBAAsB;IACxB,IAAI,GAAkB,QAAQ,CAAA;IACvC,KAAK,CAAC,GAAG,CAAC,OAAe,EAAE,MAAiB,EAAE,MAAmB;QAC/D,4EAA4E;QAC5E,6EAA6E;QAC7E,6EAA6E;QAC7E,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,eAAc,CAAC,CAAC,CAAC,WAExB,CAAA;QAC1C,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;QAC7B,IAAI,YAAsC,CAAA;QAC1C,MAAM,MAAM,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YAC3C,0EAA0E;YAC1E,uEAAuE;YACvE,YAAY,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;YACtD,IAAI,MAAM,CAAC,OAAO;gBAAE,YAAY,EAAE,CAAA;;gBAC7B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;QACF,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,kBAAkB,OAAO,EAAE,CAAC,CAAA;YAC/D,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;QAC7C,CAAC;gBAAS,CAAC;YACT,IAAI,YAAY;gBAAE,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;CACF;AAED,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,MAAM,OAAO,YAAY;IACd,IAAI,GAAkB,QAAQ,CAAA;IAEvC,KAAK,CAAC,GAAG,CAAC,OAAe,EAAE,MAAiB,EAAE,MAAmB;QAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAA;QACtD,mEAAmE;QACnE,wEAAwE;QACxE,uEAAuE;QACvE,kEAAkE;QAClE,MAAM,GAAG,GAAG;YACV,eAAe;YACf,wDAAwD;YACxD,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,+BAA+B;YAC9E,yBAAyB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK;YACzD,kCAAkC;YAClC,kFAAkF;YAClF,gCAAgC;YAChC,qBAAqB;YACrB,yGAAyG;YACzG,4BAA4B;YAC5B,8DAA8D;YAC9D,oFAAoF;YACpF,eAAe;YACf,2BAA2B,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,MAAM;YAC5M,gDAAgD;YAChD,qEAAqE;YACrE,iDAAiD;YACjD,mCAAmC;YACnC,kDAAkD;YAClD,+DAA+D,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,oBAAoB;YACpH,0BAA0B;YAC1B,SAAS;YACT,SAAS;YACT,WAAW;YACX,mCAAmC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,aAAa;YAC1E,kCAAkC;YAClC,8DAA8D;YAC9D,qBAAqB;YACrB,+JAA+J;YAC/J,OAAO;YACP,KAAK;YACL,KAAK;SACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACZ,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9C,IAAI,OAAO,GAAG,KAAK,CAAA;YACnB,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE;gBACxB,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,EAAE;gBACP,cAAc,EAAE,EAAE,sBAAsB,EAAE,GAAG,EAAE,wBAAwB,EAAE,EAAE,EAAE;aAC9E,CAAC,CAAA;YAEF,SAAS,MAAM,CAAC,EAAc;gBAC5B,IAAI,OAAO;oBAAE,OAAM;gBACnB,OAAO,GAAG,IAAI,CAAA;gBACd,EAAE,EAAE,CAAA;YACN,CAAC;YAED,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAwC,EAAE,EAAE;gBAC3D,IAAI,CAAC,GAAG,IAAI,OAAO;oBAAE,OAAM;gBAC3B,IAAI,GAAG,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;oBACrB,MAAM,CAAC,GAAG,EAAE;wBACV,CAAC,CAAC,SAAS,EAAE,CAAA;wBACb,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;oBACrB,CAAC,CAAC,CAAA;gBACJ,CAAC;qBAAM,IAAI,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;oBAC7B,MAAM,CAAC,GAAG,EAAE;wBACV,CAAC,CAAC,SAAS,EAAE,CAAA;wBACb,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAA;wBACrF,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;4BAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;wBACxD,MAAM,CAAC,GAAG,CAAC,CAAA;oBACb,CAAC,CAAC,CAAA;gBACJ,CAAC;qBAAM,IAAI,GAAG,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;oBAC5B,gEAAgE;oBAChE,MAAM,GAAG,GAAG,GAA+B,CAAA;oBAC3C,MAAM;yBACH,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC;yBACxB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;wBACV,IAAI,CAAC,OAAO,EAAE,CAAC;4BACb,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAoB,CAAC,CAAA;wBACjE,CAAC;oBACH,CAAC,CAAC;yBACD,KAAK,CAAC,GAAG,EAAE;wBACV,IAAI,CAAC,OAAO,EAAE,CAAC;4BACb,CAAC,CAAC,WAAW,CAAC;gCACZ,CAAC,EAAE,QAAQ;gCACX,EAAE,EAAE,GAAG,CAAC,EAAE;gCACV,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,EAAE,EAAE;6BAC3E,CAAC,CAAA;wBACtB,CAAC;oBACH,CAAC,CAAC,CAAA;gBACN,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBAC3B,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3E,CAAC,CAAC,CAAA;YAEF,4CAA4C;YAC5C,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,MAAM,CAAC,GAAG,EAAE;oBACV,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAChE,CAAC,CAAC,CAAA;YACJ,CAAC,CAAA;YACD,IAAI,MAAM,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAA;;gBACxB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YAE9D,wBAAwB;YACxB,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAa,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAED,6EAA6E;AAE7E;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,cAAc;IAChB,IAAI,GAAkB,QAAQ,CAAA;IAEvC,KAAK,CAAC,GAAG,CAAC,OAAe,EAAE,MAAiB,EAAE,MAAmB;QAC/D,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;QAC7B,IAAI,YAAsC,CAAA;QAC1C,MAAM,MAAM,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YAC3C,YAAY,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;YACtD,IAAI,MAAM,CAAC,OAAO;gBAAE,YAAY,EAAE,CAAA;;gBAC7B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;QACF,IAAI,CAAC;YACH,sEAAsE;YACtE,wEAAwE;YACxE,MAAM,EAAE,GAAG,EAAE,CAAC,eAAe,CAC3B,kBAAkB,OAAO,EAAE,EAC3B,CAAC,IAAI,CAAC,EACN,EAAE,OAAO,EAAE,MAAM,EAAsD,CACxE,CAAA;YACD,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;QAC7C,CAAC;gBAAS,CAAC;YACT,IAAI,YAAY;gBAAE,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;CACF;AAYD;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAc,EACd,MAAc,EACd,OAAmB,EACnB,KAAgB,EAChB,IAA4F;IAE5F,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAA;IAC9C,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,MAAM,IAAI,GAAG,CAAC,CAA0B,EAAE,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACvE,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI;YACnB,IAAI,KAAK,CAAC,UAAU;gBAAE,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;YAC/D,sEAAsE;YACtE,wBAAwB;YACxB,IAAI,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;gBACxB,KAAK,CAAC,UAAU,GAAG,SAAS,CAAA;gBAC5B,MAAM,IAAI,aAAa,CAAC,SAAS,CAAC,CAAA;YACpC,CAAC;YACD,gEAAgE;YAChE,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACpC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAA;gBAChC,MAAM,IAAI,aAAa,CAAC,aAAa,CAAC,CAAA;YACxC,CAAC;YACD,KAAK,CAAC,KAAK,EAAE,CAAA;YACb,GAAG,EAAE,CAAA;YACL,MAAM,SAAS,GAAG,GAAG,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;YAC9D,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;YAC9D,MAAM,EAAE,GAAG,GAAG,EAAE,CAAA;YAChB,IAAI,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACpC,IAAI,OAAO,GAAG,KAAK,CAAA;YACnB,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1D,OAAO,GAAG,IAAI,CAAA;gBACd,KAAK,CAAC,OAAO,EAAE,CAAA;gBACf,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAClC,CAAC;YACD,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,CAAA;YACrB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBAClD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;gBACnE,IAAI,CAAC;oBACH,IAAI;oBACJ,OAAO,EAAE,SAAS;oBAClB,KAAK,EAAE,QAAQ;oBACf,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC;oBACvB,MAAM;oBACN,GAAG,EAAE,MAAM;oBACX,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxB,CAAC,CAAA;gBACF,OAAO,GAAG,CAAA;YACZ,CAAC;YACD,oEAAoE;YACpE,KAAK,CAAC,MAAM,EAAE,CAAA;YACd,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAA;YACrB,IAAI,QAA4B,CAAA;YAChC,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC;oBACH,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE;wBAC3B,IAAI;wBACJ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;wBAChD,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBAC3C,WAAW,EAAE,MAAM;wBACnB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;wBAClC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;qBAC3C,CAAC,CAAA;oBACF,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;gBAC7C,CAAC;gBAAC,MAAM,CAAC;oBACP,qEAAqE;gBACvE,CAAC;YACH,CAAC;YACD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;gBACf,CAAC,EAAE,GAAG;gBACN,IAAI;gBACJ,EAAE,EAAE,KAAK;gBACT,EAAE;gBACF,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,QAAQ;aACT,CAAC,CAAA;YACF,IAAI,CAAC;gBACH,IAAI;gBACJ,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,KAAK,EAAE,OAAO;gBACd,GAAG,EAAE,MAAM;gBACX,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvC,CAAC,CAAA;YACF,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtC,KAAK,CAAC,UAAU,GAAG,cAAc,CAAA;gBACjC,MAAM,IAAI,aAAa,CAAC,cAAc,CAAC,CAAA;YACzC,CAAC;YACD,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAA;AACH,CAAC;AAED,6EAA6E;AAC7E,SAAS,UAAU,CAAC,IAAa;IAC/B,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAK,IAAgC,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC7F,MAAM,CAAC,GAAG,IAA2C,CAAA;QACrD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;QACpD,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;YAC9C,GAAG;SACJ,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IACzE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;AACpE,CAAC;AAED,mEAAmE;AACnE,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,CAAC,GAAG,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AACpC,CAAC;AAYD;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,IAAkC,EAAE,MAAiB;IAChF,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,IAAI,cAAc,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;IAC1D,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,IAAI,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;IACxD,CAAC;IACD,4DAA4D;IAC5D,IAAI,CAAC;QACH,6DAA6D;QAC7D,OAAO,EAAE,MAAM,EAAE,IAAI,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,IAAI,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;IACzD,CAAC;AACH,CAAC;AAcD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,CAAgB;IAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAA;IAC7B,MAAM,KAAK,GAAG,GAAG,EAAE,CAAA;IACnB,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAA;IAC9C,8EAA8E;IAC9E,IAAI,MAAiB,CAAA;IACrB,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,GAAG,CAAC,CAAC,MAAM,CAAA;IACnB,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;QACnD,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;QACnB,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;IACzB,CAAC;IAED,sEAAsE;IACtE,kEAAkE;IAClE,gCAAgC;IAChC,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACpC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO;YACL,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,cAAc;YACtB,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;YACR,EAAE,EAAE,CAAC;YACL,MAAM,EAAE,MAAM,CAAC,IAAI;YACnB,QAAQ;YACR,WAAW,EAAE,SAAS;YACtB,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE;gBACX,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,aAAa,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;aACxD;YACD,YAAY,EAAE,CAAC,CAAC,YAAY;SAC7B,CAAA;IACH,CAAC;IAED,qEAAqE;IACrE,+EAA+E;IAC/E,MAAM,MAAM,GAAG,KAAK,EAAE,GAAc,EAA0B,EAAE;QAC9D,MAAM,KAAK,GAAc,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;QACvE,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE;YACxE,GAAG;YACH,UAAU;YACV,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC,CAAA;QAEF,gCAAgC;QAChC,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC;YACxB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,CAAC,CAAC,YAAY;YACvB,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3E,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAA;QAEF,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAA;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,GAAG,EAAE,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAA;QAErD,IAAI,MAAiB,CAAA;QACrB,IAAI,WAAoB,CAAA;QACxB,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,IAAI,WAAqC,CAAA;QACzC,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;YACvD,QAAQ,GAAG,IAAI,CAAA;YACf,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC9D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;gBACjC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC9B,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,cAAc,CAAA;gBACvB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;gBAC7B,WAAW,GAAG;oBACZ,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,SAAS;oBAChB,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,cAAc,CAAC;oBAC3E,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAClC,CAAA;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAA;QACrB,CAAC;QAED,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,CAAA;QACxB,MAAM,OAAO,GAAkB;YAC7B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM;YACN,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM;YAC/C,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM;YACjD,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,EAAE;YACF,MAAM,EAAE,GAAG,CAAC,IAAI;YAChB,QAAQ;YACR,WAAW;YACX,QAAQ;YACR,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,YAAY,EAAE,CAAC,CAAC,YAAY;SAC7B,CAAA;QACD,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC;YACxB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,CAAC,CAAC,YAAY;YACvB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,QAAQ;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,EAAE,EAAE,OAAO,CAAC,EAAE;SACf,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IAED,oEAAoE;IACpE,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAA;QACnC,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YACrC,mCAAmC;YACnC,MAAM,YAAY,GAAG,IAAI,cAAc,EAAE,CAAA;YACzC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;YAC3C,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAA;YACxB,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAA;YAC1B,OAAO,QAAQ,CAAA;QACjB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;AACvB,CAAC;AAED,SAAS,OAAO,CAAC,MAAkD;IACjE,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC1C,IAAI,MAAM,KAAK,cAAc;QAAE,OAAO,sBAAsB,CAAA;IAC5D,OAAO,qBAAqB,CAAA;AAC9B,CAAC;AAED,8EAA8E;AAE9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAA;AAC1C,MAAM,CAAC,MAAM,cAAc,GAAG,sBAAsB,CAAA;AACpD,MAAM,CAAC,MAAM,aAAa,GAAG,8CAA8C,CAAA;AAC3E,MAAM,CAAC,MAAM,eAAe,GAAG,2BAA2B,CAAA;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,mDAAmD,CAAA;AACjF,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAA;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAA;AAE5C,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAC5B,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAE7B,SAAS,WAAW,CAAC,CAAgB;IACnC,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAA;AACnD,CAAC;AAED;6EAC6E;AAC7E,MAAM,UAAU,gBAAgB,CAC9B,CAAgB,EAChB,OAAmD;IAEnD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,MAAM,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;IACrE,KAAK,CAAC,IAAI,CACR,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,QAAQ,YAAY,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,EAAE,YAAY,WAAW,CAAC,CAAC,CAAC,EAAE,CAC9H,CAAA;IAED,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC3C,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAE7C,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACzB,IAAI,OAAO,CAAC,MAAM,GAAG,kBAAkB,IAAI,OAAO,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3C,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,MAAM,QAAQ,kBAAkB,QAAQ,CAAC,CAAA;QACnE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;IAClC,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAC3B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC1B,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CACR,MAAM,CAAC;YACL,CAAC,EAAE,CAAC;YACJ,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK;YAC1B,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI;YACxB,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,QAAQ,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE;SACzC,CAAC,CACH,CAAA;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAE/D,qEAAqE;IACrE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;QACzC,IAAI,IAAI,CAAC,MAAM,GAAG,gBAAgB,IAAI,OAAO,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,CAAA;YACnD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,CAAA;IACpD,CAAC;IAED,oDAAoD;IACpD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAkB,CAAC,CAAA;IAC/E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAA;IAC9C,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;IACxE,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAC3F,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,SAAS,KAAK,CAAC,CAAgB;IAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;AAC9E,CAAC;AACD,SAAS,MAAM,CAAC,CAOf;IACC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAA;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAC9D,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IACxC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAA;AAC3F,CAAC;AACD,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS;IAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IACnB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;AAC/D,CAAC;AACD,SAAS,aAAa,CAAC,CAAU;IAC/B,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAC3B,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;IAClB,CAAC;AACH,CAAC;AAED,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,SAAsB,EAAE,GAAY;IACjE,MAAM,IAAI,GAAG,CAAC,IAAgB,EAAE,EAAE,CAChC,IAAI,KAAK,SAAS;QAChB,CAAC,CAAC,SAAS,CAAC,MAAM;QAClB,CAAC,CAAC,IAAI,KAAK,SAAS;YAClB,CAAC,CAAC,SAAS,CAAC,MAAM;YAClB,CAAC,CAAC,IAAI,KAAK,SAAS;gBAClB,CAAC,CAAC,SAAS,CAAC,MAAM;gBAClB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAA;IAC3B,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI;YACnB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,KAAK,EAAE,CAAA;YACxE,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAA;YAC7C,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,IAAK,GAA+B,EAAE,CAAC;gBAClF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAG,GAA+B,CAAC,KAAK,EAAE,CAAA;YACrE,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;QAChC,CAAC;KACF,CAAA;AACH,CAAC;AAED,8EAA8E;AAE9E,MAAM,mBAAmB,GAAG;;;;;;sHAM0F,CAAA;AAEtH;yDACyD;AACzD,MAAM,UAAU,eAAe,CAAC,IAS/B;IACC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IACzD,MAAM,UAAU,GACd,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACnF,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IAC/E,OAAO;QACL,WAAW,EAAE,mBAAmB;QAChC,IAAI,EAAE;YACJ,OAAO,EAAE,EAAE,UAAU,EAAE,sEAAsE,EAAE;YAC/F,KAAK,EAAE,EAAE,UAAU,EAAE,qCAAqC,EAAE;YAC5D,OAAO,EAAE,EAAE,UAAU,EAAE,4EAA4E,EAAE;SACtG;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAuB,EAAE;YAC9C,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,IAAI,EAAE,EAAE,GAAG,CAAC,CAAA;YAC/C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,OAAO,EAAE,MAAM,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,eAAe,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAA;YACzH,CAAC;YACD,mFAAmF;YACnF,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC9C,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,OAAO;oBACL,MAAM,EAAE,2CAA2C,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sFAAsF;iBACjK,CAAA;YACH,CAAC;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO;oBACL,MAAM,EAAE,0CAA0C;iBACnD,CAAA;YACH,CAAC;YACD,4CAA4C;YAC5C,MAAM,YAAY,GAAG,UAAU,EAAE,CAAA;YACjC,mEAAmE;YACnE,gEAAgE;YAChE,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,IAAY,EAAU,EAAE;gBAC1D,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;gBACnC,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,YAAY,IAAI,IAAI,EAAE,EAAE;wBAC1D,IAAI,EAAE,YAAY;wBAClB,OAAO,EAAE,IAAI;wBACb,MAAM;wBACN,WAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC;wBACpC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;wBAC3B,QAAQ,EAAE,QAAQ,EAAE;qBACrB,CAAC,CAAA;oBACF,OAAO;wBACL,QAAQ,MAAM,CAAC,GAAG,EAAE;wBACpB,iBAAiB,WAAW,EAAE;wBAC9B,cAAc,MAAM,CAAC,QAAQ,EAAE;wBAC/B,WAAW,MAAM,EAAE;wBACnB,2DAA2D;qBAC5D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACd,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;gBAC5B,CAAC;YACH,CAAC,CAAA;YACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC;gBAC3B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;gBAC5B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;gBACxB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;gBAC5B,YAAY;gBACZ,GAAG;gBACH,KAAK;gBACL,MAAM,EAAE,UAAU;gBAClB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChD,CAAC,CAAA;YACF,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;YACvD,2DAA2D;YAC3D,IAAI,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACjE,OAAO;oBACL,MAAM,EACJ,aAAa,cAAc,CAAC,OAAO,CAAC,4BAA4B;wBAChE,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;wBAC5B,0BAA0B,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;iBACrD,CAAA;YACH,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;QAC5B,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JIT layer-2 tools — run identity + offload handle crypto.
|
|
3
|
+
*
|
|
4
|
+
* A handle is {ref, access_token, expire_at}:
|
|
5
|
+
* - ref = tm://runs/{run_id}/steps/{step_id}/result
|
|
6
|
+
* - access_token = HMAC-SHA256(process-start random key, run_id)
|
|
7
|
+
* (may also ride the ref as a `#<hex>` fragment — tm_fetch accepts both)
|
|
8
|
+
* - expire_at = creation time + TM_BLACKBOARD_TTL (default 7 days)
|
|
9
|
+
*
|
|
10
|
+
* The key lives only in process memory; a model can carry a handle around
|
|
11
|
+
* but cannot forge one for another run, and a handle from an earlier
|
|
12
|
+
* process is dead the moment that process ends (new key, new run id).
|
|
13
|
+
*/
|
|
14
|
+
import * as crypto from "node:crypto";
|
|
15
|
+
/** Compact run id: `r-<yyyyMMdd-HHmmss>-<6 hex>` (generated once per server()). */
|
|
16
|
+
export declare function newRunId(now?: Date): string;
|
|
17
|
+
/** HMAC-SHA256(key, runId) as hex — the handle access token. */
|
|
18
|
+
export declare function hmacToken(key: crypto.BinaryLike, runId: string): string;
|
|
19
|
+
/** Constant-time token check (length-compare guard before timingSafeEqual). */
|
|
20
|
+
export declare function verifyToken(key: crypto.BinaryLike, runId: string, token: unknown): boolean;
|
|
21
|
+
/** Strict ref grammar; the token fragment is optional. */
|
|
22
|
+
export declare const REF_PATTERN: RegExp;
|
|
23
|
+
export declare function buildRef(runId: string, stepId: string): string;
|
|
24
|
+
export interface ParsedRef {
|
|
25
|
+
runId: string;
|
|
26
|
+
stepId: string;
|
|
27
|
+
token?: string;
|
|
28
|
+
}
|
|
29
|
+
/** Parse a ref; null when malformed (wrong scheme, extra segments, junk). */
|
|
30
|
+
export declare function parseRef(ref: unknown): ParsedRef | null;
|
|
31
|
+
/**
|
|
32
|
+
* True when `expireAt` (ms epoch) is strictly in the past at `now`.
|
|
33
|
+
* Non-numeric expire_at fails CLOSED (treated as expired) — entries are
|
|
34
|
+
* plugin-written, so a malformed one must not extend a handle's life.
|
|
35
|
+
*/
|
|
36
|
+
export declare function isExpired(expireAt: unknown, now?: number): boolean;
|
|
37
|
+
//# sourceMappingURL=refs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../../src/tm/refs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,mFAAmF;AACnF,wBAAgB,QAAQ,CAAC,GAAG,GAAE,IAAiB,GAAG,MAAM,CAMvD;AAED,gEAAgE;AAChE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAI1F;AAED,0DAA0D;AAC1D,eAAO,MAAM,WAAW,QACsD,CAAA;AAE9E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAMvD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAI9E"}
|
package/dist/tm/refs.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JIT layer-2 tools — run identity + offload handle crypto.
|
|
3
|
+
*
|
|
4
|
+
* A handle is {ref, access_token, expire_at}:
|
|
5
|
+
* - ref = tm://runs/{run_id}/steps/{step_id}/result
|
|
6
|
+
* - access_token = HMAC-SHA256(process-start random key, run_id)
|
|
7
|
+
* (may also ride the ref as a `#<hex>` fragment — tm_fetch accepts both)
|
|
8
|
+
* - expire_at = creation time + TM_BLACKBOARD_TTL (default 7 days)
|
|
9
|
+
*
|
|
10
|
+
* The key lives only in process memory; a model can carry a handle around
|
|
11
|
+
* but cannot forge one for another run, and a handle from an earlier
|
|
12
|
+
* process is dead the moment that process ends (new key, new run id).
|
|
13
|
+
*/
|
|
14
|
+
import * as crypto from "node:crypto";
|
|
15
|
+
/** Compact run id: `r-<yyyyMMdd-HHmmss>-<6 hex>` (generated once per server()). */
|
|
16
|
+
export function newRunId(now = new Date()) {
|
|
17
|
+
const p = (n) => String(n).padStart(2, "0");
|
|
18
|
+
const ts = `${now.getFullYear()}${p(now.getMonth() + 1)}${p(now.getDate())}` +
|
|
19
|
+
`-${p(now.getHours())}${p(now.getMinutes())}${p(now.getSeconds())}`;
|
|
20
|
+
return `r-${ts}-${crypto.randomBytes(3).toString("hex")}`;
|
|
21
|
+
}
|
|
22
|
+
/** HMAC-SHA256(key, runId) as hex — the handle access token. */
|
|
23
|
+
export function hmacToken(key, runId) {
|
|
24
|
+
return crypto.createHmac("sha256", key).update(runId).digest("hex");
|
|
25
|
+
}
|
|
26
|
+
/** Constant-time token check (length-compare guard before timingSafeEqual). */
|
|
27
|
+
export function verifyToken(key, runId, token) {
|
|
28
|
+
const expected = Buffer.from(hmacToken(key, runId), "utf8");
|
|
29
|
+
const given = Buffer.from(String(token ?? ""), "utf8");
|
|
30
|
+
return given.length === expected.length && crypto.timingSafeEqual(expected, given);
|
|
31
|
+
}
|
|
32
|
+
/** Strict ref grammar; the token fragment is optional. */
|
|
33
|
+
export const REF_PATTERN = /^tm:\/\/runs\/([^/\s]+)\/steps\/([^/\s]+)\/result(?:#([0-9a-fA-F]{16,}))?$/;
|
|
34
|
+
export function buildRef(runId, stepId) {
|
|
35
|
+
return `tm://runs/${runId}/steps/${stepId}/result`;
|
|
36
|
+
}
|
|
37
|
+
/** Parse a ref; null when malformed (wrong scheme, extra segments, junk). */
|
|
38
|
+
export function parseRef(ref) {
|
|
39
|
+
const m = REF_PATTERN.exec(String(ref ?? "").trim());
|
|
40
|
+
if (!m)
|
|
41
|
+
return null;
|
|
42
|
+
const parsed = { runId: m[1], stepId: m[2] };
|
|
43
|
+
if (m[3])
|
|
44
|
+
parsed.token = m[3];
|
|
45
|
+
return parsed;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* True when `expireAt` (ms epoch) is strictly in the past at `now`.
|
|
49
|
+
* Non-numeric expire_at fails CLOSED (treated as expired) — entries are
|
|
50
|
+
* plugin-written, so a malformed one must not extend a handle's life.
|
|
51
|
+
*/
|
|
52
|
+
export function isExpired(expireAt, now = Date.now()) {
|
|
53
|
+
const t = Number(expireAt);
|
|
54
|
+
if (!Number.isFinite(t))
|
|
55
|
+
return true;
|
|
56
|
+
return now > t;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=refs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/tm/refs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,mFAAmF;AACnF,MAAM,UAAU,QAAQ,CAAC,MAAY,IAAI,IAAI,EAAE;IAC7C,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACnD,MAAM,EAAE,GACN,GAAG,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE;QACjE,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE,CAAA;IACrE,OAAO,KAAK,EAAE,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAA;AAC3D,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,SAAS,CAAC,GAAsB,EAAE,KAAa;IAC7D,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrE,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,WAAW,CAAC,GAAsB,EAAE,KAAa,EAAE,KAAc;IAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;IACtD,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AACpF,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,MAAM,WAAW,GACtB,4EAA4E,CAAA;AAE9E,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,MAAc;IACpD,OAAO,aAAa,KAAK,UAAU,MAAM,SAAS,CAAA;AACpD,CAAC;AAQD,6EAA6E;AAC7E,MAAM,UAAU,QAAQ,CAAC,GAAY;IACnC,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IACpD,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnB,MAAM,MAAM,GAAc,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACvD,IAAI,CAAC,CAAC,CAAC,CAAC;QAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7B,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,QAAiB,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;IACnE,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACpC,OAAO,GAAG,GAAG,CAAC,CAAA;AAChB,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JIT layer-2 tools — run-payload store + trajectory.
|
|
3
|
+
*
|
|
4
|
+
* Blackboard layout (under TM_BLACKBOARD_DIR, default `<project>/.blackboard/`):
|
|
5
|
+
* runs/{run_id}/steps/{step_id}/{seq:03d}-{tool}.md full offloaded result
|
|
6
|
+
* runs/{run_id}/index.jsonl one append per result
|
|
7
|
+
* entry = { ts, run_id, step_id, seq, tool, ref, file, tokens,
|
|
8
|
+
* content_type, expire_at, preview }
|
|
9
|
+
*
|
|
10
|
+
* Trajectory layout (under TM_TRAJECTORY_DIR, default `<project>/.trajectory/`):
|
|
11
|
+
* runs/{run_id}/steps.jsonl append-only, one line per event — NO code
|
|
12
|
+
* path may rewrite, truncate or delete lines;
|
|
13
|
+
* the TTL sweep of whole expired run dirs is
|
|
14
|
+
* the sanctioned reclamation path.
|
|
15
|
+
* runs/{run_id}/usage.jsonl RESERVED for T2.2 (constant below, unused).
|
|
16
|
+
*
|
|
17
|
+
* Reclamation philosophy mirrors blackboard.ts: a startup sweep removes run
|
|
18
|
+
* dirs idle past the TTL — idleness measured across the whole run-dir tree
|
|
19
|
+
* (file appends must count as activity; only this sweep is destructive).
|
|
20
|
+
*/
|
|
21
|
+
/** Reserved for T2.2 usage accounting — path constant only in this phase. */
|
|
22
|
+
export declare const USAGE_JSONL_RELPATH = "usage.jsonl";
|
|
23
|
+
export interface OffloadMeta {
|
|
24
|
+
tool: string;
|
|
25
|
+
content: string;
|
|
26
|
+
tokens: number;
|
|
27
|
+
contentType: string;
|
|
28
|
+
preview: string;
|
|
29
|
+
expireAt: number;
|
|
30
|
+
}
|
|
31
|
+
export interface StoredRef {
|
|
32
|
+
stepId: string;
|
|
33
|
+
seq: number;
|
|
34
|
+
file: string;
|
|
35
|
+
ref: string;
|
|
36
|
+
expireAt: number;
|
|
37
|
+
}
|
|
38
|
+
export interface IndexEntry {
|
|
39
|
+
ts: string;
|
|
40
|
+
run_id: string;
|
|
41
|
+
step_id: string;
|
|
42
|
+
seq: number;
|
|
43
|
+
tool: string;
|
|
44
|
+
ref: string;
|
|
45
|
+
file: string;
|
|
46
|
+
tokens: number;
|
|
47
|
+
content_type: string;
|
|
48
|
+
expire_at: number;
|
|
49
|
+
preview: string;
|
|
50
|
+
}
|
|
51
|
+
export interface RunStoreOptions {
|
|
52
|
+
projectRoot: string;
|
|
53
|
+
blackboardDir: string;
|
|
54
|
+
trajectoryDir: string;
|
|
55
|
+
runId: string;
|
|
56
|
+
ttlDays: number;
|
|
57
|
+
}
|
|
58
|
+
export declare class RunStore {
|
|
59
|
+
readonly blackboardRoot: string;
|
|
60
|
+
readonly trajectoryRoot: string;
|
|
61
|
+
private readonly _runId;
|
|
62
|
+
private readonly _ttlMs;
|
|
63
|
+
constructor(opts: RunStoreOptions);
|
|
64
|
+
get runId(): string;
|
|
65
|
+
private runDir;
|
|
66
|
+
stepsRoot(): string;
|
|
67
|
+
trajectoryFile(): string;
|
|
68
|
+
/**
|
|
69
|
+
* Write one offloaded result: step file (single write, never rewritten) +
|
|
70
|
+
* index.jsonl append. Throws on store failures — the caller degrades
|
|
71
|
+
* (governance failures must not fail the task).
|
|
72
|
+
*/
|
|
73
|
+
writeResult(stepId: string, meta: OffloadMeta): StoredRef;
|
|
74
|
+
/**
|
|
75
|
+
* Append one trajectory event. Append-only by contract; best-effort
|
|
76
|
+
* (trajectory failures are swallowed — the blackboard failure path is the
|
|
77
|
+
* one that degrades upstream).
|
|
78
|
+
*/
|
|
79
|
+
appendTrajectory(event: Record<string, unknown>): void;
|
|
80
|
+
/** Latest index entry for a ref (last append wins), or null. */
|
|
81
|
+
findIndexEntry(ref: string): IndexEntry | null;
|
|
82
|
+
/** Read the offloaded payload file of a step; null when gone/unreadable.
|
|
83
|
+
* With multiple seq files in one step (defensive re-entry), the LATEST
|
|
84
|
+
* seq wins — consistent with findIndexEntry's last-append-wins. */
|
|
85
|
+
readStepFile(stepId: string): {
|
|
86
|
+
content: string;
|
|
87
|
+
} | null;
|
|
88
|
+
/**
|
|
89
|
+
* Startup-only reclamation: remove run dirs (both stores) whose last tree
|
|
90
|
+
* activity is older than the TTL. This is the ONLY destructive path in
|
|
91
|
+
* this module. Returns the number of run dirs removed. Never throws.
|
|
92
|
+
*/
|
|
93
|
+
sweepExpired(now?: number): number;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/tm/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,gBAAgB,CAAA;AAKhD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,QAAQ;IACnB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAEnB,IAAI,EAAE,eAAe;IAWjC,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,OAAO,CAAC,MAAM;IAId,SAAS,IAAI,MAAM;IAInB,cAAc,IAAI,MAAM;IAIxB;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,SAAS;IA+BzD;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAYtD,gEAAgE;IAChE,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAmB9C;;wEAEoE;IACpE,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAWxD;;;;OAIG;IACH,YAAY,CAAC,GAAG,GAAE,MAAmB,GAAG,MAAM;CA+B/C"}
|
package/dist/tm/store.js
ADDED
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JIT layer-2 tools — run-payload store + trajectory.
|
|
3
|
+
*
|
|
4
|
+
* Blackboard layout (under TM_BLACKBOARD_DIR, default `<project>/.blackboard/`):
|
|
5
|
+
* runs/{run_id}/steps/{step_id}/{seq:03d}-{tool}.md full offloaded result
|
|
6
|
+
* runs/{run_id}/index.jsonl one append per result
|
|
7
|
+
* entry = { ts, run_id, step_id, seq, tool, ref, file, tokens,
|
|
8
|
+
* content_type, expire_at, preview }
|
|
9
|
+
*
|
|
10
|
+
* Trajectory layout (under TM_TRAJECTORY_DIR, default `<project>/.trajectory/`):
|
|
11
|
+
* runs/{run_id}/steps.jsonl append-only, one line per event — NO code
|
|
12
|
+
* path may rewrite, truncate or delete lines;
|
|
13
|
+
* the TTL sweep of whole expired run dirs is
|
|
14
|
+
* the sanctioned reclamation path.
|
|
15
|
+
* runs/{run_id}/usage.jsonl RESERVED for T2.2 (constant below, unused).
|
|
16
|
+
*
|
|
17
|
+
* Reclamation philosophy mirrors blackboard.ts: a startup sweep removes run
|
|
18
|
+
* dirs idle past the TTL — idleness measured across the whole run-dir tree
|
|
19
|
+
* (file appends must count as activity; only this sweep is destructive).
|
|
20
|
+
*/
|
|
21
|
+
import * as fs from "node:fs";
|
|
22
|
+
import * as path from "node:path";
|
|
23
|
+
import { buildRef } from "./refs.js";
|
|
24
|
+
/** Reserved for T2.2 usage accounting — path constant only in this phase. */
|
|
25
|
+
export const USAGE_JSONL_RELPATH = "usage.jsonl";
|
|
26
|
+
/** Offloaded result files follow `{seq:03d}-{tool}.md` inside a step dir. */
|
|
27
|
+
const STEP_FILE = /^\d{3}-[\w.-]+\.md$/;
|
|
28
|
+
export class RunStore {
|
|
29
|
+
blackboardRoot;
|
|
30
|
+
trajectoryRoot;
|
|
31
|
+
_runId;
|
|
32
|
+
_ttlMs;
|
|
33
|
+
constructor(opts) {
|
|
34
|
+
this._runId = opts.runId;
|
|
35
|
+
this._ttlMs = opts.ttlDays * 24 * 60 * 60 * 1000;
|
|
36
|
+
this.blackboardRoot = path.isAbsolute(opts.blackboardDir)
|
|
37
|
+
? opts.blackboardDir
|
|
38
|
+
: path.join(opts.projectRoot, opts.blackboardDir);
|
|
39
|
+
this.trajectoryRoot = path.isAbsolute(opts.trajectoryDir)
|
|
40
|
+
? opts.trajectoryDir
|
|
41
|
+
: path.join(opts.projectRoot, opts.trajectoryDir);
|
|
42
|
+
}
|
|
43
|
+
get runId() {
|
|
44
|
+
return this._runId;
|
|
45
|
+
}
|
|
46
|
+
runDir() {
|
|
47
|
+
return path.join(this.blackboardRoot, "runs", this._runId);
|
|
48
|
+
}
|
|
49
|
+
stepsRoot() {
|
|
50
|
+
return path.join(this.runDir(), "steps");
|
|
51
|
+
}
|
|
52
|
+
trajectoryFile() {
|
|
53
|
+
return path.join(this.trajectoryRoot, "runs", this._runId, "steps.jsonl");
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Write one offloaded result: step file (single write, never rewritten) +
|
|
57
|
+
* index.jsonl append. Throws on store failures — the caller degrades
|
|
58
|
+
* (governance failures must not fail the task).
|
|
59
|
+
*/
|
|
60
|
+
writeResult(stepId, meta) {
|
|
61
|
+
const stepDir = path.join(this.stepsRoot(), stepId);
|
|
62
|
+
fs.mkdirSync(stepDir, { recursive: true });
|
|
63
|
+
const seq = fs.readdirSync(stepDir).filter((f) => STEP_FILE.test(f)).length + 1;
|
|
64
|
+
const safeTool = meta.tool.replace(/[^\w-]/g, "_");
|
|
65
|
+
const name = `${String(seq).padStart(3, "0")}-${safeTool}.md`;
|
|
66
|
+
const file = path.join(stepDir, name);
|
|
67
|
+
fs.writeFileSync(file, meta.content, "utf8");
|
|
68
|
+
const ref = buildRef(this._runId, stepId);
|
|
69
|
+
const entry = {
|
|
70
|
+
ts: new Date().toISOString(),
|
|
71
|
+
run_id: this._runId,
|
|
72
|
+
step_id: stepId,
|
|
73
|
+
seq,
|
|
74
|
+
tool: meta.tool,
|
|
75
|
+
ref,
|
|
76
|
+
file: `${stepId}/${name}`,
|
|
77
|
+
tokens: meta.tokens,
|
|
78
|
+
content_type: meta.contentType,
|
|
79
|
+
expire_at: meta.expireAt,
|
|
80
|
+
preview: meta.preview,
|
|
81
|
+
};
|
|
82
|
+
fs.appendFileSync(path.join(this.runDir(), "index.jsonl"), JSON.stringify(entry) + "\n", "utf8");
|
|
83
|
+
return { stepId, seq, file, ref, expireAt: meta.expireAt };
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Append one trajectory event. Append-only by contract; best-effort
|
|
87
|
+
* (trajectory failures are swallowed — the blackboard failure path is the
|
|
88
|
+
* one that degrades upstream).
|
|
89
|
+
*/
|
|
90
|
+
appendTrajectory(event) {
|
|
91
|
+
try {
|
|
92
|
+
const file = this.trajectoryFile();
|
|
93
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
94
|
+
const line = JSON.stringify({ ts: new Date().toISOString(), run_id: this._runId, ...event }) + "\n";
|
|
95
|
+
fs.appendFileSync(file, line, "utf8");
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
/* trajectory is best-effort */
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/** Latest index entry for a ref (last append wins), or null. */
|
|
102
|
+
findIndexEntry(ref) {
|
|
103
|
+
try {
|
|
104
|
+
const text = fs.readFileSync(path.join(this.runDir(), "index.jsonl"), "utf8");
|
|
105
|
+
let found = null;
|
|
106
|
+
for (const line of text.split(/\r?\n/)) {
|
|
107
|
+
if (!line.trim())
|
|
108
|
+
continue;
|
|
109
|
+
try {
|
|
110
|
+
const entry = JSON.parse(line);
|
|
111
|
+
if (entry && entry.ref === ref)
|
|
112
|
+
found = entry;
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
/* skip torn/bad line — append-only logs can have them on crash */
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return found;
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/** Read the offloaded payload file of a step; null when gone/unreadable.
|
|
125
|
+
* With multiple seq files in one step (defensive re-entry), the LATEST
|
|
126
|
+
* seq wins — consistent with findIndexEntry's last-append-wins. */
|
|
127
|
+
readStepFile(stepId) {
|
|
128
|
+
try {
|
|
129
|
+
const dir = path.join(this.stepsRoot(), stepId);
|
|
130
|
+
const files = fs.readdirSync(dir).filter((f) => STEP_FILE.test(f)).sort();
|
|
131
|
+
if (files.length === 0)
|
|
132
|
+
return null;
|
|
133
|
+
return { content: fs.readFileSync(path.join(dir, files[files.length - 1]), "utf8") };
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Startup-only reclamation: remove run dirs (both stores) whose last tree
|
|
141
|
+
* activity is older than the TTL. This is the ONLY destructive path in
|
|
142
|
+
* this module. Returns the number of run dirs removed. Never throws.
|
|
143
|
+
*/
|
|
144
|
+
sweepExpired(now = Date.now()) {
|
|
145
|
+
let removed = 0;
|
|
146
|
+
for (const root of [this.blackboardRoot, this.trajectoryRoot]) {
|
|
147
|
+
const runsDir = path.join(root, "runs");
|
|
148
|
+
let entries;
|
|
149
|
+
try {
|
|
150
|
+
entries = fs.readdirSync(runsDir);
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
continue; // store not created yet — nothing to sweep
|
|
154
|
+
}
|
|
155
|
+
for (const entry of entries) {
|
|
156
|
+
const dir = path.join(runsDir, entry);
|
|
157
|
+
try {
|
|
158
|
+
if (!fs.statSync(dir).isDirectory())
|
|
159
|
+
continue;
|
|
160
|
+
// Activity = max mtime across the run-dir TREE (M2, mirrors
|
|
161
|
+
// blackboard.ts): appending to steps.jsonl / step files does NOT
|
|
162
|
+
// refresh the parent dir's mtime, so a dir-mtime check deleted
|
|
163
|
+
// live runs (review probe E1). lastActivityMs returning 0 (stat
|
|
164
|
+
// failure) keeps the dir — fail-closed.
|
|
165
|
+
const last = lastActivityMs(dir);
|
|
166
|
+
if (last !== 0 && now - last > this._ttlMs) {
|
|
167
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
168
|
+
removed++;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
/* raced entry — skip */
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return removed;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Latest mtime within `dir`, recursing the whole tree (M2 — mirrors
|
|
181
|
+
* blackboard.ts's lastActivity, which is regression-pinned there). A
|
|
182
|
+
* directory's own mtime only changes when direct children are created/
|
|
183
|
+
* removed/renamed — NOT when a file inside is appended or rewritten in
|
|
184
|
+
* place — so the sweep must look at file activity.
|
|
185
|
+
*
|
|
186
|
+
* The depth difference vs blackboard.ts's lastActivity (capped `levels`
|
|
187
|
+
* recursion) is DELIBERATE: blackboard trees can be user-managed and
|
|
188
|
+
* arbitrarily deep, so they cap defensively; the run-dir tree here is
|
|
189
|
+
* plugin-owned and bounded by what the plugin itself wrote. Even a
|
|
190
|
+
* pathological cycle terminates naturally — fs.statSync on a symlink loop
|
|
191
|
+
* fails with ELOOP and is swallowed by the catch below.
|
|
192
|
+
*/
|
|
193
|
+
function lastActivityMs(dir) {
|
|
194
|
+
let latest;
|
|
195
|
+
try {
|
|
196
|
+
latest = fs.statSync(dir).mtimeMs;
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
return 0;
|
|
200
|
+
}
|
|
201
|
+
let entries;
|
|
202
|
+
try {
|
|
203
|
+
entries = fs.readdirSync(dir);
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
return latest; // unreadable dir: its own mtime is all we know
|
|
207
|
+
}
|
|
208
|
+
for (const entry of entries) {
|
|
209
|
+
const child = path.join(dir, entry);
|
|
210
|
+
try {
|
|
211
|
+
const st = fs.statSync(child);
|
|
212
|
+
const seen = st.isDirectory() ? lastActivityMs(child) : st.mtimeMs;
|
|
213
|
+
if (seen > latest)
|
|
214
|
+
latest = seen;
|
|
215
|
+
}
|
|
216
|
+
catch {
|
|
217
|
+
/* raced deletion — ignore */
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return latest;
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/tm/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JIT layer-2 tools — the four governed pipelines (T1.2 + T1.3 + T1.4).
|
|
3
|
+
*
|
|
4
|
+
* tm_read — governed passthrough of client.file.read (T0.4-verified API)
|
|
5
|
+
* tm_grep — governed passthrough of client.find.text (T0.4-verified API)
|
|
6
|
+
* tm_bash — read-only allowlisted shell via the host `$` bridge
|
|
7
|
+
* tm_fetch — paged/structured retrieval of offloaded payloads (handles)
|
|
8
|
+
*
|
|
9
|
+
* Shared governance (every tool):
|
|
10
|
+
* - ToolResult contract (official tool.d.ts:39-46): execute() returns
|
|
11
|
+
* {output: string} — ALWAYS. Handles, structured errors, pages and
|
|
12
|
+
* degraded warnings are formatted INTO the output text; a bare object
|
|
13
|
+
* return crashes the host result pipeline (`c.split`) and the model
|
|
14
|
+
* would never see the handle it needs to drive tm_fetch.
|
|
15
|
+
* - R6 reuse: env-file paths / env commands are refused through the SAME
|
|
16
|
+
* envprotect matchers the global hook uses (anti-backdoor requirement);
|
|
17
|
+
* the hook layer additionally aliases tm_* onto read/grep/bash so even a
|
|
18
|
+
* future tool-code regression cannot bypass R6.
|
|
19
|
+
* - Threshold offload: estimateTokens(content) >= TM_OFFLOAD_THRESHOLD
|
|
20
|
+
* (default 2000; == threshold also offloads) -> full payload to the run
|
|
21
|
+
* store + trajectory, handle {offloaded, ref, access_token, expire_at,
|
|
22
|
+
* tokens, preview} back. Below -> content inline.
|
|
23
|
+
* - Structured errors (T1.4): pipelines still produce
|
|
24
|
+
* {error: {tool, phase, message, line?}} internally — never a bare
|
|
25
|
+
* throw — and execute() renders them readably into output; shell errors
|
|
26
|
+
* carry a line when one can be extracted and stdout noise is stripped.
|
|
27
|
+
* - Degradation: an offload (store) failure returns truncated content plus
|
|
28
|
+
* a warning — a governance fault must never fail the task.
|
|
29
|
+
*/
|
|
30
|
+
import type * as crypto from "node:crypto";
|
|
31
|
+
import { type EnvProtectMode } from "../envprotect.js";
|
|
32
|
+
import type { ToolDefinition } from "../types.js";
|
|
33
|
+
import { type TmConfig } from "./config.js";
|
|
34
|
+
import type { RunStore } from "./store.js";
|
|
35
|
+
import { detectContentType } from "./preview.js";
|
|
36
|
+
export type TmPhase = "args" | "permission" | "client" | "execute" | "store" | "governance";
|
|
37
|
+
export interface TmErrorBody {
|
|
38
|
+
error: {
|
|
39
|
+
tool: string;
|
|
40
|
+
phase: TmPhase;
|
|
41
|
+
message: string;
|
|
42
|
+
line?: number;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export declare function tmError(tool: string, phase: TmPhase, message: string, line?: number): TmErrorBody;
|
|
46
|
+
/** Fixed invalid-handle message (spec-pinned wording for tm_fetch). */
|
|
47
|
+
export declare const HANDLE_INVALID_MESSAGE = "\u8F7D\u8377\u5DF2\u6E05\u7406\u6216 run \u4E0D\u5339\u914D\uFF0C\u5EFA\u8BAE\u91CD\u8DD1\u539F\u5DE5\u5177\u3002";
|
|
48
|
+
export interface TmDeps {
|
|
49
|
+
client: unknown;
|
|
50
|
+
$: unknown;
|
|
51
|
+
cfg: TmConfig;
|
|
52
|
+
store: RunStore;
|
|
53
|
+
runId: string;
|
|
54
|
+
/** Process-random HMAC key — used to VERIFY handle tokens in tm_fetch. */
|
|
55
|
+
hmacKey: crypto.BinaryLike;
|
|
56
|
+
accessToken: string;
|
|
57
|
+
expireAt: number;
|
|
58
|
+
mode: EnvProtectMode;
|
|
59
|
+
extra: RegExp[];
|
|
60
|
+
}
|
|
61
|
+
interface GovernOptions {
|
|
62
|
+
contentType: ReturnType<typeof detectContentType>;
|
|
63
|
+
clue?: string;
|
|
64
|
+
}
|
|
65
|
+
export declare function buildPipelines(deps: TmDeps): {
|
|
66
|
+
nextStepId: () => string;
|
|
67
|
+
govern: (stepId: string, tool: string, content: string, opts: GovernOptions) => unknown;
|
|
68
|
+
tmRead: (rawArgs: Record<string, unknown>, ctx: unknown) => Promise<unknown>;
|
|
69
|
+
tmGrep: (rawArgs: Record<string, unknown>, ctx: unknown) => Promise<unknown>;
|
|
70
|
+
tmBash: (rawArgs: Record<string, unknown>, ctx: unknown) => Promise<unknown>;
|
|
71
|
+
tmFetch: (rawArgs: Record<string, unknown>, _ctx: unknown) => Promise<unknown>;
|
|
72
|
+
};
|
|
73
|
+
/** The four governed pipelines + shared step-counter/govern (PTC bridge seam). */
|
|
74
|
+
export type TmPipelines = ReturnType<typeof buildPipelines>;
|
|
75
|
+
/**
|
|
76
|
+
* Build the four tool definitions. Async only because of the optional zod
|
|
77
|
+
* load; every pipeline itself is runtime-defensive against raw args. Every
|
|
78
|
+
* execute() funnels through toToolResult so the return value ALWAYS satisfies
|
|
79
|
+
* the host ToolResult contract ({output: string}) — handles, structured
|
|
80
|
+
* errors, pages and degraded warnings included.
|
|
81
|
+
*/
|
|
82
|
+
export declare function buildTmTools(deps: TmDeps): Promise<Record<string, ToolDefinition>>;
|
|
83
|
+
export {};
|
|
84
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tm/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAgE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACpH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAA;AAC7D,OAAO,EAA0C,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAIL,iBAAiB,EAClB,MAAM,cAAc,CAAA;AAKrB,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY,CAAA;AAE3F,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACxE;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAIjG;AAED,uEAAuE;AACvE,eAAO,MAAM,sBAAsB,sHAA4B,CAAA;AAgQ/D,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,OAAO,CAAA;IACf,CAAC,EAAE,OAAO,CAAA;IACV,GAAG,EAAE,QAAQ,CAAA;IACb,KAAK,EAAE,QAAQ,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC,UAAU,CAAA;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAiCD,UAAU,aAAa;IACrB,WAAW,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA;IACjD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM;;qBAejB,MAAM,QAAQ,MAAM,WAAW,MAAM,QAAQ,aAAa,KAAG,OAAO;sBAsD7D,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC;sBAyCxD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC;sBA4CxD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC;uBAiCvD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC;EAgF1F;AAED,kFAAkF;AAClF,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAwH3D;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAyBxF"}
|