@kbediako/codex-orchestrator 0.1.38 → 0.2.1

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 (311) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/README.md +46 -317
  3. package/bin/codex-orchestrator.js +161 -0
  4. package/codex.orchestrator.json +149 -13
  5. package/dist/bin/codex-orchestrator.js +797 -1154
  6. package/dist/orchestrator/src/cli/adapters/CommandBuilder.js +50 -0
  7. package/dist/orchestrator/src/cli/adapters/CommandPlanner.js +22 -4
  8. package/dist/orchestrator/src/cli/adapters/CommandReviewer.js +3 -3
  9. package/dist/orchestrator/src/cli/adapters/CommandTester.js +2 -2
  10. package/dist/orchestrator/src/cli/adapters/cloudFailureDiagnostics.js +295 -11
  11. package/dist/orchestrator/src/cli/coStatusAttachCliShell.js +402 -0
  12. package/dist/orchestrator/src/cli/coStatusCliShell.js +451 -0
  13. package/dist/orchestrator/src/cli/coStatusOperatorAutopilotCliShell.js +120 -0
  14. package/dist/orchestrator/src/cli/codexCliShell.js +119 -0
  15. package/dist/orchestrator/src/cli/codexDefaultsSetup.js +265 -36
  16. package/dist/orchestrator/src/cli/config/delegationConfig.js +317 -5
  17. package/dist/orchestrator/src/cli/config/repoConfigPolicy.js +2 -3
  18. package/dist/orchestrator/src/cli/config/userConfig.js +28 -13
  19. package/dist/orchestrator/src/cli/control/authenticatedControlRouteGate.js +69 -0
  20. package/dist/orchestrator/src/cli/control/authenticatedRouteComposition.js +267 -0
  21. package/dist/orchestrator/src/cli/control/authenticatedRouteController.js +5 -0
  22. package/dist/orchestrator/src/cli/control/authenticatedRouteDispatcher.js +41 -0
  23. package/dist/orchestrator/src/cli/control/compatibilityIssuePresenter.js +1035 -0
  24. package/dist/orchestrator/src/cli/control/confirmationApproveController.js +62 -0
  25. package/dist/orchestrator/src/cli/control/confirmationCreateController.js +69 -0
  26. package/dist/orchestrator/src/cli/control/confirmationIssueConsumeController.js +43 -0
  27. package/dist/orchestrator/src/cli/control/confirmationListController.js +22 -0
  28. package/dist/orchestrator/src/cli/control/confirmationValidateController.js +58 -0
  29. package/dist/orchestrator/src/cli/control/confirmations.js +25 -3
  30. package/dist/orchestrator/src/cli/control/controlActionCancelConfirmation.js +65 -0
  31. package/dist/orchestrator/src/cli/control/controlActionController.js +77 -0
  32. package/dist/orchestrator/src/cli/control/controlActionControllerSequencing.js +161 -0
  33. package/dist/orchestrator/src/cli/control/controlActionExecution.js +142 -0
  34. package/dist/orchestrator/src/cli/control/controlActionFinalization.js +43 -0
  35. package/dist/orchestrator/src/cli/control/controlActionOutcome.js +60 -0
  36. package/dist/orchestrator/src/cli/control/controlActionPreflight.js +476 -0
  37. package/dist/orchestrator/src/cli/control/controlAuthenticatedRouteHandoff.js +57 -0
  38. package/dist/orchestrator/src/cli/control/controlBootstrapAssembly.js +39 -0
  39. package/dist/orchestrator/src/cli/control/controlBootstrapMetadataPersistence.js +16 -0
  40. package/dist/orchestrator/src/cli/control/controlEventTransport.js +49 -0
  41. package/dist/orchestrator/src/cli/control/controlExpiryLifecycle.js +102 -0
  42. package/dist/orchestrator/src/cli/control/controlHostOwnership.js +480 -0
  43. package/dist/orchestrator/src/cli/control/controlHostSupervision.js +630 -0
  44. package/dist/orchestrator/src/cli/control/controlOversightFacade.js +8 -0
  45. package/dist/orchestrator/src/cli/control/controlOversightReadContract.js +1 -0
  46. package/dist/orchestrator/src/cli/control/controlOversightReadService.js +16 -0
  47. package/dist/orchestrator/src/cli/control/controlOversightUpdateContract.js +1 -0
  48. package/dist/orchestrator/src/cli/control/controlPersistenceFiles.js +6 -0
  49. package/dist/orchestrator/src/cli/control/controlQuestionChildResolution.js +18 -0
  50. package/dist/orchestrator/src/cli/control/controlRequestContext.js +42 -0
  51. package/dist/orchestrator/src/cli/control/controlRequestController.js +9 -0
  52. package/dist/orchestrator/src/cli/control/controlRequestPredispatch.js +17 -0
  53. package/dist/orchestrator/src/cli/control/controlRequestRouteDispatch.js +44 -0
  54. package/dist/orchestrator/src/cli/control/controlRuntime.js +1003 -0
  55. package/dist/orchestrator/src/cli/control/controlServer.js +23 -1456
  56. package/dist/orchestrator/src/cli/control/controlServerAuditAndErrorHelpers.js +115 -0
  57. package/dist/orchestrator/src/cli/control/controlServerAuthenticatedRouteBranch.js +29 -0
  58. package/dist/orchestrator/src/cli/control/controlServerBootstrapLifecycle.js +30 -0
  59. package/dist/orchestrator/src/cli/control/controlServerBootstrapStartSequence.js +21 -0
  60. package/dist/orchestrator/src/cli/control/controlServerOwnedRuntimeLifecycle.js +67 -0
  61. package/dist/orchestrator/src/cli/control/controlServerPublicLifecycle.js +756 -0
  62. package/dist/orchestrator/src/cli/control/controlServerPublicRouteHelpers.js +86 -0
  63. package/dist/orchestrator/src/cli/control/controlServerReadyInstanceLifecycle.js +25 -0
  64. package/dist/orchestrator/src/cli/control/controlServerReadyInstanceStartup.js +18 -0
  65. package/dist/orchestrator/src/cli/control/controlServerRequestBodyHelpers.js +37 -0
  66. package/dist/orchestrator/src/cli/control/controlServerRequestShell.js +40 -0
  67. package/dist/orchestrator/src/cli/control/controlServerRequestShellBinding.js +17 -0
  68. package/dist/orchestrator/src/cli/control/controlServerSeedLoading.js +27 -0
  69. package/dist/orchestrator/src/cli/control/controlServerSeededRuntimeAssembly.js +186 -0
  70. package/dist/orchestrator/src/cli/control/controlServerStartupInputPreparation.js +31 -0
  71. package/dist/orchestrator/src/cli/control/controlServerStartupSequence.js +49 -0
  72. package/dist/orchestrator/src/cli/control/controlState.js +233 -2
  73. package/dist/orchestrator/src/cli/control/controlStatusDashboard.js +1904 -0
  74. package/dist/orchestrator/src/cli/control/controlTelegramBridgeBootstrapLifecycle.js +22 -0
  75. package/dist/orchestrator/src/cli/control/controlTelegramBridgeLifecycle.js +67 -0
  76. package/dist/orchestrator/src/cli/control/controlTelegramBridgeOversightFacadeFactory.js +8 -0
  77. package/dist/orchestrator/src/cli/control/controlTelegramCommandController.js +49 -0
  78. package/dist/orchestrator/src/cli/control/controlTelegramDispatchRead.js +40 -0
  79. package/dist/orchestrator/src/cli/control/controlTelegramPollingController.js +89 -0
  80. package/dist/orchestrator/src/cli/control/controlTelegramProjectionNotificationController.js +29 -0
  81. package/dist/orchestrator/src/cli/control/controlTelegramPushState.js +63 -0
  82. package/dist/orchestrator/src/cli/control/controlTelegramQuestionRead.js +13 -0
  83. package/dist/orchestrator/src/cli/control/controlTelegramReadController.js +216 -0
  84. package/dist/orchestrator/src/cli/control/controlTelegramUpdateHandler.js +63 -0
  85. package/dist/orchestrator/src/cli/control/controlWatcher.js +73 -5
  86. package/dist/orchestrator/src/cli/control/delegationRegisterController.js +35 -0
  87. package/dist/orchestrator/src/cli/control/dynamicToolBridgePolicy.js +139 -0
  88. package/dist/orchestrator/src/cli/control/eventsSseController.js +12 -0
  89. package/dist/orchestrator/src/cli/control/linearBudgetState.js +1789 -0
  90. package/dist/orchestrator/src/cli/control/linearDispatchSource.js +1137 -0
  91. package/dist/orchestrator/src/cli/control/linearGraphqlClient.js +150 -0
  92. package/dist/orchestrator/src/cli/control/linearRateLimit.js +102 -0
  93. package/dist/orchestrator/src/cli/control/linearWebhookController.js +499 -0
  94. package/dist/orchestrator/src/cli/control/liveLinearAdvisoryRuntime.js +70 -0
  95. package/dist/orchestrator/src/cli/control/observabilityApiController.js +173 -0
  96. package/dist/orchestrator/src/cli/control/observabilityReadModel.js +500 -0
  97. package/dist/orchestrator/src/cli/control/observabilitySurface.js +284 -0
  98. package/dist/orchestrator/src/cli/control/observabilityUpdateNotifier.js +22 -0
  99. package/dist/orchestrator/src/cli/control/operatorDashboardPresenter.js +252 -0
  100. package/dist/orchestrator/src/cli/control/providerAgentCapacity.js +70 -0
  101. package/dist/orchestrator/src/cli/control/providerControlHostFreshnessGauge.js +1068 -0
  102. package/dist/orchestrator/src/cli/control/providerIntakeState.js +473 -0
  103. package/dist/orchestrator/src/cli/control/providerIssueHandoff.js +6811 -0
  104. package/dist/orchestrator/src/cli/control/providerIssueObservability.js +1348 -0
  105. package/dist/orchestrator/src/cli/control/providerIssueRetryQueue.js +84 -0
  106. package/dist/orchestrator/src/cli/control/providerLinearRuntimeProof.js +588 -0
  107. package/dist/orchestrator/src/cli/control/providerLinearScreenshotProof.js +473 -0
  108. package/dist/orchestrator/src/cli/control/providerLinearWorkerTruth.js +383 -0
  109. package/dist/orchestrator/src/cli/control/providerLinearWorkflowAudit.js +254 -0
  110. package/dist/orchestrator/src/cli/control/providerLinearWorkflowFacade.js +5573 -0
  111. package/dist/orchestrator/src/cli/control/providerLinearWorkflowStates.js +115 -0
  112. package/dist/orchestrator/src/cli/control/providerMergeCloseout.js +1868 -0
  113. package/dist/orchestrator/src/cli/control/providerOperatorAutopilot.js +1580 -0
  114. package/dist/orchestrator/src/cli/control/providerOperatorAutopilotLifecycle.js +154 -0
  115. package/dist/orchestrator/src/cli/control/providerOperatorAutopilotLocalRolloutExecution.js +1006 -0
  116. package/dist/orchestrator/src/cli/control/providerPollingHealth.js +435 -0
  117. package/dist/orchestrator/src/cli/control/providerTerminalCleanup.js +516 -0
  118. package/dist/orchestrator/src/cli/control/providerWorkerHosts.js +191 -0
  119. package/dist/orchestrator/src/cli/control/providerWorkflowConfigStore.js +515 -0
  120. package/dist/orchestrator/src/cli/control/questionChildResolutionAdapter.js +361 -0
  121. package/dist/orchestrator/src/cli/control/questionQueueController.js +181 -0
  122. package/dist/orchestrator/src/cli/control/questionReadRetryDeduplication.js +9 -0
  123. package/dist/orchestrator/src/cli/control/questionReadSequence.js +10 -0
  124. package/dist/orchestrator/src/cli/control/securityViolationController.js +27 -0
  125. package/dist/orchestrator/src/cli/control/selectedRunProjection.js +1885 -0
  126. package/dist/orchestrator/src/cli/control/telegramOversightApiClient.js +48 -0
  127. package/dist/orchestrator/src/cli/control/telegramOversightBridge.js +180 -0
  128. package/dist/orchestrator/src/cli/control/telegramOversightBridgeProjectionDeliveryQueue.js +25 -0
  129. package/dist/orchestrator/src/cli/control/telegramOversightBridgeRuntimeLifecycle.js +45 -0
  130. package/dist/orchestrator/src/cli/control/telegramOversightBridgeStateStore.js +77 -0
  131. package/dist/orchestrator/src/cli/control/telegramOversightControlActionApiClient.js +45 -0
  132. package/dist/orchestrator/src/cli/control/trackerDispatchPilot.js +439 -0
  133. package/dist/orchestrator/src/cli/control/uiDataController.js +34 -0
  134. package/dist/orchestrator/src/cli/control/uiSessionController.js +100 -0
  135. package/dist/orchestrator/src/cli/controlHostCliShell.js +860 -0
  136. package/dist/orchestrator/src/cli/controlHostFreshnessGaugeCliShell.js +129 -0
  137. package/dist/orchestrator/src/cli/controlHostSupervisionCliShell.js +2127 -0
  138. package/dist/orchestrator/src/cli/delegationCliShell.js +62 -0
  139. package/dist/orchestrator/src/cli/delegationServer.js +567 -678
  140. package/dist/orchestrator/src/cli/delegationServerCliShell.js +52 -0
  141. package/dist/orchestrator/src/cli/delegationServerQuestionFlowShell.js +228 -0
  142. package/dist/orchestrator/src/cli/delegationServerToolDispatchShell.js +411 -0
  143. package/dist/orchestrator/src/cli/delegationServerTransport.js +274 -0
  144. package/dist/orchestrator/src/cli/delegationSetup.js +51 -171
  145. package/dist/orchestrator/src/cli/devtoolsCliShell.js +34 -0
  146. package/dist/orchestrator/src/cli/doctor.js +678 -164
  147. package/dist/orchestrator/src/cli/doctorCliRequestShell.js +72 -0
  148. package/dist/orchestrator/src/cli/doctorCliShell.js +138 -0
  149. package/dist/orchestrator/src/cli/doctorUsage.js +119 -15
  150. package/dist/orchestrator/src/cli/exec/experience.js +16 -2
  151. package/dist/orchestrator/src/cli/exec/summary.js +3 -0
  152. package/dist/orchestrator/src/cli/execCliShell.js +51 -0
  153. package/dist/orchestrator/src/cli/flowCliRequestShell.js +44 -0
  154. package/dist/orchestrator/src/cli/flowCliShell.js +239 -0
  155. package/dist/orchestrator/src/cli/frontendTestCliRequestShell.js +80 -0
  156. package/dist/orchestrator/src/cli/frontendTestCliShell.js +41 -0
  157. package/dist/orchestrator/src/cli/init.js +95 -1
  158. package/dist/orchestrator/src/cli/initCliShell.js +50 -0
  159. package/dist/orchestrator/src/cli/linearCliShell.js +1200 -0
  160. package/dist/orchestrator/src/cli/mcpEnableCliShell.js +132 -0
  161. package/dist/orchestrator/src/cli/metrics/metricsAggregator.js +3 -2
  162. package/dist/orchestrator/src/cli/metrics/metricsRecorder.js +56 -0
  163. package/dist/orchestrator/src/cli/orchestrator.js +66 -1376
  164. package/dist/orchestrator/src/cli/planCliShell.js +19 -0
  165. package/dist/orchestrator/src/cli/prCliShell.js +41 -0
  166. package/dist/orchestrator/src/cli/providerLinearChildLanePhaseContract.js +204 -0
  167. package/dist/orchestrator/src/cli/providerLinearChildLaneRunner.js +1835 -0
  168. package/dist/orchestrator/src/cli/providerLinearChildLaneShell.js +2420 -0
  169. package/dist/orchestrator/src/cli/providerLinearChildStreamShell.js +385 -0
  170. package/dist/orchestrator/src/cli/providerLinearWorkerRunner.js +6834 -0
  171. package/dist/orchestrator/src/cli/resumeCliShell.js +14 -0
  172. package/dist/orchestrator/src/cli/reviewCliLaunchShell.js +72 -0
  173. package/dist/orchestrator/src/cli/rlm/alignment.js +3 -3
  174. package/dist/orchestrator/src/cli/rlm/context.js +94 -7
  175. package/dist/orchestrator/src/cli/rlm/rlmCodexRuntimeShell.js +546 -0
  176. package/dist/orchestrator/src/cli/rlm/symbolic.js +4 -2
  177. package/dist/orchestrator/src/cli/rlmCliRequestShell.js +42 -0
  178. package/dist/orchestrator/src/cli/rlmCompletionCliShell.js +46 -0
  179. package/dist/orchestrator/src/cli/rlmLaunchCliShell.js +51 -0
  180. package/dist/orchestrator/src/cli/rlmRunner.js +83 -523
  181. package/dist/orchestrator/src/cli/run/blockMemory.js +500 -0
  182. package/dist/orchestrator/src/cli/run/manifest.js +410 -73
  183. package/dist/orchestrator/src/cli/run/manifestPersister.js +45 -14
  184. package/dist/orchestrator/src/cli/run/runMemoryController.js +216 -0
  185. package/dist/orchestrator/src/cli/run/source0.js +690 -0
  186. package/dist/orchestrator/src/cli/run/workspacePath.js +101 -0
  187. package/dist/orchestrator/src/cli/runtime/mode.js +2 -1
  188. package/dist/orchestrator/src/cli/runtime/provider.js +39 -2
  189. package/dist/orchestrator/src/cli/selfCheckCliShell.js +12 -0
  190. package/dist/orchestrator/src/cli/services/commandRunner.js +698 -18
  191. package/dist/orchestrator/src/cli/services/execRuntime.js +66 -1
  192. package/dist/orchestrator/src/cli/services/orchestratorAutoScoutEvidenceRecorder.js +71 -0
  193. package/dist/orchestrator/src/cli/services/orchestratorCloudBranchResolution.js +8 -0
  194. package/dist/orchestrator/src/cli/services/orchestratorCloudEnvironmentResolution.js +22 -0
  195. package/dist/orchestrator/src/cli/services/orchestratorCloudExecutionLifecycleShell.js +39 -0
  196. package/dist/orchestrator/src/cli/services/orchestratorCloudPromptBuilder.js +37 -0
  197. package/dist/orchestrator/src/cli/services/orchestratorCloudRouteFallbackContract.js +45 -0
  198. package/dist/orchestrator/src/cli/services/orchestratorCloudRouteShell.js +36 -0
  199. package/dist/orchestrator/src/cli/services/orchestratorCloudTargetExecutor.js +277 -0
  200. package/dist/orchestrator/src/cli/services/orchestratorControlPlaneLifecycle.js +98 -0
  201. package/dist/orchestrator/src/cli/services/orchestratorControlPlaneLifecycleShell.js +54 -0
  202. package/dist/orchestrator/src/cli/services/orchestratorExecutionLifecycle.js +112 -0
  203. package/dist/orchestrator/src/cli/services/orchestratorExecutionModePolicy.js +27 -0
  204. package/dist/orchestrator/src/cli/services/orchestratorExecutionRouteAdapterShell.js +59 -0
  205. package/dist/orchestrator/src/cli/services/orchestratorExecutionRouteDecisionShell.js +57 -0
  206. package/dist/orchestrator/src/cli/services/orchestratorExecutionRouteState.js +21 -0
  207. package/dist/orchestrator/src/cli/services/orchestratorExecutionRouter.js +2 -0
  208. package/dist/orchestrator/src/cli/services/orchestratorLocalPipelineExecutor.js +149 -0
  209. package/dist/orchestrator/src/cli/services/orchestratorLocalRouteShell.js +63 -0
  210. package/dist/orchestrator/src/cli/services/orchestratorPlanShell.js +54 -0
  211. package/dist/orchestrator/src/cli/services/orchestratorPlanTargetTracker.js +16 -0
  212. package/dist/orchestrator/src/cli/services/orchestratorResumePreparationShell.js +84 -0
  213. package/dist/orchestrator/src/cli/services/orchestratorResumeTokenValidation.js +15 -0
  214. package/dist/orchestrator/src/cli/services/orchestratorRunLifecycleCompletion.js +31 -0
  215. package/dist/orchestrator/src/cli/services/orchestratorRunLifecycleExecutionRegistration.js +37 -0
  216. package/dist/orchestrator/src/cli/services/orchestratorRunLifecycleOrchestrationShell.js +83 -0
  217. package/dist/orchestrator/src/cli/services/orchestratorRunLifecycleTaskManagerShell.js +37 -0
  218. package/dist/orchestrator/src/cli/services/orchestratorRuntimeManifestMutation.js +20 -0
  219. package/dist/orchestrator/src/cli/services/orchestratorStartPreparationShell.js +56 -0
  220. package/dist/orchestrator/src/cli/services/orchestratorStatusShell.js +70 -0
  221. package/dist/orchestrator/src/cli/services/pipelineResolver.js +7 -3
  222. package/dist/orchestrator/src/cli/services/plannerMemory.js +119 -0
  223. package/dist/orchestrator/src/cli/services/runPreparation.js +7 -3
  224. package/dist/orchestrator/src/cli/services/runSummaryWriter.js +9 -0
  225. package/dist/orchestrator/src/cli/setupBootstrapShell.js +114 -0
  226. package/dist/orchestrator/src/cli/setupCliShell.js +51 -0
  227. package/dist/orchestrator/src/cli/skillsCliShell.js +56 -0
  228. package/dist/orchestrator/src/cli/startCliRequestShell.js +53 -0
  229. package/dist/orchestrator/src/cli/startCliShell.js +68 -0
  230. package/dist/orchestrator/src/cli/statusCliShell.js +22 -0
  231. package/dist/orchestrator/src/cli/utils/authProvenanceFingerprint.js +27 -0
  232. package/dist/orchestrator/src/cli/utils/cloudPreflight.js +285 -7
  233. package/dist/orchestrator/src/cli/utils/codexFeatures.js +60 -0
  234. package/dist/orchestrator/src/cli/utils/delegationConfigParser.js +250 -0
  235. package/dist/orchestrator/src/cli/utils/delegationMcpHealth.js +1382 -0
  236. package/dist/orchestrator/src/cli/utils/devtools.js +2 -54
  237. package/dist/orchestrator/src/cli/utils/mcpServerEntry.js +53 -0
  238. package/dist/orchestrator/src/cli/utils/packageProgramResolver.js +151 -0
  239. package/dist/orchestrator/src/cli/utils/providerOverrideEnv.js +71 -0
  240. package/dist/orchestrator/src/cli/utils/trailingJsonObject.js +59 -0
  241. package/dist/orchestrator/src/learning/crystalizer.js +2 -2
  242. package/dist/orchestrator/src/manager.js +74 -4
  243. package/dist/orchestrator/src/persistence/ExperienceStore.js +233 -49
  244. package/dist/orchestrator/src/persistence/TaskStateStore.js +6 -6
  245. package/dist/orchestrator/src/persistence/lockFile.js +70 -4
  246. package/dist/orchestrator/src/persistence/sanitizeIdentifier.js +39 -0
  247. package/dist/orchestrator/src/sync/createCloudSyncWorker.js +3 -2
  248. package/dist/orchestrator/src/utils/atomicWrite.js +17 -2
  249. package/dist/packages/orchestrator/src/exec/unified-exec.js +99 -6
  250. package/dist/packages/orchestrator/src/instructions/promptPacks.js +150 -19
  251. package/dist/packages/sdk-node/src/orchestrator.js +137 -13
  252. package/dist/packages/shared/config/designConfig.js +8 -1
  253. package/dist/packages/shared/streams/stdio.js +1 -1
  254. package/dist/scripts/design/pipeline/permit.js +15 -0
  255. package/dist/scripts/lib/docs-catalog.js +399 -0
  256. package/dist/scripts/lib/docs-helpers.js +87 -5
  257. package/dist/scripts/lib/pr-watch-merge.js +1088 -80
  258. package/dist/scripts/lib/provider-run-contract.js +26 -0
  259. package/dist/scripts/lib/review-command-intent-classification.js +532 -0
  260. package/dist/scripts/lib/review-command-probe-classification.js +385 -0
  261. package/dist/scripts/lib/review-execution-boundary-preflight.js +279 -0
  262. package/dist/scripts/lib/review-execution-runtime.js +753 -0
  263. package/dist/scripts/lib/review-execution-state.js +1144 -0
  264. package/dist/scripts/lib/review-execution-telemetry.js +215 -0
  265. package/dist/scripts/lib/review-inspection-target-parsing.js +78 -0
  266. package/dist/scripts/lib/review-launch-attempt.js +601 -0
  267. package/dist/scripts/lib/review-meta-surface-boundary-analysis.js +300 -0
  268. package/dist/scripts/lib/review-meta-surface-normalization.js +746 -0
  269. package/dist/scripts/lib/review-non-interactive-handoff.js +61 -0
  270. package/dist/scripts/lib/review-prompt-context.js +376 -0
  271. package/dist/scripts/lib/review-scope-advisory.js +286 -0
  272. package/dist/scripts/lib/review-scope-paths.js +123 -0
  273. package/dist/scripts/lib/review-shell-command-parser.js +389 -0
  274. package/dist/scripts/lib/review-shell-env-interpreter.js +340 -0
  275. package/dist/scripts/lib/run-manifests.js +192 -36
  276. package/dist/scripts/lib/spark-policy-classifier.js +593 -0
  277. package/dist/scripts/run-review.js +507 -1777
  278. package/docs/README.md +43 -20
  279. package/docs/book/README.md +19 -0
  280. package/docs/book/codex-cli-0124-adoption.md +68 -0
  281. package/docs/book/local-hook-impact.md +73 -0
  282. package/docs/book/operations.md +60 -0
  283. package/docs/book/public-posture.md +34 -0
  284. package/docs/book/setup.md +91 -0
  285. package/docs/book/skills.md +11 -0
  286. package/docs/guides/codex-version-policy.md +104 -0
  287. package/docs/public/downstream-setup.md +113 -0
  288. package/docs/public/provider-onboarding.md +173 -0
  289. package/package.json +23 -10
  290. package/plugins/codex-orchestrator/.codex-plugin/plugin.json +30 -0
  291. package/plugins/codex-orchestrator/.mcp.json +13 -0
  292. package/plugins/codex-orchestrator/launcher.mjs +361 -0
  293. package/schemas/manifest.json +411 -0
  294. package/skills/README.md +26 -0
  295. package/skills/collab-subagents-first/SKILL.md +1 -1
  296. package/skills/delegation-usage/DELEGATION_GUIDE.md +30 -12
  297. package/skills/delegation-usage/SKILL.md +25 -14
  298. package/skills/land/SKILL.md +77 -0
  299. package/skills/linear/SKILL.md +255 -0
  300. package/skills/release/SKILL.md +47 -3
  301. package/skills/standalone-review/SKILL.md +6 -1
  302. package/templates/README.md +4 -2
  303. package/templates/codex/.codex/agents/awaiter-high.toml +2 -2
  304. package/templates/codex/.codex/agents/worker-complex.toml +1 -1
  305. package/templates/codex/.codex/config.toml +3 -4
  306. package/templates/codex/.codex/providers/README.md +13 -0
  307. package/templates/codex/.codex/providers/control.example.json +18 -0
  308. package/templates/codex/.codex/providers/provider.env.example +15 -0
  309. package/templates/codex/AGENTS.md +15 -8
  310. package/templates/codex/mcp-client.json +5 -1
  311. package/docs/assets/setup.gif +0 -0
@@ -0,0 +1,215 @@
1
+ import { writeFile } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ export function deriveReviewOutcomeDisposition(options) {
4
+ if (options.status === 'succeeded') {
5
+ return options.terminationBoundary ? 'bounded-success' : 'clean-success';
6
+ }
7
+ return options.terminationBoundary ? 'failed-boundary' : 'failed-other';
8
+ }
9
+ export function coerceReviewOutcomeDisposition(value) {
10
+ switch (value) {
11
+ case 'clean-success':
12
+ case 'bounded-success':
13
+ case 'failed-boundary':
14
+ case 'failed-other':
15
+ return value;
16
+ default:
17
+ return null;
18
+ }
19
+ }
20
+ export function resolveReviewOutcomeDisposition(payload) {
21
+ const derivedDisposition = deriveReviewOutcomeDisposition({
22
+ status: payload.status,
23
+ terminationBoundary: payload.termination_boundary
24
+ });
25
+ const explicitDisposition = coerceReviewOutcomeDisposition(payload.review_outcome ?? null);
26
+ return explicitDisposition === derivedDisposition ? explicitDisposition : derivedDisposition;
27
+ }
28
+ export function formatReviewOutcomeSummary(payload) {
29
+ const disposition = resolveReviewOutcomeDisposition(payload);
30
+ const boundaryKind = payload.termination_boundary?.kind ?? null;
31
+ switch (disposition) {
32
+ case 'clean-success':
33
+ return 'clean success';
34
+ case 'bounded-success':
35
+ return boundaryKind
36
+ ? `bounded success via ${boundaryKind}; not a wrapper failure`
37
+ : 'bounded success with preserved termination boundary; not a wrapper failure';
38
+ case 'failed-boundary':
39
+ return boundaryKind
40
+ ? `review-wrapper failure via ${boundaryKind}`
41
+ : 'review-wrapper failure via explicit termination boundary';
42
+ case 'failed-other':
43
+ return 'review command failed without termination-boundary classification; not an explicit wrapper-boundary failure';
44
+ }
45
+ }
46
+ export function buildReviewTelemetryPayload(options) {
47
+ const terminationBoundary = sanitizeTerminationBoundaryForPersistence(options.terminationBoundary ?? null, options.includeRawTelemetry, options.telemetryDebugEnvKey);
48
+ return {
49
+ version: 1,
50
+ generated_at: new Date().toISOString(),
51
+ status: options.status,
52
+ review_outcome: deriveReviewOutcomeDisposition({
53
+ status: options.status,
54
+ terminationBoundary
55
+ }),
56
+ error: sanitizeTelemetryErrorForPersistence(options.error ?? null, options.includeRawTelemetry, options.telemetryDebugEnvKey),
57
+ output_log_path: path.relative(options.repoRoot, options.outputLogPath),
58
+ launch_context: options.launchContext ?? null,
59
+ termination_boundary: terminationBoundary,
60
+ summary: sanitizeTelemetrySummaryForPersistence(options.summary, options.includeRawTelemetry, options.telemetryDebugEnvKey)
61
+ };
62
+ }
63
+ export async function persistReviewTelemetry(options) {
64
+ await writeFile(options.telemetryPath, `${JSON.stringify(options.payload, null, 2)}\n`, 'utf8');
65
+ return options.payload;
66
+ }
67
+ export async function writeReviewExecutionTelemetry(options) {
68
+ try {
69
+ const payloadOptions = {
70
+ status: options.status,
71
+ error: options.error ?? null,
72
+ outputLogPath: options.outputLogPath,
73
+ repoRoot: options.repoRoot,
74
+ includeRawTelemetry: options.includeRawTelemetry,
75
+ telemetryDebugEnvKey: options.telemetryDebugEnvKey,
76
+ launchContext: options.launchContext ?? null
77
+ };
78
+ if (Object.prototype.hasOwnProperty.call(options, 'terminationBoundary')) {
79
+ payloadOptions.terminationBoundary = options.terminationBoundary;
80
+ }
81
+ const payload = options.state.buildTelemetryPayload(payloadOptions);
82
+ return await persistReviewTelemetry({
83
+ payload,
84
+ telemetryPath: options.telemetryPath
85
+ });
86
+ }
87
+ catch (telemetryError) {
88
+ const telemetryMessage = telemetryError instanceof Error ? telemetryError.message : String(telemetryError);
89
+ const logPersistFailure = options.logPersistFailure ??
90
+ ((message) => {
91
+ console.error(`[run-review] failed to persist review telemetry: ${message}`);
92
+ });
93
+ logPersistFailure(telemetryMessage);
94
+ return null;
95
+ }
96
+ }
97
+ export function logReviewTelemetrySummary(payload, telemetryPath, options) {
98
+ const summary = payload.summary;
99
+ console.error(`[run-review] review outcome: ${formatReviewOutcomeSummary(payload)}.`);
100
+ console.error(`[run-review] review telemetry: ${summary.commandStarts.length} command start(s), ${summary.heavyCommandStarts.length} heavy command start(s), ${summary.startupEvents} delegation startup event(s), ${summary.reviewProgressSignals} review progress signal(s).`);
101
+ if (summary.commandIntentViolationCount > 0) {
102
+ console.error(`[run-review] command-intent violations detected: ${summary.commandIntentViolationCount} sample(s) across ${summary.commandIntentViolationKinds.join(', ')}.`);
103
+ }
104
+ if (payload.termination_boundary) {
105
+ console.error(`[run-review] termination boundary: ${payload.termination_boundary.kind} (${payload.termination_boundary.provenance}).`);
106
+ }
107
+ const lastCommand = summary.commandStarts.at(-1);
108
+ if (lastCommand) {
109
+ if (options.debugTelemetry) {
110
+ console.error(`[run-review] last command started: ${lastCommand}`);
111
+ }
112
+ else {
113
+ console.error(`[run-review] last command started: [redacted] (set ${options.telemetryDebugEnvKey}=1 to print raw command text).`);
114
+ }
115
+ }
116
+ if (summary.completionCount < summary.commandStarts.length) {
117
+ console.error(`[run-review] command completions observed: ${summary.completionCount}; possible in-flight command at termination.`);
118
+ }
119
+ if (summary.heavyCommandStarts.length > 0) {
120
+ if (options.debugTelemetry) {
121
+ console.error(`[run-review] heavy commands detected: ${summary.heavyCommandStarts.join(' | ')}`);
122
+ }
123
+ else {
124
+ console.error(`[run-review] heavy commands detected: ${summary.heavyCommandStarts.length} sample(s) captured (set ${options.telemetryDebugEnvKey}=1 to print raw command text).`);
125
+ }
126
+ }
127
+ if (summary.metaSurfaceSignals > 0) {
128
+ console.error(`[run-review] meta-surface signals detected: ${summary.metaSurfaceSignals} sample(s) across ${summary.distinctMetaSurfaces} surface kind(s) [${summary.metaSurfaceKinds.join(', ')}]; max repeated surface hits ${summary.maxMetaSurfaceHits}.`);
129
+ }
130
+ if (summary.lastLines.length > 0) {
131
+ if (options.debugTelemetry) {
132
+ console.error(`[run-review] output tail: ${summary.lastLines.join(' || ')}`);
133
+ }
134
+ else {
135
+ console.error(`[run-review] output tail captured: ${summary.lastLines.length} line(s) hidden by default (set ${options.telemetryDebugEnvKey}=1 to print raw tail).`);
136
+ }
137
+ }
138
+ console.error(`[run-review] review telemetry saved to: ${telemetryPath}`);
139
+ }
140
+ export function inferTerminationBoundaryKindsFromErrorMessage(errorMessage) {
141
+ if (!errorMessage) {
142
+ return [];
143
+ }
144
+ const kinds = [];
145
+ if (errorMessage.includes('codex review timed out after')) {
146
+ kinds.push('timeout');
147
+ }
148
+ if (errorMessage.includes('codex review stalled with no output for')) {
149
+ kinds.push('stall');
150
+ }
151
+ if (errorMessage.includes('bounded command-intent boundary')) {
152
+ kinds.push('command-intent');
153
+ }
154
+ if (errorMessage.includes('shell-probe boundary violated')) {
155
+ kinds.push('shell-probe');
156
+ }
157
+ if (errorMessage.includes('appears stuck in delegation startup loop')) {
158
+ kinds.push('startup-loop');
159
+ }
160
+ if (errorMessage.includes('active-closeout-bundle reread boundary violated')) {
161
+ kinds.push('active-closeout-bundle-reread');
162
+ }
163
+ if (errorMessage.includes('startup-anchor boundary violated')) {
164
+ kinds.push('startup-anchor');
165
+ }
166
+ if (errorMessage.includes('meta-surface expansion detected')) {
167
+ kinds.push('meta-surface-expansion');
168
+ }
169
+ if (errorMessage.includes('relevant-reinspection dwell boundary violated')) {
170
+ kinds.push('relevant-reinspection-dwell');
171
+ }
172
+ if (errorMessage.includes('verdict-stability drift detected')) {
173
+ kinds.push('verdict-stability');
174
+ }
175
+ return kinds;
176
+ }
177
+ function sanitizeTerminationBoundaryForPersistence(boundary, includeRawTelemetry, telemetryDebugEnvKey) {
178
+ if (!boundary) {
179
+ return null;
180
+ }
181
+ if (includeRawTelemetry) {
182
+ return boundary;
183
+ }
184
+ const redactedSample = boundary.sample
185
+ ? `[redacted ${boundary.kind} sample; set ${telemetryDebugEnvKey}=1 to persist raw sample]`
186
+ : null;
187
+ return {
188
+ ...boundary,
189
+ reason: boundary.sample && redactedSample
190
+ ? boundary.reason.split(boundary.sample).join(redactedSample)
191
+ : boundary.reason,
192
+ sample: redactedSample
193
+ };
194
+ }
195
+ function sanitizeTelemetrySummaryForPersistence(summary, includeRawTelemetry, telemetryDebugEnvKey) {
196
+ if (includeRawTelemetry) {
197
+ return summary;
198
+ }
199
+ return {
200
+ ...summary,
201
+ commandStarts: redactTelemetryLines(summary.commandStarts, 'command', telemetryDebugEnvKey),
202
+ heavyCommandStarts: redactTelemetryLines(summary.heavyCommandStarts, 'heavy-command', telemetryDebugEnvKey),
203
+ commandIntentViolationSamples: redactTelemetryLines(summary.commandIntentViolationSamples, 'command-intent', telemetryDebugEnvKey),
204
+ lastLines: redactTelemetryLines(summary.lastLines, 'output-line', telemetryDebugEnvKey)
205
+ };
206
+ }
207
+ function redactTelemetryLines(lines, label, telemetryDebugEnvKey) {
208
+ return lines.map((_line, index) => `[redacted ${label} ${index + 1}; set ${telemetryDebugEnvKey}=1 to persist raw values]`);
209
+ }
210
+ function sanitizeTelemetryErrorForPersistence(error, includeRawTelemetry, telemetryDebugEnvKey) {
211
+ if (!error || includeRawTelemetry) {
212
+ return error;
213
+ }
214
+ return `[redacted error; set ${telemetryDebugEnvKey}=1 to persist raw values]`;
215
+ }
@@ -0,0 +1,78 @@
1
+ import { extractShellCommandPayload, normalizeCommandToken, splitShellControlSegments, stripLeadingEnvAssignments, tokenizeShellSegment, unwrapEnvCommandTokens } from './review-shell-command-parser.js';
2
+ import { expandMetaSurfaceOperandCandidates, extractMetaSurfaceOperands, isTouchedReviewScopePathFamilyOperand, isTouchedScopePath, normalizeScopePath, relativizeOperandToRepoRoot } from './review-meta-surface-normalization.js';
3
+ const REVIEW_INSPECTION_TARGET_PATH_RE = /^(?:[A-Za-z0-9_./-]+\.(?:[cm]?[jt]sx?|json|md|ya?ml|toml|py|rb|php|go|rs|java|c|cc|cpp|cxx|h|hh|hpp|cs|swift|kt|kts|scala|exs?|sh|bash|zsh|fish|ps1|sql|html?|css|scss|less))$/u;
4
+ const REVIEW_INSPECTION_TARGET_RE = /([A-Za-z0-9_./-]+\.(?:[cm]?[jt]sx?|json|md|ya?ml|toml|py|rb|php|go|rs|java|c|cc|cpp|cxx|h|hh|hpp|cs|swift|kt|kts|scala|exs?|sh|bash|zsh|fish|ps1|sql|html?|css|scss|less))/gu;
5
+ export function extractInspectionTargets(commandLine, options = {}) {
6
+ const normalized = commandLine.replace(/\\/gu, '/');
7
+ if (options.touchedPaths && options.touchedPaths.size > 0) {
8
+ const parsedTargets = extractParsedInspectionTargets(normalized, options.touchedPaths, options.repoRoot ?? null);
9
+ if (parsedTargets.length > 0) {
10
+ return parsedTargets;
11
+ }
12
+ }
13
+ const targets = new Set();
14
+ for (const match of normalized.matchAll(REVIEW_INSPECTION_TARGET_RE)) {
15
+ const target = match[1]?.trim();
16
+ if (!target) {
17
+ continue;
18
+ }
19
+ targets.add(target.replace(/^\.\/+/u, ''));
20
+ }
21
+ return [...targets];
22
+ }
23
+ export function extractParsedInspectionTargets(commandLine, touchedPaths, repoRoot) {
24
+ const touchedTargets = new Set();
25
+ const genericTargets = new Set();
26
+ for (const segment of splitShellControlSegments(commandLine)) {
27
+ collectParsedInspectionTargetsFromSegment(segment, touchedPaths, repoRoot, touchedTargets, genericTargets);
28
+ }
29
+ return touchedTargets.size > 0 ? [...touchedTargets] : [...genericTargets];
30
+ }
31
+ export function collectParsedInspectionTargetsFromSegment(segment, touchedPaths, repoRoot, touchedTargets, genericTargets, depth = 0) {
32
+ const strippedTokens = stripLeadingEnvAssignments(tokenizeShellSegment(segment));
33
+ if (strippedTokens.length === 0) {
34
+ return;
35
+ }
36
+ const tokens = unwrapEnvCommandTokens(strippedTokens);
37
+ if (tokens.length === 0) {
38
+ return;
39
+ }
40
+ if (depth < 3) {
41
+ const payload = extractShellCommandPayload(tokens);
42
+ if (payload) {
43
+ for (const nestedSegment of splitShellControlSegments(payload)) {
44
+ collectParsedInspectionTargetsFromSegment(nestedSegment, touchedPaths, repoRoot, touchedTargets, genericTargets, depth + 1);
45
+ }
46
+ return;
47
+ }
48
+ }
49
+ const command = normalizeCommandToken(tokens[0] ?? '');
50
+ const args = tokens.slice(1);
51
+ for (const operand of extractMetaSurfaceOperands(command, args)) {
52
+ for (const candidate of expandMetaSurfaceOperandCandidates(command, args, operand, new Map(), new Map(), new Set(), repoRoot)) {
53
+ const matchedTouchedPath = resolveTouchedInspectionTarget(candidate, touchedPaths, repoRoot);
54
+ if (matchedTouchedPath) {
55
+ touchedTargets.add(matchedTouchedPath);
56
+ continue;
57
+ }
58
+ const normalizedCandidate = relativizeOperandToRepoRoot(candidate, repoRoot).replace(/^\.\/+/u, '');
59
+ if (REVIEW_INSPECTION_TARGET_PATH_RE.test(normalizedCandidate)) {
60
+ genericTargets.add(normalizedCandidate);
61
+ }
62
+ }
63
+ }
64
+ }
65
+ export function resolveTouchedInspectionTarget(candidate, touchedPaths, repoRoot) {
66
+ for (const touchedPath of touchedPaths) {
67
+ const normalizedTouchedPath = normalizeScopePath(touchedPath);
68
+ if (!normalizedTouchedPath) {
69
+ continue;
70
+ }
71
+ const touchedPathSet = new Set([normalizedTouchedPath]);
72
+ if (isTouchedScopePath(candidate, touchedPathSet, repoRoot) ||
73
+ isTouchedReviewScopePathFamilyOperand(candidate, touchedPathSet, repoRoot)) {
74
+ return normalizedTouchedPath;
75
+ }
76
+ }
77
+ return null;
78
+ }