pi-codex-auto-review 0.1.3 → 0.2.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/NOTICE +4 -2
- package/README.ko.md +85 -0
- package/README.md +51 -52
- package/dist/approval-commands.d.ts +3 -3
- package/dist/approval-commands.js +161 -34
- package/dist/approval-commands.js.map +1 -1
- package/dist/approval-settings.d.ts +1 -1
- package/dist/approval-settings.js +17 -10
- package/dist/approval-settings.js.map +1 -1
- package/dist/approvals.d.ts +10 -9
- package/dist/approvals.js +196 -75
- package/dist/approvals.js.map +1 -1
- package/dist/audit.d.ts +1 -1
- package/dist/audit.js +37 -13
- package/dist/audit.js.map +1 -1
- package/dist/cli.js +63 -34
- package/dist/cli.js.map +1 -1
- package/dist/context-files.d.ts +2 -2
- package/dist/context-files.js +40 -19
- package/dist/context-files.js.map +1 -1
- package/dist/contracts.d.ts +39 -39
- package/dist/contracts.js +117 -51
- package/dist/contracts.js.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.js +147 -43
- package/dist/index.js.map +1 -1
- package/dist/pi-host.js +3 -3
- package/dist/pi-host.js.map +1 -1
- package/dist/policy/domains.js +17 -7
- package/dist/policy/domains.js.map +1 -1
- package/dist/policy/index.d.ts +7 -7
- package/dist/policy/index.js +382 -139
- package/dist/policy/index.js.map +1 -1
- package/dist/policy/paths.js +31 -18
- package/dist/policy/paths.js.map +1 -1
- package/dist/policy/rule-engine.d.ts +2 -0
- package/dist/policy/rule-engine.js +283 -0
- package/dist/policy/rule-engine.js.map +1 -0
- package/dist/policy/rule-types.d.ts +30 -0
- package/dist/policy/rule-types.js +2 -0
- package/dist/policy/rule-types.js.map +1 -0
- package/dist/policy/rules-sync.d.ts +1 -0
- package/dist/policy/rules-sync.js +14 -0
- package/dist/policy/rules-sync.js.map +1 -0
- package/dist/policy/rules-worker.d.ts +1 -0
- package/dist/policy/rules-worker.js +14 -0
- package/dist/policy/rules-worker.js.map +1 -0
- package/dist/policy/rules.d.ts +4 -31
- package/dist/policy/rules.js +126 -38
- package/dist/policy/rules.js.map +1 -1
- package/dist/policy/shell.js +70 -41
- package/dist/policy/shell.js.map +1 -1
- package/dist/policy/starlark/builtins.d.ts +6 -0
- package/dist/policy/starlark/builtins.js +764 -0
- package/dist/policy/starlark/builtins.js.map +1 -0
- package/dist/policy/starlark/evaluator.d.ts +18 -0
- package/dist/policy/starlark/evaluator.js +518 -0
- package/dist/policy/starlark/evaluator.js.map +1 -0
- package/dist/policy/starlark/lexer.d.ts +14 -0
- package/dist/policy/starlark/lexer.js +189 -0
- package/dist/policy/starlark/lexer.js.map +1 -0
- package/dist/policy/starlark/parser.d.ts +140 -0
- package/dist/policy/starlark/parser.js +508 -0
- package/dist/policy/starlark/parser.js.map +1 -0
- package/dist/policy/starlark/validation.d.ts +4 -0
- package/dist/policy/starlark/validation.js +183 -0
- package/dist/policy/starlark/validation.js.map +1 -0
- package/dist/policy/starlark/values.d.ts +46 -0
- package/dist/policy/starlark/values.js +363 -0
- package/dist/policy/starlark/values.js.map +1 -0
- package/dist/reports.d.ts +1 -1
- package/dist/reports.js +66 -30
- package/dist/reports.js.map +1 -1
- package/dist/review/context.d.ts +16 -3
- package/dist/review/context.js +254 -48
- package/dist/review/context.js.map +1 -1
- package/dist/review/investigation.d.ts +2 -2
- package/dist/review/investigation.js +57 -16
- package/dist/review/investigation.js.map +1 -1
- package/dist/review/lifecycle.d.ts +1 -1
- package/dist/review/lifecycle.js +72 -29
- package/dist/review/lifecycle.js.map +1 -1
- package/dist/review/policy.js +27 -5
- package/dist/review/policy.js.map +1 -1
- package/dist/review/upstream-policy.js +1 -1
- package/dist/review/upstream-policy.js.map +1 -1
- package/dist/review/user-input.d.ts +5 -0
- package/dist/review/user-input.js +54 -0
- package/dist/review/user-input.js.map +1 -0
- package/dist/reviewer.d.ts +16 -6
- package/dist/reviewer.js +258 -70
- package/dist/reviewer.js.map +1 -1
- package/dist/signals.js +24 -9
- package/dist/signals.js.map +1 -1
- package/dist/startup.d.ts +4 -4
- package/dist/startup.js +139 -41
- package/dist/startup.js.map +1 -1
- package/dist/tools/controller.d.ts +19 -13
- package/dist/tools/controller.js +460 -118
- package/dist/tools/controller.js.map +1 -1
- package/dist/tools/environment.d.ts +1 -0
- package/dist/tools/environment.js +5 -0
- package/dist/tools/environment.js.map +1 -1
- package/dist/tools/executor.d.ts +1 -1
- package/dist/tools/executor.js +45 -28
- package/dist/tools/executor.js.map +1 -1
- package/dist/tools/external.d.ts +9 -8
- package/dist/tools/external.js +22 -11
- package/dist/tools/external.js.map +1 -1
- package/dist/tools/mcp.d.ts +6 -6
- package/dist/tools/mcp.js +208 -79
- package/dist/tools/mcp.js.map +1 -1
- package/dist/tools/mutation-queue.js.map +1 -1
- package/docs/publishing.ko.md +114 -0
- package/docs/publishing.md +49 -47
- package/docs/security/dependencies.ko.md +54 -0
- package/docs/security/dependencies.md +27 -26
- package/docs/testing/auto-review-protection.ko.md +158 -0
- package/docs/testing/auto-review-protection.md +105 -97
- package/docs/usage.ko.md +242 -0
- package/docs/usage.md +127 -111
- package/package.json +106 -95
- package/dist/native/darwin-arm64/artifact.json +0 -5
- package/dist/native/darwin-arm64/pi-guard-execpolicy +0 -0
- package/dist/native/linux-x64/artifact.json +0 -5
- package/dist/native/linux-x64/pi-guard-execpolicy +0 -0
- package/native/execpolicy/LICENSE +0 -201
- package/native/execpolicy/NOTICE +0 -6
package/dist/reports.js
CHANGED
|
@@ -1,42 +1,78 @@
|
|
|
1
|
-
import { GuardError } from
|
|
1
|
+
import { GuardError } from "./contracts.js";
|
|
2
2
|
export function validateEvidence(evidence, requiredBehavior, expected) {
|
|
3
|
-
if (!evidence ||
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
throw new GuardError(
|
|
3
|
+
if (!evidence ||
|
|
4
|
+
!["pass", "fail", "environment-blocked", "not-run"].includes(evidence.status))
|
|
5
|
+
throw new GuardError("INVALID_EVIDENCE", "Unknown evidence status");
|
|
6
|
+
if (!evidence.testFiles?.length ||
|
|
7
|
+
new Set(evidence.testFiles).size !== evidence.testFiles.length ||
|
|
8
|
+
!evidence.tests?.length)
|
|
9
|
+
throw new GuardError("MISSING_EVIDENCE", "Missing or duplicate test files / empty suite");
|
|
10
|
+
if (new Set(evidence.tests.map((t) => t.name)).size !==
|
|
11
|
+
evidence.tests.length)
|
|
12
|
+
throw new GuardError("DUPLICATE_EVIDENCE", "Duplicate test names");
|
|
13
|
+
if (!evidence.contractDigest ||
|
|
14
|
+
!evidence.sourceDigest ||
|
|
15
|
+
!evidence.platform ||
|
|
16
|
+
!evidence.runtimeVersions ||
|
|
17
|
+
!Object.keys(evidence.runtimeVersions).length)
|
|
18
|
+
throw new GuardError("STALE_EVIDENCE", "Missing evidence versions");
|
|
19
|
+
if (expected &&
|
|
20
|
+
(expected.contractDigest !== evidence.contractDigest ||
|
|
21
|
+
expected.sourceDigest !== evidence.sourceDigest))
|
|
22
|
+
throw new GuardError("STALE_EVIDENCE", "Evidence does not match current source");
|
|
13
23
|
if (expected?.platform && evidence.platform !== expected.platform)
|
|
14
|
-
throw new GuardError(
|
|
15
|
-
if (expected?.requireRun &&
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
throw new GuardError("WRONG_PLATFORM", "Evidence does not match the required platform and architecture");
|
|
25
|
+
if (expected?.requireRun &&
|
|
26
|
+
(evidence.schemaVersion !== 2 ||
|
|
27
|
+
!evidence.runId ||
|
|
28
|
+
!evidence.artifactPath ||
|
|
29
|
+
!evidence.startedAt ||
|
|
30
|
+
!evidence.recordedAt ||
|
|
31
|
+
evidence.provenance !== "executed"))
|
|
32
|
+
throw new GuardError("MISSING_PROVENANCE", "Qualification requires an executed, addressable run");
|
|
33
|
+
if (evidence.provenance === "synthetic" &&
|
|
34
|
+
evidence.evidenceKind === "native-os")
|
|
35
|
+
throw new GuardError("FALSE_NATIVE", "Synthetic storage fixtures cannot qualify native execution");
|
|
36
|
+
if (evidence.status === "pass") {
|
|
37
|
+
if (evidence.blockedReasons.length ||
|
|
38
|
+
evidence.tests.some((t) => t.status !== "pass" || t.isSkipped))
|
|
39
|
+
throw new GuardError("FALSE_PASS", "Skipped, blocked or failed tests cannot pass");
|
|
22
40
|
for (const requirement of requiredBehavior) {
|
|
23
|
-
if (!evidence.coveredBehavior.includes(requirement) ||
|
|
24
|
-
|
|
41
|
+
if (!evidence.coveredBehavior.includes(requirement) ||
|
|
42
|
+
!evidence.tests.some((t) => t.name.includes(`[${requirement}]`) &&
|
|
43
|
+
t.status === "pass"))
|
|
44
|
+
throw new GuardError("MISSING_COVERAGE", `Missing executed proof for ${requirement}`);
|
|
25
45
|
}
|
|
26
|
-
if (evidence.suite ===
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
46
|
+
if (evidence.suite === "native" &&
|
|
47
|
+
evidence.evidenceKind !== "native-os")
|
|
48
|
+
throw new GuardError("FALSE_NATIVE", "Native evidence requires OS controls");
|
|
49
|
+
if (evidence.suite === "native" &&
|
|
50
|
+
(!evidence.nativeControls?.some((control) => control.kind === "allow" &&
|
|
51
|
+
control.isObserved &&
|
|
52
|
+
control.platform === evidence.platform) ||
|
|
53
|
+
!evidence.nativeControls.some((control) => control.kind === "deny" &&
|
|
54
|
+
control.isObserved &&
|
|
55
|
+
control.platform === evidence.platform)))
|
|
56
|
+
throw new GuardError("FALSE_NATIVE", "Native evidence requires observed permitted and denied controls");
|
|
30
57
|
}
|
|
31
58
|
}
|
|
32
59
|
export function validatePlatformEvidence(record, requirements, expected) {
|
|
33
|
-
if (
|
|
34
|
-
|
|
60
|
+
if (record?.status !== "pass" ||
|
|
61
|
+
!record.runId ||
|
|
62
|
+
record.platform !== expected.platform ||
|
|
63
|
+
record.sourceDigest !== expected.sourceDigest ||
|
|
64
|
+
record.contractDigest !== expected.contractDigest)
|
|
65
|
+
throw new GuardError("STALE_PLATFORM", "Missing matching platform qualification");
|
|
35
66
|
for (const [name, suite] of Object.entries(requirements)) {
|
|
36
67
|
const result = record.results?.[name];
|
|
37
|
-
validateEvidence(result, suite.behavior, {
|
|
38
|
-
|
|
39
|
-
|
|
68
|
+
validateEvidence(result, suite.behavior, {
|
|
69
|
+
...expected,
|
|
70
|
+
requireRun: true,
|
|
71
|
+
});
|
|
72
|
+
if (result.suite !== name ||
|
|
73
|
+
result.runId !== record.runId ||
|
|
74
|
+
result.status !== "pass")
|
|
75
|
+
throw new GuardError("INCOMPLETE_PLATFORM", "Platform suites must pass in the recorded run");
|
|
40
76
|
}
|
|
41
77
|
}
|
|
42
78
|
//# sourceMappingURL=reports.js.map
|
package/dist/reports.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reports.js","sourceRoot":"","sources":["../src/reports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,MAAM,gBAAgB,CAAC;AAE/D,MAAM,UAAU,gBAAgB,
|
|
1
|
+
{"version":3,"file":"reports.js","sourceRoot":"","sources":["../src/reports.ts"],"names":[],"mappings":"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"}
|
package/dist/review/context.d.ts
CHANGED
|
@@ -1,24 +1,37 @@
|
|
|
1
|
-
import type { BeforeAgentStartEvent, ExtensionContext } from
|
|
2
|
-
import { type Json, type ReviewContext } from
|
|
1
|
+
import type { BeforeAgentStartEvent, ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
2
|
+
import { type GuardAction, type Json, type ReviewContext, type ReviewContextItem, type ReviewResult } from "../contracts.js";
|
|
3
3
|
export declare const AUTHORIZATION_ENTRY = "pi-codex-auto-review.authorization.v1";
|
|
4
|
+
export declare const REVIEW_CONTEXT_ENTRY = "pi-codex-auto-review.context.v1";
|
|
4
5
|
export declare function safeEvidence(value: Json): Json;
|
|
5
6
|
/** Retains genuine authorization separately from summaries and extension-generated messages. */
|
|
6
7
|
export declare class ReviewContextStore {
|
|
8
|
+
private readonly persist?;
|
|
7
9
|
private items;
|
|
8
10
|
private sessionId;
|
|
9
11
|
private contextId;
|
|
10
12
|
private turnId;
|
|
11
13
|
private authorizationVersion;
|
|
14
|
+
private instructionOptions?;
|
|
15
|
+
private nativeResultIds;
|
|
16
|
+
constructor(persist?: ((item: ReviewContextItem) => void) | undefined);
|
|
12
17
|
get identity(): string;
|
|
13
18
|
get turnIdentity(): string;
|
|
14
19
|
get scopeVersion(): number;
|
|
15
|
-
reset(sessionId: string, manager?: ExtensionContext[
|
|
20
|
+
reset(sessionId: string, manager?: ExtensionContext["sessionManager"]): void;
|
|
16
21
|
startTurn(): void;
|
|
17
22
|
authorize(text: string, id?: string): void;
|
|
18
23
|
confirm(content: Json, id?: string): void;
|
|
24
|
+
recordUserAnswer(content: Json): void;
|
|
19
25
|
instructions(event: BeforeAgentStartEvent): void;
|
|
26
|
+
refreshInstructions(): void;
|
|
27
|
+
finalizeInstructions(): void;
|
|
20
28
|
message(message: unknown, id?: string): void;
|
|
29
|
+
mainPrompt(text: string): void;
|
|
30
|
+
summary(text: string, id: string): void;
|
|
31
|
+
assessment(action: GuardAction, result: ReviewResult): void;
|
|
32
|
+
callIdentity(toolCallId: string): string;
|
|
21
33
|
toolCall(content: Json, id: string): void;
|
|
34
|
+
preparedAction(action: GuardAction): void;
|
|
22
35
|
toolResult(content: Json, id: string): void;
|
|
23
36
|
private add;
|
|
24
37
|
snapshot(maxChars: number, exactActionChars?: number): ReviewContext;
|
package/dist/review/context.js
CHANGED
|
@@ -1,96 +1,294 @@
|
|
|
1
|
-
import { randomUUID } from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
export const AUTHORIZATION_ENTRY =
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { redact } from "../audit.js";
|
|
3
|
+
import { canonicalJson, digest, GuardError, immutable, } from "../contracts.js";
|
|
4
|
+
export const AUTHORIZATION_ENTRY = "pi-codex-auto-review.authorization.v1";
|
|
5
|
+
export const REVIEW_CONTEXT_ENTRY = "pi-codex-auto-review.context.v1";
|
|
5
6
|
export function safeEvidence(value) {
|
|
6
|
-
if (typeof value ===
|
|
7
|
+
if (typeof value === "string")
|
|
7
8
|
return redact(value);
|
|
8
9
|
if (Array.isArray(value))
|
|
9
10
|
return value.map(safeEvidence);
|
|
10
|
-
if (value && typeof value ===
|
|
11
|
-
return Object.fromEntries(Object.entries(value).map(([key, item]) => [
|
|
11
|
+
if (value && typeof value === "object")
|
|
12
|
+
return Object.fromEntries(Object.entries(value).map(([key, item]) => [
|
|
13
|
+
key,
|
|
14
|
+
/^(authorization|api[_-]?key|token|password|secret)$/i.test(key)
|
|
15
|
+
? "[REDACTED]"
|
|
16
|
+
: safeEvidence(item),
|
|
17
|
+
]));
|
|
12
18
|
return value;
|
|
13
19
|
}
|
|
14
20
|
function visibleMessage(message) {
|
|
15
|
-
if (!message || typeof message !==
|
|
21
|
+
if (!message || typeof message !== "object")
|
|
16
22
|
return;
|
|
17
23
|
const raw = message;
|
|
18
|
-
|
|
24
|
+
const role = raw.role;
|
|
25
|
+
if (!role || !["assistant", "toolResult", "user"].includes(role))
|
|
19
26
|
return;
|
|
20
|
-
const content = typeof raw.content ===
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
const content = typeof raw.content === "string"
|
|
28
|
+
? raw.content
|
|
29
|
+
: Array.isArray(raw.content)
|
|
30
|
+
? raw.content.flatMap((item) => {
|
|
31
|
+
if (item.type === "text")
|
|
32
|
+
return [{ type: "text", text: String(item.text) }];
|
|
33
|
+
if (item.type === "toolCall")
|
|
34
|
+
return [
|
|
35
|
+
{
|
|
36
|
+
type: "toolCall",
|
|
37
|
+
id: String(item.id),
|
|
38
|
+
name: String(item.name),
|
|
39
|
+
arguments: JSON.parse(canonicalJson(item.arguments)),
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
return []; // Private reasoning, signatures and binary payloads never enter review.
|
|
43
|
+
})
|
|
44
|
+
: [];
|
|
45
|
+
return safeEvidence({
|
|
46
|
+
role,
|
|
47
|
+
content,
|
|
48
|
+
...(raw.toolCallId ? { toolCallId: raw.toolCallId } : {}),
|
|
49
|
+
...(raw.toolName ? { tool: raw.toolName } : {}),
|
|
50
|
+
...(typeof raw.isError === "boolean" ? { isError: raw.isError } : {}),
|
|
51
|
+
});
|
|
28
52
|
}
|
|
29
53
|
/** Retains genuine authorization separately from summaries and extension-generated messages. */
|
|
30
54
|
export class ReviewContextStore {
|
|
55
|
+
persist;
|
|
31
56
|
items = new Map();
|
|
32
|
-
sessionId =
|
|
57
|
+
sessionId = "";
|
|
33
58
|
contextId = randomUUID();
|
|
34
59
|
turnId = randomUUID();
|
|
35
60
|
authorizationVersion = 0;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
61
|
+
instructionOptions;
|
|
62
|
+
nativeResultIds = new Set();
|
|
63
|
+
constructor(persist) {
|
|
64
|
+
this.persist = persist;
|
|
65
|
+
}
|
|
66
|
+
get identity() {
|
|
67
|
+
return this.contextId;
|
|
68
|
+
}
|
|
69
|
+
get turnIdentity() {
|
|
70
|
+
return this.turnId;
|
|
71
|
+
}
|
|
72
|
+
get scopeVersion() {
|
|
73
|
+
return this.authorizationVersion;
|
|
74
|
+
}
|
|
39
75
|
reset(sessionId, manager) {
|
|
40
76
|
this.sessionId = sessionId;
|
|
41
77
|
this.contextId = randomUUID();
|
|
42
78
|
this.turnId = randomUUID();
|
|
43
79
|
this.items.clear();
|
|
44
80
|
this.authorizationVersion++;
|
|
81
|
+
this.instructionOptions = undefined;
|
|
82
|
+
this.nativeResultIds.clear();
|
|
45
83
|
for (const entry of manager?.getBranch?.() ?? []) {
|
|
46
|
-
if (entry.type ===
|
|
84
|
+
if (entry.type === "custom" &&
|
|
85
|
+
entry.customType === AUTHORIZATION_ENTRY) {
|
|
47
86
|
const data = entry.data;
|
|
48
|
-
if (typeof data?.text ===
|
|
87
|
+
if (typeof data?.text === "string" &&
|
|
88
|
+
["interactive", "rpc"].includes(String(data.source)))
|
|
49
89
|
this.authorize(data.text, entry.id);
|
|
50
90
|
}
|
|
51
|
-
else if (entry.type ===
|
|
91
|
+
else if (entry.type === "custom" &&
|
|
92
|
+
entry.customType === REVIEW_CONTEXT_ENTRY) {
|
|
93
|
+
const item = entry.data;
|
|
94
|
+
const isReview = item?.source === "assistant" &&
|
|
95
|
+
item.content &&
|
|
96
|
+
typeof item.content === "object" &&
|
|
97
|
+
!Array.isArray(item.content) &&
|
|
98
|
+
item.content.role === "previous-review";
|
|
99
|
+
if (item &&
|
|
100
|
+
typeof item.id === "string" &&
|
|
101
|
+
(["tool-call", "tool-result", "user-confirmation"].includes(item.source) ||
|
|
102
|
+
isReview) &&
|
|
103
|
+
item.trust ===
|
|
104
|
+
(item.source === "user-confirmation"
|
|
105
|
+
? "authorization"
|
|
106
|
+
: "evidence") &&
|
|
107
|
+
item.content !== undefined) {
|
|
108
|
+
this.add(item.source, item.trust, item.content, item.id, false, item.isTruncated);
|
|
109
|
+
if (item.source === "tool-result" &&
|
|
110
|
+
item.content &&
|
|
111
|
+
typeof item.content === "object" &&
|
|
112
|
+
!Array.isArray(item.content) &&
|
|
113
|
+
typeof item.content.toolCallId === "string")
|
|
114
|
+
this.nativeResultIds.add(item.content.toolCallId);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else if (entry.type === "message")
|
|
52
118
|
this.message(entry.message, entry.id);
|
|
53
|
-
else if (entry.type ===
|
|
54
|
-
|
|
119
|
+
else if (entry.type === "compaction" ||
|
|
120
|
+
entry.type === "branch_summary")
|
|
121
|
+
this.summary(entry.summary, entry.id);
|
|
55
122
|
}
|
|
56
123
|
}
|
|
57
|
-
startTurn() {
|
|
58
|
-
|
|
59
|
-
|
|
124
|
+
startTurn() {
|
|
125
|
+
this.turnId = randomUUID();
|
|
126
|
+
this.nativeResultIds.clear();
|
|
127
|
+
}
|
|
128
|
+
authorize(text, id = randomUUID()) {
|
|
129
|
+
this.add("user", "authorization", text, id);
|
|
130
|
+
}
|
|
131
|
+
confirm(content, id = randomUUID()) {
|
|
132
|
+
this.add("user-confirmation", "authorization", content, id, true);
|
|
133
|
+
}
|
|
134
|
+
recordUserAnswer(content) {
|
|
135
|
+
this.confirm(content);
|
|
136
|
+
this.authorizationVersion++;
|
|
137
|
+
}
|
|
60
138
|
instructions(event) {
|
|
139
|
+
// Pi shares this mutable options object across all before_agent_start handlers.
|
|
140
|
+
// Refresh again at admission, after later extensions have finished changing it.
|
|
141
|
+
this.instructionOptions = event.systemPromptOptions;
|
|
142
|
+
this.refreshInstructions();
|
|
143
|
+
}
|
|
144
|
+
refreshInstructions() {
|
|
145
|
+
const options = this.instructionOptions;
|
|
146
|
+
if (!options)
|
|
147
|
+
return;
|
|
148
|
+
const contextFiles = options.forceSystemPrompt !== undefined ? [] : options.contextFiles;
|
|
61
149
|
// The structured runtime source establishes provenance, never a filename found in tool output.
|
|
62
|
-
const current = new Set(
|
|
150
|
+
const current = new Set(contextFiles.map((file) => `agents:${file.path}`));
|
|
63
151
|
for (const [id, item] of this.items)
|
|
64
|
-
if (item.source ===
|
|
152
|
+
if (item.source === "agents" && !current.has(id)) {
|
|
65
153
|
this.items.delete(id);
|
|
66
154
|
this.authorizationVersion++;
|
|
67
155
|
}
|
|
68
|
-
for (const file of
|
|
69
|
-
this.add(
|
|
70
|
-
for (const
|
|
156
|
+
for (const file of contextFiles)
|
|
157
|
+
this.add("agents", "authorization", { path: file.path, content: file.content }, `agents:${file.path}`);
|
|
158
|
+
for (const name of [
|
|
159
|
+
"customPrompt",
|
|
160
|
+
"appendSystemPrompt",
|
|
161
|
+
"forceSystemPrompt",
|
|
162
|
+
]) {
|
|
163
|
+
const content = options.forceSystemPrompt !== undefined &&
|
|
164
|
+
name !== "forceSystemPrompt"
|
|
165
|
+
? undefined
|
|
166
|
+
: options[name];
|
|
71
167
|
if (content)
|
|
72
|
-
this.add(
|
|
168
|
+
this.add("developer", "authorization", content, `runtime:${name}`);
|
|
169
|
+
else if (this.items.delete(`runtime:${name}`))
|
|
170
|
+
this.authorizationVersion++;
|
|
73
171
|
}
|
|
74
172
|
}
|
|
173
|
+
finalizeInstructions() {
|
|
174
|
+
this.refreshInstructions();
|
|
175
|
+
this.instructionOptions = undefined;
|
|
176
|
+
}
|
|
75
177
|
message(message, id = randomUUID()) {
|
|
178
|
+
const raw = message;
|
|
179
|
+
// tool_execution_end carries the final result plus nested/structured metadata.
|
|
180
|
+
if (raw?.role === "toolResult" &&
|
|
181
|
+
raw.toolCallId &&
|
|
182
|
+
this.nativeResultIds.delete(raw.toolCallId))
|
|
183
|
+
return;
|
|
76
184
|
const content = visibleMessage(message);
|
|
77
185
|
if (content !== undefined)
|
|
78
|
-
this.add(message.role ===
|
|
186
|
+
this.add(message.role === "toolResult"
|
|
187
|
+
? "tool-result"
|
|
188
|
+
: "assistant", "evidence", content, id);
|
|
189
|
+
}
|
|
190
|
+
mainPrompt(text) {
|
|
191
|
+
this.add("assistant", "evidence", { role: "main-agent-system-prompt", text }, "runtime:main-prompt");
|
|
192
|
+
}
|
|
193
|
+
summary(text, id) {
|
|
194
|
+
this.add("assistant", "evidence", { role: "summary", text }, id);
|
|
195
|
+
}
|
|
196
|
+
assessment(action, result) {
|
|
197
|
+
this.add("assistant", "evidence", {
|
|
198
|
+
role: "previous-review",
|
|
199
|
+
callIdentity: this.callIdentity(action.toolCallId),
|
|
200
|
+
toolCallId: action.toolCallId,
|
|
201
|
+
actionDigest: action.digest,
|
|
202
|
+
result: JSON.parse(canonicalJson(result)),
|
|
203
|
+
}, `review:${this.callIdentity(action.toolCallId)}`, true);
|
|
79
204
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
205
|
+
callIdentity(toolCallId) {
|
|
206
|
+
return `${this.turnId}:${toolCallId}`;
|
|
207
|
+
}
|
|
208
|
+
toolCall(content, id) {
|
|
209
|
+
this.add("tool-call", "evidence", content, `call:${id}`);
|
|
210
|
+
}
|
|
211
|
+
preparedAction(action) {
|
|
212
|
+
const callIdentity = this.callIdentity(action.toolCallId), previous = this.items.get(`call:${callIdentity}`)?.content;
|
|
213
|
+
const metadata = previous && typeof previous === "object" && !Array.isArray(previous)
|
|
214
|
+
? Object.fromEntries(Object.entries(previous).filter(([key]) => ["parentToolCallId", "parentCallIdentity"].includes(key)))
|
|
215
|
+
: {};
|
|
216
|
+
this.add("tool-call", "evidence", {
|
|
217
|
+
...metadata,
|
|
218
|
+
stage: "prepared",
|
|
219
|
+
callIdentity,
|
|
220
|
+
toolCallId: action.toolCallId,
|
|
221
|
+
actionDigest: action.digest,
|
|
222
|
+
tool: action.tool,
|
|
223
|
+
args: action.args,
|
|
224
|
+
cwd: action.cwd,
|
|
225
|
+
source: action.source,
|
|
226
|
+
}, `call:${callIdentity}`, true);
|
|
227
|
+
}
|
|
228
|
+
toolResult(content, id) {
|
|
229
|
+
this.add("tool-result", "evidence", content, `result:${id}`, true);
|
|
230
|
+
if (content &&
|
|
231
|
+
typeof content === "object" &&
|
|
232
|
+
!Array.isArray(content) &&
|
|
233
|
+
typeof content.toolCallId === "string")
|
|
234
|
+
this.nativeResultIds.add(content.toolCallId);
|
|
235
|
+
}
|
|
236
|
+
add(source, trust, content, id, shouldPersist = false, isTruncated = false) {
|
|
237
|
+
let safe = safeEvidence(content);
|
|
238
|
+
const text = canonicalJson(safe), maxChars = source === "tool-call" || source === "tool-result"
|
|
239
|
+
? 4000
|
|
240
|
+
: 20000;
|
|
241
|
+
if (trust === "evidence" && text.length > maxChars) {
|
|
242
|
+
const metadata = safe && typeof safe === "object" && !Array.isArray(safe)
|
|
243
|
+
? Object.fromEntries(Object.entries(safe).filter(([key]) => [
|
|
244
|
+
"role",
|
|
245
|
+
"tool",
|
|
246
|
+
"toolCallId",
|
|
247
|
+
"parentToolCallId",
|
|
248
|
+
"callIdentity",
|
|
249
|
+
"parentCallIdentity",
|
|
250
|
+
"isError",
|
|
251
|
+
"stage",
|
|
252
|
+
].includes(key)))
|
|
253
|
+
: {};
|
|
254
|
+
const half = Math.floor((maxChars - 300) / 2);
|
|
255
|
+
safe = {
|
|
256
|
+
...metadata,
|
|
257
|
+
excerpt: `${text.slice(0, half)}\n<truncated reason="review-entry-budget" />\n${text.slice(-half)}`,
|
|
258
|
+
originalChars: text.length,
|
|
259
|
+
};
|
|
260
|
+
isTruncated = true;
|
|
261
|
+
}
|
|
262
|
+
if (trust === "authorization" &&
|
|
263
|
+
source !== "user-confirmation" &&
|
|
264
|
+
canonicalJson(this.items.get(id)?.content ?? null) !==
|
|
265
|
+
canonicalJson(safe))
|
|
84
266
|
this.authorizationVersion++;
|
|
85
|
-
|
|
267
|
+
const item = immutable({
|
|
268
|
+
id,
|
|
269
|
+
source,
|
|
270
|
+
trust,
|
|
271
|
+
content: safe,
|
|
272
|
+
...(isTruncated ? { isTruncated: true } : {}),
|
|
273
|
+
});
|
|
274
|
+
this.items.set(id, item);
|
|
275
|
+
if (shouldPersist)
|
|
276
|
+
this.persist?.(item);
|
|
86
277
|
}
|
|
87
278
|
snapshot(maxChars, exactActionChars = 0) {
|
|
88
|
-
const authorization = [...this.items.values()].filter(item => item.trust ===
|
|
89
|
-
const evidence = [...this.items.values()].filter(item => item.trust ===
|
|
90
|
-
const fields = {
|
|
91
|
-
|
|
279
|
+
const authorization = [...this.items.values()].filter((item) => item.trust === "authorization");
|
|
280
|
+
const evidence = [...this.items.values()].filter((item) => item.trust === "evidence");
|
|
281
|
+
const fields = {
|
|
282
|
+
sessionId: this.sessionId,
|
|
283
|
+
contextId: this.contextId,
|
|
284
|
+
turnId: this.turnId,
|
|
285
|
+
};
|
|
286
|
+
let remaining = maxChars -
|
|
287
|
+
exactActionChars -
|
|
288
|
+
canonicalJson({ ...fields, items: authorization }).length -
|
|
289
|
+
512;
|
|
92
290
|
if (remaining < 0)
|
|
93
|
-
throw new GuardError(
|
|
291
|
+
throw new GuardError("REVIEW_CONTEXT_OVERFLOW", "Required authorization and exact action exceed review context capacity");
|
|
94
292
|
const retained = [];
|
|
95
293
|
for (const item of evidence.reverse()) {
|
|
96
294
|
const text = canonicalJson(item);
|
|
@@ -99,9 +297,17 @@ export class ReviewContextStore {
|
|
|
99
297
|
remaining -= text.length;
|
|
100
298
|
}
|
|
101
299
|
}
|
|
300
|
+
const retainedIds = new Set([...authorization, ...retained].map((item) => item.id));
|
|
301
|
+
const ordered = [...this.items.values()].filter((item) => retainedIds.has(item.id));
|
|
102
302
|
if (retained.length !== evidence.length)
|
|
103
|
-
|
|
104
|
-
|
|
303
|
+
ordered.unshift({
|
|
304
|
+
id: "omission",
|
|
305
|
+
source: "assistant",
|
|
306
|
+
trust: "evidence",
|
|
307
|
+
content: '<truncated reason="review-context-budget" />',
|
|
308
|
+
isTruncated: true,
|
|
309
|
+
});
|
|
310
|
+
const data = { ...fields, items: ordered };
|
|
105
311
|
return immutable({ ...data, digest: digest(data) });
|
|
106
312
|
}
|
|
107
313
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/review/context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/review/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type PermissionProfile } from
|
|
2
|
-
import type { ToolExecutor } from
|
|
1
|
+
import { type PermissionProfile } from "../contracts.js";
|
|
2
|
+
import type { ToolExecutor } from "../tools/executor.js";
|
|
3
3
|
export declare const INVESTIGATION_TOOLS: readonly [{
|
|
4
4
|
readonly name: "inspect_file";
|
|
5
5
|
readonly description: "Read local text without modifying it; use only when it changes the review decision.";
|