@lesliechan721/aw 0.1.0-beta.3

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 (429) hide show
  1. package/dist/authoring/assets/aw-config.d.mts +2 -0
  2. package/dist/authoring/assets/aw-config.mjs +556 -0
  3. package/dist/authoring/assets/aw-config.mjs.map +1 -0
  4. package/dist/authoring/scripts/add-skill.d.mts +2 -0
  5. package/dist/authoring/scripts/add-skill.mjs +355 -0
  6. package/dist/authoring/scripts/add-skill.mjs.map +1 -0
  7. package/dist/authoring/scripts/check-plugin-versions.d.mts +2 -0
  8. package/dist/authoring/scripts/check-plugin-versions.mjs +5 -0
  9. package/dist/authoring/scripts/check-plugin-versions.mjs.map +1 -0
  10. package/dist/authoring/scripts/init-plugin.d.mts +2 -0
  11. package/dist/authoring/scripts/init-plugin.mjs +512 -0
  12. package/dist/authoring/scripts/init-plugin.mjs.map +1 -0
  13. package/dist/authoring/scripts/lib/javascript-import-scanner.d.mts +4 -0
  14. package/dist/authoring/scripts/lib/javascript-import-scanner.mjs +261 -0
  15. package/dist/authoring/scripts/lib/javascript-import-scanner.mjs.map +1 -0
  16. package/dist/authoring/scripts/lib/plugin-root.d.mts +26 -0
  17. package/dist/authoring/scripts/lib/plugin-root.mjs +125 -0
  18. package/dist/authoring/scripts/lib/plugin-root.mjs.map +1 -0
  19. package/dist/authoring/scripts/lib/plugin-version-check.d.mts +55 -0
  20. package/dist/authoring/scripts/lib/plugin-version-check.mjs +777 -0
  21. package/dist/authoring/scripts/lib/plugin-version-check.mjs.map +1 -0
  22. package/dist/authoring/scripts/lib/semver.d.mts +9 -0
  23. package/dist/authoring/scripts/lib/semver.mjs +63 -0
  24. package/dist/authoring/scripts/lib/semver.mjs.map +1 -0
  25. package/dist/authoring/scripts/lib/skill-scaffold.d.mts +124 -0
  26. package/dist/authoring/scripts/lib/skill-scaffold.mjs +374 -0
  27. package/dist/authoring/scripts/lib/skill-scaffold.mjs.map +1 -0
  28. package/dist/authoring/scripts/plugin-status.d.mts +2 -0
  29. package/dist/authoring/scripts/plugin-status.mjs +96 -0
  30. package/dist/authoring/scripts/plugin-status.mjs.map +1 -0
  31. package/dist/authoring/scripts/validate-plugin.d.mts +2 -0
  32. package/dist/authoring/scripts/validate-plugin.mjs +4442 -0
  33. package/dist/authoring/scripts/validate-plugin.mjs.map +1 -0
  34. package/dist/authoring/scripts/validate-skill.d.mts +2 -0
  35. package/dist/authoring/scripts/validate-skill.mjs +126 -0
  36. package/dist/authoring/scripts/validate-skill.mjs.map +1 -0
  37. package/dist/index.d.ts +2 -0
  38. package/dist/index.js +8 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/scripts/aw-skill-eval-engine.d.ts +13 -0
  41. package/dist/scripts/aw-skill-eval-engine.js +31 -0
  42. package/dist/scripts/aw-skill-eval-engine.js.map +1 -0
  43. package/dist/scripts/bundle-plugins.d.ts +18 -0
  44. package/dist/scripts/bundle-plugins.js +123 -0
  45. package/dist/scripts/bundle-plugins.js.map +1 -0
  46. package/dist/scripts/codex-eval-app-server.d.ts +89 -0
  47. package/dist/scripts/codex-eval-app-server.js +1228 -0
  48. package/dist/scripts/codex-eval-app-server.js.map +1 -0
  49. package/dist/scripts/codex-eval-isolation.d.ts +61 -0
  50. package/dist/scripts/codex-eval-isolation.js +318 -0
  51. package/dist/scripts/codex-eval-isolation.js.map +1 -0
  52. package/dist/scripts/codex-eval-process-management.d.ts +8 -0
  53. package/dist/scripts/codex-eval-process-management.js +69 -0
  54. package/dist/scripts/codex-eval-process-management.js.map +1 -0
  55. package/dist/scripts/codex-eval-process-tree.d.ts +38 -0
  56. package/dist/scripts/codex-eval-process-tree.js +803 -0
  57. package/dist/scripts/codex-eval-process-tree.js.map +1 -0
  58. package/dist/scripts/codex-eval-runtime-config.d.ts +62 -0
  59. package/dist/scripts/codex-eval-runtime-config.js +843 -0
  60. package/dist/scripts/codex-eval-runtime-config.js.map +1 -0
  61. package/dist/scripts/codex-trigger-eval.d.ts +84 -0
  62. package/dist/scripts/codex-trigger-eval.js +968 -0
  63. package/dist/scripts/codex-trigger-eval.js.map +1 -0
  64. package/dist/scripts/eval-plugin-skills-audited.d.ts +6 -0
  65. package/dist/scripts/eval-plugin-skills-audited.js +261 -0
  66. package/dist/scripts/eval-plugin-skills-audited.js.map +1 -0
  67. package/dist/scripts/eval-plugin-skills.d.ts +45 -0
  68. package/dist/scripts/eval-plugin-skills.js +1586 -0
  69. package/dist/scripts/eval-plugin-skills.js.map +1 -0
  70. package/dist/scripts/eval-run-layout.d.ts +17 -0
  71. package/dist/scripts/eval-run-layout.js +26 -0
  72. package/dist/scripts/eval-run-layout.js.map +1 -0
  73. package/dist/scripts/plugin-eval-contract.d.ts +185 -0
  74. package/dist/scripts/plugin-eval-contract.js +695 -0
  75. package/dist/scripts/plugin-eval-contract.js.map +1 -0
  76. package/dist/scripts/plugin-eval-materializer.d.ts +13 -0
  77. package/dist/scripts/plugin-eval-materializer.js +421 -0
  78. package/dist/scripts/plugin-eval-materializer.js.map +1 -0
  79. package/dist/scripts/plugin-staging.d.ts +43 -0
  80. package/dist/scripts/plugin-staging.js +196 -0
  81. package/dist/scripts/plugin-staging.js.map +1 -0
  82. package/dist/scripts/skill-reporting.d.ts +212 -0
  83. package/dist/scripts/skill-reporting.js +922 -0
  84. package/dist/scripts/skill-reporting.js.map +1 -0
  85. package/dist/scripts/test-plugin-scripts.d.ts +7 -0
  86. package/dist/scripts/test-plugin-scripts.js +674 -0
  87. package/dist/scripts/test-plugin-scripts.js.map +1 -0
  88. package/dist/src/adapters/helpers.d.ts +44 -0
  89. package/dist/src/adapters/helpers.js +95 -0
  90. package/dist/src/adapters/helpers.js.map +1 -0
  91. package/dist/src/authoring/workspace-commands.d.ts +46 -0
  92. package/dist/src/authoring/workspace-commands.js +133 -0
  93. package/dist/src/authoring/workspace-commands.js.map +1 -0
  94. package/dist/src/commands/catalog-publish.d.ts +33 -0
  95. package/dist/src/commands/catalog-publish.js +374 -0
  96. package/dist/src/commands/catalog-publish.js.map +1 -0
  97. package/dist/src/commands/catalog-source.d.ts +111 -0
  98. package/dist/src/commands/catalog-source.js +266 -0
  99. package/dist/src/commands/catalog-source.js.map +1 -0
  100. package/dist/src/commands/console.d.ts +3 -0
  101. package/dist/src/commands/console.js +44 -0
  102. package/dist/src/commands/console.js.map +1 -0
  103. package/dist/src/commands/dependency-operation-plan.d.ts +28 -0
  104. package/dist/src/commands/dependency-operation-plan.js +15 -0
  105. package/dist/src/commands/dependency-operation-plan.js.map +1 -0
  106. package/dist/src/commands/init.d.ts +31 -0
  107. package/dist/src/commands/init.js +63 -0
  108. package/dist/src/commands/init.js.map +1 -0
  109. package/dist/src/commands/options.d.ts +68 -0
  110. package/dist/src/commands/options.js +146 -0
  111. package/dist/src/commands/options.js.map +1 -0
  112. package/dist/src/commands/rebuild-command.d.ts +77 -0
  113. package/dist/src/commands/rebuild-command.js +1681 -0
  114. package/dist/src/commands/rebuild-command.js.map +1 -0
  115. package/dist/src/commands/rebuild-integration.d.ts +94 -0
  116. package/dist/src/commands/rebuild-integration.js +3289 -0
  117. package/dist/src/commands/rebuild-integration.js.map +1 -0
  118. package/dist/src/commands/rebuild-operations.d.ts +110 -0
  119. package/dist/src/commands/rebuild-operations.js +791 -0
  120. package/dist/src/commands/rebuild-operations.js.map +1 -0
  121. package/dist/src/commands/review-publication.d.ts +99 -0
  122. package/dist/src/commands/review-publication.js +904 -0
  123. package/dist/src/commands/review-publication.js.map +1 -0
  124. package/dist/src/commands/runtime.d.ts +176 -0
  125. package/dist/src/commands/runtime.js +746 -0
  126. package/dist/src/commands/runtime.js.map +1 -0
  127. package/dist/src/commands/status-v4.d.ts +102 -0
  128. package/dist/src/commands/status-v4.js +844 -0
  129. package/dist/src/commands/status-v4.js.map +1 -0
  130. package/dist/src/commands/status.d.ts +93 -0
  131. package/dist/src/commands/status.js +442 -0
  132. package/dist/src/commands/status.js.map +1 -0
  133. package/dist/src/commands/wizard.d.ts +57 -0
  134. package/dist/src/commands/wizard.js +58 -0
  135. package/dist/src/commands/wizard.js.map +1 -0
  136. package/dist/src/commands/write-commands.d.ts +7 -0
  137. package/dist/src/commands/write-commands.js +167 -0
  138. package/dist/src/commands/write-commands.js.map +1 -0
  139. package/dist/src/constants.d.ts +25 -0
  140. package/dist/src/constants.js +26 -0
  141. package/dist/src/constants.js.map +1 -0
  142. package/dist/src/generators/agents.d.ts +3 -0
  143. package/dist/src/generators/agents.js +46 -0
  144. package/dist/src/generators/agents.js.map +1 -0
  145. package/dist/src/generators/hooks.d.ts +15 -0
  146. package/dist/src/generators/hooks.js +76 -0
  147. package/dist/src/generators/hooks.js.map +1 -0
  148. package/dist/src/generators/instructions.d.ts +13 -0
  149. package/dist/src/generators/instructions.js +66 -0
  150. package/dist/src/generators/instructions.js.map +1 -0
  151. package/dist/src/generators/local-plugin.d.ts +53 -0
  152. package/dist/src/generators/local-plugin.js +1268 -0
  153. package/dist/src/generators/local-plugin.js.map +1 -0
  154. package/dist/src/generators/permissions.d.ts +10 -0
  155. package/dist/src/generators/permissions.js +37 -0
  156. package/dist/src/generators/permissions.js.map +1 -0
  157. package/dist/src/generators/shared.d.ts +2 -0
  158. package/dist/src/generators/shared.js +15 -0
  159. package/dist/src/generators/shared.js.map +1 -0
  160. package/dist/src/index.d.ts +35 -0
  161. package/dist/src/index.js +2344 -0
  162. package/dist/src/index.js.map +1 -0
  163. package/dist/src/output/command-receipt.d.ts +90 -0
  164. package/dist/src/output/command-receipt.js +129 -0
  165. package/dist/src/output/command-receipt.js.map +1 -0
  166. package/dist/src/output/debug-log.d.ts +4 -0
  167. package/dist/src/output/debug-log.js +97 -0
  168. package/dist/src/output/debug-log.js.map +1 -0
  169. package/dist/src/output/equivalent-command.d.ts +9 -0
  170. package/dist/src/output/equivalent-command.js +39 -0
  171. package/dist/src/output/equivalent-command.js.map +1 -0
  172. package/dist/src/output/model.d.ts +117 -0
  173. package/dist/src/output/model.js +145 -0
  174. package/dist/src/output/model.js.map +1 -0
  175. package/dist/src/output/rebuild-progress.d.ts +21 -0
  176. package/dist/src/output/rebuild-progress.js +138 -0
  177. package/dist/src/output/rebuild-progress.js.map +1 -0
  178. package/dist/src/output/redact.d.ts +3 -0
  179. package/dist/src/output/redact.js +39 -0
  180. package/dist/src/output/redact.js.map +1 -0
  181. package/dist/src/output/reporter.d.ts +9 -0
  182. package/dist/src/output/reporter.js +133 -0
  183. package/dist/src/output/reporter.js.map +1 -0
  184. package/dist/src/portable/commands.d.ts +120 -0
  185. package/dist/src/portable/commands.js +506 -0
  186. package/dist/src/portable/commands.js.map +1 -0
  187. package/dist/src/portable/materializer.d.ts +50 -0
  188. package/dist/src/portable/materializer.js +408 -0
  189. package/dist/src/portable/materializer.js.map +1 -0
  190. package/dist/src/portable/skills-cli.d.ts +43 -0
  191. package/dist/src/portable/skills-cli.js +148 -0
  192. package/dist/src/portable/skills-cli.js.map +1 -0
  193. package/dist/src/tui/components.d.ts +32 -0
  194. package/dist/src/tui/components.js +42 -0
  195. package/dist/src/tui/components.js.map +1 -0
  196. package/dist/src/tui/console-app-v4.d.ts +20 -0
  197. package/dist/src/tui/console-app-v4.js +2613 -0
  198. package/dist/src/tui/console-app-v4.js.map +1 -0
  199. package/dist/src/tui/controller-runtime.d.ts +11 -0
  200. package/dist/src/tui/controller-runtime.js +902 -0
  201. package/dist/src/tui/controller-runtime.js.map +1 -0
  202. package/dist/src/tui/controller.d.ts +367 -0
  203. package/dist/src/tui/controller.js +1724 -0
  204. package/dist/src/tui/controller.js.map +1 -0
  205. package/dist/src/tui/index.d.ts +13 -0
  206. package/dist/src/tui/index.js +14 -0
  207. package/dist/src/tui/index.js.map +1 -0
  208. package/dist/src/tui/keys.d.ts +12 -0
  209. package/dist/src/tui/keys.js +22 -0
  210. package/dist/src/tui/keys.js.map +1 -0
  211. package/dist/src/tui/layout.d.ts +12 -0
  212. package/dist/src/tui/layout.js +19 -0
  213. package/dist/src/tui/layout.js.map +1 -0
  214. package/dist/src/tui/model.d.ts +279 -0
  215. package/dist/src/tui/model.js +652 -0
  216. package/dist/src/tui/model.js.map +1 -0
  217. package/dist/src/tui/prompt.d.ts +8 -0
  218. package/dist/src/tui/prompt.js +242 -0
  219. package/dist/src/tui/prompt.js.map +1 -0
  220. package/dist/src/tui/router.d.ts +153 -0
  221. package/dist/src/tui/router.js +102 -0
  222. package/dist/src/tui/router.js.map +1 -0
  223. package/dist/src/tui/runner.d.ts +11 -0
  224. package/dist/src/tui/runner.js +71 -0
  225. package/dist/src/tui/runner.js.map +1 -0
  226. package/dist/src/tui/theme.d.ts +18 -0
  227. package/dist/src/tui/theme.js +20 -0
  228. package/dist/src/tui/theme.js.map +1 -0
  229. package/dist/src/tui/views.d.ts +57 -0
  230. package/dist/src/tui/views.js +173 -0
  231. package/dist/src/tui/views.js.map +1 -0
  232. package/dist/src/tui/wizard.d.ts +11 -0
  233. package/dist/src/tui/wizard.js +321 -0
  234. package/dist/src/tui/wizard.js.map +1 -0
  235. package/dist/src/types.d.ts +313 -0
  236. package/dist/src/types.js +33 -0
  237. package/dist/src/types.js.map +1 -0
  238. package/dist/src/utils/active-marketplace-runtime-lock.d.ts +12 -0
  239. package/dist/src/utils/active-marketplace-runtime-lock.js +133 -0
  240. package/dist/src/utils/active-marketplace-runtime-lock.js.map +1 -0
  241. package/dist/src/utils/agent-version.d.ts +13 -0
  242. package/dist/src/utils/agent-version.js +172 -0
  243. package/dist/src/utils/agent-version.js.map +1 -0
  244. package/dist/src/utils/artifact-plan.d.ts +26 -0
  245. package/dist/src/utils/artifact-plan.js +444 -0
  246. package/dist/src/utils/artifact-plan.js.map +1 -0
  247. package/dist/src/utils/artifact-renderer.d.ts +124 -0
  248. package/dist/src/utils/artifact-renderer.js +442 -0
  249. package/dist/src/utils/artifact-renderer.js.map +1 -0
  250. package/dist/src/utils/artifact-sources.d.ts +8 -0
  251. package/dist/src/utils/artifact-sources.js +10 -0
  252. package/dist/src/utils/artifact-sources.js.map +1 -0
  253. package/dist/src/utils/aw-home-mutation-lock.d.ts +10 -0
  254. package/dist/src/utils/aw-home-mutation-lock.js +55 -0
  255. package/dist/src/utils/aw-home-mutation-lock.js.map +1 -0
  256. package/dist/src/utils/bundle-integrity.d.ts +3 -0
  257. package/dist/src/utils/bundle-integrity.js +88 -0
  258. package/dist/src/utils/bundle-integrity.js.map +1 -0
  259. package/dist/src/utils/bundle-layout.d.ts +4 -0
  260. package/dist/src/utils/bundle-layout.js +546 -0
  261. package/dist/src/utils/bundle-layout.js.map +1 -0
  262. package/dist/src/utils/catalog-digests.d.ts +8 -0
  263. package/dist/src/utils/catalog-digests.js +108 -0
  264. package/dist/src/utils/catalog-digests.js.map +1 -0
  265. package/dist/src/utils/catalog-manifest-v3.d.ts +2 -0
  266. package/dist/src/utils/catalog-manifest-v3.js +3 -0
  267. package/dist/src/utils/catalog-manifest-v3.js.map +1 -0
  268. package/dist/src/utils/catalog-manifest-v4.d.ts +5 -0
  269. package/dist/src/utils/catalog-manifest-v4.js +106 -0
  270. package/dist/src/utils/catalog-manifest-v4.js.map +1 -0
  271. package/dist/src/utils/catalog-public-error.d.ts +15 -0
  272. package/dist/src/utils/catalog-public-error.js +84 -0
  273. package/dist/src/utils/catalog-public-error.js.map +1 -0
  274. package/dist/src/utils/catalog-runtime-projection.d.ts +36 -0
  275. package/dist/src/utils/catalog-runtime-projection.js +172 -0
  276. package/dist/src/utils/catalog-runtime-projection.js.map +1 -0
  277. package/dist/src/utils/catalog-snapshot.d.ts +8 -0
  278. package/dist/src/utils/catalog-snapshot.js +12 -0
  279. package/dist/src/utils/catalog-snapshot.js.map +1 -0
  280. package/dist/src/utils/catalog-source-cache.d.ts +61 -0
  281. package/dist/src/utils/catalog-source-cache.js +276 -0
  282. package/dist/src/utils/catalog-source-cache.js.map +1 -0
  283. package/dist/src/utils/catalog-source-identity.d.ts +4 -0
  284. package/dist/src/utils/catalog-source-identity.js +118 -0
  285. package/dist/src/utils/catalog-source-identity.js.map +1 -0
  286. package/dist/src/utils/catalog-source-presentation.d.ts +1 -0
  287. package/dist/src/utils/catalog-source-presentation.js +32 -0
  288. package/dist/src/utils/catalog-source-presentation.js.map +1 -0
  289. package/dist/src/utils/catalog-source-references.d.ts +65 -0
  290. package/dist/src/utils/catalog-source-references.js +1418 -0
  291. package/dist/src/utils/catalog-source-references.js.map +1 -0
  292. package/dist/src/utils/catalog-sources.d.ts +39 -0
  293. package/dist/src/utils/catalog-sources.js +293 -0
  294. package/dist/src/utils/catalog-sources.js.map +1 -0
  295. package/dist/src/utils/codex-config.d.ts +124 -0
  296. package/dist/src/utils/codex-config.js +1011 -0
  297. package/dist/src/utils/codex-config.js.map +1 -0
  298. package/dist/src/utils/codex-project-surface.d.ts +3 -0
  299. package/dist/src/utils/codex-project-surface.js +49 -0
  300. package/dist/src/utils/codex-project-surface.js.map +1 -0
  301. package/dist/src/utils/codex-roles.d.ts +71 -0
  302. package/dist/src/utils/codex-roles.js +257 -0
  303. package/dist/src/utils/codex-roles.js.map +1 -0
  304. package/dist/src/utils/codex-skill-staging.d.ts +9 -0
  305. package/dist/src/utils/codex-skill-staging.js +8 -0
  306. package/dist/src/utils/codex-skill-staging.js.map +1 -0
  307. package/dist/src/utils/config-value.d.ts +3 -0
  308. package/dist/src/utils/config-value.js +23 -0
  309. package/dist/src/utils/config-value.js.map +1 -0
  310. package/dist/src/utils/dynamic-skill-tree.d.ts +32 -0
  311. package/dist/src/utils/dynamic-skill-tree.js +436 -0
  312. package/dist/src/utils/dynamic-skill-tree.js.map +1 -0
  313. package/dist/src/utils/file-rules.d.ts +1 -0
  314. package/dist/src/utils/file-rules.js +2 -0
  315. package/dist/src/utils/file-rules.js.map +1 -0
  316. package/dist/src/utils/git-catalog-provider.d.ts +7 -0
  317. package/dist/src/utils/git-catalog-provider.js +510 -0
  318. package/dist/src/utils/git-catalog-provider.js.map +1 -0
  319. package/dist/src/utils/hooks-contract.d.ts +1 -0
  320. package/dist/src/utils/hooks-contract.js +2 -0
  321. package/dist/src/utils/hooks-contract.js.map +1 -0
  322. package/dist/src/utils/json.d.ts +4 -0
  323. package/dist/src/utils/json.js +29 -0
  324. package/dist/src/utils/json.js.map +1 -0
  325. package/dist/src/utils/lifecycle-active-store.d.ts +175 -0
  326. package/dist/src/utils/lifecycle-active-store.js +1276 -0
  327. package/dist/src/utils/lifecycle-active-store.js.map +1 -0
  328. package/dist/src/utils/local-marketplace.d.ts +41 -0
  329. package/dist/src/utils/local-marketplace.js +317 -0
  330. package/dist/src/utils/local-marketplace.js.map +1 -0
  331. package/dist/src/utils/manifest.d.ts +14 -0
  332. package/dist/src/utils/manifest.js +36 -0
  333. package/dist/src/utils/manifest.js.map +1 -0
  334. package/dist/src/utils/marketplace.d.ts +3 -0
  335. package/dist/src/utils/marketplace.js +76 -0
  336. package/dist/src/utils/marketplace.js.map +1 -0
  337. package/dist/src/utils/multi-source-catalog.d.ts +72 -0
  338. package/dist/src/utils/multi-source-catalog.js +402 -0
  339. package/dist/src/utils/multi-source-catalog.js.map +1 -0
  340. package/dist/src/utils/native-cli.d.ts +75 -0
  341. package/dist/src/utils/native-cli.js +435 -0
  342. package/dist/src/utils/native-cli.js.map +1 -0
  343. package/dist/src/utils/orphan-marketplace-cleanup.d.ts +18 -0
  344. package/dist/src/utils/orphan-marketplace-cleanup.js +202 -0
  345. package/dist/src/utils/orphan-marketplace-cleanup.js.map +1 -0
  346. package/dist/src/utils/ownership.d.ts +130 -0
  347. package/dist/src/utils/ownership.js +766 -0
  348. package/dist/src/utils/ownership.js.map +1 -0
  349. package/dist/src/utils/path-catalog-provider.d.ts +7 -0
  350. package/dist/src/utils/path-catalog-provider.js +87 -0
  351. package/dist/src/utils/path-catalog-provider.js.map +1 -0
  352. package/dist/src/utils/paths.d.ts +41 -0
  353. package/dist/src/utils/paths.js +138 -0
  354. package/dist/src/utils/paths.js.map +1 -0
  355. package/dist/src/utils/platform-entries.d.ts +1 -0
  356. package/dist/src/utils/platform-entries.js +2 -0
  357. package/dist/src/utils/platform-entries.js.map +1 -0
  358. package/dist/src/utils/platform-support.d.ts +1 -0
  359. package/dist/src/utils/platform-support.js +2 -0
  360. package/dist/src/utils/platform-support.js.map +1 -0
  361. package/dist/src/utils/plugin-authoring-capabilities.d.ts +23 -0
  362. package/dist/src/utils/plugin-authoring-capabilities.js +37 -0
  363. package/dist/src/utils/plugin-authoring-capabilities.js.map +1 -0
  364. package/dist/src/utils/plugin-authoring-capabilities.json +92 -0
  365. package/dist/src/utils/plugin-config-write.d.ts +107 -0
  366. package/dist/src/utils/plugin-config-write.js +565 -0
  367. package/dist/src/utils/plugin-config-write.js.map +1 -0
  368. package/dist/src/utils/plugin-config.d.ts +396 -0
  369. package/dist/src/utils/plugin-config.js +1898 -0
  370. package/dist/src/utils/plugin-config.js.map +1 -0
  371. package/dist/src/utils/plugin-dependencies.d.ts +12 -0
  372. package/dist/src/utils/plugin-dependencies.js +162 -0
  373. package/dist/src/utils/plugin-dependencies.js.map +1 -0
  374. package/dist/src/utils/plugin-release.d.ts +2 -0
  375. package/dist/src/utils/plugin-release.js +2 -0
  376. package/dist/src/utils/plugin-release.js.map +1 -0
  377. package/dist/src/utils/plugin-script-contract.d.ts +1 -0
  378. package/dist/src/utils/plugin-script-contract.js +2 -0
  379. package/dist/src/utils/plugin-script-contract.js.map +1 -0
  380. package/dist/src/utils/plugin-scripts.d.ts +172 -0
  381. package/dist/src/utils/plugin-scripts.js +585 -0
  382. package/dist/src/utils/plugin-scripts.js.map +1 -0
  383. package/dist/src/utils/process-lock.d.ts +47 -0
  384. package/dist/src/utils/process-lock.js +532 -0
  385. package/dist/src/utils/process-lock.js.map +1 -0
  386. package/dist/src/utils/process-tree.d.ts +2 -0
  387. package/dist/src/utils/process-tree.js +2 -0
  388. package/dist/src/utils/process-tree.js.map +1 -0
  389. package/dist/src/utils/project-boundary.d.ts +21 -0
  390. package/dist/src/utils/project-boundary.js +95 -0
  391. package/dist/src/utils/project-boundary.js.map +1 -0
  392. package/dist/src/utils/rendered-contract.d.ts +8 -0
  393. package/dist/src/utils/rendered-contract.js +134 -0
  394. package/dist/src/utils/rendered-contract.js.map +1 -0
  395. package/dist/src/utils/runtime-skill-closure.d.ts +13 -0
  396. package/dist/src/utils/runtime-skill-closure.js +863 -0
  397. package/dist/src/utils/runtime-skill-closure.js.map +1 -0
  398. package/dist/src/utils/skill-authoring.d.ts +1 -0
  399. package/dist/src/utils/skill-authoring.js +2 -0
  400. package/dist/src/utils/skill-authoring.js.map +1 -0
  401. package/dist/src/utils/skill-frontmatter-capabilities.d.ts +201 -0
  402. package/dist/src/utils/skill-frontmatter-capabilities.js +5 -0
  403. package/dist/src/utils/skill-frontmatter-capabilities.js.map +1 -0
  404. package/dist/src/utils/skill-frontmatter-capabilities.json +200 -0
  405. package/dist/src/utils/skill-validation.d.ts +37 -0
  406. package/dist/src/utils/skill-validation.js +326 -0
  407. package/dist/src/utils/skill-validation.js.map +1 -0
  408. package/dist/src/utils/slash-commands.d.ts +1 -0
  409. package/dist/src/utils/slash-commands.js +2 -0
  410. package/dist/src/utils/slash-commands.js.map +1 -0
  411. package/dist/src/utils/state-paths.d.ts +13 -0
  412. package/dist/src/utils/state-paths.js +129 -0
  413. package/dist/src/utils/state-paths.js.map +1 -0
  414. package/dist/src/utils/target-eligibility.d.ts +7 -0
  415. package/dist/src/utils/target-eligibility.js +26 -0
  416. package/dist/src/utils/target-eligibility.js.map +1 -0
  417. package/dist/src/utils/target-order.d.ts +7 -0
  418. package/dist/src/utils/target-order.js +10 -0
  419. package/dist/src/utils/target-order.js.map +1 -0
  420. package/dist/src/utils/template-engine.d.ts +1 -0
  421. package/dist/src/utils/template-engine.js +2 -0
  422. package/dist/src/utils/template-engine.js.map +1 -0
  423. package/dist/src/utils/test-path-fence.d.ts +12 -0
  424. package/dist/src/utils/test-path-fence.js +31 -0
  425. package/dist/src/utils/test-path-fence.js.map +1 -0
  426. package/dist/vitest.config.d.ts +2 -0
  427. package/dist/vitest.config.js +16 -0
  428. package/dist/vitest.config.js.map +1 -0
  429. package/package.json +61 -0
@@ -0,0 +1,117 @@
1
+ import type { AgentVersionProbeResult, AgentVersionReasonCode, AgentVersionStatus, CodexProjectManagedKind, CommandAction, ManualNextStepKind, NextStepInstruction, NextStepsPayloadBoundary, PlatformName, RebuildActionEvent as SharedRebuildActionEvent, RebuildActionEventData as SharedRebuildActionEventData, Scope } from '../types.js';
2
+ export type OutputLevel = 'success' | 'info' | 'notice' | 'warning' | 'debug';
3
+ export type OutputTarget = 'stdout' | 'stderr' | 'debugLog';
4
+ export type NativeEventPhase = 'start' | 'success' | 'error';
5
+ export interface NativeMarketplaceEventData {
6
+ platform: PlatformName;
7
+ scope: Scope;
8
+ plugin: string;
9
+ marketplaceName: string;
10
+ marketplacePath: string;
11
+ operation: 'add' | 'list' | 'remove' | 'verify';
12
+ phase: NativeEventPhase;
13
+ errorCategory?: string;
14
+ suggestion?: string;
15
+ }
16
+ export interface NativeRpcEventData {
17
+ platform: PlatformName;
18
+ scope: Scope;
19
+ plugin: string;
20
+ pluginId: string;
21
+ method: 'plugin/install' | 'plugin/uninstall' | 'codex plugin add' | 'codex plugin remove';
22
+ phase: NativeEventPhase;
23
+ durationMs: number;
24
+ nativeWriteSucceeded?: boolean;
25
+ errorCategory?: string;
26
+ suggestion?: string;
27
+ }
28
+ export interface NativePostCheckEventData {
29
+ platform: PlatformName;
30
+ scope: Scope;
31
+ plugin: string;
32
+ pluginId: string;
33
+ operation: 'install' | 'uninstall';
34
+ phase: NativeEventPhase;
35
+ pluginEnabled: boolean | null;
36
+ configEntryPresent: boolean | null;
37
+ pluginInstalled: boolean | null;
38
+ activeCachePath: string | null;
39
+ errorCategory?: string;
40
+ suggestion?: string;
41
+ }
42
+ export interface NativeSkippedEventData {
43
+ platform: PlatformName;
44
+ scope: Scope;
45
+ plugin: string;
46
+ reason: string;
47
+ requiresNativeRuntime: boolean;
48
+ repoManagedArtifactKinds: CodexProjectManagedKind[];
49
+ }
50
+ export type RebuildActionEventData = SharedRebuildActionEventData;
51
+ export type RebuildActionEvent = SharedRebuildActionEvent;
52
+ export type CommandEventType = 'native:marketplace' | 'native:rpc' | 'native:post-check' | 'native:skipped' | string;
53
+ export type CommandEventData = Record<string, unknown> | RebuildActionEventData | NativeMarketplaceEventData | NativeRpcEventData | NativePostCheckEventData | NativeSkippedEventData;
54
+ export interface CommandOutputSource {
55
+ platform?: PlatformName;
56
+ plugin?: string;
57
+ scope?: Scope;
58
+ action?: CommandAction | string;
59
+ }
60
+ export interface CommandEvent {
61
+ type: CommandEventType;
62
+ commandName?: string;
63
+ message?: string;
64
+ data?: CommandEventData;
65
+ source?: CommandOutputSource;
66
+ level?: OutputLevel;
67
+ target?: OutputTarget;
68
+ }
69
+ export interface CommandNotice {
70
+ level: OutputLevel;
71
+ message: string;
72
+ identity?: string;
73
+ target?: OutputTarget;
74
+ source?: CommandOutputSource;
75
+ }
76
+ export interface AgentVersionDiagnosticProjection {
77
+ platform: PlatformName;
78
+ command: string;
79
+ status: AgentVersionStatus;
80
+ detectedVersion?: string;
81
+ requiredMinVersion: string;
82
+ reasonCode?: AgentVersionReasonCode;
83
+ suggestedAction: string;
84
+ rawVersionOutput?: string;
85
+ details?: string;
86
+ }
87
+ export interface CommandReporter {
88
+ event: (event: CommandEvent) => void | Promise<void>;
89
+ notice: (notice: CommandNotice) => void | Promise<void>;
90
+ }
91
+ export interface DebugLogger {
92
+ readonly logFile?: string;
93
+ log: (event: CommandEvent) => void | Promise<void>;
94
+ flush?: () => void | Promise<void>;
95
+ }
96
+ export declare function createAgentVersionSuggestedAction(result: AgentVersionProbeResult): string;
97
+ export declare function projectAgentVersionDiagnostic(result: AgentVersionProbeResult, options?: {
98
+ includeRawOutput?: boolean;
99
+ includeDetails?: boolean;
100
+ }): AgentVersionDiagnosticProjection;
101
+ export declare function createManualNextStep(label: string, description: string, options?: {
102
+ manualKind?: ManualNextStepKind;
103
+ }): NextStepInstruction;
104
+ export declare function createCliCommandNextStep(label: string, description: string, command: string): NextStepInstruction;
105
+ export declare function createUiActionNextStep(label: string, description: string, uiAction: string, command?: string): NextStepInstruction;
106
+ export declare function createLegacyNextStepText(step: NextStepInstruction): string;
107
+ export declare function dedupeNextSteps(steps: NextStepInstruction[]): NextStepInstruction[];
108
+ export declare function createNextStepsBoundary(steps: NextStepInstruction[], legacyNextSteps?: string[]): NextStepsPayloadBoundary;
109
+ export declare function createStructuredNextStepsBoundary(steps: NextStepInstruction[]): Pick<NextStepsPayloadBoundary, 'nextStepsSchemaVersion' | 'nextSteps'>;
110
+ export declare function formatNextStepForHuman(step: NextStepInstruction | string): string;
111
+ export declare function formatNextStepForUi(step: NextStepInstruction | string): string;
112
+ export declare function stripCommandFromNextStep(step: NextStepInstruction): NextStepInstruction;
113
+ export declare function createLegacyCommandNextStep(command: string, options?: {
114
+ label?: string;
115
+ description?: string;
116
+ uiAction?: string;
117
+ }): NextStepInstruction;
@@ -0,0 +1,145 @@
1
+ import { getAgentVersionRequirement } from '../utils/agent-version.js';
2
+ export function createAgentVersionSuggestedAction(result) {
3
+ const requirement = getAgentVersionRequirement(result.platform);
4
+ if (result.status === 'missing') {
5
+ return `请安装 ${requirement.displayName},并确认 \`${requirement.command} --version\` 可用后重试。`;
6
+ }
7
+ if (result.status === 'tooOld') {
8
+ return `请将 ${requirement.displayName} 升级到 >= ${requirement.minVersion} 后重试。`;
9
+ }
10
+ if (result.status === 'supported') {
11
+ return `${requirement.displayName} 已满足 AW 插件写入最低版本要求。`;
12
+ }
13
+ return `请检查 \`${requirement.command} --version\` 输出,必要时重新安装或升级 ${requirement.displayName} 后重试。`;
14
+ }
15
+ export function projectAgentVersionDiagnostic(result, options = {}) {
16
+ return {
17
+ platform: result.platform,
18
+ command: result.command,
19
+ status: result.status,
20
+ ...(result.detectedVersion ? { detectedVersion: result.detectedVersion } : {}),
21
+ requiredMinVersion: result.requiredMinVersion,
22
+ ...(result.reasonCode ? { reasonCode: result.reasonCode } : {}),
23
+ suggestedAction: createAgentVersionSuggestedAction(result),
24
+ ...(options.includeRawOutput && result.rawOutput.trim().length > 0
25
+ ? { rawVersionOutput: result.rawOutput }
26
+ : {}),
27
+ ...(options.includeDetails && result.details ? { details: result.details } : {}),
28
+ };
29
+ }
30
+ function ensureSentence(text) {
31
+ const normalized = text.trim();
32
+ if (normalized === '') {
33
+ return '';
34
+ }
35
+ return /[。!?]$/.test(normalized) ? normalized : `${normalized}。`;
36
+ }
37
+ export function createManualNextStep(label, description, options = {}) {
38
+ return {
39
+ kind: 'manual',
40
+ label,
41
+ description,
42
+ ...(options.manualKind ? { manualKind: options.manualKind } : {}),
43
+ };
44
+ }
45
+ export function createCliCommandNextStep(label, description, command) {
46
+ return {
47
+ kind: 'cliCommand',
48
+ label,
49
+ description,
50
+ command,
51
+ };
52
+ }
53
+ export function createUiActionNextStep(label, description, uiAction, command) {
54
+ return {
55
+ kind: 'uiAction',
56
+ label,
57
+ description,
58
+ uiAction,
59
+ ...(command ? { command } : {}),
60
+ };
61
+ }
62
+ export function createLegacyNextStepText(step) {
63
+ if (step.command) {
64
+ return `${step.label}:${step.command}`;
65
+ }
66
+ return step.description.trim() === '' ? step.label : `${step.label}:${step.description}`;
67
+ }
68
+ export function dedupeNextSteps(steps) {
69
+ const seen = new Set();
70
+ const deduped = [];
71
+ for (const step of steps) {
72
+ const key = [
73
+ step.kind,
74
+ step.label.trim(),
75
+ step.description.trim(),
76
+ step.uiAction ?? '',
77
+ step.command ?? '',
78
+ ].join('\0');
79
+ if (seen.has(key)) {
80
+ continue;
81
+ }
82
+ seen.add(key);
83
+ deduped.push(step);
84
+ }
85
+ return deduped;
86
+ }
87
+ export function createNextStepsBoundary(steps, legacyNextSteps) {
88
+ const nextSteps = dedupeNextSteps(steps);
89
+ const legacy = legacyNextSteps ?? [];
90
+ return {
91
+ nextStepsSchemaVersion: 1,
92
+ nextSteps,
93
+ ...(legacy.length > 0 ? { legacyNextSteps: [...new Set(legacy)] } : {}),
94
+ };
95
+ }
96
+ export function createStructuredNextStepsBoundary(steps) {
97
+ return {
98
+ nextStepsSchemaVersion: 1,
99
+ nextSteps: dedupeNextSteps(steps),
100
+ };
101
+ }
102
+ export function formatNextStepForHuman(step) {
103
+ if (typeof step === 'string') {
104
+ return ensureSentence(step);
105
+ }
106
+ const label = ensureSentence(step.label);
107
+ if (step.command) {
108
+ return `${label}运行 ${step.command} 后,${ensureSentence(step.description)}`;
109
+ }
110
+ return `${label}${ensureSentence(step.description)}`;
111
+ }
112
+ export function formatNextStepForUi(step) {
113
+ if (typeof step === 'string') {
114
+ return step;
115
+ }
116
+ if (step.description.trim() === '') {
117
+ return step.label;
118
+ }
119
+ return `${step.label}:${step.description}`;
120
+ }
121
+ export function stripCommandFromNextStep(step) {
122
+ const base = {
123
+ label: step.label,
124
+ description: step.description,
125
+ };
126
+ if (step.kind === 'uiAction' && step.uiAction) {
127
+ return {
128
+ kind: 'uiAction',
129
+ ...base,
130
+ uiAction: step.uiAction,
131
+ };
132
+ }
133
+ return {
134
+ kind: step.uiAction ? 'uiAction' : 'manual',
135
+ ...base,
136
+ ...(step.uiAction ? { uiAction: step.uiAction } : {}),
137
+ };
138
+ }
139
+ export function createLegacyCommandNextStep(command, options = {}) {
140
+ if (options.uiAction) {
141
+ return createUiActionNextStep(options.label ?? '继续处理', options.description ?? '可以进入下一步处理流程。', options.uiAction, command);
142
+ }
143
+ return createCliCommandNextStep(options.label ?? '继续处理', options.description ?? '可以进入下一步处理流程。', command);
144
+ }
145
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/output/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { CommandEvent, CommandNotice } from './model.js';
2
+ export declare function projectTuiNotice(notice: CommandNotice): string;
3
+ export interface RebuildProgressCurrent {
4
+ target: string;
5
+ phase: string;
6
+ }
7
+ export interface RebuildProgressSnapshot {
8
+ current?: RebuildProgressCurrent;
9
+ messages: string[];
10
+ startedAtMs?: number;
11
+ elapsedMs?: number;
12
+ }
13
+ export interface RebuildProgressFeed {
14
+ addEvent: (event: CommandEvent) => void;
15
+ addNotice: (notice: CommandNotice) => void;
16
+ setCurrent: (current: RebuildProgressCurrent, message?: string) => void;
17
+ clearCurrent: () => void;
18
+ get: () => RebuildProgressSnapshot;
19
+ subscribe: (listener: (snapshot: RebuildProgressSnapshot) => void) => () => void;
20
+ }
21
+ export declare function createRebuildProgressFeed(limit?: number): RebuildProgressFeed;
@@ -0,0 +1,138 @@
1
+ const ACTION_LABELS = {
2
+ 'operation.lock': '获取操作锁',
3
+ 'preflight.inspect': '检查当前组件',
4
+ 'stale.cleanup': '清理过期组件',
5
+ 'native.write': '写入平台插件',
6
+ 'artifacts.write': '写入插件文件',
7
+ 'active.prepare': '准备生命周期快照',
8
+ 'active.discard': '丢弃生命周期快照',
9
+ 'lifecycle.install': '运行安装生命周期',
10
+ 'lifecycle.upgrade': '运行升级生命周期',
11
+ 'lifecycle.uninstall': '运行卸载生命周期',
12
+ 'active.promote': '启用生命周期快照',
13
+ 'postcheck.inspect': '检查写入结果',
14
+ 'marketplace.commit': '提交 marketplace generation',
15
+ 'marketplace.rollback': '回滚 marketplace generation',
16
+ 'recovery.cleanup': '清理失败写入',
17
+ 'cleanup.owned': '清理 AW 组件',
18
+ 'active.read': '读取生命周期快照',
19
+ 'active.remove': '删除生命周期快照',
20
+ 'active.release': '释放生命周期快照',
21
+ 'operation.release': '释放操作锁',
22
+ };
23
+ const SAFE_PLUGIN_NAME_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
24
+ function safeNoticeSource(notice) {
25
+ const parts = [
26
+ notice.source?.platform === 'codex'
27
+ ? 'Codex'
28
+ : notice.source?.platform === 'claude' ? 'Claude Code' : undefined,
29
+ typeof notice.source?.plugin === 'string' && SAFE_PLUGIN_NAME_PATTERN.test(notice.source.plugin)
30
+ ? notice.source.plugin
31
+ : undefined,
32
+ notice.source?.scope === 'project'
33
+ ? '当前项目'
34
+ : notice.source?.scope === 'user' ? '当前用户' : undefined,
35
+ ].filter((part) => part !== undefined);
36
+ return parts.length > 0 ? parts.join(' / ') : undefined;
37
+ }
38
+ export function projectTuiNotice(notice) {
39
+ const source = safeNoticeSource(notice);
40
+ const kind = notice.level === 'warning' ? '警告' : '通知';
41
+ return `${kind}:${source ? `${source}:` : ''}收到${kind},详情请查看退出后的命令结果或调试日志。`;
42
+ }
43
+ function isRebuildActionEvent(event) {
44
+ if (event.type !== 'rebuild:action' || !event.source || !event.data)
45
+ return false;
46
+ const data = event.data;
47
+ return typeof event.source.plugin === 'string'
48
+ && SAFE_PLUGIN_NAME_PATTERN.test(event.source.plugin)
49
+ && (event.source.platform === 'codex' || event.source.platform === 'claude')
50
+ && (event.source.scope === 'user' || event.source.scope === 'project')
51
+ && typeof data.name === 'string'
52
+ && Object.hasOwn(ACTION_LABELS, data.name)
53
+ && (data.phase === 'start' || data.phase === 'success' || data.phase === 'failure');
54
+ }
55
+ function targetLabel(event) {
56
+ const platform = event.source.platform === 'codex' ? 'Codex' : 'Claude Code';
57
+ const scope = event.source.scope === 'project' ? '当前项目' : '当前用户';
58
+ return `${event.source.plugin} · ${platform}/${scope}`;
59
+ }
60
+ function actionLine(event) {
61
+ const target = targetLabel(event);
62
+ const action = ACTION_LABELS[event.data.name];
63
+ if (event.data.phase === 'start') {
64
+ return {
65
+ current: { target, phase: action },
66
+ line: `开始:${target} · ${action}`,
67
+ };
68
+ }
69
+ const duration = `${Math.max(0, Math.round(event.data.durationMs))}ms`;
70
+ if (event.data.phase === 'success') {
71
+ return {
72
+ current: { target, phase: `${action}已完成` },
73
+ line: `完成:${target} · ${action} · ${duration}`,
74
+ };
75
+ }
76
+ return {
77
+ current: { target, phase: `${action}失败` },
78
+ line: `失败:${target} · ${action}失败。 · ${duration} · 详细原因请查看退出后的命令结果或调试日志。`,
79
+ };
80
+ }
81
+ export function createRebuildProgressFeed(limit = 50) {
82
+ let snapshot = { messages: [] };
83
+ const seenNoticeKeys = new Set();
84
+ const noticeKeyOrder = [];
85
+ const listeners = new Set();
86
+ function publish(next) {
87
+ snapshot = {
88
+ ...(next.current ? { current: next.current } : {}),
89
+ messages: next.messages.slice(-limit),
90
+ };
91
+ for (const listener of listeners)
92
+ listener(snapshot);
93
+ }
94
+ return {
95
+ addEvent(event) {
96
+ if (!isRebuildActionEvent(event))
97
+ return;
98
+ const entry = actionLine(event);
99
+ publish({ current: entry.current, messages: [...snapshot.messages, entry.line] });
100
+ },
101
+ addNotice(notice) {
102
+ const line = projectTuiNotice(notice);
103
+ const key = notice.identity ?? [
104
+ notice.level,
105
+ notice.source?.platform ?? '',
106
+ notice.source?.plugin ?? '',
107
+ notice.source?.scope ?? '',
108
+ notice.message,
109
+ ].join(':');
110
+ if (seenNoticeKeys.has(key))
111
+ return;
112
+ seenNoticeKeys.add(key);
113
+ noticeKeyOrder.push(key);
114
+ while (noticeKeyOrder.length > limit) {
115
+ seenNoticeKeys.delete(noticeKeyOrder.shift());
116
+ }
117
+ publish({ ...snapshot, messages: [...snapshot.messages, line] });
118
+ },
119
+ setCurrent(current, message) {
120
+ publish({
121
+ current,
122
+ messages: message ? [...snapshot.messages, message] : snapshot.messages,
123
+ });
124
+ },
125
+ clearCurrent() {
126
+ seenNoticeKeys.clear();
127
+ noticeKeyOrder.length = 0;
128
+ publish({ messages: [] });
129
+ },
130
+ get: () => snapshot,
131
+ subscribe(listener) {
132
+ listeners.add(listener);
133
+ listener(snapshot);
134
+ return () => listeners.delete(listener);
135
+ },
136
+ };
137
+ }
138
+ //# sourceMappingURL=rebuild-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rebuild-progress.js","sourceRoot":"","sources":["../../../src/output/rebuild-progress.ts"],"names":[],"mappings":"AAGA,MAAM,aAAa,GAAsC;IACvD,gBAAgB,EAAE,OAAO;IACzB,mBAAmB,EAAE,QAAQ;IAC7B,eAAe,EAAE,QAAQ;IACzB,cAAc,EAAE,QAAQ;IACxB,iBAAiB,EAAE,QAAQ;IAC3B,gBAAgB,EAAE,UAAU;IAC5B,gBAAgB,EAAE,UAAU;IAC5B,mBAAmB,EAAE,UAAU;IAC/B,mBAAmB,EAAE,UAAU;IAC/B,qBAAqB,EAAE,UAAU;IACjC,gBAAgB,EAAE,UAAU;IAC5B,mBAAmB,EAAE,QAAQ;IAC7B,oBAAoB,EAAE,2BAA2B;IACjD,sBAAsB,EAAE,2BAA2B;IACnD,kBAAkB,EAAE,QAAQ;IAC5B,eAAe,EAAE,UAAU;IAC3B,aAAa,EAAE,UAAU;IACzB,eAAe,EAAE,UAAU;IAC3B,gBAAgB,EAAE,UAAU;IAC5B,mBAAmB,EAAE,OAAO;CAC7B,CAAC;AAEF,MAAM,wBAAwB,GAAG,4BAA4B,CAAC;AAE9D,SAAS,gBAAgB,CAAC,MAAqB;IAC7C,MAAM,KAAK,GAAG;QACZ,MAAM,CAAC,MAAM,EAAE,QAAQ,KAAK,OAAO;YACjC,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QACpE,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,KAAK,QAAQ,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9F,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;YACtB,CAAC,CAAC,SAAS;QACb,MAAM,CAAC,MAAM,EAAE,KAAK,KAAK,SAAS;YAChC,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KACzD,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAqB;IACpD,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,OAAO,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,sBAAsB,CAAC;AAC9E,CAAC;AAuBD,SAAS,oBAAoB,CAAC,KAAmB;IAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAClF,MAAM,IAAI,GAAG,KAAK,CAAC,IAA2C,CAAC;IAC/D,OAAO,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ;WACzC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;WAClD,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;WACzE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC;WACnE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;WAC7B,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC;WACvC,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB;IAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;IAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IACjE,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB;IAC3C,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO;YACL,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAClC,IAAI,EAAE,MAAM,MAAM,MAAM,MAAM,EAAE;SACjC,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IACvE,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO;YACL,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,EAAE;YAC1C,IAAI,EAAE,MAAM,MAAM,MAAM,MAAM,MAAM,QAAQ,EAAE;SAC/C,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,EAAE;QACzC,IAAI,EAAE,MAAM,MAAM,MAAM,MAAM,SAAS,QAAQ,0BAA0B;KAC1E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAK,GAAG,EAAE;IAClD,IAAI,QAAQ,GAA4B,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACzD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,GAAG,EAA4C,CAAC;IAEtE,SAAS,OAAO,CAAC,IAA6B;QAC5C,QAAQ,GAAG;YACT,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;SACtC,CAAC;QACF,KAAK,MAAM,QAAQ,IAAI,SAAS;YAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,OAAO;QACL,QAAQ,CAAC,KAAK;YACZ,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;gBAAE,OAAO;YACzC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAChC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,SAAS,CAAC,MAAM;YACd,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,IAAI;gBAC7B,MAAM,CAAC,KAAK;gBACZ,MAAM,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE;gBAC7B,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE;gBAC3B,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;gBAC1B,MAAM,CAAC,OAAO;aACf,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO;YACpC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO,cAAc,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;gBACrC,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAG,CAAC,CAAC;YACjD,CAAC;YACD,OAAO,CAAC,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,UAAU,CAAC,OAAO,EAAE,OAAO;YACzB,OAAO,CAAC;gBACN,OAAO;gBACP,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ;aACxE,CAAC,CAAC;QACL,CAAC;QACD,YAAY;YACV,cAAc,CAAC,KAAK,EAAE,CAAC;YACvB,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1B,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ;QACnB,SAAS,CAAC,QAAQ;YAChB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACnB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function redactString(value: string): string;
2
+ export declare function redactValue(value: unknown, key?: string, seen?: WeakSet<object>): unknown;
3
+ export declare function stringifyRedacted(value: unknown): string;
@@ -0,0 +1,39 @@
1
+ const SENSITIVE_KEY_PATTERN = /(token|password|passwd|secret|authorization|cookie|api[_-]?key|access[_-]?key|private[_-]?key|credential|session)/i;
2
+ const STRING_REDACTIONS = [
3
+ [/(authorization\s*[:=]\s*)(bearer\s+)?[^\s,;]+/gi, '$1$2[REDACTED]'],
4
+ [/(cookie\s*[:=]\s*)[^\r\n]+/gi, '$1[REDACTED]'],
5
+ [/((?:token|password|passwd|secret|api[_-]?key|access[_-]?key|private[_-]?key|credential)\s*[:=]\s*)[^\s,;&"']+/gi, '$1[REDACTED]'],
6
+ [/((?:TOKEN|PASSWORD|PASSWD|SECRET|API_KEY|ACCESS_KEY|PRIVATE_KEY|CREDENTIAL)=)[^\s,;&"']+/g, '$1[REDACTED]'],
7
+ ];
8
+ function isSensitiveKey(key) {
9
+ return key !== undefined && SENSITIVE_KEY_PATTERN.test(key);
10
+ }
11
+ export function redactString(value) {
12
+ return STRING_REDACTIONS.reduce((next, [pattern, replacement]) => next.replace(pattern, replacement), value);
13
+ }
14
+ export function redactValue(value, key, seen = new WeakSet()) {
15
+ if (isSensitiveKey(key)) {
16
+ return '[REDACTED]';
17
+ }
18
+ if (typeof value === 'string') {
19
+ return redactString(value);
20
+ }
21
+ if (value === null || typeof value !== 'object') {
22
+ return value;
23
+ }
24
+ if (seen.has(value)) {
25
+ return '[Circular]';
26
+ }
27
+ seen.add(value);
28
+ if (Array.isArray(value)) {
29
+ return value.map((entry) => redactValue(entry, undefined, seen));
30
+ }
31
+ return Object.fromEntries(Object.entries(value).map(([entryKey, entryValue]) => [
32
+ entryKey,
33
+ redactValue(entryValue, entryKey, seen),
34
+ ]));
35
+ }
36
+ export function stringifyRedacted(value) {
37
+ return JSON.stringify(redactValue(value));
38
+ }
39
+ //# sourceMappingURL=redact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact.js","sourceRoot":"","sources":["../../../src/output/redact.ts"],"names":[],"mappings":"AAAA,MAAM,qBAAqB,GACzB,oHAAoH,CAAC;AAEvH,MAAM,iBAAiB,GAA4B;IACjD,CAAC,iDAAiD,EAAE,gBAAgB,CAAC;IACrE,CAAC,8BAA8B,EAAE,cAAc,CAAC;IAChD,CAAC,iHAAiH,EAAE,cAAc,CAAC;IACnI,CAAC,2FAA2F,EAAE,cAAc,CAAC;CAC9G,CAAC;AAEF,SAAS,cAAc,CAAC,GAAuB;IAC7C,OAAO,GAAG,KAAK,SAAS,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,iBAAiB,CAAC,MAAM,CAC7B,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,EACpE,KAAK,CACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,GAAY,EAAE,OAAO,IAAI,OAAO,EAAU;IACpF,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEhB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;QAC/E,QAAQ;QACR,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC;KACxC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { CliIo, CommandDiagnostics } from '../commands/runtime.js';
2
+ import type { CommandNotice, CommandReporter } from './model.js';
3
+ export declare function formatNotice(notice: CommandNotice): string;
4
+ export declare function formatWarningText(warning: string): string;
5
+ export declare function formatWarnings(warnings: string[], options?: {
6
+ actionableOnly?: boolean;
7
+ }): string[];
8
+ export declare function createIoReporter(io: CliIo, diagnostics: CommandDiagnostics): CommandReporter;
9
+ export declare function createNoopReporter(): CommandReporter;
@@ -0,0 +1,133 @@
1
+ import { redactValue, stringifyRedacted } from './redact.js';
2
+ const PLATFORM_LABELS = {
3
+ codex: 'Codex',
4
+ claude: 'Claude Code',
5
+ };
6
+ function sanitizeHumanText(text) {
7
+ return text
8
+ .replaceAll('repo-managed', '当前仓库文件')
9
+ .replaceAll('app-server', '本地服务')
10
+ .replaceAll('RPC', '接口调用')
11
+ .replaceAll('rpc', '接口调用')
12
+ .replaceAll('marketplace', '插件目录')
13
+ .replaceAll('cache', '本地缓存')
14
+ .replaceAll('healthSource', '状态来源')
15
+ .replaceAll('config health', '配置状态')
16
+ .replaceAll('script health', '脚本状态')
17
+ .replaceAll('project scope', '当前项目')
18
+ .replaceAll('user scope', '当前用户');
19
+ }
20
+ function noticeIdentity(notice) {
21
+ return notice.identity ?? [
22
+ notice.level,
23
+ notice.source?.platform ?? '',
24
+ notice.source?.plugin ?? '',
25
+ notice.source?.scope ?? '',
26
+ notice.message,
27
+ ].join(':');
28
+ }
29
+ function formatSource(notice) {
30
+ const parts = [
31
+ notice.source?.platform ? PLATFORM_LABELS[notice.source.platform] ?? notice.source.platform : undefined,
32
+ notice.source?.plugin,
33
+ notice.source?.scope ? (notice.source.scope === 'project' ? '当前项目' : '当前用户') : undefined,
34
+ ].filter(Boolean);
35
+ return parts.length > 0 ? `${parts.join(' / ')}:` : '';
36
+ }
37
+ function formatEvent(event) {
38
+ const data = event.data ? ` ${stringifyRedacted(event.data)}` : '';
39
+ const message = event.message ? `:${event.message}` : '';
40
+ return `调试:${event.type}${message}${data}`;
41
+ }
42
+ function warningPrefix(level) {
43
+ return level === 'warning' ? '注意:' : '';
44
+ }
45
+ export function formatNotice(notice) {
46
+ const source = formatSource(notice);
47
+ const message = notice.level === 'warning'
48
+ ? formatWarningText(notice.message)
49
+ : notice.message;
50
+ return `${warningPrefix(notice.level)}${source}${message}`;
51
+ }
52
+ function translateTrustWarning(message) {
53
+ if (message === '当前 repo trust 状态未知,project scope 会话可见性无法确定。' ||
54
+ message === '当前 repo trust 状态未知,部分 project scope 会话可见性无法确定。') {
55
+ return 'Codex 已写入当前仓库需要的项目文件;其中受信任状态影响的配置,在仓库被 Codex 信任前可能不会进入会话。';
56
+ }
57
+ if (message === '当前 repo 处于 untrusted 状态,project scope 产物不会进入会话。' ||
58
+ message === '当前 repo 处于 untrusted 状态,部分 project scope 产物不会进入会话。') {
59
+ return 'Codex 已写入当前仓库需要的项目文件;其中受信任状态影响的配置,在仓库被 Codex 信任前不会进入会话。';
60
+ }
61
+ return null;
62
+ }
63
+ export function formatWarningText(warning) {
64
+ const sourceMatch = warning.match(/^\[(codex|claude)\/([^\]]+)\]\s*(.+)$/);
65
+ if (sourceMatch) {
66
+ const [, platform, pluginName, rawMessage] = sourceMatch;
67
+ const translated = translateTrustWarning(rawMessage) ??
68
+ rawMessage;
69
+ return sanitizeHumanText(`${PLATFORM_LABELS[platform] ?? platform} / ${pluginName}:${translated}`);
70
+ }
71
+ return sanitizeHumanText(translateTrustWarning(warning) ??
72
+ warning
73
+ .replaceAll('plugin / marketplace', '插件 / 插件目录'));
74
+ }
75
+ function isActionableWarning(formattedWarning) {
76
+ return /请|失败|异常恢复|不会进入会话|可能不会进入会话|缺少|无法|重试|跳过/.test(formattedWarning);
77
+ }
78
+ export function formatWarnings(warnings, options = {}) {
79
+ const seen = new Set();
80
+ const lines = [];
81
+ for (const warning of warnings) {
82
+ const formatted = `注意:${formatWarningText(warning)}`;
83
+ if (options.actionableOnly && !isActionableWarning(formatted)) {
84
+ continue;
85
+ }
86
+ if (seen.has(formatted)) {
87
+ continue;
88
+ }
89
+ seen.add(formatted);
90
+ lines.push(formatted);
91
+ }
92
+ return lines;
93
+ }
94
+ export function createIoReporter(io, diagnostics) {
95
+ const seenNotices = new Set();
96
+ return {
97
+ event: (event) => {
98
+ if (diagnostics.verbose) {
99
+ io.stderr(`${formatEvent(event)}\n`);
100
+ }
101
+ },
102
+ notice: (notice) => {
103
+ if (notice.level === 'debug' && !diagnostics.verbose) {
104
+ return;
105
+ }
106
+ const identity = noticeIdentity(notice);
107
+ if (seenNotices.has(identity)) {
108
+ return;
109
+ }
110
+ seenNotices.add(identity);
111
+ const target = notice.target ?? (notice.level === 'warning' ? 'stderr' : 'stdout');
112
+ const line = formatNotice({
113
+ ...notice,
114
+ message: typeof notice.message === 'string'
115
+ ? notice.message
116
+ : String(redactValue(notice.message)),
117
+ });
118
+ if (target === 'stderr') {
119
+ io.stderr(`${line}\n`);
120
+ }
121
+ else {
122
+ io.stdout(`${line}\n`);
123
+ }
124
+ },
125
+ };
126
+ }
127
+ export function createNoopReporter() {
128
+ return {
129
+ event: () => { },
130
+ notice: () => { },
131
+ };
132
+ }
133
+ //# sourceMappingURL=reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../../src/output/reporter.ts"],"names":[],"mappings":"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"}