@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,49 @@
1
+ import { mkdirSync, writeFileSync } from 'node:fs';
2
+ import * as nodePath from 'node:path';
3
+ import { buildAgentOrchestrationPlan, inspectSharkcraft, OrchestrationMode, renderOrchestrationMarkdown, renderOrchestrationText, } from '@shrkcrft/inspector';
4
+ import { flagBool, flagString, resolveCwd, } from "../command-registry.js";
5
+ import { asJson } from "../output/format-output.js";
6
+ export const orchestrateCommand = {
7
+ name: 'orchestrate',
8
+ description: 'Produce a read-only agent orchestration plan (discovery / plan / review / apply / validate). No execution; no writes.',
9
+ usage: 'shrk orchestrate "<task>" [--mode conservative|balanced|aggressive] [--bundle] [--session] [--json] [--output <file.md>]',
10
+ async run(args) {
11
+ const task = args.positional.join(' ').trim();
12
+ if (!task) {
13
+ process.stderr.write('Usage: shrk orchestrate "<task>"\n');
14
+ return 2;
15
+ }
16
+ const cwd = resolveCwd(args);
17
+ const inspection = await inspectSharkcraft({ cwd });
18
+ const modeRaw = (flagString(args, 'mode') ?? '').toLowerCase();
19
+ const mode = modeRaw === 'conservative'
20
+ ? OrchestrationMode.Conservative
21
+ : modeRaw === 'aggressive'
22
+ ? OrchestrationMode.Aggressive
23
+ : OrchestrationMode.Balanced;
24
+ const riskAware = flagBool(args, 'risk-aware');
25
+ const plan = await buildAgentOrchestrationPlan(task, inspection, { mode, riskAware });
26
+ const output = flagString(args, 'output');
27
+ if (flagBool(args, 'json')) {
28
+ const body = asJson(plan) + '\n';
29
+ if (output) {
30
+ const abs = nodePath.isAbsolute(output) ? output : nodePath.resolve(cwd, output);
31
+ mkdirSync(nodePath.dirname(abs), { recursive: true });
32
+ writeFileSync(abs, body, 'utf8');
33
+ process.stdout.write(`Wrote ${abs}\n`);
34
+ return 0;
35
+ }
36
+ process.stdout.write(body);
37
+ return 0;
38
+ }
39
+ if (output) {
40
+ const abs = nodePath.isAbsolute(output) ? output : nodePath.resolve(cwd, output);
41
+ mkdirSync(nodePath.dirname(abs), { recursive: true });
42
+ writeFileSync(abs, renderOrchestrationMarkdown(plan), 'utf8');
43
+ process.stdout.write(`Wrote ${abs}\n`);
44
+ return 0;
45
+ }
46
+ process.stdout.write(renderOrchestrationText(plan));
47
+ return 0;
48
+ },
49
+ };
@@ -0,0 +1,5 @@
1
+ import { type ICommandHandler } from '../command-registry.js';
2
+ export declare const ownersListCommand: ICommandHandler;
3
+ export declare const ownersMatchCommand: ICommandHandler;
4
+ export declare const ownersImpactCommand: ICommandHandler;
5
+ //# sourceMappingURL=owners.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owners.command.d.ts","sourceRoot":"","sources":["../../src/commands/owners.command.ts"],"names":[],"mappings":"AASA,OAAO,EAKL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAQhC,eAAO,MAAM,iBAAiB,EAAE,eAoB/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,eAyBhC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,eAmDjC,CAAC"}
@@ -0,0 +1,113 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import * as nodePath from 'node:path';
3
+ import { impactFor, inspectSharkcraft, loadOwnershipRules, matchFile, readFeatureBundle, } from '@shrkcrft/inspector';
4
+ import { flagBool, flagString, flagList, resolveCwd, } from "../command-registry.js";
5
+ import { asJson, header } from "../output/format-output.js";
6
+ function readOwnershipFiles(args) {
7
+ const list = flagList(args, 'files');
8
+ return list.length > 0 ? list : undefined;
9
+ }
10
+ export const ownersListCommand = {
11
+ name: 'list',
12
+ description: 'List ownership rules.',
13
+ usage: 'shrk owners list [--json]',
14
+ async run(args) {
15
+ const cwd = resolveCwd(args);
16
+ const inspection = await inspectSharkcraft({ cwd });
17
+ const cfg = inspection.config?.ownershipFiles;
18
+ const { rules, sources, warnings } = await loadOwnershipRules(cwd, cfg);
19
+ if (flagBool(args, 'json')) {
20
+ process.stdout.write(asJson({ rules, sources, warnings }) + '\n');
21
+ return 0;
22
+ }
23
+ process.stdout.write(header(`Ownership rules (${rules.length})`));
24
+ for (const w of warnings)
25
+ process.stdout.write(` ! ${w}\n`);
26
+ for (const r of rules) {
27
+ process.stdout.write(` ${r.id} paths=${r.paths.join(',')} owners=${r.owners.join(',')}\n`);
28
+ }
29
+ return 0;
30
+ },
31
+ };
32
+ export const ownersMatchCommand = {
33
+ name: 'match',
34
+ description: 'Show ownership match for a file.',
35
+ usage: 'shrk owners match <file>',
36
+ async run(args) {
37
+ const file = args.positional[0];
38
+ if (!file) {
39
+ process.stderr.write('Usage: shrk owners match <file>\n');
40
+ return 2;
41
+ }
42
+ const cwd = resolveCwd(args);
43
+ const inspection = await inspectSharkcraft({ cwd });
44
+ const cfg = inspection.config?.ownershipFiles;
45
+ const { rules } = await loadOwnershipRules(cwd, cfg);
46
+ const m = matchFile(file, rules);
47
+ if (flagBool(args, 'json')) {
48
+ process.stdout.write(asJson(m) + '\n');
49
+ return 0;
50
+ }
51
+ process.stdout.write(`file: ${m.file}\n`);
52
+ process.stdout.write(`owners: ${m.owners.join(', ') || '(none)'}\n`);
53
+ process.stdout.write(`reviewers: ${m.reviewers.join(', ') || '(none)'}\n`);
54
+ process.stdout.write(`requiredReview: ${m.requiredReview}\n`);
55
+ return 0;
56
+ },
57
+ };
58
+ export const ownersImpactCommand = {
59
+ name: 'impact',
60
+ description: 'Ownership impact for files / plan / bundle.',
61
+ usage: 'shrk owners impact --files a,b | --plan <plan.json> | --bundle <id>',
62
+ async run(args) {
63
+ const cwd = resolveCwd(args);
64
+ const inspection = await inspectSharkcraft({ cwd });
65
+ const planFile = flagString(args, 'plan');
66
+ const bundleId = flagString(args, 'bundle');
67
+ const files = flagList(args, 'files');
68
+ const all = [...files];
69
+ if (planFile) {
70
+ const path = nodePath.isAbsolute(planFile) ? planFile : nodePath.join(cwd, planFile);
71
+ if (existsSync(path)) {
72
+ try {
73
+ const parsed = JSON.parse(readFileSync(path, 'utf8'));
74
+ const changes = parsed.changes ?? parsed.plan?.changes ?? [];
75
+ for (const c of changes)
76
+ if (c.relativePath)
77
+ all.push(c.relativePath);
78
+ }
79
+ catch {
80
+ /* ignore */
81
+ }
82
+ }
83
+ }
84
+ if (bundleId) {
85
+ const b = readFeatureBundle(cwd, bundleId);
86
+ if (b) {
87
+ for (const f of b.affectedFiles)
88
+ all.push(f);
89
+ for (const p of b.plans)
90
+ for (const t of p.expectedTargets)
91
+ all.push(t);
92
+ }
93
+ }
94
+ const cfg = inspection.config?.ownershipFiles;
95
+ const { rules } = await loadOwnershipRules(cwd, cfg);
96
+ const impact = impactFor([...new Set(all)], rules);
97
+ if (flagBool(args, 'json')) {
98
+ process.stdout.write(asJson(impact) + '\n');
99
+ return 0;
100
+ }
101
+ process.stdout.write(header(`Ownership impact (${impact.files.length} files)`));
102
+ process.stdout.write(`owners: ${impact.owners.join(', ') || '(none)'}\n`);
103
+ process.stdout.write(`reviewers: ${impact.reviewers.join(', ') || '(none)'}\n`);
104
+ if (impact.requiredReviewFiles.length > 0) {
105
+ process.stdout.write(`requiredReview files:\n`);
106
+ for (const f of impact.requiredReviewFiles)
107
+ process.stdout.write(` - ${f}\n`);
108
+ }
109
+ // Silence unused-var lint for readOwnershipFiles
110
+ void readOwnershipFiles;
111
+ return 0;
112
+ },
113
+ };
@@ -0,0 +1,5 @@
1
+ import { type ICommandHandler } from '../command-registry.js';
2
+ export declare const ownershipListCommand: ICommandHandler;
3
+ export declare const ownershipForCommand: ICommandHandler;
4
+ export declare const ownershipAffectedCommand: ICommandHandler;
5
+ //# sourceMappingURL=ownership.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ownership.command.d.ts","sourceRoot":"","sources":["../../src/commands/ownership.command.ts"],"names":[],"mappings":"AAQA,OAAO,EAKL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAehC,eAAO,MAAM,oBAAoB,EAAE,eAyBlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,eA2BjC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,eA4CtC,CAAC"}
@@ -0,0 +1,117 @@
1
+ import { getChangedFiles, impactFor, inspectSharkcraft, loadOwnershipRules, matchFile, readFeatureBundle, } from '@shrkcrft/inspector';
2
+ import { flagBool, flagString, flagList, resolveCwd, } from "../command-registry.js";
3
+ import { asJson, header } from "../output/format-output.js";
4
+ const DEFAULT_OWNERSHIP_FILES = [
5
+ 'CODEOWNERS',
6
+ '.github/CODEOWNERS',
7
+ 'docs/CODEOWNERS',
8
+ 'sharkcraft/ownership.ts',
9
+ ];
10
+ function configuredFiles(args) {
11
+ const list = flagList(args, 'files');
12
+ return list.length > 0 ? list : undefined;
13
+ }
14
+ export const ownershipListCommand = {
15
+ name: 'list',
16
+ description: 'List ownership rules from CODEOWNERS / sharkcraft/ownership.ts.',
17
+ usage: 'shrk ownership list [--json] [--files a,b]',
18
+ async run(args) {
19
+ const cwd = resolveCwd(args);
20
+ const inspection = await inspectSharkcraft({ cwd });
21
+ const cfg = inspection.config?.ownershipFiles;
22
+ const fromArgs = configuredFiles(args);
23
+ const files = fromArgs ?? cfg ?? DEFAULT_OWNERSHIP_FILES;
24
+ const r = await loadOwnershipRules(cwd, files);
25
+ if (flagBool(args, 'json')) {
26
+ process.stdout.write(asJson(r) + '\n');
27
+ return 0;
28
+ }
29
+ process.stdout.write(header(`Ownership rules (${r.rules.length})`));
30
+ for (const s of r.sources)
31
+ process.stdout.write(` source: ${s}\n`);
32
+ for (const w of r.warnings)
33
+ process.stdout.write(` ! ${w}\n`);
34
+ for (const rule of r.rules) {
35
+ process.stdout.write(` ${rule.id.padEnd(36)} paths=${rule.paths.join(',')} owners=${rule.owners.join(',')}\n`);
36
+ }
37
+ return 0;
38
+ },
39
+ };
40
+ export const ownershipForCommand = {
41
+ name: 'for',
42
+ description: 'Show ownership match for a single file.',
43
+ usage: 'shrk ownership for <file> [--json]',
44
+ async run(args) {
45
+ const file = args.positional[0];
46
+ if (!file) {
47
+ process.stderr.write('Usage: shrk ownership for <file>\n');
48
+ return 2;
49
+ }
50
+ const cwd = resolveCwd(args);
51
+ const inspection = await inspectSharkcraft({ cwd });
52
+ const cfg = inspection.config?.ownershipFiles;
53
+ const fromArgs = configuredFiles(args);
54
+ const files = fromArgs ?? cfg ?? DEFAULT_OWNERSHIP_FILES;
55
+ const { rules } = await loadOwnershipRules(cwd, files);
56
+ const m = matchFile(file, rules);
57
+ if (flagBool(args, 'json')) {
58
+ process.stdout.write(asJson(m) + '\n');
59
+ return 0;
60
+ }
61
+ process.stdout.write(`file: ${m.file}\n`);
62
+ process.stdout.write(`owners: ${m.owners.join(', ') || '(none)'}\n`);
63
+ process.stdout.write(`reviewers: ${m.reviewers.join(', ') || '(none)'}\n`);
64
+ process.stdout.write(`requiredReview: ${m.requiredReview}\n`);
65
+ return 0;
66
+ },
67
+ };
68
+ export const ownershipAffectedCommand = {
69
+ name: 'affected',
70
+ description: 'Show owners affected by --since <ref>, --bundle <id>, or --files a,b.',
71
+ usage: 'shrk ownership affected [--since <ref>] [--bundle <id>] [--files a,b] [--staged] [--json]',
72
+ async run(args) {
73
+ const cwd = resolveCwd(args);
74
+ const inspection = await inspectSharkcraft({ cwd });
75
+ const since = flagString(args, 'since');
76
+ const bundleId = flagString(args, 'bundle');
77
+ const explicit = flagList(args, 'files');
78
+ const all = [...explicit];
79
+ if (since) {
80
+ const opts = { since };
81
+ if (flagBool(args, 'staged'))
82
+ opts.staged = true;
83
+ all.push(...getChangedFiles(cwd, opts));
84
+ }
85
+ else if (flagBool(args, 'staged')) {
86
+ all.push(...getChangedFiles(cwd, { staged: true }));
87
+ }
88
+ if (bundleId) {
89
+ const b = readFeatureBundle(cwd, bundleId);
90
+ if (b) {
91
+ for (const f of b.affectedFiles)
92
+ all.push(f);
93
+ for (const p of b.plans)
94
+ for (const t of p.expectedTargets)
95
+ all.push(t);
96
+ }
97
+ }
98
+ const cfg = inspection.config?.ownershipFiles;
99
+ const fromArgs = configuredFiles(args);
100
+ const files = fromArgs ?? cfg ?? DEFAULT_OWNERSHIP_FILES;
101
+ const { rules } = await loadOwnershipRules(cwd, files);
102
+ const impact = impactFor([...new Set(all)], rules);
103
+ if (flagBool(args, 'json')) {
104
+ process.stdout.write(asJson(impact) + '\n');
105
+ return 0;
106
+ }
107
+ process.stdout.write(header(`Ownership affected (${impact.files.length} files)`));
108
+ process.stdout.write(`owners: ${impact.owners.join(', ') || '(none)'}\n`);
109
+ process.stdout.write(`reviewers: ${impact.reviewers.join(', ') || '(none)'}\n`);
110
+ if (impact.requiredReviewFiles.length > 0) {
111
+ process.stdout.write(`requiredReview files:\n`);
112
+ for (const f of impact.requiredReviewFiles)
113
+ process.stdout.write(` - ${f}\n`);
114
+ }
115
+ return 0;
116
+ },
117
+ };
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Pack asset authoring + pending CLI surface.
3
+ *
4
+ * - `shrk pack author status`
5
+ * - `shrk pack author preview --kind <kind> --id <id>`
6
+ * - `shrk pack author pending` (alias: `shrk packs pending`)
7
+ * - `shrk pack author validate`
8
+ *
9
+ * Knowledge supports a full preview; rule and template forward to the
10
+ * dedicated scaffolders; the remaining kinds return an honest deferral.
11
+ */
12
+ import { type ICommandHandler } from '../command-registry.js';
13
+ export declare const packAuthorStatusCommand: ICommandHandler;
14
+ export declare const packAuthorPreviewCommand: ICommandHandler;
15
+ export declare const packAuthorPendingCommand: ICommandHandler;
16
+ export declare const packAuthorValidateCommand: ICommandHandler;
17
+ /**
18
+ * Group dispatcher for `shrk pack author <verb>` — the registry only
19
+ * supports 2-level commands (group + sub), so we expose `pack author` as
20
+ * a top-level group whose sub is the verb. The wiring lives in main.ts:
21
+ * registerSubcommand('pack-author', packAuthorStatusCommand);
22
+ * and we alias group: `aliasGroup('pack', 'pack-author')` does not work
23
+ * because `pack` is already aliased to `packs`. We therefore expose:
24
+ * `shrk packs pending` → packAuthorPendingCommand (registered under packs)
25
+ * `shrk pack-author <verb>` → registered as the canonical group
26
+ * `shrk pack author <verb>` → also a top-level command that internally
27
+ * dispatches based on positional[0].
28
+ */
29
+ export declare const packAuthorTopCommand: ICommandHandler;
30
+ //# sourceMappingURL=pack-author.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-author.command.d.ts","sourceRoot":"","sources":["../../src/commands/pack-author.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAaH,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAuChC,eAAO,MAAM,uBAAuB,EAAE,eA2BrC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,eAoFtC,CAAC;AAKF,eAAO,MAAM,wBAAwB,EAAE,eAgCtC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,eAgBvC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,EAAE,eA2BlC,CAAC"}
@@ -0,0 +1,242 @@
1
+ /**
2
+ * Pack asset authoring + pending CLI surface.
3
+ *
4
+ * - `shrk pack author status`
5
+ * - `shrk pack author preview --kind <kind> --id <id>`
6
+ * - `shrk pack author pending` (alias: `shrk packs pending`)
7
+ * - `shrk pack author validate`
8
+ *
9
+ * Knowledge supports a full preview; rule and template forward to the
10
+ * dedicated scaffolders; the remaining kinds return an honest deferral.
11
+ */
12
+ import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
13
+ import * as nodePath from 'node:path';
14
+ import { buildPackAuthorPreview, buildPackAuthorStatus, buildPackAuthorValidatePlan, buildPackPendingReport, inspectSharkcraft, PackAuthorKind, renderPackPendingMarkdown, } from '@shrkcrft/inspector';
15
+ import { flagBool, flagString, resolveCwd, } from "../command-registry.js";
16
+ import { asJson, header } from "../output/format-output.js";
17
+ import { rulesScaffoldCommand } from "./rules.command.js";
18
+ import { templatesScaffoldCommand } from "./templates.command.js";
19
+ function parseAuthorKind(value) {
20
+ switch ((value ?? '').toLowerCase()) {
21
+ case 'knowledge':
22
+ return PackAuthorKind.Knowledge;
23
+ case 'search-tuning':
24
+ return PackAuthorKind.SearchTuning;
25
+ case 'feedback-rule':
26
+ return PackAuthorKind.FeedbackRule;
27
+ case 'agent-test':
28
+ return PackAuthorKind.AgentTest;
29
+ case 'convention':
30
+ return PackAuthorKind.Convention;
31
+ case 'task-routing-hint':
32
+ return PackAuthorKind.TaskRoutingHint;
33
+ case 'registration-hint':
34
+ return PackAuthorKind.RegistrationHint;
35
+ case 'scaffold-pattern':
36
+ return PackAuthorKind.ScaffoldPattern;
37
+ default:
38
+ return null;
39
+ }
40
+ }
41
+ function isDelegatedKind(value) {
42
+ return value === 'rule' || value === 'template';
43
+ }
44
+ export const packAuthorStatusCommand = {
45
+ name: 'status',
46
+ description: 'Pack author status — kind-by-kind inventory of contributions, pending drafts, and signature state.',
47
+ usage: 'shrk pack author status [--json]',
48
+ async run(args) {
49
+ const cwd = resolveCwd(args);
50
+ const inspection = await inspectSharkcraft({ cwd });
51
+ const status = buildPackAuthorStatus(inspection);
52
+ if (flagBool(args, 'json')) {
53
+ process.stdout.write(asJson(status) + '\n');
54
+ return 0;
55
+ }
56
+ process.stdout.write(header('Pack author status'));
57
+ process.stdout.write(` generated: ${status.generatedAt}\n`);
58
+ process.stdout.write(` provenance ledger: ${status.provenanceExists ? 'present' : 'missing'}\n`);
59
+ process.stdout.write(` pack secret: ${status.secretAvailable ? 'available' : 'missing'}\n`);
60
+ process.stdout.write(` pending drafts: ${status.pendingDrafts}\n`);
61
+ for (const f of status.pendingDraftFiles)
62
+ process.stdout.write(` - ${f}\n`);
63
+ process.stdout.write(' contribution counts:\n');
64
+ for (const [k, n] of Object.entries(status.contributionCounts)) {
65
+ const support = status.authoringSupport[k] ?? 'deferred';
66
+ process.stdout.write(` ${k.padEnd(22)} ${String(n).padStart(3)} (authoring: ${support})\n`);
67
+ }
68
+ process.stdout.write(' next commands:\n');
69
+ for (const c of status.nextCommands)
70
+ process.stdout.write(` $ ${c}\n`);
71
+ return 0;
72
+ },
73
+ };
74
+ export const packAuthorPreviewCommand = {
75
+ name: 'preview',
76
+ description: 'Pack author preview. Rule and template kinds forward to `rules scaffold` / `templates scaffold` (no deferred stub). Knowledge uses the dedicated preview path.',
77
+ usage: 'shrk pack author preview --kind <kind> --id <id> [--title <t>] [--reason <text>] [--write-preview] [--json]',
78
+ async run(args) {
79
+ const rawKind = (flagString(args, 'kind') ?? '').toLowerCase();
80
+ const id = flagString(args, 'id') ?? args.positional[0];
81
+ if (!id) {
82
+ process.stderr.write('Missing --id <id>.\n');
83
+ return 2;
84
+ }
85
+ // Rule kind: forward to `shrk rules scaffold`.
86
+ if (rawKind === 'rule') {
87
+ const forwarded = {
88
+ positional: [],
89
+ flags: new Map(args.flags),
90
+ multiFlags: new Map(args.multiFlags),
91
+ ...(args.globalCwd ? { globalCwd: args.globalCwd } : {}),
92
+ };
93
+ forwarded.flags.set('id', id);
94
+ // `rules scaffold` accepts the same `--title`/`--reason`/`--write-preview` flags.
95
+ const exit = await rulesScaffoldCommand.run(forwarded);
96
+ if (!flagBool(args, 'json')) {
97
+ process.stdout.write('\nNext (post-scaffold):\n');
98
+ process.stdout.write(` $ shrk apply --asset-preview .sharkcraft/fixes/rule-add-${id.replace(/[^a-z0-9.-]/gi, '-').toLowerCase()}.draft.ts --target sharkcraft/rules.ts\n`);
99
+ process.stdout.write(' $ shrk packs signature-status\n');
100
+ process.stdout.write(' $ shrk provenance show ' + id + '\n');
101
+ }
102
+ return exit;
103
+ }
104
+ // Template kind: forward to `shrk templates scaffold`.
105
+ if (rawKind === 'template') {
106
+ const forwarded = {
107
+ positional: [],
108
+ flags: new Map(args.flags),
109
+ multiFlags: new Map(args.multiFlags),
110
+ ...(args.globalCwd ? { globalCwd: args.globalCwd } : {}),
111
+ };
112
+ forwarded.flags.set('id', id);
113
+ const exit = await templatesScaffoldCommand.run(forwarded);
114
+ if (!flagBool(args, 'json')) {
115
+ const slug = id.replace(/[^a-z0-9.-]/gi, '-').toLowerCase();
116
+ process.stdout.write('\nNext (post-scaffold):\n');
117
+ process.stdout.write(` $ shrk apply --asset-preview .sharkcraft/authoring/templates/${slug}.draft.ts --target sharkcraft/templates.ts\n`);
118
+ process.stdout.write(' $ shrk packs signature-status\n');
119
+ process.stdout.write(' $ shrk provenance show ' + id + '\n');
120
+ }
121
+ return exit;
122
+ }
123
+ // Knowledge + remaining kinds keep the existing dispatcher.
124
+ const kind = parseAuthorKind(rawKind);
125
+ if (!kind) {
126
+ process.stderr.write('Missing or unknown --kind. Use one of: knowledge, rule, template, search-tuning, feedback-rule, agent-test, convention, task-routing-hint, registration-hint, scaffold-pattern.\n');
127
+ return 2;
128
+ }
129
+ const preview = buildPackAuthorPreview({
130
+ kind,
131
+ assetId: id,
132
+ ...(flagString(args, 'reason') ? { reason: flagString(args, 'reason') ?? undefined } : {}),
133
+ });
134
+ if (flagBool(args, 'json')) {
135
+ process.stdout.write(asJson(preview) + '\n');
136
+ return 0;
137
+ }
138
+ process.stdout.write(header(`Pack author preview: ${kind} ${id}`));
139
+ process.stdout.write(` implemented: ${preview.implemented}\n`);
140
+ if (!preview.implemented && preview.deferralNote) {
141
+ process.stdout.write(` note: ${preview.deferralNote}\n`);
142
+ }
143
+ process.stdout.write('\n next commands:\n');
144
+ for (const c of preview.nextCommands)
145
+ process.stdout.write(` $ ${c}\n`);
146
+ return 0;
147
+ },
148
+ };
149
+ // Silence the unused import when isDelegatedKind is the only public use.
150
+ void isDelegatedKind;
151
+ export const packAuthorPendingCommand = {
152
+ name: 'pending',
153
+ description: 'Pack pending state — modified files, pending drafts, stale signatures, pending provenance, missing-secret guidance.',
154
+ usage: 'shrk pack author pending [--write-todo] [--json]',
155
+ async run(args) {
156
+ const cwd = resolveCwd(args);
157
+ const inspection = await inspectSharkcraft({ cwd });
158
+ const report = buildPackPendingReport(inspection);
159
+ if (flagBool(args, 'json')) {
160
+ process.stdout.write(asJson(report) + '\n');
161
+ }
162
+ else {
163
+ process.stdout.write(renderPackPendingMarkdown(report));
164
+ }
165
+ if (flagBool(args, 'write-todo') && report.secretMissingHint) {
166
+ const reportsDir = nodePath.join(cwd, '.sharkcraft', 'reports');
167
+ if (!existsSync(reportsDir))
168
+ mkdirSync(reportsDir, { recursive: true });
169
+ const todoPath = nodePath.join(reportsDir, 'pack-signing-todo.md');
170
+ const lines = [];
171
+ lines.push('# Pack signing TODO');
172
+ lines.push('');
173
+ lines.push(report.secretMissingHint);
174
+ lines.push('');
175
+ lines.push('## Next commands');
176
+ lines.push('');
177
+ for (const c of report.nextCommands)
178
+ lines.push(`- \`${c}\``);
179
+ lines.push('');
180
+ writeFileSync(todoPath, lines.join('\n'), 'utf8');
181
+ process.stdout.write(`\nWrote signing TODO at ${nodePath.relative(cwd, todoPath)}\n`);
182
+ }
183
+ return 0;
184
+ },
185
+ };
186
+ export const packAuthorValidateCommand = {
187
+ name: 'validate',
188
+ description: 'Recommended validation commands after authoring. Read-only — does not execute commands.',
189
+ usage: 'shrk pack author validate [--json]',
190
+ async run(args) {
191
+ const plan = buildPackAuthorValidatePlan();
192
+ if (flagBool(args, 'json')) {
193
+ process.stdout.write(asJson(plan) + '\n');
194
+ return 0;
195
+ }
196
+ process.stdout.write(header('Pack author validate plan'));
197
+ process.stdout.write(` ok: ${plan.ok}\n`);
198
+ process.stdout.write(' recommended commands:\n');
199
+ for (const c of plan.recommendedCommands)
200
+ process.stdout.write(` $ ${c}\n`);
201
+ return 0;
202
+ },
203
+ };
204
+ /**
205
+ * Group dispatcher for `shrk pack author <verb>` — the registry only
206
+ * supports 2-level commands (group + sub), so we expose `pack author` as
207
+ * a top-level group whose sub is the verb. The wiring lives in main.ts:
208
+ * registerSubcommand('pack-author', packAuthorStatusCommand);
209
+ * and we alias group: `aliasGroup('pack', 'pack-author')` does not work
210
+ * because `pack` is already aliased to `packs`. We therefore expose:
211
+ * `shrk packs pending` → packAuthorPendingCommand (registered under packs)
212
+ * `shrk pack-author <verb>` → registered as the canonical group
213
+ * `shrk pack author <verb>` → also a top-level command that internally
214
+ * dispatches based on positional[0].
215
+ */
216
+ export const packAuthorTopCommand = {
217
+ name: 'pack',
218
+ description: 'Alias: dispatches `pack author <verb>` to the pack-author commands.',
219
+ usage: 'shrk pack author <status|preview|pending|validate> [...]',
220
+ async run(args) {
221
+ if (args.positional[0] !== 'author') {
222
+ process.stderr.write('Usage: shrk pack author <status|preview|pending|validate>\n');
223
+ return 2;
224
+ }
225
+ const verb = args.positional[1];
226
+ args.positional = args.positional.slice(2);
227
+ switch (verb) {
228
+ case 'status':
229
+ return packAuthorStatusCommand.run(args);
230
+ case 'preview':
231
+ return packAuthorPreviewCommand.run(args);
232
+ case 'pending':
233
+ return packAuthorPendingCommand.run(args);
234
+ case 'validate':
235
+ return packAuthorValidateCommand.run(args);
236
+ default:
237
+ process.stderr.write(`Unknown pack author verb: ${verb ?? '(missing)'}\n`);
238
+ process.stderr.write('Valid verbs: status, preview, pending, validate.\n');
239
+ return 2;
240
+ }
241
+ },
242
+ };
@@ -0,0 +1,27 @@
1
+ import { type ICommandHandler } from '../command-registry.js';
2
+ export type PackKind = 'generic' | 'framework' | 'architecture' | 'enterprise' | 'platform-adopter';
3
+ interface IScaffoldFile {
4
+ /** Path relative to the new pack root. */
5
+ relativePath: string;
6
+ body: string;
7
+ }
8
+ export interface IScaffoldPackInput {
9
+ name: string;
10
+ outDir: string;
11
+ scope?: string;
12
+ kind: PackKind;
13
+ preset?: string;
14
+ withExamples?: boolean;
15
+ force?: boolean;
16
+ }
17
+ export interface IScaffoldPackResult {
18
+ files: IScaffoldFile[];
19
+ packageJson: Record<string, unknown>;
20
+ packRoot: string;
21
+ }
22
+ /** Pure: compute the file set to write. No IO. */
23
+ export declare function planPackScaffold(input: IScaffoldPackInput): IScaffoldPackResult;
24
+ export declare const packsNewCommand: ICommandHandler;
25
+ export declare const packsTestCommand: ICommandHandler;
26
+ export {};
27
+ //# sourceMappingURL=packs-new.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packs-new.d.ts","sourceRoot":"","sources":["../../src/commands/packs-new.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAGhC,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,cAAc,GAAG,YAAY,GAAG,kBAAkB,CAAC;AAUpG,UAAU,aAAa;IACrB,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,kDAAkD;AAClD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CA+G/E;AA4TD,eAAO,MAAM,eAAe,EAAE,eAoG7B,CAAC;AAUF,eAAO,MAAM,gBAAgB,EAAE,eAqI9B,CAAC"}