usesteady 0.1.0-alpha.59 → 0.1.0-alpha.60
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/CHANGELOG.md +122 -0
- package/dist/src/cursor/adapters/inprocess-adapter.d.ts +16 -0
- package/dist/src/cursor/adapters/inprocess-adapter.d.ts.map +1 -1
- package/dist/src/cursor/adapters/inprocess-adapter.js +56 -1
- package/dist/src/cursor/adapters/inprocess-adapter.js.map +1 -1
- package/dist/src/input/cli-error.d.ts +1 -1
- package/dist/src/input/cli-error.d.ts.map +1 -1
- package/dist/src/input/feasibility-validator.d.ts.map +1 -1
- package/dist/src/input/feasibility-validator.js +133 -7
- package/dist/src/input/feasibility-validator.js.map +1 -1
- package/dist/src/safety/filename-safety.d.ts +92 -1
- package/dist/src/safety/filename-safety.d.ts.map +1 -1
- package/dist/src/safety/filename-safety.js +170 -1
- package/dist/src/safety/filename-safety.js.map +1 -1
- package/dist/src/shell/cli/execution-summary.d.ts +23 -0
- package/dist/src/shell/cli/execution-summary.d.ts.map +1 -1
- package/dist/src/shell/cli/execution-summary.js +39 -1
- package/dist/src/shell/cli/execution-summary.js.map +1 -1
- package/dist/src/shell/cli/main.d.ts.map +1 -1
- package/dist/src/shell/cli/main.js +16 -0
- package/dist/src/shell/cli/main.js.map +1 -1
- package/dist/src/shell/cli/use-steady.d.ts +28 -0
- package/dist/src/shell/cli/use-steady.d.ts.map +1 -1
- package/dist/src/shell/cli/use-steady.js +72 -0
- package/dist/src/shell/cli/use-steady.js.map +1 -1
- package/dist/src/workflow/coordinator.d.ts.map +1 -1
- package/dist/src/workflow/coordinator.js +14 -2
- package/dist/src/workflow/coordinator.js.map +1 -1
- package/dist/src/workflow/types.d.ts +17 -0
- package/dist/src/workflow/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/server-admin.d.ts +0 -11
- package/dist/server-admin.d.ts.map +0 -1
- package/dist/server-admin.js +0 -256
- package/dist/server-admin.js.map +0 -1
- package/dist/src/analysis/friction/aggregator.d.ts +0 -30
- package/dist/src/analysis/friction/aggregator.d.ts.map +0 -1
- package/dist/src/analysis/friction/aggregator.js +0 -90
- package/dist/src/analysis/friction/aggregator.js.map +0 -1
- package/dist/src/analysis/friction/classify.d.ts +0 -21
- package/dist/src/analysis/friction/classify.d.ts.map +0 -1
- package/dist/src/analysis/friction/classify.js +0 -102
- package/dist/src/analysis/friction/classify.js.map +0 -1
- package/dist/src/analysis/friction/cli.d.ts +0 -19
- package/dist/src/analysis/friction/cli.d.ts.map +0 -1
- package/dist/src/analysis/friction/cli.js +0 -153
- package/dist/src/analysis/friction/cli.js.map +0 -1
- package/dist/src/analysis/friction/clusterer.d.ts +0 -9
- package/dist/src/analysis/friction/clusterer.d.ts.map +0 -1
- package/dist/src/analysis/friction/clusterer.js +0 -62
- package/dist/src/analysis/friction/clusterer.js.map +0 -1
- package/dist/src/analysis/friction/escalation.d.ts +0 -34
- package/dist/src/analysis/friction/escalation.d.ts.map +0 -1
- package/dist/src/analysis/friction/escalation.js +0 -122
- package/dist/src/analysis/friction/escalation.js.map +0 -1
- package/dist/src/analysis/friction/heatmap.d.ts +0 -9
- package/dist/src/analysis/friction/heatmap.d.ts.map +0 -1
- package/dist/src/analysis/friction/heatmap.js +0 -44
- package/dist/src/analysis/friction/heatmap.js.map +0 -1
- package/dist/src/analysis/friction/index.d.ts +0 -19
- package/dist/src/analysis/friction/index.d.ts.map +0 -1
- package/dist/src/analysis/friction/index.js +0 -16
- package/dist/src/analysis/friction/index.js.map +0 -1
- package/dist/src/analysis/friction/negative-signal.d.ts +0 -20
- package/dist/src/analysis/friction/negative-signal.d.ts.map +0 -1
- package/dist/src/analysis/friction/negative-signal.js +0 -53
- package/dist/src/analysis/friction/negative-signal.js.map +0 -1
- package/dist/src/analysis/friction/types.d.ts +0 -85
- package/dist/src/analysis/friction/types.d.ts.map +0 -1
- package/dist/src/analysis/friction/types.js +0 -21
- package/dist/src/analysis/friction/types.js.map +0 -1
- package/dist/src/gauntlet/gauntlet-registry.d.ts +0 -4
- package/dist/src/gauntlet/gauntlet-registry.d.ts.map +0 -1
- package/dist/src/gauntlet/gauntlet-registry.js +0 -17
- package/dist/src/gauntlet/gauntlet-registry.js.map +0 -1
- package/dist/src/gauntlet/gauntlet-report.d.ts +0 -10
- package/dist/src/gauntlet/gauntlet-report.d.ts.map +0 -1
- package/dist/src/gauntlet/gauntlet-report.js +0 -86
- package/dist/src/gauntlet/gauntlet-report.js.map +0 -1
- package/dist/src/gauntlet/gauntlet-runner.d.ts +0 -19
- package/dist/src/gauntlet/gauntlet-runner.d.ts.map +0 -1
- package/dist/src/gauntlet/gauntlet-runner.js +0 -184
- package/dist/src/gauntlet/gauntlet-runner.js.map +0 -1
- package/dist/src/gauntlet/gauntlet-types.d.ts +0 -36
- package/dist/src/gauntlet/gauntlet-types.d.ts.map +0 -1
- package/dist/src/gauntlet/gauntlet-types.js +0 -2
- package/dist/src/gauntlet/gauntlet-types.js.map +0 -1
- package/dist/src/gauntlet/test-cases/adversarial.d.ts +0 -3
- package/dist/src/gauntlet/test-cases/adversarial.d.ts.map +0 -1
- package/dist/src/gauntlet/test-cases/adversarial.js +0 -43
- package/dist/src/gauntlet/test-cases/adversarial.js.map +0 -1
- package/dist/src/gauntlet/test-cases/authority.d.ts +0 -3
- package/dist/src/gauntlet/test-cases/authority.d.ts.map +0 -1
- package/dist/src/gauntlet/test-cases/authority.js +0 -43
- package/dist/src/gauntlet/test-cases/authority.js.map +0 -1
- package/dist/src/gauntlet/test-cases/deterministic.d.ts +0 -3
- package/dist/src/gauntlet/test-cases/deterministic.d.ts.map +0 -1
- package/dist/src/gauntlet/test-cases/deterministic.js +0 -27
- package/dist/src/gauntlet/test-cases/deterministic.js.map +0 -1
- package/dist/src/gauntlet/test-cases/temporal.d.ts +0 -3
- package/dist/src/gauntlet/test-cases/temporal.d.ts.map +0 -1
- package/dist/src/gauntlet/test-cases/temporal.js +0 -35
- package/dist/src/gauntlet/test-cases/temporal.js.map +0 -1
- package/dist/src/observe/drl-ledger-redaction.d.ts +0 -2
- package/dist/src/observe/drl-ledger-redaction.d.ts.map +0 -1
- package/dist/src/observe/drl-ledger-redaction.js +0 -21
- package/dist/src/observe/drl-ledger-redaction.js.map +0 -1
- package/dist/src/observe/drl-ledger-types.d.ts +0 -14
- package/dist/src/observe/drl-ledger-types.d.ts.map +0 -1
- package/dist/src/observe/drl-ledger-types.js +0 -2
- package/dist/src/observe/drl-ledger-types.js.map +0 -1
- package/dist/src/trace/builder.d.ts +0 -69
- package/dist/src/trace/builder.d.ts.map +0 -1
- package/dist/src/trace/builder.js +0 -131
- package/dist/src/trace/builder.js.map +0 -1
- package/dist/src/trace/cli.d.ts +0 -31
- package/dist/src/trace/cli.d.ts.map +0 -1
- package/dist/src/trace/cli.js +0 -84
- package/dist/src/trace/cli.js.map +0 -1
- package/dist/src/trace/from-intake.d.ts +0 -31
- package/dist/src/trace/from-intake.d.ts.map +0 -1
- package/dist/src/trace/from-intake.js +0 -132
- package/dist/src/trace/from-intake.js.map +0 -1
- package/dist/src/trace/index.d.ts +0 -19
- package/dist/src/trace/index.d.ts.map +0 -1
- package/dist/src/trace/index.js +0 -17
- package/dist/src/trace/index.js.map +0 -1
- package/dist/src/trace/types.d.ts +0 -160
- package/dist/src/trace/types.d.ts.map +0 -1
- package/dist/src/trace/types.js +0 -48
- package/dist/src/trace/types.js.map +0 -1
- package/dist/src/trace/uncertainty.d.ts +0 -29
- package/dist/src/trace/uncertainty.d.ts.map +0 -1
- package/dist/src/trace/uncertainty.js +0 -106
- package/dist/src/trace/uncertainty.js.map +0 -1
- package/dist/src/trace/why-render.d.ts +0 -28
- package/dist/src/trace/why-render.d.ts.map +0 -1
- package/dist/src/trace/why-render.js +0 -100
- package/dist/src/trace/why-render.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,127 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.0-alpha.60 - Protected paths + filename hygiene + OCD warning truthfulness
|
|
4
|
+
|
|
5
|
+
**Released:** May 2026
|
|
6
|
+
**npm tag:** `alpha` - `npm install -g usesteady@alpha`
|
|
7
|
+
|
|
8
|
+
Post-alpha.59 delta. Closes 4 accepted frictions across 2 trust surfaces:
|
|
9
|
+
filesystem location safety (Cluster B Iter 4: #60, #67, #68) and
|
|
10
|
+
execution truthfulness (#42). One new public `CliErrorCode`
|
|
11
|
+
(`prohibited_path`); no new approval semantics, no new operation types,
|
|
12
|
+
no exit-code change, OCD remains non-blocking.
|
|
13
|
+
|
|
14
|
+
Included PRs: #318 (Cluster B Iter 4) and #319 (#42 OCD warning
|
|
15
|
+
alignment). No other deltas since alpha.59 (`4cbac6c`).
|
|
16
|
+
|
|
17
|
+
### Cluster B Iteration 4 - Protected Paths Registry + whitespace-bounded filenames
|
|
18
|
+
|
|
19
|
+
Design rationale: [`docs/adr/ADR-cluster-b-iteration-4-protected-paths.md`](./docs/adr/ADR-cluster-b-iteration-4-protected-paths.md).
|
|
20
|
+
|
|
21
|
+
Closes three accepted frictions in one coherent feature, following
|
|
22
|
+
the flat pure-function style of Iter 2 / Iter 3 / Iter 3.5 / Iter 3.6.
|
|
23
|
+
|
|
24
|
+
- **shortgigs/usesteady-public#60** (`create_dir` into `.git/hooks`):
|
|
25
|
+
refused at the validate stage with the new public `prohibited_path`
|
|
26
|
+
code; defense-in-depth re-check at the cursor adapter mirrors the
|
|
27
|
+
S2/#36 posture (every fs-op site).
|
|
28
|
+
- **shortgigs/usesteady-public#67** (silent `delete` of `.git/HEAD`):
|
|
29
|
+
same refusal class, applied symmetrically to delete / rename
|
|
30
|
+
(both from and to) / append / prepend / replace. Unlike filename-
|
|
31
|
+
hygiene checks (Iter 2/3), the protected-path check runs on
|
|
32
|
+
`delete` -- the friction shape is symmetric.
|
|
33
|
+
- **shortgigs/usesteady-public#68** (leading/trailing whitespace in
|
|
34
|
+
filenames): refused at validate/executor; folds under the existing
|
|
35
|
+
`invalid_filename_chars` public code (internal discriminant
|
|
36
|
+
`invalid_filename_whitespace`). Per-segment check catches
|
|
37
|
+
intermediate-directory whitespace too, not just basenames.
|
|
38
|
+
|
|
39
|
+
#### Authority surface
|
|
40
|
+
|
|
41
|
+
- One new public `CliErrorCode`: `prohibited_path`. Strongly justified
|
|
42
|
+
(distinct semantic from `invalid_filename_chars`: path is well-
|
|
43
|
+
formed and inside the workspace; the LOCATION is off-limits;
|
|
44
|
+
remediation is "use git directly," not "rename").
|
|
45
|
+
- No new operation types, no new approval semantics, no new
|
|
46
|
+
approval-bypass affordances.
|
|
47
|
+
- V1 protected set: any segment exactly equal to `.git` (case-
|
|
48
|
+
insensitive). Regular workspace files like `.gitignore`,
|
|
49
|
+
`.gitattributes`, and `.gitkeep` are NOT protected.
|
|
50
|
+
|
|
51
|
+
#### Invariants preserved
|
|
52
|
+
|
|
53
|
+
- All Iter 1-3.6 invariants hold (1097 passing tests across
|
|
54
|
+
`tests/input`, `tests/safety`, `tests/cursor`).
|
|
55
|
+
- Ordering: codepoint check -> reserved-name check -> whitespace
|
|
56
|
+
check -> canonicalization check -> protected-path check, so the
|
|
57
|
+
most actionable diagnostic wins (e.g. `"CON "` surfaces as
|
|
58
|
+
reserved-name with rename suggestion, not as whitespace).
|
|
59
|
+
- Pure functions, no fs / time / global state. Same input, same
|
|
60
|
+
output on every host.
|
|
61
|
+
|
|
62
|
+
#### Out of scope
|
|
63
|
+
|
|
64
|
+
- Other VCS internals (`.svn/`, `.hg/`), secrets directories
|
|
65
|
+
(`.env*`), `node_modules/`. No friction signal yet -- extension
|
|
66
|
+
requires a real reporter case (AGENTS.md "no new authority without
|
|
67
|
+
a current user flow").
|
|
68
|
+
- Protected-path receive-side defense-in-depth at the replace gate.
|
|
69
|
+
The validator catches it pre-receive; the adapter's `receive()`
|
|
70
|
+
path defers to that (consistent with how filename-safety is wired).
|
|
71
|
+
|
|
72
|
+
#### Friction -> fix mapping
|
|
73
|
+
|
|
74
|
+
| Friction (usesteady-public) | Fix surface |
|
|
75
|
+
|----------------------------------------------|---------------------------------------------------|
|
|
76
|
+
| #60 - create_dir into .git/hooks | `validateProtectedPath` + per-op wiring |
|
|
77
|
+
| #67 - silent delete of .git/HEAD | `validateProtectedPath` covers delete (new scope) |
|
|
78
|
+
| #68 - leading/trailing whitespace in name | `validateFilenameSafety` whitespace extension |
|
|
79
|
+
|
|
80
|
+
### Issue #42 - OCD warning vs success reporting alignment
|
|
81
|
+
|
|
82
|
+
Closes shortgigs/usesteady-public#42. The OCD evaluator already
|
|
83
|
+
surfaces the conflict frame as `WARNING - OCD conflict detected
|
|
84
|
+
(non-blocking)` with "System will execute on approval." text (S4
|
|
85
|
+
fix, alpha.5x). The remaining trust gap was the END-OF-RUN summary:
|
|
86
|
+
a run that printed a WARNING frame and then executed under `--yes`
|
|
87
|
+
announced "Completed successfully" with no acknowledgement that a
|
|
88
|
+
warning had been accepted.
|
|
89
|
+
|
|
90
|
+
#### Change
|
|
91
|
+
|
|
92
|
+
- `WorkflowTask` gains an optional `conflictsAccepted?: number`
|
|
93
|
+
counter, incremented inside `acceptWorkflowConflict` whenever the
|
|
94
|
+
user (or `--yes`) accepts an OCD conflict warning for that task.
|
|
95
|
+
- `ExecutionSummary` gains a required `warnings_accepted: number`
|
|
96
|
+
field, summed only across tasks that actually ran (`outcome ===
|
|
97
|
+
"accepted"`).
|
|
98
|
+
- `renderExecutionSummaryLines` reports `! Completed with N
|
|
99
|
+
warning(s) accepted` instead of `Completed successfully` when
|
|
100
|
+
`summary.success && summary.warnings_accepted > 0`. Plural/singular
|
|
101
|
+
agreement preserved. Failure / neutral forms unchanged.
|
|
102
|
+
- `--output json` surface gains `warnings_accepted: <number>` so
|
|
103
|
+
machine consumers (CI scripts, agent integrations) can surface the
|
|
104
|
+
same trust signal the human banner now shows. Strictly additive --
|
|
105
|
+
pre-#42 consumers reading `success` / `error` / `failed_at_step` /
|
|
106
|
+
`executed_steps` / `total_steps` are unaffected. The field is
|
|
107
|
+
always emitted on post-#42 runs (zero when no warning was
|
|
108
|
+
accepted); pre-#42 result-file fixtures are tolerated via guarded
|
|
109
|
+
projection (field omitted when the upstream result does not carry
|
|
110
|
+
it -- no invented data).
|
|
111
|
+
|
|
112
|
+
#### Invariants preserved
|
|
113
|
+
|
|
114
|
+
- OCD evaluator behavior unchanged (still non-blocking).
|
|
115
|
+
- Conflict-frame text unchanged.
|
|
116
|
+
- Exit code unchanged (0 on success, warnings or not).
|
|
117
|
+
- JSON `success` key unchanged (the run still succeeded).
|
|
118
|
+
- Public CliErrorCode surface unchanged.
|
|
119
|
+
- Pre-#42 runs with zero warnings still see the verbatim
|
|
120
|
+
`Completed successfully` banner (regression-guarded).
|
|
121
|
+
- Pre-#42 result-file fixtures (without `warnings_accepted`) still
|
|
122
|
+
produce a valid `--output json` payload -- the field is simply
|
|
123
|
+
absent rather than invented.
|
|
124
|
+
|
|
3
125
|
## 0.1.0-alpha.59 - Bundled stabilization (E2E baseline, Cluster B Iter 2+3+3.5+3.6, K2 cleanup, K5 run_command replay, CLI well-formedness guardrail)
|
|
4
126
|
|
|
5
127
|
**Released:** May 2026
|
|
@@ -103,6 +103,22 @@ export declare class CursorInProcessAdapter implements CursorEditorPlugin, FsPlu
|
|
|
103
103
|
* the caller should be able to operate on pre-existing names.
|
|
104
104
|
*/
|
|
105
105
|
private filenameSafetyRefusal;
|
|
106
|
+
/**
|
|
107
|
+
* Cluster B Iteration 4 / usesteady-public#60, #67 -- defense-in-depth
|
|
108
|
+
* protected-path re-check at the fs-op layer.
|
|
109
|
+
*
|
|
110
|
+
* The FeasibilityValidator is the primary enforcement. This per-fs-op
|
|
111
|
+
* re-check is the secondary net for callers that bypass the validator
|
|
112
|
+
* (custom adapter consumers, internal API). Mirrors
|
|
113
|
+
* `filenameSafetyRefusal` and `containmentRefusal`.
|
|
114
|
+
*
|
|
115
|
+
* Applied to every path-bearing fs-op (create_dir, write_file,
|
|
116
|
+
* append_file, prepend_file, rename {from, to}, delete_file). The
|
|
117
|
+
* scope is wider than `filenameSafetyRefusal` because the friction
|
|
118
|
+
* shape is symmetric: deleting `.git/HEAD` is exactly as harmful as
|
|
119
|
+
* creating it.
|
|
120
|
+
*/
|
|
121
|
+
private protectedPathRefusal;
|
|
106
122
|
executeFsOp(op: FsChange): Promise<{
|
|
107
123
|
readonly kind: "accepted" | "failed";
|
|
108
124
|
readonly detail?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inprocess-adapter.d.ts","sourceRoot":"","sources":["../../../../src/cursor/adapters/inprocess-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;
|
|
1
|
+
{"version":3,"file":"inprocess-adapter.d.ts","sourceRoot":"","sources":["../../../../src/cursor/adapters/inprocess-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAiBH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAsB,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EAEf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAsB,yBAAyB,CAAC;AAmElF,qBAAa,sBAAuB,YAAW,kBAAkB,EAAE,QAAQ;IAM7D,OAAO,CAAC,QAAQ,CAAC,aAAa;IAL1C;;;;OAIG;gBAC0B,aAAa,EAAE,MAAM;IAE5C,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC;IAqUtE;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,qBAAqB;IAkC7B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,oBAAoB;IAiBtB,WAAW,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC;QACvC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;QACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAC;IAoLF;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,iBAAiB;IAyCzB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,kBAAkB;CAqB3B"}
|
|
@@ -57,7 +57,7 @@ import { spawnSync } from "node:child_process";
|
|
|
57
57
|
import { join, isAbsolute, dirname } from "node:path";
|
|
58
58
|
import { matchesGlob } from "../glob-matcher.js";
|
|
59
59
|
import { canonicalizeForSafety, CanonicalizationError } from "../../safety/canonicalize.js";
|
|
60
|
-
import { validateFilenameSafety, validateReplacementTextSafety, classifyNormalizationDivergence, describeNormalizationDivergence, } from "../../safety/filename-safety.js";
|
|
60
|
+
import { validateFilenameSafety, validateReplacementTextSafety, validateProtectedPath, classifyNormalizationDivergence, describeNormalizationDivergence, } from "../../safety/filename-safety.js";
|
|
61
61
|
import { pathEscapesWorkspace, OUTSIDE_WORKSPACE_MSG } from "../../input/feasibility-validator.js";
|
|
62
62
|
// ─── Cluster B helpers (canonicalization-aware comparison) ────────────────────
|
|
63
63
|
//
|
|
@@ -503,6 +503,31 @@ export class CursorInProcessAdapter {
|
|
|
503
503
|
detail: `Refusing to create unsafe filename (${fieldName}: ${rawPath}). ${result.detail}`,
|
|
504
504
|
};
|
|
505
505
|
}
|
|
506
|
+
/**
|
|
507
|
+
* Cluster B Iteration 4 / usesteady-public#60, #67 -- defense-in-depth
|
|
508
|
+
* protected-path re-check at the fs-op layer.
|
|
509
|
+
*
|
|
510
|
+
* The FeasibilityValidator is the primary enforcement. This per-fs-op
|
|
511
|
+
* re-check is the secondary net for callers that bypass the validator
|
|
512
|
+
* (custom adapter consumers, internal API). Mirrors
|
|
513
|
+
* `filenameSafetyRefusal` and `containmentRefusal`.
|
|
514
|
+
*
|
|
515
|
+
* Applied to every path-bearing fs-op (create_dir, write_file,
|
|
516
|
+
* append_file, prepend_file, rename {from, to}, delete_file). The
|
|
517
|
+
* scope is wider than `filenameSafetyRefusal` because the friction
|
|
518
|
+
* shape is symmetric: deleting `.git/HEAD` is exactly as harmful as
|
|
519
|
+
* creating it.
|
|
520
|
+
*/
|
|
521
|
+
protectedPathRefusal(rawPath, fieldName) {
|
|
522
|
+
const result = validateProtectedPath(rawPath);
|
|
523
|
+
if (result.ok)
|
|
524
|
+
return null;
|
|
525
|
+
return {
|
|
526
|
+
kind: "failed",
|
|
527
|
+
errorCode: "prohibited_path",
|
|
528
|
+
detail: `Refusing operation on protected path (${fieldName}: ${rawPath}). ${result.detail}`,
|
|
529
|
+
};
|
|
530
|
+
}
|
|
506
531
|
async executeFsOp(op) {
|
|
507
532
|
try {
|
|
508
533
|
switch (op.operationType) {
|
|
@@ -513,6 +538,9 @@ export class CursorInProcessAdapter {
|
|
|
513
538
|
const filenameRefused = this.filenameSafetyRefusal(op.dirPath, "path");
|
|
514
539
|
if (filenameRefused !== null)
|
|
515
540
|
return filenameRefused;
|
|
541
|
+
const protectedRefused = this.protectedPathRefusal(op.dirPath, "path");
|
|
542
|
+
if (protectedRefused !== null)
|
|
543
|
+
return protectedRefused;
|
|
516
544
|
const abs = isAbsolute(op.dirPath) ? op.dirPath : join(this.workspaceRoot, op.dirPath);
|
|
517
545
|
mkdirSync(abs, { recursive: true });
|
|
518
546
|
return { kind: "accepted" };
|
|
@@ -524,6 +552,9 @@ export class CursorInProcessAdapter {
|
|
|
524
552
|
const filenameRefused = this.filenameSafetyRefusal(op.filePath, "file");
|
|
525
553
|
if (filenameRefused !== null)
|
|
526
554
|
return filenameRefused;
|
|
555
|
+
const protectedRefused = this.protectedPathRefusal(op.filePath, "file");
|
|
556
|
+
if (protectedRefused !== null)
|
|
557
|
+
return protectedRefused;
|
|
527
558
|
const abs = isAbsolute(op.filePath) ? op.filePath : join(this.workspaceRoot, op.filePath);
|
|
528
559
|
if (this.isSymlinkPath(abs)) {
|
|
529
560
|
return {
|
|
@@ -547,6 +578,9 @@ export class CursorInProcessAdapter {
|
|
|
547
578
|
const refused = this.containmentRefusal(op.filePath, "file");
|
|
548
579
|
if (refused !== null)
|
|
549
580
|
return refused;
|
|
581
|
+
const protectedRefused = this.protectedPathRefusal(op.filePath, "file");
|
|
582
|
+
if (protectedRefused !== null)
|
|
583
|
+
return protectedRefused;
|
|
550
584
|
const abs = isAbsolute(op.filePath) ? op.filePath : join(this.workspaceRoot, op.filePath);
|
|
551
585
|
if (this.isSymlinkPath(abs)) {
|
|
552
586
|
return { kind: "failed", detail: `Refusing to append via symlink path: ${abs}` };
|
|
@@ -566,6 +600,9 @@ export class CursorInProcessAdapter {
|
|
|
566
600
|
const refused = this.containmentRefusal(op.filePath, "file");
|
|
567
601
|
if (refused !== null)
|
|
568
602
|
return refused;
|
|
603
|
+
const protectedRefused = this.protectedPathRefusal(op.filePath, "file");
|
|
604
|
+
if (protectedRefused !== null)
|
|
605
|
+
return protectedRefused;
|
|
569
606
|
const abs = isAbsolute(op.filePath) ? op.filePath : join(this.workspaceRoot, op.filePath);
|
|
570
607
|
if (this.isSymlinkPath(abs)) {
|
|
571
608
|
return { kind: "failed", detail: `Refusing to prepend via symlink path: ${abs}` };
|
|
@@ -594,6 +631,16 @@ export class CursorInProcessAdapter {
|
|
|
594
631
|
const filenameRefusedTo = this.filenameSafetyRefusal(op.newPath, "to");
|
|
595
632
|
if (filenameRefusedTo !== null)
|
|
596
633
|
return filenameRefusedTo;
|
|
634
|
+
// Cluster B Iter 4: protected-path applies SYMMETRICALLY --
|
|
635
|
+
// renaming a workspace file INTO `.git/HEAD` corrupts git,
|
|
636
|
+
// and renaming `.git/HEAD` OUT of `.git/` also corrupts git
|
|
637
|
+
// (the source object becomes orphaned).
|
|
638
|
+
const protectedRefusedFrom = this.protectedPathRefusal(op.filePath, "from");
|
|
639
|
+
if (protectedRefusedFrom !== null)
|
|
640
|
+
return protectedRefusedFrom;
|
|
641
|
+
const protectedRefusedTo = this.protectedPathRefusal(op.newPath, "to");
|
|
642
|
+
if (protectedRefusedTo !== null)
|
|
643
|
+
return protectedRefusedTo;
|
|
597
644
|
const absOld = isAbsolute(op.filePath) ? op.filePath : join(this.workspaceRoot, op.filePath);
|
|
598
645
|
const absNew = isAbsolute(op.newPath) ? op.newPath : join(this.workspaceRoot, op.newPath);
|
|
599
646
|
if (this.isSymlinkPath(absOld) || this.isSymlinkPath(absNew)) {
|
|
@@ -622,6 +669,14 @@ export class CursorInProcessAdapter {
|
|
|
622
669
|
const refused = this.containmentRefusal(op.filePath, "file");
|
|
623
670
|
if (refused !== null)
|
|
624
671
|
return refused;
|
|
672
|
+
// Cluster B Iter 4 / public#67 -- defense-in-depth refusal of
|
|
673
|
+
// `delete .git/HEAD` (and other git internals). Unlike the
|
|
674
|
+
// filename-safety check (which skips delete so users can clean
|
|
675
|
+
// up files with bad codepoints), protected-path check DOES run
|
|
676
|
+
// on delete because the friction shape is symmetric.
|
|
677
|
+
const protectedRefused = this.protectedPathRefusal(op.filePath, "file");
|
|
678
|
+
if (protectedRefused !== null)
|
|
679
|
+
return protectedRefused;
|
|
625
680
|
const abs = isAbsolute(op.filePath) ? op.filePath : join(this.workspaceRoot, op.filePath);
|
|
626
681
|
if (this.isSymlinkPath(abs)) {
|
|
627
682
|
return { kind: "failed", detail: `Refusing to delete symlink path: ${abs}` };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inprocess-adapter.js","sourceRoot":"","sources":["../../../../src/cursor/adapters/inprocess-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inprocess-adapter.js","sourceRoot":"","sources":["../../../../src/cursor/adapters/inprocess-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -111,7 +111,7 @@ export type CliErrorStage = "input" | "normalize" | "validate" | "execute";
|
|
|
111
111
|
* surfaces it as `errorCode` on the cursor-session refusal). §6.5.1
|
|
112
112
|
* rule 3 — same root cause, same code, regardless of stage.
|
|
113
113
|
*/
|
|
114
|
-
export type CliErrorCode = "target_exists" | "file_not_found" | "merge_conflict" | "old_value_not_found" | "ambiguous_match" | "scope_outside_allowed" | "prohibited_pattern_match" | "parse_error" | "delivery_timeout" | "invalid_path" | "outside_workspace" | "invalid_filename_chars" | "invalid_replacement_chars" | "invalid_filename_reserved_name" | "execution_error";
|
|
114
|
+
export type CliErrorCode = "target_exists" | "file_not_found" | "merge_conflict" | "old_value_not_found" | "ambiguous_match" | "scope_outside_allowed" | "prohibited_pattern_match" | "parse_error" | "delivery_timeout" | "invalid_path" | "outside_workspace" | "invalid_filename_chars" | "invalid_replacement_chars" | "invalid_filename_reserved_name" | "prohibited_path" | "execution_error";
|
|
115
115
|
/**
|
|
116
116
|
* Validator-stage error. Emitted by `FeasibilityValidator` (M3).
|
|
117
117
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-error.d.ts","sourceRoot":"","sources":["../../../src/input/cli-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIzC;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;AAI3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,MAAM,YAAY,GAEpB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,qBAAqB,GACrB,iBAAiB,GACjB,uBAAuB,GACvB,0BAA0B,GAC1B,aAAa,GACb,kBAAkB,GAClB,cAAc,GACd,mBAAmB,GACnB,wBAAwB,GACxB,2BAA2B,GAC3B,gCAAgC,
|
|
1
|
+
{"version":3,"file":"cli-error.d.ts","sourceRoot":"","sources":["../../../src/input/cli-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIzC;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;AAI3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,MAAM,YAAY,GAEpB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,qBAAqB,GACrB,iBAAiB,GACjB,uBAAuB,GACvB,0BAA0B,GAC1B,aAAa,GACb,kBAAkB,GAClB,cAAc,GACd,mBAAmB,GACnB,wBAAwB,GACxB,2BAA2B,GAC3B,gCAAgC,GAChC,iBAAiB,GAEjB,iBAAiB,CAAC;AAItB;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,cAAc,GAAG,aAAa,GAAG,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feasibility-validator.d.ts","sourceRoot":"","sources":["../../../src/input/feasibility-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AAIH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"feasibility-validator.d.ts","sourceRoot":"","sources":["../../../src/input/feasibility-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AAIH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AASpD;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CAC/C,CAAC;AA2NF,iBAAS,oBAAoB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CA8BhD;AAED,QAAA,MAAM,qBAAqB,qFACyD,CAAC;AAkErF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC;AA0VvD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,gBAAgB,GACxB,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,IAAI,CAkDrC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,gBAAgB,GACxB,aAAa,GAAG,IAAI,CAUtB"}
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
import { existsSync, lstatSync } from "node:fs";
|
|
74
74
|
import { isAbsolute, join, posix } from "node:path";
|
|
75
75
|
import { canonicalizeForSafety, CanonicalizationError } from "../safety/canonicalize.js";
|
|
76
|
-
import { validateFilenameSafety } from "../safety/filename-safety.js";
|
|
76
|
+
import { validateFilenameSafety, validateProtectedPath, } from "../safety/filename-safety.js";
|
|
77
77
|
const defaultFs = {
|
|
78
78
|
existsSync,
|
|
79
79
|
isSymlink: (path) => {
|
|
@@ -446,13 +446,20 @@ function makeInvalidFilenameError(op, path, field, detail, validatorCode) {
|
|
|
446
446
|
// chars case names the three character classes (BIDI / zero-width /
|
|
447
447
|
// control) that actually get refused, so users skimming only the
|
|
448
448
|
// prefix understand the class.
|
|
449
|
+
//
|
|
450
|
+
// Iter 4: `invalid_filename_whitespace` (public#68) folds under the
|
|
451
|
+
// same public `invalid_filename_chars` umbrella as the canonical-
|
|
452
|
+
// divergence case. Whitespace-bounded names are a hygiene
|
|
453
|
+
// refusal, same family as zero-width / BIDI / control codepoints.
|
|
449
454
|
const summary = validatorCode === "invalid_filename_reserved_name"
|
|
450
455
|
? "is a Windows reserved device name"
|
|
451
456
|
: validatorCode === "invalid_filename_canonical_divergence"
|
|
452
457
|
? "is not in canonical form (NFKC divergence)"
|
|
453
|
-
: validatorCode === "
|
|
454
|
-
? "
|
|
455
|
-
:
|
|
458
|
+
: validatorCode === "invalid_filename_whitespace"
|
|
459
|
+
? "has leading or trailing whitespace in a path segment"
|
|
460
|
+
: validatorCode === "canonicalization_failed"
|
|
461
|
+
? "could not be safely canonicalized"
|
|
462
|
+
: "contains invisible, bidirectional, or control codepoints";
|
|
456
463
|
const code = validatorCode === "invalid_filename_reserved_name"
|
|
457
464
|
? "invalid_filename_reserved_name"
|
|
458
465
|
: "invalid_filename_chars";
|
|
@@ -463,6 +470,35 @@ function makeInvalidFilenameError(op, path, field, detail, validatorCode) {
|
|
|
463
470
|
operation: op,
|
|
464
471
|
};
|
|
465
472
|
}
|
|
473
|
+
/**
|
|
474
|
+
* Cluster B Iteration 4 / usesteady-public#60, #67 -- protected-path
|
|
475
|
+
* refusal at the validate stage. Returns a `ValidateError` shape
|
|
476
|
+
* matching the existing filename-safety refusals so the IR walker can
|
|
477
|
+
* surface it uniformly.
|
|
478
|
+
*
|
|
479
|
+
* Maps the internal `prohibited_path` discriminant to the new public
|
|
480
|
+
* `prohibited_path` code -- this is the one new public code Iter 4
|
|
481
|
+
* introduces. Justification (per AGENTS.md "no new public codes
|
|
482
|
+
* unless strongly justified"):
|
|
483
|
+
*
|
|
484
|
+
* 1. Distinct semantic: the path is well-formed and inside the
|
|
485
|
+
* workspace -- no other existing code matches "location is
|
|
486
|
+
* off-limits regardless of shape".
|
|
487
|
+
* 2. Distinct remediation: the user is told to use `git` directly,
|
|
488
|
+
* not to rename or restructure the path. Folding under
|
|
489
|
+
* `invalid_filename_chars` would mis-route the fix.
|
|
490
|
+
* 3. Programmatic consumers may want to surface a different UI for
|
|
491
|
+
* "you tried to touch git internals" vs "your filename has
|
|
492
|
+
* bidi controls".
|
|
493
|
+
*/
|
|
494
|
+
function makeProhibitedPathError(op, path, field, detail) {
|
|
495
|
+
return {
|
|
496
|
+
stage: "validate",
|
|
497
|
+
code: "prohibited_path",
|
|
498
|
+
message: `Refusing to ${verbForOp(op)}: ${field} is a protected path. ${detail} (${field}: ${path})`,
|
|
499
|
+
operation: op,
|
|
500
|
+
};
|
|
501
|
+
}
|
|
466
502
|
function verbForOp(op) {
|
|
467
503
|
switch (op.type) {
|
|
468
504
|
case "create": return "create file";
|
|
@@ -486,7 +522,7 @@ function checkFilenameSafetyForOp(op) {
|
|
|
486
522
|
return makeInvalidFilenameError(op, op.args.path, "path", result.detail, result.code);
|
|
487
523
|
}
|
|
488
524
|
case "rename": {
|
|
489
|
-
// Only the destination (`to`) is gated
|
|
525
|
+
// Only the destination (`to`) is gated -- the source must already
|
|
490
526
|
// exist on disk, so its filename safety has nothing to do with
|
|
491
527
|
// what we are creating.
|
|
492
528
|
const result = validateFilenameSafety(op.args.to);
|
|
@@ -502,6 +538,86 @@ function checkFilenameSafetyForOp(op) {
|
|
|
502
538
|
return null;
|
|
503
539
|
}
|
|
504
540
|
}
|
|
541
|
+
/**
|
|
542
|
+
* Cluster B Iteration 4 -- protected-path check.
|
|
543
|
+
*
|
|
544
|
+
* Unlike `checkFilenameSafetyForOp` (scoped to ops that MATERIALIZE
|
|
545
|
+
* a new on-disk filename), this check runs on every path-bearing op
|
|
546
|
+
* because the friction shape is symmetric: `delete .git/HEAD` is
|
|
547
|
+
* exactly as harmful as `create .git/HEAD`. The check enforces a
|
|
548
|
+
* location-shape invariant ("the tool does not edit git internals"),
|
|
549
|
+
* not a name-shape one.
|
|
550
|
+
*
|
|
551
|
+
* Scope (every path-bearing op):
|
|
552
|
+
* - create.args.path
|
|
553
|
+
* - create_dir.args.path
|
|
554
|
+
* - delete.args.path
|
|
555
|
+
* - rename.args.from AND args.to (both sides -- renaming `.git/HEAD`
|
|
556
|
+
* into a workspace file, or renaming any file into `.git/HEAD`,
|
|
557
|
+
* are both refused)
|
|
558
|
+
* - replace.args.file
|
|
559
|
+
* - append.args.file
|
|
560
|
+
* - prepend.args.file
|
|
561
|
+
*
|
|
562
|
+
* Out of scope:
|
|
563
|
+
* - run.args.command -- the protected-path rule is about file paths,
|
|
564
|
+
* not shell commands. `run` is gated by K5's allow-list and the
|
|
565
|
+
* Cluster D shell-authority anchor; protected-paths would
|
|
566
|
+
* overlap their semantics confusingly.
|
|
567
|
+
*/
|
|
568
|
+
function checkProtectedPathForOp(op) {
|
|
569
|
+
switch (op.type) {
|
|
570
|
+
case "create": {
|
|
571
|
+
const result = validateProtectedPath(op.args.path);
|
|
572
|
+
if (result.ok)
|
|
573
|
+
return null;
|
|
574
|
+
return makeProhibitedPathError(op, op.args.path, "file", result.detail);
|
|
575
|
+
}
|
|
576
|
+
case "create_dir": {
|
|
577
|
+
const result = validateProtectedPath(op.args.path);
|
|
578
|
+
if (result.ok)
|
|
579
|
+
return null;
|
|
580
|
+
return makeProhibitedPathError(op, op.args.path, "path", result.detail);
|
|
581
|
+
}
|
|
582
|
+
case "delete": {
|
|
583
|
+
const result = validateProtectedPath(op.args.path);
|
|
584
|
+
if (result.ok)
|
|
585
|
+
return null;
|
|
586
|
+
return makeProhibitedPathError(op, op.args.path, "file", result.detail);
|
|
587
|
+
}
|
|
588
|
+
case "rename": {
|
|
589
|
+
const resultFrom = validateProtectedPath(op.args.from);
|
|
590
|
+
if (!resultFrom.ok) {
|
|
591
|
+
return makeProhibitedPathError(op, op.args.from, "from", resultFrom.detail);
|
|
592
|
+
}
|
|
593
|
+
const resultTo = validateProtectedPath(op.args.to);
|
|
594
|
+
if (!resultTo.ok) {
|
|
595
|
+
return makeProhibitedPathError(op, op.args.to, "to", resultTo.detail);
|
|
596
|
+
}
|
|
597
|
+
return null;
|
|
598
|
+
}
|
|
599
|
+
case "replace": {
|
|
600
|
+
const result = validateProtectedPath(op.args.file);
|
|
601
|
+
if (result.ok)
|
|
602
|
+
return null;
|
|
603
|
+
return makeProhibitedPathError(op, op.args.file, "file", result.detail);
|
|
604
|
+
}
|
|
605
|
+
case "append": {
|
|
606
|
+
const result = validateProtectedPath(op.args.file);
|
|
607
|
+
if (result.ok)
|
|
608
|
+
return null;
|
|
609
|
+
return makeProhibitedPathError(op, op.args.file, "file", result.detail);
|
|
610
|
+
}
|
|
611
|
+
case "prepend": {
|
|
612
|
+
const result = validateProtectedPath(op.args.file);
|
|
613
|
+
if (result.ok)
|
|
614
|
+
return null;
|
|
615
|
+
return makeProhibitedPathError(op, op.args.file, "file", result.detail);
|
|
616
|
+
}
|
|
617
|
+
case "run":
|
|
618
|
+
return null;
|
|
619
|
+
}
|
|
620
|
+
}
|
|
505
621
|
function validateCreate(op, ctx) {
|
|
506
622
|
const abs = resolvePath(ctx.workspaceRoot, op.args.path);
|
|
507
623
|
// Symlink-at-target check first — matches executor order in
|
|
@@ -607,16 +723,26 @@ export function validateOperation(op, context) {
|
|
|
607
723
|
const containmentError = checkPathContainment(op);
|
|
608
724
|
if (containmentError !== null)
|
|
609
725
|
return containmentError;
|
|
610
|
-
// Cluster B Iteration 2 / usesteady-public#50
|
|
726
|
+
// Cluster B Iteration 2 / usesteady-public#50 -- filename hygiene
|
|
611
727
|
// check THIRD, before any fs probe. Orthogonal to containment.
|
|
612
728
|
// Refuses ops that would create a new on-disk filename containing
|
|
613
729
|
// invisible / BIDI / control codepoints, or whose canonical form
|
|
614
730
|
// diverges from the original (NFKC compatibility variants like
|
|
615
|
-
// fullwidth Latin). Scoped to create / create_dir / rename.to
|
|
731
|
+
// fullwidth Latin). Scoped to create / create_dir / rename.to --
|
|
616
732
|
// see `checkFilenameSafetyForOp` above for the scope rationale.
|
|
617
733
|
const filenameSafetyError = checkFilenameSafetyForOp(op);
|
|
618
734
|
if (filenameSafetyError !== null)
|
|
619
735
|
return filenameSafetyError;
|
|
736
|
+
// Cluster B Iteration 4 / usesteady-public#60, #67 -- protected-
|
|
737
|
+
// path check FOURTH, before any fs probe. Orthogonal to the three
|
|
738
|
+
// prior checks: a path can be NUL-byte-clean, in-workspace, and
|
|
739
|
+
// filename-hygienic and still refuse to be touched if its location
|
|
740
|
+
// matches a protected pattern (.git/ in V1). Runs on every path-
|
|
741
|
+
// bearing op including `delete` -- see `checkProtectedPathForOp`
|
|
742
|
+
// above for the scope rationale.
|
|
743
|
+
const protectedPathError = checkProtectedPathForOp(op);
|
|
744
|
+
if (protectedPathError !== null)
|
|
745
|
+
return protectedPathError;
|
|
620
746
|
const ctx = resolveContext(context);
|
|
621
747
|
switch (op.type) {
|
|
622
748
|
case "create": return validateCreate(op, ctx);
|