@agents-inc/cli 0.64.0 → 0.68.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.
- package/CHANGELOG.md +46 -0
- package/dist/{chunk-J4POGAJF.js → chunk-2JJUPWE5.js} +2 -2
- package/dist/{chunk-53URJ5XK.js → chunk-45R64U2S.js} +21 -21
- package/dist/chunk-45R64U2S.js.map +1 -0
- package/dist/{chunk-FGLUQSVU.js → chunk-6BXKF5GP.js} +2 -2
- package/dist/{chunk-EZ35IPXZ.js → chunk-7LCI5PSJ.js} +2 -2
- package/dist/{chunk-4C7CSZC5.js → chunk-EULHBV5V.js} +3 -3
- package/dist/{chunk-ZFY5EMDV.js → chunk-F6KEZ4Y5.js} +4 -4
- package/dist/{chunk-EE5EPS32.js → chunk-FCF4WQEI.js} +2 -2
- package/dist/{chunk-R46CB36B.js → chunk-GK5CAS3A.js} +4 -4
- package/dist/{chunk-WSMQ5GAP.js → chunk-HADHP7XF.js} +3 -3
- package/dist/{chunk-OORWBS6F.js → chunk-JAWXWNIX.js} +16 -10
- package/dist/chunk-JAWXWNIX.js.map +1 -0
- package/dist/{chunk-3YNT3NX3.js → chunk-KBG7GYPL.js} +5 -5
- package/dist/{chunk-O2HK3NTG.js → chunk-KMDBOO3E.js} +2 -2
- package/dist/{chunk-EC3UJRKZ.js → chunk-KWB3B2HS.js} +92 -163
- package/dist/chunk-KWB3B2HS.js.map +1 -0
- package/dist/{chunk-7DI3HGKL.js → chunk-KYULKBFC.js} +2 -2
- package/dist/chunk-KYULKBFC.js.map +1 -0
- package/dist/{chunk-6DEK3TDF.js → chunk-L5LD3ZSR.js} +4 -4
- package/dist/{chunk-F3REOP7N.js → chunk-L6MTIQ2U.js} +2 -2
- package/dist/{chunk-MOMI77PL.js → chunk-N4D43IOO.js} +57 -137
- package/dist/chunk-N4D43IOO.js.map +1 -0
- package/dist/{chunk-RG3KDXMR.js → chunk-QUEO6QEL.js} +3 -3
- package/dist/{chunk-LMZXL5RQ.js → chunk-R3AR4VLZ.js} +11 -11
- package/dist/chunk-R3AR4VLZ.js.map +1 -0
- package/dist/{chunk-4KVBH2X4.js → chunk-RMMHVE2R.js} +3 -3
- package/dist/{chunk-YEGPTBX5.js → chunk-SSGPFKS4.js} +3 -3
- package/dist/{chunk-BGPGQF35.js → chunk-VTRVAXUM.js} +3 -3
- package/dist/commands/build/marketplace.js +3 -3
- package/dist/commands/build/plugins.js +6 -6
- package/dist/commands/build/stack.js +6 -6
- package/dist/commands/compile.js +6 -6
- package/dist/commands/config/index.js +6 -6
- package/dist/commands/config/path.js +5 -5
- package/dist/commands/config/show.js +6 -6
- package/dist/commands/diff.js +5 -5
- package/dist/commands/doctor.js +5 -5
- package/dist/commands/edit.js +40 -20
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +5 -5
- package/dist/commands/import/skill.js +5 -5
- package/dist/commands/info.js +5 -5
- package/dist/commands/init.js +17 -17
- package/dist/commands/list.js +5 -5
- package/dist/commands/new/agent.js +6 -6
- package/dist/commands/new/marketplace.js +7 -7
- package/dist/commands/new/skill.js +6 -6
- package/dist/commands/outdated.js +5 -5
- package/dist/commands/search.js +5 -5
- package/dist/commands/uninstall.js +5 -5
- package/dist/commands/update.js +6 -6
- package/dist/commands/validate.js +5 -5
- package/dist/components/wizard/category-grid.test.js +11 -11
- package/dist/components/wizard/category-grid.test.js.map +1 -1
- package/dist/components/wizard/domain-selection.js +6 -6
- package/dist/components/wizard/help-modal.js +1 -1
- package/dist/components/wizard/search-modal.test.js.map +1 -1
- package/dist/components/wizard/source-grid.test.js +8 -13
- package/dist/components/wizard/source-grid.test.js.map +1 -1
- package/dist/components/wizard/stack-selection.js +6 -6
- package/dist/components/wizard/step-agents.js +6 -6
- package/dist/components/wizard/step-agents.test.js +8 -8
- package/dist/components/wizard/step-agents.test.js.map +1 -1
- package/dist/components/wizard/step-build.js +6 -6
- package/dist/components/wizard/step-build.test.js +62 -76
- package/dist/components/wizard/step-build.test.js.map +1 -1
- package/dist/components/wizard/step-confirm.test.js +6 -6
- 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 +6 -6
- package/dist/components/wizard/step-sources.test.js +10 -9
- package/dist/components/wizard/step-sources.test.js.map +1 -1
- package/dist/components/wizard/step-stack.js +8 -8
- package/dist/components/wizard/step-stack.test.js +20 -30
- package/dist/components/wizard/step-stack.test.js.map +1 -1
- package/dist/components/wizard/wizard-layout.js +7 -7
- package/dist/components/wizard/wizard.js +15 -15
- package/dist/config-exports.js +1 -1
- package/dist/hooks/init.js +17 -17
- package/dist/{loader-4YOZCFIP.js → loader-CMSC3RAO.js} +3 -3
- package/dist/{source-loader-O5RMYUBW.js → source-loader-YMWWZFVD.js} +5 -5
- package/dist/{source-manager-NKLL6HCL.js → source-manager-6G3EVTU2.js} +5 -5
- package/dist/stores/matrix-store.test.js +23 -46
- package/dist/stores/matrix-store.test.js.map +1 -1
- package/dist/stores/wizard-store.js +5 -5
- package/dist/stores/wizard-store.test.js +39 -54
- package/dist/stores/wizard-store.test.js.map +1 -1
- package/package.json +1 -1
- package/src/schemas/metadata.schema.json +1 -1
- package/dist/chunk-53URJ5XK.js.map +0 -1
- package/dist/chunk-7DI3HGKL.js.map +0 -1
- package/dist/chunk-EC3UJRKZ.js.map +0 -1
- package/dist/chunk-LMZXL5RQ.js.map +0 -1
- package/dist/chunk-MOMI77PL.js.map +0 -1
- package/dist/chunk-OORWBS6F.js.map +0 -1
- /package/dist/{chunk-J4POGAJF.js.map → chunk-2JJUPWE5.js.map} +0 -0
- /package/dist/{chunk-FGLUQSVU.js.map → chunk-6BXKF5GP.js.map} +0 -0
- /package/dist/{chunk-EZ35IPXZ.js.map → chunk-7LCI5PSJ.js.map} +0 -0
- /package/dist/{chunk-4C7CSZC5.js.map → chunk-EULHBV5V.js.map} +0 -0
- /package/dist/{chunk-ZFY5EMDV.js.map → chunk-F6KEZ4Y5.js.map} +0 -0
- /package/dist/{chunk-EE5EPS32.js.map → chunk-FCF4WQEI.js.map} +0 -0
- /package/dist/{chunk-R46CB36B.js.map → chunk-GK5CAS3A.js.map} +0 -0
- /package/dist/{chunk-WSMQ5GAP.js.map → chunk-HADHP7XF.js.map} +0 -0
- /package/dist/{chunk-3YNT3NX3.js.map → chunk-KBG7GYPL.js.map} +0 -0
- /package/dist/{chunk-O2HK3NTG.js.map → chunk-KMDBOO3E.js.map} +0 -0
- /package/dist/{chunk-6DEK3TDF.js.map → chunk-L5LD3ZSR.js.map} +0 -0
- /package/dist/{chunk-F3REOP7N.js.map → chunk-L6MTIQ2U.js.map} +0 -0
- /package/dist/{chunk-RG3KDXMR.js.map → chunk-QUEO6QEL.js.map} +0 -0
- /package/dist/{chunk-4KVBH2X4.js.map → chunk-RMMHVE2R.js.map} +0 -0
- /package/dist/{chunk-YEGPTBX5.js.map → chunk-SSGPFKS4.js.map} +0 -0
- /package/dist/{chunk-BGPGQF35.js.map → chunk-VTRVAXUM.js.map} +0 -0
- /package/dist/{loader-4YOZCFIP.js.map → loader-CMSC3RAO.js.map} +0 -0
- /package/dist/{source-loader-O5RMYUBW.js.map → source-loader-YMWWZFVD.js.map} +0 -0
- /package/dist/{source-manager-NKLL6HCL.js.map → source-manager-6G3EVTU2.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cli/components/wizard/step-stack.test.tsx"],"sourcesContent":["import { render } from \"ink-testing-library\";\nimport { afterEach, beforeEach, describe, expect, it, vi } from \"vitest\";\nimport { StepStack } from \"./step-stack\";\nimport { useWizardStore } from \"../../stores/wizard-store\";\nimport { useMatrixStore } from \"../../stores/matrix-store\";\nimport {\n createMockCategory,\n createMockMatrix,\n createMockResolvedStack,\n TEST_SKILLS,\n} from \"../../lib/__tests__/helpers\";\n\nimport type { MergedSkillsMatrix } from \"../../types\";\nimport {\n ARROW_DOWN,\n ARROW_UP,\n ENTER,\n ESCAPE,\n RENDER_DELAY_MS,\n SELECT_NAV_DELAY_MS,\n delay,\n} from \"../../lib/__tests__/test-constants\";\n\nconst createMockStackWithSkills = (): MergedSkillsMatrix => {\n const skills = {\n [\"web-framework-react\"]: TEST_SKILLS.react,\n [\"web-state-zustand\"]: TEST_SKILLS.zustand,\n [\"api-framework-hono\"]: TEST_SKILLS.hono,\n };\n\n const suggestedStacks = [\n createMockResolvedStack(\"react-fullstack\", \"React Fullstack\", {\n description: \"Full React stack with Zustand and Hono\",\n allSkillIds: [\"web-framework-react\", \"web-state-zustand\", \"api-framework-hono\"],\n }),\n createMockResolvedStack(\"react-minimal\", \"React Minimal\", {\n allSkillIds: [\"web-framework-react\"],\n }),\n ];\n\n return createMockMatrix(skills, {\n suggestedStacks,\n categories: {\n \"web-framework\": createMockCategory(\"web-framework\", \"Web Framework\", {\n domain: \"web\",\n exclusive: false,\n }),\n \"api-api\": createMockCategory(\"api-api\", \"API Framework\", {\n domain: \"api\",\n exclusive: false,\n order: 1,\n }),\n \"cli-framework\": createMockCategory(\"cli-framework\", \"CLI Framework\", {\n domain: \"cli\",\n exclusive: false,\n order: 2,\n }),\n \"mobile-framework\": createMockCategory(\"mobile-framework\", \"Mobile Framework\", {\n domain: \"mobile\",\n exclusive: false,\n order: 3,\n }),\n },\n });\n};\n\ndescribe(\"StepStack component\", () => {\n let cleanup: (() => void) | undefined;\n let mockMatrix: MergedSkillsMatrix;\n\n beforeEach(() => {\n mockMatrix = createMockStackWithSkills();\n useMatrixStore.getState().setMatrix(mockMatrix);\n });\n\n afterEach(() => {\n cleanup?.();\n cleanup = undefined;\n });\n\n describe(\"unified stack/scratch selection (initial view)\", () => {\n describe(\"rendering\", () => {\n it(\"should render stack options and scratch option\", () => {\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"React Fullstack\");\n expect(output).toContain(\"React Minimal\");\n expect(output).toContain(\"Start from scratch\");\n });\n\n it(\"should render focused stack description (only focused item shows description)\", () => {\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"Full React stack\");\n });\n\n it(\"should render ViewTitle for stack selection\", () => {\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"Choose a stack\");\n });\n\n it(\"should render divider between stacks and scratch option\", () => {\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"\\u2500\");\n });\n });\n\n describe(\"stack selection\", () => {\n it(\"should select first stack on Enter and show domain selection\", async () => {\n const { stdin, lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { approach, selectedStackId } = useWizardStore.getState();\n expect(approach).toBe(\"stack\");\n expect(selectedStackId).toBe(\"react-fullstack\");\n\n const output = lastFrame();\n expect(output).toContain(\"Select domains to configure\");\n });\n\n it(\"should select second stack when navigated to\", async () => {\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { selectedStackId } = useWizardStore.getState();\n expect(selectedStackId).toBe(\"react-minimal\");\n });\n });\n\n describe(\"scratch selection\", () => {\n it(\"should show domain selection when scratch is selected\", async () => {\n const { stdin, lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { approach, selectedStackId } = useWizardStore.getState();\n expect(approach).toBe(\"scratch\");\n expect(selectedStackId).toBeNull();\n\n const output = lastFrame();\n expect(output).toContain(\"Select domains to configure\");\n });\n\n it(\"should pre-select domains except CLI when scratch is chosen\", async () => {\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { selectedDomains } = useWizardStore.getState();\n expect(selectedDomains).toContain(\"web\");\n expect(selectedDomains).toContain(\"api\");\n expect(selectedDomains).toContain(\"mobile\");\n expect(selectedDomains).not.toContain(\"cli\");\n });\n });\n\n describe(\"cancel navigation\", () => {\n it(\"should call onCancel when pressing Escape at initial view\", async () => {\n const onCancel = vi.fn();\n const { stdin, unmount } = render(<StepStack onCancel={onCancel} />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ESCAPE);\n await delay(SELECT_NAV_DELAY_MS);\n\n expect(onCancel).toHaveBeenCalledTimes(1);\n });\n });\n\n describe(\"arrow key navigation\", () => {\n it(\"should navigate down to second stack card\", async () => {\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { selectedStackId } = useWizardStore.getState();\n expect(selectedStackId).toBe(\"react-minimal\");\n });\n\n it(\"should navigate down then up back to first stack\", async () => {\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ARROW_UP);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { selectedStackId } = useWizardStore.getState();\n expect(selectedStackId).toBe(\"react-fullstack\");\n });\n\n it(\"should clamp at top boundary\", async () => {\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ARROW_UP);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ARROW_UP);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { selectedStackId } = useWizardStore.getState();\n expect(selectedStackId).toBe(\"react-fullstack\");\n });\n\n it(\"should clamp at bottom boundary (scratch is last)\", async () => {\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { approach } = useWizardStore.getState();\n expect(approach).toBe(\"scratch\");\n });\n });\n\n describe(\"empty state\", () => {\n it(\"should still show scratch option with no stacks available\", () => {\n const emptyMatrix = createMockMatrix({}, { suggestedStacks: [] });\n useMatrixStore.getState().setMatrix(emptyMatrix);\n\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"Choose a stack\");\n expect(output).toContain(\"Start from scratch\");\n });\n });\n });\n\n describe(\"domain selection mode (after stack/scratch choice)\", () => {\n beforeEach(() => {\n useWizardStore.getState().setApproach(\"scratch\");\n });\n\n describe(\"rendering\", () => {\n it(\"should render domain options\", () => {\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"Web\");\n expect(output).toContain(\"API\");\n expect(output).toContain(\"CLI\");\n });\n\n it(\"should render header text for domain selection\", () => {\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"Select domains to configure\");\n });\n\n it(\"should show domain descriptions\", () => {\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n // Only the focused item (Web, first in list) shows its description\n expect(output).toContain(\"Frontend web applications\");\n });\n });\n\n describe(\"domain selection\", () => {\n it(\"should toggle domain when selected\", async () => {\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n // First domain (Web) is focused by default, toggle with space\n stdin.write(\" \");\n await delay(SELECT_NAV_DELAY_MS);\n\n const { selectedDomains } = useWizardStore.getState();\n expect(selectedDomains).toContain(\"web\");\n });\n\n it(\"should allow multiple domain selection\", async () => {\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n // First domain (Web) is focused by default\n stdin.write(\" \");\n await delay(SELECT_NAV_DELAY_MS);\n\n expect(useWizardStore.getState().selectedDomains).toContain(\"web\");\n\n useWizardStore.getState().toggleDomain(\"api\");\n\n const { selectedDomains } = useWizardStore.getState();\n expect(selectedDomains).toContain(\"web\");\n expect(selectedDomains).toContain(\"api\");\n });\n\n it(\"should show selected domains summary when domains selected\", async () => {\n useWizardStore.getState().toggleDomain(\"web\");\n\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"Selected:\");\n expect(output).toContain(\"web\");\n });\n\n it(\"should navigate to build step when continuing\", async () => {\n useWizardStore.getState().toggleDomain(\"web\");\n\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n // Navigate to continue option (after 4 domains)\n for (let i = 0; i < 4; i++) {\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n }\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { step } = useWizardStore.getState();\n expect(step).toBe(\"build\");\n });\n });\n\n describe(\"back navigation\", () => {\n it(\"should return to stack/scratch selection when pressing ESC\", async () => {\n const { stdin, lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ESCAPE);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { approach } = useWizardStore.getState();\n expect(approach).toBeNull();\n\n const output = lastFrame();\n expect(output).toContain(\"Choose a stack\");\n });\n });\n });\n});\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/cli/components/wizard/step-stack.test.tsx"],"sourcesContent":["import { render } from \"ink-testing-library\";\nimport { afterEach, beforeEach, describe, expect, it, vi } from \"vitest\";\nimport { StepStack } from \"./step-stack\";\nimport { useWizardStore } from \"../../stores/wizard-store\";\nimport { useMatrixStore } from \"../../stores/matrix-store\";\nimport { createMockMatrix, createMockResolvedStack, SKILLS } from \"../../lib/__tests__/helpers\";\nimport { TEST_CATEGORIES } from \"../../lib/__tests__/test-fixtures\";\n\nimport type { MergedSkillsMatrix } from \"../../types\";\nimport {\n ARROW_DOWN,\n ARROW_UP,\n ENTER,\n ESCAPE,\n RENDER_DELAY_MS,\n SELECT_NAV_DELAY_MS,\n delay,\n} from \"../../lib/__tests__/test-constants\";\n\nconst createMockStackWithSkills = (): MergedSkillsMatrix => {\n const suggestedStacks = [\n createMockResolvedStack(\"react-fullstack\", \"React Fullstack\", {\n description: \"Full React stack with Zustand and Hono\",\n allSkillIds: [\"web-framework-react\", \"web-state-zustand\", \"api-framework-hono\"],\n }),\n createMockResolvedStack(\"react-minimal\", \"React Minimal\", {\n allSkillIds: [\"web-framework-react\"],\n }),\n ];\n\n return createMockMatrix(SKILLS.react, SKILLS.zustand, SKILLS.hono, {\n suggestedStacks,\n categories: {\n \"web-framework\": { ...TEST_CATEGORIES.framework, domain: \"web\" as const, exclusive: false },\n \"api-api\": { ...TEST_CATEGORIES.api, domain: \"api\" as const, exclusive: false, order: 1 },\n \"cli-framework\": {\n ...TEST_CATEGORIES.cliFramework,\n domain: \"cli\" as const,\n exclusive: false,\n order: 2,\n },\n \"mobile-framework\": {\n ...TEST_CATEGORIES.mobileFramework,\n domain: \"mobile\" as const,\n exclusive: false,\n order: 3,\n },\n },\n });\n};\n\ndescribe(\"StepStack component\", () => {\n let cleanup: (() => void) | undefined;\n let mockMatrix: MergedSkillsMatrix;\n\n beforeEach(() => {\n mockMatrix = createMockStackWithSkills();\n useMatrixStore.getState().setMatrix(mockMatrix);\n });\n\n afterEach(() => {\n cleanup?.();\n cleanup = undefined;\n });\n\n describe(\"unified stack/scratch selection (initial view)\", () => {\n describe(\"rendering\", () => {\n it(\"should render stack options and scratch option\", () => {\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"React Fullstack\");\n expect(output).toContain(\"React Minimal\");\n expect(output).toContain(\"Start from scratch\");\n });\n\n it(\"should render focused stack description (only focused item shows description)\", () => {\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"Full React stack\");\n });\n\n it(\"should render ViewTitle for stack selection\", () => {\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"Choose a stack\");\n });\n\n it(\"should render divider between stacks and scratch option\", () => {\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"\\u2500\");\n });\n });\n\n describe(\"stack selection\", () => {\n it(\"should select first stack on Enter and show domain selection\", async () => {\n const { stdin, lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { approach, selectedStackId } = useWizardStore.getState();\n expect(approach).toBe(\"stack\");\n expect(selectedStackId).toBe(\"react-fullstack\");\n\n const output = lastFrame();\n expect(output).toContain(\"Select domains to configure\");\n });\n\n it(\"should select second stack when navigated to\", async () => {\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { selectedStackId } = useWizardStore.getState();\n expect(selectedStackId).toBe(\"react-minimal\");\n });\n });\n\n describe(\"scratch selection\", () => {\n it(\"should show domain selection when scratch is selected\", async () => {\n const { stdin, lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { approach, selectedStackId } = useWizardStore.getState();\n expect(approach).toBe(\"scratch\");\n expect(selectedStackId).toBeNull();\n\n const output = lastFrame();\n expect(output).toContain(\"Select domains to configure\");\n });\n\n it(\"should pre-select domains except CLI when scratch is chosen\", async () => {\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { selectedDomains } = useWizardStore.getState();\n expect(selectedDomains).toContain(\"web\");\n expect(selectedDomains).toContain(\"api\");\n expect(selectedDomains).toContain(\"mobile\");\n expect(selectedDomains).not.toContain(\"cli\");\n });\n });\n\n describe(\"cancel navigation\", () => {\n it(\"should call onCancel when pressing Escape at initial view\", async () => {\n const onCancel = vi.fn();\n const { stdin, unmount } = render(<StepStack onCancel={onCancel} />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ESCAPE);\n await delay(SELECT_NAV_DELAY_MS);\n\n expect(onCancel).toHaveBeenCalledTimes(1);\n });\n });\n\n describe(\"arrow key navigation\", () => {\n it(\"should navigate down to second stack card\", async () => {\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { selectedStackId } = useWizardStore.getState();\n expect(selectedStackId).toBe(\"react-minimal\");\n });\n\n it(\"should navigate down then up back to first stack\", async () => {\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ARROW_UP);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { selectedStackId } = useWizardStore.getState();\n expect(selectedStackId).toBe(\"react-fullstack\");\n });\n\n it(\"should clamp at top boundary\", async () => {\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ARROW_UP);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ARROW_UP);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { selectedStackId } = useWizardStore.getState();\n expect(selectedStackId).toBe(\"react-fullstack\");\n });\n\n it(\"should clamp at bottom boundary (scratch is last)\", async () => {\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { approach } = useWizardStore.getState();\n expect(approach).toBe(\"scratch\");\n });\n });\n\n describe(\"empty state\", () => {\n it(\"should still show scratch option with no stacks available\", () => {\n const emptyMatrix = createMockMatrix({}, { suggestedStacks: [] });\n useMatrixStore.getState().setMatrix(emptyMatrix);\n\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"Choose a stack\");\n expect(output).toContain(\"Start from scratch\");\n });\n });\n });\n\n describe(\"domain selection mode (after stack/scratch choice)\", () => {\n beforeEach(() => {\n useWizardStore.getState().setApproach(\"scratch\");\n });\n\n describe(\"rendering\", () => {\n it(\"should render domain options\", () => {\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"Web\");\n expect(output).toContain(\"API\");\n expect(output).toContain(\"CLI\");\n });\n\n it(\"should render header text for domain selection\", () => {\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"Select domains to configure\");\n });\n\n it(\"should show domain descriptions\", () => {\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n // Only the focused item (Web, first in list) shows its description\n expect(output).toContain(\"Frontend web applications\");\n });\n });\n\n describe(\"domain selection\", () => {\n it(\"should toggle domain when selected\", async () => {\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n // First domain (Web) is focused by default, toggle with space\n stdin.write(\" \");\n await delay(SELECT_NAV_DELAY_MS);\n\n const { selectedDomains } = useWizardStore.getState();\n expect(selectedDomains).toContain(\"web\");\n });\n\n it(\"should allow multiple domain selection\", async () => {\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n // First domain (Web) is focused by default\n stdin.write(\" \");\n await delay(SELECT_NAV_DELAY_MS);\n\n expect(useWizardStore.getState().selectedDomains).toContain(\"web\");\n\n useWizardStore.getState().toggleDomain(\"api\");\n\n const { selectedDomains } = useWizardStore.getState();\n expect(selectedDomains).toContain(\"web\");\n expect(selectedDomains).toContain(\"api\");\n });\n\n it(\"should show selected domains summary when domains selected\", async () => {\n useWizardStore.getState().toggleDomain(\"web\");\n\n const { lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"Selected:\");\n expect(output).toContain(\"web\");\n });\n\n it(\"should navigate to build step when continuing\", async () => {\n useWizardStore.getState().toggleDomain(\"web\");\n\n const { stdin, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n // Navigate to continue option (after 4 domains)\n for (let i = 0; i < 4; i++) {\n stdin.write(ARROW_DOWN);\n await delay(SELECT_NAV_DELAY_MS);\n }\n stdin.write(ENTER);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { step } = useWizardStore.getState();\n expect(step).toBe(\"build\");\n });\n });\n\n describe(\"back navigation\", () => {\n it(\"should return to stack/scratch selection when pressing ESC\", async () => {\n const { stdin, lastFrame, unmount } = render(<StepStack />);\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n\n stdin.write(ESCAPE);\n await delay(SELECT_NAV_DELAY_MS);\n\n const { approach } = useWizardStore.getState();\n expect(approach).toBeNull();\n\n const output = lastFrame();\n expect(output).toContain(\"Choose a stack\");\n });\n });\n });\n});\n"],"mappings":"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","names":[]}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
WizardLayout
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-RMMHVE2R.js";
|
|
5
5
|
import "../../chunk-SXGBPQY6.js";
|
|
6
6
|
import "../../chunk-HGTC76BX.js";
|
|
7
|
-
import "../../chunk-
|
|
8
|
-
import "../../chunk-
|
|
7
|
+
import "../../chunk-KYULKBFC.js";
|
|
8
|
+
import "../../chunk-EULHBV5V.js";
|
|
9
9
|
import "../../chunk-6VIOO74O.js";
|
|
10
|
-
import "../../chunk-
|
|
11
|
-
import "../../chunk-
|
|
10
|
+
import "../../chunk-45R64U2S.js";
|
|
11
|
+
import "../../chunk-L6MTIQ2U.js";
|
|
12
12
|
import "../../chunk-T4EXUIBY.js";
|
|
13
13
|
import "../../chunk-BKL3DF2Q.js";
|
|
14
|
-
import "../../chunk-
|
|
14
|
+
import "../../chunk-R3AR4VLZ.js";
|
|
15
15
|
import "../../chunk-EGMQ3SXN.js";
|
|
16
|
-
import "../../chunk-
|
|
16
|
+
import "../../chunk-KWB3B2HS.js";
|
|
17
17
|
import "../../chunk-DHET7RCE.js";
|
|
18
18
|
export {
|
|
19
19
|
WizardLayout
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
Wizard
|
|
4
|
-
} from "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
4
|
+
} from "../../chunk-JAWXWNIX.js";
|
|
5
|
+
import "../../chunk-RMMHVE2R.js";
|
|
6
6
|
import "../../chunk-SXGBPQY6.js";
|
|
7
|
-
import "../../chunk-
|
|
8
|
-
import "../../chunk-
|
|
7
|
+
import "../../chunk-QUEO6QEL.js";
|
|
8
|
+
import "../../chunk-HADHP7XF.js";
|
|
9
9
|
import "../../chunk-HGTC76BX.js";
|
|
10
|
-
import "../../chunk-
|
|
11
|
-
import "../../chunk-
|
|
12
|
-
import "../../chunk-
|
|
13
|
-
import "../../chunk-
|
|
10
|
+
import "../../chunk-L5LD3ZSR.js";
|
|
11
|
+
import "../../chunk-7LCI5PSJ.js";
|
|
12
|
+
import "../../chunk-2JJUPWE5.js";
|
|
13
|
+
import "../../chunk-VTRVAXUM.js";
|
|
14
14
|
import "../../chunk-K77I4XGL.js";
|
|
15
15
|
import "../../chunk-52THXN5G.js";
|
|
16
|
-
import "../../chunk-
|
|
16
|
+
import "../../chunk-KYULKBFC.js";
|
|
17
17
|
import "../../chunk-MWGDG4QN.js";
|
|
18
18
|
import "../../chunk-KFDTVSIC.js";
|
|
19
19
|
import "../../chunk-7SOPVGDV.js";
|
|
@@ -21,23 +21,23 @@ import "../../chunk-6IK2TCK7.js";
|
|
|
21
21
|
import "../../chunk-KUV24B5M.js";
|
|
22
22
|
import "../../chunk-CKPJTMNC.js";
|
|
23
23
|
import "../../chunk-GG4BSB6S.js";
|
|
24
|
-
import "../../chunk-
|
|
24
|
+
import "../../chunk-KMDBOO3E.js";
|
|
25
25
|
import "../../chunk-ZYUASJUN.js";
|
|
26
26
|
import "../../chunk-OV5UJWS5.js";
|
|
27
27
|
import "../../chunk-XMLCXRTS.js";
|
|
28
28
|
import "../../chunk-AQYAVLZK.js";
|
|
29
29
|
import "../../chunk-AUNBGZS4.js";
|
|
30
|
-
import "../../chunk-
|
|
30
|
+
import "../../chunk-EULHBV5V.js";
|
|
31
31
|
import "../../chunk-T5DJCIUP.js";
|
|
32
32
|
import "../../chunk-U3IGFMCY.js";
|
|
33
33
|
import "../../chunk-6VIOO74O.js";
|
|
34
|
-
import "../../chunk-
|
|
35
|
-
import "../../chunk-
|
|
34
|
+
import "../../chunk-45R64U2S.js";
|
|
35
|
+
import "../../chunk-L6MTIQ2U.js";
|
|
36
36
|
import "../../chunk-T4EXUIBY.js";
|
|
37
37
|
import "../../chunk-BKL3DF2Q.js";
|
|
38
|
-
import "../../chunk-
|
|
38
|
+
import "../../chunk-R3AR4VLZ.js";
|
|
39
39
|
import "../../chunk-EGMQ3SXN.js";
|
|
40
|
-
import "../../chunk-
|
|
40
|
+
import "../../chunk-KWB3B2HS.js";
|
|
41
41
|
import "../../chunk-DHET7RCE.js";
|
|
42
42
|
export {
|
|
43
43
|
Wizard
|
package/dist/config-exports.js
CHANGED
package/dist/hooks/init.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
showDashboard
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-KBG7GYPL.js";
|
|
5
|
+
import "../chunk-JAWXWNIX.js";
|
|
6
|
+
import "../chunk-RMMHVE2R.js";
|
|
7
7
|
import "../chunk-SXGBPQY6.js";
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
8
|
+
import "../chunk-QUEO6QEL.js";
|
|
9
|
+
import "../chunk-HADHP7XF.js";
|
|
10
10
|
import "../chunk-HGTC76BX.js";
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-L5LD3ZSR.js";
|
|
12
|
+
import "../chunk-7LCI5PSJ.js";
|
|
13
|
+
import "../chunk-2JJUPWE5.js";
|
|
14
|
+
import "../chunk-VTRVAXUM.js";
|
|
15
15
|
import "../chunk-K77I4XGL.js";
|
|
16
16
|
import "../chunk-52THXN5G.js";
|
|
17
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-KYULKBFC.js";
|
|
18
18
|
import "../chunk-MWGDG4QN.js";
|
|
19
19
|
import "../chunk-KFDTVSIC.js";
|
|
20
20
|
import "../chunk-7SOPVGDV.js";
|
|
@@ -22,13 +22,13 @@ import "../chunk-6IK2TCK7.js";
|
|
|
22
22
|
import "../chunk-KUV24B5M.js";
|
|
23
23
|
import "../chunk-CKPJTMNC.js";
|
|
24
24
|
import "../chunk-GG4BSB6S.js";
|
|
25
|
-
import "../chunk-
|
|
25
|
+
import "../chunk-KMDBOO3E.js";
|
|
26
26
|
import "../chunk-ZYUASJUN.js";
|
|
27
27
|
import "../chunk-OV5UJWS5.js";
|
|
28
28
|
import "../chunk-XMLCXRTS.js";
|
|
29
29
|
import "../chunk-AQYAVLZK.js";
|
|
30
30
|
import "../chunk-AUNBGZS4.js";
|
|
31
|
-
import "../chunk-
|
|
31
|
+
import "../chunk-EULHBV5V.js";
|
|
32
32
|
import "../chunk-T5DJCIUP.js";
|
|
33
33
|
import "../chunk-U3IGFMCY.js";
|
|
34
34
|
import "../chunk-6VIOO74O.js";
|
|
@@ -37,16 +37,16 @@ import {
|
|
|
37
37
|
detectInstallation,
|
|
38
38
|
hasIndividualPlugins,
|
|
39
39
|
resolveSource
|
|
40
|
-
} from "../chunk-
|
|
41
|
-
import "../chunk-
|
|
40
|
+
} from "../chunk-45R64U2S.js";
|
|
41
|
+
import "../chunk-L6MTIQ2U.js";
|
|
42
42
|
import "../chunk-T4EXUIBY.js";
|
|
43
43
|
import "../chunk-BKL3DF2Q.js";
|
|
44
44
|
import {
|
|
45
45
|
EXIT_CODES
|
|
46
|
-
} from "../chunk-
|
|
47
|
-
import "../chunk-
|
|
46
|
+
} from "../chunk-FCF4WQEI.js";
|
|
47
|
+
import "../chunk-R3AR4VLZ.js";
|
|
48
48
|
import "../chunk-EGMQ3SXN.js";
|
|
49
|
-
import "../chunk-
|
|
49
|
+
import "../chunk-KWB3B2HS.js";
|
|
50
50
|
import {
|
|
51
51
|
init_esm_shims
|
|
52
52
|
} from "../chunk-DHET7RCE.js";
|
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
loadProjectAgents,
|
|
6
6
|
loadSkillsByIds,
|
|
7
7
|
parseFrontmatter
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-L6MTIQ2U.js";
|
|
9
|
+
import "./chunk-R3AR4VLZ.js";
|
|
10
10
|
import "./chunk-EGMQ3SXN.js";
|
|
11
11
|
import "./chunk-DHET7RCE.js";
|
|
12
12
|
export {
|
|
@@ -16,4 +16,4 @@ export {
|
|
|
16
16
|
loadSkillsByIds,
|
|
17
17
|
parseFrontmatter
|
|
18
18
|
};
|
|
19
|
-
//# sourceMappingURL=loader-
|
|
19
|
+
//# sourceMappingURL=loader-CMSC3RAO.js.map
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
import {
|
|
3
3
|
getMarketplaceLabel,
|
|
4
4
|
loadSkillsMatrixFromSource
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-45R64U2S.js";
|
|
6
|
+
import "./chunk-L6MTIQ2U.js";
|
|
7
7
|
import "./chunk-T4EXUIBY.js";
|
|
8
8
|
import "./chunk-BKL3DF2Q.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-R3AR4VLZ.js";
|
|
10
10
|
import "./chunk-EGMQ3SXN.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-KWB3B2HS.js";
|
|
12
12
|
import "./chunk-DHET7RCE.js";
|
|
13
13
|
export {
|
|
14
14
|
getMarketplaceLabel,
|
|
15
15
|
loadSkillsMatrixFromSource
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=source-loader-
|
|
17
|
+
//# sourceMappingURL=source-loader-YMWWZFVD.js.map
|
|
@@ -3,17 +3,17 @@ import {
|
|
|
3
3
|
addSource,
|
|
4
4
|
getSourceSummary,
|
|
5
5
|
removeSource
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-45R64U2S.js";
|
|
7
|
+
import "./chunk-L6MTIQ2U.js";
|
|
8
8
|
import "./chunk-T4EXUIBY.js";
|
|
9
9
|
import "./chunk-BKL3DF2Q.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-R3AR4VLZ.js";
|
|
11
11
|
import "./chunk-EGMQ3SXN.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-KWB3B2HS.js";
|
|
13
13
|
import "./chunk-DHET7RCE.js";
|
|
14
14
|
export {
|
|
15
15
|
addSource,
|
|
16
16
|
getSourceSummary,
|
|
17
17
|
removeSource
|
|
18
18
|
};
|
|
19
|
-
//# sourceMappingURL=source-manager-
|
|
19
|
+
//# sourceMappingURL=source-manager-6G3EVTU2.js.map
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
createMockMatrix
|
|
5
|
-
|
|
6
|
-
} from "../chunk-MOMI77PL.js";
|
|
3
|
+
SKILLS,
|
|
4
|
+
createMockMatrix
|
|
5
|
+
} from "../chunk-N4D43IOO.js";
|
|
7
6
|
import {
|
|
8
7
|
describe,
|
|
9
8
|
globalExpect,
|
|
10
9
|
it
|
|
11
10
|
} from "../chunk-XY3XDVMI.js";
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-EULHBV5V.js";
|
|
12
|
+
import "../chunk-45R64U2S.js";
|
|
13
|
+
import "../chunk-L6MTIQ2U.js";
|
|
15
14
|
import "../chunk-T4EXUIBY.js";
|
|
16
15
|
import {
|
|
17
16
|
findSkill,
|
|
@@ -19,9 +18,9 @@ import {
|
|
|
19
18
|
getSkill,
|
|
20
19
|
useMatrixStore
|
|
21
20
|
} from "../chunk-BKL3DF2Q.js";
|
|
22
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-R3AR4VLZ.js";
|
|
23
22
|
import "../chunk-EGMQ3SXN.js";
|
|
24
|
-
import "../chunk-
|
|
23
|
+
import "../chunk-KWB3B2HS.js";
|
|
25
24
|
import {
|
|
26
25
|
init_esm_shims
|
|
27
26
|
} from "../chunk-DHET7RCE.js";
|
|
@@ -31,9 +30,7 @@ init_esm_shims();
|
|
|
31
30
|
describe("MatrixStore", () => {
|
|
32
31
|
describe("setMatrix and getMatrix", () => {
|
|
33
32
|
it("should store and retrieve the matrix", () => {
|
|
34
|
-
const matrix = createMockMatrix(
|
|
35
|
-
"web-framework-react": TEST_SKILLS.react
|
|
36
|
-
});
|
|
33
|
+
const matrix = createMockMatrix(SKILLS.react);
|
|
37
34
|
useMatrixStore.getState().setMatrix(matrix);
|
|
38
35
|
const retrieved = useMatrixStore.getState().getMatrix();
|
|
39
36
|
globalExpect(retrieved).toBe(matrix);
|
|
@@ -41,9 +38,7 @@ describe("MatrixStore", () => {
|
|
|
41
38
|
});
|
|
42
39
|
describe("reset", () => {
|
|
43
40
|
it("should clear the matrix back to null", () => {
|
|
44
|
-
const matrix = createMockMatrix(
|
|
45
|
-
"web-framework-react": TEST_SKILLS.react
|
|
46
|
-
});
|
|
41
|
+
const matrix = createMockMatrix(SKILLS.react);
|
|
47
42
|
useMatrixStore.getState().setMatrix(matrix);
|
|
48
43
|
useMatrixStore.getState().reset();
|
|
49
44
|
globalExpect(useMatrixStore.getState().matrix).toBeNull();
|
|
@@ -56,35 +51,27 @@ describe("MatrixStore", () => {
|
|
|
56
51
|
});
|
|
57
52
|
describe("getSkill", () => {
|
|
58
53
|
it("should return a skill by SkillId", () => {
|
|
59
|
-
const reactSkill =
|
|
60
|
-
const matrix = createMockMatrix(
|
|
61
|
-
"web-framework-react": reactSkill
|
|
62
|
-
});
|
|
54
|
+
const reactSkill = SKILLS.react;
|
|
55
|
+
const matrix = createMockMatrix(reactSkill);
|
|
63
56
|
useMatrixStore.getState().setMatrix(matrix);
|
|
64
57
|
const result = useMatrixStore.getState().getSkill("web-framework-react");
|
|
65
58
|
globalExpect(result).toBe(reactSkill);
|
|
66
59
|
});
|
|
67
60
|
it("should return a skill by SkillSlug via slugMap", () => {
|
|
68
|
-
const reactSkill =
|
|
69
|
-
const matrix = createMockMatrix(
|
|
70
|
-
"web-framework-react": reactSkill
|
|
71
|
-
});
|
|
61
|
+
const reactSkill = SKILLS.react;
|
|
62
|
+
const matrix = createMockMatrix(reactSkill);
|
|
72
63
|
useMatrixStore.getState().setMatrix(matrix);
|
|
73
64
|
const result = useMatrixStore.getState().getSkill("react");
|
|
74
65
|
globalExpect(result).toBe(reactSkill);
|
|
75
66
|
});
|
|
76
67
|
it("should return undefined for unknown ID", () => {
|
|
77
|
-
const matrix = createMockMatrix(
|
|
78
|
-
"web-framework-react": TEST_SKILLS.react
|
|
79
|
-
});
|
|
68
|
+
const matrix = createMockMatrix(SKILLS.react);
|
|
80
69
|
useMatrixStore.getState().setMatrix(matrix);
|
|
81
70
|
const result = useMatrixStore.getState().getSkill("web-framework-nonexistent");
|
|
82
71
|
globalExpect(result).toBeUndefined();
|
|
83
72
|
});
|
|
84
73
|
it("should return undefined for unknown slug", () => {
|
|
85
|
-
const matrix = createMockMatrix(
|
|
86
|
-
"web-framework-react": TEST_SKILLS.react
|
|
87
|
-
});
|
|
74
|
+
const matrix = createMockMatrix(SKILLS.react);
|
|
88
75
|
useMatrixStore.getState().setMatrix(matrix);
|
|
89
76
|
const result = useMatrixStore.getState().getSkill("nonexistent");
|
|
90
77
|
globalExpect(result).toBeUndefined();
|
|
@@ -96,44 +83,34 @@ describe("MatrixStore", () => {
|
|
|
96
83
|
});
|
|
97
84
|
describe("standalone selectors", () => {
|
|
98
85
|
it("should look up a skill via the standalone getSkill selector", () => {
|
|
99
|
-
const reactSkill =
|
|
100
|
-
const matrix = createMockMatrix(
|
|
101
|
-
"web-framework-react": reactSkill
|
|
102
|
-
});
|
|
86
|
+
const reactSkill = SKILLS.react;
|
|
87
|
+
const matrix = createMockMatrix(reactSkill);
|
|
103
88
|
useMatrixStore.getState().setMatrix(matrix);
|
|
104
89
|
const result = getSkill("web-framework-react");
|
|
105
90
|
globalExpect(result).toBe(reactSkill);
|
|
106
91
|
});
|
|
107
92
|
it("should return the matrix via the standalone getMatrix selector", () => {
|
|
108
|
-
const matrix = createMockMatrix(
|
|
109
|
-
"web-framework-react": TEST_SKILLS.react
|
|
110
|
-
});
|
|
93
|
+
const matrix = createMockMatrix(SKILLS.react);
|
|
111
94
|
useMatrixStore.getState().setMatrix(matrix);
|
|
112
95
|
const result = getMatrix();
|
|
113
96
|
globalExpect(result).toBe(matrix);
|
|
114
97
|
});
|
|
115
98
|
it("should throw via the standalone getSkill selector for missing skill", () => {
|
|
116
|
-
const matrix = createMockMatrix(
|
|
117
|
-
"web-framework-react": TEST_SKILLS.react
|
|
118
|
-
});
|
|
99
|
+
const matrix = createMockMatrix(SKILLS.react);
|
|
119
100
|
useMatrixStore.getState().setMatrix(matrix);
|
|
120
101
|
globalExpect(() => getSkill("web-framework-nonexistent")).toThrow(
|
|
121
102
|
"Skill 'web-framework-nonexistent' not found in matrix store"
|
|
122
103
|
);
|
|
123
104
|
});
|
|
124
105
|
it("should return undefined via findSkill for missing skill", () => {
|
|
125
|
-
const matrix = createMockMatrix(
|
|
126
|
-
"web-framework-react": TEST_SKILLS.react
|
|
127
|
-
});
|
|
106
|
+
const matrix = createMockMatrix(SKILLS.react);
|
|
128
107
|
useMatrixStore.getState().setMatrix(matrix);
|
|
129
108
|
const result = findSkill("web-framework-nonexistent");
|
|
130
109
|
globalExpect(result).toBeUndefined();
|
|
131
110
|
});
|
|
132
111
|
it("should return a skill via findSkill when found", () => {
|
|
133
|
-
const reactSkill =
|
|
134
|
-
const matrix = createMockMatrix(
|
|
135
|
-
"web-framework-react": reactSkill
|
|
136
|
-
});
|
|
112
|
+
const reactSkill = SKILLS.react;
|
|
113
|
+
const matrix = createMockMatrix(reactSkill);
|
|
137
114
|
useMatrixStore.getState().setMatrix(matrix);
|
|
138
115
|
const result = findSkill("web-framework-react");
|
|
139
116
|
globalExpect(result).toBe(reactSkill);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cli/stores/matrix-store.test.ts"],"sourcesContent":["import { describe, it, expect } from \"vitest\";\nimport { useMatrixStore, getSkill, getMatrix, findSkill } from \"./matrix-store\";\nimport { createMockMatrix,
|
|
1
|
+
{"version":3,"sources":["../../src/cli/stores/matrix-store.test.ts"],"sourcesContent":["import { describe, it, expect } from \"vitest\";\nimport { useMatrixStore, getSkill, getMatrix, findSkill } from \"./matrix-store\";\nimport { createMockMatrix, SKILLS } from \"../lib/__tests__/helpers\";\nimport type { SkillId, SkillSlug } from \"../types\";\n\ndescribe(\"MatrixStore\", () => {\n describe(\"setMatrix and getMatrix\", () => {\n it(\"should store and retrieve the matrix\", () => {\n const matrix = createMockMatrix(SKILLS.react);\n\n useMatrixStore.getState().setMatrix(matrix);\n\n const retrieved = useMatrixStore.getState().getMatrix();\n expect(retrieved).toBe(matrix);\n });\n });\n\n describe(\"reset\", () => {\n it(\"should clear the matrix back to null\", () => {\n const matrix = createMockMatrix(SKILLS.react);\n\n useMatrixStore.getState().setMatrix(matrix);\n useMatrixStore.getState().reset();\n\n expect(useMatrixStore.getState().matrix).toBeNull();\n });\n });\n\n describe(\"getMatrix\", () => {\n it(\"should throw when store is not populated\", () => {\n expect(() => useMatrixStore.getState().getMatrix()).toThrow(\"Matrix store not initialized\");\n });\n });\n\n describe(\"getSkill\", () => {\n it(\"should return a skill by SkillId\", () => {\n const reactSkill = SKILLS.react;\n const matrix = createMockMatrix(reactSkill);\n\n useMatrixStore.getState().setMatrix(matrix);\n\n const result = useMatrixStore.getState().getSkill(\"web-framework-react\");\n expect(result).toBe(reactSkill);\n });\n\n it(\"should return a skill by SkillSlug via slugMap\", () => {\n const reactSkill = SKILLS.react;\n const matrix = createMockMatrix(reactSkill);\n\n useMatrixStore.getState().setMatrix(matrix);\n\n const result = useMatrixStore.getState().getSkill(\"react\");\n expect(result).toBe(reactSkill);\n });\n\n it(\"should return undefined for unknown ID\", () => {\n const matrix = createMockMatrix(SKILLS.react);\n\n useMatrixStore.getState().setMatrix(matrix);\n\n const result = useMatrixStore.getState().getSkill(\"web-framework-nonexistent\" as SkillId);\n expect(result).toBeUndefined();\n });\n\n it(\"should return undefined for unknown slug\", () => {\n const matrix = createMockMatrix(SKILLS.react);\n\n useMatrixStore.getState().setMatrix(matrix);\n\n const result = useMatrixStore.getState().getSkill(\"nonexistent\" as SkillSlug);\n expect(result).toBeUndefined();\n });\n\n it(\"should return undefined when store is not populated\", () => {\n const result = useMatrixStore.getState().getSkill(\"web-framework-react\");\n expect(result).toBeUndefined();\n });\n });\n\n describe(\"standalone selectors\", () => {\n it(\"should look up a skill via the standalone getSkill selector\", () => {\n const reactSkill = SKILLS.react;\n const matrix = createMockMatrix(reactSkill);\n\n useMatrixStore.getState().setMatrix(matrix);\n\n const result = getSkill(\"web-framework-react\");\n expect(result).toBe(reactSkill);\n });\n\n it(\"should return the matrix via the standalone getMatrix selector\", () => {\n const matrix = createMockMatrix(SKILLS.react);\n\n useMatrixStore.getState().setMatrix(matrix);\n\n const result = getMatrix();\n expect(result).toBe(matrix);\n });\n\n it(\"should throw via the standalone getSkill selector for missing skill\", () => {\n const matrix = createMockMatrix(SKILLS.react);\n\n useMatrixStore.getState().setMatrix(matrix);\n\n expect(() => getSkill(\"web-framework-nonexistent\" as SkillId)).toThrow(\n \"Skill 'web-framework-nonexistent' not found in matrix store\",\n );\n });\n\n it(\"should return undefined via findSkill for missing skill\", () => {\n const matrix = createMockMatrix(SKILLS.react);\n\n useMatrixStore.getState().setMatrix(matrix);\n\n const result = findSkill(\"web-framework-nonexistent\" as SkillId);\n expect(result).toBeUndefined();\n });\n\n it(\"should return a skill via findSkill when found\", () => {\n const reactSkill = SKILLS.react;\n const matrix = createMockMatrix(reactSkill);\n\n useMatrixStore.getState().setMatrix(matrix);\n\n const result = findSkill(\"web-framework-react\");\n expect(result).toBe(reactSkill);\n });\n\n it(\"should throw via the standalone getMatrix selector when not populated\", () => {\n expect(() => getMatrix()).toThrow(\"Matrix store not initialized\");\n });\n });\n});\n"],"mappings":"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","names":[]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
useWizardStore
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-EULHBV5V.js";
|
|
5
|
+
import "../chunk-45R64U2S.js";
|
|
6
|
+
import "../chunk-L6MTIQ2U.js";
|
|
7
7
|
import "../chunk-T4EXUIBY.js";
|
|
8
8
|
import "../chunk-BKL3DF2Q.js";
|
|
9
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-R3AR4VLZ.js";
|
|
10
10
|
import "../chunk-EGMQ3SXN.js";
|
|
11
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-KWB3B2HS.js";
|
|
12
12
|
import "../chunk-DHET7RCE.js";
|
|
13
13
|
export {
|
|
14
14
|
useWizardStore
|