onto-mcp 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (447) hide show
  1. package/.onto/authority/core-lens-registry.yaml +134 -0
  2. package/.onto/authority/core-lexicon.yaml +1562 -0
  3. package/.onto/authority/diagnostic-codes.yaml +94 -0
  4. package/.onto/domains/accounting/competency_qs.md +384 -0
  5. package/.onto/domains/accounting/concepts.md +186 -0
  6. package/.onto/domains/accounting/conciseness_rules.md +160 -0
  7. package/.onto/domains/accounting/dependency_rules.md +239 -0
  8. package/.onto/domains/accounting/domain_scope.md +213 -0
  9. package/.onto/domains/accounting/extension_cases.md +416 -0
  10. package/.onto/domains/accounting/logic_rules.md +226 -0
  11. package/.onto/domains/accounting/structure_spec.md +298 -0
  12. package/.onto/domains/accounting-kr/competency_qs.md +562 -0
  13. package/.onto/domains/accounting-kr/concepts.md +187 -0
  14. package/.onto/domains/accounting-kr/conciseness_rules.md +125 -0
  15. package/.onto/domains/accounting-kr/dependency_rules.md +93 -0
  16. package/.onto/domains/accounting-kr/domain_scope.md +140 -0
  17. package/.onto/domains/accounting-kr/extension_cases.md +343 -0
  18. package/.onto/domains/accounting-kr/logic_rules.md +160 -0
  19. package/.onto/domains/accounting-kr/structure_spec.md +85 -0
  20. package/.onto/domains/business/competency_qs.md +263 -0
  21. package/.onto/domains/business/concepts.md +200 -0
  22. package/.onto/domains/business/conciseness_rules.md +135 -0
  23. package/.onto/domains/business/dependency_rules.md +113 -0
  24. package/.onto/domains/business/domain_scope.md +240 -0
  25. package/.onto/domains/business/extension_cases.md +249 -0
  26. package/.onto/domains/business/logic_rules.md +134 -0
  27. package/.onto/domains/business/structure_spec.md +114 -0
  28. package/.onto/domains/finance/competency_qs.md +362 -0
  29. package/.onto/domains/finance/concepts.md +194 -0
  30. package/.onto/domains/finance/conciseness_rules.md +155 -0
  31. package/.onto/domains/finance/dependency_rules.md +171 -0
  32. package/.onto/domains/finance/domain_scope.md +215 -0
  33. package/.onto/domains/finance/extension_cases.md +350 -0
  34. package/.onto/domains/finance/logic_rules.md +191 -0
  35. package/.onto/domains/finance/structure_spec.md +182 -0
  36. package/.onto/domains/llm-native-development/competency_qs.md +430 -0
  37. package/.onto/domains/llm-native-development/concepts.md +242 -0
  38. package/.onto/domains/llm-native-development/conciseness_rules.md +163 -0
  39. package/.onto/domains/llm-native-development/dependency_rules.md +216 -0
  40. package/.onto/domains/llm-native-development/domain_scope.md +197 -0
  41. package/.onto/domains/llm-native-development/extension_cases.md +474 -0
  42. package/.onto/domains/llm-native-development/logic_rules.md +123 -0
  43. package/.onto/domains/llm-native-development/prompt_interface.md +49 -0
  44. package/.onto/domains/llm-native-development/structure_spec.md +245 -0
  45. package/.onto/domains/market-intelligence/competency_qs.md +274 -0
  46. package/.onto/domains/market-intelligence/concepts.md +233 -0
  47. package/.onto/domains/market-intelligence/conciseness_rules.md +165 -0
  48. package/.onto/domains/market-intelligence/dependency_rules.md +197 -0
  49. package/.onto/domains/market-intelligence/domain_scope.md +231 -0
  50. package/.onto/domains/market-intelligence/extension_cases.md +425 -0
  51. package/.onto/domains/market-intelligence/logic_rules.md +247 -0
  52. package/.onto/domains/market-intelligence/structure_spec.md +209 -0
  53. package/.onto/domains/ontology/competency_qs.md +394 -0
  54. package/.onto/domains/ontology/concepts.md +172 -0
  55. package/.onto/domains/ontology/conciseness_rules.md +134 -0
  56. package/.onto/domains/ontology/dependency_rules.md +125 -0
  57. package/.onto/domains/ontology/domain_scope.md +114 -0
  58. package/.onto/domains/ontology/extension_cases.md +501 -0
  59. package/.onto/domains/ontology/logic_rules.md +114 -0
  60. package/.onto/domains/ontology/problem_framing_profile.md +67 -0
  61. package/.onto/domains/ontology/structure_spec.md +115 -0
  62. package/.onto/domains/palantir-foundry/RESEARCH_NOTES.md +911 -0
  63. package/.onto/domains/palantir-foundry/competency_qs.md +191 -0
  64. package/.onto/domains/palantir-foundry/competitive_comparison.md +329 -0
  65. package/.onto/domains/palantir-foundry/concepts.md +197 -0
  66. package/.onto/domains/palantir-foundry/conciseness_rules.md +245 -0
  67. package/.onto/domains/palantir-foundry/dependency_rules.md +135 -0
  68. package/.onto/domains/palantir-foundry/domain_scope.md +395 -0
  69. package/.onto/domains/palantir-foundry/extension_cases.md +210 -0
  70. package/.onto/domains/palantir-foundry/logic_rules.md +172 -0
  71. package/.onto/domains/palantir-foundry/structure_spec.md +291 -0
  72. package/.onto/domains/software-engineering/competency_qs.md +538 -0
  73. package/.onto/domains/software-engineering/concepts.md +238 -0
  74. package/.onto/domains/software-engineering/conciseness_rules.md +167 -0
  75. package/.onto/domains/software-engineering/dependency_rules.md +216 -0
  76. package/.onto/domains/software-engineering/domain_scope.md +183 -0
  77. package/.onto/domains/software-engineering/extension_cases.md +551 -0
  78. package/.onto/domains/software-engineering/logic_rules.md +240 -0
  79. package/.onto/domains/software-engineering/problem_framing_profile.md +68 -0
  80. package/.onto/domains/software-engineering/structure_spec.md +185 -0
  81. package/.onto/domains/ui-design/competency_qs.md +567 -0
  82. package/.onto/domains/ui-design/concepts.md +194 -0
  83. package/.onto/domains/ui-design/conciseness_rules.md +190 -0
  84. package/.onto/domains/ui-design/dependency_rules.md +323 -0
  85. package/.onto/domains/ui-design/domain_scope.md +340 -0
  86. package/.onto/domains/ui-design/extension_cases.md +563 -0
  87. package/.onto/domains/ui-design/logic_rules.md +349 -0
  88. package/.onto/domains/ui-design/structure_spec.md +252 -0
  89. package/.onto/domains/visual-design/competency_qs.md +472 -0
  90. package/.onto/domains/visual-design/concepts.md +147 -0
  91. package/.onto/domains/visual-design/conciseness_rules.md +186 -0
  92. package/.onto/domains/visual-design/dependency_rules.md +282 -0
  93. package/.onto/domains/visual-design/domain_scope.md +290 -0
  94. package/.onto/domains/visual-design/extension_cases.md +480 -0
  95. package/.onto/domains/visual-design/logic_rules.md +232 -0
  96. package/.onto/domains/visual-design/structure_spec.md +213 -0
  97. package/.onto/principles/llm-native-development-guideline.md +401 -0
  98. package/.onto/principles/llm-runtime-interface-principles.md +665 -0
  99. package/.onto/principles/non-specialist-communication-guideline.md +74 -0
  100. package/.onto/principles/ontology-as-code-guideline.md +243 -0
  101. package/.onto/principles/ontology-as-code-naming-charter.md +130 -0
  102. package/.onto/principles/product-locality-principle.md +129 -0
  103. package/.onto/principles/productization-charter.md +569 -0
  104. package/.onto/processes/evolve/material-kind-adapter-contract.md +113 -0
  105. package/.onto/processes/reconstruct/reconstruct-boundary-contract.md +366 -0
  106. package/.onto/processes/reconstruct/source-profile-contract.md +107 -0
  107. package/.onto/processes/reconstruct/source-profiles/code.md +72 -0
  108. package/.onto/processes/reconstruct/source-profiles/database.md +74 -0
  109. package/.onto/processes/reconstruct/source-profiles/document.md +71 -0
  110. package/.onto/processes/reconstruct/source-profiles/spreadsheet.md +79 -0
  111. package/.onto/processes/review/binding-contract.md +270 -0
  112. package/.onto/processes/review/execution-preparation-artifacts.md +281 -0
  113. package/.onto/processes/review/interpretation-contract.md +245 -0
  114. package/.onto/processes/review/issue-stance-deliberation-contract.md +761 -0
  115. package/.onto/processes/review/lens-prompt-contract.md +402 -0
  116. package/.onto/processes/review/lens-registry.md +127 -0
  117. package/.onto/processes/review/pre-dispatch-contracts.md +428 -0
  118. package/.onto/processes/review/productized-live-path.md +398 -0
  119. package/.onto/processes/review/prompt-execution-runner-contract.md +187 -0
  120. package/.onto/processes/review/record-contract.md +427 -0
  121. package/.onto/processes/review/record-field-mapping.md +337 -0
  122. package/.onto/processes/review/review-context-manifest-contract.md +356 -0
  123. package/.onto/processes/review/review-execution-ux-contract.md +809 -0
  124. package/.onto/processes/review/review-target-profile-contract.md +259 -0
  125. package/.onto/processes/review/shared-phenomenon-contract.md +129 -0
  126. package/.onto/processes/review/synthesize-prompt-contract.md +343 -0
  127. package/.onto/processes/shared/target-material-kind-contract.md +198 -0
  128. package/.onto/roles/axiology.md +81 -0
  129. package/.onto/roles/conciseness.md +36 -0
  130. package/.onto/roles/coverage.md +34 -0
  131. package/.onto/roles/dependency.md +37 -0
  132. package/.onto/roles/evolution.md +35 -0
  133. package/.onto/roles/logic.md +104 -0
  134. package/.onto/roles/pragmatics.md +32 -0
  135. package/.onto/roles/semantics.md +36 -0
  136. package/.onto/roles/structure.md +33 -0
  137. package/.onto/roles/synthesize.md +92 -0
  138. package/AGENTS.md +240 -0
  139. package/CLAUDE.md +39 -0
  140. package/README.md +287 -0
  141. package/bin/onto +92 -0
  142. package/dist/cli.js +101 -0
  143. package/dist/core-api/reconstruct-api.js +222 -0
  144. package/dist/core-api/review-api.js +1271 -0
  145. package/dist/core-runtime/cli/assemble-review-record.js +431 -0
  146. package/dist/core-runtime/cli/bootstrap-review-binding.js +186 -0
  147. package/dist/core-runtime/cli/codex-nested-dispatch.js +226 -0
  148. package/dist/core-runtime/cli/codex-nested-dispatch.test.js +390 -0
  149. package/dist/core-runtime/cli/codex-nested-teamlead-executor.js +464 -0
  150. package/dist/core-runtime/cli/codex-nested-teamlead-executor.test.js +335 -0
  151. package/dist/core-runtime/cli/codex-review-unit-executor.js +228 -0
  152. package/dist/core-runtime/cli/complete-review-session.js +64 -0
  153. package/dist/core-runtime/cli/complexity-assessment.js +153 -0
  154. package/dist/core-runtime/cli/coordinator-helpers.js +583 -0
  155. package/dist/core-runtime/cli/coordinator-state-machine-deliberation.test.js +167 -0
  156. package/dist/core-runtime/cli/coordinator-state-machine.js +794 -0
  157. package/dist/core-runtime/cli/e2e-codex-multi-agent-fixes.test.js +615 -0
  158. package/dist/core-runtime/cli/e2e-start-review-session.test.js +312 -0
  159. package/dist/core-runtime/cli/health.js +44 -0
  160. package/dist/core-runtime/cli/inline-http-review-unit-executor.js +656 -0
  161. package/dist/core-runtime/cli/inline-http-review-unit-executor.test.js +567 -0
  162. package/dist/core-runtime/cli/materialize-review-execution-preparation.js +104 -0
  163. package/dist/core-runtime/cli/materialize-review-prompt-packets.js +952 -0
  164. package/dist/core-runtime/cli/migrate-session-roots.js +118 -0
  165. package/dist/core-runtime/cli/mock-review-unit-executor.js +285 -0
  166. package/dist/core-runtime/cli/onto-tools.js +369 -0
  167. package/dist/core-runtime/cli/prepare-review-session.js +272 -0
  168. package/dist/core-runtime/cli/render-review-final-output.js +350 -0
  169. package/dist/core-runtime/cli/repo-layout-migration-replace.smoke.test.js +106 -0
  170. package/dist/core-runtime/cli/review-invoke-auto-resolution.test.js +268 -0
  171. package/dist/core-runtime/cli/review-invoke-coordinator-topology.test.js +136 -0
  172. package/dist/core-runtime/cli/review-invoke-resolver-caching.test.js +201 -0
  173. package/dist/core-runtime/cli/review-invoke-topology-dispatch.test.js +192 -0
  174. package/dist/core-runtime/cli/review-invoke.js +2030 -0
  175. package/dist/core-runtime/cli/run-review-prompt-execution.js +2152 -0
  176. package/dist/core-runtime/cli/session-root-guard.js +168 -0
  177. package/dist/core-runtime/cli/spawn-watcher.js +173 -0
  178. package/dist/core-runtime/cli/spawn-watcher.test.js +457 -0
  179. package/dist/core-runtime/cli/start-review-session.js +68 -0
  180. package/dist/core-runtime/cli/strip-wrapping-code-fence.js +56 -0
  181. package/dist/core-runtime/cli/strip-wrapping-code-fence.test.js +79 -0
  182. package/dist/core-runtime/cli/teamcreate-lens-deliberation-executor.js +412 -0
  183. package/dist/core-runtime/cli/teamcreate-lens-deliberation-executor.test.js +351 -0
  184. package/dist/core-runtime/cli/topology-executor-mapping.js +139 -0
  185. package/dist/core-runtime/cli/topology-executor-mapping.test.js +173 -0
  186. package/dist/core-runtime/cli/write-review-interpretation.js +81 -0
  187. package/dist/core-runtime/config/onto-config-cli.js +278 -0
  188. package/dist/core-runtime/config/onto-config-key-path.js +288 -0
  189. package/dist/core-runtime/config/onto-config-key-path.test.js +195 -0
  190. package/dist/core-runtime/config/onto-config-preview.js +108 -0
  191. package/dist/core-runtime/config/onto-config-preview.test.js +132 -0
  192. package/dist/core-runtime/discovery/config-chain.js +118 -0
  193. package/dist/core-runtime/discovery/config-chain.test.js +103 -0
  194. package/dist/core-runtime/discovery/config-profile.js +199 -0
  195. package/dist/core-runtime/discovery/config-profile.test.js +233 -0
  196. package/dist/core-runtime/discovery/host-detection.js +33 -0
  197. package/dist/core-runtime/discovery/host-detection.test.js +186 -0
  198. package/dist/core-runtime/discovery/installation-paths.js +21 -0
  199. package/dist/core-runtime/discovery/installation-paths.test.js +65 -0
  200. package/dist/core-runtime/discovery/lens-registry.js +60 -0
  201. package/dist/core-runtime/discovery/lens-registry.test.js +81 -0
  202. package/dist/core-runtime/discovery/onto-home.js +71 -0
  203. package/dist/core-runtime/discovery/path-normalization.js +28 -0
  204. package/dist/core-runtime/discovery/path-normalization.test.js +22 -0
  205. package/dist/core-runtime/discovery/plugin-path.js +72 -0
  206. package/dist/core-runtime/discovery/plugin-path.test.js +95 -0
  207. package/dist/core-runtime/discovery/project-root.js +47 -0
  208. package/dist/core-runtime/discovery/settings-chain.js +353 -0
  209. package/dist/core-runtime/discovery/walk-up.js +17 -0
  210. package/dist/core-runtime/evolve/adapters/code-product/compile/compile-defense.js +344 -0
  211. package/dist/core-runtime/evolve/adapters/code-product/compile/compile-defense.test.js +915 -0
  212. package/dist/core-runtime/evolve/adapters/code-product/compile/compile.js +564 -0
  213. package/dist/core-runtime/evolve/adapters/code-product/compile/compile.test.js +708 -0
  214. package/dist/core-runtime/evolve/adapters/code-product/parsers/brief-parser.js +165 -0
  215. package/dist/core-runtime/evolve/adapters/code-product/parsers/brief-parser.test.js +227 -0
  216. package/dist/core-runtime/evolve/adapters/code-product/validators/validate.js +59 -0
  217. package/dist/core-runtime/evolve/adapters/code-product/validators/validate.test.js +205 -0
  218. package/dist/core-runtime/evolve/adapters/methodology/adapter.js +16 -0
  219. package/dist/core-runtime/evolve/adapters/methodology/adapter.test.js +9 -0
  220. package/dist/core-runtime/evolve/adapters/methodology/perspectives/authority-consistency.js +298 -0
  221. package/dist/core-runtime/evolve/adapters/methodology/perspectives/authority-consistency.test.js +70 -0
  222. package/dist/core-runtime/evolve/adapters/methodology/scope-types/process.js +46 -0
  223. package/dist/core-runtime/evolve/adapters/methodology/scope-types/process.test.js +73 -0
  224. package/dist/core-runtime/evolve/adapters/registry.js +47 -0
  225. package/dist/core-runtime/evolve/adapters/registry.test.js +67 -0
  226. package/dist/core-runtime/evolve/cli.js +256 -0
  227. package/dist/core-runtime/evolve/commands/align.js +194 -0
  228. package/dist/core-runtime/evolve/commands/align.test.js +82 -0
  229. package/dist/core-runtime/evolve/commands/apply.js +161 -0
  230. package/dist/core-runtime/evolve/commands/apply.test.js +138 -0
  231. package/dist/core-runtime/evolve/commands/close.js +39 -0
  232. package/dist/core-runtime/evolve/commands/close.test.js +99 -0
  233. package/dist/core-runtime/evolve/commands/defer.js +40 -0
  234. package/dist/core-runtime/evolve/commands/defer.test.js +134 -0
  235. package/dist/core-runtime/evolve/commands/draft.js +323 -0
  236. package/dist/core-runtime/evolve/commands/draft.test.js +178 -0
  237. package/dist/core-runtime/evolve/commands/e2e-evolve-full-cycle.test.js +208 -0
  238. package/dist/core-runtime/evolve/commands/error-messages.js +125 -0
  239. package/dist/core-runtime/evolve/commands/error-messages.test.js +167 -0
  240. package/dist/core-runtime/evolve/commands/propose-align.js +222 -0
  241. package/dist/core-runtime/evolve/commands/propose-align.test.js +136 -0
  242. package/dist/core-runtime/evolve/commands/reconstruct.js +330 -0
  243. package/dist/core-runtime/evolve/commands/reconstruct.test.js +278 -0
  244. package/dist/core-runtime/evolve/commands/shared.js +22 -0
  245. package/dist/core-runtime/evolve/commands/stale-check.js +103 -0
  246. package/dist/core-runtime/evolve/commands/stale-check.test.js +84 -0
  247. package/dist/core-runtime/evolve/commands/start.js +887 -0
  248. package/dist/core-runtime/evolve/commands/start.test.js +396 -0
  249. package/dist/core-runtime/evolve/config/project-config.js +99 -0
  250. package/dist/core-runtime/evolve/config/project-config.test.js +170 -0
  251. package/dist/core-runtime/evolve/renderers/align-packet.js +280 -0
  252. package/dist/core-runtime/evolve/renderers/align-packet.test.js +332 -0
  253. package/dist/core-runtime/evolve/renderers/draft-packet.js +303 -0
  254. package/dist/core-runtime/evolve/renderers/draft-packet.test.js +377 -0
  255. package/dist/core-runtime/evolve/renderers/format.js +5 -0
  256. package/dist/core-runtime/evolve/renderers/scope-md.js +237 -0
  257. package/dist/core-runtime/evolve/renderers/scope-md.test.js +306 -0
  258. package/dist/core-runtime/govern/cli.js +369 -0
  259. package/dist/core-runtime/govern/cli.test.js +314 -0
  260. package/dist/core-runtime/govern/drift-engine.js +103 -0
  261. package/dist/core-runtime/govern/drift-engine.test.js +319 -0
  262. package/dist/core-runtime/govern/promote-principle.js +206 -0
  263. package/dist/core-runtime/govern/promote-principle.test.js +368 -0
  264. package/dist/core-runtime/govern/queue.js +81 -0
  265. package/dist/core-runtime/govern/types.js +16 -0
  266. package/dist/core-runtime/install/cli.js +530 -0
  267. package/dist/core-runtime/install/detect.js +128 -0
  268. package/dist/core-runtime/install/detect.test.js +155 -0
  269. package/dist/core-runtime/install/gitignore-update.js +74 -0
  270. package/dist/core-runtime/install/gitignore-update.test.js +64 -0
  271. package/dist/core-runtime/install/install-integration.test.js +373 -0
  272. package/dist/core-runtime/install/prompts.js +389 -0
  273. package/dist/core-runtime/install/prompts.test.js +293 -0
  274. package/dist/core-runtime/install/types.js +26 -0
  275. package/dist/core-runtime/install/validation.js +295 -0
  276. package/dist/core-runtime/install/validation.test.js +313 -0
  277. package/dist/core-runtime/install/writer.js +254 -0
  278. package/dist/core-runtime/install/writer.test.js +218 -0
  279. package/dist/core-runtime/learning/extractor.js +461 -0
  280. package/dist/core-runtime/learning/feedback.js +179 -0
  281. package/dist/core-runtime/learning/health-report.js +165 -0
  282. package/dist/core-runtime/learning/health-report.test.js +169 -0
  283. package/dist/core-runtime/learning/loader.js +388 -0
  284. package/dist/core-runtime/learning/loader.test.js +102 -0
  285. package/dist/core-runtime/learning/promote/apply-state.js +240 -0
  286. package/dist/core-runtime/learning/promote/audit-obligation.js +195 -0
  287. package/dist/core-runtime/learning/promote/collector.js +432 -0
  288. package/dist/core-runtime/learning/promote/degraded-state.js +125 -0
  289. package/dist/core-runtime/learning/promote/domain-doc-proposer.js +166 -0
  290. package/dist/core-runtime/learning/promote/e2e-promote.test.js +6385 -0
  291. package/dist/core-runtime/learning/promote/health-snapshot.js +150 -0
  292. package/dist/core-runtime/learning/promote/insight-reclassifier.js +544 -0
  293. package/dist/core-runtime/learning/promote/judgment-auditor.js +517 -0
  294. package/dist/core-runtime/learning/promote/panel-reviewer.js +1158 -0
  295. package/dist/core-runtime/learning/promote/promote-executor.js +1675 -0
  296. package/dist/core-runtime/learning/promote/promoter.js +307 -0
  297. package/dist/core-runtime/learning/promote/retirement.js +122 -0
  298. package/dist/core-runtime/learning/promote/types.js +23 -0
  299. package/dist/core-runtime/learning/prompt-sections.js +51 -0
  300. package/dist/core-runtime/learning/shared/artifact-registry-init.js +45 -0
  301. package/dist/core-runtime/learning/shared/artifact-registry.js +254 -0
  302. package/dist/core-runtime/learning/shared/audit-obligation-kernel.js +73 -0
  303. package/dist/core-runtime/learning/shared/audit-state.js +99 -0
  304. package/dist/core-runtime/learning/shared/duplicate-check.js +28 -0
  305. package/dist/core-runtime/learning/shared/llm-caller.js +831 -0
  306. package/dist/core-runtime/learning/shared/llm-caller.test.js +601 -0
  307. package/dist/core-runtime/learning/shared/llm-tool-loop.js +393 -0
  308. package/dist/core-runtime/learning/shared/mode.js +25 -0
  309. package/dist/core-runtime/learning/shared/paths.js +84 -0
  310. package/dist/core-runtime/learning/shared/paths.test.js +79 -0
  311. package/dist/core-runtime/learning/shared/patterns.js +37 -0
  312. package/dist/core-runtime/learning/shared/recoverability.js +355 -0
  313. package/dist/core-runtime/learning/shared/recovery-context.js +374 -0
  314. package/dist/core-runtime/learning/shared/scope.js +1 -0
  315. package/dist/core-runtime/learning/shared/semantic-classifier.js +94 -0
  316. package/dist/core-runtime/learning/shared/specs/apply-execution-state-spec.js +42 -0
  317. package/dist/core-runtime/learning/shared/specs/audit-state-spec.js +37 -0
  318. package/dist/core-runtime/learning/shared/specs/backup-metadata-spec.js +39 -0
  319. package/dist/core-runtime/learning/shared/specs/emergency-log-spec.js +41 -0
  320. package/dist/core-runtime/learning/shared/specs/layout-version-spec.js +38 -0
  321. package/dist/core-runtime/learning/shared/specs/promote-decisions-spec.js +43 -0
  322. package/dist/core-runtime/learning/shared/specs/promote-report-spec.js +113 -0
  323. package/dist/core-runtime/learning/shared/specs/prune-log-spec.js +36 -0
  324. package/dist/core-runtime/learning/shared/specs/recovery-resolution-spec.js +48 -0
  325. package/dist/core-runtime/learning/shared/specs/restore-manifest-spec.js +43 -0
  326. package/dist/core-runtime/learning/shared/specs/spec-helpers.js +64 -0
  327. package/dist/core-runtime/learning/usage-tracker.js +190 -0
  328. package/dist/core-runtime/learning/usage-tracker.test.js +176 -0
  329. package/dist/core-runtime/llm/llm-caller.js +649 -0
  330. package/dist/core-runtime/llm/llm-tool-loop.js +401 -0
  331. package/dist/core-runtime/llm/model-switcher.js +62 -0
  332. package/dist/core-runtime/logger.js +22 -0
  333. package/dist/core-runtime/onboard/detect-review-axes.js +122 -0
  334. package/dist/core-runtime/onboard/detect-review-axes.test.js +127 -0
  335. package/dist/core-runtime/onboard/write-review-block.js +188 -0
  336. package/dist/core-runtime/onboard/write-review-block.test.js +240 -0
  337. package/dist/core-runtime/readers/brownfield-builder.js +150 -0
  338. package/dist/core-runtime/readers/brownfield-builder.test.js +136 -0
  339. package/dist/core-runtime/readers/code-chunk-collector.js +53 -0
  340. package/dist/core-runtime/readers/code-chunk-collector.test.js +136 -0
  341. package/dist/core-runtime/readers/file-utils.js +240 -0
  342. package/dist/core-runtime/readers/file-utils.test.js +146 -0
  343. package/dist/core-runtime/readers/lexicon-citation-check.js +93 -0
  344. package/dist/core-runtime/readers/lexicon-citation-check.test.js +77 -0
  345. package/dist/core-runtime/readers/mcp-figma.js +30 -0
  346. package/dist/core-runtime/readers/mcp-figma.test.js +82 -0
  347. package/dist/core-runtime/readers/mcp-generic.js +31 -0
  348. package/dist/core-runtime/readers/mcp-generic.test.js +76 -0
  349. package/dist/core-runtime/readers/ontology-index.js +148 -0
  350. package/dist/core-runtime/readers/ontology-index.test.js +245 -0
  351. package/dist/core-runtime/readers/ontology-query.js +168 -0
  352. package/dist/core-runtime/readers/ontology-query.test.js +311 -0
  353. package/dist/core-runtime/readers/ontology-resolve.js +48 -0
  354. package/dist/core-runtime/readers/ontology-resolve.test.js +48 -0
  355. package/dist/core-runtime/readers/patterns/index.js +7 -0
  356. package/dist/core-runtime/readers/review-log.js +213 -0
  357. package/dist/core-runtime/readers/review-log.test.js +313 -0
  358. package/dist/core-runtime/readers/scan-local.js +102 -0
  359. package/dist/core-runtime/readers/scan-local.test.js +102 -0
  360. package/dist/core-runtime/readers/scan-tarball.js +121 -0
  361. package/dist/core-runtime/readers/scan-tarball.test.js +283 -0
  362. package/dist/core-runtime/readers/scan-vault.js +34 -0
  363. package/dist/core-runtime/readers/scan-vault.test.js +81 -0
  364. package/dist/core-runtime/readers/types.js +42 -0
  365. package/dist/core-runtime/readers/types.test.js +94 -0
  366. package/dist/core-runtime/readers/viewpoint-collectors.js +229 -0
  367. package/dist/core-runtime/reconstruct/artifact-types.js +1 -0
  368. package/dist/core-runtime/reconstruct/directive-validation.js +123 -0
  369. package/dist/core-runtime/reconstruct/materialize-preparation.js +251 -0
  370. package/dist/core-runtime/reconstruct/record.js +198 -0
  371. package/dist/core-runtime/reconstruct/run.js +578 -0
  372. package/dist/core-runtime/reconstruct/seed-candidate-validation.js +356 -0
  373. package/dist/core-runtime/reconstruct/source-observations.js +62 -0
  374. package/dist/core-runtime/reconstruct/source-profiles.js +73 -0
  375. package/dist/core-runtime/release-channel/release-channel.js +90 -0
  376. package/dist/core-runtime/review/artifact-types.js +13 -0
  377. package/dist/core-runtime/review/citation-audit.js +204 -0
  378. package/dist/core-runtime/review/citation-audit.test.js +165 -0
  379. package/dist/core-runtime/review/controlled-lens-deliberation.js +125 -0
  380. package/dist/core-runtime/review/execution-plan-resolver.js +247 -0
  381. package/dist/core-runtime/review/execution-plan-resolver.test.js +243 -0
  382. package/dist/core-runtime/review/execution-topology-resolver-axis-first.test.js +246 -0
  383. package/dist/core-runtime/review/execution-topology-resolver.js +401 -0
  384. package/dist/core-runtime/review/execution-topology-resolver.test.js +315 -0
  385. package/dist/core-runtime/review/failure-records.js +57 -0
  386. package/dist/core-runtime/review/inline-context-embedder.js +141 -0
  387. package/dist/core-runtime/review/inline-context-embedder.test.js +154 -0
  388. package/dist/core-runtime/review/issue-artifact-runtime.js +859 -0
  389. package/dist/core-runtime/review/legacy-mode-policy.js +88 -0
  390. package/dist/core-runtime/review/lens-completion-policy.js +17 -0
  391. package/dist/core-runtime/review/materializers-effort-persist.test.js +79 -0
  392. package/dist/core-runtime/review/materializers.js +963 -0
  393. package/dist/core-runtime/review/ontology-path-classifier.js +179 -0
  394. package/dist/core-runtime/review/ontology-path-classifier.test.js +216 -0
  395. package/dist/core-runtime/review/packet-boundary-policy.js +215 -0
  396. package/dist/core-runtime/review/packet-boundary-policy.test.js +107 -0
  397. package/dist/core-runtime/review/participating-lens-paths.js +61 -0
  398. package/dist/core-runtime/review/participating-lens-paths.test.js +73 -0
  399. package/dist/core-runtime/review/review-artifact-utils.js +287 -0
  400. package/dist/core-runtime/review/review-config-legacy-translate.js +244 -0
  401. package/dist/core-runtime/review/review-config-legacy-translate.test.js +161 -0
  402. package/dist/core-runtime/review/review-config-validator.js +289 -0
  403. package/dist/core-runtime/review/review-config-validator.test.js +236 -0
  404. package/dist/core-runtime/review/review-execution-profile.js +193 -0
  405. package/dist/core-runtime/review/review-execution-route.js +52 -0
  406. package/dist/core-runtime/review/review-progress-contract.js +123 -0
  407. package/dist/core-runtime/review/review-record-validation.js +251 -0
  408. package/dist/core-runtime/review/review-result-classification.js +379 -0
  409. package/dist/core-runtime/review/review-state-machine.js +39 -0
  410. package/dist/core-runtime/review/route-visibility.js +125 -0
  411. package/dist/core-runtime/review/shape-pipeline-audit.test.js +311 -0
  412. package/dist/core-runtime/review/shape-to-topology-id.js +117 -0
  413. package/dist/core-runtime/review/shape-to-topology-id.test.js +132 -0
  414. package/dist/core-runtime/review/topology-shape-derivation.js +155 -0
  415. package/dist/core-runtime/review/topology-shape-derivation.test.js +195 -0
  416. package/dist/core-runtime/scope-runtime/constants.js +12 -0
  417. package/dist/core-runtime/scope-runtime/constraint-pool.js +166 -0
  418. package/dist/core-runtime/scope-runtime/constraint-pool.test.js +674 -0
  419. package/dist/core-runtime/scope-runtime/domain-validation-log.js +135 -0
  420. package/dist/core-runtime/scope-runtime/domain-validation-log.test.js +156 -0
  421. package/dist/core-runtime/scope-runtime/eval-persistence.js +65 -0
  422. package/dist/core-runtime/scope-runtime/eval-persistence.test.js +84 -0
  423. package/dist/core-runtime/scope-runtime/event-pipeline.js +64 -0
  424. package/dist/core-runtime/scope-runtime/event-pipeline.test.js +450 -0
  425. package/dist/core-runtime/scope-runtime/event-store.js +39 -0
  426. package/dist/core-runtime/scope-runtime/event-store.test.js +95 -0
  427. package/dist/core-runtime/scope-runtime/gate-guard.js +348 -0
  428. package/dist/core-runtime/scope-runtime/gate-guard.test.js +1047 -0
  429. package/dist/core-runtime/scope-runtime/hash.js +4 -0
  430. package/dist/core-runtime/scope-runtime/hash.test.js +33 -0
  431. package/dist/core-runtime/scope-runtime/id.js +4 -0
  432. package/dist/core-runtime/scope-runtime/id.test.js +17 -0
  433. package/dist/core-runtime/scope-runtime/reducer.js +297 -0
  434. package/dist/core-runtime/scope-runtime/reducer.test.js +759 -0
  435. package/dist/core-runtime/scope-runtime/scope-manager.js +161 -0
  436. package/dist/core-runtime/scope-runtime/state-machine.js +309 -0
  437. package/dist/core-runtime/scope-runtime/state-machine.test.js +704 -0
  438. package/dist/core-runtime/scope-runtime/types.js +116 -0
  439. package/dist/core-runtime/scope-runtime/types.test.js +69 -0
  440. package/dist/core-runtime/target-material-kind.js +256 -0
  441. package/dist/core-runtime/translate/render-for-user.js +169 -0
  442. package/dist/core-runtime/translate/render-for-user.test.js +122 -0
  443. package/dist/mcp/server.js +1011 -0
  444. package/dist/mcp/tool-schemas.js +93 -0
  445. package/dist/providers/capability-contract.js +1 -0
  446. package/package.json +68 -0
  447. package/settings.example.json +33 -0
package/CLAUDE.md ADDED
@@ -0,0 +1,39 @@
1
+ # CLAUDE.md
2
+
3
+ ## Authority 위계
4
+
5
+ | 순위 | 역할 | 위치 |
6
+ |---|---|---|
7
+ | 1 | 개념 SSOT | .onto/authority/core-lexicon.yaml |
8
+ | 2 | 개발 원칙: OaC | .onto/principles/ontology-as-code-guideline.md |
9
+ | 2 | 개발 원칙: LLM-Native | .onto/principles/llm-native-development-guideline.md |
10
+ | 2 | 개발 원칙: 비전문가 소통 | .onto/principles/non-specialist-communication-guideline.md |
11
+ | 2 | 개발 원칙: product 우선 | .onto/principles/product-locality-principle.md |
12
+ | 3 | 제품 방향 | .onto/principles/productization-charter.md |
13
+ | 4 | 인터페이스 명세 | .onto/principles/llm-runtime-interface-principles.md |
14
+ | 4 | 이름 규칙 | .onto/principles/ontology-as-code-naming-charter.md |
15
+ | 5 | 기능별 계약 | .onto/processes/{feature}/*.md (계약 파일) |
16
+ | 6 | 타입·구현 | src/core-runtime/ |
17
+ | 7 | 기능 프로세스 | .onto/processes/review/*.md, .onto/roles/*.md |
18
+ | 8 | 개발 기록 | development-records/ |
19
+
20
+ .onto/authority/ 구성: 개념 SSOT + runtime lens registry (core-lens-registry.yaml)
21
+ .onto/principles/ 구성: rank 2~4 개발 규범 문서 7개 (배포 제외)
22
+ 위계 밖: development-records/ (이력/참조)
23
+
24
+ ## current runtime 구조
25
+
26
+ ```
27
+ src/core-runtime/
28
+ ├── cli/ ← review bounded step entrypoints
29
+ ├── discovery/ ← settings, onto home, lens registry
30
+ ├── llm/ ← provider switcher + LLM call wrappers
31
+ ├── review/ ← review artifact types, materializers, deliberation, route policy
32
+ ├── logger.ts ← 공용 로거
33
+ ```
34
+
35
+ - **review**: 현재 제품화 대상. context-isolated lenses, controlled deliberation, synthesize, ReviewRecord를 소유한다.
36
+ - **llm**: API key / OAuth / local provider selection을 단순화한 runtime boundary다.
37
+ - **development-records/archive/**: retired CLI/process/learning/govern/evolve material을 격리 보관한다.
38
+
39
+ 동일 순위 충돌 해소: 같은 순위 파일은 규범 내용이 중복되지 않는다. 중복 발견 시, 원칙의 성격에 부합하는 파일이 canonical이며, 나머지는 참조만 한다. 예외: 동일 개념이 서로 다른 소비 목적(구조 규칙 vs 설계 가이드)으로 필요한 경우, 각 파일의 고유 범위를 확정하고 상호 참조를 명기하여 이중 존재를 허용한다.
package/README.md ADDED
@@ -0,0 +1,287 @@
1
+ # Onto MCP
2
+
3
+ `onto-mcp` is the TypeScript product core for ontology-as-code review. The
4
+ public interface is MCP-native; repository-local npm scripts remain development
5
+ harnesses for verification and debugging.
6
+
7
+ ```text
8
+ .onto contracts and domain documents
9
+ -> TS review runtime
10
+ -> core API facade
11
+ -> MCP tools
12
+ -> provider adapters
13
+ ```
14
+
15
+ ## Current Product Slice
16
+
17
+ The active implementation target is `review`.
18
+
19
+ Across `review`, `reconstruct`, and future `evolve`, targets are not assumed to
20
+ be code. Runtime contracts classify the material form with
21
+ `target_material_kind` (`code`, `spreadsheet`, `document`, `database`, `mixed`,
22
+ or `unknown`) before choosing observation, validation, or adapter behavior. The
23
+ cross-process goal contract lives at
24
+ `.onto/processes/shared/target-material-kind-contract.md`.
25
+
26
+ `review` performs:
27
+
28
+ 1. invocation interpretation and binding
29
+ 2. execution preparation artifacts
30
+ 3. isolated parallel lens execution
31
+ 4. issue ledger and issue stance closure artifacts
32
+ 5. controlled lens deliberation
33
+ 6. conservative synthesis
34
+ 7. `ReviewRecord` assembly
35
+ 8. concise human-readable final output
36
+
37
+ `reconstruct` now has a current design contract under
38
+ `.onto/processes/reconstruct/`, material-aware runtime helpers, and a bounded
39
+ happy-path runner. The runner classifies target material, writes source
40
+ observations, accepts pluggable LLM-owned directive authors and confirmation
41
+ providers, validates evidence refs, computes deterministic metrics, and writes
42
+ `final-output.md`, `reconstruct-run-manifest.yaml`, and the primary
43
+ `reconstruct-record.yaml`. Code is the first fixture; the runner path is shared
44
+ with spreadsheet/document/database material through source profiles and
45
+ material-specific observers. The current public run path is an explicit mock
46
+ semantic/confirmation happy path; domain context selection, failure
47
+ classification, and revision proposal are recorded as deferred scope.
48
+ `evolve` has a future material-kind adapter contract at
49
+ `.onto/processes/evolve/material-kind-adapter-contract.md`, but no active
50
+ runtime or MCP tool. `learn` and `govern` remain separate design slices.
51
+
52
+ ## Public Interface
53
+
54
+ Install from npm:
55
+
56
+ ```bash
57
+ npm install -g onto-mcp
58
+ ```
59
+
60
+ Start the MCP server:
61
+
62
+ ```bash
63
+ onto mcp
64
+ ```
65
+
66
+ For project-local installs, add `onto-mcp` to the project and run the local
67
+ binary:
68
+
69
+ ```bash
70
+ npm install --save-dev onto-mcp
71
+ npm exec -- onto mcp
72
+ ```
73
+
74
+ Available MCP tools:
75
+
76
+ | Tool | Purpose |
77
+ |---|---|
78
+ | `onto.review` | Run the full review path and return artifact refs plus summary |
79
+ | `onto.prepare_review` | Prepare a review session and prompt packets |
80
+ | `onto.review_status` | Read structured status and artifact refs |
81
+ | `onto.review_result` | Read `review-record.yaml` and final output |
82
+ | `onto.list_lenses` | List canonical lens sets |
83
+ | `onto.list_domains` | List available domain ids |
84
+ | `onto.list_source_profiles` | List reconstruct source profiles |
85
+ | `onto.observe_source` | Materialize reconstruct material profile, inventory, source observations, and initial record |
86
+ | `onto.validate_reconstruct_directive` | Validate LLM-authored reconstruct directive files |
87
+ | `onto.reconstruct` | Run the material-aware reconstruct happy path with explicit mock semantic/confirmation realization |
88
+ | `onto.reconstruct_status` | Read reconstruct session status and artifact refs |
89
+ | `onto.reconstruct_result` | Read `reconstruct-record.yaml`, run manifest, and final output |
90
+
91
+ MCP results include `llmPresentation` prompts. The runtime supplies bounded
92
+ facts; the host LLM should use those prompts to explain the opening brief and
93
+ final result to the user without inventing settings or findings.
94
+
95
+ Minimal reconstruct MCP call shape:
96
+
97
+ ```json
98
+ {
99
+ "name": "onto.reconstruct",
100
+ "arguments": {
101
+ "projectRoot": "/path/to/project",
102
+ "targetRefs": ["src/example.ts"],
103
+ "intent": "Create a bounded reconstruct Seed from this target.",
104
+ "sessionRoot": ".onto/reconstruct/example-run",
105
+ "semanticAuthorRealization": "mock",
106
+ "confirmationProviderRealization": "mock"
107
+ }
108
+ }
109
+ ```
110
+
111
+ `semanticAuthorRealization` and `confirmationProviderRealization` are required
112
+ so completed reconstruct runs are explicit about their current mock semantics.
113
+ Today this proves the material-aware happy path, artifact gates, and MCP
114
+ surface. It does not claim live host-LLM semantic authorship or live
115
+ user-mediated confirmation.
116
+
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
+ For MCP clients, prefer the `llmPresentation.openingBrief` and
145
+ `llmPresentation.finalResult` prompt/input pairs over CLI stdout when presenting
146
+ start and finish explanations.
147
+
148
+ Runtime hardening is available as a development verification harness:
149
+
150
+ ```bash
151
+ npm run test:review:hardening
152
+ ```
153
+
154
+ It runs large and repeated mock reviews, validates primary artifact consistency,
155
+ checks `Tools: required` native-tool boundaries, verifies provider preflight
156
+ fail-loud behavior, and removes temporary fixtures unless
157
+ `ONTO_REVIEW_HARDENING_KEEP_TMP=1` is set.
158
+
159
+ ## Settings
160
+
161
+ Runtime settings live in JSON:
162
+
163
+ | Path | Role |
164
+ |---|---|
165
+ | `{project}/.onto/settings.json` | project-local settings |
166
+ | `~/.onto/settings.json` | user defaults |
167
+
168
+ Project settings override user defaults for scalar keys.
169
+
170
+ Minimal Codex OAuth profile:
171
+
172
+ ```json
173
+ {
174
+ "llm": {
175
+ "auth": "oauth",
176
+ "provider": "openai",
177
+ "model": "gpt-5.5",
178
+ "effort": "medium",
179
+ "service_tier": "fast"
180
+ },
181
+ "review": {
182
+ "execution": {
183
+ "mode": "main-workers",
184
+ "teamlead": {
185
+ "seat": "main",
186
+ "llm": "inherit"
187
+ },
188
+ "lens": {
189
+ "seat": "worker",
190
+ "llm": "inherit"
191
+ },
192
+ "synthesize": {
193
+ "seat": "worker",
194
+ "llm": {
195
+ "effort": "xhigh"
196
+ }
197
+ },
198
+ "deliberation": "controlled-lens-deliberation"
199
+ }
200
+ },
201
+ "review_mode": "full"
202
+ }
203
+ ```
204
+
205
+ LLM switcher axes:
206
+
207
+ | auth | provider | Runtime path |
208
+ |---|---|---|
209
+ | `oauth` | `openai` | Codex worker |
210
+ | `api_key` | `openai` | OpenAI API |
211
+ | `api_key` | `anthropic` | Anthropic API |
212
+ | `api_key` | `grok` | xAI/Grok OpenAI-style API |
213
+ | `local` | `lmstudio` | LM Studio OpenAI-style endpoint |
214
+
215
+ Unsupported settings stop during profile resolution.
216
+
217
+ ## Review Artifacts
218
+
219
+ A review session writes artifacts under `.onto/review/<session-id>/`.
220
+
221
+ Primary outputs:
222
+
223
+ | Artifact | Purpose |
224
+ |---|---|
225
+ | `execution-plan.yaml` | bounded runtime plan |
226
+ | `issue-ledger.yaml` | normalized issue list |
227
+ | `issue-stance-matrix.yaml` | every participating lens stance per issue |
228
+ | `deliberation.md` | teamlead-controlled deliberation result |
229
+ | `problem-framing.yaml` | end-of-review problem classification |
230
+ | `review-run-manifest.yaml` | packet/output refs and hashes |
231
+ | `review-record.yaml` | primary structured review artifact |
232
+ | `final-output.md` | principal-facing report with `Final Review Result` explanation |
233
+
234
+ ## Reconstruct Artifacts
235
+
236
+ A reconstruct session writes artifacts under `.onto/reconstruct/<session-id>/`.
237
+
238
+ Implemented happy-path outputs:
239
+
240
+ | Artifact | Owner | Purpose |
241
+ |---|---|---|
242
+ | `target-material-profile.yaml` | runtime | detected `target_material_kind`, support status, and selected source profiles |
243
+ | `source-inventory.yaml` | runtime | material-specific inventory units and scan boundary |
244
+ | `source-observations.yaml` | runtime | structural observations with stable evidence ids |
245
+ | `source-observation-directive.yaml` | mock/host author | selected observations for evidence use |
246
+ | `source-observation-directive-validation.yaml` | runtime | validation of selected observation refs |
247
+ | `seed-candidate.yaml` | mock/host author | evidence-backed Seed candidate |
248
+ | `seed-candidate-validation.yaml` | runtime | Seed claim and evidence-ref validation |
249
+ | `seed-confirmation.yaml` | mock/host/user mediated | accepted, rejected, or partial Seed confirmation |
250
+ | `competency-questions.yaml` | mock/host author | questions linked to confirmed claims |
251
+ | `reconstruct-metrics.yaml` | runtime | deterministic counts, unresolved count, and pass rate |
252
+ | `stop-decision.yaml` | mock/host author | stop, continue, or ask-user decision based on metrics |
253
+ | `final-output.md` | mock/host author | user-facing result grounded in artifacts |
254
+ | `reconstruct-run-manifest.yaml` | runtime | step refs, `performed_by` provenance, execution profile, and happy-path scope |
255
+ | `reconstruct-record.yaml` | runtime | primary structured reconstruct artifact |
256
+
257
+ Current deferred reconstruct artifacts are recorded in
258
+ `reconstruct-run-manifest.yaml` under `happy_path_scope.deferred_artifacts`:
259
+ `domain_context_selection`, `failure_classification`, and `revision_proposal`.
260
+ Those require additional host/user semantic decisions and are outside the
261
+ current mock happy path.
262
+
263
+ ## Repository Map
264
+
265
+ | Path | Role |
266
+ |---|---|
267
+ | `.onto/authority/` | canonical ontology data and runtime registries |
268
+ | `.onto/processes/shared/` | cross-process target and runtime contracts |
269
+ | `.onto/processes/review/` | review contracts |
270
+ | `.onto/processes/reconstruct/` | reconstruct contracts and source profiles |
271
+ | `.onto/domains/` | bundled domain documents |
272
+ | `src/core-runtime/` | TypeScript runtime |
273
+ | `src/core-api/` | library facade used by MCP |
274
+ | `src/mcp/` | MCP tool surface |
275
+ | `development-records/` | development records and archived material |
276
+ | `IMPLEMENTATION_MAP.html` | visual architecture and roadmap map |
277
+
278
+ ## Verification
279
+
280
+ ```bash
281
+ npm run check:ts-core
282
+ npm run build:ts-core
283
+ npm run test:mcp:review
284
+ npm run test:review:hardening
285
+ npm run test:e2e
286
+ git diff --check
287
+ ```
package/bin/onto ADDED
@@ -0,0 +1,92 @@
1
+ #!/usr/bin/env node
2
+
3
+ // Public binary entry point for onto-mcp.
4
+ // Uses tsx for TypeScript execution in development.
5
+ // For production, compile first: npm run build
6
+ //
7
+ // Product Locality Principle (.onto/principles/product-locality-principle.md):
8
+ // If a project-local installation exists, delegate execution to it.
9
+ // --global flag bypasses delegation.
10
+
11
+ import { fileURLToPath } from "node:url";
12
+ import path from "node:path";
13
+ import { execSync } from "node:child_process";
14
+ import fs from "node:fs";
15
+
16
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
17
+ const ontoRoot = path.resolve(__dirname, "..");
18
+
19
+ // ---------------------------------------------------------------------------
20
+ // Project-local delegation (§2.1)
21
+ // ---------------------------------------------------------------------------
22
+
23
+ function findProjectRoot(startDir) {
24
+ let dir = startDir;
25
+ while (true) {
26
+ if (
27
+ fs.existsSync(path.join(dir, ".onto", "settings.json")) ||
28
+ fs.existsSync(path.join(dir, ".git")) ||
29
+ fs.existsSync(path.join(dir, "package.json"))
30
+ ) {
31
+ return dir;
32
+ }
33
+ const parent = path.dirname(dir);
34
+ if (parent === dir) return startDir;
35
+ dir = parent;
36
+ }
37
+ }
38
+
39
+ function tryDelegateToLocal(argv) {
40
+ if (argv.includes("--global")) return false;
41
+
42
+ const projectRoot = findProjectRoot(process.cwd());
43
+ const localBin = path.join(projectRoot, "node_modules", "onto-mcp", "bin", "onto");
44
+
45
+ // Don't delegate to ourselves
46
+ if (!fs.existsSync(localBin)) return false;
47
+ const resolvedLocal = fs.realpathSync(localBin);
48
+ const resolvedSelf = fs.realpathSync(fileURLToPath(import.meta.url));
49
+ if (resolvedLocal === resolvedSelf) return false;
50
+
51
+ // CON-2: Force ONTO_HOME to the local installation to prevent resource mismatch (§3 #5)
52
+ const localOntoRoot = path.resolve(path.dirname(localBin), "..");
53
+ try {
54
+ execSync(`"${process.execPath}" "${localBin}" ${argv.map(a => `"${a}"`).join(" ")}`, {
55
+ stdio: "inherit",
56
+ cwd: process.cwd(),
57
+ env: { ...process.env, ONTO_HOME: localOntoRoot },
58
+ });
59
+ } catch (error) {
60
+ process.exit(error && typeof error === "object" && "status" in error ? Number(error.status) || 1 : 1);
61
+ }
62
+ process.exit(0);
63
+ }
64
+
65
+ const userArgs = process.argv.slice(2);
66
+
67
+ if (!tryDelegateToLocal(userArgs)) {
68
+ // ---------------------------------------------------------------------------
69
+ // No local installation — run from this (global/development) binary
70
+ // ---------------------------------------------------------------------------
71
+
72
+ const distEntry = path.join(ontoRoot, "dist", "cli.js");
73
+ const srcEntry = path.join(ontoRoot, "src", "cli.ts");
74
+
75
+ if (fs.existsSync(distEntry)) {
76
+ // Production: use compiled JS
77
+ await import(distEntry);
78
+ } else {
79
+ // Development: use tsx
80
+ const tsxBin = path.join(ontoRoot, "node_modules", ".bin", "tsx");
81
+ const args = [srcEntry, ...userArgs];
82
+ try {
83
+ execSync(`"${tsxBin}" ${args.map(a => `"${a}"`).join(" ")}`, {
84
+ stdio: "inherit",
85
+ cwd: process.cwd(),
86
+ env: { ...process.env, ONTO_HOME: ontoRoot },
87
+ });
88
+ } catch (error) {
89
+ process.exit(error && typeof error === "object" && "status" in error ? Number(error.status) || 1 : 1);
90
+ }
91
+ }
92
+ }
package/dist/cli.js ADDED
@@ -0,0 +1,101 @@
1
+ #!/usr/bin/env node
2
+ import fs from "node:fs";
3
+ import os from "node:os";
4
+ import path from "node:path";
5
+ import { readOntoVersion } from "./core-runtime/release-channel/release-channel.js";
6
+ /**
7
+ * Public binary surface for the MCP-native product.
8
+ *
9
+ * Product tools are exposed through MCP (`onto mcp`). Review and other
10
+ * runtime flows are no longer public `onto <activity>` CLI commands. The
11
+ * `npm run review:*` scripts remain internal development harnesses.
12
+ */
13
+ function loadOntoEnvFile(filePath) {
14
+ if (!fs.existsSync(filePath))
15
+ return;
16
+ let contents;
17
+ try {
18
+ contents = fs.readFileSync(filePath, "utf8");
19
+ }
20
+ catch {
21
+ return;
22
+ }
23
+ for (const rawLine of contents.split(/\r?\n/)) {
24
+ const line = rawLine.trim();
25
+ if (!line || line.startsWith("#"))
26
+ continue;
27
+ const eq = line.indexOf("=");
28
+ if (eq === -1)
29
+ continue;
30
+ const key = line.slice(0, eq).trim();
31
+ if (!key || process.env[key] !== undefined)
32
+ continue;
33
+ process.env[key] = line.slice(eq + 1);
34
+ }
35
+ }
36
+ function printHelp() {
37
+ console.log([
38
+ "Usage: onto mcp",
39
+ "",
40
+ "Active interface:",
41
+ " mcp Start the MCP stdio tool server",
42
+ "",
43
+ "Available MCP tools:",
44
+ " onto.review",
45
+ " onto.prepare_review",
46
+ " onto.review_status",
47
+ " onto.review_result",
48
+ " onto.list_lenses",
49
+ " onto.list_domains",
50
+ " onto.list_source_profiles",
51
+ " onto.observe_source",
52
+ " onto.validate_reconstruct_directive",
53
+ " onto.reconstruct",
54
+ " onto.reconstruct_status",
55
+ " onto.reconstruct_result",
56
+ "",
57
+ "Development harness:",
58
+ " npm run review:invoke -- <target> \"<intent>\"",
59
+ "",
60
+ "Options:",
61
+ " --version, -v Show version",
62
+ " --help, -h Show this help",
63
+ ].join("\n"));
64
+ }
65
+ function unsupportedCommandMessage(subcommand) {
66
+ return [
67
+ `[onto] Unsupported public CLI subcommand: ${subcommand}`,
68
+ "Active public command: onto mcp",
69
+ "Development harness: npm run review:invoke -- <target> \"<intent>\"",
70
+ ].join("\n");
71
+ }
72
+ async function main() {
73
+ const argv = process.argv.slice(2);
74
+ const subcommand = argv[0];
75
+ loadOntoEnvFile(path.join(os.homedir(), ".onto", ".env"));
76
+ loadOntoEnvFile(path.join(process.cwd(), ".onto", ".env"));
77
+ switch (subcommand) {
78
+ case "mcp": {
79
+ const { startMcpServer } = await import("./mcp/server.js");
80
+ return startMcpServer();
81
+ }
82
+ case "--version":
83
+ case "-v": {
84
+ const version = await readOntoVersion();
85
+ console.log(`onto-mcp ${version}`);
86
+ return 0;
87
+ }
88
+ case "--help":
89
+ case "-h":
90
+ case undefined:
91
+ printHelp();
92
+ return 0;
93
+ default:
94
+ console.error(unsupportedCommandMessage(subcommand));
95
+ return 1;
96
+ }
97
+ }
98
+ main().then((exitCode) => process.exit(exitCode), (error) => {
99
+ console.error(error instanceof Error ? error.message : String(error));
100
+ process.exit(1);
101
+ });