@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,3 @@
1
+ import { type ICommandHandler } from '../command-registry.js';
2
+ export declare const testCommand: ICommandHandler;
3
+ //# sourceMappingURL=test.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.command.d.ts","sourceRoot":"","sources":["../../src/commands/test.command.ts"],"names":[],"mappings":"AAUA,OAAO,EAKL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AA6QhC,eAAO,MAAM,WAAW,EAAE,eA4BzB,CAAC"}
@@ -0,0 +1,262 @@
1
+ import { mkdirSync, writeFileSync } from 'node:fs';
2
+ import * as nodePath from 'node:path';
3
+ import { buildTaskPacket, inspectSharkcraft, loadAgentContractTests, loadContextTests, runAgentContractTest, runContextTest, } from '@shrkcrft/inspector';
4
+ import { flagBool, flagList, flagString, resolveCwd, } from "../command-registry.js";
5
+ import { asJson, header, kv } from "../output/format-output.js";
6
+ import { maybeRunInWatchMode } from "../output/watch-loop.js";
7
+ async function runContextTests(args) {
8
+ const inspection = await inspectSharkcraft({ cwd: resolveCwd(args) });
9
+ const all = await loadContextTests(inspection);
10
+ const filter = flagString(args, 'id');
11
+ const tests = filter ? all.filter((t) => t.id === filter) : all;
12
+ if (tests.length === 0) {
13
+ if (flagBool(args, 'json')) {
14
+ process.stdout.write(asJson({ tests: 0, results: [] }) + '\n');
15
+ return 0;
16
+ }
17
+ process.stdout.write(header('Context tests'));
18
+ process.stdout.write('No context tests configured.\n');
19
+ return 0;
20
+ }
21
+ const results = tests.map((t) => runContextTest(inspection, t));
22
+ const failed = results.filter((r) => !r.passed);
23
+ if (flagBool(args, 'json')) {
24
+ process.stdout.write(asJson({ total: results.length, failed: failed.length, results }) + '\n');
25
+ return failed.length > 0 ? 1 : 0;
26
+ }
27
+ process.stdout.write(header(`Context tests (${results.length})`));
28
+ for (const r of results) {
29
+ const tag = r.passed ? 'PASS' : 'FAIL';
30
+ process.stdout.write(` ${tag} ${r.id.padEnd(36)} task: ${r.task}\n`);
31
+ if (!r.passed) {
32
+ if (r.missingInclude.length) {
33
+ process.stdout.write(` missing must-include: ${r.missingInclude.join(', ')}\n`);
34
+ }
35
+ if (r.unexpectedInclude.length) {
36
+ process.stdout.write(` unexpected: ${r.unexpectedInclude.join(', ')}\n`);
37
+ }
38
+ for (const d of r.diagnostics ?? []) {
39
+ process.stdout.write(` · ${d.id} (${d.existsInRegistry ? 'exists' : 'missing from registry'}):\n`);
40
+ for (const s of d.suggestions)
41
+ process.stdout.write(` - ${s}\n`);
42
+ if (d.topAlternatives?.length) {
43
+ process.stdout.write(' top-ranked instead:\n');
44
+ for (const a of d.topAlternatives.slice(0, 3)) {
45
+ process.stdout.write(` [${a.score}] ${a.id} — ${a.reasons.join('; ')}\n`);
46
+ }
47
+ }
48
+ }
49
+ }
50
+ }
51
+ process.stdout.write(`\nSummary: ${results.length - failed.length}/${results.length} passed.\n`);
52
+ return failed.length > 0 ? 1 : 0;
53
+ }
54
+ async function runAgentTests(args) {
55
+ const inspection = await inspectSharkcraft({ cwd: resolveCwd(args) });
56
+ const all = await loadAgentContractTests(inspection);
57
+ const filter = flagString(args, 'id');
58
+ const tests = filter ? all.filter((t) => t.id === filter) : all;
59
+ if (tests.length === 0) {
60
+ if (flagBool(args, 'json')) {
61
+ process.stdout.write(asJson({ tests: 0, results: [] }) + '\n');
62
+ return 0;
63
+ }
64
+ process.stdout.write(header('Agent contract tests'));
65
+ process.stdout.write('No agent contract tests configured.\n');
66
+ return 0;
67
+ }
68
+ // Pre-load policy / construct / playbook id sets so the runner can
69
+ // evaluate strict expectations accurately.
70
+ const { loadAgentContractRegistries } = await import('@shrkcrft/inspector');
71
+ const registries = await loadAgentContractRegistries(inspection);
72
+ const results = tests.map((t) => runAgentContractTest(inspection, t, registries));
73
+ const failed = results.filter((r) => !r.passed);
74
+ if (flagBool(args, 'json')) {
75
+ process.stdout.write(asJson({ total: results.length, failed: failed.length, results }) + '\n');
76
+ return failed.length > 0 ? 1 : 0;
77
+ }
78
+ process.stdout.write(header(`Agent contract tests (${results.length})`));
79
+ for (const r of results) {
80
+ const tag = r.passed ? 'PASS' : 'FAIL';
81
+ process.stdout.write(` ${tag} ${r.id.padEnd(36)} task: ${r.task}\n`);
82
+ if (!r.passed) {
83
+ if (r.expectedPipeline) {
84
+ process.stdout.write(` expected pipeline: ${r.expectedPipeline}\n`);
85
+ process.stdout.write(` actual pipelines: ${r.actualPipelines?.join(', ') ?? '(none)'}\n`);
86
+ }
87
+ if ((r.missingTemplates ?? []).length)
88
+ process.stdout.write(` missing templates: ${r.missingTemplates.join(', ')}\n`);
89
+ if ((r.missingRules ?? []).length)
90
+ process.stdout.write(` missing rules: ${r.missingRules.join(', ')}\n`);
91
+ if ((r.missingForbiddenActions ?? []).length)
92
+ process.stdout.write(` missing forbidden: ${r.missingForbiddenActions.join('; ')}\n`);
93
+ if ((r.missingVerificationCommands ?? []).length)
94
+ process.stdout.write(` missing verification: ${r.missingVerificationCommands.join('; ')}\n`);
95
+ if ((r.missingHelpers ?? []).length)
96
+ process.stdout.write(` missing helpers: ${r.missingHelpers.join(', ')}\n`);
97
+ if ((r.missingPlaybooks ?? []).length)
98
+ process.stdout.write(` missing playbooks: ${r.missingPlaybooks.join(', ')}\n`);
99
+ if ((r.missingPolicies ?? []).length)
100
+ process.stdout.write(` missing policies: ${r.missingPolicies.join(', ')}\n`);
101
+ if ((r.missingConstructs ?? []).length)
102
+ process.stdout.write(` missing constructs: ${r.missingConstructs.join(', ')}\n`);
103
+ if ((r.missingCommands ?? []).length)
104
+ process.stdout.write(` missing commands: ${r.missingCommands.join(', ')}\n`);
105
+ if ((r.missingKnowledge ?? []).length)
106
+ process.stdout.write(` missing knowledge: ${r.missingKnowledge.join(', ')}\n`);
107
+ if ((r.unexpectedlyIncluded ?? []).length)
108
+ process.stdout.write(` unexpectedly included: ${r.unexpectedlyIncluded.join(', ')}\n`);
109
+ for (const d of r.diagnostics ?? []) {
110
+ process.stdout.write(` · ${d.kind}: ${d.id} (${d.existsInRegistry ? 'exists' : 'missing from registry'}):\n`);
111
+ for (const s of d.suggestions)
112
+ process.stdout.write(` - ${s}\n`);
113
+ }
114
+ }
115
+ }
116
+ process.stdout.write(`\nSummary: ${results.length - failed.length}/${results.length} passed.\n`);
117
+ return failed.length > 0 ? 1 : 0;
118
+ }
119
+ async function generateContextTest(args) {
120
+ const task = args.positional.join(' ').trim();
121
+ if (!task) {
122
+ process.stderr.write('Usage: shrk test generate context "<task>"\n');
123
+ return 2;
124
+ }
125
+ const cwd = resolveCwd(args);
126
+ const inspection = await inspectSharkcraft({ cwd });
127
+ const packet = buildTaskPacket(inspection, task, { maxTokens: 3000 });
128
+ const id = `inferred.context.${slug(task)}`;
129
+ const body = renderContextTestDraft(id, task, packet);
130
+ return writeDraft(args, cwd, 'context-tests.draft.ts', body, { id, task });
131
+ }
132
+ async function generateAgentTest(args) {
133
+ const task = args.positional.join(' ').trim();
134
+ if (!task) {
135
+ process.stderr.write('Usage: shrk test generate agent "<task>" [--pipeline <id>] [--template <id>] [--rule <id>]\n');
136
+ return 2;
137
+ }
138
+ const cwd = resolveCwd(args);
139
+ const inspection = await inspectSharkcraft({ cwd });
140
+ const packet = buildTaskPacket(inspection, task, { maxTokens: 3000 });
141
+ const id = `inferred.agent.${slug(task)}`;
142
+ const pipeline = flagString(args, 'pipeline') ?? packet.recommendedPipelines[0]?.pipelineId;
143
+ const templates = flagList(args, 'template');
144
+ const rules = flagList(args, 'rule');
145
+ const templatePicks = templates.length > 0 ? templates : packet.relevantTemplates.slice(0, 3).map((t) => t.id);
146
+ const rulePicks = rules.length > 0 ? rules : packet.relevantRules.slice(0, 3).map((r) => r.id);
147
+ const body = renderAgentTestDraft(id, task, {
148
+ pipeline: pipeline ?? undefined,
149
+ templates: templatePicks,
150
+ rules: rulePicks,
151
+ forbiddenActions: packet.forbiddenActions,
152
+ verificationCommands: packet.verificationCommands,
153
+ });
154
+ return writeDraft(args, cwd, 'agent-tests.draft.ts', body, { id, task });
155
+ }
156
+ function writeDraft(args, cwd, filename, body, summary) {
157
+ const wantJson = flagBool(args, 'json');
158
+ const wantWrite = flagBool(args, 'write');
159
+ const outDir = nodePath.join(cwd, 'sharkcraft', 'test-drafts');
160
+ const outFile = nodePath.join(outDir, filename);
161
+ if (!wantWrite) {
162
+ if (wantJson) {
163
+ process.stdout.write(asJson({ mode: 'dry-run', outFile, ...summary, bytes: body.length }) + '\n');
164
+ return 0;
165
+ }
166
+ process.stdout.write(header(`Test draft (dry-run): ${summary.id}`));
167
+ process.stdout.write(kv('outFile', outFile) + '\n');
168
+ process.stdout.write(kv('task', summary.task) + '\n\n');
169
+ process.stdout.write(body);
170
+ return 0;
171
+ }
172
+ mkdirSync(outDir, { recursive: true });
173
+ if (!outFile.startsWith(outDir + nodePath.sep)) {
174
+ process.stderr.write('Refusing to write outside test-drafts dir.\n');
175
+ return 1;
176
+ }
177
+ writeFileSync(outFile, body, 'utf8');
178
+ if (wantJson) {
179
+ process.stdout.write(asJson({ mode: 'write', outFile, ...summary, bytes: body.length }) + '\n');
180
+ return 0;
181
+ }
182
+ process.stdout.write(header(`Test draft written: ${summary.id}`));
183
+ process.stdout.write(kv('outFile', outFile) + '\n');
184
+ return 0;
185
+ }
186
+ function renderContextTestDraft(id, task, packet) {
187
+ const lines = [];
188
+ lines.push('// Context-test draft. Move into sharkcraft/context-tests.ts after review.');
189
+ lines.push('export default [');
190
+ lines.push(` {`);
191
+ lines.push(` id: '${id}',`);
192
+ lines.push(` task: ${JSON.stringify(task)},`);
193
+ lines.push(` mustInclude: [`);
194
+ for (const r of packet.relevantRules.slice(0, 5)) {
195
+ lines.push(` '${r.id}',`);
196
+ }
197
+ for (const t of packet.relevantTemplates.slice(0, 3)) {
198
+ lines.push(` '${t.id}',`);
199
+ }
200
+ lines.push(` ],`);
201
+ lines.push(` mustNotInclude: [],`);
202
+ lines.push(` },`);
203
+ lines.push('];');
204
+ return lines.join('\n') + '\n';
205
+ }
206
+ function renderAgentTestDraft(id, task, picks) {
207
+ const lines = [];
208
+ lines.push('// Agent-contract test draft. Move into sharkcraft/agent-tests.ts after review.');
209
+ lines.push('export default [');
210
+ lines.push(` {`);
211
+ lines.push(` id: '${id}',`);
212
+ lines.push(` task: ${JSON.stringify(task)},`);
213
+ if (picks.pipeline)
214
+ lines.push(` expectedPipeline: '${picks.pipeline}',`);
215
+ lines.push(` expectedTemplates: ${JSON.stringify(picks.templates)},`);
216
+ lines.push(` expectedRules: ${JSON.stringify(picks.rules)},`);
217
+ if (picks.forbiddenActions.length > 0) {
218
+ lines.push(` expectedForbiddenActions: ${JSON.stringify([...picks.forbiddenActions])},`);
219
+ }
220
+ if (picks.verificationCommands.length > 0) {
221
+ lines.push(` expectedVerificationCommands: ${JSON.stringify([...picks.verificationCommands])},`);
222
+ }
223
+ lines.push(` },`);
224
+ lines.push('];');
225
+ return lines.join('\n') + '\n';
226
+ }
227
+ function slug(s) {
228
+ return s
229
+ .toLowerCase()
230
+ .replace(/[^a-z0-9]+/g, '-')
231
+ .replace(/^-+|-+$/g, '')
232
+ .slice(0, 32);
233
+ }
234
+ export const testCommand = {
235
+ name: 'test',
236
+ description: 'Run or generate SharkCraft regression tests: `test context` / `test agent`, or `test generate context|agent "<task>"`.',
237
+ usage: 'shrk [--cwd <dir>] test <context|agent|generate> [args...] [--id <id>] [--json]',
238
+ async run(args) {
239
+ const sub = args.positional[0];
240
+ const sliced = { ...args, positional: args.positional.slice(1) };
241
+ if (sub === 'context')
242
+ return runContextTests(sliced);
243
+ if (sub === 'agent') {
244
+ const watchExit = await maybeRunInWatchMode(sliced, runAgentTests);
245
+ if (watchExit !== null)
246
+ return watchExit;
247
+ return runAgentTests(sliced);
248
+ }
249
+ if (sub === 'generate') {
250
+ const which = args.positional[1];
251
+ const sliced2 = { ...args, positional: args.positional.slice(2) };
252
+ if (which === 'context')
253
+ return generateContextTest(sliced2);
254
+ if (which === 'agent')
255
+ return generateAgentTest(sliced2);
256
+ process.stderr.write('Usage: shrk test generate <context|agent> "<task>" [--write]\n');
257
+ return 2;
258
+ }
259
+ process.stderr.write('Usage: shrk test <context|agent|generate> [--id <id>]\n');
260
+ return 2;
261
+ },
262
+ };
@@ -0,0 +1,5 @@
1
+ import { type ICommandHandler } from '../command-registry.js';
2
+ export declare const testsImpactCommand: ICommandHandler;
3
+ export declare const testsSuggestCommand: ICommandHandler;
4
+ export declare const testsMissingCommand: ICommandHandler;
5
+ //# sourceMappingURL=tests.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tests.command.d.ts","sourceRoot":"","sources":["../../src/commands/tests.command.ts"],"names":[],"mappings":"AAQA,OAAO,EAKL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAiChC,eAAO,MAAM,kBAAkB,EAAE,eAyBhC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,eAajC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,eAgBjC,CAAC"}
@@ -0,0 +1,97 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import * as nodePath from 'node:path';
3
+ import { analyzeTestImpact, inspectSharkcraft, readFeatureBundle, suggestTestPathFor, } from '@shrkcrft/inspector';
4
+ import { flagBool, flagString, flagList, resolveCwd, } from "../command-registry.js";
5
+ import { asJson, header } from "../output/format-output.js";
6
+ function collectFiles(cwd, args) {
7
+ const files = flagList(args, 'files');
8
+ const planFile = flagString(args, 'plan');
9
+ const bundleId = flagString(args, 'bundle');
10
+ const out = [...files];
11
+ if (planFile) {
12
+ const path = nodePath.isAbsolute(planFile) ? planFile : nodePath.join(cwd, planFile);
13
+ if (existsSync(path)) {
14
+ try {
15
+ const parsed = JSON.parse(readFileSync(path, 'utf8'));
16
+ const changes = parsed.changes ?? parsed.plan?.changes ?? [];
17
+ for (const c of changes)
18
+ if (c.relativePath)
19
+ out.push(c.relativePath);
20
+ }
21
+ catch {
22
+ /* ignore */
23
+ }
24
+ }
25
+ }
26
+ if (bundleId) {
27
+ const b = readFeatureBundle(cwd, bundleId);
28
+ if (b) {
29
+ for (const f of b.affectedFiles)
30
+ out.push(f);
31
+ for (const p of b.plans)
32
+ for (const t of p.expectedTargets)
33
+ out.push(t);
34
+ }
35
+ }
36
+ return [...new Set(out)];
37
+ }
38
+ export const testsImpactCommand = {
39
+ name: 'impact',
40
+ description: 'Test impact analysis for changed files / plan / bundle.',
41
+ usage: 'shrk tests impact [--files a,b] [--plan <plan>] [--bundle <id>] "<task>"',
42
+ async run(args) {
43
+ const cwd = resolveCwd(args);
44
+ const inspection = await inspectSharkcraft({ cwd });
45
+ const task = args.positional.join(' ').trim() || undefined;
46
+ const files = collectFiles(cwd, args);
47
+ const result = analyzeTestImpact(inspection, {
48
+ ...(task ? { task } : {}),
49
+ files,
50
+ });
51
+ if (flagBool(args, 'json')) {
52
+ process.stdout.write(asJson(result) + '\n');
53
+ return 0;
54
+ }
55
+ process.stdout.write(header(`Test impact (${files.length} files)`));
56
+ process.stdout.write(`Likely tests: ${result.likelyTestFiles.length}\n`);
57
+ for (const f of result.likelyTestFiles.slice(0, 10))
58
+ process.stdout.write(` + ${f}\n`);
59
+ process.stdout.write(`Missing tests: ${result.missingTestFiles.length}\n`);
60
+ for (const f of result.missingTestFiles.slice(0, 10))
61
+ process.stdout.write(` - ${f}\n`);
62
+ process.stdout.write(`Confidence: ${result.confidence}%\n`);
63
+ return 0;
64
+ },
65
+ };
66
+ export const testsSuggestCommand = {
67
+ name: 'suggest',
68
+ description: 'Suggest where a test for a given file should live.',
69
+ usage: 'shrk tests suggest <file>',
70
+ run(args) {
71
+ const file = args.positional[0];
72
+ if (!file) {
73
+ process.stderr.write('Usage: shrk tests suggest <file>\n');
74
+ return 2;
75
+ }
76
+ process.stdout.write(suggestTestPathFor(file) + '\n');
77
+ return 0;
78
+ },
79
+ };
80
+ export const testsMissingCommand = {
81
+ name: 'missing',
82
+ description: 'Show missing test files for the given inputs.',
83
+ usage: 'shrk tests missing --files a,b',
84
+ async run(args) {
85
+ const cwd = resolveCwd(args);
86
+ const inspection = await inspectSharkcraft({ cwd });
87
+ const files = collectFiles(cwd, args);
88
+ const r = analyzeTestImpact(inspection, { files });
89
+ if (flagBool(args, 'json')) {
90
+ process.stdout.write(asJson({ missing: r.missingTestFiles }) + '\n');
91
+ return 0;
92
+ }
93
+ for (const f of r.missingTestFiles)
94
+ process.stdout.write(f + '\n');
95
+ return 0;
96
+ },
97
+ };
@@ -0,0 +1,3 @@
1
+ import { type ICommandHandler } from '../command-registry.js';
2
+ export declare const traceCommand: ICommandHandler;
3
+ //# sourceMappingURL=trace.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.command.d.ts","sourceRoot":"","sources":["../../src/commands/trace.command.ts"],"names":[],"mappings":"AAcA,OAAO,EAKL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAOhC,eAAO,MAAM,YAAY,EAAE,eAsG1B,CAAC"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Top-level fuzzy `shrk trace <query>`.
3
+ *
4
+ * Accepts a free-form query (file path, construct id, plugin key, symbol,
5
+ * helper id, template id, knowledge id, command name). Resolves via the
6
+ * shared query resolver and prints structured trace output.
7
+ */
8
+ import { findSymbolInProject, inspectSharkcraft, QueryMatchKind, resolveQuery, } from '@shrkcrft/inspector';
9
+ import { flagBool, flagNumber, flagString, resolveCwd, } from "../command-registry.js";
10
+ import { asJson, header } from "../output/format-output.js";
11
+ function describeMatch(m) {
12
+ return `${m.kind.padEnd(12)} ${m.id}${m.label && m.label !== m.id ? ` — ${m.label}` : ''} [${m.score.toFixed(0)}]`;
13
+ }
14
+ export const traceCommand = {
15
+ name: 'trace',
16
+ description: 'Fuzzy trace — accept any free-form query (file path, construct id, symbol, plugin key, helper id, template id, knowledge id, command). Read-only.',
17
+ usage: 'shrk trace <query> [--limit <n>] [--kind file|construct|knowledge|template|helper|playbook|policy|command] [--deep] [--json]',
18
+ async run(args) {
19
+ // Direct symbol trace via --symbol <Name>
20
+ const symbol = flagString(args, 'symbol');
21
+ if (symbol) {
22
+ const cwd = resolveCwd(args);
23
+ const language = (flagString(args, 'language') ?? 'auto');
24
+ const symReport = findSymbolInProject(cwd, symbol, { language });
25
+ if (flagBool(args, 'json')) {
26
+ process.stdout.write(asJson(symReport) + '\n');
27
+ return symReport.exactMatches.length > 0 ? 0 : 1;
28
+ }
29
+ process.stdout.write(header(`Trace symbol: ${symbol}`));
30
+ if (symReport.exactMatches.length === 0) {
31
+ process.stdout.write(' no exact-export or exact-local matches.\n');
32
+ if (symReport.textMatches.length > 0) {
33
+ process.stdout.write(` ${symReport.textMatches.length} probable-text matches:\n`);
34
+ for (const t of symReport.textMatches.slice(0, 8)) {
35
+ process.stdout.write(` • ${t.relativePath}\n`);
36
+ }
37
+ }
38
+ process.stdout.write('\nNext commands:\n');
39
+ process.stdout.write(` shrk find "${symbol}"\n`);
40
+ return 1;
41
+ }
42
+ for (const m of symReport.exactMatches) {
43
+ process.stdout.write(` ${m.resolution.padEnd(13)} ${m.relativePath}${m.line ? `:${m.line}` : ''}\n`);
44
+ }
45
+ if (symReport.primaryFile) {
46
+ process.stdout.write(`\nPrimary file: ${symReport.primaryFile}\n`);
47
+ process.stdout.write(`\nNext commands:\n`);
48
+ process.stdout.write(` shrk impact --symbol ${symbol}\n`);
49
+ process.stdout.write(` shrk impact ${symReport.primaryFile}\n`);
50
+ }
51
+ else {
52
+ process.stdout.write(`\nAmbiguous — ${symReport.exactMatches.length} exact matches.\n`);
53
+ }
54
+ return 0;
55
+ }
56
+ const query = args.positional.join(' ').trim();
57
+ if (!query) {
58
+ process.stderr.write('Usage: shrk trace <query> | shrk trace --symbol <Name>\n');
59
+ return 2;
60
+ }
61
+ const cwd = resolveCwd(args);
62
+ const inspection = await inspectSharkcraft({ cwd });
63
+ const limit = flagNumber(args, 'limit');
64
+ const resolution = resolveQuery(inspection, query, {
65
+ ...(typeof limit === 'number' ? { limit } : {}),
66
+ });
67
+ if (flagBool(args, 'json')) {
68
+ process.stdout.write(asJson(resolution) + '\n');
69
+ return resolution.bestMatch ? 0 : 1;
70
+ }
71
+ process.stdout.write(header(`Trace: ${query}`));
72
+ if (!resolution.bestMatch) {
73
+ process.stdout.write(' no matches found.\n');
74
+ return 1;
75
+ }
76
+ process.stdout.write(`Confidence: ${resolution.confidence}\n`);
77
+ process.stdout.write(`Best: ${describeMatch(resolution.bestMatch)}\n`);
78
+ if (resolution.bestMatch.reason) {
79
+ process.stdout.write(` reason: ${resolution.bestMatch.reason}\n`);
80
+ }
81
+ if (resolution.alternatives.length > 0) {
82
+ process.stdout.write('Alternatives:\n');
83
+ for (const alt of resolution.alternatives) {
84
+ process.stdout.write(` • ${describeMatch(alt)}\n`);
85
+ }
86
+ }
87
+ if (flagBool(args, 'deep')) {
88
+ const best = resolution.bestMatch;
89
+ process.stdout.write('\nFollow-up commands:\n');
90
+ if (best.kind === QueryMatchKind.Construct) {
91
+ process.stdout.write(` shrk constructs trace ${best.id} --deep\n`);
92
+ process.stdout.write(` shrk constructs impact ${best.id} --json\n`);
93
+ }
94
+ else if (best.kind === QueryMatchKind.File) {
95
+ process.stdout.write(` shrk impact ${best.id}\n`);
96
+ }
97
+ else if (best.kind === QueryMatchKind.Knowledge) {
98
+ process.stdout.write(` shrk knowledge get ${best.id}\n`);
99
+ }
100
+ else if (best.kind === QueryMatchKind.Template) {
101
+ process.stdout.write(` shrk templates get ${best.id}\n`);
102
+ process.stdout.write(` shrk templates preview ${best.id}\n`);
103
+ }
104
+ else if (best.kind === QueryMatchKind.Helper) {
105
+ process.stdout.write(` shrk helper get ${best.id}\n`);
106
+ process.stdout.write(` shrk helper plan ${best.id} --json\n`);
107
+ }
108
+ else if (best.kind === QueryMatchKind.Playbook) {
109
+ process.stdout.write(` shrk playbooks get ${best.id}\n`);
110
+ process.stdout.write(` shrk playbooks runbook ${best.id}\n`);
111
+ }
112
+ else if (best.kind === QueryMatchKind.Policy) {
113
+ process.stdout.write(` shrk policy get ${best.id}\n`);
114
+ }
115
+ else if (best.kind === QueryMatchKind.Command) {
116
+ process.stdout.write(` shrk commands get ${best.id}\n`);
117
+ }
118
+ }
119
+ return 0;
120
+ },
121
+ };
@@ -0,0 +1,4 @@
1
+ import { type ICommandHandler } from '../command-registry.js';
2
+ export declare const upgradeCheckCommand: ICommandHandler;
3
+ export declare const upgradePlanCommand: ICommandHandler;
4
+ //# sourceMappingURL=upgrade.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.command.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.command.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAGhC,eAAO,MAAM,mBAAmB,EAAE,eAwBjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,eAWhC,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { buildUpgradeAdvice, inspectSharkcraft, } from '@shrkcrft/inspector';
2
+ import { flagBool, flagString, resolveCwd, } from "../command-registry.js";
3
+ import { asJson } from "../output/format-output.js";
4
+ export const upgradeCheckCommand = {
5
+ name: 'check',
6
+ description: 'Check for SharkCraft schema migrations. Read-only; never auto-migrates.',
7
+ usage: 'shrk upgrade check [--from <ver>] [--to <ver>] [--json]',
8
+ async run(args) {
9
+ const cwd = resolveCwd(args);
10
+ const inspection = await inspectSharkcraft({ cwd });
11
+ const report = buildUpgradeAdvice(inspection, {
12
+ ...(flagString(args, 'from') ? { from: flagString(args, 'from') } : {}),
13
+ ...(flagString(args, 'to') ? { to: flagString(args, 'to') } : {}),
14
+ });
15
+ if (flagBool(args, 'json')) {
16
+ process.stdout.write(asJson(report) + '\n');
17
+ return 0;
18
+ }
19
+ process.stdout.write(`=== Upgrade advisor ===\n from ${report.fromVersion}\n to ${report.toVersion}\n`);
20
+ process.stdout.write('Detected schemas:\n');
21
+ for (const [k, v] of Object.entries(report.detectedSchemas))
22
+ process.stdout.write(` ${k.padEnd(48)} ${v}\n`);
23
+ process.stdout.write('Findings:\n');
24
+ for (const f of report.findings)
25
+ process.stdout.write(` [${f.severity}] ${f.id} — ${f.message}\n → ${f.suggestedAction}\n`);
26
+ process.stdout.write('Recommended steps:\n');
27
+ for (const s of report.recommendedSteps)
28
+ process.stdout.write(` $ ${s}\n`);
29
+ return 0;
30
+ },
31
+ };
32
+ export const upgradePlanCommand = {
33
+ name: 'plan',
34
+ description: 'Plan a SharkCraft upgrade — alias for `upgrade check`, surfaces JSON.',
35
+ usage: 'shrk upgrade plan [--json]',
36
+ async run(args) {
37
+ const cwd = resolveCwd(args);
38
+ const inspection = await inspectSharkcraft({ cwd });
39
+ const report = buildUpgradeAdvice(inspection);
40
+ process.stdout.write(asJson(report) + '\n');
41
+ return 0;
42
+ },
43
+ };
@@ -0,0 +1,3 @@
1
+ import type { ICommandHandler } from '../command-registry.js';
2
+ export declare const versionCommand: ICommandHandler;
3
+ //# sourceMappingURL=version.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.command.d.ts","sourceRoot":"","sources":["../../src/commands/version.command.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,eAAO,MAAM,cAAc,EAAE,eAQ5B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { SHARKCRAFT_VERSION } from '@shrkcrft/shared';
2
+ export const versionCommand = {
3
+ name: 'version',
4
+ description: 'Show SharkCraft version.',
5
+ usage: 'shrk version',
6
+ run() {
7
+ process.stdout.write(`SharkCraft v${SHARKCRAFT_VERSION}\n`);
8
+ return 0;
9
+ },
10
+ };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * `shrk why <file>` — closes the dangling promise from
3
+ * `ide.command.ts:112`. For any file path under the project root,
4
+ * surface:
5
+ *
6
+ * - inferred package / layer
7
+ * - path conventions whose canonical path matches
8
+ * - rules whose scope / tags / appliesWhen overlap with the file's
9
+ * path tokens (top-N by priority)
10
+ * - boundary rules whose `from` glob matches the file (these dictate
11
+ * what the file is allowed to import)
12
+ * - knowledge entries that reference the file or its basename
13
+ * - suggested next commands
14
+ *
15
+ * Read-only. Pure composition over the live inspection — no LLM,
16
+ * no shell, no writes.
17
+ *
18
+ * Symbol queries (`shrk why <symbol>`) intentionally route to
19
+ * `shrk knowledge search` instead of trying to ground a symbol
20
+ * without an AST pass. Honest about scope.
21
+ */
22
+ import { type ICommandHandler } from '../command-registry.js';
23
+ export declare const whyCommand: ICommandHandler;
24
+ //# sourceMappingURL=why.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"why.command.d.ts","sourceRoot":"","sources":["../../src/commands/why.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAGhC,eAAO,MAAM,UAAU,EAAE,eA+BxB,CAAC"}