patchwork-os 1.1.0-beta.4.canary.472 → 1.1.0-beta.4.canary.474
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/workerGateDecisionLog.d.ts +6 -1
- package/dist/workerGateDecisionLog.js +5 -1
- package/dist/workerGateDecisionLog.js.map +1 -1
- package/dist/workers/forbidPolicy.d.ts +98 -0
- package/dist/workers/forbidPolicy.js +109 -0
- package/dist/workers/forbidPolicy.js.map +1 -0
- package/dist/workers/workerGate.d.ts +9 -2
- package/dist/workers/workerGate.js +21 -1
- package/dist/workers/workerGate.js.map +1 -1
- package/package.json +1 -1
|
@@ -25,7 +25,12 @@ import type { Reversibility } from "./workers/actionClass.js";
|
|
|
25
25
|
* in-memory ring + size/line rotation + tail-on-read so a sibling bridge's
|
|
26
26
|
* appends become visible. Schema is additive.
|
|
27
27
|
*/
|
|
28
|
-
|
|
28
|
+
/**
|
|
29
|
+
* `forbid` is a third TERMINAL state, not a stronger gate: no earned trust and
|
|
30
|
+
* no human approval unlocks it (ADR-0017). Readers that predate it refuse
|
|
31
|
+
* rather than misreport — see `describeGateAction` / `gateOutcomeFor`.
|
|
32
|
+
*/
|
|
33
|
+
export type GateAction = "allow" | "gate" | "forbid";
|
|
29
34
|
/**
|
|
30
35
|
* Who allowed (or is accountable for) a decision — a SNAPSHOT, not a reference.
|
|
31
36
|
*
|
|
@@ -48,7 +48,9 @@ export class WorkerGateDecisionLog {
|
|
|
48
48
|
throw new Error("toolName is required");
|
|
49
49
|
if (!classKey)
|
|
50
50
|
throw new Error("classKey is required");
|
|
51
|
-
if (input.action !== "allow" &&
|
|
51
|
+
if (input.action !== "allow" &&
|
|
52
|
+
input.action !== "gate" &&
|
|
53
|
+
input.action !== "forbid") {
|
|
52
54
|
throw new Error(`invalid action: ${String(input.action)}`);
|
|
53
55
|
}
|
|
54
56
|
const reasons = (input.contextRiskReasons ?? [])
|
|
@@ -324,6 +326,8 @@ export function describeGateAction(action) {
|
|
|
324
326
|
return "ALLOWED";
|
|
325
327
|
case "gate":
|
|
326
328
|
return "GATED (asked for approval)";
|
|
329
|
+
case "forbid":
|
|
330
|
+
return "FORBIDDEN (no approval can unlock this)";
|
|
327
331
|
default:
|
|
328
332
|
return `UNRECOGNISED ACTION "${action}" — this record was written by a newer Patchwork; upgrade to read it correctly`;
|
|
329
333
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerGateDecisionLog.js","sourceRoot":"","sources":["../src/workerGateDecisionLog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workerGateDecisionLog.js","sourceRoot":"","sources":["../src/workerGateDecisionLog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Forbidden actions — the third terminal state, as a policy predicate.
|
|
3
|
+
*
|
|
4
|
+
* [ADR-0017](../../docs/adr/0017-decision-record-actor-and-forbid.md) decided
|
|
5
|
+
* that `forbid` is evaluated **before** the trust maths, not derived from ramp
|
|
6
|
+
* topology. This module is that evaluation. It is pure: rules in, verdict out,
|
|
7
|
+
* no I/O and no dependency on the gate.
|
|
8
|
+
*
|
|
9
|
+
* ## What "forbidden" means, precisely
|
|
10
|
+
*
|
|
11
|
+
* Not "not yet trusted enough" — that is what gating is for, and gating is
|
|
12
|
+
* escapable by earning trust or by a human approving. Forbidden means **no
|
|
13
|
+
* level of earned trust and no human approval unlocks this**. It must hold at
|
|
14
|
+
* L4 with an autonomy ceiling of 4, and it must hold against an operator who
|
|
15
|
+
* clicks Approve.
|
|
16
|
+
*
|
|
17
|
+
* That is why it cannot live in `reachableLevels()`: an empty reachable set
|
|
18
|
+
* says "cannot climb the ramp", which is a statement about autonomy, not about
|
|
19
|
+
* the action. A forbidden action is one the workspace has decided never
|
|
20
|
+
* happens, however it is proposed.
|
|
21
|
+
*
|
|
22
|
+
* ## The failure direction is the opposite of the roster's
|
|
23
|
+
*
|
|
24
|
+
* `identity/roster.ts` fails SOFT — a malformed `members.json` degrades to a
|
|
25
|
+
* single implicit owner, because the safe default for "who are you on your own
|
|
26
|
+
* machine" is the status quo ante.
|
|
27
|
+
*
|
|
28
|
+
* A deny-list is the reverse. Silently dropping a malformed forbid rule fails
|
|
29
|
+
* **open**: the action the operator meant to ban becomes merely gated, and a
|
|
30
|
+
* human can then approve it. So `parseForbidRules` returns what it could not
|
|
31
|
+
* parse alongside what it could, and the caller is expected to treat a
|
|
32
|
+
* non-empty `invalid` as a configuration error worth shouting about — not as
|
|
33
|
+
* "loaded fine, minus a couple". A partially-loaded deny list is a deny list
|
|
34
|
+
* that does not say what its author thinks it says.
|
|
35
|
+
*
|
|
36
|
+
* This module deliberately does not decide what to do about that, because the
|
|
37
|
+
* right answer differs by deployment: refusing to start is correct for a hosted
|
|
38
|
+
* workspace and hostile on a laptop.
|
|
39
|
+
*/
|
|
40
|
+
import type { ActionClass } from "./actionClass.js";
|
|
41
|
+
export interface ForbidRule {
|
|
42
|
+
/**
|
|
43
|
+
* What it matches. Same pattern language as `WorkerManifest.owns`, so an
|
|
44
|
+
* operator learns one syntax:
|
|
45
|
+
* - a domain — `vcs-remote`
|
|
46
|
+
* - an exact class key — `fs-write:irreversible:high`
|
|
47
|
+
* - a prefix — `vcs-remote` also matches `vcs-remote:*`
|
|
48
|
+
*/
|
|
49
|
+
match: string;
|
|
50
|
+
/**
|
|
51
|
+
* Why this is forbidden, in the operator's own words. Required: a refusal
|
|
52
|
+
* with no reason is unusable in a receipt, and "denied by policy" tells a
|
|
53
|
+
* person nothing about which policy or why.
|
|
54
|
+
*/
|
|
55
|
+
reason: string;
|
|
56
|
+
}
|
|
57
|
+
export interface ForbidVerdict {
|
|
58
|
+
forbidden: boolean;
|
|
59
|
+
/** The rule's reason, when forbidden. */
|
|
60
|
+
reason?: string;
|
|
61
|
+
/** The `match` pattern that fired, so an operator can find the rule. */
|
|
62
|
+
matchedBy?: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Is this action forbidden outright?
|
|
66
|
+
*
|
|
67
|
+
* An empty rule set forbids nothing, so a workspace that has configured no
|
|
68
|
+
* policy behaves exactly as it did before this existed. Forbidding is entirely
|
|
69
|
+
* opt-in.
|
|
70
|
+
*
|
|
71
|
+
* First match wins, and rules are evaluated in order — so the reason an
|
|
72
|
+
* operator sees is the first rule they wrote that covers the action, which is
|
|
73
|
+
* the one they are most likely to recognise.
|
|
74
|
+
*/
|
|
75
|
+
export declare function isForbidden(ac: ActionClass, rules: readonly ForbidRule[]): ForbidVerdict;
|
|
76
|
+
export interface ParsedForbidRules {
|
|
77
|
+
rules: ForbidRule[];
|
|
78
|
+
/**
|
|
79
|
+
* Entries that could not be parsed, by index. A non-empty array means the
|
|
80
|
+
* deny list is incomplete — see the module note: this fails OPEN, so the
|
|
81
|
+
* caller must surface it rather than proceed quietly.
|
|
82
|
+
*/
|
|
83
|
+
invalid: number[];
|
|
84
|
+
}
|
|
85
|
+
/** Validate one untrusted rule. Both fields are required and non-empty. */
|
|
86
|
+
export declare function parseForbidRule(input: unknown): ForbidRule | null;
|
|
87
|
+
/**
|
|
88
|
+
* Validate a list of untrusted rules, keeping the good and reporting the bad.
|
|
89
|
+
*
|
|
90
|
+
* Does not throw and does not silently drop: see the module note on why a
|
|
91
|
+
* deny-list's failure direction is the opposite of the roster's.
|
|
92
|
+
*/
|
|
93
|
+
export declare function parseForbidRules(input: unknown): ParsedForbidRules;
|
|
94
|
+
/**
|
|
95
|
+
* One-line summary for a startup log. Loud about invalid entries, because a
|
|
96
|
+
* partially-loaded deny list is the failure this module most wants surfaced.
|
|
97
|
+
*/
|
|
98
|
+
export declare function describeForbidRules(parsed: ParsedForbidRules): string;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Forbidden actions — the third terminal state, as a policy predicate.
|
|
3
|
+
*
|
|
4
|
+
* [ADR-0017](../../docs/adr/0017-decision-record-actor-and-forbid.md) decided
|
|
5
|
+
* that `forbid` is evaluated **before** the trust maths, not derived from ramp
|
|
6
|
+
* topology. This module is that evaluation. It is pure: rules in, verdict out,
|
|
7
|
+
* no I/O and no dependency on the gate.
|
|
8
|
+
*
|
|
9
|
+
* ## What "forbidden" means, precisely
|
|
10
|
+
*
|
|
11
|
+
* Not "not yet trusted enough" — that is what gating is for, and gating is
|
|
12
|
+
* escapable by earning trust or by a human approving. Forbidden means **no
|
|
13
|
+
* level of earned trust and no human approval unlocks this**. It must hold at
|
|
14
|
+
* L4 with an autonomy ceiling of 4, and it must hold against an operator who
|
|
15
|
+
* clicks Approve.
|
|
16
|
+
*
|
|
17
|
+
* That is why it cannot live in `reachableLevels()`: an empty reachable set
|
|
18
|
+
* says "cannot climb the ramp", which is a statement about autonomy, not about
|
|
19
|
+
* the action. A forbidden action is one the workspace has decided never
|
|
20
|
+
* happens, however it is proposed.
|
|
21
|
+
*
|
|
22
|
+
* ## The failure direction is the opposite of the roster's
|
|
23
|
+
*
|
|
24
|
+
* `identity/roster.ts` fails SOFT — a malformed `members.json` degrades to a
|
|
25
|
+
* single implicit owner, because the safe default for "who are you on your own
|
|
26
|
+
* machine" is the status quo ante.
|
|
27
|
+
*
|
|
28
|
+
* A deny-list is the reverse. Silently dropping a malformed forbid rule fails
|
|
29
|
+
* **open**: the action the operator meant to ban becomes merely gated, and a
|
|
30
|
+
* human can then approve it. So `parseForbidRules` returns what it could not
|
|
31
|
+
* parse alongside what it could, and the caller is expected to treat a
|
|
32
|
+
* non-empty `invalid` as a configuration error worth shouting about — not as
|
|
33
|
+
* "loaded fine, minus a couple". A partially-loaded deny list is a deny list
|
|
34
|
+
* that does not say what its author thinks it says.
|
|
35
|
+
*
|
|
36
|
+
* This module deliberately does not decide what to do about that, because the
|
|
37
|
+
* right answer differs by deployment: refusing to start is correct for a hosted
|
|
38
|
+
* workspace and hostile on a laptop.
|
|
39
|
+
*/
|
|
40
|
+
const NOT_FORBIDDEN = { forbidden: false };
|
|
41
|
+
/** Does `pattern` match this action class? Mirrors `ownsAction`. */
|
|
42
|
+
function matches(pattern, ac) {
|
|
43
|
+
return (pattern === ac.domain ||
|
|
44
|
+
pattern === ac.key ||
|
|
45
|
+
ac.key.startsWith(`${pattern}:`));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Is this action forbidden outright?
|
|
49
|
+
*
|
|
50
|
+
* An empty rule set forbids nothing, so a workspace that has configured no
|
|
51
|
+
* policy behaves exactly as it did before this existed. Forbidding is entirely
|
|
52
|
+
* opt-in.
|
|
53
|
+
*
|
|
54
|
+
* First match wins, and rules are evaluated in order — so the reason an
|
|
55
|
+
* operator sees is the first rule they wrote that covers the action, which is
|
|
56
|
+
* the one they are most likely to recognise.
|
|
57
|
+
*/
|
|
58
|
+
export function isForbidden(ac, rules) {
|
|
59
|
+
for (const rule of rules) {
|
|
60
|
+
if (matches(rule.match, ac)) {
|
|
61
|
+
return { forbidden: true, reason: rule.reason, matchedBy: rule.match };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return NOT_FORBIDDEN;
|
|
65
|
+
}
|
|
66
|
+
/** Validate one untrusted rule. Both fields are required and non-empty. */
|
|
67
|
+
export function parseForbidRule(input) {
|
|
68
|
+
if (!input || typeof input !== "object")
|
|
69
|
+
return null;
|
|
70
|
+
const o = input;
|
|
71
|
+
const match = typeof o.match === "string" ? o.match.trim() : "";
|
|
72
|
+
const reason = typeof o.reason === "string" ? o.reason.trim() : "";
|
|
73
|
+
if (!match || !reason)
|
|
74
|
+
return null;
|
|
75
|
+
return { match, reason };
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Validate a list of untrusted rules, keeping the good and reporting the bad.
|
|
79
|
+
*
|
|
80
|
+
* Does not throw and does not silently drop: see the module note on why a
|
|
81
|
+
* deny-list's failure direction is the opposite of the roster's.
|
|
82
|
+
*/
|
|
83
|
+
export function parseForbidRules(input) {
|
|
84
|
+
if (!Array.isArray(input))
|
|
85
|
+
return { rules: [], invalid: [] };
|
|
86
|
+
const rules = [];
|
|
87
|
+
const invalid = [];
|
|
88
|
+
for (let i = 0; i < input.length; i++) {
|
|
89
|
+
const r = parseForbidRule(input[i]);
|
|
90
|
+
if (r)
|
|
91
|
+
rules.push(r);
|
|
92
|
+
else
|
|
93
|
+
invalid.push(i);
|
|
94
|
+
}
|
|
95
|
+
return { rules, invalid };
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* One-line summary for a startup log. Loud about invalid entries, because a
|
|
99
|
+
* partially-loaded deny list is the failure this module most wants surfaced.
|
|
100
|
+
*/
|
|
101
|
+
export function describeForbidRules(parsed) {
|
|
102
|
+
const base = parsed.rules.length === 0
|
|
103
|
+
? "no forbidden-action rules configured"
|
|
104
|
+
: `${parsed.rules.length} forbidden-action rule${parsed.rules.length === 1 ? "" : "s"} loaded`;
|
|
105
|
+
if (parsed.invalid.length === 0)
|
|
106
|
+
return base;
|
|
107
|
+
return `${base} — WARNING: ${parsed.invalid.length} rule${parsed.invalid.length === 1 ? "" : "s"} at position ${parsed.invalid.join(", ")} could NOT be parsed and are NOT in force (a rule needs both \`match\` and \`reason\`)`;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=forbidPolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forbidPolicy.js","sourceRoot":"","sources":["../../src/workers/forbidPolicy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type ActionClass } from "./actionClass.js";
|
|
2
2
|
import { type ContextRisk } from "./contextRisk.js";
|
|
3
|
+
import { type ForbidRule } from "./forbidPolicy.js";
|
|
3
4
|
import type { TrustLevel } from "./trustLevel.js";
|
|
4
5
|
import { type WorkerManifest } from "./worker.js";
|
|
5
6
|
import type { WorkerLevelStore } from "./workerLevelStore.js";
|
|
@@ -31,7 +32,7 @@ import type { WorkerLevelStore } from "./workerLevelStore.js";
|
|
|
31
32
|
* routes an action to the EXISTING human-approval queue (fail-closed) — it never
|
|
32
33
|
* auto-approves anything that would otherwise have been queued by tier policy.
|
|
33
34
|
*/
|
|
34
|
-
export type WorkerGateAction = "allow" | "gate";
|
|
35
|
+
export type WorkerGateAction = "allow" | "gate" | "forbid";
|
|
35
36
|
/** What the caller should actually do with a gate decision. */
|
|
36
37
|
export type GateOutcome =
|
|
37
38
|
/** Let it proceed (still subject to any tier gate composed above). */
|
|
@@ -86,12 +87,18 @@ export interface WorkerGateDecision {
|
|
|
86
87
|
export interface AutonomyDecisionOpts {
|
|
87
88
|
/** Live situational risk for THIS action (fast, day-1, no cold-start). */
|
|
88
89
|
contextRisk?: ContextRisk;
|
|
90
|
+
/**
|
|
91
|
+
* Actions this workspace forbids outright (ADR-0017). Absent or empty ⇒ no
|
|
92
|
+
* action is forbidden and the decision is byte-identical to the pre-forbid
|
|
93
|
+
* gate, so forbidding is entirely opt-in.
|
|
94
|
+
*/
|
|
95
|
+
forbidRules?: readonly ForbidRule[];
|
|
89
96
|
}
|
|
90
97
|
/** The gate-policy version stamped on every persisted decision (the threshold
|
|
91
98
|
* constants + composition rule below). A decision can't be replayed/explained
|
|
92
99
|
* without knowing which policy produced it — bump when the thresholds or the
|
|
93
100
|
* reversibility→level mapping change. */
|
|
94
|
-
export declare const GATE_POLICY_VERSION = "worker-ramp-
|
|
101
|
+
export declare const GATE_POLICY_VERSION = "worker-ramp-v1";
|
|
95
102
|
/**
|
|
96
103
|
* Undoable → flows un-gated even when unearned. Only reversible actions are
|
|
97
104
|
* exempt from the trust requirement; compensable ones graduate to autonomous
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { classifyTool, getRiskTierMap } from "../riskTier.js";
|
|
2
2
|
import { classifyActionClass, knownActionTools, } from "./actionClass.js";
|
|
3
3
|
import { contextRiskCeiling } from "./contextRisk.js";
|
|
4
|
+
import { isForbidden } from "./forbidPolicy.js";
|
|
4
5
|
import { ownsAction } from "./worker.js";
|
|
5
6
|
/**
|
|
6
7
|
* Map a gate action to what the caller does about it.
|
|
@@ -47,7 +48,7 @@ const AUTONOMOUS_LEVEL = 4;
|
|
|
47
48
|
* constants + composition rule below). A decision can't be replayed/explained
|
|
48
49
|
* without knowing which policy produced it — bump when the thresholds or the
|
|
49
50
|
* reversibility→level mapping change. */
|
|
50
|
-
export const GATE_POLICY_VERSION = "worker-ramp-
|
|
51
|
+
export const GATE_POLICY_VERSION = "worker-ramp-v1";
|
|
51
52
|
/** How the Claude subprocess sees bridge MCP tools under `--disallowed-tools`:
|
|
52
53
|
* `mcp__<server>__<tool>`. The server name is fixed to `patchwork` by the
|
|
53
54
|
* subprocess driver's writeMcpConfigFile, so the agent-step sandbox must block
|
|
@@ -109,6 +110,25 @@ export function decideWorkerAction(worker, toolName, params, store, opts) {
|
|
|
109
110
|
effectiveLevel,
|
|
110
111
|
...(contextCeiling !== undefined && { contextCeiling }),
|
|
111
112
|
};
|
|
113
|
+
// Forbidden actions are settled FIRST — before the agent carve-out, before
|
|
114
|
+
// reversibility, before any trust maths. "Forbidden" means no earned trust
|
|
115
|
+
// and no human approval unlocks this, so any branch that precedes it is a
|
|
116
|
+
// path around it.
|
|
117
|
+
//
|
|
118
|
+
// That ordering is deliberate even though it makes a broad rule (say
|
|
119
|
+
// `match: "other"`) capable of stalling every worker on its agent step. That
|
|
120
|
+
// failure is loud and self-explaining: each decision names the rule that
|
|
121
|
+
// fired. The alternative — letting a carve-out run first — fails silently, by
|
|
122
|
+
// permitting an action the operator declared must never happen. A safety
|
|
123
|
+
// control that a carve-out can bypass is not one.
|
|
124
|
+
const forbidden = isForbidden(ac, opts?.forbidRules ?? []);
|
|
125
|
+
if (forbidden.forbidden) {
|
|
126
|
+
return {
|
|
127
|
+
...base,
|
|
128
|
+
action: "forbid",
|
|
129
|
+
reason: `forbidden by workspace policy (rule \`${forbidden.matchedBy}\`): ${forbidden.reason}`,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
112
132
|
// Agent (reasoning) steps are not a durable side-effecting action-class: the
|
|
113
133
|
// claude subprocess produces an output var, and any tool calls it makes are
|
|
114
134
|
// gated on their OWN class. The step id classifies as `other:irreversible`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerGate.js","sourceRoot":"","sources":["../../src/workers/workerGate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAEL,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAoB,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"workerGate.js","sourceRoot":"","sources":["../../src/workers/workerGate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "patchwork-os",
|
|
3
|
-
"version": "1.1.0-beta.4.canary.
|
|
3
|
+
"version": "1.1.0-beta.4.canary.474",
|
|
4
4
|
"description": "Your personal AI runtime, local-first. Patchwork OS gives any AI model a consistent set of tools, YAML recipes, a delegation policy with approval queue, and a durable trace memory — all on your machine, all under your policy.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|