@osovv/vv-opencode 1.5.0 → 1.6.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/CHANGELOG.md +9 -0
- package/README.md +39 -8
- package/dist/lib/agent-tool-catalog.d.ts +144 -0
- package/dist/lib/agent-tool-catalog.js +2551 -0
- package/dist/lib/agent-tool-catalog.js.map +1 -0
- package/dist/lib/agent-tool-contract.d.ts +200 -0
- package/dist/lib/agent-tool-contract.js +407 -0
- package/dist/lib/agent-tool-contract.js.map +1 -0
- package/dist/lib/workflow-contract.d.ts +12 -0
- package/dist/lib/workflow-contract.js +71 -18
- package/dist/lib/workflow-contract.js.map +1 -1
- package/dist/plugins/hashline-edit/index.js +102 -97
- package/dist/plugins/hashline-edit/index.js.map +1 -1
- package/dist/plugins/hashline-edit/normalize-edits.d.ts +2 -8
- package/dist/plugins/hashline-edit/normalize-edits.js +32 -17
- package/dist/plugins/hashline-edit/normalize-edits.js.map +1 -1
- package/dist/plugins/hashline-edit/schemas.d.ts +246 -0
- package/dist/plugins/hashline-edit/schemas.js +659 -0
- package/dist/plugins/hashline-edit/schemas.js.map +1 -0
- package/dist/plugins/hashline-edit/str-replace-editor.d.ts +6 -17
- package/dist/plugins/hashline-edit/str-replace-editor.js +19 -21
- package/dist/plugins/hashline-edit/str-replace-editor.js.map +1 -1
- package/dist/plugins/hashline-edit/tool-description.d.ts +1 -0
- package/dist/plugins/hashline-edit/tool-description.js +20 -4
- package/dist/plugins/hashline-edit/tool-description.js.map +1 -1
- package/dist/plugins/web-tools/fetch-service.d.ts +8 -5
- package/dist/plugins/web-tools/fetch-service.js +30 -45
- package/dist/plugins/web-tools/fetch-service.js.map +1 -1
- package/dist/plugins/web-tools/index.js +23 -5
- package/dist/plugins/web-tools/index.js.map +1 -1
- package/dist/plugins/web-tools/schemas.d.ts +469 -0
- package/dist/plugins/web-tools/schemas.js +523 -0
- package/dist/plugins/web-tools/schemas.js.map +1 -0
- package/dist/plugins/web-tools/search-service.d.ts +6 -3
- package/dist/plugins/web-tools/search-service.js +24 -29
- package/dist/plugins/web-tools/search-service.js.map +1 -1
- package/dist/plugins/workflow/authority.d.ts +6 -0
- package/dist/plugins/workflow/authority.js +45 -10
- package/dist/plugins/workflow/authority.js.map +1 -1
- package/dist/plugins/workflow/authorization.js +16 -8
- package/dist/plugins/workflow/authorization.js.map +1 -1
- package/dist/plugins/workflow/checkpoints.d.ts +41 -2
- package/dist/plugins/workflow/checkpoints.js +176 -47
- package/dist/plugins/workflow/checkpoints.js.map +1 -1
- package/dist/plugins/workflow/delegated.d.ts +15 -1
- package/dist/plugins/workflow/delegated.js +65 -35
- package/dist/plugins/workflow/delegated.js.map +1 -1
- package/dist/plugins/workflow/execution.d.ts +15 -30
- package/dist/plugins/workflow/execution.js +133 -33
- package/dist/plugins/workflow/execution.js.map +1 -1
- package/dist/plugins/workflow/index.js +177 -112
- package/dist/plugins/workflow/index.js.map +1 -1
- package/dist/plugins/workflow/input-validation.d.ts +48 -0
- package/dist/plugins/workflow/input-validation.js +536 -0
- package/dist/plugins/workflow/input-validation.js.map +1 -0
- package/dist/plugins/workflow/inspection.d.ts +60 -0
- package/dist/plugins/workflow/inspection.js +316 -0
- package/dist/plugins/workflow/inspection.js.map +1 -0
- package/dist/plugins/workflow/protocol.d.ts +2 -0
- package/dist/plugins/workflow/protocol.js +26 -4
- package/dist/plugins/workflow/protocol.js.map +1 -1
- package/dist/plugins/workflow/recovery.d.ts +2 -1
- package/dist/plugins/workflow/recovery.js +79 -12
- package/dist/plugins/workflow/recovery.js.map +1 -1
- package/dist/plugins/workflow/repair.d.ts +1 -1
- package/dist/plugins/workflow/repair.js +9 -10
- package/dist/plugins/workflow/repair.js.map +1 -1
- package/dist/plugins/workflow/results.d.ts +2566 -0
- package/dist/plugins/workflow/results.js +1111 -0
- package/dist/plugins/workflow/results.js.map +1 -0
- package/dist/plugins/workflow/schemas.d.ts +214 -24
- package/dist/plugins/workflow/schemas.js +350 -89
- package/dist/plugins/workflow/schemas.js.map +1 -1
- package/dist/plugins/workflow/state.d.ts +3 -2
- package/dist/plugins/workflow/state.js +15 -8
- package/dist/plugins/workflow/state.js.map +1 -1
- package/dist/plugins/workflow/system-instruction.md +17 -1
- package/dist/plugins/workflow/tooling.d.ts +2 -18
- package/dist/plugins/workflow/tooling.js +477 -460
- package/dist/plugins/workflow/tooling.js.map +1 -1
- package/dist/plugins/workflow/transactions.d.ts +13 -0
- package/dist/plugins/workflow/transactions.js +13 -3
- package/dist/plugins/workflow/transactions.js.map +1 -1
- package/package.json +6 -3
- package/schemas/vvoc/v3.json +1 -1
- package/templates/agents/vv-code-reviewer.md +13 -4
- package/templates/agents/vv-implementer.md +16 -9
- package/templates/agents/vv-spec-reviewer.md +13 -4
- package/templates/skills/vv-execute/SKILL.md +3 -3
- package/templates/skills/vv-execute/references/tool-contracts.md +1750 -0
- package/templates/skills/vv-review/SKILL.md +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// FILE: src/plugins/web-tools/search-service.ts
|
|
2
2
|
// VERSION: 1.0.0
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
|
-
// PURPOSE: Build the provider-neutral web_search tool:
|
|
5
|
-
// SCOPE: web_search ToolDefinition factory and Markdown rendering
|
|
6
|
-
// DEPENDS: [@opencode-ai/plugin, src/plugins/web-tools/config.ts, src/plugins/web-tools/http.ts, src/plugins/web-tools/providers/exa.ts, src/plugins/web-tools/providers/brave.ts, src/plugins/web-tools/providers/zai.ts]
|
|
7
|
-
// LINKS: M-WEB-SEARCH-SERVICE, M-WEB-EXA, M-WEB-BRAVE, M-WEB-ZAI, M-WEB-HTTP, M-PLUGIN-WEB-TOOLS, V-M-WEB-SEARCH-SERVICE, DF-WEB-SEARCH
|
|
4
|
+
// PURPOSE: Build the provider-neutral web_search tool: strict contract validation with explicit execute-time defaults, permission request, provider dispatch, and ranked Markdown rendering.
|
|
5
|
+
// SCOPE: web_search ToolDefinition factory and Markdown rendering. Validates raw host-forwarded arguments through the shared web_search contract before any permission request or provider dispatch, then delegates transport to the Exa, Brave, and direct Z.AI adapters. No credential or provider arguments and no content rewriting.
|
|
6
|
+
// DEPENDS: [@opencode-ai/plugin, src/lib/agent-tool-contract.ts, src/plugins/web-tools/config.ts, src/plugins/web-tools/schemas.ts, src/plugins/web-tools/http.ts, src/plugins/web-tools/providers/exa.ts, src/plugins/web-tools/providers/brave.ts, src/plugins/web-tools/providers/zai.ts]
|
|
7
|
+
// LINKS: M-WEB-SEARCH-SERVICE, M-WEB-EXA, M-WEB-BRAVE, M-WEB-ZAI, M-WEB-HTTP, M-PLUGIN-WEB-TOOLS, M-AGENT-TOOL-CONTRACT, V-M-WEB-SEARCH-SERVICE, DF-WEB-SEARCH
|
|
8
8
|
// ROLE: RUNTIME
|
|
9
9
|
// MAP_MODE: EXPORTS
|
|
10
10
|
// END_MODULE_CONTRACT
|
|
@@ -15,14 +15,15 @@
|
|
|
15
15
|
// END_MODULE_MAP
|
|
16
16
|
//
|
|
17
17
|
// START_CHANGE_SUMMARY
|
|
18
|
-
// LAST_CHANGE: [C-
|
|
18
|
+
// LAST_CHANGE: [C-AGENT-TOOL-CONTRACTS T-006 - Registered web_search from the shared schemas.ts contract, validated raw args and re-applied the documented count default at the execute boundary before any permission request or dispatch.]
|
|
19
19
|
// END_CHANGE_SUMMARY
|
|
20
20
|
import { tool } from "@opencode-ai/plugin";
|
|
21
|
+
import { ContractInputError } from "../../lib/agent-tool-contract.js";
|
|
21
22
|
import { DEFAULT_REQUEST_TIMEOUT_MS } from "./http.js";
|
|
22
23
|
import { searchBrave } from "./providers/brave.js";
|
|
23
24
|
import { searchExa, WebProviderError } from "./providers/exa.js";
|
|
24
25
|
import { searchZai } from "./providers/zai.js";
|
|
25
|
-
|
|
26
|
+
import { WEB_SEARCH_TOOL_ID, validateWebSearchToolInput, webSearchArgs, webSearchContract, } from "./schemas.js";
|
|
26
27
|
/**
|
|
27
28
|
* Render ranked results as Markdown: numbered entries with [title](url),
|
|
28
29
|
* an indented snippet line when present, and an italic publishedAt line when present.
|
|
@@ -47,34 +48,28 @@ export function renderSearchMarkdown(results) {
|
|
|
47
48
|
}
|
|
48
49
|
/**
|
|
49
50
|
* Create the web_search tool bound to the resolved search configuration.
|
|
50
|
-
* execute
|
|
51
|
-
*
|
|
52
|
-
*
|
|
51
|
+
* execute validates raw host-forwarded arguments through the shared strict contract first,
|
|
52
|
+
* so unknown keys, invalid provided values, and out-of-range counts reject with a bounded
|
|
53
|
+
* diagnostic before any permission request, credential lookup, or provider dispatch.
|
|
54
|
+
* The documented count default is re-applied here because the host forwards unparsed raw
|
|
55
|
+
* arguments. Permission uses key web_search with patterns [query], and the result reports
|
|
56
|
+
* metadata { provider, region?, resultCount, credentialSource }.
|
|
53
57
|
* Missing credentials raise an actionable error naming the environment variable
|
|
54
58
|
* and the web.search.apiKey config field without printing any value.
|
|
55
59
|
*/
|
|
56
60
|
export function createWebSearchTool(resolved) {
|
|
57
61
|
return tool({
|
|
58
|
-
description:
|
|
59
|
-
args:
|
|
60
|
-
query: z.string().min(1).describe("The search query."),
|
|
61
|
-
count: z
|
|
62
|
-
.number()
|
|
63
|
-
.int()
|
|
64
|
-
.min(1)
|
|
65
|
-
.max(20)
|
|
66
|
-
.default(8)
|
|
67
|
-
.describe("Number of results, 1 through 20, default 8."),
|
|
68
|
-
freshness: z
|
|
69
|
-
.enum(["day", "week", "month", "year"])
|
|
70
|
-
.optional()
|
|
71
|
-
.describe("Optional time window restricting results."),
|
|
72
|
-
},
|
|
62
|
+
description: webSearchContract.description,
|
|
63
|
+
args: webSearchArgs,
|
|
73
64
|
async execute(args, context) {
|
|
74
|
-
const
|
|
65
|
+
const validation = validateWebSearchToolInput(args);
|
|
66
|
+
if (!validation.ok) {
|
|
67
|
+
throw new ContractInputError(WEB_SEARCH_TOOL_ID, validation.issues);
|
|
68
|
+
}
|
|
69
|
+
const { query, count, freshness } = validation.data;
|
|
75
70
|
await context.ask({
|
|
76
71
|
permission: "web_search",
|
|
77
|
-
patterns: [
|
|
72
|
+
patterns: [query],
|
|
78
73
|
always: [],
|
|
79
74
|
metadata: { provider: resolved.provider },
|
|
80
75
|
});
|
|
@@ -82,9 +77,9 @@ export function createWebSearchTool(resolved) {
|
|
|
82
77
|
throw new WebProviderError(resolved.provider, "MISSING_CREDENTIAL", `missing credential for ${resolved.provider}: set ${resolved.envVar} or ${resolved.configField}`);
|
|
83
78
|
}
|
|
84
79
|
const searchInput = {
|
|
85
|
-
query
|
|
80
|
+
query,
|
|
86
81
|
count,
|
|
87
|
-
freshness
|
|
82
|
+
freshness,
|
|
88
83
|
credential: resolved.credential,
|
|
89
84
|
abort: context.abort,
|
|
90
85
|
timeoutMs: DEFAULT_REQUEST_TIMEOUT_MS,
|
|
@@ -95,7 +90,7 @@ export function createWebSearchTool(resolved) {
|
|
|
95
90
|
? await searchZai({ ...searchInput, region: resolved.region })
|
|
96
91
|
: await searchExa(searchInput);
|
|
97
92
|
return {
|
|
98
|
-
title: `web_search: ${
|
|
93
|
+
title: `web_search: ${query}`,
|
|
99
94
|
output: renderSearchMarkdown(results),
|
|
100
95
|
metadata: {
|
|
101
96
|
provider: resolved.provider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-service.js","sourceRoot":"","sources":["../../../src/plugins/web-tools/search-service.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,iBAAiB;AACjB,wBAAwB;AACxB
|
|
1
|
+
{"version":3,"file":"search-service.js","sourceRoot":"","sources":["../../../src/plugins/web-tools/search-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,12 @@ export interface AuthorityMessageSnapshot {
|
|
|
24
24
|
}
|
|
25
25
|
/** Pure eligibility check for one candidate root-user instruction. */
|
|
26
26
|
export declare function validateAuthorityMessage(message: AuthorityMessageSnapshot, sessionId: string): AuthorityOperationResult<true>;
|
|
27
|
+
/**
|
|
28
|
+
* Field-level differences between a supplied scope and a recorded scope.
|
|
29
|
+
* Stage/stop/file lists compare as sets (order is not scope); decisionScope
|
|
30
|
+
* compares as trimmed text. An empty result means exact replay-compatible scope.
|
|
31
|
+
*/
|
|
32
|
+
export declare function authorityScopeDifferences(supplied: WorkflowAuthorityScope, recorded: WorkflowAuthorityScope): string[];
|
|
27
33
|
/**
|
|
28
34
|
* Initial grant recording the finite shared reserve. Creating the same
|
|
29
35
|
* authority again is idempotent only for an identical claim; a different
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
// AuthorityValidationErrorCode - Coded reasons an authority operation is rejected.
|
|
16
16
|
// AuthorityOperationResult - Success value or a coded rejection.
|
|
17
17
|
// validateAuthorityMessage - Pure eligibility check for one candidate root-user instruction.
|
|
18
|
+
// authorityScopeDifferences - Field-level differences between a supplied and recorded authority scope.
|
|
18
19
|
// grantAdvanceAuthority - Initial grant recording the finite reserve and its message claim.
|
|
19
20
|
// extendAdvanceAuthority - Explicit finite extension from a new eligible instruction.
|
|
20
21
|
// advanceUnitsGranted - Total granted units across the initial reserve and extensions.
|
|
@@ -29,18 +30,13 @@
|
|
|
29
30
|
// END_MODULE_MAP
|
|
30
31
|
//
|
|
31
32
|
// START_CHANGE_SUMMARY
|
|
32
|
-
// LAST_CHANGE: [C-
|
|
33
|
+
// LAST_CHANGE: [C-AGENT-TOOL-CONTRACTS T-002 - Authority stage vocabulary now derives from the canonical AUTHORITY_STAGES constant, and grantAdvanceAuthority rejects a reuse whose supplied scope contradicts the recorded scope instead of silently returning it.]
|
|
33
34
|
// END_CHANGE_SUMMARY
|
|
34
|
-
import { isBoundedWorkflowId, WORKFLOW_TEXT_MAX_CHARS, } from "../../lib/workflow-contract.js";
|
|
35
|
+
import { AUTHORITY_STAGES, isBoundedWorkflowId, WORKFLOW_TEXT_MAX_CHARS, } from "../../lib/workflow-contract.js";
|
|
35
36
|
// START_BLOCK_AUTHORITY_CONSTANTS
|
|
36
37
|
/** Initial and per-extension advance recovery units shared by one authorized execution. */
|
|
37
38
|
export const ADVANCE_RECOVERY_RESERVE = 3;
|
|
38
|
-
const
|
|
39
|
-
"specification",
|
|
40
|
-
"planning",
|
|
41
|
-
"implementation",
|
|
42
|
-
"verification",
|
|
43
|
-
]);
|
|
39
|
+
const AUTHORITY_STAGES_SET = new Set(AUTHORITY_STAGES);
|
|
44
40
|
/** Pure eligibility check for one candidate root-user instruction. */
|
|
45
41
|
export function validateAuthorityMessage(message, sessionId) {
|
|
46
42
|
if (message === null || typeof message !== "object" || !isBoundedWorkflowId(message.messageId)) {
|
|
@@ -98,7 +94,8 @@ export function validateAuthorityMessage(message, sessionId) {
|
|
|
98
94
|
return { ok: true, value: true };
|
|
99
95
|
}
|
|
100
96
|
function validScope(scope, problems) {
|
|
101
|
-
if (!Array.isArray(scope.stages) ||
|
|
97
|
+
if (!Array.isArray(scope.stages) ||
|
|
98
|
+
scope.stages.some((stage) => !AUTHORITY_STAGES_SET.has(stage))) {
|
|
102
99
|
problems.push("scope.stages must be a subset of specification/planning/implementation/verification");
|
|
103
100
|
}
|
|
104
101
|
if (typeof scope.decisionScope !== "string" ||
|
|
@@ -109,10 +106,40 @@ function validScope(scope, problems) {
|
|
|
109
106
|
problems.push("scope.fileBoundary must be an array");
|
|
110
107
|
}
|
|
111
108
|
if (!Array.isArray(scope.reservedStops) ||
|
|
112
|
-
scope.reservedStops.some((stage) => !
|
|
109
|
+
scope.reservedStops.some((stage) => !AUTHORITY_STAGES_SET.has(stage))) {
|
|
113
110
|
problems.push("scope.reservedStops must be a subset of the delegatable stages");
|
|
114
111
|
}
|
|
115
112
|
}
|
|
113
|
+
function sortedStageList(stages) {
|
|
114
|
+
return [...stages].map((stage) => stage).sort();
|
|
115
|
+
}
|
|
116
|
+
function sortedPathList(paths) {
|
|
117
|
+
return [...paths].sort();
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Field-level differences between a supplied scope and a recorded scope.
|
|
121
|
+
* Stage/stop/file lists compare as sets (order is not scope); decisionScope
|
|
122
|
+
* compares as trimmed text. An empty result means exact replay-compatible scope.
|
|
123
|
+
*/
|
|
124
|
+
export function authorityScopeDifferences(supplied, recorded) {
|
|
125
|
+
const differences = [];
|
|
126
|
+
if (sortedStageList(supplied.stages).join("\u0000") !==
|
|
127
|
+
sortedStageList(recorded.stages).join("\u0000")) {
|
|
128
|
+
differences.push("stages");
|
|
129
|
+
}
|
|
130
|
+
if (supplied.decisionScope.trim() !== recorded.decisionScope.trim()) {
|
|
131
|
+
differences.push("decisionScope");
|
|
132
|
+
}
|
|
133
|
+
if (sortedPathList(supplied.fileBoundary).join("\u0000") !==
|
|
134
|
+
sortedPathList(recorded.fileBoundary).join("\u0000")) {
|
|
135
|
+
differences.push("fileBoundary");
|
|
136
|
+
}
|
|
137
|
+
if (sortedStageList(supplied.reservedStops).join("\u0000") !==
|
|
138
|
+
sortedStageList(recorded.reservedStops).join("\u0000")) {
|
|
139
|
+
differences.push("reservedStops");
|
|
140
|
+
}
|
|
141
|
+
return differences;
|
|
142
|
+
}
|
|
116
143
|
function claimMessage(message, runId, authorityId, claims, nowMs) {
|
|
117
144
|
const existing = claims.get(message.messageId);
|
|
118
145
|
if (existing) {
|
|
@@ -163,6 +190,14 @@ export function grantAdvanceAuthority(input) {
|
|
|
163
190
|
if (existing.grantedByMessageId === input.message.messageId &&
|
|
164
191
|
existing.rootSessionId === input.sessionId &&
|
|
165
192
|
existing.runId === input.runId) {
|
|
193
|
+
const scopeDifferences = authorityScopeDifferences(input.scope, existing.scope);
|
|
194
|
+
if (scopeDifferences.length > 0) {
|
|
195
|
+
return {
|
|
196
|
+
ok: false,
|
|
197
|
+
code: "INVALID_INPUT",
|
|
198
|
+
message: `supplied scope differs from the recorded scope (${scopeDifferences.join(", ")}); scope changes are unsupported on reuse`,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
166
201
|
const claim = input.messageClaims.get(input.message.messageId);
|
|
167
202
|
if (claim)
|
|
168
203
|
return { ok: true, value: { record: existing, claim } };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authority.js","sourceRoot":"","sources":["../../../src/plugins/workflow/authority.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"authority.js","sourceRoot":"","sources":["../../../src/plugins/workflow/authority.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,9 +20,13 @@
|
|
|
20
20
|
// END_MODULE_MAP
|
|
21
21
|
//
|
|
22
22
|
// START_CHANGE_SUMMARY
|
|
23
|
-
// LAST_CHANGE: [C-
|
|
23
|
+
// LAST_CHANGE: [C-AGENT-TOOL-CONTRACTS T-003 - Diagnostics carry a stable category: non-controller agent, child session, and workspace mismatch remain CONTROL_DENIED/authorization, a failing SDK root/session lookup is HOST_CONTEXT_UNAVAILABLE/host_context, and invalid persisted state is PERSISTENCE_FAILED/persistence. Message text is unchanged where meaningful. SDK-backed message lookups are unchanged.]
|
|
24
24
|
// END_CHANGE_SUMMARY
|
|
25
|
+
import { WorkflowDiagnosticError } from "./results.js";
|
|
25
26
|
export const WORKFLOW_CONTROLLER_AGENT = "vv-controller";
|
|
27
|
+
function controlDenied(message) {
|
|
28
|
+
return new WorkflowDiagnosticError("CONTROL_DENIED", "authorization", message);
|
|
29
|
+
}
|
|
26
30
|
export function canUseWorkflowTools(agentName) {
|
|
27
31
|
return agentName === WORKFLOW_CONTROLLER_AGENT;
|
|
28
32
|
}
|
|
@@ -31,7 +35,7 @@ export function assertWorkflowToolAccess(agentName, toolName) {
|
|
|
31
35
|
return;
|
|
32
36
|
}
|
|
33
37
|
const resolvedAgent = agentName?.trim() || "unknown-agent";
|
|
34
|
-
throw new
|
|
38
|
+
throw new WorkflowDiagnosticError("WORKFLOW_TOOL_DENIED", "authorization", `WORKFLOW_TOOL_DENIED: ${toolName} is only available to ${WORKFLOW_CONTROLLER_AGENT} sessions. Current agent: ${resolvedAgent}.`);
|
|
35
39
|
}
|
|
36
40
|
export function shouldInjectForAgent(agentName) {
|
|
37
41
|
return canUseWorkflowTools(agentName);
|
|
@@ -44,20 +48,22 @@ export function createWorkflowAuthorization(context) {
|
|
|
44
48
|
// directory/worktree. None of this identity comes from tool arguments.
|
|
45
49
|
async function assertPrimaryControllerMutation(agent, sessionId, contextWorkspace, toolName) {
|
|
46
50
|
if (!canUseWorkflowTools(agent)) {
|
|
47
|
-
throw
|
|
51
|
+
throw controlDenied(`CONTROL_DENIED: ${toolName} is only available to ${WORKFLOW_CONTROLLER_AGENT} sessions. Current agent: ${agent?.trim() || "unknown-agent"}.`);
|
|
48
52
|
}
|
|
49
53
|
if (contextWorkspace.worktree !== undefined &&
|
|
50
54
|
contextWorkspace.worktree !== worktree &&
|
|
51
55
|
contextWorkspace.worktree !== trustedWorkspaceRoot) {
|
|
52
|
-
throw
|
|
56
|
+
throw controlDenied(`CONTROL_DENIED: ${toolName} workspace ${contextWorkspace.worktree} does not match the trusted plugin workspace.`);
|
|
53
57
|
}
|
|
54
58
|
if (contextWorkspace.worktree === undefined &&
|
|
55
59
|
contextWorkspace.directory !== undefined &&
|
|
56
60
|
contextWorkspace.directory !== directory) {
|
|
57
|
-
throw
|
|
61
|
+
throw controlDenied(`CONTROL_DENIED: ${toolName} directory ${contextWorkspace.directory} does not match the trusted plugin directory.`);
|
|
58
62
|
}
|
|
59
63
|
if (invalidHydrationSessions.has(sessionId)) {
|
|
60
|
-
|
|
64
|
+
// Invalid persisted state is a persistence/host condition, not a caller
|
|
65
|
+
// authorization failure; keep the failure closed and the text explicit.
|
|
66
|
+
throw new WorkflowDiagnosticError("PERSISTENCE_FAILED", "persistence", `PERSISTENCE_FAILED: persisted workflow state for session ${sessionId} is invalid; resolve or remove it before new control mutations.`);
|
|
61
67
|
}
|
|
62
68
|
let parentID;
|
|
63
69
|
try {
|
|
@@ -68,10 +74,12 @@ export function createWorkflowAuthorization(context) {
|
|
|
68
74
|
parentID = response.data.parentID;
|
|
69
75
|
}
|
|
70
76
|
catch (error) {
|
|
71
|
-
|
|
77
|
+
// A missing or failing SDK root/session lookup is unavailable trusted host
|
|
78
|
+
// context, not a denial of authorization.
|
|
79
|
+
throw new WorkflowDiagnosticError("HOST_CONTEXT_UNAVAILABLE", "host_context", `HOST_CONTEXT_UNAVAILABLE: ${toolName} requires root-session identity for ${sessionId}, which could not be verified: ${error.message}`);
|
|
72
80
|
}
|
|
73
81
|
if (parentID !== undefined && parentID !== null && parentID !== "") {
|
|
74
|
-
throw
|
|
82
|
+
throw controlDenied(`CONTROL_DENIED: ${toolName} may only run in the root session; session ${sessionId} is a child of ${parentID}.`);
|
|
75
83
|
}
|
|
76
84
|
}
|
|
77
85
|
// Read-only SDK message lookup for user-authorized recovery. Only identity
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../../src/plugins/workflow/authorization.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,iBAAiB;AACjB,wBAAwB;AACxB,iIAAiI;AACjI,mZAAmZ;AACnZ,wLAAwL;AACxL,2EAA2E;AAC3E,kBAAkB;AAClB,sBAAsB;AACtB,sBAAsB;AACtB,EAAE;AACF,mBAAmB;AACnB,0GAA0G;AAC1G,4JAA4J;AAC5J,2FAA2F;AAC3F,kFAAkF;AAClF,sFAAsF;AACtF,yFAAyF;AACzF,yIAAyI;AACzI,iBAAiB;AACjB,EAAE;AACF,uBAAuB;AACvB,
|
|
1
|
+
{"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../../src/plugins/workflow/authorization.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { DelegatedPlanDefinition, DelegatedReviewer } from "../../lib/spec-lint.js";
|
|
2
2
|
import { type LoadedDelegatedPlan } from "./checkpoint-io.js";
|
|
3
3
|
import { type DelegatedRecoveryKind, type LookupRecoveryUserMessage } from "./delegated.js";
|
|
4
|
+
import type { WorkflowDelegatedRunView, WorkflowExecutionView } from "./results.js";
|
|
4
5
|
import { type WorkItemStore, type WorkItemStoreData } from "./state.js";
|
|
5
6
|
export declare const MAX_CHECKPOINT_REVIEW_ATTEMPTS = 2;
|
|
6
7
|
export interface DelegatedReviewerOutcome {
|
|
@@ -112,6 +113,21 @@ export interface StartDelegatedCheckpointInput {
|
|
|
112
113
|
runId: string;
|
|
113
114
|
checkpointId: string;
|
|
114
115
|
}
|
|
116
|
+
/** Deterministic reasons a native checkpoint generation cannot start. */
|
|
117
|
+
export type CheckpointStartGateReason = "RUN_SEALED" | "ALREADY_PASSED" | "ALREADY_IN_REVIEW" | "ATTEMPTS_EXHAUSTED" | "PREREQUISITES_NOT_ACCEPTED" | "OVERLAPPING_SCOPE";
|
|
118
|
+
export interface CheckpointStartGate {
|
|
119
|
+
ok: boolean;
|
|
120
|
+
reason?: CheckpointStartGateReason;
|
|
121
|
+
message?: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Pure deterministic start gate shared by the real native checkpoint start
|
|
125
|
+
* mutation and read-only inspection. It covers run sealing, prior generation
|
|
126
|
+
* state, generation budget, covered-task acceptance, and overlapping scope.
|
|
127
|
+
* The host filesystem snapshot capture remains an external prerequisite that
|
|
128
|
+
* this gate never asserts.
|
|
129
|
+
*/
|
|
130
|
+
export declare function checkpointStartGate(data: WorkItemStoreData, run: DelegatedPlanRun, checkpoint: DelegatedRunCheckpoint): CheckpointStartGate;
|
|
115
131
|
export declare function startDelegatedCheckpoint(store: WorkItemStore, input: StartDelegatedCheckpointInput): Promise<StartDelegatedCheckpointResult>;
|
|
116
132
|
export declare function startDelegatedCheckpointInStore(data: WorkItemStoreData, input: StartDelegatedCheckpointInput): Promise<StartDelegatedCheckpointResult>;
|
|
117
133
|
export type RecordReviewerLaunchResult = {
|
|
@@ -235,5 +251,28 @@ export declare function checkpointBarrierUnsatisfied(data: WorkItemStoreData, ru
|
|
|
235
251
|
};
|
|
236
252
|
/** In-flight checkpoint review whose scope intersects the declared write scope. */
|
|
237
253
|
export declare function findOverlappingInFlightReview(data: WorkItemStoreData, runId: string, writeScope: readonly string[]): string | undefined;
|
|
238
|
-
/**
|
|
239
|
-
export
|
|
254
|
+
/** Supported read-only next action for one native checkpoint generation. */
|
|
255
|
+
export type CheckpointNextAction = "start" | "collect_and_verify" | "start_next_generation" | "recover" | "recover_with_user_authorization" | "passed" | "blocked";
|
|
256
|
+
export interface CheckpointNextActionView {
|
|
257
|
+
generationBudget: number;
|
|
258
|
+
remainingGenerations: number;
|
|
259
|
+
nextAction: CheckpointNextAction;
|
|
260
|
+
prerequisite?: string;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Read-only native checkpoint progress. A start is only suggested while the
|
|
264
|
+
* deterministic start gate accepts; otherwise the action is `blocked` with the
|
|
265
|
+
* exact unmet prerequisite. Host snapshot capture is always stated as an
|
|
266
|
+
* external prerequisite and never as already satisfied.
|
|
267
|
+
*/
|
|
268
|
+
export declare function checkpointNextAction(data: WorkItemStoreData, run: DelegatedPlanRun, checkpoint: DelegatedRunCheckpoint): CheckpointNextActionView;
|
|
269
|
+
/** Read-only native plan-run serialization for tooling output and persistence consumers. */
|
|
270
|
+
export declare function getDelegatedRunView(data: WorkItemStoreData, runId: string): WorkflowDelegatedRunView | undefined;
|
|
271
|
+
/**
|
|
272
|
+
* Authoritative read-only execution projection for one native plan run. It reads
|
|
273
|
+
* current native lifecycle/checkpoint generations and current bound work-item
|
|
274
|
+
* acceptance rather than the one-time materialized registry snapshot, and never
|
|
275
|
+
* mutates state (no `ensureNativeExecutions`). Registry authority, when present,
|
|
276
|
+
* is merged by the inspection owner.
|
|
277
|
+
*/
|
|
278
|
+
export declare function getNativeExecutionView(data: WorkItemStoreData, run: DelegatedPlanRun): WorkflowExecutionView;
|