@agents-inc/cli 0.38.0 → 0.41.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +66 -0
- package/config/skills-matrix.yaml +115 -123
- package/config/stacks.yaml +687 -687
- package/dist/{chunk-YHQNTBBN.js → chunk-2D6LKRHW.js} +2 -2
- package/dist/{chunk-CYFU3ARY.js → chunk-342YB6TQ.js} +15 -17
- package/dist/chunk-342YB6TQ.js.map +1 -0
- package/dist/{chunk-HRMQ2RGY.js → chunk-423MJ6DT.js} +31 -56
- package/dist/chunk-423MJ6DT.js.map +1 -0
- package/dist/{chunk-NFV4SKH5.js → chunk-4LT6RXMY.js} +4 -4
- package/dist/{chunk-IVIK776Y.js → chunk-4SYXPG7L.js} +2 -2
- package/dist/{chunk-DUQFF45G.js → chunk-4UTPJXUX.js} +8 -8
- package/dist/{chunk-3E2V5YL3.js → chunk-5TMB53BV.js} +3 -3
- package/dist/{chunk-NI2RSNWB.js → chunk-7FBM7V3E.js} +10 -22
- package/dist/chunk-7FBM7V3E.js.map +1 -0
- package/dist/chunk-ACVJVYMC.js +111 -0
- package/dist/chunk-ACVJVYMC.js.map +1 -0
- package/dist/{chunk-FWQK3HWB.js → chunk-AH7XHAKN.js} +11 -11
- package/dist/chunk-AH7XHAKN.js.map +1 -0
- package/dist/{chunk-VAHVSQIG.js → chunk-AVVYFEMF.js} +2 -2
- package/dist/{chunk-EISBUEBL.js → chunk-BFISETQG.js} +3 -3
- package/dist/{chunk-ZBJQXDQN.js → chunk-BK7TANUV.js} +4 -2
- package/dist/chunk-BK7TANUV.js.map +1 -0
- package/dist/{chunk-VAK5PX72.js → chunk-DV4ALU5I.js} +6 -6
- package/dist/{chunk-OEX5JDQD.js → chunk-FHBICUXB.js} +4 -4
- package/dist/{chunk-TA6IIQI4.js → chunk-GEDWVX6Y.js} +3 -3
- package/dist/chunk-GEDWVX6Y.js.map +1 -0
- package/dist/{chunk-M6PGIZNS.js → chunk-H6H3COI5.js} +5 -5
- package/dist/{chunk-54ZZCWN4.js → chunk-KC2SIUIA.js} +3 -8
- package/dist/chunk-KC2SIUIA.js.map +1 -0
- package/dist/{chunk-2XX4TMCI.js → chunk-KXM7KOPE.js} +2 -2
- package/dist/{chunk-HKDE4LJW.js → chunk-LJRP4SWY.js} +6 -5
- package/dist/chunk-LJRP4SWY.js.map +1 -0
- package/dist/{chunk-TBDIR6LY.js → chunk-MNPPGIZQ.js} +5 -5
- package/dist/{chunk-3NQJOJZL.js → chunk-NYP5SB2V.js} +2 -2
- package/dist/{chunk-UOMMQ5M6.js → chunk-NZYKDVRL.js} +2 -2
- package/dist/{chunk-UV6JUGIY.js → chunk-PURJZ72D.js} +2 -2
- package/dist/{chunk-ATLRUR3B.js → chunk-R52N7DBG.js} +2 -2
- package/dist/{chunk-WSGGJKD5.js → chunk-SILUTTV7.js} +6 -6
- package/dist/chunk-SILUTTV7.js.map +1 -0
- package/dist/{chunk-IZRVFC2Z.js → chunk-TJAZ7QCF.js} +4 -4
- package/dist/{chunk-U5OB5ADP.js → chunk-TTXV55NQ.js} +57 -16
- package/dist/chunk-TTXV55NQ.js.map +1 -0
- package/dist/{chunk-TY5GELDB.js → chunk-UKTYDNWJ.js} +2 -2
- package/dist/{chunk-HRW7BIDE.js → chunk-WS6OQIEN.js} +2 -2
- package/dist/{chunk-YJIJTBSX.js → chunk-XJXJZ2MJ.js} +42 -54
- package/dist/chunk-XJXJZ2MJ.js.map +1 -0
- package/dist/chunk-YLJYAQSG.js +210 -0
- package/dist/chunk-YLJYAQSG.js.map +1 -0
- package/dist/{chunk-MZB3GGOH.js → chunk-YRVTXSXP.js} +1 -2
- package/dist/chunk-YRVTXSXP.js.map +1 -0
- package/dist/{chunk-TNFACSWF.js → chunk-ZLHGJSRK.js} +3 -3
- package/dist/cli/defaults/agent-mappings.yaml +14 -70
- package/dist/commands/build/marketplace.js +3 -3
- package/dist/commands/build/plugins.js +5 -5
- package/dist/commands/build/stack.js +5 -5
- package/dist/commands/compile.js +8 -7
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/config/get.js +4 -4
- package/dist/commands/config/index.js +5 -5
- package/dist/commands/config/path.js +4 -4
- package/dist/commands/config/set-project.js +4 -4
- package/dist/commands/config/show.js +5 -5
- package/dist/commands/config/unset-project.js +4 -4
- package/dist/commands/diff.js +8 -5
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/doctor.js +8 -7
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.js +33 -30
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +4 -4
- package/dist/commands/import/skill.js +5 -5
- package/dist/commands/info.js +7 -6
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.js +40 -32
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.js +6 -5
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/new/agent.js +5 -5
- package/dist/commands/new/skill.js +8 -5
- package/dist/commands/new/skill.js.map +1 -1
- package/dist/commands/outdated.js +8 -5
- package/dist/commands/outdated.js.map +1 -1
- package/dist/commands/search.js +7 -7
- package/dist/commands/uninstall.js +19 -7
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.js +8 -7
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/validate.js +5 -5
- package/dist/commands/version/bump.js +4 -4
- package/dist/commands/version/index.js +4 -4
- package/dist/commands/version/set.js +4 -4
- package/dist/commands/version/show.js +4 -4
- package/dist/components/skill-search/skill-search.js +3 -3
- package/dist/components/wizard/category-grid.js +2 -2
- package/dist/components/wizard/category-grid.test.js +40 -40
- package/dist/components/wizard/category-grid.test.js.map +1 -1
- package/dist/components/wizard/checkbox-grid.js +2 -2
- package/dist/components/wizard/checkbox-grid.test.js +16 -6
- package/dist/components/wizard/checkbox-grid.test.js.map +1 -1
- package/dist/components/wizard/domain-selection.js +7 -7
- package/dist/components/wizard/help-modal.js +2 -2
- package/dist/components/wizard/menu-item.js +2 -2
- package/dist/components/wizard/search-modal.js +2 -2
- package/dist/components/wizard/search-modal.test.js +2 -2
- package/dist/components/wizard/section-progress.js +2 -2
- package/dist/components/wizard/section-progress.test.js +2 -2
- package/dist/components/wizard/source-grid.js +3 -3
- package/dist/components/wizard/source-grid.test.js +3 -3
- package/dist/components/wizard/stack-selection.js +9 -9
- package/dist/components/wizard/step-agents.js +7 -7
- package/dist/components/wizard/step-agents.test.js +24 -19
- package/dist/components/wizard/step-agents.test.js.map +1 -1
- package/dist/components/wizard/step-build.js +8 -8
- package/dist/components/wizard/step-build.test.js +40 -39
- package/dist/components/wizard/step-build.test.js.map +1 -1
- package/dist/components/wizard/step-confirm.js +3 -3
- package/dist/components/wizard/step-confirm.test.js +19 -13
- package/dist/components/wizard/step-confirm.test.js.map +1 -1
- package/dist/components/wizard/step-refine.js +2 -2
- package/dist/components/wizard/step-refine.test.js +2 -2
- package/dist/components/wizard/step-settings.js +5 -5
- package/dist/components/wizard/step-settings.test.js +8 -8
- package/dist/components/wizard/step-sources.js +9 -9
- package/dist/components/wizard/step-sources.test.js +13 -13
- package/dist/components/wizard/step-sources.test.js.map +1 -1
- package/dist/components/wizard/step-stack.js +12 -12
- package/dist/components/wizard/step-stack.test.js +19 -21
- package/dist/components/wizard/step-stack.test.js.map +1 -1
- package/dist/components/wizard/view-title.js +2 -2
- package/dist/components/wizard/wizard-layout.js +8 -8
- package/dist/components/wizard/wizard-tabs.js +2 -2
- package/dist/components/wizard/wizard-tabs.test.js +2 -2
- package/dist/components/wizard/wizard.js +25 -25
- package/dist/config/skills-matrix.yaml +115 -123
- package/dist/config/stacks.yaml +687 -687
- package/dist/hooks/init.js +3 -3
- package/dist/{source-manager-FEGVYDFZ.js → source-manager-PPABS6BC.js} +4 -4
- package/dist/stores/wizard-store.js +5 -5
- package/dist/stores/wizard-store.test.js +115 -187
- package/dist/stores/wizard-store.test.js.map +1 -1
- package/package.json +1 -1
- package/src/schemas/metadata.schema.json +41 -1
- package/src/schemas/project-config.schema.json +34 -35
- package/src/schemas/skills-matrix.schema.json +100 -101
- package/src/schemas/stacks.schema.json +34 -35
- package/dist/chunk-54ZZCWN4.js.map +0 -1
- package/dist/chunk-CYFU3ARY.js.map +0 -1
- package/dist/chunk-EXFVAEPY.js +0 -80
- package/dist/chunk-EXFVAEPY.js.map +0 -1
- package/dist/chunk-FWQK3HWB.js.map +0 -1
- package/dist/chunk-HKDE4LJW.js.map +0 -1
- package/dist/chunk-HRMQ2RGY.js.map +0 -1
- package/dist/chunk-IWNPFIGY.js +0 -110
- package/dist/chunk-IWNPFIGY.js.map +0 -1
- package/dist/chunk-MZB3GGOH.js.map +0 -1
- package/dist/chunk-NI2RSNWB.js.map +0 -1
- package/dist/chunk-TA6IIQI4.js.map +0 -1
- package/dist/chunk-U5OB5ADP.js.map +0 -1
- package/dist/chunk-WSGGJKD5.js.map +0 -1
- package/dist/chunk-YJIJTBSX.js.map +0 -1
- package/dist/chunk-ZBJQXDQN.js.map +0 -1
- /package/dist/{chunk-YHQNTBBN.js.map → chunk-2D6LKRHW.js.map} +0 -0
- /package/dist/{chunk-NFV4SKH5.js.map → chunk-4LT6RXMY.js.map} +0 -0
- /package/dist/{chunk-IVIK776Y.js.map → chunk-4SYXPG7L.js.map} +0 -0
- /package/dist/{chunk-DUQFF45G.js.map → chunk-4UTPJXUX.js.map} +0 -0
- /package/dist/{chunk-3E2V5YL3.js.map → chunk-5TMB53BV.js.map} +0 -0
- /package/dist/{chunk-VAHVSQIG.js.map → chunk-AVVYFEMF.js.map} +0 -0
- /package/dist/{chunk-EISBUEBL.js.map → chunk-BFISETQG.js.map} +0 -0
- /package/dist/{chunk-VAK5PX72.js.map → chunk-DV4ALU5I.js.map} +0 -0
- /package/dist/{chunk-OEX5JDQD.js.map → chunk-FHBICUXB.js.map} +0 -0
- /package/dist/{chunk-M6PGIZNS.js.map → chunk-H6H3COI5.js.map} +0 -0
- /package/dist/{chunk-2XX4TMCI.js.map → chunk-KXM7KOPE.js.map} +0 -0
- /package/dist/{chunk-TBDIR6LY.js.map → chunk-MNPPGIZQ.js.map} +0 -0
- /package/dist/{chunk-3NQJOJZL.js.map → chunk-NYP5SB2V.js.map} +0 -0
- /package/dist/{chunk-UOMMQ5M6.js.map → chunk-NZYKDVRL.js.map} +0 -0
- /package/dist/{chunk-UV6JUGIY.js.map → chunk-PURJZ72D.js.map} +0 -0
- /package/dist/{chunk-ATLRUR3B.js.map → chunk-R52N7DBG.js.map} +0 -0
- /package/dist/{chunk-IZRVFC2Z.js.map → chunk-TJAZ7QCF.js.map} +0 -0
- /package/dist/{chunk-TY5GELDB.js.map → chunk-UKTYDNWJ.js.map} +0 -0
- /package/dist/{chunk-HRW7BIDE.js.map → chunk-WS6OQIEN.js.map} +0 -0
- /package/dist/{chunk-TNFACSWF.js.map → chunk-ZLHGJSRK.js.map} +0 -0
- /package/dist/{source-manager-FEGVYDFZ.js.map → source-manager-PPABS6BC.js.map} +0 -0
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
-
createMockCategory,
|
|
4
3
|
createMockMatrix,
|
|
5
4
|
createMockSkill
|
|
6
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-AH7XHAKN.js";
|
|
7
6
|
import {
|
|
8
|
-
afterEach,
|
|
9
7
|
beforeEach,
|
|
10
8
|
describe,
|
|
11
9
|
globalExpect,
|
|
@@ -13,19 +11,16 @@ import {
|
|
|
13
11
|
} from "../chunk-XY3XDVMI.js";
|
|
14
12
|
import {
|
|
15
13
|
useWizardStore
|
|
16
|
-
} from "../chunk-
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import
|
|
19
|
-
clearDefaultsCache,
|
|
20
|
-
loadDefaultMappings
|
|
21
|
-
} from "../chunk-U5OB5ADP.js";
|
|
14
|
+
} from "../chunk-423MJ6DT.js";
|
|
15
|
+
import "../chunk-SILUTTV7.js";
|
|
16
|
+
import "../chunk-TTXV55NQ.js";
|
|
22
17
|
import {
|
|
23
18
|
typedKeys
|
|
24
19
|
} from "../chunk-T4EXUIBY.js";
|
|
25
|
-
import "../chunk-
|
|
20
|
+
import "../chunk-XJXJZ2MJ.js";
|
|
26
21
|
import {
|
|
27
22
|
DEFAULT_PRESELECTED_SKILLS
|
|
28
|
-
} from "../chunk-
|
|
23
|
+
} from "../chunk-BK7TANUV.js";
|
|
29
24
|
import {
|
|
30
25
|
init_esm_shims
|
|
31
26
|
} from "../chunk-DHET7RCE.js";
|
|
@@ -160,41 +155,41 @@ describe("WizardStore", () => {
|
|
|
160
155
|
describe("technology selection", () => {
|
|
161
156
|
it("should toggle technology in exclusive mode", () => {
|
|
162
157
|
const store = useWizardStore.getState();
|
|
163
|
-
store.toggleTechnology("web", "framework", "web-framework-react", true);
|
|
158
|
+
store.toggleTechnology("web", "web-framework", "web-framework-react", true);
|
|
164
159
|
const { domainSelections } = useWizardStore.getState();
|
|
165
|
-
globalExpect(domainSelections.web
|
|
160
|
+
globalExpect(domainSelections.web["web-framework"]).toEqual(["web-framework-react"]);
|
|
166
161
|
});
|
|
167
162
|
it("should replace technology in exclusive mode", () => {
|
|
168
163
|
const store = useWizardStore.getState();
|
|
169
|
-
store.toggleTechnology("web", "framework", "web-framework-react", true);
|
|
170
|
-
store.toggleTechnology("web", "framework", "web-framework-vue", true);
|
|
164
|
+
store.toggleTechnology("web", "web-framework", "web-framework-react", true);
|
|
165
|
+
store.toggleTechnology("web", "web-framework", "web-framework-vue", true);
|
|
171
166
|
const { domainSelections } = useWizardStore.getState();
|
|
172
|
-
globalExpect(domainSelections.web
|
|
167
|
+
globalExpect(domainSelections.web["web-framework"]).toEqual(["web-framework-vue"]);
|
|
173
168
|
});
|
|
174
169
|
it("should toggle off technology in exclusive mode", () => {
|
|
175
170
|
const store = useWizardStore.getState();
|
|
176
|
-
store.toggleTechnology("web", "framework", "web-framework-react", true);
|
|
177
|
-
store.toggleTechnology("web", "framework", "web-framework-react", true);
|
|
171
|
+
store.toggleTechnology("web", "web-framework", "web-framework-react", true);
|
|
172
|
+
store.toggleTechnology("web", "web-framework", "web-framework-react", true);
|
|
178
173
|
const { domainSelections } = useWizardStore.getState();
|
|
179
|
-
globalExpect(domainSelections.web
|
|
174
|
+
globalExpect(domainSelections.web["web-framework"]).toEqual([]);
|
|
180
175
|
});
|
|
181
176
|
it("should allow multiple selections in non-exclusive mode", () => {
|
|
182
177
|
const store = useWizardStore.getState();
|
|
183
|
-
store.toggleTechnology("web", "testing", "web-testing-vitest", false);
|
|
184
|
-
store.toggleTechnology("web", "testing", "web-testing-playwright-e2e", false);
|
|
178
|
+
store.toggleTechnology("web", "web-testing", "web-testing-vitest", false);
|
|
179
|
+
store.toggleTechnology("web", "web-testing", "web-testing-playwright-e2e", false);
|
|
185
180
|
const { domainSelections } = useWizardStore.getState();
|
|
186
|
-
globalExpect(domainSelections.web
|
|
181
|
+
globalExpect(domainSelections.web["web-testing"]).toEqual([
|
|
187
182
|
"web-testing-vitest",
|
|
188
183
|
"web-testing-playwright-e2e"
|
|
189
184
|
]);
|
|
190
185
|
});
|
|
191
186
|
it("should toggle off technology in non-exclusive mode", () => {
|
|
192
187
|
const store = useWizardStore.getState();
|
|
193
|
-
store.toggleTechnology("web", "testing", "web-testing-vitest", false);
|
|
194
|
-
store.toggleTechnology("web", "testing", "web-testing-playwright-e2e", false);
|
|
195
|
-
store.toggleTechnology("web", "testing", "web-testing-vitest", false);
|
|
188
|
+
store.toggleTechnology("web", "web-testing", "web-testing-vitest", false);
|
|
189
|
+
store.toggleTechnology("web", "web-testing", "web-testing-playwright-e2e", false);
|
|
190
|
+
store.toggleTechnology("web", "web-testing", "web-testing-vitest", false);
|
|
196
191
|
const { domainSelections } = useWizardStore.getState();
|
|
197
|
-
globalExpect(domainSelections.web
|
|
192
|
+
globalExpect(domainSelections.web["web-testing"]).toEqual(["web-testing-playwright-e2e"]);
|
|
198
193
|
});
|
|
199
194
|
});
|
|
200
195
|
describe("domain navigation", () => {
|
|
@@ -352,9 +347,9 @@ describe("WizardStore", () => {
|
|
|
352
347
|
describe("computed getters", () => {
|
|
353
348
|
it("should get all selected technologies", () => {
|
|
354
349
|
const store = useWizardStore.getState();
|
|
355
|
-
store.toggleTechnology("web", "framework", "web-framework-react", true);
|
|
356
|
-
store.toggleTechnology("web", "styling", "web-styling-scss-modules", true);
|
|
357
|
-
store.toggleTechnology("api", "api", "api-framework-hono", true);
|
|
350
|
+
store.toggleTechnology("web", "web-framework", "web-framework-react", true);
|
|
351
|
+
store.toggleTechnology("web", "web-styling", "web-styling-scss-modules", true);
|
|
352
|
+
store.toggleTechnology("api", "api-api", "api-framework-hono", true);
|
|
358
353
|
const technologies = store.getAllSelectedTechnologies();
|
|
359
354
|
globalExpect(technologies).toContain("web-framework-react");
|
|
360
355
|
globalExpect(technologies).toContain("web-styling-scss-modules");
|
|
@@ -369,9 +364,9 @@ describe("WizardStore", () => {
|
|
|
369
364
|
});
|
|
370
365
|
it("should get selected technologies per domain", () => {
|
|
371
366
|
const store = useWizardStore.getState();
|
|
372
|
-
store.toggleTechnology("web", "framework", "web-framework-react", true);
|
|
373
|
-
store.toggleTechnology("web", "styling", "web-styling-scss-modules", true);
|
|
374
|
-
store.toggleTechnology("api", "api", "api-framework-hono", true);
|
|
367
|
+
store.toggleTechnology("web", "web-framework", "web-framework-react", true);
|
|
368
|
+
store.toggleTechnology("web", "web-styling", "web-styling-scss-modules", true);
|
|
369
|
+
store.toggleTechnology("api", "api-api", "api-framework-hono", true);
|
|
375
370
|
const perDomain = store.getSelectedTechnologiesPerDomain();
|
|
376
371
|
globalExpect(perDomain.web).toEqual(["web-framework-react", "web-styling-scss-modules"]);
|
|
377
372
|
globalExpect(perDomain.api).toEqual(["api-framework-hono"]);
|
|
@@ -384,16 +379,16 @@ describe("WizardStore", () => {
|
|
|
384
379
|
});
|
|
385
380
|
it("should omit domains with empty subcategory arrays from getSelectedTechnologiesPerDomain", () => {
|
|
386
381
|
const store = useWizardStore.getState();
|
|
387
|
-
store.toggleTechnology("web", "framework", "web-framework-react", true);
|
|
388
|
-
store.toggleTechnology("web", "framework", "web-framework-react", true);
|
|
382
|
+
store.toggleTechnology("web", "web-framework", "web-framework-react", true);
|
|
383
|
+
store.toggleTechnology("web", "web-framework", "web-framework-react", true);
|
|
389
384
|
const perDomain = store.getSelectedTechnologiesPerDomain();
|
|
390
385
|
globalExpect(perDomain.web).toBeUndefined();
|
|
391
386
|
});
|
|
392
387
|
it("should get technology count", () => {
|
|
393
388
|
const store = useWizardStore.getState();
|
|
394
|
-
store.toggleTechnology("web", "framework", "web-framework-react", true);
|
|
395
|
-
store.toggleTechnology("web", "styling", "web-styling-scss-modules", true);
|
|
396
|
-
store.toggleTechnology("api", "api", "api-framework-hono", true);
|
|
389
|
+
store.toggleTechnology("web", "web-framework", "web-framework-react", true);
|
|
390
|
+
store.toggleTechnology("web", "web-styling", "web-styling-scss-modules", true);
|
|
391
|
+
store.toggleTechnology("api", "api-api", "api-framework-hono", true);
|
|
397
392
|
globalExpect(store.getTechnologyCount()).toBe(3);
|
|
398
393
|
});
|
|
399
394
|
it("should return 0 for getTechnologyCount with no selections", () => {
|
|
@@ -435,65 +430,6 @@ describe("WizardStore", () => {
|
|
|
435
430
|
globalExpect(store.canGoToPreviousDomain()).toBe(false);
|
|
436
431
|
});
|
|
437
432
|
});
|
|
438
|
-
describe("parent domain selectors", () => {
|
|
439
|
-
const matrixWithParentDomain = {
|
|
440
|
-
categories: {
|
|
441
|
-
"error-handling": createMockCategory("error-handling", "Error Handling", {
|
|
442
|
-
domain: "web-extras",
|
|
443
|
-
parentDomain: "web",
|
|
444
|
-
exclusive: false
|
|
445
|
-
}),
|
|
446
|
-
framework: createMockCategory("framework", "Framework", {
|
|
447
|
-
domain: "web"
|
|
448
|
-
})
|
|
449
|
-
}
|
|
450
|
-
};
|
|
451
|
-
const matrixWithoutParent = {
|
|
452
|
-
categories: {
|
|
453
|
-
framework: createMockCategory("framework", "Framework", {
|
|
454
|
-
domain: "web"
|
|
455
|
-
})
|
|
456
|
-
}
|
|
457
|
-
};
|
|
458
|
-
it("should find parent domain for a domain with parentDomain", () => {
|
|
459
|
-
const store = useWizardStore.getState();
|
|
460
|
-
const parent = store.getParentDomain(
|
|
461
|
-
"web-extras",
|
|
462
|
-
matrixWithParentDomain
|
|
463
|
-
);
|
|
464
|
-
globalExpect(parent).toBe("web");
|
|
465
|
-
});
|
|
466
|
-
it("should return undefined for a domain without parentDomain", () => {
|
|
467
|
-
const store = useWizardStore.getState();
|
|
468
|
-
const parent = store.getParentDomain("web", matrixWithoutParent);
|
|
469
|
-
globalExpect(parent).toBeUndefined();
|
|
470
|
-
});
|
|
471
|
-
it("should get parent domain selections when parent exists", () => {
|
|
472
|
-
const store = useWizardStore.getState();
|
|
473
|
-
store.toggleTechnology("web", "framework", "web-framework-react", true);
|
|
474
|
-
const parentSelections = store.getParentDomainSelections(
|
|
475
|
-
"web-extras",
|
|
476
|
-
matrixWithParentDomain
|
|
477
|
-
);
|
|
478
|
-
globalExpect(parentSelections).toEqual({ framework: ["web-framework-react"] });
|
|
479
|
-
});
|
|
480
|
-
it("should return undefined for getParentDomainSelections when no parent", () => {
|
|
481
|
-
const store = useWizardStore.getState();
|
|
482
|
-
const parentSelections = store.getParentDomainSelections(
|
|
483
|
-
"web",
|
|
484
|
-
matrixWithoutParent
|
|
485
|
-
);
|
|
486
|
-
globalExpect(parentSelections).toBeUndefined();
|
|
487
|
-
});
|
|
488
|
-
it("should return undefined for getParentDomainSelections when parent has no selections", () => {
|
|
489
|
-
const store = useWizardStore.getState();
|
|
490
|
-
const parentSelections = store.getParentDomainSelections(
|
|
491
|
-
"web-extras",
|
|
492
|
-
matrixWithParentDomain
|
|
493
|
-
);
|
|
494
|
-
globalExpect(parentSelections).toBeUndefined();
|
|
495
|
-
});
|
|
496
|
-
});
|
|
497
433
|
describe("reset", () => {
|
|
498
434
|
it("should reset to initial state", () => {
|
|
499
435
|
const store = useWizardStore.getState();
|
|
@@ -518,17 +454,17 @@ describe("WizardStore", () => {
|
|
|
518
454
|
const store = useWizardStore.getState();
|
|
519
455
|
const stack = {
|
|
520
456
|
agents: {
|
|
521
|
-
web: { framework: [sa("web-framework-react", true)] }
|
|
457
|
+
web: { "web-framework": [sa("web-framework-react", true)] }
|
|
522
458
|
}
|
|
523
459
|
};
|
|
524
460
|
const categories = {
|
|
525
|
-
framework: { domain: "web" }
|
|
461
|
+
"web-framework": { domain: "web" }
|
|
526
462
|
};
|
|
527
463
|
store.populateFromStack(stack, categories);
|
|
528
464
|
const { selectedDomains, domainSelections } = useWizardStore.getState();
|
|
529
|
-
globalExpect(selectedDomains).toEqual(["web", "
|
|
465
|
+
globalExpect(selectedDomains).toEqual(["web", "api", "cli", "mobile", "shared"]);
|
|
530
466
|
globalExpect(domainSelections.web).toBeDefined();
|
|
531
|
-
globalExpect(domainSelections.web
|
|
467
|
+
globalExpect(domainSelections.web["web-framework"]).toEqual(["web-framework-react"]);
|
|
532
468
|
globalExpect(domainSelections.api).toBeUndefined();
|
|
533
469
|
});
|
|
534
470
|
it("should populate domainSelections from stack agents", () => {
|
|
@@ -536,32 +472,32 @@ describe("WizardStore", () => {
|
|
|
536
472
|
const stack = {
|
|
537
473
|
agents: {
|
|
538
474
|
web: {
|
|
539
|
-
framework: [sa("web-framework-react", true)],
|
|
540
|
-
"client-state": [sa("web-state-zustand")]
|
|
475
|
+
"web-framework": [sa("web-framework-react", true)],
|
|
476
|
+
"web-client-state": [sa("web-state-zustand")]
|
|
541
477
|
},
|
|
542
|
-
api: { api: [sa("api-framework-hono", true)] }
|
|
478
|
+
api: { "api-api": [sa("api-framework-hono", true)] }
|
|
543
479
|
}
|
|
544
480
|
};
|
|
545
481
|
const categories = {
|
|
546
|
-
framework: { domain: "web" },
|
|
547
|
-
"client-state": { domain: "web" },
|
|
548
|
-
api: { domain: "api" }
|
|
482
|
+
"web-framework": { domain: "web" },
|
|
483
|
+
"web-client-state": { domain: "web" },
|
|
484
|
+
"api-api": { domain: "api" }
|
|
549
485
|
};
|
|
550
486
|
store.populateFromStack(stack, categories);
|
|
551
487
|
const { domainSelections } = useWizardStore.getState();
|
|
552
|
-
globalExpect(domainSelections.web
|
|
553
|
-
globalExpect(domainSelections.web["client-state"]).toEqual(["web-state-zustand"]);
|
|
554
|
-
globalExpect(domainSelections.api
|
|
488
|
+
globalExpect(domainSelections.web["web-framework"]).toEqual(["web-framework-react"]);
|
|
489
|
+
globalExpect(domainSelections.web["web-client-state"]).toEqual(["web-state-zustand"]);
|
|
490
|
+
globalExpect(domainSelections.api["api-api"]).toEqual(["api-framework-hono"]);
|
|
555
491
|
});
|
|
556
492
|
it("should skip entries without a domain", () => {
|
|
557
493
|
const store = useWizardStore.getState();
|
|
558
494
|
const stack = {
|
|
559
495
|
agents: {
|
|
560
|
-
misc: { methodology: [sa("meta-methodology-vitest")] }
|
|
496
|
+
misc: { "shared-methodology": [sa("meta-methodology-vitest")] }
|
|
561
497
|
}
|
|
562
498
|
};
|
|
563
499
|
const categories = {
|
|
564
|
-
methodology: {}
|
|
500
|
+
"shared-methodology": {}
|
|
565
501
|
};
|
|
566
502
|
store.populateFromStack(stack, categories);
|
|
567
503
|
const { domainSelections } = useWizardStore.getState();
|
|
@@ -572,7 +508,7 @@ describe("WizardStore", () => {
|
|
|
572
508
|
const stack = {
|
|
573
509
|
agents: {
|
|
574
510
|
"pattern-scout": {
|
|
575
|
-
methodology: [
|
|
511
|
+
"shared-methodology": [
|
|
576
512
|
sa("meta-methodology-investigation-requirements", true),
|
|
577
513
|
sa("meta-methodology-anti-over-engineering", true),
|
|
578
514
|
sa("meta-methodology-success-criteria", true)
|
|
@@ -581,11 +517,11 @@ describe("WizardStore", () => {
|
|
|
581
517
|
}
|
|
582
518
|
};
|
|
583
519
|
const categories = {
|
|
584
|
-
methodology: { domain: "shared" }
|
|
520
|
+
"shared-methodology": { domain: "shared" }
|
|
585
521
|
};
|
|
586
522
|
store.populateFromStack(stack, categories);
|
|
587
523
|
const { domainSelections } = useWizardStore.getState();
|
|
588
|
-
globalExpect(domainSelections.shared
|
|
524
|
+
globalExpect(domainSelections.shared["shared-methodology"]).toEqual([
|
|
589
525
|
"meta-methodology-investigation-requirements",
|
|
590
526
|
"meta-methodology-anti-over-engineering",
|
|
591
527
|
"meta-methodology-success-criteria"
|
|
@@ -596,41 +532,41 @@ describe("WizardStore", () => {
|
|
|
596
532
|
const stack = {
|
|
597
533
|
agents: {
|
|
598
534
|
web: {
|
|
599
|
-
framework: [sa("web-framework-react", true)],
|
|
600
|
-
methodology: [
|
|
535
|
+
"web-framework": [sa("web-framework-react", true)],
|
|
536
|
+
"shared-methodology": [
|
|
601
537
|
sa("meta-methodology-investigation-requirements", true),
|
|
602
538
|
sa("meta-methodology-anti-over-engineering", true)
|
|
603
539
|
]
|
|
604
540
|
},
|
|
605
|
-
api: { api: [sa("api-framework-hono", true)] }
|
|
541
|
+
api: { "api-api": [sa("api-framework-hono", true)] }
|
|
606
542
|
}
|
|
607
543
|
};
|
|
608
544
|
const categories = {
|
|
609
|
-
framework: { domain: "web" },
|
|
610
|
-
methodology: { domain: "shared" },
|
|
611
|
-
api: { domain: "api" }
|
|
545
|
+
"web-framework": { domain: "web" },
|
|
546
|
+
"shared-methodology": { domain: "shared" },
|
|
547
|
+
"api-api": { domain: "api" }
|
|
612
548
|
};
|
|
613
549
|
store.populateFromStack(stack, categories);
|
|
614
550
|
const { domainSelections } = useWizardStore.getState();
|
|
615
|
-
globalExpect(domainSelections.web
|
|
616
|
-
globalExpect(domainSelections.shared
|
|
551
|
+
globalExpect(domainSelections.web["web-framework"]).toEqual(["web-framework-react"]);
|
|
552
|
+
globalExpect(domainSelections.shared["shared-methodology"]).toEqual([
|
|
617
553
|
"meta-methodology-investigation-requirements",
|
|
618
554
|
"meta-methodology-anti-over-engineering"
|
|
619
555
|
]);
|
|
620
|
-
globalExpect(domainSelections.api
|
|
556
|
+
globalExpect(domainSelections.api["api-api"]).toEqual(["api-framework-hono"]);
|
|
621
557
|
});
|
|
622
558
|
it("should deduplicate skills from arrays across multiple agents", () => {
|
|
623
559
|
const store = useWizardStore.getState();
|
|
624
560
|
const stack = {
|
|
625
561
|
agents: {
|
|
626
562
|
agent1: {
|
|
627
|
-
methodology: [
|
|
563
|
+
"shared-methodology": [
|
|
628
564
|
sa("meta-methodology-investigation-requirements", true),
|
|
629
565
|
sa("meta-methodology-anti-over-engineering", true)
|
|
630
566
|
]
|
|
631
567
|
},
|
|
632
568
|
agent2: {
|
|
633
|
-
methodology: [
|
|
569
|
+
"shared-methodology": [
|
|
634
570
|
sa("meta-methodology-anti-over-engineering", true),
|
|
635
571
|
sa("meta-methodology-success-criteria", true)
|
|
636
572
|
]
|
|
@@ -638,11 +574,11 @@ describe("WizardStore", () => {
|
|
|
638
574
|
}
|
|
639
575
|
};
|
|
640
576
|
const categories = {
|
|
641
|
-
methodology: { domain: "shared" }
|
|
577
|
+
"shared-methodology": { domain: "shared" }
|
|
642
578
|
};
|
|
643
579
|
store.populateFromStack(stack, categories);
|
|
644
580
|
const { domainSelections } = useWizardStore.getState();
|
|
645
|
-
globalExpect(domainSelections.shared
|
|
581
|
+
globalExpect(domainSelections.shared["shared-methodology"]).toEqual([
|
|
646
582
|
"meta-methodology-investigation-requirements",
|
|
647
583
|
"meta-methodology-anti-over-engineering",
|
|
648
584
|
"meta-methodology-success-criteria"
|
|
@@ -670,28 +606,28 @@ describe("WizardStore", () => {
|
|
|
670
606
|
store.toggleDomain("web");
|
|
671
607
|
store.toggleDomain("api");
|
|
672
608
|
store.setStep("build");
|
|
673
|
-
store.toggleTechnology("web", "framework", "web-framework-react", true);
|
|
674
|
-
store.toggleTechnology("web", "styling", "web-styling-scss-modules", true);
|
|
675
|
-
store.toggleTechnology("api", "api", "api-framework-hono", true);
|
|
609
|
+
store.toggleTechnology("web", "web-framework", "web-framework-react", true);
|
|
610
|
+
store.toggleTechnology("web", "web-styling", "web-styling-scss-modules", true);
|
|
611
|
+
store.toggleTechnology("api", "api-api", "api-framework-hono", true);
|
|
676
612
|
store.setStep("confirm");
|
|
677
613
|
const state = useWizardStore.getState();
|
|
678
614
|
globalExpect(state.step).toBe("confirm");
|
|
679
615
|
globalExpect(state.approach).toBe("scratch");
|
|
680
616
|
globalExpect(state.selectedDomains).toEqual(["web", "api"]);
|
|
681
|
-
globalExpect(state.domainSelections.web
|
|
682
|
-
globalExpect(state.domainSelections.web
|
|
683
|
-
globalExpect(state.domainSelections.api
|
|
617
|
+
globalExpect(state.domainSelections.web["web-framework"]).toEqual(["web-framework-react"]);
|
|
618
|
+
globalExpect(state.domainSelections.web["web-styling"]).toEqual(["web-styling-scss-modules"]);
|
|
619
|
+
globalExpect(state.domainSelections.api["api-api"]).toEqual(["api-framework-hono"]);
|
|
684
620
|
});
|
|
685
621
|
it("should preserve selections when going back", () => {
|
|
686
622
|
const store = useWizardStore.getState();
|
|
687
623
|
store.setApproach("scratch");
|
|
688
624
|
store.toggleDomain("web");
|
|
689
625
|
store.setStep("build");
|
|
690
|
-
store.toggleTechnology("web", "framework", "web-framework-react", true);
|
|
626
|
+
store.toggleTechnology("web", "web-framework", "web-framework-react", true);
|
|
691
627
|
store.goBack();
|
|
692
628
|
const state = useWizardStore.getState();
|
|
693
629
|
globalExpect(state.selectedDomains).toContain("web");
|
|
694
|
-
globalExpect(state.domainSelections.web
|
|
630
|
+
globalExpect(state.domainSelections.web["web-framework"]).toEqual(["web-framework-react"]);
|
|
695
631
|
});
|
|
696
632
|
});
|
|
697
633
|
describe("buildSourceRows sort order", () => {
|
|
@@ -704,7 +640,7 @@ describe("WizardStore", () => {
|
|
|
704
640
|
}
|
|
705
641
|
it("should sort local sources before scoped marketplace sources", () => {
|
|
706
642
|
const store = useWizardStore.getState();
|
|
707
|
-
const skill = createMockSkill("web-framework-react", "framework", {
|
|
643
|
+
const skill = createMockSkill("web-framework-react", "web-framework", {
|
|
708
644
|
displayName: "react",
|
|
709
645
|
availableSources: [
|
|
710
646
|
makeSource({ name: "Photoroom", type: "private", primary: true }),
|
|
@@ -717,7 +653,7 @@ describe("WizardStore", () => {
|
|
|
717
653
|
displayNames: { "web-framework-react": "react" }
|
|
718
654
|
}
|
|
719
655
|
);
|
|
720
|
-
store.toggleTechnology("web", "framework", "web-framework-react", true);
|
|
656
|
+
store.toggleTechnology("web", "web-framework", "web-framework-react", true);
|
|
721
657
|
const rows = store.buildSourceRows(matrix);
|
|
722
658
|
globalExpect(rows).toHaveLength(1);
|
|
723
659
|
globalExpect(rows[0].options[0].id).toBe("local");
|
|
@@ -725,7 +661,7 @@ describe("WizardStore", () => {
|
|
|
725
661
|
});
|
|
726
662
|
it("should sort scoped marketplace before default public marketplace", () => {
|
|
727
663
|
const store = useWizardStore.getState();
|
|
728
|
-
const skill = createMockSkill("web-framework-react", "framework", {
|
|
664
|
+
const skill = createMockSkill("web-framework-react", "web-framework", {
|
|
729
665
|
displayName: "react",
|
|
730
666
|
availableSources: [
|
|
731
667
|
makeSource({ name: "Agents Inc", type: "public" }),
|
|
@@ -738,7 +674,7 @@ describe("WizardStore", () => {
|
|
|
738
674
|
displayNames: { "web-framework-react": "react" }
|
|
739
675
|
}
|
|
740
676
|
);
|
|
741
|
-
store.toggleTechnology("web", "framework", "web-framework-react", true);
|
|
677
|
+
store.toggleTechnology("web", "web-framework", "web-framework-react", true);
|
|
742
678
|
const rows = store.buildSourceRows(matrix);
|
|
743
679
|
globalExpect(rows).toHaveLength(1);
|
|
744
680
|
globalExpect(rows[0].options[0].id).toBe("Photoroom");
|
|
@@ -746,7 +682,7 @@ describe("WizardStore", () => {
|
|
|
746
682
|
});
|
|
747
683
|
it("should sort default public marketplace before third-party sources", () => {
|
|
748
684
|
const store = useWizardStore.getState();
|
|
749
|
-
const skill = createMockSkill("web-framework-react", "framework", {
|
|
685
|
+
const skill = createMockSkill("web-framework-react", "web-framework", {
|
|
750
686
|
displayName: "react",
|
|
751
687
|
availableSources: [
|
|
752
688
|
makeSource({ name: "Extra Corp", type: "private" }),
|
|
@@ -759,7 +695,7 @@ describe("WizardStore", () => {
|
|
|
759
695
|
displayNames: { "web-framework-react": "react" }
|
|
760
696
|
}
|
|
761
697
|
);
|
|
762
|
-
store.toggleTechnology("web", "framework", "web-framework-react", true);
|
|
698
|
+
store.toggleTechnology("web", "web-framework", "web-framework-react", true);
|
|
763
699
|
const rows = store.buildSourceRows(matrix);
|
|
764
700
|
globalExpect(rows).toHaveLength(1);
|
|
765
701
|
globalExpect(rows[0].options[0].id).toBe("Agents Inc");
|
|
@@ -767,7 +703,7 @@ describe("WizardStore", () => {
|
|
|
767
703
|
});
|
|
768
704
|
it("should sort all four tiers in correct order", () => {
|
|
769
705
|
const store = useWizardStore.getState();
|
|
770
|
-
const skill = createMockSkill("web-framework-react", "framework", {
|
|
706
|
+
const skill = createMockSkill("web-framework-react", "web-framework", {
|
|
771
707
|
displayName: "react",
|
|
772
708
|
availableSources: [
|
|
773
709
|
makeSource({ name: "Extra Corp", type: "private" }),
|
|
@@ -782,7 +718,7 @@ describe("WizardStore", () => {
|
|
|
782
718
|
displayNames: { "web-framework-react": "react" }
|
|
783
719
|
}
|
|
784
720
|
);
|
|
785
|
-
store.toggleTechnology("web", "framework", "web-framework-react", true);
|
|
721
|
+
store.toggleTechnology("web", "web-framework", "web-framework-react", true);
|
|
786
722
|
const rows = store.buildSourceRows(matrix);
|
|
787
723
|
globalExpect(rows).toHaveLength(1);
|
|
788
724
|
const sourceNames = rows[0].options.map((opt) => opt.id);
|
|
@@ -823,18 +759,11 @@ describe("WizardStore", () => {
|
|
|
823
759
|
globalExpect(selectedAgents).toEqual([]);
|
|
824
760
|
});
|
|
825
761
|
});
|
|
826
|
-
describe("
|
|
827
|
-
|
|
828
|
-
clearDefaultsCache();
|
|
829
|
-
await loadDefaultMappings();
|
|
830
|
-
});
|
|
831
|
-
afterEach(() => {
|
|
832
|
-
clearDefaultsCache();
|
|
833
|
-
});
|
|
834
|
-
it("should preselect web-related agents when web skills are selected", () => {
|
|
762
|
+
describe("preselectAgentsFromDomains", () => {
|
|
763
|
+
it("should preselect web-related agents when web domain is selected", () => {
|
|
835
764
|
const store = useWizardStore.getState();
|
|
836
|
-
store.
|
|
837
|
-
store.
|
|
765
|
+
store.toggleDomain("web");
|
|
766
|
+
store.preselectAgentsFromDomains();
|
|
838
767
|
const { selectedAgents } = useWizardStore.getState();
|
|
839
768
|
globalExpect(selectedAgents).toContain("web-developer");
|
|
840
769
|
globalExpect(selectedAgents).toContain("web-reviewer");
|
|
@@ -843,22 +772,32 @@ describe("WizardStore", () => {
|
|
|
843
772
|
globalExpect(selectedAgents).toContain("web-pm");
|
|
844
773
|
globalExpect(selectedAgents).toContain("web-architecture");
|
|
845
774
|
});
|
|
846
|
-
it("should preselect api-related agents when api
|
|
775
|
+
it("should preselect api-related agents when api domain is selected", () => {
|
|
847
776
|
const store = useWizardStore.getState();
|
|
848
|
-
store.
|
|
849
|
-
store.
|
|
777
|
+
store.toggleDomain("api");
|
|
778
|
+
store.preselectAgentsFromDomains();
|
|
850
779
|
const { selectedAgents } = useWizardStore.getState();
|
|
851
780
|
globalExpect(selectedAgents).toContain("api-developer");
|
|
852
781
|
globalExpect(selectedAgents).toContain("api-reviewer");
|
|
853
782
|
globalExpect(selectedAgents).toContain("api-researcher");
|
|
854
783
|
globalExpect(selectedAgents).not.toContain("web-developer");
|
|
855
784
|
});
|
|
856
|
-
it("should
|
|
785
|
+
it("should preselect cli agents when cli domain is selected", () => {
|
|
786
|
+
const store = useWizardStore.getState();
|
|
787
|
+
store.toggleDomain("cli");
|
|
788
|
+
store.preselectAgentsFromDomains();
|
|
789
|
+
const { selectedAgents } = useWizardStore.getState();
|
|
790
|
+
globalExpect(selectedAgents).toContain("cli-developer");
|
|
791
|
+
globalExpect(selectedAgents).toContain("cli-tester");
|
|
792
|
+
globalExpect(selectedAgents).toContain("cli-reviewer");
|
|
793
|
+
globalExpect(selectedAgents).toContain("cli-migrator");
|
|
794
|
+
});
|
|
795
|
+
it("should never include optional agents regardless of domains", () => {
|
|
857
796
|
const store = useWizardStore.getState();
|
|
858
|
-
store.
|
|
859
|
-
store.
|
|
860
|
-
store.
|
|
861
|
-
store.
|
|
797
|
+
store.toggleDomain("web");
|
|
798
|
+
store.toggleDomain("api");
|
|
799
|
+
store.toggleDomain("cli");
|
|
800
|
+
store.preselectAgentsFromDomains();
|
|
862
801
|
const { selectedAgents } = useWizardStore.getState();
|
|
863
802
|
globalExpect(selectedAgents).not.toContain("agent-summoner");
|
|
864
803
|
globalExpect(selectedAgents).not.toContain("skill-summoner");
|
|
@@ -866,38 +805,27 @@ describe("WizardStore", () => {
|
|
|
866
805
|
globalExpect(selectedAgents).not.toContain("pattern-scout");
|
|
867
806
|
globalExpect(selectedAgents).not.toContain("web-pattern-critique");
|
|
868
807
|
});
|
|
869
|
-
it("should return empty agents when no
|
|
808
|
+
it("should return empty agents when no domains are selected", () => {
|
|
870
809
|
const store = useWizardStore.getState();
|
|
871
|
-
store.
|
|
810
|
+
store.preselectAgentsFromDomains();
|
|
872
811
|
const { selectedAgents } = useWizardStore.getState();
|
|
873
812
|
globalExpect(selectedAgents).toEqual([]);
|
|
874
813
|
});
|
|
875
|
-
it("should produce union of agents for
|
|
814
|
+
it("should produce union of agents for multiple domains", () => {
|
|
876
815
|
const store = useWizardStore.getState();
|
|
877
|
-
store.
|
|
878
|
-
store.
|
|
879
|
-
store.
|
|
816
|
+
store.toggleDomain("web");
|
|
817
|
+
store.toggleDomain("api");
|
|
818
|
+
store.preselectAgentsFromDomains();
|
|
880
819
|
const { selectedAgents } = useWizardStore.getState();
|
|
881
820
|
globalExpect(selectedAgents).toContain("web-developer");
|
|
882
821
|
globalExpect(selectedAgents).toContain("api-developer");
|
|
883
822
|
globalExpect(selectedAgents).toContain("web-reviewer");
|
|
884
823
|
globalExpect(selectedAgents).toContain("api-reviewer");
|
|
885
824
|
});
|
|
886
|
-
it("should preselect
|
|
825
|
+
it("should not preselect api agents when only web domain is selected", () => {
|
|
887
826
|
const store = useWizardStore.getState();
|
|
888
|
-
store.
|
|
889
|
-
store.
|
|
890
|
-
const { selectedAgents } = useWizardStore.getState();
|
|
891
|
-
globalExpect(selectedAgents).toContain("cli-developer");
|
|
892
|
-
globalExpect(selectedAgents).toContain("cli-tester");
|
|
893
|
-
globalExpect(selectedAgents).toContain("cli-reviewer");
|
|
894
|
-
globalExpect(selectedAgents).toContain("cli-migrator");
|
|
895
|
-
});
|
|
896
|
-
it("should not preselect api agents when only web skills are selected", () => {
|
|
897
|
-
const store = useWizardStore.getState();
|
|
898
|
-
store.toggleTechnology("web", "framework", "web-framework-react", true);
|
|
899
|
-
store.toggleTechnology("web", "styling", "web-styling-scss-modules", false);
|
|
900
|
-
store.preselectAgentsFromSkills();
|
|
827
|
+
store.toggleDomain("web");
|
|
828
|
+
store.preselectAgentsFromDomains();
|
|
901
829
|
const { selectedAgents } = useWizardStore.getState();
|
|
902
830
|
globalExpect(selectedAgents).toContain("web-developer");
|
|
903
831
|
globalExpect(selectedAgents).not.toContain("api-developer");
|
|
@@ -905,9 +833,9 @@ describe("WizardStore", () => {
|
|
|
905
833
|
});
|
|
906
834
|
it("should return sorted agents", () => {
|
|
907
835
|
const store = useWizardStore.getState();
|
|
908
|
-
store.
|
|
909
|
-
store.
|
|
910
|
-
store.
|
|
836
|
+
store.toggleDomain("web");
|
|
837
|
+
store.toggleDomain("api");
|
|
838
|
+
store.preselectAgentsFromDomains();
|
|
911
839
|
const { selectedAgents } = useWizardStore.getState();
|
|
912
840
|
const sorted = [...selectedAgents].sort();
|
|
913
841
|
globalExpect(selectedAgents).toEqual(sorted);
|
|
@@ -915,8 +843,8 @@ describe("WizardStore", () => {
|
|
|
915
843
|
it("should replace previous agent selection", () => {
|
|
916
844
|
const store = useWizardStore.getState();
|
|
917
845
|
store.toggleAgent("documentor");
|
|
918
|
-
store.
|
|
919
|
-
store.
|
|
846
|
+
store.toggleDomain("web");
|
|
847
|
+
store.preselectAgentsFromDomains();
|
|
920
848
|
const { selectedAgents } = useWizardStore.getState();
|
|
921
849
|
globalExpect(selectedAgents).not.toContain("documentor");
|
|
922
850
|
});
|