patchwork-os 1.2.0-beta.3.canary.910 → 1.2.0-beta.3.canary.911
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/bridge.js +4 -1
- package/dist/bridge.js.map +1 -1
- package/dist/drivers/claude/subprocess.js +4 -0
- package/dist/drivers/claude/subprocess.js.map +1 -1
- package/dist/drivers/claude/subprocessSettings.js +6 -1
- package/dist/drivers/claude/subprocessSettings.js.map +1 -1
- package/dist/governance/secretPathDenies.d.ts +36 -0
- package/dist/governance/secretPathDenies.js +99 -0
- package/dist/governance/secretPathDenies.js.map +1 -0
- package/dist/patchworkConfig.d.ts +6 -0
- package/dist/patchworkConfig.js +8 -0
- package/dist/patchworkConfig.js.map +1 -1
- package/dist/recipes/yamlRunner.js +7 -1
- package/dist/recipes/yamlRunner.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Permission rules that keep every bridge-spawned agent away from the files
|
|
3
|
+
* where this runtime keeps its own secrets.
|
|
4
|
+
*
|
|
5
|
+
* A governed agent step is contained to Read/Glob/Grep/LS — read-only, but
|
|
6
|
+
* read-ANYWHERE. Nothing in that containment named the runtime's own secret
|
|
7
|
+
* stores, so a contained step could read the connector client secrets, the
|
|
8
|
+
* encrypted connector tokens AND the key that decrypts them. Read-only was
|
|
9
|
+
* never the same thing as harmless.
|
|
10
|
+
*
|
|
11
|
+
* Secrets are never legitimate agent input, so these rules apply on EVERY
|
|
12
|
+
* dispatch path and in EVERY profile, compat included. They are added at the
|
|
13
|
+
* spawn layer, after containment is resolved, so nothing a step declares —
|
|
14
|
+
* its own `tools:` widening included — can remove them; and the CLI's own
|
|
15
|
+
* precedence makes a deny beat an allow.
|
|
16
|
+
*
|
|
17
|
+
* What a path rule cannot do: stop a shell. A step granted `Bash` (compat, or
|
|
18
|
+
* a governed `shell: true` widening) can still `cat` these files; Bash rules
|
|
19
|
+
* are prefix matches on the command line and cannot express "any command that
|
|
20
|
+
* touches this path". The governed default denies Bash for that reason.
|
|
21
|
+
*/
|
|
22
|
+
import { realpathSync } from "node:fs";
|
|
23
|
+
import { homedir } from "node:os";
|
|
24
|
+
import { join, resolve } from "node:path";
|
|
25
|
+
import { legacyPatchworkHome, patchworkHome } from "../patchworkHome.js";
|
|
26
|
+
/**
|
|
27
|
+
* An absolute filesystem path in the CLI's permission-rule form: `//` +
|
|
28
|
+
* a POSIX path. (`/x` in a rule is relative to the settings file; `//x` is
|
|
29
|
+
* absolute.) Windows paths are matched in their POSIX form, `C:\a` → `/c/a`.
|
|
30
|
+
*/
|
|
31
|
+
export function toAbsoluteRulePath(p) {
|
|
32
|
+
let posix = p.replace(/\\/g, "/");
|
|
33
|
+
const drive = /^([A-Za-z]):\/?(.*)$/.exec(posix);
|
|
34
|
+
if (drive)
|
|
35
|
+
posix = `/${(drive[1] ?? "").toLowerCase()}/${drive[2] ?? ""}`;
|
|
36
|
+
posix = posix.replace(/\/+$/, "");
|
|
37
|
+
return `/${posix.startsWith("/") ? posix : `/${posix}`}`;
|
|
38
|
+
}
|
|
39
|
+
function realOrSelf(p) {
|
|
40
|
+
try {
|
|
41
|
+
return realpathSync.native(p);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return p; // absent: nothing to resolve, the literal rule still applies
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function claudeConfigDir() {
|
|
48
|
+
const v = process.env.CLAUDE_CONFIG_DIR?.trim();
|
|
49
|
+
return v ? resolve(v) : join(homedir(), ".claude");
|
|
50
|
+
}
|
|
51
|
+
/** The secret-bearing paths (files, and directories as `<dir>/**`). */
|
|
52
|
+
export function secretStorePaths() {
|
|
53
|
+
const out = new Set();
|
|
54
|
+
// Both roots: an operator who set PATCHWORK_HOME may still have the
|
|
55
|
+
// pre-override directory on disk, secrets and all.
|
|
56
|
+
// Each root also in its resolved form: the CLI may compare against the
|
|
57
|
+
// real path, and `~/.patchwork` or a temp dir can sit behind a symlink.
|
|
58
|
+
const roots = new Set();
|
|
59
|
+
for (const r of [patchworkHome(), legacyPatchworkHome()]) {
|
|
60
|
+
roots.add(r);
|
|
61
|
+
roots.add(realOrSelf(r));
|
|
62
|
+
}
|
|
63
|
+
for (const home of roots) {
|
|
64
|
+
out.add(join(home, ".secrets.json")); // connector client secrets
|
|
65
|
+
out.add(join(home, "tokens", "**")); // tokens, .master.key, oauth state
|
|
66
|
+
out.add(join(home, "credentials.json")); // member password hashes
|
|
67
|
+
out.add(join(home, ".env")); // dashboard session secret
|
|
68
|
+
}
|
|
69
|
+
const tokenDir = process.env.PATCHWORK_TOKEN_DIR?.trim();
|
|
70
|
+
if (tokenDir)
|
|
71
|
+
out.add(join(resolve(tokenDir), "**"));
|
|
72
|
+
const localAppData = process.env.LOCALAPPDATA?.trim();
|
|
73
|
+
if (process.platform === "win32" && localAppData) {
|
|
74
|
+
out.add(join(localAppData, "PatchworkOS", "tokens", "**"));
|
|
75
|
+
}
|
|
76
|
+
for (const claude of new Set([
|
|
77
|
+
claudeConfigDir(),
|
|
78
|
+
realOrSelf(claudeConfigDir()),
|
|
79
|
+
])) {
|
|
80
|
+
out.add(join(claude, ".credentials.json")); // the CLI's own sign-in
|
|
81
|
+
out.add(join(claude, "ide", "**")); // bridge lock files carry auth tokens
|
|
82
|
+
}
|
|
83
|
+
return [...out];
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* `Read(...)` and `Edit(...)` deny rules for every secret store. Read rules
|
|
87
|
+
* also govern Glob, Grep and LS; Edit rules govern every write built-in.
|
|
88
|
+
* Read per call, never cached: PATCHWORK_HOME is changed at runtime by the
|
|
89
|
+
* CLI and by tests.
|
|
90
|
+
*/
|
|
91
|
+
export function secretPathDenyRules() {
|
|
92
|
+
const rules = [];
|
|
93
|
+
for (const p of secretStorePaths()) {
|
|
94
|
+
const rp = toAbsoluteRulePath(p);
|
|
95
|
+
rules.push(`Read(${rp})`, `Edit(${rp})`);
|
|
96
|
+
}
|
|
97
|
+
return rules;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=secretPathDenies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secretPathDenies.js","sourceRoot":"","sources":["../../src/governance/secretPathDenies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzE;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAS;IAC1C,IAAI,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,KAAK;QAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IAC1E,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC,CAAC,6DAA6D;IACzE,CAAC;AACH,CAAC;AAED,SAAS,eAAe;IACtB,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAChD,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,oEAAoE;IACpE,mDAAmD;IACnD,uEAAuE;IACvE,wEAAwE;IACxE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;QACzD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACb,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,2BAA2B;QACjE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,mCAAmC;QACxE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,yBAAyB;QAClE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,2BAA2B;IAC1D,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;IACzD,IAAI,QAAQ;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;IACtD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,YAAY,EAAE,CAAC;QACjD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,IAAI,GAAG,CAAC;QAC3B,eAAe,EAAE;QACjB,UAAU,CAAC,eAAe,EAAE,CAAC;KAC9B,CAAC,EAAE,CAAC;QACH,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,wBAAwB;QACpE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,sCAAsC;IAC5E,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -141,6 +141,12 @@ export declare const DEFAULT_SCHEDULE_TIMEZONE = "UTC";
|
|
|
141
141
|
* An empty string is treated as unset.
|
|
142
142
|
*/
|
|
143
143
|
export declare function effectiveScheduleTimezone(cfg: PatchworkConfig): string;
|
|
144
|
+
/**
|
|
145
|
+
* Whether the schedule zone was chosen ("config") or is the built-in default
|
|
146
|
+
* ("default"). An explicit "UTC" is a choice; an unset or empty value is not.
|
|
147
|
+
* Lets a client offer to set a zone without overwriting one someone picked.
|
|
148
|
+
*/
|
|
149
|
+
export declare function scheduleTimezoneSource(cfg: PatchworkConfig): "config" | "default";
|
|
144
150
|
/** True when `tz` is an IANA time zone this runtime's Intl data recognises. */
|
|
145
151
|
export declare function isValidIanaTimezone(tz: string): boolean;
|
|
146
152
|
/** Clear the loadConfig cache. Exposed for tests and after saveConfig. */
|
package/dist/patchworkConfig.js
CHANGED
|
@@ -126,6 +126,14 @@ export const DEFAULT_SCHEDULE_TIMEZONE = "UTC";
|
|
|
126
126
|
export function effectiveScheduleTimezone(cfg) {
|
|
127
127
|
return cfg.recipes?.timezone || DEFAULT_SCHEDULE_TIMEZONE;
|
|
128
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Whether the schedule zone was chosen ("config") or is the built-in default
|
|
131
|
+
* ("default"). An explicit "UTC" is a choice; an unset or empty value is not.
|
|
132
|
+
* Lets a client offer to set a zone without overwriting one someone picked.
|
|
133
|
+
*/
|
|
134
|
+
export function scheduleTimezoneSource(cfg) {
|
|
135
|
+
return cfg.recipes?.timezone ? "config" : "default";
|
|
136
|
+
}
|
|
129
137
|
/** True when `tz` is an IANA time zone this runtime's Intl data recognises. */
|
|
130
138
|
export function isValidIanaTimezone(tz) {
|
|
131
139
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patchworkConfig.js","sourceRoot":"","sources":["../src/patchworkConfig.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"patchworkConfig.js","sourceRoot":"","sources":["../src/patchworkConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,7 @@ import { FLAG_CIRCUIT_BREAKER, FLAG_ENFORCE_ALLOWWRITES, isEnabled, } from "../f
|
|
|
37
37
|
import { computeEffectivePolicy } from "../governance/effectivePolicy.js";
|
|
38
38
|
import { readKillSwitch } from "../governance/killSwitchPolicy.js";
|
|
39
39
|
import { activeProfile, COMPAT_PROFILE, resolveAgentContainment, } from "../governance/profile.js";
|
|
40
|
+
import { secretPathDenyRules } from "../governance/secretPathDenies.js";
|
|
40
41
|
import { redactKnownSecrets, registerEnvBlock, } from "../governance/secretValues.js";
|
|
41
42
|
import { toolFactsFor } from "../governance/toolFacts.js";
|
|
42
43
|
import { isConnectorSource, provenanceOf, runInputProvenance, uploadInputProvenance, wrapUntrusted, } from "../governance/untrustedContent.js";
|
|
@@ -3603,7 +3604,12 @@ export function defaultClaudeCodeFn(prompt, opts) {
|
|
|
3603
3604
|
// run in --permission-mode dontAsk + --allowed-tools when sandbox is active,
|
|
3604
3605
|
// and always apply --disallowed-tools regardless of mode.
|
|
3605
3606
|
const sandboxAllowed = (Array.isArray(opts?.allowedTools) ? opts.allowedTools : []).filter((t) => typeof t === "string" && t.length > 0 && !t.startsWith("-"));
|
|
3606
|
-
|
|
3607
|
+
// The runtime's own secret stores are denied first, in every mode and
|
|
3608
|
+
// profile (governance/secretPathDenies.ts).
|
|
3609
|
+
const sandboxDenied = [
|
|
3610
|
+
...secretPathDenyRules(),
|
|
3611
|
+
...(Array.isArray(opts?.disallowedTools) ? opts.disallowedTools : []),
|
|
3612
|
+
].filter((t) => typeof t === "string" && t.length > 0 && !t.startsWith("-"));
|
|
3607
3613
|
// A contained run gets the same settings deny file the driver writes. If it
|
|
3608
3614
|
// cannot be written, refuse rather than run the agent uncontained.
|
|
3609
3615
|
let containedSettingsPath;
|