@zigrivers/scaffold 3.28.0 → 3.29.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 (669) hide show
  1. package/README.md +5 -1
  2. package/content/guides/.gitkeep +0 -0
  3. package/content/guides/index.html +1188 -0
  4. package/content/guides/mmr/.diagrams/diagram-0.svg +1 -0
  5. package/content/guides/mmr/.diagrams/manifest.json +3 -0
  6. package/content/guides/mmr/index.html +1728 -0
  7. package/content/guides/mmr/index.md +403 -0
  8. package/content/knowledge/VERSION +1 -0
  9. package/content/knowledge/backend/backend-api-design.md +8 -0
  10. package/content/knowledge/backend/backend-architecture.md +8 -0
  11. package/content/knowledge/backend/backend-async-patterns.md +7 -0
  12. package/content/knowledge/backend/backend-auth-patterns.md +9 -0
  13. package/content/knowledge/backend/backend-conventions.md +6 -0
  14. package/content/knowledge/backend/backend-data-modeling.md +7 -0
  15. package/content/knowledge/backend/backend-deployment.md +8 -0
  16. package/content/knowledge/backend/backend-dev-environment.md +5 -0
  17. package/content/knowledge/backend/backend-fintech-broker-integration.md +6 -0
  18. package/content/knowledge/backend/backend-fintech-compliance.md +10 -2
  19. package/content/knowledge/backend/backend-fintech-data-modeling.md +6 -0
  20. package/content/knowledge/backend/backend-fintech-ledger.md +6 -0
  21. package/content/knowledge/backend/backend-fintech-observability.md +6 -0
  22. package/content/knowledge/backend/backend-fintech-order-lifecycle.md +6 -0
  23. package/content/knowledge/backend/backend-fintech-risk-management.md +6 -0
  24. package/content/knowledge/backend/backend-fintech-testing.md +6 -0
  25. package/content/knowledge/backend/backend-observability.md +7 -0
  26. package/content/knowledge/backend/backend-project-structure.md +6 -0
  27. package/content/knowledge/backend/backend-requirements.md +6 -0
  28. package/content/knowledge/backend/backend-security.md +7 -0
  29. package/content/knowledge/backend/backend-testing.md +7 -0
  30. package/content/knowledge/backend/backend-worker-patterns.md +6 -0
  31. package/content/knowledge/browser-extension/browser-extension-architecture.md +6 -0
  32. package/content/knowledge/browser-extension/browser-extension-content-scripts.md +6 -0
  33. package/content/knowledge/browser-extension/browser-extension-conventions.md +6 -0
  34. package/content/knowledge/browser-extension/browser-extension-cross-browser.md +6 -0
  35. package/content/knowledge/browser-extension/browser-extension-dev-environment.md +6 -0
  36. package/content/knowledge/browser-extension/browser-extension-manifest.md +6 -0
  37. package/content/knowledge/browser-extension/browser-extension-project-structure.md +6 -0
  38. package/content/knowledge/browser-extension/browser-extension-requirements.md +6 -0
  39. package/content/knowledge/browser-extension/browser-extension-security.md +7 -0
  40. package/content/knowledge/browser-extension/browser-extension-service-workers.md +6 -0
  41. package/content/knowledge/browser-extension/browser-extension-store-submission.md +6 -0
  42. package/content/knowledge/browser-extension/browser-extension-testing.md +6 -0
  43. package/content/knowledge/cli/cli-architecture.md +4 -0
  44. package/content/knowledge/cli/cli-conventions.md +4 -0
  45. package/content/knowledge/cli/cli-dev-environment.md +5 -0
  46. package/content/knowledge/cli/cli-distribution-patterns.md +5 -0
  47. package/content/knowledge/cli/cli-interactivity-patterns.md +4 -0
  48. package/content/knowledge/cli/cli-output-patterns.md +4 -0
  49. package/content/knowledge/cli/cli-project-structure.md +4 -0
  50. package/content/knowledge/cli/cli-requirements.md +4 -0
  51. package/content/knowledge/cli/cli-shell-integration.md +4 -0
  52. package/content/knowledge/cli/cli-testing.md +4 -0
  53. package/content/knowledge/core/adr-craft.md +8 -0
  54. package/content/knowledge/core/ai-memory-management.md +6 -0
  55. package/content/knowledge/core/api-design.md +6 -0
  56. package/content/knowledge/core/automated-review-tooling.md +8 -0
  57. package/content/knowledge/core/claude-md-patterns.md +8 -0
  58. package/content/knowledge/core/coding-conventions.md +8 -0
  59. package/content/knowledge/core/database-design.md +8 -0
  60. package/content/knowledge/core/design-system-tokens.md +8 -0
  61. package/content/knowledge/core/dev-environment.md +4 -0
  62. package/content/knowledge/core/domain-modeling.md +6 -0
  63. package/content/knowledge/core/eval-craft.md +6 -0
  64. package/content/knowledge/core/git-workflow-patterns.md +8 -0
  65. package/content/knowledge/core/multi-model-research-dispatch.md +6 -0
  66. package/content/knowledge/core/multi-model-review-dispatch.md +6 -0
  67. package/content/knowledge/core/multi-service-api-contracts.md +5 -0
  68. package/content/knowledge/core/multi-service-architecture.md +5 -0
  69. package/content/knowledge/core/multi-service-auth.md +6 -0
  70. package/content/knowledge/core/multi-service-data-ownership.md +8 -0
  71. package/content/knowledge/core/multi-service-observability.md +8 -0
  72. package/content/knowledge/core/multi-service-resilience.md +5 -0
  73. package/content/knowledge/core/multi-service-task-decomposition.md +8 -0
  74. package/content/knowledge/core/multi-service-testing.md +5 -0
  75. package/content/knowledge/core/operations-runbook.md +8 -0
  76. package/content/knowledge/core/project-structure-patterns.md +4 -0
  77. package/content/knowledge/core/review-step-template.md +4 -0
  78. package/content/knowledge/core/security-best-practices.md +6 -0
  79. package/content/knowledge/core/system-architecture.md +6 -0
  80. package/content/knowledge/core/task-decomposition.md +5 -0
  81. package/content/knowledge/core/task-tracking.md +8 -0
  82. package/content/knowledge/core/tech-stack-selection.md +8 -0
  83. package/content/knowledge/core/test-skeleton-generation.md +4 -0
  84. package/content/knowledge/core/testing-strategy.md +8 -0
  85. package/content/knowledge/core/user-stories.md +8 -0
  86. package/content/knowledge/core/user-story-innovation.md +4 -0
  87. package/content/knowledge/core/ux-specification.md +5 -0
  88. package/content/knowledge/data-pipeline/data-pipeline-architecture.md +5 -0
  89. package/content/knowledge/data-pipeline/data-pipeline-batch-patterns.md +4 -0
  90. package/content/knowledge/data-pipeline/data-pipeline-conventions.md +4 -0
  91. package/content/knowledge/data-pipeline/data-pipeline-dev-environment.md +4 -0
  92. package/content/knowledge/data-pipeline/data-pipeline-orchestration.md +4 -0
  93. package/content/knowledge/data-pipeline/data-pipeline-project-structure.md +4 -0
  94. package/content/knowledge/data-pipeline/data-pipeline-quality.md +4 -0
  95. package/content/knowledge/data-pipeline/data-pipeline-requirements.md +4 -0
  96. package/content/knowledge/data-pipeline/data-pipeline-schema-management.md +4 -0
  97. package/content/knowledge/data-pipeline/data-pipeline-security.md +4 -0
  98. package/content/knowledge/data-pipeline/data-pipeline-streaming-patterns.md +4 -0
  99. package/content/knowledge/data-pipeline/data-pipeline-testing.md +4 -0
  100. package/content/knowledge/data-science/data-science-architecture.md +5 -0
  101. package/content/knowledge/data-science/data-science-conventions.md +6 -0
  102. package/content/knowledge/data-science/data-science-data-versioning.md +6 -0
  103. package/content/knowledge/data-science/data-science-dev-environment.md +6 -0
  104. package/content/knowledge/data-science/data-science-experiment-tracking.md +8 -0
  105. package/content/knowledge/data-science/data-science-model-evaluation.md +5 -0
  106. package/content/knowledge/data-science/data-science-notebook-discipline.md +5 -0
  107. package/content/knowledge/data-science/data-science-observability.md +6 -0
  108. package/content/knowledge/data-science/data-science-project-structure.md +5 -0
  109. package/content/knowledge/data-science/data-science-reproducibility.md +8 -0
  110. package/content/knowledge/data-science/data-science-requirements.md +5 -0
  111. package/content/knowledge/data-science/data-science-security.md +8 -0
  112. package/content/knowledge/data-science/data-science-testing.md +5 -0
  113. package/content/knowledge/execution/enhancement-workflow.md +4 -0
  114. package/content/knowledge/execution/multi-agent-coordination.md +12 -1
  115. package/content/knowledge/execution/task-claiming-strategy.md +4 -0
  116. package/content/knowledge/execution/tdd-execution-loop.md +5 -0
  117. package/content/knowledge/execution/worktree-management.md +5 -0
  118. package/content/knowledge/finalization/apply-fixes-and-freeze.md +4 -0
  119. package/content/knowledge/finalization/developer-onboarding.md +4 -0
  120. package/content/knowledge/finalization/implementation-playbook.md +4 -0
  121. package/content/knowledge/game/game-accessibility.md +4 -0
  122. package/content/knowledge/game/game-ai-patterns.md +4 -0
  123. package/content/knowledge/game/game-asset-pipeline.md +4 -0
  124. package/content/knowledge/game/game-audio-design.md +4 -0
  125. package/content/knowledge/game/game-binary-vcs-strategy.md +5 -0
  126. package/content/knowledge/game/game-design-document.md +4 -0
  127. package/content/knowledge/game/game-domain-patterns.md +4 -0
  128. package/content/knowledge/game/game-economy-design.md +4 -0
  129. package/content/knowledge/game/game-engine-selection.md +4 -0
  130. package/content/knowledge/game/game-ideation.md +4 -0
  131. package/content/knowledge/game/game-input-systems.md +4 -0
  132. package/content/knowledge/game/game-level-content-design.md +4 -0
  133. package/content/knowledge/game/game-liveops-analytics.md +4 -0
  134. package/content/knowledge/game/game-localization.md +4 -0
  135. package/content/knowledge/game/game-milestone-definitions.md +4 -0
  136. package/content/knowledge/game/game-modding-ugc.md +4 -0
  137. package/content/knowledge/game/game-narrative-design.md +4 -0
  138. package/content/knowledge/game/game-networking.md +4 -0
  139. package/content/knowledge/game/game-performance-budgeting.md +4 -0
  140. package/content/knowledge/game/game-platform-certification.md +6 -0
  141. package/content/knowledge/game/game-project-structure.md +4 -0
  142. package/content/knowledge/game/game-save-systems.md +4 -0
  143. package/content/knowledge/game/game-testing-strategy.md +4 -0
  144. package/content/knowledge/game/game-ui-patterns.md +4 -0
  145. package/content/knowledge/game/game-vr-ar-design.md +6 -0
  146. package/content/knowledge/library/library-api-design.md +4 -0
  147. package/content/knowledge/library/library-architecture.md +4 -0
  148. package/content/knowledge/library/library-bundling.md +4 -0
  149. package/content/knowledge/library/library-conventions.md +5 -0
  150. package/content/knowledge/library/library-dev-environment.md +4 -0
  151. package/content/knowledge/library/library-documentation.md +4 -0
  152. package/content/knowledge/library/library-project-structure.md +4 -0
  153. package/content/knowledge/library/library-requirements.md +4 -0
  154. package/content/knowledge/library/library-security.md +4 -0
  155. package/content/knowledge/library/library-testing.md +4 -0
  156. package/content/knowledge/library/library-type-definitions.md +4 -0
  157. package/content/knowledge/library/library-versioning.md +5 -0
  158. package/content/knowledge/ml/ml-architecture.md +4 -0
  159. package/content/knowledge/ml/ml-conventions.md +4 -0
  160. package/content/knowledge/ml/ml-dev-environment.md +4 -0
  161. package/content/knowledge/ml/ml-experiment-tracking.md +6 -0
  162. package/content/knowledge/ml/ml-model-evaluation.md +4 -0
  163. package/content/knowledge/ml/ml-observability.md +5 -0
  164. package/content/knowledge/ml/ml-project-structure.md +4 -0
  165. package/content/knowledge/ml/ml-requirements.md +4 -0
  166. package/content/knowledge/ml/ml-security.md +5 -0
  167. package/content/knowledge/ml/ml-serving-patterns.md +4 -0
  168. package/content/knowledge/ml/ml-testing.md +4 -0
  169. package/content/knowledge/ml/ml-training-patterns.md +4 -0
  170. package/content/knowledge/mobile-app/mobile-app-architecture.md +6 -0
  171. package/content/knowledge/mobile-app/mobile-app-conventions.md +6 -0
  172. package/content/knowledge/mobile-app/mobile-app-deployment.md +6 -0
  173. package/content/knowledge/mobile-app/mobile-app-dev-environment.md +6 -0
  174. package/content/knowledge/mobile-app/mobile-app-distribution.md +6 -0
  175. package/content/knowledge/mobile-app/mobile-app-observability.md +7 -0
  176. package/content/knowledge/mobile-app/mobile-app-offline-patterns.md +7 -0
  177. package/content/knowledge/mobile-app/mobile-app-project-structure.md +6 -0
  178. package/content/knowledge/mobile-app/mobile-app-push-notifications.md +6 -0
  179. package/content/knowledge/mobile-app/mobile-app-requirements.md +7 -0
  180. package/content/knowledge/mobile-app/mobile-app-security.md +8 -0
  181. package/content/knowledge/mobile-app/mobile-app-testing.md +6 -0
  182. package/content/knowledge/product/gap-analysis.md +4 -0
  183. package/content/knowledge/product/ideation-craft.md +4 -0
  184. package/content/knowledge/product/prd-craft.md +4 -0
  185. package/content/knowledge/product/prd-innovation.md +4 -0
  186. package/content/knowledge/product/vision-craft.md +4 -0
  187. package/content/knowledge/product/vision-innovation.md +4 -0
  188. package/content/knowledge/research/research-architecture.md +4 -0
  189. package/content/knowledge/research/research-conventions.md +6 -0
  190. package/content/knowledge/research/research-dev-environment.md +6 -0
  191. package/content/knowledge/research/research-experiment-loop.md +4 -0
  192. package/content/knowledge/research/research-experiment-tracking.md +6 -0
  193. package/content/knowledge/research/research-ml-architecture-search.md +4 -0
  194. package/content/knowledge/research/research-ml-evaluation.md +4 -0
  195. package/content/knowledge/research/research-ml-experiment-tracking.md +6 -0
  196. package/content/knowledge/research/research-ml-training-patterns.md +4 -0
  197. package/content/knowledge/research/research-observability.md +5 -0
  198. package/content/knowledge/research/research-overfitting-prevention.md +5 -0
  199. package/content/knowledge/research/research-project-structure.md +5 -0
  200. package/content/knowledge/research/research-quant-backtesting.md +4 -0
  201. package/content/knowledge/research/research-quant-market-data.md +4 -0
  202. package/content/knowledge/research/research-quant-metrics.md +4 -0
  203. package/content/knowledge/research/research-quant-requirements.md +4 -0
  204. package/content/knowledge/research/research-quant-risk.md +4 -0
  205. package/content/knowledge/research/research-quant-strategy-patterns.md +4 -0
  206. package/content/knowledge/research/research-requirements.md +5 -0
  207. package/content/knowledge/research/research-security.md +5 -0
  208. package/content/knowledge/research/research-sim-compute-management.md +4 -0
  209. package/content/knowledge/research/research-sim-engine-patterns.md +4 -0
  210. package/content/knowledge/research/research-sim-parameter-spaces.md +4 -0
  211. package/content/knowledge/research/research-sim-validation.md +4 -0
  212. package/content/knowledge/research/research-testing.md +5 -0
  213. package/content/knowledge/review/review-adr.md +6 -0
  214. package/content/knowledge/review/review-api-design.md +6 -0
  215. package/content/knowledge/review/review-art-bible.md +4 -0
  216. package/content/knowledge/review/review-database-design.md +5 -0
  217. package/content/knowledge/review/review-domain-modeling.md +5 -0
  218. package/content/knowledge/review/review-game-design.md +4 -0
  219. package/content/knowledge/review/review-game-economy.md +4 -0
  220. package/content/knowledge/review/review-game-ui.md +5 -0
  221. package/content/knowledge/review/review-implementation-tasks.md +5 -0
  222. package/content/knowledge/review/review-methodology.md +4 -0
  223. package/content/knowledge/review/review-netcode.md +4 -0
  224. package/content/knowledge/review/review-operations.md +6 -0
  225. package/content/knowledge/review/review-platform-cert.md +4 -0
  226. package/content/knowledge/review/review-prd.md +4 -0
  227. package/content/knowledge/review/review-security.md +7 -0
  228. package/content/knowledge/review/review-system-architecture.md +6 -0
  229. package/content/knowledge/review/review-testing-strategy.md +6 -0
  230. package/content/knowledge/review/review-user-stories.md +5 -0
  231. package/content/knowledge/review/review-ux-specification.md +6 -0
  232. package/content/knowledge/review/review-vision.md +4 -0
  233. package/content/knowledge/tools/post-implementation-review-methodology.md +4 -0
  234. package/content/knowledge/tools/release-management.md +5 -0
  235. package/content/knowledge/tools/session-analysis.md +4 -0
  236. package/content/knowledge/tools/version-strategy.md +4 -0
  237. package/content/knowledge/validation/critical-path-analysis.md +4 -0
  238. package/content/knowledge/validation/cross-phase-consistency.md +4 -0
  239. package/content/knowledge/validation/decision-completeness.md +5 -0
  240. package/content/knowledge/validation/dependency-validation.md +4 -0
  241. package/content/knowledge/validation/implementability-review.md +4 -0
  242. package/content/knowledge/validation/scope-management.md +4 -0
  243. package/content/knowledge/validation/traceability.md +4 -0
  244. package/content/knowledge/web-app/web-app-api-patterns.md +6 -0
  245. package/content/knowledge/web-app/web-app-architecture.md +6 -0
  246. package/content/knowledge/web-app/web-app-auth-patterns.md +9 -0
  247. package/content/knowledge/web-app/web-app-conventions.md +5 -0
  248. package/content/knowledge/web-app/web-app-data-patterns.md +6 -0
  249. package/content/knowledge/web-app/web-app-deployment-workflow.md +6 -0
  250. package/content/knowledge/web-app/web-app-deployment.md +6 -0
  251. package/content/knowledge/web-app/web-app-design-system.md +6 -0
  252. package/content/knowledge/web-app/web-app-dev-environment.md +6 -0
  253. package/content/knowledge/web-app/web-app-observability.md +6 -0
  254. package/content/knowledge/web-app/web-app-project-structure.md +5 -0
  255. package/content/knowledge/web-app/web-app-rendering-strategies.md +6 -0
  256. package/content/knowledge/web-app/web-app-requirements.md +6 -0
  257. package/content/knowledge/web-app/web-app-security.md +8 -0
  258. package/content/knowledge/web-app/web-app-session-patterns.md +7 -0
  259. package/content/knowledge/web-app/web-app-testing.md +6 -0
  260. package/content/knowledge/web-app/web-app-ux-patterns.md +6 -0
  261. package/content/knowledge/web3/web3-access-control.md +8 -0
  262. package/content/knowledge/web3/web3-architecture.md +7 -0
  263. package/content/knowledge/web3/web3-audit-workflow.md +7 -0
  264. package/content/knowledge/web3/web3-common-vulnerabilities.md +8 -0
  265. package/content/knowledge/web3/web3-conventions.md +6 -0
  266. package/content/knowledge/web3/web3-deployment-and-verification.md +7 -0
  267. package/content/knowledge/web3/web3-dev-environment.md +6 -0
  268. package/content/knowledge/web3/web3-gas-optimization.md +7 -0
  269. package/content/knowledge/web3/web3-oracles-and-external-data.md +7 -0
  270. package/content/knowledge/web3/web3-project-structure.md +6 -0
  271. package/content/knowledge/web3/web3-requirements.md +6 -0
  272. package/content/knowledge/web3/web3-security.md +8 -0
  273. package/content/knowledge/web3/web3-testing.md +6 -0
  274. package/content/knowledge/web3/web3-upgradeability.md +7 -0
  275. package/content/tools/knowledge-audit-entry.md +79 -0
  276. package/content/tools/review-code.md +41 -14
  277. package/content/tools/review-pr.md +32 -14
  278. package/dist/cli/commands/dashboard.d.ts +1 -1
  279. package/dist/cli/commands/dashboard.d.ts.map +1 -1
  280. package/dist/cli/commands/dashboard.js +10 -10
  281. package/dist/cli/commands/dashboard.js.map +1 -1
  282. package/dist/cli/commands/dashboard.test.js +1 -1
  283. package/dist/cli/commands/dashboard.test.js.map +1 -1
  284. package/dist/cli/commands/guides.d.ts +24 -0
  285. package/dist/cli/commands/guides.d.ts.map +1 -0
  286. package/dist/cli/commands/guides.js +103 -0
  287. package/dist/cli/commands/guides.js.map +1 -0
  288. package/dist/cli/commands/knowledge-freshness-anti-over-rewrite.d.ts +9 -0
  289. package/dist/cli/commands/knowledge-freshness-anti-over-rewrite.d.ts.map +1 -0
  290. package/dist/cli/commands/knowledge-freshness-anti-over-rewrite.js +112 -0
  291. package/dist/cli/commands/knowledge-freshness-anti-over-rewrite.js.map +1 -0
  292. package/dist/cli/commands/knowledge-freshness-audit-apply.d.ts +8 -0
  293. package/dist/cli/commands/knowledge-freshness-audit-apply.d.ts.map +1 -0
  294. package/dist/cli/commands/knowledge-freshness-audit-apply.js +96 -0
  295. package/dist/cli/commands/knowledge-freshness-audit-apply.js.map +1 -0
  296. package/dist/cli/commands/knowledge-freshness-audit-prefilter.d.ts +7 -0
  297. package/dist/cli/commands/knowledge-freshness-audit-prefilter.d.ts.map +1 -0
  298. package/dist/cli/commands/knowledge-freshness-audit-prefilter.js +42 -0
  299. package/dist/cli/commands/knowledge-freshness-audit-prefilter.js.map +1 -0
  300. package/dist/cli/commands/knowledge-freshness-audit-run-entry.d.ts +9 -0
  301. package/dist/cli/commands/knowledge-freshness-audit-run-entry.d.ts.map +1 -0
  302. package/dist/cli/commands/knowledge-freshness-audit-run-entry.js +63 -0
  303. package/dist/cli/commands/knowledge-freshness-audit-run-entry.js.map +1 -0
  304. package/dist/cli/commands/knowledge-freshness-bump-version.d.ts +8 -0
  305. package/dist/cli/commands/knowledge-freshness-bump-version.d.ts.map +1 -0
  306. package/dist/cli/commands/knowledge-freshness-bump-version.js +34 -0
  307. package/dist/cli/commands/knowledge-freshness-bump-version.js.map +1 -0
  308. package/dist/cli/commands/knowledge-freshness-deep-guidance-check.d.ts +7 -0
  309. package/dist/cli/commands/knowledge-freshness-deep-guidance-check.d.ts.map +1 -0
  310. package/dist/cli/commands/knowledge-freshness-deep-guidance-check.js +51 -0
  311. package/dist/cli/commands/knowledge-freshness-deep-guidance-check.js.map +1 -0
  312. package/dist/cli/commands/knowledge-freshness-link-check.d.ts +7 -0
  313. package/dist/cli/commands/knowledge-freshness-link-check.d.ts.map +1 -0
  314. package/dist/cli/commands/knowledge-freshness-link-check.js +57 -0
  315. package/dist/cli/commands/knowledge-freshness-link-check.js.map +1 -0
  316. package/dist/cli/commands/knowledge-freshness-lint-unsourced.d.ts +8 -0
  317. package/dist/cli/commands/knowledge-freshness-lint-unsourced.d.ts.map +1 -0
  318. package/dist/cli/commands/knowledge-freshness-lint-unsourced.js +58 -0
  319. package/dist/cli/commands/knowledge-freshness-lint-unsourced.js.map +1 -0
  320. package/dist/cli/commands/knowledge-freshness.d.ts +4 -0
  321. package/dist/cli/commands/knowledge-freshness.d.ts.map +1 -0
  322. package/dist/cli/commands/knowledge-freshness.js +25 -0
  323. package/dist/cli/commands/knowledge-freshness.js.map +1 -0
  324. package/dist/cli/commands/observe.d.ts +4 -0
  325. package/dist/cli/commands/observe.d.ts.map +1 -1
  326. package/dist/cli/commands/observe.js +13 -0
  327. package/dist/cli/commands/observe.js.map +1 -1
  328. package/dist/cli/commands/observe.test.js +46 -0
  329. package/dist/cli/commands/observe.test.js.map +1 -1
  330. package/dist/cli/commands/validate-knowledge.d.ts +4 -0
  331. package/dist/cli/commands/validate-knowledge.d.ts.map +1 -0
  332. package/dist/cli/commands/validate-knowledge.js +32 -0
  333. package/dist/cli/commands/validate-knowledge.js.map +1 -0
  334. package/dist/cli/index.d.ts.map +1 -1
  335. package/dist/cli/index.js +6 -0
  336. package/dist/cli/index.js.map +1 -1
  337. package/dist/core/adapters/claude-code.d.ts.map +1 -1
  338. package/dist/core/adapters/claude-code.js +6 -3
  339. package/dist/core/adapters/claude-code.js.map +1 -1
  340. package/dist/core/adapters/claude-code.test.js +45 -1
  341. package/dist/core/adapters/claude-code.test.js.map +1 -1
  342. package/dist/core/assembly/engine.d.ts.map +1 -1
  343. package/dist/core/assembly/engine.js +7 -3
  344. package/dist/core/assembly/engine.js.map +1 -1
  345. package/dist/core/assembly/engine.test.js +45 -1
  346. package/dist/core/assembly/engine.test.js.map +1 -1
  347. package/dist/core/assembly/gap-signal-tail.d.ts +18 -0
  348. package/dist/core/assembly/gap-signal-tail.d.ts.map +1 -0
  349. package/dist/core/assembly/gap-signal-tail.js +43 -0
  350. package/dist/core/assembly/gap-signal-tail.js.map +1 -0
  351. package/dist/core/assembly/gap-signal-tail.test.d.ts +2 -0
  352. package/dist/core/assembly/gap-signal-tail.test.d.ts.map +1 -0
  353. package/dist/core/assembly/gap-signal-tail.test.js +49 -0
  354. package/dist/core/assembly/gap-signal-tail.test.js.map +1 -0
  355. package/dist/core/assembly/knowledge-loader.d.ts +11 -0
  356. package/dist/core/assembly/knowledge-loader.d.ts.map +1 -1
  357. package/dist/core/assembly/knowledge-loader.js +54 -1
  358. package/dist/core/assembly/knowledge-loader.js.map +1 -1
  359. package/dist/core/assembly/knowledge-loader.test.js +73 -0
  360. package/dist/core/assembly/knowledge-loader.test.js.map +1 -1
  361. package/dist/guides/build.d.ts +12 -0
  362. package/dist/guides/build.d.ts.map +1 -0
  363. package/dist/guides/build.js +50 -0
  364. package/dist/guides/build.js.map +1 -0
  365. package/dist/guides/build.test.d.ts +2 -0
  366. package/dist/guides/build.test.d.ts.map +1 -0
  367. package/dist/guides/build.test.js +74 -0
  368. package/dist/guides/build.test.js.map +1 -0
  369. package/dist/guides/chrome.d.ts +24 -0
  370. package/dist/guides/chrome.d.ts.map +1 -0
  371. package/dist/guides/chrome.js +118 -0
  372. package/dist/guides/chrome.js.map +1 -0
  373. package/dist/guides/cli-guides.test.d.ts +2 -0
  374. package/dist/guides/cli-guides.test.d.ts.map +1 -0
  375. package/dist/guides/cli-guides.test.js +41 -0
  376. package/dist/guides/cli-guides.test.js.map +1 -0
  377. package/dist/guides/dashboard-theme.css +1073 -0
  378. package/dist/guides/directives-callout.test.d.ts +2 -0
  379. package/dist/guides/directives-callout.test.d.ts.map +1 -0
  380. package/dist/guides/directives-callout.test.js +22 -0
  381. package/dist/guides/directives-callout.test.js.map +1 -0
  382. package/dist/guides/directives-chart.test.d.ts +2 -0
  383. package/dist/guides/directives-chart.test.d.ts.map +1 -0
  384. package/dist/guides/directives-chart.test.js +25 -0
  385. package/dist/guides/directives-chart.test.js.map +1 -0
  386. package/dist/guides/directives-filter-table.test.d.ts +2 -0
  387. package/dist/guides/directives-filter-table.test.d.ts.map +1 -0
  388. package/dist/guides/directives-filter-table.test.js +22 -0
  389. package/dist/guides/directives-filter-table.test.js.map +1 -0
  390. package/dist/guides/directives-sev.test.d.ts +2 -0
  391. package/dist/guides/directives-sev.test.d.ts.map +1 -0
  392. package/dist/guides/directives-sev.test.js +15 -0
  393. package/dist/guides/directives-sev.test.js.map +1 -0
  394. package/dist/guides/directives-tabs.test.d.ts +2 -0
  395. package/dist/guides/directives-tabs.test.d.ts.map +1 -0
  396. package/dist/guides/directives-tabs.test.js +52 -0
  397. package/dist/guides/directives-tabs.test.js.map +1 -0
  398. package/dist/guides/directives.d.ts +7 -0
  399. package/dist/guides/directives.d.ts.map +1 -0
  400. package/dist/guides/directives.js +158 -0
  401. package/dist/guides/directives.js.map +1 -0
  402. package/dist/guides/fs-guides.test.d.ts +2 -0
  403. package/dist/guides/fs-guides.test.d.ts.map +1 -0
  404. package/dist/guides/fs-guides.test.js +14 -0
  405. package/dist/guides/fs-guides.test.js.map +1 -0
  406. package/dist/guides/index-page.d.ts +3 -0
  407. package/dist/guides/index-page.d.ts.map +1 -0
  408. package/dist/guides/index-page.js +14 -0
  409. package/dist/guides/index-page.js.map +1 -0
  410. package/dist/guides/lint.d.ts +6 -0
  411. package/dist/guides/lint.d.ts.map +1 -0
  412. package/dist/guides/lint.js +27 -0
  413. package/dist/guides/lint.js.map +1 -0
  414. package/dist/guides/lint.test.d.ts +2 -0
  415. package/dist/guides/lint.test.d.ts.map +1 -0
  416. package/dist/guides/lint.test.js +24 -0
  417. package/dist/guides/lint.test.js.map +1 -0
  418. package/dist/guides/loader.d.ts +4 -0
  419. package/dist/guides/loader.d.ts.map +1 -0
  420. package/dist/guides/loader.js +63 -0
  421. package/dist/guides/loader.js.map +1 -0
  422. package/dist/guides/loader.test.d.ts +2 -0
  423. package/dist/guides/loader.test.d.ts.map +1 -0
  424. package/dist/guides/loader.test.js +85 -0
  425. package/dist/guides/loader.test.js.map +1 -0
  426. package/dist/guides/mermaid-sanitize.test.d.ts +2 -0
  427. package/dist/guides/mermaid-sanitize.test.d.ts.map +1 -0
  428. package/dist/guides/mermaid-sanitize.test.js +57 -0
  429. package/dist/guides/mermaid-sanitize.test.js.map +1 -0
  430. package/dist/guides/mermaid.d.ts +18 -0
  431. package/dist/guides/mermaid.d.ts.map +1 -0
  432. package/dist/guides/mermaid.js +137 -0
  433. package/dist/guides/mermaid.js.map +1 -0
  434. package/dist/guides/mermaid.test.d.ts +2 -0
  435. package/dist/guides/mermaid.test.d.ts.map +1 -0
  436. package/dist/guides/mermaid.test.js +105 -0
  437. package/dist/guides/mermaid.test.js.map +1 -0
  438. package/dist/guides/render.d.ts +12 -0
  439. package/dist/guides/render.d.ts.map +1 -0
  440. package/dist/guides/render.js +58 -0
  441. package/dist/guides/render.js.map +1 -0
  442. package/dist/guides/render.test.d.ts +2 -0
  443. package/dist/guides/render.test.d.ts.map +1 -0
  444. package/dist/guides/render.test.js +46 -0
  445. package/dist/guides/render.test.js.map +1 -0
  446. package/dist/guides/sanitize.d.ts +3 -0
  447. package/dist/guides/sanitize.d.ts.map +1 -0
  448. package/dist/guides/sanitize.js +76 -0
  449. package/dist/guides/sanitize.js.map +1 -0
  450. package/dist/guides/sanitize.test.d.ts +2 -0
  451. package/dist/guides/sanitize.test.d.ts.map +1 -0
  452. package/dist/guides/sanitize.test.js +45 -0
  453. package/dist/guides/sanitize.test.js.map +1 -0
  454. package/dist/guides/template.d.ts +11 -0
  455. package/dist/guides/template.d.ts.map +1 -0
  456. package/dist/guides/template.js +38 -0
  457. package/dist/guides/template.js.map +1 -0
  458. package/dist/guides/template.test.d.ts +2 -0
  459. package/dist/guides/template.test.d.ts.map +1 -0
  460. package/dist/guides/template.test.js +41 -0
  461. package/dist/guides/template.test.js.map +1 -0
  462. package/dist/guides/types.d.ts +20 -0
  463. package/dist/guides/types.d.ts.map +1 -0
  464. package/dist/guides/types.js +2 -0
  465. package/dist/guides/types.js.map +1 -0
  466. package/dist/knowledge-freshness/audit-apply-pr.d.ts +64 -0
  467. package/dist/knowledge-freshness/audit-apply-pr.d.ts.map +1 -0
  468. package/dist/knowledge-freshness/audit-apply-pr.js +309 -0
  469. package/dist/knowledge-freshness/audit-apply-pr.js.map +1 -0
  470. package/dist/knowledge-freshness/audit-apply-pr.test.d.ts +2 -0
  471. package/dist/knowledge-freshness/audit-apply-pr.test.d.ts.map +1 -0
  472. package/dist/knowledge-freshness/audit-apply-pr.test.js +211 -0
  473. package/dist/knowledge-freshness/audit-apply-pr.test.js.map +1 -0
  474. package/dist/knowledge-freshness/audit-apply.d.ts +16 -0
  475. package/dist/knowledge-freshness/audit-apply.d.ts.map +1 -0
  476. package/dist/knowledge-freshness/audit-apply.js +193 -0
  477. package/dist/knowledge-freshness/audit-apply.js.map +1 -0
  478. package/dist/knowledge-freshness/audit-apply.test.d.ts +2 -0
  479. package/dist/knowledge-freshness/audit-apply.test.d.ts.map +1 -0
  480. package/dist/knowledge-freshness/audit-apply.test.js +482 -0
  481. package/dist/knowledge-freshness/audit-apply.test.js.map +1 -0
  482. package/dist/knowledge-freshness/audit-prefilter.d.ts +12 -0
  483. package/dist/knowledge-freshness/audit-prefilter.d.ts.map +1 -0
  484. package/dist/knowledge-freshness/audit-prefilter.js +74 -0
  485. package/dist/knowledge-freshness/audit-prefilter.js.map +1 -0
  486. package/dist/knowledge-freshness/audit-prefilter.test.d.ts +2 -0
  487. package/dist/knowledge-freshness/audit-prefilter.test.d.ts.map +1 -0
  488. package/dist/knowledge-freshness/audit-prefilter.test.js +78 -0
  489. package/dist/knowledge-freshness/audit-prefilter.test.js.map +1 -0
  490. package/dist/knowledge-freshness/audit-runner.d.ts +135 -0
  491. package/dist/knowledge-freshness/audit-runner.d.ts.map +1 -0
  492. package/dist/knowledge-freshness/audit-runner.js +168 -0
  493. package/dist/knowledge-freshness/audit-runner.js.map +1 -0
  494. package/dist/knowledge-freshness/audit-runner.test.d.ts +2 -0
  495. package/dist/knowledge-freshness/audit-runner.test.d.ts.map +1 -0
  496. package/dist/knowledge-freshness/audit-runner.test.js +130 -0
  497. package/dist/knowledge-freshness/audit-runner.test.js.map +1 -0
  498. package/dist/knowledge-freshness/bump-version.d.ts +24 -0
  499. package/dist/knowledge-freshness/bump-version.d.ts.map +1 -0
  500. package/dist/knowledge-freshness/bump-version.js +69 -0
  501. package/dist/knowledge-freshness/bump-version.js.map +1 -0
  502. package/dist/knowledge-freshness/bump-version.test.d.ts +2 -0
  503. package/dist/knowledge-freshness/bump-version.test.d.ts.map +1 -0
  504. package/dist/knowledge-freshness/bump-version.test.js +82 -0
  505. package/dist/knowledge-freshness/bump-version.test.js.map +1 -0
  506. package/dist/knowledge-freshness/gates/anti-over-rewrite.d.ts +86 -0
  507. package/dist/knowledge-freshness/gates/anti-over-rewrite.d.ts.map +1 -0
  508. package/dist/knowledge-freshness/gates/anti-over-rewrite.js +210 -0
  509. package/dist/knowledge-freshness/gates/anti-over-rewrite.js.map +1 -0
  510. package/dist/knowledge-freshness/gates/anti-over-rewrite.test.d.ts +2 -0
  511. package/dist/knowledge-freshness/gates/anti-over-rewrite.test.d.ts.map +1 -0
  512. package/dist/knowledge-freshness/gates/anti-over-rewrite.test.js +115 -0
  513. package/dist/knowledge-freshness/gates/anti-over-rewrite.test.js.map +1 -0
  514. package/dist/knowledge-freshness/gates/changed-files.d.ts +53 -0
  515. package/dist/knowledge-freshness/gates/changed-files.d.ts.map +1 -0
  516. package/dist/knowledge-freshness/gates/changed-files.js +128 -0
  517. package/dist/knowledge-freshness/gates/changed-files.js.map +1 -0
  518. package/dist/knowledge-freshness/gates/deep-guidance-check.d.ts +23 -0
  519. package/dist/knowledge-freshness/gates/deep-guidance-check.d.ts.map +1 -0
  520. package/dist/knowledge-freshness/gates/deep-guidance-check.js +27 -0
  521. package/dist/knowledge-freshness/gates/deep-guidance-check.js.map +1 -0
  522. package/dist/knowledge-freshness/gates/deep-guidance-check.test.d.ts +2 -0
  523. package/dist/knowledge-freshness/gates/deep-guidance-check.test.d.ts.map +1 -0
  524. package/dist/knowledge-freshness/gates/deep-guidance-check.test.js +23 -0
  525. package/dist/knowledge-freshness/gates/deep-guidance-check.test.js.map +1 -0
  526. package/dist/knowledge-freshness/gates/link-check.d.ts +55 -0
  527. package/dist/knowledge-freshness/gates/link-check.d.ts.map +1 -0
  528. package/dist/knowledge-freshness/gates/link-check.js +161 -0
  529. package/dist/knowledge-freshness/gates/link-check.js.map +1 -0
  530. package/dist/knowledge-freshness/gates/link-check.test.d.ts +2 -0
  531. package/dist/knowledge-freshness/gates/link-check.test.d.ts.map +1 -0
  532. package/dist/knowledge-freshness/gates/link-check.test.js +76 -0
  533. package/dist/knowledge-freshness/gates/link-check.test.js.map +1 -0
  534. package/dist/knowledge-freshness/gates/lint-unsourced.d.ts +40 -0
  535. package/dist/knowledge-freshness/gates/lint-unsourced.d.ts.map +1 -0
  536. package/dist/knowledge-freshness/gates/lint-unsourced.js +143 -0
  537. package/dist/knowledge-freshness/gates/lint-unsourced.js.map +1 -0
  538. package/dist/knowledge-freshness/gates/lint-unsourced.test.d.ts +2 -0
  539. package/dist/knowledge-freshness/gates/lint-unsourced.test.d.ts.map +1 -0
  540. package/dist/knowledge-freshness/gates/lint-unsourced.test.js +68 -0
  541. package/dist/knowledge-freshness/gates/lint-unsourced.test.js.map +1 -0
  542. package/dist/knowledge-freshness/gates/parse-entry.d.ts +25 -0
  543. package/dist/knowledge-freshness/gates/parse-entry.d.ts.map +1 -0
  544. package/dist/knowledge-freshness/gates/parse-entry.js +41 -0
  545. package/dist/knowledge-freshness/gates/parse-entry.js.map +1 -0
  546. package/dist/knowledge-freshness/gates/parse-entry.test.d.ts +2 -0
  547. package/dist/knowledge-freshness/gates/parse-entry.test.d.ts.map +1 -0
  548. package/dist/knowledge-freshness/gates/parse-entry.test.js +34 -0
  549. package/dist/knowledge-freshness/gates/parse-entry.test.js.map +1 -0
  550. package/dist/knowledge-freshness/providers/anthropic.d.ts +33 -0
  551. package/dist/knowledge-freshness/providers/anthropic.d.ts.map +1 -0
  552. package/dist/knowledge-freshness/providers/anthropic.js +36 -0
  553. package/dist/knowledge-freshness/providers/anthropic.js.map +1 -0
  554. package/dist/knowledge-freshness/providers/anthropic.test.d.ts +2 -0
  555. package/dist/knowledge-freshness/providers/anthropic.test.d.ts.map +1 -0
  556. package/dist/knowledge-freshness/providers/anthropic.test.js +32 -0
  557. package/dist/knowledge-freshness/providers/anthropic.test.js.map +1 -0
  558. package/dist/knowledge-freshness/providers/deepseek.d.ts +33 -0
  559. package/dist/knowledge-freshness/providers/deepseek.d.ts.map +1 -0
  560. package/dist/knowledge-freshness/providers/deepseek.js +157 -0
  561. package/dist/knowledge-freshness/providers/deepseek.js.map +1 -0
  562. package/dist/knowledge-freshness/providers/deepseek.test.d.ts +2 -0
  563. package/dist/knowledge-freshness/providers/deepseek.test.d.ts.map +1 -0
  564. package/dist/knowledge-freshness/providers/deepseek.test.js +142 -0
  565. package/dist/knowledge-freshness/providers/deepseek.test.js.map +1 -0
  566. package/dist/knowledge-freshness/providers/index.d.ts +41 -0
  567. package/dist/knowledge-freshness/providers/index.d.ts.map +1 -0
  568. package/dist/knowledge-freshness/providers/index.js +108 -0
  569. package/dist/knowledge-freshness/providers/index.js.map +1 -0
  570. package/dist/knowledge-freshness/providers/index.test.d.ts +2 -0
  571. package/dist/knowledge-freshness/providers/index.test.d.ts.map +1 -0
  572. package/dist/knowledge-freshness/providers/index.test.js +97 -0
  573. package/dist/knowledge-freshness/providers/index.test.js.map +1 -0
  574. package/dist/knowledge-freshness/source-hash.d.ts +39 -0
  575. package/dist/knowledge-freshness/source-hash.d.ts.map +1 -0
  576. package/dist/knowledge-freshness/source-hash.js +180 -0
  577. package/dist/knowledge-freshness/source-hash.js.map +1 -0
  578. package/dist/knowledge-freshness/source-hash.test.d.ts +2 -0
  579. package/dist/knowledge-freshness/source-hash.test.d.ts.map +1 -0
  580. package/dist/knowledge-freshness/source-hash.test.js +63 -0
  581. package/dist/knowledge-freshness/source-hash.test.js.map +1 -0
  582. package/dist/knowledge-freshness/source-url-validator.d.ts +57 -0
  583. package/dist/knowledge-freshness/source-url-validator.d.ts.map +1 -0
  584. package/dist/knowledge-freshness/source-url-validator.js +304 -0
  585. package/dist/knowledge-freshness/source-url-validator.js.map +1 -0
  586. package/dist/knowledge-freshness/source-url-validator.test.d.ts +2 -0
  587. package/dist/knowledge-freshness/source-url-validator.test.d.ts.map +1 -0
  588. package/dist/knowledge-freshness/source-url-validator.test.js +167 -0
  589. package/dist/knowledge-freshness/source-url-validator.test.js.map +1 -0
  590. package/dist/observability/checks/lens-i-knowledge-gaps.d.ts +3 -0
  591. package/dist/observability/checks/lens-i-knowledge-gaps.d.ts.map +1 -0
  592. package/dist/observability/checks/lens-i-knowledge-gaps.js +165 -0
  593. package/dist/observability/checks/lens-i-knowledge-gaps.js.map +1 -0
  594. package/dist/observability/checks/lens-i-knowledge-gaps.test.d.ts +2 -0
  595. package/dist/observability/checks/lens-i-knowledge-gaps.test.d.ts.map +1 -0
  596. package/dist/observability/checks/lens-i-knowledge-gaps.test.js +421 -0
  597. package/dist/observability/checks/lens-i-knowledge-gaps.test.js.map +1 -0
  598. package/dist/observability/checks/lens-i-lessons-scanner.d.ts +16 -0
  599. package/dist/observability/checks/lens-i-lessons-scanner.d.ts.map +1 -0
  600. package/dist/observability/checks/lens-i-lessons-scanner.js +106 -0
  601. package/dist/observability/checks/lens-i-lessons-scanner.js.map +1 -0
  602. package/dist/observability/checks/lens-i-lessons-scanner.test.d.ts +2 -0
  603. package/dist/observability/checks/lens-i-lessons-scanner.test.d.ts.map +1 -0
  604. package/dist/observability/checks/lens-i-lessons-scanner.test.js +174 -0
  605. package/dist/observability/checks/lens-i-lessons-scanner.test.js.map +1 -0
  606. package/dist/observability/engine/api.d.ts +4 -0
  607. package/dist/observability/engine/api.d.ts.map +1 -1
  608. package/dist/observability/engine/api.js +17 -1
  609. package/dist/observability/engine/api.js.map +1 -1
  610. package/dist/observability/engine/checks/observability-config.d.ts +4 -0
  611. package/dist/observability/engine/checks/observability-config.d.ts.map +1 -1
  612. package/dist/observability/engine/checks/observability-config.js +1 -0
  613. package/dist/observability/engine/checks/observability-config.js.map +1 -1
  614. package/dist/observability/engine/checks/registry.d.ts.map +1 -1
  615. package/dist/observability/engine/checks/registry.js +7 -0
  616. package/dist/observability/engine/checks/registry.js.map +1 -1
  617. package/dist/observability/engine/checks/registry.test.js +3 -2
  618. package/dist/observability/engine/checks/registry.test.js.map +1 -1
  619. package/dist/observability/engine/checks/runner.d.ts +30 -0
  620. package/dist/observability/engine/checks/runner.d.ts.map +1 -1
  621. package/dist/observability/engine/checks/runner.js +8 -1
  622. package/dist/observability/engine/checks/runner.js.map +1 -1
  623. package/dist/observability/engine/checks/runner.test.js +74 -0
  624. package/dist/observability/engine/checks/runner.test.js.map +1 -1
  625. package/dist/observability/engine/event-schemas.d.ts.map +1 -1
  626. package/dist/observability/engine/event-schemas.js +41 -3
  627. package/dist/observability/engine/event-schemas.js.map +1 -1
  628. package/dist/observability/engine/event-schemas.test.js +105 -0
  629. package/dist/observability/engine/event-schemas.test.js.map +1 -1
  630. package/dist/observability/engine/fix-flow.d.ts +7 -0
  631. package/dist/observability/engine/fix-flow.d.ts.map +1 -1
  632. package/dist/observability/engine/fix-flow.js +5 -3
  633. package/dist/observability/engine/fix-flow.js.map +1 -1
  634. package/dist/observability/engine/knowledge-root-integration.test.d.ts +2 -0
  635. package/dist/observability/engine/knowledge-root-integration.test.d.ts.map +1 -0
  636. package/dist/observability/engine/knowledge-root-integration.test.js +103 -0
  637. package/dist/observability/engine/knowledge-root-integration.test.js.map +1 -0
  638. package/dist/observability/engine/types.d.ts +20 -1
  639. package/dist/observability/engine/types.d.ts.map +1 -1
  640. package/dist/observability/engine/types.test.js +1 -1
  641. package/dist/observability/engine/types.test.js.map +1 -1
  642. package/dist/observability/knowledge-index.d.ts +145 -0
  643. package/dist/observability/knowledge-index.d.ts.map +1 -0
  644. package/dist/observability/knowledge-index.js +353 -0
  645. package/dist/observability/knowledge-index.js.map +1 -0
  646. package/dist/observability/knowledge-index.test.d.ts +2 -0
  647. package/dist/observability/knowledge-index.test.d.ts.map +1 -0
  648. package/dist/observability/knowledge-index.test.js +364 -0
  649. package/dist/observability/knowledge-index.test.js.map +1 -0
  650. package/dist/observability/renderers/markdown.d.ts.map +1 -1
  651. package/dist/observability/renderers/markdown.js +14 -0
  652. package/dist/observability/renderers/markdown.js.map +1 -1
  653. package/dist/observability/renderers/markdown.test.js +30 -0
  654. package/dist/observability/renderers/markdown.test.js.map +1 -1
  655. package/dist/types/assembly.d.ts +10 -0
  656. package/dist/types/assembly.d.ts.map +1 -1
  657. package/dist/utils/fs.d.ts +6 -0
  658. package/dist/utils/fs.d.ts.map +1 -1
  659. package/dist/utils/fs.js +13 -0
  660. package/dist/utils/fs.js.map +1 -1
  661. package/dist/validation/knowledge-frontmatter-validator.d.ts +15 -0
  662. package/dist/validation/knowledge-frontmatter-validator.d.ts.map +1 -0
  663. package/dist/validation/knowledge-frontmatter-validator.js +131 -0
  664. package/dist/validation/knowledge-frontmatter-validator.js.map +1 -0
  665. package/dist/validation/knowledge-frontmatter-validator.test.d.ts +2 -0
  666. package/dist/validation/knowledge-frontmatter-validator.test.d.ts.map +1 -0
  667. package/dist/validation/knowledge-frontmatter-validator.test.js +66 -0
  668. package/dist/validation/knowledge-frontmatter-validator.test.js.map +1 -0
  669. package/package.json +13 -4
@@ -0,0 +1,12 @@
1
+ import type { LintResult } from './lint.js';
2
+ export declare function loadThemeCss(): string;
3
+ export interface BuildGuideArgs {
4
+ guideDir: string;
5
+ css: string;
6
+ mermaidRender?: (source: string) => Promise<string>;
7
+ }
8
+ export declare function buildGuide(args: BuildGuideArgs): Promise<{
9
+ lint: LintResult;
10
+ }>;
11
+ export declare function buildAllGuides(projectRoot?: string): Promise<void>;
12
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/guides/build.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,wBAAgB,YAAY,IAAI,MAAM,CAQrC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CACpD;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAoBpF;AAED,wBAAsB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQxE"}
@@ -0,0 +1,50 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { atomicWriteFile, getPackageRoot, getPackageGuidesDir } from '../utils/fs.js';
4
+ import { buildGuidesIndex, extractGuideFrontmatter } from './loader.js';
5
+ import { renderGuideBody } from './render.js';
6
+ import { remarkCallout, remarkTabs, remarkFilterTable, remarkChart, remarkSev } from './directives.js';
7
+ import { remarkMermaid, pruneDiagrams } from './mermaid.js';
8
+ import { wrapInChrome } from './template.js';
9
+ import { renderIndexPage } from './index-page.js';
10
+ import { lintGuide } from './lint.js';
11
+ export function loadThemeCss() {
12
+ const p = path.join(getPackageRoot(), 'dist', 'guides', 'dashboard-theme.css');
13
+ if (!fs.existsSync(p)) {
14
+ throw new Error(`Missing ${p} — run \`npm run build\` (the build copies lib/dashboard-theme.css into dist/guides/).`);
15
+ }
16
+ return fs.readFileSync(p, 'utf8');
17
+ }
18
+ export async function buildGuide(args) {
19
+ const md = fs.readFileSync(path.join(args.guideDir, 'index.md'), 'utf8');
20
+ const lint = lintGuide(md);
21
+ if (lint.errors.length) {
22
+ throw new Error(`guide lint failed:\n ${lint.errors.join('\n ')}`);
23
+ }
24
+ for (const w of lint.warnings)
25
+ process.stderr.write(`warning: ${w}\n`);
26
+ const fm = extractGuideFrontmatter(md);
27
+ if (!fm)
28
+ throw new Error(`invalid or missing frontmatter in ${path.join(args.guideDir, 'index.md')}`);
29
+ const diagramIds = [];
30
+ const { body, headings } = await renderGuideBody(md, {
31
+ plugins: [
32
+ remarkCallout, remarkTabs, remarkFilterTable, remarkChart, remarkSev,
33
+ remarkMermaid({ guideDir: args.guideDir, render: args.mermaidRender, collect: diagramIds }),
34
+ ],
35
+ });
36
+ pruneDiagrams(args.guideDir, diagramIds);
37
+ const html = wrapInChrome({ title: fm.title, body, headings, css: args.css });
38
+ atomicWriteFile(path.join(args.guideDir, 'index.html'), html);
39
+ return { lint };
40
+ }
41
+ export async function buildAllGuides(projectRoot) {
42
+ const css = loadThemeCss();
43
+ const guidesDir = getPackageGuidesDir(projectRoot);
44
+ const index = buildGuidesIndex(guidesDir);
45
+ for (const entry of index.values()) {
46
+ await buildGuide({ guideDir: entry.dir, css });
47
+ }
48
+ atomicWriteFile(path.join(guidesDir, 'index.html'), renderIndexPage([...index.values()], css));
49
+ }
50
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/guides/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=build.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.test.d.ts","sourceRoot":"","sources":["../../src/guides/build.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,74 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
+ import os from 'node:os';
5
+ import { buildGuide } from './build.js';
6
+ import { renderIndexPage } from './index-page.js';
7
+ const CSS = ':root{--bg:#fff}';
8
+ const GUIDE_MD = `---
9
+ title: MMR
10
+ topic: mmr
11
+ description: review
12
+ category: tools
13
+ order: 10
14
+ ---
15
+
16
+ ## Intro
17
+
18
+ :::callout{type=tip}
19
+ Use :sev[P1]{level=p1} wisely.
20
+ :::
21
+
22
+ | Flag | Desc |
23
+ |---|---|
24
+ | --pr | number |
25
+ `;
26
+ describe('buildGuide', () => {
27
+ it('writes a self-contained index.html and returns the lint result', async () => {
28
+ const root = fs.mkdtempSync(path.join(os.tmpdir(), 'gb-'));
29
+ const dir = path.join(root, 'mmr');
30
+ fs.mkdirSync(dir, { recursive: true });
31
+ fs.writeFileSync(path.join(dir, 'index.md'), GUIDE_MD);
32
+ const res = await buildGuide({ guideDir: dir, css: CSS, mermaidRender: async () => '<svg><rect/></svg>' });
33
+ const html = fs.readFileSync(path.join(dir, 'index.html'), 'utf8');
34
+ expect(html).toContain('<title>MMR</title>');
35
+ expect(html).toContain('callout-tip');
36
+ expect(html).toContain('sev-p1');
37
+ expect(res.lint.errors).toEqual([]);
38
+ });
39
+ it('throws when lint finds a missing text-equivalent', async () => {
40
+ const root = fs.mkdtempSync(path.join(os.tmpdir(), 'gb-'));
41
+ const dir = path.join(root, 'mmr');
42
+ fs.mkdirSync(dir, { recursive: true });
43
+ fs.writeFileSync(path.join(dir, 'index.md'), GUIDE_MD + '\n:::embed{src=partials/x.svg}\n:::\n');
44
+ await expect(buildGuide({ guideDir: dir, css: CSS, mermaidRender: async () => '' }))
45
+ .rejects.toThrow(/text-equivalent/i);
46
+ });
47
+ });
48
+ describe('renderIndexPage', () => {
49
+ it('lists guides by order with links', () => {
50
+ const html = renderIndexPage([
51
+ /* eslint-disable @typescript-eslint/no-explicit-any */
52
+ ({ topic: 'mmr', frontmatter: {
53
+ title: 'MMR', topic: 'mmr', description: 'review', category: 'tools', order: 10,
54
+ } }),
55
+ /* eslint-enable @typescript-eslint/no-explicit-any */
56
+ ], CSS);
57
+ expect(html).toContain('href="mmr/index.html"');
58
+ expect(html).toContain('MMR');
59
+ expect(html).toContain('review');
60
+ });
61
+ it('escapes < and & in frontmatter fields', () => {
62
+ const html = renderIndexPage([
63
+ /* eslint-disable @typescript-eslint/no-explicit-any */
64
+ ({ topic: 'x', frontmatter: {
65
+ title: 'A & B', topic: 'x', description: '<script>x</script>', category: 'c', order: 1,
66
+ } }),
67
+ /* eslint-enable @typescript-eslint/no-explicit-any */
68
+ ], ':root{}');
69
+ expect(html).toContain('A &amp; B');
70
+ expect(html).not.toContain('<script>x</script>');
71
+ expect(html).toContain('&lt;script&gt;');
72
+ });
73
+ });
74
+ //# sourceMappingURL=build.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.test.js","sourceRoot":"","sources":["../../src/guides/build.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * THEME_INIT_JS — tiny blocking script for <head>.
3
+ *
4
+ * Reads saved theme or OS preference and sets [data-theme] on <html> before
5
+ * first paint, eliminating flash-of-unstyled-theme (FOUC) for dark-mode users.
6
+ * Must run synchronously in <head>; no toggle logic here.
7
+ */
8
+ export declare const THEME_INIT_JS: string;
9
+ /**
10
+ * CHROME_JS — self-contained IIFE for guide pages (end-of-body).
11
+ *
12
+ * Dark mode: keyed on [data-theme="dark"] on <html>, matching dashboard-theme.css.
13
+ * Initial theme application is handled by THEME_INIT_JS in <head>.
14
+ *
15
+ * Behaviours:
16
+ * - theme : [data-action=theme] toggles current data-theme + persists to localStorage
17
+ * - mobile nav: [data-action=nav] toggles .open on .rail
18
+ * - copy : wrap every <pre> in <div class="code">, prepend <button class="copy-btn">Copy</button>
19
+ * - tabs : click .tab-btn → activate matching .tabpane within same .tabs group
20
+ * - filter-table: .filter-input input → hide non-matching <tbody tr> in enclosing .filter-table
21
+ * - scrollspy : IntersectionObserver on h2[id],h3[id]; marks .toc a[href="#id"] active
22
+ */
23
+ export declare const CHROME_JS: string;
24
+ //# sourceMappingURL=chrome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../src/guides/chrome.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAAE,MAGqD,CAAA;AAEjF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,SAAS,EAAE,MA4FlB,CAAA"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * THEME_INIT_JS — tiny blocking script for <head>.
3
+ *
4
+ * Reads saved theme or OS preference and sets [data-theme] on <html> before
5
+ * first paint, eliminating flash-of-unstyled-theme (FOUC) for dark-mode users.
6
+ * Must run synchronously in <head>; no toggle logic here.
7
+ */
8
+ export const THEME_INIT_JS = '(function(){try{var t=localStorage.getItem(\'guide-theme\');' +
9
+ 'if(!t&&window.matchMedia&&matchMedia(\'(prefers-color-scheme: dark)\').matches)t=\'dark\';' +
10
+ 'if(t)document.documentElement.setAttribute(\'data-theme\',t);}catch(e){}})();';
11
+ /**
12
+ * CHROME_JS — self-contained IIFE for guide pages (end-of-body).
13
+ *
14
+ * Dark mode: keyed on [data-theme="dark"] on <html>, matching dashboard-theme.css.
15
+ * Initial theme application is handled by THEME_INIT_JS in <head>.
16
+ *
17
+ * Behaviours:
18
+ * - theme : [data-action=theme] toggles current data-theme + persists to localStorage
19
+ * - mobile nav: [data-action=nav] toggles .open on .rail
20
+ * - copy : wrap every <pre> in <div class="code">, prepend <button class="copy-btn">Copy</button>
21
+ * - tabs : click .tab-btn → activate matching .tabpane within same .tabs group
22
+ * - filter-table: .filter-input input → hide non-matching <tbody tr> in enclosing .filter-table
23
+ * - scrollspy : IntersectionObserver on h2[id],h3[id]; marks .toc a[href="#id"] active
24
+ */
25
+ export const CHROME_JS = /* js */ `(function(){
26
+ var LS_KEY = 'guide-theme';
27
+ function applyTheme(t) {
28
+ document.documentElement.setAttribute('data-theme', t);
29
+ }
30
+
31
+ document.addEventListener('DOMContentLoaded', function() {
32
+ // ─── Theme toggle ────────────────────────────────────────────────────────
33
+ document.querySelectorAll('[data-action="theme"]').forEach(function(btn) {
34
+ btn.addEventListener('click', function() {
35
+ var current = document.documentElement.getAttribute('data-theme');
36
+ var next = current === 'dark' ? 'light' : 'dark';
37
+ applyTheme(next);
38
+ try { localStorage.setItem(LS_KEY, next); } catch(e) {}
39
+ });
40
+ });
41
+
42
+ // ─── Mobile nav ──────────────────────────────────────────────────────────
43
+ document.querySelectorAll('[data-action="nav"]').forEach(function(btn) {
44
+ btn.addEventListener('click', function() {
45
+ var rail = document.querySelector('.rail');
46
+ if (rail) rail.classList.toggle('open');
47
+ });
48
+ });
49
+
50
+ // ─── Copy buttons ─────────────────────────────────────────────────────────
51
+ document.querySelectorAll('pre').forEach(function(pre) {
52
+ if (!pre.parentNode) return;
53
+ var wrapper = document.createElement('div');
54
+ wrapper.className = 'code';
55
+ pre.parentNode.insertBefore(wrapper, pre);
56
+ wrapper.appendChild(pre);
57
+ var btn = document.createElement('button');
58
+ btn.className = 'copy-btn';
59
+ btn.textContent = 'Copy';
60
+ btn.addEventListener('click', function() {
61
+ var text = pre.textContent || '';
62
+ if (navigator.clipboard && navigator.clipboard.writeText) {
63
+ navigator.clipboard.writeText(text).then(function() {
64
+ btn.textContent = 'Copied';
65
+ setTimeout(function() { btn.textContent = 'Copy'; }, 1200);
66
+ }, function() {
67
+ btn.textContent = 'Copy';
68
+ });
69
+ }
70
+ });
71
+ wrapper.insertBefore(btn, pre);
72
+ });
73
+
74
+ // ─── Tabs ─────────────────────────────────────────────────────────────────
75
+ document.querySelectorAll('.tabs').forEach(function(group) {
76
+ group.querySelectorAll('.tab-btn').forEach(function(btn) {
77
+ btn.addEventListener('click', function() {
78
+ var idx = btn.getAttribute('data-tab');
79
+ group.querySelectorAll('.tab-btn').forEach(function(b) {
80
+ b.classList.toggle('active', b === btn);
81
+ });
82
+ group.querySelectorAll('.tabpane').forEach(function(pane) {
83
+ pane.classList.toggle('active', pane.getAttribute('data-tab') === idx);
84
+ });
85
+ });
86
+ });
87
+ });
88
+
89
+ // ─── Filter tables ────────────────────────────────────────────────────────
90
+ document.querySelectorAll('.filter-input').forEach(function(input) {
91
+ input.addEventListener('input', function() {
92
+ var q = input.value.toLowerCase();
93
+ var container = input.closest('.filter-table');
94
+ if (!container) return;
95
+ container.querySelectorAll('tbody tr').forEach(function(row) {
96
+ var text = (row.textContent || '').toLowerCase();
97
+ row.style.display = text.includes(q) ? '' : 'none';
98
+ });
99
+ });
100
+ });
101
+
102
+ // ─── Scrollspy ────────────────────────────────────────────────────────────
103
+ if (typeof IntersectionObserver === 'undefined') return;
104
+ var headings = document.querySelectorAll('h2[id],h3[id]');
105
+ if (!headings.length) return;
106
+ var observer = new IntersectionObserver(function(entries) {
107
+ entries.forEach(function(entry) {
108
+ if (!entry.isIntersecting) return;
109
+ var id = entry.target.getAttribute('id');
110
+ document.querySelectorAll('.toc a').forEach(function(a) {
111
+ a.classList.toggle('active', a.getAttribute('href') === '#' + id);
112
+ });
113
+ });
114
+ }, { rootMargin: '0px 0px -70% 0px', threshold: 0 });
115
+ headings.forEach(function(h) { observer.observe(h); });
116
+ });
117
+ })();`;
118
+ //# sourceMappingURL=chrome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chrome.js","sourceRoot":"","sources":["../../src/guides/chrome.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GACxB,8DAA8D;IAC9D,4FAA4F;IAC5F,+EAA+E,CAAA;AAEjF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,SAAS,GAAW,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA4FpC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cli-guides.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-guides.test.d.ts","sourceRoot":"","sources":["../../src/guides/cli-guides.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
+ import os from 'node:os';
5
+ import { execFileSync } from 'node:child_process';
6
+ import { listGuides, resolveGuide } from '../cli/commands/guides.js';
7
+ const FM = '---\ntitle: MMR\ntopic: mmr\ndescription: review\ncategory: tools\norder: 10\n---\n# x\n';
8
+ function fixture() {
9
+ const root = fs.mkdtempSync(path.join(os.tmpdir(), 'cli-'));
10
+ const dir = path.join(root, 'content', 'guides', 'mmr');
11
+ fs.mkdirSync(dir, { recursive: true });
12
+ fs.writeFileSync(path.join(dir, 'index.md'), FM);
13
+ fs.writeFileSync(path.join(dir, 'index.html'), '<html></html>');
14
+ return root;
15
+ }
16
+ describe('--no-open flag (yargs strict regression)', () => {
17
+ it('accepts --no-open without a strict-mode rejection', () => {
18
+ const cli = path.resolve('dist/index.js');
19
+ const out = execFileSync('node', [cli, 'guides', '--no-open', '--list', '--format', 'json'], { encoding: 'utf8' });
20
+ const parsed = JSON.parse(out);
21
+ expect(parsed.success).toBe(true);
22
+ });
23
+ });
24
+ describe('listGuides', () => {
25
+ it('returns guide summaries sorted by order', () => {
26
+ const list = listGuides(fixture());
27
+ expect(list).toEqual([{ topic: 'mmr', title: 'MMR', description: 'review', category: 'tools' }]);
28
+ });
29
+ });
30
+ describe('resolveGuide', () => {
31
+ it('returns md and html paths for a topic', () => {
32
+ const root = fixture();
33
+ const g = resolveGuide(root, 'mmr');
34
+ expect(g.mdPath.endsWith(path.join('mmr', 'index.md'))).toBe(true);
35
+ expect(g.htmlPath.endsWith(path.join('mmr', 'index.html'))).toBe(true);
36
+ });
37
+ it('returns null for an unknown topic', () => {
38
+ expect(resolveGuide(fixture(), 'nope')).toBeNull();
39
+ });
40
+ });
41
+ //# sourceMappingURL=cli-guides.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-guides.test.js","sourceRoot":"","sources":["../../src/guides/cli-guides.test.ts"],"names":[],"mappings":"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"}