@phamvuhoang/otto-core 0.12.0 → 0.13.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/dist/eval.d.ts +6 -2
- package/dist/eval.d.ts.map +1 -1
- package/dist/eval.js +6 -0
- package/dist/eval.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/loop.d.ts.map +1 -1
- package/dist/loop.js +1 -0
- package/dist/loop.js.map +1 -1
- package/dist/memory-cli.d.ts +26 -0
- package/dist/memory-cli.d.ts.map +1 -0
- package/dist/memory-cli.js +78 -0
- package/dist/memory-cli.js.map +1 -0
- package/dist/memory.d.ts +163 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +0 -0
- package/dist/memory.js.map +1 -0
- package/dist/render.d.ts +3 -0
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +40 -12
- package/dist/render.js.map +1 -1
- package/dist/run-report.d.ts +35 -0
- package/dist/run-report.d.ts.map +1 -1
- package/dist/run-report.js.map +1 -1
- package/dist/runner.d.ts +4 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js.map +1 -1
- package/dist/safety-policy.d.ts +83 -0
- package/dist/safety-policy.d.ts.map +1 -0
- package/dist/safety-policy.js +143 -0
- package/dist/safety-policy.js.map +1 -0
- package/dist/stage-exec.d.ts.map +1 -1
- package/dist/stage-exec.js +31 -3
- package/dist/stage-exec.js.map +1 -1
- package/dist/taint.d.ts +32 -0
- package/dist/taint.d.ts.map +1 -0
- package/dist/taint.js +60 -0
- package/dist/taint.js.map +1 -0
- package/package.json +1 -1
- package/templates/apply-review.md +2 -0
- package/templates/ghafk-issue.md +2 -0
- package/templates/ghafk.md +2 -0
- package/templates/ghprompt-workflow.md +2 -0
- package/templates/governed-memory.md +58 -0
- package/templates/linearafk-issue.md +2 -0
- package/templates/linearafk.md +2 -0
- package/templates/prompt.md +2 -0
- package/templates/untrusted-content.md +23 -0
package/dist/render.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { execSync } from "node:child_process";
|
|
2
2
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
3
3
|
import { dirname, isAbsolute, join, resolve } from "node:path";
|
|
4
|
+
import { checkCommand, DEFAULT_POLICY, } from "./safety-policy.js";
|
|
4
5
|
// SECURITY INVARIANT: the command bodies of the !`cmd`, !?`cmd`, and @spill tags
|
|
5
6
|
// are executed on the HOST shell (see execSync calls below). Templates are trusted
|
|
6
7
|
// (shipped in the npm tarball) and only ever embed STATIC command strings; {{ INPUTS }}
|
|
@@ -38,6 +39,18 @@ export function renderTemplate(templatePath, vars, opts = {}) {
|
|
|
38
39
|
const raw = readFileSync(templatePath, "utf8");
|
|
39
40
|
const templateDir = dirname(templatePath);
|
|
40
41
|
const shell = resolveShell();
|
|
42
|
+
// Policy gate at the host-shell boundary (issue #43 P4). Returns true when the
|
|
43
|
+
// command matches a blocked pattern — every violation is reported through the
|
|
44
|
+
// sink and the caller then SKIPS the command instead of executing it. Under
|
|
45
|
+
// DEFAULT_POLICY (empty deny-list, the no-`.otto/policy.json` case) this is
|
|
46
|
+
// always false, so trusted local workflows render unchanged.
|
|
47
|
+
const policy = opts.policy ?? DEFAULT_POLICY;
|
|
48
|
+
const blockedByPolicy = (command) => {
|
|
49
|
+
const violations = checkCommand(policy, command);
|
|
50
|
+
for (const v of violations)
|
|
51
|
+
opts.onPolicyViolation?.(v);
|
|
52
|
+
return violations.length > 0;
|
|
53
|
+
};
|
|
41
54
|
// Expand @include directives recursively until no directives remain.
|
|
42
55
|
// Each pass resolves relative paths against the including file's directory.
|
|
43
56
|
function expandIncludes(text, fromDir) {
|
|
@@ -77,20 +90,28 @@ export function renderTemplate(templatePath, vars, opts = {}) {
|
|
|
77
90
|
}
|
|
78
91
|
}
|
|
79
92
|
let out;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
maxBuffer: SPILL_MAX_BUFFER,
|
|
85
|
-
cwd: opts.cwd,
|
|
86
|
-
stdio: ["ignore", "pipe", tryMode ? "ignore" : "pipe"],
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
catch (err) {
|
|
90
|
-
if (!tryMode)
|
|
91
|
-
throw err;
|
|
93
|
+
if (blockedByPolicy(cmd)) {
|
|
94
|
+
// Denied by policy: skip execution and write the neutralized output
|
|
95
|
+
// (the try-mode fallback, else empty) so the run continues without the
|
|
96
|
+
// command ever running.
|
|
92
97
|
out = fallback;
|
|
93
98
|
}
|
|
99
|
+
else {
|
|
100
|
+
try {
|
|
101
|
+
out = execSync(cmd, {
|
|
102
|
+
shell,
|
|
103
|
+
encoding: "utf8",
|
|
104
|
+
maxBuffer: SPILL_MAX_BUFFER,
|
|
105
|
+
cwd: opts.cwd,
|
|
106
|
+
stdio: ["ignore", "pipe", tryMode ? "ignore" : "pipe"],
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
if (!tryMode)
|
|
111
|
+
throw err;
|
|
112
|
+
out = fallback;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
94
115
|
mkdirSync(opts.spillHostDir, { recursive: true });
|
|
95
116
|
writeFileSync(join(opts.spillHostDir, name), out, "utf8");
|
|
96
117
|
return `./${opts.spillRefPath}/${name}`;
|
|
@@ -99,6 +120,9 @@ export function renderTemplate(templatePath, vars, opts = {}) {
|
|
|
99
120
|
const sep = body.lastIndexOf(TRY_SEP);
|
|
100
121
|
const cmd = sep >= 0 ? body.slice(0, sep) : body;
|
|
101
122
|
const fallback = sep >= 0 ? body.slice(sep + TRY_SEP.length) : "";
|
|
123
|
+
// Denied by policy → behave as a failed try-shell: substitute the fallback.
|
|
124
|
+
if (blockedByPolicy(cmd))
|
|
125
|
+
return fallback;
|
|
102
126
|
try {
|
|
103
127
|
const out = execSync(cmd, {
|
|
104
128
|
shell,
|
|
@@ -114,6 +138,10 @@ export function renderTemplate(templatePath, vars, opts = {}) {
|
|
|
114
138
|
}
|
|
115
139
|
});
|
|
116
140
|
const afterShell = afterShellTry.replace(SHELL_TAG, (_match, cmd) => {
|
|
141
|
+
// Denied by policy: skip the required command, substituting empty output.
|
|
142
|
+
// (The run continues with a degraded prompt rather than executing it.)
|
|
143
|
+
if (blockedByPolicy(cmd))
|
|
144
|
+
return "";
|
|
117
145
|
const out = execSync(cmd, {
|
|
118
146
|
shell,
|
|
119
147
|
encoding: "utf8",
|
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE/D,iFAAiF;AACjF,mFAAmF;AACnF,wFAAwF;AACxF,sFAAsF;AACtF,wFAAwF;AACxF,2FAA2F;AAE3F,qFAAqF;AACrF,MAAM,aAAa,GAAG,eAAe,CAAC;AACtC,MAAM,SAAS,GAAG,aAAa,CAAC;AAChC,MAAM,WAAW,GAAG,sBAAsB,CAAC;AAC3C,wFAAwF;AACxF,kFAAkF;AAClF,gFAAgF;AAChF,MAAM,SAAS,GAAG,kCAAkC,CAAC;AACrD,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAClD,MAAM,OAAO,GAAG,KAAK,CAAC;AACtB,gFAAgF;AAChF,kFAAkF;AAClF,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
package/dist/run-report.d.ts
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
import type { AgentRuntimeId } from "./agent-runtime.js";
|
|
2
|
+
import type { PolicyViolationKind } from "./safety-policy.js";
|
|
3
|
+
import type { TaintSource } from "./taint.js";
|
|
2
4
|
import type { TokenUsage } from "./tokens.js";
|
|
5
|
+
/**
|
|
6
|
+
* A safety-relevant occurrence recorded in a run's trajectory so policy
|
|
7
|
+
* violations and untrusted-input handling are visible to evaluation scoring and
|
|
8
|
+
* to a maintainer reading the bundle (issue #43 P4).
|
|
9
|
+
*
|
|
10
|
+
* Discriminated by `category`: a `policy-violation` carries the
|
|
11
|
+
* {@link PolicyViolationKind} an evaluation predicate flagged; a `taint` event
|
|
12
|
+
* records that an untrusted {@link TaintSource} was wrapped/surfaced. `blocked`
|
|
13
|
+
* captures the issue's "blocked or reported" distinction — `true` when Otto
|
|
14
|
+
* prevented the action, `false` when it only reported it (taint is always
|
|
15
|
+
* reported, never blocked).
|
|
16
|
+
*
|
|
17
|
+
* INERT this slice: the type and the optional `safetyEvents` fields exist, but no
|
|
18
|
+
* bin/loop populates them yet — the boundary checks that emit them land in a
|
|
19
|
+
* later slice, so a recorded trajectory simply carries none today.
|
|
20
|
+
*/
|
|
21
|
+
export type SafetyEvent = {
|
|
22
|
+
category: "policy-violation";
|
|
23
|
+
kind: PolicyViolationKind;
|
|
24
|
+
subject: string;
|
|
25
|
+
message: string;
|
|
26
|
+
blocked: boolean;
|
|
27
|
+
} | {
|
|
28
|
+
category: "taint";
|
|
29
|
+
kind: TaintSource;
|
|
30
|
+
subject: string;
|
|
31
|
+
message: string;
|
|
32
|
+
blocked: boolean;
|
|
33
|
+
};
|
|
3
34
|
/**
|
|
4
35
|
* A named pointer to a file Otto produced during a run (rendered prompt, NDJSON
|
|
5
36
|
* log, diff summary, …). Paths are workspace-relative so the bundle is portable.
|
|
@@ -23,6 +54,8 @@ export type StageRecord = {
|
|
|
23
54
|
apiErrorStatus: string | null;
|
|
24
55
|
/** Workspace-relative NDJSON log path for this stage, when known. */
|
|
25
56
|
logPath?: string;
|
|
57
|
+
/** Safety events emitted while this stage ran (issue #43); absent = none. */
|
|
58
|
+
safetyEvents?: SafetyEvent[];
|
|
26
59
|
startedAt: string;
|
|
27
60
|
finishedAt: string;
|
|
28
61
|
};
|
|
@@ -54,6 +87,8 @@ export type RunManifest = {
|
|
|
54
87
|
/** Maintainer-facing next-action hint for that exit reason. */
|
|
55
88
|
nextAction?: string;
|
|
56
89
|
artifacts: RunArtifact[];
|
|
90
|
+
/** Run-level safety events not tied to a single stage (issue #43); absent = none. */
|
|
91
|
+
safetyEvents?: SafetyEvent[];
|
|
57
92
|
startedAt: string;
|
|
58
93
|
finishedAt?: string;
|
|
59
94
|
};
|
package/dist/run-report.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-report.d.ts","sourceRoot":"","sources":["../src/run-report.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QAAE,EAAE,EAAE,cAAc,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,IAAI,GAAE,IAAiB,EACvB,GAAG,GAAE,MAAoB,GACxB,MAAM,CAGR;AAID,uEAAuE;AACvE,wBAAgB,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,qEAAqE;AACrE,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAExE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CASzD;AAUD,+DAA+D;AAC/D,wBAAgB,aAAa,CAC3B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,WAAW,GACpB,IAAI,CAIN;AAED,sEAAsE;AACtE,wBAAgB,YAAY,CAC1B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACZ,WAAW,GAAG,IAAI,CAQpB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,WAAW,GAClB,MAAM,CAOR;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EAAE,GACd,IAAI,CASN;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACZ,WAAW,EAAE,CAoBf"}
|
|
1
|
+
{"version":3,"file":"run-report.d.ts","sourceRoot":"","sources":["../src/run-report.ts"],"names":[],"mappings":"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"}
|
package/dist/run-report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-report.js","sourceRoot":"","sources":["../src/run-report.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,WAAW,EACX,MAAM,EACN,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"run-report.js","sourceRoot":"","sources":["../src/run-report.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type AgentRuntimeId } from "./agent-runtime.js";
|
|
2
|
+
import type { SafetyEvent } from "./run-report.js";
|
|
2
3
|
import type { Stage } from "./stages.js";
|
|
3
4
|
import { type TokenUsage } from "./tokens.js";
|
|
4
5
|
export type RunStageOptions = {
|
|
@@ -14,6 +15,9 @@ export type StageResult = {
|
|
|
14
15
|
usage: TokenUsage;
|
|
15
16
|
/** The agent runtime that produced this result (Claude's stream-json shape today). */
|
|
16
17
|
runtimeId: AgentRuntimeId;
|
|
18
|
+
/** Safety events emitted while rendering/running this stage (issue #43 P4);
|
|
19
|
+
* absent when none — e.g. a policy violation blocked at a shell/@spill tag. */
|
|
20
|
+
safetyEvents?: SafetyEvent[];
|
|
17
21
|
};
|
|
18
22
|
/**
|
|
19
23
|
* Pure extraction of the fields Otto tracks from a stream-json `result` event.
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAYA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAczC,OAAO,EAAoC,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAEhF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,UAAU,CAAC;IAClB,sFAAsF;IACtF,SAAS,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Repo-local safety rules, loaded from `.otto/policy.json` (issue #43 P4).
|
|
3
|
+
* Governs what an unattended run may do with untrusted inputs and risky tool
|
|
4
|
+
* use. Every field is a list of strings; an EMPTY list means "no restriction"
|
|
5
|
+
* for that axis, so the {@link DEFAULT_POLICY} (all empty) leaves today's
|
|
6
|
+
* trusted local plan/PRD workflows unchanged — a repo opts INTO governance by
|
|
7
|
+
* populating the file.
|
|
8
|
+
*
|
|
9
|
+
* The three slices that follow build on this substrate: pure evaluation
|
|
10
|
+
* predicates over a policy, taint tracking of untrusted sources, and finally the
|
|
11
|
+
* boundary checks around shell/`@spill` tags and stage execution. This module is
|
|
12
|
+
* INERT (exported from `index.ts`, imported by no bin/loop) so loading a policy
|
|
13
|
+
* cannot regress a run.
|
|
14
|
+
*/
|
|
15
|
+
export type SafetyPolicy = {
|
|
16
|
+
/** Workspace-relative roots Otto may write under; empty = unrestricted. */
|
|
17
|
+
allowedWriteRoots: string[];
|
|
18
|
+
/** Command substrings/patterns a run must not execute; empty = none blocked. */
|
|
19
|
+
blockedCommands: string[];
|
|
20
|
+
/** Network domains a run may reach; empty = unrestricted. */
|
|
21
|
+
allowedNetworkDomains: string[];
|
|
22
|
+
/** Patterns identifying secrets that must not be emitted; empty = none. */
|
|
23
|
+
secretPatterns: string[];
|
|
24
|
+
/** Globs marking high-risk files that warrant extra scrutiny; empty = none. */
|
|
25
|
+
highRiskGlobs: string[];
|
|
26
|
+
/** Action names that require human approval before they run; empty = none. */
|
|
27
|
+
approvalRequiredActions: string[];
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* The permissive default: every rule list empty, so a workspace with no
|
|
31
|
+
* `.otto/policy.json` behaves exactly as it does today (success metric #3).
|
|
32
|
+
*/
|
|
33
|
+
export declare const DEFAULT_POLICY: SafetyPolicy;
|
|
34
|
+
/**
|
|
35
|
+
* Normalize an untrusted parsed value into a {@link SafetyPolicy}, filling the
|
|
36
|
+
* permissive default for every missing/invalid field. Never throws: a
|
|
37
|
+
* non-object/array/null input → {@link DEFAULT_POLICY}; a non-array field → its
|
|
38
|
+
* default `[]`; non-string array elements are filtered. Always returns a fresh
|
|
39
|
+
* object with fresh arrays (never the shared frozen default reference).
|
|
40
|
+
*/
|
|
41
|
+
export declare function parseSafetyPolicy(raw: unknown): SafetyPolicy;
|
|
42
|
+
/** The axis of policy a {@link PolicyViolation} breached. */
|
|
43
|
+
export type PolicyViolationKind = "blocked-command" | "write-root" | "network-domain" | "approval-required";
|
|
44
|
+
/**
|
|
45
|
+
* A single breach found by an evaluation predicate. `subject` is the thing
|
|
46
|
+
* checked (command/path/domain/action); `message` is a human-readable
|
|
47
|
+
* explanation. Predicates return an EMPTY array under {@link DEFAULT_POLICY}.
|
|
48
|
+
*/
|
|
49
|
+
export type PolicyViolation = {
|
|
50
|
+
kind: PolicyViolationKind;
|
|
51
|
+
subject: string;
|
|
52
|
+
message: string;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Deny-list check: a violation per {@link SafetyPolicy.blockedCommands} substring
|
|
56
|
+
* that appears in `command`. Empty list → no violations (DEFAULT_POLICY).
|
|
57
|
+
*/
|
|
58
|
+
export declare function checkCommand(policy: SafetyPolicy, command: string): PolicyViolation[];
|
|
59
|
+
/**
|
|
60
|
+
* Allow-list check over workspace-relative {@link SafetyPolicy.allowedWriteRoots}:
|
|
61
|
+
* empty → unrestricted (no violations). Otherwise a single violation when `path`
|
|
62
|
+
* is neither equal to nor nested under any allowed root. A root of `.` (or empty
|
|
63
|
+
* after trimming) permits the whole workspace.
|
|
64
|
+
*/
|
|
65
|
+
export declare function checkWritePath(policy: SafetyPolicy, path: string): PolicyViolation[];
|
|
66
|
+
/**
|
|
67
|
+
* Allow-list check over {@link SafetyPolicy.allowedNetworkDomains}: empty →
|
|
68
|
+
* unrestricted. Otherwise a single violation when `domain` is neither an allowed
|
|
69
|
+
* domain nor a subdomain of one (case-insensitive).
|
|
70
|
+
*/
|
|
71
|
+
export declare function checkNetworkDomain(policy: SafetyPolicy, domain: string): PolicyViolation[];
|
|
72
|
+
/**
|
|
73
|
+
* Flag check over {@link SafetyPolicy.approvalRequiredActions}: a violation when
|
|
74
|
+
* `action` exactly matches a listed action. Empty list → no violations.
|
|
75
|
+
*/
|
|
76
|
+
export declare function checkApprovalRequired(policy: SafetyPolicy, action: string): PolicyViolation[];
|
|
77
|
+
/**
|
|
78
|
+
* Read and normalize `.otto/policy.json` from a workspace. Absent or malformed
|
|
79
|
+
* file → {@link DEFAULT_POLICY} (never throws), so a missing/corrupt policy
|
|
80
|
+
* fails open to today's unrestricted behavior rather than blocking a run.
|
|
81
|
+
*/
|
|
82
|
+
export declare function readSafetyPolicy(workspaceDir: string): SafetyPolicy;
|
|
83
|
+
//# sourceMappingURL=safety-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safety-policy.d.ts","sourceRoot":"","sources":["../src/safety-policy.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,2EAA2E;IAC3E,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,gFAAgF;IAChF,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,6DAA6D;IAC7D,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,2EAA2E;IAC3E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,+EAA+E;IAC/E,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,8EAA8E;IAC9E,uBAAuB,EAAE,MAAM,EAAE,CAAC;CACnC,CAAC;AAYF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,YAOX,CAAC;AASnB;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAU5D;AAED,6DAA6D;AAC7D,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,YAAY,GACZ,gBAAgB,GAChB,mBAAmB,CAAC;AAExB;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,GACd,eAAe,EAAE,CAQnB;AAOD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,GACX,eAAe,EAAE,CAgBnB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,GACb,eAAe,EAAE,CAgBnB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,GACb,eAAe,EAAE,CAUnB;AAID;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,CAQnE"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
/** The six rule lists, in declaration order — the single source of field names. */
|
|
4
|
+
const RULE_FIELDS = [
|
|
5
|
+
"allowedWriteRoots",
|
|
6
|
+
"blockedCommands",
|
|
7
|
+
"allowedNetworkDomains",
|
|
8
|
+
"secretPatterns",
|
|
9
|
+
"highRiskGlobs",
|
|
10
|
+
"approvalRequiredActions",
|
|
11
|
+
];
|
|
12
|
+
/**
|
|
13
|
+
* The permissive default: every rule list empty, so a workspace with no
|
|
14
|
+
* `.otto/policy.json` behaves exactly as it does today (success metric #3).
|
|
15
|
+
*/
|
|
16
|
+
export const DEFAULT_POLICY = Object.freeze({
|
|
17
|
+
allowedWriteRoots: [],
|
|
18
|
+
blockedCommands: [],
|
|
19
|
+
allowedNetworkDomains: [],
|
|
20
|
+
secretPatterns: [],
|
|
21
|
+
highRiskGlobs: [],
|
|
22
|
+
approvalRequiredActions: [],
|
|
23
|
+
});
|
|
24
|
+
/** Coerce one field of an untrusted parsed object into a string list. */
|
|
25
|
+
function stringList(raw) {
|
|
26
|
+
return Array.isArray(raw)
|
|
27
|
+
? raw.filter((s) => typeof s === "string")
|
|
28
|
+
: [];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Normalize an untrusted parsed value into a {@link SafetyPolicy}, filling the
|
|
32
|
+
* permissive default for every missing/invalid field. Never throws: a
|
|
33
|
+
* non-object/array/null input → {@link DEFAULT_POLICY}; a non-array field → its
|
|
34
|
+
* default `[]`; non-string array elements are filtered. Always returns a fresh
|
|
35
|
+
* object with fresh arrays (never the shared frozen default reference).
|
|
36
|
+
*/
|
|
37
|
+
export function parseSafetyPolicy(raw) {
|
|
38
|
+
const o = raw !== null && typeof raw === "object" && !Array.isArray(raw)
|
|
39
|
+
? raw
|
|
40
|
+
: {};
|
|
41
|
+
const policy = {};
|
|
42
|
+
for (const field of RULE_FIELDS) {
|
|
43
|
+
policy[field] = stringList(o[field]);
|
|
44
|
+
}
|
|
45
|
+
return policy;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Deny-list check: a violation per {@link SafetyPolicy.blockedCommands} substring
|
|
49
|
+
* that appears in `command`. Empty list → no violations (DEFAULT_POLICY).
|
|
50
|
+
*/
|
|
51
|
+
export function checkCommand(policy, command) {
|
|
52
|
+
return policy.blockedCommands
|
|
53
|
+
.filter((pattern) => command.includes(pattern))
|
|
54
|
+
.map((pattern) => ({
|
|
55
|
+
kind: "blocked-command",
|
|
56
|
+
subject: command,
|
|
57
|
+
message: `command matches blocked pattern "${pattern}"`,
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
/** Strip trailing slashes so `src/` and `src` name the same root. */
|
|
61
|
+
function trimRoot(root) {
|
|
62
|
+
return root.replace(/\/+$/, "");
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Allow-list check over workspace-relative {@link SafetyPolicy.allowedWriteRoots}:
|
|
66
|
+
* empty → unrestricted (no violations). Otherwise a single violation when `path`
|
|
67
|
+
* is neither equal to nor nested under any allowed root. A root of `.` (or empty
|
|
68
|
+
* after trimming) permits the whole workspace.
|
|
69
|
+
*/
|
|
70
|
+
export function checkWritePath(policy, path) {
|
|
71
|
+
if (policy.allowedWriteRoots.length === 0)
|
|
72
|
+
return [];
|
|
73
|
+
const allowed = policy.allowedWriteRoots.some((raw) => {
|
|
74
|
+
const root = trimRoot(raw);
|
|
75
|
+
if (root === "" || root === ".")
|
|
76
|
+
return true;
|
|
77
|
+
return path === root || path.startsWith(root + "/");
|
|
78
|
+
});
|
|
79
|
+
return allowed
|
|
80
|
+
? []
|
|
81
|
+
: [
|
|
82
|
+
{
|
|
83
|
+
kind: "write-root",
|
|
84
|
+
subject: path,
|
|
85
|
+
message: "path is outside every allowed write root",
|
|
86
|
+
},
|
|
87
|
+
];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Allow-list check over {@link SafetyPolicy.allowedNetworkDomains}: empty →
|
|
91
|
+
* unrestricted. Otherwise a single violation when `domain` is neither an allowed
|
|
92
|
+
* domain nor a subdomain of one (case-insensitive).
|
|
93
|
+
*/
|
|
94
|
+
export function checkNetworkDomain(policy, domain) {
|
|
95
|
+
if (policy.allowedNetworkDomains.length === 0)
|
|
96
|
+
return [];
|
|
97
|
+
const d = domain.toLowerCase();
|
|
98
|
+
const allowed = policy.allowedNetworkDomains.some((raw) => {
|
|
99
|
+
const a = raw.toLowerCase();
|
|
100
|
+
return d === a || d.endsWith("." + a);
|
|
101
|
+
});
|
|
102
|
+
return allowed
|
|
103
|
+
? []
|
|
104
|
+
: [
|
|
105
|
+
{
|
|
106
|
+
kind: "network-domain",
|
|
107
|
+
subject: domain,
|
|
108
|
+
message: "domain is not in the allowed network domains",
|
|
109
|
+
},
|
|
110
|
+
];
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Flag check over {@link SafetyPolicy.approvalRequiredActions}: a violation when
|
|
114
|
+
* `action` exactly matches a listed action. Empty list → no violations.
|
|
115
|
+
*/
|
|
116
|
+
export function checkApprovalRequired(policy, action) {
|
|
117
|
+
return policy.approvalRequiredActions.includes(action)
|
|
118
|
+
? [
|
|
119
|
+
{
|
|
120
|
+
kind: "approval-required",
|
|
121
|
+
subject: action,
|
|
122
|
+
message: `action "${action}" requires human approval`,
|
|
123
|
+
},
|
|
124
|
+
]
|
|
125
|
+
: [];
|
|
126
|
+
}
|
|
127
|
+
const POLICY_REL = join(".otto", "policy.json");
|
|
128
|
+
/**
|
|
129
|
+
* Read and normalize `.otto/policy.json` from a workspace. Absent or malformed
|
|
130
|
+
* file → {@link DEFAULT_POLICY} (never throws), so a missing/corrupt policy
|
|
131
|
+
* fails open to today's unrestricted behavior rather than blocking a run.
|
|
132
|
+
*/
|
|
133
|
+
export function readSafetyPolicy(workspaceDir) {
|
|
134
|
+
let raw;
|
|
135
|
+
try {
|
|
136
|
+
raw = JSON.parse(readFileSync(join(workspaceDir, POLICY_REL), "utf8"));
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
return parseSafetyPolicy(undefined);
|
|
140
|
+
}
|
|
141
|
+
return parseSafetyPolicy(raw);
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=safety-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safety-policy.js","sourceRoot":"","sources":["../src/safety-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AA+BjC,mFAAmF;AACnF,MAAM,WAAW,GAAoC;IACnD,mBAAmB;IACnB,iBAAiB;IACjB,uBAAuB;IACvB,gBAAgB;IAChB,eAAe;IACf,yBAAyB;CAC1B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAiB,MAAM,CAAC,MAAM,CAAC;IACxD,iBAAiB,EAAE,EAAE;IACrB,eAAe,EAAE,EAAE;IACnB,qBAAqB,EAAE,EAAE;IACzB,cAAc,EAAE,EAAE;IAClB,aAAa,EAAE,EAAE;IACjB,uBAAuB,EAAE,EAAE;CAC5B,CAAiB,CAAC;AAEnB,yEAAyE;AACzE,SAAS,UAAU,CAAC,GAAY;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QACvB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QACvD,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,MAAM,CAAC,GACL,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAC5D,CAAC,CAAE,GAA+B;QAClC,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,MAAM,GAAG,EAAkB,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAoBD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAoB,EACpB,OAAe;IAEf,OAAO,MAAM,CAAC,eAAe;SAC1B,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SAC9C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACjB,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,oCAAoC,OAAO,GAAG;KACxD,CAAC,CAAC,CAAC;AACR,CAAC;AAED,qEAAqE;AACrE,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAoB,EACpB,IAAY;IAEZ,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAC7C,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,OAAO,OAAO;QACZ,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACE;gBACE,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,0CAA0C;aACpD;SACF,CAAC;AACR,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAoB,EACpB,MAAc;IAEd,IAAI,MAAM,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACzD,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACxD,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,OAAO,OAAO;QACZ,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACE;gBACE,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,8CAA8C;aACxD;SACF,CAAC;AACR,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAoB,EACpB,MAAc;IAEd,OAAO,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpD,CAAC,CAAC;YACE;gBACE,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,WAAW,MAAM,2BAA2B;aACtD;SACF;QACH,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAEhD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAoB;IACnD,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/stage-exec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage-exec.d.ts","sourceRoot":"","sources":["../src/stage-exec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIxE,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"stage-exec.d.ts","sourceRoot":"","sources":["../src/stage-exec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIxE,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAOrB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gGAAgG;IAChG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,CAAC;AAcF,0FAA0F;AAC1F,wBAAsB,YAAY,CAChC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,WAAW,CAAC,CA6EtB"}
|
package/dist/stage-exec.js
CHANGED
|
@@ -5,7 +5,19 @@ import { applyPromptReduction } from "./prompt-reduction.js";
|
|
|
5
5
|
import { renderTemplate } from "./render.js";
|
|
6
6
|
import { DEFAULT_BACKOFF_MS, backoffFor, withRetries } from "./retry.js";
|
|
7
7
|
import { getAgentRuntime, runStage, stageLogPath, } from "./runner.js";
|
|
8
|
+
import { readSafetyPolicy, } from "./safety-policy.js";
|
|
8
9
|
import { USE_COLOR, dim } from "./stream-render.js";
|
|
10
|
+
/** A policy violation found at a shell/@spill tag becomes a `blocked` trajectory
|
|
11
|
+
* safety event — the command was denied and skipped, so Otto prevented it. */
|
|
12
|
+
function violationToSafetyEvent(v) {
|
|
13
|
+
return {
|
|
14
|
+
category: "policy-violation",
|
|
15
|
+
kind: v.kind,
|
|
16
|
+
subject: v.subject,
|
|
17
|
+
message: v.message,
|
|
18
|
+
blocked: true,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
9
21
|
/** Render a stage's template (inside the retry, so flaky shell tags retry) and run it. */
|
|
10
22
|
export async function executeStage(opts) {
|
|
11
23
|
const { stage, vars, workspaceDir, packageDir, iteration, maxRetries, tokenMode = "off", signal, } = opts;
|
|
@@ -16,15 +28,31 @@ export async function executeStage(opts) {
|
|
|
16
28
|
const stageLog = stageLogPath(workspaceDir, iteration, label, opts.agentId);
|
|
17
29
|
mkdirSync(dirname(stageLog), { recursive: true });
|
|
18
30
|
const runtime = getAgentRuntime(opts.agentId ?? DEFAULT_AGENT);
|
|
19
|
-
|
|
20
|
-
|
|
31
|
+
// Load the repo-local safety policy once per stage (issue #43 P4). Absent or
|
|
32
|
+
// malformed `.otto/policy.json` → DEFAULT_POLICY (permissive), so the boundary
|
|
33
|
+
// checks threaded into renderTemplate below are a no-op for trusted workflows.
|
|
34
|
+
const policy = readSafetyPolicy(workspaceDir);
|
|
35
|
+
return withRetries(async () => {
|
|
36
|
+
// Fresh per attempt: a retried render (flaky shell tag) re-reports its
|
|
37
|
+
// violations, so the surviving attempt's events are the ones recorded.
|
|
38
|
+
const violations = [];
|
|
39
|
+
let prompt = renderTemplate(join(packageDir, "templates", stage.template), vars, {
|
|
40
|
+
cwd: workspaceDir,
|
|
41
|
+
spillHostDir,
|
|
42
|
+
spillRefPath,
|
|
43
|
+
policy,
|
|
44
|
+
onPolicyViolation: (v) => violations.push(v),
|
|
45
|
+
});
|
|
21
46
|
if (tokenMode === "reduce") {
|
|
22
47
|
const reduced = applyPromptReduction(prompt);
|
|
23
48
|
prompt = reduced.prompt;
|
|
24
49
|
const { originalChars, reducedChars, cacheHits } = reduced.stats;
|
|
25
50
|
process.stderr.write(`${dim(`prompt reduce ${originalChars} -> ${reducedChars} chars | cache hits ${cacheHits}`)}\n`);
|
|
26
51
|
}
|
|
27
|
-
|
|
52
|
+
const result = await runStage(stage, prompt, workspaceDir, iteration, spillHostDir, stageLog, { signal, runtime });
|
|
53
|
+
return violations.length > 0
|
|
54
|
+
? { ...result, safetyEvents: violations.map(violationToSafetyEvent) }
|
|
55
|
+
: result;
|
|
28
56
|
}, {
|
|
29
57
|
max: maxRetries,
|
|
30
58
|
backoffMs: DEFAULT_BACKOFF_MS,
|