@agents-inc/cli 0.32.1 → 0.35.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 +24 -0
- package/README.md +7 -7
- package/config/skills-matrix.yaml +10 -10
- package/config/stacks.yaml +9 -9
- package/dist/{chunk-IZZ4IIEG.js → chunk-5LPPIT6H.js} +4 -4
- package/dist/{chunk-Z4TWOP3H.js → chunk-5YNZJ5TP.js} +2 -2
- package/dist/chunk-AQQVSNUX.js +33 -0
- package/dist/chunk-AQQVSNUX.js.map +1 -0
- package/dist/{chunk-ODUOU55D.js → chunk-BLLXNFWP.js} +2 -2
- package/dist/{chunk-YND42IXK.js → chunk-BPD4VUAU.js} +12 -10
- package/dist/chunk-BPD4VUAU.js.map +1 -0
- package/dist/{chunk-4RAY5AOI.js → chunk-CEWNZQMH.js} +3 -3
- package/dist/{chunk-WEUVWHMA.js → chunk-CXWPUVA7.js} +16 -11
- package/dist/chunk-CXWPUVA7.js.map +1 -0
- package/dist/{chunk-R74PZWQS.js → chunk-GGHH3KR2.js} +5 -5
- package/dist/chunk-GGHH3KR2.js.map +1 -0
- package/dist/chunk-HTTPKSL6.js +31 -0
- package/dist/chunk-HTTPKSL6.js.map +1 -0
- package/dist/{chunk-A27LOC4Z.js → chunk-IG7CUREJ.js} +3 -3
- package/dist/{chunk-FJQRVFMB.js → chunk-JXMRTHDT.js} +2 -2
- package/dist/{chunk-JMVWYAHT.js → chunk-KUV24B5M.js} +4 -4
- package/dist/chunk-KUV24B5M.js.map +1 -0
- package/dist/{chunk-B2UBHA66.js → chunk-KWF6D7ZP.js} +38 -36
- package/dist/chunk-KWF6D7ZP.js.map +1 -0
- package/dist/{chunk-IYG2LAIM.js → chunk-LFHZBF6N.js} +5 -17
- package/dist/chunk-LFHZBF6N.js.map +1 -0
- package/dist/{chunk-SO22IQPY.js → chunk-MZB3GGOH.js} +2 -2
- package/dist/chunk-MZB3GGOH.js.map +1 -0
- package/dist/{chunk-W2ZSCZ2U.js → chunk-NJ775OJ4.js} +4 -4
- package/dist/chunk-NVQEHRJY.js +120 -0
- package/dist/chunk-NVQEHRJY.js.map +1 -0
- package/dist/{chunk-LGUI3PMO.js → chunk-OGJ7DFCL.js} +9 -9
- package/dist/chunk-OGJ7DFCL.js.map +1 -0
- package/dist/{chunk-3ZOIOVKT.js → chunk-OGXSTJP2.js} +4 -4
- package/dist/chunk-OGXSTJP2.js.map +1 -0
- package/dist/{chunk-BZN2Z5P7.js → chunk-OI4WBRC7.js} +12 -3
- package/dist/chunk-OI4WBRC7.js.map +1 -0
- package/dist/{chunk-OGJIZ6QH.js → chunk-OKILA27U.js} +122 -232
- package/dist/chunk-OKILA27U.js.map +1 -0
- package/dist/{chunk-PBEHPQLK.js → chunk-PKUIO2Z7.js} +57 -21
- package/dist/chunk-PKUIO2Z7.js.map +1 -0
- package/dist/{chunk-5PIKNCZX.js → chunk-U36YCEBK.js} +79 -39
- package/dist/chunk-U36YCEBK.js.map +1 -0
- package/dist/{chunk-OMV7TLWD.js → chunk-UFUQUFV6.js} +23 -107
- package/dist/chunk-UFUQUFV6.js.map +1 -0
- package/dist/{chunk-R3XFQKPG.js → chunk-VEZ2GZEK.js} +2 -2
- package/dist/{chunk-MM7NK5N2.js → chunk-WMVGRAFB.js} +2896 -2945
- package/dist/chunk-WMVGRAFB.js.map +1 -0
- package/dist/{chunk-UX2H2K2G.js → chunk-XNQJBQ5X.js} +2 -2
- package/dist/{chunk-EMJ2ZKS7.js → chunk-XYCN2GCV.js} +3 -3
- package/dist/{chunk-LAPCUV4D.js → chunk-YCS7GF6Y.js} +2 -4
- package/dist/chunk-YCS7GF6Y.js.map +1 -0
- package/dist/{chunk-UICL22RT.js → chunk-YIKBNGE3.js} +4 -4
- package/dist/{chunk-BZQBJP34.js → chunk-YN35L5NE.js} +2 -2
- package/dist/chunk-YN35L5NE.js.map +1 -0
- package/dist/{chunk-QPTOIZAT.js → chunk-YPJKOM42.js} +2 -2
- package/dist/{chunk-FZGYSLJL.js → chunk-ZE355C6C.js} +2 -2
- 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 +20 -9
- 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 +5 -5
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/doctor.js +7 -7
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.js +35 -32
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +5 -5
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/import/skill.js +5 -5
- package/dist/commands/info.js +6 -6
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.js +37 -41
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.js +5 -5
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/new/agent.js +5 -5
- package/dist/commands/new/skill.js +5 -5
- package/dist/commands/new/skill.js.map +1 -1
- package/dist/commands/outdated.js +5 -5
- package/dist/commands/outdated.js.map +1 -1
- package/dist/commands/search.js +7 -7
- package/dist/commands/uninstall.js +105 -28
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.js +7 -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 +34 -66
- package/dist/components/wizard/category-grid.test.js.map +1 -1
- package/dist/components/wizard/domain-selection.js +5 -5
- 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 +3 -3
- package/dist/components/wizard/search-modal.test.js +3 -3
- 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 +4 -4
- package/dist/components/wizard/source-grid.test.js +4 -4
- package/dist/components/wizard/stack-selection.js +8 -8
- package/dist/components/wizard/step-build.js +8 -7
- package/dist/components/wizard/step-build.test.js +18 -17
- 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 +6 -6
- 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 +6 -6
- package/dist/components/wizard/step-settings.test.js +13 -13
- package/dist/components/wizard/step-settings.test.js.map +1 -1
- package/dist/components/wizard/step-sources.js +10 -9
- package/dist/components/wizard/step-sources.test.js +11 -10
- package/dist/components/wizard/step-sources.test.js.map +1 -1
- package/dist/components/wizard/step-stack.js +10 -10
- package/dist/components/wizard/step-stack.test.js +19 -23
- 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 +7 -7
- package/dist/components/wizard/wizard-tabs.js +2 -2
- package/dist/components/wizard/wizard-tabs.test.js +7 -8
- package/dist/components/wizard/wizard-tabs.test.js.map +1 -1
- package/dist/components/wizard/wizard.js +24 -23
- package/dist/config/skills-matrix.yaml +10 -10
- package/dist/config/stacks.yaml +9 -9
- package/dist/hooks/init.js +5 -3
- package/dist/hooks/init.js.map +1 -1
- package/dist/{source-manager-SBPPLOQQ.js → source-manager-PTK4P6BF.js} +4 -4
- package/dist/src/agents/developer/api-developer/agent.yaml +1 -1
- package/dist/src/agents/developer/cli-developer/agent.yaml +1 -1
- package/dist/src/agents/developer/web-architecture/agent.yaml +1 -1
- package/dist/src/agents/developer/web-developer/agent.yaml +1 -1
- package/dist/src/agents/meta/agent-summoner/agent.yaml +1 -1
- package/dist/src/agents/meta/agent-summoner/critical-reminders.md +1 -1
- package/dist/src/agents/meta/agent-summoner/critical-requirements.md +1 -1
- package/dist/src/agents/meta/agent-summoner/examples.md +2 -2
- package/dist/src/agents/meta/agent-summoner/workflow.md +3 -3
- package/dist/src/agents/meta/documentor/agent.yaml +1 -1
- package/dist/src/agents/meta/skill-summoner/agent.yaml +1 -1
- package/dist/src/agents/meta/skill-summoner/output-format.md +1 -1
- package/dist/src/agents/migration/cli-migrator/agent.yaml +1 -1
- package/dist/src/agents/pattern/pattern-scout/agent.yaml +1 -1
- package/dist/src/agents/pattern/web-pattern-critique/agent.yaml +1 -1
- package/dist/src/agents/planning/web-pm/agent.yaml +1 -1
- package/dist/src/agents/researcher/api-researcher/agent.yaml +1 -1
- package/dist/src/agents/researcher/web-researcher/agent.yaml +1 -1
- package/dist/src/agents/reviewer/api-reviewer/agent.yaml +1 -1
- package/dist/src/agents/reviewer/cli-reviewer/agent.yaml +1 -1
- package/dist/src/agents/reviewer/web-reviewer/agent.yaml +1 -1
- package/dist/src/agents/tester/cli-tester/agent.yaml +1 -1
- package/dist/src/agents/tester/web-tester/agent.yaml +1 -1
- package/dist/stores/wizard-store.js +4 -4
- package/dist/stores/wizard-store.test.js +5 -5
- package/package.json +8 -8
- package/src/agents/developer/api-developer/agent.yaml +1 -1
- package/src/agents/developer/cli-developer/agent.yaml +1 -1
- package/src/agents/developer/web-architecture/agent.yaml +1 -1
- package/src/agents/developer/web-developer/agent.yaml +1 -1
- package/src/agents/meta/agent-summoner/agent.yaml +1 -1
- package/src/agents/meta/agent-summoner/critical-reminders.md +1 -1
- package/src/agents/meta/agent-summoner/critical-requirements.md +1 -1
- package/src/agents/meta/agent-summoner/examples.md +2 -2
- package/src/agents/meta/agent-summoner/workflow.md +3 -3
- package/src/agents/meta/documentor/agent.yaml +1 -1
- package/src/agents/meta/skill-summoner/agent.yaml +1 -1
- package/src/agents/meta/skill-summoner/output-format.md +1 -1
- package/src/agents/migration/cli-migrator/agent.yaml +1 -1
- package/src/agents/pattern/pattern-scout/agent.yaml +1 -1
- package/src/agents/pattern/web-pattern-critique/agent.yaml +1 -1
- package/src/agents/planning/web-pm/agent.yaml +1 -1
- package/src/agents/researcher/api-researcher/agent.yaml +1 -1
- package/src/agents/researcher/web-researcher/agent.yaml +1 -1
- package/src/agents/reviewer/api-reviewer/agent.yaml +1 -1
- package/src/agents/reviewer/cli-reviewer/agent.yaml +1 -1
- package/src/agents/reviewer/web-reviewer/agent.yaml +1 -1
- package/src/agents/tester/cli-tester/agent.yaml +1 -1
- package/src/agents/tester/web-tester/agent.yaml +1 -1
- package/src/schemas/project-config.schema.json +3 -0
- package/src/schemas/project-source-config.schema.json +12 -0
- package/dist/chunk-3ZOIOVKT.js.map +0 -1
- package/dist/chunk-5PIKNCZX.js.map +0 -1
- package/dist/chunk-B2UBHA66.js.map +0 -1
- package/dist/chunk-BZN2Z5P7.js.map +0 -1
- package/dist/chunk-BZQBJP34.js.map +0 -1
- package/dist/chunk-H566H3MQ.js +0 -87
- package/dist/chunk-H566H3MQ.js.map +0 -1
- package/dist/chunk-IYG2LAIM.js.map +0 -1
- package/dist/chunk-JMVWYAHT.js.map +0 -1
- package/dist/chunk-LAPCUV4D.js.map +0 -1
- package/dist/chunk-LGUI3PMO.js.map +0 -1
- package/dist/chunk-MM7NK5N2.js.map +0 -1
- package/dist/chunk-O4D67NN7.js +0 -24
- package/dist/chunk-O4D67NN7.js.map +0 -1
- package/dist/chunk-OGJIZ6QH.js.map +0 -1
- package/dist/chunk-OMV7TLWD.js.map +0 -1
- package/dist/chunk-PBEHPQLK.js.map +0 -1
- package/dist/chunk-R74PZWQS.js.map +0 -1
- package/dist/chunk-SO22IQPY.js.map +0 -1
- package/dist/chunk-WEUVWHMA.js.map +0 -1
- package/dist/chunk-YND42IXK.js.map +0 -1
- /package/dist/{chunk-IZZ4IIEG.js.map → chunk-5LPPIT6H.js.map} +0 -0
- /package/dist/{chunk-Z4TWOP3H.js.map → chunk-5YNZJ5TP.js.map} +0 -0
- /package/dist/{chunk-ODUOU55D.js.map → chunk-BLLXNFWP.js.map} +0 -0
- /package/dist/{chunk-4RAY5AOI.js.map → chunk-CEWNZQMH.js.map} +0 -0
- /package/dist/{chunk-A27LOC4Z.js.map → chunk-IG7CUREJ.js.map} +0 -0
- /package/dist/{chunk-FJQRVFMB.js.map → chunk-JXMRTHDT.js.map} +0 -0
- /package/dist/{chunk-W2ZSCZ2U.js.map → chunk-NJ775OJ4.js.map} +0 -0
- /package/dist/{chunk-R3XFQKPG.js.map → chunk-VEZ2GZEK.js.map} +0 -0
- /package/dist/{chunk-UX2H2K2G.js.map → chunk-XNQJBQ5X.js.map} +0 -0
- /package/dist/{chunk-EMJ2ZKS7.js.map → chunk-XYCN2GCV.js.map} +0 -0
- /package/dist/{chunk-UICL22RT.js.map → chunk-YIKBNGE3.js.map} +0 -0
- /package/dist/{chunk-QPTOIZAT.js.map → chunk-YPJKOM42.js.map} +0 -0
- /package/dist/{chunk-FZGYSLJL.js.map → chunk-ZE355C6C.js.map} +0 -0
- /package/dist/{source-manager-SBPPLOQQ.js.map → source-manager-PTK4P6BF.js.map} +0 -0
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ERROR_MESSAGES
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-GGHH3KR2.js";
|
|
5
5
|
import {
|
|
6
6
|
BaseCommand,
|
|
7
7
|
EXIT_CODES
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-BLLXNFWP.js";
|
|
9
9
|
import {
|
|
10
10
|
extractFrontmatter,
|
|
11
11
|
printPluginValidationResult,
|
|
12
12
|
validateAllPlugins,
|
|
13
13
|
validatePlugin
|
|
14
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-WMVGRAFB.js";
|
|
15
15
|
import "../chunk-T4EXUIBY.js";
|
|
16
16
|
import {
|
|
17
17
|
agentFrontmatterValidationSchema,
|
|
@@ -27,12 +27,12 @@ import {
|
|
|
27
27
|
skillsMatrixConfigSchema,
|
|
28
28
|
stackConfigValidationSchema,
|
|
29
29
|
stacksConfigSchema
|
|
30
|
-
} from "../chunk-
|
|
30
|
+
} from "../chunk-OI4WBRC7.js";
|
|
31
31
|
import {
|
|
32
32
|
CLAUDE_DIR,
|
|
33
33
|
CLAUDE_SRC_DIR,
|
|
34
34
|
STANDARD_FILES
|
|
35
|
-
} from "../chunk-
|
|
35
|
+
} from "../chunk-YCS7GF6Y.js";
|
|
36
36
|
import {
|
|
37
37
|
init_esm_shims
|
|
38
38
|
} from "../chunk-DHET7RCE.js";
|
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
import {
|
|
3
3
|
BaseCommand,
|
|
4
4
|
EXIT_CODES
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-BLLXNFWP.js";
|
|
6
6
|
import {
|
|
7
7
|
bumpPluginVersion,
|
|
8
8
|
findPluginManifest
|
|
9
|
-
} from "../../chunk-
|
|
9
|
+
} from "../../chunk-WMVGRAFB.js";
|
|
10
10
|
import "../../chunk-T4EXUIBY.js";
|
|
11
11
|
import {
|
|
12
12
|
pluginManifestSchema,
|
|
13
13
|
readFile
|
|
14
|
-
} from "../../chunk-
|
|
14
|
+
} from "../../chunk-OI4WBRC7.js";
|
|
15
15
|
import {
|
|
16
16
|
PLUGIN_MANIFEST_DIR,
|
|
17
17
|
PLUGIN_MANIFEST_FILE
|
|
18
|
-
} from "../../chunk-
|
|
18
|
+
} from "../../chunk-YCS7GF6Y.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esm_shims
|
|
21
21
|
} from "../../chunk-DHET7RCE.js";
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
import {
|
|
3
3
|
BaseCommand,
|
|
4
4
|
EXIT_CODES
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-BLLXNFWP.js";
|
|
6
6
|
import {
|
|
7
7
|
findPluginManifest,
|
|
8
8
|
getPluginVersion
|
|
9
|
-
} from "../../chunk-
|
|
9
|
+
} from "../../chunk-WMVGRAFB.js";
|
|
10
10
|
import "../../chunk-T4EXUIBY.js";
|
|
11
|
-
import "../../chunk-
|
|
11
|
+
import "../../chunk-OI4WBRC7.js";
|
|
12
12
|
import {
|
|
13
13
|
PLUGIN_MANIFEST_DIR,
|
|
14
14
|
PLUGIN_MANIFEST_FILE
|
|
15
|
-
} from "../../chunk-
|
|
15
|
+
} from "../../chunk-YCS7GF6Y.js";
|
|
16
16
|
import {
|
|
17
17
|
init_esm_shims
|
|
18
18
|
} from "../../chunk-DHET7RCE.js";
|
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
import {
|
|
3
3
|
BaseCommand,
|
|
4
4
|
EXIT_CODES
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-BLLXNFWP.js";
|
|
6
6
|
import {
|
|
7
7
|
findPluginManifest
|
|
8
|
-
} from "../../chunk-
|
|
8
|
+
} from "../../chunk-WMVGRAFB.js";
|
|
9
9
|
import "../../chunk-T4EXUIBY.js";
|
|
10
10
|
import {
|
|
11
11
|
pluginManifestSchema,
|
|
12
12
|
readFile,
|
|
13
13
|
writeFile
|
|
14
|
-
} from "../../chunk-
|
|
14
|
+
} from "../../chunk-OI4WBRC7.js";
|
|
15
15
|
import {
|
|
16
16
|
PLUGIN_MANIFEST_DIR,
|
|
17
17
|
PLUGIN_MANIFEST_FILE
|
|
18
|
-
} from "../../chunk-
|
|
18
|
+
} from "../../chunk-YCS7GF6Y.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esm_shims
|
|
21
21
|
} from "../../chunk-DHET7RCE.js";
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
import {
|
|
3
3
|
BaseCommand,
|
|
4
4
|
EXIT_CODES
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-BLLXNFWP.js";
|
|
6
6
|
import {
|
|
7
7
|
findPluginManifest,
|
|
8
8
|
getPluginVersion
|
|
9
|
-
} from "../../chunk-
|
|
9
|
+
} from "../../chunk-WMVGRAFB.js";
|
|
10
10
|
import "../../chunk-T4EXUIBY.js";
|
|
11
|
-
import "../../chunk-
|
|
11
|
+
import "../../chunk-OI4WBRC7.js";
|
|
12
12
|
import {
|
|
13
13
|
PLUGIN_MANIFEST_DIR,
|
|
14
14
|
PLUGIN_MANIFEST_FILE
|
|
15
|
-
} from "../../chunk-
|
|
15
|
+
} from "../../chunk-YCS7GF6Y.js";
|
|
16
16
|
import {
|
|
17
17
|
init_esm_shims
|
|
18
18
|
} from "../../chunk-DHET7RCE.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
SkillSearch
|
|
4
|
-
} from "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
4
|
+
} from "../../chunk-XYCN2GCV.js";
|
|
5
|
+
import "../../chunk-5YNZJ5TP.js";
|
|
6
6
|
import "../../chunk-U3IGFMCY.js";
|
|
7
|
-
import "../../chunk-
|
|
7
|
+
import "../../chunk-YCS7GF6Y.js";
|
|
8
8
|
import "../../chunk-DHET7RCE.js";
|
|
9
9
|
export {
|
|
10
10
|
SkillSearch
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
CategoryGrid
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-OKILA27U.js";
|
|
5
5
|
import "../../chunk-DC5AK3LW.js";
|
|
6
|
-
import "../../chunk-
|
|
6
|
+
import "../../chunk-YCS7GF6Y.js";
|
|
7
7
|
import "../../chunk-DHET7RCE.js";
|
|
8
8
|
export {
|
|
9
9
|
CategoryGrid
|
|
@@ -21,11 +21,9 @@ import {
|
|
|
21
21
|
} from "../../chunk-XY3XDVMI.js";
|
|
22
22
|
import {
|
|
23
23
|
CategoryGrid
|
|
24
|
-
} from "../../chunk-
|
|
24
|
+
} from "../../chunk-OKILA27U.js";
|
|
25
25
|
import "../../chunk-DC5AK3LW.js";
|
|
26
|
-
import
|
|
27
|
-
UI_SYMBOLS
|
|
28
|
-
} from "../../chunk-LAPCUV4D.js";
|
|
26
|
+
import "../../chunk-YCS7GF6Y.js";
|
|
29
27
|
import {
|
|
30
28
|
init_esm_shims
|
|
31
29
|
} from "../../chunk-DHET7RCE.js";
|
|
@@ -230,7 +228,7 @@ describe("CategoryGrid component", () => {
|
|
|
230
228
|
const output = lastFrame();
|
|
231
229
|
globalExpect(output).toContain("Option 2");
|
|
232
230
|
});
|
|
233
|
-
it("should
|
|
231
|
+
it("should render selected skills with label text", () => {
|
|
234
232
|
const categories = [
|
|
235
233
|
createCategory("forms", "Forms", [
|
|
236
234
|
createOption("web-test-opt1", "Selected Skill", { selected: true })
|
|
@@ -239,10 +237,9 @@ describe("CategoryGrid component", () => {
|
|
|
239
237
|
const { lastFrame, unmount } = renderGrid({ categories });
|
|
240
238
|
cleanup = unmount;
|
|
241
239
|
const output = lastFrame();
|
|
242
|
-
globalExpect(output).toContain(UI_SYMBOLS.SELECTED);
|
|
243
240
|
globalExpect(output).toContain("Selected Skill");
|
|
244
241
|
});
|
|
245
|
-
it("should
|
|
242
|
+
it("should render unselected skills with label text", () => {
|
|
246
243
|
const categories = [
|
|
247
244
|
createCategory("forms", "Forms", [
|
|
248
245
|
createOption("web-test-opt1", "Unselected Skill", { state: "normal", selected: false })
|
|
@@ -251,10 +248,9 @@ describe("CategoryGrid component", () => {
|
|
|
251
248
|
const { lastFrame, unmount } = renderGrid({ categories });
|
|
252
249
|
cleanup = unmount;
|
|
253
250
|
const output = lastFrame();
|
|
254
|
-
globalExpect(output).toContain(UI_SYMBOLS.UNSELECTED);
|
|
255
251
|
globalExpect(output).toContain("Unselected Skill");
|
|
256
252
|
});
|
|
257
|
-
it("should
|
|
253
|
+
it("should render disabled skills with label text", () => {
|
|
258
254
|
const categories = [
|
|
259
255
|
createCategory("forms", "Forms", [
|
|
260
256
|
createOption("web-test-opt1", "Disabled Skill", { state: "disabled" })
|
|
@@ -263,10 +259,9 @@ describe("CategoryGrid component", () => {
|
|
|
263
259
|
const { lastFrame, unmount } = renderGrid({ categories });
|
|
264
260
|
cleanup = unmount;
|
|
265
261
|
const output = lastFrame();
|
|
266
|
-
globalExpect(output).toContain(UI_SYMBOLS.DISABLED);
|
|
267
262
|
globalExpect(output).toContain("Disabled Skill");
|
|
268
263
|
});
|
|
269
|
-
it("should
|
|
264
|
+
it("should render discouraged skills with label text", () => {
|
|
270
265
|
const categories = [
|
|
271
266
|
createCategory("forms", "Forms", [
|
|
272
267
|
createOption("web-test-opt1", "Discouraged Skill", { state: "discouraged" })
|
|
@@ -275,10 +270,9 @@ describe("CategoryGrid component", () => {
|
|
|
275
270
|
const { lastFrame, unmount } = renderGrid({ categories });
|
|
276
271
|
cleanup = unmount;
|
|
277
272
|
const output = lastFrame();
|
|
278
|
-
globalExpect(output).toContain(UI_SYMBOLS.DISCOURAGED);
|
|
279
273
|
globalExpect(output).toContain("Discouraged Skill");
|
|
280
274
|
});
|
|
281
|
-
it("should
|
|
275
|
+
it("should render both selected and unselected skills with labels", () => {
|
|
282
276
|
const categories = [
|
|
283
277
|
createCategory("forms", "Forms", [
|
|
284
278
|
createOption("web-test-opt1", "Active", { selected: true }),
|
|
@@ -288,12 +282,10 @@ describe("CategoryGrid component", () => {
|
|
|
288
282
|
const { lastFrame, unmount } = renderGrid({ categories, expertMode: true });
|
|
289
283
|
cleanup = unmount;
|
|
290
284
|
const output = lastFrame();
|
|
291
|
-
globalExpect(output).toContain(UI_SYMBOLS.SELECTED);
|
|
292
|
-
globalExpect(output).toContain(UI_SYMBOLS.UNSELECTED);
|
|
293
285
|
globalExpect(output).toContain("Active");
|
|
294
286
|
globalExpect(output).toContain("Inactive");
|
|
295
287
|
});
|
|
296
|
-
it("should
|
|
288
|
+
it("should render skill label regardless of selection state", () => {
|
|
297
289
|
const categories1 = [
|
|
298
290
|
createCategory("forms", "Forms", [
|
|
299
291
|
createOption("web-test-opt1", "Toggle Skill", { selected: false })
|
|
@@ -310,9 +302,8 @@ describe("CategoryGrid component", () => {
|
|
|
310
302
|
const { lastFrame: frame2, unmount: unmount2 } = renderGrid({ categories: categories2 });
|
|
311
303
|
cleanup = unmount2;
|
|
312
304
|
const output2 = frame2();
|
|
313
|
-
globalExpect(output1).toContain(
|
|
314
|
-
globalExpect(
|
|
315
|
-
globalExpect(output2).toContain(UI_SYMBOLS.SELECTED);
|
|
305
|
+
globalExpect(output1).toContain("Toggle Skill");
|
|
306
|
+
globalExpect(output2).toContain("Toggle Skill");
|
|
316
307
|
});
|
|
317
308
|
});
|
|
318
309
|
describe("locked sections", () => {
|
|
@@ -619,7 +610,7 @@ describe("CategoryGrid component", () => {
|
|
|
619
610
|
});
|
|
620
611
|
});
|
|
621
612
|
describe("disabled options navigation", () => {
|
|
622
|
-
it("should
|
|
613
|
+
it("should navigate to disabled options when navigating right", async () => {
|
|
623
614
|
const onFocusChange = vi.fn();
|
|
624
615
|
const categories = [
|
|
625
616
|
createCategory("testing", "Test", [
|
|
@@ -639,9 +630,9 @@ describe("CategoryGrid component", () => {
|
|
|
639
630
|
await delay(RENDER_DELAY_MS);
|
|
640
631
|
await stdin.write(ARROW_RIGHT);
|
|
641
632
|
await delay(INPUT_DELAY_MS);
|
|
642
|
-
globalExpect(onFocusChange).toHaveBeenCalledWith(0,
|
|
633
|
+
globalExpect(onFocusChange).toHaveBeenCalledWith(0, 1);
|
|
643
634
|
});
|
|
644
|
-
it("should
|
|
635
|
+
it("should navigate to disabled options when navigating left", async () => {
|
|
645
636
|
const onFocusChange = vi.fn();
|
|
646
637
|
const categories = [
|
|
647
638
|
createCategory("testing", "Test", [
|
|
@@ -654,7 +645,7 @@ describe("CategoryGrid component", () => {
|
|
|
654
645
|
categories,
|
|
655
646
|
defaultFocusedRow: 0,
|
|
656
647
|
defaultFocusedCol: 2,
|
|
657
|
-
// Start at
|
|
648
|
+
// Start at opt2 (disabled, sorted to end)
|
|
658
649
|
expertMode: true,
|
|
659
650
|
onFocusChange
|
|
660
651
|
});
|
|
@@ -662,9 +653,9 @@ describe("CategoryGrid component", () => {
|
|
|
662
653
|
await delay(RENDER_DELAY_MS);
|
|
663
654
|
await stdin.write(ARROW_LEFT);
|
|
664
655
|
await delay(INPUT_DELAY_MS);
|
|
665
|
-
globalExpect(onFocusChange).toHaveBeenCalledWith(0,
|
|
656
|
+
globalExpect(onFocusChange).toHaveBeenCalledWith(0, 1);
|
|
666
657
|
});
|
|
667
|
-
it("should
|
|
658
|
+
it("should navigate between all-disabled options in a row", async () => {
|
|
668
659
|
const onFocusChange = vi.fn();
|
|
669
660
|
const categories = [
|
|
670
661
|
createCategory("testing", "Test", [
|
|
@@ -683,7 +674,7 @@ describe("CategoryGrid component", () => {
|
|
|
683
674
|
await delay(RENDER_DELAY_MS);
|
|
684
675
|
await stdin.write(ARROW_RIGHT);
|
|
685
676
|
await delay(INPUT_DELAY_MS);
|
|
686
|
-
globalExpect(onFocusChange).toHaveBeenCalledWith(0,
|
|
677
|
+
globalExpect(onFocusChange).toHaveBeenCalledWith(0, 1);
|
|
687
678
|
});
|
|
688
679
|
});
|
|
689
680
|
describe("exclusive categories", () => {
|
|
@@ -765,13 +756,13 @@ describe("CategoryGrid component", () => {
|
|
|
765
756
|
});
|
|
766
757
|
});
|
|
767
758
|
describe("option ordering", () => {
|
|
768
|
-
it("should
|
|
759
|
+
it("should preserve original order regardless of state", () => {
|
|
769
760
|
const { lastFrame, unmount } = renderGrid({ expertMode: false });
|
|
770
761
|
cleanup = unmount;
|
|
771
762
|
const output = lastFrame();
|
|
772
763
|
globalExpect(output).toBeDefined();
|
|
773
764
|
});
|
|
774
|
-
it("should preserve original order
|
|
765
|
+
it("should preserve original order in expert mode", () => {
|
|
775
766
|
const { lastFrame, unmount } = renderGrid({ expertMode: true });
|
|
776
767
|
cleanup = unmount;
|
|
777
768
|
const output = lastFrame();
|
|
@@ -875,8 +866,8 @@ describe("CategoryGrid component", () => {
|
|
|
875
866
|
globalExpect(onFocusChange).toHaveBeenCalledWith(1, 0);
|
|
876
867
|
});
|
|
877
868
|
});
|
|
878
|
-
describe("installed
|
|
879
|
-
it("should
|
|
869
|
+
describe("installed skills", () => {
|
|
870
|
+
it("should render installed skill with label only (no checkmark icon)", () => {
|
|
880
871
|
const categories = [
|
|
881
872
|
createCategory("forms", "Forms", [
|
|
882
873
|
createOption("web-test-opt1", "Option 1", { installed: true })
|
|
@@ -885,20 +876,10 @@ describe("CategoryGrid component", () => {
|
|
|
885
876
|
const { lastFrame, unmount } = renderGrid({ categories });
|
|
886
877
|
cleanup = unmount;
|
|
887
878
|
const output = lastFrame();
|
|
888
|
-
globalExpect(output).toContain("\u2713");
|
|
889
|
-
globalExpect(output).toContain("Option 1");
|
|
890
|
-
});
|
|
891
|
-
it("should NOT show checkmark for non-installed skill", () => {
|
|
892
|
-
const categories = [
|
|
893
|
-
createCategory("forms", "Forms", [createOption("web-test-opt1", "Option 1")])
|
|
894
|
-
];
|
|
895
|
-
const { lastFrame, unmount } = renderGrid({ categories });
|
|
896
|
-
cleanup = unmount;
|
|
897
|
-
const output = lastFrame();
|
|
898
879
|
globalExpect(output).not.toContain("\u2713");
|
|
899
880
|
globalExpect(output).toContain("Option 1");
|
|
900
881
|
});
|
|
901
|
-
it("should
|
|
882
|
+
it("should render installed and selected skill with label only", () => {
|
|
902
883
|
const categories = [
|
|
903
884
|
createCategory("forms", "Forms", [
|
|
904
885
|
createOption("web-test-opt1", "Option 1", { installed: true, selected: true })
|
|
@@ -907,10 +888,10 @@ describe("CategoryGrid component", () => {
|
|
|
907
888
|
const { lastFrame, unmount } = renderGrid({ categories });
|
|
908
889
|
cleanup = unmount;
|
|
909
890
|
const output = lastFrame();
|
|
910
|
-
globalExpect(output).toContain("\u2713");
|
|
891
|
+
globalExpect(output).not.toContain("\u2713");
|
|
911
892
|
globalExpect(output).toContain("Option 1");
|
|
912
893
|
});
|
|
913
|
-
it("should show
|
|
894
|
+
it("should show L badge but no checkmark when local and installed", () => {
|
|
914
895
|
const categories = [
|
|
915
896
|
createCategory("forms", "Forms", [
|
|
916
897
|
createOption("web-test-opt1", "Option 1", { local: true, installed: true })
|
|
@@ -920,12 +901,12 @@ describe("CategoryGrid component", () => {
|
|
|
920
901
|
cleanup = unmount;
|
|
921
902
|
const output = lastFrame();
|
|
922
903
|
globalExpect(output).toContain("L");
|
|
923
|
-
globalExpect(output).toContain("\u2713");
|
|
904
|
+
globalExpect(output).not.toContain("\u2713");
|
|
924
905
|
globalExpect(output).toContain("Option 1");
|
|
925
906
|
});
|
|
926
907
|
});
|
|
927
|
-
describe("scroll
|
|
928
|
-
it("should render all categories
|
|
908
|
+
describe("natural flow (no virtual scroll)", () => {
|
|
909
|
+
it("should render all categories without scroll indicators", () => {
|
|
929
910
|
const { lastFrame, unmount } = renderGrid();
|
|
930
911
|
cleanup = unmount;
|
|
931
912
|
const output = lastFrame();
|
|
@@ -936,7 +917,7 @@ describe("CategoryGrid component", () => {
|
|
|
936
917
|
globalExpect(output).toContain("Analytics");
|
|
937
918
|
globalExpect(output).not.toContain("more categories");
|
|
938
919
|
});
|
|
939
|
-
it("should render
|
|
920
|
+
it("should render all categories even with many entries", () => {
|
|
940
921
|
const manyCategories = Array.from(
|
|
941
922
|
{ length: 8 },
|
|
942
923
|
(_, i) => createCategory(`cat-${i}`, `Category ${i}`, [
|
|
@@ -946,27 +927,16 @@ describe("CategoryGrid component", () => {
|
|
|
946
927
|
])
|
|
947
928
|
);
|
|
948
929
|
const { lastFrame, unmount } = renderGrid({
|
|
949
|
-
categories: manyCategories
|
|
950
|
-
availableHeight: 8,
|
|
951
|
-
terminalWidth: 120
|
|
930
|
+
categories: manyCategories
|
|
952
931
|
});
|
|
953
932
|
cleanup = unmount;
|
|
954
933
|
const output = lastFrame();
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
createCategory("forms", "Forms", [createOption("web-test-opt1", "A")])
|
|
960
|
-
];
|
|
961
|
-
const { lastFrame, unmount } = renderGrid({
|
|
962
|
-
categories,
|
|
963
|
-
availableHeight: 100,
|
|
964
|
-
terminalWidth: 120
|
|
965
|
-
});
|
|
966
|
-
cleanup = unmount;
|
|
967
|
-
globalExpect(lastFrame()).not.toContain("more categories");
|
|
934
|
+
for (let i = 0; i < 8; i++) {
|
|
935
|
+
globalExpect(output).toContain(`Category ${i}`);
|
|
936
|
+
}
|
|
937
|
+
globalExpect(output).not.toContain("more categories");
|
|
968
938
|
});
|
|
969
|
-
it("should keep focused category visible when
|
|
939
|
+
it("should keep focused category visible when navigating down", async () => {
|
|
970
940
|
const onFocusChange = vi.fn();
|
|
971
941
|
const manyCategories = Array.from(
|
|
972
942
|
{ length: 6 },
|
|
@@ -976,8 +946,6 @@ describe("CategoryGrid component", () => {
|
|
|
976
946
|
);
|
|
977
947
|
const { stdin, lastFrame, unmount } = renderGrid({
|
|
978
948
|
categories: manyCategories,
|
|
979
|
-
availableHeight: 8,
|
|
980
|
-
terminalWidth: 120,
|
|
981
949
|
defaultFocusedRow: 0,
|
|
982
950
|
onFocusChange
|
|
983
951
|
});
|