opencode-agent-skill 7.7.0 → 10.0.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.
Files changed (68) hide show
  1. package/CHANGELOG.md +112 -3
  2. package/README.md +396 -281
  3. package/bin/ocskill.mjs +382 -156
  4. package/docs/DETERMINISTIC-TOOLS.md +25 -8
  5. package/docs/ENGINEERING-DESIGN.md +31 -13
  6. package/docs/EVALS.md +34 -12
  7. package/docs/NPM-PUBLISH.md +6 -6
  8. package/docs/OPENCODE-COMPAT.md +11 -8
  9. package/docs/TRACE-SCHEMA.md +15 -2
  10. package/docs/V8-INTELLIGENCE-RELIABILITY.md +206 -0
  11. package/docs/V9-SPEED-INTELLIGENCE.md +102 -0
  12. package/evals/live/tasks.json +6 -6
  13. package/evals/polyglot/fixtures/polyglot-bench/api/generated/client.ts +2 -0
  14. package/evals/polyglot/fixtures/polyglot-bench/api/openapi.json +25 -0
  15. package/evals/polyglot/fixtures/polyglot-bench/db/migrations/20260920_add_order_key.sql +1 -0
  16. package/evals/polyglot/fixtures/polyglot-bench/dotnet/OrderService.cs +8 -0
  17. package/evals/polyglot/fixtures/polyglot-bench/java/PriceService.java +5 -0
  18. package/evals/polyglot/fixtures/polyglot-bench/monorepo/package.json +6 -0
  19. package/evals/polyglot/fixtures/polyglot-bench/monorepo/packages/api/package.json +4 -0
  20. package/evals/polyglot/fixtures/polyglot-bench/monorepo/packages/web/package.json +7 -0
  21. package/evals/polyglot/fixtures/polyglot-bench/monorepo/pnpm-lock.yaml +5 -0
  22. package/evals/polyglot/fixtures/polyglot-bench/next/app/api/products/route.ts +7 -0
  23. package/evals/polyglot/fixtures/polyglot-bench/python/tenant_auth.py +4 -0
  24. package/evals/polyglot/fixtures/polyglot-bench/react-native/keyboard.ts +3 -0
  25. package/evals/polyglot/graders/polyglot-bench.mjs +101 -0
  26. package/evals/polyglot/tasks.json +54 -0
  27. package/global-config/AGENTS.md +78 -160
  28. package/global-config/agents/integration-verifier.md +1 -1
  29. package/global-config/agents/plan-checker.md +1 -1
  30. package/global-config/commands/run.md +9 -5
  31. package/global-config/plugins/ues-router/capabilities.js +4 -0
  32. package/global-config/plugins/ues-router/index.js +784 -37
  33. package/global-config/plugins/ues-router/router.js +175 -23
  34. package/global-config/plugins/ues-router/runtime-guard.js +265 -0
  35. package/global-config/skills/engineering-orchestrator/references/long-horizon.md +6 -4
  36. package/lib/aci.mjs +128 -0
  37. package/lib/benchmark-confidence.mjs +173 -0
  38. package/lib/cli-utils.mjs +41 -0
  39. package/lib/container-sandbox.mjs +102 -0
  40. package/lib/context-manifest.mjs +300 -22
  41. package/lib/control-center.mjs +36 -3
  42. package/lib/eval-ablation.mjs +104 -0
  43. package/lib/eval-order.mjs +9 -0
  44. package/lib/eval-report.mjs +11 -0
  45. package/lib/eval-telemetry.mjs +8 -2
  46. package/lib/gate-receipt.mjs +52 -0
  47. package/lib/installer.mjs +39 -25
  48. package/lib/learning-engine.mjs +236 -38
  49. package/lib/model-policy.mjs +6 -0
  50. package/lib/opencode-compat.mjs +25 -10
  51. package/lib/orchestrator-policy.mjs +195 -21
  52. package/lib/process-runner.mjs +30 -9
  53. package/lib/runtime-events.mjs +31 -0
  54. package/lib/semantic-index.mjs +318 -0
  55. package/lib/task-engine.mjs +557 -28
  56. package/lib/trajectory.mjs +89 -0
  57. package/lib/windows-shim.mjs +227 -0
  58. package/lib/worktree-sandbox.mjs +85 -3
  59. package/package.json +11 -4
  60. package/scripts/check-release-tag.mjs +22 -0
  61. package/scripts/control-center.mjs +25 -0
  62. package/scripts/eval-ablation.mjs +44 -0
  63. package/scripts/eval-live.mjs +39 -58
  64. package/scripts/eval-matrix.mjs +166 -0
  65. package/scripts/smoke-packed-install.mjs +138 -4
  66. package/scripts/smoke-plain-install.mjs +91 -0
  67. package/scripts/validate-live-suite.mjs +3 -3
  68. package/scripts/validate.mjs +27 -5
@@ -111,13 +111,35 @@ if (existsSync(routerIndex)) {
111
111
  if (!source.includes("ctx.session.switchAgent")) errors.push("v2 task dispatch must select ues-executor")
112
112
  if (!source.includes("ctx.session.switchModel")) errors.push("v2 task dispatch must support configured model escalation")
113
113
  if (!source.includes("ctx.session.wait")) errors.push("v2 task dispatch must wait for executor completion")
114
- if (!source.includes('name: "capabilities"')) errors.push("v7 router plugin must expose runtime capability inspection")
115
- if (!source.includes('name: "task_policy"')) errors.push("v7 router plugin must expose adaptive task policy")
116
- if (!source.includes('"work", "heartbeat"')) errors.push("v7 task dispatch must refresh task leases")
114
+ if (!source.includes('name: "capabilities"')) errors.push("v8 router plugin must expose runtime capability inspection")
115
+ if (!source.includes('name: "task_policy"')) errors.push("v8 router plugin must expose adaptive task policy")
116
+ if (!source.includes('name: "cancel_task"')) errors.push("v8 router plugin must expose executor cancellation")
117
+ if (!source.includes('name: "recover_task"')) errors.push("v8 router plugin must expose task-scoped recovery")
118
+ if (!source.includes("ctx.session.interrupt")) errors.push("v8 task dispatch must interrupt timed-out executors")
119
+ if (!source.includes('"work", "heartbeat"')) errors.push("v8 task dispatch must refresh task leases")
117
120
  }
118
121
 
119
- for (const name of ["process-runner.mjs","evidence-receipt.mjs","context-manifest.mjs","orchestrator-policy.mjs","worktree-sandbox.mjs","learning-engine.mjs","hermes-bridge.mjs","control-center.mjs"]) {
120
- if (!existsSync(path.join(root, "lib", name))) errors.push(`missing V7 core module ${name}`)
122
+ const publishWorkflow = path.join(root, ".github", "workflows", "publish.yml")
123
+ if (!existsSync(publishWorkflow)) {
124
+ errors.push("missing npm publish workflow")
125
+ } else {
126
+ const source = await readFile(publishWorkflow, "utf8")
127
+ if (source.includes("workflow_dispatch")) errors.push("publish workflow must be tag-only")
128
+ if (!source.includes("id-token: write")) errors.push("publish workflow must enable OIDC id-token permission")
129
+ if (source.includes("NODE_AUTH_TOKEN")) errors.push("publish workflow must not inject long-lived npm tokens")
130
+ if (!source.includes("npm publish --access public --provenance")) errors.push("publish workflow must emit npm provenance")
131
+ }
132
+
133
+ const plainInstallSmoke = path.join(root, "scripts", "smoke-plain-install.mjs")
134
+ if (existsSync(plainInstallSmoke)) {
135
+ const source = await readFile(plainInstallSmoke, "utf8")
136
+ if (source.includes("ocskill install after plain npm install")) {
137
+ errors.push("plain install smoke must not recover with a second manual install command")
138
+ }
139
+ }
140
+
141
+ for (const name of ["process-runner.mjs","evidence-receipt.mjs","gate-receipt.mjs","runtime-events.mjs","context-manifest.mjs","orchestrator-policy.mjs","worktree-sandbox.mjs","learning-engine.mjs","hermes-bridge.mjs","control-center.mjs"]) {
142
+ if (!existsSync(path.join(root, "lib", name))) errors.push(`missing V8 core module ${name}`)
121
143
  }
122
144
 
123
145
  for (const name of ["codebase-mapper.md","plan-checker.md","executor.md","integration-verifier.md"]) {