@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.
Files changed (54) hide show
  1. package/README.md +157 -53
  2. package/README.zh-CN.md +137 -53
  3. package/dist/agents.d.ts.map +1 -1
  4. package/dist/agents.js +128 -26
  5. package/dist/agents.js.map +1 -1
  6. package/dist/approval-gate.d.ts +147 -0
  7. package/dist/approval-gate.d.ts.map +1 -0
  8. package/dist/approval-gate.js +471 -0
  9. package/dist/approval-gate.js.map +1 -0
  10. package/dist/commands.js +3 -3
  11. package/dist/commands.js.map +1 -1
  12. package/dist/envprotect.d.ts +234 -0
  13. package/dist/envprotect.d.ts.map +1 -0
  14. package/dist/envprotect.js +820 -0
  15. package/dist/envprotect.js.map +1 -0
  16. package/dist/index.d.ts +5 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +112 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/tm/config.d.ts +105 -0
  21. package/dist/tm/config.d.ts.map +1 -0
  22. package/dist/tm/config.js +118 -0
  23. package/dist/tm/config.js.map +1 -0
  24. package/dist/tm/guard.d.ts +56 -0
  25. package/dist/tm/guard.d.ts.map +1 -0
  26. package/dist/tm/guard.js +249 -0
  27. package/dist/tm/guard.js.map +1 -0
  28. package/dist/tm/index.d.ts +41 -0
  29. package/dist/tm/index.d.ts.map +1 -0
  30. package/dist/tm/index.js +93 -0
  31. package/dist/tm/index.js.map +1 -0
  32. package/dist/tm/preview.d.ts +46 -0
  33. package/dist/tm/preview.d.ts.map +1 -0
  34. package/dist/tm/preview.js +354 -0
  35. package/dist/tm/preview.js.map +1 -0
  36. package/dist/tm/ptc.d.ts +279 -0
  37. package/dist/tm/ptc.d.ts.map +1 -0
  38. package/dist/tm/ptc.js +839 -0
  39. package/dist/tm/ptc.js.map +1 -0
  40. package/dist/tm/refs.d.ts +37 -0
  41. package/dist/tm/refs.d.ts.map +1 -0
  42. package/dist/tm/refs.js +58 -0
  43. package/dist/tm/refs.js.map +1 -0
  44. package/dist/tm/store.d.ts +95 -0
  45. package/dist/tm/store.d.ts.map +1 -0
  46. package/dist/tm/store.js +222 -0
  47. package/dist/tm/store.js.map +1 -0
  48. package/dist/tm/tools.d.ts +84 -0
  49. package/dist/tm/tools.d.ts.map +1 -0
  50. package/dist/tm/tools.js +710 -0
  51. package/dist/tm/tools.js.map +1 -0
  52. package/dist/types.d.ts +155 -0
  53. package/dist/types.d.ts.map +1 -1
  54. 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"}
@@ -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"}
@@ -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"}