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
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Onto MCP
|
|
2
2
|
|
|
3
3
|
`onto-mcp` is the TypeScript product core for ontology-as-code review. The
|
|
4
|
-
public interface is MCP-native; repository-local
|
|
5
|
-
|
|
4
|
+
public interface is MCP-native; repository-local verification harnesses are
|
|
5
|
+
internal and are not product entrypoints.
|
|
6
6
|
|
|
7
7
|
```text
|
|
8
8
|
.onto contracts and domain documents
|
|
@@ -34,19 +34,30 @@ cross-process goal contract lives at
|
|
|
34
34
|
7. `ReviewRecord` assembly
|
|
35
35
|
8. concise human-readable final output
|
|
36
36
|
|
|
37
|
-
`reconstruct`
|
|
38
|
-
`.onto/processes/reconstruct/`,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
37
|
+
`reconstruct` is the next active productization slice. It has active contracts
|
|
38
|
+
under `.onto/processes/reconstruct/`, MCP/direct-call wiring, material-aware
|
|
39
|
+
runtime helpers, and a bounded integral runner. Code is the first partially
|
|
40
|
+
wired runtime profile. Spreadsheet, document, and database profiles are
|
|
41
|
+
contract-active but runtime-planned until their adapters are implemented; mixed
|
|
42
|
+
targets are partial-composite only. The current runner classifies target
|
|
43
|
+
material, expands supported directory targets into per-member source
|
|
44
|
+
observations, writes the initial source frontier, runs reconstruct lens
|
|
45
|
+
judgments and exploration synthesis through a configured LLM provider, validates
|
|
46
|
+
available evidence refs, computes deterministic metrics, and writes
|
|
47
|
+
`reconstruct-run-manifest.yaml`. It emits `final-output.md` and the primary
|
|
48
|
+
`reconstruct-record.yaml` only through the validated handoff path after
|
|
49
|
+
`handoff-decision-validation.yaml` and
|
|
50
|
+
`reconstruct-run-manifest.pre-handoff-validation.yaml` pass; otherwise terminal
|
|
51
|
+
projection must be blocked or limitation-backed. The final
|
|
52
|
+
`reconstruct-run-manifest.post-publication-validation.yaml` is a post-publication audit for the
|
|
53
|
+
complete manifest after final output and record refs exist. The
|
|
54
|
+
current public run path defaults to
|
|
47
55
|
`direct_call` semantic authoring and host-mediated confirmation. It fails loud
|
|
48
|
-
when provider/model/credentials, LLM-authored artifact shape,
|
|
49
|
-
are invalid
|
|
56
|
+
when provider/model/credentials, LLM-authored artifact shape, unsupported
|
|
57
|
+
material, or runtime gates are invalid. Optional reconstruct `domain` input
|
|
58
|
+
admits that domain's `competency_qs.md` into the run governing snapshot for
|
|
59
|
+
domain competency trace validation; there is no separate active
|
|
60
|
+
domain competency selection artifact.
|
|
50
61
|
`evolve` has a future material-kind adapter contract at
|
|
51
62
|
`.onto/processes/evolve/material-kind-adapter-contract.md`, but no active
|
|
52
63
|
runtime or MCP tool. `learn` and `govern` remain separate design slices.
|
|
@@ -65,6 +76,36 @@ Start the MCP server:
|
|
|
65
76
|
onto mcp
|
|
66
77
|
```
|
|
67
78
|
|
|
79
|
+
### Register with hosts
|
|
80
|
+
|
|
81
|
+
`npm install` only puts the `onto` binary on PATH — each MCP host (Claude Code,
|
|
82
|
+
Codex, Claude Desktop, Cursor) must additionally be told to launch it. `onto
|
|
83
|
+
register` does that in one step. The same global binary is shared by every host.
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
onto register # interactive: pick detected hosts (terminal only)
|
|
87
|
+
onto register --all --yes # non-interactive: every detected host
|
|
88
|
+
onto register --hosts cursor,codex --yes
|
|
89
|
+
onto register --list # show detection status, write nothing
|
|
90
|
+
onto register --hosts cursor --dry-run # preview the change, write nothing
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Mechanism per host:
|
|
94
|
+
|
|
95
|
+
| Host | How it is registered |
|
|
96
|
+
|---|---|
|
|
97
|
+
| Claude Code | `claude mcp add onto -s user -- onto mcp` (user scope = all projects) |
|
|
98
|
+
| Codex CLI | `codex mcp add onto -- onto mcp` |
|
|
99
|
+
| Claude Desktop | edits `mcpServers.onto` in `claude_desktop_config.json` |
|
|
100
|
+
| Cursor | edits `mcpServers.onto` in `~/.cursor/mcp.json` |
|
|
101
|
+
|
|
102
|
+
For the CLI-backed hosts, `onto register` prefers the official CLI and falls back
|
|
103
|
+
to printing manual instructions when it is not on PATH. JSON edits preserve any
|
|
104
|
+
servers already present and are idempotent (re-running reports `skipped`).
|
|
105
|
+
Registration writes only host-owned config; it never writes onto runtime data.
|
|
106
|
+
Restart the host app after registering to pick up the new server. Override the
|
|
107
|
+
launched command or server name with `--command <cmd>` / `--name <id>`.
|
|
108
|
+
|
|
68
109
|
For project-local installs, add `onto-mcp` to the project and run the local
|
|
69
110
|
binary:
|
|
70
111
|
|
|
@@ -86,7 +127,7 @@ Available MCP tools:
|
|
|
86
127
|
| `onto.list_domains` | List available domain ids |
|
|
87
128
|
| `onto.list_source_profiles` | List reconstruct source profiles |
|
|
88
129
|
| `onto.observe_source` | Materialize reconstruct material profile, inventory, source observations, and initial record |
|
|
89
|
-
| `onto.validate_reconstruct_directive` | Validate LLM-authored reconstruct
|
|
130
|
+
| `onto.validate_reconstruct_directive` | Validate LLM-authored reconstruct artifacts |
|
|
90
131
|
| `onto.reconstruct` | Run the material-aware direct-call reconstruct path with runtime validation gates |
|
|
91
132
|
| `onto.reconstruct_status` | Read reconstruct session status, progress, counts, and artifact refs |
|
|
92
133
|
| `onto.reconstruct_result` | Read `reconstruct-record.yaml`, run manifest, progress projection, and final output |
|
|
@@ -95,6 +136,20 @@ MCP results include `llmPresentation` prompts. The runtime supplies bounded
|
|
|
95
136
|
facts; the host LLM should use those prompts to explain the opening brief and
|
|
96
137
|
final result to the user without inventing settings or findings.
|
|
97
138
|
|
|
139
|
+
When `onto.review`, `onto.review_continue`, or `onto.reconstruct` starts, the
|
|
140
|
+
runtime writes a session-local `runtime-events.ndjson` stream and tries to open
|
|
141
|
+
`scripts/onto-runtime-watch.sh` in a supported terminal split/tab. Current
|
|
142
|
+
automatic attach targets are `tmux`, Codex Desktop with a configured launcher
|
|
143
|
+
path, Warp, Cursor, iTerm2, and Apple Terminal. Codex Desktop attach never uses
|
|
144
|
+
UI keystroke automation by default; set
|
|
145
|
+
`ONTO_RUNTIME_WATCHER_CODEX_APP_LAUNCHER=/absolute/path/to/launcher.sh` to
|
|
146
|
+
enable it. The launcher receives `watcherScript`, `sessionRoot`, `projectRoot`,
|
|
147
|
+
and `watcherCommand` as positional arguments. Unsupported hosts can set
|
|
148
|
+
`ONTO_RUNTIME_WATCHER_COMMAND` with a launcher template containing
|
|
149
|
+
`{watcherCommand}`. Each stream line is source-tagged by pipeline,
|
|
150
|
+
unit/stage/process, and stdout/stderr/status. Set `ONTO_RUNTIME_WATCHER=0` to
|
|
151
|
+
disable the automatic terminal attach.
|
|
152
|
+
|
|
98
153
|
Minimal reconstruct MCP call shape:
|
|
99
154
|
|
|
100
155
|
```json
|
|
@@ -104,6 +159,7 @@ Minimal reconstruct MCP call shape:
|
|
|
104
159
|
"projectRoot": "/path/to/project",
|
|
105
160
|
"targetRefs": ["src/example.ts"],
|
|
106
161
|
"intent": "Create a bounded reconstruct Seed from this target.",
|
|
162
|
+
"domain": "ontology",
|
|
107
163
|
"sessionRoot": ".onto/reconstruct/example-run"
|
|
108
164
|
}
|
|
109
165
|
}
|
|
@@ -114,36 +170,9 @@ Minimal reconstruct MCP call shape:
|
|
|
114
170
|
with an `llm` provider/model before running. Test-only mock helpers are not
|
|
115
171
|
product completion evidence.
|
|
116
172
|
|
|
117
|
-
Repository-local development harness:
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
npm run review:invoke -- <target> "<intent>"
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
`review:invoke` prints a structured start preview before execution begins:
|
|
124
|
-
|
|
125
|
-
- review target and filesystem boundary
|
|
126
|
-
- request intent
|
|
127
|
-
- selected domain and selection mode
|
|
128
|
-
- review mode and lens ids
|
|
129
|
-
- execution mode, seats, deliberation mode, concurrency
|
|
130
|
-
- model auth/provider/model/effort/service tier
|
|
131
|
-
- settings locations and MCP/dev-harness override points
|
|
132
|
-
|
|
133
|
-
During execution, the runner prints numbered progress markers for the bounded
|
|
134
|
-
review stages. At completion, it prints a structured result overview:
|
|
135
|
-
|
|
136
|
-
- outcome status and deliberation status
|
|
137
|
-
- target/domain/review mode
|
|
138
|
-
- planned, participating, and degraded lens counts
|
|
139
|
-
- comprehensive `Final Review Result` explanation from synthesize
|
|
140
|
-
- issue count plus severity/timing/closure classification
|
|
141
|
-
- top problem definitions from `problem-framing.yaml`
|
|
142
|
-
- primary artifact paths
|
|
143
|
-
|
|
144
173
|
For MCP clients, prefer the `llmPresentation.openingBrief` and
|
|
145
|
-
`llmPresentation.finalResult` prompt/input pairs
|
|
146
|
-
|
|
174
|
+
`llmPresentation.finalResult` prompt/input pairs when presenting start and
|
|
175
|
+
finish explanations.
|
|
147
176
|
|
|
148
177
|
Runtime hardening is available as a development verification harness:
|
|
149
178
|
|
|
@@ -235,53 +264,84 @@ Primary outputs:
|
|
|
235
264
|
|
|
236
265
|
A reconstruct session writes artifacts under `.onto/reconstruct/<session-id>/`.
|
|
237
266
|
|
|
238
|
-
|
|
267
|
+
Target runtime-gated outputs below are a non-authoritative quick map. The active
|
|
268
|
+
artifact and gate catalog authority is
|
|
269
|
+
`.onto/processes/reconstruct/reconstruct-contract-registry.yaml`.
|
|
239
270
|
|
|
240
271
|
| Artifact | Owner | Purpose |
|
|
241
272
|
|---|---|---|
|
|
242
273
|
| `target-material-profile.yaml` | runtime | detected `target_material_kind`, support status, and selected source profiles |
|
|
274
|
+
| `target-material-profile-validation.yaml` | runtime | material profile gate status and selected-profile closure |
|
|
243
275
|
| `source-inventory.yaml` | runtime | material-specific inventory units and scan boundary |
|
|
244
|
-
| `
|
|
245
|
-
| `source-observations.yaml` | runtime | structural observations with stable evidence ids |
|
|
276
|
+
| `source-observations.yaml` | runtime | structural observations with stable evidence ids and source content fingerprints |
|
|
246
277
|
| `source-observation-directive.yaml` | host LLM author | selected observations for evidence use |
|
|
247
278
|
| `source-observation-directive-validation.yaml` | runtime | validation of selected observation refs |
|
|
279
|
+
| `*.reuse-provenance.yaml` | runtime | sidecar proof that same-session resume reuses authored YAML only when invocation, source, governing snapshot, and artifact hash match |
|
|
248
280
|
| `rounds/<round-id>/lens-judgments/*.yaml` | host LLM author | reconstruct lens judgments over trusted observations |
|
|
249
281
|
| `rounds/<round-id>/exploration-synthesis.yaml` | host LLM author | integrated gaps and next-source needs |
|
|
250
282
|
| `rounds/<round-id>/source-frontier.yaml` | host LLM author | requested next source refs or no-next-frontier rationale |
|
|
251
|
-
| `rounds/<round-id>/source-frontier-validation.yaml` | runtime |
|
|
252
|
-
| `
|
|
253
|
-
| `
|
|
254
|
-
| `
|
|
255
|
-
| `
|
|
256
|
-
| `seed-
|
|
257
|
-
| `
|
|
258
|
-
| `
|
|
259
|
-
| `competency-questions
|
|
260
|
-
| `competency-
|
|
261
|
-
| `competency-question-assessment
|
|
283
|
+
| `rounds/<round-id>/source-frontier-validation.yaml` | runtime | frontier validation plus explicit dependency proof on `target-material-profile-validation.yaml` |
|
|
284
|
+
| `candidate-inventory.yaml` | host LLM author | salient object, actor, action, workflow, permission, data source, constraint, and concept candidates |
|
|
285
|
+
| `candidate-disposition.yaml` | host LLM author | one disposition for every salient candidate, including planned target seed refs for promoted candidates |
|
|
286
|
+
| `candidate-disposition-validation.yaml` | runtime | inventory/disposition closure and projection validation |
|
|
287
|
+
| `ontology-seed.yaml` | host LLM author | primary actionable ontology seed |
|
|
288
|
+
| `ontology-seed-validation.yaml` | runtime | seed layer, id, binding, disposition, and evidence-ref validation |
|
|
289
|
+
| `claim-realization-map.yaml` | host LLM author | one realization stance for every ontology seed claim |
|
|
290
|
+
| `claim-realization-map-validation.yaml` | runtime | seed-claim closure and realization evidence validation |
|
|
291
|
+
| `competency-questions.yaml` | host LLM author | questions linked to the declared purpose, seed layers, registry facets, proof-contract refs, admitted domain competency ids, and diagnostic/claim-based dispositions |
|
|
292
|
+
| `competency-questions-validation.yaml` | runtime | question id, derived evidence scope, seed-link, evidence, registry facet/proof refs, exactly-one admitted domain competency coverage, and run-manifest admitted domain trace validation |
|
|
293
|
+
| `competency-question-assessment.yaml` | host LLM author + runtime projections | answer status, required seed refs, evidence refs, and downstream effect for every authoritative CQ |
|
|
294
|
+
| `competency-question-assessment-validation.yaml` | runtime | exactly-once CQ assessment validation plus answer-status/downstream-effect and seed/evidence closure |
|
|
295
|
+
| `seed-confirmation.yaml` | host/user mediated | confirmation or limitation decision over validated seed claims before CQ authoring |
|
|
296
|
+
| `seed-confirmation-validation.yaml` | runtime | confirmation closure and CQ eligibility over the validated seed; terminal readiness is owned by `handoff-decision-validation.yaml` |
|
|
262
297
|
| `failure-classification.yaml` | host LLM author | material failure and gap classification |
|
|
263
298
|
| `failure-classification-validation.yaml` | runtime | failure enum, linkage, and materiality validation |
|
|
264
299
|
| `revision-proposal.yaml` | host LLM author | bounded revision/deferral proposals |
|
|
265
300
|
| `revision-proposal-validation.yaml` | runtime | proposal id, target, action, and regression guard validation |
|
|
266
|
-
| `reconstruct-metrics.yaml` | runtime | deterministic counts, unresolved/deferred counts, and pass rate |
|
|
267
|
-
| `stop-decision.yaml` | host LLM author | stop
|
|
268
|
-
| `
|
|
269
|
-
| `
|
|
301
|
+
| `reconstruct-metrics.yaml` | runtime | deterministic counts, answerability bucket counts, unresolved/deferred counts, and pass rate |
|
|
302
|
+
| `stop-decision.yaml` | host LLM author | proposed stop/continue/ask-user decision; not the readiness authority |
|
|
303
|
+
| `handoff-decision-validation.yaml` | runtime | canonical readiness projection from runtime gates plus `stop-decision.yaml` consistency before final output and record projection |
|
|
304
|
+
| `final-output.md` | host LLM author + runtime footer | user-facing result grounded in artifacts, seed validity, and handoff limitations |
|
|
305
|
+
| `reconstruct-run-manifest.yaml` | runtime | step refs, `performed_by` provenance, execution profile, requested domain ids, and happy-path scope |
|
|
306
|
+
| `reconstruct-run-manifest.post-publication-validation.yaml` | runtime | post-publication registry hash, active contract hash, source profile migration, validator, reference-standard, pattern-catalog URI/snapshot, version, and migration snapshot consistency after final output and record refs exist |
|
|
270
307
|
| `reconstruct-record.yaml` | runtime | primary structured reconstruct artifact |
|
|
271
308
|
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
309
|
+
The runtime keeps full source evidence in `source-observations.yaml`. LLM
|
|
310
|
+
authoring calls may receive compact prompt projections, such as selected
|
|
311
|
+
observations with shortened text excerpts, while validation still checks all
|
|
312
|
+
generated evidence refs against the full artifact truth.
|
|
313
|
+
Terminal projection uses `handoff-decision-validation.yaml.readiness_projection`
|
|
314
|
+
as the readiness authority and requires both validated handoff and a validated
|
|
315
|
+
pre-handoff run-manifest snapshot. The final
|
|
316
|
+
`reconstruct-run-manifest.post-publication-validation.yaml` is the post-publication audit for the
|
|
317
|
+
complete manifest after `final-output.md` and `reconstruct-record.yaml` refs are
|
|
318
|
+
known; it is not a prerequisite for the pre-handoff readiness projection. The
|
|
319
|
+
same artifact records `gate_projection[]`, where each
|
|
320
|
+
active gate is evaluated through the registry `required_when_predicate_catalog`
|
|
321
|
+
before validation status is required.
|
|
322
|
+
|
|
323
|
+
Contract-planned conditional proof authorities are not emitted by the current
|
|
324
|
+
runtime until their validator surfaces are implemented:
|
|
325
|
+
|
|
326
|
+
| planned artifact | planned authority |
|
|
327
|
+
|---|---|
|
|
328
|
+
| `rounds/<round-id>/source-observation-delta.yaml` / `rounds/<round-id>/source-observation-delta-validation.yaml` | multi-round observation lineage before newly observed frontier evidence is used |
|
|
329
|
+
| `rounds/<round-id>/source-observation-reentry-validation.yaml` | post-use re-entry validation for frontier-triggered observations cited downstream |
|
|
330
|
+
| `query-proofs.yaml` / `query-proofs-validation.yaml` | executable query/API proof rows when queryability or implementation access is claimed |
|
|
331
|
+
| `visualization-proofs.yaml` / `visualization-proofs-validation.yaml` | visualization surface proof rows when static or overview visualization is claimed |
|
|
332
|
+
| `graph-exploration-proofs.yaml` / `graph-exploration-proofs-validation.yaml` | graph navigation/exploration proof rows when traversal or large-graph exploration is claimed |
|
|
333
|
+
| `required-when-evaluation.yaml` / `required-when-evaluation-validation.yaml` | standalone audited conditional-gate applicability trace; the current terminal handoff projection embeds predicate input/result details in `handoff-decision-validation.yaml.gate_projection[]` |
|
|
334
|
+
| `ontology-handoff mapping proof` | per-axis ontology handoff mapping gate once that validator is implemented |
|
|
335
|
+
|
|
336
|
+
The active seed target is defined by
|
|
337
|
+
`.onto/processes/reconstruct/foundry-style-ontology-seed-contract.md`.
|
|
338
|
+
The full recomposition plan is
|
|
339
|
+
`.onto/processes/reconstruct/actionable-ontology-seed-recomposition-design.md`.
|
|
340
|
+
The active contract, source profile, lens judgment, artifact, gate, readiness, and
|
|
341
|
+
projection authority registry is
|
|
342
|
+
`.onto/processes/reconstruct/reconstruct-contract-registry.yaml`.
|
|
343
|
+
The seed is valid only when process completion, seed validation, downstream
|
|
344
|
+
gates, and handoff limitations are reported separately and consistently.
|
|
285
345
|
|
|
286
346
|
## Repository Map
|
|
287
347
|
|
|
@@ -305,6 +365,5 @@ npm run check:ts-core
|
|
|
305
365
|
npm run build:ts-core
|
|
306
366
|
npm run test:mcp:review
|
|
307
367
|
npm run test:review:hardening
|
|
308
|
-
npm run test:e2e
|
|
309
368
|
git diff --check
|
|
310
369
|
```
|
package/dist/cli.js
CHANGED
|
@@ -7,8 +7,7 @@ import { readOntoVersion } from "./core-runtime/release-channel/release-channel.
|
|
|
7
7
|
* Public binary surface for the MCP-native product.
|
|
8
8
|
*
|
|
9
9
|
* Product tools are exposed through MCP (`onto mcp`). Review and other
|
|
10
|
-
* runtime flows are no longer public `onto <activity>` CLI commands.
|
|
11
|
-
* `npm run review:*` scripts remain internal development harnesses.
|
|
10
|
+
* runtime flows are no longer public `onto <activity>` CLI commands.
|
|
12
11
|
*/
|
|
13
12
|
function loadOntoEnvFile(filePath) {
|
|
14
13
|
if (!fs.existsSync(filePath))
|
|
@@ -35,10 +34,11 @@ function loadOntoEnvFile(filePath) {
|
|
|
35
34
|
}
|
|
36
35
|
function printHelp() {
|
|
37
36
|
console.log([
|
|
38
|
-
"Usage: onto
|
|
37
|
+
"Usage: onto <command>",
|
|
39
38
|
"",
|
|
40
39
|
"Active interface:",
|
|
41
40
|
" mcp Start the MCP stdio tool server",
|
|
41
|
+
" register Register the onto MCP server into supported hosts",
|
|
42
42
|
"",
|
|
43
43
|
"Available MCP tools:",
|
|
44
44
|
" onto.review",
|
|
@@ -54,9 +54,6 @@ function printHelp() {
|
|
|
54
54
|
" onto.reconstruct_status",
|
|
55
55
|
" onto.reconstruct_result",
|
|
56
56
|
"",
|
|
57
|
-
"Development harness:",
|
|
58
|
-
" npm run review:invoke -- <target> \"<intent>\"",
|
|
59
|
-
"",
|
|
60
57
|
"Options:",
|
|
61
58
|
" --version, -v Show version",
|
|
62
59
|
" --help, -h Show this help",
|
|
@@ -65,8 +62,7 @@ function printHelp() {
|
|
|
65
62
|
function unsupportedCommandMessage(subcommand) {
|
|
66
63
|
return [
|
|
67
64
|
`[onto] Unsupported public CLI subcommand: ${subcommand}`,
|
|
68
|
-
"Active public
|
|
69
|
-
"Development harness: npm run review:invoke -- <target> \"<intent>\"",
|
|
65
|
+
"Active public commands: onto mcp, onto register",
|
|
70
66
|
].join("\n");
|
|
71
67
|
}
|
|
72
68
|
async function main() {
|
|
@@ -79,6 +75,10 @@ async function main() {
|
|
|
79
75
|
const { startMcpServer } = await import("./mcp/server.js");
|
|
80
76
|
return startMcpServer();
|
|
81
77
|
}
|
|
78
|
+
case "register": {
|
|
79
|
+
const { runRegister } = await import("./core-runtime/onboard/register.js");
|
|
80
|
+
return runRegister(argv.slice(1));
|
|
81
|
+
}
|
|
82
82
|
case "--version":
|
|
83
83
|
case "-v": {
|
|
84
84
|
const version = await readOntoVersion();
|
|
@@ -4,14 +4,19 @@ import path from "node:path";
|
|
|
4
4
|
import { parse as parseYaml } from "yaml";
|
|
5
5
|
import { RECONSTRUCT_STAGE_IDS, } from "../core-runtime/reconstruct/artifact-types.js";
|
|
6
6
|
import { materializeReconstructPreparationArtifacts, } from "../core-runtime/reconstruct/materialize-preparation.js";
|
|
7
|
+
import { writeTargetMaterialProfileValidationArtifact, } from "../core-runtime/reconstruct/material-profile-validation.js";
|
|
7
8
|
import { assembleReconstructRecord, } from "../core-runtime/reconstruct/record.js";
|
|
8
9
|
import { createAutoAcceptReconstructConfirmationProvider, createDirectCallReconstructConfirmationProvider, createDirectCallReconstructDirectiveAuthor, createMockReconstructDirectiveAuthor, runReconstruct, } from "../core-runtime/reconstruct/run.js";
|
|
9
10
|
import { resolveSettingsChain, } from "../core-runtime/discovery/settings-chain.js";
|
|
11
|
+
import { resolveOntoHome, } from "../core-runtime/discovery/onto-home.js";
|
|
10
12
|
import { resolveLlmProviderConfig, } from "../core-runtime/llm/llm-caller.js";
|
|
11
|
-
import {
|
|
13
|
+
import { writeActionableOntologySeedValidationArtifact, writeCandidateDispositionValidationArtifact, } from "../core-runtime/reconstruct/actionable-seed-validation.js";
|
|
12
14
|
import { writeSourceObservationDirectiveValidationArtifact, } from "../core-runtime/reconstruct/directive-validation.js";
|
|
13
15
|
import { loadReconstructSourceProfiles, } from "../core-runtime/reconstruct/source-profiles.js";
|
|
16
|
+
import { assertReconstructDomainId, } from "../core-runtime/reconstruct/domain-id.js";
|
|
14
17
|
import { buildReconstructPipelineExecutionLedger, } from "../core-runtime/reconstruct/pipeline-execution-ledger.js";
|
|
18
|
+
import { spawnRuntimeWatcherPane, } from "../core-runtime/cli/spawn-watcher.js";
|
|
19
|
+
import { appendRuntimeStatusEventSync, runWithRuntimeObservationContext, } from "../core-runtime/observability/runtime-stream-observation.js";
|
|
15
20
|
async function directoryExists(directoryPath) {
|
|
16
21
|
try {
|
|
17
22
|
const stat = await fs.stat(directoryPath);
|
|
@@ -53,8 +58,17 @@ async function resolveProfilesRoot(args) {
|
|
|
53
58
|
function defaultDirectiveValidationOutputPath(request) {
|
|
54
59
|
return path.join(path.dirname(path.resolve(request.directivePath)), "source-observation-directive-validation.yaml");
|
|
55
60
|
}
|
|
56
|
-
function
|
|
57
|
-
return path.join(path.dirname(path.resolve(request.
|
|
61
|
+
function defaultCandidateDispositionValidationOutputPath(request) {
|
|
62
|
+
return path.join(path.dirname(path.resolve(request.candidateDispositionPath)), "candidate-disposition-validation.yaml");
|
|
63
|
+
}
|
|
64
|
+
function defaultOntologySeedValidationOutputPath(request) {
|
|
65
|
+
return path.join(path.dirname(path.resolve(request.ontologySeedPath)), "ontology-seed-validation.yaml");
|
|
66
|
+
}
|
|
67
|
+
function defaultReconstructContractRegistryPath(ontoHome) {
|
|
68
|
+
return path.join(path.resolve(ontoHome ?? process.cwd()), ".onto", "processes", "reconstruct", "reconstruct-contract-registry.yaml");
|
|
69
|
+
}
|
|
70
|
+
function reconstructContractRegistryPathFromProfilesRoot(profilesRoot) {
|
|
71
|
+
return path.resolve(profilesRoot, "..", "reconstruct-contract-registry.yaml");
|
|
58
72
|
}
|
|
59
73
|
async function readYamlArtifact(filePath) {
|
|
60
74
|
return parseYaml(await fs.readFile(filePath, "utf8"));
|
|
@@ -131,19 +145,30 @@ function deriveReconstructProgress(args) {
|
|
|
131
145
|
args.record.validation_summary.unresolved_count,
|
|
132
146
|
passRate: args.metrics?.pass_rate ?? args.record.validation_summary.pass_rate,
|
|
133
147
|
},
|
|
148
|
+
answerabilitySummary: args.metrics
|
|
149
|
+
? {
|
|
150
|
+
declaredQuestionCount: args.metrics.answerability_summary.declared_question_count,
|
|
151
|
+
supportedQuestionCount: args.metrics.answerability_summary.supported_question_count,
|
|
152
|
+
deferredQuestionCount: args.metrics.answerability_summary.deferred_question_count,
|
|
153
|
+
unsupportedQuestionCount: args.metrics.answerability_summary.unsupported_question_count,
|
|
154
|
+
supportedActionCount: args.metrics.answerability_summary.supported_action_count,
|
|
155
|
+
unsupportedActionCount: args.metrics.answerability_summary.unsupported_action_count,
|
|
156
|
+
}
|
|
157
|
+
: null,
|
|
134
158
|
stages,
|
|
135
159
|
};
|
|
136
160
|
}
|
|
137
161
|
function recordArtifactRefsFromPreparation(refs) {
|
|
138
162
|
return {
|
|
139
163
|
target_material_profile: refs.target_material_profile,
|
|
164
|
+
target_material_profile_validation: refs.target_material_profile_validation ?? null,
|
|
140
165
|
source_inventory: refs.source_inventory,
|
|
141
166
|
initial_source_frontier: refs.initial_source_frontier,
|
|
142
167
|
source_observations: refs.source_observations,
|
|
143
168
|
};
|
|
144
169
|
}
|
|
145
170
|
export function createOntoReconstructCoreApi(options = {}) {
|
|
146
|
-
const ontoHome =
|
|
171
|
+
const ontoHome = resolveOntoHome(options.ontoHome);
|
|
147
172
|
return {
|
|
148
173
|
async listSourceProfiles(projectRoot = process.cwd()) {
|
|
149
174
|
const resolvedProjectRoot = path.resolve(projectRoot);
|
|
@@ -173,10 +198,19 @@ export function createOntoReconstructCoreApi(options = {}) {
|
|
|
173
198
|
filesystemAllowedRoots: request.filesystemAllowedRoots?.map((root) => resolveFromBase(projectRoot, root)) ??
|
|
174
199
|
[projectRoot],
|
|
175
200
|
});
|
|
201
|
+
const targetMaterialProfileValidationPath = path.join(sessionRoot, "target-material-profile-validation.yaml");
|
|
202
|
+
await writeTargetMaterialProfileValidationArtifact({
|
|
203
|
+
targetMaterialProfilePath: preparationRefs.target_material_profile,
|
|
204
|
+
registryPath: reconstructContractRegistryPathFromProfilesRoot(profilesRoot),
|
|
205
|
+
outputPath: targetMaterialProfileValidationPath,
|
|
206
|
+
});
|
|
176
207
|
const recordPath = path.join(sessionRoot, "reconstruct-record.yaml");
|
|
177
208
|
const reconstructRecord = await assembleReconstructRecord({
|
|
178
209
|
sessionRoot,
|
|
179
|
-
artifactRefs: recordArtifactRefsFromPreparation(
|
|
210
|
+
artifactRefs: recordArtifactRefsFromPreparation({
|
|
211
|
+
...preparationRefs,
|
|
212
|
+
target_material_profile_validation: targetMaterialProfileValidationPath,
|
|
213
|
+
}),
|
|
180
214
|
outputPath: recordPath,
|
|
181
215
|
});
|
|
182
216
|
return {
|
|
@@ -207,26 +241,75 @@ export function createOntoReconstructCoreApi(options = {}) {
|
|
|
207
241
|
const llmConfig = resolveLlmProviderConfig({ config: settings });
|
|
208
242
|
const semanticAuthorRealization = request.semanticAuthorRealization ?? "direct_call";
|
|
209
243
|
const confirmationProviderRealization = request.confirmationProviderRealization ?? "direct_call";
|
|
244
|
+
if (request.domain) {
|
|
245
|
+
assertReconstructDomainId(request.domain, "reconstruct domain");
|
|
246
|
+
}
|
|
210
247
|
const directiveAuthor = semanticAuthorRealization === "mock"
|
|
211
248
|
? createMockReconstructDirectiveAuthor()
|
|
212
249
|
: createDirectCallReconstructDirectiveAuthor({ llmConfig });
|
|
213
250
|
const confirmationProvider = confirmationProviderRealization === "mock"
|
|
214
251
|
? createAutoAcceptReconstructConfirmationProvider()
|
|
215
252
|
: createDirectCallReconstructConfirmationProvider({ llmConfig });
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
targetRefs,
|
|
219
|
-
intent: request.intent,
|
|
253
|
+
appendRuntimeStatusEventSync({
|
|
254
|
+
pipeline: "reconstruct",
|
|
220
255
|
sessionRoot,
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
256
|
+
sourceLabel: "onto.reconstruct",
|
|
257
|
+
message: "reconstruct session starting",
|
|
258
|
+
stageId: "start",
|
|
259
|
+
});
|
|
260
|
+
const watcherResult = spawnRuntimeWatcherPane(projectRoot, sessionRoot, ontoHome);
|
|
261
|
+
appendRuntimeStatusEventSync({
|
|
262
|
+
pipeline: "reconstruct",
|
|
263
|
+
sessionRoot,
|
|
264
|
+
sourceLabel: "runtime-watcher",
|
|
265
|
+
message: watcherResult.spawned
|
|
266
|
+
? `watcher ${watcherResult.dry_run ? "detected" : "attached"} via ${watcherResult.mechanism}`
|
|
267
|
+
: `watcher not attached: ${watcherResult.reason ?? "unknown reason"}`,
|
|
268
|
+
stageId: "start",
|
|
229
269
|
});
|
|
270
|
+
try {
|
|
271
|
+
const result = await runWithRuntimeObservationContext({
|
|
272
|
+
pipeline: "reconstruct",
|
|
273
|
+
sessionRoot,
|
|
274
|
+
source: {
|
|
275
|
+
kind: "llm",
|
|
276
|
+
label: "reconstruct",
|
|
277
|
+
},
|
|
278
|
+
}, () => runReconstruct({
|
|
279
|
+
projectRoot,
|
|
280
|
+
targetRefs,
|
|
281
|
+
intent: request.intent,
|
|
282
|
+
sessionRoot,
|
|
283
|
+
profilesRoot,
|
|
284
|
+
...(request.domain ? { domain: request.domain } : {}),
|
|
285
|
+
...(request.resumeMode ? { resumeMode: request.resumeMode } : {}),
|
|
286
|
+
semanticAuthorRealization,
|
|
287
|
+
confirmationProviderRealization,
|
|
288
|
+
directiveAuthor,
|
|
289
|
+
confirmationProvider,
|
|
290
|
+
llmConfig,
|
|
291
|
+
filesystemAllowedRoots: request.filesystemAllowedRoots?.map((root) => resolveFromBase(projectRoot, root)) ??
|
|
292
|
+
[projectRoot],
|
|
293
|
+
}));
|
|
294
|
+
appendRuntimeStatusEventSync({
|
|
295
|
+
pipeline: "reconstruct",
|
|
296
|
+
sessionRoot,
|
|
297
|
+
sourceLabel: "onto.reconstruct",
|
|
298
|
+
message: "reconstruct session completed",
|
|
299
|
+
stageId: "complete",
|
|
300
|
+
});
|
|
301
|
+
return result;
|
|
302
|
+
}
|
|
303
|
+
catch (error) {
|
|
304
|
+
appendRuntimeStatusEventSync({
|
|
305
|
+
pipeline: "reconstruct",
|
|
306
|
+
sessionRoot,
|
|
307
|
+
sourceLabel: "onto.reconstruct",
|
|
308
|
+
message: `reconstruct session failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
309
|
+
stageId: "complete",
|
|
310
|
+
});
|
|
311
|
+
throw error;
|
|
312
|
+
}
|
|
230
313
|
},
|
|
231
314
|
async validateSourceObservationDirective(request) {
|
|
232
315
|
return writeSourceObservationDirectiveValidationArtifact({
|
|
@@ -237,23 +320,26 @@ export function createOntoReconstructCoreApi(options = {}) {
|
|
|
237
320
|
: defaultDirectiveValidationOutputPath(request),
|
|
238
321
|
});
|
|
239
322
|
},
|
|
240
|
-
async
|
|
241
|
-
return
|
|
242
|
-
|
|
323
|
+
async validateCandidateDisposition(request) {
|
|
324
|
+
return writeCandidateDispositionValidationArtifact({
|
|
325
|
+
candidateInventoryPath: path.resolve(request.candidateInventoryPath),
|
|
326
|
+
candidateDispositionPath: path.resolve(request.candidateDispositionPath),
|
|
243
327
|
sourceObservationsPath: path.resolve(request.sourceObservationsPath),
|
|
328
|
+
registryPath: path.resolve(request.registryPath ?? defaultReconstructContractRegistryPath(ontoHome)),
|
|
244
329
|
outputPath: request.outputPath
|
|
245
330
|
? path.resolve(request.outputPath)
|
|
246
|
-
:
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
331
|
+
: defaultCandidateDispositionValidationOutputPath(request),
|
|
332
|
+
});
|
|
333
|
+
},
|
|
334
|
+
async validateActionableOntologySeed(request) {
|
|
335
|
+
return writeActionableOntologySeedValidationArtifact({
|
|
336
|
+
ontologySeedPath: path.resolve(request.ontologySeedPath),
|
|
337
|
+
candidateDispositionPath: path.resolve(request.candidateDispositionPath),
|
|
338
|
+
sourceObservationsPath: path.resolve(request.sourceObservationsPath),
|
|
339
|
+
registryPath: path.resolve(request.registryPath ?? defaultReconstructContractRegistryPath(ontoHome)),
|
|
340
|
+
outputPath: request.outputPath
|
|
341
|
+
? path.resolve(request.outputPath)
|
|
342
|
+
: defaultOntologySeedValidationOutputPath(request),
|
|
257
343
|
});
|
|
258
344
|
},
|
|
259
345
|
async assembleRecord(request) {
|