agents-inc 0.150.0 → 0.152.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/dist/{chunk-FWT3CBLL.js → chunk-5GUOIJSG.js} +3 -7
- package/dist/{chunk-FWT3CBLL.js.map → chunk-5GUOIJSG.js.map} +1 -1
- package/dist/{chunk-MC5DUZ3V.js → chunk-5UWKOOIS.js} +6 -26
- package/dist/chunk-5UWKOOIS.js.map +1 -0
- package/dist/{chunk-O5ASLZ2K.js → chunk-76ADG7LQ.js} +1 -5
- package/dist/{chunk-O5ASLZ2K.js.map → chunk-76ADG7LQ.js.map} +1 -1
- package/dist/{chunk-7URSGJLE.js → chunk-BNSRA6HL.js} +13 -18
- package/dist/{chunk-7URSGJLE.js.map → chunk-BNSRA6HL.js.map} +1 -1
- package/dist/{chunk-FYPUUYSG.js → chunk-DTSG5XZB.js} +3 -7
- package/dist/{chunk-FYPUUYSG.js.map → chunk-DTSG5XZB.js.map} +1 -1
- package/dist/{chunk-YKKIJHZB.js → chunk-E5X6RJ4E.js} +5 -15
- package/dist/chunk-E5X6RJ4E.js.map +1 -0
- package/dist/{chunk-KH7MOIM5.js → chunk-EEPELKOM.js} +3665 -3737
- package/dist/chunk-EEPELKOM.js.map +1 -0
- package/dist/{chunk-NIKUMXE7.js → chunk-F7T5AFFN.js} +1 -5
- package/dist/{chunk-NIKUMXE7.js.map → chunk-F7T5AFFN.js.map} +1 -1
- package/dist/{chunk-4GL2F5AB.js → chunk-FVDKAVOL.js} +57 -48
- package/dist/chunk-FVDKAVOL.js.map +1 -0
- package/dist/{chunk-UZRISDBZ.js → chunk-GRVKW3CC.js} +2 -6
- package/dist/{chunk-UZRISDBZ.js.map → chunk-GRVKW3CC.js.map} +1 -1
- package/dist/{chunk-CDMHSHBN.js → chunk-IHUY4M22.js} +4 -8
- package/dist/{chunk-CDMHSHBN.js.map → chunk-IHUY4M22.js.map} +1 -1
- package/dist/{chunk-OZZGXBCN.js → chunk-IUQBOCSU.js} +1 -5
- package/dist/{chunk-OZZGXBCN.js.map → chunk-IUQBOCSU.js.map} +1 -1
- package/dist/{chunk-LYYXX2W5.js → chunk-J27W6TXS.js} +4 -6
- package/dist/{chunk-LYYXX2W5.js.map → chunk-J27W6TXS.js.map} +1 -1
- package/dist/chunk-JFLVEFFP.js +16 -0
- package/dist/chunk-JFLVEFFP.js.map +1 -0
- package/dist/{chunk-4LPJZNT7.js → chunk-KFB5CRXZ.js} +7 -12
- package/dist/{chunk-4LPJZNT7.js.map → chunk-KFB5CRXZ.js.map} +1 -1
- package/dist/{chunk-SYUOXSPU.js → chunk-KR65TPKC.js} +168 -14
- package/dist/chunk-KR65TPKC.js.map +1 -0
- package/dist/{chunk-KOPEM3Q7.js → chunk-KXYVJGJP.js} +2 -6
- package/dist/{chunk-KOPEM3Q7.js.map → chunk-KXYVJGJP.js.map} +1 -1
- package/dist/{chunk-ZHTXPFDK.js → chunk-L7SZXUBJ.js} +9 -14
- package/dist/{chunk-ZHTXPFDK.js.map → chunk-L7SZXUBJ.js.map} +1 -1
- package/dist/{chunk-LRYNF3J7.js → chunk-LASI35KT.js} +4 -9
- package/dist/{chunk-LRYNF3J7.js.map → chunk-LASI35KT.js.map} +1 -1
- package/dist/{chunk-VG2TVBFN.js → chunk-LDP5ASDM.js} +2 -6
- package/dist/{chunk-VG2TVBFN.js.map → chunk-LDP5ASDM.js.map} +1 -1
- package/dist/{chunk-GRPSDKIS.js → chunk-LZ52XEPR.js} +4 -8
- package/dist/{chunk-GRPSDKIS.js.map → chunk-LZ52XEPR.js.map} +1 -1
- package/dist/{chunk-CFQT72MJ.js → chunk-M7HO7NBK.js} +4 -8
- package/dist/{chunk-CFQT72MJ.js.map → chunk-M7HO7NBK.js.map} +1 -1
- package/dist/{chunk-XA57SX4T.js → chunk-MJ2KHG24.js} +4 -8
- package/dist/{chunk-XA57SX4T.js.map → chunk-MJ2KHG24.js.map} +1 -1
- package/dist/{chunk-DAG2ULNF.js → chunk-MM7CTTAV.js} +2 -6
- package/dist/chunk-MM7CTTAV.js.map +1 -0
- package/dist/{chunk-F3756A5B.js → chunk-MQ7FLIYS.js} +2 -6
- package/dist/{chunk-F3756A5B.js.map → chunk-MQ7FLIYS.js.map} +1 -1
- package/dist/{chunk-NUIZ6ZUO.js → chunk-MVR3SYMN.js} +6 -8
- package/dist/chunk-MVR3SYMN.js.map +1 -0
- package/dist/{chunk-ZKJAJWK6.js → chunk-MWG4VU64.js} +12 -17
- package/dist/{chunk-ZKJAJWK6.js.map → chunk-MWG4VU64.js.map} +1 -1
- package/dist/{chunk-ES3NJZON.js → chunk-NR3OZGL4.js} +1 -5
- package/dist/{chunk-ES3NJZON.js.map → chunk-NR3OZGL4.js.map} +1 -1
- package/dist/{chunk-GYG5SE2D.js → chunk-ODNDXQH2.js} +2 -6
- package/dist/{chunk-GYG5SE2D.js.map → chunk-ODNDXQH2.js.map} +1 -1
- package/dist/{chunk-2RSNKBXC.js → chunk-P44SXVH3.js} +6 -10
- package/dist/{chunk-2RSNKBXC.js.map → chunk-P44SXVH3.js.map} +1 -1
- package/dist/{chunk-3LIU2ZEF.js → chunk-PMM2MYMA.js} +3 -16
- package/dist/{chunk-3LIU2ZEF.js.map → chunk-PMM2MYMA.js.map} +1 -1
- package/dist/{chunk-6I6RZHYP.js → chunk-PZIZNMHK.js} +24 -36
- package/dist/chunk-PZIZNMHK.js.map +1 -0
- package/dist/{chunk-C55DN7GE.js → chunk-Q2KG7UV3.js} +3 -5
- package/dist/chunk-Q2KG7UV3.js.map +1 -0
- package/dist/{chunk-QQLRX4KI.js → chunk-Q45ZU6HD.js} +2 -6
- package/dist/{chunk-QQLRX4KI.js.map → chunk-Q45ZU6HD.js.map} +1 -1
- package/dist/{chunk-HIPGKIT3.js → chunk-QRDTLVXG.js} +9 -14
- package/dist/{chunk-HIPGKIT3.js.map → chunk-QRDTLVXG.js.map} +1 -1
- package/dist/{chunk-VIFZ6NFH.js → chunk-QZZJFYUQ.js} +3 -7
- package/dist/{chunk-VIFZ6NFH.js.map → chunk-QZZJFYUQ.js.map} +1 -1
- package/dist/{chunk-E4FT2KFV.js → chunk-R5NOI2LP.js} +13 -17
- package/dist/{chunk-E4FT2KFV.js.map → chunk-R5NOI2LP.js.map} +1 -1
- package/dist/{chunk-DUVWGO6E.js → chunk-RNJWAKMO.js} +3 -7
- package/dist/{chunk-DUVWGO6E.js.map → chunk-RNJWAKMO.js.map} +1 -1
- package/dist/{chunk-N4IZ6GBO.js → chunk-SBHBBZKF.js} +7 -23
- package/dist/chunk-SBHBBZKF.js.map +1 -0
- package/dist/{chunk-EN2GCPW7.js → chunk-SKQWRUPX.js} +10 -14
- package/dist/{chunk-EN2GCPW7.js.map → chunk-SKQWRUPX.js.map} +1 -1
- package/dist/{chunk-DDG4F3FE.js → chunk-STMHDOZD.js} +4 -21
- package/dist/chunk-STMHDOZD.js.map +1 -0
- package/dist/{chunk-5K5RBRTD.js → chunk-SX5H6TSC.js} +7 -11
- package/dist/chunk-SX5H6TSC.js.map +1 -0
- package/dist/{chunk-RBHYLCUB.js → chunk-TJJPWUMA.js} +2 -6
- package/dist/{chunk-RBHYLCUB.js.map → chunk-TJJPWUMA.js.map} +1 -1
- package/dist/{chunk-IOJR5TOY.js → chunk-TSIU7DME.js} +1 -5
- package/dist/{chunk-IOJR5TOY.js.map → chunk-TSIU7DME.js.map} +1 -1
- package/dist/{chunk-RP7R73JO.js → chunk-TUPYW2IQ.js} +3 -7
- package/dist/{chunk-RP7R73JO.js.map → chunk-TUPYW2IQ.js.map} +1 -1
- package/dist/{chunk-YU2VGX5R.js → chunk-UBEDZ4FD.js} +1 -8
- package/dist/{chunk-YU2VGX5R.js.map → chunk-UBEDZ4FD.js.map} +1 -1
- package/dist/{chunk-VEP23B5W.js → chunk-VASLW636.js} +1 -5
- package/dist/{chunk-VEP23B5W.js.map → chunk-VASLW636.js.map} +1 -1
- package/dist/{chunk-PG4G4IIK.js → chunk-VY6MNOXL.js} +2 -6
- package/dist/{chunk-PG4G4IIK.js.map → chunk-VY6MNOXL.js.map} +1 -1
- package/dist/{chunk-IHO75PMZ.js → chunk-WBCPLH66.js} +15 -13
- package/dist/chunk-WBCPLH66.js.map +1 -0
- package/dist/{chunk-DJAZE4PD.js → chunk-WKTHWQKM.js} +297 -302
- package/dist/chunk-WKTHWQKM.js.map +1 -0
- package/dist/{chunk-RJN7W2C7.js → chunk-XHUODHZ4.js} +19 -25
- package/dist/{chunk-RJN7W2C7.js.map → chunk-XHUODHZ4.js.map} +1 -1
- package/dist/{chunk-KIR7VYQD.js → chunk-XVAQG2CV.js} +1 -5
- package/dist/{chunk-KIR7VYQD.js.map → chunk-XVAQG2CV.js.map} +1 -1
- package/dist/{chunk-P3PN5SVI.js → chunk-ZL7PFNHN.js} +2 -6
- package/dist/{chunk-P3PN5SVI.js.map → chunk-ZL7PFNHN.js.map} +1 -1
- package/dist/{chunk-ZDLTLNU2.js → chunk-ZPPHXXAP.js} +9 -15
- package/dist/{chunk-ZDLTLNU2.js.map → chunk-ZPPHXXAP.js.map} +1 -1
- package/dist/commands/build/marketplace.js +10 -15
- package/dist/commands/build/marketplace.js.map +1 -1
- package/dist/commands/build/plugins.js +9 -14
- package/dist/commands/build/plugins.js.map +1 -1
- package/dist/commands/compile.js +14 -19
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/doctor.js +13 -18
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.js +51 -55
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +13 -18
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/import/skill.js +9 -14
- package/dist/commands/import/skill.js.map +1 -1
- package/dist/commands/init.js +50 -51
- package/dist/commands/list.js +14 -16
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/new/agent.js +12 -16
- package/dist/commands/new/agent.js.map +1 -1
- package/dist/commands/new/marketplace.js +15 -20
- package/dist/commands/new/marketplace.js.map +1 -1
- package/dist/commands/new/skill.js +11 -13
- package/dist/commands/search.js +14 -19
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/uninstall.js +17 -21
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.js +17 -21
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/validate.js +10 -16
- package/dist/commands/validate.js.map +1 -1
- package/dist/components/common/confirm.js +1 -2
- package/dist/components/common/prompt-confirm.js +2 -2
- package/dist/components/common/select-list.js +3 -4
- package/dist/components/common/spinner.js +1 -2
- package/dist/components/wizard/category-grid.js +8 -9
- package/dist/components/wizard/checkbox-grid.js +6 -7
- package/dist/components/wizard/domain-selection.js +14 -15
- package/dist/components/wizard/run-wizard-session.js +40 -40
- package/dist/components/wizard/scroll-affordance.js +2 -3
- package/dist/components/wizard/search-modal.js +6 -7
- package/dist/components/wizard/selection-card.js +2 -3
- package/dist/components/wizard/skill-agent-summary.js +8 -9
- package/dist/components/wizard/source-grid.js +13 -14
- package/dist/components/wizard/stack-selection.js +12 -13
- package/dist/components/wizard/step-agents.js +14 -15
- package/dist/components/wizard/step-build.js +14 -15
- package/dist/components/wizard/step-confirm.js +13 -14
- package/dist/components/wizard/step-settings.js +11 -12
- package/dist/components/wizard/step-sources.js +20 -21
- package/dist/components/wizard/step-stack.js +13 -14
- package/dist/components/wizard/summary-panel.js +12 -13
- package/dist/components/wizard/toast.js +2 -3
- package/dist/components/wizard/wizard-layout.js +18 -19
- package/dist/components/wizard/wizard-tabs.js +8 -9
- package/dist/components/wizard/wizard.js +38 -39
- package/dist/config-exports.js +1 -7
- package/dist/config-exports.js.map +1 -1
- package/dist/copy-local-skills-6EMVN7RB.js +14 -0
- package/dist/hooks/init.js +50 -54
- package/dist/hooks/init.js.map +1 -1
- package/dist/index.js +0 -4
- package/dist/index.js.map +1 -1
- package/dist/load-agent-defs-BWOUVEAR.js +15 -0
- package/dist/{loader-E2ERJYVA.js → loader-5JP4S7CJ.js} +4 -5
- package/dist/recompile-project-agents-6DL45TDI.js +19 -0
- package/dist/{source-loader-VVHMQEX5.js → source-loader-MZYCPL2S.js} +7 -8
- package/dist/stores/wizard-store.js +7 -8
- package/package.json +22 -21
- package/dist/chunk-4GL2F5AB.js.map +0 -1
- package/dist/chunk-5K5RBRTD.js.map +0 -1
- package/dist/chunk-6I6RZHYP.js.map +0 -1
- package/dist/chunk-C55DN7GE.js.map +0 -1
- package/dist/chunk-DAG2ULNF.js.map +0 -1
- package/dist/chunk-DDG4F3FE.js.map +0 -1
- package/dist/chunk-DIBCRIMR.js +0 -36
- package/dist/chunk-DIBCRIMR.js.map +0 -1
- package/dist/chunk-DJAZE4PD.js.map +0 -1
- package/dist/chunk-EKWAUOQB.js +0 -96
- package/dist/chunk-EKWAUOQB.js.map +0 -1
- package/dist/chunk-I3XKEGHM.js +0 -16383
- package/dist/chunk-I3XKEGHM.js.map +0 -1
- package/dist/chunk-IHO75PMZ.js.map +0 -1
- package/dist/chunk-K3OU6TGX.js +0 -77
- package/dist/chunk-K3OU6TGX.js.map +0 -1
- package/dist/chunk-KH7MOIM5.js.map +0 -1
- package/dist/chunk-KSZ6PCY4.js +0 -43
- package/dist/chunk-KSZ6PCY4.js.map +0 -1
- package/dist/chunk-MC5DUZ3V.js.map +0 -1
- package/dist/chunk-N4IZ6GBO.js.map +0 -1
- package/dist/chunk-NUIZ6ZUO.js.map +0 -1
- package/dist/chunk-OA5SUEQD.js +0 -181
- package/dist/chunk-OA5SUEQD.js.map +0 -1
- package/dist/chunk-P56WJ5FA.js +0 -50
- package/dist/chunk-P56WJ5FA.js.map +0 -1
- package/dist/chunk-SYUOXSPU.js.map +0 -1
- package/dist/chunk-THKIOI32.js +0 -939
- package/dist/chunk-THKIOI32.js.map +0 -1
- package/dist/chunk-V7QOSGQA.js +0 -298
- package/dist/chunk-V7QOSGQA.js.map +0 -1
- package/dist/chunk-YKKIJHZB.js.map +0 -1
- package/dist/components/common/confirm.test.js +0 -203
- package/dist/components/common/confirm.test.js.map +0 -1
- package/dist/components/wizard/category-grid.test.js +0 -1253
- package/dist/components/wizard/category-grid.test.js.map +0 -1
- package/dist/components/wizard/checkbox-grid.test.js +0 -264
- package/dist/components/wizard/checkbox-grid.test.js.map +0 -1
- package/dist/components/wizard/search-modal.test.js +0 -212
- package/dist/components/wizard/search-modal.test.js.map +0 -1
- package/dist/components/wizard/source-grid.test.js +0 -1094
- package/dist/components/wizard/source-grid.test.js.map +0 -1
- package/dist/components/wizard/step-agents.test.js +0 -204
- package/dist/components/wizard/step-agents.test.js.map +0 -1
- package/dist/components/wizard/step-build.test.js +0 -552
- package/dist/components/wizard/step-build.test.js.map +0 -1
- package/dist/components/wizard/step-confirm.test.js +0 -744
- package/dist/components/wizard/step-confirm.test.js.map +0 -1
- package/dist/components/wizard/step-settings.test.js +0 -244
- package/dist/components/wizard/step-settings.test.js.map +0 -1
- package/dist/components/wizard/step-sources.test.js +0 -155
- package/dist/components/wizard/step-sources.test.js.map +0 -1
- package/dist/components/wizard/step-stack.test.js +0 -262
- package/dist/components/wizard/step-stack.test.js.map +0 -1
- package/dist/components/wizard/summary-panel.test.js +0 -317
- package/dist/components/wizard/summary-panel.test.js.map +0 -1
- package/dist/components/wizard/wizard-layout.test.js +0 -200
- package/dist/components/wizard/wizard-layout.test.js.map +0 -1
- package/dist/components/wizard/wizard-tabs.test.js +0 -290
- package/dist/components/wizard/wizard-tabs.test.js.map +0 -1
- package/dist/copy-local-skills-CA7P73RZ.js +0 -15
- package/dist/dist-VNJNNJK7.js +0 -550
- package/dist/dist-VNJNNJK7.js.map +0 -1
- package/dist/load-agent-defs-6MAY5ABI.js +0 -16
- package/dist/magic-string.es-5TV73NJD.js +0 -1316
- package/dist/magic-string.es-5TV73NJD.js.map +0 -1
- package/dist/recompile-project-agents-VYQJ6UZB.js +0 -20
- package/dist/source-manager-TPDXV5FO.js +0 -18
- package/dist/source-manager-TPDXV5FO.js.map +0 -1
- package/dist/stores/d227-same-scope-tombstone-duplicate.test.js +0 -118
- package/dist/stores/d227-same-scope-tombstone-duplicate.test.js.map +0 -1
- package/dist/stores/wizard-store.test.js +0 -3053
- package/dist/stores/wizard-store.test.js.map +0 -1
- /package/dist/{copy-local-skills-CA7P73RZ.js.map → copy-local-skills-6EMVN7RB.js.map} +0 -0
- /package/dist/{load-agent-defs-6MAY5ABI.js.map → load-agent-defs-BWOUVEAR.js.map} +0 -0
- /package/dist/{loader-E2ERJYVA.js.map → loader-5JP4S7CJ.js.map} +0 -0
- /package/dist/{recompile-project-agents-VYQJ6UZB.js.map → recompile-project-agents-6DL45TDI.js.map} +0 -0
- /package/dist/{source-loader-VVHMQEX5.js.map → source-loader-MZYCPL2S.js.map} +0 -0
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
ARROW_DOWN,
|
|
4
|
-
ARROW_UP,
|
|
5
|
-
ENTER,
|
|
6
|
-
ESCAPE,
|
|
7
|
-
INPUT_DELAY_MS,
|
|
8
|
-
RENDER_DELAY_MS,
|
|
9
|
-
delay
|
|
10
|
-
} from "../../chunk-KSZ6PCY4.js";
|
|
11
|
-
import {
|
|
12
|
-
render
|
|
13
|
-
} from "../../chunk-EKWAUOQB.js";
|
|
14
|
-
import {
|
|
15
|
-
afterEach,
|
|
16
|
-
describe,
|
|
17
|
-
globalExpect,
|
|
18
|
-
it,
|
|
19
|
-
vi
|
|
20
|
-
} from "../../chunk-I3XKEGHM.js";
|
|
21
|
-
import {
|
|
22
|
-
SearchModal
|
|
23
|
-
} from "../../chunk-2RSNKBXC.js";
|
|
24
|
-
import "../../chunk-DUVWGO6E.js";
|
|
25
|
-
import "../../chunk-KIR7VYQD.js";
|
|
26
|
-
import "../../chunk-VG2TVBFN.js";
|
|
27
|
-
import "../../chunk-IHO75PMZ.js";
|
|
28
|
-
import "../../chunk-O5ASLZ2K.js";
|
|
29
|
-
import {
|
|
30
|
-
init_esm_shims
|
|
31
|
-
} from "../../chunk-P56WJ5FA.js";
|
|
32
|
-
|
|
33
|
-
// src/cli/components/wizard/search-modal.test.tsx
|
|
34
|
-
init_esm_shims();
|
|
35
|
-
import { jsx } from "react/jsx-runtime";
|
|
36
|
-
var candidates = [
|
|
37
|
-
{
|
|
38
|
-
id: "web-framework-react-pro",
|
|
39
|
-
sourceUrl: "github:awesome-dev/skills",
|
|
40
|
-
sourceName: "awesome-dev",
|
|
41
|
-
alias: "react",
|
|
42
|
-
description: "Opinionated React with strict TS"
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
id: "web-framework-react-strict",
|
|
46
|
-
sourceUrl: "github:team-xyz/skills",
|
|
47
|
-
sourceName: "team-xyz",
|
|
48
|
-
alias: "react",
|
|
49
|
-
description: "Strict mode React"
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
id: "web-framework-react-minimal",
|
|
53
|
-
sourceUrl: "github:solo-dev/skills",
|
|
54
|
-
sourceName: "solo-dev",
|
|
55
|
-
alias: "react",
|
|
56
|
-
description: "Minimal hooks-only React"
|
|
57
|
-
}
|
|
58
|
-
];
|
|
59
|
-
var defaultProps = {
|
|
60
|
-
results: candidates,
|
|
61
|
-
alias: "react",
|
|
62
|
-
onBind: vi.fn(),
|
|
63
|
-
onClose: vi.fn()
|
|
64
|
-
};
|
|
65
|
-
var renderModal = (props = {}) => {
|
|
66
|
-
return render(/* @__PURE__ */ jsx(SearchModal, { ...defaultProps, ...props }));
|
|
67
|
-
};
|
|
68
|
-
describe("SearchModal component", () => {
|
|
69
|
-
let cleanup;
|
|
70
|
-
afterEach(() => {
|
|
71
|
-
cleanup?.();
|
|
72
|
-
cleanup = void 0;
|
|
73
|
-
});
|
|
74
|
-
describe("rendering", () => {
|
|
75
|
-
it("should render the alias in the title", () => {
|
|
76
|
-
const { lastFrame, unmount } = renderModal();
|
|
77
|
-
cleanup = unmount;
|
|
78
|
-
const output = lastFrame();
|
|
79
|
-
globalExpect(output).toContain("react");
|
|
80
|
-
globalExpect(output).toContain("Search results");
|
|
81
|
-
});
|
|
82
|
-
it("should render all result source names", () => {
|
|
83
|
-
const { lastFrame, unmount } = renderModal();
|
|
84
|
-
cleanup = unmount;
|
|
85
|
-
const output = lastFrame();
|
|
86
|
-
globalExpect(output).toContain("awesome-dev");
|
|
87
|
-
globalExpect(output).toContain("team-xyz");
|
|
88
|
-
globalExpect(output).toContain("solo-dev");
|
|
89
|
-
});
|
|
90
|
-
it("should render result descriptions", () => {
|
|
91
|
-
const { lastFrame, unmount } = renderModal();
|
|
92
|
-
cleanup = unmount;
|
|
93
|
-
const output = lastFrame();
|
|
94
|
-
globalExpect(output).toContain("Opinionated React with strict TS");
|
|
95
|
-
globalExpect(output).toContain("Strict mode React");
|
|
96
|
-
});
|
|
97
|
-
it("should show focused marker on first result by default", () => {
|
|
98
|
-
const { lastFrame, unmount } = renderModal();
|
|
99
|
-
cleanup = unmount;
|
|
100
|
-
const output = lastFrame();
|
|
101
|
-
globalExpect(output).toContain("\u276F");
|
|
102
|
-
});
|
|
103
|
-
it("should show 'No results found' when results array is empty", () => {
|
|
104
|
-
const { lastFrame, unmount } = renderModal({ results: [] });
|
|
105
|
-
cleanup = unmount;
|
|
106
|
-
const output = lastFrame();
|
|
107
|
-
globalExpect(output).toContain("No results found");
|
|
108
|
-
});
|
|
109
|
-
it("should render help text with navigation hints", () => {
|
|
110
|
-
const { lastFrame, unmount } = renderModal();
|
|
111
|
-
cleanup = unmount;
|
|
112
|
-
const output = lastFrame();
|
|
113
|
-
globalExpect(output).toContain("navigate");
|
|
114
|
-
globalExpect(output).toContain("ENTER");
|
|
115
|
-
globalExpect(output).toContain("ESC");
|
|
116
|
-
});
|
|
117
|
-
});
|
|
118
|
-
describe("keyboard navigation", () => {
|
|
119
|
-
it("should move focus down with arrow down", async () => {
|
|
120
|
-
const { stdin, lastFrame, unmount } = renderModal();
|
|
121
|
-
cleanup = unmount;
|
|
122
|
-
await delay(RENDER_DELAY_MS);
|
|
123
|
-
stdin.write(ARROW_DOWN);
|
|
124
|
-
await delay(INPUT_DELAY_MS);
|
|
125
|
-
const output = lastFrame();
|
|
126
|
-
globalExpect(output).toContain("team-xyz");
|
|
127
|
-
});
|
|
128
|
-
it("should move focus up with arrow up", async () => {
|
|
129
|
-
const { stdin, lastFrame, unmount } = renderModal();
|
|
130
|
-
cleanup = unmount;
|
|
131
|
-
await delay(RENDER_DELAY_MS);
|
|
132
|
-
stdin.write(ARROW_DOWN);
|
|
133
|
-
await delay(INPUT_DELAY_MS);
|
|
134
|
-
stdin.write(ARROW_UP);
|
|
135
|
-
await delay(INPUT_DELAY_MS);
|
|
136
|
-
const output = lastFrame();
|
|
137
|
-
globalExpect(output).toContain("awesome-dev");
|
|
138
|
-
});
|
|
139
|
-
it("should wrap from last result to first on arrow down", async () => {
|
|
140
|
-
const { stdin, lastFrame, unmount } = renderModal();
|
|
141
|
-
cleanup = unmount;
|
|
142
|
-
await delay(RENDER_DELAY_MS);
|
|
143
|
-
stdin.write(ARROW_DOWN);
|
|
144
|
-
await delay(INPUT_DELAY_MS);
|
|
145
|
-
stdin.write(ARROW_DOWN);
|
|
146
|
-
await delay(INPUT_DELAY_MS);
|
|
147
|
-
stdin.write(ARROW_DOWN);
|
|
148
|
-
await delay(INPUT_DELAY_MS);
|
|
149
|
-
const output = lastFrame();
|
|
150
|
-
globalExpect(output).toContain("awesome-dev");
|
|
151
|
-
});
|
|
152
|
-
it("should wrap from first result to last on arrow up", async () => {
|
|
153
|
-
const { stdin, lastFrame, unmount } = renderModal();
|
|
154
|
-
cleanup = unmount;
|
|
155
|
-
await delay(RENDER_DELAY_MS);
|
|
156
|
-
stdin.write(ARROW_UP);
|
|
157
|
-
await delay(INPUT_DELAY_MS);
|
|
158
|
-
const output = lastFrame();
|
|
159
|
-
globalExpect(output).toContain("solo-dev");
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
describe("actions", () => {
|
|
163
|
-
it("should call onBind with focused candidate on Enter", async () => {
|
|
164
|
-
const onBind = vi.fn();
|
|
165
|
-
const { stdin, unmount } = renderModal({ onBind });
|
|
166
|
-
cleanup = unmount;
|
|
167
|
-
await delay(RENDER_DELAY_MS);
|
|
168
|
-
stdin.write(ENTER);
|
|
169
|
-
await delay(INPUT_DELAY_MS);
|
|
170
|
-
globalExpect(onBind).toHaveBeenCalledWith(candidates[0]);
|
|
171
|
-
});
|
|
172
|
-
it("should call onBind with second candidate after navigating down", async () => {
|
|
173
|
-
const onBind = vi.fn();
|
|
174
|
-
const { stdin, unmount } = renderModal({ onBind });
|
|
175
|
-
cleanup = unmount;
|
|
176
|
-
await delay(RENDER_DELAY_MS);
|
|
177
|
-
stdin.write(ARROW_DOWN);
|
|
178
|
-
await delay(INPUT_DELAY_MS);
|
|
179
|
-
stdin.write(ENTER);
|
|
180
|
-
await delay(INPUT_DELAY_MS);
|
|
181
|
-
globalExpect(onBind).toHaveBeenCalledWith(candidates[1]);
|
|
182
|
-
});
|
|
183
|
-
it("should call onClose on Escape", async () => {
|
|
184
|
-
const onClose = vi.fn();
|
|
185
|
-
const { stdin, unmount } = renderModal({ onClose });
|
|
186
|
-
cleanup = unmount;
|
|
187
|
-
await delay(RENDER_DELAY_MS);
|
|
188
|
-
stdin.write(ESCAPE);
|
|
189
|
-
await delay(INPUT_DELAY_MS);
|
|
190
|
-
globalExpect(onClose).toHaveBeenCalled();
|
|
191
|
-
});
|
|
192
|
-
it("should not call onBind on Enter when results are empty", async () => {
|
|
193
|
-
const onBind = vi.fn();
|
|
194
|
-
const { stdin, unmount } = renderModal({ results: [], onBind });
|
|
195
|
-
cleanup = unmount;
|
|
196
|
-
await delay(RENDER_DELAY_MS);
|
|
197
|
-
stdin.write(ENTER);
|
|
198
|
-
await delay(INPUT_DELAY_MS);
|
|
199
|
-
globalExpect(onBind).not.toHaveBeenCalled();
|
|
200
|
-
});
|
|
201
|
-
it("should not call onBind on Escape", async () => {
|
|
202
|
-
const onBind = vi.fn();
|
|
203
|
-
const { stdin, unmount } = renderModal({ onBind });
|
|
204
|
-
cleanup = unmount;
|
|
205
|
-
await delay(RENDER_DELAY_MS);
|
|
206
|
-
stdin.write(ESCAPE);
|
|
207
|
-
await delay(INPUT_DELAY_MS);
|
|
208
|
-
globalExpect(onBind).not.toHaveBeenCalled();
|
|
209
|
-
});
|
|
210
|
-
});
|
|
211
|
-
});
|
|
212
|
-
//# sourceMappingURL=search-modal.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cli/components/wizard/search-modal.test.tsx"],"sourcesContent":["import { render } from \"ink-testing-library\";\nimport { describe, expect, it, afterEach, vi } from \"vitest\";\nimport { SearchModal, type SearchModalProps } from \"./search-modal\";\nimport type { BoundSkillCandidate, SkillId } from \"../../types\";\nimport {\n ARROW_UP,\n ARROW_DOWN,\n ENTER,\n ESCAPE,\n RENDER_DELAY_MS,\n INPUT_DELAY_MS,\n delay,\n} from \"../../lib/__tests__/test-constants\";\n\nconst candidates: BoundSkillCandidate[] = [\n {\n id: \"web-framework-react-pro\" as SkillId,\n sourceUrl: \"github:awesome-dev/skills\",\n sourceName: \"awesome-dev\",\n alias: \"react\",\n description: \"Opinionated React with strict TS\",\n },\n {\n id: \"web-framework-react-strict\" as SkillId,\n sourceUrl: \"github:team-xyz/skills\",\n sourceName: \"team-xyz\",\n alias: \"react\",\n description: \"Strict mode React\",\n },\n {\n id: \"web-framework-react-minimal\" as SkillId,\n sourceUrl: \"github:solo-dev/skills\",\n sourceName: \"solo-dev\",\n alias: \"react\",\n description: \"Minimal hooks-only React\",\n },\n];\n\nconst defaultProps: SearchModalProps = {\n results: candidates,\n alias: \"react\",\n onBind: vi.fn(),\n onClose: vi.fn(),\n};\n\nconst renderModal = (props: Partial<SearchModalProps> = {}) => {\n return render(<SearchModal {...defaultProps} {...props} />);\n};\n\ndescribe(\"SearchModal component\", () => {\n let cleanup: (() => void) | undefined;\n\n afterEach(() => {\n cleanup?.();\n cleanup = undefined;\n });\n\n describe(\"rendering\", () => {\n it(\"should render the alias in the title\", () => {\n const { lastFrame, unmount } = renderModal();\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"react\");\n expect(output).toContain(\"Search results\");\n });\n\n it(\"should render all result source names\", () => {\n const { lastFrame, unmount } = renderModal();\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"awesome-dev\");\n expect(output).toContain(\"team-xyz\");\n expect(output).toContain(\"solo-dev\");\n });\n\n it(\"should render result descriptions\", () => {\n const { lastFrame, unmount } = renderModal();\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"Opinionated React with strict TS\");\n expect(output).toContain(\"Strict mode React\");\n });\n\n it(\"should show focused marker on first result by default\", () => {\n const { lastFrame, unmount } = renderModal();\n cleanup = unmount;\n\n const output = lastFrame();\n // The focused marker should appear (UI_SYMBOLS.CHEVRON = U+276F)\n expect(output).toContain(\"\\u276F\");\n });\n\n it(\"should show 'No results found' when results array is empty\", () => {\n const { lastFrame, unmount } = renderModal({ results: [] });\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"No results found\");\n });\n\n it(\"should render help text with navigation hints\", () => {\n const { lastFrame, unmount } = renderModal();\n cleanup = unmount;\n\n const output = lastFrame();\n expect(output).toContain(\"navigate\");\n expect(output).toContain(\"ENTER\");\n expect(output).toContain(\"ESC\");\n });\n });\n\n describe(\"keyboard navigation\", () => {\n it(\"should move focus down with arrow down\", async () => {\n const { stdin, lastFrame, unmount } = renderModal();\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n stdin.write(ARROW_DOWN);\n await delay(INPUT_DELAY_MS);\n\n const output = lastFrame();\n // The second result (team-xyz) should now have the marker\n // We check that the output changed — specific marker positioning depends on rendering\n expect(output).toContain(\"team-xyz\");\n });\n\n it(\"should move focus up with arrow up\", async () => {\n const { stdin, lastFrame, unmount } = renderModal();\n cleanup = unmount;\n\n // Move down first, then back up\n await delay(RENDER_DELAY_MS);\n stdin.write(ARROW_DOWN);\n await delay(INPUT_DELAY_MS);\n stdin.write(ARROW_UP);\n await delay(INPUT_DELAY_MS);\n\n const output = lastFrame();\n expect(output).toContain(\"awesome-dev\");\n });\n\n it(\"should wrap from last result to first on arrow down\", async () => {\n const { stdin, lastFrame, unmount } = renderModal();\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n // Move down 3 times (past last result)\n stdin.write(ARROW_DOWN);\n await delay(INPUT_DELAY_MS);\n stdin.write(ARROW_DOWN);\n await delay(INPUT_DELAY_MS);\n stdin.write(ARROW_DOWN);\n await delay(INPUT_DELAY_MS);\n\n const output = lastFrame();\n // Should have wrapped to first result\n expect(output).toContain(\"awesome-dev\");\n });\n\n it(\"should wrap from first result to last on arrow up\", async () => {\n const { stdin, lastFrame, unmount } = renderModal();\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n stdin.write(ARROW_UP);\n await delay(INPUT_DELAY_MS);\n\n const output = lastFrame();\n // Should have wrapped to last result\n expect(output).toContain(\"solo-dev\");\n });\n });\n\n describe(\"actions\", () => {\n it(\"should call onBind with focused candidate on Enter\", async () => {\n const onBind = vi.fn();\n const { stdin, unmount } = renderModal({ onBind });\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n stdin.write(ENTER);\n await delay(INPUT_DELAY_MS);\n\n expect(onBind).toHaveBeenCalledWith(candidates[0]);\n });\n\n it(\"should call onBind with second candidate after navigating down\", async () => {\n const onBind = vi.fn();\n const { stdin, unmount } = renderModal({ onBind });\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n stdin.write(ARROW_DOWN);\n await delay(INPUT_DELAY_MS);\n stdin.write(ENTER);\n await delay(INPUT_DELAY_MS);\n\n expect(onBind).toHaveBeenCalledWith(candidates[1]);\n });\n\n it(\"should call onClose on Escape\", async () => {\n const onClose = vi.fn();\n const { stdin, unmount } = renderModal({ onClose });\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n stdin.write(ESCAPE);\n await delay(INPUT_DELAY_MS);\n\n expect(onClose).toHaveBeenCalled();\n });\n\n it(\"should not call onBind on Enter when results are empty\", async () => {\n const onBind = vi.fn();\n const { stdin, unmount } = renderModal({ results: [], onBind });\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n stdin.write(ENTER);\n await delay(INPUT_DELAY_MS);\n\n expect(onBind).not.toHaveBeenCalled();\n });\n\n it(\"should not call onBind on Escape\", async () => {\n const onBind = vi.fn();\n const { stdin, unmount } = renderModal({ onBind });\n cleanup = unmount;\n\n await delay(RENDER_DELAY_MS);\n stdin.write(ESCAPE);\n await delay(INPUT_DELAY_MS);\n\n expect(onBind).not.toHaveBeenCalled();\n });\n });\n});\n"],"mappings":"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","names":[]}
|