@paraharness/fs 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +62 -2
- package/dist/builders/create-fs-allow-only-guard-builder.d.ts +13 -0
- package/dist/builders/create-fs-allow-only-guard-builder.d.ts.map +1 -0
- package/dist/builders/create-fs-allow-only-guard-builder.js +22 -0
- package/dist/builders/create-fs-allow-only-guard-builder.js.map +1 -0
- package/dist/builders/create-fs-allow-write-globs-lease-delta.d.ts +13 -0
- package/dist/builders/create-fs-allow-write-globs-lease-delta.d.ts.map +1 -0
- package/dist/builders/create-fs-allow-write-globs-lease-delta.js +20 -0
- package/dist/builders/create-fs-allow-write-globs-lease-delta.js.map +1 -0
- package/dist/builders/create-fs-boundary-guard-builder.d.ts +15 -0
- package/dist/builders/create-fs-boundary-guard-builder.d.ts.map +1 -0
- package/dist/builders/create-fs-boundary-guard-builder.js +20 -0
- package/dist/builders/create-fs-boundary-guard-builder.js.map +1 -0
- package/dist/builders/create-fs-coding-tools.d.ts +21 -0
- package/dist/builders/create-fs-coding-tools.d.ts.map +1 -0
- package/dist/builders/create-fs-coding-tools.js +25 -0
- package/dist/builders/create-fs-coding-tools.js.map +1 -0
- package/dist/builders/create-fs-glob-matcher-builder.d.ts +14 -0
- package/dist/builders/create-fs-glob-matcher-builder.d.ts.map +1 -0
- package/dist/builders/create-fs-glob-matcher-builder.js +24 -0
- package/dist/builders/create-fs-glob-matcher-builder.js.map +1 -0
- package/dist/builders/create-fs-glob-source-builder.d.ts +13 -0
- package/dist/builders/create-fs-glob-source-builder.d.ts.map +1 -0
- package/dist/builders/create-fs-glob-source-builder.js +22 -0
- package/dist/builders/create-fs-glob-source-builder.js.map +1 -0
- package/dist/builders/create-fs-in-partition-predicate.d.ts +16 -0
- package/dist/builders/create-fs-in-partition-predicate.d.ts.map +1 -0
- package/dist/builders/create-fs-in-partition-predicate.js +25 -0
- package/dist/builders/create-fs-in-partition-predicate.js.map +1 -0
- package/dist/builders/create-fs-jsonl-lesson-store-builder.d.ts +29 -0
- package/dist/builders/create-fs-jsonl-lesson-store-builder.d.ts.map +1 -0
- package/dist/builders/create-fs-jsonl-lesson-store-builder.js +30 -0
- package/dist/builders/create-fs-jsonl-lesson-store-builder.js.map +1 -0
- package/dist/builders/create-fs-max-files-mutated-builder.d.ts +13 -0
- package/dist/builders/create-fs-max-files-mutated-builder.d.ts.map +1 -0
- package/dist/builders/create-fs-max-files-mutated-builder.js +21 -0
- package/dist/builders/create-fs-max-files-mutated-builder.js.map +1 -0
- package/dist/builders/create-fs-partition-map.d.ts +16 -0
- package/dist/builders/create-fs-partition-map.d.ts.map +1 -0
- package/dist/builders/create-fs-partition-map.js +34 -0
- package/dist/builders/create-fs-partition-map.js.map +1 -0
- package/dist/builders/create-fs-protect-guard-builder.d.ts +13 -0
- package/dist/builders/create-fs-protect-guard-builder.d.ts.map +1 -0
- package/dist/builders/create-fs-protect-guard-builder.js +22 -0
- package/dist/builders/create-fs-protect-guard-builder.js.map +1 -0
- package/dist/builders/create-fs-read-only-guard-builder.d.ts +11 -0
- package/dist/builders/create-fs-read-only-guard-builder.d.ts.map +1 -0
- package/dist/builders/create-fs-read-only-guard-builder.js +15 -0
- package/dist/builders/create-fs-read-only-guard-builder.js.map +1 -0
- package/dist/builders/create-fs-read-only-tools.d.ts +15 -0
- package/dist/builders/create-fs-read-only-tools.d.ts.map +1 -0
- package/dist/builders/create-fs-read-only-tools.js +23 -0
- package/dist/builders/create-fs-read-only-tools.js.map +1 -0
- package/dist/builders/create-fs-regex-check-builder.d.ts +34 -0
- package/dist/builders/create-fs-regex-check-builder.d.ts.map +1 -0
- package/dist/builders/create-fs-regex-check-builder.js +58 -0
- package/dist/builders/create-fs-regex-check-builder.js.map +1 -0
- package/dist/builders/create-fs-require-read-before-write-guard-builder.d.ts +11 -0
- package/dist/builders/create-fs-require-read-before-write-guard-builder.d.ts.map +1 -0
- package/dist/builders/create-fs-require-read-before-write-guard-builder.js +15 -0
- package/dist/builders/create-fs-require-read-before-write-guard-builder.js.map +1 -0
- package/dist/builders/create-fs-scoped-write-guard-builder.d.ts +15 -0
- package/dist/builders/create-fs-scoped-write-guard-builder.d.ts.map +1 -0
- package/dist/builders/create-fs-scoped-write-guard-builder.js +20 -0
- package/dist/builders/create-fs-scoped-write-guard-builder.js.map +1 -0
- package/dist/builders/create-fs-secret-literals-guard-builder.d.ts +13 -0
- package/dist/builders/create-fs-secret-literals-guard-builder.d.ts.map +1 -0
- package/dist/builders/create-fs-secret-literals-guard-builder.js +21 -0
- package/dist/builders/create-fs-secret-literals-guard-builder.js.map +1 -0
- package/dist/builders/create-fs-telemetry-builder.d.ts +11 -0
- package/dist/builders/create-fs-telemetry-builder.d.ts.map +1 -0
- package/dist/builders/create-fs-telemetry-builder.js +17 -0
- package/dist/builders/create-fs-telemetry-builder.js.map +1 -0
- package/dist/builders/create-fs-text-source-builder.d.ts +14 -0
- package/dist/builders/create-fs-text-source-builder.d.ts.map +1 -0
- package/dist/builders/create-fs-text-source-builder.js +23 -0
- package/dist/builders/create-fs-text-source-builder.js.map +1 -0
- package/dist/builders/create-fs-write-guard-builder.d.ts +29 -0
- package/dist/builders/create-fs-write-guard-builder.d.ts.map +1 -0
- package/dist/builders/create-fs-write-guard-builder.js +29 -0
- package/dist/builders/create-fs-write-guard-builder.js.map +1 -0
- package/dist/builders/fs-namespace-contract.d.ts +187 -0
- package/dist/builders/fs-namespace-contract.d.ts.map +1 -0
- package/dist/builders/fs-namespace-contract.js +2 -0
- package/dist/builders/fs-namespace-contract.js.map +1 -0
- package/dist/builders/fs-namespace.d.ts +10 -0
- package/dist/builders/fs-namespace.d.ts.map +1 -0
- package/dist/builders/fs-namespace.js +50 -0
- package/dist/builders/fs-namespace.js.map +1 -0
- package/dist/builders/internal/build-fs-tool-nodes.d.ts +62 -0
- package/dist/builders/internal/build-fs-tool-nodes.d.ts.map +1 -0
- package/dist/builders/internal/build-fs-tool-nodes.js +107 -0
- package/dist/builders/internal/build-fs-tool-nodes.js.map +1 -0
- package/dist/builders/internal/fs-tool-input.schema.d.ts +80 -0
- package/dist/builders/internal/fs-tool-input.schema.d.ts.map +1 -0
- package/dist/builders/internal/fs-tool-input.schema.js +56 -0
- package/dist/builders/internal/fs-tool-input.schema.js.map +1 -0
- package/dist/executors/create-fs-executors.d.ts +11 -0
- package/dist/executors/create-fs-executors.d.ts.map +1 -0
- package/dist/executors/create-fs-executors.js +57 -0
- package/dist/executors/create-fs-executors.js.map +1 -0
- package/dist/executors/fs-check-tripwire-and-telemetry.d.ts +45 -0
- package/dist/executors/fs-check-tripwire-and-telemetry.d.ts.map +1 -0
- package/dist/executors/fs-check-tripwire-and-telemetry.js +99 -0
- package/dist/executors/fs-check-tripwire-and-telemetry.js.map +1 -0
- package/dist/executors/fs-executors.constants.d.ts +10 -0
- package/dist/executors/fs-executors.constants.d.ts.map +1 -0
- package/dist/executors/fs-executors.constants.js +10 -0
- package/dist/executors/fs-executors.constants.js.map +1 -0
- package/dist/executors/fs-glob-effect-matcher.d.ts +15 -0
- package/dist/executors/fs-glob-effect-matcher.d.ts.map +1 -0
- package/dist/executors/fs-glob-effect-matcher.js +37 -0
- package/dist/executors/fs-glob-effect-matcher.js.map +1 -0
- package/dist/executors/fs-path-guard-executors.d.ts +51 -0
- package/dist/executors/fs-path-guard-executors.d.ts.map +1 -0
- package/dist/executors/fs-path-guard-executors.js +60 -0
- package/dist/executors/fs-path-guard-executors.js.map +1 -0
- package/dist/executors/fs-read-tool-drivers.d.ts +35 -0
- package/dist/executors/fs-read-tool-drivers.d.ts.map +1 -0
- package/dist/executors/fs-read-tool-drivers.js +73 -0
- package/dist/executors/fs-read-tool-drivers.js.map +1 -0
- package/dist/executors/fs-source-executors.d.ts +31 -0
- package/dist/executors/fs-source-executors.d.ts.map +1 -0
- package/dist/executors/fs-source-executors.js +55 -0
- package/dist/executors/fs-source-executors.js.map +1 -0
- package/dist/executors/fs-tool-effect.d.ts +33 -0
- package/dist/executors/fs-tool-effect.d.ts.map +1 -0
- package/dist/executors/fs-tool-effect.js +2 -0
- package/dist/executors/fs-tool-effect.js.map +1 -0
- package/dist/executors/fs-write-guard-executors.d.ts +55 -0
- package/dist/executors/fs-write-guard-executors.d.ts.map +1 -0
- package/dist/executors/fs-write-guard-executors.js +64 -0
- package/dist/executors/fs-write-guard-executors.js.map +1 -0
- package/dist/executors/fs-write-tool-drivers.d.ts +24 -0
- package/dist/executors/fs-write-tool-drivers.d.ts.map +1 -0
- package/dist/executors/fs-write-tool-drivers.js +44 -0
- package/dist/executors/fs-write-tool-drivers.js.map +1 -0
- package/dist/executors/internal/add-mutated-paths-from-effects.d.ts +9 -0
- package/dist/executors/internal/add-mutated-paths-from-effects.d.ts.map +1 -0
- package/dist/executors/internal/add-mutated-paths-from-effects.js +24 -0
- package/dist/executors/internal/add-mutated-paths-from-effects.js.map +1 -0
- package/dist/executors/internal/check-paths-exist-at-base-ref.d.ts +12 -0
- package/dist/executors/internal/check-paths-exist-at-base-ref.d.ts.map +1 -0
- package/dist/executors/internal/check-paths-exist-at-base-ref.js +59 -0
- package/dist/executors/internal/check-paths-exist-at-base-ref.js.map +1 -0
- package/dist/executors/internal/collect-mutated-paths-since-base-ref.d.ts +13 -0
- package/dist/executors/internal/collect-mutated-paths-since-base-ref.d.ts.map +1 -0
- package/dist/executors/internal/collect-mutated-paths-since-base-ref.js +42 -0
- package/dist/executors/internal/collect-mutated-paths-since-base-ref.js.map +1 -0
- package/dist/executors/internal/collect-read-paths-from-effects.d.ts +12 -0
- package/dist/executors/internal/collect-read-paths-from-effects.d.ts.map +1 -0
- package/dist/executors/internal/collect-read-paths-from-effects.js +26 -0
- package/dist/executors/internal/collect-read-paths-from-effects.js.map +1 -0
- package/dist/executors/internal/compile-active-lease-write-matcher.d.ts +14 -0
- package/dist/executors/internal/compile-active-lease-write-matcher.d.ts.map +1 -0
- package/dist/executors/internal/compile-active-lease-write-matcher.js +50 -0
- package/dist/executors/internal/compile-active-lease-write-matcher.js.map +1 -0
- package/dist/executors/internal/compile-glob-or-exact-matcher.d.ts +12 -0
- package/dist/executors/internal/compile-glob-or-exact-matcher.d.ts.map +1 -0
- package/dist/executors/internal/compile-glob-or-exact-matcher.js +63 -0
- package/dist/executors/internal/compile-glob-or-exact-matcher.js.map +1 -0
- package/dist/executors/internal/compile-secret-patterns.d.ts +12 -0
- package/dist/executors/internal/compile-secret-patterns.d.ts.map +1 -0
- package/dist/executors/internal/compile-secret-patterns.js +27 -0
- package/dist/executors/internal/compile-secret-patterns.js.map +1 -0
- package/dist/executors/internal/create-effect-base-ref-path-lookup.d.ts +13 -0
- package/dist/executors/internal/create-effect-base-ref-path-lookup.d.ts.map +1 -0
- package/dist/executors/internal/create-effect-base-ref-path-lookup.js +33 -0
- package/dist/executors/internal/create-effect-base-ref-path-lookup.js.map +1 -0
- package/dist/executors/internal/create-fs-read-effect.d.ts +12 -0
- package/dist/executors/internal/create-fs-read-effect.d.ts.map +1 -0
- package/dist/executors/internal/create-fs-read-effect.js +22 -0
- package/dist/executors/internal/create-fs-read-effect.js.map +1 -0
- package/dist/executors/internal/create-fs-write-effect.d.ts +14 -0
- package/dist/executors/internal/create-fs-write-effect.d.ts.map +1 -0
- package/dist/executors/internal/create-fs-write-effect.js +24 -0
- package/dist/executors/internal/create-fs-write-effect.js.map +1 -0
- package/dist/executors/internal/describe-fs-edit-effects.d.ts +13 -0
- package/dist/executors/internal/describe-fs-edit-effects.d.ts.map +1 -0
- package/dist/executors/internal/describe-fs-edit-effects.js +31 -0
- package/dist/executors/internal/describe-fs-edit-effects.js.map +1 -0
- package/dist/executors/internal/describe-fs-write-effects.d.ts +13 -0
- package/dist/executors/internal/describe-fs-write-effects.d.ts.map +1 -0
- package/dist/executors/internal/describe-fs-write-effects.js +24 -0
- package/dist/executors/internal/describe-fs-write-effects.js.map +1 -0
- package/dist/executors/internal/enumerate-workspace-files-sync.d.ts +12 -0
- package/dist/executors/internal/enumerate-workspace-files-sync.d.ts.map +1 -0
- package/dist/executors/internal/enumerate-workspace-files-sync.js +52 -0
- package/dist/executors/internal/enumerate-workspace-files-sync.js.map +1 -0
- package/dist/executors/internal/enumerate-workspace-files.d.ts +13 -0
- package/dist/executors/internal/enumerate-workspace-files.d.ts.map +1 -0
- package/dist/executors/internal/enumerate-workspace-files.js +44 -0
- package/dist/executors/internal/enumerate-workspace-files.js.map +1 -0
- package/dist/executors/internal/evaluate-fs-allow-and-protect-guards.d.ts +28 -0
- package/dist/executors/internal/evaluate-fs-allow-and-protect-guards.d.ts.map +1 -0
- package/dist/executors/internal/evaluate-fs-allow-and-protect-guards.js +37 -0
- package/dist/executors/internal/evaluate-fs-allow-and-protect-guards.js.map +1 -0
- package/dist/executors/internal/evaluate-fs-content-and-read-guards.d.ts +20 -0
- package/dist/executors/internal/evaluate-fs-content-and-read-guards.d.ts.map +1 -0
- package/dist/executors/internal/evaluate-fs-content-and-read-guards.js +46 -0
- package/dist/executors/internal/evaluate-fs-content-and-read-guards.js.map +1 -0
- package/dist/executors/internal/evaluate-fs-write-and-boundary-guards.d.ts +31 -0
- package/dist/executors/internal/evaluate-fs-write-and-boundary-guards.d.ts.map +1 -0
- package/dist/executors/internal/evaluate-fs-write-and-boundary-guards.js +100 -0
- package/dist/executors/internal/evaluate-fs-write-and-boundary-guards.js.map +1 -0
- package/dist/executors/internal/execute-fs-edit-operation.d.ts +26 -0
- package/dist/executors/internal/execute-fs-edit-operation.d.ts.map +1 -0
- package/dist/executors/internal/execute-fs-edit-operation.js +25 -0
- package/dist/executors/internal/execute-fs-edit-operation.js.map +1 -0
- package/dist/executors/internal/execute-fs-write-operation.d.ts +22 -0
- package/dist/executors/internal/execute-fs-write-operation.d.ts.map +1 -0
- package/dist/executors/internal/execute-fs-write-operation.js +21 -0
- package/dist/executors/internal/execute-fs-write-operation.js.map +1 -0
- package/dist/executors/internal/extract-worktree-root-and-base-ref.d.ts +15 -0
- package/dist/executors/internal/extract-worktree-root-and-base-ref.d.ts.map +1 -0
- package/dist/executors/internal/extract-worktree-root-and-base-ref.js +24 -0
- package/dist/executors/internal/extract-worktree-root-and-base-ref.js.map +1 -0
- package/dist/executors/internal/filter-jailed-dirents.d.ts +25 -0
- package/dist/executors/internal/filter-jailed-dirents.d.ts.map +1 -0
- package/dist/executors/internal/filter-jailed-dirents.js +54 -0
- package/dist/executors/internal/filter-jailed-dirents.js.map +1 -0
- package/dist/executors/internal/fs-coding-tool-drivers.d.ts +38 -0
- package/dist/executors/internal/fs-coding-tool-drivers.d.ts.map +1 -0
- package/dist/executors/internal/fs-coding-tool-drivers.js +52 -0
- package/dist/executors/internal/fs-coding-tool-drivers.js.map +1 -0
- package/dist/executors/internal/fs-search-tool-drivers.d.ts +26 -0
- package/dist/executors/internal/fs-search-tool-drivers.d.ts.map +1 -0
- package/dist/executors/internal/fs-search-tool-drivers.js +37 -0
- package/dist/executors/internal/fs-search-tool-drivers.js.map +1 -0
- package/dist/executors/internal/glob-matcher-cache.constants.d.ts +20 -0
- package/dist/executors/internal/glob-matcher-cache.constants.d.ts.map +1 -0
- package/dist/executors/internal/glob-matcher-cache.constants.js +19 -0
- package/dist/executors/internal/glob-matcher-cache.constants.js.map +1 -0
- package/dist/executors/internal/grep-workspace-files.d.ts +23 -0
- package/dist/executors/internal/grep-workspace-files.d.ts.map +1 -0
- package/dist/executors/internal/grep-workspace-files.js +33 -0
- package/dist/executors/internal/grep-workspace-files.js.map +1 -0
- package/dist/executors/internal/project-violated-write-effects.d.ts +15 -0
- package/dist/executors/internal/project-violated-write-effects.d.ts.map +1 -0
- package/dist/executors/internal/project-violated-write-effects.js +67 -0
- package/dist/executors/internal/project-violated-write-effects.js.map +1 -0
- package/dist/executors/internal/resolve-jailed-worktree-path.d.ts +19 -0
- package/dist/executors/internal/resolve-jailed-worktree-path.d.ts.map +1 -0
- package/dist/executors/internal/resolve-jailed-worktree-path.js +101 -0
- package/dist/executors/internal/resolve-jailed-worktree-path.js.map +1 -0
- package/dist/executors/internal/secret-patterns.constants.d.ts +16 -0
- package/dist/executors/internal/secret-patterns.constants.d.ts.map +1 -0
- package/dist/executors/internal/secret-patterns.constants.js +30 -0
- package/dist/executors/internal/secret-patterns.constants.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/stores/fs-jsonl-lesson-store.d.ts +135 -0
- package/dist/stores/fs-jsonl-lesson-store.d.ts.map +1 -0
- package/dist/stores/fs-jsonl-lesson-store.js +155 -0
- package/dist/stores/fs-jsonl-lesson-store.js.map +1 -0
- package/dist/stores/internal/fs-jsonl-lesson-file-io.d.ts +129 -0
- package/dist/stores/internal/fs-jsonl-lesson-file-io.d.ts.map +1 -0
- package/dist/stores/internal/fs-jsonl-lesson-file-io.js +197 -0
- package/dist/stores/internal/fs-jsonl-lesson-file-io.js.map +1 -0
- package/dist/stores/internal/fs-lesson-definition-record.d.ts +19 -0
- package/dist/stores/internal/fs-lesson-definition-record.d.ts.map +1 -0
- package/dist/stores/internal/fs-lesson-definition-record.js +2 -0
- package/dist/stores/internal/fs-lesson-definition-record.js.map +1 -0
- package/dist/stores/internal/fs-lesson-lock-and-atomic-io.d.ts +51 -0
- package/dist/stores/internal/fs-lesson-lock-and-atomic-io.d.ts.map +1 -0
- package/dist/stores/internal/fs-lesson-lock-and-atomic-io.js +89 -0
- package/dist/stores/internal/fs-lesson-lock-and-atomic-io.js.map +1 -0
- package/dist/stores/internal/fs-lesson-relevance.d.ts +49 -0
- package/dist/stores/internal/fs-lesson-relevance.d.ts.map +1 -0
- package/dist/stores/internal/fs-lesson-relevance.js +113 -0
- package/dist/stores/internal/fs-lesson-relevance.js.map +1 -0
- package/dist/stores/internal/fs-lesson-stats-entry.d.ts +22 -0
- package/dist/stores/internal/fs-lesson-stats-entry.d.ts.map +1 -0
- package/dist/stores/internal/fs-lesson-stats-entry.js +2 -0
- package/dist/stores/internal/fs-lesson-stats-entry.js.map +1 -0
- package/package.json +72 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs-coding-tool-drivers.js","sourceRoot":"","sources":["../../../src/executors/internal/fs-coding-tool-drivers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAQ5C,OAAO,EAEL,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAA6B,EAC7B,IAAa,EACb,GAAkC;IAElC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAA8B,CAAC;IACzE,MAAM,EAAE,YAAY,EAAE,GAAG,yBAAyB,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,MAAM,CAAsB,EAAE,OAAO,EAAE,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAC5B,IAA6B,EAC7B,IAAa,EACb,GAAkC;IAElC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAiC,CAAC;IAC5E,OAAO,sBAAsB,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAC7B,IAA8B,EAC9B,IAAa,EACb,GAAkC;IAElC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAkC,CAAC;IAC7E,OAAO,uBAAuB,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { FsGlobToolNode, FsGrepToolNode, StepExecutionContext, ToolExecutionResult } from '@paraharness/core';
|
|
2
|
+
/**
|
|
3
|
+
* Validates `args` against `node.inputSchema` and enumerates matching workspace files for `fs:glob`.
|
|
4
|
+
*
|
|
5
|
+
* @template THandle Runtime handle type of the active isolation scope.
|
|
6
|
+
*
|
|
7
|
+
* @param {FsGlobToolNode<THandle>} node - Passive `fs:glob` tool AST node.
|
|
8
|
+
* @param {unknown} args - Raw tool call arguments.
|
|
9
|
+
* @param {StepExecutionContext<THandle>} ctx - Active step execution context.
|
|
10
|
+
*
|
|
11
|
+
* @returns {Promise<ToolExecutionResult>} Frozen tool execution result containing newline-joined relative paths.
|
|
12
|
+
*/
|
|
13
|
+
export declare function globFsToolFiles<THandle = unknown>(node: FsGlobToolNode<THandle>, args: unknown, ctx: StepExecutionContext<THandle>): Promise<ToolExecutionResult>;
|
|
14
|
+
/**
|
|
15
|
+
* Validates `args` against `node.inputSchema` and searches workspace files for `fs:grep`.
|
|
16
|
+
*
|
|
17
|
+
* @template THandle Runtime handle type of the active isolation scope.
|
|
18
|
+
*
|
|
19
|
+
* @param {FsGrepToolNode<THandle>} node - Passive `fs:grep` tool AST node.
|
|
20
|
+
* @param {unknown} args - Raw tool call arguments.
|
|
21
|
+
* @param {StepExecutionContext<THandle>} ctx - Active step execution context.
|
|
22
|
+
*
|
|
23
|
+
* @returns {Promise<ToolExecutionResult>} Frozen tool execution result containing newline-joined `path:line:text` matches.
|
|
24
|
+
*/
|
|
25
|
+
export declare function grepFsToolFiles<THandle = unknown>(node: FsGrepToolNode<THandle>, args: unknown, ctx: StepExecutionContext<THandle>): Promise<ToolExecutionResult>;
|
|
26
|
+
//# sourceMappingURL=fs-search-tool-drivers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs-search-tool-drivers.d.ts","sourceRoot":"","sources":["../../../src/executors/internal/fs-search-tool-drivers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAQ3B;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,OAAO,GAAG,OAAO,EACrD,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,EAC7B,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,oBAAoB,CAAC,OAAO,CAAC,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAK9B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,OAAO,GAAG,OAAO,EACrD,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,EAC7B,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,oBAAoB,CAAC,OAAO,CAAC,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAI9B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { enumerateWorkspaceFiles } from './enumerate-workspace-files.js';
|
|
2
|
+
import { extractWorktreeRootAndBaseRef } from './extract-worktree-root-and-base-ref.js';
|
|
3
|
+
import { grepWorkspaceFiles, } from './grep-workspace-files.js';
|
|
4
|
+
/**
|
|
5
|
+
* Validates `args` against `node.inputSchema` and enumerates matching workspace files for `fs:glob`.
|
|
6
|
+
*
|
|
7
|
+
* @template THandle Runtime handle type of the active isolation scope.
|
|
8
|
+
*
|
|
9
|
+
* @param {FsGlobToolNode<THandle>} node - Passive `fs:glob` tool AST node.
|
|
10
|
+
* @param {unknown} args - Raw tool call arguments.
|
|
11
|
+
* @param {StepExecutionContext<THandle>} ctx - Active step execution context.
|
|
12
|
+
*
|
|
13
|
+
* @returns {Promise<ToolExecutionResult>} Frozen tool execution result containing newline-joined relative paths.
|
|
14
|
+
*/
|
|
15
|
+
export async function globFsToolFiles(node, args, ctx) {
|
|
16
|
+
const parsed = node.inputSchema.parse(args);
|
|
17
|
+
const { rootPath } = extractWorktreeRootAndBaseRef(ctx.scopeHandle);
|
|
18
|
+
const matched = await enumerateWorkspaceFiles(rootPath, parsed.pattern);
|
|
19
|
+
return Object.freeze({ content: matched.join('\n') });
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Validates `args` against `node.inputSchema` and searches workspace files for `fs:grep`.
|
|
23
|
+
*
|
|
24
|
+
* @template THandle Runtime handle type of the active isolation scope.
|
|
25
|
+
*
|
|
26
|
+
* @param {FsGrepToolNode<THandle>} node - Passive `fs:grep` tool AST node.
|
|
27
|
+
* @param {unknown} args - Raw tool call arguments.
|
|
28
|
+
* @param {StepExecutionContext<THandle>} ctx - Active step execution context.
|
|
29
|
+
*
|
|
30
|
+
* @returns {Promise<ToolExecutionResult>} Frozen tool execution result containing newline-joined `path:line:text` matches.
|
|
31
|
+
*/
|
|
32
|
+
export async function grepFsToolFiles(node, args, ctx) {
|
|
33
|
+
const parsed = node.inputSchema.parse(args);
|
|
34
|
+
const content = await grepWorkspaceFiles(ctx.scopeHandle, parsed);
|
|
35
|
+
return Object.freeze({ content });
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=fs-search-tool-drivers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs-search-tool-drivers.js","sourceRoot":"","sources":["../../../src/executors/internal/fs-search-tool-drivers.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAEL,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAA6B,EAC7B,IAAa,EACb,GAAkC;IAElC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAiC,CAAC;IAC5E,MAAM,EAAE,QAAQ,EAAE,GAAG,6BAA6B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACxE,OAAO,MAAM,CAAC,MAAM,CAAsB,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAA6B,EAC7B,IAAa,EACb,GAAkC;IAElC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAA6B,CAAC;IACxE,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAClE,OAAO,MAAM,CAAC,MAAM,CAAsB,EAAE,OAAO,EAAE,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { FsBoundaryGuardNode, LeaseDelta } from '@paraharness/core';
|
|
2
|
+
/**
|
|
3
|
+
* WeakMap cache of pre-compiled `(candidatePath: string) => boolean` matchers keyed by `globs` array reference (`Rule 4.4`).
|
|
4
|
+
*
|
|
5
|
+
* Avoids re-compiling `picomatch` regular expressions across repeated policy guard, matcher, and check evaluations.
|
|
6
|
+
*/
|
|
7
|
+
export declare const CACHED_GLOB_OR_EXACT_MATCHERS: WeakMap<readonly string[], (candidatePath: string) => boolean>;
|
|
8
|
+
/**
|
|
9
|
+
* WeakMap cache of pre-compiled boundary path matchers keyed by `FsBoundaryGuardNode` reference (`Rules 4.2 & 4.4`).
|
|
10
|
+
*
|
|
11
|
+
* Avoids calling `Object.keys` and allocating fresh `boundaryGlobs` arrays across repeated boundary guard evaluations.
|
|
12
|
+
*/
|
|
13
|
+
export declare const CACHED_BOUNDARY_GUARD_MATCHERS: WeakMap<FsBoundaryGuardNode, (candidatePath: string) => boolean>;
|
|
14
|
+
/**
|
|
15
|
+
* WeakMap cache of pre-compiled active lease write matchers keyed by `activeLeases` array reference (`Rule 4.4`).
|
|
16
|
+
*
|
|
17
|
+
* Reuses the composed lease matcher predicate across repeated guard evaluations sharing the same `activeLeases` slice.
|
|
18
|
+
*/
|
|
19
|
+
export declare const CACHED_ACTIVE_LEASE_WRITE_MATCHERS: WeakMap<readonly LeaseDelta[], (candidatePath: string) => boolean>;
|
|
20
|
+
//# sourceMappingURL=glob-matcher-cache.constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glob-matcher-cache.constants.d.ts","sourceRoot":"","sources":["../../../src/executors/internal/glob-matcher-cache.constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEzE;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,EAAE,OAAO,CACjD,SAAS,MAAM,EAAE,EACjB,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CACoC,CAAC;AAEzE;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,EAAE,OAAO,CAClD,mBAAmB,EACnB,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CACsC,CAAC;AAE3E;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,EAAE,OAAO,CACtD,SAAS,UAAU,EAAE,EACrB,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CACwC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WeakMap cache of pre-compiled `(candidatePath: string) => boolean` matchers keyed by `globs` array reference (`Rule 4.4`).
|
|
3
|
+
*
|
|
4
|
+
* Avoids re-compiling `picomatch` regular expressions across repeated policy guard, matcher, and check evaluations.
|
|
5
|
+
*/
|
|
6
|
+
export const CACHED_GLOB_OR_EXACT_MATCHERS = new WeakMap();
|
|
7
|
+
/**
|
|
8
|
+
* WeakMap cache of pre-compiled boundary path matchers keyed by `FsBoundaryGuardNode` reference (`Rules 4.2 & 4.4`).
|
|
9
|
+
*
|
|
10
|
+
* Avoids calling `Object.keys` and allocating fresh `boundaryGlobs` arrays across repeated boundary guard evaluations.
|
|
11
|
+
*/
|
|
12
|
+
export const CACHED_BOUNDARY_GUARD_MATCHERS = new WeakMap();
|
|
13
|
+
/**
|
|
14
|
+
* WeakMap cache of pre-compiled active lease write matchers keyed by `activeLeases` array reference (`Rule 4.4`).
|
|
15
|
+
*
|
|
16
|
+
* Reuses the composed lease matcher predicate across repeated guard evaluations sharing the same `activeLeases` slice.
|
|
17
|
+
*/
|
|
18
|
+
export const CACHED_ACTIVE_LEASE_WRITE_MATCHERS = new WeakMap();
|
|
19
|
+
//# sourceMappingURL=glob-matcher-cache.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glob-matcher-cache.constants.js","sourceRoot":"","sources":["../../../src/executors/internal/glob-matcher-cache.constants.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAGtC,IAAI,OAAO,EAAyD,CAAC;AAEzE;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAGvC,IAAI,OAAO,EAA2D,CAAC;AAE3E;;;;GAIG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAG3C,IAAI,OAAO,EAA6D,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validated grep arguments for {@link grepWorkspaceFiles}.
|
|
3
|
+
*/
|
|
4
|
+
export interface GrepWorkspaceFilesParams {
|
|
5
|
+
/** Regular expression pattern string to search for. */
|
|
6
|
+
readonly pattern: string;
|
|
7
|
+
/** Optional POSIX glob filter for candidate files. */
|
|
8
|
+
readonly glob?: string;
|
|
9
|
+
/** Optional regular expression flags. */
|
|
10
|
+
readonly flags?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Searches workspace files matching `params.glob` against `params.pattern` and formats `path:line:text` matches.
|
|
14
|
+
*
|
|
15
|
+
* Enforces `resolveJailedWorktreePath` on every candidate file before reading.
|
|
16
|
+
*
|
|
17
|
+
* @param {unknown} scopeHandle - Active isolation scope handle.
|
|
18
|
+
* @param {GrepWorkspaceFilesParams} params - Validated grep arguments (`pattern`, optional `glob` and `flags`).
|
|
19
|
+
*
|
|
20
|
+
* @returns {Promise<string>} Newline-joined `path:lineNumber:lineText` match strings.
|
|
21
|
+
*/
|
|
22
|
+
export declare function grepWorkspaceFiles(scopeHandle: unknown, params: GrepWorkspaceFilesParams): Promise<string>;
|
|
23
|
+
//# sourceMappingURL=grep-workspace-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grep-workspace-files.d.ts","sourceRoot":"","sources":["../../../src/executors/internal/grep-workspace-files.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,sDAAsD;IACtD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB,yCAAyC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { enumerateWorkspaceFiles } from './enumerate-workspace-files.js';
|
|
3
|
+
import { extractWorktreeRootAndBaseRef } from './extract-worktree-root-and-base-ref.js';
|
|
4
|
+
import { resolveJailedWorktreePath } from './resolve-jailed-worktree-path.js';
|
|
5
|
+
/**
|
|
6
|
+
* Searches workspace files matching `params.glob` against `params.pattern` and formats `path:line:text` matches.
|
|
7
|
+
*
|
|
8
|
+
* Enforces `resolveJailedWorktreePath` on every candidate file before reading.
|
|
9
|
+
*
|
|
10
|
+
* @param {unknown} scopeHandle - Active isolation scope handle.
|
|
11
|
+
* @param {GrepWorkspaceFilesParams} params - Validated grep arguments (`pattern`, optional `glob` and `flags`).
|
|
12
|
+
*
|
|
13
|
+
* @returns {Promise<string>} Newline-joined `path:lineNumber:lineText` match strings.
|
|
14
|
+
*/
|
|
15
|
+
export async function grepWorkspaceFiles(scopeHandle, params) {
|
|
16
|
+
const { rootPath } = extractWorktreeRootAndBaseRef(scopeHandle);
|
|
17
|
+
const candidateFiles = await enumerateWorkspaceFiles(rootPath, params.glob ?? '**/*');
|
|
18
|
+
const regex = new RegExp(params.pattern, (params.flags ?? '').replace(/g/g, ''));
|
|
19
|
+
const matches = [];
|
|
20
|
+
for (const relPath of candidateFiles) {
|
|
21
|
+
const { absolutePath } = resolveJailedWorktreePath(scopeHandle, relPath, 'read');
|
|
22
|
+
const text = await readFile(absolutePath, 'utf8');
|
|
23
|
+
const lines = text.split(/\r?\n/);
|
|
24
|
+
for (let idx = 0; idx < lines.length; idx += 1) {
|
|
25
|
+
const line = lines[idx];
|
|
26
|
+
if (line !== undefined && regex.test(line)) {
|
|
27
|
+
matches.push(`${relPath}:${String(idx + 1)}:${line}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return matches.join('\n');
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=grep-workspace-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grep-workspace-files.js","sourceRoot":"","sources":["../../../src/executors/internal/grep-workspace-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAgB9E;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAoB,EACpB,MAAgC;IAEhC,MAAM,EAAE,QAAQ,EAAE,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;IACtF,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,MAAM,EAAE,YAAY,EAAE,GAAG,yBAAyB,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { PolicyGuardEvaluationInput, PolicyGuardEvaluationResult, ToolEffect } from '@paraharness/core';
|
|
2
|
+
/**
|
|
3
|
+
* Evaluates write effects in `input.proposedEffects` against `isPathBlocked` and projects `violatedEffects` strictly to unleased violating paths.
|
|
4
|
+
*
|
|
5
|
+
* Filters out any path covered by `input.activeLeases` so single-guard and multi-guard evaluations report
|
|
6
|
+
* only the uncovered paths that triggered the violation (`SPEC.md` §3.5 & §4.3).
|
|
7
|
+
*
|
|
8
|
+
* @param {PolicyGuardEvaluationInput} input - Proposed tool effects and active capability leases.
|
|
9
|
+
* @param {(relPath: string, effect: ToolEffect) => boolean} isPathBlocked - Predicate returning `true` when `relPath` violates the guard.
|
|
10
|
+
* @param {(violatingPaths: readonly string[]) => string} formatSummary - Formatter producing the diagnostic `violationSummary`.
|
|
11
|
+
*
|
|
12
|
+
* @returns {PolicyGuardEvaluationResult} Frozen policy guard evaluation result.
|
|
13
|
+
*/
|
|
14
|
+
export declare function projectViolatedWriteEffects(input: PolicyGuardEvaluationInput, isPathBlocked: (relPath: string, effect: ToolEffect) => boolean, formatSummary: (violatingPaths: readonly string[]) => string): PolicyGuardEvaluationResult;
|
|
15
|
+
//# sourceMappingURL=project-violated-write-effects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-violated-write-effects.d.ts","sourceRoot":"","sources":["../../../src/executors/internal/project-violated-write-effects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,2BAA2B,EAC3B,UAAU,EACX,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,0BAA0B,EACjC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,OAAO,EAC/D,aAAa,EAAE,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,GAC3D,2BAA2B,CAgD7B"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { compileActiveLeaseWriteMatcher } from './compile-active-lease-write-matcher.js';
|
|
2
|
+
/**
|
|
3
|
+
* Evaluates write effects in `input.proposedEffects` against `isPathBlocked` and projects `violatedEffects` strictly to unleased violating paths.
|
|
4
|
+
*
|
|
5
|
+
* Filters out any path covered by `input.activeLeases` so single-guard and multi-guard evaluations report
|
|
6
|
+
* only the uncovered paths that triggered the violation (`SPEC.md` §3.5 & §4.3).
|
|
7
|
+
*
|
|
8
|
+
* @param {PolicyGuardEvaluationInput} input - Proposed tool effects and active capability leases.
|
|
9
|
+
* @param {(relPath: string, effect: ToolEffect) => boolean} isPathBlocked - Predicate returning `true` when `relPath` violates the guard.
|
|
10
|
+
* @param {(violatingPaths: readonly string[]) => string} formatSummary - Formatter producing the diagnostic `violationSummary`.
|
|
11
|
+
*
|
|
12
|
+
* @returns {PolicyGuardEvaluationResult} Frozen policy guard evaluation result.
|
|
13
|
+
*/
|
|
14
|
+
export function projectViolatedWriteEffects(input, isPathBlocked, formatSummary) {
|
|
15
|
+
const isLeased = compileActiveLeaseWriteMatcher(input.activeLeases);
|
|
16
|
+
const violatedEffects = [];
|
|
17
|
+
const allViolatingPaths = [];
|
|
18
|
+
for (const eff of input.proposedEffects) {
|
|
19
|
+
if (eff.kind !== 'fs:effect' || (eff.mutatesScope !== true && eff.attributes?.['mode'] !== 'write'))
|
|
20
|
+
continue;
|
|
21
|
+
const rawPaths = eff.attributes?.['paths'];
|
|
22
|
+
if (!Array.isArray(rawPaths))
|
|
23
|
+
continue;
|
|
24
|
+
const violatingSet = new Set();
|
|
25
|
+
for (const rawPath of rawPaths) {
|
|
26
|
+
if (typeof rawPath !== 'string')
|
|
27
|
+
continue;
|
|
28
|
+
const normPath = rawPath.replace(/\\/g, '/').replace(/^\.\//, '');
|
|
29
|
+
if (!isLeased(normPath) && isPathBlocked(normPath, eff)) {
|
|
30
|
+
violatingSet.add(normPath);
|
|
31
|
+
allViolatingPaths.push(normPath);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (violatingSet.size === 0)
|
|
35
|
+
continue;
|
|
36
|
+
const basePaths = eff.attributes?.['existingPathsAtBaseRef'];
|
|
37
|
+
const filteredBase = [];
|
|
38
|
+
for (const bp of basePaths ?? []) {
|
|
39
|
+
if (violatingSet.has(bp.replace(/\\/g, '/').replace(/^\.\//, '')))
|
|
40
|
+
filteredBase.push(bp);
|
|
41
|
+
}
|
|
42
|
+
const rawProposed = eff.attributes?.['proposedContent'];
|
|
43
|
+
const filteredProposed = {};
|
|
44
|
+
for (const vp of violatingSet) {
|
|
45
|
+
if (rawProposed?.[vp] !== undefined)
|
|
46
|
+
filteredProposed[vp] = rawProposed[vp];
|
|
47
|
+
}
|
|
48
|
+
const existingAtBase = Array.isArray(basePaths) ? Object.freeze(filteredBase) : undefined;
|
|
49
|
+
const proposed = rawProposed !== undefined ? Object.freeze(filteredProposed) : undefined;
|
|
50
|
+
violatedEffects.push(Object.freeze({
|
|
51
|
+
kind: 'fs:effect',
|
|
52
|
+
mutatesScope: true,
|
|
53
|
+
attributes: Object.freeze({
|
|
54
|
+
mode: 'write',
|
|
55
|
+
paths: Object.freeze([...violatingSet]),
|
|
56
|
+
existingPathsAtBaseRef: existingAtBase,
|
|
57
|
+
proposedContent: proposed,
|
|
58
|
+
}),
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
return Object.freeze({
|
|
62
|
+
allowed: violatedEffects.length === 0,
|
|
63
|
+
violatedEffects: Object.freeze(violatedEffects),
|
|
64
|
+
violationSummary: violatedEffects.length === 0 ? '' : formatSummary(allViolatingPaths),
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=project-violated-write-effects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-violated-write-effects.js","sourceRoot":"","sources":["../../../src/executors/internal/project-violated-write-effects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves and jails `candidatePath` strictly inside the active worktree root (`SPEC.md` §4.3).
|
|
3
|
+
*
|
|
4
|
+
* Resolves existing target or parent symlinks via `realpathSync`, blocks escapes outside
|
|
5
|
+
* `worktreePath`, and rejects writes targeting `node_modules` directories.
|
|
6
|
+
*
|
|
7
|
+
* @param {unknown} scopeHandle - Active isolation scope handle or `undefined`.
|
|
8
|
+
* @param {string} candidatePath - Raw relative or absolute path requested by a tool or source.
|
|
9
|
+
* @param {'read' | 'write'} [accessMode='read'] - Filesystem access mode (`'read'` or `'write'`).
|
|
10
|
+
*
|
|
11
|
+
* @returns {{ readonly normalizedRelPath: string; readonly absolutePath: string }} Normalized POSIX relative path and jailed absolute path.
|
|
12
|
+
*
|
|
13
|
+
* @throws {Error} If `candidatePath` is invalid, escapes `worktreePath`, or writes to `node_modules`.
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveJailedWorktreePath(scopeHandle: unknown, candidatePath: string, accessMode?: 'read' | 'write'): {
|
|
16
|
+
readonly normalizedRelPath: string;
|
|
17
|
+
readonly absolutePath: string;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=resolve-jailed-worktree-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-jailed-worktree-path.d.ts","sourceRoot":"","sources":["../../../src/executors/internal/resolve-jailed-worktree-path.ts"],"names":[],"mappings":"AA0EA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,OAAO,EACpB,aAAa,EAAE,MAAM,EACrB,UAAU,GAAE,MAAM,GAAG,OAAgB,GACpC;IAAE,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAsBvE"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { existsSync, lstatSync, readlinkSync, realpathSync } from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { extractWorktreeRootAndBaseRef } from './extract-worktree-root-and-base-ref.js';
|
|
4
|
+
/**
|
|
5
|
+
* Resolves the canonical filesystem path for `candidatePath` under `realRoot`, following existing and dangling symlinks.
|
|
6
|
+
*
|
|
7
|
+
* Walks up non-existent path components while resolving any symlink hops (capped at 40 hops to prevent cycles).
|
|
8
|
+
*
|
|
9
|
+
* @param {string} realRoot - Canonicalized `realpathSync` root directory of the workspace.
|
|
10
|
+
* @param {string} candidatePath - Raw relative or absolute path requested by a tool or source.
|
|
11
|
+
*
|
|
12
|
+
* @returns {string} Canonicalized target path with all existing and dangling symlinks resolved.
|
|
13
|
+
*
|
|
14
|
+
* @throws {Error} If symlink resolution exceeds 40 hops.
|
|
15
|
+
*/
|
|
16
|
+
function resolveCandidateRealPath(realRoot, candidatePath) {
|
|
17
|
+
let cursor = path.resolve(realRoot, candidatePath);
|
|
18
|
+
const trailing = [];
|
|
19
|
+
for (let hops = 0; !existsSync(cursor);) {
|
|
20
|
+
if (lstatSync(cursor, { throwIfNoEntry: false })?.isSymbolicLink() === true) {
|
|
21
|
+
hops += 1;
|
|
22
|
+
if (hops > 40) {
|
|
23
|
+
throw new Error(`Workspace path jail violation: symlink loop on '${candidatePath}'.`);
|
|
24
|
+
}
|
|
25
|
+
cursor = path.resolve(path.dirname(cursor), readlinkSync(cursor), ...trailing);
|
|
26
|
+
trailing.length = 0;
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const parent = path.dirname(cursor);
|
|
30
|
+
if (parent === cursor)
|
|
31
|
+
break;
|
|
32
|
+
trailing.unshift(path.basename(cursor));
|
|
33
|
+
cursor = parent;
|
|
34
|
+
}
|
|
35
|
+
const resolvedBase = existsSync(cursor) ? realpathSync(cursor) : cursor;
|
|
36
|
+
return path.resolve(resolvedBase, ...trailing);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Determines whether a `path.relative(realRoot, targetPath)` result escapes `realRoot`.
|
|
40
|
+
*
|
|
41
|
+
* Rejects `..`, `../...`, platform-specific `..\...`, and absolute path results.
|
|
42
|
+
*
|
|
43
|
+
* @param {string} relativePath - Output of `path.relative(realRoot, targetPath)`.
|
|
44
|
+
*
|
|
45
|
+
* @returns {boolean} True when `relativePath` points outside `realRoot`.
|
|
46
|
+
*/
|
|
47
|
+
function isRelativePathEscapingRoot(relativePath) {
|
|
48
|
+
return (relativePath === '..' ||
|
|
49
|
+
relativePath.startsWith('../') ||
|
|
50
|
+
relativePath.startsWith(`..${path.sep}`) ||
|
|
51
|
+
path.isAbsolute(relativePath));
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Determines whether a normalized POSIX relative path targets a `node_modules` directory or file.
|
|
55
|
+
*
|
|
56
|
+
* Used to block write/edit tools from mutating `node_modules` subtrees (`SPEC.md` §4.3).
|
|
57
|
+
*
|
|
58
|
+
* @param {string} normalizedRelPath - Normalized POSIX worktree-relative file path.
|
|
59
|
+
*
|
|
60
|
+
* @returns {boolean} True when `normalizedRelPath` is inside `node_modules`.
|
|
61
|
+
*/
|
|
62
|
+
function isNodeModulesRelativePath(normalizedRelPath) {
|
|
63
|
+
return (normalizedRelPath === 'node_modules' ||
|
|
64
|
+
normalizedRelPath.startsWith('node_modules/') ||
|
|
65
|
+
normalizedRelPath.includes('/node_modules/') ||
|
|
66
|
+
normalizedRelPath.endsWith('/node_modules'));
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Resolves and jails `candidatePath` strictly inside the active worktree root (`SPEC.md` §4.3).
|
|
70
|
+
*
|
|
71
|
+
* Resolves existing target or parent symlinks via `realpathSync`, blocks escapes outside
|
|
72
|
+
* `worktreePath`, and rejects writes targeting `node_modules` directories.
|
|
73
|
+
*
|
|
74
|
+
* @param {unknown} scopeHandle - Active isolation scope handle or `undefined`.
|
|
75
|
+
* @param {string} candidatePath - Raw relative or absolute path requested by a tool or source.
|
|
76
|
+
* @param {'read' | 'write'} [accessMode='read'] - Filesystem access mode (`'read'` or `'write'`).
|
|
77
|
+
*
|
|
78
|
+
* @returns {{ readonly normalizedRelPath: string; readonly absolutePath: string }} Normalized POSIX relative path and jailed absolute path.
|
|
79
|
+
*
|
|
80
|
+
* @throws {Error} If `candidatePath` is invalid, escapes `worktreePath`, or writes to `node_modules`.
|
|
81
|
+
*/
|
|
82
|
+
export function resolveJailedWorktreePath(scopeHandle, candidatePath, accessMode = 'read') {
|
|
83
|
+
if (typeof candidatePath !== 'string' ||
|
|
84
|
+
candidatePath.trim().length === 0 ||
|
|
85
|
+
candidatePath.includes('\0')) {
|
|
86
|
+
throw new Error(`Invalid workspace file path '${String(candidatePath)}'.`);
|
|
87
|
+
}
|
|
88
|
+
const { rootPath } = extractWorktreeRootAndBaseRef(scopeHandle);
|
|
89
|
+
const realRoot = realpathSync(path.resolve(rootPath));
|
|
90
|
+
const realCandidate = resolveCandidateRealPath(realRoot, candidatePath);
|
|
91
|
+
const relativePath = path.relative(realRoot, realCandidate);
|
|
92
|
+
if (isRelativePathEscapingRoot(relativePath)) {
|
|
93
|
+
throw new Error(`Workspace path jail violation: '${candidatePath}' escapes worktree '${realRoot}'.`);
|
|
94
|
+
}
|
|
95
|
+
const normalizedRelPath = relativePath.length === 0 ? '.' : relativePath.split(path.sep).join('/');
|
|
96
|
+
if (accessMode === 'write' && isNodeModulesRelativePath(normalizedRelPath)) {
|
|
97
|
+
throw new Error(`Write denied: modifying node_modules path '${normalizedRelPath}' is forbidden.`);
|
|
98
|
+
}
|
|
99
|
+
return Object.freeze({ normalizedRelPath, absolutePath: realCandidate });
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=resolve-jailed-worktree-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-jailed-worktree-path.js","sourceRoot":"","sources":["../../../src/executors/internal/resolve-jailed-worktree-path.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default regular expression source strings scanned by `fs:secret-literals` (`SPEC.md` §4.3).
|
|
3
|
+
*
|
|
4
|
+
* Detects OpenAI/Anthropic `sk-` keys, GitHub `ghp_` / `github_pat_` tokens, Slack `xox*-` tokens,
|
|
5
|
+
* AWS `AKIA` access key IDs, and PEM private key headers.
|
|
6
|
+
*/
|
|
7
|
+
export declare const DEFAULT_SECRET_PATTERN_SOURCES: readonly string[];
|
|
8
|
+
/**
|
|
9
|
+
* Pre-compiled default regular expressions for `fs:secret-literals` (`Rule 4.4`).
|
|
10
|
+
*/
|
|
11
|
+
export declare const DEFAULT_COMPILED_SECRET_PATTERNS: readonly RegExp[];
|
|
12
|
+
/**
|
|
13
|
+
* WeakMap cache mapping frozen custom secret pattern arrays to their compiled `RegExp` lists (`Rule 4.4`).
|
|
14
|
+
*/
|
|
15
|
+
export declare const CACHED_SECRET_PATTERN_LISTS: WeakMap<readonly string[], readonly RegExp[]>;
|
|
16
|
+
//# sourceMappingURL=secret-patterns.constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-patterns.constants.d.ts","sourceRoot":"","sources":["../../../src/executors/internal/secret-patterns.constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,EAAE,SAAS,MAAM,EAO1D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gCAAgC,EAAE,SAAS,MAAM,EAO5D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,2BAA2B,+CAGrC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default regular expression source strings scanned by `fs:secret-literals` (`SPEC.md` §4.3).
|
|
3
|
+
*
|
|
4
|
+
* Detects OpenAI/Anthropic `sk-` keys, GitHub `ghp_` / `github_pat_` tokens, Slack `xox*-` tokens,
|
|
5
|
+
* AWS `AKIA` access key IDs, and PEM private key headers.
|
|
6
|
+
*/
|
|
7
|
+
export const DEFAULT_SECRET_PATTERN_SOURCES = Object.freeze([
|
|
8
|
+
'\\bsk-[A-Za-z0-9_-]{16,}\\b',
|
|
9
|
+
'\\bghp_[A-Za-z0-9]{20,}\\b',
|
|
10
|
+
'\\bgithub_pat_[A-Za-z0-9_]{20,}\\b',
|
|
11
|
+
'\\bxox[baprs]-[A-Za-z0-9-]{10,}\\b',
|
|
12
|
+
'\\bAKIA[0-9A-Z]{16}\\b',
|
|
13
|
+
'-----BEGIN (?:RSA |EC |OPENSSH )?PRIVATE KEY-----',
|
|
14
|
+
]);
|
|
15
|
+
/**
|
|
16
|
+
* Pre-compiled default regular expressions for `fs:secret-literals` (`Rule 4.4`).
|
|
17
|
+
*/
|
|
18
|
+
export const DEFAULT_COMPILED_SECRET_PATTERNS = Object.freeze([
|
|
19
|
+
new RegExp('\\bsk-[A-Za-z0-9_-]{16,}\\b'),
|
|
20
|
+
new RegExp('\\bghp_[A-Za-z0-9]{20,}\\b'),
|
|
21
|
+
new RegExp('\\bgithub_pat_[A-Za-z0-9_]{20,}\\b'),
|
|
22
|
+
new RegExp('\\bxox[baprs]-[A-Za-z0-9-]{10,}\\b'),
|
|
23
|
+
new RegExp('\\bAKIA[0-9A-Z]{16}\\b'),
|
|
24
|
+
new RegExp('-----BEGIN (?:RSA |EC |OPENSSH )?PRIVATE KEY-----'),
|
|
25
|
+
]);
|
|
26
|
+
/**
|
|
27
|
+
* WeakMap cache mapping frozen custom secret pattern arrays to their compiled `RegExp` lists (`Rule 4.4`).
|
|
28
|
+
*/
|
|
29
|
+
export const CACHED_SECRET_PATTERN_LISTS = new WeakMap();
|
|
30
|
+
//# sourceMappingURL=secret-patterns.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-patterns.constants.js","sourceRoot":"","sources":["../../../src/executors/internal/secret-patterns.constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAsB,MAAM,CAAC,MAAM,CAAC;IAC7E,6BAA6B;IAC7B,4BAA4B;IAC5B,oCAAoC;IACpC,oCAAoC;IACpC,wBAAwB;IACxB,mDAAmD;CACpD,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAsB,MAAM,CAAC,MAAM,CAAC;IAC/E,IAAI,MAAM,CAAC,6BAA6B,CAAC;IACzC,IAAI,MAAM,CAAC,4BAA4B,CAAC;IACxC,IAAI,MAAM,CAAC,oCAAoC,CAAC;IAChD,IAAI,MAAM,CAAC,oCAAoC,CAAC;IAChD,IAAI,MAAM,CAAC,wBAAwB,CAAC;IACpC,IAAI,MAAM,CAAC,mDAAmD,CAAC;CAChE,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,OAAO,EAGnD,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export type { FsAllowOnlyGuardNode, FsBoundaryGuardNode, FsEditToolNode, FsGlobMatcherNode, FsGlobSourceNode, FsGlobToolNode, FsGrepToolNode, FsJsonlLessonStoreNode, FsPartitionMapNode, FsPartitionPathMapping, FsProtectGuardNode, FsQuotaTripwireNode, FsReadOnlyGuardNode, FsReadToolNode, FsRegexCheckNode, FsRequireReadBeforeWriteGuardNode, FsScopedWriteGuardNode, FsSecretLiteralsGuardNode, FsTelemetryCollectorNode, FsTextSourceNode, FsWriteGuardNode, FsWriteToolNode, } from '@paraharness/core';
|
|
2
|
+
export { createFsAllowOnlyGuardBuilder } from './builders/create-fs-allow-only-guard-builder.js';
|
|
3
|
+
export { createFsAllowWriteGlobsLeaseDelta } from './builders/create-fs-allow-write-globs-lease-delta.js';
|
|
4
|
+
export { createFsBoundaryGuardBuilder } from './builders/create-fs-boundary-guard-builder.js';
|
|
5
|
+
export { createFsCodingTools } from './builders/create-fs-coding-tools.js';
|
|
6
|
+
export { createFsGlobMatcherBuilder } from './builders/create-fs-glob-matcher-builder.js';
|
|
7
|
+
export { createFsGlobSourceBuilder } from './builders/create-fs-glob-source-builder.js';
|
|
8
|
+
export { createFsInPartitionPredicate } from './builders/create-fs-in-partition-predicate.js';
|
|
9
|
+
export { createFsJsonlLessonStoreBuilder, type FsJsonlLessonStoreOptions, } from './builders/create-fs-jsonl-lesson-store-builder.js';
|
|
10
|
+
export { createFsMaxFilesMutatedBuilder } from './builders/create-fs-max-files-mutated-builder.js';
|
|
11
|
+
export { createFsPartitionMap } from './builders/create-fs-partition-map.js';
|
|
12
|
+
export { createFsProtectGuardBuilder } from './builders/create-fs-protect-guard-builder.js';
|
|
13
|
+
export { createFsReadOnlyGuardBuilder } from './builders/create-fs-read-only-guard-builder.js';
|
|
14
|
+
export { createFsReadOnlyTools } from './builders/create-fs-read-only-tools.js';
|
|
15
|
+
export { createFsRegexCheckBuilder, type FsRegexCheckOptions, } from './builders/create-fs-regex-check-builder.js';
|
|
16
|
+
export { createFsRequireReadBeforeWriteGuardBuilder } from './builders/create-fs-require-read-before-write-guard-builder.js';
|
|
17
|
+
export { createFsScopedWriteGuardBuilder } from './builders/create-fs-scoped-write-guard-builder.js';
|
|
18
|
+
export { createFsSecretLiteralsGuardBuilder } from './builders/create-fs-secret-literals-guard-builder.js';
|
|
19
|
+
export { createFsTelemetryBuilder } from './builders/create-fs-telemetry-builder.js';
|
|
20
|
+
export { createFsTextSourceBuilder } from './builders/create-fs-text-source-builder.js';
|
|
21
|
+
export { createFsWriteGuardBuilder, type FsWriteGuardOptions, } from './builders/create-fs-write-guard-builder.js';
|
|
22
|
+
export type { FsNamespace } from './builders/fs-namespace-contract.js';
|
|
23
|
+
export { fs } from './builders/fs-namespace.js';
|
|
24
|
+
export { createFsExecutors } from './executors/create-fs-executors.js';
|
|
25
|
+
export { collectFsTelemetry, evaluateFsQuotaTripwire, executeFsRegexCheck, } from './executors/fs-check-tripwire-and-telemetry.js';
|
|
26
|
+
export { fsExecutors } from './executors/fs-executors.constants.js';
|
|
27
|
+
export { evaluateFsGlobEffectMatcher } from './executors/fs-glob-effect-matcher.js';
|
|
28
|
+
export { evaluateFsAllowOnlyGuard, evaluateFsBoundaryGuard, evaluateFsProtectGuard, evaluateFsReadOnlyGuard, } from './executors/fs-path-guard-executors.js';
|
|
29
|
+
export { createFsGlobToolDriver, createFsGrepToolDriver, createFsReadToolDriver, } from './executors/fs-read-tool-drivers.js';
|
|
30
|
+
export { executeFsGlobSource, executeFsTextSource, } from './executors/fs-source-executors.js';
|
|
31
|
+
export type { FsToolEffect, FsToolEffectAttributes, } from './executors/fs-tool-effect.js';
|
|
32
|
+
export { evaluateFsRequireReadBeforeWriteGuard, evaluateFsScopedWriteGuard, evaluateFsSecretLiteralsGuard, evaluateFsWriteGuard, } from './executors/fs-write-guard-executors.js';
|
|
33
|
+
export { createFsEditToolDriver, createFsWriteToolDriver, } from './executors/fs-write-tool-drivers.js';
|
|
34
|
+
export { type FsAdmitLessonParams, FsJsonlLessonStore, type FsQueryCandidatesParams, type FsRecordOutcomeParams, } from './stores/fs-jsonl-lesson-store.js';
|
|
35
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export { createFsAllowOnlyGuardBuilder } from './builders/create-fs-allow-only-guard-builder.js';
|
|
2
|
+
export { createFsAllowWriteGlobsLeaseDelta } from './builders/create-fs-allow-write-globs-lease-delta.js';
|
|
3
|
+
export { createFsBoundaryGuardBuilder } from './builders/create-fs-boundary-guard-builder.js';
|
|
4
|
+
export { createFsCodingTools } from './builders/create-fs-coding-tools.js';
|
|
5
|
+
export { createFsGlobMatcherBuilder } from './builders/create-fs-glob-matcher-builder.js';
|
|
6
|
+
export { createFsGlobSourceBuilder } from './builders/create-fs-glob-source-builder.js';
|
|
7
|
+
export { createFsInPartitionPredicate } from './builders/create-fs-in-partition-predicate.js';
|
|
8
|
+
export { createFsJsonlLessonStoreBuilder, } from './builders/create-fs-jsonl-lesson-store-builder.js';
|
|
9
|
+
export { createFsMaxFilesMutatedBuilder } from './builders/create-fs-max-files-mutated-builder.js';
|
|
10
|
+
export { createFsPartitionMap } from './builders/create-fs-partition-map.js';
|
|
11
|
+
export { createFsProtectGuardBuilder } from './builders/create-fs-protect-guard-builder.js';
|
|
12
|
+
export { createFsReadOnlyGuardBuilder } from './builders/create-fs-read-only-guard-builder.js';
|
|
13
|
+
export { createFsReadOnlyTools } from './builders/create-fs-read-only-tools.js';
|
|
14
|
+
export { createFsRegexCheckBuilder, } from './builders/create-fs-regex-check-builder.js';
|
|
15
|
+
export { createFsRequireReadBeforeWriteGuardBuilder } from './builders/create-fs-require-read-before-write-guard-builder.js';
|
|
16
|
+
export { createFsScopedWriteGuardBuilder } from './builders/create-fs-scoped-write-guard-builder.js';
|
|
17
|
+
export { createFsSecretLiteralsGuardBuilder } from './builders/create-fs-secret-literals-guard-builder.js';
|
|
18
|
+
export { createFsTelemetryBuilder } from './builders/create-fs-telemetry-builder.js';
|
|
19
|
+
export { createFsTextSourceBuilder } from './builders/create-fs-text-source-builder.js';
|
|
20
|
+
export { createFsWriteGuardBuilder, } from './builders/create-fs-write-guard-builder.js';
|
|
21
|
+
export { fs } from './builders/fs-namespace.js';
|
|
22
|
+
export { createFsExecutors } from './executors/create-fs-executors.js';
|
|
23
|
+
export { collectFsTelemetry, evaluateFsQuotaTripwire, executeFsRegexCheck, } from './executors/fs-check-tripwire-and-telemetry.js';
|
|
24
|
+
export { fsExecutors } from './executors/fs-executors.constants.js';
|
|
25
|
+
export { evaluateFsGlobEffectMatcher } from './executors/fs-glob-effect-matcher.js';
|
|
26
|
+
export { evaluateFsAllowOnlyGuard, evaluateFsBoundaryGuard, evaluateFsProtectGuard, evaluateFsReadOnlyGuard, } from './executors/fs-path-guard-executors.js';
|
|
27
|
+
export { createFsGlobToolDriver, createFsGrepToolDriver, createFsReadToolDriver, } from './executors/fs-read-tool-drivers.js';
|
|
28
|
+
export { executeFsGlobSource, executeFsTextSource, } from './executors/fs-source-executors.js';
|
|
29
|
+
export { evaluateFsRequireReadBeforeWriteGuard, evaluateFsScopedWriteGuard, evaluateFsSecretLiteralsGuard, evaluateFsWriteGuard, } from './executors/fs-write-guard-executors.js';
|
|
30
|
+
export { createFsEditToolDriver, createFsWriteToolDriver, } from './executors/fs-write-tool-drivers.js';
|
|
31
|
+
export { FsJsonlLessonStore, } from './stores/fs-jsonl-lesson-store.js';
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kDAAkD,CAAC;AACjG,OAAO,EAAE,iCAAiC,EAAE,MAAM,uDAAuD,CAAC;AAC1G,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EACL,+BAA+B,GAEhC,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,8BAA8B,EAAE,MAAM,mDAAmD,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAC5F,OAAO,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EACL,yBAAyB,GAE1B,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,0CAA0C,EAAE,MAAM,iEAAiE,CAAC;AAC7H,OAAO,EAAE,+BAA+B,EAAE,MAAM,oDAAoD,CAAC;AACrG,OAAO,EAAE,kCAAkC,EAAE,MAAM,uDAAuD,CAAC;AAC3G,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EACL,yBAAyB,GAE1B,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,oCAAoC,CAAC;AAK5C,OAAO,EACL,qCAAqC,EACrC,0BAA0B,EAC1B,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAEL,kBAAkB,GAGnB,MAAM,mCAAmC,CAAC"}
|