@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,10 @@
1
+ /**
2
+ * Long-form `--about` rendering. Pulls from
3
+ * `docs/overview.md` + `docs/philosophy.md` content, baked at build
4
+ * time so it works offline.
5
+ *
6
+ * Keep this short — one screen. The authoritative docs live under
7
+ * `docs/`; this is the in-binary summary.
8
+ */
9
+ export declare function renderAbout(): string;
10
+ //# sourceMappingURL=about.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"about.d.ts","sourceRoot":"","sources":["../../src/surface/about.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,WAAW,IAAI,MAAM,CA2CpC"}
@@ -0,0 +1,53 @@
1
+ import { SHARKCRAFT_VERSION } from '@shrkcrft/shared';
2
+ /**
3
+ * Long-form `--about` rendering. Pulls from
4
+ * `docs/overview.md` + `docs/philosophy.md` content, baked at build
5
+ * time so it works offline.
6
+ *
7
+ * Keep this short — one screen. The authoritative docs live under
8
+ * `docs/`; this is the in-binary summary.
9
+ */
10
+ export function renderAbout() {
11
+ return `SharkCraft v${SHARKCRAFT_VERSION}
12
+
13
+ What it is
14
+ A deterministic, local-first toolkit that gives AI coding agents
15
+ durable project context. Ships as a CLI (\`shrk\`) — the only write
16
+ path — plus a read-only MCP server, plus a library of structured
17
+ assets (knowledge, rules, paths, templates, pipelines, presets,
18
+ boundaries).
19
+
20
+ What it is NOT
21
+ There is no AI inside the engine. Every output is a pure function
22
+ of the workspace + the asset registries. The agent uses the engine;
23
+ the engine never calls a model.
24
+
25
+ The safety contract
26
+ - All write paths are preview-first. \`--apply\` is opt-in, scoped,
27
+ and idempotent.
28
+ - MCP is read-only. Every MCP tool returns data + a next-command
29
+ hint; the human runs the CLI for any write.
30
+ - Apply requires \`--verify-signature\` for signed plans, refuses
31
+ on divergence unless \`--allow-divergent\`.
32
+
33
+ Calibration to project size
34
+ Surface tiers (\`shrk surface list\`):
35
+ - core always on
36
+ - extended visible in --help, callable
37
+ - experimental hidden until enabled (\`shrk surface enable\`)
38
+ Project shape (\`shrk doctor\`) drives the default surface for a
39
+ fresh repo.
40
+
41
+ Where to read more
42
+ docs/overview.md what SharkCraft is and isn't
43
+ docs/philosophy.md the non-negotiable design rules
44
+ docs/surface-tiers.md the tier model
45
+ docs/safety-model.md plan / review / apply contract
46
+
47
+ Quick start
48
+ shrk doctor health check
49
+ shrk task "<what>" full task packet (rules + templates + commands)
50
+ shrk recommend "<what>" what command should I reach for?
51
+ shrk surface list what is available in this repo
52
+ `;
53
+ }
@@ -0,0 +1,34 @@
1
+ import { type ISharkcraftInspection } from '@shrkcrft/inspector';
2
+ import { type ISurfaceProfile } from './profiles.js';
3
+ import type { ITierResolverContext } from './tier.js';
4
+ export interface LoadSurfaceContextOptions {
5
+ cwd: string;
6
+ /** Optional pre-loaded inspection to avoid the double-load cost. */
7
+ inspection?: ISharkcraftInspection;
8
+ }
9
+ export interface ILoadedSurfaceContext {
10
+ context: ITierResolverContext;
11
+ inspection: ISharkcraftInspection;
12
+ /**
13
+ * Profiles in effect for this resolution: built-in
14
+ * profiles known to the resolver + any pack-contributed profiles.
15
+ * Sorted: builtin first, then pack contributions.
16
+ */
17
+ availableProfiles: readonly ISurfaceProfile[];
18
+ /** The resolved profile (after config.surface.profile lookup), if any. */
19
+ activeProfile?: ISurfaceProfile;
20
+ }
21
+ /**
22
+ * Build the {@link ITierResolverContext} from a workspace.
23
+ *
24
+ * Steps:
25
+ * 1. Load (or reuse) the inspector for `cwd`.
26
+ * 2. Extract spine commands from the pipeline registry.
27
+ * 3. Collect pack-contributed commands (currently empty in the
28
+ * engine repo — `ICommandPlugin` exists in the plugin-api but no
29
+ * pack contributes commands today; future packs will populate
30
+ * the inspection's pack discovery).
31
+ * 4. Read the user's `surface{}` config block.
32
+ */
33
+ export declare function loadSurfaceContext(options: LoadSurfaceContextOptions): Promise<ILoadedSurfaceContext>;
34
+ //# sourceMappingURL=load-surface-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-surface-context.d.ts","sourceRoot":"","sources":["../../src/surface/load-surface-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGpF,OAAO,EAAgC,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEtD,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,UAAU,EAAE,qBAAqB,CAAC;IAClC;;;;OAIG;IACH,iBAAiB,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,0EAA0E;IAC1E,aAAa,CAAC,EAAE,eAAe,CAAC;CACjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,qBAAqB,CAAC,CAmChC"}
@@ -0,0 +1,100 @@
1
+ import { inspectSharkcraft } from '@shrkcrft/inspector';
2
+ import { extractSpineCommands } from "./spine-extractor.js";
3
+ import { BUILTIN_PROFILES, getProfile } from "./profiles.js";
4
+ /**
5
+ * Build the {@link ITierResolverContext} from a workspace.
6
+ *
7
+ * Steps:
8
+ * 1. Load (or reuse) the inspector for `cwd`.
9
+ * 2. Extract spine commands from the pipeline registry.
10
+ * 3. Collect pack-contributed commands (currently empty in the
11
+ * engine repo — `ICommandPlugin` exists in the plugin-api but no
12
+ * pack contributes commands today; future packs will populate
13
+ * the inspection's pack discovery).
14
+ * 4. Read the user's `surface{}` config block.
15
+ */
16
+ export async function loadSurfaceContext(options) {
17
+ const inspection = options.inspection ?? (await inspectSharkcraft({ cwd: options.cwd }));
18
+ const spineCommands = extractSpineCommands(inspection.pipelines);
19
+ const packContributions = collectPackContributions(inspection);
20
+ const packProfiles = collectPackProfiles(inspection);
21
+ const rawConfig = inspection.config?.surface ?? undefined;
22
+ // Resolve profile (built-in or pack-contributed).
23
+ const profileId = rawConfig?.profile;
24
+ const activeProfile = profileId
25
+ ? getProfile(profileId, packProfiles)
26
+ : undefined;
27
+ // Compose profile.hidden + config.hidden / profile.enabled + config.enabled.
28
+ // Config wins on conflicts (explicit user choice over profile default).
29
+ const mergedHidden = mergeUnique(activeProfile?.hidden, rawConfig?.hidden);
30
+ const mergedEnabled = mergeUnique(activeProfile?.enabled, rawConfig?.enabled);
31
+ const surfaceConfig = rawConfig || activeProfile
32
+ ? {
33
+ ...(profileId ? { profile: profileId } : {}),
34
+ ...(mergedHidden.length > 0 ? { hidden: mergedHidden } : {}),
35
+ ...(mergedEnabled.length > 0 ? { enabled: mergedEnabled } : {}),
36
+ }
37
+ : undefined;
38
+ return {
39
+ inspection,
40
+ context: { spineCommands, packContributions, surfaceConfig },
41
+ availableProfiles: [...BUILTIN_PROFILES, ...packProfiles],
42
+ ...(activeProfile ? { activeProfile } : {}),
43
+ };
44
+ }
45
+ function mergeUnique(a, b) {
46
+ const set = new Set([...(a ?? []), ...(b ?? [])]);
47
+ return [...set].sort();
48
+ }
49
+ /**
50
+ * Collect pack-contributed surface profiles. Pack
51
+ * manifests can declare `contributions.surfaceProfiles[]`. Today this
52
+ * is a new manifest slot — older packs return zero.
53
+ */
54
+ function collectPackProfiles(inspection) {
55
+ const out = [];
56
+ const packs = inspection.packs?.discoveredPacks ?? [];
57
+ for (const pack of packs) {
58
+ const contributions = (pack.manifest?.contributions ?? {});
59
+ const raw = contributions.surfaceProfiles ?? [];
60
+ for (const r of raw) {
61
+ if (typeof r?.id !== 'string' || r.id.length === 0)
62
+ continue;
63
+ out.push({
64
+ id: r.id,
65
+ description: typeof r.description === 'string' ? r.description : `Pack profile (${pack.packageName})`,
66
+ source: 'pack',
67
+ pack: pack.packageName,
68
+ ...(Array.isArray(r.hidden) ? { hidden: r.hidden.filter((s) => typeof s === 'string') } : {}),
69
+ ...(Array.isArray(r.enabled) ? { enabled: r.enabled.filter((s) => typeof s === 'string') } : {}),
70
+ });
71
+ }
72
+ }
73
+ return out;
74
+ }
75
+ /**
76
+ * Collect pack-contributed CLI command names. Today the pack
77
+ * manifest schema has no `commandFiles[]` contribution slot, so this
78
+ * always returns an empty map in the current engine repo. The
79
+ * future-proofing is intentional: when packs gain command-contribution
80
+ * support, the tier resolver immediately starts marking them
81
+ * `experimental` by default.
82
+ *
83
+ * The lookup walks `IDiscoveredPack.manifest.contributions.commands[]`
84
+ * defensively — the field doesn't exist in the v1 manifest schema, but
85
+ * a future schema bump can add it without changing this code.
86
+ */
87
+ function collectPackContributions(inspection) {
88
+ const map = new Map();
89
+ const packs = inspection.packs?.discoveredPacks ?? [];
90
+ for (const pack of packs) {
91
+ const contributions = (pack.manifest?.contributions ?? {});
92
+ const commands = contributions.commands ?? [];
93
+ for (const cmd of commands) {
94
+ if (typeof cmd?.name === 'string' && cmd.name.length > 0) {
95
+ map.set(cmd.name, pack.packageName);
96
+ }
97
+ }
98
+ }
99
+ return map;
100
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The curated landing rendered when a user runs bare `shrk`
3
+ * (no args). Falls back to four hardcoded suggestions when the
4
+ * inspector / recommender fails (fresh repo without a config).
5
+ */
6
+ export declare function renderNoArgsLanding(cwd: string): Promise<string>;
7
+ //# sourceMappingURL=no-args-landing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-args-landing.d.ts","sourceRoot":"","sources":["../../src/surface/no-args-landing.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA6BtE"}
@@ -0,0 +1,36 @@
1
+ import { SHARKCRAFT_VERSION } from '@shrkcrft/shared';
2
+ import { loadSurfaceContext } from "./load-surface-context.js";
3
+ import { buildSurfaceSummary } from "./surface-summary.js";
4
+ /**
5
+ * The curated landing rendered when a user runs bare `shrk`
6
+ * (no args). Falls back to four hardcoded suggestions when the
7
+ * inspector / recommender fails (fresh repo without a config).
8
+ */
9
+ export async function renderNoArgsLanding(cwd) {
10
+ const lines = [];
11
+ lines.push(`shrk v${SHARKCRAFT_VERSION} — deterministic context for AI coding agents.`);
12
+ lines.push('');
13
+ let totals = '';
14
+ try {
15
+ const { context } = await loadSurfaceContext({ cwd });
16
+ const summary = buildSurfaceSummary(context);
17
+ totals = `Surface: ${summary.totals.core} core + ${summary.totals.extended} extended (${summary.tiers.extended.filter((c) => c.hidden).length} hidden, ${summary.tiers.experimental.filter((c) => c.enabled).length} experimental enabled).`;
18
+ }
19
+ catch {
20
+ totals = 'Surface: (run `shrk doctor` to load the workspace).';
21
+ }
22
+ lines.push(totals);
23
+ lines.push('');
24
+ lines.push('Most useful next:');
25
+ lines.push(' shrk doctor health check');
26
+ lines.push(' shrk task "<what>" full packet for a task');
27
+ lines.push(' shrk recommend "<what>" what should I do?');
28
+ lines.push(' shrk surface list what is available in this repo');
29
+ lines.push('');
30
+ lines.push('See:');
31
+ lines.push(' shrk --help every visible command');
32
+ lines.push(' shrk surface explain <cmd> why a command is/is not visible');
33
+ lines.push(' shrk --about what shrk is and is not');
34
+ lines.push('');
35
+ return lines.join('\n');
36
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Structured error returned when a user / agent invokes an
3
+ * experimental command that is not enabled in the current repo's
4
+ * `sharkcraft.config.ts surface.enabled[]`.
5
+ *
6
+ * Exit code distinguishes "command exists but is gated" from
7
+ * "command unknown" (which exits 2 via the did-you-mean path in
8
+ * main.ts).
9
+ */
10
+ export declare const SURFACE_NOT_ENABLED_EXIT_CODE = 78;
11
+ export declare const SURFACE_NOT_ENABLED_SCHEMA = "sharkcraft.surface.not-enabled.v1";
12
+ export interface ISurfaceNotEnabledError {
13
+ schema: typeof SURFACE_NOT_ENABLED_SCHEMA;
14
+ command: string;
15
+ tier: 'experimental';
16
+ reason: string;
17
+ enableCommand: string;
18
+ explainCommand: string;
19
+ }
20
+ export declare function makeSurfaceNotEnabledError(command: string, options?: {
21
+ reason?: string;
22
+ }): ISurfaceNotEnabledError;
23
+ export declare function renderSurfaceNotEnabledText(err: ISurfaceNotEnabledError): string;
24
+ //# sourceMappingURL=not-enabled-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-enabled-error.d.ts","sourceRoot":"","sources":["../../src/surface/not-enabled-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,eAAO,MAAM,0BAA0B,sCAAsC,CAAC;AAE9E,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,OAAO,0BAA0B,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,uBAAuB,CAWzB;AAED,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,uBAAuB,GAC3B,MAAM,CAaR"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Structured error returned when a user / agent invokes an
3
+ * experimental command that is not enabled in the current repo's
4
+ * `sharkcraft.config.ts surface.enabled[]`.
5
+ *
6
+ * Exit code distinguishes "command exists but is gated" from
7
+ * "command unknown" (which exits 2 via the did-you-mean path in
8
+ * main.ts).
9
+ */
10
+ export const SURFACE_NOT_ENABLED_EXIT_CODE = 78;
11
+ export const SURFACE_NOT_ENABLED_SCHEMA = 'sharkcraft.surface.not-enabled.v1';
12
+ export function makeSurfaceNotEnabledError(command, options = {}) {
13
+ return {
14
+ schema: SURFACE_NOT_ENABLED_SCHEMA,
15
+ command,
16
+ tier: 'experimental',
17
+ reason: options.reason ??
18
+ `Command \`${command}\` is an experimental tier — not enabled in this repo.`,
19
+ enableCommand: `shrk surface enable ${command}`,
20
+ explainCommand: `shrk surface explain ${command}`,
21
+ };
22
+ }
23
+ export function renderSurfaceNotEnabledText(err) {
24
+ const lines = [];
25
+ lines.push(`Command \`${err.command}\` exists but is not enabled in this repo.`);
26
+ lines.push('');
27
+ lines.push(`It is tier=${err.tier}. ${err.reason}`);
28
+ lines.push('');
29
+ lines.push('Enable it:');
30
+ lines.push(` $ ${err.enableCommand}`);
31
+ lines.push('');
32
+ lines.push('Or see why it is gated:');
33
+ lines.push(` $ ${err.explainCommand}`);
34
+ lines.push('');
35
+ return lines.join('\n');
36
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Surface profiles.
3
+ *
4
+ * A profile is a named set of `surface.hidden` + `surface.enabled`
5
+ * adjustments. Built-in profiles ship from the engine; packs can
6
+ * contribute additional profiles via the pack manifest (see
7
+ * load-surface-context.ts). The user selects one via
8
+ * `sharkcraft.config.ts surface.profile`.
9
+ *
10
+ * Profiles are PURE DATA — no logic, no AI. Adding a profile is just
11
+ * adding an entry here (or in a pack manifest).
12
+ */
13
+ export interface ISurfaceProfile {
14
+ /** Stable id used by `surface.profile` config + CLI selection. */
15
+ id: string;
16
+ /** One-line description shown in `surface profiles list`. */
17
+ description: string;
18
+ /** Extended commands this profile hides from `--help`. */
19
+ hidden?: readonly string[];
20
+ /**
21
+ * Experimental commands this profile enables. Use sparingly —
22
+ * profiles should compose with packs' default `experimental`
23
+ * classification, not paper over it.
24
+ */
25
+ enabled?: readonly string[];
26
+ /** Where the profile comes from (annotation for `surface explain`). */
27
+ source: 'builtin' | 'pack' | 'local';
28
+ /** When source='pack', the pack name. */
29
+ pack?: string;
30
+ }
31
+ /** Catalog of built-in profiles. */
32
+ export declare const BUILTIN_PROFILES: readonly ISurfaceProfile[];
33
+ /** Build a map of all profiles (builtin + pack-contributed). */
34
+ export declare function indexProfiles(packProfiles?: readonly ISurfaceProfile[]): Map<string, ISurfaceProfile>;
35
+ /** Look up a profile by id; returns undefined if unknown. */
36
+ export declare function getProfile(id: string, packProfiles?: readonly ISurfaceProfile[]): ISurfaceProfile | undefined;
37
+ //# sourceMappingURL=profiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/surface/profiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,uEAAuE;IACvE,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAgID,oCAAoC;AACpC,eAAO,MAAM,gBAAgB,EAAE,SAAS,eAAe,EAOrD,CAAC;AAEH,gEAAgE;AAChE,wBAAgB,aAAa,CAC3B,YAAY,GAAE,SAAS,eAAe,EAAO,GAC5C,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAQ9B;AAED,6DAA6D;AAC7D,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,YAAY,GAAE,SAAS,eAAe,EAAO,GAC5C,eAAe,GAAG,SAAS,CAE7B"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Surface profiles.
3
+ *
4
+ * A profile is a named set of `surface.hidden` + `surface.enabled`
5
+ * adjustments. Built-in profiles ship from the engine; packs can
6
+ * contribute additional profiles via the pack manifest (see
7
+ * load-surface-context.ts). The user selects one via
8
+ * `sharkcraft.config.ts surface.profile`.
9
+ *
10
+ * Profiles are PURE DATA — no logic, no AI. Adding a profile is just
11
+ * adding an entry here (or in a pack manifest).
12
+ */
13
+ /**
14
+ * `developer` profile. Default for monorepo / app-with-libs shapes.
15
+ * Hides nothing — pack authors / power users see the full extended
16
+ * surface.
17
+ */
18
+ const DEVELOPER_PROFILE = {
19
+ id: 'developer',
20
+ description: 'Full visible surface for power users / pack authors / engine contributors. Hides nothing.',
21
+ source: 'builtin',
22
+ };
23
+ /**
24
+ * `small-app` profile. Default for single-app shape (Angular, Next,
25
+ * etc.). Hides monorepo-only verbs from --help; the commands remain
26
+ * CALLABLE (use `surface unhide` to restore).
27
+ */
28
+ const SMALL_APP_PROFILE = {
29
+ id: 'small-app',
30
+ description: 'Single-app / small-team default. Hides monorepo + pack-authoring + bundle verbs from --help.',
31
+ source: 'builtin',
32
+ hidden: [
33
+ // Bundle / replay machinery — not used in single-app workflows.
34
+ 'bundle',
35
+ 'bundle apply-assist',
36
+ 'bundle apply-assist --resume',
37
+ 'bundle create',
38
+ 'bundle diff',
39
+ 'bundle graph',
40
+ 'bundle list',
41
+ 'bundle plan',
42
+ 'bundle replay',
43
+ 'bundle show',
44
+ 'bundle validate',
45
+ // Reposet / multi-repo orchestration — irrelevant for a single app.
46
+ 'reposet',
47
+ 'reposet init',
48
+ 'reposet doctor',
49
+ 'reposet list',
50
+ 'reposet map',
51
+ // Pack authoring — single apps rarely author packs.
52
+ 'pack',
53
+ 'pack author preview',
54
+ 'pack author pending',
55
+ 'pack author status',
56
+ 'pack author validate',
57
+ 'packs new',
58
+ 'packs sign',
59
+ 'packs verify',
60
+ 'packs release-check',
61
+ 'packs compat',
62
+ 'packs dev-status',
63
+ 'packs watch',
64
+ ],
65
+ };
66
+ /**
67
+ * `monorepo` profile. Default for monorepo / app-with-libs shapes.
68
+ * Same as developer; explicit so a user can opt in.
69
+ */
70
+ const MONOREPO_PROFILE = {
71
+ id: 'monorepo',
72
+ description: 'Monorepo default. Full visible surface, including bundle / reposet / pack-authoring.',
73
+ source: 'builtin',
74
+ };
75
+ /**
76
+ * `pack-author` profile. Hides app-only verbs; keeps pack authoring
77
+ * + signing + release-check prominent.
78
+ */
79
+ const PACK_AUTHOR_PROFILE = {
80
+ id: 'pack-author',
81
+ description: 'Pack author default. Hides app / runtime verbs; surfaces pack-* prominently.',
82
+ source: 'builtin',
83
+ hidden: [
84
+ 'dev',
85
+ 'dev start',
86
+ 'dev status',
87
+ 'dev report',
88
+ 'review',
89
+ 'review render-comment',
90
+ ],
91
+ };
92
+ /**
93
+ * `ci` profile. Hides interactive / app verbs; keeps gates +
94
+ * read-only checks visible.
95
+ */
96
+ const CI_PROFILE = {
97
+ id: 'ci',
98
+ description: 'CI default. Hides interactive / write-source verbs; keeps gates + read-only checks visible.',
99
+ source: 'builtin',
100
+ hidden: [
101
+ 'dev',
102
+ 'dev start',
103
+ 'dev status',
104
+ 'dev report',
105
+ 'session',
106
+ 'ask',
107
+ 'orchestrate',
108
+ ],
109
+ };
110
+ /**
111
+ * `agent` profile. Optimized for MCP / agent use. Hides interactive
112
+ * verbs; keeps JSON / read-only verbs visible.
113
+ */
114
+ const AGENT_PROFILE = {
115
+ id: 'agent',
116
+ description: 'Agent / MCP-friendly default. Hides interactive verbs; favors JSON-pipe surfaces.',
117
+ source: 'builtin',
118
+ hidden: [
119
+ 'dev',
120
+ 'dev start',
121
+ 'dev status',
122
+ 'dev report',
123
+ 'orchestrate',
124
+ 'ask',
125
+ ],
126
+ };
127
+ /** Catalog of built-in profiles. */
128
+ export const BUILTIN_PROFILES = Object.freeze([
129
+ DEVELOPER_PROFILE,
130
+ SMALL_APP_PROFILE,
131
+ MONOREPO_PROFILE,
132
+ PACK_AUTHOR_PROFILE,
133
+ CI_PROFILE,
134
+ AGENT_PROFILE,
135
+ ]);
136
+ /** Build a map of all profiles (builtin + pack-contributed). */
137
+ export function indexProfiles(packProfiles = []) {
138
+ const map = new Map();
139
+ for (const p of BUILTIN_PROFILES)
140
+ map.set(p.id, p);
141
+ // Pack profiles can override builtin profiles by id (intentional —
142
+ // a pack that ships e.g. a 'monorepo-developer' profile gets first
143
+ // dibs over any namespace collision).
144
+ for (const p of packProfiles)
145
+ map.set(p.id, p);
146
+ return map;
147
+ }
148
+ /** Look up a profile by id; returns undefined if unknown. */
149
+ export function getProfile(id, packProfiles = []) {
150
+ return indexProfiles(packProfiles).get(id);
151
+ }
@@ -0,0 +1,21 @@
1
+ import { ProjectShape } from '@shrkcrft/workspace';
2
+ /**
3
+ * Default `surface.hidden[]` seeding by project shape.
4
+ *
5
+ * Conservative cut: each list is small and explicitly justified. The
6
+ * shape detector seeds these only when the user runs `shrk init
7
+ * --write` (preview-first). Existing repos are not touched.
8
+ *
9
+ * Rationale:
10
+ * - `single-app` repos don't need monorepo-only commands by
11
+ * default. They stay callable; just hidden from --help.
12
+ * - `library` repos hide app/runtime-only commands.
13
+ * - `monorepo` and `app-with-libs` keep the full default surface.
14
+ */
15
+ export declare const SHAPE_HIDDEN_DEFAULTS: Readonly<Record<ProjectShape, readonly string[]>>;
16
+ export declare function defaultHiddenForShape(shape: ProjectShape): readonly string[];
17
+ export declare function renderShapeLine(detection: {
18
+ shape: ProjectShape;
19
+ evidence: readonly string[];
20
+ }): string;
21
+ //# sourceMappingURL=shape-defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shape-defaults.d.ts","sourceRoot":"","sources":["../../src/surface/shape-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC,CA4BlF,CAAC;AAEH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAE5E;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE;IACzC,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,GAAG,MAAM,CAGT"}
@@ -0,0 +1,50 @@
1
+ import { ProjectShape } from '@shrkcrft/workspace';
2
+ /**
3
+ * Default `surface.hidden[]` seeding by project shape.
4
+ *
5
+ * Conservative cut: each list is small and explicitly justified. The
6
+ * shape detector seeds these only when the user runs `shrk init
7
+ * --write` (preview-first). Existing repos are not touched.
8
+ *
9
+ * Rationale:
10
+ * - `single-app` repos don't need monorepo-only commands by
11
+ * default. They stay callable; just hidden from --help.
12
+ * - `library` repos hide app/runtime-only commands.
13
+ * - `monorepo` and `app-with-libs` keep the full default surface.
14
+ */
15
+ export const SHAPE_HIDDEN_DEFAULTS = Object.freeze({
16
+ [ProjectShape.SingleApp]: Object.freeze([
17
+ 'bundle',
18
+ 'bundle apply-assist',
19
+ 'bundle create',
20
+ 'bundle diff',
21
+ 'bundle list',
22
+ 'bundle plan',
23
+ 'bundle replay',
24
+ 'bundle show',
25
+ 'bundle validate',
26
+ 'reposet',
27
+ 'pack',
28
+ 'packs new',
29
+ 'packs sign',
30
+ 'packs verify',
31
+ 'packs release-check',
32
+ 'packs compat',
33
+ ]),
34
+ [ProjectShape.Library]: Object.freeze([
35
+ 'dev',
36
+ 'dev start',
37
+ 'dev status',
38
+ 'dev report',
39
+ ]),
40
+ [ProjectShape.AppWithLibs]: Object.freeze([]),
41
+ [ProjectShape.Monorepo]: Object.freeze([]),
42
+ [ProjectShape.Unknown]: Object.freeze([]),
43
+ });
44
+ export function defaultHiddenForShape(shape) {
45
+ return SHAPE_HIDDEN_DEFAULTS[shape] ?? [];
46
+ }
47
+ export function renderShapeLine(detection) {
48
+ const ev = detection.evidence.length > 0 ? ` (${detection.evidence[0]})` : '';
49
+ return `Project shape: ${detection.shape}${ev}`;
50
+ }
@@ -0,0 +1,38 @@
1
+ import type { IPipelineDefinition } from '@shrkcrft/pipelines';
2
+ /**
3
+ * IDs of pipelines treated as the "spine" — pipelines whose
4
+ * referenced commands are tier=Core regardless of any other catalog
5
+ * derivation rule.
6
+ *
7
+ * Today only `engine.feature-dev` exists in the engine repo.
8
+ * `engine.safe-generation` is a planned second spine pipeline; if a
9
+ * project ships it, it's automatically picked up here.
10
+ */
11
+ export declare const SPINE_PIPELINE_IDS: readonly string[];
12
+ /**
13
+ * Extract the catalog command names referenced from spine
14
+ * pipelines AND in the core verb allowlist. The function does NOT
15
+ * execute any pipeline — it walks `steps[].cliCommands[]` and parses
16
+ * out the verb path.
17
+ *
18
+ * Parsing rule: each `cliCommands` entry is a shell-style string like
19
+ * `bun run shrk plan review /tmp/plan.json`. The parser strips a
20
+ * leading `bun run shrk` or `shrk` and returns the first 1-2 tokens
21
+ * as a command path. Multi-token paths are joined with a space so
22
+ * they match {@link ICommandCatalogEntry.command} entries that already
23
+ * use this form (`pack author status`, `plan review`).
24
+ */
25
+ export declare function extractSpineCommands(pipelines: readonly IPipelineDefinition[]): ReadonlySet<string>;
26
+ /**
27
+ * Parse a single CLI command string into its catalog `command`
28
+ * path. Returns `undefined` if the string doesn't reference shrk.
29
+ *
30
+ * Examples:
31
+ * `bun run shrk doctor` → `doctor`
32
+ * `bun run shrk plan review /tmp/plan.json` → `plan review`
33
+ * `bun run shrk pack author status` → `pack author status`
34
+ * `bun run shrk context --task "<task>"` → `context`
35
+ * `bun x tsc` → undefined
36
+ */
37
+ export declare function parseCommandVerb(raw: string): string | undefined;
38
+ //# sourceMappingURL=spine-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spine-extractor.d.ts","sourceRoot":"","sources":["../../src/surface/spine-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAG9C,CAAC;AAeH;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,mBAAmB,EAAE,GACxC,WAAW,CAAC,MAAM,CAAC,CAerB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA+BhE"}