@fantasticit/sumi 0.0.0-stage → 0.5.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 (959) hide show
  1. package/README.md +81 -2
  2. package/dist/adapters.d.ts +86 -0
  3. package/dist/adapters.js +469 -0
  4. package/dist/adapters.js.map +1 -0
  5. package/dist/agent-hooks.d.ts +15 -0
  6. package/dist/agent-hooks.js +63 -0
  7. package/dist/agent-hooks.js.map +1 -0
  8. package/dist/agents.d.ts +1 -0
  9. package/dist/agents.js +139 -0
  10. package/dist/agents.js.map +1 -0
  11. package/dist/bin.d.ts +2 -0
  12. package/dist/bin.js +21 -0
  13. package/dist/bin.js.map +1 -0
  14. package/dist/build-identity.d.ts +7 -0
  15. package/dist/build-identity.js +55 -0
  16. package/dist/build-identity.js.map +1 -0
  17. package/dist/cli.d.ts +19 -0
  18. package/dist/cli.js +150 -0
  19. package/dist/cli.js.map +1 -0
  20. package/dist/context.d.ts +1 -0
  21. package/dist/context.js +117 -0
  22. package/dist/context.js.map +1 -0
  23. package/dist/fix.d.ts +1 -0
  24. package/dist/fix.js +51 -0
  25. package/dist/fix.js.map +1 -0
  26. package/dist/index.d.ts +9 -0
  27. package/dist/index.js +10 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/instructions.d.ts +31 -0
  30. package/dist/instructions.js +150 -0
  31. package/dist/instructions.js.map +1 -0
  32. package/dist/launcher-entry.d.ts +1 -0
  33. package/dist/launcher-entry.js +8 -0
  34. package/dist/launcher-entry.js.map +1 -0
  35. package/dist/launcher.cjs +10606 -0
  36. package/dist/launcher.d.ts +3 -0
  37. package/dist/launcher.js +117 -0
  38. package/dist/launcher.js.map +1 -0
  39. package/dist/runtime-manifest.d.ts +29 -0
  40. package/dist/runtime-manifest.js +75 -0
  41. package/dist/runtime-manifest.js.map +1 -0
  42. package/dist/runtime-package.d.ts +10 -0
  43. package/dist/runtime-package.js +66 -0
  44. package/dist/runtime-package.js.map +1 -0
  45. package/dist/scaffold-commands.d.ts +3 -0
  46. package/dist/scaffold-commands.js +214 -0
  47. package/dist/scaffold-commands.js.map +1 -0
  48. package/dist/vendor.d.ts +1 -0
  49. package/dist/vendor.js +260 -0
  50. package/dist/vendor.js.map +1 -0
  51. package/node_modules/@isaacs/fs-minipass/LICENSE +15 -0
  52. package/node_modules/@isaacs/fs-minipass/README.md +71 -0
  53. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts +118 -0
  54. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts.map +1 -0
  55. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js +430 -0
  56. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js.map +1 -0
  57. package/node_modules/@isaacs/fs-minipass/dist/commonjs/package.json +3 -0
  58. package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts +118 -0
  59. package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts.map +1 -0
  60. package/node_modules/@isaacs/fs-minipass/dist/esm/index.js +420 -0
  61. package/node_modules/@isaacs/fs-minipass/dist/esm/index.js.map +1 -0
  62. package/node_modules/@isaacs/fs-minipass/dist/esm/package.json +3 -0
  63. package/node_modules/@isaacs/fs-minipass/package.json +72 -0
  64. package/node_modules/@sumi/create/README.md +77 -0
  65. package/node_modules/@sumi/create/dist/index.d.ts +1 -0
  66. package/node_modules/@sumi/create/dist/index.js +2 -0
  67. package/node_modules/@sumi/create/dist/index.js.map +1 -0
  68. package/node_modules/@sumi/create/dist/scaffold.d.ts +29 -0
  69. package/node_modules/@sumi/create/dist/scaffold.js +134 -0
  70. package/node_modules/@sumi/create/dist/scaffold.js.map +1 -0
  71. package/node_modules/@sumi/create/package.json +22 -0
  72. package/node_modules/@sumi/create/template/.gitattributes +1 -0
  73. package/node_modules/@sumi/create/template/.prettierignore +5 -0
  74. package/node_modules/@sumi/create/template/.prettierrc +1 -0
  75. package/node_modules/@sumi/create/template/AGENTS.md +28 -0
  76. package/node_modules/@sumi/create/template/control/baselines/.gitkeep +0 -0
  77. package/node_modules/@sumi/create/template/control/config.yaml +59 -0
  78. package/node_modules/@sumi/create/template/control/decisions/0001-config-module.md +15 -0
  79. package/node_modules/@sumi/create/template/control/flows/change.flow.yaml +14 -0
  80. package/node_modules/@sumi/create/template/control/flows/check.flow.yaml +25 -0
  81. package/node_modules/@sumi/create/template/control/plugins/.gitkeep +0 -0
  82. package/node_modules/@sumi/create/template/control/rubrics/architecture.yaml +14 -0
  83. package/node_modules/@sumi/create/template/eslint.config.mjs +9 -0
  84. package/node_modules/@sumi/create/template/gitignore +4 -0
  85. package/node_modules/@sumi/create/template/init/AGENTS.md +27 -0
  86. package/node_modules/@sumi/create/template/init/control/baselines/.gitkeep +0 -0
  87. package/node_modules/@sumi/create/template/init/control/flows/check.flow.yaml +20 -0
  88. package/node_modules/@sumi/create/template/init/control/plugins/.gitkeep +0 -0
  89. package/node_modules/@sumi/create/template/init/control/rubrics/architecture.yaml +14 -0
  90. package/node_modules/@sumi/create/template/init/openspec/changes/archive/.gitkeep +0 -0
  91. package/node_modules/@sumi/create/template/init/openspec/config.yaml +1 -0
  92. package/node_modules/@sumi/create/template/init/openspec/specs/.gitkeep +0 -0
  93. package/node_modules/@sumi/create/template/init/precedents/registry.yaml +1 -0
  94. package/node_modules/@sumi/create/template/openspec/changes/archive/.gitkeep +0 -0
  95. package/node_modules/@sumi/create/template/openspec/config.yaml +1 -0
  96. package/node_modules/@sumi/create/template/openspec/specs/.gitkeep +0 -0
  97. package/node_modules/@sumi/create/template/package.json +21 -0
  98. package/node_modules/@sumi/create/template/precedents/no-env-in-business/check.mjs +36 -0
  99. package/node_modules/@sumi/create/template/precedents/no-env-in-business/fixtures/compliant/src/a.ts +3 -0
  100. package/node_modules/@sumi/create/template/precedents/no-env-in-business/fixtures/violating/src/a.ts +1 -0
  101. package/node_modules/@sumi/create/template/precedents/no-env-in-business/precedent.yaml +9 -0
  102. package/node_modules/@sumi/create/template/precedents/registry.yaml +3 -0
  103. package/node_modules/@sumi/create/template/src/config.ts +4 -0
  104. package/node_modules/@sumi/create/template/src/index.test.ts +6 -0
  105. package/node_modules/@sumi/create/template/src/index.ts +5 -0
  106. package/node_modules/@sumi/create/template/tsconfig.json +12 -0
  107. package/node_modules/@sumi/kernel/README.md +128 -0
  108. package/node_modules/@sumi/kernel/dist/brief.d.ts +41 -0
  109. package/node_modules/@sumi/kernel/dist/brief.js +82 -0
  110. package/node_modules/@sumi/kernel/dist/brief.js.map +1 -0
  111. package/node_modules/@sumi/kernel/dist/config.d.ts +40 -0
  112. package/node_modules/@sumi/kernel/dist/config.js +94 -0
  113. package/node_modules/@sumi/kernel/dist/config.js.map +1 -0
  114. package/node_modules/@sumi/kernel/dist/engine.d.ts +33 -0
  115. package/node_modules/@sumi/kernel/dist/engine.js +242 -0
  116. package/node_modules/@sumi/kernel/dist/engine.js.map +1 -0
  117. package/node_modules/@sumi/kernel/dist/errors.d.ts +5 -0
  118. package/node_modules/@sumi/kernel/dist/errors.js +9 -0
  119. package/node_modules/@sumi/kernel/dist/errors.js.map +1 -0
  120. package/node_modules/@sumi/kernel/dist/flow.d.ts +37 -0
  121. package/node_modules/@sumi/kernel/dist/flow.js +132 -0
  122. package/node_modules/@sumi/kernel/dist/flow.js.map +1 -0
  123. package/node_modules/@sumi/kernel/dist/index.d.ts +10 -0
  124. package/node_modules/@sumi/kernel/dist/index.js +11 -0
  125. package/node_modules/@sumi/kernel/dist/index.js.map +1 -0
  126. package/node_modules/@sumi/kernel/dist/plan.d.ts +21 -0
  127. package/node_modules/@sumi/kernel/dist/plan.js +68 -0
  128. package/node_modules/@sumi/kernel/dist/plan.js.map +1 -0
  129. package/node_modules/@sumi/kernel/dist/record.d.ts +31 -0
  130. package/node_modules/@sumi/kernel/dist/record.js +54 -0
  131. package/node_modules/@sumi/kernel/dist/record.js.map +1 -0
  132. package/node_modules/@sumi/kernel/dist/registry.d.ts +32 -0
  133. package/node_modules/@sumi/kernel/dist/registry.js +126 -0
  134. package/node_modules/@sumi/kernel/dist/registry.js.map +1 -0
  135. package/node_modules/@sumi/kernel/dist/runner.d.ts +15 -0
  136. package/node_modules/@sumi/kernel/dist/runner.js +101 -0
  137. package/node_modules/@sumi/kernel/dist/runner.js.map +1 -0
  138. package/node_modules/@sumi/kernel/dist/scope.d.ts +31 -0
  139. package/node_modules/@sumi/kernel/dist/scope.js +136 -0
  140. package/node_modules/@sumi/kernel/dist/scope.js.map +1 -0
  141. package/node_modules/@sumi/kernel/dist/testing.d.ts +7 -0
  142. package/node_modules/@sumi/kernel/dist/testing.js +32 -0
  143. package/node_modules/@sumi/kernel/dist/testing.js.map +1 -0
  144. package/node_modules/@sumi/kernel/dist/windows-process.d.ts +1 -0
  145. package/node_modules/@sumi/kernel/dist/windows-process.js +90 -0
  146. package/node_modules/@sumi/kernel/dist/windows-process.js.map +1 -0
  147. package/node_modules/@sumi/kernel/package.json +20 -0
  148. package/node_modules/@sumi/kernel/test/fixtures/fake-plugin.mjs +44 -0
  149. package/node_modules/@sumi/kernel/test/fixtures/py-plugin.py +3 -0
  150. package/node_modules/@sumi/plugin-sdk/README.md +144 -0
  151. package/node_modules/@sumi/plugin-sdk/dist/env.d.ts +5 -0
  152. package/node_modules/@sumi/plugin-sdk/dist/env.js +30 -0
  153. package/node_modules/@sumi/plugin-sdk/dist/env.js.map +1 -0
  154. package/node_modules/@sumi/plugin-sdk/dist/git.d.ts +7 -0
  155. package/node_modules/@sumi/plugin-sdk/dist/git.js +19 -0
  156. package/node_modules/@sumi/plugin-sdk/dist/git.js.map +1 -0
  157. package/node_modules/@sumi/plugin-sdk/dist/index.d.ts +9 -0
  158. package/node_modules/@sumi/plugin-sdk/dist/index.js +10 -0
  159. package/node_modules/@sumi/plugin-sdk/dist/index.js.map +1 -0
  160. package/node_modules/@sumi/plugin-sdk/dist/process.d.ts +7 -0
  161. package/node_modules/@sumi/plugin-sdk/dist/process.js +13 -0
  162. package/node_modules/@sumi/plugin-sdk/dist/process.js.map +1 -0
  163. package/node_modules/@sumi/plugin-sdk/dist/project.d.ts +9 -0
  164. package/node_modules/@sumi/plugin-sdk/dist/project.js +55 -0
  165. package/node_modules/@sumi/plugin-sdk/dist/project.js.map +1 -0
  166. package/node_modules/@sumi/plugin-sdk/dist/protocol.d.ts +200 -0
  167. package/node_modules/@sumi/plugin-sdk/dist/protocol.js +36 -0
  168. package/node_modules/@sumi/plugin-sdk/dist/protocol.js.map +1 -0
  169. package/node_modules/@sumi/plugin-sdk/dist/rules.d.ts +17 -0
  170. package/node_modules/@sumi/plugin-sdk/dist/rules.js +16 -0
  171. package/node_modules/@sumi/plugin-sdk/dist/rules.js.map +1 -0
  172. package/node_modules/@sumi/plugin-sdk/dist/sdk.d.ts +12 -0
  173. package/node_modules/@sumi/plugin-sdk/dist/sdk.js +51 -0
  174. package/node_modules/@sumi/plugin-sdk/dist/sdk.js.map +1 -0
  175. package/node_modules/@sumi/plugin-sdk/dist/tool-batches.d.ts +11 -0
  176. package/node_modules/@sumi/plugin-sdk/dist/tool-batches.js +41 -0
  177. package/node_modules/@sumi/plugin-sdk/dist/tool-batches.js.map +1 -0
  178. package/node_modules/@sumi/plugin-sdk/dist/validate.d.ts +8 -0
  179. package/node_modules/@sumi/plugin-sdk/dist/validate.js +221 -0
  180. package/node_modules/@sumi/plugin-sdk/dist/validate.js.map +1 -0
  181. package/node_modules/@sumi/plugin-sdk/package.json +18 -0
  182. package/node_modules/@sumi/plugins-core/README.md +148 -0
  183. package/node_modules/@sumi/plugins-core/dist/baseline.d.ts +34 -0
  184. package/node_modules/@sumi/plugins-core/dist/baseline.js +54 -0
  185. package/node_modules/@sumi/plugins-core/dist/baseline.js.map +1 -0
  186. package/node_modules/@sumi/plugins-core/dist/commands/adopt.d.ts +1 -0
  187. package/node_modules/@sumi/plugins-core/dist/commands/adopt.js +182 -0
  188. package/node_modules/@sumi/plugins-core/dist/commands/adopt.js.map +1 -0
  189. package/node_modules/@sumi/plugins-core/dist/commands/baseline.d.ts +1 -0
  190. package/node_modules/@sumi/plugins-core/dist/commands/baseline.js +56 -0
  191. package/node_modules/@sumi/plugins-core/dist/commands/baseline.js.map +1 -0
  192. package/node_modules/@sumi/plugins-core/dist/fix/format.d.ts +1 -0
  193. package/node_modules/@sumi/plugins-core/dist/fix/format.js +4 -0
  194. package/node_modules/@sumi/plugins-core/dist/fix/format.js.map +1 -0
  195. package/node_modules/@sumi/plugins-core/dist/fix/lint.d.ts +1 -0
  196. package/node_modules/@sumi/plugins-core/dist/fix/lint.js +4 -0
  197. package/node_modules/@sumi/plugins-core/dist/fix/lint.js.map +1 -0
  198. package/node_modules/@sumi/plugins-core/dist/index.d.ts +1 -0
  199. package/node_modules/@sumi/plugins-core/dist/index.js +2 -0
  200. package/node_modules/@sumi/plugins-core/dist/index.js.map +1 -0
  201. package/node_modules/@sumi/plugins-core/dist/lib.d.ts +34 -0
  202. package/node_modules/@sumi/plugins-core/dist/lib.js +113 -0
  203. package/node_modules/@sumi/plugins-core/dist/lib.js.map +1 -0
  204. package/node_modules/@sumi/plugins-core/dist/plugins/agent-drift.d.ts +1 -0
  205. package/node_modules/@sumi/plugins-core/dist/plugins/agent-drift.js +32 -0
  206. package/node_modules/@sumi/plugins-core/dist/plugins/agent-drift.js.map +1 -0
  207. package/node_modules/@sumi/plugins-core/dist/plugins/control-docs.d.ts +1 -0
  208. package/node_modules/@sumi/plugins-core/dist/plugins/control-docs.js +109 -0
  209. package/node_modules/@sumi/plugins-core/dist/plugins/control-docs.js.map +1 -0
  210. package/node_modules/@sumi/plugins-core/dist/plugins/coverage.d.ts +1 -0
  211. package/node_modules/@sumi/plugins-core/dist/plugins/coverage.js +107 -0
  212. package/node_modules/@sumi/plugins-core/dist/plugins/coverage.js.map +1 -0
  213. package/node_modules/@sumi/plugins-core/dist/plugins/exec.d.ts +1 -0
  214. package/node_modules/@sumi/plugins-core/dist/plugins/exec.js +69 -0
  215. package/node_modules/@sumi/plugins-core/dist/plugins/exec.js.map +1 -0
  216. package/node_modules/@sumi/plugins-core/dist/plugins/format.d.ts +1 -0
  217. package/node_modules/@sumi/plugins-core/dist/plugins/format.js +41 -0
  218. package/node_modules/@sumi/plugins-core/dist/plugins/format.js.map +1 -0
  219. package/node_modules/@sumi/plugins-core/dist/plugins/layer-boundary.d.ts +1 -0
  220. package/node_modules/@sumi/plugins-core/dist/plugins/layer-boundary.js +87 -0
  221. package/node_modules/@sumi/plugins-core/dist/plugins/layer-boundary.js.map +1 -0
  222. package/node_modules/@sumi/plugins-core/dist/plugins/lint.d.ts +1 -0
  223. package/node_modules/@sumi/plugins-core/dist/plugins/lint.js +91 -0
  224. package/node_modules/@sumi/plugins-core/dist/plugins/lint.js.map +1 -0
  225. package/node_modules/@sumi/plugins-core/dist/plugins/ratchet.d.ts +1 -0
  226. package/node_modules/@sumi/plugins-core/dist/plugins/ratchet.js +83 -0
  227. package/node_modules/@sumi/plugins-core/dist/plugins/ratchet.js.map +1 -0
  228. package/node_modules/@sumi/plugins-core/dist/plugins/test-affected.d.ts +1 -0
  229. package/node_modules/@sumi/plugins-core/dist/plugins/test-affected.js +283 -0
  230. package/node_modules/@sumi/plugins-core/dist/plugins/test-affected.js.map +1 -0
  231. package/node_modules/@sumi/plugins-core/dist/plugins/typecheck.d.ts +1 -0
  232. package/node_modules/@sumi/plugins-core/dist/plugins/typecheck.js +31 -0
  233. package/node_modules/@sumi/plugins-core/dist/plugins/typecheck.js.map +1 -0
  234. package/node_modules/@sumi/plugins-core/dist/test-scope.d.ts +77 -0
  235. package/node_modules/@sumi/plugins-core/dist/test-scope.js +175 -0
  236. package/node_modules/@sumi/plugins-core/dist/test-scope.js.map +1 -0
  237. package/node_modules/@sumi/plugins-core/dist/testing.d.ts +13 -0
  238. package/node_modules/@sumi/plugins-core/dist/testing.js +47 -0
  239. package/node_modules/@sumi/plugins-core/dist/testing.js.map +1 -0
  240. package/node_modules/@sumi/plugins-core/dist/tool-batches.d.ts +11 -0
  241. package/node_modules/@sumi/plugins-core/dist/tool-batches.js +41 -0
  242. package/node_modules/@sumi/plugins-core/dist/tool-batches.js.map +1 -0
  243. package/node_modules/@sumi/plugins-core/dist/vitest-runner.d.ts +1 -0
  244. package/node_modules/@sumi/plugins-core/dist/vitest-runner.js +126 -0
  245. package/node_modules/@sumi/plugins-core/dist/vitest-runner.js.map +1 -0
  246. package/node_modules/@sumi/plugins-core/instructions/adopt.md +37 -0
  247. package/node_modules/@sumi/plugins-core/package.json +25 -0
  248. package/node_modules/@sumi/plugins-core/sumi-plugins.yaml +80 -0
  249. package/node_modules/@sumi/plugins-governance/README.md +159 -0
  250. package/node_modules/@sumi/plugins-governance/dist/checkout.d.ts +45 -0
  251. package/node_modules/@sumi/plugins-governance/dist/checkout.js +138 -0
  252. package/node_modules/@sumi/plugins-governance/dist/checkout.js.map +1 -0
  253. package/node_modules/@sumi/plugins-governance/dist/commands/approve.d.ts +1 -0
  254. package/node_modules/@sumi/plugins-governance/dist/commands/approve.js +27 -0
  255. package/node_modules/@sumi/plugins-governance/dist/commands/approve.js.map +1 -0
  256. package/node_modules/@sumi/plugins-governance/dist/commands/gate.d.ts +1 -0
  257. package/node_modules/@sumi/plugins-governance/dist/commands/gate.js +177 -0
  258. package/node_modules/@sumi/plugins-governance/dist/commands/gate.js.map +1 -0
  259. package/node_modules/@sumi/plugins-governance/dist/commands/guard.d.ts +1 -0
  260. package/node_modules/@sumi/plugins-governance/dist/commands/guard.js +27 -0
  261. package/node_modules/@sumi/plugins-governance/dist/commands/guard.js.map +1 -0
  262. package/node_modules/@sumi/plugins-governance/dist/commands/pr-report-check.d.ts +1 -0
  263. package/node_modules/@sumi/plugins-governance/dist/commands/pr-report-check.js +8 -0
  264. package/node_modules/@sumi/plugins-governance/dist/commands/pr-report-check.js.map +1 -0
  265. package/node_modules/@sumi/plugins-governance/dist/commands/pr-report.d.ts +1 -0
  266. package/node_modules/@sumi/plugins-governance/dist/commands/pr-report.js +128 -0
  267. package/node_modules/@sumi/plugins-governance/dist/commands/pr-report.js.map +1 -0
  268. package/node_modules/@sumi/plugins-governance/dist/commands/unlock.d.ts +1 -0
  269. package/node_modules/@sumi/plugins-governance/dist/commands/unlock.js +21 -0
  270. package/node_modules/@sumi/plugins-governance/dist/commands/unlock.js.map +1 -0
  271. package/node_modules/@sumi/plugins-governance/dist/guard.d.ts +19 -0
  272. package/node_modules/@sumi/plugins-governance/dist/guard.js +173 -0
  273. package/node_modules/@sumi/plugins-governance/dist/guard.js.map +1 -0
  274. package/node_modules/@sumi/plugins-governance/dist/index.d.ts +4 -0
  275. package/node_modules/@sumi/plugins-governance/dist/index.js +5 -0
  276. package/node_modules/@sumi/plugins-governance/dist/index.js.map +1 -0
  277. package/node_modules/@sumi/plugins-governance/dist/plugins/protected-paths.d.ts +1 -0
  278. package/node_modules/@sumi/plugins-governance/dist/plugins/protected-paths.js +31 -0
  279. package/node_modules/@sumi/plugins-governance/dist/plugins/protected-paths.js.map +1 -0
  280. package/node_modules/@sumi/plugins-governance/dist/pr-base.d.ts +19 -0
  281. package/node_modules/@sumi/plugins-governance/dist/pr-base.js +49 -0
  282. package/node_modules/@sumi/plugins-governance/dist/pr-base.js.map +1 -0
  283. package/node_modules/@sumi/plugins-governance/dist/pr-report-markers.d.ts +4 -0
  284. package/node_modules/@sumi/plugins-governance/dist/pr-report-markers.js +11 -0
  285. package/node_modules/@sumi/plugins-governance/dist/pr-report-markers.js.map +1 -0
  286. package/node_modules/@sumi/plugins-governance/dist/pr-report-status.d.ts +14 -0
  287. package/node_modules/@sumi/plugins-governance/dist/pr-report-status.js +97 -0
  288. package/node_modules/@sumi/plugins-governance/dist/pr-report-status.js.map +1 -0
  289. package/node_modules/@sumi/plugins-governance/dist/protected.d.ts +22 -0
  290. package/node_modules/@sumi/plugins-governance/dist/protected.js +65 -0
  291. package/node_modules/@sumi/plugins-governance/dist/protected.js.map +1 -0
  292. package/node_modules/@sumi/plugins-governance/dist/push-base.d.ts +9 -0
  293. package/node_modules/@sumi/plugins-governance/dist/push-base.js +42 -0
  294. package/node_modules/@sumi/plugins-governance/dist/push-base.js.map +1 -0
  295. package/node_modules/@sumi/plugins-governance/dist/semantic.d.ts +5 -0
  296. package/node_modules/@sumi/plugins-governance/dist/semantic.js +105 -0
  297. package/node_modules/@sumi/plugins-governance/dist/semantic.js.map +1 -0
  298. package/node_modules/@sumi/plugins-governance/dist/state.d.ts +48 -0
  299. package/node_modules/@sumi/plugins-governance/dist/state.js +155 -0
  300. package/node_modules/@sumi/plugins-governance/dist/state.js.map +1 -0
  301. package/node_modules/@sumi/plugins-governance/instructions/push.md +20 -0
  302. package/node_modules/@sumi/plugins-governance/package.json +25 -0
  303. package/node_modules/@sumi/plugins-governance/sumi-plugins.yaml +23 -0
  304. package/node_modules/@sumi/plugins-openspec/README.md +80 -0
  305. package/node_modules/@sumi/plugins-openspec/dist/index.d.ts +1 -0
  306. package/node_modules/@sumi/plugins-openspec/dist/index.js +2 -0
  307. package/node_modules/@sumi/plugins-openspec/dist/index.js.map +1 -0
  308. package/node_modules/@sumi/plugins-openspec/dist/openspec.d.ts +21 -0
  309. package/node_modules/@sumi/plugins-openspec/dist/openspec.js +59 -0
  310. package/node_modules/@sumi/plugins-openspec/dist/openspec.js.map +1 -0
  311. package/node_modules/@sumi/plugins-openspec/dist/plugins/change-tasks.d.ts +1 -0
  312. package/node_modules/@sumi/plugins-openspec/dist/plugins/change-tasks.js +85 -0
  313. package/node_modules/@sumi/plugins-openspec/dist/plugins/change-tasks.js.map +1 -0
  314. package/node_modules/@sumi/plugins-openspec/dist/plugins/planner.d.ts +1 -0
  315. package/node_modules/@sumi/plugins-openspec/dist/plugins/planner.js +16 -0
  316. package/node_modules/@sumi/plugins-openspec/dist/plugins/planner.js.map +1 -0
  317. package/node_modules/@sumi/plugins-openspec/dist/plugins/validate.d.ts +1 -0
  318. package/node_modules/@sumi/plugins-openspec/dist/plugins/validate.js +45 -0
  319. package/node_modules/@sumi/plugins-openspec/dist/plugins/validate.js.map +1 -0
  320. package/node_modules/@sumi/plugins-openspec/package.json +22 -0
  321. package/node_modules/@sumi/plugins-openspec/sumi-plugins.yaml +20 -0
  322. package/node_modules/@sumi/plugins-precedent/README.md +162 -0
  323. package/node_modules/@sumi/plugins-precedent/dist/candidates.d.ts +17 -0
  324. package/node_modules/@sumi/plugins-precedent/dist/candidates.js +18 -0
  325. package/node_modules/@sumi/plugins-precedent/dist/candidates.js.map +1 -0
  326. package/node_modules/@sumi/plugins-precedent/dist/commands/context.d.ts +1 -0
  327. package/node_modules/@sumi/plugins-precedent/dist/commands/context.js +23 -0
  328. package/node_modules/@sumi/plugins-precedent/dist/commands/context.js.map +1 -0
  329. package/node_modules/@sumi/plugins-precedent/dist/commands/promote.d.ts +1 -0
  330. package/node_modules/@sumi/plugins-precedent/dist/commands/promote.js +89 -0
  331. package/node_modules/@sumi/plugins-precedent/dist/commands/promote.js.map +1 -0
  332. package/node_modules/@sumi/plugins-precedent/dist/index.d.ts +2 -0
  333. package/node_modules/@sumi/plugins-precedent/dist/index.js +3 -0
  334. package/node_modules/@sumi/plugins-precedent/dist/index.js.map +1 -0
  335. package/node_modules/@sumi/plugins-precedent/dist/model.d.ts +65 -0
  336. package/node_modules/@sumi/plugins-precedent/dist/model.js +150 -0
  337. package/node_modules/@sumi/plugins-precedent/dist/model.js.map +1 -0
  338. package/node_modules/@sumi/plugins-precedent/dist/plugins/checker.d.ts +1 -0
  339. package/node_modules/@sumi/plugins-precedent/dist/plugins/checker.js +32 -0
  340. package/node_modules/@sumi/plugins-precedent/dist/plugins/checker.js.map +1 -0
  341. package/node_modules/@sumi/plugins-precedent/dist/plugins/harvest.d.ts +1 -0
  342. package/node_modules/@sumi/plugins-precedent/dist/plugins/harvest.js +174 -0
  343. package/node_modules/@sumi/plugins-precedent/dist/plugins/harvest.js.map +1 -0
  344. package/node_modules/@sumi/plugins-precedent/dist/plugins/planner.d.ts +1 -0
  345. package/node_modules/@sumi/plugins-precedent/dist/plugins/planner.js +103 -0
  346. package/node_modules/@sumi/plugins-precedent/dist/plugins/planner.js.map +1 -0
  347. package/node_modules/@sumi/plugins-precedent/dist/plugins/selftest.d.ts +1 -0
  348. package/node_modules/@sumi/plugins-precedent/dist/plugins/selftest.js +220 -0
  349. package/node_modules/@sumi/plugins-precedent/dist/plugins/selftest.js.map +1 -0
  350. package/node_modules/@sumi/plugins-precedent/instructions/distill.md +12 -0
  351. package/node_modules/@sumi/plugins-precedent/package.json +26 -0
  352. package/node_modules/@sumi/plugins-precedent/sumi-plugins.yaml +33 -0
  353. package/node_modules/@sumi/plugins-review/README.md +131 -0
  354. package/node_modules/@sumi/plugins-review/dist/commands/context.d.ts +1 -0
  355. package/node_modules/@sumi/plugins-review/dist/commands/context.js +32 -0
  356. package/node_modules/@sumi/plugins-review/dist/commands/context.js.map +1 -0
  357. package/node_modules/@sumi/plugins-review/dist/commands/submit.d.ts +1 -0
  358. package/node_modules/@sumi/plugins-review/dist/commands/submit.js +46 -0
  359. package/node_modules/@sumi/plugins-review/dist/commands/submit.js.map +1 -0
  360. package/node_modules/@sumi/plugins-review/dist/index.d.ts +1 -0
  361. package/node_modules/@sumi/plugins-review/dist/index.js +2 -0
  362. package/node_modules/@sumi/plugins-review/dist/index.js.map +1 -0
  363. package/node_modules/@sumi/plugins-review/dist/plugins/rubric.d.ts +1 -0
  364. package/node_modules/@sumi/plugins-review/dist/plugins/rubric.js +116 -0
  365. package/node_modules/@sumi/plugins-review/dist/plugins/rubric.js.map +1 -0
  366. package/node_modules/@sumi/plugins-review/dist/review.d.ts +64 -0
  367. package/node_modules/@sumi/plugins-review/dist/review.js +104 -0
  368. package/node_modules/@sumi/plugins-review/dist/review.js.map +1 -0
  369. package/node_modules/@sumi/plugins-review/package.json +25 -0
  370. package/node_modules/@sumi/plugins-review/sumi-plugins.yaml +13 -0
  371. package/node_modules/chownr/LICENSE.md +63 -0
  372. package/node_modules/chownr/README.md +3 -0
  373. package/node_modules/chownr/dist/commonjs/index.d.ts +3 -0
  374. package/node_modules/chownr/dist/commonjs/index.d.ts.map +1 -0
  375. package/node_modules/chownr/dist/commonjs/index.js +93 -0
  376. package/node_modules/chownr/dist/commonjs/index.js.map +1 -0
  377. package/node_modules/chownr/dist/commonjs/package.json +3 -0
  378. package/node_modules/chownr/dist/esm/index.d.ts +3 -0
  379. package/node_modules/chownr/dist/esm/index.d.ts.map +1 -0
  380. package/node_modules/chownr/dist/esm/index.js +85 -0
  381. package/node_modules/chownr/dist/esm/index.js.map +1 -0
  382. package/node_modules/chownr/dist/esm/package.json +3 -0
  383. package/node_modules/chownr/package.json +69 -0
  384. package/node_modules/cross-spawn/LICENSE +21 -0
  385. package/node_modules/cross-spawn/README.md +89 -0
  386. package/node_modules/cross-spawn/index.js +39 -0
  387. package/node_modules/cross-spawn/lib/enoent.js +59 -0
  388. package/node_modules/cross-spawn/lib/parse.js +91 -0
  389. package/node_modules/cross-spawn/lib/util/escape.js +47 -0
  390. package/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
  391. package/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
  392. package/node_modules/cross-spawn/package.json +73 -0
  393. package/node_modules/isexe/.npmignore +2 -0
  394. package/node_modules/isexe/LICENSE +15 -0
  395. package/node_modules/isexe/README.md +51 -0
  396. package/node_modules/isexe/index.js +57 -0
  397. package/node_modules/isexe/mode.js +41 -0
  398. package/node_modules/isexe/package.json +31 -0
  399. package/node_modules/isexe/test/basic.js +221 -0
  400. package/node_modules/isexe/windows.js +42 -0
  401. package/node_modules/minipass/LICENSE.md +55 -0
  402. package/node_modules/minipass/README.md +825 -0
  403. package/node_modules/minipass/dist/commonjs/index.d.ts +545 -0
  404. package/node_modules/minipass/dist/commonjs/index.d.ts.map +1 -0
  405. package/node_modules/minipass/dist/commonjs/index.js +1038 -0
  406. package/node_modules/minipass/dist/commonjs/index.js.map +1 -0
  407. package/node_modules/minipass/dist/commonjs/package.json +3 -0
  408. package/node_modules/minipass/dist/esm/index.d.ts +545 -0
  409. package/node_modules/minipass/dist/esm/index.d.ts.map +1 -0
  410. package/node_modules/minipass/dist/esm/index.js +1020 -0
  411. package/node_modules/minipass/dist/esm/index.js.map +1 -0
  412. package/node_modules/minipass/dist/esm/package.json +3 -0
  413. package/node_modules/minipass/package.json +77 -0
  414. package/node_modules/minizlib/LICENSE +26 -0
  415. package/node_modules/minizlib/README.md +64 -0
  416. package/node_modules/minizlib/dist/commonjs/constants.d.ts +2 -0
  417. package/node_modules/minizlib/dist/commonjs/constants.d.ts.map +1 -0
  418. package/node_modules/minizlib/dist/commonjs/constants.js +123 -0
  419. package/node_modules/minizlib/dist/commonjs/constants.js.map +1 -0
  420. package/node_modules/minizlib/dist/commonjs/index.d.ts +99 -0
  421. package/node_modules/minizlib/dist/commonjs/index.d.ts.map +1 -0
  422. package/node_modules/minizlib/dist/commonjs/index.js +416 -0
  423. package/node_modules/minizlib/dist/commonjs/index.js.map +1 -0
  424. package/node_modules/minizlib/dist/commonjs/package.json +3 -0
  425. package/node_modules/minizlib/dist/esm/constants.d.ts +2 -0
  426. package/node_modules/minizlib/dist/esm/constants.d.ts.map +1 -0
  427. package/node_modules/minizlib/dist/esm/constants.js +117 -0
  428. package/node_modules/minizlib/dist/esm/constants.js.map +1 -0
  429. package/node_modules/minizlib/dist/esm/index.d.ts +99 -0
  430. package/node_modules/minizlib/dist/esm/index.d.ts.map +1 -0
  431. package/node_modules/minizlib/dist/esm/index.js +363 -0
  432. package/node_modules/minizlib/dist/esm/index.js.map +1 -0
  433. package/node_modules/minizlib/dist/esm/package.json +3 -0
  434. package/node_modules/minizlib/package.json +80 -0
  435. package/node_modules/path-key/index.d.ts +40 -0
  436. package/node_modules/path-key/index.js +16 -0
  437. package/node_modules/path-key/license +9 -0
  438. package/node_modules/path-key/package.json +39 -0
  439. package/node_modules/path-key/readme.md +61 -0
  440. package/node_modules/picomatch/LICENSE +21 -0
  441. package/node_modules/picomatch/README.md +743 -0
  442. package/node_modules/picomatch/index.js +17 -0
  443. package/node_modules/picomatch/lib/constants.js +184 -0
  444. package/node_modules/picomatch/lib/parse.js +1425 -0
  445. package/node_modules/picomatch/lib/picomatch.js +361 -0
  446. package/node_modules/picomatch/lib/scan.js +403 -0
  447. package/node_modules/picomatch/lib/utils.js +72 -0
  448. package/node_modules/picomatch/package.json +83 -0
  449. package/node_modules/picomatch/posix.js +3 -0
  450. package/node_modules/shebang-command/index.js +19 -0
  451. package/node_modules/shebang-command/license +9 -0
  452. package/node_modules/shebang-command/package.json +34 -0
  453. package/node_modules/shebang-command/readme.md +34 -0
  454. package/node_modules/shebang-regex/index.d.ts +22 -0
  455. package/node_modules/shebang-regex/index.js +2 -0
  456. package/node_modules/shebang-regex/license +9 -0
  457. package/node_modules/shebang-regex/package.json +35 -0
  458. package/node_modules/shebang-regex/readme.md +33 -0
  459. package/node_modules/tar/LICENSE.md +55 -0
  460. package/node_modules/tar/README.md +1233 -0
  461. package/node_modules/tar/dist/commonjs/create.d.ts +3 -0
  462. package/node_modules/tar/dist/commonjs/create.d.ts.map +1 -0
  463. package/node_modules/tar/dist/commonjs/create.js +82 -0
  464. package/node_modules/tar/dist/commonjs/create.js.map +1 -0
  465. package/node_modules/tar/dist/commonjs/cwd-error.d.ts +8 -0
  466. package/node_modules/tar/dist/commonjs/cwd-error.d.ts.map +1 -0
  467. package/node_modules/tar/dist/commonjs/cwd-error.js +18 -0
  468. package/node_modules/tar/dist/commonjs/cwd-error.js.map +1 -0
  469. package/node_modules/tar/dist/commonjs/extract.d.ts +3 -0
  470. package/node_modules/tar/dist/commonjs/extract.d.ts.map +1 -0
  471. package/node_modules/tar/dist/commonjs/extract.js +88 -0
  472. package/node_modules/tar/dist/commonjs/extract.js.map +1 -0
  473. package/node_modules/tar/dist/commonjs/get-write-flag.d.ts +2 -0
  474. package/node_modules/tar/dist/commonjs/get-write-flag.d.ts.map +1 -0
  475. package/node_modules/tar/dist/commonjs/get-write-flag.js +32 -0
  476. package/node_modules/tar/dist/commonjs/get-write-flag.js.map +1 -0
  477. package/node_modules/tar/dist/commonjs/header.d.ts +53 -0
  478. package/node_modules/tar/dist/commonjs/header.d.ts.map +1 -0
  479. package/node_modules/tar/dist/commonjs/header.js +348 -0
  480. package/node_modules/tar/dist/commonjs/header.js.map +1 -0
  481. package/node_modules/tar/dist/commonjs/index.d.ts +20 -0
  482. package/node_modules/tar/dist/commonjs/index.d.ts.map +1 -0
  483. package/node_modules/tar/dist/commonjs/index.js +64 -0
  484. package/node_modules/tar/dist/commonjs/index.js.map +1 -0
  485. package/node_modules/tar/dist/commonjs/index.min.js +4 -0
  486. package/node_modules/tar/dist/commonjs/index.min.js.map +7 -0
  487. package/node_modules/tar/dist/commonjs/large-numbers.d.ts +3 -0
  488. package/node_modules/tar/dist/commonjs/large-numbers.d.ts.map +1 -0
  489. package/node_modules/tar/dist/commonjs/large-numbers.js +99 -0
  490. package/node_modules/tar/dist/commonjs/large-numbers.js.map +1 -0
  491. package/node_modules/tar/dist/commonjs/list.d.ts +7 -0
  492. package/node_modules/tar/dist/commonjs/list.d.ts.map +1 -0
  493. package/node_modules/tar/dist/commonjs/list.js +153 -0
  494. package/node_modules/tar/dist/commonjs/list.js.map +1 -0
  495. package/node_modules/tar/dist/commonjs/make-command.d.ts +49 -0
  496. package/node_modules/tar/dist/commonjs/make-command.d.ts.map +1 -0
  497. package/node_modules/tar/dist/commonjs/make-command.js +52 -0
  498. package/node_modules/tar/dist/commonjs/make-command.js.map +1 -0
  499. package/node_modules/tar/dist/commonjs/mkdir.d.ts +25 -0
  500. package/node_modules/tar/dist/commonjs/mkdir.d.ts.map +1 -0
  501. package/node_modules/tar/dist/commonjs/mkdir.js +187 -0
  502. package/node_modules/tar/dist/commonjs/mkdir.js.map +1 -0
  503. package/node_modules/tar/dist/commonjs/mode-fix.d.ts +2 -0
  504. package/node_modules/tar/dist/commonjs/mode-fix.d.ts.map +1 -0
  505. package/node_modules/tar/dist/commonjs/mode-fix.js +29 -0
  506. package/node_modules/tar/dist/commonjs/mode-fix.js.map +1 -0
  507. package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts +2 -0
  508. package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts.map +1 -0
  509. package/node_modules/tar/dist/commonjs/normalize-unicode.js +38 -0
  510. package/node_modules/tar/dist/commonjs/normalize-unicode.js.map +1 -0
  511. package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts +2 -0
  512. package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts.map +1 -0
  513. package/node_modules/tar/dist/commonjs/normalize-windows-path.js +12 -0
  514. package/node_modules/tar/dist/commonjs/normalize-windows-path.js.map +1 -0
  515. package/node_modules/tar/dist/commonjs/options.d.ts +604 -0
  516. package/node_modules/tar/dist/commonjs/options.d.ts.map +1 -0
  517. package/node_modules/tar/dist/commonjs/options.js +66 -0
  518. package/node_modules/tar/dist/commonjs/options.js.map +1 -0
  519. package/node_modules/tar/dist/commonjs/pack.d.ts +105 -0
  520. package/node_modules/tar/dist/commonjs/pack.d.ts.map +1 -0
  521. package/node_modules/tar/dist/commonjs/pack.js +544 -0
  522. package/node_modules/tar/dist/commonjs/pack.js.map +1 -0
  523. package/node_modules/tar/dist/commonjs/package.json +3 -0
  524. package/node_modules/tar/dist/commonjs/parse.d.ts +92 -0
  525. package/node_modules/tar/dist/commonjs/parse.d.ts.map +1 -0
  526. package/node_modules/tar/dist/commonjs/parse.js +655 -0
  527. package/node_modules/tar/dist/commonjs/parse.js.map +1 -0
  528. package/node_modules/tar/dist/commonjs/path-reservations.d.ts +11 -0
  529. package/node_modules/tar/dist/commonjs/path-reservations.d.ts.map +1 -0
  530. package/node_modules/tar/dist/commonjs/path-reservations.js +170 -0
  531. package/node_modules/tar/dist/commonjs/path-reservations.js.map +1 -0
  532. package/node_modules/tar/dist/commonjs/pax.d.ts +26 -0
  533. package/node_modules/tar/dist/commonjs/pax.d.ts.map +1 -0
  534. package/node_modules/tar/dist/commonjs/pax.js +182 -0
  535. package/node_modules/tar/dist/commonjs/pax.js.map +1 -0
  536. package/node_modules/tar/dist/commonjs/process-umask.d.ts +2 -0
  537. package/node_modules/tar/dist/commonjs/process-umask.d.ts.map +1 -0
  538. package/node_modules/tar/dist/commonjs/process-umask.js +7 -0
  539. package/node_modules/tar/dist/commonjs/process-umask.js.map +1 -0
  540. package/node_modules/tar/dist/commonjs/read-entry.d.ts +36 -0
  541. package/node_modules/tar/dist/commonjs/read-entry.d.ts.map +1 -0
  542. package/node_modules/tar/dist/commonjs/read-entry.js +136 -0
  543. package/node_modules/tar/dist/commonjs/read-entry.js.map +1 -0
  544. package/node_modules/tar/dist/commonjs/replace.d.ts +2 -0
  545. package/node_modules/tar/dist/commonjs/replace.d.ts.map +1 -0
  546. package/node_modules/tar/dist/commonjs/replace.js +227 -0
  547. package/node_modules/tar/dist/commonjs/replace.js.map +1 -0
  548. package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts +2 -0
  549. package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts.map +1 -0
  550. package/node_modules/tar/dist/commonjs/strip-absolute-path.js +29 -0
  551. package/node_modules/tar/dist/commonjs/strip-absolute-path.js.map +1 -0
  552. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts +2 -0
  553. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts.map +1 -0
  554. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js +18 -0
  555. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js.map +1 -0
  556. package/node_modules/tar/dist/commonjs/symlink-error.d.ts +9 -0
  557. package/node_modules/tar/dist/commonjs/symlink-error.d.ts.map +1 -0
  558. package/node_modules/tar/dist/commonjs/symlink-error.js +19 -0
  559. package/node_modules/tar/dist/commonjs/symlink-error.js.map +1 -0
  560. package/node_modules/tar/dist/commonjs/types.d.ts +16 -0
  561. package/node_modules/tar/dist/commonjs/types.d.ts.map +1 -0
  562. package/node_modules/tar/dist/commonjs/types.js +70 -0
  563. package/node_modules/tar/dist/commonjs/types.js.map +1 -0
  564. package/node_modules/tar/dist/commonjs/unpack.d.ts +101 -0
  565. package/node_modules/tar/dist/commonjs/unpack.d.ts.map +1 -0
  566. package/node_modules/tar/dist/commonjs/unpack.js +932 -0
  567. package/node_modules/tar/dist/commonjs/unpack.js.map +1 -0
  568. package/node_modules/tar/dist/commonjs/update.d.ts +2 -0
  569. package/node_modules/tar/dist/commonjs/update.d.ts.map +1 -0
  570. package/node_modules/tar/dist/commonjs/update.js +33 -0
  571. package/node_modules/tar/dist/commonjs/update.js.map +1 -0
  572. package/node_modules/tar/dist/commonjs/warn-method.d.ts +24 -0
  573. package/node_modules/tar/dist/commonjs/warn-method.d.ts.map +1 -0
  574. package/node_modules/tar/dist/commonjs/warn-method.js +31 -0
  575. package/node_modules/tar/dist/commonjs/warn-method.js.map +1 -0
  576. package/node_modules/tar/dist/commonjs/winchars.d.ts +3 -0
  577. package/node_modules/tar/dist/commonjs/winchars.d.ts.map +1 -0
  578. package/node_modules/tar/dist/commonjs/winchars.js +14 -0
  579. package/node_modules/tar/dist/commonjs/winchars.js.map +1 -0
  580. package/node_modules/tar/dist/commonjs/write-entry.d.ts +129 -0
  581. package/node_modules/tar/dist/commonjs/write-entry.d.ts.map +1 -0
  582. package/node_modules/tar/dist/commonjs/write-entry.js +698 -0
  583. package/node_modules/tar/dist/commonjs/write-entry.js.map +1 -0
  584. package/node_modules/tar/dist/esm/create.d.ts +3 -0
  585. package/node_modules/tar/dist/esm/create.d.ts.map +1 -0
  586. package/node_modules/tar/dist/esm/create.js +76 -0
  587. package/node_modules/tar/dist/esm/create.js.map +1 -0
  588. package/node_modules/tar/dist/esm/cwd-error.d.ts +8 -0
  589. package/node_modules/tar/dist/esm/cwd-error.d.ts.map +1 -0
  590. package/node_modules/tar/dist/esm/cwd-error.js +14 -0
  591. package/node_modules/tar/dist/esm/cwd-error.js.map +1 -0
  592. package/node_modules/tar/dist/esm/extract.d.ts +3 -0
  593. package/node_modules/tar/dist/esm/extract.d.ts.map +1 -0
  594. package/node_modules/tar/dist/esm/extract.js +49 -0
  595. package/node_modules/tar/dist/esm/extract.js.map +1 -0
  596. package/node_modules/tar/dist/esm/get-write-flag.d.ts +2 -0
  597. package/node_modules/tar/dist/esm/get-write-flag.d.ts.map +1 -0
  598. package/node_modules/tar/dist/esm/get-write-flag.js +26 -0
  599. package/node_modules/tar/dist/esm/get-write-flag.js.map +1 -0
  600. package/node_modules/tar/dist/esm/header.d.ts +53 -0
  601. package/node_modules/tar/dist/esm/header.d.ts.map +1 -0
  602. package/node_modules/tar/dist/esm/header.js +311 -0
  603. package/node_modules/tar/dist/esm/header.js.map +1 -0
  604. package/node_modules/tar/dist/esm/index.d.ts +20 -0
  605. package/node_modules/tar/dist/esm/index.d.ts.map +1 -0
  606. package/node_modules/tar/dist/esm/index.js +20 -0
  607. package/node_modules/tar/dist/esm/index.js.map +1 -0
  608. package/node_modules/tar/dist/esm/index.min.js +4 -0
  609. package/node_modules/tar/dist/esm/index.min.js.map +7 -0
  610. package/node_modules/tar/dist/esm/large-numbers.d.ts +3 -0
  611. package/node_modules/tar/dist/esm/large-numbers.d.ts.map +1 -0
  612. package/node_modules/tar/dist/esm/large-numbers.js +94 -0
  613. package/node_modules/tar/dist/esm/large-numbers.js.map +1 -0
  614. package/node_modules/tar/dist/esm/list.d.ts +7 -0
  615. package/node_modules/tar/dist/esm/list.d.ts.map +1 -0
  616. package/node_modules/tar/dist/esm/list.js +113 -0
  617. package/node_modules/tar/dist/esm/list.js.map +1 -0
  618. package/node_modules/tar/dist/esm/make-command.d.ts +49 -0
  619. package/node_modules/tar/dist/esm/make-command.d.ts.map +1 -0
  620. package/node_modules/tar/dist/esm/make-command.js +48 -0
  621. package/node_modules/tar/dist/esm/make-command.js.map +1 -0
  622. package/node_modules/tar/dist/esm/mkdir.d.ts +25 -0
  623. package/node_modules/tar/dist/esm/mkdir.d.ts.map +1 -0
  624. package/node_modules/tar/dist/esm/mkdir.js +179 -0
  625. package/node_modules/tar/dist/esm/mkdir.js.map +1 -0
  626. package/node_modules/tar/dist/esm/mode-fix.d.ts +2 -0
  627. package/node_modules/tar/dist/esm/mode-fix.d.ts.map +1 -0
  628. package/node_modules/tar/dist/esm/mode-fix.js +25 -0
  629. package/node_modules/tar/dist/esm/mode-fix.js.map +1 -0
  630. package/node_modules/tar/dist/esm/normalize-unicode.d.ts +2 -0
  631. package/node_modules/tar/dist/esm/normalize-unicode.d.ts.map +1 -0
  632. package/node_modules/tar/dist/esm/normalize-unicode.js +34 -0
  633. package/node_modules/tar/dist/esm/normalize-unicode.js.map +1 -0
  634. package/node_modules/tar/dist/esm/normalize-windows-path.d.ts +2 -0
  635. package/node_modules/tar/dist/esm/normalize-windows-path.d.ts.map +1 -0
  636. package/node_modules/tar/dist/esm/normalize-windows-path.js +9 -0
  637. package/node_modules/tar/dist/esm/normalize-windows-path.js.map +1 -0
  638. package/node_modules/tar/dist/esm/options.d.ts +604 -0
  639. package/node_modules/tar/dist/esm/options.d.ts.map +1 -0
  640. package/node_modules/tar/dist/esm/options.js +54 -0
  641. package/node_modules/tar/dist/esm/options.js.map +1 -0
  642. package/node_modules/tar/dist/esm/pack.d.ts +105 -0
  643. package/node_modules/tar/dist/esm/pack.d.ts.map +1 -0
  644. package/node_modules/tar/dist/esm/pack.js +502 -0
  645. package/node_modules/tar/dist/esm/pack.js.map +1 -0
  646. package/node_modules/tar/dist/esm/package.json +3 -0
  647. package/node_modules/tar/dist/esm/parse.d.ts +92 -0
  648. package/node_modules/tar/dist/esm/parse.d.ts.map +1 -0
  649. package/node_modules/tar/dist/esm/parse.js +651 -0
  650. package/node_modules/tar/dist/esm/parse.js.map +1 -0
  651. package/node_modules/tar/dist/esm/path-reservations.d.ts +11 -0
  652. package/node_modules/tar/dist/esm/path-reservations.d.ts.map +1 -0
  653. package/node_modules/tar/dist/esm/path-reservations.js +166 -0
  654. package/node_modules/tar/dist/esm/path-reservations.js.map +1 -0
  655. package/node_modules/tar/dist/esm/pax.d.ts +26 -0
  656. package/node_modules/tar/dist/esm/pax.d.ts.map +1 -0
  657. package/node_modules/tar/dist/esm/pax.js +178 -0
  658. package/node_modules/tar/dist/esm/pax.js.map +1 -0
  659. package/node_modules/tar/dist/esm/process-umask.d.ts +2 -0
  660. package/node_modules/tar/dist/esm/process-umask.d.ts.map +1 -0
  661. package/node_modules/tar/dist/esm/process-umask.js +3 -0
  662. package/node_modules/tar/dist/esm/process-umask.js.map +1 -0
  663. package/node_modules/tar/dist/esm/read-entry.d.ts +36 -0
  664. package/node_modules/tar/dist/esm/read-entry.d.ts.map +1 -0
  665. package/node_modules/tar/dist/esm/read-entry.js +132 -0
  666. package/node_modules/tar/dist/esm/read-entry.js.map +1 -0
  667. package/node_modules/tar/dist/esm/replace.d.ts +2 -0
  668. package/node_modules/tar/dist/esm/replace.d.ts.map +1 -0
  669. package/node_modules/tar/dist/esm/replace.js +221 -0
  670. package/node_modules/tar/dist/esm/replace.js.map +1 -0
  671. package/node_modules/tar/dist/esm/strip-absolute-path.d.ts +2 -0
  672. package/node_modules/tar/dist/esm/strip-absolute-path.d.ts.map +1 -0
  673. package/node_modules/tar/dist/esm/strip-absolute-path.js +25 -0
  674. package/node_modules/tar/dist/esm/strip-absolute-path.js.map +1 -0
  675. package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts +2 -0
  676. package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts.map +1 -0
  677. package/node_modules/tar/dist/esm/strip-trailing-slashes.js +14 -0
  678. package/node_modules/tar/dist/esm/strip-trailing-slashes.js.map +1 -0
  679. package/node_modules/tar/dist/esm/symlink-error.d.ts +9 -0
  680. package/node_modules/tar/dist/esm/symlink-error.d.ts.map +1 -0
  681. package/node_modules/tar/dist/esm/symlink-error.js +15 -0
  682. package/node_modules/tar/dist/esm/symlink-error.js.map +1 -0
  683. package/node_modules/tar/dist/esm/types.d.ts +16 -0
  684. package/node_modules/tar/dist/esm/types.d.ts.map +1 -0
  685. package/node_modules/tar/dist/esm/types.js +65 -0
  686. package/node_modules/tar/dist/esm/types.js.map +1 -0
  687. package/node_modules/tar/dist/esm/unpack.d.ts +101 -0
  688. package/node_modules/tar/dist/esm/unpack.d.ts.map +1 -0
  689. package/node_modules/tar/dist/esm/unpack.js +891 -0
  690. package/node_modules/tar/dist/esm/unpack.js.map +1 -0
  691. package/node_modules/tar/dist/esm/update.d.ts +2 -0
  692. package/node_modules/tar/dist/esm/update.d.ts.map +1 -0
  693. package/node_modules/tar/dist/esm/update.js +30 -0
  694. package/node_modules/tar/dist/esm/update.js.map +1 -0
  695. package/node_modules/tar/dist/esm/warn-method.d.ts +24 -0
  696. package/node_modules/tar/dist/esm/warn-method.d.ts.map +1 -0
  697. package/node_modules/tar/dist/esm/warn-method.js +27 -0
  698. package/node_modules/tar/dist/esm/warn-method.js.map +1 -0
  699. package/node_modules/tar/dist/esm/winchars.d.ts +3 -0
  700. package/node_modules/tar/dist/esm/winchars.d.ts.map +1 -0
  701. package/node_modules/tar/dist/esm/winchars.js +9 -0
  702. package/node_modules/tar/dist/esm/winchars.js.map +1 -0
  703. package/node_modules/tar/dist/esm/write-entry.d.ts +129 -0
  704. package/node_modules/tar/dist/esm/write-entry.d.ts.map +1 -0
  705. package/node_modules/tar/dist/esm/write-entry.js +656 -0
  706. package/node_modules/tar/dist/esm/write-entry.js.map +1 -0
  707. package/node_modules/tar/package.json +298 -0
  708. package/node_modules/which/LICENSE +15 -0
  709. package/node_modules/which/README.md +54 -0
  710. package/node_modules/which/bin/node-which +52 -0
  711. package/node_modules/which/package.json +43 -0
  712. package/node_modules/which/which.js +125 -0
  713. package/node_modules/yallist/LICENSE.md +63 -0
  714. package/node_modules/yallist/README.md +205 -0
  715. package/node_modules/yallist/dist/commonjs/index.d.ts +39 -0
  716. package/node_modules/yallist/dist/commonjs/index.d.ts.map +1 -0
  717. package/node_modules/yallist/dist/commonjs/index.js +384 -0
  718. package/node_modules/yallist/dist/commonjs/index.js.map +1 -0
  719. package/node_modules/yallist/dist/commonjs/package.json +3 -0
  720. package/node_modules/yallist/dist/esm/index.d.ts +39 -0
  721. package/node_modules/yallist/dist/esm/index.d.ts.map +1 -0
  722. package/node_modules/yallist/dist/esm/index.js +379 -0
  723. package/node_modules/yallist/dist/esm/index.js.map +1 -0
  724. package/node_modules/yallist/dist/esm/package.json +3 -0
  725. package/node_modules/yallist/package.json +68 -0
  726. package/node_modules/yaml/LICENSE +13 -0
  727. package/node_modules/yaml/README.md +172 -0
  728. package/node_modules/yaml/bin.mjs +11 -0
  729. package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
  730. package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
  731. package/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
  732. package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
  733. package/node_modules/yaml/browser/dist/compose/composer.js +219 -0
  734. package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
  735. package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
  736. package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
  737. package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
  738. package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
  739. package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +226 -0
  740. package/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
  741. package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
  742. package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
  743. package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
  744. package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
  745. package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
  746. package/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
  747. package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
  748. package/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
  749. package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
  750. package/node_modules/yaml/browser/dist/errors.js +57 -0
  751. package/node_modules/yaml/browser/dist/index.js +17 -0
  752. package/node_modules/yaml/browser/dist/log.js +11 -0
  753. package/node_modules/yaml/browser/dist/nodes/Alias.js +118 -0
  754. package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
  755. package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
  756. package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
  757. package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
  758. package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
  759. package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
  760. package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
  761. package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
  762. package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
  763. package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
  764. package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
  765. package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
  766. package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
  767. package/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
  768. package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
  769. package/node_modules/yaml/browser/dist/parse/parser.js +975 -0
  770. package/node_modules/yaml/browser/dist/public-api.js +102 -0
  771. package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
  772. package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
  773. package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
  774. package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
  775. package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
  776. package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
  777. package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
  778. package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
  779. package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
  780. package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
  781. package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
  782. package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
  783. package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
  784. package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
  785. package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
  786. package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
  787. package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
  788. package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
  789. package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
  790. package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
  791. package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
  792. package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
  793. package/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
  794. package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
  795. package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
  796. package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
  797. package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
  798. package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
  799. package/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
  800. package/node_modules/yaml/browser/dist/util.js +11 -0
  801. package/node_modules/yaml/browser/dist/visit.js +233 -0
  802. package/node_modules/yaml/browser/index.js +5 -0
  803. package/node_modules/yaml/browser/package.json +3 -0
  804. package/node_modules/yaml/dist/cli.d.ts +8 -0
  805. package/node_modules/yaml/dist/cli.mjs +201 -0
  806. package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
  807. package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
  808. package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
  809. package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
  810. package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
  811. package/node_modules/yaml/dist/compose/compose-node.js +112 -0
  812. package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
  813. package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
  814. package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
  815. package/node_modules/yaml/dist/compose/composer.js +224 -0
  816. package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
  817. package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
  818. package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
  819. package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
  820. package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
  821. package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
  822. package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
  823. package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
  824. package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
  825. package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
  826. package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
  827. package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +228 -0
  828. package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
  829. package/node_modules/yaml/dist/compose/resolve-props.js +148 -0
  830. package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
  831. package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
  832. package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
  833. package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
  834. package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
  835. package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
  836. package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
  837. package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
  838. package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
  839. package/node_modules/yaml/dist/doc/Document.js +337 -0
  840. package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
  841. package/node_modules/yaml/dist/doc/anchors.js +76 -0
  842. package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
  843. package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
  844. package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
  845. package/node_modules/yaml/dist/doc/createNode.js +90 -0
  846. package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
  847. package/node_modules/yaml/dist/doc/directives.js +178 -0
  848. package/node_modules/yaml/dist/errors.d.ts +21 -0
  849. package/node_modules/yaml/dist/errors.js +62 -0
  850. package/node_modules/yaml/dist/index.d.ts +25 -0
  851. package/node_modules/yaml/dist/index.js +50 -0
  852. package/node_modules/yaml/dist/log.d.ts +3 -0
  853. package/node_modules/yaml/dist/log.js +19 -0
  854. package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
  855. package/node_modules/yaml/dist/nodes/Alias.js +120 -0
  856. package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
  857. package/node_modules/yaml/dist/nodes/Collection.js +151 -0
  858. package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
  859. package/node_modules/yaml/dist/nodes/Node.js +40 -0
  860. package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
  861. package/node_modules/yaml/dist/nodes/Pair.js +39 -0
  862. package/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
  863. package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
  864. package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
  865. package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
  866. package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
  867. package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
  868. package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
  869. package/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
  870. package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
  871. package/node_modules/yaml/dist/nodes/identity.js +53 -0
  872. package/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
  873. package/node_modules/yaml/dist/nodes/toJS.js +39 -0
  874. package/node_modules/yaml/dist/options.d.ts +350 -0
  875. package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
  876. package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
  877. package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
  878. package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
  879. package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
  880. package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
  881. package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
  882. package/node_modules/yaml/dist/parse/cst.js +112 -0
  883. package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
  884. package/node_modules/yaml/dist/parse/lexer.js +723 -0
  885. package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
  886. package/node_modules/yaml/dist/parse/line-counter.js +41 -0
  887. package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
  888. package/node_modules/yaml/dist/parse/parser.js +980 -0
  889. package/node_modules/yaml/dist/public-api.d.ts +44 -0
  890. package/node_modules/yaml/dist/public-api.js +107 -0
  891. package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
  892. package/node_modules/yaml/dist/schema/Schema.js +39 -0
  893. package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
  894. package/node_modules/yaml/dist/schema/common/map.js +19 -0
  895. package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
  896. package/node_modules/yaml/dist/schema/common/null.js +17 -0
  897. package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
  898. package/node_modules/yaml/dist/schema/common/seq.js +19 -0
  899. package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
  900. package/node_modules/yaml/dist/schema/common/string.js +16 -0
  901. package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
  902. package/node_modules/yaml/dist/schema/core/bool.js +21 -0
  903. package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
  904. package/node_modules/yaml/dist/schema/core/float.js +47 -0
  905. package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
  906. package/node_modules/yaml/dist/schema/core/int.js +42 -0
  907. package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
  908. package/node_modules/yaml/dist/schema/core/schema.js +25 -0
  909. package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
  910. package/node_modules/yaml/dist/schema/json/schema.js +64 -0
  911. package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
  912. package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
  913. package/node_modules/yaml/dist/schema/tags.js +99 -0
  914. package/node_modules/yaml/dist/schema/types.d.ts +92 -0
  915. package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
  916. package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
  917. package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
  918. package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
  919. package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
  920. package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
  921. package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
  922. package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
  923. package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
  924. package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
  925. package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
  926. package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
  927. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
  928. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
  929. package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
  930. package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
  931. package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
  932. package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
  933. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
  934. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
  935. package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
  936. package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
  937. package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
  938. package/node_modules/yaml/dist/stringify/stringify.js +132 -0
  939. package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
  940. package/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
  941. package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
  942. package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
  943. package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
  944. package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
  945. package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
  946. package/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
  947. package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
  948. package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
  949. package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
  950. package/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
  951. package/node_modules/yaml/dist/test-events.d.ts +4 -0
  952. package/node_modules/yaml/dist/test-events.js +134 -0
  953. package/node_modules/yaml/dist/util.d.ts +16 -0
  954. package/node_modules/yaml/dist/util.js +28 -0
  955. package/node_modules/yaml/dist/visit.d.ts +102 -0
  956. package/node_modules/yaml/dist/visit.js +236 -0
  957. package/node_modules/yaml/package.json +97 -0
  958. package/node_modules/yaml/util.js +2 -0
  959. package/package.json +44 -4
@@ -0,0 +1,31 @@
1
+ import { definePlugin, result, writeEvidence } from '@sumi/plugin-sdk';
2
+ import { findTool, runTool } from '../lib.js';
3
+ /** 类型检查:对配置的工程运行 tsc --noEmit(默认根目录 tsconfig.json),始终全量。 */
4
+ await definePlugin((ctx) => {
5
+ const tsc = findTool(ctx, 'tsc');
6
+ if (!tsc)
7
+ return result({ status: 'skipped', summary: '未找到 tsc,请在项目中安装 typescript' });
8
+ const projects = Array.isArray(ctx.config.projects) ? ctx.config.projects : ['tsconfig.json'];
9
+ const findings = [];
10
+ let log = '';
11
+ for (const project of projects) {
12
+ const r = runTool(ctx, tsc, ['--noEmit', '--pretty', 'false', '-p', project]);
13
+ log += r.stdout + r.stderr;
14
+ for (const line of r.stdout.split(/\r?\n/)) {
15
+ const m = /^(.+?)\((\d+),\d+\): error (TS\d+): (.*)$/.exec(line);
16
+ if (m)
17
+ findings.push({ id: `F${findings.length + 1}`, rule: m[3], severity: 'error', message: m[4], file: m[1], line: Number(m[2]) });
18
+ }
19
+ if (r.status !== 0 && findings.length === 0) {
20
+ return result({ status: 'blocked', summary: `tsc 运行出错(${project})`, evidence: [writeEvidence(ctx, 'tsc.log', log)] });
21
+ }
22
+ }
23
+ return result({
24
+ status: findings.length ? 'fail' : 'pass',
25
+ summary: findings.length ? `${findings.length} 个类型错误` : '类型检查通过',
26
+ findings,
27
+ checked: 'all',
28
+ evidence: [writeEvidence(ctx, 'tsc.log', log)],
29
+ });
30
+ });
31
+ //# sourceMappingURL=typecheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typecheck.js","sourceRoot":"","sources":["../../src/plugins/typecheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAgB,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE9C,4DAA4D;AAC5D,MAAM,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE;IACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG;QAAE,OAAO,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC;IACtF,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,MAAM,CAAC,QAAqB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IAC5G,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9E,GAAG,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjE,IAAI,CAAC;gBACH,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtI,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QACxH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;QACZ,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QACzC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,QAAQ;QAChE,QAAQ;QACR,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;KAC/C,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * 受影响测试的范围判定(纯逻辑,供 core/test-affected 使用)。
3
+ *
4
+ * vitest related 只沿 import 图追踪,以下改动它追不到或不会整体重跑,因此按“全部运行”处理:
5
+ * 配置文件(package.json、tsconfig、vite(st) 配置、vitest workspace/projects 文件)、删除的文件(已不在 import 图中)、
6
+ * 非 JS/TS 文件(`?raw`、fs 读取的数据文件;按文件名找引用者会被同名文件误导)。被 ignore 匹配的文件(默认 .md)不计入。
7
+ */
8
+ export type FileKind = 'config' | 'code' | 'data' | 'ignored';
9
+ export interface Change {
10
+ /** 相对仓库根的路径(/ 分隔)。 */
11
+ path: string;
12
+ deleted: boolean;
13
+ }
14
+ export interface ClassifiedChange extends Change {
15
+ kind: FileKind;
16
+ }
17
+ export declare const DEFAULT_IGNORE: string[];
18
+ /** 按类别归类改动;删除的文件归为 config(同样需要全部运行)。 */
19
+ export declare function classifyChanges(changes: Change[], ignore?: string[]): ClassifiedChange[];
20
+ /** 需要全部运行的原因(第一个不是 JS/TS 源码的相关改动);没有时返回 null。 */
21
+ export declare function wholeRunReason(changes: ClassifiedChange[]): string | null;
22
+ export interface WorkspacePackage {
23
+ name: string;
24
+ /** 相对仓库根的包目录(/ 分隔)。 */
25
+ rel: string;
26
+ /** 包目录的绝对路径(真实路径)。 */
27
+ dir: string;
28
+ test?: string;
29
+ /** workspace 内部依赖的包名。 */
30
+ deps: string[];
31
+ }
32
+ export type WorkspaceRead = {
33
+ packages: WorkspacePackage[];
34
+ } | {
35
+ error: string;
36
+ };
37
+ /**
38
+ * 读出 workspace 包。只支持 `dir` 与 `dir/*` 两种写法;遇到 `**`、`!` 等其他写法,或一个包也没有匹配到时返回 error,
39
+ * 由调用方回退为运行仓库根的 test 脚本(不能因为包列表为空而通过)。
40
+ */
41
+ export declare function readWorkspace(root: string): WorkspaceRead;
42
+ /** 文件所属的包(包目录嵌套时取最深的一个)。 */
43
+ export declare function owningPackage(packages: WorkspacePackage[], path: string): WorkspacePackage | undefined;
44
+ export interface PackageChange extends ClassifiedChange {
45
+ /** 相对包目录的路径。 */
46
+ rel: string;
47
+ /** 绝对路径(真实路径)。 */
48
+ abs: string;
49
+ }
50
+ export interface Decision {
51
+ name: string;
52
+ mode: 'related' | 'whole' | 'skip';
53
+ reason: string;
54
+ /** related 的输入文件(绝对路径)。 */
55
+ files?: string[];
56
+ /** 本包自身有相关改动(related 选中 0 个时据此区分“没有相关测试”与“跳过”)。 */
57
+ own?: boolean;
58
+ }
59
+ export interface DecideOptions {
60
+ /** 只要成为候选就整包运行的包:包名 → 原因。 */
61
+ wholePackages?: Map<string, string>;
62
+ /** 本包有源码改动时追加到 related 输入的守卫测试:包名 → 相对包目录的路径。 */
63
+ sourceGuards?: Record<string, string[]>;
64
+ /** 全部运行的原因:给出时每个有 test 脚本的包都整包。 */
65
+ wholeAll?: string;
66
+ }
67
+ /**
68
+ * 逐包判定模式:候选包为有改动的包及其下游。
69
+ * changes:包名 → 该包的改动(不含 ignored)。
70
+ */
71
+ export declare function decideTestModes(packages: WorkspacePackage[], changes: Map<string, PackageChange[]>, opts?: DecideOptions): Decision[];
72
+ /** 仓库根 package.json 的 test 脚本;没有 package.json 时返回 null。 */
73
+ export declare function rootTestScript(root: string): string | undefined | null;
74
+ /** 比较路径用的键:绝对路径、/ 分隔;Windows 文件系统大小写不敏感,统一小写。 */
75
+ export declare function pathKey(file: string, platform?: NodeJS.Platform): string;
76
+ /** 项目的包管理器:package.json 的 packageManager 字段,其次按锁文件判断,默认 npm。 */
77
+ export declare function packageManager(root: string): string;
@@ -0,0 +1,175 @@
1
+ import { existsSync, readdirSync, readFileSync, realpathSync } from 'node:fs';
2
+ import { join, resolve } from 'node:path';
3
+ import picomatch from 'picomatch';
4
+ import { parse } from 'yaml';
5
+ const CONFIG = /(?:^|\/)(?:package\.json|tsconfig[^/]*\.json|vite(?:st)?[^/]*\.config\.[cm]?[jt]s|vitest\.(?:workspace|projects)(?:\.[^/]*)?)$/;
6
+ const CODE = /\.[cm]?[jt]sx?$/;
7
+ export const DEFAULT_IGNORE = ['**/*.md'];
8
+ /** 按类别归类改动;删除的文件归为 config(同样需要全部运行)。 */
9
+ export function classifyChanges(changes, ignore = DEFAULT_IGNORE) {
10
+ const ignored = ignore.length ? picomatch(ignore, { dot: true }) : () => false;
11
+ return changes.map((c) => {
12
+ const kind = ignored(c.path) ? 'ignored' : c.deleted || CONFIG.test(c.path) ? 'config' : CODE.test(c.path) ? 'code' : 'data';
13
+ return { ...c, kind };
14
+ });
15
+ }
16
+ /** 需要全部运行的原因(第一个不是 JS/TS 源码的相关改动);没有时返回 null。 */
17
+ export function wholeRunReason(changes) {
18
+ const hit = changes.find((c) => c.kind === 'config' || c.kind === 'data');
19
+ if (!hit)
20
+ return null;
21
+ if (hit.deleted)
22
+ return `删除文件 ${hit.path}`;
23
+ return hit.kind === 'config' ? `配置改动 ${hit.path}` : `非 JS/TS 改动 ${hit.path}`;
24
+ }
25
+ const GLOB_CHARS = /[*?[\]{}!]/;
26
+ /** 读取 workspace 包定义的目录模式:pnpm-workspace.yaml 的 packages,其次 package.json 的 workspaces。 */
27
+ function workspacePatterns(root) {
28
+ const pnpm = join(root, 'pnpm-workspace.yaml');
29
+ if (existsSync(pnpm)) {
30
+ const doc = parse(readFileSync(pnpm, 'utf8'));
31
+ return Array.isArray(doc?.packages) ? doc.packages.map(String) : [];
32
+ }
33
+ const manifest = join(root, 'package.json');
34
+ if (!existsSync(manifest))
35
+ return null;
36
+ const ws = JSON.parse(readFileSync(manifest, 'utf8')).workspaces;
37
+ if (Array.isArray(ws))
38
+ return ws.map(String);
39
+ const nested = ws?.packages;
40
+ return Array.isArray(nested) ? nested.map(String) : null;
41
+ }
42
+ /**
43
+ * 读出 workspace 包。只支持 `dir` 与 `dir/*` 两种写法;遇到 `**`、`!` 等其他写法,或一个包也没有匹配到时返回 error,
44
+ * 由调用方回退为运行仓库根的 test 脚本(不能因为包列表为空而通过)。
45
+ */
46
+ export function readWorkspace(root) {
47
+ const patterns = workspacePatterns(root);
48
+ if (patterns === null)
49
+ return { error: '未找到 pnpm-workspace.yaml 或 package.json 的 workspaces' };
50
+ const dirs = [];
51
+ for (const raw of patterns) {
52
+ const pattern = raw.replace(/^\.\//, '').replace(/\/+$/, '');
53
+ const parent = pattern.endsWith('/*') ? pattern.slice(0, -2) : null;
54
+ if (GLOB_CHARS.test(parent ?? pattern) || pattern === '' || pattern === '.') {
55
+ return { error: `不支持的 workspace 写法 ${raw}(只支持 dir 与 dir/*)` };
56
+ }
57
+ if (parent === null)
58
+ dirs.push(pattern);
59
+ else if (existsSync(join(root, parent))) {
60
+ for (const entry of readdirSync(join(root, parent), { withFileTypes: true })) {
61
+ if (entry.isDirectory())
62
+ dirs.push(`${parent}/${entry.name}`);
63
+ }
64
+ }
65
+ }
66
+ const manifests = [...new Set(dirs)]
67
+ .filter((rel) => existsSync(join(root, rel, 'package.json')))
68
+ .map((rel) => ({ rel, json: JSON.parse(readFileSync(join(root, rel, 'package.json'), 'utf8')) }));
69
+ if (manifests.length === 0)
70
+ return { error: 'workspace 没有匹配到任何包' };
71
+ const names = new Set(manifests.map((m) => m.json.name ?? m.rel));
72
+ const realRoot = realpathSync(root);
73
+ return {
74
+ packages: manifests.map(({ rel, json }) => ({
75
+ name: json.name ?? rel,
76
+ rel,
77
+ dir: join(realRoot, rel),
78
+ test: json.scripts?.test,
79
+ deps: [
80
+ ...new Set(['dependencies', 'devDependencies', 'peerDependencies', 'optionalDependencies'].flatMap((field) => Object.keys(json[field] ?? {}).filter((dep) => names.has(dep)))),
81
+ ],
82
+ })),
83
+ };
84
+ }
85
+ /** 文件所属的包(包目录嵌套时取最深的一个)。 */
86
+ export function owningPackage(packages, path) {
87
+ return packages.filter((p) => path.startsWith(`${p.rel}/`)).sort((a, b) => b.rel.length - a.rel.length)[0];
88
+ }
89
+ /** 各包的全部上游(传递闭包)。逐包广度遍历,环依赖安全。 */
90
+ function upstreamClosure(packages) {
91
+ const byName = new Map(packages.map((p) => [p.name, p]));
92
+ const visit = (name) => {
93
+ const seen = new Set();
94
+ const queue = [name];
95
+ while (queue.length > 0) {
96
+ for (const dep of byName.get(queue.shift())?.deps ?? []) {
97
+ if (dep !== name && !seen.has(dep)) {
98
+ seen.add(dep);
99
+ queue.push(dep);
100
+ }
101
+ }
102
+ }
103
+ return [...seen];
104
+ };
105
+ return new Map(packages.map((p) => [p.name, visit(p.name)]));
106
+ }
107
+ /**
108
+ * 逐包判定模式:候选包为有改动的包及其下游。
109
+ * changes:包名 → 该包的改动(不含 ignored)。
110
+ */
111
+ export function decideTestModes(packages, changes, opts = {}) {
112
+ const ups = upstreamClosure(packages);
113
+ const relevant = (name) => (changes.get(name) ?? []).filter((c) => c.kind !== 'ignored');
114
+ const seeds = packages.filter((p) => relevant(p.name).length > 0).map((p) => p.name);
115
+ return packages
116
+ .filter((p) => opts.wholeAll || seeds.includes(p.name) || ups.get(p.name).some((up) => seeds.includes(up)))
117
+ .map((pkg) => {
118
+ const { name } = pkg;
119
+ if (!pkg.test)
120
+ return { name, mode: 'skip', reason: '没有 test 脚本' };
121
+ if (opts.wholeAll)
122
+ return { name, mode: 'whole', reason: opts.wholeAll };
123
+ const own = relevant(name);
124
+ const changedUps = ups.get(name).filter((up) => relevant(up).length > 0);
125
+ if (pkg.test.trim() !== 'vitest run')
126
+ return { name, mode: 'whole', reason: 'test 脚本不是 vitest run' };
127
+ const listed = opts.wholePackages?.get(name);
128
+ if (listed !== undefined)
129
+ return { name, mode: 'whole', reason: listed || '配置为整包运行' };
130
+ const nonCode = own.find((c) => c.kind !== 'code');
131
+ if (nonCode) {
132
+ const why = nonCode.deleted ? '删除文件' : nonCode.kind === 'config' ? '配置改动' : '非 JS/TS 改动';
133
+ return { name, mode: 'whole', reason: `${why} ${nonCode.rel}` };
134
+ }
135
+ const upNonCode = changedUps.find((up) => relevant(up).some((c) => c.kind !== 'code'));
136
+ if (upNonCode)
137
+ return { name, mode: 'whole', reason: `上游 ${upNonCode} 有配置、删除或非 JS/TS 改动` };
138
+ const inputs = own.map((c) => c.abs);
139
+ if (own.length > 0)
140
+ inputs.push(...(opts.sourceGuards?.[name] ?? []).map((rel) => join(pkg.dir, rel)));
141
+ for (const up of changedUps)
142
+ inputs.push(...relevant(up).map((c) => c.abs));
143
+ const files = [...new Set(inputs)];
144
+ return { name, mode: 'related', reason: `输入 ${files.length} 个文件`, files, own: own.length > 0 };
145
+ });
146
+ }
147
+ /** 仓库根 package.json 的 test 脚本;没有 package.json 时返回 null。 */
148
+ export function rootTestScript(root) {
149
+ const manifest = join(root, 'package.json');
150
+ if (!existsSync(manifest))
151
+ return null;
152
+ return JSON.parse(readFileSync(manifest, 'utf8')).scripts?.test;
153
+ }
154
+ /** 比较路径用的键:绝对路径、/ 分隔;Windows 文件系统大小写不敏感,统一小写。 */
155
+ export function pathKey(file, platform = process.platform) {
156
+ const key = resolve(file).replaceAll('\\', '/');
157
+ return platform === 'win32' ? key.toLowerCase() : key;
158
+ }
159
+ /** 项目的包管理器:package.json 的 packageManager 字段,其次按锁文件判断,默认 npm。 */
160
+ export function packageManager(root) {
161
+ const manifest = join(root, 'package.json');
162
+ const declared = existsSync(manifest)
163
+ ? JSON.parse(readFileSync(manifest, 'utf8')).packageManager
164
+ : undefined;
165
+ if (declared)
166
+ return declared.split('@')[0];
167
+ if (existsSync(join(root, 'pnpm-lock.yaml')))
168
+ return 'pnpm';
169
+ if (existsSync(join(root, 'yarn.lock')))
170
+ return 'yarn';
171
+ if (existsSync(join(root, 'bun.lockb')) || existsSync(join(root, 'bun.lock')))
172
+ return 'bun';
173
+ return 'npm';
174
+ }
175
+ //# sourceMappingURL=test-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-scope.js","sourceRoot":"","sources":["../src/test-scope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export declare const PACKAGE_DIR: string;
2
+ export declare const REPO_ROOT: string;
3
+ export declare function git(root: string, ...args: string[]): string;
4
+ /**
5
+ * 测试项目:写入文件、链接本仓库的 node_modules(复用 eslint/prettier/vitest/tsc)、初始化 git。
6
+ * 默认启用本插件包,区域为 src/control/precedents。
7
+ */
8
+ export declare function fixtureProject(files: Record<string, string>, opts?: {
9
+ commit?: boolean;
10
+ config?: string;
11
+ }): string;
12
+ export declare function commit(root: string): void;
13
+ export declare const flow: (steps: string) => string;
@@ -0,0 +1,47 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ import { mkdirSync, mkdtempSync, symlinkSync, writeFileSync } from 'node:fs';
3
+ import { tmpdir } from 'node:os';
4
+ import { dirname, join, resolve } from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
+ const here = dirname(fileURLToPath(import.meta.url));
7
+ export const PACKAGE_DIR = resolve(here, '..');
8
+ export const REPO_ROOT = resolve(PACKAGE_DIR, '../..');
9
+ export function git(root, ...args) {
10
+ return execFileSync('git', args, { cwd: root, encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'], windowsHide: true }).trim();
11
+ }
12
+ /**
13
+ * 测试项目:写入文件、链接本仓库的 node_modules(复用 eslint/prettier/vitest/tsc)、初始化 git。
14
+ * 默认启用本插件包,区域为 src/control/precedents。
15
+ */
16
+ export function fixtureProject(files, opts = {}) {
17
+ const root = mkdtempSync(join(tmpdir(), 'sumi-core-'));
18
+ const all = {
19
+ 'control/config.yaml': opts.config ??
20
+ [
21
+ `packages: [${PACKAGE_DIR}]`,
22
+ `zones: { business: ['src/**'], control: ['control/**'], precedent: ['precedents/**'] }`,
23
+ `neutral: [AGENTS.md, eslint.config.mjs, package.json, .gitignore, .prettierrc, node_modules]`,
24
+ ].join('\n'),
25
+ 'eslint.config.mjs': "export default [{ files: ['**/*.js'], rules: { 'no-var': 'error', 'no-console': 'warn' } }];\n",
26
+ 'package.json': '{ "type": "module" }\n',
27
+ '.gitignore': 'node_modules\n',
28
+ ...files,
29
+ };
30
+ for (const [path, content] of Object.entries(all)) {
31
+ mkdirSync(dirname(join(root, path)), { recursive: true });
32
+ writeFileSync(join(root, path), content);
33
+ }
34
+ symlinkSync(join(REPO_ROOT, 'node_modules'), join(root, 'node_modules'), process.platform === 'win32' ? 'junction' : 'dir');
35
+ git(root, 'init', '-q', '-b', 'main');
36
+ git(root, 'config', 'user.email', 'test@example.invalid');
37
+ git(root, 'config', 'user.name', 'test');
38
+ if (opts.commit)
39
+ commit(root);
40
+ return root;
41
+ }
42
+ export function commit(root) {
43
+ git(root, 'add', '-A');
44
+ git(root, 'commit', '-q', '-m', 'c');
45
+ }
46
+ export const flow = (steps) => `id: check\npurpose: test\nsteps:\n${steps}`;
47
+ //# sourceMappingURL=testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Windows 的 .cmd shim 会经过命令解释器;给引号、转义和 shim 前缀保留余量。
3
+ * 所有平台共用该预算,使长列表行为可重复测试。
4
+ */
5
+ export declare const FILE_TOOL_COMMAND_BUDGET = 6000;
6
+ export declare function estimateCommandSize(command: string, args: string[]): number;
7
+ /**
8
+ * 保持原顺序把文件参数拆成可安全启动的批次。
9
+ * 固定参数或单个文件无法放入空批时直接拒绝,避免工具收到截断列表。
10
+ */
11
+ export declare function splitFileArguments(command: string, fixedArgs: string[], files: string[], budget?: number): string[][];
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Windows 的 .cmd shim 会经过命令解释器;给引号、转义和 shim 前缀保留余量。
3
+ * 所有平台共用该预算,使长列表行为可重复测试。
4
+ */
5
+ export const FILE_TOOL_COMMAND_BUDGET = 6_000;
6
+ const SHELL_OVERHEAD = 128;
7
+ /** 按 UTF-8 字节数的两倍保守估算参数经 shell 引号与转义后的占用。 */
8
+ function estimateArgumentSize(value) {
9
+ return Buffer.byteLength(value, 'utf8') * 2 + 8;
10
+ }
11
+ export function estimateCommandSize(command, args) {
12
+ return [command, ...args].reduce((size, value) => size + estimateArgumentSize(value), SHELL_OVERHEAD);
13
+ }
14
+ /**
15
+ * 保持原顺序把文件参数拆成可安全启动的批次。
16
+ * 固定参数或单个文件无法放入空批时直接拒绝,避免工具收到截断列表。
17
+ */
18
+ export function splitFileArguments(command, fixedArgs, files, budget = FILE_TOOL_COMMAND_BUDGET) {
19
+ if (!Number.isSafeInteger(budget) || budget <= 0)
20
+ throw new Error(`无效的命令参数安全预算:${budget}`);
21
+ const fixedSize = estimateCommandSize(command, fixedArgs);
22
+ if (fixedSize > budget)
23
+ throw new Error(`工具固定参数超过安全预算:${command}`);
24
+ if (files.length === 0)
25
+ return [[]];
26
+ const batches = [];
27
+ let batch = [];
28
+ for (const file of files) {
29
+ if (estimateCommandSize(command, [...fixedArgs, file]) > budget) {
30
+ throw new Error(`单个文件参数超过安全预算:${file}`);
31
+ }
32
+ if (batch.length > 0 && estimateCommandSize(command, [...fixedArgs, ...batch, file]) > budget) {
33
+ batches.push(batch);
34
+ batch = [];
35
+ }
36
+ batch.push(file);
37
+ }
38
+ batches.push(batch);
39
+ return batches;
40
+ }
41
+ //# sourceMappingURL=tool-batches.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-batches.js","sourceRoot":"","sources":["../src/tool-batches.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAE9C,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,6CAA6C;AAC7C,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,IAAc;IACjE,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;AACxG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,SAAmB,EAAE,KAAe,EAAE,MAAM,GAAG,wBAAwB;IACzH,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,MAAM,EAAE,CAAC,CAAC;IAC3F,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC1D,IAAI,SAAS,GAAG,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAC;IACnE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAEpC,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,IAAI,KAAK,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;YAC9F,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,GAAG,EAAE,CAAC;QACb,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * 以 vitest 的 Node API 运行测试:用法 node vitest-runner.js <输入 JSON 文件>,工作目录为 vitest 的项目目录。
3
+ * 由 core/test-affected 以子进程启动,避免 vitest 在插件进程中加载项目配置。要求 vitest >= 3.0(getRelevantTestSpecifications 自 3.0 起提供)。
4
+ *
5
+ * 输入 JSON:{ vitest: vitest/node 入口的绝对路径, files: 改动文件的绝对路径或 null, report: JSON 报告路径, result: 结果路径 }。
6
+ * 文件列表经文件传入而非命令行参数,不受 Windows 命令行长度上限影响。
7
+ * files 为 null 时运行全部测试(等同 vitest run);否则只运行相关测试(等同 vitest related --run)。
8
+ * 输入文件命中 vitest 配置文件及其导入的文件、setupFiles、globalSetup 及它们导入的本地文件时改为全部运行。
9
+ *
10
+ * 退出码:0 通过或没有测试;1 有测试失败;3 vitest 启动或求相关测试失败,调用方应回退为全部运行;
11
+ * 4 项目的 vitest 缺少所需 API(版本过低),结果文件写入 { incompatible: 说明 }。
12
+ * 结果文件写入 { selected: 选中的测试文件数, whole?: 改为全部运行的原因 };没有选中测试时也写入空报告。
13
+ */
14
+ import { readFileSync, writeFileSync } from 'node:fs';
15
+ import { pathToFileURL } from 'node:url';
16
+ import { pathKey } from './test-scope.js';
17
+ const FALLBACK_EXIT = 3;
18
+ const INCOMPATIBLE_EXIT = 4;
19
+ const MIN_VERSION = 'vitest >= 3.0';
20
+ function fail(message) {
21
+ process.stderr.write(`vitest 无法运行:${message}\n`);
22
+ process.exit(FALLBACK_EXIT);
23
+ }
24
+ function incompatible(missing) {
25
+ const message = `项目的 vitest 缺少 ${missing},需要 ${MIN_VERSION}`;
26
+ process.stderr.write(`${message}\n`);
27
+ writeFileSync(input.result, JSON.stringify({ selected: 0, incompatible: message }));
28
+ process.exit(INCOMPATIBLE_EXIT);
29
+ }
30
+ const strings = (value) => [value ?? []].flat().filter((f) => typeof f === 'string');
31
+ /**
32
+ * 只能整体重跑的文件:各项目的配置文件及其导入的文件(vite 的 configFileDependencies)、setupFiles、globalSetup
33
+ * 以及它们导入的本地文件(related 只沿测试文件的 import 图追踪,追不到 setup 文件的依赖)。
34
+ * 返回比较键集合;无法求出 setup 文件的依赖时返回原因字符串,由调用方全部运行。
35
+ */
36
+ async function wholeTriggers(vitest) {
37
+ const files = [
38
+ ...strings(vitest.vite?.config?.configFile),
39
+ ...strings(vitest.vite?.config?.configFileDependencies),
40
+ ...strings(vitest.config?.workspace),
41
+ ];
42
+ for (const project of vitest.projects ?? []) {
43
+ files.push(...strings(project.vite?.config?.configFile), ...strings(project.vite?.config?.configFileDependencies));
44
+ for (const setup of [...strings(project.config?.setupFiles), ...strings(project.config?.globalSetup)]) {
45
+ files.push(setup);
46
+ // 依赖包中的 setup 文件不随项目改动变化
47
+ if (setup.replaceAll('\\', '/').includes('/node_modules/'))
48
+ continue;
49
+ if (typeof vitest.specifications?.getTestDependencies !== 'function')
50
+ return `无法求出 setup 文件 ${setup} 的依赖`;
51
+ const deps = (await vitest.specifications.getTestDependencies(project.createSpecification(setup)));
52
+ files.push(...deps);
53
+ }
54
+ }
55
+ return new Set(files.map((f) => pathKey(f)));
56
+ }
57
+ // 与 vitest CLI 一致(createVitest 不设置这些变量)
58
+ process.env.NODE_ENV ??= 'test';
59
+ process.env.TEST = 'true';
60
+ process.env.VITEST = 'true';
61
+ let input;
62
+ try {
63
+ input = JSON.parse(readFileSync(process.argv[2], 'utf8'));
64
+ }
65
+ catch (error) {
66
+ fail(`读取输入失败:${error.message}`);
67
+ }
68
+ let vitest;
69
+ let selected;
70
+ let whole;
71
+ try {
72
+ const { createVitest } = (await import(pathToFileURL(input.vitest).href));
73
+ if (typeof createVitest !== 'function')
74
+ incompatible('createVitest');
75
+ vitest = await createVitest('test', {
76
+ run: true,
77
+ watch: false,
78
+ passWithNoTests: true,
79
+ reporters: ['default', 'json'],
80
+ outputFile: { json: input.report },
81
+ ...(input.files ? { related: input.files } : {}),
82
+ });
83
+ if (typeof vitest.getRelevantTestSpecifications !== 'function') {
84
+ await vitest.close?.().catch(() => { });
85
+ incompatible('getRelevantTestSpecifications');
86
+ }
87
+ if (input.files) {
88
+ const triggers = await wholeTriggers(vitest);
89
+ const hit = typeof triggers === 'string' ? undefined : input.files.find((f) => triggers.has(pathKey(f)));
90
+ if (typeof triggers === 'string')
91
+ whole = triggers;
92
+ else if (hit)
93
+ whole = `${hit} 是 vitest 配置、setup 文件或它们导入的文件`;
94
+ if (whole)
95
+ vitest.config.related = undefined;
96
+ }
97
+ const specs = (await vitest.getRelevantTestSpecifications());
98
+ selected = new Set(specs.map((s) => s.moduleId)).size;
99
+ }
100
+ catch (error) {
101
+ await vitest?.close().catch(() => { });
102
+ fail(String(error?.stack ?? error));
103
+ }
104
+ writeFileSync(input.result, JSON.stringify({ selected, whole }));
105
+ if (selected === 0) {
106
+ writeFileSync(input.report, JSON.stringify({ numTotalTests: 0, numFailedTests: 0, testResults: [] }));
107
+ await vitest.close();
108
+ process.exit(0);
109
+ }
110
+ let failed = true;
111
+ try {
112
+ await vitest.start();
113
+ const state = vitest.state;
114
+ failed =
115
+ Boolean(process.exitCode) ||
116
+ state.getUnhandledErrors().length > 0 ||
117
+ state.getFiles().some((file) => file.result?.state === 'fail');
118
+ }
119
+ catch (error) {
120
+ process.stderr.write(`${error?.stack ?? error}\n`);
121
+ }
122
+ finally {
123
+ await vitest.close().catch(() => { });
124
+ }
125
+ process.exit(failed ? 1 : 0);
126
+ //# sourceMappingURL=vitest-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest-runner.js","sourceRoot":"","sources":["../src/vitest-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ ---
2
+ description: 把已有项目的 control 资产收进 sumi,直到纳管债务清零
3
+ ---
4
+
5
+ # 纳管已有项目
6
+
7
+ 目标:control 资产都在 control 区,接线只由 sumi 生成,每条规范都有执行者。进度只看 `sumi adopt --status` 报告的四类债务(规则、位置、接线、草案)。
8
+
9
+ ## 1. 分类
10
+
11
+ 先确认项目已接入(没有 `control/config.yaml` 时运行 `sumi init`),再运行 `sumi adopt`,然后读项目,把每项资产归入一类:
12
+
13
+ | 资产 | 去向 |
14
+ | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
15
+ | 原子检查(检查一类问题,有通过/失败) | 搬入 `control/plugins/<名称>/`,写 `plugin.yaml`:`base: core/exec`,`with` 给出 `argv`、能接收文件列表时 `passFiles: true`、能解析输出时 `pattern`(含 file、line、message 命名分组),并声明 `triggers`;加入流程 |
16
+ | 编排脚本(自己挑文件、串联多个检查) | 删除,由流程与通用插件(format、lint、typecheck、test)替代 |
17
+ | 守卫、编辑后校验(被 AI 工具或 git hook 调用) | 只提供命令与 hook 的项目插件:`commands` 加 `hooks.agent.beforeTool` / `afterEdit` 或 `hooks.git` |
18
+ | 需要判断的规则 | 写成 `control/rubrics/<集合>.yaml` 的条目,规则行引用 `[rubric:<集合>#<条目>]` |
19
+ | 决策记录 | 搬入 `control/decisions/`;已有执行者的决策沉淀为判例(判例插件包的 `sumi promote`),来源指向该记录 |
20
+ | 规则文档 | 搬入 control 区;原样同步的外部参考文档在 `core/control-docs` 的 `with.exclude` 中排除 |
21
+ | 流程类说明、原则 | 留在 control 区文档,标记 `[non-normative]` |
22
+ | 构建、发布、开发辅助工具 | 不动 |
23
+
24
+ ## 2. 收敛顺序
25
+
26
+ 1. 建项目插件,运行 `sumi run check --all` 确认它们给出与原脚本一致的结论;
27
+ 2. 删除被替代的编排脚本、草案步骤与并行接线(hook 文件中 sumi 区块之外的命令、AI 工具配置中非 sumi 的条目,`sumi doctor` 会列出),运行 `sumi update`;
28
+ 3. 处置规则债务:补 `[plugin:…]`、`[step:…]`、`[prec:…]`、`[rubric:…#…]` 引用,或标记非规范;
29
+ 4. 每步之后运行 `sumi adopt --status`,直到报告纳管完成;然后按它给出的 next 把入口文档加回日常检查。
30
+
31
+ ## 3. 边界
32
+
33
+ - 搬迁文件时,在同一次改动中修改所有引用它的地方(入口文档路由、项目自己的结构检查及其测试、配置、包脚本)。
34
+ - 规则与配置不一致(例如文档写"强制"、配置却关闭)时,以 ask-human 请用户决定以哪一方为准,不替项目决定。
35
+ - 被检查或 hook 拦截时按拦截提示处理;需要人处理的(ask-human)请用户在自己的终端执行。
36
+
37
+ 每次运行后按简报中的 next 处理(规则见 `sumi instructions develop`)。