@shrkcrft/cli 0.1.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (450) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -0
  3. package/dist/asset-preview/apply-action-hint-stub.d.ts +28 -0
  4. package/dist/asset-preview/apply-action-hint-stub.d.ts.map +1 -0
  5. package/dist/asset-preview/apply-action-hint-stub.js +170 -0
  6. package/dist/asset-preview/apply-asset-preview.d.ts +31 -0
  7. package/dist/asset-preview/apply-asset-preview.d.ts.map +1 -0
  8. package/dist/asset-preview/apply-asset-preview.js +210 -0
  9. package/dist/asset-preview/apply-knowledge-stale-fix.d.ts +37 -0
  10. package/dist/asset-preview/apply-knowledge-stale-fix.d.ts.map +1 -0
  11. package/dist/asset-preview/apply-knowledge-stale-fix.js +344 -0
  12. package/dist/asset-preview/apply-missing-barrel.d.ts +15 -0
  13. package/dist/asset-preview/apply-missing-barrel.d.ts.map +1 -0
  14. package/dist/asset-preview/apply-missing-barrel.js +65 -0
  15. package/dist/asset-preview/apply-template-drift-fix.d.ts +21 -0
  16. package/dist/asset-preview/apply-template-drift-fix.d.ts.map +1 -0
  17. package/dist/asset-preview/apply-template-drift-fix.js +125 -0
  18. package/dist/asset-preview/apply-template-update.d.ts +43 -0
  19. package/dist/asset-preview/apply-template-update.d.ts.map +1 -0
  20. package/dist/asset-preview/apply-template-update.js +257 -0
  21. package/dist/asset-preview/entry-mutator.d.ts +106 -0
  22. package/dist/asset-preview/entry-mutator.d.ts.map +1 -0
  23. package/dist/asset-preview/entry-mutator.js +428 -0
  24. package/dist/authoring/authoring-kit.d.ts +36 -0
  25. package/dist/authoring/authoring-kit.d.ts.map +1 -0
  26. package/dist/authoring/authoring-kit.js +106 -0
  27. package/dist/command-registry.d.ts +158 -0
  28. package/dist/command-registry.d.ts.map +1 -0
  29. package/dist/command-registry.js +348 -0
  30. package/dist/commands/apply.command.d.ts +3 -0
  31. package/dist/commands/apply.command.d.ts.map +1 -0
  32. package/dist/commands/apply.command.js +879 -0
  33. package/dist/commands/architecture.command.d.ts +5 -0
  34. package/dist/commands/architecture.command.d.ts.map +1 -0
  35. package/dist/commands/architecture.command.js +141 -0
  36. package/dist/commands/ask.command.d.ts +3 -0
  37. package/dist/commands/ask.command.d.ts.map +1 -0
  38. package/dist/commands/ask.command.js +58 -0
  39. package/dist/commands/audit.command.d.ts +3 -0
  40. package/dist/commands/audit.command.d.ts.map +1 -0
  41. package/dist/commands/audit.command.js +141 -0
  42. package/dist/commands/biome.command.d.ts +7 -0
  43. package/dist/commands/biome.command.d.ts.map +1 -0
  44. package/dist/commands/biome.command.js +350 -0
  45. package/dist/commands/boundaries.command.d.ts +9 -0
  46. package/dist/commands/boundaries.command.d.ts.map +1 -0
  47. package/dist/commands/boundaries.command.js +314 -0
  48. package/dist/commands/brief.command.d.ts +3 -0
  49. package/dist/commands/brief.command.d.ts.map +1 -0
  50. package/dist/commands/brief.command.js +206 -0
  51. package/dist/commands/bundle.command.d.ts +3 -0
  52. package/dist/commands/bundle.command.d.ts.map +1 -0
  53. package/dist/commands/bundle.command.js +1183 -0
  54. package/dist/commands/changes.command.d.ts +3 -0
  55. package/dist/commands/changes.command.d.ts.map +1 -0
  56. package/dist/commands/changes.command.js +155 -0
  57. package/dist/commands/check.command.d.ts +3 -0
  58. package/dist/commands/check.command.d.ts.map +1 -0
  59. package/dist/commands/check.command.js +553 -0
  60. package/dist/commands/checks.command.d.ts +29 -0
  61. package/dist/commands/checks.command.d.ts.map +1 -0
  62. package/dist/commands/checks.command.js +521 -0
  63. package/dist/commands/ci.command.d.ts +3 -0
  64. package/dist/commands/ci.command.d.ts.map +1 -0
  65. package/dist/commands/ci.command.js +680 -0
  66. package/dist/commands/codemod.command.d.ts +3 -0
  67. package/dist/commands/codemod.command.d.ts.map +1 -0
  68. package/dist/commands/codemod.command.js +130 -0
  69. package/dist/commands/command-catalog.d.ts +265 -0
  70. package/dist/commands/command-catalog.d.ts.map +1 -0
  71. package/dist/commands/command-catalog.js +3242 -0
  72. package/dist/commands/commands.command.d.ts +92 -0
  73. package/dist/commands/commands.command.d.ts.map +1 -0
  74. package/dist/commands/commands.command.js +1208 -0
  75. package/dist/commands/constructs.command.d.ts +15 -0
  76. package/dist/commands/constructs.command.d.ts.map +1 -0
  77. package/dist/commands/constructs.command.js +669 -0
  78. package/dist/commands/context.command.d.ts +3 -0
  79. package/dist/commands/context.command.d.ts.map +1 -0
  80. package/dist/commands/context.command.js +120 -0
  81. package/dist/commands/contract-gate.command.d.ts +5 -0
  82. package/dist/commands/contract-gate.command.d.ts.map +1 -0
  83. package/dist/commands/contract-gate.command.js +208 -0
  84. package/dist/commands/contract-templates.command.d.ts +8 -0
  85. package/dist/commands/contract-templates.command.d.ts.map +1 -0
  86. package/dist/commands/contract-templates.command.js +151 -0
  87. package/dist/commands/contract.command.d.ts +3 -0
  88. package/dist/commands/contract.command.d.ts.map +1 -0
  89. package/dist/commands/contract.command.js +105 -0
  90. package/dist/commands/conventions.command.d.ts +8 -0
  91. package/dist/commands/conventions.command.d.ts.map +1 -0
  92. package/dist/commands/conventions.command.js +169 -0
  93. package/dist/commands/coverage.command.d.ts +3 -0
  94. package/dist/commands/coverage.command.d.ts.map +1 -0
  95. package/dist/commands/coverage.command.js +56 -0
  96. package/dist/commands/daily.commands.d.ts +5 -0
  97. package/dist/commands/daily.commands.d.ts.map +1 -0
  98. package/dist/commands/daily.commands.js +224 -0
  99. package/dist/commands/dashboard-export.command.d.ts +4 -0
  100. package/dist/commands/dashboard-export.command.d.ts.map +1 -0
  101. package/dist/commands/dashboard-export.command.js +86 -0
  102. package/dist/commands/dashboard.command.d.ts +3 -0
  103. package/dist/commands/dashboard.command.d.ts.map +1 -0
  104. package/dist/commands/dashboard.command.js +106 -0
  105. package/dist/commands/dev.command.d.ts +3 -0
  106. package/dist/commands/dev.command.d.ts.map +1 -0
  107. package/dist/commands/dev.command.js +1392 -0
  108. package/dist/commands/diagnostics.command.d.ts +5 -0
  109. package/dist/commands/diagnostics.command.d.ts.map +1 -0
  110. package/dist/commands/diagnostics.command.js +97 -0
  111. package/dist/commands/docs.command.d.ts +4 -0
  112. package/dist/commands/docs.command.d.ts.map +1 -0
  113. package/dist/commands/docs.command.js +34 -0
  114. package/dist/commands/doctor.command.d.ts +7 -0
  115. package/dist/commands/doctor.command.d.ts.map +1 -0
  116. package/dist/commands/doctor.command.js +681 -0
  117. package/dist/commands/drift.command.d.ts +3 -0
  118. package/dist/commands/drift.command.d.ts.map +1 -0
  119. package/dist/commands/drift.command.js +124 -0
  120. package/dist/commands/eslint.command.d.ts +7 -0
  121. package/dist/commands/eslint.command.d.ts.map +1 -0
  122. package/dist/commands/eslint.command.js +423 -0
  123. package/dist/commands/explore.command.d.ts +3 -0
  124. package/dist/commands/explore.command.d.ts.map +1 -0
  125. package/dist/commands/explore.command.js +65 -0
  126. package/dist/commands/export-bundle.command.d.ts +6 -0
  127. package/dist/commands/export-bundle.command.d.ts.map +1 -0
  128. package/dist/commands/export-bundle.command.js +96 -0
  129. package/dist/commands/export.command.d.ts +3 -0
  130. package/dist/commands/export.command.d.ts.map +1 -0
  131. package/dist/commands/export.command.js +83 -0
  132. package/dist/commands/feedback-dispatch.command.d.ts +12 -0
  133. package/dist/commands/feedback-dispatch.command.d.ts.map +1 -0
  134. package/dist/commands/feedback-dispatch.command.js +63 -0
  135. package/dist/commands/feedback.command.d.ts +11 -0
  136. package/dist/commands/feedback.command.d.ts.map +1 -0
  137. package/dist/commands/feedback.command.js +336 -0
  138. package/dist/commands/fix.command.d.ts +3 -0
  139. package/dist/commands/fix.command.d.ts.map +1 -0
  140. package/dist/commands/fix.command.js +776 -0
  141. package/dist/commands/gen.command.d.ts +3 -0
  142. package/dist/commands/gen.command.d.ts.map +1 -0
  143. package/dist/commands/gen.command.js +136 -0
  144. package/dist/commands/git.command.d.ts +6 -0
  145. package/dist/commands/git.command.d.ts.map +1 -0
  146. package/dist/commands/git.command.js +81 -0
  147. package/dist/commands/graph.command.d.ts +3 -0
  148. package/dist/commands/graph.command.d.ts.map +1 -0
  149. package/dist/commands/graph.command.js +287 -0
  150. package/dist/commands/grounding.command.d.ts +7 -0
  151. package/dist/commands/grounding.command.d.ts.map +1 -0
  152. package/dist/commands/grounding.command.js +54 -0
  153. package/dist/commands/help.command.d.ts +20 -0
  154. package/dist/commands/help.command.d.ts.map +1 -0
  155. package/dist/commands/help.command.js +127 -0
  156. package/dist/commands/helper.command.d.ts +6 -0
  157. package/dist/commands/helper.command.d.ts.map +1 -0
  158. package/dist/commands/helper.command.js +170 -0
  159. package/dist/commands/ide.command.d.ts +6 -0
  160. package/dist/commands/ide.command.d.ts.map +1 -0
  161. package/dist/commands/ide.command.js +340 -0
  162. package/dist/commands/impact.command.d.ts +3 -0
  163. package/dist/commands/impact.command.d.ts.map +1 -0
  164. package/dist/commands/impact.command.js +819 -0
  165. package/dist/commands/import.command.d.ts +3 -0
  166. package/dist/commands/import.command.d.ts.map +1 -0
  167. package/dist/commands/import.command.js +115 -0
  168. package/dist/commands/infer.command.d.ts +3 -0
  169. package/dist/commands/infer.command.d.ts.map +1 -0
  170. package/dist/commands/infer.command.js +227 -0
  171. package/dist/commands/ingest.command.d.ts +6 -0
  172. package/dist/commands/ingest.command.d.ts.map +1 -0
  173. package/dist/commands/ingest.command.js +532 -0
  174. package/dist/commands/init.command.d.ts +3 -0
  175. package/dist/commands/init.command.d.ts.map +1 -0
  176. package/dist/commands/init.command.js +301 -0
  177. package/dist/commands/inspect.command.d.ts +3 -0
  178. package/dist/commands/inspect.command.d.ts.map +1 -0
  179. package/dist/commands/inspect.command.js +122 -0
  180. package/dist/commands/knowledge-author.command.d.ts +22 -0
  181. package/dist/commands/knowledge-author.command.d.ts.map +1 -0
  182. package/dist/commands/knowledge-author.command.js +366 -0
  183. package/dist/commands/knowledge-propose.command.d.ts +3 -0
  184. package/dist/commands/knowledge-propose.command.d.ts.map +1 -0
  185. package/dist/commands/knowledge-propose.command.js +125 -0
  186. package/dist/commands/knowledge.command.d.ts +18 -0
  187. package/dist/commands/knowledge.command.d.ts.map +1 -0
  188. package/dist/commands/knowledge.command.js +538 -0
  189. package/dist/commands/languages.command.d.ts +3 -0
  190. package/dist/commands/languages.command.d.ts.map +1 -0
  191. package/dist/commands/languages.command.js +300 -0
  192. package/dist/commands/lint.command.d.ts +15 -0
  193. package/dist/commands/lint.command.d.ts.map +1 -0
  194. package/dist/commands/lint.command.js +194 -0
  195. package/dist/commands/mcp.command.d.ts +3 -0
  196. package/dist/commands/mcp.command.d.ts.map +1 -0
  197. package/dist/commands/mcp.command.js +74 -0
  198. package/dist/commands/memory.command.d.ts +11 -0
  199. package/dist/commands/memory.command.d.ts.map +1 -0
  200. package/dist/commands/memory.command.js +264 -0
  201. package/dist/commands/onboard.command.d.ts +3 -0
  202. package/dist/commands/onboard.command.d.ts.map +1 -0
  203. package/dist/commands/onboard.command.js +650 -0
  204. package/dist/commands/orchestrate.command.d.ts +3 -0
  205. package/dist/commands/orchestrate.command.d.ts.map +1 -0
  206. package/dist/commands/orchestrate.command.js +49 -0
  207. package/dist/commands/owners.command.d.ts +5 -0
  208. package/dist/commands/owners.command.d.ts.map +1 -0
  209. package/dist/commands/owners.command.js +113 -0
  210. package/dist/commands/ownership.command.d.ts +5 -0
  211. package/dist/commands/ownership.command.d.ts.map +1 -0
  212. package/dist/commands/ownership.command.js +117 -0
  213. package/dist/commands/pack-author.command.d.ts +30 -0
  214. package/dist/commands/pack-author.command.d.ts.map +1 -0
  215. package/dist/commands/pack-author.command.js +242 -0
  216. package/dist/commands/packs-new.d.ts +27 -0
  217. package/dist/commands/packs-new.d.ts.map +1 -0
  218. package/dist/commands/packs-new.js +805 -0
  219. package/dist/commands/packs.command.d.ts +15 -0
  220. package/dist/commands/packs.command.d.ts.map +1 -0
  221. package/dist/commands/packs.command.js +958 -0
  222. package/dist/commands/paths.command.d.ts +6 -0
  223. package/dist/commands/paths.command.d.ts.map +1 -0
  224. package/dist/commands/paths.command.js +97 -0
  225. package/dist/commands/pipelines.command.d.ts +9 -0
  226. package/dist/commands/pipelines.command.d.ts.map +1 -0
  227. package/dist/commands/pipelines.command.js +308 -0
  228. package/dist/commands/plan-check.command.d.ts +27 -0
  229. package/dist/commands/plan-check.command.d.ts.map +1 -0
  230. package/dist/commands/plan-check.command.js +150 -0
  231. package/dist/commands/plan-simulate.command.d.ts +3 -0
  232. package/dist/commands/plan-simulate.command.d.ts.map +1 -0
  233. package/dist/commands/plan-simulate.command.js +60 -0
  234. package/dist/commands/plan.command.d.ts +8 -0
  235. package/dist/commands/plan.command.d.ts.map +1 -0
  236. package/dist/commands/plan.command.js +139 -0
  237. package/dist/commands/playbooks.command.d.ts +10 -0
  238. package/dist/commands/playbooks.command.d.ts.map +1 -0
  239. package/dist/commands/playbooks.command.js +296 -0
  240. package/dist/commands/plugin.command.d.ts +11 -0
  241. package/dist/commands/plugin.command.d.ts.map +1 -0
  242. package/dist/commands/plugin.command.js +394 -0
  243. package/dist/commands/policy.command.d.ts +8 -0
  244. package/dist/commands/policy.command.d.ts.map +1 -0
  245. package/dist/commands/policy.command.js +451 -0
  246. package/dist/commands/pr.command.d.ts +3 -0
  247. package/dist/commands/pr.command.d.ts.map +1 -0
  248. package/dist/commands/pr.command.js +132 -0
  249. package/dist/commands/preflight.command.d.ts +3 -0
  250. package/dist/commands/preflight.command.d.ts.map +1 -0
  251. package/dist/commands/preflight.command.js +102 -0
  252. package/dist/commands/presets.command.d.ts +17 -0
  253. package/dist/commands/presets.command.d.ts.map +1 -0
  254. package/dist/commands/presets.command.js +647 -0
  255. package/dist/commands/profiles.command.d.ts +7 -0
  256. package/dist/commands/profiles.command.d.ts.map +1 -0
  257. package/dist/commands/profiles.command.js +151 -0
  258. package/dist/commands/provenance.command.d.ts +26 -0
  259. package/dist/commands/provenance.command.d.ts.map +1 -0
  260. package/dist/commands/provenance.command.js +237 -0
  261. package/dist/commands/quality.command.d.ts +5 -0
  262. package/dist/commands/quality.command.d.ts.map +1 -0
  263. package/dist/commands/quality.command.js +69 -0
  264. package/dist/commands/recommend.command.d.ts +4 -0
  265. package/dist/commands/recommend.command.d.ts.map +1 -0
  266. package/dist/commands/recommend.command.js +270 -0
  267. package/dist/commands/registrations.command.d.ts +3 -0
  268. package/dist/commands/registrations.command.d.ts.map +1 -0
  269. package/dist/commands/registrations.command.js +300 -0
  270. package/dist/commands/registry.command.d.ts +4 -0
  271. package/dist/commands/registry.command.d.ts.map +1 -0
  272. package/dist/commands/registry.command.js +37 -0
  273. package/dist/commands/release.command.d.ts +4 -0
  274. package/dist/commands/release.command.d.ts.map +1 -0
  275. package/dist/commands/release.command.js +639 -0
  276. package/dist/commands/repo.command.d.ts +3 -0
  277. package/dist/commands/repo.command.d.ts.map +1 -0
  278. package/dist/commands/repo.command.js +24 -0
  279. package/dist/commands/report.command.d.ts +3 -0
  280. package/dist/commands/report.command.d.ts.map +1 -0
  281. package/dist/commands/report.command.js +511 -0
  282. package/dist/commands/reposet.command.d.ts +6 -0
  283. package/dist/commands/reposet.command.d.ts.map +1 -0
  284. package/dist/commands/reposet.command.js +120 -0
  285. package/dist/commands/review.command.d.ts +3 -0
  286. package/dist/commands/review.command.d.ts.map +1 -0
  287. package/dist/commands/review.command.js +354 -0
  288. package/dist/commands/risk.command.d.ts +3 -0
  289. package/dist/commands/risk.command.d.ts.map +1 -0
  290. package/dist/commands/risk.command.js +56 -0
  291. package/dist/commands/rounds.command.d.ts +8 -0
  292. package/dist/commands/rounds.command.d.ts.map +1 -0
  293. package/dist/commands/rounds.command.js +180 -0
  294. package/dist/commands/rules.command.d.ts +49 -0
  295. package/dist/commands/rules.command.d.ts.map +1 -0
  296. package/dist/commands/rules.command.js +435 -0
  297. package/dist/commands/runtime.command.d.ts +3 -0
  298. package/dist/commands/runtime.command.d.ts.map +1 -0
  299. package/dist/commands/runtime.command.js +56 -0
  300. package/dist/commands/safety.command.d.ts +3 -0
  301. package/dist/commands/safety.command.d.ts.map +1 -0
  302. package/dist/commands/safety.command.js +117 -0
  303. package/dist/commands/scaffolds.command.d.ts +5 -0
  304. package/dist/commands/scaffolds.command.d.ts.map +1 -0
  305. package/dist/commands/scaffolds.command.js +122 -0
  306. package/dist/commands/schemas.command.d.ts +21 -0
  307. package/dist/commands/schemas.command.d.ts.map +1 -0
  308. package/dist/commands/schemas.command.js +296 -0
  309. package/dist/commands/search.command.d.ts +12 -0
  310. package/dist/commands/search.command.d.ts.map +1 -0
  311. package/dist/commands/search.command.js +275 -0
  312. package/dist/commands/self-config.command.d.ts +7 -0
  313. package/dist/commands/self-config.command.d.ts.map +1 -0
  314. package/dist/commands/self-config.command.js +156 -0
  315. package/dist/commands/self.command.d.ts +3 -0
  316. package/dist/commands/self.command.d.ts.map +1 -0
  317. package/dist/commands/self.command.js +117 -0
  318. package/dist/commands/simulate.command.d.ts +3 -0
  319. package/dist/commands/simulate.command.d.ts.map +1 -0
  320. package/dist/commands/simulate.command.js +54 -0
  321. package/dist/commands/spec.command.d.ts +29 -0
  322. package/dist/commands/spec.command.d.ts.map +1 -0
  323. package/dist/commands/spec.command.js +985 -0
  324. package/dist/commands/start-here.command.d.ts +3 -0
  325. package/dist/commands/start-here.command.d.ts.map +1 -0
  326. package/dist/commands/start-here.command.js +35 -0
  327. package/dist/commands/stats.command.d.ts +3 -0
  328. package/dist/commands/stats.command.d.ts.map +1 -0
  329. package/dist/commands/stats.command.js +88 -0
  330. package/dist/commands/surface.command.d.ts +15 -0
  331. package/dist/commands/surface.command.d.ts.map +1 -0
  332. package/dist/commands/surface.command.js +328 -0
  333. package/dist/commands/task-context.command.d.ts +7 -0
  334. package/dist/commands/task-context.command.d.ts.map +1 -0
  335. package/dist/commands/task-context.command.js +646 -0
  336. package/dist/commands/task.command.d.ts +3 -0
  337. package/dist/commands/task.command.d.ts.map +1 -0
  338. package/dist/commands/task.command.js +301 -0
  339. package/dist/commands/template-quality.command.d.ts +5 -0
  340. package/dist/commands/template-quality.command.d.ts.map +1 -0
  341. package/dist/commands/template-quality.command.js +128 -0
  342. package/dist/commands/templates.command.d.ts +26 -0
  343. package/dist/commands/templates.command.d.ts.map +1 -0
  344. package/dist/commands/templates.command.js +964 -0
  345. package/dist/commands/test.command.d.ts +3 -0
  346. package/dist/commands/test.command.d.ts.map +1 -0
  347. package/dist/commands/test.command.js +262 -0
  348. package/dist/commands/tests.command.d.ts +5 -0
  349. package/dist/commands/tests.command.d.ts.map +1 -0
  350. package/dist/commands/tests.command.js +97 -0
  351. package/dist/commands/trace.command.d.ts +3 -0
  352. package/dist/commands/trace.command.d.ts.map +1 -0
  353. package/dist/commands/trace.command.js +121 -0
  354. package/dist/commands/upgrade.command.d.ts +4 -0
  355. package/dist/commands/upgrade.command.d.ts.map +1 -0
  356. package/dist/commands/upgrade.command.js +43 -0
  357. package/dist/commands/version.command.d.ts +3 -0
  358. package/dist/commands/version.command.d.ts.map +1 -0
  359. package/dist/commands/version.command.js +10 -0
  360. package/dist/commands/why.command.d.ts +24 -0
  361. package/dist/commands/why.command.d.ts.map +1 -0
  362. package/dist/commands/why.command.js +119 -0
  363. package/dist/dashboard/dashboard-api-server.d.ts +21 -0
  364. package/dist/dashboard/dashboard-api-server.d.ts.map +1 -0
  365. package/dist/dashboard/dashboard-api-server.js +410 -0
  366. package/dist/dashboard/live-session-server.d.ts +18 -0
  367. package/dist/dashboard/live-session-server.d.ts.map +1 -0
  368. package/dist/dashboard/live-session-server.js +133 -0
  369. package/dist/diff/collect-changed-paths.d.ts +27 -0
  370. package/dist/diff/collect-changed-paths.d.ts.map +1 -0
  371. package/dist/diff/collect-changed-paths.js +68 -0
  372. package/dist/doctor/doctor-tags.d.ts +63 -0
  373. package/dist/doctor/doctor-tags.d.ts.map +1 -0
  374. package/dist/doctor/doctor-tags.js +146 -0
  375. package/dist/export/export-formats.d.ts +22 -0
  376. package/dist/export/export-formats.d.ts.map +1 -0
  377. package/dist/export/export-formats.js +135 -0
  378. package/dist/index.d.ts +22 -0
  379. package/dist/index.d.ts.map +1 -0
  380. package/dist/index.js +21 -0
  381. package/dist/init/detected-block.d.ts +57 -0
  382. package/dist/init/detected-block.d.ts.map +1 -0
  383. package/dist/init/detected-block.js +197 -0
  384. package/dist/init/gitignore.d.ts +30 -0
  385. package/dist/init/gitignore.d.ts.map +1 -0
  386. package/dist/init/gitignore.js +110 -0
  387. package/dist/init/init-templates.d.ts +6 -0
  388. package/dist/init/init-templates.d.ts.map +1 -0
  389. package/dist/init/init-templates.js +413 -0
  390. package/dist/main.d.ts +18 -0
  391. package/dist/main.d.ts.map +1 -0
  392. package/dist/main.js +699 -0
  393. package/dist/output/failure-hints.d.ts +55 -0
  394. package/dist/output/failure-hints.d.ts.map +1 -0
  395. package/dist/output/failure-hints.js +159 -0
  396. package/dist/output/format-output.d.ts +9 -0
  397. package/dist/output/format-output.d.ts.map +1 -0
  398. package/dist/output/format-output.js +26 -0
  399. package/dist/output/print-error.d.ts +3 -0
  400. package/dist/output/print-error.d.ts.map +1 -0
  401. package/dist/output/print-error.js +14 -0
  402. package/dist/output/watch-loop.d.ts +37 -0
  403. package/dist/output/watch-loop.d.ts.map +1 -0
  404. package/dist/output/watch-loop.js +115 -0
  405. package/dist/schemas/json-schemas.d.ts +1630 -0
  406. package/dist/schemas/json-schemas.d.ts.map +1 -0
  407. package/dist/schemas/json-schemas.js +811 -0
  408. package/dist/surface/about.d.ts +10 -0
  409. package/dist/surface/about.d.ts.map +1 -0
  410. package/dist/surface/about.js +53 -0
  411. package/dist/surface/load-surface-context.d.ts +34 -0
  412. package/dist/surface/load-surface-context.d.ts.map +1 -0
  413. package/dist/surface/load-surface-context.js +100 -0
  414. package/dist/surface/no-args-landing.d.ts +7 -0
  415. package/dist/surface/no-args-landing.d.ts.map +1 -0
  416. package/dist/surface/no-args-landing.js +36 -0
  417. package/dist/surface/not-enabled-error.d.ts +24 -0
  418. package/dist/surface/not-enabled-error.d.ts.map +1 -0
  419. package/dist/surface/not-enabled-error.js +36 -0
  420. package/dist/surface/profiles.d.ts +37 -0
  421. package/dist/surface/profiles.d.ts.map +1 -0
  422. package/dist/surface/profiles.js +151 -0
  423. package/dist/surface/shape-defaults.d.ts +21 -0
  424. package/dist/surface/shape-defaults.d.ts.map +1 -0
  425. package/dist/surface/shape-defaults.js +50 -0
  426. package/dist/surface/spine-extractor.d.ts +38 -0
  427. package/dist/surface/spine-extractor.d.ts.map +1 -0
  428. package/dist/surface/spine-extractor.js +100 -0
  429. package/dist/surface/surface-config-writer.d.ts +59 -0
  430. package/dist/surface/surface-config-writer.d.ts.map +1 -0
  431. package/dist/surface/surface-config-writer.js +135 -0
  432. package/dist/surface/surface-summary.d.ts +66 -0
  433. package/dist/surface/surface-summary.d.ts.map +1 -0
  434. package/dist/surface/surface-summary.js +162 -0
  435. package/dist/surface/tier.d.ts +100 -0
  436. package/dist/surface/tier.d.ts.map +1 -0
  437. package/dist/surface/tier.js +172 -0
  438. package/dist/task-next/apply-batch-runner.d.ts +42 -0
  439. package/dist/task-next/apply-batch-runner.d.ts.map +1 -0
  440. package/dist/task-next/apply-batch-runner.js +192 -0
  441. package/dist/task-next/task-next-ranker.d.ts +75 -0
  442. package/dist/task-next/task-next-ranker.d.ts.map +1 -0
  443. package/dist/task-next/task-next-ranker.js +179 -0
  444. package/dist/usage/usage-log.d.ts +54 -0
  445. package/dist/usage/usage-log.d.ts.map +1 -0
  446. package/dist/usage/usage-log.js +105 -0
  447. package/dist/validation/run-validation-loop.d.ts +38 -0
  448. package/dist/validation/run-validation-loop.d.ts.map +1 -0
  449. package/dist/validation/run-validation-loop.js +100 -0
  450. package/package.json +73 -0
@@ -0,0 +1,3 @@
1
+ import { type ICommandHandler } from '../command-registry.js';
2
+ export declare const startHereCommand: ICommandHandler;
3
+ //# sourceMappingURL=start-here.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-here.command.d.ts","sourceRoot":"","sources":["../../src/commands/start-here.command.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwB,KAAK,eAAe,EAAmB,MAAM,wBAAwB,CAAC;AAarG,eAAO,MAAM,gBAAgB,EAAE,eAwB9B,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { buildStartHereReport, renderStartHereText, } from '@shrkcrft/inspector';
2
+ import { flagBool, flagString } from "../command-registry.js";
3
+ import { asJson } from "../output/format-output.js";
4
+ const VALID_FLOWS = [
5
+ 'onboard',
6
+ 'brief',
7
+ 'dev',
8
+ 'review',
9
+ 'governance',
10
+ 'packs',
11
+ 'release',
12
+ ];
13
+ export const startHereCommand = {
14
+ name: 'start-here',
15
+ description: 'Human entry point — 30-second explanation + 5 primary flows + safety pledge.',
16
+ usage: 'shrk start-here [--flow onboard|brief|dev|review|governance|packs|release] [--json]',
17
+ async run(args) {
18
+ const flowRaw = flagString(args, 'flow');
19
+ let flow = null;
20
+ if (flowRaw) {
21
+ if (!VALID_FLOWS.includes(flowRaw)) {
22
+ process.stderr.write(`Unknown --flow "${flowRaw}". Use ${VALID_FLOWS.join('|')}.\n`);
23
+ return 2;
24
+ }
25
+ flow = flowRaw;
26
+ }
27
+ const report = buildStartHereReport(flow);
28
+ if (flagBool(args, 'json')) {
29
+ process.stdout.write(asJson(report) + '\n');
30
+ return 0;
31
+ }
32
+ process.stdout.write(renderStartHereText(report));
33
+ return 0;
34
+ },
35
+ };
@@ -0,0 +1,3 @@
1
+ import { type ICommandHandler } from '../command-registry.js';
2
+ export declare const statsCommand: ICommandHandler;
3
+ //# sourceMappingURL=stats.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.command.d.ts","sourceRoot":"","sources":["../../src/commands/stats.command.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAoBhC,eAAO,MAAM,YAAY,EAAE,eAqF1B,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { buildRepositoryStats } from '@shrkcrft/inspector';
2
+ import { flagBool, flagString, resolveCwd, } from "../command-registry.js";
3
+ import { asJson, header, kv } from "../output/format-output.js";
4
+ const BYTES_PER_KB = 1024;
5
+ const BYTES_PER_MB = BYTES_PER_KB * 1024;
6
+ function humanBytes(bytes) {
7
+ if (bytes >= BYTES_PER_MB)
8
+ return (bytes / BYTES_PER_MB).toFixed(2) + ' MB';
9
+ if (bytes >= BYTES_PER_KB)
10
+ return (bytes / BYTES_PER_KB).toFixed(1) + ' KB';
11
+ return bytes + ' B';
12
+ }
13
+ function rightPad(s, n) {
14
+ return s.length >= n ? s : s + ' '.repeat(n - s.length);
15
+ }
16
+ function leftPad(s, n) {
17
+ return s.length >= n ? s : ' '.repeat(n - s.length) + s;
18
+ }
19
+ export const statsCommand = {
20
+ name: 'stats',
21
+ description: 'Repository statistics — per-language file counts, lines of code (code/comment/blank), bytes, averages, largest files.',
22
+ usage: 'shrk [--cwd <dir>] stats [--json] [--top <n>] [--language <id>]',
23
+ async run(args) {
24
+ const cwd = resolveCwd(args);
25
+ const topStr = flagString(args, 'top');
26
+ const top = topStr !== undefined ? Math.max(0, Number(topStr) || 0) : undefined;
27
+ const language = flagString(args, 'language');
28
+ const stats = await buildRepositoryStats({
29
+ cwd,
30
+ ...(top !== undefined ? { maxTopFiles: top } : {}),
31
+ ...(language ? { language } : {}),
32
+ });
33
+ if (flagBool(args, 'json')) {
34
+ process.stdout.write(asJson(stats) + '\n');
35
+ return 0;
36
+ }
37
+ process.stdout.write(header('Repository statistics'));
38
+ process.stdout.write(kv('project root', stats.projectRoot) + '\n');
39
+ process.stdout.write(kv('generated at', stats.generatedAt) + '\n');
40
+ if (stats.truncated) {
41
+ process.stdout.write(kv('truncated', 'yes — file cap reached, results partial') + '\n');
42
+ }
43
+ process.stdout.write('\n');
44
+ const t = stats.totals;
45
+ process.stdout.write(`Totals\n`);
46
+ process.stdout.write(` files: ${t.files.toLocaleString()}\n`);
47
+ process.stdout.write(` bytes: ${t.bytes.toLocaleString()} (${humanBytes(t.bytes)})\n`);
48
+ process.stdout.write(` total lines: ${t.totalLines.toLocaleString()}\n`);
49
+ process.stdout.write(` code lines: ${t.codeLines.toLocaleString()}\n`);
50
+ process.stdout.write(` comment: ${t.commentLines.toLocaleString()}\n`);
51
+ process.stdout.write(` blank: ${t.blankLines.toLocaleString()}\n`);
52
+ process.stdout.write('\n');
53
+ if (stats.byLanguage.length === 0) {
54
+ process.stdout.write('No recognized source files found.\n');
55
+ return 0;
56
+ }
57
+ process.stdout.write(`Per language\n`);
58
+ const langW = 14;
59
+ const numW = 9;
60
+ process.stdout.write(' ' +
61
+ rightPad('language', langW) +
62
+ leftPad('files', numW) +
63
+ leftPad('code', numW + 1) +
64
+ leftPad('comment', numW + 1) +
65
+ leftPad('blank', numW + 1) +
66
+ leftPad('bytes', numW + 3) +
67
+ leftPad('avg/file', numW + 2) +
68
+ '\n');
69
+ for (const l of stats.byLanguage) {
70
+ process.stdout.write(' ' +
71
+ rightPad(l.language, langW) +
72
+ leftPad(l.files.toLocaleString(), numW) +
73
+ leftPad(l.codeLines.toLocaleString(), numW + 1) +
74
+ leftPad(l.commentLines.toLocaleString(), numW + 1) +
75
+ leftPad(l.blankLines.toLocaleString(), numW + 1) +
76
+ leftPad(humanBytes(l.bytes), numW + 3) +
77
+ leftPad(l.averageFileLines.toLocaleString() + ' L', numW + 2) +
78
+ '\n');
79
+ }
80
+ if (stats.topFiles.length > 0) {
81
+ process.stdout.write('\nLargest files\n');
82
+ for (const f of stats.topFiles) {
83
+ process.stdout.write(` ${rightPad(humanBytes(f.bytes), 10)} ${leftPad(f.lines.toLocaleString() + ' L', 10)} ${f.language.padEnd(12)} ${f.path}\n`);
84
+ }
85
+ }
86
+ return 0;
87
+ },
88
+ };
@@ -0,0 +1,15 @@
1
+ import { type ICommandHandler } from '../command-registry.js';
2
+ /**
3
+ * `shrk surface`. Top-level introspection + opt-in management
4
+ * for the adaptive command surface. Subcommands:
5
+ *
6
+ * - list every command grouped by tier
7
+ * - enable <command> promote experimental → callable
8
+ * - disable <command> undo a prior enable
9
+ * - hide <command> hide an extended command from --help
10
+ * - unhide <command> reverse hide
11
+ * - reset clear surface.enabled + surface.hidden
12
+ * - explain <command> why this command has its current tier
13
+ */
14
+ export declare const surfaceCommand: ICommandHandler;
15
+ //# sourceMappingURL=surface.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface.command.d.ts","sourceRoot":"","sources":["../../src/commands/surface.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAiBhC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,EAAE,eAmC5B,CAAC"}
@@ -0,0 +1,328 @@
1
+ import { flagBool, resolveCwd, } from "../command-registry.js";
2
+ import { asJson, header, kv, table } from "../output/format-output.js";
3
+ import { loadSurfaceContext } from "../surface/load-surface-context.js";
4
+ import { buildSurfaceSummary, findCommandInSummary, } from "../surface/surface-summary.js";
5
+ import { CommandTier } from "./command-catalog.js";
6
+ import { applySurfaceEdit, defaultConfigFile, planSurfaceEdit, } from "../surface/surface-config-writer.js";
7
+ /**
8
+ * `shrk surface`. Top-level introspection + opt-in management
9
+ * for the adaptive command surface. Subcommands:
10
+ *
11
+ * - list every command grouped by tier
12
+ * - enable <command> promote experimental → callable
13
+ * - disable <command> undo a prior enable
14
+ * - hide <command> hide an extended command from --help
15
+ * - unhide <command> reverse hide
16
+ * - reset clear surface.enabled + surface.hidden
17
+ * - explain <command> why this command has its current tier
18
+ */
19
+ export const surfaceCommand = {
20
+ name: 'surface',
21
+ description: 'Inspect or change the adaptive command surface (core / extended / experimental tiers).',
22
+ usage: 'shrk surface <list|enable|disable|hide|unhide|reset|explain> [name] [--write] [--json]',
23
+ async run(args) {
24
+ const [verb, ...rest] = args.positional;
25
+ const json = flagBool(args, 'json');
26
+ const write = flagBool(args, 'write');
27
+ const cwd = resolveCwd(args);
28
+ switch (verb) {
29
+ case undefined:
30
+ case 'list':
31
+ return await runList({ cwd, json });
32
+ case 'explain':
33
+ return await runExplain({ cwd, json, target: rest[0] });
34
+ case 'enable':
35
+ return await runMutate({ cwd, json, write, target: rest[0], op: 'enable' });
36
+ case 'disable':
37
+ return await runMutate({ cwd, json, write, target: rest[0], op: 'disable' });
38
+ case 'hide':
39
+ return await runMutate({ cwd, json, write, target: rest[0], op: 'hide' });
40
+ case 'unhide':
41
+ return await runMutate({ cwd, json, write, target: rest[0], op: 'unhide' });
42
+ case 'reset':
43
+ return await runReset({ cwd, json, write });
44
+ case 'profiles':
45
+ return await runProfiles({ cwd, json, sub: rest[0], target: rest[1] });
46
+ default:
47
+ process.stderr.write(`Unknown subcommand: surface ${verb}\nSee \`shrk surface --help\`.\n`);
48
+ return 2;
49
+ }
50
+ },
51
+ };
52
+ async function runProfiles(opts) {
53
+ const { context, inspection, availableProfiles, activeProfile } = await loadSurfaceContext({ cwd: opts.cwd });
54
+ void inspection;
55
+ void context;
56
+ if (!opts.sub || opts.sub === 'list') {
57
+ if (opts.json) {
58
+ process.stdout.write(asJson({
59
+ schema: 'sharkcraft.surface.profiles.v1',
60
+ active: activeProfile?.id ?? null,
61
+ profiles: availableProfiles,
62
+ }) + '\n');
63
+ return 0;
64
+ }
65
+ process.stdout.write(header('Surface profiles'));
66
+ process.stdout.write(kv('active', activeProfile?.id ?? '(none — set via sharkcraft.config.ts surface.profile)') + '\n');
67
+ process.stdout.write('\n');
68
+ for (const p of availableProfiles) {
69
+ const isActive = activeProfile?.id === p.id;
70
+ const tag = isActive ? '*' : ' ';
71
+ const src = p.source === 'pack' ? ` (pack: ${p.pack})` : ` (builtin)`;
72
+ const hiddenCount = p.hidden?.length ?? 0;
73
+ const enabledCount = p.enabled?.length ?? 0;
74
+ process.stdout.write(` ${tag} ${p.id.padEnd(14)} ${src.padEnd(20)} hides=${hiddenCount}, enables=${enabledCount}\n`);
75
+ process.stdout.write(` ${p.description}\n`);
76
+ }
77
+ return 0;
78
+ }
79
+ if (opts.sub === 'get') {
80
+ if (!opts.target) {
81
+ process.stderr.write('Usage: shrk surface profiles get <id>\n');
82
+ return 2;
83
+ }
84
+ const found = availableProfiles.find((p) => p.id === opts.target);
85
+ if (!found) {
86
+ process.stderr.write(`Unknown profile: ${opts.target}\n`);
87
+ return 1;
88
+ }
89
+ if (opts.json) {
90
+ process.stdout.write(asJson(found) + '\n');
91
+ return 0;
92
+ }
93
+ process.stdout.write(header(`Profile — ${found.id}`));
94
+ process.stdout.write(kv('description', found.description) + '\n');
95
+ process.stdout.write(kv('source', found.source + (found.pack ? ` (${found.pack})` : '')) + '\n');
96
+ process.stdout.write(kv('hidden', String(found.hidden?.length ?? 0)) + '\n');
97
+ process.stdout.write(kv('enabled', String(found.enabled?.length ?? 0)) + '\n');
98
+ if (found.hidden && found.hidden.length > 0) {
99
+ process.stdout.write('\nHidden:\n');
100
+ for (const h of found.hidden)
101
+ process.stdout.write(` - ${h}\n`);
102
+ }
103
+ if (found.enabled && found.enabled.length > 0) {
104
+ process.stdout.write('\nEnabled:\n');
105
+ for (const e of found.enabled)
106
+ process.stdout.write(` + ${e}\n`);
107
+ }
108
+ return 0;
109
+ }
110
+ process.stderr.write(`Unknown subcommand: surface profiles ${opts.sub}\nUse: list, get <id>\n`);
111
+ return 2;
112
+ }
113
+ async function runList({ cwd, json }) {
114
+ const { context, activeProfile } = await loadSurfaceContext({ cwd });
115
+ const summary = buildSurfaceSummary(context);
116
+ if (json) {
117
+ process.stdout.write(asJson({ ...summary, activeProfile: activeProfile?.id ?? null }) + '\n');
118
+ return 0;
119
+ }
120
+ renderSurfaceText(summary, activeProfile?.id);
121
+ return 0;
122
+ }
123
+ function renderSurfaceText(summary, activeProfileId) {
124
+ process.stdout.write(header('Command surface'));
125
+ process.stdout.write(kv('schema', summary.schema) + '\n');
126
+ process.stdout.write(kv('hash', summary.hash) + '\n');
127
+ process.stdout.write(kv('profile', activeProfileId ?? '(none — sharkcraft.config.ts surface.profile not set)') + '\n');
128
+ process.stdout.write(kv('core', String(summary.totals.core)) + '\n');
129
+ process.stdout.write(kv('extended', String(summary.totals.extended)) + '\n');
130
+ process.stdout.write(kv('experimental', String(summary.totals.experimental)) + '\n');
131
+ process.stdout.write(kv('visible in --help', String(summary.totals.visible)) + '\n');
132
+ process.stdout.write(kv('callable', String(summary.totals.callable)) + '\n');
133
+ process.stdout.write('\n');
134
+ printBucket('core', summary.tiers.core);
135
+ printBucket('extended', summary.tiers.extended);
136
+ printBucket('experimental', summary.tiers.experimental);
137
+ if (summary.warnings.length > 0) {
138
+ process.stdout.write('\nWarnings:\n');
139
+ for (const w of summary.warnings) {
140
+ process.stdout.write(` ! ${w.code}: ${w.message}\n`);
141
+ }
142
+ }
143
+ }
144
+ function printBucket(label, items) {
145
+ process.stdout.write(`-- ${label} (${items.length}) --\n`);
146
+ if (items.length === 0) {
147
+ process.stdout.write(' (empty)\n');
148
+ return;
149
+ }
150
+ const rows = items.map((c) => {
151
+ const flags = [];
152
+ if (c.hidden)
153
+ flags.push('hidden');
154
+ if (c.enabled)
155
+ flags.push('enabled');
156
+ if (!c.callable)
157
+ flags.push('gated');
158
+ if (c.pack)
159
+ flags.push(`pack:${c.pack}`);
160
+ return [
161
+ ' ' + c.command,
162
+ c.source,
163
+ flags.join(','),
164
+ c.detail ?? '',
165
+ ];
166
+ });
167
+ process.stdout.write(table(rows) + '\n');
168
+ }
169
+ async function runExplain({ cwd, json, target }) {
170
+ if (!target) {
171
+ process.stderr.write('Usage: shrk surface explain <command>\n');
172
+ return 2;
173
+ }
174
+ const { context, activeProfile } = await loadSurfaceContext({ cwd });
175
+ const summary = buildSurfaceSummary(context);
176
+ const view = findCommandInSummary(summary, target);
177
+ if (!view) {
178
+ process.stderr.write(`Unknown command: ${target}\n`);
179
+ return 2;
180
+ }
181
+ // Attribute the hide/enable to a profile when one is active.
182
+ const hiddenByProfile = !!activeProfile?.hidden?.includes(target);
183
+ const enabledByProfile = !!activeProfile?.enabled?.includes(target);
184
+ if (json) {
185
+ process.stdout.write(asJson({
186
+ ...view,
187
+ activeProfile: activeProfile?.id ?? null,
188
+ hiddenByProfile,
189
+ enabledByProfile,
190
+ }) + '\n');
191
+ return 0;
192
+ }
193
+ process.stdout.write(header(`Surface — ${target}`));
194
+ process.stdout.write(kv('tier', view.tier) + '\n');
195
+ process.stdout.write(kv('source', view.source) + '\n');
196
+ if (view.detail)
197
+ process.stdout.write(kv('detail', view.detail) + '\n');
198
+ process.stdout.write(kv('callable', String(view.callable)) + '\n');
199
+ process.stdout.write(kv('visible-in-help', String(view.visibleInHelp)) + '\n');
200
+ process.stdout.write(kv('hidden-by-config', String(view.hidden)) + '\n');
201
+ process.stdout.write(kv('enabled-by-config', String(view.enabled)) + '\n');
202
+ if (view.pack)
203
+ process.stdout.write(kv('pack', view.pack) + '\n');
204
+ if (activeProfile) {
205
+ process.stdout.write(kv('active-profile', activeProfile.id + (activeProfile.pack ? ` (${activeProfile.pack})` : ' (builtin)')) + '\n');
206
+ if (hiddenByProfile)
207
+ process.stdout.write(kv('hidden-by-profile', 'yes — profile hides this from --help') + '\n');
208
+ if (enabledByProfile)
209
+ process.stdout.write(kv('enabled-by-profile', 'yes — profile turns this on') + '\n');
210
+ }
211
+ if (view.tier === CommandTier.Experimental && !view.callable) {
212
+ process.stdout.write('\nWhy gated: ' + (view.detail ?? 'experimental — opt-in required.') + '\n');
213
+ process.stdout.write('\nTo enable:\n');
214
+ process.stdout.write(` $ shrk surface enable ${target} --write\n`);
215
+ if (activeProfile) {
216
+ process.stdout.write(`\nOr switch profile (current: ${activeProfile.id}):\n`);
217
+ process.stdout.write(' $ shrk surface profiles list\n');
218
+ }
219
+ }
220
+ else if (view.tier === CommandTier.Extended && view.hidden) {
221
+ const reason = hiddenByProfile
222
+ ? `Hidden by the active profile (${activeProfile?.id}).`
223
+ : 'Hidden by surface.hidden in sharkcraft.config.ts.';
224
+ process.stdout.write('\n' + reason + ' To restore visibility:\n');
225
+ process.stdout.write(` $ shrk surface unhide ${target} --write\n`);
226
+ }
227
+ return 0;
228
+ }
229
+ async function runMutate({ cwd, json, write, target, op }) {
230
+ if (!target) {
231
+ process.stderr.write(`Usage: shrk surface ${op} <command> [--write]\n`);
232
+ return 2;
233
+ }
234
+ const { context, inspection } = await loadSurfaceContext({ cwd });
235
+ const summary = buildSurfaceSummary(context);
236
+ const view = findCommandInSummary(summary, target);
237
+ if (!view) {
238
+ process.stderr.write(`Unknown command: ${target}\n`);
239
+ return 2;
240
+ }
241
+ const refusal = refuseIfInvalid(op, view);
242
+ if (refusal) {
243
+ process.stderr.write(refusal + '\n');
244
+ return 2;
245
+ }
246
+ const edit = toEdit(op, target);
247
+ const configFile = inspection.configFile ?? defaultConfigFile(inspection.sharkcraftDir ?? `${cwd}/sharkcraft`);
248
+ const diff = planSurfaceEdit(configFile, context.surfaceConfig, [edit]);
249
+ if (json) {
250
+ process.stdout.write(asJson({ diff, willWrite: write }) + '\n');
251
+ }
252
+ else {
253
+ renderDiffText(diff, write);
254
+ }
255
+ if (!write)
256
+ return 0;
257
+ const result = applySurfaceEdit(diff);
258
+ if (!json) {
259
+ process.stdout.write(`\nWrote ${result.configFile} (${result.edits.length} edit${result.edits.length === 1 ? '' : 's'}).\n`);
260
+ }
261
+ return 0;
262
+ }
263
+ function refuseIfInvalid(op, view) {
264
+ if (view.tier === CommandTier.Core && (op === 'disable' || op === 'hide')) {
265
+ return `Cannot ${op} a core command (${view.command}).`;
266
+ }
267
+ if (op === 'hide' && view.tier === CommandTier.Experimental) {
268
+ return `Cannot hide an experimental command (${view.command}); use disable instead.`;
269
+ }
270
+ if (op === 'enable' && view.tier !== CommandTier.Experimental && !view.enabled) {
271
+ return `Refusing no-op: ${view.command} is not experimental (tier=${view.tier}).`;
272
+ }
273
+ if (op === 'disable' && !view.enabled) {
274
+ return `Refusing no-op: ${view.command} is not currently enabled.`;
275
+ }
276
+ if (op === 'unhide' && !view.hidden) {
277
+ return `Refusing no-op: ${view.command} is not currently hidden.`;
278
+ }
279
+ return null;
280
+ }
281
+ function toEdit(op, command) {
282
+ switch (op) {
283
+ case 'enable':
284
+ return { field: 'enabled', command, operation: 'add' };
285
+ case 'disable':
286
+ return { field: 'enabled', command, operation: 'remove' };
287
+ case 'hide':
288
+ return { field: 'hidden', command, operation: 'add' };
289
+ case 'unhide':
290
+ return { field: 'hidden', command, operation: 'remove' };
291
+ }
292
+ }
293
+ async function runReset({ cwd, json, write }) {
294
+ const { context, inspection } = await loadSurfaceContext({ cwd });
295
+ const edits = [];
296
+ for (const name of context.surfaceConfig?.enabled ?? []) {
297
+ edits.push({ field: 'enabled', command: name, operation: 'remove' });
298
+ }
299
+ for (const name of context.surfaceConfig?.hidden ?? []) {
300
+ edits.push({ field: 'hidden', command: name, operation: 'remove' });
301
+ }
302
+ const configFile = inspection.configFile ?? defaultConfigFile(inspection.sharkcraftDir ?? `${cwd}/sharkcraft`);
303
+ const diff = planSurfaceEdit(configFile, context.surfaceConfig, edits);
304
+ if (json) {
305
+ process.stdout.write(asJson({ diff, willWrite: write }) + '\n');
306
+ }
307
+ else {
308
+ renderDiffText(diff, write);
309
+ }
310
+ if (!write)
311
+ return 0;
312
+ applySurfaceEdit(diff);
313
+ if (!json)
314
+ process.stdout.write(`\nWrote ${diff.configFile} (reset).\n`);
315
+ return 0;
316
+ }
317
+ function renderDiffText(diff, willWrite) {
318
+ process.stdout.write(header('Surface config edit'));
319
+ process.stdout.write(kv('configFile', diff.configFile) + '\n');
320
+ process.stdout.write(kv('edits', String(diff.edits.length)) + '\n');
321
+ for (const edit of diff.edits) {
322
+ const sign = edit.operation === 'add' ? '+' : '-';
323
+ process.stdout.write(` ${sign} surface.${edit.field}: ${edit.command}\n`);
324
+ }
325
+ if (!willWrite) {
326
+ process.stdout.write('\nDry run. Pass --write to apply.\n');
327
+ }
328
+ }
@@ -0,0 +1,7 @@
1
+ import { type ICommandHandler } from '../command-registry.js';
2
+ export declare const understandTaskCommand: ICommandHandler;
3
+ export declare const validateChangeCommand: ICommandHandler;
4
+ export declare const contextBuildCommand: ICommandHandler;
5
+ export declare const contextRefreshCommand: ICommandHandler;
6
+ export declare const contextStatusCommand: ICommandHandler;
7
+ //# sourceMappingURL=task-context.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-context.command.d.ts","sourceRoot":"","sources":["../../src/commands/task-context.command.ts"],"names":[],"mappings":"AAsBA,OAAO,EAKL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAahC,eAAO,MAAM,qBAAqB,EAAE,eAyEnC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,eAmEnC,CAAC;AAIF,eAAO,MAAM,mBAAmB,EAAE,eA2DjC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,eAqBnC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,eAoBlC,CAAC"}