sema-core 2.0.4 → 2.0.6
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/dist/core/Conversation.d.ts.map +1 -1
- package/dist/core/Conversation.js +6 -3
- package/dist/core/Conversation.js.map +1 -1
- package/dist/core/SemaEngine.d.ts.map +1 -1
- package/dist/core/SemaEngine.js +9 -1
- package/dist/core/SemaEngine.js.map +1 -1
- package/dist/events/types.d.ts +15 -0
- package/dist/events/types.d.ts.map +1 -1
- package/dist/manager/PermissionManager.d.ts.map +1 -1
- package/dist/manager/PermissionManager.js +74 -90
- package/dist/manager/PermissionManager.js.map +1 -1
- package/dist/manager/StateManager.d.ts +6 -1
- package/dist/manager/StateManager.d.ts.map +1 -1
- package/dist/manager/StateManager.js +12 -2
- package/dist/manager/StateManager.js.map +1 -1
- package/dist/prompt/memory.d.ts.map +1 -1
- package/dist/prompt/memory.js +23 -12
- package/dist/prompt/memory.js.map +1 -1
- package/dist/prompt/permission.d.ts +1 -1
- package/dist/prompt/permission.d.ts.map +1 -1
- package/dist/prompt/permission.js +43 -7
- package/dist/prompt/permission.js.map +1 -1
- package/dist/services/commands/runCommand.js +23 -11
- package/dist/services/commands/runCommand.js.map +1 -1
- package/dist/tools/FetchUrl.js +3 -3
- package/dist/tools/FetchUrl.js.map +1 -1
- package/dist/tools/RunShell.d.ts.map +1 -1
- package/dist/tools/RunShell.js +8 -7
- package/dist/tools/RunShell.js.map +1 -1
- package/dist/util/commands.d.ts.map +1 -1
- package/dist/util/commands.js +48 -4
- package/dist/util/commands.js.map +1 -1
- package/dist/util/commands.test.d.ts +2 -0
- package/dist/util/commands.test.d.ts.map +1 -0
- package/dist/util/commands.test.js +93 -0
- package/dist/util/commands.test.js.map +1 -0
- package/dist/util/compact.d.ts +40 -6
- package/dist/util/compact.d.ts.map +1 -1
- package/dist/util/compact.js +152 -63
- package/dist/util/compact.js.map +1 -1
- package/dist/util/fetchSafety.d.ts +11 -0
- package/dist/util/fetchSafety.d.ts.map +1 -0
- package/dist/util/fetchSafety.js +86 -0
- package/dist/util/fetchSafety.js.map +1 -0
- package/dist/util/fetchSafety.test.d.ts +2 -0
- package/dist/util/fetchSafety.test.d.ts.map +1 -0
- package/dist/util/fetchSafety.test.js +44 -0
- package/dist/util/fetchSafety.test.js.map +1 -0
- package/dist/util/fetchUrl.d.ts +1 -1
- package/dist/util/fetchUrl.d.ts.map +1 -1
- package/dist/util/fetchUrl.js +2 -2
- package/dist/util/fetchUrl.js.map +1 -1
- package/dist/util/fileReference.js +3 -3
- package/dist/util/fileReference.js.map +1 -1
- package/dist/util/history.d.ts +11 -1
- package/dist/util/history.d.ts.map +1 -1
- package/dist/util/history.js +19 -4
- package/dist/util/history.js.map +1 -1
- package/dist/util/savePath.d.ts +3 -1
- package/dist/util/savePath.d.ts.map +1 -1
- package/dist/util/savePath.js +4 -3
- package/dist/util/savePath.js.map +1 -1
- package/dist/util/shellSafety.d.ts +34 -0
- package/dist/util/shellSafety.d.ts.map +1 -0
- package/dist/util/shellSafety.js +122 -0
- package/dist/util/shellSafety.js.map +1 -0
- package/dist/util/shellSafety.test.d.ts +2 -0
- package/dist/util/shellSafety.test.d.ts.map +1 -0
- package/dist/util/shellSafety.test.js +103 -0
- package/dist/util/shellSafety.test.js.map +1 -0
- package/dist/util/snapshotStore.d.ts.map +1 -1
- package/dist/util/snapshotStore.js +9 -4
- package/dist/util/snapshotStore.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileReference.js","sourceRoot":"","sources":["../../src/util/fileReference.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fileReference.js","sourceRoot":"","sources":["../../src/util/fileReference.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,gDA0DC;AAqRD,sDAqDC;AAlaD,iCAA0E;AAC1E,+BAAwC;AACxC,uDAAgF;AAChF,gDAA6D;AAC7D,yCAAyE;AACzE,6CAAwE;AAExE,+BAAsC;AACtC,uCAAwB;AACxB,2CAA4B;AAa5B;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,SAAiB;IAClD,UAAU;IACV,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAE3E,aAAa;IACb,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAC5C,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACtB,eAAe;QACf,MAAM,QAAQ,GAAG,IAAA,2BAAoB,EAAC,QAAQ,CAAC,CAAA;QAC/C,IAAI,WAAW,GAAG,KAAK,CAAA;QACvB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YACnC,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uBAAuB;YACvB,WAAW,GAAG,KAAK,CAAA;QACrB,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,WAAW;SACZ,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA;IAE/C,wBAAwB;IACxB,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QACjD,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAEpC,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,oBAAoB;YACpB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;QAC/B,CAAC;QAED,OAAO;YACL,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,WAAW;YAC9C,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,gBAAgB;SACvD,CAAA;IACH,CAAC;SAAM,CAAC;QACN,OAAO;QACP,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QACzC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACtB,oBAAoB;YACpB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;QAC/B,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QAC/C,OAAO;YACL,QAAQ;YACR,SAAS,EAAE,eAAe;YAC1B,OAAO,EAAE,eAAe;SACzB,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,yBAAyB,CACtC,QAAgB,EAChB,YAAiB;IAKjB,MAAM,eAAe,GAAkC,EAAE,CAAA;IACzD,MAAM,iBAAiB,GAAwB,EAAE,CAAA;IAEjD,aAAa;IACb,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,0BAAmB,CAAC,CAAA;IACpF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAA,aAAO,EAAC,GAAG,0BAAmB,iDAAiD,CAAC,CAAA;QAChF,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAA;IAC/C,CAAC;IAED,MAAM,gBAAgB,GAAG,qBAAqB,QAAQ,OAAO,CAAA;IAC7D,eAAe,CAAC,IAAI,CAAC;QACnB,IAAI,EAAE,MAAe;QACrB,IAAI,EAAE,GAAG,0BAAiB,gBAAgB,0BAAmB,mCAAmC,gBAAgB,KAAK,2BAAkB,EAAE;KAC1I,CAAC,CAAA;IAEF,6CAA6C;IAC7C,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CACjC;QACE,OAAO,EAAE,OAAO,QAAQ,GAAG;QAC3B,WAAW,EAAE,kBAAkB,QAAQ,EAAE;KAC1C,EACD,EAAE,GAAG,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,CAC9C,CAAA;IAED,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;YACrE,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,GAAG,0BAAiB,2BAA2B,0BAAmB,WAAW,OAAO,MAAM,2BAAkB,EAAE;aACrH,CAAC,CAAA;YAEF,SAAS;YACT,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAA,oBAAc,GAAE,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YACzF,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,CAAA;YAClF,iBAAiB,CAAC,IAAI,CAAC;gBACrB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,oBAAoB,WAAW,EAAE;aAC3C,CAAC,CAAA;YAEF,MAAK,CAAC,WAAW;QACnB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAA;AAC/C,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,sBAAsB,CACnC,KAAuB,EACvB,YAAiB,EACjB,YAAiB;IAKjB,MAAM,eAAe,GAAkC,EAAE,CAAA;IACzD,MAAM,iBAAiB,GAAwB,EAAE,CAAA;IAEjD,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,6BAA6B;IAC5D,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,0BAA0B;IAEzD,SAAS;IACT,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG,IAAA,2BAAoB,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAEtD,IAAA,aAAO,EAAC,8BAA8B,aAAa,OAAO,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAExL,IAAI,CAAC;QACH,YAAY;QACZ,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,MAAM,yBAAyB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAChE,CAAC;QAED,IAAI,IAAA,kCAA2B,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,IAAA,aAAO,EAAC,+CAA+C,aAAa,OAAO,QAAQ,EAAE,CAAC,CAAA;YACtF,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAA;QAC/C,CAAC;QAED,eAAe;QACf,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;YACpD,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,GAAG,0BAAiB,oCAAoC,0BAAmB,0GAA0G,2BAAkB,EAAE;aAChN,CAAC,CAAA;YACF,8BAA8B;QAChC,CAAC;QAED,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;QACnD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YAC5C,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,GAAG,0BAAiB,KAAK,oCAAyB,KAAK,2BAAkB,EAAE;aAClF,CAAC,CAAA;YACF,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAA;QAC/C,CAAC;QAED,WAAW;QACX,IAAI,eAAe,GAAG,MAAM,CAAC,SAAS,CAAA;QACtC,IAAI,WAAW,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAC9E,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC;YACvC,CAAC,CAAC,SAAS,CAAA;QACb,IAAI,qBAAqB,GAAG,KAAK,CAAA,CAAC,aAAa;QAE/C,oDAAoD;QACpD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,IAAI,8BAAc,EAAE,CAAC;YACrE,eAAe,GAAG,SAAS,CAAA;YAC3B,WAAW,GAAG,SAAS,CAAA;QACzB,CAAC;QACD,4BAA4B;aACvB,IAAI,WAAW,IAAI,WAAW,GAAG,8BAAc,EAAE,CAAC;YACrD,MAAM,cAAc,GAAG,MAAM,CAAC,SAAU,CAAA;YACxC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAQ,CAAA;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;YAEhE,sCAAsC;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,8BAAc,GAAG,CAAC,CAAC,CAAA;YAChD,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAA;YACnD,WAAW,GAAG,8BAAc,CAAA;YAE5B,IAAA,aAAO,EAAC,kBAAkB,aAAa,cAAc,MAAM,CAAC,OAAQ,GAAG,MAAM,CAAC,SAAU,GAAG,CAAC,UAAU;gBACpG,eAAe,8BAAc,+BAA+B,QAAQ,GAAG;gBACvE,kBAAkB,eAAe,IAAI,eAAe,GAAG,WAAW,GAAG,CAAC,GAAG,CAAC,CAAA;QAC9E,CAAC;QACD,yCAAyC;aACpC,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACxC,qBAAqB,GAAG,IAAI,CAAA;QAC9B,CAAC;QAED,IAAI,YAAoB,CAAA;QACxB,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,YAAY,GAAG,iBAAiB,QAAQ,kBAAkB,eAAe,gBAAgB,WAAW,GAAG,CAAA;QACzG,CAAC;aAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YACrC,YAAY,GAAG,iBAAiB,QAAQ,iBAAiB,WAAW,GAAG,CAAA;QACzE,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,iBAAiB,QAAQ,IAAI,CAAA;QAC9C,CAAC;QAED,eAAe,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,MAAe;YACrB,IAAI,EAAE,GAAG,0BAAiB,gBAAgB,0BAAmB,mCAAmC,YAAY,KAAK,2BAAkB,EAAE;SACtI,CAAC,CAAA;QAEF,oBAAoB;QACpB,MAAM,UAAU,GAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;QAC/C,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,UAAU,CAAC,UAAU,GAAG,eAAe,CAAA;QACzC,CAAC;QACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,UAAU,CAAC,SAAS,GAAG,WAAW,CAAA;QACpC,CAAC;QAED,qBAAqB;QACrB,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CACrC,UAAU,EACV,YAAY,CACb,CAAA;QAED,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACzC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAA,oBAAc,GAAE,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;gBAExF,YAAY;gBACZ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACjC,qBAAqB;oBACrB,eAAe,CAAC,IAAI,CAAC;wBACnB,IAAI,EAAE,OAAgB;wBACtB,MAAM,EAAE;4BACN,IAAI,EAAE,QAAiB;4BACvB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;4BAC5B,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU;yBACzC;qBACF,CAAC,CAAA;oBAEF,IAAI,OAAO,GAAG,EAAE,CAAA;oBAChB,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAA;wBACxC,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,IAAI;4BAC5B,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;4BAC9C,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;oBACzC,CAAC;oBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;oBAExB,iBAAiB,CAAC,IAAI,CAAC;wBACrB,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,QAAQ,WAAW,GAAG,OAAO,EAAE;qBACzC,CAAC,CAAA;gBACJ,CAAC;qBAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC3C,4BAA4B;oBAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAA;oBAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;4BAClC,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,MAAM;yBACb,CAAC,CAAC,CAAA;oBAEH,eAAe,CAAC,IAAI,CAAC;wBACnB,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,GAAG,0BAAiB,2BAA2B,0BAAmB,UAAU,WAAW,KAAK,2BAAkB,EAAE;qBACvH,CAAC,CAAA;oBAEF,SAAS;oBACT,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAA;oBAChD,iBAAiB,CAAC,IAAI,CAAC;wBACrB,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,QAAQ,WAAW,KAAK,SAAS,SAAS;qBACpD,CAAC,CAAA;gBACJ,CAAC;qBAAM,CAAC;oBACN,SAAS;oBACT,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;oBACrE,eAAe,CAAC,IAAI,CAAC;wBACnB,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,GAAG,0BAAiB,2BAA2B,0BAAmB,WAAW,OAAO,MAAM,2BAAkB,EAAE;qBACrH,CAAC,CAAA;oBAEF,SAAS;oBACT,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;oBAC5C,MAAM,WAAW,GAAG,qBAAqB,IAAI,SAAS,IAAI,8BAAc,CAAA;oBACxE,iBAAiB,CAAC,IAAI,CAAC;wBACrB,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,WAAW;4BAClB,CAAC,CAAC,QAAQ,WAAW,KAAK,8BAAc,UAAU;4BAClD,CAAC,CAAC,QAAQ,WAAW,KAAK,SAAS,SAAS;qBAC/C,CAAC,CAAA;oBAEF,6BAA6B;oBAC7B,IAAI,WAAW,EAAE,CAAC;wBAChB,eAAe,CAAC,IAAI,CAAC;4BACnB,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,GAAG,0BAAiB,WAAW,QAAQ,+BAA+B,8BAAc,iCAAiC,2BAAkB,EAAE;yBAChJ,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;gBAED,MAAK,CAAC,WAAW;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW;QACX,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,IAAA,aAAO,EAAC,sBAAsB,MAAM,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC,CAAA;QACjE,eAAe,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,MAAe;YACrB,IAAI,EAAE,GAAG,0BAAiB,wBAAwB,MAAM,CAAC,QAAQ,KAAK,YAAY,KAAK,2BAAkB,EAAE;SAC5G,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAA;AAC/C,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,qBAAqB,CACzC,SAAiB,EACjB,YAAiB;IAKjB,yBAAyB;IACzB,gCAAgC;IAChC,iDAAiD;IACjD,gBAAgB;IAChB,MAAM,kBAAkB,GAAG,+FAA+F,CAAA;IAC1H,MAAM,UAAU,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAE9D,kBAAkB;IAClB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAA;IACvD,CAAC;IAED,sBAAsB;IACtB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QACxC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAE,CAAA;QACnC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACb,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IAEF,wBAAwB;IACxB,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,0BAAmB,CAAC,CAAA;IAExF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,IAAA,aAAO,EAAC,6DAA6D,CAAC,CAAA;QACtE,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAA;IACvD,CAAC;IAED,gBAAgB;IAChB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAChF,CAAA;IAED,gBAAgB;IAChB,MAAM,eAAe,GAAkC,EAAE,CAAA;IACzD,MAAM,iBAAiB,GAAwB,EAAE,CAAA;IAEjD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,eAAe,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;QAC/C,iBAAiB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;IACrD,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAA;AAC/C,CAAC"}
|
package/dist/util/history.d.ts
CHANGED
|
@@ -7,6 +7,16 @@ interface HistoryData {
|
|
|
7
7
|
todoTasks?: TodoTask[];
|
|
8
8
|
readFileTimestamps?: Record<string, number>;
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* 解析会话当前应使用的历史文件路径与命名格式。
|
|
12
|
+
* 优先级:无日期 会话id.json > 当天带日期 日期_会话id.json。
|
|
13
|
+
* 都不存在时返回当天带日期路径,exists=false(由调用方决定新会话的命名格式)。
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveHistoryFile(sessionId: string, projectPath?: string): {
|
|
16
|
+
path: string;
|
|
17
|
+
noDate: boolean;
|
|
18
|
+
exists: boolean;
|
|
19
|
+
};
|
|
10
20
|
/**
|
|
11
21
|
* 加载历史消息和todos
|
|
12
22
|
*/
|
|
@@ -18,6 +28,6 @@ export declare function cleanupOldHistoryFiles(projectPath?: string): Promise<vo
|
|
|
18
28
|
/**
|
|
19
29
|
* 保存历史消息和todos
|
|
20
30
|
*/
|
|
21
|
-
export declare function saveHistory(sessionId: string, messages: Message[], todos?: TodoItem[], projectPath?: string, readFileTimestamps?: Record<string, number>, todoTasks?: TodoTask[]): Promise<void>;
|
|
31
|
+
export declare function saveHistory(sessionId: string, messages: Message[], todos?: TodoItem[], projectPath?: string, readFileTimestamps?: Record<string, number>, todoTasks?: TodoTask[], noDate?: boolean): Promise<void>;
|
|
22
32
|
export type { HistoryData };
|
|
23
33
|
//# sourceMappingURL=history.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/util/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAiB7C,UAAU,WAAW;IACnB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAsBhG;AAwHD;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/util/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAiB7C,UAAU,WAAW;IACnB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAQ9H;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAsBhG;AAwHD;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCxN;AAGD,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/util/history.js
CHANGED
|
@@ -33,6 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.resolveHistoryFile = resolveHistoryFile;
|
|
36
37
|
exports.loadHistory = loadHistory;
|
|
37
38
|
exports.cleanupOldHistoryFiles = cleanupOldHistoryFiles;
|
|
38
39
|
exports.saveHistory = saveHistory;
|
|
@@ -45,15 +46,29 @@ const config_1 = require("../conf/config");
|
|
|
45
46
|
const time_1 = require("./time");
|
|
46
47
|
// 清理历史文件的时间间隔(毫秒)
|
|
47
48
|
let lastHistoryCleanupTime = 0;
|
|
49
|
+
/**
|
|
50
|
+
* 解析会话当前应使用的历史文件路径与命名格式。
|
|
51
|
+
* 优先级:无日期 会话id.json > 当天带日期 日期_会话id.json。
|
|
52
|
+
* 都不存在时返回当天带日期路径,exists=false(由调用方决定新会话的命名格式)。
|
|
53
|
+
*/
|
|
54
|
+
function resolveHistoryFile(sessionId, projectPath) {
|
|
55
|
+
const noDatePath = (0, savePath_1.getHistoryFilePath)(sessionId, projectPath, true);
|
|
56
|
+
if (fs.existsSync(noDatePath))
|
|
57
|
+
return { path: noDatePath, noDate: true, exists: true };
|
|
58
|
+
const datedPath = (0, savePath_1.getHistoryFilePath)(sessionId, projectPath, false);
|
|
59
|
+
if (fs.existsSync(datedPath))
|
|
60
|
+
return { path: datedPath, noDate: false, exists: true };
|
|
61
|
+
return { path: datedPath, noDate: false, exists: false };
|
|
62
|
+
}
|
|
48
63
|
/**
|
|
49
64
|
* 加载历史消息和todos
|
|
50
65
|
*/
|
|
51
66
|
async function loadHistory(sessionId, projectPath) {
|
|
52
67
|
if (!sessionId)
|
|
53
68
|
return { messages: [], todos: [] };
|
|
54
|
-
const historyPath = (
|
|
69
|
+
const { path: historyPath, exists } = resolveHistoryFile(sessionId, projectPath);
|
|
55
70
|
try {
|
|
56
|
-
if (
|
|
71
|
+
if (exists) {
|
|
57
72
|
const historyData = JSON.parse(fs.readFileSync(historyPath, 'utf-8'));
|
|
58
73
|
const messages = historyData.messages || [];
|
|
59
74
|
const todos = historyData.todos || [];
|
|
@@ -188,9 +203,9 @@ async function cleanupOldHistoryFiles(projectPath) {
|
|
|
188
203
|
/**
|
|
189
204
|
* 保存历史消息和todos
|
|
190
205
|
*/
|
|
191
|
-
async function saveHistory(sessionId, messages, todos, projectPath, readFileTimestamps, todoTasks) {
|
|
206
|
+
async function saveHistory(sessionId, messages, todos, projectPath, readFileTimestamps, todoTasks, noDate) {
|
|
192
207
|
const historyDir = projectPath ? (0, savePath_1.getProjectHistoryDir)(projectPath) : (0, savePath_1.getHistoryDir)();
|
|
193
|
-
const historyPath = (0, savePath_1.getHistoryFilePath)(sessionId, projectPath);
|
|
208
|
+
const historyPath = (0, savePath_1.getHistoryFilePath)(sessionId, projectPath, noDate);
|
|
194
209
|
try {
|
|
195
210
|
// 确保目录存在
|
|
196
211
|
if (!fs.existsSync(historyDir)) {
|
package/dist/util/history.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/util/history.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/util/history.ts"],"names":[],"mappings":"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"}
|
package/dist/util/savePath.d.ts
CHANGED
|
@@ -36,8 +36,10 @@ export declare function getSnapshotsDir(): string;
|
|
|
36
36
|
export declare function getProjectSnapshotsDir(projectPath: string): string;
|
|
37
37
|
/**
|
|
38
38
|
* 获取历史记录文件路径
|
|
39
|
+
* @param noDate 为 true 时文件名不带日期前缀(会话id.json),用于固定会话持久化;
|
|
40
|
+
* 默认带日期(日期_会话id.json)。
|
|
39
41
|
*/
|
|
40
|
-
export declare function getHistoryFilePath(sessionId: string, projectPath?: string): string;
|
|
42
|
+
export declare function getHistoryFilePath(sessionId: string, projectPath?: string, noDate?: boolean): string;
|
|
41
43
|
/**
|
|
42
44
|
* 获取日志目录路径
|
|
43
45
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"savePath.d.ts","sourceRoot":"","sources":["../../src/util/savePath.ts"],"names":[],"mappings":"AAiBA;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,MAAM,CASvC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAElE;AAED
|
|
1
|
+
{"version":3,"file":"savePath.d.ts","sourceRoot":"","sources":["../../src/util/savePath.ts"],"names":[],"mappings":"AAiBA;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,MAAM,CASvC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CASpG;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC"}
|
package/dist/util/savePath.js
CHANGED
|
@@ -117,10 +117,11 @@ function getProjectSnapshotsDir(projectPath) {
|
|
|
117
117
|
}
|
|
118
118
|
/**
|
|
119
119
|
* 获取历史记录文件路径
|
|
120
|
+
* @param noDate 为 true 时文件名不带日期前缀(会话id.json),用于固定会话持久化;
|
|
121
|
+
* 默认带日期(日期_会话id.json)。
|
|
120
122
|
*/
|
|
121
|
-
function getHistoryFilePath(sessionId, projectPath) {
|
|
122
|
-
const
|
|
123
|
-
const filename = `${dateStr}_${sessionId}.json`;
|
|
123
|
+
function getHistoryFilePath(sessionId, projectPath, noDate) {
|
|
124
|
+
const filename = noDate ? `${sessionId}.json` : `${(0, time_1.getDayTimeString)()}_${sessionId}.json`;
|
|
124
125
|
if (projectPath) {
|
|
125
126
|
return path.join(getProjectHistoryDir(projectPath), filename);
|
|
126
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"savePath.js","sourceRoot":"","sources":["../../src/util/savePath.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,wCASC;AAKD,wDAEC;AAKD,4DAEC;AAKD,sCAEC;AAOD,8CAKC;AAKD,oDAEC;AAKD,0CAEC;AAKD,wDAEC;
|
|
1
|
+
{"version":3,"file":"savePath.js","sourceRoot":"","sources":["../../src/util/savePath.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 命令是否含重定向。用于「前缀授权」纵深防御:前缀匹配只看首词,
|
|
3
|
+
* 而 `echo x > file` 的危险来自重定向,故含重定向的命令不应被前缀授权覆盖,
|
|
4
|
+
* 也不应向用户提供「按前缀授权」选项。
|
|
5
|
+
*
|
|
6
|
+
* 先用 splitCommand 规范化(它会把 `x>file` 这类无空格重定向还原成带空格的 ` > ` 形式,
|
|
7
|
+
* 并正确处理引号),再用 REDIRECTION_RE 检测;解析失败时保守按「含重定向」处理。
|
|
8
|
+
*/
|
|
9
|
+
export declare function hasRedirection(command: string): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* 命令是否含「语义危险」子命令:危险首词(rm/sudo/mv 等)或 find 危险 flag。
|
|
12
|
+
* 不含重定向——重定向是否危险取决于路径(项目内可能安全),应交给上层模型判断。
|
|
13
|
+
*
|
|
14
|
+
* 用于 AutoRun:命中即「确定性危险」,直接转人工,不调模型(避免模型误判 safe 放行)。
|
|
15
|
+
* 解析失败保守按「危险」处理(fail-closed)。
|
|
16
|
+
*/
|
|
17
|
+
export declare function hasDangerousCommand(command: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* 命令是否「不适合按前缀授权」。命中则:
|
|
20
|
+
* - checkRunShellPermission 不向用户提供「按前缀授权」选项(只许单次确认)
|
|
21
|
+
* - matchesSavedPrefix 即便命中已存前缀也不放行(纵深防御,治存量配置)
|
|
22
|
+
*
|
|
23
|
+
* 涵盖:含重定向 / 危险首词(rm、sudo、mv 等)/ find 危险 flag。
|
|
24
|
+
*/
|
|
25
|
+
export declare function isUnsafeForPrefixAuth(command: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* 整条命令是否可判定为「只读安全」,可直接放行(无需人工/模型)。
|
|
28
|
+
* 基于 splitCommand 的分词逐子命令判定,从根本上消除「整串 split(' ')[0]」带来的
|
|
29
|
+
* 重定向 / 不带空格管道 / find 等绕过:
|
|
30
|
+
* - 含 && || ; ` $( 换行 → 交上层逐子命令或人工,这里不放行
|
|
31
|
+
* - 含管道时,要求每一段首词都在只读集合且段内无重定向
|
|
32
|
+
*/
|
|
33
|
+
export declare function isReadonlySafeCommand(command: string): boolean;
|
|
34
|
+
//# sourceMappingURL=shellSafety.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shellSafety.d.ts","sourceRoot":"","sources":["../../src/util/shellSafety.ts"],"names":[],"mappings":"AAsBA;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAOvD;AAqBD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQ5D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE9D;AAWD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAW9D"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasRedirection = hasRedirection;
|
|
4
|
+
exports.hasDangerousCommand = hasDangerousCommand;
|
|
5
|
+
exports.isUnsafeForPrefixAuth = isUnsafeForPrefixAuth;
|
|
6
|
+
exports.isReadonlySafeCommand = isReadonlySafeCommand;
|
|
7
|
+
const commands_1 = require("./commands");
|
|
8
|
+
// 仅凭首词即可判定安全的「真只读」单命令。
|
|
9
|
+
// find 列入只读,但需额外排除危险动作 flag(见 DANGEROUS_FIND_FLAGS)。
|
|
10
|
+
const READONLY_COMMANDS = new Set([
|
|
11
|
+
'pwd', 'tree', 'date', 'which', 'find',
|
|
12
|
+
'ls', 'grep', 'head', 'tail', 'cat', 'du', 'wc', 'echo', 'env', 'printenv',
|
|
13
|
+
]);
|
|
14
|
+
// find 的危险动作 flag:可执行任意命令(-exec/-execdir/-ok/-okdir)、删除(-delete)、
|
|
15
|
+
// 写文件(-fprintf/-fprint/-fls)。命中则该 find 不走只读快速通道。
|
|
16
|
+
const DANGEROUS_FIND_FLAGS = /(^|\s)-(exec(dir)?|ok(dir)?|delete|fprintf?|fls)\b/;
|
|
17
|
+
// 仅允许整条精确匹配的完整命令(多词命令不能按首词放行,如 git 仅放行只读子命令)
|
|
18
|
+
const SAFE_FULL_COMMANDS = new Set([
|
|
19
|
+
'git status', 'git diff', 'git log', 'git branch',
|
|
20
|
+
]);
|
|
21
|
+
// 段内重定向:> >> < << <<< >| <> n> n>> &> 等。命中则不走只读快速通道,
|
|
22
|
+
// 防止 `echo x > /etc/passwd`、`cat secret > file` 这类「只读首词 + 重定向」变成写文件原语。
|
|
23
|
+
const REDIRECTION_RE = /(^|\s)\d*(?:>>|<<<|<<|>\||<>|<&|>&|>|<)/;
|
|
24
|
+
/**
|
|
25
|
+
* 命令是否含重定向。用于「前缀授权」纵深防御:前缀匹配只看首词,
|
|
26
|
+
* 而 `echo x > file` 的危险来自重定向,故含重定向的命令不应被前缀授权覆盖,
|
|
27
|
+
* 也不应向用户提供「按前缀授权」选项。
|
|
28
|
+
*
|
|
29
|
+
* 先用 splitCommand 规范化(它会把 `x>file` 这类无空格重定向还原成带空格的 ` > ` 形式,
|
|
30
|
+
* 并正确处理引号),再用 REDIRECTION_RE 检测;解析失败时保守按「含重定向」处理。
|
|
31
|
+
*/
|
|
32
|
+
function hasRedirection(command) {
|
|
33
|
+
if (REDIRECTION_RE.test(command))
|
|
34
|
+
return true;
|
|
35
|
+
try {
|
|
36
|
+
return (0, commands_1.splitCommand)(command).some(seg => REDIRECTION_RE.test(seg));
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// 危险首词:危险性在参数里、不该按首词前缀授权的命令。授权 rm:* / sudo:* 等会把
|
|
43
|
+
// `rm -rf /`、任意 `sudo ...` 一并放行,故这些命令不提供前缀授权、也不被已存前缀覆盖。
|
|
44
|
+
const DANGEROUS_PREFIX_COMMANDS = new Set([
|
|
45
|
+
'rm', 'rmdir', 'dd', 'shred', 'truncate',
|
|
46
|
+
'chmod', 'chown', 'chgrp',
|
|
47
|
+
'kill', 'killall', 'pkill',
|
|
48
|
+
'sudo', 'doas', 'su',
|
|
49
|
+
'mv',
|
|
50
|
+
]);
|
|
51
|
+
function isDangerousSubcommand(seg) {
|
|
52
|
+
const s = seg.trim();
|
|
53
|
+
const first = s.split(/\s+/)[0] ?? '';
|
|
54
|
+
if (DANGEROUS_PREFIX_COMMANDS.has(first))
|
|
55
|
+
return true;
|
|
56
|
+
if (first.startsWith('mkfs'))
|
|
57
|
+
return true; // mkfs / mkfs.ext4 等格式化
|
|
58
|
+
if (first === 'find' && DANGEROUS_FIND_FLAGS.test(s))
|
|
59
|
+
return true;
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* 命令是否含「语义危险」子命令:危险首词(rm/sudo/mv 等)或 find 危险 flag。
|
|
64
|
+
* 不含重定向——重定向是否危险取决于路径(项目内可能安全),应交给上层模型判断。
|
|
65
|
+
*
|
|
66
|
+
* 用于 AutoRun:命中即「确定性危险」,直接转人工,不调模型(避免模型误判 safe 放行)。
|
|
67
|
+
* 解析失败保守按「危险」处理(fail-closed)。
|
|
68
|
+
*/
|
|
69
|
+
function hasDangerousCommand(command) {
|
|
70
|
+
let segs;
|
|
71
|
+
try {
|
|
72
|
+
segs = (0, commands_1.splitCommand)(command);
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
return segs.some(isDangerousSubcommand);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* 命令是否「不适合按前缀授权」。命中则:
|
|
81
|
+
* - checkRunShellPermission 不向用户提供「按前缀授权」选项(只许单次确认)
|
|
82
|
+
* - matchesSavedPrefix 即便命中已存前缀也不放行(纵深防御,治存量配置)
|
|
83
|
+
*
|
|
84
|
+
* 涵盖:含重定向 / 危险首词(rm、sudo、mv 等)/ find 危险 flag。
|
|
85
|
+
*/
|
|
86
|
+
function isUnsafeForPrefixAuth(command) {
|
|
87
|
+
return hasRedirection(command) || hasDangerousCommand(command);
|
|
88
|
+
}
|
|
89
|
+
function isReadonlySafeSubcommand(seg) {
|
|
90
|
+
const s = seg.trim();
|
|
91
|
+
if (!s || REDIRECTION_RE.test(s))
|
|
92
|
+
return false;
|
|
93
|
+
const first = s.split(/\s+/)[0];
|
|
94
|
+
if (!READONLY_COMMANDS.has(first))
|
|
95
|
+
return false;
|
|
96
|
+
if (first === 'find' && DANGEROUS_FIND_FLAGS.test(s))
|
|
97
|
+
return false;
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* 整条命令是否可判定为「只读安全」,可直接放行(无需人工/模型)。
|
|
102
|
+
* 基于 splitCommand 的分词逐子命令判定,从根本上消除「整串 split(' ')[0]」带来的
|
|
103
|
+
* 重定向 / 不带空格管道 / find 等绕过:
|
|
104
|
+
* - 含 && || ; ` $( 换行 → 交上层逐子命令或人工,这里不放行
|
|
105
|
+
* - 含管道时,要求每一段首词都在只读集合且段内无重定向
|
|
106
|
+
*/
|
|
107
|
+
function isReadonlySafeCommand(command) {
|
|
108
|
+
const trimmed = command.trim();
|
|
109
|
+
if (SAFE_FULL_COMMANDS.has(trimmed))
|
|
110
|
+
return true;
|
|
111
|
+
if ((0, commands_1.hasCommandInjection)(command))
|
|
112
|
+
return false;
|
|
113
|
+
let segs;
|
|
114
|
+
try {
|
|
115
|
+
segs = (0, commands_1.splitCommand)(command);
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
return segs.length > 0 && segs.every(isReadonlySafeSubcommand);
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=shellSafety.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shellSafety.js","sourceRoot":"","sources":["../../src/util/shellSafety.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shellSafety.test.d.ts","sourceRoot":"","sources":["../../src/util/shellSafety.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_test_1 = require("node:test");
|
|
7
|
+
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
8
|
+
const shellSafety_1 = require("./shellSafety");
|
|
9
|
+
(0, node_test_1.test)('正常只读命令放行', () => {
|
|
10
|
+
for (const c of [
|
|
11
|
+
'ls -la /tmp', 'cat README.md', 'grep -r foo .',
|
|
12
|
+
'pwd', 'git status', 'git diff', 'head -n5 a.txt',
|
|
13
|
+
'ls | grep x | wc -l',
|
|
14
|
+
]) {
|
|
15
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)(c), true, c);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
(0, node_test_1.test)('回归: echo/cat 重定向写文件不得放行', () => {
|
|
19
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('echo evil > ~/.ssh/authorized_keys'), false);
|
|
20
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('echo x >> /etc/hosts'), false);
|
|
21
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('cat secret > /etc/passwd'), false);
|
|
22
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('echo x 2> /tmp/y'), false);
|
|
23
|
+
});
|
|
24
|
+
(0, node_test_1.test)('回归: 不带空格的管道不得绕过', () => {
|
|
25
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('cat foo|rm -rf /'), false);
|
|
26
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('ls|rm -rf .'), false);
|
|
27
|
+
});
|
|
28
|
+
(0, node_test_1.test)('回归: 带空格的管道含危险段不得放行', () => {
|
|
29
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('find . | rm -rf /'), false);
|
|
30
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('cat a | sh'), false);
|
|
31
|
+
});
|
|
32
|
+
(0, node_test_1.test)('find: 只读用法放行', () => {
|
|
33
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('find . -name x'), true);
|
|
34
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('find . -type f -mtime -1'), true);
|
|
35
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('find src | grep ts'), true);
|
|
36
|
+
});
|
|
37
|
+
(0, node_test_1.test)('回归: find 危险 flag 不放行', () => {
|
|
38
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('find . -delete'), false);
|
|
39
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('find . -type f -exec rm {} +'), false);
|
|
40
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('find . -execdir sh -c "rm" {} ;'), false);
|
|
41
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('find . -ok rm {} +'), false);
|
|
42
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('find . -fprintf /etc/x %p'), false);
|
|
43
|
+
});
|
|
44
|
+
(0, node_test_1.test)('链式命令交由上层逐子命令处理, 这里不放行', () => {
|
|
45
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('ls && rm -rf /'), false);
|
|
46
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('ls; rm -rf /'), false);
|
|
47
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('ls;rm -rf /'), false);
|
|
48
|
+
});
|
|
49
|
+
(0, node_test_1.test)('命令注入字符不放行', () => {
|
|
50
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('echo $(rm -rf /)'), false);
|
|
51
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('cat `id`'), false);
|
|
52
|
+
});
|
|
53
|
+
(0, node_test_1.test)('非白名单命令不放行', () => {
|
|
54
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('rm -rf /'), false);
|
|
55
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('git push'), false);
|
|
56
|
+
strict_1.default.equal((0, shellSafety_1.isReadonlySafeCommand)('curl http://x'), false);
|
|
57
|
+
});
|
|
58
|
+
(0, node_test_1.test)('hasRedirection 识别各类重定向(含无空格)', () => {
|
|
59
|
+
for (const c of [
|
|
60
|
+
'echo x > /etc/passwd', 'echo x >> a', 'cat a < b',
|
|
61
|
+
'echo x 2> e.log', 'cmd &> all.log', 'echo x >| f',
|
|
62
|
+
'echo evil>/tmp/x', 'echo x>>a', 'echo a; echo b>f', // 无空格 / 链中重定向
|
|
63
|
+
]) {
|
|
64
|
+
strict_1.default.equal((0, shellSafety_1.hasRedirection)(c), true, c);
|
|
65
|
+
}
|
|
66
|
+
for (const c of ['echo x', 'ls -la', 'npm run build']) {
|
|
67
|
+
strict_1.default.equal((0, shellSafety_1.hasRedirection)(c), false, c);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
(0, node_test_1.test)('isUnsafeForPrefixAuth: 危险命令不可前缀授权', () => {
|
|
71
|
+
for (const c of [
|
|
72
|
+
'rm -rf /', 'rm file', 'rmdir d', 'sudo apt install x', 'su -',
|
|
73
|
+
'dd if=/dev/zero of=/dev/sda', 'mkfs.ext4 /dev/sda1', 'shred f',
|
|
74
|
+
'chmod 777 /etc', 'chown root f', 'kill -9 1', 'pkill node',
|
|
75
|
+
'mv a /etc/b', 'truncate -s0 f',
|
|
76
|
+
'find . -delete', 'find . -exec rm {} +', // find 危险 flag
|
|
77
|
+
'echo x > f', 'cat a|rm -rf b', // 重定向 / 链中危险段
|
|
78
|
+
]) {
|
|
79
|
+
strict_1.default.equal((0, shellSafety_1.isUnsafeForPrefixAuth)(c), true, c);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
(0, node_test_1.test)('hasDangerousCommand: 语义危险命令直接转人工(AutoRun 不调模型)', () => {
|
|
83
|
+
// 危险首词 / find 危险 flag / 链中危险段 → true
|
|
84
|
+
for (const c of [
|
|
85
|
+
'rm -rf /', 'sudo apt install x', 'mv a /etc/b', 'kill -9 1',
|
|
86
|
+
'find . -delete', 'find . -exec rm {} +', 'cat a|rm -rf b',
|
|
87
|
+
]) {
|
|
88
|
+
strict_1.default.equal((0, shellSafety_1.hasDangerousCommand)(c), true, c);
|
|
89
|
+
}
|
|
90
|
+
// 纯重定向不算「语义危险」(路径安全性交模型判) → false
|
|
91
|
+
for (const c of ['echo x > /tmp/f', 'echo hi', 'npm run build', 'find . -name x']) {
|
|
92
|
+
strict_1.default.equal((0, shellSafety_1.hasDangerousCommand)(c), false, c);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
(0, node_test_1.test)('isUnsafeForPrefixAuth: 普通命令可前缀授权', () => {
|
|
96
|
+
for (const c of [
|
|
97
|
+
'npm run build', 'cargo test', 'git commit -m msg', 'echo hello',
|
|
98
|
+
'ls -la', 'find . -name x', 'docker ps', 'python script.py',
|
|
99
|
+
]) {
|
|
100
|
+
strict_1.default.equal((0, shellSafety_1.isUnsafeForPrefixAuth)(c), false, c);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
//# sourceMappingURL=shellSafety.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shellSafety.test.js","sourceRoot":"","sources":["../../src/util/shellSafety.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshotStore.d.ts","sourceRoot":"","sources":["../../src/util/snapshotStore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;CACZ;AAmBD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CASnE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnE;AAID,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAWjF;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAIhG;AAID;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"snapshotStore.d.ts","sourceRoot":"","sources":["../../src/util/snapshotStore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;CACZ;AAmBD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CASnE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnE;AAID,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAWjF;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAIhG;AAID;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAsDjE"}
|
|
@@ -74,14 +74,19 @@ function cleanupProjectSnapshots(projectPath) {
|
|
|
74
74
|
const snapDir = (0, savePath_1.getProjectSnapshotsDir)(projectPath);
|
|
75
75
|
if (!(0, fs_1.existsSync)(snapDir))
|
|
76
76
|
return;
|
|
77
|
-
// 1) 从剩余历史文件中收集仍存活的 sessionId
|
|
77
|
+
// 1) 从剩余历史文件中收集仍存活的 sessionId
|
|
78
|
+
// 文件名两种格式:带日期 YYYY-MM-DD_<sessionId>.json,或无日期 <sessionId>.json(固定会话)
|
|
78
79
|
const liveSessions = new Set();
|
|
79
80
|
const histDir = (0, savePath_1.getProjectHistoryDir)(projectPath);
|
|
80
81
|
if ((0, fs_1.existsSync)(histDir)) {
|
|
81
82
|
for (const file of (0, fs_1.readdirSync)(histDir)) {
|
|
82
|
-
const
|
|
83
|
-
if (
|
|
84
|
-
liveSessions.add(
|
|
83
|
+
const dated = /^\d{4}-\d{2}-\d{2}_(.+)\.json$/.exec(file);
|
|
84
|
+
if (dated) {
|
|
85
|
+
liveSessions.add(dated[1]);
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
if (file.endsWith('.json'))
|
|
89
|
+
liveSessions.add(file.slice(0, -'.json'.length));
|
|
85
90
|
}
|
|
86
91
|
}
|
|
87
92
|
// 2) 删除非存活会话的 editlog
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshotStore.js","sourceRoot":"","sources":["../../src/util/snapshotStore.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAmCH,8BASC;AAED,4BAEC;AAID,kCAWC;AAED,kCAIC;AAUD,
|
|
1
|
+
{"version":3,"file":"snapshotStore.js","sourceRoot":"","sources":["../../src/util/snapshotStore.ts"],"names":[],"mappings":"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"}
|