oh-my-knowledge 1.0.0-beta.13 → 1.0.0-beta.14

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 (437) hide show
  1. package/README.md +23 -144
  2. package/README.zh.md +23 -144
  3. package/dist/assets/agent-skills/omk/SKILL.md +6 -8
  4. package/dist/assets/agent-skills/omk/references/commands.md +24 -128
  5. package/dist/cli/commands/eval/index.d.ts +0 -1
  6. package/dist/cli/commands/eval/index.js +0 -6
  7. package/dist/cli/commands/evolve.js +5 -43
  8. package/dist/cli/commands/init.js +1 -1
  9. package/dist/cli/commands/install.d.ts +1 -1
  10. package/dist/cli/commands/install.js +25 -55
  11. package/dist/cli/commands/observe/index.d.ts +0 -1
  12. package/dist/cli/commands/observe/index.js +2 -60
  13. package/dist/cli/commands/observe/knowledge.d.ts +8 -0
  14. package/dist/cli/commands/observe/knowledge.js +58 -12
  15. package/dist/cli/commands/studio.js +2 -6
  16. package/dist/cli/lib/cell-format.d.ts +1 -5
  17. package/dist/cli/lib/cell-format.js +1 -5
  18. package/dist/cli/lib/i18n-dict/common.d.ts +1 -1
  19. package/dist/cli/lib/i18n-dict/common.js +0 -8
  20. package/dist/cli/lib/i18n-dict/evolve.d.ts +1 -1
  21. package/dist/cli/lib/i18n-dict/evolve.js +2 -6
  22. package/dist/cli/lib/i18n-dict/install.d.ts +1 -1
  23. package/dist/cli/lib/i18n-dict/install.js +2 -6
  24. package/dist/cli/lib/i18n-dict.d.ts +1 -4
  25. package/dist/cli/lib/i18n-dict.js +0 -6
  26. package/dist/cli/lib/prepare-evaluation.js +1 -1
  27. package/dist/cli/lib/resolve-skill-input.d.ts +0 -1
  28. package/dist/cli/lib/run-core-evaluation.js +0 -12
  29. package/dist/dsh-plugin/core-command.js +1 -8
  30. package/dist/dsh-plugin/index.js +0 -1
  31. package/dist/eval-core/analysis/bootstrap.d.ts +1 -1
  32. package/dist/eval-workflows/hosts/application.d.ts +4 -10
  33. package/dist/eval-workflows/hosts/application.js +2 -17
  34. package/dist/eval-workflows/hosts/carrier-measurement.d.ts +18 -0
  35. package/dist/eval-workflows/hosts/carrier-measurement.js +249 -0
  36. package/dist/eval-workflows/hosts/composition/evolution-evaluation.js +0 -1
  37. package/dist/eval-workflows/hosts/input-resolution/node-cli-evaluation-resolver.js +0 -1
  38. package/dist/{cli/lib/evaluation-composition.d.ts → eval-workflows/hosts/node-environment.d.ts} +1 -1
  39. package/dist/{cli/lib/evaluation-composition.js → eval-workflows/hosts/node-environment.js} +1 -1
  40. package/dist/eval-workflows/input-compilation/compile.js +0 -2
  41. package/dist/eval-workflows/input-compilation/parse.js +0 -6
  42. package/dist/eval-workflows/input-compilation/registry.d.ts +1 -1
  43. package/dist/eval-workflows/input-compilation/registry.js +0 -3
  44. package/dist/eval-workflows/input-compilation/types.d.ts +2 -4
  45. package/dist/eval-workflows/input-compilation/types.js +2 -2
  46. package/dist/eval-workflows/inputs/contracts/sample.d.ts +2 -2
  47. package/dist/eval-workflows/instruments/prompts/judge-prompts.js +1 -1
  48. package/dist/eval-workflows/orchestration/evaluation-service.d.ts +2 -0
  49. package/dist/eval-workflows/orchestration/evaluation-service.js +4 -0
  50. package/dist/eval-workflows/projections/carrier-measurement.d.ts +72 -0
  51. package/dist/eval-workflows/projections/contracts.d.ts +1 -46
  52. package/dist/eval-workflows/projections/contracts.js +0 -1
  53. package/dist/eval-workflows/projections/index.d.ts +0 -1
  54. package/dist/eval-workflows/projections/index.js +0 -1
  55. package/dist/evidence/storage/directories.d.ts +2 -2
  56. package/dist/evidence/storage/directories.js +4 -4
  57. package/dist/evidence/storage/layout.d.ts +0 -2
  58. package/dist/evidence/storage/layout.js +0 -3
  59. package/dist/knowledge/entities/contracts.d.ts +327 -0
  60. package/dist/knowledge/entities/contracts.js +42 -0
  61. package/dist/knowledge/entities/history.d.ts +4 -0
  62. package/dist/knowledge/entities/history.js +61 -0
  63. package/dist/knowledge/entities/identity.d.ts +48 -0
  64. package/dist/knowledge/entities/identity.js +101 -0
  65. package/dist/knowledge/entities/validation.d.ts +6 -0
  66. package/dist/knowledge/entities/validation.js +62 -0
  67. package/dist/knowledge/history.js +1 -1
  68. package/dist/knowledge/library/contracts.d.ts +161 -0
  69. package/dist/knowledge/library/contracts.js +38 -0
  70. package/dist/knowledge/library/history.d.ts +3 -0
  71. package/dist/knowledge/library/history.js +46 -0
  72. package/dist/knowledge/store.d.ts +9 -1
  73. package/dist/knowledge/store.js +2 -1
  74. package/dist/knowledge/tags.d.ts +12 -0
  75. package/dist/knowledge/tags.js +6 -0
  76. package/dist/knowledge-artifacts/authoring/core-evolver.d.ts +0 -1
  77. package/dist/knowledge-artifacts/authoring/core-evolver.js +1 -1
  78. package/dist/knowledge-artifacts/authoring/knowledge-content.d.ts +19 -0
  79. package/dist/knowledge-artifacts/authoring/knowledge-content.js +151 -0
  80. package/dist/knowledge-artifacts/authoring/knowledge-review.d.ts +9 -0
  81. package/dist/knowledge-artifacts/authoring/knowledge-review.js +38 -0
  82. package/dist/knowledge-artifacts/authoring/library-contracts.d.ts +98 -0
  83. package/dist/knowledge-artifacts/authoring/library-contracts.js +1 -0
  84. package/dist/knowledge-artifacts/authoring/library.d.ts +18 -0
  85. package/dist/knowledge-artifacts/authoring/library.js +159 -0
  86. package/dist/knowledge-artifacts/doctor/messages.js +6 -6
  87. package/dist/knowledge-artifacts/doctor/rules.d.ts +1 -1
  88. package/dist/knowledge-artifacts/doctor/rules.js +1 -1
  89. package/dist/knowledge-artifacts/sources/artifact-resolution.js +2 -4
  90. package/dist/knowledge-artifacts/sources/content-hash.js +1 -1
  91. package/dist/knowledge-artifacts/sources/install-source.d.ts +4 -14
  92. package/dist/knowledge-artifacts/sources/install-source.js +6 -14
  93. package/dist/knowledge-artifacts/sources/materialize-copy.d.ts +1 -1
  94. package/dist/observability/analysis/gap-analyzer.d.ts +1 -1
  95. package/dist/observability/analysis/gap-analyzer.js +1 -1
  96. package/dist/observability/application.d.ts +9 -0
  97. package/dist/observability/application.js +6 -0
  98. package/dist/observability/knowledge-extraction/adapters/entity-store.d.ts +12 -0
  99. package/dist/observability/knowledge-extraction/adapters/entity-store.js +94 -0
  100. package/dist/observability/knowledge-extraction/adapters/executor.js +2 -1
  101. package/dist/observability/knowledge-extraction/adapters/knowledge-store.d.ts +2 -1
  102. package/dist/observability/knowledge-extraction/adapters/knowledge-store.js +25 -12
  103. package/dist/observability/knowledge-extraction/adapters/knowledge-tags.d.ts +12 -0
  104. package/dist/observability/knowledge-extraction/adapters/knowledge-tags.js +67 -0
  105. package/dist/observability/knowledge-extraction/adapters/library-store.d.ts +11 -0
  106. package/dist/observability/knowledge-extraction/adapters/library-store.js +72 -0
  107. package/dist/observability/knowledge-extraction/adapters/run-store.d.ts +2 -1
  108. package/dist/observability/knowledge-extraction/adapters/run-store.js +26 -10
  109. package/dist/observability/knowledge-extraction/adapters/storage-state.d.ts +11 -0
  110. package/dist/observability/knowledge-extraction/adapters/storage-state.js +92 -0
  111. package/dist/observability/knowledge-extraction/application.d.ts +1299 -30
  112. package/dist/observability/knowledge-extraction/application.js +191 -22
  113. package/dist/observability/knowledge-extraction/auto-extraction.d.ts +140 -0
  114. package/dist/observability/knowledge-extraction/auto-extraction.js +316 -0
  115. package/dist/observability/knowledge-extraction/conversation-source.d.ts +41 -0
  116. package/dist/observability/knowledge-extraction/conversation-source.js +55 -0
  117. package/dist/observability/knowledge-extraction/entities.d.ts +65 -0
  118. package/dist/observability/knowledge-extraction/entities.js +123 -0
  119. package/dist/observability/knowledge-extraction/entity-catalog.d.ts +89 -0
  120. package/dist/observability/knowledge-extraction/entity-catalog.js +41 -0
  121. package/dist/observability/knowledge-extraction/library.d.ts +392 -0
  122. package/dist/observability/knowledge-extraction/library.js +197 -0
  123. package/dist/observability/knowledge-extraction/local.js +6 -2
  124. package/dist/observability/knowledge-extraction/prompt.d.ts +1 -1
  125. package/dist/observability/knowledge-extraction/prompt.js +35 -8
  126. package/dist/observability/knowledge-extraction/proposals.d.ts +15 -160
  127. package/dist/observability/knowledge-extraction/proposals.js +17 -51
  128. package/dist/observability/knowledge-extraction/quote-occurrence.d.ts +9 -0
  129. package/dist/observability/knowledge-extraction/quote-occurrence.js +31 -0
  130. package/dist/observability/knowledge-extraction/runs.d.ts +118 -4
  131. package/dist/observability/knowledge-extraction/runs.js +74 -2
  132. package/dist/observability/knowledge-extraction/window-proposals.d.ts +198 -0
  133. package/dist/observability/knowledge-extraction/window-proposals.js +88 -0
  134. package/dist/observability/skill-health/analyzer.d.ts +1 -2
  135. package/dist/observability/skill-health/analyzer.js +1 -2
  136. package/dist/observability/skill-health/persistence.d.ts +0 -8
  137. package/dist/observability/skill-health/persistence.js +0 -22
  138. package/dist/studio/application/conversations/conversation-extraction.d.ts +1 -41
  139. package/dist/studio/application/conversations/conversation-extraction.js +1 -53
  140. package/dist/studio/application/directory-sources.d.ts +1 -3
  141. package/dist/studio/application/directory-sources.js +0 -1
  142. package/dist/studio/application/display/conversation-label.d.ts +1 -1
  143. package/dist/studio/application/display/conversation-label.js +15 -2
  144. package/dist/studio/application/knowledge/artifact-authoring.d.ts +42 -0
  145. package/dist/studio/application/knowledge/artifact-authoring.js +85 -0
  146. package/dist/studio/application/knowledge/auto-extraction.d.ts +42 -0
  147. package/dist/studio/application/knowledge/auto-extraction.js +18 -0
  148. package/dist/studio/application/knowledge/candidate-review.d.ts +5 -0
  149. package/dist/studio/application/knowledge/candidate-review.js +20 -0
  150. package/dist/studio/application/knowledge/doctor-format.d.ts +1 -1
  151. package/dist/studio/application/knowledge/knowledge-candidates.js +44 -18
  152. package/dist/studio/application/knowledge/knowledge-library.d.ts +338 -0
  153. package/dist/studio/application/knowledge/knowledge-library.js +23 -0
  154. package/dist/studio/application/knowledge/library-view.d.ts +22 -0
  155. package/dist/studio/application/knowledge/library-view.js +7 -0
  156. package/dist/studio/application/measure/carrier-measurement.d.ts +20 -0
  157. package/dist/studio/application/measure/carrier-measurement.js +51 -0
  158. package/dist/studio/application/measure/core-run-format.d.ts +12 -1
  159. package/dist/studio/application/measure/core-run-format.js +69 -1
  160. package/dist/studio/http/contracts.d.ts +0 -2
  161. package/dist/studio/http/next-context.d.ts +0 -2
  162. package/dist/studio/http/next-context.js +0 -1
  163. package/dist/studio/http/next-server.js +11 -31
  164. package/dist/studio/http/page-paths.d.ts +2 -2
  165. package/dist/studio/http/page-paths.js +2 -2
  166. package/dist/studio/http/pages/knowledge-page.d.ts +1 -1
  167. package/dist/studio/http/pages/knowledge-page.js +3 -3
  168. package/dist/studio/http/pages/measure-page.d.ts +2 -2
  169. package/dist/studio/http/pages/measure-page.js +4 -2
  170. package/dist/studio/http/request-handler.d.ts +1 -1
  171. package/dist/studio/http/request-handler.js +19 -6
  172. package/dist/studio/http/routes/artifact-authoring.d.ts +1 -0
  173. package/dist/studio/http/routes/artifact-authoring.js +34 -0
  174. package/dist/studio/http/routes/carrier-measurement.d.ts +8 -0
  175. package/dist/studio/http/routes/carrier-measurement.js +34 -0
  176. package/dist/studio/http/routes/knowledge-candidates.d.ts +2 -2
  177. package/dist/studio/http/routes/knowledge-candidates.js +41 -31
  178. package/dist/studio/http/routes/knowledge.d.ts +1 -2
  179. package/dist/studio/http/routes/knowledge.js +1 -14
  180. package/dist/studio/view-models/display/tone.d.ts +1 -2
  181. package/dist/studio/view-models/knowledge/artifact-authoring.d.ts +2 -0
  182. package/dist/studio/view-models/knowledge/artifact-authoring.js +1 -0
  183. package/dist/studio/view-models/knowledge/knowledge-candidates.d.ts +55 -12
  184. package/dist/studio/view-models/knowledge/knowledge-library.d.ts +4 -0
  185. package/dist/studio/view-models/knowledge/knowledge-library.js +1 -0
  186. package/dist/studio/view-models/measure/carrier-measurement.d.ts +1 -0
  187. package/dist/studio/view-models/measure/carrier-measurement.js +1 -0
  188. package/dist/studio/view-models/measure/core-runs.d.ts +6 -0
  189. package/dist/studio/web/.next/BUILD_ID +1 -1
  190. package/dist/studio/web/.next/app-path-routes-manifest.json +4 -4
  191. package/dist/studio/web/.next/build-manifest.json +4 -4
  192. package/dist/studio/web/.next/next-minimal-server.js.nft.json +1 -1
  193. package/dist/studio/web/.next/next-server.js.nft.json +1 -1
  194. package/dist/studio/web/.next/prerender-manifest.json +4 -4
  195. package/dist/studio/web/.next/required-server-files.js +16 -1
  196. package/dist/studio/web/.next/required-server-files.json +16 -1
  197. package/dist/studio/web/.next/routes-manifest.json +9 -11
  198. package/dist/studio/web/.next/server/app/_global-error/page.js +2 -2
  199. package/dist/studio/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  200. package/dist/studio/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  201. package/dist/studio/web/.next/server/app/_global-error.html +1 -1
  202. package/dist/studio/web/.next/server/app/_global-error.meta +8 -0
  203. package/dist/studio/web/.next/server/app/_global-error.rsc +30 -18
  204. package/dist/studio/web/.next/server/app/_global-error.segments/_full.segment.rsc +30 -18
  205. package/dist/studio/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +36 -24
  206. package/dist/studio/web/.next/server/app/_global-error.segments/_tree.segment.rsc +3 -1
  207. package/dist/studio/web/.next/server/app/_not-found/page.js +1 -1
  208. package/dist/studio/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  209. package/dist/studio/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  210. package/dist/studio/web/.next/server/app/agents/page.js +1 -1
  211. package/dist/studio/web/.next/server/app/agents/page.js.nft.json +1 -1
  212. package/dist/studio/web/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  213. package/dist/studio/web/.next/server/app/knowledge/candidates/page.js +1 -1
  214. package/dist/studio/web/.next/server/app/knowledge/candidates/page.js.nft.json +1 -1
  215. package/dist/studio/web/.next/server/app/knowledge/candidates/page_client-reference-manifest.js +1 -1
  216. package/dist/studio/web/.next/server/app/knowledge/entities/page.js +1 -0
  217. package/dist/studio/web/.next/server/app/knowledge/entities/page.js.nft.json +1 -0
  218. package/dist/studio/web/.next/server/app/knowledge/entities/page_client-reference-manifest.js +1 -0
  219. package/dist/studio/web/.next/server/app/knowledge/library/page.js +1 -0
  220. package/dist/studio/web/.next/server/app/knowledge/library/page.js.nft.json +1 -0
  221. package/dist/studio/web/.next/server/app/knowledge/library/page_client-reference-manifest.js +1 -0
  222. package/dist/studio/web/.next/server/app/knowledge/page.js +1 -1
  223. package/dist/studio/web/.next/server/app/knowledge/page.js.nft.json +1 -1
  224. package/dist/studio/web/.next/server/app/knowledge/page_client-reference-manifest.js +1 -1
  225. package/dist/studio/web/.next/server/app/knowledge/skills/[skillName]/page.js +1 -1
  226. package/dist/studio/web/.next/server/app/knowledge/skills/[skillName]/page.js.nft.json +1 -1
  227. package/dist/studio/web/.next/server/app/knowledge/skills/[skillName]/page_client-reference-manifest.js +1 -1
  228. package/dist/studio/web/.next/server/app/measure/[runId]/page.js +1 -1
  229. package/dist/studio/web/.next/server/app/measure/[runId]/page.js.nft.json +1 -1
  230. package/dist/studio/web/.next/server/app/measure/[runId]/page_client-reference-manifest.js +1 -1
  231. package/dist/studio/web/.next/server/app/measure/page.js +1 -1
  232. package/dist/studio/web/.next/server/app/measure/page.js.nft.json +1 -1
  233. package/dist/studio/web/.next/server/app/measure/page_client-reference-manifest.js +1 -1
  234. package/dist/studio/web/.next/server/app/observe/conversations/[threadId]/page.js +1 -1
  235. package/dist/studio/web/.next/server/app/observe/conversations/[threadId]/page.js.nft.json +1 -1
  236. package/dist/studio/web/.next/server/app/observe/conversations/[threadId]/page_client-reference-manifest.js +1 -1
  237. package/dist/studio/web/.next/server/app/observe/conversations/[threadId]/tasks/[turnId]/page.js +1 -1
  238. package/dist/studio/web/.next/server/app/observe/conversations/[threadId]/tasks/[turnId]/page.js.nft.json +1 -1
  239. package/dist/studio/web/.next/server/app/observe/conversations/[threadId]/tasks/[turnId]/page_client-reference-manifest.js +1 -1
  240. package/dist/studio/web/.next/server/app/observe/health/[analysisId]/page.js +1 -1
  241. package/dist/studio/web/.next/server/app/observe/health/[analysisId]/page.js.nft.json +1 -1
  242. package/dist/studio/web/.next/server/app/observe/health/[analysisId]/page_client-reference-manifest.js +1 -1
  243. package/dist/studio/web/.next/server/app/observe/health/page.js +1 -1
  244. package/dist/studio/web/.next/server/app/observe/health/page.js.nft.json +1 -1
  245. package/dist/studio/web/.next/server/app/observe/health/page_client-reference-manifest.js +1 -1
  246. package/dist/studio/web/.next/server/app/observe/health-diff/page.js +1 -1
  247. package/dist/studio/web/.next/server/app/observe/health-diff/page.js.nft.json +1 -1
  248. package/dist/studio/web/.next/server/app/observe/health-diff/page_client-reference-manifest.js +1 -1
  249. package/dist/studio/web/.next/server/app/observe/inbox/page.js +2 -2
  250. package/dist/studio/web/.next/server/app/observe/inbox/page.js.nft.json +1 -1
  251. package/dist/studio/web/.next/server/app/observe/inbox/page_client-reference-manifest.js +1 -1
  252. package/dist/studio/web/.next/server/app/observe/page.js +1 -1
  253. package/dist/studio/web/.next/server/app/observe/page.js.nft.json +1 -1
  254. package/dist/studio/web/.next/server/app/observe/page_client-reference-manifest.js +1 -1
  255. package/dist/studio/web/.next/server/app/observe/skill-trend/[skillName]/page.js +1 -1
  256. package/dist/studio/web/.next/server/app/observe/skill-trend/[skillName]/page.js.nft.json +1 -1
  257. package/dist/studio/web/.next/server/app/observe/skill-trend/[skillName]/page_client-reference-manifest.js +1 -1
  258. package/dist/studio/web/.next/server/app-paths-manifest.json +4 -4
  259. package/dist/studio/web/.next/server/chunks/132.js +1 -0
  260. package/dist/studio/web/.next/server/chunks/272.js +1 -0
  261. package/dist/studio/web/.next/server/chunks/{374.js → 285.js} +2 -2
  262. package/dist/studio/web/.next/server/chunks/312.js +1 -0
  263. package/dist/studio/web/.next/server/chunks/33.js +1 -0
  264. package/dist/studio/web/.next/server/chunks/335.js +1 -13
  265. package/dist/studio/web/.next/server/chunks/{584.js → 34.js} +5 -2
  266. package/dist/studio/web/.next/server/chunks/388.js +1 -0
  267. package/dist/studio/web/.next/server/chunks/464.js +2 -2
  268. package/dist/studio/web/.next/server/chunks/499.js +1 -1
  269. package/dist/studio/web/.next/server/chunks/562.js +1 -0
  270. package/dist/studio/web/.next/server/chunks/57.js +10 -0
  271. package/dist/studio/web/.next/server/chunks/671.js +1 -0
  272. package/dist/studio/web/.next/server/chunks/757.js +4 -0
  273. package/dist/studio/web/.next/server/chunks/772.js +1 -1
  274. package/dist/studio/web/.next/server/chunks/777.js +1 -0
  275. package/dist/studio/web/.next/server/chunks/78.js +1 -0
  276. package/dist/studio/web/.next/server/chunks/793.js +907 -0
  277. package/dist/studio/web/.next/server/chunks/803.js +1 -0
  278. package/dist/studio/web/.next/server/chunks/811.js +1 -0
  279. package/dist/studio/web/.next/server/chunks/84.js +3 -3
  280. package/dist/studio/web/.next/server/chunks/845.js +6 -0
  281. package/dist/studio/web/.next/server/chunks/949.js +55 -0
  282. package/dist/studio/web/.next/server/chunks/987.js +1 -0
  283. package/dist/studio/web/.next/server/middleware-build-manifest.js +1 -1
  284. package/dist/studio/web/.next/server/pages/500.html +1 -1
  285. package/dist/studio/web/.next/server/preview-props.json +5 -0
  286. package/dist/studio/web/.next/server/server-reference-manifest.json +1 -1
  287. package/dist/studio/web/.next/static/chunks/0937d497-cb7a9ff884a082ab.js +1 -0
  288. package/dist/studio/web/.next/static/chunks/1550-8655e6e988ed925d.js +55 -0
  289. package/dist/studio/web/.next/static/chunks/1858-ae2f35e65c0ca7d5.js +52 -0
  290. package/dist/studio/web/.next/static/chunks/2038-39b8b64415693d72.js +1 -0
  291. package/dist/studio/web/.next/static/chunks/2192-3a82fac42d5470cb.js +16 -0
  292. package/dist/studio/web/.next/static/chunks/{285-ee2bde496eae900b.js → 285-6bae73aced9b94d9.js} +4 -4
  293. package/dist/studio/web/.next/static/chunks/2953-ecd3f863c308edd6.js +41 -0
  294. package/dist/studio/web/.next/static/chunks/3435-00b4fbf4aa14a9af.js +1 -0
  295. package/dist/studio/web/.next/static/chunks/3958-1fa29558b4d99167.js +1 -0
  296. package/dist/studio/web/.next/static/chunks/3978-415a489ab1667812.js +1 -0
  297. package/dist/studio/web/.next/static/chunks/4-efa96fd3354dd00f.js +1 -0
  298. package/dist/studio/web/.next/static/chunks/5014-d863a9f62fbce3d9.js +1 -0
  299. package/dist/studio/web/.next/static/chunks/5382-1b919cde624bb761.js +1 -0
  300. package/dist/studio/web/.next/static/chunks/5669-c7c2d55e48ca0654.js +4 -0
  301. package/dist/studio/web/.next/static/chunks/5686-889bc419951f97b0.js +10 -0
  302. package/dist/studio/web/.next/static/chunks/5834-8ae3cace4e65870b.js +1 -0
  303. package/dist/studio/web/.next/static/chunks/7095-82772c89aecce311.js +19 -0
  304. package/dist/studio/web/.next/static/chunks/7103-1245dcb14501dcbe.js +1 -0
  305. package/dist/studio/web/.next/static/chunks/7703-3f2eeb40539b244a.js +1 -0
  306. package/dist/studio/web/.next/static/chunks/7754-4a1e255edea968a8.js +4 -0
  307. package/dist/studio/web/.next/static/chunks/{7576-0651db5aa8473f62.js → 7936-1fe24cff93665d92.js} +8 -8
  308. package/dist/studio/web/.next/static/chunks/7956-961871b7f06d5154.js +6 -0
  309. package/dist/studio/web/.next/static/chunks/8284-61d4bd3af6cde82f.js +1 -0
  310. package/dist/studio/web/.next/static/chunks/8704-6257f6e867d6298a.js +10 -0
  311. package/dist/studio/web/.next/static/chunks/8908-d585f523c5616336.js +1 -0
  312. package/dist/studio/web/.next/static/chunks/9066-417bfe2622f7c6c6.js +1 -0
  313. package/dist/studio/web/.next/static/chunks/9978-2b5578a391a0f389.js +9 -0
  314. package/dist/studio/web/.next/static/chunks/app/agents/page-ccd392fdc4feb767.js +1 -0
  315. package/dist/studio/web/.next/static/chunks/app/{error-da3a9e3657f1dc15.js → error-b4cdd259571bfddc.js} +1 -1
  316. package/dist/studio/web/.next/static/chunks/app/knowledge/candidates/page-87818ef4fbceab6a.js +1 -0
  317. package/dist/studio/web/.next/static/chunks/app/knowledge/entities/page-685a1b293b46298d.js +1 -0
  318. package/dist/studio/web/.next/static/chunks/app/knowledge/library/page-fd56dc775a86e423.js +1 -0
  319. package/dist/studio/web/.next/static/chunks/app/knowledge/page-d81f232d6f4b4a9c.js +1 -0
  320. package/dist/studio/web/.next/static/chunks/app/knowledge/skills/[skillName]/page-e55ee423ad3af267.js +1 -0
  321. package/dist/studio/web/.next/static/chunks/app/{layout-872f1dfcd7ede526.js → layout-33179810f5d93c07.js} +1 -1
  322. package/dist/studio/web/.next/static/chunks/app/{loading-459503db9bf76ee0.js → loading-5eff71aa13fa6fdb.js} +1 -1
  323. package/dist/studio/web/.next/static/chunks/app/measure/[runId]/page-68897c54cc7e35a9.js +1 -0
  324. package/dist/studio/web/.next/static/chunks/app/measure/page-a867aa25d5970346.js +1 -0
  325. package/dist/studio/web/.next/static/chunks/app/{not-found-5b86ee2b9fd19a95.js → not-found-42b8668344a5414a.js} +1 -1
  326. package/dist/studio/web/.next/static/chunks/app/observe/conversations/[threadId]/page-62e3f9d8baf73de3.js +1 -0
  327. package/dist/studio/web/.next/static/chunks/app/observe/conversations/[threadId]/tasks/[turnId]/page-b9e50731b2d36271.js +1 -0
  328. package/dist/studio/web/.next/static/chunks/app/observe/health/[analysisId]/page-b4533c8059fa01e6.js +1 -0
  329. package/dist/studio/web/.next/static/chunks/app/observe/health/page-c2b2ba39a7cb1f6f.js +1 -0
  330. package/dist/studio/web/.next/static/chunks/app/observe/health-diff/page-3ee1e330242c46c3.js +1 -0
  331. package/dist/studio/web/.next/static/chunks/app/observe/inbox/page-fe295ccd0fa2cb10.js +1 -0
  332. package/dist/studio/web/.next/static/chunks/app/observe/page-8f4dec4a52794fae.js +1 -0
  333. package/dist/studio/web/.next/static/chunks/app/observe/skill-trend/[skillName]/page-be013760e79d259a.js +1 -0
  334. package/dist/studio/web/.next/static/chunks/framework-ba3537adc78ec474.js +1 -0
  335. package/dist/studio/web/.next/static/chunks/main-66b6ab45aa0fce29.js +5 -0
  336. package/dist/studio/web/.next/static/css/43b8660429d21bfd.css +1 -0
  337. package/dist/studio/web/.next/static/vi-Wf9wVz6KtDrndi6cz6/_buildManifest.js +1 -0
  338. package/dist/studio/web/.next/trace +92 -47
  339. package/dist/studio/web/.next/trace-build +1 -1
  340. package/package.json +5 -5
  341. package/dist/cli/commands/list.d.ts +0 -26
  342. package/dist/cli/commands/list.js +0 -121
  343. package/dist/cli/commands/promote.d.ts +0 -24
  344. package/dist/cli/commands/promote.js +0 -141
  345. package/dist/cli/commands/rollback.d.ts +0 -20
  346. package/dist/cli/commands/rollback.js +0 -87
  347. package/dist/cli/lib/actor.d.ts +0 -2
  348. package/dist/cli/lib/actor.js +0 -13
  349. package/dist/cli/lib/i18n-dict/list.d.ts +0 -3
  350. package/dist/cli/lib/i18n-dict/list.js +0 -40
  351. package/dist/cli/lib/i18n-dict/promote.d.ts +0 -3
  352. package/dist/cli/lib/i18n-dict/promote.js +0 -46
  353. package/dist/cli/lib/i18n-dict/rollback.d.ts +0 -3
  354. package/dist/cli/lib/i18n-dict/rollback.js +0 -22
  355. package/dist/eval-workflows/projections/managed.d.ts +0 -8
  356. package/dist/eval-workflows/projections/managed.js +0 -105
  357. package/dist/knowledge-artifacts/governance/contracts.d.ts +0 -158
  358. package/dist/knowledge-artifacts/governance/evidence.d.ts +0 -25
  359. package/dist/knowledge-artifacts/governance/evidence.js +0 -111
  360. package/dist/knowledge-artifacts/governance/evolve-outcome.d.ts +0 -16
  361. package/dist/knowledge-artifacts/governance/evolve-outcome.js +0 -41
  362. package/dist/knowledge-artifacts/governance/index.d.ts +0 -11
  363. package/dist/knowledge-artifacts/governance/index.js +0 -11
  364. package/dist/knowledge-artifacts/governance/install.d.ts +0 -29
  365. package/dist/knowledge-artifacts/governance/install.js +0 -63
  366. package/dist/knowledge-artifacts/governance/list-query.d.ts +0 -7
  367. package/dist/knowledge-artifacts/governance/list-query.js +0 -11
  368. package/dist/knowledge-artifacts/governance/list-view.d.ts +0 -67
  369. package/dist/knowledge-artifacts/governance/list-view.js +0 -77
  370. package/dist/knowledge-artifacts/governance/observe-feedback.d.ts +0 -73
  371. package/dist/knowledge-artifacts/governance/observe-feedback.js +0 -59
  372. package/dist/knowledge-artifacts/governance/promote-gate.d.ts +0 -34
  373. package/dist/knowledge-artifacts/governance/promote-gate.js +0 -32
  374. package/dist/knowledge-artifacts/governance/source-probe.d.ts +0 -15
  375. package/dist/knowledge-artifacts/governance/source-probe.js +0 -129
  376. package/dist/knowledge-artifacts/governance/store.d.ts +0 -145
  377. package/dist/knowledge-artifacts/governance/store.js +0 -594
  378. package/dist/studio/application/knowledge/managed-format.d.ts +0 -58
  379. package/dist/studio/application/knowledge/managed-format.js +0 -113
  380. package/dist/studio/http/managed-root.d.ts +0 -12
  381. package/dist/studio/http/managed-root.js +0 -19
  382. package/dist/studio/http/pages/managed-page.d.ts +0 -30
  383. package/dist/studio/http/pages/managed-page.js +0 -44
  384. package/dist/studio/web/.next/server/app/knowledge/managed/[managedId]/page.js +0 -1
  385. package/dist/studio/web/.next/server/app/knowledge/managed/[managedId]/page.js.nft.json +0 -1
  386. package/dist/studio/web/.next/server/app/knowledge/managed/[managedId]/page_client-reference-manifest.js +0 -1
  387. package/dist/studio/web/.next/server/app/knowledge/managed/page.js +0 -1
  388. package/dist/studio/web/.next/server/app/knowledge/managed/page.js.nft.json +0 -1
  389. package/dist/studio/web/.next/server/app/knowledge/managed/page_client-reference-manifest.js +0 -1
  390. package/dist/studio/web/.next/server/chunks/3.js +0 -1
  391. package/dist/studio/web/.next/server/chunks/475.js +0 -1
  392. package/dist/studio/web/.next/server/chunks/5.js +0 -1
  393. package/dist/studio/web/.next/server/chunks/740.js +0 -3
  394. package/dist/studio/web/.next/server/chunks/789.js +0 -6
  395. package/dist/studio/web/.next/server/chunks/827.js +0 -583
  396. package/dist/studio/web/.next/server/chunks/881.js +0 -1
  397. package/dist/studio/web/.next/server/chunks/955.js +0 -1
  398. package/dist/studio/web/.next/server/chunks/996.js +0 -1
  399. package/dist/studio/web/.next/static/Ahppnr7sbzLwhsw77RqCy/_buildManifest.js +0 -1
  400. package/dist/studio/web/.next/static/chunks/0937d497-e4b3c577da4da67b.js +0 -1
  401. package/dist/studio/web/.next/static/chunks/1858-3ad7971aef7540de.js +0 -52
  402. package/dist/studio/web/.next/static/chunks/2038-b941bab2ee1ef91a.js +0 -1
  403. package/dist/studio/web/.next/static/chunks/258-9e85d3d73100f7d7.js +0 -10
  404. package/dist/studio/web/.next/static/chunks/2666-022e0893a8ce80b1.js +0 -4
  405. package/dist/studio/web/.next/static/chunks/2953-32389c228338c03f.js +0 -53
  406. package/dist/studio/web/.next/static/chunks/3958-b95d9b60fc7f9eaf.js +0 -1
  407. package/dist/studio/web/.next/static/chunks/4684-62296d31718b47b2.js +0 -1
  408. package/dist/studio/web/.next/static/chunks/5067-75d71f6808309f44.js +0 -6
  409. package/dist/studio/web/.next/static/chunks/5669-9f0ec3bc92ab3392.js +0 -3
  410. package/dist/studio/web/.next/static/chunks/5834-ceadd3ef88dd5027.js +0 -1
  411. package/dist/studio/web/.next/static/chunks/6651-392fd48cf473d253.js +0 -16
  412. package/dist/studio/web/.next/static/chunks/6698-fe3dadb4c5aa013d.js +0 -9
  413. package/dist/studio/web/.next/static/chunks/8284-399476b82eb468d0.js +0 -1
  414. package/dist/studio/web/.next/static/chunks/900-afd29ea08f2e1714.js +0 -1
  415. package/dist/studio/web/.next/static/chunks/9804-2d943d62c12ddbd6.js +0 -16
  416. package/dist/studio/web/.next/static/chunks/9953-e991c2f9674aeb7b.js +0 -1
  417. package/dist/studio/web/.next/static/chunks/app/agents/page-5566ed76365fc033.js +0 -1
  418. package/dist/studio/web/.next/static/chunks/app/knowledge/candidates/page-8f6377569b01b64e.js +0 -1
  419. package/dist/studio/web/.next/static/chunks/app/knowledge/managed/[managedId]/page-e8aa43310b5ab528.js +0 -1
  420. package/dist/studio/web/.next/static/chunks/app/knowledge/managed/page-cbae9028d8b57dcf.js +0 -1
  421. package/dist/studio/web/.next/static/chunks/app/knowledge/page-92a6b1ddc3e44d8b.js +0 -1
  422. package/dist/studio/web/.next/static/chunks/app/knowledge/skills/[skillName]/page-082ada30d2554c7e.js +0 -1
  423. package/dist/studio/web/.next/static/chunks/app/measure/[runId]/page-1b6e584362fa1fc7.js +0 -1
  424. package/dist/studio/web/.next/static/chunks/app/measure/page-94c52f9a44a8b88e.js +0 -1
  425. package/dist/studio/web/.next/static/chunks/app/observe/conversations/[threadId]/page-327796657a0b2692.js +0 -1
  426. package/dist/studio/web/.next/static/chunks/app/observe/conversations/[threadId]/tasks/[turnId]/page-1c806e81831e69b9.js +0 -1
  427. package/dist/studio/web/.next/static/chunks/app/observe/health/[analysisId]/page-41dd612e29247f6f.js +0 -1
  428. package/dist/studio/web/.next/static/chunks/app/observe/health/page-66161c7025058683.js +0 -1
  429. package/dist/studio/web/.next/static/chunks/app/observe/health-diff/page-373e7ca6f18a4594.js +0 -1
  430. package/dist/studio/web/.next/static/chunks/app/observe/inbox/page-923860677b6af0ad.js +0 -1
  431. package/dist/studio/web/.next/static/chunks/app/observe/page-ff04bfbae9e9c409.js +0 -1
  432. package/dist/studio/web/.next/static/chunks/app/observe/skill-trend/[skillName]/page-4711e930a7c6a790.js +0 -1
  433. package/dist/studio/web/.next/static/chunks/framework-9d2daf55218bfcdb.js +0 -1
  434. package/dist/studio/web/.next/static/chunks/main-be4276342bf776ea.js +0 -5
  435. package/dist/studio/web/.next/static/css/bc117f6d956d35b6.css +0 -1
  436. /package/dist/{knowledge-artifacts/governance/contracts.js → eval-workflows/projections/carrier-measurement.js} +0 -0
  437. /package/dist/studio/web/.next/static/{Ahppnr7sbzLwhsw77RqCy → vi-Wf9wVz6KtDrndi6cz6}/_ssgManifest.js +0 -0
@@ -136,7 +136,6 @@ omk eval [flags]
136
136
  - `--model` `option`:被测模型
137
137
  - `--no-debias-length` `boolean`:关 length-debias(默认开)
138
138
  - `--no-diagnostic` `boolean`:关闭基于 Core 失败、缺失、排除与稳定 reason code 的诊断投影。
139
- - `--no-evidence` `boolean`:不把本次评测写成证据追加进受管记录(默认会为已 install 的 skill 自动写)。
140
139
  - `--no-gate` `boolean`:关闭判定门禁
141
140
  - `--no-judge` `boolean`:跳过 LLM 评委
142
141
  - `--no-serve` `boolean`:不启 report server
@@ -297,7 +296,7 @@ omk evolve <skillPath> [flags]
297
296
  - `--rounds` `option` (默认 `5`):最大迭代轮数,默认 5
298
297
  - `--samples` `option`:指定已有样本源;省略时先找 skill 私有样本,再找项目样本,都不存在时自动生成
299
298
  - `--skip-doctor` `boolean`:跳过 doctor 门禁(escape hatch,自负 garbage-in 风险)
300
- - `--snapshot-only` `boolean`:只产候选、不写回 source:胜出版本留在 evolve/,再由你人工选择。受管 skill 默认会写回 source 并记 Core 证据。
299
+ - `--snapshot-only` `boolean`:只产候选、不写回 source:胜出版本留在 evolve/,再由你人工选择。默认仅在最终 Core 门禁通过后写回 source。
301
300
  - `--target` `option`:目标 composite 分数,达到即停。不传则跑满 rounds
302
301
  - `--timeout` `option` (默认 `600`):单用例超时秒,默认 600
303
302
 
@@ -357,7 +356,7 @@ omk init my-project --samples 20
357
356
 
358
357
  ## omk install
359
358
 
360
- 安装 omk 官方 Agent Skill,或登记并分发用户自己的 skill(内置 id omk-agent-skill,本地路径,或 git:<ref>:<name> 取当前仓库某个 ref 的 skill)。默认写入本机已检测 agent 目标;安装用户 skill 时同时登记一条受管记录。
359
+ 安装 omk 官方 Agent Skill,或安装用户自己的 skill(内置 id omk-agent-skill,本地路径,或 git:<ref>:<name> 取当前仓库某个 ref 的 skill)。默认写入本机已检测 agent 目标。
361
360
 
362
361
  **用法:**
363
362
 
@@ -400,7 +399,7 @@ omk install omk-agent-skill --to all
400
399
  omk install omk-agent-skill --dest ~/.my-agent/skills
401
400
  ```
402
401
 
403
- > 登记并分发用户自己的 skill(--kind 可省,命中 SKILL.md 自动推导)
402
+ > 安装用户自己的 skill(--kind 可省,命中 SKILL.md 自动推导)
404
403
 
405
404
  ```bash
406
405
  omk install ./skills/review
@@ -412,48 +411,12 @@ omk install ./skills/review
412
411
  omk install git:main:skills/review
413
412
  ```
414
413
 
415
- > 从远端 git 仓库安装 skill(位置参数是仓库内路径;认证用本机 git 凭证;记录钉实际 SHA)
414
+ > 从远端 git 仓库安装 skill(位置参数是仓库内路径;认证用本机 git 凭证)
416
415
 
417
416
  ```bash
418
417
  omk install --git-url https://github.com/org/repo.git --git-ref v1.0.0 skills/review
419
418
  ```
420
419
 
421
- ## omk list
422
-
423
- 列出受管 skill 及其证据状态:生命周期(installed / measurable / promoted / stale)、最新 verdict、证据数、源。
424
-
425
- **用法:**
426
-
427
- ```bash
428
- omk list [flags]
429
- ```
430
-
431
- **Flags:**
432
-
433
- - `--global` `boolean`:看全局受管目录(~/.oh-my-knowledge/governance/managed)而非项目 .omk/governance/managed
434
- - `--json` `boolean`:输出 JSON(含完整可比性 marker),供脚本消费
435
- - `--lang` `option`:输出语言 zh|en,优先级 CLI > OMK_LANG env > 全局设置 > 系统 locale > zh。
436
-
437
- **示例:**
438
-
439
- > 列出当前项目的受管 skill
440
-
441
- ```bash
442
- omk list
443
- ```
444
-
445
- > 列出全局受管 skill
446
-
447
- ```bash
448
- omk list --global
449
- ```
450
-
451
- > 机器可读 JSON 输出
452
-
453
- ```bash
454
- omk list --json
455
- ```
456
-
457
420
  ## omk observe
458
421
 
459
422
  把 Codex、Claude Code、OpenClaw 或 markdown trace 统一为 Trace IR,分析 skill 调用健康度(默认行为)。子命令:ingest / inbox / show。
@@ -470,7 +433,6 @@ omk observe [sessionsDir] [flags]
470
433
 
471
434
  **Flags:**
472
435
 
473
- - `--feedback` `boolean`:把生产健康观测反哺已纳管的同名 skill(--no-feedback 关闭)
474
436
  - `--from` `option`:起始时间 ISO,优先级高于 --last
475
437
  - `--global` `boolean`:写全局 ~/.oh-my-knowledge/observe/health,而非项目 .omk/observe/health
476
438
  - `--kb` `option`:知识库 root,启用 KB-aware 分析
@@ -547,23 +509,31 @@ omk observe knowledge <operation> [flags]
547
509
 
548
510
  **参数:**
549
511
 
550
- - `operation`(必填):操作:归档、生成、运行列表、恢复、列表、详情、保留、舍弃、修订、来源或删除来源。
512
+ - `operation`(必填):归档、提炼、核对与维护知识;entities 核对实体,correct-entities 纠正实体,apply-entities 创建绑定实体的知识修订。
551
513
 
552
514
  **Flags:**
553
515
 
516
+ - `--analysis` `option`:entities:读取指定分析,省略时检索工作区实体;纠正或应用时必填,与提炼运行身份一致。
554
517
  - `--end-record` `option`:最后一条记录序号,包含。
518
+ - `--entity-revision` `option`:实体分析的明确修订身份;纠正或应用时必填。
555
519
  - `--executor` `option`:生成执行器,沿用 OMK 的运行配置。
556
520
  - `--generation` `option`:修改前读取的 generation,用于检测并发冲突。
557
521
  - `--id` `option`:知识身份;resume 时为运行身份。
558
- - `--input` `option`:revise:包含 title、content、entities、evidence 的 JSON 草稿。
522
+ - `--identity-status` `all|proposed|unresolved`:entities:筛选身份对应状态。
523
+ - `--identity-uncertainties` `option`:apply-entities:显式核对后的附加身份不确定性 JSON 数组;省略时保留原说明,[] 清除原说明,当前实体歧义仍自动保留。
524
+ - `--input` `option`:revise/apply-entities:知识 JSON 草稿;correct-entities:entities、mentions 草稿,新身份使用 new: 前缀。
559
525
  - `--json` `boolean`:输出完整 JSON;默认输出可读摘要。
560
526
  - `--lang` `option`:输出语言 zh|en,优先级 CLI > OMK_LANG env > 全局设置 > 系统 locale > zh。
561
527
  - `--model` `option`:生成模型,沿用已配置模型。
528
+ - `--page` `option`:entities:检索页码,从 1 开始。
529
+ - `--page-size` `option`:entities:每页对象数,默认 20,最多 100。
530
+ - `--query` `option`:entities:搜索名称、原文提及、限定条件及来源。
562
531
  - `--reason` `option`:保留、舍弃或修订的理由。
563
532
  - `--revision` `option`:查看或处理的明确修订身份。
564
533
  - `--run-id` `option`:generate:稳定 UUID,用于重试同一次运行。
565
534
  - `--snapshot` `option`:generate/source/delete-source:归档身份。
566
535
  - `--source` `option`:capture:一份已支持格式的 Agent 会话日志(Codex/Claude/Qoder 等)。
536
+ - `--source-status` `all|available|unavailable`:entities:筛选原文可用状态。
567
537
  - `--start-record` `option`:从零开始的非空记录序号,包含。
568
538
  - `--workspace` `option`:本地知识工作区,默认使用全局设置;CLI 与 Studio 共用。
569
539
 
@@ -581,107 +551,33 @@ omk observe knowledge generate --workspace ./knowledge --snapshot <snapshot-id>
581
551
  omk observe knowledge list --workspace ./knowledge
582
552
  ```
583
553
 
584
- ## omk observe show
585
-
586
- 展开 observation inbox 中某条 item 的详情。
587
-
588
- **用法:**
589
-
590
554
  ```bash
591
- omk observe show <inboxId> [flags]
555
+ omk observe knowledge entities --workspace ./knowledge --analysis <run-id>
592
556
  ```
593
557
 
594
- **参数:**
595
-
596
- - `inboxId`(必填):inbox item ID。
597
-
598
- **Flags:**
599
-
600
- - `--global` `boolean`:直接读取全局 ~/.oh-my-knowledge/observe/inbox(跳过项目级与兜底)。
601
- - `--input-dir` `option`:inbox 数据目录
602
- - `--lang` `option`:输出语言 zh|en,优先级 CLI > OMK_LANG env > 全局设置 > 系统 locale > zh。
603
-
604
- ## omk promote
605
-
606
- 把受管 skill 的当前版本按证据门禁「接受」为 promoted:默认仅放行 verdict=PROGRESS,在记录里追加一条带证据指针的人工决定。
607
-
608
- **用法:**
609
-
610
- ```bash
611
- omk promote <name> [flags]
612
- ```
613
-
614
- **参数:**
615
-
616
- - `name`(必填):受管 skill 名(omk list 里的 NAME)
617
-
618
- **Flags:**
619
-
620
- - `--accept-cautious` `boolean`:把 CAUTIOUS 也算可接受(默认仅 PROGRESS)
621
- - `--actor` `option`:决定的 actor(默认取 git config user.name)
622
- - `--force` `boolean`:越过可越门拦截强制 promote,记为人工 override 决定(无当前证据或源 hash 已变时仍拒)
623
- - `--global` `boolean`:操作全局受管目录而非项目 .omk/governance/managed
624
- - `--json` `boolean`:输出 JSON(版本化信封)供脚本消费
625
- - `--kind` `option` (默认 `skill`):artifact 类型(当前仅 skill)
626
- - `--lang` `option`:输出语言 zh|en,优先级 CLI > OMK_LANG env > 全局设置 > 系统 locale > zh。
627
- - `--reason` `option`:promote / 越门的理由(写入决定)
628
-
629
- **示例:**
630
-
631
- > promote 一个证据达标的 skill
632
-
633
- ```bash
634
- omk promote review
635
- ```
636
-
637
- > 接受 CAUTIOUS 结果(显式放宽门禁)
638
-
639
558
  ```bash
640
- omk promote review --accept-cautious
559
+ omk observe knowledge entities --workspace ./knowledge --query Atlas --json
641
560
  ```
642
561
 
643
- > 越门 promote 并记录理由(人工 override)
644
-
645
- ```bash
646
- omk promote review --force --reason "已人工复核"
647
- ```
648
-
649
- ## omk rollback
562
+ ## omk observe show
650
563
 
651
- 回退受管 skill 当前版本的 promoted 接受:撤销最近一次 promote,在记录里追加一条 rollback 决定(源未漂移则状态回到 measurable,源已漂移则仍 stale)。
564
+ 展开 observation inbox 中某条 item 的详情。
652
565
 
653
566
  **用法:**
654
567
 
655
568
  ```bash
656
- omk rollback <name> [flags]
569
+ omk observe show <inboxId> [flags]
657
570
  ```
658
571
 
659
572
  **参数:**
660
573
 
661
- - `name`(必填):受管 skill 名(omk list 里的 NAME)
574
+ - `inboxId`(必填):inbox item ID。
662
575
 
663
576
  **Flags:**
664
577
 
665
- - `--actor` `option`:决定的 actor(默认取 git config user.name)
666
- - `--global` `boolean`:操作全局受管目录而非项目 .omk/governance/managed
667
- - `--json` `boolean`:输出 JSON(版本化信封)供脚本消费
668
- - `--kind` `option` (默认 `skill`):artifact 类型(当前仅 skill)
578
+ - `--global` `boolean`:直接读取全局 ~/.oh-my-knowledge/observe/inbox(跳过项目级与兜底)。
579
+ - `--input-dir` `option`:inbox 数据目录
669
580
  - `--lang` `option`:输出语言 zh|en,优先级 CLI > OMK_LANG env > 全局设置 > 系统 locale > zh。
670
- - `--reason` `option`:回退的理由(写入决定)
671
-
672
- **示例:**
673
-
674
- > 回退一个已 promoted 的 skill
675
-
676
- ```bash
677
- omk rollback review
678
- ```
679
-
680
- > 回退并记录理由
681
-
682
- ```bash
683
- omk rollback review --reason "线上发现回归"
684
- ```
685
581
 
686
582
  ## omk sample
687
583
 
@@ -748,7 +644,7 @@ omk studio [flags]
748
644
  - `--analyses-dir` `option`:观测健康报告目录(可选,默认项目级 .omk/observe/health,空则全局兜底)
749
645
  - `--dev` `boolean`:dev 模式:子进程启动 + 热更新
750
646
  - `--doctors-dir` `option`:体检报告目录(可选,默认项目级 .omk/doctor,空则全局兜底)
751
- - `--global` `boolean`:只看全局 eval / observe/health / doctor / observe/inbox 目录(~/.oh-my-knowledge/),而非机器级聚合 / 项目优先;governance/managed 不受影响
647
+ - `--global` `boolean`:只看全局 eval / observe/health / doctor / observe/inbox 目录(~/.oh-my-knowledge/),而非机器级聚合 / 项目优先
752
648
  - `--host` `option`:监听 host,默认 localhost。改为 0.0.0.0 暴露给局域网
753
649
  - `--lang` `option`:输出语言 zh|en,优先级 CLI > OMK_LANG env > 全局设置 > 系统 locale > zh。
754
650
  - `--no-open` `boolean`:不自动打开浏览器
@@ -784,4 +680,4 @@ omk studio --port 8080 --no-open
784
680
  | `evaluationContext` | 否 | `rubric`、`assertions`、评分 `reference`、结构化 `checks` |
785
681
  | `annotations` | 否 | 来源、难度、能力、覆盖锚点和诱错标记 |
786
682
 
787
- 完整契约与能力边界见 [样本格式](https://github.com/lizhiyao/oh-my-knowledge/blob/main/docs/zh/reference/eval-sample-format.md)。
683
+ 完整契约与能力边界见 [样本格式](https://github.com/lizhiyao/oh-my-knowledge/blob/main/docs/zh/reference/evaluation/eval-sample-format.md)。
@@ -62,7 +62,6 @@ export default class Eval extends BaseCommand {
62
62
  'trivial-diff': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
63
63
  'report-only': import("@oclif/core/interfaces").BooleanFlag<boolean>;
64
64
  'no-gate': import("@oclif/core/interfaces").BooleanFlag<boolean>;
65
- 'no-evidence': import("@oclif/core/interfaces").BooleanFlag<boolean>;
66
65
  };
67
66
  run(): Promise<void>;
68
67
  }
@@ -406,12 +406,6 @@ export default class Eval extends BaseCommand {
406
406
  'no-gate': Flags.boolean({
407
407
  description: bilingual({ zh: '关闭判定门禁', en: 'Disable verdict gate' }),
408
408
  }),
409
- 'no-evidence': Flags.boolean({
410
- description: bilingual({
411
- zh: '不把本次评测写成证据追加进受管记录(默认会为已 install 的 skill 自动写)。',
412
- en: 'Do not append this run as evidence to managed records (auto-written for installed skills by default).',
413
- }),
414
- }),
415
409
  };
416
410
  async run() {
417
411
  const { args, flags } = await this.parse(Eval);
@@ -7,18 +7,7 @@ import { CliExit } from '../lib/cli-exit.js';
7
7
  import { tCli } from '../lib/i18n.js';
8
8
  import { formatSampleGenerationFailureHint } from '../lib/generation-failure-hint.js';
9
9
  import { ensureSkillSamples, SamplePreparationError } from '../../eval-workflows/sample-generation/skill-samples.js';
10
- import { sanitizeCell } from '../lib/cell-format.js';
11
10
  import { envJudgeModels, resolveRuntimeSelection } from '../lib/runtime-defaults.js';
12
- async function recordEvolveOutcomeSafely(input) {
13
- try {
14
- const { recordCoreEvolveOutcome } = await import('../../knowledge-artifacts/governance/evolve-outcome.js');
15
- const value = recordCoreEvolveOutcome(input);
16
- return value ? { status: 'recorded', value } : { status: 'not-applicable' };
17
- }
18
- catch (error) {
19
- return { status: 'failed', error };
20
- }
21
- }
22
11
  const VALID_EFFORTS = new Set(['low', 'medium', 'high', 'xhigh', 'max']);
23
12
  function validateEvolveEffort(raw, lang) {
24
13
  if (!VALID_EFFORTS.has(raw)) {
@@ -46,8 +35,6 @@ export async function runEvolve(args, flags, lang, signal) {
46
35
  throw new CliExit(1);
47
36
  }
48
37
  const skillPath = resolvedInput.skillPath;
49
- // evolve 目标的形态(目录-skill / 文件-skill),供受管联动按形态精确匹配记录。**取解析后形态**而非「入参是不是
50
- // 目录」:帮助文档鼓励传 `skills/foo/SKILL.md`,若按入参判会得 false、匹配不到 install 落的目录记录(漂移永不消)。
51
38
  const skillIsDir = resolvedInput.isDirectorySkill;
52
39
  const samplesFile = resolvedInput.samplesPath;
53
40
  // 参数校验必须早于任何昂贵副作用(自动生成用例 / LLM 调用)。
@@ -119,7 +106,6 @@ export async function runEvolve(args, flags, lang, signal) {
119
106
  timeout: Math.max(1, Math.ceil(Number(flags.timeout) || 600)),
120
107
  effort: evolveEffort,
121
108
  'skip-doctor': flags['skip-doctor'],
122
- 'no-evidence': true,
123
109
  'no-serve': true,
124
110
  'report-only': true,
125
111
  }, { lang });
@@ -143,7 +129,7 @@ export async function runEvolve(args, flags, lang, signal) {
143
129
  evaluatePair,
144
130
  editBudget: flags['no-edit-budget'] ? 0 : Number(flags['edit-budget']),
145
131
  rejectMemory: !flags['no-reject-memory'],
146
- // --snapshot-only:不写回 source,候选只留在 evolve/<skillName>.r{N}.md(供人工挑选 / promote)。
132
+ // --snapshot-only:不写回 source,候选只留在 evolve/<skillName>.r{N}.md(供人工挑选)。
147
133
  writeBackToSource: !flags['snapshot-only'],
148
134
  improveMode: flags['improve-mode'] === 'rewrite' ? 'rewrite' : 'agent',
149
135
  onRoundProgress({ round, totalRounds: _totalRounds, phase, score, delta, accepted, costUSD, costReported, error, decisionAccepted }) {
@@ -189,36 +175,12 @@ export async function runEvolve(args, flags, lang, signal) {
189
175
  process.stderr.write(tCli('cli.evolve.report_link', lang, { id: result.runId }));
190
176
  }
191
177
  if (flags['snapshot-only']) {
192
- // 不写回 source —— 候选留在 evolve/ 供人工挑选;受管记录不动。
178
+ // 不写回 source —— 候选留在 evolve/ 供人工挑选。
193
179
  process.stderr.write(tCli('cli.evolve.snapshot_only_hint', lang, {
194
180
  dir: join(resolve(skillPath, '..'), 'evolve'),
195
181
  }));
196
182
  }
197
- else {
198
- // 受管 skill:把胜出版本记成带 verdict 的证据 + re-baseline → omk list 显 measurable。
199
- // 升 promoted 仍由人 omk promote 决定(统计门 ≠ 人的接受)。未纳管 / 无改进 → 静默 no-op。
200
- const recorded = await recordEvolveOutcomeSafely({
201
- source: result.evidence,
202
- bestRound: result.bestRound,
203
- skillPath: resolvedInput.skillPath,
204
- skillDir: resolvedInput.skillDir,
205
- isDirectorySkill: skillIsDir,
206
- });
207
- if (recorded.status === 'failed') {
208
- const message = sanitizeCell(recorded.error instanceof Error ? recorded.error.message : String(recorded.error));
209
- process.stderr.write(lang === 'zh'
210
- ? `治理证据写入失败:${message}。评测产物已保留,请检查受管目录后补记证据。\n`
211
- : `Managed evidence write failed: ${message}. Evaluation artifacts are preserved; check the managed directory and record the evidence again.\n`);
212
- }
213
- if (recorded.status === 'recorded') {
214
- process.stderr.write(tCli('cli.evolve.evidence_recorded_managed', lang, {
215
- name: recorded.value.name, verdict: recorded.value.verdict,
216
- }));
217
- }
218
- }
219
- const publicResult = { ...result };
220
- delete publicResult.evidence;
221
- console.log(JSON.stringify(publicResult, null, 2));
183
+ console.log(JSON.stringify(result, null, 2));
222
184
  }
223
185
  catch (err) {
224
186
  if (err instanceof CliExit)
@@ -334,8 +296,8 @@ export default class Evolve extends BaseCommand {
334
296
  }),
335
297
  'snapshot-only': Flags.boolean({
336
298
  description: bilingual({
337
- zh: '只产候选、不写回 source:胜出版本留在 evolve/,再由你人工选择。受管 skill 默认会写回 source 并记 Core 证据。',
338
- en: 'Produce candidates under evolve/ without writing the source. Managed skills normally write back only after a final Core gate and record Core evidence.',
299
+ zh: '只产候选、不写回 source:胜出版本留在 evolve/,再由你人工选择。默认仅在最终 Core 门禁通过后写回 source。',
300
+ en: 'Produce candidates under evolve/ without writing the source. By default, write back only after a final Core gate passes.',
339
301
  }),
340
302
  default: false,
341
303
  }),
@@ -12,7 +12,7 @@ import { DEFAULT_INIT_SAMPLE_COUNT, FULL_INIT_SAMPLE_COUNT, serializeInitSamples
12
12
  // 项目从注释到 skill 正文都是中文。name/目录名等身份字段两版一致,只有文字随语言。
13
13
  const INIT_OMK_GITIGNORE = {
14
14
  // 预置 .omk/.gitignore:测量 bulk + doctor --fix 备份(项目本地、不该入库)默认不入库;
15
- // managed/ 治理档案 + 配置不在此列,默认 track。
15
+ // 配置不在此列,默认 track。
16
16
  zh: `# omk 测量 bulk 与 doctor --fix 备份(项目本地)——不入库;前导 / 锚定 .omk/ 顶层,不误伤嵌套同名目录。
17
17
  /eval/
18
18
  /doctor/
@@ -20,5 +20,5 @@ export default class Install extends BaseCommand {
20
20
  };
21
21
  run(): Promise<void>;
22
22
  private installBuiltinAgentSkill;
23
- private installManagedSkill;
23
+ private installUserSkill;
24
24
  }
@@ -7,19 +7,7 @@ import { LANG_FLAG, bilingual } from '../oclif/i18n.js';
7
7
  import { BaseCommand } from '../oclif/base-command.js';
8
8
  import { tCli } from '../lib/i18n.js';
9
9
  import { resolveInstallSource, resolveRemoteGitSource, usingInstallSource, SourceResolveError } from '../../knowledge-artifacts/sources/install-source.js';
10
- import { managedDir } from '../../knowledge-artifacts/governance/index.js';
11
- import { installManagedArtifact, InstallRegistrationError } from '../../knowledge-artifacts/governance/install.js';
12
10
  import { replaceDeployedArtifact } from '../../knowledge-artifacts/sources/deploy-artifact.js';
13
- function localizeInstallationError(error, lang) {
14
- if (error instanceof InstallRegistrationError && lang === 'zh') {
15
- return new Error(`分发已完成,但治理登记失败:${error.paths.join('、')}。请修复受管目录 ${error.store} 后,以相同参数加 --force 重试登记。`, { cause: error });
16
- }
17
- if (error instanceof AggregateError) {
18
- const errors = error.errors.map((item) => localizeInstallationError(item, lang));
19
- return new AggregateError(errors, errors.map(String).join('; '));
20
- }
21
- return error;
22
- }
23
11
  const BUILTIN_OMK_AGENT_SKILL_ID = 'omk-agent-skill';
24
12
  const INSTALLABLE_KINDS = ['skill', 'prompt', 'agent', 'workflow'];
25
13
  const TARGET_ORDER = ['codex', 'claude'];
@@ -110,7 +98,7 @@ function targetArtifactPath(target, name, isDirectorySkill) {
110
98
  function targetSkillDir(target) {
111
99
  return targetArtifactPath(target, 'omk', true);
112
100
  }
113
- /** 全部目标预检通过才拷任何一个(无部分安装)。源就是目标(就地接管)的目标跳过存在性检查。 */
101
+ /** 全部目标预检通过才拷任何一个(无部分安装)。源就是目标(已在目标位置)的目标跳过存在性检查。 */
114
102
  function validateInstallTargets(params) {
115
103
  if (params.dryRun || params.force)
116
104
  return;
@@ -138,7 +126,7 @@ function realPathBestEffort(p) {
138
126
  }
139
127
  /**
140
128
  * 源与目标的物理关系(解析软链):
141
- * - same:同一节点 → 就地接管(绝不删/拷);
129
+ * - same:同一节点 → 已在目标位置(绝不删/拷);
142
130
  * - overlap:一个是另一个的祖先 → rmSync(target) 会删掉源、或 cpSync 把目录拷进自身子目录,数据损坏,必须拒;
143
131
  * - disjoint:正常拷贝。
144
132
  */
@@ -153,7 +141,7 @@ function classifyPaths(source, targetPath) {
153
141
  }
154
142
  /**
155
143
  * 通用拷贝:目录递归 cp(过滤 .omk / .git / evolve 等非分发产物 + 软链)、单文件 copyFile。
156
- * 清理失败单独提示,正常结果由调用方呈现。dry-run 不写。源即目标 → 就地接管(inPlace);重叠路径拒绝。
144
+ * 清理失败单独提示,正常结果由调用方呈现。dry-run 不写。源即目标 → 已在目标位置(inPlace);重叠路径拒绝。
157
145
  */
158
146
  function copyArtifactToTarget(params) {
159
147
  if (!existsSync(params.source)) {
@@ -163,7 +151,7 @@ function copyArtifactToTarget(params) {
163
151
  return { targetPath: params.targetPath, planned: true, inPlace: false };
164
152
  }
165
153
  const relation = classifyPaths(params.source, params.targetPath);
166
- // 就地接管:源就是目标(接管已安装的 skill),绝不 rmSync 源。
154
+ // 已在目标位置:源就是目标(接管已安装的 skill),绝不 rmSync 源。
167
155
  if (relation === 'same') {
168
156
  return { targetPath: params.targetPath, planned: false, inPlace: true };
169
157
  }
@@ -188,7 +176,6 @@ function installOmkAgentSkill(params) {
188
176
  source: params.sourceDir,
189
177
  isDirectorySkill: true,
190
178
  targetPath: targetDir,
191
- skillsDir: params.target.skillsDir,
192
179
  force: params.force,
193
180
  dryRun: params.dryRun,
194
181
  lang: params.lang,
@@ -198,7 +185,7 @@ function installOmkAgentSkill(params) {
198
185
  }
199
186
  /**
200
187
  * 是否当作用户 artifact 路径(否则按 typo 的内置 id 处理,报 unknown_input)。
201
- * - 显式路径意图(含 `/`)或 `.md` 结尾 → 是(后续 installManagedSkill 经 resolver 给出精确的存在性 / SKILL.md 报错);
188
+ * - 显式路径意图(含 `/`)或 `.md` 结尾 → 是(后续 installUserSkill 经 resolver 给出精确的存在性 / SKILL.md 报错);
202
189
  * - 裸短名 → 仅当它确实解析到一个含 SKILL.md 的目录才算;裸的同名普通文件(如 cwd 里恰好有个
203
190
  * `omk-agnt-skill` 文件)不该被当成 skill 安装,落回 unknown_input。
204
191
  */
@@ -215,8 +202,8 @@ function looksLikeArtifactPath(input) {
215
202
  }
216
203
  export default class Install extends BaseCommand {
217
204
  static description = bilingual({
218
- zh: '安装 omk 官方 Agent Skill,或登记并分发用户自己的 skill(内置 id omk-agent-skill,本地路径,或 git:<ref>:<name> 取当前仓库某个 ref 的 skill)。默认写入本机已检测 agent 目标;安装用户 skill 时同时登记一条受管记录。',
219
- en: 'Install the official omk Agent Skill, or register and distribute your own skill (built-in id omk-agent-skill, a local path, or git:<ref>:<name> for a skill at a ref of the current repo). Defaults to detected local agent targets; installing a user skill also records a managed entry.',
205
+ zh: '安装 omk 官方 Agent Skill,或安装用户自己的 skill(内置 id omk-agent-skill,本地路径,或 git:<ref>:<name> 取当前仓库某个 ref 的 skill)。默认写入本机已检测 agent 目标。',
206
+ en: 'Install the official omk Agent Skill, or install your own skill (built-in id omk-agent-skill, a local path, or git:<ref>:<name> for a skill at a ref of the current repo). Defaults to detected local agent targets.',
220
207
  });
221
208
  static examples = [
222
209
  {
@@ -242,8 +229,8 @@ export default class Install extends BaseCommand {
242
229
  },
243
230
  {
244
231
  description: bilingual({
245
- zh: '登记并分发用户自己的 skill(--kind 可省,命中 SKILL.md 自动推导)',
246
- en: 'Register and distribute your own skill (--kind optional; inferred from SKILL.md)',
232
+ zh: '安装用户自己的 skill(--kind 可省,命中 SKILL.md 自动推导)',
233
+ en: 'Install your own skill (--kind optional; inferred from SKILL.md)',
247
234
  }),
248
235
  command: '<%= config.bin %> install ./skills/review',
249
236
  },
@@ -256,8 +243,8 @@ export default class Install extends BaseCommand {
256
243
  },
257
244
  {
258
245
  description: bilingual({
259
- zh: '从远端 git 仓库安装 skill(位置参数是仓库内路径;认证用本机 git 凭证;记录钉实际 SHA)',
260
- en: 'Install a skill from a remote git repo (positional arg is the in-repo path; auth via local git credentials; record pins the actual SHA)',
246
+ zh: '从远端 git 仓库安装 skill(位置参数是仓库内路径;认证用本机 git 凭证)',
247
+ en: 'Install a skill from a remote git repo (positional arg is the in-repo path; auth via local git credentials)',
261
248
  }),
262
249
  command: '<%= config.bin %> install --git-url https://github.com/org/repo.git --git-ref v1.0.0 skills/review',
263
250
  },
@@ -330,7 +317,7 @@ export default class Install extends BaseCommand {
330
317
  }
331
318
  // 远端 git:--git-url 在场时,位置参数是仓库内 spec(repo 相对路径),先于其它分支判定。
332
319
  if (flags['git-url']) {
333
- this.installManagedSkill(args.input, flags.kind, flags, lang, {
320
+ this.installUserSkill(args.input, flags.kind, flags, lang, {
334
321
  url: flags['git-url'],
335
322
  ref: flags['git-ref'] || 'HEAD',
336
323
  });
@@ -341,7 +328,7 @@ export default class Install extends BaseCommand {
341
328
  return;
342
329
  }
343
330
  if (args.input.startsWith('git:') || looksLikeArtifactPath(args.input)) {
344
- this.installManagedSkill(args.input, flags.kind, flags, lang);
331
+ this.installUserSkill(args.input, flags.kind, flags, lang);
345
332
  return;
346
333
  }
347
334
  throw new Error(tCli('cli.install.unknown_input', lang, { input: args.input }));
@@ -362,7 +349,7 @@ export default class Install extends BaseCommand {
362
349
  if (!flags['dry-run'])
363
350
  console.log(tCli('cli.install.next_hint', lang));
364
351
  }
365
- installManagedSkill(input, kindFlag, flags, lang, remote) {
352
+ installUserSkill(input, kindFlag, flags, lang, remote) {
366
353
  // kind 推导:--kind 显式优先;否则缺省 skill(Phase 1 仅 skill)。
367
354
  const kind = kindFlag ?? 'skill';
368
355
  if (kind !== 'skill') {
@@ -391,35 +378,18 @@ export default class Install extends BaseCommand {
391
378
  lang,
392
379
  source: localRoot,
393
380
  });
394
- const store = managedDir();
395
- try {
396
- installManagedArtifact({
397
- source: src,
398
- artifactKind: kind,
399
- targets: targets.map((target) => ({ label: target.label, path: targetArtifactPath(target, name, isDirectorySkill) })),
400
- store,
401
- installedAt: new Date().toISOString(),
402
- deploy: (target) => {
403
- const { planned, inPlace } = copyArtifactToTarget({
404
- source: localRoot,
405
- isDirectorySkill,
406
- targetPath: target.path,
407
- skillsDir: dirname(target.path),
408
- force: flags.force,
409
- dryRun: flags['dry-run'],
410
- lang,
411
- });
412
- return planned ? 'planned' : inPlace ? 'adopted' : 'copied';
413
- },
414
- onDeployment: (target, result) => {
415
- const key = result === 'planned' ? 'cli.install.plan_skill' : result === 'adopted' ? 'cli.install.adopted' : 'cli.install.copied';
416
- console.log(tCli(key, lang, { name, path: target.path }));
417
- },
418
- onRegistered: (record) => console.log(tCli('cli.install.registered', lang, { id: record.id, store })),
381
+ for (const target of targets) {
382
+ const targetPath = targetArtifactPath(target, name, isDirectorySkill);
383
+ const { planned, inPlace } = copyArtifactToTarget({
384
+ source: localRoot,
385
+ isDirectorySkill,
386
+ targetPath,
387
+ force: flags.force,
388
+ dryRun: flags['dry-run'],
389
+ lang,
419
390
  });
420
- }
421
- catch (error) {
422
- throw localizeInstallationError(error, lang);
391
+ const key = planned ? 'cli.install.plan_skill' : inPlace ? 'cli.install.adopted' : 'cli.install.copied';
392
+ console.log(tCli(key, lang, { name, path: targetPath }));
423
393
  }
424
394
  });
425
395
  }
@@ -17,7 +17,6 @@ export default class Observe extends BaseCommand {
17
17
  skills: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
18
  'output-dir': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
19
19
  global: import("@oclif/core/interfaces").BooleanFlag<boolean>;
20
- feedback: import("@oclif/core/interfaces").BooleanFlag<boolean>;
21
20
  };
22
21
  run(): Promise<void>;
23
22
  }