@agents-inc/cli 0.32.1 → 0.34.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 +16 -0
- package/README.md +7 -7
- package/config/skills-matrix.yaml +1 -1
- package/config/stacks.yaml +1 -1
- package/dist/{chunk-OMV7TLWD.js → chunk-2LUXM5FB.js} +26 -89
- package/dist/chunk-2LUXM5FB.js.map +1 -0
- package/dist/{chunk-Z4TWOP3H.js → chunk-5YNZJ5TP.js} +2 -2
- package/dist/{chunk-UX2H2K2G.js → chunk-A5CYQQVG.js} +2 -2
- package/dist/chunk-ALS7SH7X.js +120 -0
- package/dist/chunk-ALS7SH7X.js.map +1 -0
- package/dist/{chunk-BZQBJP34.js → chunk-ANGAZ444.js} +2 -2
- package/dist/{chunk-IZZ4IIEG.js → chunk-B47QYIUL.js} +4 -4
- package/dist/{chunk-5PIKNCZX.js → chunk-CB7GYRUP.js} +5 -5
- package/dist/{chunk-4RAY5AOI.js → chunk-CEWNZQMH.js} +3 -3
- package/dist/{chunk-R74PZWQS.js → chunk-GGHH3KR2.js} +5 -5
- package/dist/chunk-GGHH3KR2.js.map +1 -0
- package/dist/{chunk-UICL22RT.js → chunk-GIFEDW27.js} +4 -4
- package/dist/{chunk-ODUOU55D.js → chunk-GVMA2EKC.js} +2 -2
- package/dist/chunk-HTTPKSL6.js +31 -0
- package/dist/chunk-HTTPKSL6.js.map +1 -0
- package/dist/{chunk-FJQRVFMB.js → chunk-JXMRTHDT.js} +2 -2
- package/dist/{chunk-PBEHPQLK.js → chunk-JZOLJVWA.js} +55 -20
- package/dist/chunk-JZOLJVWA.js.map +1 -0
- package/dist/{chunk-YND42IXK.js → chunk-KENWMEKN.js} +11 -9
- package/dist/chunk-KENWMEKN.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-BZN2Z5P7.js → chunk-NLR6Z37M.js} +1 -1
- package/dist/chunk-NLR6Z37M.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-A27LOC4Z.js → chunk-QC37C32G.js} +2 -2
- package/dist/{chunk-3ZOIOVKT.js → chunk-R3AD6XBJ.js} +4 -4
- package/dist/chunk-R3AD6XBJ.js.map +1 -0
- package/dist/{chunk-LGUI3PMO.js → chunk-TKB4O2RY.js} +9 -9
- package/dist/chunk-TKB4O2RY.js.map +1 -0
- package/dist/{chunk-MM7NK5N2.js → chunk-TM4I4EHK.js} +5 -13
- package/dist/chunk-TM4I4EHK.js.map +1 -0
- package/dist/{chunk-R3XFQKPG.js → chunk-VEZ2GZEK.js} +2 -2
- package/dist/{chunk-WEUVWHMA.js → chunk-X7SPCWY6.js} +8 -8
- 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-QPTOIZAT.js → chunk-YPJKOM42.js} +2 -2
- package/dist/{chunk-FZGYSLJL.js → chunk-ZE355C6C.js} +2 -2
- package/dist/{chunk-B2UBHA66.js → chunk-ZI5EBHCC.js} +26 -35
- package/dist/chunk-ZI5EBHCC.js.map +1 -0
- package/dist/{chunk-W2ZSCZ2U.js → chunk-ZP4BI6J2.js} +4 -4
- 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 +7 -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 +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 +28 -31
- 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 +35 -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 +6 -6
- 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 +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 +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 +7 -7
- package/dist/components/wizard/step-build.test.js +17 -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 +5 -5
- package/dist/components/wizard/step-settings.test.js +12 -12
- package/dist/components/wizard/step-settings.test.js.map +1 -1
- package/dist/components/wizard/step-sources.js +9 -9
- package/dist/components/wizard/step-sources.test.js +10 -10
- 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 +23 -23
- package/dist/config/skills-matrix.yaml +1 -1
- package/dist/config/stacks.yaml +1 -1
- package/dist/hooks/init.js +3 -3
- package/dist/{source-manager-SBPPLOQQ.js → source-manager-WJYANKDI.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/dist/chunk-3ZOIOVKT.js.map +0 -1
- package/dist/chunk-B2UBHA66.js.map +0 -1
- package/dist/chunk-BZN2Z5P7.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-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-YND42IXK.js.map +0 -1
- /package/dist/{chunk-Z4TWOP3H.js.map → chunk-5YNZJ5TP.js.map} +0 -0
- /package/dist/{chunk-UX2H2K2G.js.map → chunk-A5CYQQVG.js.map} +0 -0
- /package/dist/{chunk-BZQBJP34.js.map → chunk-ANGAZ444.js.map} +0 -0
- /package/dist/{chunk-IZZ4IIEG.js.map → chunk-B47QYIUL.js.map} +0 -0
- /package/dist/{chunk-5PIKNCZX.js.map → chunk-CB7GYRUP.js.map} +0 -0
- /package/dist/{chunk-4RAY5AOI.js.map → chunk-CEWNZQMH.js.map} +0 -0
- /package/dist/{chunk-UICL22RT.js.map → chunk-GIFEDW27.js.map} +0 -0
- /package/dist/{chunk-ODUOU55D.js.map → chunk-GVMA2EKC.js.map} +0 -0
- /package/dist/{chunk-FJQRVFMB.js.map → chunk-JXMRTHDT.js.map} +0 -0
- /package/dist/{chunk-A27LOC4Z.js.map → chunk-QC37C32G.js.map} +0 -0
- /package/dist/{chunk-R3XFQKPG.js.map → chunk-VEZ2GZEK.js.map} +0 -0
- /package/dist/{chunk-WEUVWHMA.js.map → chunk-X7SPCWY6.js.map} +0 -0
- /package/dist/{chunk-EMJ2ZKS7.js.map → chunk-XYCN2GCV.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/{chunk-W2ZSCZ2U.js.map → chunk-ZP4BI6J2.js.map} +0 -0
- /package/dist/{source-manager-SBPPLOQQ.js.map → source-manager-WJYANKDI.js.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
+
## [0.34.1] - 2026-02-17
|
|
13
|
+
|
|
14
|
+
**Code formatting**
|
|
15
|
+
|
|
16
|
+
Prettier applied across wizard components.
|
|
17
|
+
|
|
18
|
+
See [changelogs/0.34.1.md](./changelogs/0.34.1.md) for full details.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## [0.34.0] - 2026-02-17
|
|
23
|
+
|
|
24
|
+
**Wizard UX overhaul — layout, scrolling, navigation, and visual redesign**
|
|
25
|
+
|
|
26
|
+
See [changelogs/0.34.0.md](./changelogs/0.34.0.md) for full details.
|
|
27
|
+
|
|
12
28
|
## [0.32.1] - 2026-02-16
|
|
13
29
|
|
|
14
30
|
**Code formatting cleanup (Prettier consistency)**
|
package/README.md
CHANGED
|
@@ -108,7 +108,7 @@ npx @agents-inc/cli init
|
|
|
108
108
|
# installs locally to ./.claude/skills/ in your repo
|
|
109
109
|
```
|
|
110
110
|
|
|
111
|
-
both modes compile agents and generate a config at `.claude-src/config.yaml`. use `
|
|
111
|
+
both modes compile agents and generate a config at `.claude-src/config.yaml`. use `agentsinc edit` to change skills after initial setup.
|
|
112
112
|
|
|
113
113
|
## multi-source setup
|
|
114
114
|
|
|
@@ -118,16 +118,16 @@ you can install skills from multiple sources. the wizard supports adding extra m
|
|
|
118
118
|
- add marketplace URLs (e.g. `github:your-org/custom-marketplace`)
|
|
119
119
|
- skills from all sources appear in the selection grid, tagged by origin
|
|
120
120
|
|
|
121
|
-
you can also manage sources after setup with `
|
|
121
|
+
you can also manage sources after setup with `agentsinc edit` (same `G` hotkey).
|
|
122
122
|
|
|
123
123
|
to search across all configured sources:
|
|
124
124
|
|
|
125
125
|
```bash
|
|
126
126
|
# interactive search across all sources
|
|
127
|
-
|
|
127
|
+
agentsinc search
|
|
128
128
|
|
|
129
129
|
# static search with a query
|
|
130
|
-
|
|
130
|
+
agentsinc search react
|
|
131
131
|
```
|
|
132
132
|
|
|
133
133
|
## importing third-party skills
|
|
@@ -136,13 +136,13 @@ import skills from any GitHub repository into your local setup:
|
|
|
136
136
|
|
|
137
137
|
```bash
|
|
138
138
|
# list available skills from a repository
|
|
139
|
-
|
|
139
|
+
agentsinc import skill github:vercel-labs/agent-skills --list
|
|
140
140
|
|
|
141
141
|
# import a specific skill
|
|
142
|
-
|
|
142
|
+
agentsinc import skill github:vercel-labs/agent-skills --skill react-best-practices
|
|
143
143
|
|
|
144
144
|
# import all skills from a repository
|
|
145
|
-
|
|
145
|
+
agentsinc import skill github:vercel-labs/agent-skills --all
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
imported skills are copied to `.claude/skills/` and tracked with metadata for future updates.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# yaml-language-server: $schema=https://raw.githubusercontent.com/
|
|
1
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/agents-inc/cli/main/src/schemas/skills-matrix.schema.json
|
|
2
2
|
# =============================================================================
|
|
3
3
|
# skills-matrix.yaml
|
|
4
4
|
# Full skills matrix for CLI data-driven architecture
|
package/config/stacks.yaml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# yaml-language-server: $schema=https://raw.githubusercontent.com/
|
|
1
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/agents-inc/cli/main/src/schemas/stacks.schema.json
|
|
2
2
|
# Stack definitions - agent groupings with technology mappings for different workflows
|
|
3
3
|
|
|
4
4
|
stacks:
|
|
@@ -1,29 +1,27 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
ViewTitle
|
|
4
|
-
} from "./chunk-O4D67NN7.js";
|
|
5
2
|
import {
|
|
6
3
|
getDomainDisplayName
|
|
7
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MZB3GGOH.js";
|
|
5
|
+
import {
|
|
6
|
+
ViewTitle
|
|
7
|
+
} from "./chunk-HTTPKSL6.js";
|
|
8
8
|
import {
|
|
9
9
|
CategoryGrid
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-OKILA27U.js";
|
|
11
11
|
import {
|
|
12
12
|
getAvailableSkills,
|
|
13
13
|
resolveAlias
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-TM4I4EHK.js";
|
|
15
15
|
import {
|
|
16
|
-
CLI_COLORS
|
|
17
|
-
|
|
18
|
-
UI_SYMBOLS
|
|
19
|
-
} from "./chunk-LAPCUV4D.js";
|
|
16
|
+
CLI_COLORS
|
|
17
|
+
} from "./chunk-YCS7GF6Y.js";
|
|
20
18
|
import {
|
|
21
19
|
init_esm_shims
|
|
22
20
|
} from "./chunk-DHET7RCE.js";
|
|
23
21
|
|
|
24
22
|
// src/cli/components/wizard/step-build.tsx
|
|
25
23
|
init_esm_shims();
|
|
26
|
-
import { useState as
|
|
24
|
+
import { useState as useState2 } from "react";
|
|
27
25
|
import { Box, Text, useInput } from "ink";
|
|
28
26
|
|
|
29
27
|
// src/cli/lib/wizard/index.ts
|
|
@@ -161,42 +159,15 @@ function useFrameworkFiltering({
|
|
|
161
159
|
);
|
|
162
160
|
}
|
|
163
161
|
|
|
164
|
-
// src/cli/components/hooks/use-terminal-dimensions.ts
|
|
165
|
-
init_esm_shims();
|
|
166
|
-
import { useState, useEffect } from "react";
|
|
167
|
-
import { useStdout } from "ink";
|
|
168
|
-
var DEFAULT_COLUMNS = 80;
|
|
169
|
-
var DEFAULT_ROWS = 24;
|
|
170
|
-
function useTerminalDimensions() {
|
|
171
|
-
const { stdout } = useStdout();
|
|
172
|
-
const [dimensions, setDimensions] = useState(() => ({
|
|
173
|
-
columns: stdout.columns || DEFAULT_COLUMNS,
|
|
174
|
-
rows: stdout.rows || DEFAULT_ROWS
|
|
175
|
-
}));
|
|
176
|
-
useEffect(() => {
|
|
177
|
-
const handleResize = () => {
|
|
178
|
-
setDimensions({
|
|
179
|
-
columns: stdout.columns || DEFAULT_COLUMNS,
|
|
180
|
-
rows: stdout.rows || DEFAULT_ROWS
|
|
181
|
-
});
|
|
182
|
-
};
|
|
183
|
-
stdout.on("resize", handleResize);
|
|
184
|
-
return () => {
|
|
185
|
-
stdout.off("resize", handleResize);
|
|
186
|
-
};
|
|
187
|
-
}, [stdout]);
|
|
188
|
-
return dimensions;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
162
|
// src/cli/components/hooks/use-measured-height.ts
|
|
192
163
|
init_esm_shims();
|
|
193
|
-
import { useRef, useState
|
|
194
|
-
import { measureElement, useStdout
|
|
164
|
+
import { useRef, useState, useEffect } from "react";
|
|
165
|
+
import { measureElement, useStdout } from "ink";
|
|
195
166
|
function useMeasuredHeight() {
|
|
196
167
|
const ref = useRef(null);
|
|
197
|
-
const [measuredHeight, setMeasuredHeight] =
|
|
198
|
-
const { stdout } =
|
|
199
|
-
|
|
168
|
+
const [measuredHeight, setMeasuredHeight] = useState(0);
|
|
169
|
+
const { stdout } = useStdout();
|
|
170
|
+
useEffect(() => {
|
|
200
171
|
const measure = () => {
|
|
201
172
|
if (ref.current) {
|
|
202
173
|
const { height } = measureElement(ref.current);
|
|
@@ -220,26 +191,6 @@ var Footer = ({ validationError }) => {
|
|
|
220
191
|
/* @__PURE__ */ jsx(Text, { dimColor: true, children: "Press ESC to go back, or select a skill and press ENTER to continue." })
|
|
221
192
|
] }) });
|
|
222
193
|
};
|
|
223
|
-
var LegendRow = () => {
|
|
224
|
-
return /* @__PURE__ */ jsxs(Box, { paddingLeft: 1, columnGap: 2, children: [
|
|
225
|
-
/* @__PURE__ */ jsxs(Text, { color: CLI_COLORS.PRIMARY, children: [
|
|
226
|
-
UI_SYMBOLS.SELECTED,
|
|
227
|
-
" active"
|
|
228
|
-
] }),
|
|
229
|
-
/* @__PURE__ */ jsxs(Text, { color: CLI_COLORS.UNFOCUSED, children: [
|
|
230
|
-
UI_SYMBOLS.UNSELECTED,
|
|
231
|
-
" recommended"
|
|
232
|
-
] }),
|
|
233
|
-
/* @__PURE__ */ jsxs(Text, { color: CLI_COLORS.WARNING, children: [
|
|
234
|
-
UI_SYMBOLS.DISCOURAGED,
|
|
235
|
-
" discouraged"
|
|
236
|
-
] }),
|
|
237
|
-
/* @__PURE__ */ jsxs(Text, { color: CLI_COLORS.NEUTRAL, children: [
|
|
238
|
-
UI_SYMBOLS.DISABLED,
|
|
239
|
-
" disabled"
|
|
240
|
-
] })
|
|
241
|
-
] });
|
|
242
|
-
};
|
|
243
194
|
var StepBuild = ({
|
|
244
195
|
matrix,
|
|
245
196
|
domain: activeDomain,
|
|
@@ -255,8 +206,7 @@ var StepBuild = ({
|
|
|
255
206
|
onContinue,
|
|
256
207
|
onBack
|
|
257
208
|
}) => {
|
|
258
|
-
const [validationError, setValidationError] =
|
|
259
|
-
const { columns } = useTerminalDimensions();
|
|
209
|
+
const [validationError, setValidationError] = useState2(void 0);
|
|
260
210
|
const { ref: gridRef, measuredHeight: gridHeight } = useMeasuredHeight();
|
|
261
211
|
const categories = useFrameworkFiltering({
|
|
262
212
|
domain: activeDomain,
|
|
@@ -267,7 +217,6 @@ var StepBuild = ({
|
|
|
267
217
|
parentDomainSelections,
|
|
268
218
|
installedSkillIds
|
|
269
219
|
});
|
|
270
|
-
const availableHeight = gridHeight > 0 ? Math.max(SCROLL_VIEWPORT.MIN_VIEWPORT_ROWS, gridHeight) : Infinity;
|
|
271
220
|
useInput((_input, key) => {
|
|
272
221
|
if (key.return) {
|
|
273
222
|
const validation = validateBuildStep(categories, selections);
|
|
@@ -282,8 +231,8 @@ var StepBuild = ({
|
|
|
282
231
|
onBack();
|
|
283
232
|
}
|
|
284
233
|
});
|
|
285
|
-
return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", width: "100%", flexGrow: 1, children: [
|
|
286
|
-
/* @__PURE__ */
|
|
234
|
+
return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", width: "100%", flexGrow: 1, flexBasis: 0, children: [
|
|
235
|
+
/* @__PURE__ */ jsx(
|
|
287
236
|
Box,
|
|
288
237
|
{
|
|
289
238
|
columnGap: 2,
|
|
@@ -297,34 +246,22 @@ var StepBuild = ({
|
|
|
297
246
|
borderLeft: false,
|
|
298
247
|
borderColor: CLI_COLORS.NEUTRAL,
|
|
299
248
|
borderStyle: "single",
|
|
300
|
-
children:
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
isActive ? UI_SYMBOLS.CURRENT : UI_SYMBOLS.UNSELECTED,
|
|
305
|
-
" ",
|
|
306
|
-
getDomainDisplayName(domain)
|
|
307
|
-
] }, domain);
|
|
308
|
-
}) }),
|
|
309
|
-
/* @__PURE__ */ jsx(LegendRow, {})
|
|
310
|
-
]
|
|
249
|
+
children: /* @__PURE__ */ jsx(Box, { columnGap: 2, flexDirection: "row", children: selectedDomains.map((domain) => {
|
|
250
|
+
const isActive = domain === activeDomain;
|
|
251
|
+
return /* @__PURE__ */ jsx(Text, { color: isActive ? CLI_COLORS.PRIMARY : void 0, bold: isActive, children: getDomainDisplayName(domain) }, domain);
|
|
252
|
+
}) })
|
|
311
253
|
}
|
|
312
254
|
),
|
|
313
|
-
/* @__PURE__ */
|
|
314
|
-
|
|
315
|
-
getDomainDisplayName(activeDomain),
|
|
316
|
-
" stack"
|
|
317
|
-
] }),
|
|
318
|
-
/* @__PURE__ */ jsx(Box, { ref: gridRef, flexGrow: 1, children: /* @__PURE__ */ jsx(
|
|
255
|
+
/* @__PURE__ */ jsx(ViewTitle, { children: `[2] Customize your ${getDomainDisplayName(activeDomain)} stack` }),
|
|
256
|
+
/* @__PURE__ */ jsx(Box, { ref: gridRef, flexGrow: 1, flexBasis: 0, children: /* @__PURE__ */ jsx(
|
|
319
257
|
CategoryGrid,
|
|
320
258
|
{
|
|
321
259
|
categories,
|
|
260
|
+
availableHeight: gridHeight,
|
|
322
261
|
expertMode,
|
|
323
262
|
showDescriptions,
|
|
324
263
|
onToggle,
|
|
325
|
-
onToggleDescriptions
|
|
326
|
-
availableHeight,
|
|
327
|
-
terminalWidth: columns
|
|
264
|
+
onToggleDescriptions
|
|
328
265
|
},
|
|
329
266
|
activeDomain
|
|
330
267
|
) }),
|
|
@@ -337,4 +274,4 @@ export {
|
|
|
337
274
|
getSkillDisplayLabel,
|
|
338
275
|
StepBuild
|
|
339
276
|
};
|
|
340
|
-
//# sourceMappingURL=chunk-
|
|
277
|
+
//# sourceMappingURL=chunk-2LUXM5FB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/components/wizard/step-build.tsx","../src/cli/lib/wizard/index.ts","../src/cli/lib/wizard/build-step-logic.ts","../src/cli/components/hooks/use-framework-filtering.ts","../src/cli/components/hooks/use-measured-height.ts"],"sourcesContent":["import React, { useState } from \"react\";\nimport { Box, Text, useInput } from \"ink\";\nimport type {\n Domain,\n MergedSkillsMatrix,\n SkillId,\n Subcategory,\n SubcategorySelections,\n} from \"../../types/index.js\";\nimport { validateBuildStep } from \"../../lib/wizard/index.js\";\nimport { CLI_COLORS } from \"../../consts.js\";\nimport { useFrameworkFiltering } from \"../hooks/use-framework-filtering.js\";\nimport { useMeasuredHeight } from \"../hooks/use-measured-height.js\";\nimport { CategoryGrid } from \"./category-grid.js\";\nimport { ViewTitle } from \"./view-title.js\";\nimport { getDomainDisplayName } from \"./utils.js\";\n\nexport type StepBuildProps = {\n matrix: MergedSkillsMatrix;\n domain: Domain;\n selectedDomains: Domain[];\n selections: SubcategorySelections;\n allSelections: SkillId[];\n showDescriptions: boolean;\n expertMode: boolean;\n /** For framework-first filtering on sub-domains (e.g., web-extras inherits from web) */\n parentDomainSelections?: SubcategorySelections;\n /** Skill IDs already installed on disk, shown with a dimmed checkmark */\n installedSkillIds?: SkillId[];\n onToggle: (subcategoryId: Subcategory, technologyId: SkillId) => void;\n onToggleDescriptions: () => void;\n onContinue: () => void;\n onBack: () => void;\n};\n\ntype FooterProps = {\n validationError?: string;\n};\n\nconst Footer: React.FC<FooterProps> = ({ validationError }) => {\n return (\n <Box flexDirection=\"column\" marginTop={1}>\n {validationError && (\n <Box flexDirection=\"column\" marginBottom={1}>\n <Text color={CLI_COLORS.WARNING}>{validationError}</Text>\n <Text dimColor>Press ESC to go back, or select a skill and press ENTER to continue.</Text>\n </Box>\n )}\n </Box>\n );\n};\n\nexport const StepBuild: React.FC<StepBuildProps> = ({\n matrix,\n domain: activeDomain,\n selectedDomains,\n selections,\n allSelections,\n showDescriptions,\n expertMode,\n parentDomainSelections,\n installedSkillIds,\n onToggle,\n onToggleDescriptions,\n onContinue,\n onBack,\n}) => {\n const [validationError, setValidationError] = useState<string | undefined>(undefined);\n const { ref: gridRef, measuredHeight: gridHeight } = useMeasuredHeight();\n\n const categories = useFrameworkFiltering({\n domain: activeDomain,\n allSelections,\n matrix,\n expertMode,\n selections,\n parentDomainSelections,\n installedSkillIds,\n });\n\n useInput((_input, key) => {\n if (key.return) {\n const validation = validateBuildStep(categories, selections);\n if (validation.valid) {\n setValidationError(undefined);\n onContinue();\n } else {\n setValidationError(validation.message);\n }\n } else if (key.escape) {\n setValidationError(undefined);\n onBack();\n }\n });\n\n return (\n <Box flexDirection=\"column\" width=\"100%\" flexGrow={1} flexBasis={0}>\n <Box\n columnGap={2}\n flexDirection=\"row\"\n justifyContent=\"space-between\"\n marginBottom={1}\n paddingRight={1}\n marginTop={-1}\n borderTop={false}\n borderRight={false}\n borderLeft={false}\n borderColor={CLI_COLORS.NEUTRAL}\n borderStyle=\"single\"\n >\n <Box columnGap={2} flexDirection=\"row\">\n {selectedDomains.map((domain) => {\n const isActive = domain === activeDomain;\n return (\n <Text key={domain} color={isActive ? CLI_COLORS.PRIMARY : undefined} bold={isActive}>\n {getDomainDisplayName(domain)}\n </Text>\n );\n })}\n </Box>\n </Box>\n <ViewTitle>{`[2] Customize your ${getDomainDisplayName(activeDomain)} stack`}</ViewTitle>\n\n <Box ref={gridRef} flexGrow={1} flexBasis={0}>\n <CategoryGrid\n key={activeDomain}\n categories={categories}\n availableHeight={gridHeight}\n expertMode={expertMode}\n showDescriptions={showDescriptions}\n onToggle={onToggle}\n onToggleDescriptions={onToggleDescriptions}\n />\n </Box>\n\n <Footer validationError={validationError} />\n </Box>\n );\n};\n","export {\n type BuildStepValidation,\n validateBuildStep,\n computeOptionState,\n getSkillDisplayLabel,\n buildCategoriesForDomain,\n} from \"./build-step-logic\";\n","import { sortBy } from \"remeda\";\nimport type {\n Domain,\n MergedSkillsMatrix,\n SkillId,\n SubcategorySelections,\n} from \"../../types/index.js\";\nimport { getAvailableSkills, resolveAlias } from \"../matrix/index.js\";\nimport type {\n CategoryRow,\n CategoryOption,\n OptionState,\n} from \"../../components/wizard/category-grid.js\";\n\nconst FRAMEWORK_SUBCATEGORY_ID = \"framework\";\nconst WEB_DOMAIN_ID = \"web\";\n\nexport type BuildStepValidation = {\n valid: boolean;\n message?: string;\n};\n\nexport function validateBuildStep(\n categories: CategoryRow[],\n selections: SubcategorySelections,\n): BuildStepValidation {\n for (const category of categories) {\n if (category.required) {\n const categorySelections = selections[category.id] || [];\n if (categorySelections.length === 0) {\n return {\n valid: false,\n message: `Select at least one skill from the ${category.displayName} category. Use arrow keys to navigate, then SPACE to select.`,\n };\n }\n }\n }\n return { valid: true };\n}\n\nexport function computeOptionState(skill: {\n disabled: boolean;\n discouraged: boolean;\n recommended: boolean;\n}): OptionState {\n if (skill.disabled) {\n return \"disabled\";\n }\n if (skill.discouraged) {\n return \"discouraged\";\n }\n if (skill.recommended) {\n return \"recommended\";\n }\n return \"normal\";\n}\n\nexport function getSkillDisplayLabel(skill: { displayName?: string; id: string }): string {\n return skill.displayName || skill.id;\n}\n\nfunction getStateReason(skill: {\n disabled: boolean;\n disabledReason?: string;\n discouraged: boolean;\n discouragedReason?: string;\n recommended: boolean;\n recommendedReason?: string;\n}): string | undefined {\n if (skill.disabled && skill.disabledReason) {\n return skill.disabledReason;\n }\n if (skill.discouraged && skill.discouragedReason) {\n return skill.discouragedReason;\n }\n if (skill.recommended && skill.recommendedReason) {\n return skill.recommendedReason;\n }\n return undefined;\n}\n\nfunction isFrameworkSelected(selections: SubcategorySelections): boolean {\n const frameworkSelections = selections[FRAMEWORK_SUBCATEGORY_ID] ?? [];\n return frameworkSelections.length > 0;\n}\n\nfunction getSelectedFrameworks(\n selections: SubcategorySelections,\n matrix: MergedSkillsMatrix,\n): SkillId[] {\n const frameworkSelections = selections[FRAMEWORK_SUBCATEGORY_ID] ?? [];\n return frameworkSelections.map((alias) => resolveAlias(alias, matrix));\n}\n\nfunction isCompatibleWithSelectedFrameworks(\n skillId: SkillId,\n selectedFrameworkIds: SkillId[],\n matrix: MergedSkillsMatrix,\n): boolean {\n const skill = matrix.skills[skillId];\n if (!skill) return false;\n\n // No compatibleWith = compatible with all (allows legacy skills to appear)\n if (skill.compatibleWith.length === 0) {\n return true;\n }\n\n return selectedFrameworkIds.some((frameworkId) => skill.compatibleWith.includes(frameworkId));\n}\n\n// Build CategoryRow[] from matrix for a domain, with framework-first filtering for web\nexport function buildCategoriesForDomain(\n domain: Domain,\n allSelections: SkillId[],\n matrix: MergedSkillsMatrix,\n expertMode: boolean,\n selections: SubcategorySelections,\n parentDomainSelections?: SubcategorySelections,\n installedSkillIds?: SkillId[],\n): CategoryRow[] {\n const frameworkSource = parentDomainSelections ?? selections;\n const frameworkSelected = isFrameworkSelected(frameworkSource);\n const selectedFrameworkIds = frameworkSelected\n ? getSelectedFrameworks(frameworkSource, matrix)\n : [];\n\n const subcategories = sortBy(\n Object.values(matrix.categories).filter((cat) => cat.domain === domain),\n (cat) => cat.order ?? 0,\n );\n\n const categoryRows: CategoryRow[] = subcategories.map((cat) => {\n const skillOptions = getAvailableSkills(cat.id, allSelections, matrix, {\n expertMode,\n });\n\n const useFrameworkFilter =\n (domain === WEB_DOMAIN_ID || parentDomainSelections !== undefined) &&\n cat.id !== FRAMEWORK_SUBCATEGORY_ID &&\n frameworkSelected;\n const filteredSkillOptions = useFrameworkFilter\n ? skillOptions.filter((skill) =>\n isCompatibleWithSelectedFrameworks(skill.id, selectedFrameworkIds, matrix),\n )\n : skillOptions;\n\n const options: CategoryOption[] = filteredSkillOptions.map((skill) => ({\n id: skill.id,\n label: getSkillDisplayLabel(skill),\n state: computeOptionState(skill),\n stateReason: getStateReason(skill),\n selected: skill.selected,\n local: matrix.skills[skill.id]?.local,\n installed: installedSkillIds?.includes(skill.id) || false,\n }));\n\n return {\n id: cat.id,\n displayName: cat.displayName,\n required: cat.required ?? false,\n exclusive: cat.exclusive ?? true,\n options,\n };\n });\n\n return categoryRows.filter((row) => row.options.length > 0);\n}\n","import { useMemo } from \"react\";\nimport type {\n Domain,\n MergedSkillsMatrix,\n SkillId,\n SubcategorySelections,\n} from \"../../types/index.js\";\nimport { buildCategoriesForDomain } from \"../../lib/wizard/index.js\";\nimport type { CategoryRow } from \"../wizard/category-grid.js\";\n\ntype UseFrameworkFilteringOptions = {\n domain: Domain;\n allSelections: SkillId[];\n matrix: MergedSkillsMatrix;\n expertMode: boolean;\n selections: SubcategorySelections;\n parentDomainSelections?: SubcategorySelections;\n installedSkillIds?: SkillId[];\n};\n\nexport function useFrameworkFiltering({\n domain,\n allSelections,\n matrix,\n expertMode,\n selections,\n parentDomainSelections,\n installedSkillIds,\n}: UseFrameworkFilteringOptions): CategoryRow[] {\n return useMemo(\n () =>\n buildCategoriesForDomain(\n domain,\n allSelections,\n matrix,\n expertMode,\n selections,\n parentDomainSelections,\n installedSkillIds,\n ),\n [\n domain,\n allSelections,\n matrix,\n expertMode,\n selections,\n parentDomainSelections,\n installedSkillIds,\n ],\n );\n}\n","import { useRef, useState, useEffect } from \"react\";\nimport { type DOMElement, measureElement, useStdout } from \"ink\";\n\n/**\n * Measures the computed height of a Box element using Ink's Yoga layout engine.\n *\n * Returns a ref to attach to a Box with `flexGrow={1}` and the measured height.\n * The Box must be inside a parent chain with a constrained height (e.g., an\n * explicit `height` prop on an ancestor) so Yoga can compute the remaining space.\n *\n * Returns 0 before the first layout pass. Re-measures on terminal resize.\n */\nexport function useMeasuredHeight(): {\n ref: React.Ref<DOMElement>;\n measuredHeight: number;\n} {\n const ref = useRef<DOMElement>(null);\n const [measuredHeight, setMeasuredHeight] = useState(0);\n const { stdout } = useStdout();\n\n useEffect(() => {\n const measure = () => {\n if (ref.current) {\n const { height } = measureElement(ref.current);\n setMeasuredHeight((prev) => (prev !== height ? height : prev));\n }\n };\n\n measure();\n\n stdout.on(\"resize\", measure);\n return () => {\n stdout.off(\"resize\", measure);\n };\n }, [stdout]);\n\n return { ref, measuredHeight };\n}\n"],"mappings":"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","names":["useState","useState"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
CLI_COLORS
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-YCS7GF6Y.js";
|
|
5
5
|
import {
|
|
6
6
|
init_esm_shims
|
|
7
7
|
} from "./chunk-DHET7RCE.js";
|
|
@@ -78,4 +78,4 @@ var cliTheme = extendTheme(defaultTheme, {
|
|
|
78
78
|
export {
|
|
79
79
|
cliTheme
|
|
80
80
|
};
|
|
81
|
-
//# sourceMappingURL=chunk-
|
|
81
|
+
//# sourceMappingURL=chunk-5YNZJ5TP.js.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
getErrorMessage,
|
|
4
4
|
warn
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-NLR6Z37M.js";
|
|
6
6
|
import {
|
|
7
7
|
init_esm_shims
|
|
8
8
|
} from "./chunk-DHET7RCE.js";
|
|
@@ -180,4 +180,4 @@ export {
|
|
|
180
180
|
claudePluginMarketplaceAdd,
|
|
181
181
|
claudePluginUninstall
|
|
182
182
|
};
|
|
183
|
-
//# sourceMappingURL=chunk-
|
|
183
|
+
//# sourceMappingURL=chunk-A5CYQQVG.js.map
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
useWizardStore
|
|
4
|
+
} from "./chunk-R3AD6XBJ.js";
|
|
5
|
+
import {
|
|
6
|
+
CLI_COLORS,
|
|
7
|
+
UI_SYMBOLS
|
|
8
|
+
} from "./chunk-YCS7GF6Y.js";
|
|
9
|
+
import {
|
|
10
|
+
init_esm_shims
|
|
11
|
+
} from "./chunk-DHET7RCE.js";
|
|
12
|
+
|
|
13
|
+
// src/cli/components/wizard/domain-selection.tsx
|
|
14
|
+
init_esm_shims();
|
|
15
|
+
import { useState } from "react";
|
|
16
|
+
import { Box, Text, useInput } from "ink";
|
|
17
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
18
|
+
var CONTINUE_VALUE = "_continue";
|
|
19
|
+
var AVAILABLE_DOMAINS = [
|
|
20
|
+
{ id: "web", label: "Web", description: "Frontend web applications" },
|
|
21
|
+
{
|
|
22
|
+
id: "web-extras",
|
|
23
|
+
label: "Web Extras",
|
|
24
|
+
description: "Animation, files, realtime, PWA, accessibility"
|
|
25
|
+
},
|
|
26
|
+
{ id: "api", label: "API", description: "Backend APIs and services" },
|
|
27
|
+
{ id: "cli", label: "CLI", description: "Command-line tools" },
|
|
28
|
+
{ id: "mobile", label: "Mobile", description: "Mobile applications" }
|
|
29
|
+
];
|
|
30
|
+
var DomainSelection = () => {
|
|
31
|
+
const { selectedDomains, toggleDomain, setStep, setApproach, selectStack } = useWizardStore();
|
|
32
|
+
const [focusedIndex, setFocusedIndex] = useState(0);
|
|
33
|
+
const handleBack = () => {
|
|
34
|
+
setApproach(null);
|
|
35
|
+
selectStack(null);
|
|
36
|
+
};
|
|
37
|
+
const items = [
|
|
38
|
+
...AVAILABLE_DOMAINS.map((domain) => ({ type: "domain", domain })),
|
|
39
|
+
...selectedDomains.length > 0 ? [{ type: "continue" }] : []
|
|
40
|
+
];
|
|
41
|
+
const totalItems = items.length;
|
|
42
|
+
useInput((input, key) => {
|
|
43
|
+
if (key.escape) {
|
|
44
|
+
handleBack();
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (key.upArrow || input === "k") {
|
|
48
|
+
setFocusedIndex((prev) => prev <= 0 ? totalItems - 1 : prev - 1);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (key.downArrow || input === "j") {
|
|
52
|
+
setFocusedIndex((prev) => prev >= totalItems - 1 ? 0 : prev + 1);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (key.return) {
|
|
56
|
+
if (selectedDomains.length > 0) {
|
|
57
|
+
setStep("build");
|
|
58
|
+
}
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (input === " ") {
|
|
62
|
+
const focusedItem = items[focusedIndex];
|
|
63
|
+
if (!focusedItem) return;
|
|
64
|
+
if (focusedItem.type === "domain") {
|
|
65
|
+
toggleDomain(focusedItem.domain.id);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
|
|
70
|
+
/* @__PURE__ */ jsx(Text, { bold: true, children: "Select domains to configure:" }),
|
|
71
|
+
/* @__PURE__ */ jsx(Text, { dimColor: true, children: "Select one or more domains, then continue" }),
|
|
72
|
+
/* @__PURE__ */ jsx(Box, { flexDirection: "column", marginTop: 1, children: items.map((item, index) => {
|
|
73
|
+
const isFocused = index === focusedIndex;
|
|
74
|
+
if (item.type === "continue") {
|
|
75
|
+
return /* @__PURE__ */ jsxs(Box, { columnGap: 1, children: [
|
|
76
|
+
/* @__PURE__ */ jsx(Text, { color: isFocused ? CLI_COLORS.PRIMARY : void 0, children: isFocused ? UI_SYMBOLS.CURRENT : " " }),
|
|
77
|
+
/* @__PURE__ */ jsxs(Text, { bold: isFocused, color: isFocused ? CLI_COLORS.PRIMARY : void 0, children: [
|
|
78
|
+
"\u2192",
|
|
79
|
+
" Continue with ",
|
|
80
|
+
selectedDomains.length,
|
|
81
|
+
" domain(s)"
|
|
82
|
+
] })
|
|
83
|
+
] }, CONTINUE_VALUE);
|
|
84
|
+
}
|
|
85
|
+
const isSelected = selectedDomains.includes(item.domain.id);
|
|
86
|
+
const checkbox = isSelected ? "[\u2713]" : "[ ]";
|
|
87
|
+
return /* @__PURE__ */ jsxs(Box, { columnGap: 1, children: [
|
|
88
|
+
/* @__PURE__ */ jsx(Text, { color: isFocused ? CLI_COLORS.PRIMARY : void 0, children: isFocused ? UI_SYMBOLS.CURRENT : " " }),
|
|
89
|
+
/* @__PURE__ */ jsx(
|
|
90
|
+
Text,
|
|
91
|
+
{
|
|
92
|
+
bold: isFocused,
|
|
93
|
+
color: isSelected || isFocused ? CLI_COLORS.PRIMARY : void 0,
|
|
94
|
+
children: checkbox
|
|
95
|
+
}
|
|
96
|
+
),
|
|
97
|
+
/* @__PURE__ */ jsx(Text, { bold: isFocused, color: isFocused ? CLI_COLORS.PRIMARY : void 0, children: item.domain.label }),
|
|
98
|
+
/* @__PURE__ */ jsxs(Text, { dimColor: true, children: [
|
|
99
|
+
"- ",
|
|
100
|
+
item.domain.description
|
|
101
|
+
] })
|
|
102
|
+
] }, item.domain.id);
|
|
103
|
+
}) }),
|
|
104
|
+
selectedDomains.length > 0 ? /* @__PURE__ */ jsx(Box, { marginTop: 1, children: /* @__PURE__ */ jsxs(Text, { children: [
|
|
105
|
+
"Selected: ",
|
|
106
|
+
/* @__PURE__ */ jsx(Text, { color: CLI_COLORS.PRIMARY, children: selectedDomains.join(", ") })
|
|
107
|
+
] }) }) : /* @__PURE__ */ jsx(Box, { marginTop: 1, children: /* @__PURE__ */ jsx(Text, { color: CLI_COLORS.WARNING, children: "Please select at least one domain" }) }),
|
|
108
|
+
/* @__PURE__ */ jsx(Box, { marginTop: 1, children: /* @__PURE__ */ jsxs(Text, { dimColor: true, children: [
|
|
109
|
+
"\u2191",
|
|
110
|
+
"/",
|
|
111
|
+
"\u2193",
|
|
112
|
+
" navigate SPACE toggle ENTER continue ESC back"
|
|
113
|
+
] }) })
|
|
114
|
+
] });
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
export {
|
|
118
|
+
DomainSelection
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=chunk-ALS7SH7X.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/components/wizard/domain-selection.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { Box, Text, useInput } from \"ink\";\nimport { useWizardStore } from \"../../stores/wizard-store.js\";\nimport type { Domain } from \"../../types/index.js\";\nimport { CLI_COLORS, UI_SYMBOLS } from \"../../consts.js\";\n\nconst CONTINUE_VALUE = \"_continue\";\n\nconst AVAILABLE_DOMAINS: Array<{ id: Domain; label: string; description: string }> = [\n { id: \"web\", label: \"Web\", description: \"Frontend web applications\" },\n {\n id: \"web-extras\",\n label: \"Web Extras\",\n description: \"Animation, files, realtime, PWA, accessibility\",\n },\n { id: \"api\", label: \"API\", description: \"Backend APIs and services\" },\n { id: \"cli\", label: \"CLI\", description: \"Command-line tools\" },\n { id: \"mobile\", label: \"Mobile\", description: \"Mobile applications\" },\n];\n\ntype ListItem =\n | { type: \"domain\"; domain: (typeof AVAILABLE_DOMAINS)[number] }\n | { type: \"continue\" };\n\nexport const DomainSelection: React.FC = () => {\n const { selectedDomains, toggleDomain, setStep, setApproach, selectStack } = useWizardStore();\n const [focusedIndex, setFocusedIndex] = useState(0);\n\n const handleBack = () => {\n setApproach(null);\n selectStack(null);\n };\n\n const items: ListItem[] = [\n ...AVAILABLE_DOMAINS.map((domain) => ({ type: \"domain\" as const, domain })),\n ...(selectedDomains.length > 0 ? [{ type: \"continue\" as const }] : []),\n ];\n\n const totalItems = items.length;\n\n useInput((input, key) => {\n if (key.escape) {\n handleBack();\n return;\n }\n\n if (key.upArrow || input === \"k\") {\n setFocusedIndex((prev) => (prev <= 0 ? totalItems - 1 : prev - 1));\n return;\n }\n\n if (key.downArrow || input === \"j\") {\n setFocusedIndex((prev) => (prev >= totalItems - 1 ? 0 : prev + 1));\n return;\n }\n\n // ENTER: continue if domains selected\n if (key.return) {\n if (selectedDomains.length > 0) {\n setStep(\"build\");\n }\n return;\n }\n\n // SPACE: toggle domain selection\n if (input === \" \") {\n const focusedItem = items[focusedIndex];\n if (!focusedItem) return;\n\n if (focusedItem.type === \"domain\") {\n toggleDomain(focusedItem.domain.id);\n }\n }\n });\n\n return (\n <Box flexDirection=\"column\">\n <Text bold>Select domains to configure:</Text>\n <Text dimColor>Select one or more domains, then continue</Text>\n <Box flexDirection=\"column\" marginTop={1}>\n {items.map((item, index) => {\n const isFocused = index === focusedIndex;\n\n if (item.type === \"continue\") {\n return (\n <Box key={CONTINUE_VALUE} columnGap={1}>\n <Text color={isFocused ? CLI_COLORS.PRIMARY : undefined}>\n {isFocused ? UI_SYMBOLS.CURRENT : \" \"}\n </Text>\n <Text bold={isFocused} color={isFocused ? CLI_COLORS.PRIMARY : undefined}>\n {\"\\u2192\"} Continue with {selectedDomains.length} domain(s)\n </Text>\n </Box>\n );\n }\n\n const isSelected = selectedDomains.includes(item.domain.id);\n const checkbox = isSelected ? \"[\\u2713]\" : \"[ ]\";\n\n return (\n <Box key={item.domain.id} columnGap={1}>\n <Text color={isFocused ? CLI_COLORS.PRIMARY : undefined}>\n {isFocused ? UI_SYMBOLS.CURRENT : \" \"}\n </Text>\n <Text\n bold={isFocused}\n color={isSelected || isFocused ? CLI_COLORS.PRIMARY : undefined}\n >\n {checkbox}\n </Text>\n <Text bold={isFocused} color={isFocused ? CLI_COLORS.PRIMARY : undefined}>\n {item.domain.label}\n </Text>\n <Text dimColor>- {item.domain.description}</Text>\n </Box>\n );\n })}\n </Box>\n {selectedDomains.length > 0 ? (\n <Box marginTop={1}>\n <Text>\n Selected: <Text color={CLI_COLORS.PRIMARY}>{selectedDomains.join(\", \")}</Text>\n </Text>\n </Box>\n ) : (\n <Box marginTop={1}>\n <Text color={CLI_COLORS.WARNING}>Please select at least one domain</Text>\n </Box>\n )}\n <Box marginTop={1}>\n <Text dimColor>\n {\"\\u2191\"}/{\"\\u2193\"} navigate SPACE toggle ENTER continue ESC back\n </Text>\n </Box>\n </Box>\n );\n};\n"],"mappings":"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","names":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
DEFAULT_BRANDING
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-YCS7GF6Y.js";
|
|
5
5
|
import {
|
|
6
6
|
init_esm_shims
|
|
7
7
|
} from "./chunk-DHET7RCE.js";
|
|
@@ -183,4 +183,4 @@ export {
|
|
|
183
183
|
createMockCategory,
|
|
184
184
|
createMockResolvedStack
|
|
185
185
|
};
|
|
186
|
-
//# sourceMappingURL=chunk-
|
|
186
|
+
//# sourceMappingURL=chunk-ANGAZ444.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
StackSelection
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-TKB4O2RY.js";
|
|
5
5
|
import {
|
|
6
6
|
DomainSelection
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-ALS7SH7X.js";
|
|
8
8
|
import {
|
|
9
9
|
useWizardStore
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-R3AD6XBJ.js";
|
|
11
11
|
import {
|
|
12
12
|
init_esm_shims
|
|
13
13
|
} from "./chunk-DHET7RCE.js";
|
|
@@ -26,4 +26,4 @@ var StepStack = ({ matrix, onCancel }) => {
|
|
|
26
26
|
export {
|
|
27
27
|
StepStack
|
|
28
28
|
};
|
|
29
|
-
//# sourceMappingURL=chunk-
|
|
29
|
+
//# sourceMappingURL=chunk-B47QYIUL.js.map
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
import {
|
|
3
3
|
useModalState
|
|
4
4
|
} from "./chunk-7SOPVGDV.js";
|
|
5
|
-
import {
|
|
6
|
-
SearchModal
|
|
7
|
-
} from "./chunk-A27LOC4Z.js";
|
|
8
5
|
import {
|
|
9
6
|
useFocusedListItem
|
|
10
7
|
} from "./chunk-DC5AK3LW.js";
|
|
8
|
+
import {
|
|
9
|
+
SearchModal
|
|
10
|
+
} from "./chunk-QC37C32G.js";
|
|
11
11
|
import {
|
|
12
12
|
CLI_COLORS,
|
|
13
13
|
UI_SYMBOLS
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-YCS7GF6Y.js";
|
|
15
15
|
import {
|
|
16
16
|
init_esm_shims
|
|
17
17
|
} from "./chunk-DHET7RCE.js";
|
|
@@ -231,4 +231,4 @@ var SourceGrid = ({
|
|
|
231
231
|
export {
|
|
232
232
|
SourceGrid
|
|
233
233
|
};
|
|
234
|
-
//# sourceMappingURL=chunk-
|
|
234
|
+
//# sourceMappingURL=chunk-CB7GYRUP.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
getDomainDisplayName
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MZB3GGOH.js";
|
|
5
5
|
import {
|
|
6
6
|
CLI_COLORS
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-YCS7GF6Y.js";
|
|
8
8
|
import {
|
|
9
9
|
init_esm_shims
|
|
10
10
|
} from "./chunk-DHET7RCE.js";
|
|
@@ -75,4 +75,4 @@ var StepConfirm = ({
|
|
|
75
75
|
export {
|
|
76
76
|
StepConfirm
|
|
77
77
|
};
|
|
78
|
-
//# sourceMappingURL=chunk-
|
|
78
|
+
//# sourceMappingURL=chunk-CEWNZQMH.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
DEFAULT_BRANDING
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-YCS7GF6Y.js";
|
|
5
5
|
import {
|
|
6
6
|
init_esm_shims
|
|
7
7
|
} from "./chunk-DHET7RCE.js";
|
|
@@ -11,8 +11,8 @@ init_esm_shims();
|
|
|
11
11
|
var ERROR_MESSAGES = {
|
|
12
12
|
UNKNOWN_ERROR: "Unknown error occurred",
|
|
13
13
|
UNKNOWN_ERROR_SHORT: "Unknown error",
|
|
14
|
-
NO_INSTALLATION: `No installation found. Run '
|
|
15
|
-
NO_LOCAL_SKILLS: "No local skills found. Run `
|
|
14
|
+
NO_INSTALLATION: `No installation found. Run 'agentsinc init' first to set up ${DEFAULT_BRANDING.NAME}`,
|
|
15
|
+
NO_LOCAL_SKILLS: "No local skills found. Run `agentsinc init` or `agentsinc edit` first.",
|
|
16
16
|
NO_SKILLS_FOUND: "No skills found",
|
|
17
17
|
VALIDATION_FAILED: "Validation failed",
|
|
18
18
|
FAILED_RESOLVE_SOURCE: "Failed to resolve source",
|
|
@@ -44,7 +44,7 @@ var STATUS_MESSAGES = {
|
|
|
44
44
|
};
|
|
45
45
|
var INFO_MESSAGES = {
|
|
46
46
|
NO_CHANGES_MADE: "No changes made.",
|
|
47
|
-
RUN_COMPILE: "Run '
|
|
47
|
+
RUN_COMPILE: "Run 'agentsinc compile' to include imported skills in your agents.",
|
|
48
48
|
NO_AGENTS_TO_RECOMPILE: "No agents to recompile",
|
|
49
49
|
NO_AGENTS_TO_COMPILE: "No agents to compile",
|
|
50
50
|
NO_PLUGIN_INSTALLATION: "No plugin installation found.",
|
|
@@ -66,4 +66,4 @@ export {
|
|
|
66
66
|
INFO_MESSAGES,
|
|
67
67
|
DRY_RUN_MESSAGES
|
|
68
68
|
};
|
|
69
|
-
//# sourceMappingURL=chunk-
|
|
69
|
+
//# sourceMappingURL=chunk-GGHH3KR2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/utils/messages.ts"],"sourcesContent":["import { DEFAULT_BRANDING } from \"../consts.js\";\n\nexport const ERROR_MESSAGES = {\n UNKNOWN_ERROR: \"Unknown error occurred\",\n UNKNOWN_ERROR_SHORT: \"Unknown error\",\n NO_INSTALLATION: `No installation found. Run 'agentsinc init' first to set up ${DEFAULT_BRANDING.NAME}`,\n NO_LOCAL_SKILLS: \"No local skills found. Run `agentsinc init` or `agentsinc edit` first.\",\n NO_SKILLS_FOUND: \"No skills found\",\n VALIDATION_FAILED: \"Validation failed\",\n FAILED_RESOLVE_SOURCE: \"Failed to resolve source\",\n FAILED_LOAD_AGENT_PARTIALS: \"Failed to load agent partials\",\n FAILED_COMPILE_AGENTS: \"Failed to compile agents\",\n SKILL_NOT_FOUND: \"Skill not found\",\n} as const;\n\nexport const SUCCESS_MESSAGES = {\n IMPORT_COMPLETE: \"Import complete!\",\n UNINSTALL_COMPLETE: \"Uninstall complete!\",\n INIT_SUCCESS: `${DEFAULT_BRANDING.NAME} initialized successfully!`,\n PLUGIN_COMPILE_COMPLETE: \"Plugin compile complete!\",\n CUSTOM_COMPILE_COMPLETE: \"Custom output compile complete!\",\n ALL_SKILLS_UP_TO_DATE: \"All skills are up to date.\",\n} as const;\n\nexport const STATUS_MESSAGES = {\n LOADING_SKILLS: \"Loading skills...\",\n LOADING_MARKETPLACE_SOURCE: \"Loading marketplace source...\",\n RECOMPILING_AGENTS: \"Recompiling agents...\",\n COMPILING_AGENTS: \"Compiling agents...\",\n DISCOVERING_SKILLS: \"Discovering skills...\",\n RESOLVING_SOURCE: \"Resolving source...\",\n RESOLVING_MARKETPLACE_SOURCE: \"Resolving marketplace source...\",\n FETCHING_AGENT_PARTIALS: \"Fetching agent partials...\",\n LOADING_AGENT_PARTIALS: \"Loading agent partials...\",\n FETCHING_REPOSITORY: \"Fetching repository...\",\n COPYING_SKILLS: \"Copying skills...\",\n UPDATING_PLUGIN_SKILLS: \"Updating plugin skills...\",\n} as const;\n\nexport const INFO_MESSAGES = {\n NO_CHANGES_MADE: \"No changes made.\",\n RUN_COMPILE: \"Run 'agentsinc compile' to include imported skills in your agents.\",\n NO_AGENTS_TO_RECOMPILE: \"No agents to recompile\",\n NO_AGENTS_TO_COMPILE: \"No agents to compile\",\n NO_PLUGIN_INSTALLATION: \"No plugin installation found.\",\n NO_LOCAL_INSTALLATION: \"No local installation found.\",\n NOT_INSTALLED: `${DEFAULT_BRANDING.NAME} is not installed in this project.`,\n} as const;\n\nexport const DRY_RUN_MESSAGES = {\n PREVIEW_NO_FILES_REMOVED: \"[dry-run] Preview mode - no files will be removed\",\n PREVIEW_NO_FILES_CREATED: \"[dry-run] Preview mode - no files will be created\",\n COMPLETE_NO_FILES_REMOVED: \"[dry-run] Preview complete - no files were removed\",\n COMPLETE_NO_FILES_WRITTEN: \"[dry-run] Preview complete - no files were written\",\n COMPLETE_NO_FILES_CREATED: \"[dry-run] Preview complete - no files were created\",\n} as const;\n"],"mappings":";;;;;;;;;AAAA;AAEO,IAAM,iBAAiB;AAAA,EAC5B,eAAe;AAAA,EACf,qBAAqB;AAAA,EACrB,iBAAiB,+DAA+D,iBAAiB,IAAI;AAAA,EACrG,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB,4BAA4B;AAAA,EAC5B,uBAAuB;AAAA,EACvB,iBAAiB;AACnB;AAEO,IAAM,mBAAmB;AAAA,EAC9B,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,cAAc,GAAG,iBAAiB,IAAI;AAAA,EACtC,yBAAyB;AAAA,EACzB,yBAAyB;AAAA,EACzB,uBAAuB;AACzB;AAEO,IAAM,kBAAkB;AAAA,EAC7B,gBAAgB;AAAA,EAChB,4BAA4B;AAAA,EAC5B,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,8BAA8B;AAAA,EAC9B,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,qBAAqB;AAAA,EACrB,gBAAgB;AAAA,EAChB,wBAAwB;AAC1B;AAEO,IAAM,gBAAgB;AAAA,EAC3B,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,wBAAwB;AAAA,EACxB,sBAAsB;AAAA,EACtB,wBAAwB;AAAA,EACxB,uBAAuB;AAAA,EACvB,eAAe,GAAG,iBAAiB,IAAI;AACzC;AAEO,IAAM,mBAAmB;AAAA,EAC9B,0BAA0B;AAAA,EAC1B,0BAA0B;AAAA,EAC1B,2BAA2B;AAAA,EAC3B,2BAA2B;AAAA,EAC3B,2BAA2B;AAC7B;","names":[]}
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
resolveAgents,
|
|
19
19
|
writeContentHash,
|
|
20
20
|
writePluginManifest
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-TM4I4EHK.js";
|
|
22
22
|
import {
|
|
23
23
|
typedEntries,
|
|
24
24
|
typedKeys
|
|
@@ -36,12 +36,12 @@ import {
|
|
|
36
36
|
verbose,
|
|
37
37
|
warn,
|
|
38
38
|
writeFile
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-NLR6Z37M.js";
|
|
40
40
|
import {
|
|
41
41
|
CLAUDE_DIR,
|
|
42
42
|
DIRS,
|
|
43
43
|
PROJECT_ROOT
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-YCS7GF6Y.js";
|
|
45
45
|
import {
|
|
46
46
|
init_esm_shims
|
|
47
47
|
} from "./chunk-DHET7RCE.js";
|
|
@@ -315,4 +315,4 @@ export {
|
|
|
315
315
|
compileAllAgentPlugins,
|
|
316
316
|
printAgentCompilationSummary
|
|
317
317
|
};
|
|
318
|
-
//# sourceMappingURL=chunk-
|
|
318
|
+
//# sourceMappingURL=chunk-GIFEDW27.js.map
|