@shrkcrft/cli 0.1.0-alpha.2

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 (450) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -0
  3. package/dist/asset-preview/apply-action-hint-stub.d.ts +28 -0
  4. package/dist/asset-preview/apply-action-hint-stub.d.ts.map +1 -0
  5. package/dist/asset-preview/apply-action-hint-stub.js +170 -0
  6. package/dist/asset-preview/apply-asset-preview.d.ts +31 -0
  7. package/dist/asset-preview/apply-asset-preview.d.ts.map +1 -0
  8. package/dist/asset-preview/apply-asset-preview.js +210 -0
  9. package/dist/asset-preview/apply-knowledge-stale-fix.d.ts +37 -0
  10. package/dist/asset-preview/apply-knowledge-stale-fix.d.ts.map +1 -0
  11. package/dist/asset-preview/apply-knowledge-stale-fix.js +344 -0
  12. package/dist/asset-preview/apply-missing-barrel.d.ts +15 -0
  13. package/dist/asset-preview/apply-missing-barrel.d.ts.map +1 -0
  14. package/dist/asset-preview/apply-missing-barrel.js +65 -0
  15. package/dist/asset-preview/apply-template-drift-fix.d.ts +21 -0
  16. package/dist/asset-preview/apply-template-drift-fix.d.ts.map +1 -0
  17. package/dist/asset-preview/apply-template-drift-fix.js +125 -0
  18. package/dist/asset-preview/apply-template-update.d.ts +43 -0
  19. package/dist/asset-preview/apply-template-update.d.ts.map +1 -0
  20. package/dist/asset-preview/apply-template-update.js +257 -0
  21. package/dist/asset-preview/entry-mutator.d.ts +106 -0
  22. package/dist/asset-preview/entry-mutator.d.ts.map +1 -0
  23. package/dist/asset-preview/entry-mutator.js +428 -0
  24. package/dist/authoring/authoring-kit.d.ts +36 -0
  25. package/dist/authoring/authoring-kit.d.ts.map +1 -0
  26. package/dist/authoring/authoring-kit.js +106 -0
  27. package/dist/command-registry.d.ts +158 -0
  28. package/dist/command-registry.d.ts.map +1 -0
  29. package/dist/command-registry.js +348 -0
  30. package/dist/commands/apply.command.d.ts +3 -0
  31. package/dist/commands/apply.command.d.ts.map +1 -0
  32. package/dist/commands/apply.command.js +879 -0
  33. package/dist/commands/architecture.command.d.ts +5 -0
  34. package/dist/commands/architecture.command.d.ts.map +1 -0
  35. package/dist/commands/architecture.command.js +141 -0
  36. package/dist/commands/ask.command.d.ts +3 -0
  37. package/dist/commands/ask.command.d.ts.map +1 -0
  38. package/dist/commands/ask.command.js +58 -0
  39. package/dist/commands/audit.command.d.ts +3 -0
  40. package/dist/commands/audit.command.d.ts.map +1 -0
  41. package/dist/commands/audit.command.js +141 -0
  42. package/dist/commands/biome.command.d.ts +7 -0
  43. package/dist/commands/biome.command.d.ts.map +1 -0
  44. package/dist/commands/biome.command.js +350 -0
  45. package/dist/commands/boundaries.command.d.ts +9 -0
  46. package/dist/commands/boundaries.command.d.ts.map +1 -0
  47. package/dist/commands/boundaries.command.js +314 -0
  48. package/dist/commands/brief.command.d.ts +3 -0
  49. package/dist/commands/brief.command.d.ts.map +1 -0
  50. package/dist/commands/brief.command.js +206 -0
  51. package/dist/commands/bundle.command.d.ts +3 -0
  52. package/dist/commands/bundle.command.d.ts.map +1 -0
  53. package/dist/commands/bundle.command.js +1183 -0
  54. package/dist/commands/changes.command.d.ts +3 -0
  55. package/dist/commands/changes.command.d.ts.map +1 -0
  56. package/dist/commands/changes.command.js +155 -0
  57. package/dist/commands/check.command.d.ts +3 -0
  58. package/dist/commands/check.command.d.ts.map +1 -0
  59. package/dist/commands/check.command.js +553 -0
  60. package/dist/commands/checks.command.d.ts +29 -0
  61. package/dist/commands/checks.command.d.ts.map +1 -0
  62. package/dist/commands/checks.command.js +521 -0
  63. package/dist/commands/ci.command.d.ts +3 -0
  64. package/dist/commands/ci.command.d.ts.map +1 -0
  65. package/dist/commands/ci.command.js +680 -0
  66. package/dist/commands/codemod.command.d.ts +3 -0
  67. package/dist/commands/codemod.command.d.ts.map +1 -0
  68. package/dist/commands/codemod.command.js +130 -0
  69. package/dist/commands/command-catalog.d.ts +265 -0
  70. package/dist/commands/command-catalog.d.ts.map +1 -0
  71. package/dist/commands/command-catalog.js +3242 -0
  72. package/dist/commands/commands.command.d.ts +92 -0
  73. package/dist/commands/commands.command.d.ts.map +1 -0
  74. package/dist/commands/commands.command.js +1208 -0
  75. package/dist/commands/constructs.command.d.ts +15 -0
  76. package/dist/commands/constructs.command.d.ts.map +1 -0
  77. package/dist/commands/constructs.command.js +669 -0
  78. package/dist/commands/context.command.d.ts +3 -0
  79. package/dist/commands/context.command.d.ts.map +1 -0
  80. package/dist/commands/context.command.js +120 -0
  81. package/dist/commands/contract-gate.command.d.ts +5 -0
  82. package/dist/commands/contract-gate.command.d.ts.map +1 -0
  83. package/dist/commands/contract-gate.command.js +208 -0
  84. package/dist/commands/contract-templates.command.d.ts +8 -0
  85. package/dist/commands/contract-templates.command.d.ts.map +1 -0
  86. package/dist/commands/contract-templates.command.js +151 -0
  87. package/dist/commands/contract.command.d.ts +3 -0
  88. package/dist/commands/contract.command.d.ts.map +1 -0
  89. package/dist/commands/contract.command.js +105 -0
  90. package/dist/commands/conventions.command.d.ts +8 -0
  91. package/dist/commands/conventions.command.d.ts.map +1 -0
  92. package/dist/commands/conventions.command.js +169 -0
  93. package/dist/commands/coverage.command.d.ts +3 -0
  94. package/dist/commands/coverage.command.d.ts.map +1 -0
  95. package/dist/commands/coverage.command.js +56 -0
  96. package/dist/commands/daily.commands.d.ts +5 -0
  97. package/dist/commands/daily.commands.d.ts.map +1 -0
  98. package/dist/commands/daily.commands.js +224 -0
  99. package/dist/commands/dashboard-export.command.d.ts +4 -0
  100. package/dist/commands/dashboard-export.command.d.ts.map +1 -0
  101. package/dist/commands/dashboard-export.command.js +86 -0
  102. package/dist/commands/dashboard.command.d.ts +3 -0
  103. package/dist/commands/dashboard.command.d.ts.map +1 -0
  104. package/dist/commands/dashboard.command.js +106 -0
  105. package/dist/commands/dev.command.d.ts +3 -0
  106. package/dist/commands/dev.command.d.ts.map +1 -0
  107. package/dist/commands/dev.command.js +1392 -0
  108. package/dist/commands/diagnostics.command.d.ts +5 -0
  109. package/dist/commands/diagnostics.command.d.ts.map +1 -0
  110. package/dist/commands/diagnostics.command.js +97 -0
  111. package/dist/commands/docs.command.d.ts +4 -0
  112. package/dist/commands/docs.command.d.ts.map +1 -0
  113. package/dist/commands/docs.command.js +34 -0
  114. package/dist/commands/doctor.command.d.ts +7 -0
  115. package/dist/commands/doctor.command.d.ts.map +1 -0
  116. package/dist/commands/doctor.command.js +681 -0
  117. package/dist/commands/drift.command.d.ts +3 -0
  118. package/dist/commands/drift.command.d.ts.map +1 -0
  119. package/dist/commands/drift.command.js +124 -0
  120. package/dist/commands/eslint.command.d.ts +7 -0
  121. package/dist/commands/eslint.command.d.ts.map +1 -0
  122. package/dist/commands/eslint.command.js +423 -0
  123. package/dist/commands/explore.command.d.ts +3 -0
  124. package/dist/commands/explore.command.d.ts.map +1 -0
  125. package/dist/commands/explore.command.js +65 -0
  126. package/dist/commands/export-bundle.command.d.ts +6 -0
  127. package/dist/commands/export-bundle.command.d.ts.map +1 -0
  128. package/dist/commands/export-bundle.command.js +96 -0
  129. package/dist/commands/export.command.d.ts +3 -0
  130. package/dist/commands/export.command.d.ts.map +1 -0
  131. package/dist/commands/export.command.js +83 -0
  132. package/dist/commands/feedback-dispatch.command.d.ts +12 -0
  133. package/dist/commands/feedback-dispatch.command.d.ts.map +1 -0
  134. package/dist/commands/feedback-dispatch.command.js +63 -0
  135. package/dist/commands/feedback.command.d.ts +11 -0
  136. package/dist/commands/feedback.command.d.ts.map +1 -0
  137. package/dist/commands/feedback.command.js +336 -0
  138. package/dist/commands/fix.command.d.ts +3 -0
  139. package/dist/commands/fix.command.d.ts.map +1 -0
  140. package/dist/commands/fix.command.js +776 -0
  141. package/dist/commands/gen.command.d.ts +3 -0
  142. package/dist/commands/gen.command.d.ts.map +1 -0
  143. package/dist/commands/gen.command.js +136 -0
  144. package/dist/commands/git.command.d.ts +6 -0
  145. package/dist/commands/git.command.d.ts.map +1 -0
  146. package/dist/commands/git.command.js +81 -0
  147. package/dist/commands/graph.command.d.ts +3 -0
  148. package/dist/commands/graph.command.d.ts.map +1 -0
  149. package/dist/commands/graph.command.js +287 -0
  150. package/dist/commands/grounding.command.d.ts +7 -0
  151. package/dist/commands/grounding.command.d.ts.map +1 -0
  152. package/dist/commands/grounding.command.js +54 -0
  153. package/dist/commands/help.command.d.ts +20 -0
  154. package/dist/commands/help.command.d.ts.map +1 -0
  155. package/dist/commands/help.command.js +127 -0
  156. package/dist/commands/helper.command.d.ts +6 -0
  157. package/dist/commands/helper.command.d.ts.map +1 -0
  158. package/dist/commands/helper.command.js +170 -0
  159. package/dist/commands/ide.command.d.ts +6 -0
  160. package/dist/commands/ide.command.d.ts.map +1 -0
  161. package/dist/commands/ide.command.js +340 -0
  162. package/dist/commands/impact.command.d.ts +3 -0
  163. package/dist/commands/impact.command.d.ts.map +1 -0
  164. package/dist/commands/impact.command.js +819 -0
  165. package/dist/commands/import.command.d.ts +3 -0
  166. package/dist/commands/import.command.d.ts.map +1 -0
  167. package/dist/commands/import.command.js +115 -0
  168. package/dist/commands/infer.command.d.ts +3 -0
  169. package/dist/commands/infer.command.d.ts.map +1 -0
  170. package/dist/commands/infer.command.js +227 -0
  171. package/dist/commands/ingest.command.d.ts +6 -0
  172. package/dist/commands/ingest.command.d.ts.map +1 -0
  173. package/dist/commands/ingest.command.js +532 -0
  174. package/dist/commands/init.command.d.ts +3 -0
  175. package/dist/commands/init.command.d.ts.map +1 -0
  176. package/dist/commands/init.command.js +301 -0
  177. package/dist/commands/inspect.command.d.ts +3 -0
  178. package/dist/commands/inspect.command.d.ts.map +1 -0
  179. package/dist/commands/inspect.command.js +122 -0
  180. package/dist/commands/knowledge-author.command.d.ts +22 -0
  181. package/dist/commands/knowledge-author.command.d.ts.map +1 -0
  182. package/dist/commands/knowledge-author.command.js +366 -0
  183. package/dist/commands/knowledge-propose.command.d.ts +3 -0
  184. package/dist/commands/knowledge-propose.command.d.ts.map +1 -0
  185. package/dist/commands/knowledge-propose.command.js +125 -0
  186. package/dist/commands/knowledge.command.d.ts +18 -0
  187. package/dist/commands/knowledge.command.d.ts.map +1 -0
  188. package/dist/commands/knowledge.command.js +538 -0
  189. package/dist/commands/languages.command.d.ts +3 -0
  190. package/dist/commands/languages.command.d.ts.map +1 -0
  191. package/dist/commands/languages.command.js +300 -0
  192. package/dist/commands/lint.command.d.ts +15 -0
  193. package/dist/commands/lint.command.d.ts.map +1 -0
  194. package/dist/commands/lint.command.js +194 -0
  195. package/dist/commands/mcp.command.d.ts +3 -0
  196. package/dist/commands/mcp.command.d.ts.map +1 -0
  197. package/dist/commands/mcp.command.js +74 -0
  198. package/dist/commands/memory.command.d.ts +11 -0
  199. package/dist/commands/memory.command.d.ts.map +1 -0
  200. package/dist/commands/memory.command.js +264 -0
  201. package/dist/commands/onboard.command.d.ts +3 -0
  202. package/dist/commands/onboard.command.d.ts.map +1 -0
  203. package/dist/commands/onboard.command.js +650 -0
  204. package/dist/commands/orchestrate.command.d.ts +3 -0
  205. package/dist/commands/orchestrate.command.d.ts.map +1 -0
  206. package/dist/commands/orchestrate.command.js +49 -0
  207. package/dist/commands/owners.command.d.ts +5 -0
  208. package/dist/commands/owners.command.d.ts.map +1 -0
  209. package/dist/commands/owners.command.js +113 -0
  210. package/dist/commands/ownership.command.d.ts +5 -0
  211. package/dist/commands/ownership.command.d.ts.map +1 -0
  212. package/dist/commands/ownership.command.js +117 -0
  213. package/dist/commands/pack-author.command.d.ts +30 -0
  214. package/dist/commands/pack-author.command.d.ts.map +1 -0
  215. package/dist/commands/pack-author.command.js +242 -0
  216. package/dist/commands/packs-new.d.ts +27 -0
  217. package/dist/commands/packs-new.d.ts.map +1 -0
  218. package/dist/commands/packs-new.js +805 -0
  219. package/dist/commands/packs.command.d.ts +15 -0
  220. package/dist/commands/packs.command.d.ts.map +1 -0
  221. package/dist/commands/packs.command.js +958 -0
  222. package/dist/commands/paths.command.d.ts +6 -0
  223. package/dist/commands/paths.command.d.ts.map +1 -0
  224. package/dist/commands/paths.command.js +97 -0
  225. package/dist/commands/pipelines.command.d.ts +9 -0
  226. package/dist/commands/pipelines.command.d.ts.map +1 -0
  227. package/dist/commands/pipelines.command.js +308 -0
  228. package/dist/commands/plan-check.command.d.ts +27 -0
  229. package/dist/commands/plan-check.command.d.ts.map +1 -0
  230. package/dist/commands/plan-check.command.js +150 -0
  231. package/dist/commands/plan-simulate.command.d.ts +3 -0
  232. package/dist/commands/plan-simulate.command.d.ts.map +1 -0
  233. package/dist/commands/plan-simulate.command.js +60 -0
  234. package/dist/commands/plan.command.d.ts +8 -0
  235. package/dist/commands/plan.command.d.ts.map +1 -0
  236. package/dist/commands/plan.command.js +139 -0
  237. package/dist/commands/playbooks.command.d.ts +10 -0
  238. package/dist/commands/playbooks.command.d.ts.map +1 -0
  239. package/dist/commands/playbooks.command.js +296 -0
  240. package/dist/commands/plugin.command.d.ts +11 -0
  241. package/dist/commands/plugin.command.d.ts.map +1 -0
  242. package/dist/commands/plugin.command.js +394 -0
  243. package/dist/commands/policy.command.d.ts +8 -0
  244. package/dist/commands/policy.command.d.ts.map +1 -0
  245. package/dist/commands/policy.command.js +451 -0
  246. package/dist/commands/pr.command.d.ts +3 -0
  247. package/dist/commands/pr.command.d.ts.map +1 -0
  248. package/dist/commands/pr.command.js +132 -0
  249. package/dist/commands/preflight.command.d.ts +3 -0
  250. package/dist/commands/preflight.command.d.ts.map +1 -0
  251. package/dist/commands/preflight.command.js +102 -0
  252. package/dist/commands/presets.command.d.ts +17 -0
  253. package/dist/commands/presets.command.d.ts.map +1 -0
  254. package/dist/commands/presets.command.js +647 -0
  255. package/dist/commands/profiles.command.d.ts +7 -0
  256. package/dist/commands/profiles.command.d.ts.map +1 -0
  257. package/dist/commands/profiles.command.js +151 -0
  258. package/dist/commands/provenance.command.d.ts +26 -0
  259. package/dist/commands/provenance.command.d.ts.map +1 -0
  260. package/dist/commands/provenance.command.js +237 -0
  261. package/dist/commands/quality.command.d.ts +5 -0
  262. package/dist/commands/quality.command.d.ts.map +1 -0
  263. package/dist/commands/quality.command.js +69 -0
  264. package/dist/commands/recommend.command.d.ts +4 -0
  265. package/dist/commands/recommend.command.d.ts.map +1 -0
  266. package/dist/commands/recommend.command.js +270 -0
  267. package/dist/commands/registrations.command.d.ts +3 -0
  268. package/dist/commands/registrations.command.d.ts.map +1 -0
  269. package/dist/commands/registrations.command.js +300 -0
  270. package/dist/commands/registry.command.d.ts +4 -0
  271. package/dist/commands/registry.command.d.ts.map +1 -0
  272. package/dist/commands/registry.command.js +37 -0
  273. package/dist/commands/release.command.d.ts +4 -0
  274. package/dist/commands/release.command.d.ts.map +1 -0
  275. package/dist/commands/release.command.js +639 -0
  276. package/dist/commands/repo.command.d.ts +3 -0
  277. package/dist/commands/repo.command.d.ts.map +1 -0
  278. package/dist/commands/repo.command.js +24 -0
  279. package/dist/commands/report.command.d.ts +3 -0
  280. package/dist/commands/report.command.d.ts.map +1 -0
  281. package/dist/commands/report.command.js +511 -0
  282. package/dist/commands/reposet.command.d.ts +6 -0
  283. package/dist/commands/reposet.command.d.ts.map +1 -0
  284. package/dist/commands/reposet.command.js +120 -0
  285. package/dist/commands/review.command.d.ts +3 -0
  286. package/dist/commands/review.command.d.ts.map +1 -0
  287. package/dist/commands/review.command.js +354 -0
  288. package/dist/commands/risk.command.d.ts +3 -0
  289. package/dist/commands/risk.command.d.ts.map +1 -0
  290. package/dist/commands/risk.command.js +56 -0
  291. package/dist/commands/rounds.command.d.ts +8 -0
  292. package/dist/commands/rounds.command.d.ts.map +1 -0
  293. package/dist/commands/rounds.command.js +180 -0
  294. package/dist/commands/rules.command.d.ts +49 -0
  295. package/dist/commands/rules.command.d.ts.map +1 -0
  296. package/dist/commands/rules.command.js +435 -0
  297. package/dist/commands/runtime.command.d.ts +3 -0
  298. package/dist/commands/runtime.command.d.ts.map +1 -0
  299. package/dist/commands/runtime.command.js +56 -0
  300. package/dist/commands/safety.command.d.ts +3 -0
  301. package/dist/commands/safety.command.d.ts.map +1 -0
  302. package/dist/commands/safety.command.js +117 -0
  303. package/dist/commands/scaffolds.command.d.ts +5 -0
  304. package/dist/commands/scaffolds.command.d.ts.map +1 -0
  305. package/dist/commands/scaffolds.command.js +122 -0
  306. package/dist/commands/schemas.command.d.ts +21 -0
  307. package/dist/commands/schemas.command.d.ts.map +1 -0
  308. package/dist/commands/schemas.command.js +296 -0
  309. package/dist/commands/search.command.d.ts +12 -0
  310. package/dist/commands/search.command.d.ts.map +1 -0
  311. package/dist/commands/search.command.js +275 -0
  312. package/dist/commands/self-config.command.d.ts +7 -0
  313. package/dist/commands/self-config.command.d.ts.map +1 -0
  314. package/dist/commands/self-config.command.js +156 -0
  315. package/dist/commands/self.command.d.ts +3 -0
  316. package/dist/commands/self.command.d.ts.map +1 -0
  317. package/dist/commands/self.command.js +117 -0
  318. package/dist/commands/simulate.command.d.ts +3 -0
  319. package/dist/commands/simulate.command.d.ts.map +1 -0
  320. package/dist/commands/simulate.command.js +54 -0
  321. package/dist/commands/spec.command.d.ts +29 -0
  322. package/dist/commands/spec.command.d.ts.map +1 -0
  323. package/dist/commands/spec.command.js +985 -0
  324. package/dist/commands/start-here.command.d.ts +3 -0
  325. package/dist/commands/start-here.command.d.ts.map +1 -0
  326. package/dist/commands/start-here.command.js +35 -0
  327. package/dist/commands/stats.command.d.ts +3 -0
  328. package/dist/commands/stats.command.d.ts.map +1 -0
  329. package/dist/commands/stats.command.js +88 -0
  330. package/dist/commands/surface.command.d.ts +15 -0
  331. package/dist/commands/surface.command.d.ts.map +1 -0
  332. package/dist/commands/surface.command.js +328 -0
  333. package/dist/commands/task-context.command.d.ts +7 -0
  334. package/dist/commands/task-context.command.d.ts.map +1 -0
  335. package/dist/commands/task-context.command.js +646 -0
  336. package/dist/commands/task.command.d.ts +3 -0
  337. package/dist/commands/task.command.d.ts.map +1 -0
  338. package/dist/commands/task.command.js +301 -0
  339. package/dist/commands/template-quality.command.d.ts +5 -0
  340. package/dist/commands/template-quality.command.d.ts.map +1 -0
  341. package/dist/commands/template-quality.command.js +128 -0
  342. package/dist/commands/templates.command.d.ts +26 -0
  343. package/dist/commands/templates.command.d.ts.map +1 -0
  344. package/dist/commands/templates.command.js +964 -0
  345. package/dist/commands/test.command.d.ts +3 -0
  346. package/dist/commands/test.command.d.ts.map +1 -0
  347. package/dist/commands/test.command.js +262 -0
  348. package/dist/commands/tests.command.d.ts +5 -0
  349. package/dist/commands/tests.command.d.ts.map +1 -0
  350. package/dist/commands/tests.command.js +97 -0
  351. package/dist/commands/trace.command.d.ts +3 -0
  352. package/dist/commands/trace.command.d.ts.map +1 -0
  353. package/dist/commands/trace.command.js +121 -0
  354. package/dist/commands/upgrade.command.d.ts +4 -0
  355. package/dist/commands/upgrade.command.d.ts.map +1 -0
  356. package/dist/commands/upgrade.command.js +43 -0
  357. package/dist/commands/version.command.d.ts +3 -0
  358. package/dist/commands/version.command.d.ts.map +1 -0
  359. package/dist/commands/version.command.js +10 -0
  360. package/dist/commands/why.command.d.ts +24 -0
  361. package/dist/commands/why.command.d.ts.map +1 -0
  362. package/dist/commands/why.command.js +119 -0
  363. package/dist/dashboard/dashboard-api-server.d.ts +21 -0
  364. package/dist/dashboard/dashboard-api-server.d.ts.map +1 -0
  365. package/dist/dashboard/dashboard-api-server.js +410 -0
  366. package/dist/dashboard/live-session-server.d.ts +18 -0
  367. package/dist/dashboard/live-session-server.d.ts.map +1 -0
  368. package/dist/dashboard/live-session-server.js +133 -0
  369. package/dist/diff/collect-changed-paths.d.ts +27 -0
  370. package/dist/diff/collect-changed-paths.d.ts.map +1 -0
  371. package/dist/diff/collect-changed-paths.js +68 -0
  372. package/dist/doctor/doctor-tags.d.ts +63 -0
  373. package/dist/doctor/doctor-tags.d.ts.map +1 -0
  374. package/dist/doctor/doctor-tags.js +146 -0
  375. package/dist/export/export-formats.d.ts +22 -0
  376. package/dist/export/export-formats.d.ts.map +1 -0
  377. package/dist/export/export-formats.js +135 -0
  378. package/dist/index.d.ts +22 -0
  379. package/dist/index.d.ts.map +1 -0
  380. package/dist/index.js +21 -0
  381. package/dist/init/detected-block.d.ts +57 -0
  382. package/dist/init/detected-block.d.ts.map +1 -0
  383. package/dist/init/detected-block.js +197 -0
  384. package/dist/init/gitignore.d.ts +30 -0
  385. package/dist/init/gitignore.d.ts.map +1 -0
  386. package/dist/init/gitignore.js +110 -0
  387. package/dist/init/init-templates.d.ts +6 -0
  388. package/dist/init/init-templates.d.ts.map +1 -0
  389. package/dist/init/init-templates.js +413 -0
  390. package/dist/main.d.ts +18 -0
  391. package/dist/main.d.ts.map +1 -0
  392. package/dist/main.js +699 -0
  393. package/dist/output/failure-hints.d.ts +55 -0
  394. package/dist/output/failure-hints.d.ts.map +1 -0
  395. package/dist/output/failure-hints.js +159 -0
  396. package/dist/output/format-output.d.ts +9 -0
  397. package/dist/output/format-output.d.ts.map +1 -0
  398. package/dist/output/format-output.js +26 -0
  399. package/dist/output/print-error.d.ts +3 -0
  400. package/dist/output/print-error.d.ts.map +1 -0
  401. package/dist/output/print-error.js +14 -0
  402. package/dist/output/watch-loop.d.ts +37 -0
  403. package/dist/output/watch-loop.d.ts.map +1 -0
  404. package/dist/output/watch-loop.js +115 -0
  405. package/dist/schemas/json-schemas.d.ts +1630 -0
  406. package/dist/schemas/json-schemas.d.ts.map +1 -0
  407. package/dist/schemas/json-schemas.js +811 -0
  408. package/dist/surface/about.d.ts +10 -0
  409. package/dist/surface/about.d.ts.map +1 -0
  410. package/dist/surface/about.js +53 -0
  411. package/dist/surface/load-surface-context.d.ts +34 -0
  412. package/dist/surface/load-surface-context.d.ts.map +1 -0
  413. package/dist/surface/load-surface-context.js +100 -0
  414. package/dist/surface/no-args-landing.d.ts +7 -0
  415. package/dist/surface/no-args-landing.d.ts.map +1 -0
  416. package/dist/surface/no-args-landing.js +36 -0
  417. package/dist/surface/not-enabled-error.d.ts +24 -0
  418. package/dist/surface/not-enabled-error.d.ts.map +1 -0
  419. package/dist/surface/not-enabled-error.js +36 -0
  420. package/dist/surface/profiles.d.ts +37 -0
  421. package/dist/surface/profiles.d.ts.map +1 -0
  422. package/dist/surface/profiles.js +151 -0
  423. package/dist/surface/shape-defaults.d.ts +21 -0
  424. package/dist/surface/shape-defaults.d.ts.map +1 -0
  425. package/dist/surface/shape-defaults.js +50 -0
  426. package/dist/surface/spine-extractor.d.ts +38 -0
  427. package/dist/surface/spine-extractor.d.ts.map +1 -0
  428. package/dist/surface/spine-extractor.js +100 -0
  429. package/dist/surface/surface-config-writer.d.ts +59 -0
  430. package/dist/surface/surface-config-writer.d.ts.map +1 -0
  431. package/dist/surface/surface-config-writer.js +135 -0
  432. package/dist/surface/surface-summary.d.ts +66 -0
  433. package/dist/surface/surface-summary.d.ts.map +1 -0
  434. package/dist/surface/surface-summary.js +162 -0
  435. package/dist/surface/tier.d.ts +100 -0
  436. package/dist/surface/tier.d.ts.map +1 -0
  437. package/dist/surface/tier.js +172 -0
  438. package/dist/task-next/apply-batch-runner.d.ts +42 -0
  439. package/dist/task-next/apply-batch-runner.d.ts.map +1 -0
  440. package/dist/task-next/apply-batch-runner.js +192 -0
  441. package/dist/task-next/task-next-ranker.d.ts +75 -0
  442. package/dist/task-next/task-next-ranker.d.ts.map +1 -0
  443. package/dist/task-next/task-next-ranker.js +179 -0
  444. package/dist/usage/usage-log.d.ts +54 -0
  445. package/dist/usage/usage-log.d.ts.map +1 -0
  446. package/dist/usage/usage-log.js +105 -0
  447. package/dist/validation/run-validation-loop.d.ts +38 -0
  448. package/dist/validation/run-validation-loop.d.ts.map +1 -0
  449. package/dist/validation/run-validation-loop.js +100 -0
  450. package/package.json +73 -0
@@ -0,0 +1,366 @@
1
+ /**
2
+ * Knowledge authoring CLI surface.
3
+ *
4
+ * - `shrk knowledge add` — preview a new knowledge entry.
5
+ * - `shrk knowledge update <id>` — preview an incremental change.
6
+ * - `shrk knowledge remove <id>` — preview a removal (refuses if
7
+ * reverse references exist unless --force-preview).
8
+ * - `shrk knowledge author preview` — alias that classifies the
9
+ * operation by which flags were passed.
10
+ * - `shrk knowledge lint [--fix-preview]` — classify findings.
11
+ *
12
+ * All commands default to preview-only. Files land under
13
+ * `.sharkcraft/authoring/` (drafts) or `.sharkcraft/fixes/` (lint output).
14
+ * No direct mutation of `sharkcraft/knowledge.ts` or pack source.
15
+ */
16
+ import { mkdirSync, writeFileSync } from 'node:fs';
17
+ import * as nodePath from 'node:path';
18
+ import { buildKnowledgeAuthoringPreview, buildKnowledgeLintFixPreview, buildKnowledgeStaleReport, inspectSharkcraft, KnowledgeAuthoringOperation, KnowledgeLintCategory, lintKnowledge, recordProvenance, renderKnowledgeLintFixPreviewMarkdown, renderKnowledgeLintMarkdown, ReferenceCheckOutcome, AssetKind, AssetProvenanceOperation, } from '@shrkcrft/inspector';
19
+ import { flagBool, flagString, flagList, resolveCwd, } from "../command-registry.js";
20
+ import { asJson, header } from "../output/format-output.js";
21
+ import { detectAuthoringSource, multiFlagValues as multiValues, parseReferenceSpec as parseReference, writeAuthoringDrafts, } from "../authoring/authoring-kit.js";
22
+ const detectSource = detectAuthoringSource;
23
+ const maybeWriteDraftFiles = writeAuthoringDrafts;
24
+ function commonAuthoringFlags(args, id) {
25
+ const referencesSpecs = multiValues(args, 'reference');
26
+ const references = referencesSpecs
27
+ .map((spec) => parseReference(spec))
28
+ .filter((r) => r !== null);
29
+ const related = multiValues(args, 'related');
30
+ const tags = multiValues(args, 'tag');
31
+ const scope = multiValues(args, 'scope');
32
+ const appliesWhen = multiValues(args, 'applies-when');
33
+ return {
34
+ operation: KnowledgeAuthoringOperation.Add,
35
+ id,
36
+ ...(flagString(args, 'title') ? { title: flagString(args, 'title') ?? undefined } : {}),
37
+ ...(flagString(args, 'type') ? { type: flagString(args, 'type') ?? undefined } : {}),
38
+ ...(flagString(args, 'priority')
39
+ ? { priority: flagString(args, 'priority') }
40
+ : {}),
41
+ ...(flagString(args, 'summary') ? { summary: flagString(args, 'summary') ?? undefined } : {}),
42
+ ...(flagString(args, 'content') ? { content: flagString(args, 'content') ?? undefined } : {}),
43
+ ...(flagString(args, 'reason') ? { reason: flagString(args, 'reason') ?? undefined } : {}),
44
+ ...(related.length > 0 ? { related } : {}),
45
+ ...(tags.length > 0 ? { tags } : {}),
46
+ ...(scope.length > 0 ? { scope } : {}),
47
+ ...(appliesWhen.length > 0 ? { appliesWhen } : {}),
48
+ ...(references.length > 0 ? { references } : {}),
49
+ };
50
+ }
51
+ export const knowledgeAddCommand = {
52
+ name: 'add',
53
+ description: 'Preview adding a new knowledge entry. Preview-only — never mutates source.',
54
+ usage: 'shrk knowledge add --id <id> [--title <t>] [--type <type>] [--priority critical|high|medium|low] [--summary <s>] [--content <text>] [--scope x,y] [--tag x,y] [--applies-when x,y] [--related a,b] [--reference kind:value[:required]] [--reason <text>] [--allow-overwrite] [--write-preview] [--json]',
55
+ async run(args) {
56
+ const id = flagString(args, 'id') ?? args.positional[0];
57
+ if (!id) {
58
+ process.stderr.write('Usage: shrk knowledge add --id <id> [...]\n');
59
+ return 2;
60
+ }
61
+ const cwd = resolveCwd(args);
62
+ const inspection = await inspectSharkcraft({ cwd });
63
+ const input = {
64
+ ...commonAuthoringFlags(args, id),
65
+ operation: KnowledgeAuthoringOperation.Add,
66
+ ...(flagBool(args, 'allow-overwrite') ? { allowOverwrite: true } : {}),
67
+ };
68
+ const result = buildKnowledgeAuthoringPreview(input, {
69
+ entries: inspection.knowledgeEntries,
70
+ });
71
+ if (flagBool(args, 'json')) {
72
+ process.stdout.write(asJson(result) + '\n');
73
+ }
74
+ else {
75
+ process.stdout.write(header(`Knowledge add preview: ${id}`));
76
+ process.stdout.write(` ok: ${result.ok}\n`);
77
+ if (!result.ok)
78
+ process.stdout.write(` refusal: ${result.refusal}\n`);
79
+ process.stdout.write(` files:\n`);
80
+ process.stdout.write(` ${result.tsDraft.path}\n`);
81
+ process.stdout.write(` ${result.jsonManifest.path}\n`);
82
+ process.stdout.write(` ${result.explainer.path}\n`);
83
+ if (result.warnings.length > 0) {
84
+ process.stdout.write('\n warnings:\n');
85
+ for (const w of result.warnings)
86
+ process.stdout.write(` • ${w}\n`);
87
+ }
88
+ process.stdout.write('\n--- TypeScript draft ---\n');
89
+ process.stdout.write(result.tsDraft.body);
90
+ process.stdout.write('\n--- Next commands ---\n');
91
+ for (const c of result.nextCommands)
92
+ process.stdout.write(` $ ${c}\n`);
93
+ if (!flagBool(args, 'write-preview')) {
94
+ process.stdout.write('\n (preview only — pass --write-preview to materialise under .sharkcraft/authoring/)\n');
95
+ }
96
+ }
97
+ if (flagBool(args, 'write-preview') && result.ok) {
98
+ maybeWriteDraftFiles(cwd, [result.tsDraft, result.jsonManifest, result.explainer]);
99
+ const src = detectSource();
100
+ recordProvenance({
101
+ projectRoot: cwd,
102
+ entry: {
103
+ operation: AssetProvenanceOperation.Preview,
104
+ assetKind: AssetKind.Knowledge,
105
+ assetId: id,
106
+ targetFile: input.target?.filePath,
107
+ source: src.source,
108
+ ...(src.author ? { author: src.author } : {}),
109
+ ...(src.sessionId ? { sessionId: src.sessionId } : {}),
110
+ ...(input.reason ? { reason: input.reason } : {}),
111
+ previewPath: result.tsDraft.path,
112
+ extra: { authoringOp: 'add' },
113
+ },
114
+ });
115
+ }
116
+ return result.ok ? 0 : 1;
117
+ },
118
+ };
119
+ export const knowledgeUpdateCommand = {
120
+ name: 'update',
121
+ description: 'Preview an update to an existing knowledge entry. Preview-only — never mutates source.',
122
+ usage: 'shrk knowledge update <id> [--summary <s>] [--content <text>] [--priority critical|high|medium|low] [--add-related a,b] [--remove-related a,b] [--reference kind:value[:required]] [--remove-reference kind:value] [--add-anchor <json>] [--remove-anchor-id <id>] [--mark-deprecated] [--unmark-deprecated] [--reason <text>] [--write-preview] [--json]',
123
+ async run(args) {
124
+ const id = args.positional[0] ?? flagString(args, 'id');
125
+ if (!id) {
126
+ process.stderr.write('Usage: shrk knowledge update <id> [...]\n');
127
+ return 2;
128
+ }
129
+ const cwd = resolveCwd(args);
130
+ const inspection = await inspectSharkcraft({ cwd });
131
+ const refs = multiValues(args, 'reference')
132
+ .map((s) => parseReference(s))
133
+ .filter((r) => r !== null);
134
+ const removeRefs = multiValues(args, 'remove-reference')
135
+ .map((s) => parseReference(s))
136
+ .filter((r) => r !== null);
137
+ const addRelated = multiValues(args, 'add-related');
138
+ const removeRelated = multiValues(args, 'remove-related');
139
+ const removeAnchorIds = multiValues(args, 'remove-anchor-id');
140
+ const input = {
141
+ operation: KnowledgeAuthoringOperation.Update,
142
+ id,
143
+ ...(flagString(args, 'reason') ? { reason: flagString(args, 'reason') ?? undefined } : {}),
144
+ updateOps: {
145
+ ...(flagString(args, 'summary') !== undefined && flagString(args, 'summary') !== null
146
+ ? { setSummary: flagString(args, 'summary') }
147
+ : {}),
148
+ ...(flagString(args, 'content') !== undefined && flagString(args, 'content') !== null
149
+ ? { setContent: flagString(args, 'content') }
150
+ : {}),
151
+ ...(flagString(args, 'priority')
152
+ ? { setPriority: flagString(args, 'priority') }
153
+ : {}),
154
+ ...(refs.length > 0 ? { addReferences: refs } : {}),
155
+ ...(removeRefs.length > 0
156
+ ? {
157
+ removeReferences: removeRefs.map((r) => ({
158
+ kind: r.kind,
159
+ ...(r.id ? { id: r.id } : {}),
160
+ ...(r.path ? { path: r.path } : {}),
161
+ ...(r.symbol ? { symbol: r.symbol } : {}),
162
+ })),
163
+ }
164
+ : {}),
165
+ ...(addRelated.length > 0 ? { addRelated } : {}),
166
+ ...(removeRelated.length > 0 ? { removeRelated } : {}),
167
+ ...(removeAnchorIds.length > 0 ? { removeAnchorIds } : {}),
168
+ ...(flagBool(args, 'mark-deprecated') ? { markDeprecated: true } : {}),
169
+ ...(flagBool(args, 'unmark-deprecated') ? { unmarkDeprecated: true } : {}),
170
+ },
171
+ };
172
+ const result = buildKnowledgeAuthoringPreview(input, {
173
+ entries: inspection.knowledgeEntries,
174
+ });
175
+ if (flagBool(args, 'json')) {
176
+ process.stdout.write(asJson(result) + '\n');
177
+ }
178
+ else {
179
+ process.stdout.write(header(`Knowledge update preview: ${id}`));
180
+ process.stdout.write(` ok: ${result.ok}\n`);
181
+ if (!result.ok)
182
+ process.stdout.write(` refusal: ${result.refusal}\n`);
183
+ process.stdout.write(` files:\n`);
184
+ process.stdout.write(` ${result.tsDraft.path}\n`);
185
+ process.stdout.write(` ${result.jsonManifest.path}\n`);
186
+ process.stdout.write(` ${result.explainer.path}\n`);
187
+ if (result.patch) {
188
+ process.stdout.write(`\n patch changes: ${result.patch.changes.length}\n`);
189
+ for (const c of result.patch.changes) {
190
+ process.stdout.write(` - ${c.op} ${c.field}\n`);
191
+ }
192
+ }
193
+ if (result.warnings.length > 0) {
194
+ process.stdout.write('\n warnings:\n');
195
+ for (const w of result.warnings)
196
+ process.stdout.write(` • ${w}\n`);
197
+ }
198
+ process.stdout.write('\n--- TypeScript draft (next) ---\n');
199
+ process.stdout.write(result.tsDraft.body);
200
+ process.stdout.write('\n--- Next commands ---\n');
201
+ for (const c of result.nextCommands)
202
+ process.stdout.write(` $ ${c}\n`);
203
+ if (!flagBool(args, 'write-preview')) {
204
+ process.stdout.write('\n (preview only — pass --write-preview to materialise under .sharkcraft/authoring/)\n');
205
+ }
206
+ }
207
+ if (flagBool(args, 'write-preview') && result.ok) {
208
+ maybeWriteDraftFiles(cwd, [result.tsDraft, result.jsonManifest, result.explainer]);
209
+ const src = detectSource();
210
+ recordProvenance({
211
+ projectRoot: cwd,
212
+ entry: {
213
+ operation: AssetProvenanceOperation.Preview,
214
+ assetKind: AssetKind.Knowledge,
215
+ assetId: id,
216
+ source: src.source,
217
+ ...(src.author ? { author: src.author } : {}),
218
+ ...(src.sessionId ? { sessionId: src.sessionId } : {}),
219
+ ...(input.reason ? { reason: input.reason } : {}),
220
+ previewPath: result.tsDraft.path,
221
+ extra: { authoringOp: 'update' },
222
+ },
223
+ });
224
+ }
225
+ return result.ok ? 0 : 1;
226
+ },
227
+ };
228
+ export const knowledgeRemoveCommand = {
229
+ name: 'remove',
230
+ description: 'Preview removal of a knowledge entry. Refuses if reverse references exist, unless --force-preview is set. Preview-only.',
231
+ usage: 'shrk knowledge remove <id> [--force-preview] [--reason <text>] [--write-preview] [--json]',
232
+ async run(args) {
233
+ const id = args.positional[0] ?? flagString(args, 'id');
234
+ if (!id) {
235
+ process.stderr.write('Usage: shrk knowledge remove <id> [--force-preview]\n');
236
+ return 2;
237
+ }
238
+ const cwd = resolveCwd(args);
239
+ const inspection = await inspectSharkcraft({ cwd });
240
+ const input = {
241
+ operation: KnowledgeAuthoringOperation.Remove,
242
+ id,
243
+ forcePreview: flagBool(args, 'force-preview'),
244
+ ...(flagString(args, 'reason') ? { reason: flagString(args, 'reason') ?? undefined } : {}),
245
+ };
246
+ const result = buildKnowledgeAuthoringPreview(input, {
247
+ entries: inspection.knowledgeEntries,
248
+ });
249
+ if (flagBool(args, 'json')) {
250
+ process.stdout.write(asJson(result) + '\n');
251
+ }
252
+ else {
253
+ process.stdout.write(header(`Knowledge remove preview: ${id}`));
254
+ process.stdout.write(` ok: ${result.ok}\n`);
255
+ if (!result.ok)
256
+ process.stdout.write(` refusal: ${result.refusal}\n`);
257
+ if (result.reverseReferences && result.reverseReferences.length > 0) {
258
+ process.stdout.write(`\n reverse references (${result.reverseReferences.length}):\n`);
259
+ for (const r of result.reverseReferences) {
260
+ process.stdout.write(` - ${r.fromEntryId} (${r.field})${r.note ? ` — ${r.note}` : ''}\n`);
261
+ }
262
+ }
263
+ if (result.suggestedDeprecationInstead) {
264
+ process.stdout.write('\n Suggested: prefer `shrk knowledge update ' +
265
+ id +
266
+ ' --mark-deprecated` over removal — see explainer.\n');
267
+ }
268
+ process.stdout.write('\n--- Next commands ---\n');
269
+ for (const c of result.nextCommands)
270
+ process.stdout.write(` $ ${c}\n`);
271
+ if (!flagBool(args, 'write-preview')) {
272
+ process.stdout.write('\n (preview only — pass --write-preview to materialise under .sharkcraft/authoring/)\n');
273
+ }
274
+ }
275
+ if (flagBool(args, 'write-preview') && result.ok) {
276
+ maybeWriteDraftFiles(cwd, [result.tsDraft, result.jsonManifest, result.explainer]);
277
+ const src = detectSource();
278
+ recordProvenance({
279
+ projectRoot: cwd,
280
+ entry: {
281
+ operation: AssetProvenanceOperation.Preview,
282
+ assetKind: AssetKind.Knowledge,
283
+ assetId: id,
284
+ source: src.source,
285
+ ...(src.author ? { author: src.author } : {}),
286
+ ...(src.sessionId ? { sessionId: src.sessionId } : {}),
287
+ ...(input.reason ? { reason: input.reason } : {}),
288
+ previewPath: result.tsDraft.path,
289
+ extra: { authoringOp: 'remove', forced: input.forcePreview },
290
+ },
291
+ });
292
+ }
293
+ return result.ok ? 0 : 1;
294
+ },
295
+ };
296
+ export const knowledgeLintCommand = {
297
+ name: 'lint',
298
+ description: 'Lint knowledge entries — classify findings as safe stub vs needs-human-wording vs stale-reference vs missing-provenance.',
299
+ usage: 'shrk knowledge lint [--id <entryId,...>] [--fix-preview] [--write-preview] [--no-advisory] [--json]',
300
+ async run(args) {
301
+ const cwd = resolveCwd(args);
302
+ const inspection = await inspectSharkcraft({ cwd });
303
+ const entryIds = flagList(args, 'id');
304
+ const includeAdvisory = !flagBool(args, 'no-advisory');
305
+ const stale = buildKnowledgeStaleReport(inspection);
306
+ const staleIds = new Set();
307
+ for (const c of stale.referenceChecks) {
308
+ if (c.outcome === ReferenceCheckOutcome.Stale || c.outcome === ReferenceCheckOutcome.Missing) {
309
+ staleIds.add(c.entryId);
310
+ }
311
+ }
312
+ const report = lintKnowledge(inspection.knowledgeEntries, {
313
+ ...(entryIds.length > 0 ? { entryIds } : {}),
314
+ includeAdvisory,
315
+ staleReferenceEntryIds: [...staleIds],
316
+ });
317
+ const wantPreview = flagBool(args, 'fix-preview');
318
+ const preview = wantPreview ? buildKnowledgeLintFixPreview(report) : null;
319
+ if (flagBool(args, 'json')) {
320
+ process.stdout.write(asJson(wantPreview ? { report, preview } : report) + '\n');
321
+ }
322
+ else {
323
+ process.stdout.write(renderKnowledgeLintMarkdown(report));
324
+ if (preview) {
325
+ process.stdout.write('\n');
326
+ process.stdout.write(renderKnowledgeLintFixPreviewMarkdown(preview));
327
+ }
328
+ }
329
+ if (flagBool(args, 'write-preview') && preview) {
330
+ const fixesDir = nodePath.join(cwd, '.sharkcraft', 'fixes');
331
+ mkdirSync(fixesDir, { recursive: true });
332
+ const summaryPath = nodePath.join(fixesDir, 'knowledge-lint.preview.md');
333
+ const todosPath = nodePath.join(fixesDir, 'knowledge-lint.todos.json');
334
+ const patchPath = nodePath.join(fixesDir, 'knowledge-lint.patch');
335
+ writeFileSync(summaryPath, renderKnowledgeLintFixPreviewMarkdown(preview), 'utf8');
336
+ writeFileSync(todosPath, JSON.stringify({ todos: preview.todos, acknowledgements: preview.acknowledgements }, null, 2) + '\n', 'utf8');
337
+ writeFileSync(patchPath, `# Knowledge lint patch suggestions.\n# Safe mechanical stubs:\n` +
338
+ preview.safeStubs.map((s) => `# ${s.entryId} → ${s.field}: ${s.suggestion}`).join('\n') +
339
+ '\n', 'utf8');
340
+ process.stdout.write(`\nWrote 3 files under ${nodePath.relative(cwd, fixesDir)}\n`);
341
+ }
342
+ // Exit codes: 0 if no warnings, 1 if any non-advisory warnings.
343
+ const warning = report.findings.some((f) => f.severity === 'warning' && !f.advisory);
344
+ void KnowledgeLintCategory;
345
+ return warning ? 1 : 0;
346
+ },
347
+ };
348
+ export const knowledgeAuthorPreviewCommand = {
349
+ name: 'author',
350
+ description: 'Knowledge authoring preview entry-point. Dispatches to add/update/remove based on flags.',
351
+ usage: 'shrk knowledge author [preview] --id <id> [--operation add|update|remove] [common knowledge add/update/remove flags] [--write-preview] [--json]',
352
+ async run(args) {
353
+ // The first positional may be "preview" (the verb) — strip it.
354
+ if (args.positional[0] === 'preview')
355
+ args.positional.shift();
356
+ const operation = (flagString(args, 'operation') ?? 'add');
357
+ switch (operation) {
358
+ case 'add':
359
+ return knowledgeAddCommand.run(args);
360
+ case 'update':
361
+ return knowledgeUpdateCommand.run(args);
362
+ case 'remove':
363
+ return knowledgeRemoveCommand.run(args);
364
+ }
365
+ },
366
+ };
@@ -0,0 +1,3 @@
1
+ import { type ICommandHandler } from '../command-registry.js';
2
+ export declare const knowledgeProposeCommand: ICommandHandler;
3
+ //# sourceMappingURL=knowledge-propose.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-propose.command.d.ts","sourceRoot":"","sources":["../../src/commands/knowledge-propose.command.ts"],"names":[],"mappings":"AAqBA,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAkDhC,eAAO,MAAM,uBAAuB,EAAE,eA0ErC,CAAC"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * `shrk knowledge propose`.
3
+ *
4
+ * AST-driven inference of stub knowledge entries for exported top-level
5
+ * constructs that are not yet covered by an existing entry. Preview-first.
6
+ * `--write` materialises draft files under `.sharkcraft/authoring/proposed/`
7
+ * so the user can hand-edit them before pasting into the canonical
8
+ * knowledge module.
9
+ */
10
+ import { mkdirSync, writeFileSync } from 'node:fs';
11
+ import * as nodePath from 'node:path';
12
+ import { AssetKind, AssetProvenanceOperation, KNOWLEDGE_PROPOSE_SCHEMA, proposeKnowledge, recordProvenance, renderKnowledgeProposeMarkdown, } from '@shrkcrft/inspector';
13
+ import { flagBool, flagString, resolveCwd, } from "../command-registry.js";
14
+ import { asJson } from "../output/format-output.js";
15
+ import { detectAuthoringSource } from "../authoring/authoring-kit.js";
16
+ function renderProposalAsTs(p) {
17
+ const obj = {
18
+ id: p.id,
19
+ title: p.title,
20
+ type: p.type,
21
+ priority: p.priority,
22
+ scope: p.scope,
23
+ tags: p.tags,
24
+ appliesWhen: p.appliesWhen,
25
+ summary: p.summary,
26
+ content: p.content,
27
+ references: p.references,
28
+ };
29
+ const body = JSON.stringify(obj, null, 2);
30
+ return `// Proposed by \`shrk knowledge propose\`.\n// Source: ${p.source.file}:${p.source.line} (${p.source.kind}).\n// Replace title/summary/content with the real *why*, then paste into your\n// knowledge module (e.g. \`sharkcraft/knowledge.ts\`).\nexport const proposed_${p.id.replace(/[^a-zA-Z0-9]/g, '_')} = ${body};\n`;
31
+ }
32
+ function writeDraftFiles(cwd, report) {
33
+ if (report.proposals.length === 0)
34
+ return [];
35
+ const outDir = nodePath.join(cwd, '.sharkcraft', 'authoring', 'proposed');
36
+ mkdirSync(outDir, { recursive: true });
37
+ const written = [];
38
+ for (const p of report.proposals) {
39
+ const safe = p.id.replace(/[^a-zA-Z0-9._-]/g, '_');
40
+ const file = nodePath.join(outDir, `${safe}.ts`);
41
+ writeFileSync(file, renderProposalAsTs(p));
42
+ written.push(file);
43
+ }
44
+ // Manifest: one JSON listing every proposal for replay.
45
+ const manifestPath = nodePath.join(outDir, '_manifest.json');
46
+ writeFileSync(manifestPath, JSON.stringify({
47
+ schema: KNOWLEDGE_PROPOSE_SCHEMA,
48
+ generatedAt: new Date().toISOString(),
49
+ proposals: report.proposals.map((p) => ({ id: p.id, file: p.source.file, line: p.source.line })),
50
+ }, null, 2));
51
+ written.push(manifestPath);
52
+ return written;
53
+ }
54
+ export const knowledgeProposeCommand = {
55
+ name: 'propose',
56
+ description: 'Propose stub knowledge entries for exported top-level constructs that lack coverage. Preview-first; --write materialises drafts under .sharkcraft/authoring/proposed/.',
57
+ usage: 'shrk knowledge propose [--path <file>] [--symbol <name>] [--since <ref>|--all] [--json] [--write]',
58
+ async run(args) {
59
+ const cwd = resolveCwd(args);
60
+ const path = flagString(args, 'path');
61
+ const symbol = flagString(args, 'symbol');
62
+ const sinceFlag = flagString(args, 'since');
63
+ const all = flagBool(args, 'all');
64
+ const since = path
65
+ ? undefined
66
+ : symbol
67
+ ? undefined
68
+ : all
69
+ ? null
70
+ : sinceFlag ?? undefined;
71
+ const report = await proposeKnowledge({
72
+ cwd,
73
+ ...(path ? { path } : {}),
74
+ ...(symbol ? { symbol } : {}),
75
+ ...(since !== undefined ? { since } : {}),
76
+ });
77
+ if (flagBool(args, 'json')) {
78
+ const payload = flagBool(args, 'write')
79
+ ? { ...report, writtenFiles: writeDraftFiles(cwd, report) }
80
+ : report;
81
+ process.stdout.write(asJson(payload) + '\n');
82
+ if (flagBool(args, 'write') && report.proposals.length > 0) {
83
+ recordProvenance({
84
+ projectRoot: cwd,
85
+ entry: {
86
+ operation: AssetProvenanceOperation.Preview,
87
+ assetKind: AssetKind.Knowledge,
88
+ assetId: 'knowledge-propose',
89
+ source: detectAuthoringSource().source,
90
+ extra: { authoringOp: 'propose', count: report.proposals.length },
91
+ },
92
+ });
93
+ }
94
+ return report.proposals.length === 0 ? 0 : 0;
95
+ }
96
+ process.stdout.write(renderKnowledgeProposeMarkdown(report));
97
+ process.stdout.write('\n');
98
+ if (flagBool(args, 'write')) {
99
+ const written = writeDraftFiles(cwd, report);
100
+ if (written.length === 0) {
101
+ process.stdout.write('\nNo files written (no proposals).\n');
102
+ }
103
+ else {
104
+ process.stdout.write(`\nWrote ${written.length} files under .sharkcraft/authoring/proposed/:\n`);
105
+ for (const f of written) {
106
+ process.stdout.write(` • ${nodePath.relative(cwd, f)}\n`);
107
+ }
108
+ recordProvenance({
109
+ projectRoot: cwd,
110
+ entry: {
111
+ operation: AssetProvenanceOperation.Preview,
112
+ assetKind: AssetKind.Knowledge,
113
+ assetId: 'knowledge-propose',
114
+ source: detectAuthoringSource().source,
115
+ extra: { authoringOp: 'propose', count: report.proposals.length },
116
+ },
117
+ });
118
+ }
119
+ }
120
+ else if (report.proposals.length > 0) {
121
+ process.stdout.write('\n(preview only — pass --write to materialise under .sharkcraft/authoring/proposed/)\n');
122
+ }
123
+ return 0;
124
+ },
125
+ };
@@ -0,0 +1,18 @@
1
+ import { type ICommandHandler } from '../command-registry.js';
2
+ export declare const knowledgeListCommand: ICommandHandler;
3
+ export declare const knowledgeGetCommand: ICommandHandler;
4
+ export declare const knowledgeSearchCommand: ICommandHandler;
5
+ export declare const knowledgeStaleCheckCommand: ICommandHandler;
6
+ export declare const knowledgeVerifyCommand: ICommandHandler;
7
+ export declare const knowledgeReferencesCommand: ICommandHandler;
8
+ export declare const knowledgeAnchorsCommand: ICommandHandler;
9
+ /**
10
+ * Read-only preview of which knowledge entries' references / anchors
11
+ * would change when a symbol or file is renamed. Source-side symbol
12
+ * rename remains out of scope until an AST-aware path exists. Use
13
+ * `shrk fix --knowledge-stale --apply` to land entry-side renames.
14
+ */
15
+ export declare const knowledgeRenameSymbolCommand: ICommandHandler;
16
+ export declare const knowledgeRenameFileCommand: ICommandHandler;
17
+ export declare const knowledgeUpdateAnchorCommand: ICommandHandler;
18
+ //# sourceMappingURL=knowledge.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.command.d.ts","sourceRoot":"","sources":["../../src/commands/knowledge.command.ts"],"names":[],"mappings":"AAaA,OAAO,EAML,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAoFhC,eAAO,MAAM,oBAAoB,EAAE,eAsBlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,eAuBjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,eAqCpC,CAAC;AAoBF,eAAO,MAAM,0BAA0B,EAAE,eAWxC,CAAC;AA8NF,eAAO,MAAM,sBAAsB,EAAE,eAQpC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,eA8CxC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,eAuBrC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,EAAE,eA8B1C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,eA8BxC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,eAkC1C,CAAC"}