sneakoscope 10.3.7 → 10.3.9

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 (388) hide show
  1. package/README.md +17 -183
  2. package/crates/sks-core/Cargo.lock +1 -1
  3. package/crates/sks-core/Cargo.toml +1 -1
  4. package/dist/bin/sks-dispatch.js +1 -1
  5. package/dist/cli/command-registry.js +0 -9
  6. package/dist/cli/feature-commands.js +18 -52
  7. package/dist/cli/global-mode-router.js +0 -1
  8. package/dist/cli/install-helpers-codex-lb-shared.js +0 -3
  9. package/dist/cli/install-helpers-install-support.js +1 -20
  10. package/dist/cli/install-helpers.js +3 -3
  11. package/dist/cli/install-tool-helpers.js +0 -76
  12. package/dist/cli/router.js +0 -3
  13. package/dist/commands/bridge.js +61 -1
  14. package/dist/commands/codex-app.js +4 -1
  15. package/dist/commands/decision.js +1 -1
  16. package/dist/commands/doctor-helpers.js +1 -20
  17. package/dist/commands/doctor.js +9 -21
  18. package/dist/commands/hook.js +3 -2
  19. package/dist/config/skills-manifest.json +1 -1
  20. package/dist/core/agent-bridge/host-capability-runtime.js +0 -3
  21. package/dist/core/agents/agent-codex-cockpit.js +0 -1
  22. package/dist/core/agents/agent-orchestrator.js +1 -1
  23. package/dist/core/agents/agent-patch-transaction-journal.js +1 -16
  24. package/dist/core/agents/agent-plan.js +0 -4
  25. package/dist/core/agents/agent-recursion-guard.js +0 -369
  26. package/dist/core/agents/agent-role-config.js +1 -15
  27. package/dist/core/agents/agent-runner-fake.js +0 -53
  28. package/dist/core/agents/agent-schema.js +0 -4
  29. package/dist/core/agents/agent-work-queue.js +1 -11
  30. package/dist/core/agents/agent-worker-pipeline.js +1 -19
  31. package/dist/core/agents/agent-worker-slot.js +1 -10
  32. package/dist/core/agents/native-worker-backend-router.js +55 -0
  33. package/dist/core/agents/runtime-proof-summary.js +0 -1
  34. package/dist/core/align/align-route.js +0 -3
  35. package/dist/core/align/code-navigation-align.js +1 -1
  36. package/dist/core/architecture-hardening/contracts/contracts.js +0 -4
  37. package/dist/core/architecture-map-pipeline.js +0 -25
  38. package/dist/core/architecture-map-review.js +2 -18
  39. package/dist/core/artifact-schemas.js +0 -1
  40. package/dist/core/auto-review.js +0 -22
  41. package/dist/core/code-structure.js +0 -5
  42. package/dist/core/codex/agent-config-file-repair.js +0 -3
  43. package/dist/core/codex/codex-config-guard.js +0 -40
  44. package/dist/core/codex-app/codex-app-fast-ui-preservation.js +1 -7
  45. package/dist/core/codex-app/codex-app-restart-policy.js +20 -0
  46. package/dist/core/codex-app/codex-app-types.js +0 -3
  47. package/dist/core/codex-app/codex-context-window.js +61 -24
  48. package/dist/core/codex-app/codex-desktop-routing-ownership.js +0 -1
  49. package/dist/core/codex-app/codex-hook-lifecycle.js +2 -2
  50. package/dist/core/codex-app/codex-model-catalog.js +0 -11
  51. package/dist/core/codex-app/codex-models-cache.js +0 -8
  52. package/dist/core/codex-app/mcp-manager.js +1 -2
  53. package/dist/core/codex-app/menubar/constants.js +4 -0
  54. package/dist/core/codex-app/multi-provider-router-support.js +1 -178
  55. package/dist/core/codex-app.js +0 -4
  56. package/dist/core/codex-compat/codex-hook-output-builders.js +3 -1
  57. package/dist/core/codex-compat/codex-hook-semantic-validator.js +0 -15
  58. package/dist/core/codex-control/codex-current-feature-capability.js +2 -14
  59. package/dist/core/codex-control/codex-current-feature-probes.js +0 -4
  60. package/dist/core/codex-control/codex-output-schemas.js +0 -10
  61. package/dist/core/codex-control/codex-reliability-shield.js +0 -3
  62. package/dist/core/codex-control/codex-sdk-env-policy.js +0 -3
  63. package/dist/core/codex-control/gpt-final-arbiter.js +1 -1
  64. package/dist/core/codex-control/model-call-concurrency.js +0 -1
  65. package/dist/core/codex-hooks/codex-dead-managed-hooks.js +116 -0
  66. package/dist/core/codex-hooks/codex-global-hooks.js +387 -0
  67. package/dist/core/codex-hooks/codex-hook-actual-discovery.js +36 -106
  68. package/dist/core/codex-hooks/codex-hook-hash.js +4 -7
  69. package/dist/core/codex-hooks/codex-hook-official-parity.js +32 -125
  70. package/dist/core/codex-hooks/codex-hook-state-writer.js +0 -139
  71. package/dist/core/codex-hooks/codex-hook-trust-doctor.js +16 -30
  72. package/dist/core/codex-hooks/codex-hook-trust-state.js +8 -7
  73. package/dist/core/codex-hooks/codex-hooks-list.js +106 -0
  74. package/dist/core/codex-hooks/codex-project-hooks.js +108 -0
  75. package/dist/core/codex-hooks/sks-hook-entries.js +104 -0
  76. package/dist/core/codex-lb/bridge-cli-contract.js +2 -0
  77. package/dist/core/codex-lb/codex-lb-env.js +0 -2
  78. package/dist/core/codex-lb/desktop-auth-invariant.js +1 -44
  79. package/dist/core/codex-lb/desktop-bridge/exclusive-provider-guard.js +59 -0
  80. package/dist/core/codex-lb/desktop-bridge/http-forward.js +23 -15
  81. package/dist/core/codex-lb/desktop-bridge/index.js +1 -0
  82. package/dist/core/codex-lb/desktop-bridge/responses-websocket.js +10 -3
  83. package/dist/core/codex-lb/desktop-bridge/security.js +63 -1
  84. package/dist/core/codex-lb/desktop-bridge/server.js +5 -0
  85. package/dist/core/codex-lb/desktop-bridge/state.js +3 -0
  86. package/dist/core/codex-lb/desktop-bridge/websocket-forward.js +5 -1
  87. package/dist/core/codex-lb/desktop-bridge-migration.js +0 -1
  88. package/dist/core/codex-lb/desktop-controller-v3/catalog.js +31 -5
  89. package/dist/core/codex-lb/desktop-controller-v3/lifecycle-commands.js +23 -4
  90. package/dist/core/codex-lb/desktop-controller-v3/openrouter-only-catalog.js +39 -0
  91. package/dist/core/codex-lb/desktop-controller-v3/openrouter-only-commands.js +286 -0
  92. package/dist/core/codex-lb/desktop-controller-v3/openrouter-only-main-model.js +101 -0
  93. package/dist/core/codex-lb/desktop-controller-v3/openrouter-only-status.js +61 -0
  94. package/dist/core/codex-lb/desktop-controller-v3/status.js +8 -5
  95. package/dist/core/codex-lb/desktop-controller-v3.js +26 -2
  96. package/dist/core/codex-lb/desktop-service.js +13 -2
  97. package/dist/core/codex-lb/route-index.js +0 -3
  98. package/dist/core/codex-lb/trusted-deep-evidence.js +0 -3
  99. package/dist/core/codex-lb-circuit.js +0 -20
  100. package/dist/core/codex-native/codex-native-feature-matrix.js +0 -3
  101. package/dist/core/codex-native/core-skill-integrity.js +1 -4
  102. package/dist/core/codex-native/core-skill-manifest.js +0 -4
  103. package/dist/core/commands/basic-cli.js +16 -4
  104. package/dist/core/commands/mad-sks-command.js +0 -22
  105. package/dist/core/commands/naruto-command.js +5 -5
  106. package/dist/core/commands/ppt-command.js +1 -1
  107. package/dist/core/commands/seo-command.js +0 -3
  108. package/dist/core/commands/triwiki-atlas-command.js +1 -1
  109. package/dist/core/commands/uninstall-command.js +10 -0
  110. package/dist/core/commands/wiki-command.js +1 -1
  111. package/dist/core/config/config-migration-journal.js +1 -27
  112. package/dist/core/config/managed-config-merge.js +1 -1
  113. package/dist/core/config/secret-preservation.js +0 -5
  114. package/dist/core/config-adopt/config-adopt.js +0 -1
  115. package/dist/core/context7-client.js +0 -3
  116. package/dist/core/daemon/sksd-client.js +1 -2
  117. package/dist/core/daemon/sksd-hook-dispatch.js +26 -9
  118. package/dist/core/daemon/sksd-ipc.js +0 -6
  119. package/dist/core/daemon/sksd.js +0 -28
  120. package/dist/core/db-review.js +0 -10
  121. package/dist/core/db-safety.js +0 -36
  122. package/dist/core/decisions/child-model-choice.js +107 -0
  123. package/dist/core/decisions/cli.js +19 -2
  124. package/dist/core/decisions/integration.js +1 -25
  125. package/dist/core/decisions/openrouter.js +1 -4
  126. package/dist/core/decisions/policy.js +1 -2
  127. package/dist/core/decisions/questions.js +1 -2
  128. package/dist/core/decisions/receipt.js +0 -11
  129. package/dist/core/decisions/routing.js +5 -4
  130. package/dist/core/decisions/types.js +0 -1
  131. package/dist/core/dfix.js +0 -12
  132. package/dist/core/doctor/doctor-codex-startup-repair.js +0 -1
  133. package/dist/core/doctor/doctor-native-capability-repair.js +14 -15
  134. package/dist/core/doctor/doctor-readiness-matrix.js +12 -11
  135. package/dist/core/doctor/global-sks-install-cleanup.js +1 -15
  136. package/dist/core/evidence/evidence-router.js +1 -1
  137. package/dist/core/feature-fixture-runner.js +0 -12
  138. package/dist/core/feature-registry.js +1 -25
  139. package/dist/core/fsx.js +0 -19
  140. package/dist/core/git/git-worktree-cleanup.js +0 -27
  141. package/dist/core/git-hygiene/git-status.js +1 -7
  142. package/dist/core/git-hygiene/shared-memory-publish.js +2 -23
  143. package/dist/core/git-simple.js +2 -7
  144. package/dist/core/harness-conflicts.js +0 -1
  145. package/dist/core/hooks-runtime/context-graph-freshness-preflight.js +0 -22
  146. package/dist/core/hooks-runtime/hook-context.js +21 -7
  147. package/dist/core/hooks-runtime/hook-io.js +3 -2
  148. package/dist/core/hooks-runtime/hook-layer.js +101 -0
  149. package/dist/core/hooks-runtime/jev-spawn-routing.js +83 -5
  150. package/dist/core/hooks-runtime/official-subagent-lifecycle.js +5 -4
  151. package/dist/core/hooks-runtime/parent-orchestration-gate.js +18 -1
  152. package/dist/core/hooks-runtime/subagent-context.js +13 -2
  153. package/dist/core/hooks-runtime/subagent-spawn-policy.js +49 -6
  154. package/dist/core/hooks-runtime.js +31 -38
  155. package/dist/core/hproof.js +0 -18
  156. package/dist/core/image-ux-review/callout-extraction.js +0 -9
  157. package/dist/core/image-ux-review/imagegen-adapter.js +1 -1
  158. package/dist/core/image-ux-review/recapture.js +0 -14
  159. package/dist/core/image-ux-review.js +0 -1
  160. package/dist/core/imagegen/imagegen-model-policy.js +0 -1
  161. package/dist/core/imagegen/imagegen-request-validator.js +1 -6
  162. package/dist/core/init/skills.js +2 -5
  163. package/dist/core/init.js +35 -120
  164. package/dist/core/loop-blocker.js +0 -20
  165. package/dist/core/loops/loop-artifacts.js +0 -6
  166. package/dist/core/loops/loop-checkpoint.js +1 -4
  167. package/dist/core/loops/loop-gate-ladder.js +0 -4
  168. package/dist/core/loops/loop-lease.js +0 -3
  169. package/dist/core/loops/loop-owner-inference.js +0 -22
  170. package/dist/core/loops/loop-owner-ledger.js +1 -1
  171. package/dist/core/loops/loop-risk-classifier.js +0 -8
  172. package/dist/core/loops/loop-side-effect-scanner.js +1 -4
  173. package/dist/core/mad-sks/executors/executor-base.js +0 -20
  174. package/dist/core/mad-sks/executors/index.js +0 -3
  175. package/dist/core/mad-sks/sql-plane/capability.js +0 -45
  176. package/dist/core/mad-sks/sql-plane/coordinator.js +3 -30
  177. package/dist/core/mad-sks/sql-plane/ledger.js +0 -14
  178. package/dist/core/mad-sks/sql-plane/mcp-executor.js +0 -3
  179. package/dist/core/mad-sks/sql-plane/policy.js +0 -3
  180. package/dist/core/mad-sks/sql-plane/result-lifecycle.js +0 -10
  181. package/dist/core/mad-sks/sql-plane/target.js +0 -3
  182. package/dist/core/managed-assets/managed-assets-manifest.js +9 -36
  183. package/dist/core/managed-path-safety.js +0 -3
  184. package/dist/core/mcp/mcp-config-preservation.js +0 -3
  185. package/dist/core/mcp/modern-protocol.js +0 -11
  186. package/dist/core/mcp-config/guarded-patch.js +0 -4
  187. package/dist/core/mcp-config/health-check.js +1 -1
  188. package/dist/core/memory-governor.js +0 -4
  189. package/dist/core/mistake-memory.js +1 -49
  190. package/dist/core/naruto/naruto-active-pool.js +0 -240
  191. package/dist/core/naruto/naruto-parallel-patch-apply.js +0 -16
  192. package/dist/core/naruto/naruto-real-write-proof.js +0 -29
  193. package/dist/core/naruto/naruto-role-policy.js +0 -76
  194. package/dist/core/naruto/naruto-task-hints.js +0 -57
  195. package/dist/core/naruto/naruto-work-graph.js +0 -20
  196. package/dist/core/naruto/naruto-work-item.js +0 -25
  197. package/dist/core/naruto/solution-tournament.js +0 -26
  198. package/dist/core/ops/ops-maturity-scorecard.js +1 -5
  199. package/dist/core/perf/release-latency-slo.js +4 -1
  200. package/dist/core/pipeline-internals/runtime-core.js +6 -80
  201. package/dist/core/policy/latest-version-guidance.js +0 -1
  202. package/dist/core/ppt/style-tokens.js +1 -1
  203. package/dist/core/ppt-imagegen-review.js +1 -2
  204. package/dist/core/ppt-review/slide-issue-extraction.js +0 -1
  205. package/dist/core/ppt.js +3 -3
  206. package/dist/core/probes/probe-memoization.js +0 -31
  207. package/dist/core/proof/proof-writer.js +0 -18
  208. package/dist/core/proof-field.js +0 -27
  209. package/dist/core/provider/provider-badge.js +0 -11
  210. package/dist/core/provider/provider-context.js +1 -7
  211. package/dist/core/providers/openrouter/openrouter-request-cache.js +0 -2
  212. package/dist/core/providers/openrouter/openrouter-secret-store.js +0 -32
  213. package/dist/core/python-tools/python-tool-runner.js +1 -6
  214. package/dist/core/qa-loop/qa-types.js +0 -3
  215. package/dist/core/qa-loop.js +0 -24
  216. package/dist/core/questions.js +0 -5
  217. package/dist/core/recallpulse.js +1 -18
  218. package/dist/core/release/content-digest-cache.js +0 -3
  219. package/dist/core/release/gate-manifest.js +0 -7
  220. package/dist/core/release/gate-pack-assertion.js +0 -19
  221. package/dist/core/release/gate-pack-runner.js +0 -4
  222. package/dist/core/release/release-gate-cache-v2.js +0 -3
  223. package/dist/core/remote/index.js +0 -1
  224. package/dist/core/remote/owner-proof.js +1 -7
  225. package/dist/core/remote/protocol.js +0 -12
  226. package/dist/core/remote/session-index.js +0 -13
  227. package/dist/core/research/claim-evidence-matrix.js +1 -1
  228. package/dist/core/research/implementation-blueprint-densifier.js +0 -1
  229. package/dist/core/research/mock-result.js +2 -2
  230. package/dist/core/research/research-realistic-report.js +0 -4
  231. package/dist/core/research/research-source-evidence.js +0 -8
  232. package/dist/core/research/research-source-ledger-merge.js +0 -1
  233. package/dist/core/research/research-synthesis-writer.js +0 -4
  234. package/dist/core/research.js +0 -5
  235. package/dist/core/responses-stream.js +0 -13
  236. package/dist/core/retention.js +0 -6
  237. package/dist/core/routes/constants.js +0 -1
  238. package/dist/core/routes/design-policy.js +0 -3
  239. package/dist/core/routes/evidence.js +1 -13
  240. package/dist/core/routes/model-mode-router.js +0 -4
  241. package/dist/core/routes.js +2 -83
  242. package/dist/core/safety/mutation-guard.js +0 -1
  243. package/dist/core/search/cache.js +0 -3
  244. package/dist/core/search/context-graph-seeds.js +0 -7
  245. package/dist/core/search/index.js +0 -1
  246. package/dist/core/search/rust-bridge.js +1 -5
  247. package/dist/core/search-visibility/adapter-registry.js +0 -3
  248. package/dist/core/search-visibility/analyzers.js +0 -2
  249. package/dist/core/search-visibility/artifacts.js +0 -1
  250. package/dist/core/search-visibility/index.js +1 -2
  251. package/dist/core/search-visibility/marketing.js +0 -3
  252. package/dist/core/search-visibility/mission.js +1 -4
  253. package/dist/core/search-visibility/verifier.js +1 -6
  254. package/dist/core/security/private-credential-file.js +0 -61
  255. package/dist/core/skill-forge.js +0 -35
  256. package/dist/core/skills/core-rollout-trace.js +1 -11
  257. package/dist/core/skills/core-skill-card.js +0 -0
  258. package/dist/core/skills/core-skill-deployment.js +0 -6
  259. package/dist/core/stop-gate/stop-gate-resolver.js +1 -1
  260. package/dist/core/strategy/adhd-orchestrating-gate.js +1 -1
  261. package/dist/core/subagents/child-model-allowlist.js +176 -0
  262. package/dist/core/subagents/child-model-plan.js +117 -0
  263. package/dist/core/subagents/model-policy.js +0 -4
  264. package/dist/core/subagents/model-tiers.js +0 -9
  265. package/dist/core/subagents/naruto-host-credentials.js +82 -13
  266. package/dist/core/subagents/official-subagent-config.js +67 -17
  267. package/dist/core/subagents/official-subagent-preparation.js +45 -12
  268. package/dist/core/subagents/official-subagent-prompt.js +82 -11
  269. package/dist/core/subagents/official-subagent-runner.js +3 -0
  270. package/dist/core/subagents/read-only-list-role.js +73 -0
  271. package/dist/core/subagents/role-model-preferences.js +54 -17
  272. package/dist/core/subagents/subagent-evidence.js +0 -2
  273. package/dist/core/super-search/runtime-helpers.js +1 -19
  274. package/dist/core/super-search/types.js +0 -1
  275. package/dist/core/triwiki/agents-md-projector.js +0 -3
  276. package/dist/core/triwiki/code-navigation-context-pack.js +1 -11
  277. package/dist/core/triwiki/code-pack.js +0 -17
  278. package/dist/core/triwiki/context-graph/architecture/fingerprint.js +0 -7
  279. package/dist/core/triwiki/context-graph/architecture/input-bundle.js +0 -14
  280. package/dist/core/triwiki/context-graph/architecture/policy.js +0 -7
  281. package/dist/core/triwiki/context-graph/architecture/slice.js +0 -90
  282. package/dist/core/triwiki/context-graph/architecture/validation.js +1 -73
  283. package/dist/core/triwiki/context-graph/architecture/voxel-context.js +0 -22
  284. package/dist/core/triwiki/context-graph/compiler/fragment-manifest-store.js +0 -6
  285. package/dist/core/triwiki/context-graph/compiler/fragment-manifest.js +0 -12
  286. package/dist/core/triwiki/context-graph/compiler/serialize.js +0 -3
  287. package/dist/core/triwiki/context-graph/graph-index.js +0 -10
  288. package/dist/core/triwiki/context-graph/paths.js +0 -3
  289. package/dist/core/triwiki/context-graph/projections/mermaid/index.js +0 -3
  290. package/dist/core/triwiki/context-graph/projections/mermaid/serializer.js +0 -12
  291. package/dist/core/triwiki/context-graph/projections/mermaid/view-specs.js +0 -15
  292. package/dist/core/triwiki/context-graph/query/changed-path-seeds.js +0 -8
  293. package/dist/core/triwiki/context-graph/query/index.js +1 -1
  294. package/dist/core/triwiki/context-graph/query/kernel-types.js +0 -3
  295. package/dist/core/triwiki/context-graph/runtime-index/writer-contract.js +0 -1
  296. package/dist/core/triwiki/context-graph/runtime-index/writer-tables.js +0 -1
  297. package/dist/core/triwiki/triwiki-proof-bank-index.js +1 -10
  298. package/dist/core/triwiki/triwiki-sla-certificate.js +0 -8
  299. package/dist/core/triwiki-attention.js +0 -7
  300. package/dist/core/triwiki-wrongness/avoidance-rules.js +0 -5
  301. package/dist/core/triwiki-wrongness/wrongness-cli.js +1 -1
  302. package/dist/core/triwiki-wrongness/wrongness-ledger.js +2 -32
  303. package/dist/core/triwiki-wrongness/wrongness-proof-linker.js +0 -12
  304. package/dist/core/triwiki-wrongness/wrongness-retrieval.js +0 -21
  305. package/dist/core/triwiki-wrongness/wrongness-schema.js +0 -3
  306. package/dist/core/trust-kernel/route-contract.js +0 -1
  307. package/dist/core/trust-kernel/trust-kernel-schema.js +0 -1
  308. package/dist/core/trust-kernel/trust-report.js +1 -1
  309. package/dist/core/trust-kernel/trust-status.js +0 -7
  310. package/dist/core/update/update-migration-state/simple-stages.js +17 -23
  311. package/dist/core/update/update-migration-state.js +1 -24
  312. package/dist/core/update-check.js +5 -27
  313. package/dist/core/verification/diff-quality.js +0 -1
  314. package/dist/core/verification/impact-scan.js +0 -3
  315. package/dist/core/verification-profile.js +0 -1
  316. package/dist/core/version-manager.js +0 -98
  317. package/dist/core/version.js +1 -1
  318. package/dist/native/sks-menubar/Sources/ControlCenterWindowController.swift +2 -0
  319. package/dist/native/sks-menubar/Sources/OpenRouterOnlyState.swift +314 -0
  320. package/dist/native/sks-menubar/Sources/ProcessClient.swift +2 -1
  321. package/dist/native/sks-menubar/Sources/ProvidersModelExposure.swift +15 -3
  322. package/dist/native/sks-menubar/Sources/ProvidersOpenRouterOnly.swift +162 -0
  323. package/dist/native/sks-menubar/Sources/ProvidersViewController.swift +36 -18
  324. package/dist/native/sks-menubar/Sources/SettingsViewController.swift +10 -4
  325. package/dist/native/sks-menubar/Sources/SidebarItem.swift +2 -0
  326. package/dist/native/sks-menubar/Sources/SubagentModelsModels.swift +201 -0
  327. package/dist/native/sks-menubar/Sources/SubagentModelsViewController.swift +373 -0
  328. package/dist/scripts/canonical-test-runner.js +2 -1
  329. package/dist/scripts/codex-native-gate-lib.js +0 -43
  330. package/dist/scripts/gate-lib.js +0 -17
  331. package/dist/scripts/lib/codex-sdk-gate-lib.js +0 -17
  332. package/dist/scripts/lib/git-worktree-fixture.js +0 -5
  333. package/dist/scripts/lib/valid-png-fixture.js +0 -7
  334. package/dist/scripts/official-subagent-workflow-check.js +1 -1
  335. package/dist/scripts/real-execution-check-lib.js +0 -5
  336. package/dist/scripts/skill-surface-modernization-check.js +0 -7
  337. package/dist/scripts/sks-cli-gate-lib.js +0 -30
  338. package/package.json +1 -2
  339. package/release-gates.v2.json +0 -1
  340. package/runtime-required-scripts.json +0 -10
  341. package/dist/core/agents/agent-task-slicer.js +0 -1
  342. package/dist/core/codex-app/provider-operation-stages.js +0 -20
  343. package/dist/core/codex-control/codex-current-core-probe-summary.js +0 -40
  344. package/dist/core/codex-control/codex-current-feature-real-probes.js +0 -68
  345. package/dist/core/codex-hooks/codex-hook-managed-install.js +0 -162
  346. package/dist/core/codex-hooks/codex-hook-official-hash-oracle.js +0 -95
  347. package/dist/core/codex-lb/probes/catalog-probe.js +0 -39
  348. package/dist/core/doctor/codex-current-core-probe-doctor.js +0 -16
  349. package/dist/core/doctor/confirm-repair.js +0 -26
  350. package/dist/core/doctor/legacy-global-hook-cleanup.js +0 -176
  351. package/dist/core/features/feature-completion.js +0 -1
  352. package/dist/core/features/feature-fixtures.js +0 -9
  353. package/dist/core/features/feature-registry.js +0 -2
  354. package/dist/core/hooks-runtime/codex-commit-hooks-selftest.js +0 -82
  355. package/dist/core/mad-sks/sql-plane/recovery.js +0 -27
  356. package/dist/core/naruto/naruto-verification-dag.js +0 -52
  357. package/dist/core/official-subagent-review-policy.js +0 -17
  358. package/dist/core/perf/performance-profiler.js +0 -108
  359. package/dist/core/ppt-review/deck-issue-ledger.js +0 -49
  360. package/dist/core/ppt-review/reexport-rereview.js +0 -84
  361. package/dist/core/prompt-context-builder.js +0 -36
  362. package/dist/core/proof/claim-ledger.js +0 -9
  363. package/dist/core/proof/command-ledger.js +0 -20
  364. package/dist/core/proof/file-change-ledger.js +0 -5
  365. package/dist/core/providers/openrouter/openrouter-client.js +0 -63
  366. package/dist/core/providers/openrouter/openrouter-provider-health.js +0 -46
  367. package/dist/core/qa-loop/qa-app-server-driver.js +0 -133
  368. package/dist/core/remote/local-worker-client.js +0 -35
  369. package/dist/core/reporting/markdown-table.js +0 -12
  370. package/dist/core/search-visibility/adapters/next-app.js +0 -5
  371. package/dist/core/search-visibility/adapters/next-pages.js +0 -5
  372. package/dist/core/search-visibility/adapters/static-site.js +0 -5
  373. package/dist/core/stop-gate/stop-gate-diagnostics.js +0 -3
  374. package/dist/core/triwiki/context-graph/projections/mermaid/architecture-delta.js +0 -68
  375. package/dist/core/triwiki/context-graph/projections/mermaid/change-impact.js +0 -43
  376. package/dist/core/triwiki/context-graph/projections/mermaid/ownership-workstream.js +0 -21
  377. package/dist/core/triwiki/triwiki-invalidation.js +0 -80
  378. package/dist/core/validators/feature-fixture-validator.js +0 -7
  379. package/dist/core/validators/route-contract-validator.js +0 -15
  380. package/dist/core/validators/trust-report-validator.js +0 -15
  381. package/dist/core/verification/verification-proof.js +0 -26
  382. package/dist/core/wiki-image/before-after-relation.js +0 -1
  383. package/dist/core/wiki-image/callout-parser.js +0 -16
  384. package/dist/core/wiki-image/computer-use-ledger.js +0 -38
  385. package/dist/core/wiki-image/generated-review-parser.js +0 -1
  386. package/dist/core/wiki-image/image-relation.js +0 -2
  387. package/dist/core/wiki-image/image-ux-evidence.js +0 -1
  388. package/dist/core/wiki-image/ppt-image-evidence.js +0 -1
@@ -5,6 +5,7 @@ import { serveDesktopBridge } from '../core/codex-lb/desktop-service.js';
5
5
  import { BridgeCliError, errorOutput, mergeMetadata, ordinaryOutput, sanitizeBridgeValue, textSummary, verificationOutput } from './bridge-command-output.js';
6
6
  const CONTROLLER_FACADE_EXPORT = 'executeDesktopBridgeCommand';
7
7
  const MAX_STDIN_SECRET_BYTES = 64 * 1024;
8
+ const MAX_STDIN_JSON_BYTES = 64 * 1024;
8
9
  const DEFAULT_IO = {
9
10
  readStdin,
10
11
  stdout: (text) => process.stdout.write(text),
@@ -18,6 +19,9 @@ export function usage(command = 'bridge') {
18
19
  `Usage: sks ${command} status [--json]`,
19
20
  ` sks ${command} ensure|repair [--json]`,
20
21
  ` sks ${command} auth-priority status|on|off [--json]`,
22
+ ` sks ${command} openrouter-only status|on|off [--no-restart] [--json]`,
23
+ ` sks ${command} subagent-models list [--json]`,
24
+ ` sks ${command} subagent-models set --stdin [--no-restart] [--json]`,
21
25
  ` sks ${command} verify --level shallow|transport|deep [--strict|--require-ready] [--json]`,
22
26
  ` sks ${command} provider list [--json]`,
23
27
  ` sks ${command} provider configure codex-lb --host <host> --api-key-stdin [--json]`,
@@ -34,7 +38,9 @@ export function usage(command = 'bridge') {
34
38
  ` sks ${command} unmanage --confirm [--json]`,
35
39
  ` sks ${command} rollback <receipt-id> --confirm [--json]`,
36
40
  '',
37
- 'Provider secrets are accepted only through --api-key-stdin. Readiness changes the exit code only with --strict or --require-ready.'
41
+ 'Provider secrets are accepted only through --api-key-stdin. Readiness changes the exit code only with --strict or --require-ready.',
42
+ 'OpenRouter Only Mode and Codex-LB authentication priority are mutually exclusive; turning one on turns the other off.',
43
+ 'subagent-models set reads {"subagent_models":[{"model","criteria","reasoning_effort","default"}]} (max 16) from stdin.'
38
44
  ].join('\n');
39
45
  }
40
46
  export async function run(_command, args = []) {
@@ -120,6 +126,39 @@ async function parseInvocation(args, io) {
120
126
  ? { operation: 'auth-priority.status' }
121
127
  : { operation: 'auth-priority.set', enabled: action === 'on' }, label: 'Codex-LB authentication priority' };
122
128
  }
129
+ if (area === 'openrouter-only' && target === undefined && (action === 'status' || action === 'on' || action === 'off')) {
130
+ if (action === 'status') {
131
+ allowOnly(parsed, ['--json'], []);
132
+ return { ...base, request: { operation: 'openrouter-only.status' }, label: 'OpenRouter Only Mode' };
133
+ }
134
+ allowOnly(parsed, ['--json', '--no-restart'], []);
135
+ return {
136
+ ...base,
137
+ request: { operation: 'openrouter-only.set', enabled: action === 'on', no_restart: parsed.flags.has('--no-restart') },
138
+ label: 'OpenRouter Only Mode'
139
+ };
140
+ }
141
+ if (area === 'subagent-models' && target === undefined) {
142
+ if (action === 'list') {
143
+ allowOnly(parsed, ['--json'], []);
144
+ return { ...base, request: { operation: 'subagent-models.list' }, label: 'Subagent model list' };
145
+ }
146
+ if (action === 'set') {
147
+ allowOnly(parsed, ['--json', '--stdin', '--no-restart'], []);
148
+ if (!parsed.flags.has('--stdin')) {
149
+ throw new BridgeCliError('bridge_subagent_models_stdin_required', 'retry_with_stdin');
150
+ }
151
+ return {
152
+ ...base,
153
+ request: {
154
+ operation: 'subagent-models.set',
155
+ subagent_models: subagentModelsFromStdin(await io.readStdin()),
156
+ no_restart: parsed.flags.has('--no-restart')
157
+ },
158
+ label: 'Subagent model list update'
159
+ };
160
+ }
161
+ }
123
162
  if (area === 'status' && action === undefined) {
124
163
  allowOnly(parsed, ['--json'], []);
125
164
  return { ...base, request: { operation: 'status' }, label: 'Desktop Bridge status' };
@@ -318,6 +357,27 @@ function parseArgs(args) {
318
357
  }
319
358
  return { positionals, flags, values };
320
359
  }
360
+ function subagentModelsFromStdin(text) {
361
+ const raw = String(text || '').trim();
362
+ if (!raw)
363
+ throw new BridgeCliError('bridge_subagent_models_stdin_empty', 'retry_with_stdin');
364
+ if (Buffer.byteLength(raw, 'utf8') > MAX_STDIN_JSON_BYTES) {
365
+ throw new BridgeCliError('bridge_subagent_models_stdin_too_large', 'retry_with_stdin');
366
+ }
367
+ let parsed;
368
+ try {
369
+ parsed = JSON.parse(raw);
370
+ }
371
+ catch {
372
+ throw new BridgeCliError('bridge_subagent_models_stdin_invalid_json', 'retry_with_stdin');
373
+ }
374
+ const models = parsed && typeof parsed === 'object' && !Array.isArray(parsed)
375
+ ? parsed.subagent_models
376
+ : undefined;
377
+ if (!Array.isArray(models))
378
+ throw new BridgeCliError('bridge_subagent_models_stdin_invalid', 'retry_with_stdin');
379
+ return models;
380
+ }
321
381
  function rejectSecretArgv(args) {
322
382
  for (const arg of args) {
323
383
  const option = String(arg).split('=', 1)[0]?.toLowerCase() || '';
@@ -38,7 +38,10 @@ export async function run(_command, args = []) {
38
38
  }
39
39
  console.log(`Codex 1M Context: ${result.enabled ? 'enabled' : 'disabled'}`);
40
40
  console.log(`Config: ${result.config_path}`);
41
- console.log(`Model: ${result.model || 'not set'} (documented for ${result.expected_model})`);
41
+ const window = result.model_window;
42
+ console.log(`Model: ${result.model || 'not set'}${window.effective_window ? ` · window ${window.effective_window} (default ${window.default_window ?? 'unknown'}, max ${window.max_window ?? 'uncapped'})` : ' · window unknown'}`);
43
+ if (result.larger_window_models.length)
44
+ console.log(`Models with a larger window: ${result.larger_window_models.join(', ')}`);
42
45
  for (const [key, target] of Object.entries(result.target)) {
43
46
  const state = result.keys[key];
44
47
  const detail = state?.present ? `${state.value ?? 'unparsed'}${state.managed ? ' (SKS-managed)' : ''}` : 'not set';
@@ -1,4 +1,4 @@
1
- import { runDecisionCommand, usage, UsageError } from '../core/decisions/cli.js';
1
+ import { runDecisionCommand } from '../core/decisions/cli.js';
2
2
  export { UsageError, parseDecisionArgs, runDecisionCommand, usage } from '../core/decisions/cli.js';
3
3
  export async function run(_command, args = []) {
4
4
  const code = await runDecisionCommand(args);
@@ -1,5 +1,5 @@
1
1
  import { flag } from '../cli/args.js';
2
- import { projectRoot, exists, nowIso } from '../core/fsx.js';
2
+ import { projectRoot, nowIso } from '../core/fsx.js';
3
3
  import { normalizeInstallScope } from '../core/init.js';
4
4
  import { appendMigrationEvents, hashConfigText } from '../core/migration/migration-transaction-journal.js';
5
5
  import { inspectSksMenuBarStatus, sksMenuBarPaths, sksMenuBarRestartDeferred } from '../core/codex-app/menubar/index.js';
@@ -205,25 +205,6 @@ export async function writeFixMigrationJournal(root, preFix, configRepair, setup
205
205
  return null;
206
206
  return appendMigrationEvents(root, events);
207
207
  }
208
- async function backupProjectConfigBeforeFix() {
209
- try {
210
- const fsp = await import('node:fs/promises');
211
- const path = await import('node:path');
212
- const root = await projectRoot();
213
- if (!root)
214
- return null;
215
- const configPath = path.join(root, '.codex', 'config.toml');
216
- if (!(await exists(configPath)))
217
- return null;
218
- const text = await fsp.readFile(configPath, 'utf8');
219
- const backupPath = `${configPath}.doctor-pre-fix-${Date.now().toString(36)}.bak`;
220
- await fsp.writeFile(backupPath, text);
221
- return backupPath;
222
- }
223
- catch {
224
- return null;
225
- }
226
- }
227
208
  export function installScopeFromArgs(args = []) {
228
209
  if (flag(args, '--project'))
229
210
  return 'project';
@@ -1,6 +1,6 @@
1
1
  import os from 'node:os';
2
2
  import path from 'node:path';
3
- import { projectRoot, exists, formatBytes, nowIso, readText, writeJsonAtomic } from '../core/fsx.js';
3
+ import { projectRoot, exists, formatBytes, nowIso, writeJsonAtomic } from '../core/fsx.js';
4
4
  import { flag } from '../cli/args.js';
5
5
  import { printJson } from '../cli/output.js';
6
6
  import { ui as cliUi } from '../cli/cli-theme.js';
@@ -25,11 +25,10 @@ import { isUpdateMigrationReceiptCurrent, projectUpdateMigrationReceiptPath, wri
25
25
  import { inspectSksMenuBarStatus, installSksMenuBar, sksMenuBarRestartDeferred } from '../core/codex-app/menubar/index.js';
26
26
  import { sweepSksTempDirs } from '../core/retention.js';
27
27
  import { detectImagegenCapability } from '../core/imagegen/imagegen-capability.js';
28
- import { CURRENT_CODEX_RUNTIME_CONTRACT } from '../core/codex-compat/codex-runtime-contract.js';
29
28
  import { formatHarnessConflictReport, scanHarnessConflicts } from '../core/harness-conflicts.js';
30
29
  import { doctorArgWarnings as baseDoctorArgWarnings, doctorGlobalOnlySelection, doctorMenuBarInstallPolicy, doctorPhaseIdsForProfile, doctorProfileFromArgs, doctorProfileRequiresDesktopBridgeReadiness } from './doctor-profile.js';
31
30
  import { renderDoctorConsoleReport } from './doctor-console.js';
32
- import { buildCodexAppUiDiagnosticFailure, buildRuntimeReadiness, captureCodexConfigSnapshot, deferredNativeRepair, doctorDedupeStatus, doctorSkillStatus, fallbackCodexNativeFeatureMatrix, formatCodexDoctorConsoleStatus, installScopeFromArgs, isMigrationUserOwnedProjectConfigBlocker, mergeObservedCodexStartupWarnings, nativeCapabilityStatus, readOption, rebootstrapSksMenuBarLaunchdForDoctorFix, sksMenuBarRunningVersionConsoleLines, uniqueNativeManualActions, writeFixMigrationJournal, writeJsonReportFile } from './doctor-helpers.js';
31
+ import { buildCodexAppUiDiagnosticFailure, buildRuntimeReadiness, captureCodexConfigSnapshot, deferredNativeRepair, fallbackCodexNativeFeatureMatrix, formatCodexDoctorConsoleStatus, installScopeFromArgs, isMigrationUserOwnedProjectConfigBlocker, mergeObservedCodexStartupWarnings, readOption, rebootstrapSksMenuBarLaunchdForDoctorFix, sksMenuBarRunningVersionConsoleLines, writeFixMigrationJournal, writeJsonReportFile } from './doctor-helpers.js';
33
32
  export { doctorMenuBarInstallPolicy, doctorProfileFromArgs, doctorProfileRequiresDesktopBridgeReadiness } from './doctor-profile.js';
34
33
  export { buildCodexAppUiDiagnosticFailure, buildRuntimeReadiness, formatCodexDoctorConsoleStatus, rebootstrapSksMenuBarLaunchdForDoctorFix, sksMenuBarRunningVersionConsoleLines };
35
34
  export function doctorArgWarnings(args = []) {
@@ -582,7 +581,6 @@ async function runDoctor(args = [], root, doctorFix, deps = {}) {
582
581
  const requireActualCodexProbe = flag(args, '--require-actual-codex') || (deepDiagnostics && doctorFix);
583
582
  const shouldEvaluateCodexAppUiRepair = doctorFix || deepDiagnostics || flag(args, '--repair-codex-app-ui');
584
583
  const nativeCapabilityDiagnosticsRequested = deepDiagnostics || flag(args, '--repair-native-capabilities');
585
- const requireLegacyGlobalHookCleanup = doctorFix && doctorProfile === 'migration';
586
584
  const migrationReceiptOwnsReconcile = doctorFix && doctorProfile === 'migration';
587
585
  const doctorPhaseIds = doctorPhaseIdsForProfile(doctorProfile);
588
586
  const { runDoctorCommandAliasCleanup } = await import('../core/doctor/command-alias-cleanup.js');
@@ -654,8 +652,7 @@ async function runDoctor(args = [], root, doctorFix, deps = {}) {
654
652
  fix: nativeCapabilityDiagnosticsRequested && doctorFix,
655
653
  yes: flag(args, '--yes') || flag(args, '-y'),
656
654
  flags: args.map((arg) => String(arg)),
657
- skipNativeCapabilities: !nativeCapabilityDiagnosticsRequested,
658
- requireLegacyGlobalHookCleanup
655
+ skipNativeCapabilities: !nativeCapabilityDiagnosticsRequested
659
656
  }).catch((err) => ({
660
657
  schema: 'sks.doctor-native-capability-repair.v1',
661
658
  ok: false,
@@ -665,19 +662,13 @@ async function runDoctor(args = [], root, doctorFix, deps = {}) {
665
662
  core_skills: null,
666
663
  skill_dedupe: null,
667
664
  native_capabilities: null,
668
- legacy_global_hooks: {
669
- ok: false,
670
- blockers: [`cleanup_failed_before_report:${err?.message || String(err)}`],
671
- warnings: []
672
- },
665
+ sks_codex_hooks: null,
673
666
  secret_preservation_guard: '.sneakoscope/reports/secret-preservation-guard.json',
674
667
  core_blockers: [err?.message || String(err)],
675
668
  route_blockers: {},
676
669
  optional_manual_required: [],
677
670
  optional_warnings: [],
678
- required_blockers: requireLegacyGlobalHookCleanup
679
- ? [`legacy_global_hooks:cleanup_failed_before_report:${err?.message || String(err)}`]
680
- : [],
671
+ required_blockers: [],
681
672
  blockers: [err?.message || String(err)]
682
673
  }));
683
674
  const configProbeOpts = {
@@ -901,13 +892,11 @@ async function runDoctor(args = [], root, doctorFix, deps = {}) {
901
892
  const hookTrustRepair = doctorFix
902
893
  && !migrationReceiptOwnsReconcile
903
894
  && doctorPhaseIds.includes('hook_trust_repair')
904
- ? await (await import('../core/codex-hooks/codex-hook-trust-doctor.js')).codexHookTrustDoctor(root, { fix: true, managed: true, actual: true }).catch((err) => ({
905
- schema: 'sks.codex-hook-trust-doctor.v2',
895
+ ? await (await import('../core/codex-hooks/codex-project-hooks.js')).activateSksCodexHooks({ root }).catch((err) => ({
896
+ schema: 'sks.codex-hook-activation.v1',
906
897
  ok: false,
907
- actual: true,
908
898
  blockers: [`hook_trust_repair_failed:${err?.message || String(err)}`],
909
- warnings: [],
910
- repair_actions: ['sks codex trust-doctor --fix --managed --actual']
899
+ warnings: []
911
900
  }))
912
901
  : null;
913
902
  const doctorFixTransaction = doctorFix
@@ -1014,7 +1003,7 @@ async function runDoctor(args = [], root, doctorFix, deps = {}) {
1014
1003
  warnings: hookTrustRepair?.warnings || [],
1015
1004
  rollback_evidence: migrationReceiptOwnsReconcile
1016
1005
  ? 'project_migration_receipt_owns_hook_trust_refresh'
1017
- : hookTrustRepair?.fixed?.managed_hook_file || 'codex_hook_trust_repair_idempotent'
1006
+ : hookTrustRepair?.global?.hooks_path || 'codex_hook_trust_repair_idempotent'
1018
1007
  })
1019
1008
  },
1020
1009
  {
@@ -1384,7 +1373,6 @@ async function runDoctor(args = [], root, doctorFix, deps = {}) {
1384
1373
  doctor_fix_postcheck: doctorFixPostcheck,
1385
1374
  command_aliases: migrationReceiptOwnsReconcile ? commandAliasCleanupBeforeReceipt : undefined,
1386
1375
  doctor_native_capability: doctorNativeCapabilityRepair,
1387
- require_legacy_global_hook_cleanup: requireLegacyGlobalHookCleanup,
1388
1376
  require_legacy_generation_convergence: doctorFix && !migrationReceiptOwnsReconcile,
1389
1377
  skills: skillsReconcile,
1390
1378
  agent_role_config: agentRoleConfigRepair,
@@ -1,5 +1,6 @@
1
1
  import { emitHook } from '../core/hooks-runtime.js';
2
+ import { hookLayerFromArgs } from '../core/hooks-runtime/hook-layer.js';
2
3
  export async function run(_command, args = []) {
3
- const [name = 'user-prompt-submit'] = args;
4
- return emitHook(name);
4
+ const [name = 'user-prompt-submit', ...rest] = args;
5
+ return emitHook(name, { layer: hookLayerFromArgs(rest) });
5
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": "sks.skills-manifest.v1",
3
- "package_version": "10.3.7",
3
+ "package_version": "10.3.9",
4
4
  "skills": [
5
5
  {
6
6
  "canonical_name": "sks",
@@ -212,9 +212,6 @@ export function sanitizeHostCapabilityPostToolUse(payload) {
212
212
  artifacts
213
213
  };
214
214
  }
215
- export function mergeHostCapabilityPreToolObservation(input) {
216
- return authorizeAndMergeHostCapabilityPreToolObservation(input).observations;
217
- }
218
215
  export function authorizeAndMergeHostCapabilityPreToolObservation(input) {
219
216
  const current = normalizeHostCapabilityHookObservations(input.current, input.binding)
220
217
  || emptyHookObservations(input.binding);
@@ -22,7 +22,6 @@ export async function buildAgentCodexCockpitState(missionDir, opts = {}) {
22
22
  const roster = await readJson(path.join(root, 'agent-roster.json'), null);
23
23
  const leases = await readJson(path.join(root, 'agent-leases.json'), null);
24
24
  const proof = await readJson(path.join(root, 'agent-proof-evidence.json'), null);
25
- const consensus = await readJson(path.join(root, 'agent-consensus.json'), null);
26
25
  const cleanup = await readJson(path.join(root, 'agent-cleanup.json'), null);
27
26
  const janitor = await readJson(path.join(root, 'agent-janitor-report.json'), null);
28
27
  const namespace = await readJson(path.join(missionDir, 'project-session-namespace.json'), null);
@@ -13,7 +13,7 @@ import { writeAgentProofEvidence } from './agent-proof-evidence.js';
13
13
  import { selectRouteSkill, skillProofRecord } from '../skills/core-skill-runtime.js';
14
14
  import { routeSkillId } from '../skills/core-skill-card.js';
15
15
  import { loadTriWikiRuntimeContext, writeTriWikiContextArtifact } from '../triwiki-runtime.js';
16
- import { DEFAULT_AGENT_CONCURRENCY, MAX_AGENT_COUNT, normalizeAgentBackend } from './agent-schema.js';
16
+ import { MAX_AGENT_COUNT, normalizeAgentBackend } from './agent-schema.js';
17
17
  import { PersistentAgentPatchQueueStore } from './agent-patch-queue-store.js';
18
18
  import { applyAgentPatchQueueEntry, rollbackAgentPatchApply } from './agent-patch-apply-worker.js';
19
19
  import { coordinateAgentPatchMerge, writeAgentMergeCoordinatorArtifacts } from './agent-merge-coordinator.js';
@@ -1,6 +1,5 @@
1
- import fs from 'node:fs/promises';
2
1
  import path from 'node:path';
3
- import { appendJsonl, exists, nowIso, readText, sha256, writeJsonAtomic } from '../fsx.js';
2
+ import { appendJsonl, nowIso, readText, writeJsonAtomic } from '../fsx.js';
4
3
  export const AGENT_PATCH_TRANSACTION_JOURNAL_SCHEMA = 'sks.agent-patch-transaction-journal.v1';
5
4
  export const AGENT_PATCH_TRANSACTION_JOURNAL_ARTIFACT = 'agent-patch-transaction-journal.jsonl';
6
5
  export const AGENT_PATCH_TRANSACTION_JOURNAL_SUMMARY_ARTIFACT = 'agent-patch-transaction-journal-summary.json';
@@ -95,17 +94,3 @@ export async function summarizeAgentPatchTransactionJournal(artifactDir) {
95
94
  blockers
96
95
  };
97
96
  }
98
- export async function hashFilesForJournal(root, files) {
99
- const out = {};
100
- for (const file of [...new Set(files.map(normalizeRelPath).filter(Boolean))].sort()) {
101
- const absolute = path.resolve(root, file);
102
- if (!absolute.startsWith(path.resolve(root) + path.sep))
103
- continue;
104
- out[file] = await exists(absolute) ? sha256(await fs.readFile(absolute)) : 'missing';
105
- }
106
- return out;
107
- }
108
- function normalizeRelPath(value) {
109
- const normalized = path.posix.normalize(String(value || '').replace(/\\/g, '/').replace(/^\.\/+/, ''));
110
- return normalized === '.' ? '' : normalized;
111
- }
@@ -7,7 +7,6 @@ const OFFICIAL_SUBAGENT_ROUTE_KEYS = new Set([
7
7
  'work', '$work'
8
8
  ]);
9
9
  const EXPLICIT_SUBAGENT_RE = /\$(Naruto|Work)\b/i;
10
- const PARALLELIZABLE_RE = /\b(parallel|subagents?|fan out|one agent per|independent|disjoint|multiple files|all files)\b|병렬|하위\s*에이전트|서브\s*에이전트|독립|분리된|여러\s*파일|모든\s*파일|분담/i;
11
10
  function routeKey(route) {
12
11
  return String(route?.id || route?.command || route?.name || route || '').trim().toLowerCase();
13
12
  }
@@ -101,9 +100,6 @@ function capacityOptions(options) {
101
100
  ['marginalUsefulThroughputPositive', options.marginalUsefulThroughputPositive]
102
101
  ].filter(([, value]) => value !== undefined));
103
102
  }
104
- export function explicitlyParallelizable(prompt) {
105
- return PARALLELIZABLE_RE.test(String(prompt || ''));
106
- }
107
103
  function taskProfile(value, task) {
108
104
  return isTaskProfile(value) ? value : classifyTaskProfile(task);
109
105
  }