onto-mcp 0.3.2 → 0.4.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/.onto/processes/reconstruct/actionable-ontology-seed-recomposition-design.md +447 -0
- package/.onto/processes/reconstruct/foundry-style-ontology-seed-contract.md +934 -0
- package/.onto/processes/reconstruct/reconstruct-boundary-contract.md +303 -725
- package/.onto/processes/reconstruct/reconstruct-contract-registry.yaml +1645 -0
- package/.onto/processes/reconstruct/reconstruct-execution-ux-contract.md +26 -22
- package/.onto/processes/reconstruct/source-profile-contract.md +49 -23
- package/.onto/processes/reconstruct/source-profiles/code.md +6 -3
- package/.onto/processes/reconstruct/source-profiles/database.md +5 -2
- package/.onto/processes/reconstruct/source-profiles/document.md +5 -2
- package/.onto/processes/reconstruct/source-profiles/spreadsheet.md +5 -4
- package/.onto/processes/review/review-execution-ux-contract.md +40 -0
- package/.onto/processes/shared/pipeline-execution-ledger-contract.md +26 -10
- package/.onto/processes/shared/target-material-kind-contract.md +29 -16
- package/AGENTS.md +6 -4
- package/README.md +135 -76
- package/dist/cli.js +8 -8
- package/dist/core-api/reconstruct-api.js +117 -31
- package/dist/core-api/review-api.js +47 -0
- package/dist/core-runtime/cli/codex-review-unit-executor.js +39 -2
- package/dist/core-runtime/cli/complete-review-session.js +2 -2
- package/dist/core-runtime/cli/mock-review-unit-executor.js +1 -1
- package/dist/core-runtime/cli/review-invoke.js +9 -9
- package/dist/core-runtime/cli/run-review-prompt-execution.js +39 -5
- package/dist/core-runtime/cli/spawn-watcher.js +266 -47
- package/dist/core-runtime/cli/start-review-session.js +3 -3
- package/dist/core-runtime/llm/llm-caller.js +11 -0
- package/dist/core-runtime/llm/llm-tool-loop.js +2 -0
- package/dist/core-runtime/observability/runtime-stream-observation.js +118 -0
- package/dist/core-runtime/onboard/cli-host.js +149 -0
- package/dist/core-runtime/onboard/host-target.js +22 -0
- package/dist/core-runtime/onboard/json-config-host.js +122 -0
- package/dist/core-runtime/onboard/path-scan.js +26 -0
- package/dist/core-runtime/onboard/prompt.js +51 -0
- package/dist/core-runtime/onboard/register.js +207 -0
- package/dist/core-runtime/onboard/types.js +27 -0
- package/dist/core-runtime/reconstruct/actionable-seed-validation.js +1777 -0
- package/dist/core-runtime/reconstruct/artifact-types.js +10 -4
- package/dist/core-runtime/reconstruct/contract-registry.js +623 -0
- package/dist/core-runtime/reconstruct/domain-id.js +10 -0
- package/dist/core-runtime/reconstruct/governing-snapshot.js +716 -0
- package/dist/core-runtime/reconstruct/material-profile-validation.js +191 -0
- package/dist/core-runtime/reconstruct/materialize-preparation.js +49 -11
- package/dist/core-runtime/reconstruct/pipeline-execution-ledger.js +269 -79
- package/dist/core-runtime/reconstruct/post-seed-validation.js +1194 -51
- package/dist/core-runtime/reconstruct/record.js +104 -20
- package/dist/core-runtime/reconstruct/run.js +2107 -413
- package/dist/core-runtime/reconstruct/seed-claim-projections.js +268 -0
- package/dist/core-runtime/reconstruct/source-profiles.js +93 -4
- package/dist/core-runtime/reconstruct/terminal-validation.js +807 -0
- package/dist/core-runtime/review/review-invocation-runner.js +4 -4
- package/dist/mcp/server.js +110 -38
- package/dist/mcp/tool-schemas.js +20 -6
- package/package.json +8 -17
- package/scripts/onto-review-watch.sh +486 -0
- package/scripts/onto-runtime-watch.sh +122 -0
- package/scripts/postinstall-hint.js +22 -0
- package/.onto/processes/reconstruct/top-level-concept-discovery-contract.md +0 -387
- package/dist/core-runtime/cli/bootstrap-review-binding.js +0 -186
- package/dist/core-runtime/cli/codex-nested-dispatch.test.js +0 -390
- package/dist/core-runtime/cli/codex-nested-teamlead-executor.test.js +0 -335
- package/dist/core-runtime/cli/coordinator-helpers.js +0 -583
- package/dist/core-runtime/cli/coordinator-state-machine-deliberation.test.js +0 -167
- package/dist/core-runtime/cli/coordinator-state-machine.js +0 -794
- package/dist/core-runtime/cli/e2e-codex-multi-agent-fixes.test.js +0 -615
- package/dist/core-runtime/cli/e2e-start-review-session.test.js +0 -312
- package/dist/core-runtime/cli/health.js +0 -44
- package/dist/core-runtime/cli/inline-http-review-unit-executor.test.js +0 -567
- package/dist/core-runtime/cli/materialize-review-execution-preparation.js +0 -104
- package/dist/core-runtime/cli/migrate-session-roots.js +0 -118
- package/dist/core-runtime/cli/repo-layout-migration-replace.smoke.test.js +0 -106
- package/dist/core-runtime/cli/review-invoke-auto-resolution.test.js +0 -268
- package/dist/core-runtime/cli/review-invoke-coordinator-topology.test.js +0 -136
- package/dist/core-runtime/cli/review-invoke-resolver-caching.test.js +0 -201
- package/dist/core-runtime/cli/review-invoke-topology-dispatch.test.js +0 -192
- package/dist/core-runtime/cli/session-root-guard.js +0 -168
- package/dist/core-runtime/cli/spawn-watcher.test.js +0 -457
- package/dist/core-runtime/cli/strip-wrapping-code-fence.test.js +0 -79
- package/dist/core-runtime/cli/teamcreate-lens-deliberation-executor.js +0 -412
- package/dist/core-runtime/cli/teamcreate-lens-deliberation-executor.test.js +0 -351
- package/dist/core-runtime/cli/topology-executor-mapping.js +0 -139
- package/dist/core-runtime/cli/topology-executor-mapping.test.js +0 -173
- package/dist/core-runtime/cli/write-review-interpretation.js +0 -81
- package/dist/core-runtime/config/onto-config-cli.js +0 -278
- package/dist/core-runtime/config/onto-config-key-path.js +0 -288
- package/dist/core-runtime/config/onto-config-key-path.test.js +0 -195
- package/dist/core-runtime/config/onto-config-preview.js +0 -108
- package/dist/core-runtime/config/onto-config-preview.test.js +0 -132
- package/dist/core-runtime/discovery/config-chain.js +0 -118
- package/dist/core-runtime/discovery/config-chain.test.js +0 -103
- package/dist/core-runtime/discovery/config-profile.js +0 -199
- package/dist/core-runtime/discovery/config-profile.test.js +0 -233
- package/dist/core-runtime/discovery/host-detection.test.js +0 -186
- package/dist/core-runtime/discovery/installation-paths.test.js +0 -65
- package/dist/core-runtime/discovery/lens-registry.test.js +0 -81
- package/dist/core-runtime/discovery/path-normalization.test.js +0 -22
- package/dist/core-runtime/discovery/plugin-path.js +0 -72
- package/dist/core-runtime/discovery/plugin-path.test.js +0 -95
- package/dist/core-runtime/evolve/adapters/code-product/compile/compile-defense.js +0 -344
- package/dist/core-runtime/evolve/adapters/code-product/compile/compile-defense.test.js +0 -915
- package/dist/core-runtime/evolve/adapters/code-product/compile/compile.js +0 -564
- package/dist/core-runtime/evolve/adapters/code-product/compile/compile.test.js +0 -708
- package/dist/core-runtime/evolve/adapters/code-product/parsers/brief-parser.js +0 -165
- package/dist/core-runtime/evolve/adapters/code-product/parsers/brief-parser.test.js +0 -227
- package/dist/core-runtime/evolve/adapters/code-product/validators/validate.js +0 -59
- package/dist/core-runtime/evolve/adapters/code-product/validators/validate.test.js +0 -205
- package/dist/core-runtime/evolve/adapters/methodology/adapter.js +0 -16
- package/dist/core-runtime/evolve/adapters/methodology/adapter.test.js +0 -9
- package/dist/core-runtime/evolve/adapters/methodology/perspectives/authority-consistency.js +0 -298
- package/dist/core-runtime/evolve/adapters/methodology/perspectives/authority-consistency.test.js +0 -70
- package/dist/core-runtime/evolve/adapters/methodology/scope-types/process.js +0 -46
- package/dist/core-runtime/evolve/adapters/methodology/scope-types/process.test.js +0 -73
- package/dist/core-runtime/evolve/adapters/registry.js +0 -47
- package/dist/core-runtime/evolve/adapters/registry.test.js +0 -67
- package/dist/core-runtime/evolve/cli.js +0 -256
- package/dist/core-runtime/evolve/commands/align.js +0 -194
- package/dist/core-runtime/evolve/commands/align.test.js +0 -82
- package/dist/core-runtime/evolve/commands/apply.js +0 -161
- package/dist/core-runtime/evolve/commands/apply.test.js +0 -138
- package/dist/core-runtime/evolve/commands/close.js +0 -39
- package/dist/core-runtime/evolve/commands/close.test.js +0 -99
- package/dist/core-runtime/evolve/commands/defer.js +0 -40
- package/dist/core-runtime/evolve/commands/defer.test.js +0 -134
- package/dist/core-runtime/evolve/commands/draft.js +0 -323
- package/dist/core-runtime/evolve/commands/draft.test.js +0 -178
- package/dist/core-runtime/evolve/commands/e2e-evolve-full-cycle.test.js +0 -208
- package/dist/core-runtime/evolve/commands/error-messages.js +0 -125
- package/dist/core-runtime/evolve/commands/error-messages.test.js +0 -167
- package/dist/core-runtime/evolve/commands/propose-align.js +0 -222
- package/dist/core-runtime/evolve/commands/propose-align.test.js +0 -136
- package/dist/core-runtime/evolve/commands/reconstruct.js +0 -330
- package/dist/core-runtime/evolve/commands/reconstruct.test.js +0 -278
- package/dist/core-runtime/evolve/commands/shared.js +0 -22
- package/dist/core-runtime/evolve/commands/stale-check.js +0 -103
- package/dist/core-runtime/evolve/commands/stale-check.test.js +0 -84
- package/dist/core-runtime/evolve/commands/start.js +0 -887
- package/dist/core-runtime/evolve/commands/start.test.js +0 -396
- package/dist/core-runtime/evolve/config/project-config.js +0 -99
- package/dist/core-runtime/evolve/config/project-config.test.js +0 -170
- package/dist/core-runtime/evolve/renderers/align-packet.js +0 -280
- package/dist/core-runtime/evolve/renderers/align-packet.test.js +0 -332
- package/dist/core-runtime/evolve/renderers/draft-packet.js +0 -303
- package/dist/core-runtime/evolve/renderers/draft-packet.test.js +0 -377
- package/dist/core-runtime/evolve/renderers/format.js +0 -5
- package/dist/core-runtime/evolve/renderers/scope-md.js +0 -237
- package/dist/core-runtime/evolve/renderers/scope-md.test.js +0 -306
- package/dist/core-runtime/govern/cli.js +0 -369
- package/dist/core-runtime/govern/cli.test.js +0 -314
- package/dist/core-runtime/govern/drift-engine.js +0 -103
- package/dist/core-runtime/govern/drift-engine.test.js +0 -319
- package/dist/core-runtime/govern/promote-principle.js +0 -206
- package/dist/core-runtime/govern/promote-principle.test.js +0 -368
- package/dist/core-runtime/govern/queue.js +0 -81
- package/dist/core-runtime/govern/types.js +0 -16
- package/dist/core-runtime/install/cli.js +0 -530
- package/dist/core-runtime/install/detect.js +0 -128
- package/dist/core-runtime/install/detect.test.js +0 -155
- package/dist/core-runtime/install/gitignore-update.js +0 -74
- package/dist/core-runtime/install/gitignore-update.test.js +0 -64
- package/dist/core-runtime/install/install-integration.test.js +0 -373
- package/dist/core-runtime/install/prompts.js +0 -389
- package/dist/core-runtime/install/prompts.test.js +0 -293
- package/dist/core-runtime/install/types.js +0 -26
- package/dist/core-runtime/install/validation.js +0 -295
- package/dist/core-runtime/install/validation.test.js +0 -313
- package/dist/core-runtime/install/writer.js +0 -254
- package/dist/core-runtime/install/writer.test.js +0 -218
- package/dist/core-runtime/learning/extractor.js +0 -461
- package/dist/core-runtime/learning/feedback.js +0 -179
- package/dist/core-runtime/learning/health-report.js +0 -165
- package/dist/core-runtime/learning/health-report.test.js +0 -169
- package/dist/core-runtime/learning/loader.js +0 -388
- package/dist/core-runtime/learning/loader.test.js +0 -102
- package/dist/core-runtime/learning/promote/apply-state.js +0 -240
- package/dist/core-runtime/learning/promote/audit-obligation.js +0 -195
- package/dist/core-runtime/learning/promote/collector.js +0 -432
- package/dist/core-runtime/learning/promote/degraded-state.js +0 -125
- package/dist/core-runtime/learning/promote/domain-doc-proposer.js +0 -166
- package/dist/core-runtime/learning/promote/e2e-promote.test.js +0 -6385
- package/dist/core-runtime/learning/promote/health-snapshot.js +0 -150
- package/dist/core-runtime/learning/promote/insight-reclassifier.js +0 -544
- package/dist/core-runtime/learning/promote/judgment-auditor.js +0 -517
- package/dist/core-runtime/learning/promote/panel-reviewer.js +0 -1158
- package/dist/core-runtime/learning/promote/promote-executor.js +0 -1675
- package/dist/core-runtime/learning/promote/promoter.js +0 -307
- package/dist/core-runtime/learning/promote/retirement.js +0 -122
- package/dist/core-runtime/learning/promote/types.js +0 -23
- package/dist/core-runtime/learning/prompt-sections.js +0 -51
- package/dist/core-runtime/learning/shared/artifact-registry-init.js +0 -45
- package/dist/core-runtime/learning/shared/artifact-registry.js +0 -254
- package/dist/core-runtime/learning/shared/audit-obligation-kernel.js +0 -73
- package/dist/core-runtime/learning/shared/audit-state.js +0 -99
- package/dist/core-runtime/learning/shared/duplicate-check.js +0 -28
- package/dist/core-runtime/learning/shared/llm-caller.js +0 -831
- package/dist/core-runtime/learning/shared/llm-caller.test.js +0 -601
- package/dist/core-runtime/learning/shared/llm-tool-loop.js +0 -393
- package/dist/core-runtime/learning/shared/mode.js +0 -25
- package/dist/core-runtime/learning/shared/paths.js +0 -84
- package/dist/core-runtime/learning/shared/paths.test.js +0 -79
- package/dist/core-runtime/learning/shared/patterns.js +0 -37
- package/dist/core-runtime/learning/shared/recoverability.js +0 -355
- package/dist/core-runtime/learning/shared/recovery-context.js +0 -374
- package/dist/core-runtime/learning/shared/scope.js +0 -1
- package/dist/core-runtime/learning/shared/semantic-classifier.js +0 -94
- package/dist/core-runtime/learning/shared/specs/apply-execution-state-spec.js +0 -42
- package/dist/core-runtime/learning/shared/specs/audit-state-spec.js +0 -37
- package/dist/core-runtime/learning/shared/specs/backup-metadata-spec.js +0 -39
- package/dist/core-runtime/learning/shared/specs/emergency-log-spec.js +0 -41
- package/dist/core-runtime/learning/shared/specs/layout-version-spec.js +0 -38
- package/dist/core-runtime/learning/shared/specs/promote-decisions-spec.js +0 -43
- package/dist/core-runtime/learning/shared/specs/promote-report-spec.js +0 -113
- package/dist/core-runtime/learning/shared/specs/prune-log-spec.js +0 -36
- package/dist/core-runtime/learning/shared/specs/recovery-resolution-spec.js +0 -48
- package/dist/core-runtime/learning/shared/specs/restore-manifest-spec.js +0 -43
- package/dist/core-runtime/learning/shared/specs/spec-helpers.js +0 -64
- package/dist/core-runtime/learning/usage-tracker.js +0 -190
- package/dist/core-runtime/learning/usage-tracker.test.js +0 -176
- package/dist/core-runtime/onboard/detect-review-axes.js +0 -122
- package/dist/core-runtime/onboard/detect-review-axes.test.js +0 -127
- package/dist/core-runtime/onboard/write-review-block.js +0 -188
- package/dist/core-runtime/onboard/write-review-block.test.js +0 -240
- package/dist/core-runtime/readers/brownfield-builder.js +0 -150
- package/dist/core-runtime/readers/brownfield-builder.test.js +0 -136
- package/dist/core-runtime/readers/code-chunk-collector.js +0 -53
- package/dist/core-runtime/readers/code-chunk-collector.test.js +0 -136
- package/dist/core-runtime/readers/file-utils.js +0 -240
- package/dist/core-runtime/readers/file-utils.test.js +0 -146
- package/dist/core-runtime/readers/lexicon-citation-check.js +0 -93
- package/dist/core-runtime/readers/lexicon-citation-check.test.js +0 -77
- package/dist/core-runtime/readers/mcp-figma.js +0 -30
- package/dist/core-runtime/readers/mcp-figma.test.js +0 -82
- package/dist/core-runtime/readers/mcp-generic.js +0 -31
- package/dist/core-runtime/readers/mcp-generic.test.js +0 -76
- package/dist/core-runtime/readers/ontology-index.js +0 -148
- package/dist/core-runtime/readers/ontology-index.test.js +0 -245
- package/dist/core-runtime/readers/ontology-query.js +0 -168
- package/dist/core-runtime/readers/ontology-query.test.js +0 -311
- package/dist/core-runtime/readers/ontology-resolve.js +0 -48
- package/dist/core-runtime/readers/ontology-resolve.test.js +0 -48
- package/dist/core-runtime/readers/patterns/index.js +0 -7
- package/dist/core-runtime/readers/review-log.js +0 -213
- package/dist/core-runtime/readers/review-log.test.js +0 -313
- package/dist/core-runtime/readers/scan-local.js +0 -102
- package/dist/core-runtime/readers/scan-local.test.js +0 -102
- package/dist/core-runtime/readers/scan-tarball.js +0 -121
- package/dist/core-runtime/readers/scan-tarball.test.js +0 -283
- package/dist/core-runtime/readers/scan-vault.js +0 -34
- package/dist/core-runtime/readers/scan-vault.test.js +0 -81
- package/dist/core-runtime/readers/types.js +0 -42
- package/dist/core-runtime/readers/types.test.js +0 -94
- package/dist/core-runtime/readers/viewpoint-collectors.js +0 -229
- package/dist/core-runtime/reconstruct/seed-candidate-validation.js +0 -385
- package/dist/core-runtime/review/citation-audit.test.js +0 -165
- package/dist/core-runtime/review/execution-plan-resolver.js +0 -247
- package/dist/core-runtime/review/execution-plan-resolver.test.js +0 -243
- package/dist/core-runtime/review/execution-topology-resolver-axis-first.test.js +0 -246
- package/dist/core-runtime/review/execution-topology-resolver.js +0 -401
- package/dist/core-runtime/review/execution-topology-resolver.test.js +0 -315
- package/dist/core-runtime/review/inline-context-embedder.test.js +0 -154
- package/dist/core-runtime/review/legacy-mode-policy.js +0 -88
- package/dist/core-runtime/review/materializers-effort-persist.test.js +0 -79
- package/dist/core-runtime/review/ontology-path-classifier.js +0 -179
- package/dist/core-runtime/review/ontology-path-classifier.test.js +0 -216
- package/dist/core-runtime/review/packet-boundary-policy.test.js +0 -107
- package/dist/core-runtime/review/participating-lens-paths.test.js +0 -73
- package/dist/core-runtime/review/review-config-legacy-translate.js +0 -244
- package/dist/core-runtime/review/review-config-legacy-translate.test.js +0 -161
- package/dist/core-runtime/review/review-config-validator.js +0 -289
- package/dist/core-runtime/review/review-config-validator.test.js +0 -236
- package/dist/core-runtime/review/shape-pipeline-audit.test.js +0 -311
- package/dist/core-runtime/review/shape-to-topology-id.js +0 -117
- package/dist/core-runtime/review/shape-to-topology-id.test.js +0 -132
- package/dist/core-runtime/review/topology-shape-derivation.js +0 -155
- package/dist/core-runtime/review/topology-shape-derivation.test.js +0 -195
- package/dist/core-runtime/scope-runtime/constants.js +0 -12
- package/dist/core-runtime/scope-runtime/constraint-pool.js +0 -166
- package/dist/core-runtime/scope-runtime/constraint-pool.test.js +0 -674
- package/dist/core-runtime/scope-runtime/domain-validation-log.js +0 -135
- package/dist/core-runtime/scope-runtime/domain-validation-log.test.js +0 -156
- package/dist/core-runtime/scope-runtime/eval-persistence.js +0 -65
- package/dist/core-runtime/scope-runtime/eval-persistence.test.js +0 -84
- package/dist/core-runtime/scope-runtime/event-pipeline.js +0 -64
- package/dist/core-runtime/scope-runtime/event-pipeline.test.js +0 -450
- package/dist/core-runtime/scope-runtime/event-store.js +0 -39
- package/dist/core-runtime/scope-runtime/event-store.test.js +0 -95
- package/dist/core-runtime/scope-runtime/gate-guard.js +0 -348
- package/dist/core-runtime/scope-runtime/gate-guard.test.js +0 -1047
- package/dist/core-runtime/scope-runtime/hash.js +0 -4
- package/dist/core-runtime/scope-runtime/hash.test.js +0 -33
- package/dist/core-runtime/scope-runtime/id.js +0 -4
- package/dist/core-runtime/scope-runtime/id.test.js +0 -17
- package/dist/core-runtime/scope-runtime/reducer.js +0 -297
- package/dist/core-runtime/scope-runtime/reducer.test.js +0 -759
- package/dist/core-runtime/scope-runtime/scope-manager.js +0 -161
- package/dist/core-runtime/scope-runtime/state-machine.js +0 -309
- package/dist/core-runtime/scope-runtime/state-machine.test.js +0 -704
- package/dist/core-runtime/scope-runtime/types.js +0 -116
- package/dist/core-runtime/scope-runtime/types.test.js +0 -69
- package/dist/core-runtime/translate/render-for-user.js +0 -169
- package/dist/core-runtime/translate/render-for-user.test.js +0 -122
- package/dist/providers/capability-contract.js +0 -1
|
@@ -15,6 +15,8 @@ import { collectReviewInvocationArtifactRefs, prepareReviewInvocationRequest, ru
|
|
|
15
15
|
import { completeReviewSession } from "../core-runtime/cli/complete-review-session.js";
|
|
16
16
|
import { buildExecutorConfigFromRealization, } from "../core-runtime/cli/review-invoke.js";
|
|
17
17
|
import { executeReviewPromptExecution, } from "../core-runtime/cli/run-review-prompt-execution.js";
|
|
18
|
+
import { spawnRuntimeWatcherPane, } from "../core-runtime/cli/spawn-watcher.js";
|
|
19
|
+
import { appendRuntimeStatusEventSync, } from "../core-runtime/observability/runtime-stream-observation.js";
|
|
18
20
|
import { buildReviewPipelineExecutionLedger, } from "../core-runtime/review/pipeline-execution-ledger.js";
|
|
19
21
|
import { buildReviewContinuationPlan, } from "../core-runtime/review/continuation-plan.js";
|
|
20
22
|
export class ReviewContinuationError extends Error {
|
|
@@ -1766,6 +1768,7 @@ export function createOntoReviewCoreApi(options = {}) {
|
|
|
1766
1768
|
},
|
|
1767
1769
|
async runReview(request) {
|
|
1768
1770
|
await validateRequestedDomainForDispatch(request, ontoHome);
|
|
1771
|
+
const projectRoot = path.resolve(request.projectRoot);
|
|
1769
1772
|
const requestHash = requestHashForReviewInput(request);
|
|
1770
1773
|
const invocationId = `initial-${continuationAttemptId()}`;
|
|
1771
1774
|
let progressSequence = 0;
|
|
@@ -1801,6 +1804,23 @@ export function createOntoReviewCoreApi(options = {}) {
|
|
|
1801
1804
|
return;
|
|
1802
1805
|
sessionRootResolved = true;
|
|
1803
1806
|
resolveSessionRoot(resolved);
|
|
1807
|
+
appendRuntimeStatusEventSync({
|
|
1808
|
+
pipeline: "review",
|
|
1809
|
+
sessionRoot: resolved,
|
|
1810
|
+
sourceLabel: "onto.review",
|
|
1811
|
+
message: "review session observed",
|
|
1812
|
+
stageId: "start",
|
|
1813
|
+
});
|
|
1814
|
+
const watcherResult = spawnRuntimeWatcherPane(projectRoot, resolved, ontoHome);
|
|
1815
|
+
appendRuntimeStatusEventSync({
|
|
1816
|
+
pipeline: "review",
|
|
1817
|
+
sessionRoot: resolved,
|
|
1818
|
+
sourceLabel: "runtime-watcher",
|
|
1819
|
+
message: watcherResult.spawned
|
|
1820
|
+
? `watcher ${watcherResult.dry_run ? "detected" : "attached"} via ${watcherResult.mechanism}`
|
|
1821
|
+
: `watcher not attached: ${watcherResult.reason ?? "unknown reason"}`,
|
|
1822
|
+
stageId: "start",
|
|
1823
|
+
});
|
|
1804
1824
|
activeAttemptWrite = (async () => {
|
|
1805
1825
|
const executionPlan = await readOptionalYaml(path.join(resolved, "execution-plan.yaml"));
|
|
1806
1826
|
await writeActiveAttemptStarted({
|
|
@@ -1819,6 +1839,16 @@ export function createOntoReviewCoreApi(options = {}) {
|
|
|
1819
1839
|
const runnerProgressObserver = (event) => {
|
|
1820
1840
|
if (event.sessionRoot)
|
|
1821
1841
|
noteSessionRoot(event.sessionRoot);
|
|
1842
|
+
const runtimeSessionRoot = event.sessionRoot ?? observedSessionRoot;
|
|
1843
|
+
if (runtimeSessionRoot) {
|
|
1844
|
+
appendRuntimeStatusEventSync({
|
|
1845
|
+
pipeline: "review",
|
|
1846
|
+
sessionRoot: runtimeSessionRoot,
|
|
1847
|
+
sourceLabel: "onto.review",
|
|
1848
|
+
message: `${event.status}: ${event.message}`,
|
|
1849
|
+
stageId: event.phase,
|
|
1850
|
+
});
|
|
1851
|
+
}
|
|
1822
1852
|
const stage = event.phase === "prepare"
|
|
1823
1853
|
? "session_planned"
|
|
1824
1854
|
: event.phase === "execute"
|
|
@@ -2025,6 +2055,23 @@ export function createOntoReviewCoreApi(options = {}) {
|
|
|
2025
2055
|
expected: projectRoot,
|
|
2026
2056
|
actual: sessionMetadata.project_root,
|
|
2027
2057
|
});
|
|
2058
|
+
appendRuntimeStatusEventSync({
|
|
2059
|
+
pipeline: "review",
|
|
2060
|
+
sessionRoot: resolvedSessionRoot,
|
|
2061
|
+
sourceLabel: "onto.review_continue",
|
|
2062
|
+
message: "review continuation starting",
|
|
2063
|
+
stageId: "continue",
|
|
2064
|
+
});
|
|
2065
|
+
const continuationWatcherResult = spawnRuntimeWatcherPane(projectRoot, resolvedSessionRoot, ontoHome);
|
|
2066
|
+
appendRuntimeStatusEventSync({
|
|
2067
|
+
pipeline: "review",
|
|
2068
|
+
sessionRoot: resolvedSessionRoot,
|
|
2069
|
+
sourceLabel: "runtime-watcher",
|
|
2070
|
+
message: continuationWatcherResult.spawned
|
|
2071
|
+
? `watcher ${continuationWatcherResult.dry_run ? "detected" : "attached"} via ${continuationWatcherResult.mechanism}`
|
|
2072
|
+
: `watcher not attached: ${continuationWatcherResult.reason ?? "unknown reason"}`,
|
|
2073
|
+
stageId: "continue",
|
|
2074
|
+
});
|
|
2028
2075
|
const artifactRefs = await collectArtifactRefs(resolvedSessionRoot);
|
|
2029
2076
|
const executionPlan = await readOptionalYaml(path.join(resolvedSessionRoot, "execution-plan.yaml"));
|
|
2030
2077
|
if (!executionPlan) {
|
|
@@ -5,6 +5,7 @@ import path from "node:path";
|
|
|
5
5
|
import { spawn } from "node:child_process";
|
|
6
6
|
import { parseArgs } from "node:util";
|
|
7
7
|
import { pathToFileURL } from "node:url";
|
|
8
|
+
import { appendRuntimeStreamChunkSync, appendRuntimeStreamEventSync, } from "../observability/runtime-stream-observation.js";
|
|
8
9
|
function requireString(value, optionName) {
|
|
9
10
|
if (typeof value !== "string" || value.length === 0) {
|
|
10
11
|
throw new Error(`Missing required option --${optionName}`);
|
|
@@ -40,7 +41,7 @@ Authoritative prompt packet follows:
|
|
|
40
41
|
${packetText}
|
|
41
42
|
`;
|
|
42
43
|
}
|
|
43
|
-
async function runCodexWorker(projectRoot, boundedPrompt, outputPath, model, sandboxMode, reasoningEffort, configOverrides, unitId) {
|
|
44
|
+
async function runCodexWorker(projectRoot, boundedPrompt, outputPath, model, sandboxMode, reasoningEffort, configOverrides, unitId, unitKind, sessionRoot) {
|
|
44
45
|
const codexArgs = [
|
|
45
46
|
"exec",
|
|
46
47
|
"-C",
|
|
@@ -65,6 +66,22 @@ async function runCodexWorker(projectRoot, boundedPrompt, outputPath, model, san
|
|
|
65
66
|
cwd: projectRoot,
|
|
66
67
|
stdio: ["pipe", "pipe", "pipe"],
|
|
67
68
|
});
|
|
69
|
+
const runtimeSourceBase = {
|
|
70
|
+
kind: "process",
|
|
71
|
+
label: `codex:${unitId}`,
|
|
72
|
+
unitId,
|
|
73
|
+
stageId: unitKind,
|
|
74
|
+
};
|
|
75
|
+
const runtimeSource = child.pid !== undefined
|
|
76
|
+
? { ...runtimeSourceBase, processId: child.pid }
|
|
77
|
+
: runtimeSourceBase;
|
|
78
|
+
appendRuntimeStreamEventSync({
|
|
79
|
+
pipeline: "review",
|
|
80
|
+
sessionRoot,
|
|
81
|
+
source: runtimeSource,
|
|
82
|
+
stream: "status",
|
|
83
|
+
message: `codex worker started: ${unitKind} ${unitId}`,
|
|
84
|
+
});
|
|
68
85
|
// Real-time tee to disk: each codex stdout/stderr chunk is appended to
|
|
69
86
|
// the running log under the lens output directory so a watcher pane
|
|
70
87
|
// can `tail -f` it live. The in-memory buffers remain for final error
|
|
@@ -90,11 +107,23 @@ async function runCodexWorker(projectRoot, boundedPrompt, outputPath, model, san
|
|
|
90
107
|
stdout += String(chunk);
|
|
91
108
|
if (runningLogStream)
|
|
92
109
|
runningLogStream.write(chunk);
|
|
110
|
+
appendRuntimeStreamChunkSync({
|
|
111
|
+
pipeline: "review",
|
|
112
|
+
sessionRoot,
|
|
113
|
+
source: runtimeSource,
|
|
114
|
+
stream: "stdout",
|
|
115
|
+
}, chunk);
|
|
93
116
|
});
|
|
94
117
|
child.stderr.on("data", (chunk) => {
|
|
95
118
|
stderr += String(chunk);
|
|
96
119
|
if (runningLogStream)
|
|
97
120
|
runningLogStream.write(chunk);
|
|
121
|
+
appendRuntimeStreamChunkSync({
|
|
122
|
+
pipeline: "review",
|
|
123
|
+
sessionRoot,
|
|
124
|
+
source: runtimeSource,
|
|
125
|
+
stream: "stderr",
|
|
126
|
+
}, chunk);
|
|
98
127
|
});
|
|
99
128
|
child.stdin.write(boundedPrompt);
|
|
100
129
|
child.stdin.end();
|
|
@@ -109,6 +138,13 @@ async function runCodexWorker(projectRoot, boundedPrompt, outputPath, model, san
|
|
|
109
138
|
});
|
|
110
139
|
child.on("close", (code) => resolve(code ?? 1));
|
|
111
140
|
});
|
|
141
|
+
appendRuntimeStreamEventSync({
|
|
142
|
+
pipeline: "review",
|
|
143
|
+
sessionRoot,
|
|
144
|
+
source: runtimeSource,
|
|
145
|
+
stream: "status",
|
|
146
|
+
message: `codex worker exited: ${unitKind} ${unitId} code=${exitCode}`,
|
|
147
|
+
});
|
|
112
148
|
// Flush the stream before deciding cleanup so tail -f readers see final
|
|
113
149
|
// bytes. ENV-AFTER line is written before close for parse parity with
|
|
114
150
|
// the codex-nested running log.
|
|
@@ -186,6 +222,7 @@ export async function runCodexReviewUnitExecutorCli(argv) {
|
|
|
186
222
|
const projectRoot = path.resolve(requireString(values["project-root"], "project-root"));
|
|
187
223
|
const unitId = requireString(values["unit-id"], "unit-id");
|
|
188
224
|
const unitKind = requireString(values["unit-kind"], "unit-kind");
|
|
225
|
+
const sessionRoot = path.resolve(requireString(values["session-root"], "session-root"));
|
|
189
226
|
const packetPath = path.resolve(requireString(values["packet-path"], "packet-path"));
|
|
190
227
|
const outputPath = path.resolve(requireString(values["output-path"], "output-path"));
|
|
191
228
|
// Review Recovery PR-1 (R1 observability symmetry). The codex executor does
|
|
@@ -202,7 +239,7 @@ export async function runCodexReviewUnitExecutorCli(argv) {
|
|
|
202
239
|
const packetText = await fs.readFile(packetPath, "utf8");
|
|
203
240
|
const boundedPrompt = buildBoundedPrompt(packetPath, packetText, outputPath, unitId, unitKind);
|
|
204
241
|
await fs.mkdir(path.dirname(outputPath), { recursive: true });
|
|
205
|
-
await runCodexWorker(projectRoot, boundedPrompt, outputPath, values.model, values["sandbox-mode"], values["reasoning-effort"], values["config-override"], unitId);
|
|
242
|
+
await runCodexWorker(projectRoot, boundedPrompt, outputPath, values.model, values["sandbox-mode"], values["reasoning-effort"], values["config-override"], unitId, unitKind, sessionRoot);
|
|
206
243
|
const outputText = await fs.readFile(outputPath, "utf8");
|
|
207
244
|
if (outputText.trim().length === 0) {
|
|
208
245
|
throw new Error(`Codex executor produced empty output: ${outputPath}`);
|
|
@@ -46,8 +46,8 @@ export async function completeReviewSession(argv) {
|
|
|
46
46
|
return {
|
|
47
47
|
session_root: sessionRoot,
|
|
48
48
|
bounded_complete_steps: [
|
|
49
|
-
"
|
|
50
|
-
"
|
|
49
|
+
"render_review_final_output",
|
|
50
|
+
"assemble_review_record",
|
|
51
51
|
],
|
|
52
52
|
};
|
|
53
53
|
}
|
|
@@ -73,7 +73,7 @@ deliberation_status: performed
|
|
|
73
73
|
- Replace the mock executor with a real ContextIsolatedReasoningUnit realization.
|
|
74
74
|
|
|
75
75
|
### Recommendations
|
|
76
|
-
- Keep MCP review connected to
|
|
76
|
+
- Keep MCP review connected to the start-session -> prompt-execution -> completion runtime.
|
|
77
77
|
|
|
78
78
|
### Unique Finding Tagging
|
|
79
79
|
- mock-runner-generated
|
|
@@ -1634,14 +1634,14 @@ async function resolveReviewInvokeInputs(argv, ontoConfig, projectRoot, sessionI
|
|
|
1634
1634
|
}
|
|
1635
1635
|
if (!bundleRequested &&
|
|
1636
1636
|
(typeof requestedTarget !== "string" || requestedTarget.length === 0)) {
|
|
1637
|
-
throw new Error("Missing review target.
|
|
1637
|
+
throw new Error("Missing review target. Pass <target> \"<intent>\" or pass --requested-target.");
|
|
1638
1638
|
}
|
|
1639
1639
|
const MAX_REQUEST_TEXT_LENGTH = 2000;
|
|
1640
1640
|
let requestText = readSingleOptionValueFromArgv(argv, "request-text") ??
|
|
1641
1641
|
readSingleOptionValueFromArgv(argv, "intent-summary") ??
|
|
1642
1642
|
parsedPositionals.intentText;
|
|
1643
1643
|
if (typeof requestText !== "string" || requestText.length === 0) {
|
|
1644
|
-
throw new Error("Missing review intent.
|
|
1644
|
+
throw new Error("Missing review intent. Pass <target> \"<intent>\" or pass --request-text.");
|
|
1645
1645
|
}
|
|
1646
1646
|
if (requestText.length > MAX_REQUEST_TEXT_LENGTH) {
|
|
1647
1647
|
console.warn(`[onto] Request text truncated from ${requestText.length} to ${MAX_REQUEST_TEXT_LENGTH} characters.`);
|
|
@@ -1948,14 +1948,14 @@ function rejectRemovedFlags(argv) {
|
|
|
1948
1948
|
throwRetiredInput("--max-concurrent-lenses", "--max-concurrent-lenses is not supported. Review runs all selected lenses in parallel.");
|
|
1949
1949
|
}
|
|
1950
1950
|
if (hasOptionFlag(argv, "claude")) {
|
|
1951
|
-
throwRetiredInput("--claude", "--claude is not supported by review
|
|
1951
|
+
throwRetiredInput("--claude", "--claude is not supported by the review runtime. Use the MCP review path or project settings.");
|
|
1952
1952
|
}
|
|
1953
1953
|
for (const removed of ["host-runtime", "execution-realization", "execution-mode"]) {
|
|
1954
1954
|
const optionToken = `--${removed}`;
|
|
1955
1955
|
const present = hasOptionFlag(argv, removed) ||
|
|
1956
1956
|
argv.some((token) => token.startsWith(`${optionToken}=`));
|
|
1957
1957
|
if (present) {
|
|
1958
|
-
throwRetiredInput(optionToken, `--${removed} is not supported by review
|
|
1958
|
+
throwRetiredInput(optionToken, `--${removed} is not supported by the review runtime. Use .onto/settings.json for execution profile selection.`);
|
|
1959
1959
|
}
|
|
1960
1960
|
}
|
|
1961
1961
|
}
|
|
@@ -2108,7 +2108,7 @@ export async function runReviewInvokeCli(argv) {
|
|
|
2108
2108
|
console.log(`[review runner] live watcher ${action} ${watcherResult.mechanism}`);
|
|
2109
2109
|
}
|
|
2110
2110
|
else {
|
|
2111
|
-
console.log(`[review runner] live progress: open another terminal and run \`
|
|
2111
|
+
console.log(`[review runner] live progress: open another terminal and run \`bash scripts/onto-review-watch.sh "${sessionRoot}"\`` +
|
|
2112
2112
|
(watcherResult.reason ? ` (${watcherResult.reason})` : ""));
|
|
2113
2113
|
}
|
|
2114
2114
|
}
|
|
@@ -2157,9 +2157,9 @@ export async function runReviewInvokeCli(argv) {
|
|
|
2157
2157
|
console.log("[review invoke] completed 3/3 record assembly");
|
|
2158
2158
|
const reviewSummary = await readOptionalReviewSummary(sessionRoot);
|
|
2159
2159
|
const boundedInvokeSteps = [
|
|
2160
|
-
"
|
|
2161
|
-
"
|
|
2162
|
-
"
|
|
2160
|
+
"start_review_session",
|
|
2161
|
+
"run_review_prompt_execution",
|
|
2162
|
+
"complete_review_session",
|
|
2163
2163
|
];
|
|
2164
2164
|
const finalRoute = buildReviewExecutionRoute(effectiveReviewExecutionProfile);
|
|
2165
2165
|
const routeProfile = {
|
|
@@ -2169,7 +2169,7 @@ export async function runReviewInvokeCli(argv) {
|
|
|
2169
2169
|
review_execution_profile: effectiveReviewExecutionProfile,
|
|
2170
2170
|
};
|
|
2171
2171
|
const routeSummary = {
|
|
2172
|
-
combined_entrypoint: "
|
|
2172
|
+
combined_entrypoint: "review_invocation",
|
|
2173
2173
|
bounded_invoke_steps: [...boundedInvokeSteps],
|
|
2174
2174
|
execution_realization: routeProfile.execution_realization,
|
|
2175
2175
|
host_runtime: routeProfile.host_runtime,
|
|
@@ -15,6 +15,7 @@ import { printOntoReleaseChannelNotice } from "../release-channel/release-channe
|
|
|
15
15
|
import { executeReviewViaCodexNested } from "./codex-nested-dispatch.js";
|
|
16
16
|
import { ReviewStructuredFailureError, writeAndThrowStructuredFailureRecord, } from "../review/failure-records.js";
|
|
17
17
|
import { assertReviewExecutionPlanSessionBoundary, } from "../review/execution-plan-boundary.js";
|
|
18
|
+
import { appendRuntimeStreamChunkSync, appendRuntimeStreamEventSync, } from "../observability/runtime-stream-observation.js";
|
|
18
19
|
function errorMessage(error) {
|
|
19
20
|
return error instanceof Error ? error.message : String(error);
|
|
20
21
|
}
|
|
@@ -128,11 +129,9 @@ function requireString(value, optionName) {
|
|
|
128
129
|
/** Default stagger delay between successive lens dispatches (ms).
|
|
129
130
|
* Spreads initial burst to avoid thundering-herd on the external API. */
|
|
130
131
|
function defaultStaggerDelayMsForExecutorConfig(executorConfig) {
|
|
131
|
-
if (executorConfig.
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
return 1500;
|
|
135
|
-
}
|
|
132
|
+
if (executorConfig.args.some((arg) => arg.includes("codex-review-unit-executor"))) {
|
|
133
|
+
// codex executor spawns an external process -> API request per lens
|
|
134
|
+
return 1500;
|
|
136
135
|
}
|
|
137
136
|
return 0;
|
|
138
137
|
}
|
|
@@ -258,13 +257,41 @@ async function invokeExecutor(executorConfig, projectRoot, sessionRoot, dispatch
|
|
|
258
257
|
...(process.env.ONTO_HOME ? { ONTO_HOME: process.env.ONTO_HOME } : {}),
|
|
259
258
|
},
|
|
260
259
|
});
|
|
260
|
+
const runtimeSourceBase = {
|
|
261
|
+
kind: "process",
|
|
262
|
+
label: `${dispatch.unit_kind}:${dispatch.unit_id}`,
|
|
263
|
+
unitId: dispatch.unit_id,
|
|
264
|
+
stageId: dispatch.unit_kind,
|
|
265
|
+
};
|
|
266
|
+
const runtimeSource = child.pid !== undefined
|
|
267
|
+
? { ...runtimeSourceBase, processId: child.pid }
|
|
268
|
+
: runtimeSourceBase;
|
|
269
|
+
appendRuntimeStreamEventSync({
|
|
270
|
+
pipeline: "review",
|
|
271
|
+
sessionRoot,
|
|
272
|
+
source: runtimeSource,
|
|
273
|
+
stream: "status",
|
|
274
|
+
message: `executor started: ${dispatch.unit_kind} ${dispatch.unit_id}`,
|
|
275
|
+
});
|
|
261
276
|
let stdout = "";
|
|
262
277
|
let stderr = "";
|
|
263
278
|
child.stdout.on("data", (chunk) => {
|
|
264
279
|
stdout += String(chunk);
|
|
280
|
+
appendRuntimeStreamChunkSync({
|
|
281
|
+
pipeline: "review",
|
|
282
|
+
sessionRoot,
|
|
283
|
+
source: runtimeSource,
|
|
284
|
+
stream: "stdout",
|
|
285
|
+
}, chunk);
|
|
265
286
|
});
|
|
266
287
|
child.stderr.on("data", (chunk) => {
|
|
267
288
|
stderr += String(chunk);
|
|
289
|
+
appendRuntimeStreamChunkSync({
|
|
290
|
+
pipeline: "review",
|
|
291
|
+
sessionRoot,
|
|
292
|
+
source: runtimeSource,
|
|
293
|
+
stream: "stderr",
|
|
294
|
+
}, chunk);
|
|
268
295
|
});
|
|
269
296
|
let timedOut = false;
|
|
270
297
|
let forceKillTimer = null;
|
|
@@ -302,6 +329,13 @@ async function invokeExecutor(executorConfig, projectRoot, sessionRoot, dispatch
|
|
|
302
329
|
resolve(code ?? 1);
|
|
303
330
|
});
|
|
304
331
|
});
|
|
332
|
+
appendRuntimeStreamEventSync({
|
|
333
|
+
pipeline: "review",
|
|
334
|
+
sessionRoot,
|
|
335
|
+
source: runtimeSource,
|
|
336
|
+
stream: "status",
|
|
337
|
+
message: `executor exited: ${dispatch.unit_kind} ${dispatch.unit_id} code=${exitCode}`,
|
|
338
|
+
});
|
|
305
339
|
if (timedOut) {
|
|
306
340
|
await removeFileIfExists(dispatch.output_path);
|
|
307
341
|
throw new ReviewUnitTimeoutError(dispatch.unit_id, timeoutMs);
|