agents-inc 0.150.0 → 0.152.0

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 (255) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/{chunk-FWT3CBLL.js → chunk-5GUOIJSG.js} +3 -7
  3. package/dist/{chunk-FWT3CBLL.js.map → chunk-5GUOIJSG.js.map} +1 -1
  4. package/dist/{chunk-MC5DUZ3V.js → chunk-5UWKOOIS.js} +6 -26
  5. package/dist/chunk-5UWKOOIS.js.map +1 -0
  6. package/dist/{chunk-O5ASLZ2K.js → chunk-76ADG7LQ.js} +1 -5
  7. package/dist/{chunk-O5ASLZ2K.js.map → chunk-76ADG7LQ.js.map} +1 -1
  8. package/dist/{chunk-7URSGJLE.js → chunk-BNSRA6HL.js} +13 -18
  9. package/dist/{chunk-7URSGJLE.js.map → chunk-BNSRA6HL.js.map} +1 -1
  10. package/dist/{chunk-FYPUUYSG.js → chunk-DTSG5XZB.js} +3 -7
  11. package/dist/{chunk-FYPUUYSG.js.map → chunk-DTSG5XZB.js.map} +1 -1
  12. package/dist/{chunk-YKKIJHZB.js → chunk-E5X6RJ4E.js} +5 -15
  13. package/dist/chunk-E5X6RJ4E.js.map +1 -0
  14. package/dist/{chunk-KH7MOIM5.js → chunk-EEPELKOM.js} +3665 -3737
  15. package/dist/chunk-EEPELKOM.js.map +1 -0
  16. package/dist/{chunk-NIKUMXE7.js → chunk-F7T5AFFN.js} +1 -5
  17. package/dist/{chunk-NIKUMXE7.js.map → chunk-F7T5AFFN.js.map} +1 -1
  18. package/dist/{chunk-4GL2F5AB.js → chunk-FVDKAVOL.js} +57 -48
  19. package/dist/chunk-FVDKAVOL.js.map +1 -0
  20. package/dist/{chunk-UZRISDBZ.js → chunk-GRVKW3CC.js} +2 -6
  21. package/dist/{chunk-UZRISDBZ.js.map → chunk-GRVKW3CC.js.map} +1 -1
  22. package/dist/{chunk-CDMHSHBN.js → chunk-IHUY4M22.js} +4 -8
  23. package/dist/{chunk-CDMHSHBN.js.map → chunk-IHUY4M22.js.map} +1 -1
  24. package/dist/{chunk-OZZGXBCN.js → chunk-IUQBOCSU.js} +1 -5
  25. package/dist/{chunk-OZZGXBCN.js.map → chunk-IUQBOCSU.js.map} +1 -1
  26. package/dist/{chunk-LYYXX2W5.js → chunk-J27W6TXS.js} +4 -6
  27. package/dist/{chunk-LYYXX2W5.js.map → chunk-J27W6TXS.js.map} +1 -1
  28. package/dist/chunk-JFLVEFFP.js +16 -0
  29. package/dist/chunk-JFLVEFFP.js.map +1 -0
  30. package/dist/{chunk-4LPJZNT7.js → chunk-KFB5CRXZ.js} +7 -12
  31. package/dist/{chunk-4LPJZNT7.js.map → chunk-KFB5CRXZ.js.map} +1 -1
  32. package/dist/{chunk-SYUOXSPU.js → chunk-KR65TPKC.js} +168 -14
  33. package/dist/chunk-KR65TPKC.js.map +1 -0
  34. package/dist/{chunk-KOPEM3Q7.js → chunk-KXYVJGJP.js} +2 -6
  35. package/dist/{chunk-KOPEM3Q7.js.map → chunk-KXYVJGJP.js.map} +1 -1
  36. package/dist/{chunk-ZHTXPFDK.js → chunk-L7SZXUBJ.js} +9 -14
  37. package/dist/{chunk-ZHTXPFDK.js.map → chunk-L7SZXUBJ.js.map} +1 -1
  38. package/dist/{chunk-LRYNF3J7.js → chunk-LASI35KT.js} +4 -9
  39. package/dist/{chunk-LRYNF3J7.js.map → chunk-LASI35KT.js.map} +1 -1
  40. package/dist/{chunk-VG2TVBFN.js → chunk-LDP5ASDM.js} +2 -6
  41. package/dist/{chunk-VG2TVBFN.js.map → chunk-LDP5ASDM.js.map} +1 -1
  42. package/dist/{chunk-GRPSDKIS.js → chunk-LZ52XEPR.js} +4 -8
  43. package/dist/{chunk-GRPSDKIS.js.map → chunk-LZ52XEPR.js.map} +1 -1
  44. package/dist/{chunk-CFQT72MJ.js → chunk-M7HO7NBK.js} +4 -8
  45. package/dist/{chunk-CFQT72MJ.js.map → chunk-M7HO7NBK.js.map} +1 -1
  46. package/dist/{chunk-XA57SX4T.js → chunk-MJ2KHG24.js} +4 -8
  47. package/dist/{chunk-XA57SX4T.js.map → chunk-MJ2KHG24.js.map} +1 -1
  48. package/dist/{chunk-DAG2ULNF.js → chunk-MM7CTTAV.js} +2 -6
  49. package/dist/chunk-MM7CTTAV.js.map +1 -0
  50. package/dist/{chunk-F3756A5B.js → chunk-MQ7FLIYS.js} +2 -6
  51. package/dist/{chunk-F3756A5B.js.map → chunk-MQ7FLIYS.js.map} +1 -1
  52. package/dist/{chunk-NUIZ6ZUO.js → chunk-MVR3SYMN.js} +6 -8
  53. package/dist/chunk-MVR3SYMN.js.map +1 -0
  54. package/dist/{chunk-ZKJAJWK6.js → chunk-MWG4VU64.js} +12 -17
  55. package/dist/{chunk-ZKJAJWK6.js.map → chunk-MWG4VU64.js.map} +1 -1
  56. package/dist/{chunk-ES3NJZON.js → chunk-NR3OZGL4.js} +1 -5
  57. package/dist/{chunk-ES3NJZON.js.map → chunk-NR3OZGL4.js.map} +1 -1
  58. package/dist/{chunk-GYG5SE2D.js → chunk-ODNDXQH2.js} +2 -6
  59. package/dist/{chunk-GYG5SE2D.js.map → chunk-ODNDXQH2.js.map} +1 -1
  60. package/dist/{chunk-2RSNKBXC.js → chunk-P44SXVH3.js} +6 -10
  61. package/dist/{chunk-2RSNKBXC.js.map → chunk-P44SXVH3.js.map} +1 -1
  62. package/dist/{chunk-3LIU2ZEF.js → chunk-PMM2MYMA.js} +3 -16
  63. package/dist/{chunk-3LIU2ZEF.js.map → chunk-PMM2MYMA.js.map} +1 -1
  64. package/dist/{chunk-6I6RZHYP.js → chunk-PZIZNMHK.js} +24 -36
  65. package/dist/chunk-PZIZNMHK.js.map +1 -0
  66. package/dist/{chunk-C55DN7GE.js → chunk-Q2KG7UV3.js} +3 -5
  67. package/dist/chunk-Q2KG7UV3.js.map +1 -0
  68. package/dist/{chunk-QQLRX4KI.js → chunk-Q45ZU6HD.js} +2 -6
  69. package/dist/{chunk-QQLRX4KI.js.map → chunk-Q45ZU6HD.js.map} +1 -1
  70. package/dist/{chunk-HIPGKIT3.js → chunk-QRDTLVXG.js} +9 -14
  71. package/dist/{chunk-HIPGKIT3.js.map → chunk-QRDTLVXG.js.map} +1 -1
  72. package/dist/{chunk-VIFZ6NFH.js → chunk-QZZJFYUQ.js} +3 -7
  73. package/dist/{chunk-VIFZ6NFH.js.map → chunk-QZZJFYUQ.js.map} +1 -1
  74. package/dist/{chunk-E4FT2KFV.js → chunk-R5NOI2LP.js} +13 -17
  75. package/dist/{chunk-E4FT2KFV.js.map → chunk-R5NOI2LP.js.map} +1 -1
  76. package/dist/{chunk-DUVWGO6E.js → chunk-RNJWAKMO.js} +3 -7
  77. package/dist/{chunk-DUVWGO6E.js.map → chunk-RNJWAKMO.js.map} +1 -1
  78. package/dist/{chunk-N4IZ6GBO.js → chunk-SBHBBZKF.js} +7 -23
  79. package/dist/chunk-SBHBBZKF.js.map +1 -0
  80. package/dist/{chunk-EN2GCPW7.js → chunk-SKQWRUPX.js} +10 -14
  81. package/dist/{chunk-EN2GCPW7.js.map → chunk-SKQWRUPX.js.map} +1 -1
  82. package/dist/{chunk-DDG4F3FE.js → chunk-STMHDOZD.js} +4 -21
  83. package/dist/chunk-STMHDOZD.js.map +1 -0
  84. package/dist/{chunk-5K5RBRTD.js → chunk-SX5H6TSC.js} +7 -11
  85. package/dist/chunk-SX5H6TSC.js.map +1 -0
  86. package/dist/{chunk-RBHYLCUB.js → chunk-TJJPWUMA.js} +2 -6
  87. package/dist/{chunk-RBHYLCUB.js.map → chunk-TJJPWUMA.js.map} +1 -1
  88. package/dist/{chunk-IOJR5TOY.js → chunk-TSIU7DME.js} +1 -5
  89. package/dist/{chunk-IOJR5TOY.js.map → chunk-TSIU7DME.js.map} +1 -1
  90. package/dist/{chunk-RP7R73JO.js → chunk-TUPYW2IQ.js} +3 -7
  91. package/dist/{chunk-RP7R73JO.js.map → chunk-TUPYW2IQ.js.map} +1 -1
  92. package/dist/{chunk-YU2VGX5R.js → chunk-UBEDZ4FD.js} +1 -8
  93. package/dist/{chunk-YU2VGX5R.js.map → chunk-UBEDZ4FD.js.map} +1 -1
  94. package/dist/{chunk-VEP23B5W.js → chunk-VASLW636.js} +1 -5
  95. package/dist/{chunk-VEP23B5W.js.map → chunk-VASLW636.js.map} +1 -1
  96. package/dist/{chunk-PG4G4IIK.js → chunk-VY6MNOXL.js} +2 -6
  97. package/dist/{chunk-PG4G4IIK.js.map → chunk-VY6MNOXL.js.map} +1 -1
  98. package/dist/{chunk-IHO75PMZ.js → chunk-WBCPLH66.js} +15 -13
  99. package/dist/chunk-WBCPLH66.js.map +1 -0
  100. package/dist/{chunk-DJAZE4PD.js → chunk-WKTHWQKM.js} +297 -302
  101. package/dist/chunk-WKTHWQKM.js.map +1 -0
  102. package/dist/{chunk-RJN7W2C7.js → chunk-XHUODHZ4.js} +19 -25
  103. package/dist/{chunk-RJN7W2C7.js.map → chunk-XHUODHZ4.js.map} +1 -1
  104. package/dist/{chunk-KIR7VYQD.js → chunk-XVAQG2CV.js} +1 -5
  105. package/dist/{chunk-KIR7VYQD.js.map → chunk-XVAQG2CV.js.map} +1 -1
  106. package/dist/{chunk-P3PN5SVI.js → chunk-ZL7PFNHN.js} +2 -6
  107. package/dist/{chunk-P3PN5SVI.js.map → chunk-ZL7PFNHN.js.map} +1 -1
  108. package/dist/{chunk-ZDLTLNU2.js → chunk-ZPPHXXAP.js} +9 -15
  109. package/dist/{chunk-ZDLTLNU2.js.map → chunk-ZPPHXXAP.js.map} +1 -1
  110. package/dist/commands/build/marketplace.js +10 -15
  111. package/dist/commands/build/marketplace.js.map +1 -1
  112. package/dist/commands/build/plugins.js +9 -14
  113. package/dist/commands/build/plugins.js.map +1 -1
  114. package/dist/commands/compile.js +14 -19
  115. package/dist/commands/compile.js.map +1 -1
  116. package/dist/commands/doctor.js +13 -18
  117. package/dist/commands/doctor.js.map +1 -1
  118. package/dist/commands/edit.js +51 -55
  119. package/dist/commands/edit.js.map +1 -1
  120. package/dist/commands/eject.js +13 -18
  121. package/dist/commands/eject.js.map +1 -1
  122. package/dist/commands/import/skill.js +9 -14
  123. package/dist/commands/import/skill.js.map +1 -1
  124. package/dist/commands/init.js +50 -51
  125. package/dist/commands/list.js +14 -16
  126. package/dist/commands/list.js.map +1 -1
  127. package/dist/commands/new/agent.js +12 -16
  128. package/dist/commands/new/agent.js.map +1 -1
  129. package/dist/commands/new/marketplace.js +15 -20
  130. package/dist/commands/new/marketplace.js.map +1 -1
  131. package/dist/commands/new/skill.js +11 -13
  132. package/dist/commands/search.js +14 -19
  133. package/dist/commands/search.js.map +1 -1
  134. package/dist/commands/uninstall.js +17 -21
  135. package/dist/commands/uninstall.js.map +1 -1
  136. package/dist/commands/update.js +17 -21
  137. package/dist/commands/update.js.map +1 -1
  138. package/dist/commands/validate.js +10 -16
  139. package/dist/commands/validate.js.map +1 -1
  140. package/dist/components/common/confirm.js +1 -2
  141. package/dist/components/common/prompt-confirm.js +2 -2
  142. package/dist/components/common/select-list.js +3 -4
  143. package/dist/components/common/spinner.js +1 -2
  144. package/dist/components/wizard/category-grid.js +8 -9
  145. package/dist/components/wizard/checkbox-grid.js +6 -7
  146. package/dist/components/wizard/domain-selection.js +14 -15
  147. package/dist/components/wizard/run-wizard-session.js +40 -40
  148. package/dist/components/wizard/scroll-affordance.js +2 -3
  149. package/dist/components/wizard/search-modal.js +6 -7
  150. package/dist/components/wizard/selection-card.js +2 -3
  151. package/dist/components/wizard/skill-agent-summary.js +8 -9
  152. package/dist/components/wizard/source-grid.js +13 -14
  153. package/dist/components/wizard/stack-selection.js +12 -13
  154. package/dist/components/wizard/step-agents.js +14 -15
  155. package/dist/components/wizard/step-build.js +14 -15
  156. package/dist/components/wizard/step-confirm.js +13 -14
  157. package/dist/components/wizard/step-settings.js +11 -12
  158. package/dist/components/wizard/step-sources.js +20 -21
  159. package/dist/components/wizard/step-stack.js +13 -14
  160. package/dist/components/wizard/summary-panel.js +12 -13
  161. package/dist/components/wizard/toast.js +2 -3
  162. package/dist/components/wizard/wizard-layout.js +18 -19
  163. package/dist/components/wizard/wizard-tabs.js +8 -9
  164. package/dist/components/wizard/wizard.js +38 -39
  165. package/dist/config-exports.js +1 -7
  166. package/dist/config-exports.js.map +1 -1
  167. package/dist/copy-local-skills-6EMVN7RB.js +14 -0
  168. package/dist/hooks/init.js +50 -54
  169. package/dist/hooks/init.js.map +1 -1
  170. package/dist/index.js +0 -4
  171. package/dist/index.js.map +1 -1
  172. package/dist/load-agent-defs-BWOUVEAR.js +15 -0
  173. package/dist/{loader-E2ERJYVA.js → loader-5JP4S7CJ.js} +4 -5
  174. package/dist/recompile-project-agents-6DL45TDI.js +19 -0
  175. package/dist/{source-loader-VVHMQEX5.js → source-loader-MZYCPL2S.js} +7 -8
  176. package/dist/stores/wizard-store.js +7 -8
  177. package/package.json +22 -21
  178. package/dist/chunk-4GL2F5AB.js.map +0 -1
  179. package/dist/chunk-5K5RBRTD.js.map +0 -1
  180. package/dist/chunk-6I6RZHYP.js.map +0 -1
  181. package/dist/chunk-C55DN7GE.js.map +0 -1
  182. package/dist/chunk-DAG2ULNF.js.map +0 -1
  183. package/dist/chunk-DDG4F3FE.js.map +0 -1
  184. package/dist/chunk-DIBCRIMR.js +0 -36
  185. package/dist/chunk-DIBCRIMR.js.map +0 -1
  186. package/dist/chunk-DJAZE4PD.js.map +0 -1
  187. package/dist/chunk-EKWAUOQB.js +0 -96
  188. package/dist/chunk-EKWAUOQB.js.map +0 -1
  189. package/dist/chunk-I3XKEGHM.js +0 -16383
  190. package/dist/chunk-I3XKEGHM.js.map +0 -1
  191. package/dist/chunk-IHO75PMZ.js.map +0 -1
  192. package/dist/chunk-K3OU6TGX.js +0 -77
  193. package/dist/chunk-K3OU6TGX.js.map +0 -1
  194. package/dist/chunk-KH7MOIM5.js.map +0 -1
  195. package/dist/chunk-KSZ6PCY4.js +0 -43
  196. package/dist/chunk-KSZ6PCY4.js.map +0 -1
  197. package/dist/chunk-MC5DUZ3V.js.map +0 -1
  198. package/dist/chunk-N4IZ6GBO.js.map +0 -1
  199. package/dist/chunk-NUIZ6ZUO.js.map +0 -1
  200. package/dist/chunk-OA5SUEQD.js +0 -181
  201. package/dist/chunk-OA5SUEQD.js.map +0 -1
  202. package/dist/chunk-P56WJ5FA.js +0 -50
  203. package/dist/chunk-P56WJ5FA.js.map +0 -1
  204. package/dist/chunk-SYUOXSPU.js.map +0 -1
  205. package/dist/chunk-THKIOI32.js +0 -939
  206. package/dist/chunk-THKIOI32.js.map +0 -1
  207. package/dist/chunk-V7QOSGQA.js +0 -298
  208. package/dist/chunk-V7QOSGQA.js.map +0 -1
  209. package/dist/chunk-YKKIJHZB.js.map +0 -1
  210. package/dist/components/common/confirm.test.js +0 -203
  211. package/dist/components/common/confirm.test.js.map +0 -1
  212. package/dist/components/wizard/category-grid.test.js +0 -1253
  213. package/dist/components/wizard/category-grid.test.js.map +0 -1
  214. package/dist/components/wizard/checkbox-grid.test.js +0 -264
  215. package/dist/components/wizard/checkbox-grid.test.js.map +0 -1
  216. package/dist/components/wizard/search-modal.test.js +0 -212
  217. package/dist/components/wizard/search-modal.test.js.map +0 -1
  218. package/dist/components/wizard/source-grid.test.js +0 -1094
  219. package/dist/components/wizard/source-grid.test.js.map +0 -1
  220. package/dist/components/wizard/step-agents.test.js +0 -204
  221. package/dist/components/wizard/step-agents.test.js.map +0 -1
  222. package/dist/components/wizard/step-build.test.js +0 -552
  223. package/dist/components/wizard/step-build.test.js.map +0 -1
  224. package/dist/components/wizard/step-confirm.test.js +0 -744
  225. package/dist/components/wizard/step-confirm.test.js.map +0 -1
  226. package/dist/components/wizard/step-settings.test.js +0 -244
  227. package/dist/components/wizard/step-settings.test.js.map +0 -1
  228. package/dist/components/wizard/step-sources.test.js +0 -155
  229. package/dist/components/wizard/step-sources.test.js.map +0 -1
  230. package/dist/components/wizard/step-stack.test.js +0 -262
  231. package/dist/components/wizard/step-stack.test.js.map +0 -1
  232. package/dist/components/wizard/summary-panel.test.js +0 -317
  233. package/dist/components/wizard/summary-panel.test.js.map +0 -1
  234. package/dist/components/wizard/wizard-layout.test.js +0 -200
  235. package/dist/components/wizard/wizard-layout.test.js.map +0 -1
  236. package/dist/components/wizard/wizard-tabs.test.js +0 -290
  237. package/dist/components/wizard/wizard-tabs.test.js.map +0 -1
  238. package/dist/copy-local-skills-CA7P73RZ.js +0 -15
  239. package/dist/dist-VNJNNJK7.js +0 -550
  240. package/dist/dist-VNJNNJK7.js.map +0 -1
  241. package/dist/load-agent-defs-6MAY5ABI.js +0 -16
  242. package/dist/magic-string.es-5TV73NJD.js +0 -1316
  243. package/dist/magic-string.es-5TV73NJD.js.map +0 -1
  244. package/dist/recompile-project-agents-VYQJ6UZB.js +0 -20
  245. package/dist/source-manager-TPDXV5FO.js +0 -18
  246. package/dist/source-manager-TPDXV5FO.js.map +0 -1
  247. package/dist/stores/d227-same-scope-tombstone-duplicate.test.js +0 -118
  248. package/dist/stores/d227-same-scope-tombstone-duplicate.test.js.map +0 -1
  249. package/dist/stores/wizard-store.test.js +0 -3053
  250. package/dist/stores/wizard-store.test.js.map +0 -1
  251. /package/dist/{copy-local-skills-CA7P73RZ.js.map → copy-local-skills-6EMVN7RB.js.map} +0 -0
  252. /package/dist/{load-agent-defs-6MAY5ABI.js.map → load-agent-defs-BWOUVEAR.js.map} +0 -0
  253. /package/dist/{loader-E2ERJYVA.js.map → loader-5JP4S7CJ.js.map} +0 -0
  254. /package/dist/{recompile-project-agents-VYQJ6UZB.js.map → recompile-project-agents-6DL45TDI.js.map} +0 -0
  255. /package/dist/{source-loader-VVHMQEX5.js.map → source-loader-MZYCPL2S.js.map} +0 -0
@@ -1,744 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- ARROW_DOWN,
4
- ENTER,
5
- ESCAPE,
6
- RENDER_DELAY_MS,
7
- delay
8
- } from "../../chunk-KSZ6PCY4.js";
9
- import {
10
- render
11
- } from "../../chunk-EKWAUOQB.js";
12
- import {
13
- buildAgentConfigs,
14
- buildSkillConfigs
15
- } from "../../chunk-DIBCRIMR.js";
16
- import {
17
- WEB_PAIR_MATRIX,
18
- WEB_TRIO_MATRIX
19
- } from "../../chunk-THKIOI32.js";
20
- import "../../chunk-K3OU6TGX.js";
21
- import "../../chunk-V7QOSGQA.js";
22
- import {
23
- afterEach,
24
- beforeEach,
25
- describe,
26
- globalExpect,
27
- it,
28
- vi
29
- } from "../../chunk-I3XKEGHM.js";
30
- import "../../chunk-RJN7W2C7.js";
31
- import "../../chunk-ZKJAJWK6.js";
32
- import "../../chunk-RP7R73JO.js";
33
- import "../../chunk-E4FT2KFV.js";
34
- import "../../chunk-F3756A5B.js";
35
- import "../../chunk-RBHYLCUB.js";
36
- import "../../chunk-4GL2F5AB.js";
37
- import "../../chunk-EN2GCPW7.js";
38
- import "../../chunk-LRYNF3J7.js";
39
- import {
40
- StepConfirm
41
- } from "../../chunk-UZRISDBZ.js";
42
- import "../../chunk-ZHTXPFDK.js";
43
- import "../../chunk-IOJR5TOY.js";
44
- import "../../chunk-ZDLTLNU2.js";
45
- import "../../chunk-QQLRX4KI.js";
46
- import "../../chunk-7URSGJLE.js";
47
- import "../../chunk-NIKUMXE7.js";
48
- import "../../chunk-KOPEM3Q7.js";
49
- import "../../chunk-2RSNKBXC.js";
50
- import "../../chunk-DUVWGO6E.js";
51
- import "../../chunk-KIR7VYQD.js";
52
- import "../../chunk-HIPGKIT3.js";
53
- import "../../chunk-LYYXX2W5.js";
54
- import "../../chunk-5K5RBRTD.js";
55
- import "../../chunk-FWT3CBLL.js";
56
- import "../../chunk-XA57SX4T.js";
57
- import "../../chunk-FYPUUYSG.js";
58
- import "../../chunk-DAG2ULNF.js";
59
- import "../../chunk-VG2TVBFN.js";
60
- import "../../chunk-IHO75PMZ.js";
61
- import {
62
- SkillAgentSummary
63
- } from "../../chunk-GRPSDKIS.js";
64
- import {
65
- useWizardStore
66
- } from "../../chunk-MC5DUZ3V.js";
67
- import "../../chunk-P3PN5SVI.js";
68
- import "../../chunk-KH7MOIM5.js";
69
- import "../../chunk-3LIU2ZEF.js";
70
- import {
71
- initializeMatrix
72
- } from "../../chunk-DJAZE4PD.js";
73
- import "../../chunk-VEP23B5W.js";
74
- import {
75
- DEFAULT_PUBLIC_SOURCE_NAME
76
- } from "../../chunk-O5ASLZ2K.js";
77
- import "../../chunk-YU2VGX5R.js";
78
- import {
79
- init_esm_shims
80
- } from "../../chunk-P56WJ5FA.js";
81
-
82
- // src/cli/components/wizard/step-confirm.test.tsx
83
- init_esm_shims();
84
- import { jsx } from "react/jsx-runtime";
85
- describe("StepConfirm component", () => {
86
- let cleanup;
87
- beforeEach(() => {
88
- initializeMatrix(WEB_PAIR_MATRIX);
89
- useWizardStore.setState({
90
- installedSkillConfigs: null,
91
- installedAgentConfigs: null,
92
- isInitMode: false
93
- });
94
- });
95
- afterEach(() => {
96
- cleanup?.();
97
- cleanup = void 0;
98
- });
99
- describe("skills tables", () => {
100
- it("should show global-scoped skills under Global scope label", () => {
101
- useWizardStore.setState({
102
- skillConfigs: buildSkillConfigs(["web-framework-react"], { scope: "global" })
103
- });
104
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
105
- cleanup = unmount;
106
- const output = lastFrame();
107
- globalExpect(output).toContain("Global");
108
- globalExpect(output).toContain("React");
109
- });
110
- it("should show project-scoped skills under Project scope label", () => {
111
- useWizardStore.setState({
112
- skillConfigs: buildSkillConfigs(["web-framework-react"], { scope: "project" })
113
- });
114
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
115
- cleanup = unmount;
116
- const output = lastFrame();
117
- globalExpect(output).toContain("Project");
118
- globalExpect(output).toContain("React");
119
- });
120
- it("should show both scope labels when both scopes have skills", () => {
121
- useWizardStore.setState({
122
- skillConfigs: [
123
- ...buildSkillConfigs(["web-framework-react"], { scope: "project" }),
124
- ...buildSkillConfigs(["web-state-zustand"], { scope: "global" })
125
- ]
126
- });
127
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
128
- cleanup = unmount;
129
- const output = lastFrame();
130
- globalExpect(output).toContain("Project");
131
- globalExpect(output).toContain("Global");
132
- });
133
- it("should not show Project scope label when no project-scoped skills", () => {
134
- useWizardStore.setState({
135
- skillConfigs: buildSkillConfigs(["web-framework-react"], { scope: "global" })
136
- });
137
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
138
- cleanup = unmount;
139
- const output = lastFrame();
140
- globalExpect(output).not.toContain("Project");
141
- globalExpect(output).toContain("Global");
142
- });
143
- it("should not show Global scope label when no global-scoped skills", () => {
144
- useWizardStore.setState({
145
- skillConfigs: buildSkillConfigs(["web-framework-react"], { scope: "project" })
146
- });
147
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
148
- cleanup = unmount;
149
- const output = lastFrame();
150
- globalExpect(output).toContain("Project");
151
- globalExpect(output).not.toContain("Global");
152
- });
153
- });
154
- describe("panel header", () => {
155
- it("should render the marketplace and stack rows above the summary", () => {
156
- useWizardStore.setState({
157
- skillConfigs: buildSkillConfigs(["web-framework-react"], {
158
- source: DEFAULT_PUBLIC_SOURCE_NAME
159
- })
160
- });
161
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
162
- cleanup = unmount;
163
- const output = lastFrame();
164
- globalExpect(output).toContain("Marketplace Agents Inc");
165
- globalExpect(output).toContain("Stack none");
166
- globalExpect(output).toContain("React");
167
- });
168
- });
169
- describe("eject icon display", () => {
170
- it("should show eject icon for eject-source skills", () => {
171
- useWizardStore.setState({
172
- skillConfigs: buildSkillConfigs(["web-framework-react"], { source: "eject" })
173
- });
174
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
175
- cleanup = unmount;
176
- globalExpect(lastFrame()).toContain("\u23CF");
177
- });
178
- it("should not show eject icon for plugin-source skills", () => {
179
- useWizardStore.setState({
180
- skillConfigs: buildSkillConfigs(["web-framework-react"], { source: "agents-inc" })
181
- });
182
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
183
- cleanup = unmount;
184
- globalExpect(lastFrame()).not.toContain("\u23CF");
185
- });
186
- });
187
- describe("new item markers - init mode (no prior installation)", () => {
188
- it("should show + prefix when installedSkillConfigs is absent", () => {
189
- useWizardStore.setState({
190
- skillConfigs: buildSkillConfigs(["web-framework-react", "web-state-zustand"])
191
- });
192
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
193
- cleanup = unmount;
194
- const output = lastFrame();
195
- globalExpect(output).toContain("+ React");
196
- globalExpect(output).toContain("+ Zustand");
197
- globalExpect(output).not.toContain("\u2022 React");
198
- globalExpect(output).not.toContain("\u2022 Zustand");
199
- });
200
- it("should show + prefix for agents when installedAgentConfigs is absent", () => {
201
- useWizardStore.setState({ agentConfigs: buildAgentConfigs(["web-developer"]) });
202
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
203
- cleanup = unmount;
204
- const output = lastFrame();
205
- globalExpect(output).toContain("+ web-developer");
206
- globalExpect(output).not.toContain("\u2022 web-developer");
207
- });
208
- });
209
- describe("new item markers - edit mode", () => {
210
- it("should show + for a skill not in installedSkillConfigs", () => {
211
- useWizardStore.setState({
212
- installedSkillConfigs: [],
213
- skillConfigs: buildSkillConfigs(["web-framework-react"])
214
- });
215
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
216
- cleanup = unmount;
217
- globalExpect(lastFrame()).toContain("+ React");
218
- });
219
- it("should show bullet for a skill that IS in installedSkillConfigs", () => {
220
- const configs = buildSkillConfigs(["web-framework-react"]);
221
- useWizardStore.setState({ installedSkillConfigs: configs, skillConfigs: configs });
222
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
223
- cleanup = unmount;
224
- const output = lastFrame();
225
- globalExpect(output).toContain("\u2022 React");
226
- globalExpect(output).not.toContain("+ React");
227
- });
228
- it("should show mix of + and bullet in same scope", () => {
229
- const existingConfigs = buildSkillConfigs(["web-framework-react"]);
230
- useWizardStore.setState({
231
- installedSkillConfigs: existingConfigs,
232
- skillConfigs: [...existingConfigs, ...buildSkillConfigs(["web-state-zustand"])]
233
- });
234
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
235
- cleanup = unmount;
236
- const output = lastFrame();
237
- globalExpect(output).toContain("+ Zustand");
238
- globalExpect(output).toContain("\u2022 React");
239
- globalExpect(output).not.toContain("+ React");
240
- });
241
- it("should show + on new agent when installedAgentConfigs is empty", () => {
242
- useWizardStore.setState({
243
- installedAgentConfigs: [],
244
- agentConfigs: buildAgentConfigs(["web-developer"])
245
- });
246
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
247
- cleanup = unmount;
248
- globalExpect(lastFrame()).toContain("+ web-developer");
249
- });
250
- it("should show bullet on agent that was already in installedAgentConfigs", () => {
251
- const agents = buildAgentConfigs(["web-developer"]);
252
- useWizardStore.setState({ installedAgentConfigs: agents, agentConfigs: agents });
253
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
254
- cleanup = unmount;
255
- const output = lastFrame();
256
- globalExpect(output).toContain("\u2022 web-developer");
257
- globalExpect(output).not.toContain("+ web-developer");
258
- });
259
- });
260
- describe("removed item markers - edit mode", () => {
261
- it("should show - for a skill in installedSkillConfigs but not in skillConfigs", () => {
262
- useWizardStore.setState({
263
- installedSkillConfigs: buildSkillConfigs(["web-framework-react"])
264
- });
265
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
266
- cleanup = unmount;
267
- globalExpect(lastFrame()).toContain("- React");
268
- });
269
- it("should show - for a removed agent", () => {
270
- useWizardStore.setState({
271
- installedAgentConfigs: buildAgentConfigs(["web-developer"])
272
- });
273
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
274
- cleanup = unmount;
275
- globalExpect(lastFrame()).toContain("- web-developer");
276
- });
277
- it("should show mix of bullet and - items", () => {
278
- useWizardStore.setState({
279
- installedSkillConfigs: buildSkillConfigs(["web-framework-react", "web-state-zustand"]),
280
- skillConfigs: buildSkillConfigs(["web-framework-react"])
281
- });
282
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
283
- cleanup = unmount;
284
- const output = lastFrame();
285
- globalExpect(output).toContain("\u2022 React");
286
- globalExpect(output).not.toContain("+ React");
287
- globalExpect(output).not.toContain("- React");
288
- globalExpect(output).toContain("- Zustand");
289
- });
290
- it("should show scope heading when all skills in scope are removed", () => {
291
- useWizardStore.setState({
292
- installedSkillConfigs: buildSkillConfigs(["web-framework-react"], { scope: "global" })
293
- });
294
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
295
- cleanup = unmount;
296
- globalExpect(lastFrame()).toContain("Global");
297
- });
298
- });
299
- describe("init mode \u2014 global pre-selections should not show as removed", () => {
300
- it("should NOT show - for a deselected global skill during init", () => {
301
- useWizardStore.setState({
302
- isInitMode: true,
303
- installedSkillConfigs: buildSkillConfigs(["web-framework-react"], { scope: "global" })
304
- });
305
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
306
- cleanup = unmount;
307
- globalExpect(lastFrame()).not.toContain("React");
308
- });
309
- it("should NOT show - for a deselected global agent during init", () => {
310
- useWizardStore.setState({
311
- isInitMode: true,
312
- installedAgentConfigs: buildAgentConfigs(["web-developer"], { scope: "global" })
313
- });
314
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
315
- cleanup = unmount;
316
- globalExpect(lastFrame()).not.toContain("web-developer");
317
- });
318
- it("should still show - for removed project skills during init", () => {
319
- useWizardStore.setState({
320
- isInitMode: true,
321
- installedSkillConfigs: buildSkillConfigs(["web-framework-react"], { scope: "project" })
322
- });
323
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
324
- cleanup = unmount;
325
- globalExpect(lastFrame()).toContain("- React");
326
- });
327
- it("should show - for deselected global skill in edit mode (isInitMode=false)", () => {
328
- useWizardStore.setState({
329
- isInitMode: false,
330
- installedSkillConfigs: buildSkillConfigs(["web-framework-react"], { scope: "global" })
331
- });
332
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
333
- cleanup = unmount;
334
- globalExpect(lastFrame()).toContain("- React");
335
- });
336
- });
337
- describe("agents tables", () => {
338
- it("should show global agents under Global scope label", () => {
339
- useWizardStore.setState({
340
- agentConfigs: buildAgentConfigs(["web-developer"], { scope: "global" })
341
- });
342
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
343
- cleanup = unmount;
344
- const output = lastFrame();
345
- globalExpect(output).toContain("Global");
346
- globalExpect(output).toContain("web-developer");
347
- });
348
- it("should show project agents under Project scope label", () => {
349
- useWizardStore.setState({
350
- agentConfigs: buildAgentConfigs(["web-developer"], { scope: "project" })
351
- });
352
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
353
- cleanup = unmount;
354
- const output = lastFrame();
355
- globalExpect(output).toContain("Project");
356
- globalExpect(output).toContain("web-developer");
357
- });
358
- });
359
- describe("keyboard navigation", () => {
360
- it("should call onComplete when Enter is pressed", async () => {
361
- const onComplete = vi.fn();
362
- useWizardStore.setState({ skillConfigs: buildSkillConfigs(["web-framework-react"]) });
363
- const { stdin, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete, onBack: vi.fn() }));
364
- cleanup = unmount;
365
- await delay(RENDER_DELAY_MS);
366
- await stdin.write(ENTER);
367
- await delay(RENDER_DELAY_MS);
368
- globalExpect(onComplete).toHaveBeenCalled();
369
- });
370
- it("should call onBack when Escape is pressed", async () => {
371
- const onComplete = vi.fn();
372
- const onBack = vi.fn();
373
- useWizardStore.setState({ skillConfigs: buildSkillConfigs(["web-framework-react"]) });
374
- const { stdin, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete, onBack }));
375
- cleanup = unmount;
376
- await delay(RENDER_DELAY_MS);
377
- await stdin.write(ESCAPE);
378
- await delay(RENDER_DELAY_MS);
379
- globalExpect(onBack).toHaveBeenCalled();
380
- globalExpect(onComplete).not.toHaveBeenCalled();
381
- });
382
- it("should not leave or complete the step when the panel's scroll keys are pressed", async () => {
383
- const onComplete = vi.fn();
384
- const onBack = vi.fn();
385
- useWizardStore.setState({ skillConfigs: buildSkillConfigs(["web-framework-react"]) });
386
- const { stdin, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete, onBack }));
387
- cleanup = unmount;
388
- await delay(RENDER_DELAY_MS);
389
- await stdin.write(ARROW_DOWN);
390
- await delay(RENDER_DELAY_MS);
391
- globalExpect(onComplete).not.toHaveBeenCalled();
392
- globalExpect(onBack).not.toHaveBeenCalled();
393
- });
394
- });
395
- describe("excluded global items", () => {
396
- it("should show excluded global skill in Global section alongside active skills", () => {
397
- useWizardStore.setState({
398
- installedSkillConfigs: buildSkillConfigs(["web-framework-react", "web-state-zustand"], {
399
- scope: "global"
400
- }),
401
- skillConfigs: [
402
- ...buildSkillConfigs(["web-framework-react"], { scope: "global" }),
403
- ...buildSkillConfigs(["web-state-zustand"], { scope: "global", excluded: true })
404
- ]
405
- });
406
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
407
- cleanup = unmount;
408
- const output = lastFrame();
409
- globalExpect(output).toContain("Global");
410
- globalExpect(output).toContain("React");
411
- globalExpect(output).toContain("Zustand");
412
- });
413
- it("should not hide excluded global skill from output", () => {
414
- useWizardStore.setState({
415
- installedSkillConfigs: buildSkillConfigs(["web-framework-react"], { scope: "global" }),
416
- skillConfigs: buildSkillConfigs(["web-framework-react"], {
417
- scope: "global",
418
- excluded: true
419
- })
420
- });
421
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
422
- cleanup = unmount;
423
- globalExpect(lastFrame()).toContain("React");
424
- });
425
- it("should show excluded global agent in Global section", () => {
426
- useWizardStore.setState({
427
- installedAgentConfigs: buildAgentConfigs(["web-developer"], { scope: "global" }),
428
- agentConfigs: buildAgentConfigs(["web-developer"], { scope: "global", excluded: true })
429
- });
430
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
431
- cleanup = unmount;
432
- const output = lastFrame();
433
- globalExpect(output).toContain("Global");
434
- globalExpect(output).toContain("web-developer");
435
- });
436
- it("should show Global section when only excluded global skills exist", () => {
437
- useWizardStore.setState({
438
- installedSkillConfigs: [],
439
- skillConfigs: buildSkillConfigs(["web-framework-react"], {
440
- scope: "global",
441
- excluded: true
442
- })
443
- });
444
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
445
- cleanup = unmount;
446
- globalExpect(lastFrame()).toContain("Global");
447
- });
448
- it("should not duplicate a re-scoped skill in the Global section", () => {
449
- useWizardStore.setState({
450
- installedSkillConfigs: buildSkillConfigs(["web-framework-react"], { scope: "global" }),
451
- skillConfigs: [
452
- ...buildSkillConfigs(["web-framework-react"], { scope: "project" }),
453
- ...buildSkillConfigs(["web-framework-react"], { scope: "global", excluded: true })
454
- ]
455
- });
456
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
457
- cleanup = unmount;
458
- const output = lastFrame();
459
- const reactMatches = output.split("React").length - 1;
460
- globalExpect(reactMatches).toBe(2);
461
- });
462
- it("should show correct entries for mixed re-scoped and excluded skills", () => {
463
- initializeMatrix(WEB_TRIO_MATRIX);
464
- useWizardStore.setState({
465
- isInitMode: false,
466
- installedSkillConfigs: [
467
- { id: "web-framework-react", scope: "global", source: "agents-inc" },
468
- { id: "web-testing-vitest", scope: "global", source: "agents-inc" }
469
- ],
470
- installedAgentConfigs: null
471
- });
472
- const { lastFrame, unmount } = render(
473
- /* @__PURE__ */ jsx(
474
- SkillAgentSummary,
475
- {
476
- skillConfigs: [
477
- { id: "web-framework-react", scope: "project", source: "agents-inc" },
478
- {
479
- id: "web-framework-react",
480
- scope: "global",
481
- source: "agents-inc",
482
- excluded: true
483
- },
484
- {
485
- id: "web-testing-vitest",
486
- scope: "global",
487
- source: "agents-inc",
488
- excluded: true
489
- }
490
- ],
491
- agentConfigs: []
492
- }
493
- )
494
- );
495
- cleanup = unmount;
496
- const output = lastFrame();
497
- const reactMatches = output.split("React").length - 1;
498
- globalExpect(reactMatches).toBe(2);
499
- const vitestMatches = output.split("Vitest").length - 1;
500
- globalExpect(vitestMatches).toBe(1);
501
- globalExpect(output).toContain("Project");
502
- globalExpect(output).toContain("Global");
503
- });
504
- });
505
- describe("empty state", () => {
506
- it("should render without crash when no skillConfigs or agentConfigs provided", () => {
507
- const { lastFrame, unmount } = render(/* @__PURE__ */ jsx(StepConfirm, { onComplete: vi.fn(), onBack: vi.fn() }));
508
- cleanup = unmount;
509
- globalExpect(lastFrame()).toBeDefined();
510
- });
511
- });
512
- });
513
- describe("SkillAgentSummary component", () => {
514
- let cleanup;
515
- beforeEach(() => {
516
- initializeMatrix(WEB_PAIR_MATRIX);
517
- useWizardStore.setState({
518
- installedSkillConfigs: null,
519
- installedAgentConfigs: null,
520
- isInitMode: false
521
- });
522
- });
523
- afterEach(() => {
524
- cleanup?.();
525
- cleanup = void 0;
526
- });
527
- describe("source mode changes", () => {
528
- it("should show ~ prefix when skill source changes from plugin to eject", () => {
529
- useWizardStore.setState({
530
- isInitMode: false,
531
- installedSkillConfigs: buildSkillConfigs(["web-framework-react"], { source: "agents-inc" }),
532
- installedAgentConfigs: null
533
- });
534
- const { lastFrame, unmount } = render(
535
- /* @__PURE__ */ jsx(
536
- SkillAgentSummary,
537
- {
538
- skillConfigs: buildSkillConfigs(["web-framework-react"]),
539
- agentConfigs: []
540
- }
541
- )
542
- );
543
- cleanup = unmount;
544
- const output = lastFrame();
545
- globalExpect(output).toContain("~");
546
- globalExpect(output).toContain("React");
547
- globalExpect(output).not.toContain("\u2192");
548
- });
549
- it("should show ~ prefix when skill source changes from eject to plugin", () => {
550
- useWizardStore.setState({
551
- isInitMode: false,
552
- installedSkillConfigs: buildSkillConfigs(["web-framework-react"]),
553
- installedAgentConfigs: null
554
- });
555
- const { lastFrame, unmount } = render(
556
- /* @__PURE__ */ jsx(
557
- SkillAgentSummary,
558
- {
559
- skillConfigs: buildSkillConfigs(["web-framework-react"], { source: "agents-inc" }),
560
- agentConfigs: []
561
- }
562
- )
563
- );
564
- cleanup = unmount;
565
- const output = lastFrame();
566
- globalExpect(output).toContain("~");
567
- globalExpect(output).toContain("React");
568
- globalExpect(output).not.toContain("\u2192");
569
- });
570
- it("should not show ~ when skill source is unchanged", () => {
571
- useWizardStore.setState({
572
- isInitMode: false,
573
- installedSkillConfigs: buildSkillConfigs(["web-framework-react"], { source: "agents-inc" }),
574
- installedAgentConfigs: null
575
- });
576
- const { lastFrame, unmount } = render(
577
- /* @__PURE__ */ jsx(
578
- SkillAgentSummary,
579
- {
580
- skillConfigs: buildSkillConfigs(["web-framework-react"], { source: "agents-inc" }),
581
- agentConfigs: []
582
- }
583
- )
584
- );
585
- cleanup = unmount;
586
- const output = lastFrame();
587
- globalExpect(output).not.toContain("~");
588
- globalExpect(output).toContain("React");
589
- globalExpect(output).toContain("\u2022");
590
- });
591
- it("should show ~ for global-scoped skill source change", () => {
592
- useWizardStore.setState({
593
- isInitMode: false,
594
- installedSkillConfigs: buildSkillConfigs(["web-framework-react"], {
595
- scope: "global",
596
- source: "agents-inc"
597
- }),
598
- installedAgentConfigs: null
599
- });
600
- const { lastFrame, unmount } = render(
601
- /* @__PURE__ */ jsx(
602
- SkillAgentSummary,
603
- {
604
- skillConfigs: buildSkillConfigs(["web-framework-react"], { scope: "global" }),
605
- agentConfigs: []
606
- }
607
- )
608
- );
609
- cleanup = unmount;
610
- const output = lastFrame();
611
- globalExpect(output).toContain("~");
612
- globalExpect(output).toContain("React");
613
- globalExpect(output).toContain("Global");
614
- });
615
- it("should show both source change and new skill markers together", () => {
616
- initializeMatrix(WEB_TRIO_MATRIX);
617
- useWizardStore.setState({
618
- isInitMode: false,
619
- installedSkillConfigs: buildSkillConfigs(["web-framework-react"], { source: "agents-inc" }),
620
- installedAgentConfigs: null
621
- });
622
- const { lastFrame, unmount } = render(
623
- /* @__PURE__ */ jsx(
624
- SkillAgentSummary,
625
- {
626
- skillConfigs: [
627
- ...buildSkillConfigs(["web-framework-react"]),
628
- ...buildSkillConfigs(["web-testing-vitest"], { source: "agents-inc" })
629
- ],
630
- agentConfigs: []
631
- }
632
- )
633
- );
634
- cleanup = unmount;
635
- const output = lastFrame();
636
- globalExpect(output).toContain("~ React");
637
- globalExpect(output).toContain("+ Vitest");
638
- });
639
- });
640
- describe("dual-scope G\u2192P toggle diff", () => {
641
- it("in-session G\u2192P toggle should show + at Project and \u2022 at Global (not -)", () => {
642
- useWizardStore.setState({
643
- installedSkillConfigs: buildSkillConfigs(["web-framework-react"], { scope: "global" })
644
- });
645
- const { lastFrame, unmount } = render(
646
- /* @__PURE__ */ jsx(
647
- SkillAgentSummary,
648
- {
649
- skillConfigs: [
650
- ...buildSkillConfigs(["web-framework-react"], { scope: "project" }),
651
- ...buildSkillConfigs(["web-framework-react"], { scope: "global", excluded: true })
652
- ],
653
- agentConfigs: []
654
- }
655
- )
656
- );
657
- cleanup = unmount;
658
- const output = lastFrame();
659
- globalExpect(output).toContain("+ React");
660
- globalExpect(output).toContain("\u2022 React");
661
- globalExpect(output).not.toContain("- React");
662
- globalExpect(output).not.toContain("~ React");
663
- });
664
- it("re-open with saved dual-scope state should show \u2022 at Project and \u2022 at Global (not +)", () => {
665
- const savedDualScope = [
666
- ...buildSkillConfigs(["web-framework-react"], { scope: "project" }),
667
- ...buildSkillConfigs(["web-framework-react"], { scope: "global", excluded: true })
668
- ];
669
- useWizardStore.setState({ installedSkillConfigs: savedDualScope });
670
- const { lastFrame, unmount } = render(
671
- /* @__PURE__ */ jsx(SkillAgentSummary, { skillConfigs: savedDualScope, agentConfigs: [] })
672
- );
673
- cleanup = unmount;
674
- const output = lastFrame();
675
- globalExpect(output).toContain("\u2022 React");
676
- globalExpect(output).not.toContain("+ React");
677
- globalExpect(output).not.toContain("- React");
678
- globalExpect(output).not.toContain("~ React");
679
- });
680
- it("agent symmetry: in-session agent G\u2192P toggle shows + at Project and \u2022 at Global", () => {
681
- useWizardStore.setState({
682
- installedAgentConfigs: buildAgentConfigs(["web-developer"], { scope: "global" })
683
- });
684
- const { lastFrame, unmount } = render(
685
- /* @__PURE__ */ jsx(
686
- SkillAgentSummary,
687
- {
688
- agentConfigs: [
689
- ...buildAgentConfigs(["web-developer"], { scope: "project" }),
690
- ...buildAgentConfigs(["web-developer"], { scope: "global", excluded: true })
691
- ],
692
- skillConfigs: []
693
- }
694
- )
695
- );
696
- cleanup = unmount;
697
- const output = lastFrame();
698
- globalExpect(output).toContain("+ web-developer");
699
- globalExpect(output).toContain("\u2022 web-developer");
700
- globalExpect(output).not.toContain("- web-developer");
701
- globalExpect(output).not.toContain("~ web-developer");
702
- });
703
- it("agent symmetry: re-open with saved dual-scope agent shows \u2022 at both scopes", () => {
704
- const savedDualScope = [
705
- ...buildAgentConfigs(["web-developer"], { scope: "project" }),
706
- ...buildAgentConfigs(["web-developer"], { scope: "global", excluded: true })
707
- ];
708
- useWizardStore.setState({ installedAgentConfigs: savedDualScope });
709
- const { lastFrame, unmount } = render(
710
- /* @__PURE__ */ jsx(SkillAgentSummary, { agentConfigs: savedDualScope, skillConfigs: [] })
711
- );
712
- cleanup = unmount;
713
- const output = lastFrame();
714
- globalExpect(output).toContain("\u2022 web-developer");
715
- globalExpect(output).not.toContain("+ web-developer");
716
- globalExpect(output).not.toContain("- web-developer");
717
- globalExpect(output).not.toContain("~ web-developer");
718
- });
719
- it("P\u2192G restoration should show - at Project and \u2022 at Global (not +)", () => {
720
- useWizardStore.setState({
721
- installedSkillConfigs: [
722
- ...buildSkillConfigs(["web-framework-react"], { scope: "project" }),
723
- ...buildSkillConfigs(["web-framework-react"], { scope: "global", excluded: true })
724
- ]
725
- });
726
- const { lastFrame, unmount } = render(
727
- /* @__PURE__ */ jsx(
728
- SkillAgentSummary,
729
- {
730
- skillConfigs: buildSkillConfigs(["web-framework-react"], { scope: "global" }),
731
- agentConfigs: []
732
- }
733
- )
734
- );
735
- cleanup = unmount;
736
- const output = lastFrame();
737
- globalExpect(output).toContain("- React");
738
- globalExpect(output).toContain("\u2022 React");
739
- globalExpect(output).not.toContain("+ React");
740
- globalExpect(output).not.toContain("~ React");
741
- });
742
- });
743
- });
744
- //# sourceMappingURL=step-confirm.test.js.map