@shrkcrft/inspector 0.1.0-alpha.1

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 (708) 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 +57 -0
  70. package/dist/area-map.d.ts.map +1 -0
  71. package/dist/area-map.js +214 -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 +382 -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 +38 -0
  256. package/dist/git-helpers.d.ts.map +1 -0
  257. package/dist/git-helpers.js +173 -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 +422 -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 +224 -0
  295. package/dist/index.d.ts.map +1 -0
  296. package/dist/index.js +234 -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-merge.d.ts +71 -0
  391. package/dist/onboarding-drafts-merge.d.ts.map +1 -0
  392. package/dist/onboarding-drafts-merge.js +174 -0
  393. package/dist/onboarding-drafts.d.ts +42 -0
  394. package/dist/onboarding-drafts.d.ts.map +1 -0
  395. package/dist/onboarding-drafts.js +268 -0
  396. package/dist/onboarding-report.d.ts +8 -0
  397. package/dist/onboarding-report.d.ts.map +1 -0
  398. package/dist/onboarding-report.js +239 -0
  399. package/dist/onboarding.d.ts +134 -0
  400. package/dist/onboarding.d.ts.map +1 -0
  401. package/dist/onboarding.js +729 -0
  402. package/dist/ownership.d.ts +38 -0
  403. package/dist/ownership.d.ts.map +1 -0
  404. package/dist/ownership.js +102 -0
  405. package/dist/pack-author-ux.d.ts +58 -0
  406. package/dist/pack-author-ux.d.ts.map +1 -0
  407. package/dist/pack-author-ux.js +219 -0
  408. package/dist/pack-author.d.ts +94 -0
  409. package/dist/pack-author.d.ts.map +1 -0
  410. package/dist/pack-author.js +208 -0
  411. package/dist/pack-compatibility.d.ts +21 -0
  412. package/dist/pack-compatibility.d.ts.map +1 -0
  413. package/dist/pack-compatibility.js +114 -0
  414. package/dist/pack-contributions-inventory.d.ts +121 -0
  415. package/dist/pack-contributions-inventory.d.ts.map +1 -0
  416. package/dist/pack-contributions-inventory.js +732 -0
  417. package/dist/pack-docs.d.ts +11 -0
  418. package/dist/pack-docs.d.ts.map +1 -0
  419. package/dist/pack-docs.js +101 -0
  420. package/dist/pack-doctor.d.ts +50 -0
  421. package/dist/pack-doctor.d.ts.map +1 -0
  422. package/dist/pack-doctor.js +302 -0
  423. package/dist/pack-helper-registry.d.ts +29 -0
  424. package/dist/pack-helper-registry.d.ts.map +1 -0
  425. package/dist/pack-helper-registry.js +144 -0
  426. package/dist/pack-pending.d.ts +68 -0
  427. package/dist/pack-pending.d.ts.map +1 -0
  428. package/dist/pack-pending.js +189 -0
  429. package/dist/pack-quality-score.d.ts +44 -0
  430. package/dist/pack-quality-score.d.ts.map +1 -0
  431. package/dist/pack-quality-score.js +155 -0
  432. package/dist/pack-release-check.d.ts +24 -0
  433. package/dist/pack-release-check.d.ts.map +1 -0
  434. package/dist/pack-release-check.js +258 -0
  435. package/dist/pack-signature-status.d.ts +72 -0
  436. package/dist/pack-signature-status.d.ts.map +1 -0
  437. package/dist/pack-signature-status.js +222 -0
  438. package/dist/pack-symbol-compat.d.ts +73 -0
  439. package/dist/pack-symbol-compat.d.ts.map +1 -0
  440. package/dist/pack-symbol-compat.js +519 -0
  441. package/dist/pack-test-runner.d.ts +59 -0
  442. package/dist/pack-test-runner.d.ts.map +1 -0
  443. package/dist/pack-test-runner.js +211 -0
  444. package/dist/pipeline-command-dictionary.d.ts +2 -0
  445. package/dist/pipeline-command-dictionary.d.ts.map +1 -0
  446. package/dist/pipeline-command-dictionary.js +20 -0
  447. package/dist/pipeline-lint.d.ts +30 -0
  448. package/dist/pipeline-lint.d.ts.map +1 -0
  449. package/dist/pipeline-lint.js +134 -0
  450. package/dist/plan-dependency-graph.d.ts +25 -0
  451. package/dist/plan-dependency-graph.d.ts.map +1 -0
  452. package/dist/plan-dependency-graph.js +195 -0
  453. package/dist/plan-review.d.ts +64 -0
  454. package/dist/plan-review.d.ts.map +1 -0
  455. package/dist/plan-review.js +242 -0
  456. package/dist/plan-simulation.d.ts +108 -0
  457. package/dist/plan-simulation.d.ts.map +1 -0
  458. package/dist/plan-simulation.js +767 -0
  459. package/dist/playbook-registry.d.ts +25 -0
  460. package/dist/playbook-registry.d.ts.map +1 -0
  461. package/dist/playbook-registry.js +148 -0
  462. package/dist/playbook-script.d.ts +60 -0
  463. package/dist/playbook-script.d.ts.map +1 -0
  464. package/dist/playbook-script.js +161 -0
  465. package/dist/plugin-lifecycle-profile-registry.d.ts +52 -0
  466. package/dist/plugin-lifecycle-profile-registry.d.ts.map +1 -0
  467. package/dist/plugin-lifecycle-profile-registry.js +202 -0
  468. package/dist/plugin-lifecycle.d.ts +132 -0
  469. package/dist/plugin-lifecycle.d.ts.map +1 -0
  470. package/dist/plugin-lifecycle.js +477 -0
  471. package/dist/policy-engine.d.ts +101 -0
  472. package/dist/policy-engine.d.ts.map +1 -0
  473. package/dist/policy-engine.js +321 -0
  474. package/dist/policy-override-audit.d.ts +18 -0
  475. package/dist/policy-override-audit.d.ts.map +1 -0
  476. package/dist/policy-override-audit.js +54 -0
  477. package/dist/policy-overrides.d.ts +35 -0
  478. package/dist/policy-overrides.d.ts.map +1 -0
  479. package/dist/policy-overrides.js +84 -0
  480. package/dist/policy-test.d.ts +83 -0
  481. package/dist/policy-test.d.ts.map +1 -0
  482. package/dist/policy-test.js +342 -0
  483. package/dist/pr-summary.d.ts +34 -0
  484. package/dist/pr-summary.d.ts.map +1 -0
  485. package/dist/pr-summary.js +220 -0
  486. package/dist/product-coherence.d.ts +21 -0
  487. package/dist/product-coherence.d.ts.map +1 -0
  488. package/dist/product-coherence.js +158 -0
  489. package/dist/profile-registry.d.ts +42 -0
  490. package/dist/profile-registry.d.ts.map +1 -0
  491. package/dist/profile-registry.js +104 -0
  492. package/dist/project-coupling-audit.d.ts +64 -0
  493. package/dist/project-coupling-audit.d.ts.map +1 -0
  494. package/dist/project-coupling-audit.js +282 -0
  495. package/dist/project-overview.d.ts +14 -0
  496. package/dist/project-overview.d.ts.map +1 -0
  497. package/dist/project-overview.js +27 -0
  498. package/dist/propose-knowledge.d.ts +64 -0
  499. package/dist/propose-knowledge.d.ts.map +1 -0
  500. package/dist/propose-knowledge.js +367 -0
  501. package/dist/quality-baseline.d.ts +123 -0
  502. package/dist/quality-baseline.d.ts.map +1 -0
  503. package/dist/quality-baseline.js +433 -0
  504. package/dist/quality-html.d.ts +7 -0
  505. package/dist/quality-html.d.ts.map +1 -0
  506. package/dist/quality-html.js +64 -0
  507. package/dist/quality-report.d.ts +49 -0
  508. package/dist/quality-report.d.ts.map +1 -0
  509. package/dist/quality-report.js +296 -0
  510. package/dist/query-resolver.d.ts +38 -0
  511. package/dist/query-resolver.d.ts.map +1 -0
  512. package/dist/query-resolver.js +163 -0
  513. package/dist/ranker-explainability.d.ts +91 -0
  514. package/dist/ranker-explainability.d.ts.map +1 -0
  515. package/dist/ranker-explainability.js +550 -0
  516. package/dist/reference-lookup.d.ts +8 -0
  517. package/dist/reference-lookup.d.ts.map +1 -0
  518. package/dist/reference-lookup.js +18 -0
  519. package/dist/registration-hint-registry.d.ts +55 -0
  520. package/dist/registration-hint-registry.d.ts.map +1 -0
  521. package/dist/registration-hint-registry.js +327 -0
  522. package/dist/registry-lifecycle.d.ts +47 -0
  523. package/dist/registry-lifecycle.d.ts.map +1 -0
  524. package/dist/registry-lifecycle.js +214 -0
  525. package/dist/release-readiness.d.ts +64 -0
  526. package/dist/release-readiness.d.ts.map +1 -0
  527. package/dist/release-readiness.js +456 -0
  528. package/dist/release-smoke.d.ts +138 -0
  529. package/dist/release-smoke.d.ts.map +1 -0
  530. package/dist/release-smoke.js +459 -0
  531. package/dist/release-train.d.ts +33 -0
  532. package/dist/release-train.d.ts.map +1 -0
  533. package/dist/release-train.js +104 -0
  534. package/dist/repo-memory.d.ts +95 -0
  535. package/dist/repo-memory.d.ts.map +1 -0
  536. package/dist/repo-memory.js +614 -0
  537. package/dist/report-site.d.ts +92 -0
  538. package/dist/report-site.d.ts.map +1 -0
  539. package/dist/report-site.js +658 -0
  540. package/dist/reposet.d.ts +56 -0
  541. package/dist/reposet.d.ts.map +1 -0
  542. package/dist/reposet.js +160 -0
  543. package/dist/repository-intelligence.d.ts +145 -0
  544. package/dist/repository-intelligence.d.ts.map +1 -0
  545. package/dist/repository-intelligence.js +729 -0
  546. package/dist/repository-knowledge-model.d.ts +218 -0
  547. package/dist/repository-knowledge-model.d.ts.map +1 -0
  548. package/dist/repository-knowledge-model.js +939 -0
  549. package/dist/repository-map.d.ts +72 -0
  550. package/dist/repository-map.d.ts.map +1 -0
  551. package/dist/repository-map.js +332 -0
  552. package/dist/repository-stats.d.ts +66 -0
  553. package/dist/repository-stats.d.ts.map +1 -0
  554. package/dist/repository-stats.js +329 -0
  555. package/dist/review-comment-renderer.d.ts +59 -0
  556. package/dist/review-comment-renderer.d.ts.map +1 -0
  557. package/dist/review-comment-renderer.js +181 -0
  558. package/dist/review-comment-v2.d.ts +9 -0
  559. package/dist/review-comment-v2.d.ts.map +1 -0
  560. package/dist/review-comment-v2.js +178 -0
  561. package/dist/review-html.d.ts +13 -0
  562. package/dist/review-html.d.ts.map +1 -0
  563. package/dist/review-html.js +79 -0
  564. package/dist/review-packet-v2.d.ts +29 -0
  565. package/dist/review-packet-v2.d.ts.map +1 -0
  566. package/dist/review-packet-v2.js +81 -0
  567. package/dist/review-packet-v3.d.ts +22 -0
  568. package/dist/review-packet-v3.d.ts.map +1 -0
  569. package/dist/review-packet-v3.js +181 -0
  570. package/dist/review-packet.d.ts +49 -0
  571. package/dist/review-packet.d.ts.map +1 -0
  572. package/dist/review-packet.js +129 -0
  573. package/dist/risk-signals.d.ts +28 -0
  574. package/dist/risk-signals.d.ts.map +1 -0
  575. package/dist/risk-signals.js +68 -0
  576. package/dist/role-views.d.ts +50 -0
  577. package/dist/role-views.d.ts.map +1 -0
  578. package/dist/role-views.js +334 -0
  579. package/dist/rounds.d.ts +52 -0
  580. package/dist/rounds.d.ts.map +1 -0
  581. package/dist/rounds.js +172 -0
  582. package/dist/rule-drift.d.ts +42 -0
  583. package/dist/rule-drift.d.ts.map +1 -0
  584. package/dist/rule-drift.js +148 -0
  585. package/dist/rule-quality.d.ts +73 -0
  586. package/dist/rule-quality.d.ts.map +1 -0
  587. package/dist/rule-quality.js +356 -0
  588. package/dist/rule-scaffold.d.ts +71 -0
  589. package/dist/rule-scaffold.d.ts.map +1 -0
  590. package/dist/rule-scaffold.js +258 -0
  591. package/dist/safety-audit-deep.d.ts +38 -0
  592. package/dist/safety-audit-deep.d.ts.map +1 -0
  593. package/dist/safety-audit-deep.js +162 -0
  594. package/dist/safety-audit.d.ts +91 -0
  595. package/dist/safety-audit.d.ts.map +1 -0
  596. package/dist/safety-audit.js +138 -0
  597. package/dist/safety-html.d.ts +7 -0
  598. package/dist/safety-html.d.ts.map +1 -0
  599. package/dist/safety-html.js +70 -0
  600. package/dist/scaffold-coverage.d.ts +46 -0
  601. package/dist/scaffold-coverage.d.ts.map +1 -0
  602. package/dist/scaffold-coverage.js +273 -0
  603. package/dist/scaffold-patterns.d.ts +38 -0
  604. package/dist/scaffold-patterns.d.ts.map +1 -0
  605. package/dist/scaffold-patterns.js +282 -0
  606. package/dist/schema-inventory.d.ts +55 -0
  607. package/dist/schema-inventory.d.ts.map +1 -0
  608. package/dist/schema-inventory.js +301 -0
  609. package/dist/search-index.d.ts +75 -0
  610. package/dist/search-index.d.ts.map +1 -0
  611. package/dist/search-index.js +531 -0
  612. package/dist/search-tuning-explain.d.ts +68 -0
  613. package/dist/search-tuning-explain.d.ts.map +1 -0
  614. package/dist/search-tuning-explain.js +207 -0
  615. package/dist/search-tuning-registry.d.ts +54 -0
  616. package/dist/search-tuning-registry.d.ts.map +1 -0
  617. package/dist/search-tuning-registry.js +303 -0
  618. package/dist/self-audit.d.ts +59 -0
  619. package/dist/self-audit.d.ts.map +1 -0
  620. package/dist/self-audit.js +192 -0
  621. package/dist/self-config-doctor-v2.d.ts +57 -0
  622. package/dist/self-config-doctor-v2.d.ts.map +1 -0
  623. package/dist/self-config-doctor-v2.js +653 -0
  624. package/dist/self-config-doctor.d.ts +47 -0
  625. package/dist/self-config-doctor.d.ts.map +1 -0
  626. package/dist/self-config-doctor.js +432 -0
  627. package/dist/sharkcraft-inspector.d.ts +73 -0
  628. package/dist/sharkcraft-inspector.d.ts.map +1 -0
  629. package/dist/sharkcraft-inspector.js +745 -0
  630. package/dist/spec/spec-cross-validate.d.ts +17 -0
  631. package/dist/spec/spec-cross-validate.d.ts.map +1 -0
  632. package/dist/spec/spec-cross-validate.js +53 -0
  633. package/dist/spec/spec-discovery.d.ts +27 -0
  634. package/dist/spec/spec-discovery.d.ts.map +1 -0
  635. package/dist/spec/spec-discovery.js +78 -0
  636. package/dist/spec/spec-review.d.ts +36 -0
  637. package/dist/spec/spec-review.d.ts.map +1 -0
  638. package/dist/spec/spec-review.js +37 -0
  639. package/dist/stability-map.d.ts +62 -0
  640. package/dist/stability-map.d.ts.map +1 -0
  641. package/dist/stability-map.js +404 -0
  642. package/dist/start-here.d.ts +49 -0
  643. package/dist/start-here.d.ts.map +1 -0
  644. package/dist/start-here.js +259 -0
  645. package/dist/surface-profile-detect.d.ts +42 -0
  646. package/dist/surface-profile-detect.d.ts.map +1 -0
  647. package/dist/surface-profile-detect.js +76 -0
  648. package/dist/symbol-index.d.ts +108 -0
  649. package/dist/symbol-index.d.ts.map +1 -0
  650. package/dist/symbol-index.js +483 -0
  651. package/dist/task-decompose.d.ts +38 -0
  652. package/dist/task-decompose.d.ts.map +1 -0
  653. package/dist/task-decompose.js +154 -0
  654. package/dist/task-packet.d.ts +104 -0
  655. package/dist/task-packet.d.ts.map +1 -0
  656. package/dist/task-packet.js +156 -0
  657. package/dist/task-ranker.d.ts +51 -0
  658. package/dist/task-ranker.d.ts.map +1 -0
  659. package/dist/task-ranker.js +410 -0
  660. package/dist/task-risk.d.ts +84 -0
  661. package/dist/task-risk.d.ts.map +1 -0
  662. package/dist/task-risk.js +731 -0
  663. package/dist/task-routing-hint-registry.d.ts +36 -0
  664. package/dist/task-routing-hint-registry.d.ts.map +1 -0
  665. package/dist/task-routing-hint-registry.js +186 -0
  666. package/dist/template-authoring.d.ts +113 -0
  667. package/dist/template-authoring.d.ts.map +1 -0
  668. package/dist/template-authoring.js +521 -0
  669. package/dist/template-body-inference-v2.d.ts +19 -0
  670. package/dist/template-body-inference-v2.d.ts.map +1 -0
  671. package/dist/template-body-inference-v2.js +468 -0
  672. package/dist/template-body-inference.d.ts +59 -0
  673. package/dist/template-body-inference.d.ts.map +1 -0
  674. package/dist/template-body-inference.js +277 -0
  675. package/dist/template-drift.d.ts +39 -0
  676. package/dist/template-drift.d.ts.map +1 -0
  677. package/dist/template-drift.js +353 -0
  678. package/dist/template-lint.d.ts +31 -0
  679. package/dist/template-lint.d.ts.map +1 -0
  680. package/dist/template-lint.js +113 -0
  681. package/dist/test-definitions.d.ts +41 -0
  682. package/dist/test-definitions.d.ts.map +1 -0
  683. package/dist/test-definitions.js +6 -0
  684. package/dist/test-impact.d.ts +30 -0
  685. package/dist/test-impact.d.ts.map +1 -0
  686. package/dist/test-impact.js +173 -0
  687. package/dist/test-runner.d.ts +87 -0
  688. package/dist/test-runner.d.ts.map +1 -0
  689. package/dist/test-runner.js +560 -0
  690. package/dist/uncertainty-report.d.ts +46 -0
  691. package/dist/uncertainty-report.d.ts.map +1 -0
  692. package/dist/uncertainty-report.js +108 -0
  693. package/dist/uncertainty.d.ts +38 -0
  694. package/dist/uncertainty.d.ts.map +1 -0
  695. package/dist/uncertainty.js +115 -0
  696. package/dist/universal-search.d.ts +64 -0
  697. package/dist/universal-search.d.ts.map +1 -0
  698. package/dist/universal-search.js +347 -0
  699. package/dist/upgrade-advisor.d.ts +22 -0
  700. package/dist/upgrade-advisor.d.ts.map +1 -0
  701. package/dist/upgrade-advisor.js +109 -0
  702. package/dist/why-file.d.ts +75 -0
  703. package/dist/why-file.d.ts.map +1 -0
  704. package/dist/why-file.js +202 -0
  705. package/dist/workflow-simulation.d.ts +46 -0
  706. package/dist/workflow-simulation.d.ts.map +1 -0
  707. package/dist/workflow-simulation.js +154 -0
  708. package/package.json +65 -0
@@ -0,0 +1,174 @@
1
+ /**
2
+ * Three-way merge for onboarding drafts.
3
+ *
4
+ * When `shrk onboard --write-drafts` re-runs against a project that has
5
+ * hand-edited drafts, the safe behaviour is to merge the new proposal
6
+ * against the user's current file and the snapshot we wrote last time:
7
+ *
8
+ * - base : `.sharkcraft/onboarding-drafts-snapshots/<file>` (what we
9
+ * wrote last). When absent, the merge degrades to a strict
10
+ * "matches proposal → no-op, otherwise conflict" rule.
11
+ * - ours : the current `sharkcraft/onboarding/<file>` content.
12
+ * - theirs : the freshly rendered proposal we are about to write.
13
+ *
14
+ * The merge always returns an intended `body`. The caller decides whether
15
+ * to write it (e.g. `abortOnConflict` keeps the file unchanged).
16
+ */
17
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
18
+ import * as nodePath from 'node:path';
19
+ export var DraftMergeStatus;
20
+ (function (DraftMergeStatus) {
21
+ /** File did not exist; the proposal was written verbatim. */
22
+ DraftMergeStatus["Created"] = "created";
23
+ /** Current file already matches the proposal — nothing to do. */
24
+ DraftMergeStatus["Unchanged"] = "unchanged";
25
+ /** Current file matches the snapshot; the proposal was applied. */
26
+ DraftMergeStatus["CleanUpdate"] = "clean-update";
27
+ /** Proposal matches the snapshot; the user's edits were kept. */
28
+ DraftMergeStatus["UserKept"] = "user-kept";
29
+ /** Disjoint single-region edits on both sides; auto-merged. */
30
+ DraftMergeStatus["AutoMerged"] = "auto-merged";
31
+ /** Both sides changed the same region — conflict markers emitted. */
32
+ DraftMergeStatus["Conflict"] = "conflict";
33
+ /** Both sides changed but `abortOnConflict` was set — file untouched. */
34
+ DraftMergeStatus["Aborted"] = "aborted";
35
+ })(DraftMergeStatus || (DraftMergeStatus = {}));
36
+ /**
37
+ * Resolve the snapshot path for a given draft file.
38
+ *
39
+ * @param projectRoot Absolute repo root.
40
+ * @param draftPath Absolute path of the draft file.
41
+ */
42
+ export function snapshotPathFor(projectRoot, draftPath) {
43
+ const rel = nodePath.relative(nodePath.join(projectRoot, 'sharkcraft', 'onboarding'), draftPath);
44
+ return nodePath.join(projectRoot, '.sharkcraft', 'onboarding-drafts-snapshots', rel);
45
+ }
46
+ export function readSnapshot(snapshotPath) {
47
+ if (!existsSync(snapshotPath))
48
+ return null;
49
+ try {
50
+ return readFileSync(snapshotPath, 'utf8');
51
+ }
52
+ catch {
53
+ return null;
54
+ }
55
+ }
56
+ export function writeSnapshot(snapshotPath, body) {
57
+ mkdirSync(nodePath.dirname(snapshotPath), { recursive: true });
58
+ writeFileSync(snapshotPath, body, 'utf8');
59
+ }
60
+ /**
61
+ * Three-way merge a single draft file.
62
+ *
63
+ * Truth table:
64
+ * - !exists(ours) → Created (body = theirs)
65
+ * - ours === theirs → Unchanged
66
+ * - base === null:
67
+ * - ours === theirs → Unchanged
68
+ * - otherwise → Conflict (or Aborted)
69
+ * - ours === base → CleanUpdate (body = theirs)
70
+ * - theirs === base → UserKept (body = ours)
71
+ * - otherwise → diff3Lines → AutoMerged | Conflict | Aborted
72
+ */
73
+ export function threeWayMergeDraft(base, ours, theirs, options = {}) {
74
+ if (ours === null) {
75
+ return { status: DraftMergeStatus.Created, body: theirs, conflictRegions: 0 };
76
+ }
77
+ if (ours === theirs) {
78
+ return { status: DraftMergeStatus.Unchanged, body: ours, conflictRegions: 0 };
79
+ }
80
+ if (base === null) {
81
+ return wholeFileConflict(ours, theirs, options);
82
+ }
83
+ if (ours === base) {
84
+ return { status: DraftMergeStatus.CleanUpdate, body: theirs, conflictRegions: 0 };
85
+ }
86
+ if (theirs === base) {
87
+ return { status: DraftMergeStatus.UserKept, body: ours, conflictRegions: 0 };
88
+ }
89
+ return diff3Lines(base, ours, theirs, options);
90
+ }
91
+ /**
92
+ * Coarse-grained line-level three-way merge.
93
+ *
94
+ * Strips the common prefix and suffix lines, then inspects the centre:
95
+ * - centre(ours) === centre(base) → take theirs
96
+ * - centre(theirs) === centre(base) → take ours
97
+ * - centre(ours) === centre(theirs) → take either
98
+ * - otherwise → emit conflict markers around the centre
99
+ *
100
+ * Multiple disjoint edit regions fall through to conflict; that's a
101
+ * deliberate trade-off — anything subtler than a single contiguous edit
102
+ * is exactly the case a human should review.
103
+ */
104
+ function diff3Lines(base, ours, theirs, options) {
105
+ const baseLines = base.split('\n');
106
+ const oursLines = ours.split('\n');
107
+ const theirsLines = theirs.split('\n');
108
+ let prefix = 0;
109
+ const maxPrefix = Math.min(baseLines.length, oursLines.length, theirsLines.length);
110
+ while (prefix < maxPrefix &&
111
+ baseLines[prefix] === oursLines[prefix] &&
112
+ baseLines[prefix] === theirsLines[prefix]) {
113
+ prefix += 1;
114
+ }
115
+ let suffix = 0;
116
+ const maxSuffix = Math.min(baseLines.length, oursLines.length, theirsLines.length) - prefix;
117
+ while (suffix < maxSuffix &&
118
+ baseLines[baseLines.length - 1 - suffix] === oursLines[oursLines.length - 1 - suffix] &&
119
+ baseLines[baseLines.length - 1 - suffix] === theirsLines[theirsLines.length - 1 - suffix]) {
120
+ suffix += 1;
121
+ }
122
+ const baseCentre = baseLines.slice(prefix, baseLines.length - suffix).join('\n');
123
+ const oursCentre = oursLines.slice(prefix, oursLines.length - suffix).join('\n');
124
+ const theirsCentre = theirsLines.slice(prefix, theirsLines.length - suffix).join('\n');
125
+ const headLines = oursLines.slice(0, prefix);
126
+ const tailLines = oursLines.slice(oursLines.length - suffix);
127
+ if (oursCentre === baseCentre) {
128
+ // Only theirs diverged.
129
+ const merged = [...headLines, ...theirsLines.slice(prefix, theirsLines.length - suffix), ...tailLines].join('\n');
130
+ return { status: DraftMergeStatus.AutoMerged, body: merged, conflictRegions: 0 };
131
+ }
132
+ if (theirsCentre === baseCentre) {
133
+ // Only ours diverged.
134
+ return { status: DraftMergeStatus.UserKept, body: ours, conflictRegions: 0 };
135
+ }
136
+ if (oursCentre === theirsCentre) {
137
+ // Both sides made identical changes.
138
+ const merged = [...headLines, ...oursLines.slice(prefix, oursLines.length - suffix), ...tailLines].join('\n');
139
+ return { status: DraftMergeStatus.AutoMerged, body: merged, conflictRegions: 0 };
140
+ }
141
+ if (options.abortOnConflict) {
142
+ return { status: DraftMergeStatus.Aborted, body: ours, conflictRegions: 1 };
143
+ }
144
+ const oursLabel = options.oursLabel ?? 'ours';
145
+ const theirsLabel = options.theirsLabel ?? 'incoming proposal';
146
+ const markerOpen = `<<<<<<< ${oursLabel}`;
147
+ const markerMid = '=======';
148
+ const markerClose = `>>>>>>> ${theirsLabel}`;
149
+ const conflictBlock = [
150
+ markerOpen,
151
+ oursCentre,
152
+ markerMid,
153
+ theirsCentre,
154
+ markerClose,
155
+ ];
156
+ const body = [...headLines, ...conflictBlock, ...tailLines].join('\n');
157
+ return { status: DraftMergeStatus.Conflict, body, conflictRegions: 1 };
158
+ }
159
+ function wholeFileConflict(ours, theirs, options) {
160
+ if (options.abortOnConflict) {
161
+ return { status: DraftMergeStatus.Aborted, body: ours, conflictRegions: 1 };
162
+ }
163
+ const oursLabel = options.oursLabel ?? 'ours';
164
+ const theirsLabel = options.theirsLabel ?? 'incoming proposal';
165
+ const body = [
166
+ `<<<<<<< ${oursLabel}`,
167
+ ours.replace(/\n$/, ''),
168
+ '=======',
169
+ theirs.replace(/\n$/, ''),
170
+ `>>>>>>> ${theirsLabel}`,
171
+ '',
172
+ ].join('\n');
173
+ return { status: DraftMergeStatus.Conflict, body, conflictRegions: 1 };
174
+ }
@@ -0,0 +1,42 @@
1
+ import type { IOnboardingPlan } from './onboarding.js';
2
+ import type { IImportedAgentRulesBundle } from './onboarding-agent-import.js';
3
+ import { DraftMergeStatus } from './onboarding-drafts-merge.js';
4
+ export interface IWrittenDraft {
5
+ path: string;
6
+ bytes: number;
7
+ /** Three-way merge status for this draft. */
8
+ mergeStatus: DraftMergeStatus;
9
+ /** Number of conflict regions emitted into `path` (0 unless status=Conflict). */
10
+ conflictRegions: number;
11
+ }
12
+ export interface IWriteOnboardingDraftsOptions {
13
+ projectRoot: string;
14
+ /** Override the output directory. Default: `<projectRoot>/sharkcraft/onboarding`. */
15
+ outDir?: string;
16
+ /**
17
+ * When provided, write an additional `imported-agent-rules.draft.ts` file
18
+ * containing the entries parsed from AGENTS.md / CLAUDE.md / .cursor/rules.
19
+ * The file is still under the onboarding/ subdir — never written to rules.ts.
20
+ */
21
+ importedAgentRules?: IImportedAgentRulesBundle;
22
+ /**
23
+ * When true, conflicts leave the existing file unchanged and report status
24
+ * via the result. Useful for CI gates.
25
+ */
26
+ abortOnConflict?: boolean;
27
+ }
28
+ export interface IWriteOnboardingDraftsResult {
29
+ outDir: string;
30
+ files: IWrittenDraft[];
31
+ /** Total number of draft files that ended in a Conflict status. */
32
+ conflicts: number;
33
+ /** Total number of draft files left untouched because abortOnConflict was set. */
34
+ aborted: number;
35
+ }
36
+ /**
37
+ * Write onboarding drafts under sharkcraft/onboarding/. This function NEVER
38
+ * writes outside that subdirectory (the caller can override the location, but
39
+ * the function refuses any path that escapes the resolved outDir).
40
+ */
41
+ export declare function writeOnboardingDrafts(plan: IOnboardingPlan, options: IWriteOnboardingDraftsOptions): IWriteOnboardingDraftsResult;
42
+ //# sourceMappingURL=onboarding-drafts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-drafts.d.ts","sourceRoot":"","sources":["../src/onboarding-drafts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAA8B,MAAM,iBAAiB,CAAC;AAEnF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EACL,gBAAgB,EAMjB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,WAAW,EAAE,gBAAgB,CAAC;IAC9B,iFAAiF;IACjF,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,6BAA6B;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IAC/C;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,6BAA6B,GACrC,4BAA4B,CA+C9B"}
@@ -0,0 +1,268 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import * as nodePath from 'node:path';
3
+ import { renderOnboardingReport } from "./onboarding-report.js";
4
+ import { DraftMergeStatus, readSnapshot, snapshotPathFor, threeWayMergeDraft, writeSnapshot, } from "./onboarding-drafts-merge.js";
5
+ /**
6
+ * Write onboarding drafts under sharkcraft/onboarding/. This function NEVER
7
+ * writes outside that subdirectory (the caller can override the location, but
8
+ * the function refuses any path that escapes the resolved outDir).
9
+ */
10
+ export function writeOnboardingDrafts(plan, options) {
11
+ const outDir = nodePath.resolve(options.outDir ??
12
+ nodePath.join(options.projectRoot, 'sharkcraft', 'onboarding'));
13
+ ensureDir(outDir);
14
+ const files = [];
15
+ const write = (name, proposal) => {
16
+ const full = nodePath.join(outDir, name);
17
+ // Belt-and-braces: refuse anything that escapes outDir.
18
+ if (!full.startsWith(outDir + nodePath.sep)) {
19
+ throw new Error(`draft path escapes outDir: ${name}`);
20
+ }
21
+ const merge = mergeDraft(options.projectRoot, full, proposal, options);
22
+ if (merge.status !== DraftMergeStatus.Aborted) {
23
+ writeFileSync(full, merge.body, 'utf8');
24
+ // Snapshot what we just wrote so the next run has a fresh `base`.
25
+ writeSnapshot(snapshotPathFor(options.projectRoot, full), merge.body);
26
+ }
27
+ files.push({
28
+ path: full,
29
+ bytes: Buffer.byteLength(merge.body, 'utf8'),
30
+ mergeStatus: merge.status,
31
+ conflictRegions: merge.conflictRegions,
32
+ });
33
+ };
34
+ write('onboarding-report.md', renderOnboardingReport(plan));
35
+ write('inferred-rules.draft.ts', renderInferredRulesDraft(plan));
36
+ write('inferred-paths.draft.ts', renderInferredPathsDraft(plan));
37
+ write('inferred-templates.draft.ts', renderInferredTemplatesDraft(plan));
38
+ write('inferred-boundaries.draft.ts', renderInferredBoundariesDraft(plan));
39
+ write('inferred-pipelines.draft.ts', renderInferredPipelinesDraft(plan));
40
+ if (options.importedAgentRules && options.importedAgentRules.entries.length > 0) {
41
+ write('imported-agent-rules.draft.ts', renderImportedAgentRulesDraft(options.importedAgentRules));
42
+ }
43
+ let conflicts = 0;
44
+ let aborted = 0;
45
+ for (const f of files) {
46
+ if (f.mergeStatus === DraftMergeStatus.Conflict)
47
+ conflicts += 1;
48
+ else if (f.mergeStatus === DraftMergeStatus.Aborted)
49
+ aborted += 1;
50
+ }
51
+ return { outDir, files, conflicts, aborted };
52
+ }
53
+ function mergeDraft(projectRoot, draftPath, proposal, options) {
54
+ const ours = existsSync(draftPath) ? safeRead(draftPath) : null;
55
+ const base = readSnapshot(snapshotPathFor(projectRoot, draftPath));
56
+ return threeWayMergeDraft(base, ours, proposal, {
57
+ abortOnConflict: options.abortOnConflict ?? false,
58
+ });
59
+ }
60
+ function safeRead(path) {
61
+ try {
62
+ return readFileSync(path, 'utf8');
63
+ }
64
+ catch {
65
+ return null;
66
+ }
67
+ }
68
+ // ─── Renderers ───────────────────────────────────────────────────────────────
69
+ function renderInferredRulesDraft(plan) {
70
+ const lines = [];
71
+ lines.push(`// Inferred rules draft — generated by \`shrk onboard\`. Review before adopting.`);
72
+ lines.push(`// Move keepers into sharkcraft/rules.ts.`);
73
+ lines.push(`export default [`);
74
+ for (const r of plan.inferredRules) {
75
+ lines.push(` {`);
76
+ lines.push(` id: ${literal(r.id)},`);
77
+ lines.push(` type: 'rule',`);
78
+ lines.push(` title: ${literal(r.title)},`);
79
+ lines.push(` priority: ${literal(r.priority)},`);
80
+ lines.push(` content: ${literal(r.content)},`);
81
+ lines.push(` tags: ${literal(['inferred', r.source])},`);
82
+ lines.push(` // reason: ${escapeSingleLineComment(r.reason)}`);
83
+ lines.push(` },`);
84
+ }
85
+ lines.push(`];`);
86
+ return lines.join('\n') + '\n';
87
+ }
88
+ function renderInferredPathsDraft(plan) {
89
+ const lines = [];
90
+ lines.push(`// Inferred path conventions draft — generated by \`shrk onboard\`. Review before adopting.`);
91
+ lines.push(`// Move keepers into sharkcraft/paths.ts.`);
92
+ lines.push(`export default [`);
93
+ for (const p of plan.inferredPathConventions) {
94
+ lines.push(` {`);
95
+ lines.push(` id: ${literal(p.id)},`);
96
+ lines.push(` type: 'path',`);
97
+ lines.push(` title: ${literal(p.title)},`);
98
+ lines.push(` content: ${literal(p.content)},`);
99
+ lines.push(` patterns: ${literal(p.patterns)},`);
100
+ lines.push(` tags: ${literal(['inferred', 'path'])},`);
101
+ lines.push(` // reason: ${escapeSingleLineComment(p.reason)}`);
102
+ lines.push(` },`);
103
+ }
104
+ lines.push(`];`);
105
+ return lines.join('\n') + '\n';
106
+ }
107
+ function renderInferredTemplatesDraft(plan) {
108
+ const lines = [];
109
+ const anyScaffolded = plan.inferredTemplateCandidates.some((t) => t.scaffold);
110
+ lines.push(`// Inferred template candidates — generated by \`shrk onboard\`.`);
111
+ if (anyScaffolded) {
112
+ lines.push(`// Entries with \`runnable: true\` ship a draft body with placeholder variables.`);
113
+ lines.push(`// Review carefully (especially low-confidence entries) before moving to sharkcraft/templates.ts.`);
114
+ }
115
+ else {
116
+ lines.push(`// NOT runnable until you fill in targetPath + content. Re-run with \`--scaffold-templates\` to draft bodies.`);
117
+ }
118
+ lines.push(`export default [`);
119
+ for (const t of plan.inferredTemplateCandidates) {
120
+ renderTemplateCandidate(lines, t);
121
+ }
122
+ lines.push(`];`);
123
+ return lines.join('\n') + '\n';
124
+ }
125
+ function renderTemplateCandidate(lines, t) {
126
+ lines.push(` {`);
127
+ lines.push(` id: ${literal(t.id)},`);
128
+ lines.push(` name: ${literal(t.name)},`);
129
+ lines.push(` description: ${literal(t.description)},`);
130
+ lines.push(` confidence: ${literal(t.confidence)},`);
131
+ if (t.targetPathHint) {
132
+ lines.push(` // targetPath hint: ${escapeSingleLineComment(t.targetPathHint)}`);
133
+ }
134
+ if (t.sample) {
135
+ lines.push(` // sample: ${escapeSingleLineComment(t.sample)}`);
136
+ }
137
+ lines.push(` // reason: ${escapeSingleLineComment(t.reason)}`);
138
+ if (t.scaffold) {
139
+ lines.push(` runnable: true,`);
140
+ lines.push(` scaffold: {`);
141
+ lines.push(` id: ${literal(t.scaffold.id)},`);
142
+ lines.push(` name: ${literal(t.scaffold.name)},`);
143
+ lines.push(` description: ${literal(t.scaffold.description)},`);
144
+ lines.push(` targetPath: ${literal(t.scaffold.targetPath)},`);
145
+ lines.push(` variables: [`);
146
+ for (const v of t.scaffold.variables) {
147
+ lines.push(` {`);
148
+ lines.push(` name: ${literal(v.name)},`);
149
+ lines.push(` description: ${literal(v.description)},`);
150
+ if (typeof v.default === 'string') {
151
+ lines.push(` default: ${literal(v.default)},`);
152
+ }
153
+ lines.push(` },`);
154
+ }
155
+ lines.push(` ],`);
156
+ lines.push(` content: ${renderMultilineTemplateLiteral(t.scaffold.content)},`);
157
+ if (t.scaffold.warnings.length > 0) {
158
+ lines.push(` // warnings:`);
159
+ for (const w of t.scaffold.warnings) {
160
+ lines.push(` // - ${escapeSingleLineComment(w)}`);
161
+ }
162
+ }
163
+ lines.push(` },`);
164
+ }
165
+ lines.push(` },`);
166
+ }
167
+ function renderMultilineTemplateLiteral(content) {
168
+ // Use a tagged template literal-safe form. Backticks and ${ must be escaped.
169
+ const escaped = content.replace(/\\/g, '\\\\').replace(/`/g, '\\`').replace(/\$\{/g, '\\${');
170
+ return '`' + escaped + '`';
171
+ }
172
+ function renderInferredBoundariesDraft(plan) {
173
+ const lines = [];
174
+ lines.push(`// Inferred boundary rules draft — generated by \`shrk onboard\`. Review before adopting.`);
175
+ lines.push(`// Drop into sharkcraft/boundaries.ts (and register via sharkcraft.config.ts boundaryFiles).`);
176
+ lines.push(`export default [`);
177
+ for (const b of plan.inferredBoundaryRules) {
178
+ lines.push(` {`);
179
+ lines.push(` id: ${literal(b.id)},`);
180
+ lines.push(` title: ${literal(b.title)},`);
181
+ lines.push(` severity: ${literal(b.severity)},`);
182
+ lines.push(` from: ${literal(b.from)},`);
183
+ if (b.forbiddenImports) {
184
+ lines.push(` forbiddenImports: ${literal(b.forbiddenImports)},`);
185
+ }
186
+ if (b.allowedImports) {
187
+ lines.push(` allowedImports: ${literal(b.allowedImports)},`);
188
+ }
189
+ lines.push(` suggestedFix: ${literal(b.suggestedFix)},`);
190
+ lines.push(` // reason: ${escapeSingleLineComment(b.reason)}`);
191
+ lines.push(` },`);
192
+ }
193
+ lines.push(`];`);
194
+ return lines.join('\n') + '\n';
195
+ }
196
+ function renderInferredPipelinesDraft(plan) {
197
+ const lines = [];
198
+ lines.push(`// Inferred pipelines draft — generated by \`shrk onboard\`. Review before adopting.`);
199
+ lines.push(`// Move keepers into sharkcraft/pipelines.ts.`);
200
+ lines.push(`export default [`);
201
+ for (const p of plan.inferredPipelines) {
202
+ lines.push(` {`);
203
+ lines.push(` id: ${literal(p.id)},`);
204
+ lines.push(` title: ${literal(p.title)},`);
205
+ lines.push(` description: ${literal(p.description)},`);
206
+ lines.push(` steps: ${renderSteps(p.steps)},`);
207
+ lines.push(` // reason: ${escapeSingleLineComment(p.reason)}`);
208
+ lines.push(` },`);
209
+ }
210
+ lines.push(`];`);
211
+ return lines.join('\n') + '\n';
212
+ }
213
+ function renderSteps(steps) {
214
+ const items = steps.map((id) => ` { id: ${literal(id)}, title: ${literal(id)} }`);
215
+ return `[\n${items.join(',\n')}\n ]`;
216
+ }
217
+ // ─── Util ────────────────────────────────────────────────────────────────────
218
+ function literal(v) {
219
+ if (Array.isArray(v)) {
220
+ return `[${v.map((x) => literal(x)).join(', ')}]`;
221
+ }
222
+ if (typeof v === 'string') {
223
+ // Use JSON.stringify for safe escaping.
224
+ return JSON.stringify(v);
225
+ }
226
+ return JSON.stringify(v);
227
+ }
228
+ function escapeSingleLineComment(s) {
229
+ return s.replace(/\r?\n/g, ' ').replace(/\*\//g, '*​/');
230
+ }
231
+ function ensureDir(dir) {
232
+ if (existsSync(dir))
233
+ return;
234
+ mkdirSync(dir, { recursive: true });
235
+ }
236
+ function renderImportedAgentRulesDraft(bundle) {
237
+ const lines = [];
238
+ lines.push(`// Imported agent rules draft — generated by \`shrk onboard --import-agents\`.`);
239
+ lines.push(`// Source files: ${bundle.sourceFiles.map((s) => escapeSingleLineComment(s)).join(', ') || '(none)'}`);
240
+ lines.push(`// Review before adopting; entries flagged "ambiguous" may need a manual rewrite.`);
241
+ lines.push(`export default [`);
242
+ for (const e of bundle.entries) {
243
+ lines.push(` {`);
244
+ lines.push(` id: ${literal(e.id)},`);
245
+ lines.push(` type: ${literal(e.type)},`);
246
+ lines.push(` title: ${literal(e.title)},`);
247
+ lines.push(` content: ${literal(e.content)},`);
248
+ lines.push(` tags: ${literal(e.tags)},`);
249
+ if (e.scope?.length)
250
+ lines.push(` scope: ${literal(e.scope)},`);
251
+ if (e.source?.origin) {
252
+ lines.push(` // origin: ${escapeSingleLineComment(e.source.origin)}`);
253
+ }
254
+ if (e.flaggedAmbiguous) {
255
+ lines.push(` // ambiguous: please review the wording before adopting`);
256
+ }
257
+ lines.push(` },`);
258
+ }
259
+ lines.push(`];`);
260
+ if (bundle.warnings.length > 0) {
261
+ lines.push('');
262
+ lines.push('// Warnings:');
263
+ for (const w of bundle.warnings) {
264
+ lines.push(`// - ${escapeSingleLineComment(w)}`);
265
+ }
266
+ }
267
+ return lines.join('\n') + '\n';
268
+ }
@@ -0,0 +1,8 @@
1
+ import type { IOnboardingPlan } from './onboarding.js';
2
+ /**
3
+ * Render an onboarding plan as a Markdown report. The output is intentionally
4
+ * stable and human-readable: it is the artifact a user reads when deciding
5
+ * whether to adopt SharkCraft drafts.
6
+ */
7
+ export declare function renderOnboardingReport(plan: IOnboardingPlan): string;
8
+ //# sourceMappingURL=onboarding-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-report.d.ts","sourceRoot":"","sources":["../src/onboarding-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CA0PpE"}