@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,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compiles a passive `FsProtectGuardNode` (`fs:protect`) for `fs.protect(globs)`.
|
|
3
|
+
*
|
|
4
|
+
* Blocks any write mutation targeting files matching `globs` unless covered by an
|
|
5
|
+
* explicitly elevated capability lease.
|
|
6
|
+
*
|
|
7
|
+
* @param {readonly string[]} globs - Protected file glob patterns.
|
|
8
|
+
*
|
|
9
|
+
* @returns {FsProtectGuardNode} Deeply frozen `FsProtectGuardNode` AST descriptor.
|
|
10
|
+
*/
|
|
11
|
+
export function createFsProtectGuardBuilder(globs) {
|
|
12
|
+
if (!Array.isArray(globs) || globs.length === 0) {
|
|
13
|
+
throw new Error('fs.protect requires a non-empty globs array.');
|
|
14
|
+
}
|
|
15
|
+
const frozenGlobs = Object.freeze([...globs]);
|
|
16
|
+
return Object.freeze({
|
|
17
|
+
type: 'fs:protect',
|
|
18
|
+
id: `fs:protect:${frozenGlobs.join(',')}`,
|
|
19
|
+
globs: frozenGlobs,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=create-fs-protect-guard-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-protect-guard-builder.js","sourceRoot":"","sources":["../../src/builders/create-fs-protect-guard-builder.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAwB;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,MAAM,CAAqB;QACvC,IAAI,EAAE,YAAY;QAClB,EAAE,EAAE,cAAc,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACzC,KAAK,EAAE,WAAW;KACnB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { FsReadOnlyGuardNode } from '@paraharness/core';
|
|
2
|
+
/**
|
|
3
|
+
* Compiles a passive `FsReadOnlyGuardNode` (`fs:read-only`) for `fs.readOnly()`.
|
|
4
|
+
*
|
|
5
|
+
* Rejects all filesystem write mutations across declared and post-flight-diffed tools
|
|
6
|
+
* unless covered by an active capability lease.
|
|
7
|
+
*
|
|
8
|
+
* @returns {FsReadOnlyGuardNode} Deeply frozen `FsReadOnlyGuardNode` AST descriptor.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createFsReadOnlyGuardBuilder(): FsReadOnlyGuardNode;
|
|
11
|
+
//# sourceMappingURL=create-fs-read-only-guard-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-read-only-guard-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-fs-read-only-guard-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,IAAI,mBAAmB,CAKlE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compiles a passive `FsReadOnlyGuardNode` (`fs:read-only`) for `fs.readOnly()`.
|
|
3
|
+
*
|
|
4
|
+
* Rejects all filesystem write mutations across declared and post-flight-diffed tools
|
|
5
|
+
* unless covered by an active capability lease.
|
|
6
|
+
*
|
|
7
|
+
* @returns {FsReadOnlyGuardNode} Deeply frozen `FsReadOnlyGuardNode` AST descriptor.
|
|
8
|
+
*/
|
|
9
|
+
export function createFsReadOnlyGuardBuilder() {
|
|
10
|
+
return Object.freeze({
|
|
11
|
+
type: 'fs:read-only',
|
|
12
|
+
id: 'fs:read-only',
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=create-fs-read-only-guard-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-read-only-guard-builder.js","sourceRoot":"","sources":["../../src/builders/create-fs-read-only-guard-builder.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B;IAC1C,OAAO,MAAM,CAAC,MAAM,CAAsB;QACxC,IAAI,EAAE,cAAc;QACpB,EAAE,EAAE,cAAc;KACnB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type FsGlobToolNode, type FsGrepToolNode, type FsReadToolNode, type MaybeBuilder, type NodeRunnerNode } from '@paraharness/core';
|
|
2
|
+
/**
|
|
3
|
+
* Compiles the 3-tool workspace-jailed read-only bundle (`fs.readOnlyTools(runner)`).
|
|
4
|
+
*
|
|
5
|
+
* Returns passive `ToolASTNode` descriptors (`read_file`, `glob_files`, `grep_files`)
|
|
6
|
+
* with `effectTracking: 'declared'` for evaluators, adjudicators, and arbiters.
|
|
7
|
+
*
|
|
8
|
+
* @template THandle Runtime handle type of the active isolation scope.
|
|
9
|
+
*
|
|
10
|
+
* @param {MaybeBuilder<NodeRunnerNode>} runner - Runner pool AST node or builder.
|
|
11
|
+
*
|
|
12
|
+
* @returns {readonly [FsReadToolNode<THandle>, FsGlobToolNode<THandle>, FsGrepToolNode<THandle>]} Frozen 3-tuple of read-only filesystem tool AST nodes.
|
|
13
|
+
*/
|
|
14
|
+
export declare function createFsReadOnlyTools<THandle = unknown>(runner: MaybeBuilder<NodeRunnerNode>): readonly [FsReadToolNode<THandle>, FsGlobToolNode<THandle>, FsGrepToolNode<THandle>];
|
|
15
|
+
//# sourceMappingURL=create-fs-read-only-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-read-only-tools.d.ts","sourceRoot":"","sources":["../../src/builders/create-fs-read-only-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAO3B;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAG,OAAO,EACrD,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,GACnC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAOtF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { extractAST, } from '@paraharness/core';
|
|
2
|
+
import { buildFsGlobToolNode, buildFsGrepToolNode, buildFsReadToolNode, } from './internal/build-fs-tool-nodes.js';
|
|
3
|
+
/**
|
|
4
|
+
* Compiles the 3-tool workspace-jailed read-only bundle (`fs.readOnlyTools(runner)`).
|
|
5
|
+
*
|
|
6
|
+
* Returns passive `ToolASTNode` descriptors (`read_file`, `glob_files`, `grep_files`)
|
|
7
|
+
* with `effectTracking: 'declared'` for evaluators, adjudicators, and arbiters.
|
|
8
|
+
*
|
|
9
|
+
* @template THandle Runtime handle type of the active isolation scope.
|
|
10
|
+
*
|
|
11
|
+
* @param {MaybeBuilder<NodeRunnerNode>} runner - Runner pool AST node or builder.
|
|
12
|
+
*
|
|
13
|
+
* @returns {readonly [FsReadToolNode<THandle>, FsGlobToolNode<THandle>, FsGrepToolNode<THandle>]} Frozen 3-tuple of read-only filesystem tool AST nodes.
|
|
14
|
+
*/
|
|
15
|
+
export function createFsReadOnlyTools(runner) {
|
|
16
|
+
const runnerNode = extractAST(runner);
|
|
17
|
+
return Object.freeze([
|
|
18
|
+
buildFsReadToolNode(runnerNode),
|
|
19
|
+
buildFsGlobToolNode(runnerNode),
|
|
20
|
+
buildFsGrepToolNode(runnerNode),
|
|
21
|
+
]);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=create-fs-read-only-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-read-only-tools.js","sourceRoot":"","sources":["../../src/builders/create-fs-read-only-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,GAMX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAoC;IAEpC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,mBAAmB,CAAU,UAAU,CAAC;QACxC,mBAAmB,CAAU,UAAU,CAAC;QACxC,mBAAmB,CAAU,UAAU,CAAC;KACzC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { FsRegexCheckNode } from '@paraharness/core';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration options for `fs.regexCheck(id, options)`.
|
|
4
|
+
*
|
|
5
|
+
* Specifies the target file globs to inspect among mutated files, the forbidden regex
|
|
6
|
+
* pattern (as a `string` or `RegExp`), and the deficit message reported on match.
|
|
7
|
+
*/
|
|
8
|
+
export interface FsRegexCheckOptions {
|
|
9
|
+
/** Glob patterns selecting mutated files to scan. */
|
|
10
|
+
readonly targetGlobs: readonly string[];
|
|
11
|
+
/** Regular expression pattern or `RegExp` instance that fails the check when matched. */
|
|
12
|
+
readonly forbidPattern: string | RegExp;
|
|
13
|
+
/** Optional regular expression flags when `forbidPattern` is provided as a string. */
|
|
14
|
+
readonly forbidFlags?: string;
|
|
15
|
+
/** Diagnostic message reported in `deficits` when a match is found. */
|
|
16
|
+
readonly violationMessage: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Compiles a passive `FsRegexCheckNode` (`fs:regex-check`) for `fs.regexCheck(id, options)`.
|
|
20
|
+
*
|
|
21
|
+
* Normalizes `options.forbidPattern` (`string | RegExp`) into serializable `forbidPattern`
|
|
22
|
+
* and `forbidFlags` properties and validates regular expression compilation at build time.
|
|
23
|
+
*
|
|
24
|
+
* @template THandle Runtime handle type of the active isolation scope.
|
|
25
|
+
*
|
|
26
|
+
* @param {string} id - Unique identifier for the regex check.
|
|
27
|
+
* @param {FsRegexCheckOptions} options - Target globs, forbidden pattern, and violation message.
|
|
28
|
+
*
|
|
29
|
+
* @returns {FsRegexCheckNode<THandle>} Deeply frozen `FsRegexCheckNode` AST descriptor.
|
|
30
|
+
*
|
|
31
|
+
* @throws {Error} If `id`, `options.targetGlobs`, or `options.violationMessage` is empty.
|
|
32
|
+
*/
|
|
33
|
+
export declare function createFsRegexCheckBuilder<THandle = unknown>(id: string, options: FsRegexCheckOptions): FsRegexCheckNode<THandle>;
|
|
34
|
+
//# sourceMappingURL=create-fs-regex-check-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-regex-check-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-fs-regex-check-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,yFAAyF;IACzF,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC,sFAAsF;IACtF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AA6BD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,GAAG,OAAO,EACzD,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,mBAAmB,GAC3B,gBAAgB,CAAC,OAAO,CAAC,CAmB3B"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves the normalized regular expression pattern source and flags from `options`.
|
|
3
|
+
*
|
|
4
|
+
* Validates that the compiled `RegExp` is syntactically valid at AST construction time.
|
|
5
|
+
*
|
|
6
|
+
* @param {FsRegexCheckOptions} options - Regex check options containing `forbidPattern` and `forbidFlags`.
|
|
7
|
+
*
|
|
8
|
+
* @returns {{ readonly forbidPattern: string; readonly forbidFlags: string | undefined }} Normalized pattern and optional flags.
|
|
9
|
+
*/
|
|
10
|
+
function resolveForbidPatternAndFlags(options) {
|
|
11
|
+
if (options.forbidPattern instanceof RegExp) {
|
|
12
|
+
const rawFlags = options.forbidFlags ?? options.forbidPattern.flags;
|
|
13
|
+
const forbidFlags = rawFlags.length > 0 ? rawFlags : undefined;
|
|
14
|
+
void new RegExp(options.forbidPattern.source, forbidFlags);
|
|
15
|
+
return { forbidPattern: options.forbidPattern.source, forbidFlags };
|
|
16
|
+
}
|
|
17
|
+
const forbidFlags = options.forbidFlags !== undefined && options.forbidFlags.length > 0
|
|
18
|
+
? options.forbidFlags
|
|
19
|
+
: undefined;
|
|
20
|
+
void new RegExp(options.forbidPattern, forbidFlags);
|
|
21
|
+
return { forbidPattern: options.forbidPattern, forbidFlags };
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Compiles a passive `FsRegexCheckNode` (`fs:regex-check`) for `fs.regexCheck(id, options)`.
|
|
25
|
+
*
|
|
26
|
+
* Normalizes `options.forbidPattern` (`string | RegExp`) into serializable `forbidPattern`
|
|
27
|
+
* and `forbidFlags` properties and validates regular expression compilation at build time.
|
|
28
|
+
*
|
|
29
|
+
* @template THandle Runtime handle type of the active isolation scope.
|
|
30
|
+
*
|
|
31
|
+
* @param {string} id - Unique identifier for the regex check.
|
|
32
|
+
* @param {FsRegexCheckOptions} options - Target globs, forbidden pattern, and violation message.
|
|
33
|
+
*
|
|
34
|
+
* @returns {FsRegexCheckNode<THandle>} Deeply frozen `FsRegexCheckNode` AST descriptor.
|
|
35
|
+
*
|
|
36
|
+
* @throws {Error} If `id`, `options.targetGlobs`, or `options.violationMessage` is empty.
|
|
37
|
+
*/
|
|
38
|
+
export function createFsRegexCheckBuilder(id, options) {
|
|
39
|
+
if (typeof id !== 'string' || id.trim().length === 0) {
|
|
40
|
+
throw new Error('fs.regexCheck requires a non-empty check id.');
|
|
41
|
+
}
|
|
42
|
+
if (!Array.isArray(options.targetGlobs) || options.targetGlobs.length === 0) {
|
|
43
|
+
throw new Error(`fs.regexCheck('${id}') requires a non-empty targetGlobs array.`);
|
|
44
|
+
}
|
|
45
|
+
if (typeof options.violationMessage !== 'string' || options.violationMessage.trim().length === 0) {
|
|
46
|
+
throw new Error(`fs.regexCheck('${id}') requires a non-empty violationMessage.`);
|
|
47
|
+
}
|
|
48
|
+
const { forbidPattern, forbidFlags } = resolveForbidPatternAndFlags(options);
|
|
49
|
+
return Object.freeze({
|
|
50
|
+
type: 'fs:regex-check',
|
|
51
|
+
id: id.trim(),
|
|
52
|
+
targetGlobs: Object.freeze([...options.targetGlobs]),
|
|
53
|
+
forbidPattern,
|
|
54
|
+
forbidFlags,
|
|
55
|
+
violationMessage: options.violationMessage,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=create-fs-regex-check-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-regex-check-builder.js","sourceRoot":"","sources":["../../src/builders/create-fs-regex-check-builder.ts"],"names":[],"mappings":"AAmBA;;;;;;;;GAQG;AACH,SAAS,4BAA4B,CAAC,OAA4B;IAIhE,IAAI,OAAO,CAAC,aAAa,YAAY,MAAM,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;QACpE,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC3D,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtE,CAAC;IACD,MAAM,WAAW,GACf,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QACjE,CAAC,CAAC,OAAO,CAAC,WAAW;QACrB,CAAC,CAAC,SAAS,CAAC;IAChB,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACpD,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,yBAAyB,CACvC,EAAU,EACV,OAA4B;IAE5B,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,kBAAkB,EAAE,4CAA4C,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,OAAO,OAAO,CAAC,gBAAgB,KAAK,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjG,MAAM,IAAI,KAAK,CAAC,kBAAkB,EAAE,2CAA2C,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAC7E,OAAO,MAAM,CAAC,MAAM,CAA4B;QAC9C,IAAI,EAAE,gBAAgB;QACtB,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE;QACb,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACpD,aAAa;QACb,WAAW;QACX,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;KAC3C,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { FsRequireReadBeforeWriteGuardNode } from '@paraharness/core';
|
|
2
|
+
/**
|
|
3
|
+
* Compiles a passive `FsRequireReadBeforeWriteGuardNode` (`fs:require-read-before-write`) for `fs.requireReadBeforeWrite()`.
|
|
4
|
+
*
|
|
5
|
+
* Rejects mutating any file that already existed at `baseRef` unless `observedEffects`
|
|
6
|
+
* contains a prior read effect for that path in the active session.
|
|
7
|
+
*
|
|
8
|
+
* @returns {FsRequireReadBeforeWriteGuardNode} Deeply frozen `FsRequireReadBeforeWriteGuardNode` AST descriptor.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createFsRequireReadBeforeWriteGuardBuilder(): FsRequireReadBeforeWriteGuardNode;
|
|
11
|
+
//# sourceMappingURL=create-fs-require-read-before-write-guard-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-require-read-before-write-guard-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-fs-require-read-before-write-guard-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAE3E;;;;;;;GAOG;AACH,wBAAgB,0CAA0C,IAAI,iCAAiC,CAK9F"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compiles a passive `FsRequireReadBeforeWriteGuardNode` (`fs:require-read-before-write`) for `fs.requireReadBeforeWrite()`.
|
|
3
|
+
*
|
|
4
|
+
* Rejects mutating any file that already existed at `baseRef` unless `observedEffects`
|
|
5
|
+
* contains a prior read effect for that path in the active session.
|
|
6
|
+
*
|
|
7
|
+
* @returns {FsRequireReadBeforeWriteGuardNode} Deeply frozen `FsRequireReadBeforeWriteGuardNode` AST descriptor.
|
|
8
|
+
*/
|
|
9
|
+
export function createFsRequireReadBeforeWriteGuardBuilder() {
|
|
10
|
+
return Object.freeze({
|
|
11
|
+
type: 'fs:require-read-before-write',
|
|
12
|
+
id: 'fs:require-read-before-write',
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=create-fs-require-read-before-write-guard-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-require-read-before-write-guard-builder.js","sourceRoot":"","sources":["../../src/builders/create-fs-require-read-before-write-guard-builder.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,UAAU,0CAA0C;IACxD,OAAO,MAAM,CAAC,MAAM,CAAoC;QACtD,IAAI,EAAE,8BAA8B;QACpC,EAAE,EAAE,8BAA8B;KACnC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { FsPartitionMapNode, FsScopedWriteGuardNode } from '@paraharness/core';
|
|
2
|
+
/**
|
|
3
|
+
* Compiles a passive `FsScopedWriteGuardNode` (`fs:scoped-write`) for `fs.scopedWrite(partitionMap)`.
|
|
4
|
+
*
|
|
5
|
+
* Restricts write mutations strictly to the union of member `globs` for the actor's
|
|
6
|
+
* `activePartitions` in `partitionMap`.
|
|
7
|
+
*
|
|
8
|
+
* @template TPartition Literal union of partition identifiers in `partitionMap`.
|
|
9
|
+
*
|
|
10
|
+
* @param {FsPartitionMapNode<TPartition>} partitionMap - Filesystem partition map AST node.
|
|
11
|
+
*
|
|
12
|
+
* @returns {FsScopedWriteGuardNode} Deeply frozen `FsScopedWriteGuardNode` AST descriptor.
|
|
13
|
+
*/
|
|
14
|
+
export declare function createFsScopedWriteGuardBuilder<TPartition extends string = string>(partitionMap: FsPartitionMapNode<TPartition>): FsScopedWriteGuardNode;
|
|
15
|
+
//# sourceMappingURL=create-fs-scoped-write-guard-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-scoped-write-guard-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-fs-scoped-write-guard-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEpF;;;;;;;;;;;GAWG;AACH,wBAAgB,+BAA+B,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM,EAChF,YAAY,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAC3C,sBAAsB,CAMxB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compiles a passive `FsScopedWriteGuardNode` (`fs:scoped-write`) for `fs.scopedWrite(partitionMap)`.
|
|
3
|
+
*
|
|
4
|
+
* Restricts write mutations strictly to the union of member `globs` for the actor's
|
|
5
|
+
* `activePartitions` in `partitionMap`.
|
|
6
|
+
*
|
|
7
|
+
* @template TPartition Literal union of partition identifiers in `partitionMap`.
|
|
8
|
+
*
|
|
9
|
+
* @param {FsPartitionMapNode<TPartition>} partitionMap - Filesystem partition map AST node.
|
|
10
|
+
*
|
|
11
|
+
* @returns {FsScopedWriteGuardNode} Deeply frozen `FsScopedWriteGuardNode` AST descriptor.
|
|
12
|
+
*/
|
|
13
|
+
export function createFsScopedWriteGuardBuilder(partitionMap) {
|
|
14
|
+
return Object.freeze({
|
|
15
|
+
type: 'fs:scoped-write',
|
|
16
|
+
id: `fs:scoped-write:${partitionMap.topology.id}`,
|
|
17
|
+
partitionMap: partitionMap,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=create-fs-scoped-write-guard-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-scoped-write-guard-builder.js","sourceRoot":"","sources":["../../src/builders/create-fs-scoped-write-guard-builder.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,+BAA+B,CAC7C,YAA4C;IAE5C,OAAO,MAAM,CAAC,MAAM,CAAyB;QAC3C,IAAI,EAAE,iBAAiB;QACvB,EAAE,EAAE,mBAAmB,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE;QACjD,YAAY,EAAE,YAA0C;KACzD,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { FsSecretLiteralsGuardNode } from '@paraharness/core';
|
|
2
|
+
/**
|
|
3
|
+
* Compiles a passive `FsSecretLiteralsGuardNode` (`fs:secret-literals`) for `fs.secretLiterals(patterns)`.
|
|
4
|
+
*
|
|
5
|
+
* Scans `proposedContent` on pre-flight and post-flight file writes against built-in
|
|
6
|
+
* credential patterns and any custom regex `patterns`.
|
|
7
|
+
*
|
|
8
|
+
* @param {readonly string[]} [patterns] - Optional custom regular expression pattern strings.
|
|
9
|
+
*
|
|
10
|
+
* @returns {FsSecretLiteralsGuardNode} Deeply frozen `FsSecretLiteralsGuardNode` AST descriptor.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createFsSecretLiteralsGuardBuilder(patterns?: readonly string[]): FsSecretLiteralsGuardNode;
|
|
13
|
+
//# sourceMappingURL=create-fs-secret-literals-guard-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-secret-literals-guard-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-fs-secret-literals-guard-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;;;;;;GASG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAC3B,yBAAyB,CAU3B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compiles a passive `FsSecretLiteralsGuardNode` (`fs:secret-literals`) for `fs.secretLiterals(patterns)`.
|
|
3
|
+
*
|
|
4
|
+
* Scans `proposedContent` on pre-flight and post-flight file writes against built-in
|
|
5
|
+
* credential patterns and any custom regex `patterns`.
|
|
6
|
+
*
|
|
7
|
+
* @param {readonly string[]} [patterns] - Optional custom regular expression pattern strings.
|
|
8
|
+
*
|
|
9
|
+
* @returns {FsSecretLiteralsGuardNode} Deeply frozen `FsSecretLiteralsGuardNode` AST descriptor.
|
|
10
|
+
*/
|
|
11
|
+
export function createFsSecretLiteralsGuardBuilder(patterns) {
|
|
12
|
+
const frozenPatterns = patterns !== undefined ? Object.freeze([...patterns]) : undefined;
|
|
13
|
+
return Object.freeze({
|
|
14
|
+
type: 'fs:secret-literals',
|
|
15
|
+
id: frozenPatterns !== undefined && frozenPatterns.length > 0
|
|
16
|
+
? `fs:secret-literals:${frozenPatterns.join(',')}`
|
|
17
|
+
: 'fs:secret-literals',
|
|
18
|
+
patterns: frozenPatterns,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=create-fs-secret-literals-guard-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-secret-literals-guard-builder.js","sourceRoot":"","sources":["../../src/builders/create-fs-secret-literals-guard-builder.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,UAAU,kCAAkC,CAChD,QAA4B;IAE5B,MAAM,cAAc,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,OAAO,MAAM,CAAC,MAAM,CAA4B;QAC9C,IAAI,EAAE,oBAAoB;QAC1B,EAAE,EACA,cAAc,KAAK,SAAS,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;YACvD,CAAC,CAAC,sBAAsB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAClD,CAAC,CAAC,oBAAoB;QAC1B,QAAQ,EAAE,cAAc;KACzB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { FsTelemetryCollectorNode } from '@paraharness/core';
|
|
2
|
+
/**
|
|
3
|
+
* Compiles a passive `FsTelemetryCollectorNode` (`fs:telemetry`) for `fs.telemetry()`.
|
|
4
|
+
*
|
|
5
|
+
* Collects distinct `filesRead` and `filesMutated` arrays from `FsToolEffect` records
|
|
6
|
+
* into `UniversalStepTelemetry.custom`.
|
|
7
|
+
*
|
|
8
|
+
* @returns {FsTelemetryCollectorNode} Deeply frozen `FsTelemetryCollectorNode` AST descriptor.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createFsTelemetryBuilder(): FsTelemetryCollectorNode;
|
|
11
|
+
//# sourceMappingURL=create-fs-telemetry-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-telemetry-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-fs-telemetry-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAGlE;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,IAAI,wBAAwB,CAMnE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FsTelemetryMetricsSchema } from './internal/fs-tool-input.schema.js';
|
|
2
|
+
/**
|
|
3
|
+
* Compiles a passive `FsTelemetryCollectorNode` (`fs:telemetry`) for `fs.telemetry()`.
|
|
4
|
+
*
|
|
5
|
+
* Collects distinct `filesRead` and `filesMutated` arrays from `FsToolEffect` records
|
|
6
|
+
* into `UniversalStepTelemetry.custom`.
|
|
7
|
+
*
|
|
8
|
+
* @returns {FsTelemetryCollectorNode} Deeply frozen `FsTelemetryCollectorNode` AST descriptor.
|
|
9
|
+
*/
|
|
10
|
+
export function createFsTelemetryBuilder() {
|
|
11
|
+
return Object.freeze({
|
|
12
|
+
type: 'fs:telemetry',
|
|
13
|
+
id: 'fs:telemetry',
|
|
14
|
+
schema: FsTelemetryMetricsSchema,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=create-fs-telemetry-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-telemetry-builder.js","sourceRoot":"","sources":["../../src/builders/create-fs-telemetry-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,MAAM,CAAC,MAAM,CAA2B;QAC7C,IAAI,EAAE,cAAc;QACpB,EAAE,EAAE,cAAc;QAClB,MAAM,EAAE,wBAAwB;KACjC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FsTextSourceNode } from '@paraharness/core';
|
|
2
|
+
/**
|
|
3
|
+
* Compiles a passive `FsTextSourceNode` (`fs:text-source`) for `fs.text(filePath)`.
|
|
4
|
+
*
|
|
5
|
+
* Resolves `filePath` against the immutable host repository root during control-plane
|
|
6
|
+
* and prefix compilation, or against `ResolutionContext.scopeHandle` when computing
|
|
7
|
+
* in-run grounding diffs.
|
|
8
|
+
*
|
|
9
|
+
* @param {string} filePath - Repository-relative path to the UTF-8 text file.
|
|
10
|
+
*
|
|
11
|
+
* @returns {FsTextSourceNode} Deeply frozen `FsTextSourceNode` AST descriptor.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createFsTextSourceBuilder(filePath: string): FsTextSourceNode;
|
|
14
|
+
//# sourceMappingURL=create-fs-text-source-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-text-source-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-fs-text-source-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAU5E"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compiles a passive `FsTextSourceNode` (`fs:text-source`) for `fs.text(filePath)`.
|
|
3
|
+
*
|
|
4
|
+
* Resolves `filePath` against the immutable host repository root during control-plane
|
|
5
|
+
* and prefix compilation, or against `ResolutionContext.scopeHandle` when computing
|
|
6
|
+
* in-run grounding diffs.
|
|
7
|
+
*
|
|
8
|
+
* @param {string} filePath - Repository-relative path to the UTF-8 text file.
|
|
9
|
+
*
|
|
10
|
+
* @returns {FsTextSourceNode} Deeply frozen `FsTextSourceNode` AST descriptor.
|
|
11
|
+
*/
|
|
12
|
+
export function createFsTextSourceBuilder(filePath) {
|
|
13
|
+
if (typeof filePath !== 'string' || filePath.trim().length === 0) {
|
|
14
|
+
throw new Error('fs.text requires a non-empty filePath string.');
|
|
15
|
+
}
|
|
16
|
+
const normalizedPath = filePath.trim();
|
|
17
|
+
return Object.freeze({
|
|
18
|
+
type: 'fs:text-source',
|
|
19
|
+
id: `fs:text-source:${normalizedPath}`,
|
|
20
|
+
path: normalizedPath,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=create-fs-text-source-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-text-source-builder.js","sourceRoot":"","sources":["../../src/builders/create-fs-text-source-builder.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAgB;IACxD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvC,OAAO,MAAM,CAAC,MAAM,CAAmB;QACrC,IAAI,EAAE,gBAAgB;QACtB,EAAE,EAAE,kBAAkB,cAAc,EAAE;QACtC,IAAI,EAAE,cAAc;KACrB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { FsWriteGuardNode } from '@paraharness/core';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration options for `fs.writeGuard(options)`.
|
|
4
|
+
*
|
|
5
|
+
* Defines glob patterns that deny write mutations (`denyGlobs`), optional exemptions
|
|
6
|
+
* (`allowGlobs`), and optional base-ref existence filtering (`onlyExistingAtBaseRef`).
|
|
7
|
+
*/
|
|
8
|
+
export interface FsWriteGuardOptions {
|
|
9
|
+
/** Glob patterns denying write mutations. */
|
|
10
|
+
readonly denyGlobs: readonly string[];
|
|
11
|
+
/** Optional glob patterns exempted from `denyGlobs`. */
|
|
12
|
+
readonly allowGlobs?: readonly string[];
|
|
13
|
+
/** When `true`, blocks only paths that already existed at `handle.baseRef`. */
|
|
14
|
+
readonly onlyExistingAtBaseRef?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Compiles a passive `FsWriteGuardNode` (`fs:write-guard`) for `fs.writeGuard(options)`.
|
|
18
|
+
*
|
|
19
|
+
* Rejects write effects matching `options.denyGlobs` unless exempted by `options.allowGlobs`
|
|
20
|
+
* or an active `LeaseDelta`, optionally scoping denials to files existing at `baseRef`.
|
|
21
|
+
*
|
|
22
|
+
* @param {FsWriteGuardOptions} options - Write guard deny/allow glob and baseRef options.
|
|
23
|
+
*
|
|
24
|
+
* @returns {FsWriteGuardNode} Deeply frozen `FsWriteGuardNode` AST descriptor.
|
|
25
|
+
*
|
|
26
|
+
* @throws {Error} If `options.denyGlobs` is empty.
|
|
27
|
+
*/
|
|
28
|
+
export declare function createFsWriteGuardBuilder(options: FsWriteGuardOptions): FsWriteGuardNode;
|
|
29
|
+
//# sourceMappingURL=create-fs-write-guard-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-write-guard-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-fs-write-guard-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,wDAAwD;IACxD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,+EAA+E;IAC/E,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC1C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,mBAAmB,GAAG,gBAAgB,CAgBxF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compiles a passive `FsWriteGuardNode` (`fs:write-guard`) for `fs.writeGuard(options)`.
|
|
3
|
+
*
|
|
4
|
+
* Rejects write effects matching `options.denyGlobs` unless exempted by `options.allowGlobs`
|
|
5
|
+
* or an active `LeaseDelta`, optionally scoping denials to files existing at `baseRef`.
|
|
6
|
+
*
|
|
7
|
+
* @param {FsWriteGuardOptions} options - Write guard deny/allow glob and baseRef options.
|
|
8
|
+
*
|
|
9
|
+
* @returns {FsWriteGuardNode} Deeply frozen `FsWriteGuardNode` AST descriptor.
|
|
10
|
+
*
|
|
11
|
+
* @throws {Error} If `options.denyGlobs` is empty.
|
|
12
|
+
*/
|
|
13
|
+
export function createFsWriteGuardBuilder(options) {
|
|
14
|
+
if (!Array.isArray(options.denyGlobs) || options.denyGlobs.length === 0) {
|
|
15
|
+
throw new Error('fs.writeGuard requires a non-empty denyGlobs array.');
|
|
16
|
+
}
|
|
17
|
+
const denyGlobs = Object.freeze([...options.denyGlobs]);
|
|
18
|
+
const allowGlobs = options.allowGlobs !== undefined ? Object.freeze([...options.allowGlobs]) : undefined;
|
|
19
|
+
const allowKey = allowGlobs !== undefined ? allowGlobs.join(',') : '';
|
|
20
|
+
const existingKey = String(options.onlyExistingAtBaseRef === true);
|
|
21
|
+
return Object.freeze({
|
|
22
|
+
type: 'fs:write-guard',
|
|
23
|
+
id: `fs:write-guard:deny=${denyGlobs.join(',')}|allow=${allowKey}|existing=${existingKey}`,
|
|
24
|
+
denyGlobs,
|
|
25
|
+
allowGlobs,
|
|
26
|
+
onlyExistingAtBaseRef: options.onlyExistingAtBaseRef,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=create-fs-write-guard-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-fs-write-guard-builder.js","sourceRoot":"","sources":["../../src/builders/create-fs-write-guard-builder.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAA4B;IACpE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACxD,MAAM,UAAU,GACd,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,MAAM,QAAQ,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,KAAK,IAAI,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC,MAAM,CAAmB;QACrC,IAAI,EAAE,gBAAgB;QACtB,EAAE,EAAE,uBAAuB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,QAAQ,aAAa,WAAW,EAAE;QAC1F,SAAS;QACT,UAAU;QACV,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;KACrD,CAAC,CAAC;AACL,CAAC"}
|