@shrkcrft/inspector 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 (705) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -0
  3. package/dist/acceptance-replay.d.ts +63 -0
  4. package/dist/acceptance-replay.d.ts.map +1 -0
  5. package/dist/acceptance-replay.js +240 -0
  6. package/dist/action-hint-diagnostics.d.ts +32 -0
  7. package/dist/action-hint-diagnostics.d.ts.map +1 -0
  8. package/dist/action-hint-diagnostics.js +133 -0
  9. package/dist/adoption-check.d.ts +28 -0
  10. package/dist/adoption-check.d.ts.map +1 -0
  11. package/dist/adoption-check.js +181 -0
  12. package/dist/adoption-checkpoint.d.ts +97 -0
  13. package/dist/adoption-checkpoint.d.ts.map +1 -0
  14. package/dist/adoption-checkpoint.js +209 -0
  15. package/dist/adoption-merge-preview.d.ts +28 -0
  16. package/dist/adoption-merge-preview.d.ts.map +1 -0
  17. package/dist/adoption-merge-preview.js +254 -0
  18. package/dist/adoption-report-renderer.d.ts +33 -0
  19. package/dist/adoption-report-renderer.d.ts.map +1 -0
  20. package/dist/adoption-report-renderer.js +257 -0
  21. package/dist/adoption-state.d.ts +100 -0
  22. package/dist/adoption-state.d.ts.map +1 -0
  23. package/dist/adoption-state.js +296 -0
  24. package/dist/adoption-three-way.d.ts +46 -0
  25. package/dist/adoption-three-way.d.ts.map +1 -0
  26. package/dist/adoption-three-way.js +181 -0
  27. package/dist/agent-brief.d.ts +77 -0
  28. package/dist/agent-brief.d.ts.map +1 -0
  29. package/dist/agent-brief.js +490 -0
  30. package/dist/agent-contract-gate.d.ts +108 -0
  31. package/dist/agent-contract-gate.d.ts.map +1 -0
  32. package/dist/agent-contract-gate.js +412 -0
  33. package/dist/agent-contract-templates.d.ts +63 -0
  34. package/dist/agent-contract-templates.d.ts.map +1 -0
  35. package/dist/agent-contract-templates.js +346 -0
  36. package/dist/agent-contract.d.ts +65 -0
  37. package/dist/agent-contract.d.ts.map +1 -0
  38. package/dist/agent-contract.js +555 -0
  39. package/dist/agent-handoff.d.ts +123 -0
  40. package/dist/agent-handoff.d.ts.map +1 -0
  41. package/dist/agent-handoff.js +470 -0
  42. package/dist/agent-instructions.d.ts +2 -0
  43. package/dist/agent-instructions.d.ts.map +1 -0
  44. package/dist/agent-instructions.js +21 -0
  45. package/dist/agent-orchestration.d.ts +61 -0
  46. package/dist/agent-orchestration.d.ts.map +1 -0
  47. package/dist/agent-orchestration.js +285 -0
  48. package/dist/agent-task-prep.d.ts +31 -0
  49. package/dist/agent-task-prep.d.ts.map +1 -0
  50. package/dist/agent-task-prep.js +73 -0
  51. package/dist/ai-readiness.d.ts +30 -0
  52. package/dist/ai-readiness.d.ts.map +1 -0
  53. package/dist/ai-readiness.js +279 -0
  54. package/dist/api-report.d.ts +51 -0
  55. package/dist/api-report.d.ts.map +1 -0
  56. package/dist/api-report.js +254 -0
  57. package/dist/apply-dispatch-trace.d.ts +93 -0
  58. package/dist/apply-dispatch-trace.d.ts.map +1 -0
  59. package/dist/apply-dispatch-trace.js +283 -0
  60. package/dist/apply-gate-result.d.ts +52 -0
  61. package/dist/apply-gate-result.d.ts.map +1 -0
  62. package/dist/apply-gate-result.js +44 -0
  63. package/dist/architecture-map.d.ts +118 -0
  64. package/dist/architecture-map.d.ts.map +1 -0
  65. package/dist/architecture-map.js +543 -0
  66. package/dist/area-explore.d.ts +75 -0
  67. package/dist/area-explore.d.ts.map +1 -0
  68. package/dist/area-explore.js +438 -0
  69. package/dist/area-map.d.ts +43 -0
  70. package/dist/area-map.d.ts.map +1 -0
  71. package/dist/area-map.js +197 -0
  72. package/dist/asset-provenance.d.ts +123 -0
  73. package/dist/asset-provenance.d.ts.map +1 -0
  74. package/dist/asset-provenance.js +209 -0
  75. package/dist/barrel-operations.d.ts +45 -0
  76. package/dist/barrel-operations.d.ts.map +1 -0
  77. package/dist/barrel-operations.js +159 -0
  78. package/dist/boundaries-changed-only.d.ts +62 -0
  79. package/dist/boundaries-changed-only.d.ts.map +1 -0
  80. package/dist/boundaries-changed-only.js +97 -0
  81. package/dist/boundary-suggestions.d.ts +20 -0
  82. package/dist/boundary-suggestions.d.ts.map +1 -0
  83. package/dist/boundary-suggestions.js +51 -0
  84. package/dist/bundle-diff.d.ts +98 -0
  85. package/dist/bundle-diff.d.ts.map +1 -0
  86. package/dist/bundle-diff.js +531 -0
  87. package/dist/bundle-replay.d.ts +68 -0
  88. package/dist/bundle-replay.d.ts.map +1 -0
  89. package/dist/bundle-replay.js +273 -0
  90. package/dist/bundle-validate-html.d.ts +11 -0
  91. package/dist/bundle-validate-html.d.ts.map +1 -0
  92. package/dist/bundle-validate-html.js +60 -0
  93. package/dist/change-intent.d.ts +36 -0
  94. package/dist/change-intent.d.ts.map +1 -0
  95. package/dist/change-intent.js +259 -0
  96. package/dist/changed-preflight.d.ts +59 -0
  97. package/dist/changed-preflight.d.ts.map +1 -0
  98. package/dist/changed-preflight.js +358 -0
  99. package/dist/changed-scope.d.ts +112 -0
  100. package/dist/changed-scope.d.ts.map +1 -0
  101. package/dist/changed-scope.js +172 -0
  102. package/dist/changes-summary.d.ts +87 -0
  103. package/dist/changes-summary.d.ts.map +1 -0
  104. package/dist/changes-summary.js +323 -0
  105. package/dist/check-result-v1.d.ts +90 -0
  106. package/dist/check-result-v1.d.ts.map +1 -0
  107. package/dist/check-result-v1.js +335 -0
  108. package/dist/ci-integrity-report.d.ts +38 -0
  109. package/dist/ci-integrity-report.d.ts.map +1 -0
  110. package/dist/ci-integrity-report.js +324 -0
  111. package/dist/ci-permissions-fix.d.ts +38 -0
  112. package/dist/ci-permissions-fix.d.ts.map +1 -0
  113. package/dist/ci-permissions-fix.js +201 -0
  114. package/dist/ci-permissions.d.ts +51 -0
  115. package/dist/ci-permissions.d.ts.map +1 -0
  116. package/dist/ci-permissions.js +431 -0
  117. package/dist/ci-predict.d.ts +42 -0
  118. package/dist/ci-predict.d.ts.map +1 -0
  119. package/dist/ci-predict.js +300 -0
  120. package/dist/ci-scaffold.d.ts +47 -0
  121. package/dist/ci-scaffold.d.ts.map +1 -0
  122. package/dist/ci-scaffold.js +638 -0
  123. package/dist/codemod-assist.d.ts +97 -0
  124. package/dist/codemod-assist.d.ts.map +1 -0
  125. package/dist/codemod-assist.js +261 -0
  126. package/dist/command-recommender.d.ts +25 -0
  127. package/dist/command-recommender.d.ts.map +1 -0
  128. package/dist/command-recommender.js +145 -0
  129. package/dist/command-suggester.d.ts +61 -0
  130. package/dist/command-suggester.d.ts.map +1 -0
  131. package/dist/command-suggester.js +159 -0
  132. package/dist/command-taxonomy.d.ts +38 -0
  133. package/dist/command-taxonomy.d.ts.map +1 -0
  134. package/dist/command-taxonomy.js +164 -0
  135. package/dist/compliance-evidence.d.ts +58 -0
  136. package/dist/compliance-evidence.d.ts.map +1 -0
  137. package/dist/compliance-evidence.js +260 -0
  138. package/dist/compliance-profiles.d.ts +42 -0
  139. package/dist/compliance-profiles.d.ts.map +1 -0
  140. package/dist/compliance-profiles.js +171 -0
  141. package/dist/construct-adoption-diff.d.ts +55 -0
  142. package/dist/construct-adoption-diff.d.ts.map +1 -0
  143. package/dist/construct-adoption-diff.js +331 -0
  144. package/dist/construct-adoption.d.ts +71 -0
  145. package/dist/construct-adoption.d.ts.map +1 -0
  146. package/dist/construct-adoption.js +331 -0
  147. package/dist/construct-inference.d.ts +44 -0
  148. package/dist/construct-inference.d.ts.map +1 -0
  149. package/dist/construct-inference.js +391 -0
  150. package/dist/construct-registry.d.ts +32 -0
  151. package/dist/construct-registry.d.ts.map +1 -0
  152. package/dist/construct-registry.js +198 -0
  153. package/dist/contract-file-rule.d.ts +37 -0
  154. package/dist/contract-file-rule.d.ts.map +1 -0
  155. package/dist/contract-file-rule.js +99 -0
  156. package/dist/contract-template-registry.d.ts +28 -0
  157. package/dist/contract-template-registry.d.ts.map +1 -0
  158. package/dist/contract-template-registry.js +161 -0
  159. package/dist/contradictions.d.ts +52 -0
  160. package/dist/contradictions.d.ts.map +1 -0
  161. package/dist/contradictions.js +391 -0
  162. package/dist/convention-registry.d.ts +44 -0
  163. package/dist/convention-registry.d.ts.map +1 -0
  164. package/dist/convention-registry.js +195 -0
  165. package/dist/coverage-report.d.ts +25 -0
  166. package/dist/coverage-report.d.ts.map +1 -0
  167. package/dist/coverage-report.js +190 -0
  168. package/dist/custom-checks.d.ts +146 -0
  169. package/dist/custom-checks.d.ts.map +1 -0
  170. package/dist/custom-checks.js +260 -0
  171. package/dist/dashboard/dashboard-data.d.ts +59 -0
  172. package/dist/dashboard/dashboard-data.d.ts.map +1 -0
  173. package/dist/dashboard/dashboard-data.js +653 -0
  174. package/dist/dashboard-export.d.ts +67 -0
  175. package/dist/dashboard-export.d.ts.map +1 -0
  176. package/dist/dashboard-export.js +203 -0
  177. package/dist/decision-records.d.ts +47 -0
  178. package/dist/decision-records.d.ts.map +1 -0
  179. package/dist/decision-records.js +255 -0
  180. package/dist/demo-package.d.ts +49 -0
  181. package/dist/demo-package.d.ts.map +1 -0
  182. package/dist/demo-package.js +305 -0
  183. package/dist/demo-script.d.ts +25 -0
  184. package/dist/demo-script.d.ts.map +1 -0
  185. package/dist/demo-script.js +198 -0
  186. package/dist/demo-workflow.d.ts +28 -0
  187. package/dist/demo-workflow.d.ts.map +1 -0
  188. package/dist/demo-workflow.js +178 -0
  189. package/dist/dev-cycle.d.ts +41 -0
  190. package/dist/dev-cycle.d.ts.map +1 -0
  191. package/dist/dev-cycle.js +94 -0
  192. package/dist/dev-session-html.d.ts +13 -0
  193. package/dist/dev-session-html.d.ts.map +1 -0
  194. package/dist/dev-session-html.js +223 -0
  195. package/dist/dev-session-report.d.ts +11 -0
  196. package/dist/dev-session-report.d.ts.map +1 -0
  197. package/dist/dev-session-report.js +206 -0
  198. package/dist/dev-session.d.ts +257 -0
  199. package/dist/dev-session.d.ts.map +1 -0
  200. package/dist/dev-session.js +568 -0
  201. package/dist/diagnostics-suggest.d.ts +17 -0
  202. package/dist/diagnostics-suggest.d.ts.map +1 -0
  203. package/dist/diagnostics-suggest.js +69 -0
  204. package/dist/docs-check.d.ts +40 -0
  205. package/dist/docs-check.d.ts.map +1 -0
  206. package/dist/docs-check.js +221 -0
  207. package/dist/doctor-acknowledgements.d.ts +69 -0
  208. package/dist/doctor-acknowledgements.d.ts.map +1 -0
  209. package/dist/doctor-acknowledgements.js +150 -0
  210. package/dist/doctor-result.d.ts +51 -0
  211. package/dist/doctor-result.d.ts.map +1 -0
  212. package/dist/doctor-result.js +7 -0
  213. package/dist/doctor-suppressions.d.ts +91 -0
  214. package/dist/doctor-suppressions.d.ts.map +1 -0
  215. package/dist/doctor-suppressions.js +238 -0
  216. package/dist/drift-baseline.d.ts +29 -0
  217. package/dist/drift-baseline.d.ts.map +1 -0
  218. package/dist/drift-baseline.js +80 -0
  219. package/dist/drift.d.ts +38 -0
  220. package/dist/drift.d.ts.map +1 -0
  221. package/dist/drift.js +107 -0
  222. package/dist/entrypoint-matrix.d.ts +61 -0
  223. package/dist/entrypoint-matrix.d.ts.map +1 -0
  224. package/dist/entrypoint-matrix.js +221 -0
  225. package/dist/examples-check.d.ts +36 -0
  226. package/dist/examples-check.d.ts.map +1 -0
  227. package/dist/examples-check.js +168 -0
  228. package/dist/execution-graph.d.ts +98 -0
  229. package/dist/execution-graph.d.ts.map +1 -0
  230. package/dist/execution-graph.js +484 -0
  231. package/dist/export-bundle.d.ts +10 -0
  232. package/dist/export-bundle.d.ts.map +1 -0
  233. package/dist/export-bundle.js +90 -0
  234. package/dist/failure-diagnostics.d.ts +63 -0
  235. package/dist/failure-diagnostics.d.ts.map +1 -0
  236. package/dist/failure-diagnostics.js +243 -0
  237. package/dist/feature-bundle.d.ts +111 -0
  238. package/dist/feature-bundle.d.ts.map +1 -0
  239. package/dist/feature-bundle.js +211 -0
  240. package/dist/feedback-actions-v2.d.ts +65 -0
  241. package/dist/feedback-actions-v2.d.ts.map +1 -0
  242. package/dist/feedback-actions-v2.js +183 -0
  243. package/dist/feedback-ingestion.d.ts +96 -0
  244. package/dist/feedback-ingestion.d.ts.map +1 -0
  245. package/dist/feedback-ingestion.js +400 -0
  246. package/dist/fix-preview.d.ts +82 -0
  247. package/dist/fix-preview.d.ts.map +1 -0
  248. package/dist/fix-preview.js +365 -0
  249. package/dist/fuzzy-impact.d.ts +50 -0
  250. package/dist/fuzzy-impact.d.ts.map +1 -0
  251. package/dist/fuzzy-impact.js +446 -0
  252. package/dist/generated-code.d.ts +97 -0
  253. package/dist/generated-code.d.ts.map +1 -0
  254. package/dist/generated-code.js +395 -0
  255. package/dist/git-helpers.d.ts +26 -0
  256. package/dist/git-helpers.d.ts.map +1 -0
  257. package/dist/git-helpers.js +110 -0
  258. package/dist/golden-output.d.ts +33 -0
  259. package/dist/golden-output.d.ts.map +1 -0
  260. package/dist/golden-output.js +92 -0
  261. package/dist/grounding/build-grounding.d.ts +53 -0
  262. package/dist/grounding/build-grounding.d.ts.map +1 -0
  263. package/dist/grounding/build-grounding.js +51 -0
  264. package/dist/grounding/nx-projects.d.ts +29 -0
  265. package/dist/grounding/nx-projects.d.ts.map +1 -0
  266. package/dist/grounding/nx-projects.js +109 -0
  267. package/dist/grounding/validate-extracted-plan.d.ts +20 -0
  268. package/dist/grounding/validate-extracted-plan.d.ts.map +1 -0
  269. package/dist/grounding/validate-extracted-plan.js +127 -0
  270. package/dist/healing-plan.d.ts +33 -0
  271. package/dist/healing-plan.d.ts.map +1 -0
  272. package/dist/healing-plan.js +346 -0
  273. package/dist/helper-registry.d.ts +90 -0
  274. package/dist/helper-registry.d.ts.map +1 -0
  275. package/dist/helper-registry.js +529 -0
  276. package/dist/impact-analysis.d.ts +150 -0
  277. package/dist/impact-analysis.d.ts.map +1 -0
  278. package/dist/impact-analysis.js +697 -0
  279. package/dist/impact-graph-render.d.ts +51 -0
  280. package/dist/impact-graph-render.d.ts.map +1 -0
  281. package/dist/impact-graph-render.js +139 -0
  282. package/dist/impact-graph.d.ts +17 -0
  283. package/dist/impact-graph.d.ts.map +1 -0
  284. package/dist/impact-graph.js +119 -0
  285. package/dist/impact-render.d.ts +22 -0
  286. package/dist/impact-render.d.ts.map +1 -0
  287. package/dist/impact-render.js +413 -0
  288. package/dist/import-graph-analysis.d.ts +28 -0
  289. package/dist/import-graph-analysis.d.ts.map +1 -0
  290. package/dist/import-graph-analysis.js +193 -0
  291. package/dist/import-hygiene.d.ts +93 -0
  292. package/dist/import-hygiene.d.ts.map +1 -0
  293. package/dist/import-hygiene.js +366 -0
  294. package/dist/index.d.ts +223 -0
  295. package/dist/index.d.ts.map +1 -0
  296. package/dist/index.js +233 -0
  297. package/dist/ingest-adoption.d.ts +50 -0
  298. package/dist/ingest-adoption.d.ts.map +1 -0
  299. package/dist/ingest-adoption.js +183 -0
  300. package/dist/ingest-apply.d.ts +80 -0
  301. package/dist/ingest-apply.d.ts.map +1 -0
  302. package/dist/ingest-apply.js +227 -0
  303. package/dist/ingest-body-extractor.d.ts +28 -0
  304. package/dist/ingest-body-extractor.d.ts.map +1 -0
  305. package/dist/ingest-body-extractor.js +129 -0
  306. package/dist/ingest-drafts.d.ts +16 -0
  307. package/dist/ingest-drafts.d.ts.map +1 -0
  308. package/dist/ingest-drafts.js +482 -0
  309. package/dist/inspector-cache.d.ts +41 -0
  310. package/dist/inspector-cache.d.ts.map +1 -0
  311. package/dist/inspector-cache.js +104 -0
  312. package/dist/install-smoke.d.ts +44 -0
  313. package/dist/install-smoke.d.ts.map +1 -0
  314. package/dist/install-smoke.js +31 -0
  315. package/dist/knowledge-authoring.d.ts +151 -0
  316. package/dist/knowledge-authoring.d.ts.map +1 -0
  317. package/dist/knowledge-authoring.js +586 -0
  318. package/dist/knowledge-graph.d.ts +76 -0
  319. package/dist/knowledge-graph.d.ts.map +1 -0
  320. package/dist/knowledge-graph.js +336 -0
  321. package/dist/knowledge-lint.d.ts +97 -0
  322. package/dist/knowledge-lint.d.ts.map +1 -0
  323. package/dist/knowledge-lint.js +302 -0
  324. package/dist/knowledge-rename.d.ts +38 -0
  325. package/dist/knowledge-rename.d.ts.map +1 -0
  326. package/dist/knowledge-rename.js +88 -0
  327. package/dist/knowledge-stale.d.ts +124 -0
  328. package/dist/knowledge-stale.d.ts.map +1 -0
  329. package/dist/knowledge-stale.js +892 -0
  330. package/dist/languages/command-inference.d.ts +27 -0
  331. package/dist/languages/command-inference.d.ts.map +1 -0
  332. package/dist/languages/command-inference.js +214 -0
  333. package/dist/languages/dependency-scan.d.ts +33 -0
  334. package/dist/languages/dependency-scan.d.ts.map +1 -0
  335. package/dist/languages/dependency-scan.js +343 -0
  336. package/dist/languages/index.d.ts +14 -0
  337. package/dist/languages/index.d.ts.map +1 -0
  338. package/dist/languages/index.js +13 -0
  339. package/dist/languages/language-boundaries.d.ts +30 -0
  340. package/dist/languages/language-boundaries.d.ts.map +1 -0
  341. package/dist/languages/language-boundaries.js +176 -0
  342. package/dist/languages/language-cache.d.ts +54 -0
  343. package/dist/languages/language-cache.d.ts.map +1 -0
  344. package/dist/languages/language-cache.js +236 -0
  345. package/dist/languages/language-detection.d.ts +30 -0
  346. package/dist/languages/language-detection.d.ts.map +1 -0
  347. package/dist/languages/language-detection.js +584 -0
  348. package/dist/languages/language-id.d.ts +15 -0
  349. package/dist/languages/language-id.d.ts.map +1 -0
  350. package/dist/languages/language-id.js +15 -0
  351. package/dist/languages/language-runner.d.ts +90 -0
  352. package/dist/languages/language-runner.d.ts.map +1 -0
  353. package/dist/languages/language-runner.js +346 -0
  354. package/dist/languages/polyglot-boundary.d.ts +80 -0
  355. package/dist/languages/polyglot-boundary.d.ts.map +1 -0
  356. package/dist/languages/polyglot-boundary.js +373 -0
  357. package/dist/languages/polyglot-ci.d.ts +25 -0
  358. package/dist/languages/polyglot-ci.d.ts.map +1 -0
  359. package/dist/languages/polyglot-ci.js +278 -0
  360. package/dist/languages/test-impact.d.ts +19 -0
  361. package/dist/languages/test-impact.d.ts.map +1 -0
  362. package/dist/languages/test-impact.js +157 -0
  363. package/dist/loader-diagnostics.d.ts +40 -0
  364. package/dist/loader-diagnostics.d.ts.map +1 -0
  365. package/dist/loader-diagnostics.js +49 -0
  366. package/dist/memory-diff.d.ts +60 -0
  367. package/dist/memory-diff.d.ts.map +1 -0
  368. package/dist/memory-diff.js +302 -0
  369. package/dist/migration-profile-registry.d.ts +26 -0
  370. package/dist/migration-profile-registry.d.ts.map +1 -0
  371. package/dist/migration-profile-registry.js +135 -0
  372. package/dist/migration-readiness.d.ts +101 -0
  373. package/dist/migration-readiness.d.ts.map +1 -0
  374. package/dist/migration-readiness.js +253 -0
  375. package/dist/monorepo-onboarding.d.ts +51 -0
  376. package/dist/monorepo-onboarding.d.ts.map +1 -0
  377. package/dist/monorepo-onboarding.js +235 -0
  378. package/dist/onboarding-adoption-diff.d.ts +53 -0
  379. package/dist/onboarding-adoption-diff.d.ts.map +1 -0
  380. package/dist/onboarding-adoption-diff.js +285 -0
  381. package/dist/onboarding-adoption.d.ts +136 -0
  382. package/dist/onboarding-adoption.d.ts.map +1 -0
  383. package/dist/onboarding-adoption.js +702 -0
  384. package/dist/onboarding-agent-import.d.ts +40 -0
  385. package/dist/onboarding-agent-import.d.ts.map +1 -0
  386. package/dist/onboarding-agent-import.js +114 -0
  387. package/dist/onboarding-diff.d.ts +39 -0
  388. package/dist/onboarding-diff.d.ts.map +1 -0
  389. package/dist/onboarding-diff.js +240 -0
  390. package/dist/onboarding-drafts.d.ts +28 -0
  391. package/dist/onboarding-drafts.d.ts.map +1 -0
  392. package/dist/onboarding-drafts.js +234 -0
  393. package/dist/onboarding-report.d.ts +8 -0
  394. package/dist/onboarding-report.d.ts.map +1 -0
  395. package/dist/onboarding-report.js +239 -0
  396. package/dist/onboarding.d.ts +134 -0
  397. package/dist/onboarding.d.ts.map +1 -0
  398. package/dist/onboarding.js +729 -0
  399. package/dist/ownership.d.ts +38 -0
  400. package/dist/ownership.d.ts.map +1 -0
  401. package/dist/ownership.js +102 -0
  402. package/dist/pack-author-ux.d.ts +58 -0
  403. package/dist/pack-author-ux.d.ts.map +1 -0
  404. package/dist/pack-author-ux.js +219 -0
  405. package/dist/pack-author.d.ts +94 -0
  406. package/dist/pack-author.d.ts.map +1 -0
  407. package/dist/pack-author.js +208 -0
  408. package/dist/pack-compatibility.d.ts +21 -0
  409. package/dist/pack-compatibility.d.ts.map +1 -0
  410. package/dist/pack-compatibility.js +114 -0
  411. package/dist/pack-contributions-inventory.d.ts +121 -0
  412. package/dist/pack-contributions-inventory.d.ts.map +1 -0
  413. package/dist/pack-contributions-inventory.js +732 -0
  414. package/dist/pack-docs.d.ts +11 -0
  415. package/dist/pack-docs.d.ts.map +1 -0
  416. package/dist/pack-docs.js +101 -0
  417. package/dist/pack-doctor.d.ts +50 -0
  418. package/dist/pack-doctor.d.ts.map +1 -0
  419. package/dist/pack-doctor.js +302 -0
  420. package/dist/pack-helper-registry.d.ts +29 -0
  421. package/dist/pack-helper-registry.d.ts.map +1 -0
  422. package/dist/pack-helper-registry.js +144 -0
  423. package/dist/pack-pending.d.ts +68 -0
  424. package/dist/pack-pending.d.ts.map +1 -0
  425. package/dist/pack-pending.js +189 -0
  426. package/dist/pack-quality-score.d.ts +44 -0
  427. package/dist/pack-quality-score.d.ts.map +1 -0
  428. package/dist/pack-quality-score.js +155 -0
  429. package/dist/pack-release-check.d.ts +24 -0
  430. package/dist/pack-release-check.d.ts.map +1 -0
  431. package/dist/pack-release-check.js +258 -0
  432. package/dist/pack-signature-status.d.ts +72 -0
  433. package/dist/pack-signature-status.d.ts.map +1 -0
  434. package/dist/pack-signature-status.js +222 -0
  435. package/dist/pack-symbol-compat.d.ts +60 -0
  436. package/dist/pack-symbol-compat.d.ts.map +1 -0
  437. package/dist/pack-symbol-compat.js +371 -0
  438. package/dist/pack-test-runner.d.ts +59 -0
  439. package/dist/pack-test-runner.d.ts.map +1 -0
  440. package/dist/pack-test-runner.js +211 -0
  441. package/dist/pipeline-command-dictionary.d.ts +2 -0
  442. package/dist/pipeline-command-dictionary.d.ts.map +1 -0
  443. package/dist/pipeline-command-dictionary.js +20 -0
  444. package/dist/pipeline-lint.d.ts +30 -0
  445. package/dist/pipeline-lint.d.ts.map +1 -0
  446. package/dist/pipeline-lint.js +134 -0
  447. package/dist/plan-dependency-graph.d.ts +25 -0
  448. package/dist/plan-dependency-graph.d.ts.map +1 -0
  449. package/dist/plan-dependency-graph.js +195 -0
  450. package/dist/plan-review.d.ts +64 -0
  451. package/dist/plan-review.d.ts.map +1 -0
  452. package/dist/plan-review.js +242 -0
  453. package/dist/plan-simulation.d.ts +108 -0
  454. package/dist/plan-simulation.d.ts.map +1 -0
  455. package/dist/plan-simulation.js +767 -0
  456. package/dist/playbook-registry.d.ts +25 -0
  457. package/dist/playbook-registry.d.ts.map +1 -0
  458. package/dist/playbook-registry.js +148 -0
  459. package/dist/playbook-script.d.ts +60 -0
  460. package/dist/playbook-script.d.ts.map +1 -0
  461. package/dist/playbook-script.js +161 -0
  462. package/dist/plugin-lifecycle-profile-registry.d.ts +52 -0
  463. package/dist/plugin-lifecycle-profile-registry.d.ts.map +1 -0
  464. package/dist/plugin-lifecycle-profile-registry.js +202 -0
  465. package/dist/plugin-lifecycle.d.ts +132 -0
  466. package/dist/plugin-lifecycle.d.ts.map +1 -0
  467. package/dist/plugin-lifecycle.js +477 -0
  468. package/dist/policy-engine.d.ts +101 -0
  469. package/dist/policy-engine.d.ts.map +1 -0
  470. package/dist/policy-engine.js +321 -0
  471. package/dist/policy-override-audit.d.ts +18 -0
  472. package/dist/policy-override-audit.d.ts.map +1 -0
  473. package/dist/policy-override-audit.js +54 -0
  474. package/dist/policy-overrides.d.ts +35 -0
  475. package/dist/policy-overrides.d.ts.map +1 -0
  476. package/dist/policy-overrides.js +84 -0
  477. package/dist/policy-test.d.ts +83 -0
  478. package/dist/policy-test.d.ts.map +1 -0
  479. package/dist/policy-test.js +342 -0
  480. package/dist/pr-summary.d.ts +34 -0
  481. package/dist/pr-summary.d.ts.map +1 -0
  482. package/dist/pr-summary.js +220 -0
  483. package/dist/product-coherence.d.ts +21 -0
  484. package/dist/product-coherence.d.ts.map +1 -0
  485. package/dist/product-coherence.js +158 -0
  486. package/dist/profile-registry.d.ts +42 -0
  487. package/dist/profile-registry.d.ts.map +1 -0
  488. package/dist/profile-registry.js +104 -0
  489. package/dist/project-coupling-audit.d.ts +64 -0
  490. package/dist/project-coupling-audit.d.ts.map +1 -0
  491. package/dist/project-coupling-audit.js +282 -0
  492. package/dist/project-overview.d.ts +14 -0
  493. package/dist/project-overview.d.ts.map +1 -0
  494. package/dist/project-overview.js +27 -0
  495. package/dist/propose-knowledge.d.ts +64 -0
  496. package/dist/propose-knowledge.d.ts.map +1 -0
  497. package/dist/propose-knowledge.js +367 -0
  498. package/dist/quality-baseline.d.ts +123 -0
  499. package/dist/quality-baseline.d.ts.map +1 -0
  500. package/dist/quality-baseline.js +433 -0
  501. package/dist/quality-html.d.ts +7 -0
  502. package/dist/quality-html.d.ts.map +1 -0
  503. package/dist/quality-html.js +64 -0
  504. package/dist/quality-report.d.ts +49 -0
  505. package/dist/quality-report.d.ts.map +1 -0
  506. package/dist/quality-report.js +296 -0
  507. package/dist/query-resolver.d.ts +38 -0
  508. package/dist/query-resolver.d.ts.map +1 -0
  509. package/dist/query-resolver.js +163 -0
  510. package/dist/ranker-explainability.d.ts +91 -0
  511. package/dist/ranker-explainability.d.ts.map +1 -0
  512. package/dist/ranker-explainability.js +550 -0
  513. package/dist/reference-lookup.d.ts +8 -0
  514. package/dist/reference-lookup.d.ts.map +1 -0
  515. package/dist/reference-lookup.js +18 -0
  516. package/dist/registration-hint-registry.d.ts +55 -0
  517. package/dist/registration-hint-registry.d.ts.map +1 -0
  518. package/dist/registration-hint-registry.js +327 -0
  519. package/dist/registry-lifecycle.d.ts +47 -0
  520. package/dist/registry-lifecycle.d.ts.map +1 -0
  521. package/dist/registry-lifecycle.js +214 -0
  522. package/dist/release-readiness.d.ts +64 -0
  523. package/dist/release-readiness.d.ts.map +1 -0
  524. package/dist/release-readiness.js +456 -0
  525. package/dist/release-smoke.d.ts +138 -0
  526. package/dist/release-smoke.d.ts.map +1 -0
  527. package/dist/release-smoke.js +459 -0
  528. package/dist/release-train.d.ts +33 -0
  529. package/dist/release-train.d.ts.map +1 -0
  530. package/dist/release-train.js +104 -0
  531. package/dist/repo-memory.d.ts +95 -0
  532. package/dist/repo-memory.d.ts.map +1 -0
  533. package/dist/repo-memory.js +614 -0
  534. package/dist/report-site.d.ts +92 -0
  535. package/dist/report-site.d.ts.map +1 -0
  536. package/dist/report-site.js +658 -0
  537. package/dist/reposet.d.ts +56 -0
  538. package/dist/reposet.d.ts.map +1 -0
  539. package/dist/reposet.js +160 -0
  540. package/dist/repository-intelligence.d.ts +145 -0
  541. package/dist/repository-intelligence.d.ts.map +1 -0
  542. package/dist/repository-intelligence.js +729 -0
  543. package/dist/repository-knowledge-model.d.ts +218 -0
  544. package/dist/repository-knowledge-model.d.ts.map +1 -0
  545. package/dist/repository-knowledge-model.js +939 -0
  546. package/dist/repository-map.d.ts +72 -0
  547. package/dist/repository-map.d.ts.map +1 -0
  548. package/dist/repository-map.js +332 -0
  549. package/dist/repository-stats.d.ts +66 -0
  550. package/dist/repository-stats.d.ts.map +1 -0
  551. package/dist/repository-stats.js +329 -0
  552. package/dist/review-comment-renderer.d.ts +59 -0
  553. package/dist/review-comment-renderer.d.ts.map +1 -0
  554. package/dist/review-comment-renderer.js +181 -0
  555. package/dist/review-comment-v2.d.ts +9 -0
  556. package/dist/review-comment-v2.d.ts.map +1 -0
  557. package/dist/review-comment-v2.js +178 -0
  558. package/dist/review-html.d.ts +13 -0
  559. package/dist/review-html.d.ts.map +1 -0
  560. package/dist/review-html.js +79 -0
  561. package/dist/review-packet-v2.d.ts +29 -0
  562. package/dist/review-packet-v2.d.ts.map +1 -0
  563. package/dist/review-packet-v2.js +71 -0
  564. package/dist/review-packet-v3.d.ts +22 -0
  565. package/dist/review-packet-v3.d.ts.map +1 -0
  566. package/dist/review-packet-v3.js +181 -0
  567. package/dist/review-packet.d.ts +49 -0
  568. package/dist/review-packet.d.ts.map +1 -0
  569. package/dist/review-packet.js +129 -0
  570. package/dist/risk-signals.d.ts +28 -0
  571. package/dist/risk-signals.d.ts.map +1 -0
  572. package/dist/risk-signals.js +68 -0
  573. package/dist/role-views.d.ts +50 -0
  574. package/dist/role-views.d.ts.map +1 -0
  575. package/dist/role-views.js +334 -0
  576. package/dist/rounds.d.ts +52 -0
  577. package/dist/rounds.d.ts.map +1 -0
  578. package/dist/rounds.js +172 -0
  579. package/dist/rule-drift.d.ts +42 -0
  580. package/dist/rule-drift.d.ts.map +1 -0
  581. package/dist/rule-drift.js +148 -0
  582. package/dist/rule-quality.d.ts +73 -0
  583. package/dist/rule-quality.d.ts.map +1 -0
  584. package/dist/rule-quality.js +356 -0
  585. package/dist/rule-scaffold.d.ts +71 -0
  586. package/dist/rule-scaffold.d.ts.map +1 -0
  587. package/dist/rule-scaffold.js +258 -0
  588. package/dist/safety-audit-deep.d.ts +38 -0
  589. package/dist/safety-audit-deep.d.ts.map +1 -0
  590. package/dist/safety-audit-deep.js +162 -0
  591. package/dist/safety-audit.d.ts +91 -0
  592. package/dist/safety-audit.d.ts.map +1 -0
  593. package/dist/safety-audit.js +138 -0
  594. package/dist/safety-html.d.ts +7 -0
  595. package/dist/safety-html.d.ts.map +1 -0
  596. package/dist/safety-html.js +70 -0
  597. package/dist/scaffold-coverage.d.ts +46 -0
  598. package/dist/scaffold-coverage.d.ts.map +1 -0
  599. package/dist/scaffold-coverage.js +273 -0
  600. package/dist/scaffold-patterns.d.ts +38 -0
  601. package/dist/scaffold-patterns.d.ts.map +1 -0
  602. package/dist/scaffold-patterns.js +282 -0
  603. package/dist/schema-inventory.d.ts +55 -0
  604. package/dist/schema-inventory.d.ts.map +1 -0
  605. package/dist/schema-inventory.js +301 -0
  606. package/dist/search-index.d.ts +75 -0
  607. package/dist/search-index.d.ts.map +1 -0
  608. package/dist/search-index.js +531 -0
  609. package/dist/search-tuning-explain.d.ts +68 -0
  610. package/dist/search-tuning-explain.d.ts.map +1 -0
  611. package/dist/search-tuning-explain.js +207 -0
  612. package/dist/search-tuning-registry.d.ts +54 -0
  613. package/dist/search-tuning-registry.d.ts.map +1 -0
  614. package/dist/search-tuning-registry.js +303 -0
  615. package/dist/self-audit.d.ts +59 -0
  616. package/dist/self-audit.d.ts.map +1 -0
  617. package/dist/self-audit.js +192 -0
  618. package/dist/self-config-doctor-v2.d.ts +57 -0
  619. package/dist/self-config-doctor-v2.d.ts.map +1 -0
  620. package/dist/self-config-doctor-v2.js +653 -0
  621. package/dist/self-config-doctor.d.ts +47 -0
  622. package/dist/self-config-doctor.d.ts.map +1 -0
  623. package/dist/self-config-doctor.js +432 -0
  624. package/dist/sharkcraft-inspector.d.ts +73 -0
  625. package/dist/sharkcraft-inspector.d.ts.map +1 -0
  626. package/dist/sharkcraft-inspector.js +745 -0
  627. package/dist/spec/spec-cross-validate.d.ts +17 -0
  628. package/dist/spec/spec-cross-validate.d.ts.map +1 -0
  629. package/dist/spec/spec-cross-validate.js +53 -0
  630. package/dist/spec/spec-discovery.d.ts +27 -0
  631. package/dist/spec/spec-discovery.d.ts.map +1 -0
  632. package/dist/spec/spec-discovery.js +78 -0
  633. package/dist/spec/spec-review.d.ts +36 -0
  634. package/dist/spec/spec-review.d.ts.map +1 -0
  635. package/dist/spec/spec-review.js +37 -0
  636. package/dist/stability-map.d.ts +62 -0
  637. package/dist/stability-map.d.ts.map +1 -0
  638. package/dist/stability-map.js +404 -0
  639. package/dist/start-here.d.ts +49 -0
  640. package/dist/start-here.d.ts.map +1 -0
  641. package/dist/start-here.js +259 -0
  642. package/dist/surface-profile-detect.d.ts +42 -0
  643. package/dist/surface-profile-detect.d.ts.map +1 -0
  644. package/dist/surface-profile-detect.js +76 -0
  645. package/dist/symbol-index.d.ts +108 -0
  646. package/dist/symbol-index.d.ts.map +1 -0
  647. package/dist/symbol-index.js +483 -0
  648. package/dist/task-decompose.d.ts +38 -0
  649. package/dist/task-decompose.d.ts.map +1 -0
  650. package/dist/task-decompose.js +154 -0
  651. package/dist/task-packet.d.ts +104 -0
  652. package/dist/task-packet.d.ts.map +1 -0
  653. package/dist/task-packet.js +156 -0
  654. package/dist/task-ranker.d.ts +51 -0
  655. package/dist/task-ranker.d.ts.map +1 -0
  656. package/dist/task-ranker.js +410 -0
  657. package/dist/task-risk.d.ts +84 -0
  658. package/dist/task-risk.d.ts.map +1 -0
  659. package/dist/task-risk.js +731 -0
  660. package/dist/task-routing-hint-registry.d.ts +36 -0
  661. package/dist/task-routing-hint-registry.d.ts.map +1 -0
  662. package/dist/task-routing-hint-registry.js +186 -0
  663. package/dist/template-authoring.d.ts +113 -0
  664. package/dist/template-authoring.d.ts.map +1 -0
  665. package/dist/template-authoring.js +521 -0
  666. package/dist/template-body-inference-v2.d.ts +19 -0
  667. package/dist/template-body-inference-v2.d.ts.map +1 -0
  668. package/dist/template-body-inference-v2.js +468 -0
  669. package/dist/template-body-inference.d.ts +59 -0
  670. package/dist/template-body-inference.d.ts.map +1 -0
  671. package/dist/template-body-inference.js +277 -0
  672. package/dist/template-drift.d.ts +39 -0
  673. package/dist/template-drift.d.ts.map +1 -0
  674. package/dist/template-drift.js +353 -0
  675. package/dist/template-lint.d.ts +31 -0
  676. package/dist/template-lint.d.ts.map +1 -0
  677. package/dist/template-lint.js +113 -0
  678. package/dist/test-definitions.d.ts +41 -0
  679. package/dist/test-definitions.d.ts.map +1 -0
  680. package/dist/test-definitions.js +6 -0
  681. package/dist/test-impact.d.ts +30 -0
  682. package/dist/test-impact.d.ts.map +1 -0
  683. package/dist/test-impact.js +173 -0
  684. package/dist/test-runner.d.ts +87 -0
  685. package/dist/test-runner.d.ts.map +1 -0
  686. package/dist/test-runner.js +560 -0
  687. package/dist/uncertainty-report.d.ts +46 -0
  688. package/dist/uncertainty-report.d.ts.map +1 -0
  689. package/dist/uncertainty-report.js +108 -0
  690. package/dist/uncertainty.d.ts +38 -0
  691. package/dist/uncertainty.d.ts.map +1 -0
  692. package/dist/uncertainty.js +115 -0
  693. package/dist/universal-search.d.ts +64 -0
  694. package/dist/universal-search.d.ts.map +1 -0
  695. package/dist/universal-search.js +347 -0
  696. package/dist/upgrade-advisor.d.ts +22 -0
  697. package/dist/upgrade-advisor.d.ts.map +1 -0
  698. package/dist/upgrade-advisor.js +109 -0
  699. package/dist/why-file.d.ts +75 -0
  700. package/dist/why-file.d.ts.map +1 -0
  701. package/dist/why-file.js +202 -0
  702. package/dist/workflow-simulation.d.ts +46 -0
  703. package/dist/workflow-simulation.d.ts.map +1 -0
  704. package/dist/workflow-simulation.js +154 -0
  705. package/package.json +66 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 SharkCraft contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,15 @@
1
+ # @shrkcrft/inspector
2
+
3
+ SharkCraft inspector: project overview, doctor checks, AI-agent instructions.
4
+
5
+ Part of [SharkCraft](https://github.com/shrkcrft/sharkcraft) — a deterministic, local-first toolkit that gives AI coding agents durable project context. See the main repo for documentation, examples, and the `shrk` CLI.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ bun add @shrkcrft/inspector
11
+ ```
12
+
13
+ ## License
14
+
15
+ MIT — see [LICENSE](./LICENSE).
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Acceptance-command replay.
3
+ *
4
+ * Given a change set, decides which previous validation commands (the
5
+ * read-only acceptance gates from the dev-cycle / preflight planners +
6
+ * the changes-summary suggestions) should be re-run, and *why*. No
7
+ * shell execution — purely a structured "punch list".
8
+ *
9
+ * Reads:
10
+ * - the changes-summary report,
11
+ * - the dev-cycle preflight gate plan (static gate set).
12
+ *
13
+ * Output: `sharkcraft.acceptance-replay/v1`.
14
+ */
15
+ import { type IChangesSummaryReport } from './changes-summary.js';
16
+ export declare const ACCEPTANCE_REPLAY_SCHEMA = "sharkcraft.acceptance-replay/v1";
17
+ export declare enum ReplayProfile {
18
+ ChangedOnly = "changed-only",
19
+ Standard = "standard",
20
+ Strict = "strict"
21
+ }
22
+ export declare enum ReplayReason {
23
+ Cli = "cli-touched",
24
+ Mcp = "mcp-tool-touched",
25
+ Safety = "safety-relevant-touched",
26
+ PackAsset = "pack-asset-touched",
27
+ Schema = "schema-or-schema-like-touched",
28
+ Boundaries = "boundary-or-config-touched",
29
+ Inspector = "inspector-touched",
30
+ Generator = "generator-or-apply-touched",
31
+ Docs = "docs-only-touched",
32
+ AlwaysOn = "baseline-gate"
33
+ }
34
+ export interface IReplayCommand {
35
+ readonly command: string;
36
+ readonly reasons: ReadonlyArray<ReplayReason>;
37
+ readonly expectedExitCode: number;
38
+ readonly category: 'baseline' | 'gate' | 'suggested';
39
+ readonly safety: 'read-only' | 'runs-shell';
40
+ }
41
+ export interface IAcceptanceReplayReport {
42
+ readonly schema: typeof ACCEPTANCE_REPLAY_SCHEMA;
43
+ readonly generatedAt: string;
44
+ readonly profile: ReplayProfile;
45
+ readonly roundLabel?: string;
46
+ readonly source: IChangesSummaryReport['source'];
47
+ readonly ref?: string;
48
+ readonly totalChangedFiles: number;
49
+ readonly commands: ReadonlyArray<IReplayCommand>;
50
+ readonly skipped: ReadonlyArray<{
51
+ command: string;
52
+ reason: string;
53
+ }>;
54
+ }
55
+ export interface IBuildAcceptanceReplayInput {
56
+ readonly summary: IChangesSummaryReport;
57
+ readonly profile?: ReplayProfile;
58
+ readonly roundLabel?: string;
59
+ }
60
+ export declare function buildAcceptanceReplay(input: IBuildAcceptanceReplayInput): IAcceptanceReplayReport;
61
+ export declare function renderAcceptanceReplayText(report: IAcceptanceReplayReport): string;
62
+ export declare function renderAcceptanceReplayMarkdown(report: IAcceptanceReplayReport): string;
63
+ //# sourceMappingURL=acceptance-replay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acceptance-replay.d.ts","sourceRoot":"","sources":["../src/acceptance-replay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAc,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE9E,eAAO,MAAM,wBAAwB,oCAAoC,CAAC;AAE1E,oBAAY,aAAa;IACvB,WAAW,iBAAiB;IAC5B,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED,oBAAY,YAAY;IACtB,GAAG,gBAAgB;IACnB,GAAG,qBAAqB;IACxB,MAAM,4BAA4B;IAClC,SAAS,uBAAuB;IAChC,MAAM,kCAAkC;IACxC,UAAU,+BAA+B;IACzC,SAAS,sBAAsB;IAC/B,SAAS,+BAA+B;IACxC,IAAI,sBAAsB;IAC1B,QAAQ,kBAAkB;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAAC;CAC7C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,OAAO,wBAAwB,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACjD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtE;AA8GD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,2BAA2B,GACjC,uBAAuB,CA4EzB;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAkBlF;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAmBtF"}
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Acceptance-command replay.
3
+ *
4
+ * Given a change set, decides which previous validation commands (the
5
+ * read-only acceptance gates from the dev-cycle / preflight planners +
6
+ * the changes-summary suggestions) should be re-run, and *why*. No
7
+ * shell execution — purely a structured "punch list".
8
+ *
9
+ * Reads:
10
+ * - the changes-summary report,
11
+ * - the dev-cycle preflight gate plan (static gate set).
12
+ *
13
+ * Output: `sharkcraft.acceptance-replay/v1`.
14
+ */
15
+ import { ChangeArea } from "./changes-summary.js";
16
+ export const ACCEPTANCE_REPLAY_SCHEMA = 'sharkcraft.acceptance-replay/v1';
17
+ export var ReplayProfile;
18
+ (function (ReplayProfile) {
19
+ ReplayProfile["ChangedOnly"] = "changed-only";
20
+ ReplayProfile["Standard"] = "standard";
21
+ ReplayProfile["Strict"] = "strict";
22
+ })(ReplayProfile || (ReplayProfile = {}));
23
+ export var ReplayReason;
24
+ (function (ReplayReason) {
25
+ ReplayReason["Cli"] = "cli-touched";
26
+ ReplayReason["Mcp"] = "mcp-tool-touched";
27
+ ReplayReason["Safety"] = "safety-relevant-touched";
28
+ ReplayReason["PackAsset"] = "pack-asset-touched";
29
+ ReplayReason["Schema"] = "schema-or-schema-like-touched";
30
+ ReplayReason["Boundaries"] = "boundary-or-config-touched";
31
+ ReplayReason["Inspector"] = "inspector-touched";
32
+ ReplayReason["Generator"] = "generator-or-apply-touched";
33
+ ReplayReason["Docs"] = "docs-only-touched";
34
+ ReplayReason["AlwaysOn"] = "baseline-gate";
35
+ })(ReplayReason || (ReplayReason = {}));
36
+ const BASELINE_GATES = [
37
+ {
38
+ command: 'bun x tsc -p tsconfig.base.json --noEmit',
39
+ category: 'baseline',
40
+ reason: ReplayReason.AlwaysOn,
41
+ trigger: () => true,
42
+ },
43
+ {
44
+ command: 'bun test',
45
+ category: 'baseline',
46
+ reason: ReplayReason.AlwaysOn,
47
+ trigger: () => true,
48
+ },
49
+ {
50
+ command: 'shrk doctor',
51
+ category: 'baseline',
52
+ reason: ReplayReason.AlwaysOn,
53
+ trigger: () => true,
54
+ },
55
+ ];
56
+ const CONDITIONAL_GATES = [
57
+ {
58
+ command: 'shrk commands doctor',
59
+ category: 'gate',
60
+ reason: ReplayReason.Cli,
61
+ trigger: (r) => r.touchedCommands.length > 0,
62
+ },
63
+ {
64
+ command: 'shrk commands ux-check',
65
+ category: 'gate',
66
+ reason: ReplayReason.Cli,
67
+ trigger: (r) => r.touchedCommands.length > 0,
68
+ },
69
+ {
70
+ command: 'shrk safety audit --deep',
71
+ category: 'gate',
72
+ reason: ReplayReason.Safety,
73
+ trigger: (r) => r.touchedMcpTools.length > 0 || r.safetyRelevantFiles.length > 0,
74
+ },
75
+ {
76
+ command: 'shrk check boundaries --changed-only',
77
+ category: 'gate',
78
+ reason: ReplayReason.Boundaries,
79
+ trigger: (r) => r.files.some((f) => f.area === ChangeArea.Boundaries || f.path.endsWith('tsconfig.base.json')) ||
80
+ r.files.some((f) => f.path.startsWith('packages/')),
81
+ },
82
+ {
83
+ command: 'shrk packs signature-status',
84
+ category: 'gate',
85
+ reason: ReplayReason.PackAsset,
86
+ trigger: (r) => r.touchedPackAssets.length > 0,
87
+ },
88
+ {
89
+ command: 'shrk packs doctor --require-signatures',
90
+ category: 'gate',
91
+ reason: ReplayReason.PackAsset,
92
+ trigger: (r) => r.touchedPackAssets.length > 0,
93
+ },
94
+ {
95
+ command: 'shrk self-config doctor',
96
+ category: 'gate',
97
+ reason: ReplayReason.Inspector,
98
+ trigger: (r) => r.files.some((f) => f.area === ChangeArea.Inspector ||
99
+ f.area === ChangeArea.Sharkcraft ||
100
+ f.path.startsWith('sharkcraft/')),
101
+ },
102
+ {
103
+ command: 'shrk product check',
104
+ category: 'gate',
105
+ reason: ReplayReason.Inspector,
106
+ trigger: (r) => r.files.some((f) => f.area === ChangeArea.Inspector),
107
+ },
108
+ {
109
+ command: 'shrk schemas inventory --multi-version-only',
110
+ category: 'gate',
111
+ reason: ReplayReason.Schema,
112
+ trigger: (r) => r.touchedSchemas.length > 0,
113
+ },
114
+ {
115
+ command: 'bun run release:preflight',
116
+ category: 'gate',
117
+ reason: ReplayReason.Generator,
118
+ trigger: (r) => r.files.some((f) => f.area === ChangeArea.Generator ||
119
+ f.path.startsWith('packages/cli/src/commands/apply.command') ||
120
+ f.path.startsWith('scripts/release')),
121
+ },
122
+ ];
123
+ export function buildAcceptanceReplay(input) {
124
+ const profile = input.profile ?? ReplayProfile.ChangedOnly;
125
+ const summary = input.summary;
126
+ const commands = [];
127
+ const skipped = [];
128
+ // Baselines — always on, but in changed-only mode if zero files we skip
129
+ // type/test gates (purely a UX courtesy).
130
+ for (const g of BASELINE_GATES) {
131
+ if (profile === ReplayProfile.ChangedOnly && summary.totalFiles === 0 && g.command !== 'shrk doctor') {
132
+ skipped.push({ command: g.command, reason: 'no changed files; baseline skipped under changed-only profile' });
133
+ continue;
134
+ }
135
+ commands.push({
136
+ command: g.command,
137
+ reasons: [g.reason],
138
+ expectedExitCode: 0,
139
+ category: g.category,
140
+ safety: g.command.startsWith('bun ') ? 'runs-shell' : 'read-only',
141
+ });
142
+ }
143
+ // Conditional gates — only when the change set demands.
144
+ for (const g of CONDITIONAL_GATES) {
145
+ const fired = g.trigger(summary);
146
+ if (fired) {
147
+ commands.push({
148
+ command: g.command,
149
+ reasons: [g.reason],
150
+ expectedExitCode: 0,
151
+ category: g.category,
152
+ safety: g.command.startsWith('bun ') ? 'runs-shell' : 'read-only',
153
+ });
154
+ }
155
+ else if (profile === ReplayProfile.Strict) {
156
+ // Strict profile runs everything regardless.
157
+ commands.push({
158
+ command: g.command,
159
+ reasons: [ReplayReason.AlwaysOn],
160
+ expectedExitCode: 0,
161
+ category: g.category,
162
+ safety: g.command.startsWith('bun ') ? 'runs-shell' : 'read-only',
163
+ });
164
+ }
165
+ else if (profile === ReplayProfile.Standard) {
166
+ // Standard profile reports the skip with explicit reason.
167
+ skipped.push({
168
+ command: g.command,
169
+ reason: `not triggered by change set (reason=${g.reason})`,
170
+ });
171
+ }
172
+ }
173
+ // Bring in changes-summary suggested commands as 'suggested' category,
174
+ // dedup against gates already added.
175
+ const known = new Set(commands.map((c) => c.command));
176
+ for (const s of summary.suggestedValidationCommands) {
177
+ if (known.has(s))
178
+ continue;
179
+ commands.push({
180
+ command: s,
181
+ reasons: [ReplayReason.AlwaysOn],
182
+ expectedExitCode: 0,
183
+ category: 'suggested',
184
+ safety: s.startsWith('bun ') ? 'runs-shell' : 'read-only',
185
+ });
186
+ }
187
+ return {
188
+ schema: ACCEPTANCE_REPLAY_SCHEMA,
189
+ generatedAt: new Date().toISOString(),
190
+ profile,
191
+ ...(input.roundLabel ? { roundLabel: input.roundLabel } : summary.roundLabel ? { roundLabel: summary.roundLabel } : {}),
192
+ source: summary.source,
193
+ ...(summary.ref ? { ref: summary.ref } : {}),
194
+ totalChangedFiles: summary.totalFiles,
195
+ commands,
196
+ skipped,
197
+ };
198
+ }
199
+ export function renderAcceptanceReplayText(report) {
200
+ const lines = [];
201
+ lines.push(`=== Acceptance replay (profile=${report.profile}${report.roundLabel ? `, round=${report.roundLabel}` : ''}${report.ref ? `, since=${report.ref}` : ''}) ===`);
202
+ lines.push(` changed files: ${report.totalChangedFiles}`);
203
+ lines.push(` commands: ${report.commands.length}`);
204
+ if (report.skipped.length > 0)
205
+ lines.push(` skipped: ${report.skipped.length}`);
206
+ for (const c of report.commands) {
207
+ const tag = c.category.padEnd(9);
208
+ lines.push(` [${tag}] $ ${c.command}`);
209
+ lines.push(` reasons: ${c.reasons.join(', ')}`);
210
+ }
211
+ if (report.skipped.length > 0) {
212
+ lines.push('\nSkipped:');
213
+ for (const s of report.skipped)
214
+ lines.push(` • ${s.command} — ${s.reason}`);
215
+ }
216
+ return lines.join('\n') + '\n';
217
+ }
218
+ export function renderAcceptanceReplayMarkdown(report) {
219
+ const lines = [];
220
+ lines.push('# Acceptance replay');
221
+ lines.push('');
222
+ lines.push(`- profile: \`${report.profile}\``);
223
+ if (report.roundLabel)
224
+ lines.push(`- round: \`${report.roundLabel}\``);
225
+ if (report.ref)
226
+ lines.push(`- ref: \`${report.ref}\``);
227
+ lines.push(`- changed files: ${report.totalChangedFiles}`);
228
+ lines.push('');
229
+ lines.push('## Commands to re-run');
230
+ for (const c of report.commands) {
231
+ lines.push(`- \`${c.command}\` _(${c.category}, ${c.reasons.join(', ')})_`);
232
+ }
233
+ if (report.skipped.length > 0) {
234
+ lines.push('');
235
+ lines.push('## Skipped');
236
+ for (const s of report.skipped)
237
+ lines.push(`- \`${s.command}\` — ${s.reason}`);
238
+ }
239
+ return lines.join('\n') + '\n';
240
+ }
@@ -0,0 +1,32 @@
1
+ import { type IKnowledgeEntry } from '@shrkcrft/knowledge';
2
+ export interface IActionHintQualityIssue {
3
+ entryId: string;
4
+ severity: 'warning';
5
+ code: 'missing-hints' | 'missing-commands-or-mcp' | 'missing-forbidden-actions' | 'missing-verification' | 'missing-write-policy' | 'missing-related-templates' | 'missing-related-path-conventions';
6
+ message: string;
7
+ /** Free-form suggestion the doctor can show next to the warning. */
8
+ suggestion?: string;
9
+ }
10
+ export interface IActionHintQualityReport {
11
+ /** Entries that were evaluated (matched the heuristics for "should have hints"). */
12
+ evaluatedEntryCount: number;
13
+ /** Subset that has at least one hint. */
14
+ entriesWithHints: number;
15
+ issues: IActionHintQualityIssue[];
16
+ /** Top N entry ids by issue count for quick prioritization. */
17
+ topMissing: Array<{
18
+ entryId: string;
19
+ missingFields: string[];
20
+ }>;
21
+ }
22
+ /**
23
+ * Inspect knowledge entries for action-hint quality. Only critical / high
24
+ * priority entries whose appliesWhen mentions generate/create/refactor/etc.
25
+ * are evaluated — other entries (project overview, glossary, tech stack)
26
+ * are not expected to carry hints.
27
+ *
28
+ * All issues are warnings (severity 'warning'). The doctor surfaces them as
29
+ * "soft" findings.
30
+ */
31
+ export declare function diagnoseActionHints(entries: readonly IKnowledgeEntry[]): IActionHintQualityReport;
32
+ //# sourceMappingURL=action-hint-diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-hint-diagnostics.d.ts","sourceRoot":"","sources":["../src/action-hint-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3E,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,EACA,eAAe,GACf,yBAAyB,GACzB,2BAA2B,GAC3B,sBAAsB,GACtB,sBAAsB,GACtB,2BAA2B,GAC3B,kCAAkC,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,oFAAoF;IACpF,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,uBAAuB,EAAE,CAAC;IAClC,+DAA+D;IAC/D,UAAU,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACjE;AAiBD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,wBAAwB,CAkHjG"}
@@ -0,0 +1,133 @@
1
+ import { hasActionHints } from '@shrkcrft/knowledge';
2
+ const GEN_KEYWORDS = ['generate', 'create', 'add', 'refactor', 'test', 'review'];
3
+ function appliesToGeneration(entry) {
4
+ for (const a of entry.appliesWhen ?? []) {
5
+ const lower = a.toLowerCase();
6
+ if (GEN_KEYWORDS.some((k) => lower.includes(k)))
7
+ return true;
8
+ }
9
+ return false;
10
+ }
11
+ function isCriticalOrHigh(entry) {
12
+ const p = String(entry.priority);
13
+ return p === 'critical' || p === 'high';
14
+ }
15
+ /**
16
+ * Inspect knowledge entries for action-hint quality. Only critical / high
17
+ * priority entries whose appliesWhen mentions generate/create/refactor/etc.
18
+ * are evaluated — other entries (project overview, glossary, tech stack)
19
+ * are not expected to carry hints.
20
+ *
21
+ * All issues are warnings (severity 'warning'). The doctor surfaces them as
22
+ * "soft" findings.
23
+ */
24
+ export function diagnoseActionHints(entries) {
25
+ const issues = [];
26
+ const missingByEntry = new Map();
27
+ let evaluated = 0;
28
+ let withHints = 0;
29
+ for (const entry of entries) {
30
+ if (!isCriticalOrHigh(entry))
31
+ continue;
32
+ if (!appliesToGeneration(entry))
33
+ continue;
34
+ // Path / overview / technical entries describe location or facts — not actions.
35
+ const type = String(entry.type);
36
+ if (type === 'path' || type === 'overview' || type === 'technical')
37
+ continue;
38
+ evaluated += 1;
39
+ const recordMissing = (field) => {
40
+ const list = missingByEntry.get(entry.id) ?? [];
41
+ list.push(field);
42
+ missingByEntry.set(entry.id, list);
43
+ };
44
+ if (!hasActionHints(entry)) {
45
+ issues.push({
46
+ entryId: entry.id,
47
+ severity: 'warning',
48
+ code: 'missing-hints',
49
+ message: `Entry "${entry.id}" is high/critical and applies to generation but has no actionHints.`,
50
+ suggestion: 'Add at least mcpTools/commands and forbiddenActions.',
51
+ });
52
+ recordMissing('all');
53
+ continue;
54
+ }
55
+ withHints += 1;
56
+ const h = entry.actionHints;
57
+ const hasCommandsOrTools = (h.commands?.length ?? 0) > 0 || (h.mcpTools?.length ?? 0) > 0;
58
+ if (!hasCommandsOrTools) {
59
+ issues.push({
60
+ entryId: entry.id,
61
+ severity: 'warning',
62
+ code: 'missing-commands-or-mcp',
63
+ message: `"${entry.id}" should list at least one CLI command or MCP tool.`,
64
+ });
65
+ recordMissing('commands/mcpTools');
66
+ }
67
+ // Generation-related entries should have forbiddenActions.
68
+ if ((h.forbiddenActions?.length ?? 0) === 0) {
69
+ issues.push({
70
+ entryId: entry.id,
71
+ severity: 'warning',
72
+ code: 'missing-forbidden-actions',
73
+ message: `"${entry.id}" should list at least one forbiddenActions item.`,
74
+ });
75
+ recordMissing('forbiddenActions');
76
+ }
77
+ // Verification commands matter for review/refactor/generate scopes.
78
+ if ((h.verificationCommands?.length ?? 0) === 0) {
79
+ issues.push({
80
+ entryId: entry.id,
81
+ severity: 'warning',
82
+ code: 'missing-verification',
83
+ message: `"${entry.id}" should list verificationCommands so the agent can validate the result.`,
84
+ });
85
+ recordMissing('verificationCommands');
86
+ }
87
+ // Write-related rules should declare writePolicy explicitly.
88
+ const tagsLower = new Set(entry.tags.map((t) => t.toLowerCase()));
89
+ const looksWriteRelated = tagsLower.has('safety') ||
90
+ tagsLower.has('generator') ||
91
+ (entry.appliesWhen ?? []).some((a) => /write|apply|generate/i.test(a));
92
+ if (looksWriteRelated && !h.writePolicy) {
93
+ issues.push({
94
+ entryId: entry.id,
95
+ severity: 'warning',
96
+ code: 'missing-write-policy',
97
+ message: `"${entry.id}" looks write-related but does not declare a writePolicy.`
98
+ });
99
+ recordMissing('writePolicy');
100
+ }
101
+ // Template rules should link relatedTemplates.
102
+ if (tagsLower.has('template') &&
103
+ (h.relatedTemplates?.length ?? 0) === 0) {
104
+ issues.push({
105
+ entryId: entry.id,
106
+ severity: 'warning',
107
+ code: 'missing-related-templates',
108
+ message: `"${entry.id}" is template-related but does not list relatedTemplates.`
109
+ });
110
+ recordMissing('relatedTemplates');
111
+ }
112
+ if ((tagsLower.has('path') || tagsLower.has('paths')) &&
113
+ (h.relatedPathConventions?.length ?? 0) === 0) {
114
+ issues.push({
115
+ entryId: entry.id,
116
+ severity: 'warning',
117
+ code: 'missing-related-path-conventions',
118
+ message: `"${entry.id}" is path-related but does not list relatedPathConventions.`,
119
+ });
120
+ recordMissing('relatedPathConventions');
121
+ }
122
+ }
123
+ const topMissing = [...missingByEntry.entries()]
124
+ .map(([entryId, missingFields]) => ({ entryId, missingFields }))
125
+ .sort((a, b) => b.missingFields.length - a.missingFields.length)
126
+ .slice(0, 5);
127
+ return {
128
+ evaluatedEntryCount: evaluated,
129
+ entriesWithHints: withHints,
130
+ issues,
131
+ topMissing,
132
+ };
133
+ }
@@ -0,0 +1,28 @@
1
+ export declare enum AdoptionCheckResult {
2
+ CanApply = "can-apply",
3
+ CannotApply = "cannot-apply",
4
+ Unknown = "unknown"
5
+ }
6
+ export interface IAdoptionCheck {
7
+ id: string;
8
+ passed: boolean;
9
+ severity: 'error' | 'warning' | 'info';
10
+ message: string;
11
+ }
12
+ export interface IAdoptionCheckReport {
13
+ schema: 'sharkcraft.adoption-check/v1';
14
+ projectRoot: string;
15
+ patchPath: string | null;
16
+ patchFormat: 'pseudo' | 'unified' | 'unknown';
17
+ canApply: AdoptionCheckResult;
18
+ checks: readonly IAdoptionCheck[];
19
+ warnings: readonly string[];
20
+ nextCommand: string;
21
+ }
22
+ export interface IBuildAdoptionCheckInput {
23
+ projectRoot: string;
24
+ /** When provided, override the default adoption-state-derived patch path. */
25
+ patchPath?: string;
26
+ }
27
+ export declare function buildAdoptionCheck(input: IBuildAdoptionCheckInput): IAdoptionCheckReport;
28
+ //# sourceMappingURL=adoption-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adoption-check.d.ts","sourceRoot":"","sources":["../src/adoption-check.ts"],"names":[],"mappings":"AAcA,oBAAY,mBAAmB;IAC7B,QAAQ,cAAc;IACtB,WAAW,iBAAiB;IAC5B,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,8BAA8B,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAC9C,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAClC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AA6BD,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,wBAAwB,GAAG,oBAAoB,CAwIxF"}