opencode-agent-skill 14.4.0 → 15.1.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/README.md +34 -16
- package/docs/PI-COMPAT.md +151 -2
- package/docs/V15-MANAGED-RUNTIME.md +128 -0
- package/global-config/agents/architect.md +63 -1
- package/global-config/agents/executor.md +7 -0
- package/global-config/agents/plan-checker.md +8 -1
- package/global-config/agents/verifier.md +3 -3
- package/global-config/skills/database-engineering/references/workflow.md +15 -0
- package/global-config/skills/engineering-orchestrator/references/long-horizon.md +21 -11
- package/lib/activity-deadline.mjs +70 -0
- package/lib/adaptive-context-budget.mjs +25 -5
- package/lib/affected-tests.mjs +38 -5
- package/lib/capability-fabric.mjs +17 -0
- package/lib/code-intelligence/index.mjs +3 -2
- package/lib/code-intelligence/lsp-provider.mjs +326 -52
- package/lib/compaction-resume-guard.mjs +255 -0
- package/lib/completion-auditor.mjs +25 -5
- package/lib/context-engine-v11.mjs +20 -7
- package/lib/evidence-store.mjs +92 -8
- package/lib/execution-contract.mjs +592 -0
- package/lib/leaf-runtime-optimizer.mjs +76 -0
- package/lib/memory-engine.mjs +189 -16
- package/lib/performance-fabric.mjs +262 -107
- package/lib/pi-child-invocation.mjs +65 -0
- package/lib/pi-rpc-pool.mjs +61 -9
- package/lib/plan-salvage.mjs +124 -0
- package/lib/planning-speed-policy.mjs +131 -0
- package/lib/repo-graph.mjs +1 -1
- package/lib/repo-inspect.mjs +1 -0
- package/lib/runtime-artifacts.mjs +42 -0
- package/lib/runtime-events.mjs +33 -1
- package/lib/safety.mjs +1 -0
- package/lib/semantic-index.mjs +1 -1
- package/lib/service-manager.mjs +526 -0
- package/lib/session-display.mjs +49 -0
- package/lib/subagent-artifacts.mjs +182 -0
- package/lib/task-graph.mjs +87 -0
- package/lib/task-policy.mjs +150 -4
- package/lib/trajectory.mjs +111 -1
- package/lib/turbo-fast-path.mjs +44 -0
- package/lib/verification-broker.mjs +32 -27
- package/lib/workspace-fingerprint.mjs +45 -19
- package/lib/workspace-hygiene.mjs +481 -0
- package/lib/workspace-root.mjs +49 -0
- package/lib/worktree-sandbox.mjs +234 -11
- package/package.json +8 -5
- package/pi/extensions/ues-child-runtime.ts +170 -4
- package/pi/extensions/ues.ts +2063 -188
- package/scripts/check-release-consistency.mjs +25 -2
- package/scripts/check-source-integrity.mjs +471 -4
- package/scripts/eval-pi.mjs +76 -36
- package/scripts/smoke-pi-extension.mjs +1 -1
- package/pi/prompts/ues-run.md +0 -17
|
@@ -113,7 +113,7 @@ export function checkReleaseConsistency(root = DEFAULT_ROOT) {
|
|
|
113
113
|
|
|
114
114
|
const piCompat = requireText(errors, readText(root, path.join("docs", "PI-COMPAT.md")), "docs/PI-COMPAT.md")
|
|
115
115
|
if (piCompat) {
|
|
116
|
-
for (const marker of ["# Pi Agent runtime", "ues_execute", "ues_dispatch", "ues_cli", "manifest is Pi-only", "V14.2 Turbo Weak-Model Runtime"]) {
|
|
116
|
+
for (const marker of ["# Pi Agent runtime", "ues_execute", "ues_dispatch", "ues_cli", "manifest is Pi-only", "V14.2 Turbo Weak-Model Runtime", "V15.1 deterministic admission and managed services", "V15.2 Turbo Fast Path", "V15.3 DEEP Speed", "V15.4 ACP-safe child runtime", "V15.5 Per-Leaf Turbo", "V15.6 Fast Planning", "V15.7 Lightweight Sandbox Cleanup", "V15.8 Plan Gate Recovery", "V15.9 Runtime Artifact Isolation", "V15.10 Adaptive Stability Runtime", "V15.11 Session Identity Sync", "V15.12 Safe Autopilot + Disk Hygiene", "V15.13 Read-Only Completion Semantics", "V15.14 Deterministic Read-Only Fast Path", "V15.15 Execution Contracts + Phase Gates", "V15.16 Portable Cross-Tool Temp Paths", "V15.17 Zero-Friction Autopilot Admission", "V15.18 Three-Tier Zero-Friction Routing", "V15.19 Finalization Hardening", "ues_service"]) {
|
|
117
117
|
if (!piCompat.includes(marker)) errors.push(`docs/PI-COMPAT.md: missing current Pi contract marker ${marker}`)
|
|
118
118
|
}
|
|
119
119
|
}
|
|
@@ -137,6 +137,7 @@ export function checkReleaseConsistency(root = DEFAULT_ROOT) {
|
|
|
137
137
|
if (canonicalPolicy) {
|
|
138
138
|
if (!/export function classifyEngineeringTask/.test(canonicalPolicy)) errors.push("lib/task-policy.mjs: missing classifyEngineeringTask")
|
|
139
139
|
if (!/export function recoveryPolicyForAttempt/.test(canonicalPolicy)) errors.push("lib/task-policy.mjs: missing recoveryPolicyForAttempt")
|
|
140
|
+
if (!/CONCRETE_DIAGNOSIS/.test(canonicalPolicy) || !/diagnosisEvidence/.test(canonicalPolicy)) errors.push("lib/task-policy.mjs: missing V15.3 diagnosis deduplication contract")
|
|
140
141
|
}
|
|
141
142
|
|
|
142
143
|
if (pkg) {
|
|
@@ -146,6 +147,24 @@ export function checkReleaseConsistency(root = DEFAULT_ROOT) {
|
|
|
146
147
|
if (scripts["docs:check"] !== "node scripts/check-release-consistency.mjs") errors.push("package.json: missing docs:check release-consistency script")
|
|
147
148
|
if (scripts["release:check-tag"] !== "node scripts/check-release-tag.mjs") errors.push("package.json: missing release:check-tag script")
|
|
148
149
|
if (scripts["eval:pi"] !== "node scripts/eval-pi.mjs") errors.push("package.json: missing Pi-native eval:pi script")
|
|
150
|
+
const focusedV15 = String(scripts["eval:v15"] || "").trim().split(/\s+/).filter(Boolean)
|
|
151
|
+
const requiredFocusedV15Tests = [
|
|
152
|
+
"test/v15-runtime.test.mjs",
|
|
153
|
+
"test/trajectory.test.mjs",
|
|
154
|
+
"test/evidence-store-v11.test.mjs",
|
|
155
|
+
"test/runtime-events.test.mjs",
|
|
156
|
+
"test/v14.3-intelligence.test.mjs",
|
|
157
|
+
"test/v14.2-runtime.test.mjs",
|
|
158
|
+
"test/pi-package.test.mjs",
|
|
159
|
+
"test/execution-contract.test.mjs",
|
|
160
|
+
]
|
|
161
|
+
if (
|
|
162
|
+
focusedV15[0] !== "node" ||
|
|
163
|
+
focusedV15[1] !== "--test" ||
|
|
164
|
+
!requiredFocusedV15Tests.every((file) => focusedV15.includes(file))
|
|
165
|
+
) {
|
|
166
|
+
errors.push("package.json: focused eval:v15 must run the current V15 runtime, disk-safety, intelligence and Pi-package regression set")
|
|
167
|
+
}
|
|
149
168
|
if (!String(scripts.ci || "").includes("npm run integrity")) errors.push("package.json: ci must include source-integrity gate")
|
|
150
169
|
if (scripts["runtime:exports"] !== "node scripts/check-runtime-exports.mjs") errors.push("package.json: missing runtime:exports import/export gate")
|
|
151
170
|
if (!String(scripts.ci || "").includes("npm run runtime:exports")) errors.push("package.json: ci must include runtime export gate")
|
|
@@ -157,11 +176,15 @@ export function checkReleaseConsistency(root = DEFAULT_ROOT) {
|
|
|
157
176
|
if (!Array.isArray(pkg.pi?.prompts) || !pkg.pi.prompts.includes("./pi/prompts/*.md")) errors.push("package.json: Pi prompts entry drift")
|
|
158
177
|
if (!Array.isArray(pkg.files) || !pkg.files.includes("global-config/AGENTS.md")) errors.push("package.json: installer runtime data global-config/AGENTS.md must be packed")
|
|
159
178
|
if (!pkg.files.includes("docs/V14.2-TURBO-WEAK-MODEL-RUNTIME.md")) errors.push("package.json: V14.2 runtime documentation must be packed")
|
|
179
|
+
if (!pkg.files.includes("docs/V15-MANAGED-RUNTIME.md")) errors.push("package.json: V15 managed-runtime documentation must be packed")
|
|
160
180
|
if (scripts["smoke:packed"] !== "node scripts/smoke-packed-install.mjs") errors.push("package.json: missing smoke:packed integration script")
|
|
161
181
|
}
|
|
162
182
|
|
|
163
183
|
if (skillCount < 40) warnings.push(`skill catalog unexpectedly small: ${skillCount}`)
|
|
164
|
-
if (promptCount
|
|
184
|
+
if (promptCount !== 10) errors.push(`Pi must expose exactly 10 prompt templates; /ues-run is an extension command, found ${promptCount}`)
|
|
185
|
+
if (existsSync(path.join(root, "pi", "prompts", "ues-run.md"))) {
|
|
186
|
+
errors.push("pi/prompts/ues-run.md must not exist because it duplicates the deterministic extension /ues-run command")
|
|
187
|
+
}
|
|
165
188
|
|
|
166
189
|
return {
|
|
167
190
|
pass: errors.length === 0,
|
|
@@ -19,10 +19,89 @@ const CONTRACTS = [
|
|
|
19
19
|
"McpHealthTracker",
|
|
20
20
|
"MCP_HEALTH",
|
|
21
21
|
"auditCompletion",
|
|
22
|
+
'pi.registerCommand("ues-status"',
|
|
23
|
+
'pi.registerCommand("ues-run"',
|
|
24
|
+
"UES parent tools are hidden outside admitted UES runs",
|
|
25
|
+
"Zero-friction engineering admission",
|
|
26
|
+
"directControllerRunner",
|
|
27
|
+
"automaticUesAdmission",
|
|
28
|
+
"automaticUesContinuation",
|
|
29
|
+
"safe continuation",
|
|
30
|
+
"natural continuation forwarded to the active child",
|
|
31
|
+
"prompt was not swallowed",
|
|
32
|
+
"native / auto / high-risk",
|
|
33
|
+
"admissionDecision",
|
|
34
|
+
"__taskPolicy",
|
|
35
|
+
"void directControllerRunner",
|
|
36
|
+
"UES_AUTO_ADMIT",
|
|
37
|
+
"UES_PARENT_TOOL_NAMES",
|
|
38
|
+
"pi.getActiveTools",
|
|
39
|
+
"pi.setActiveTools",
|
|
40
|
+
"deactivateParentUesTools",
|
|
41
|
+
"activateParentUesTools",
|
|
42
|
+
'pi.on("before_agent_start"',
|
|
43
|
+
"requireGitWorkspaceRoot",
|
|
44
|
+
"read-only-workspace-mutated",
|
|
45
|
+
"auto-revised the rejected plan",
|
|
46
|
+
"Removed transient runtime dirs",
|
|
47
|
+
"gcEvidenceStore",
|
|
48
|
+
'entry.name === "evidence-v1"',
|
|
49
|
+
"Protected verified-memory evidence",
|
|
50
|
+
"MAX_WRITER_CONCURRENCY",
|
|
51
|
+
"UES_MAX_WRITER_CONCURRENCY",
|
|
52
|
+
"taskSandboxOwnerRoot",
|
|
53
|
+
"pi.setSessionName",
|
|
54
|
+
"sessionNameFromUesInput",
|
|
55
|
+
'uesSessionName("run", task, workspaceRoot)',
|
|
56
|
+
"PACKAGE_VERSION",
|
|
57
|
+
'name: "ues_service"',
|
|
58
|
+
"looksLikeLongRunningServiceCommand",
|
|
59
|
+
"ues_controller_direct",
|
|
60
|
+
"ues_controller_progress",
|
|
61
|
+
"taskPolicyOverride || classifyEngineeringTask",
|
|
62
|
+
"turboFastPathDecision",
|
|
63
|
+
"deepExplorationContract",
|
|
64
|
+
"resolvePiChildInvocation",
|
|
65
|
+
"leafTaskPolicy",
|
|
66
|
+
"failureDelta",
|
|
67
|
+
"UES Per-Leaf Turbo",
|
|
68
|
+
"contextCacheNamespace",
|
|
69
|
+
"planningRuntimeBudget",
|
|
70
|
+
"shouldSoftSteerArchitect",
|
|
71
|
+
"pruneOrphanTaskSandboxes",
|
|
72
|
+
"planning fast-stop",
|
|
73
|
+
"ACTIVE_TASK_SANDBOXES",
|
|
74
|
+
"cleanupTraceSandboxes",
|
|
75
|
+
"ues-clean",
|
|
76
|
+
"reclaimOwnerPid",
|
|
77
|
+
"sourceFacingPaths",
|
|
78
|
+
"sourceGitPathspecs",
|
|
79
|
+
"sandboxIntentToAddSourceFiles",
|
|
80
|
+
"--exclude-standard",
|
|
81
|
+
"changed real source files outside declared write scope",
|
|
82
|
+
"Do not silently broaden scope",
|
|
83
|
+
"extractValidatedPlan",
|
|
84
|
+
"absoluteHardTimeoutMs",
|
|
85
|
+
"activityExtensionMs",
|
|
86
|
+
"UES planning salvage",
|
|
87
|
+
"first substantive output",
|
|
88
|
+
"partialOutput",
|
|
89
|
+
"UES DEEP bounded exploration",
|
|
90
|
+
"DEEP efficiency rule",
|
|
91
|
+
"TURBO_FAST_TIMEOUTS",
|
|
92
|
+
"process.stderr.write",
|
|
22
93
|
"CHILD_RUNTIME_EXTENSION",
|
|
23
94
|
"isAbortedRun",
|
|
24
95
|
"abortedResponse",
|
|
25
96
|
'reason: "aborted"',
|
|
97
|
+
"buildExecutionContract",
|
|
98
|
+
"captureInheritedDirtyState",
|
|
99
|
+
"detectInheritedDirtyViolations",
|
|
100
|
+
"enforcePhaseGates",
|
|
101
|
+
"inherited dirty-work guard stopped completion",
|
|
102
|
+
"FINAL_VERDICTS.json",
|
|
103
|
+
"UES_CHILD_ALLOW_LOCAL_ENV_WRITE",
|
|
104
|
+
"Independent final verdict matrix: on",
|
|
26
105
|
],
|
|
27
106
|
},
|
|
28
107
|
{
|
|
@@ -35,11 +114,21 @@ const CONTRACTS = [
|
|
|
35
114
|
'name: "ues_evidence_get"',
|
|
36
115
|
'name: "ues_code"',
|
|
37
116
|
'name: "ues_code_edit"',
|
|
117
|
+
'name: "ues_service"',
|
|
118
|
+
'process.env.UES_CHILD_PROCESS !== "1"',
|
|
119
|
+
"looksLikeLongRunningServiceCommand",
|
|
120
|
+
"stopAllServices",
|
|
38
121
|
"applyAnchoredFileEdits",
|
|
39
122
|
"diagnoseCode",
|
|
40
123
|
"recordVerification",
|
|
41
124
|
"canonicalVerificationCommand",
|
|
42
125
|
"destructiveShellRisk",
|
|
126
|
+
"isLocalEnvPath",
|
|
127
|
+
"localEnvWriteRisk",
|
|
128
|
+
"crossToolTempPathRisk",
|
|
129
|
+
"portable temp-path guard",
|
|
130
|
+
"UES_CHILD_ALLOW_LOCAL_ENV_WRITE",
|
|
131
|
+
"NEEDS_USER_ENV",
|
|
43
132
|
],
|
|
44
133
|
},
|
|
45
134
|
{
|
|
@@ -87,7 +176,7 @@ const CONTRACTS = [
|
|
|
87
176
|
file: "lib/evidence-store.mjs",
|
|
88
177
|
minBytes: 7_500,
|
|
89
178
|
startsWith: "import ",
|
|
90
|
-
required: ["putEvidence", "getEvidence", "getEvidenceSelected"],
|
|
179
|
+
required: ["putEvidence", "getEvidence", "getEvidenceSelected", "DEFAULT_MAX_STORE_BYTES", "maxBytes", "AUTO_GC_EVERY_WRITES", "protectedEvidenceHashes", "protectedEntries"],
|
|
91
180
|
},
|
|
92
181
|
{
|
|
93
182
|
file: "lib/process-supervisor.mjs",
|
|
@@ -95,17 +184,166 @@ const CONTRACTS = [
|
|
|
95
184
|
startsWith: "import ",
|
|
96
185
|
required: ["terminateProcessTree", "runSupervisedProcess", "drainTimeoutMs"],
|
|
97
186
|
},
|
|
187
|
+
{
|
|
188
|
+
file: "lib/activity-deadline.mjs",
|
|
189
|
+
minBytes: 1_500,
|
|
190
|
+
startsWith: "function finite",
|
|
191
|
+
required: [
|
|
192
|
+
"createAdaptiveDeadline",
|
|
193
|
+
"absoluteHardTimeoutMs",
|
|
194
|
+
"activityExtensionMs",
|
|
195
|
+
"activityWindowMs",
|
|
196
|
+
"absolute-hard-timeout",
|
|
197
|
+
"hard-timeout",
|
|
198
|
+
],
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
file: "lib/plan-salvage.mjs",
|
|
202
|
+
minBytes: 2_000,
|
|
203
|
+
startsWith: "import ",
|
|
204
|
+
required: [
|
|
205
|
+
"extractValidatedPlan",
|
|
206
|
+
"normalizePlanForValidation",
|
|
207
|
+
"validatePlan",
|
|
208
|
+
"unmarked-balanced",
|
|
209
|
+
"fenced",
|
|
210
|
+
"salvaged",
|
|
211
|
+
],
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
file: "lib/runtime-artifacts.mjs",
|
|
215
|
+
minBytes: 800,
|
|
216
|
+
startsWith: "export const UES_RUNTIME_DIRS",
|
|
217
|
+
required: [
|
|
218
|
+
"isUesRuntimeArtifactPath",
|
|
219
|
+
"sourceFacingPaths",
|
|
220
|
+
"sourceGitPathspecs",
|
|
221
|
+
".ues-traces",
|
|
222
|
+
".ues-cache",
|
|
223
|
+
".ues-services",
|
|
224
|
+
".ues-work",
|
|
225
|
+
],
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
file: "lib/runtime-events.mjs",
|
|
229
|
+
minBytes: 1_200,
|
|
230
|
+
startsWith: 'import { randomUUID }',
|
|
231
|
+
required: [
|
|
232
|
+
"appendRuntimeEvent",
|
|
233
|
+
"readRuntimeEvents",
|
|
234
|
+
"DEFAULT_MAX_EVENT_FILE_BYTES",
|
|
235
|
+
"runtime-events.compacted",
|
|
236
|
+
"UES_EVENT_LOG_MAX_BYTES",
|
|
237
|
+
],
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
file: "lib/workspace-root.mjs",
|
|
241
|
+
minBytes: 900,
|
|
242
|
+
startsWith: 'import { spawnSync }',
|
|
243
|
+
required: [
|
|
244
|
+
"resolveGitWorkspaceRoot",
|
|
245
|
+
"requireGitWorkspaceRoot",
|
|
246
|
+
"--show-toplevel",
|
|
247
|
+
"Refusing to create UES runtime artifacts",
|
|
248
|
+
],
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
file: "lib/planning-speed-policy.mjs",
|
|
252
|
+
minBytes: 1_500,
|
|
253
|
+
startsWith: "function bounded",
|
|
254
|
+
required: [
|
|
255
|
+
"planningRuntimeBudget",
|
|
256
|
+
"shouldSoftSteerArchitect",
|
|
257
|
+
"absoluteHardTimeoutMs",
|
|
258
|
+
"activityExtensionMs",
|
|
259
|
+
"activityWindowMs",
|
|
260
|
+
"150_000",
|
|
261
|
+
"maxExplorationTools",
|
|
262
|
+
],
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
file: "lib/leaf-runtime-optimizer.mjs",
|
|
266
|
+
minBytes: 2_000,
|
|
267
|
+
startsWith: "import ",
|
|
268
|
+
required: [
|
|
269
|
+
"leafTaskPolicy",
|
|
270
|
+
"failureDelta",
|
|
271
|
+
"rootExecutionProfile",
|
|
272
|
+
"FAILURE_SIGNAL",
|
|
273
|
+
"Declared write files",
|
|
274
|
+
],
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
file: "lib/pi-child-invocation.mjs",
|
|
278
|
+
minBytes: 1_500,
|
|
279
|
+
startsWith: "import ",
|
|
280
|
+
required: [
|
|
281
|
+
"looksLikePiCliEntrypoint",
|
|
282
|
+
"resolvePiChildInvocation",
|
|
283
|
+
"@earendil-works/pi-coding-agent",
|
|
284
|
+
"resolveManagedPiCommand",
|
|
285
|
+
"resolveWindowsCommand",
|
|
286
|
+
"host-pi-cli",
|
|
287
|
+
"managed-pi",
|
|
288
|
+
],
|
|
289
|
+
},
|
|
98
290
|
{
|
|
99
291
|
file: "lib/pi-rpc-pool.mjs",
|
|
100
292
|
minBytes: 8_000,
|
|
101
293
|
startsWith: "import ",
|
|
102
|
-
required: [
|
|
294
|
+
required: [
|
|
295
|
+
"class RpcWorker",
|
|
296
|
+
"steerActive",
|
|
297
|
+
"abortActive",
|
|
298
|
+
"abortTransport",
|
|
299
|
+
"activeAbort",
|
|
300
|
+
"uesRpcPhase",
|
|
301
|
+
"stopAll",
|
|
302
|
+
"createAdaptiveDeadline",
|
|
303
|
+
"absoluteHardTimeoutMs",
|
|
304
|
+
"partialAssistantMessage",
|
|
305
|
+
"rich timeout error before transport teardown",
|
|
306
|
+
"settled.catch(() => {})",
|
|
307
|
+
],
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
file: "lib/worktree-sandbox.mjs",
|
|
311
|
+
minBytes: 8_000,
|
|
312
|
+
startsWith: "import ",
|
|
313
|
+
required: [
|
|
314
|
+
"pruneOrphanTaskSandboxes",
|
|
315
|
+
"taskSandboxOwnerRoot",
|
|
316
|
+
"ownerPid",
|
|
317
|
+
"owner-alive",
|
|
318
|
+
"legacyMinAgeMs",
|
|
319
|
+
"ownedMinAgeMs",
|
|
320
|
+
"reclaimOwnerPid",
|
|
321
|
+
"protected-active",
|
|
322
|
+
"sidecarsRemoved",
|
|
323
|
+
"detached-owner-alive",
|
|
324
|
+
"detached-remove-failed",
|
|
325
|
+
"detached: true",
|
|
326
|
+
"sourceGitPathspecs",
|
|
327
|
+
"isUesRuntimeArtifactPath",
|
|
328
|
+
"intentToAddSourceFiles",
|
|
329
|
+
"--exclude-standard",
|
|
330
|
+
"processAlive",
|
|
331
|
+
],
|
|
103
332
|
},
|
|
104
333
|
{
|
|
105
334
|
file: "lib/workspace-fingerprint.mjs",
|
|
106
335
|
minBytes: 3_000,
|
|
107
336
|
startsWith: "import ",
|
|
108
|
-
required: [
|
|
337
|
+
required: [
|
|
338
|
+
"runtimeWorkspaceFingerprint",
|
|
339
|
+
"runtimeWorkspaceSnapshot",
|
|
340
|
+
"changedFiles",
|
|
341
|
+
"cacheable",
|
|
342
|
+
"untrackedContentDigest",
|
|
343
|
+
"untracked-total-too-large",
|
|
344
|
+
"UES_RUNTIME_DIRS",
|
|
345
|
+
"runtime-artifacts.mjs",
|
|
346
|
+
],
|
|
109
347
|
},
|
|
110
348
|
{
|
|
111
349
|
file: "lib/skill-compiler.mjs",
|
|
@@ -166,11 +404,28 @@ const CONTRACTS = [
|
|
|
166
404
|
startsWith: "import ",
|
|
167
405
|
required: ["diagnoseCode", "lspProviderStatus", "publishDiagnostics"],
|
|
168
406
|
},
|
|
407
|
+
{
|
|
408
|
+
file: "lib/execution-contract.mjs",
|
|
409
|
+
minBytes: 8_000,
|
|
410
|
+
startsWith: "import ",
|
|
411
|
+
required: [
|
|
412
|
+
"captureInheritedDirtyState",
|
|
413
|
+
"detectInheritedDirtyViolations",
|
|
414
|
+
"explicitlyAuthorizedInheritedDirtyPaths",
|
|
415
|
+
"taskExplicitlyAllowsLocalEnvWrite",
|
|
416
|
+
"enforcePhaseGates",
|
|
417
|
+
"executionContractPrompt",
|
|
418
|
+
"buildFinalVerdictMatrix",
|
|
419
|
+
"phaseArtifactPayloads",
|
|
420
|
+
"crossToolTempPathRisk",
|
|
421
|
+
"cross-tool-posix-temp-path",
|
|
422
|
+
],
|
|
423
|
+
},
|
|
169
424
|
{
|
|
170
425
|
file: "lib/completion-auditor.mjs",
|
|
171
426
|
minBytes: 2_500,
|
|
172
427
|
startsWith: "function text",
|
|
173
|
-
required: ["auditCompletion", "fresh-behavioral-receipt-missing", "missing-report-section"],
|
|
428
|
+
required: ["auditCompletion", "fresh-behavioral-receipt-missing", "missing-report-section", "benignFailureSection", "outOfScopeGapOnly", "verification-reports-out-of-scope-gap"],
|
|
174
429
|
},
|
|
175
430
|
{
|
|
176
431
|
file: "lib/document-ingestion.mjs",
|
|
@@ -203,6 +458,218 @@ const CONTRACTS = [
|
|
|
203
458
|
required: ["hash anchored edits fail closed", "completion auditor rejects narrative PASS", "verified memory snapshots ignore retrieval/touch noise", "MCP health only recommends reconnect"],
|
|
204
459
|
},
|
|
205
460
|
|
|
461
|
+
{
|
|
462
|
+
file: "lib/task-policy.mjs",
|
|
463
|
+
minBytes: 8_000,
|
|
464
|
+
startsWith: "const SENSITIVE_DOMAIN",
|
|
465
|
+
required: [
|
|
466
|
+
"CONCRETE_DIAGNOSIS",
|
|
467
|
+
"readOnlyTask",
|
|
468
|
+
"READ_ONLY_MODE",
|
|
469
|
+
"MUTATION_INTENT",
|
|
470
|
+
"requireBehavioralReceipt",
|
|
471
|
+
"diagnosisEvidence",
|
|
472
|
+
"word such as \"fix\" must not force",
|
|
473
|
+
"shouldRunDedicatedDiagnosis",
|
|
474
|
+
"deterministicReadOnlyGitCommands",
|
|
475
|
+
"automaticUesAdmission",
|
|
476
|
+
"automaticUesContinuation",
|
|
477
|
+
"AUTO_ACTIVE_CONTINUATION",
|
|
478
|
+
"AUTO_INFORMATIONAL_ONLY",
|
|
479
|
+
'route: "native"',
|
|
480
|
+
'policy.risk === "high" ? "guarded" : "auto"',
|
|
481
|
+
"high-risk-engineering-task",
|
|
482
|
+
],
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
file: "global-config/agents/executor.md",
|
|
486
|
+
minBytes: 2_000,
|
|
487
|
+
startsWith: "---",
|
|
488
|
+
required: [
|
|
489
|
+
"Quality-preserving bounded-exploration policy",
|
|
490
|
+
"do not inventory the repository",
|
|
491
|
+
"spend the remaining effort on fresh verification",
|
|
492
|
+
],
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
file: "global-config/agents/plan-checker.md",
|
|
496
|
+
minBytes: 1_500,
|
|
497
|
+
startsWith: "---",
|
|
498
|
+
required: [
|
|
499
|
+
"Efficiency contract",
|
|
500
|
+
"do not independently rescan the whole repository",
|
|
501
|
+
"return PASS/REVISE immediately",
|
|
502
|
+
],
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
file: "lib/task-graph.mjs",
|
|
506
|
+
minBytes: 7_000,
|
|
507
|
+
startsWith: "import ",
|
|
508
|
+
required: [
|
|
509
|
+
"normalizePlanForValidation",
|
|
510
|
+
"acceptanceCriteria",
|
|
511
|
+
"verificationChecks",
|
|
512
|
+
"riskNotes",
|
|
513
|
+
"Unknown prose in a risk field is never downgraded",
|
|
514
|
+
],
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
file: "global-config/agents/architect.md",
|
|
518
|
+
minBytes: 2_000,
|
|
519
|
+
startsWith: "---",
|
|
520
|
+
required: [
|
|
521
|
+
"UES_PLAN_JSON:",
|
|
522
|
+
"\"acceptance\"",
|
|
523
|
+
"\"verification\"",
|
|
524
|
+
"\"riskNotes\"",
|
|
525
|
+
"low`, `medium`, `high`, `critical",
|
|
526
|
+
"Efficiency contract for DEEP/long-horizon work",
|
|
527
|
+
"Stop repository exploration as soon as every planned task",
|
|
528
|
+
"machine-first planning mode",
|
|
529
|
+
"before the prose sections",
|
|
530
|
+
],
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
file: "lib/turbo-fast-path.mjs",
|
|
534
|
+
minBytes: 1_000,
|
|
535
|
+
startsWith: "const FAST_ROLES",
|
|
536
|
+
required: [
|
|
537
|
+
"turboFastPathDecision",
|
|
538
|
+
"turboFastTimeoutBudget",
|
|
539
|
+
"single-model-deterministic-first",
|
|
540
|
+
"failClosed",
|
|
541
|
+
"verifierOnDemand",
|
|
542
|
+
],
|
|
543
|
+
},
|
|
544
|
+
{
|
|
545
|
+
file: "lib/service-manager.mjs",
|
|
546
|
+
minBytes: 8_000,
|
|
547
|
+
startsWith: "import ",
|
|
548
|
+
required: [
|
|
549
|
+
"startService",
|
|
550
|
+
"waitForService",
|
|
551
|
+
"serviceStatus",
|
|
552
|
+
"serviceLogs",
|
|
553
|
+
"stopService",
|
|
554
|
+
"restartService",
|
|
555
|
+
"stopAllServices",
|
|
556
|
+
"looksLikeLongRunningServiceCommand",
|
|
557
|
+
"terminateProcessTree",
|
|
558
|
+
'kind: "service-log"',
|
|
559
|
+
],
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
file: "test/runtime-artifacts.test.mjs",
|
|
563
|
+
minBytes: 1_000,
|
|
564
|
+
startsWith: 'import test from "node:test"',
|
|
565
|
+
required: [
|
|
566
|
+
"V15.9 runtime artifact filter excludes UES state but preserves real source files",
|
|
567
|
+
"V15.9 runtime filter normalizes Windows separators",
|
|
568
|
+
"apps/mobile/package.json",
|
|
569
|
+
".ues-traces/ues-run.jsonl",
|
|
570
|
+
],
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
file: "test/activity-deadline.test.mjs",
|
|
574
|
+
minBytes: 1_500,
|
|
575
|
+
startsWith: 'import test from "node:test"',
|
|
576
|
+
required: [
|
|
577
|
+
"V15.10 active work extends the initial deadline but never beyond the absolute cap",
|
|
578
|
+
"V15.10 stale activity does not extend a hard deadline",
|
|
579
|
+
"absolute-hard-timeout",
|
|
580
|
+
],
|
|
581
|
+
},
|
|
582
|
+
{
|
|
583
|
+
file: "test/plan-salvage.test.mjs",
|
|
584
|
+
minBytes: 2_400,
|
|
585
|
+
startsWith: 'import test from "node:test"',
|
|
586
|
+
required: [
|
|
587
|
+
"V15.10 plan salvage accepts a marked valid graph",
|
|
588
|
+
"V15.10 plan salvage recovers a complete graph before a transport timeout note",
|
|
589
|
+
"V15.10 plan salvage can recover a fenced valid graph when the marker is missing",
|
|
590
|
+
"V15.10 plan salvage never upgrades an invalid graph into a valid one",
|
|
591
|
+
],
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
file: "test/adaptive-context-budget-v15.test.mjs",
|
|
595
|
+
minBytes: 1_500,
|
|
596
|
+
startsWith: 'import test from "node:test"',
|
|
597
|
+
required: [
|
|
598
|
+
"V15.10 high-risk planner context is role-bounded while execution keeps full evidence",
|
|
599
|
+
"V15.10 planner recovery may expand toward the ceiling without changing the executor ceiling",
|
|
600
|
+
"high-risk-planner-role-bounded",
|
|
601
|
+
"high-risk-execution-preserves-base-budget",
|
|
602
|
+
],
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
file: "test/planning-speed-policy.test.mjs",
|
|
606
|
+
minBytes: 1_500,
|
|
607
|
+
startsWith: 'import test from "node:test"',
|
|
608
|
+
required: [
|
|
609
|
+
"V15.10 architect planning has an activity-aware ceiling and tighter recovery",
|
|
610
|
+
"V15.10 architect soft-steers before idle watchdog or runaway exploration",
|
|
611
|
+
"V15.10 plan-checker uses bounded activity extension and shorter recovery",
|
|
612
|
+
],
|
|
613
|
+
},
|
|
614
|
+
{
|
|
615
|
+
file: "test/worktree-sandbox.test.mjs",
|
|
616
|
+
minBytes: 8_000,
|
|
617
|
+
startsWith: 'import test from "node:test"',
|
|
618
|
+
required: [
|
|
619
|
+
"V15.6 orphan sandbox cleanup removes dead-owner worktrees but preserves live ownership",
|
|
620
|
+
"V15.7 cleanup reclaims ended same-process sandboxes but protects active ones",
|
|
621
|
+
"V15.7 cleanup removes orphan metadata sidecars for missing sandboxes",
|
|
622
|
+
"V15.8 cleanup removes detached physical sandbox folders with valid metadata",
|
|
623
|
+
"V15.9 sandbox integration ignores UES trace artifacts but keeps real source changes",
|
|
624
|
+
"pruneOrphanTaskSandboxes",
|
|
625
|
+
"ownerPid",
|
|
626
|
+
],
|
|
627
|
+
},
|
|
628
|
+
{
|
|
629
|
+
file: "test/leaf-runtime-optimizer.test.mjs",
|
|
630
|
+
minBytes: 2_000,
|
|
631
|
+
startsWith: 'import test from "node:test"',
|
|
632
|
+
required: [
|
|
633
|
+
"V15.5 low-risk single-file leaf becomes FAST inside a DEEP root",
|
|
634
|
+
"V15.5 high-risk database leaf never downshifts from DEEP",
|
|
635
|
+
"V15.5 failure delta keeps error evidence and drops unrelated chatter",
|
|
636
|
+
"leafTaskPolicy",
|
|
637
|
+
"failureDelta",
|
|
638
|
+
],
|
|
639
|
+
},
|
|
640
|
+
{
|
|
641
|
+
file: "test/v15-runtime.test.mjs",
|
|
642
|
+
minBytes: 3_000,
|
|
643
|
+
startsWith: 'import assert from "node:assert/strict"',
|
|
644
|
+
required: [
|
|
645
|
+
"V15 managed service starts, proves readiness, captures evidence and stops",
|
|
646
|
+
"V15 deterministic controller admission and service tool are wired into Pi",
|
|
647
|
+
"V15.4 ACP host never reuses an ACP entrypoint as the Pi child",
|
|
648
|
+
"V15.2 quick discount benchmark remains FAST and Turbo-eligible",
|
|
649
|
+
"normalizePlanForValidation",
|
|
650
|
+
"STRICT JSON CONTRACT",
|
|
651
|
+
"deepExplorationContract",
|
|
652
|
+
"UES DEEP bounded exploration",
|
|
653
|
+
"UES_EVAL_DIRECT_TELEMETRY",
|
|
654
|
+
"ues_controller_direct",
|
|
655
|
+
"controller progress",
|
|
656
|
+
"controllerValid=",
|
|
657
|
+
],
|
|
658
|
+
},
|
|
659
|
+
|
|
660
|
+
{
|
|
661
|
+
file: "scripts/eval-pi.mjs",
|
|
662
|
+
minBytes: 15_000,
|
|
663
|
+
startsWith: "import ",
|
|
664
|
+
required: [
|
|
665
|
+
"ues_controller_progress",
|
|
666
|
+
"ues_controller_direct",
|
|
667
|
+
"agentRun.stdout, agentRun.stderr",
|
|
668
|
+
"onStderr: (chunk) => consumeControllerProgress",
|
|
669
|
+
"controllerValid=",
|
|
670
|
+
"UES_EVAL_DIRECT_TELEMETRY",
|
|
671
|
+
],
|
|
672
|
+
},
|
|
206
673
|
{
|
|
207
674
|
file: "lib/affected-tests.mjs",
|
|
208
675
|
minBytes: 7_500,
|