@agents-inc/cli 0.42.0 → 0.45.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 +38 -0
- package/README.md +128 -113
- package/assets/logo.png +0 -0
- package/assets/logo.svg +75 -0
- package/config/stacks.yaml +0 -321
- package/dist/{chunk-J73KIP6Z.js → chunk-3JRWNWBF.js} +66 -4
- package/dist/chunk-3JRWNWBF.js.map +1 -0
- package/dist/{chunk-MHET2RG2.js → chunk-3S4GIO4B.js} +2 -2
- package/dist/{chunk-UXNHU7Y7.js → chunk-473YHDYQ.js} +3 -12
- package/dist/chunk-473YHDYQ.js.map +1 -0
- package/dist/{chunk-GVRZY5KI.js → chunk-5BDYODWP.js} +3 -3
- package/dist/{chunk-53K3URKF.js → chunk-ABE55TEU.js} +5 -3
- package/dist/chunk-ABE55TEU.js.map +1 -0
- package/dist/{chunk-2TWELY5M.js → chunk-ARET3NYO.js} +3 -3
- package/dist/{chunk-X34RGEFX.js → chunk-CLHBKFHU.js} +2 -2
- package/dist/{chunk-ORJPGZVD.js → chunk-DAVOSI4M.js} +7 -7
- package/dist/chunk-DAVOSI4M.js.map +1 -0
- package/dist/{chunk-IUYU2TP6.js → chunk-ELRGSZHZ.js} +7 -7
- package/dist/{chunk-MI4NWOWD.js → chunk-ENWMWIHP.js} +7 -7
- package/dist/{chunk-52SI5XJH.js → chunk-F3O5YHSI.js} +2 -7
- package/dist/chunk-F3O5YHSI.js.map +1 -0
- package/dist/{chunk-PP7NDFFE.js → chunk-FVN5PFFY.js} +8 -1
- package/dist/{chunk-PP7NDFFE.js.map → chunk-FVN5PFFY.js.map} +1 -1
- package/dist/{chunk-XRA4LHTJ.js → chunk-FYNMNY4P.js} +6 -8
- package/dist/chunk-FYNMNY4P.js.map +1 -0
- package/dist/{chunk-GCN7GGWE.js → chunk-GUIRWCKI.js} +3 -3
- package/dist/{chunk-AQANPOLS.js → chunk-HKRLWERR.js} +2 -2
- package/dist/{chunk-EPJ2GJNJ.js → chunk-KCYNTAAF.js} +9 -9
- package/dist/{chunk-33D24DAF.js → chunk-KVHLKPYB.js} +10 -10
- package/dist/{chunk-MMD26LKJ.js → chunk-KWWLPPHF.js} +2 -2
- package/dist/{chunk-FDY6SGSA.js → chunk-KZNPPUQG.js} +2 -2
- package/dist/{chunk-GIZ6DENW.js → chunk-M2XPTQDT.js} +4 -4
- package/dist/{chunk-BKW34TKI.js → chunk-M3AGB4TR.js} +3 -3
- package/dist/{chunk-ZHJEZ7AU.js → chunk-NTPHCNJO.js} +2 -2
- package/dist/{chunk-44QCEK7E.js → chunk-OALQWRLG.js} +2 -2
- package/dist/{chunk-PEAPABFI.js → chunk-OLZBZAW4.js} +2 -2
- package/dist/{chunk-FF4Z7MHY.js → chunk-Q5BSIARS.js} +26 -18
- package/dist/chunk-Q5BSIARS.js.map +1 -0
- package/dist/{chunk-UVVNWF43.js → chunk-SBWMSNS2.js} +2 -2
- package/dist/{chunk-ALWLM5MC.js → chunk-SRFNNOLC.js} +2 -2
- package/dist/{chunk-KA253GGY.js → chunk-SYGEV3KV.js} +4 -4
- package/dist/{chunk-HMGWGWFT.js → chunk-V43QDMYQ.js} +2 -2
- package/dist/{chunk-WMAALRQI.js → chunk-VTDEENSP.js} +4 -4
- package/dist/{chunk-VHGIQN5O.js → chunk-WWSKP5SR.js} +4 -4
- package/dist/{chunk-EFZN22TO.js → chunk-YQFU2KZ5.js} +3 -3
- package/dist/{chunk-SYHRJG5G.js → chunk-ZECXM7LP.js} +162 -278
- package/dist/chunk-ZECXM7LP.js.map +1 -0
- 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 +6 -6
- 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 +4 -4
- package/dist/commands/doctor.js +4 -4
- package/dist/commands/edit.js +33 -30
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +39 -14
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/import/skill.js +5 -5
- package/dist/commands/info.js +5 -5
- package/dist/commands/init.js +31 -36
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.js +4 -4
- package/dist/commands/new/agent.js +5 -5
- package/dist/commands/new/skill.js +4 -5
- package/dist/commands/new/skill.js.map +1 -1
- package/dist/commands/outdated.js +4 -4
- package/dist/commands/search.js +7 -7
- package/dist/commands/uninstall.js +6 -6
- package/dist/commands/update.js +6 -6
- package/dist/commands/validate.js +5 -5
- 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 +184 -98
- package/dist/components/wizard/category-grid.test.js.map +1 -1
- package/dist/components/wizard/checkbox-grid.js +3 -3
- package/dist/components/wizard/checkbox-grid.test.js +3 -3
- package/dist/components/wizard/domain-selection.js +8 -8
- package/dist/components/wizard/help-modal.js +2 -2
- package/dist/components/wizard/menu-item.js +1 -1
- package/dist/components/wizard/search-modal.js +2 -2
- package/dist/components/wizard/search-modal.test.js +2 -11
- package/dist/components/wizard/search-modal.test.js.map +1 -1
- package/dist/components/wizard/section-progress.js +2 -2
- package/dist/components/wizard/section-progress.test.js +2 -2
- package/dist/components/wizard/selection-card.js +2 -2
- package/dist/components/wizard/source-grid.js +3 -3
- package/dist/components/wizard/source-grid.test.js +5 -9
- package/dist/components/wizard/source-grid.test.js.map +1 -1
- package/dist/components/wizard/stack-selection.js +8 -8
- package/dist/components/wizard/step-agents.js +7 -7
- package/dist/components/wizard/step-agents.test.js +7 -7
- package/dist/components/wizard/step-build.js +8 -8
- package/dist/components/wizard/step-build.test.js +25 -40
- 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 +7 -7
- package/dist/components/wizard/step-refine.js +2 -2
- package/dist/components/wizard/step-refine.test.js +2 -2
- package/dist/components/wizard/step-settings.js +5 -5
- package/dist/components/wizard/step-settings.test.js +8 -8
- package/dist/components/wizard/step-sources.js +11 -11
- package/dist/components/wizard/step-sources.test.js +14 -20
- package/dist/components/wizard/step-sources.test.js.map +1 -1
- package/dist/components/wizard/step-stack.js +11 -11
- package/dist/components/wizard/step-stack.test.js +17 -26
- package/dist/components/wizard/step-stack.test.js.map +1 -1
- package/dist/components/wizard/view-title.js +2 -2
- package/dist/components/wizard/wizard-layout.js +8 -8
- package/dist/components/wizard/wizard-tabs.js +2 -2
- package/dist/components/wizard/wizard-tabs.test.js +2 -2
- package/dist/components/wizard/wizard.js +26 -26
- package/dist/config/stacks.yaml +0 -321
- package/dist/hooks/init.js +3 -3
- package/dist/{source-manager-ABK5COKX.js → source-manager-HXFXBZJU.js} +4 -4
- package/dist/stores/wizard-store.js +5 -5
- package/dist/stores/wizard-store.test.js +29 -49
- package/dist/stores/wizard-store.test.js.map +1 -1
- package/package.json +3 -1
- package/src/schemas/metadata.schema.json +0 -5
- package/dist/chunk-52SI5XJH.js.map +0 -1
- package/dist/chunk-53K3URKF.js.map +0 -1
- package/dist/chunk-FF4Z7MHY.js.map +0 -1
- package/dist/chunk-J73KIP6Z.js.map +0 -1
- package/dist/chunk-ORJPGZVD.js.map +0 -1
- package/dist/chunk-SYHRJG5G.js.map +0 -1
- package/dist/chunk-UXNHU7Y7.js.map +0 -1
- package/dist/chunk-XRA4LHTJ.js.map +0 -1
- package/dist/commands/version/bump.js +0 -79
- package/dist/commands/version/bump.js.map +0 -1
- package/dist/commands/version/index.js +0 -54
- package/dist/commands/version/index.js.map +0 -1
- package/dist/commands/version/set.js +0 -86
- package/dist/commands/version/set.js.map +0 -1
- package/dist/commands/version/show.js +0 -54
- package/dist/commands/version/show.js.map +0 -1
- /package/dist/{chunk-MHET2RG2.js.map → chunk-3S4GIO4B.js.map} +0 -0
- /package/dist/{chunk-GVRZY5KI.js.map → chunk-5BDYODWP.js.map} +0 -0
- /package/dist/{chunk-2TWELY5M.js.map → chunk-ARET3NYO.js.map} +0 -0
- /package/dist/{chunk-X34RGEFX.js.map → chunk-CLHBKFHU.js.map} +0 -0
- /package/dist/{chunk-IUYU2TP6.js.map → chunk-ELRGSZHZ.js.map} +0 -0
- /package/dist/{chunk-MI4NWOWD.js.map → chunk-ENWMWIHP.js.map} +0 -0
- /package/dist/{chunk-GCN7GGWE.js.map → chunk-GUIRWCKI.js.map} +0 -0
- /package/dist/{chunk-AQANPOLS.js.map → chunk-HKRLWERR.js.map} +0 -0
- /package/dist/{chunk-EPJ2GJNJ.js.map → chunk-KCYNTAAF.js.map} +0 -0
- /package/dist/{chunk-33D24DAF.js.map → chunk-KVHLKPYB.js.map} +0 -0
- /package/dist/{chunk-MMD26LKJ.js.map → chunk-KWWLPPHF.js.map} +0 -0
- /package/dist/{chunk-FDY6SGSA.js.map → chunk-KZNPPUQG.js.map} +0 -0
- /package/dist/{chunk-GIZ6DENW.js.map → chunk-M2XPTQDT.js.map} +0 -0
- /package/dist/{chunk-BKW34TKI.js.map → chunk-M3AGB4TR.js.map} +0 -0
- /package/dist/{chunk-ZHJEZ7AU.js.map → chunk-NTPHCNJO.js.map} +0 -0
- /package/dist/{chunk-44QCEK7E.js.map → chunk-OALQWRLG.js.map} +0 -0
- /package/dist/{chunk-PEAPABFI.js.map → chunk-OLZBZAW4.js.map} +0 -0
- /package/dist/{chunk-UVVNWF43.js.map → chunk-SBWMSNS2.js.map} +0 -0
- /package/dist/{chunk-ALWLM5MC.js.map → chunk-SRFNNOLC.js.map} +0 -0
- /package/dist/{chunk-KA253GGY.js.map → chunk-SYGEV3KV.js.map} +0 -0
- /package/dist/{chunk-HMGWGWFT.js.map → chunk-V43QDMYQ.js.map} +0 -0
- /package/dist/{chunk-WMAALRQI.js.map → chunk-VTDEENSP.js.map} +0 -0
- /package/dist/{chunk-VHGIQN5O.js.map → chunk-WWSKP5SR.js.map} +0 -0
- /package/dist/{chunk-EFZN22TO.js.map → chunk-YQFU2KZ5.js.map} +0 -0
- /package/dist/{source-manager-ABK5COKX.js.map → source-manager-HXFXBZJU.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
BaseCommand
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-SRFNNOLC.js";
|
|
5
5
|
import {
|
|
6
6
|
ensureDir,
|
|
7
7
|
getErrorMessage,
|
|
@@ -12,14 +12,14 @@ import {
|
|
|
12
12
|
verbose,
|
|
13
13
|
warn,
|
|
14
14
|
writeFile
|
|
15
|
-
} from "../../chunk-
|
|
15
|
+
} from "../../chunk-473YHDYQ.js";
|
|
16
16
|
import {
|
|
17
17
|
DEFAULT_BRANDING,
|
|
18
18
|
DEFAULT_PLUGIN_NAME,
|
|
19
19
|
DEFAULT_VERSION,
|
|
20
20
|
MAX_PLUGIN_FILE_SIZE,
|
|
21
21
|
PLUGIN_MANIFEST_DIR
|
|
22
|
-
} from "../../chunk-
|
|
22
|
+
} from "../../chunk-FVN5PFFY.js";
|
|
23
23
|
import {
|
|
24
24
|
init_esm_shims
|
|
25
25
|
} from "../../chunk-DHET7RCE.js";
|
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
import {
|
|
3
3
|
compileAllAgentPlugins,
|
|
4
4
|
printAgentCompilationSummary
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-SYGEV3KV.js";
|
|
6
6
|
import {
|
|
7
7
|
BaseCommand
|
|
8
|
-
} from "../../chunk-
|
|
8
|
+
} from "../../chunk-SRFNNOLC.js";
|
|
9
9
|
import {
|
|
10
10
|
compileAllSkillPlugins,
|
|
11
11
|
compileSkillPlugin,
|
|
12
12
|
printCompilationSummary
|
|
13
|
-
} from "../../chunk-
|
|
13
|
+
} from "../../chunk-ZECXM7LP.js";
|
|
14
14
|
import "../../chunk-T4EXUIBY.js";
|
|
15
15
|
import {
|
|
16
16
|
setVerbose
|
|
17
|
-
} from "../../chunk-
|
|
17
|
+
} from "../../chunk-473YHDYQ.js";
|
|
18
18
|
import {
|
|
19
19
|
DIRS
|
|
20
|
-
} from "../../chunk-
|
|
20
|
+
} from "../../chunk-FVN5PFFY.js";
|
|
21
21
|
import {
|
|
22
22
|
init_esm_shims
|
|
23
23
|
} from "../../chunk-DHET7RCE.js";
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
getAgentDefinitions
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-SYGEV3KV.js";
|
|
5
5
|
import {
|
|
6
6
|
BaseCommand,
|
|
7
7
|
EXIT_CODES
|
|
8
|
-
} from "../../chunk-
|
|
8
|
+
} from "../../chunk-SRFNNOLC.js";
|
|
9
9
|
import {
|
|
10
10
|
compileStackPlugin,
|
|
11
11
|
loadStacks,
|
|
12
12
|
printStackCompilationSummary
|
|
13
|
-
} from "../../chunk-
|
|
13
|
+
} from "../../chunk-ZECXM7LP.js";
|
|
14
14
|
import "../../chunk-T4EXUIBY.js";
|
|
15
15
|
import {
|
|
16
16
|
setVerbose
|
|
17
|
-
} from "../../chunk-
|
|
17
|
+
} from "../../chunk-473YHDYQ.js";
|
|
18
18
|
import {
|
|
19
19
|
PROJECT_ROOT
|
|
20
|
-
} from "../../chunk-
|
|
20
|
+
} from "../../chunk-FVN5PFFY.js";
|
|
21
21
|
import {
|
|
22
22
|
init_esm_shims
|
|
23
23
|
} from "../../chunk-DHET7RCE.js";
|
package/dist/commands/compile.js
CHANGED
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
import {
|
|
3
3
|
getAgentDefinitions,
|
|
4
4
|
recompileAgents
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-SYGEV3KV.js";
|
|
6
6
|
import {
|
|
7
7
|
DRY_RUN_MESSAGES,
|
|
8
8
|
ERROR_MESSAGES,
|
|
9
9
|
INFO_MESSAGES,
|
|
10
10
|
STATUS_MESSAGES,
|
|
11
11
|
SUCCESS_MESSAGES
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-V43QDMYQ.js";
|
|
13
13
|
import {
|
|
14
14
|
BaseCommand,
|
|
15
15
|
EXIT_CODES
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-SRFNNOLC.js";
|
|
17
17
|
import {
|
|
18
18
|
detectInstallation,
|
|
19
19
|
discoverAllPluginSkills,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
normalizeStackRecord,
|
|
22
22
|
parseFrontmatter,
|
|
23
23
|
resolveSource
|
|
24
|
-
} from "../chunk-
|
|
24
|
+
} from "../chunk-ZECXM7LP.js";
|
|
25
25
|
import {
|
|
26
26
|
typedEntries,
|
|
27
27
|
typedKeys
|
|
@@ -36,12 +36,12 @@ import {
|
|
|
36
36
|
setVerbose,
|
|
37
37
|
verbose,
|
|
38
38
|
warn
|
|
39
|
-
} from "../chunk-
|
|
39
|
+
} from "../chunk-473YHDYQ.js";
|
|
40
40
|
import {
|
|
41
41
|
CLI_BIN_NAME,
|
|
42
42
|
LOCAL_SKILLS_PATH,
|
|
43
43
|
STANDARD_FILES
|
|
44
|
-
} from "../chunk-
|
|
44
|
+
} from "../chunk-FVN5PFFY.js";
|
|
45
45
|
import {
|
|
46
46
|
init_esm_shims
|
|
47
47
|
} from "../chunk-DHET7RCE.js";
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
import {
|
|
3
3
|
BaseCommand,
|
|
4
4
|
EXIT_CODES
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-SRFNNOLC.js";
|
|
6
6
|
import {
|
|
7
7
|
loadProjectSourceConfig,
|
|
8
8
|
resolveAgentsSource,
|
|
9
9
|
resolveSource
|
|
10
|
-
} from "../../chunk-
|
|
10
|
+
} from "../../chunk-ZECXM7LP.js";
|
|
11
11
|
import "../../chunk-T4EXUIBY.js";
|
|
12
|
-
import "../../chunk-
|
|
13
|
-
import "../../chunk-
|
|
12
|
+
import "../../chunk-473YHDYQ.js";
|
|
13
|
+
import "../../chunk-FVN5PFFY.js";
|
|
14
14
|
import {
|
|
15
15
|
init_esm_shims
|
|
16
16
|
} from "../../chunk-DHET7RCE.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ConfigShow
|
|
4
|
-
} from "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
4
|
+
} from "../../chunk-M2XPTQDT.js";
|
|
5
|
+
import "../../chunk-SRFNNOLC.js";
|
|
6
|
+
import "../../chunk-ZECXM7LP.js";
|
|
7
7
|
import "../../chunk-T4EXUIBY.js";
|
|
8
|
-
import "../../chunk-
|
|
9
|
-
import "../../chunk-
|
|
8
|
+
import "../../chunk-473YHDYQ.js";
|
|
9
|
+
import "../../chunk-FVN5PFFY.js";
|
|
10
10
|
import {
|
|
11
11
|
init_esm_shims
|
|
12
12
|
} from "../../chunk-DHET7RCE.js";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
BaseCommand
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-SRFNNOLC.js";
|
|
5
5
|
import {
|
|
6
6
|
getProjectConfigPath
|
|
7
|
-
} from "../../chunk-
|
|
7
|
+
} from "../../chunk-ZECXM7LP.js";
|
|
8
8
|
import "../../chunk-T4EXUIBY.js";
|
|
9
|
-
import "../../chunk-
|
|
10
|
-
import "../../chunk-
|
|
9
|
+
import "../../chunk-473YHDYQ.js";
|
|
10
|
+
import "../../chunk-FVN5PFFY.js";
|
|
11
11
|
import {
|
|
12
12
|
init_esm_shims
|
|
13
13
|
} from "../../chunk-DHET7RCE.js";
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
import {
|
|
3
3
|
BaseCommand,
|
|
4
4
|
EXIT_CODES
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-SRFNNOLC.js";
|
|
6
6
|
import {
|
|
7
7
|
getProjectConfigPath,
|
|
8
8
|
loadProjectSourceConfig,
|
|
9
9
|
saveProjectConfig
|
|
10
|
-
} from "../../chunk-
|
|
10
|
+
} from "../../chunk-ZECXM7LP.js";
|
|
11
11
|
import "../../chunk-T4EXUIBY.js";
|
|
12
|
-
import "../../chunk-
|
|
13
|
-
import "../../chunk-
|
|
12
|
+
import "../../chunk-473YHDYQ.js";
|
|
13
|
+
import "../../chunk-FVN5PFFY.js";
|
|
14
14
|
import {
|
|
15
15
|
init_esm_shims
|
|
16
16
|
} from "../../chunk-DHET7RCE.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ConfigShow
|
|
4
|
-
} from "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
4
|
+
} from "../../chunk-M2XPTQDT.js";
|
|
5
|
+
import "../../chunk-SRFNNOLC.js";
|
|
6
|
+
import "../../chunk-ZECXM7LP.js";
|
|
7
7
|
import "../../chunk-T4EXUIBY.js";
|
|
8
|
-
import "../../chunk-
|
|
9
|
-
import "../../chunk-
|
|
8
|
+
import "../../chunk-473YHDYQ.js";
|
|
9
|
+
import "../../chunk-FVN5PFFY.js";
|
|
10
10
|
import "../../chunk-DHET7RCE.js";
|
|
11
11
|
export {
|
|
12
12
|
ConfigShow as default
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
import {
|
|
3
3
|
BaseCommand,
|
|
4
4
|
EXIT_CODES
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-SRFNNOLC.js";
|
|
6
6
|
import {
|
|
7
7
|
loadProjectSourceConfig,
|
|
8
8
|
saveProjectConfig
|
|
9
|
-
} from "../../chunk-
|
|
9
|
+
} from "../../chunk-ZECXM7LP.js";
|
|
10
10
|
import "../../chunk-T4EXUIBY.js";
|
|
11
|
-
import "../../chunk-
|
|
12
|
-
import "../../chunk-
|
|
11
|
+
import "../../chunk-473YHDYQ.js";
|
|
12
|
+
import "../../chunk-FVN5PFFY.js";
|
|
13
13
|
import {
|
|
14
14
|
init_esm_shims
|
|
15
15
|
} from "../../chunk-DHET7RCE.js";
|
package/dist/commands/diff.js
CHANGED
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
import {
|
|
3
3
|
BaseCommand,
|
|
4
4
|
EXIT_CODES
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-SRFNNOLC.js";
|
|
6
6
|
import {
|
|
7
7
|
loadSkillsMatrixFromSource,
|
|
8
8
|
readForkedFromMetadata
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-ZECXM7LP.js";
|
|
10
10
|
import "../chunk-T4EXUIBY.js";
|
|
11
11
|
import {
|
|
12
12
|
fileExists,
|
|
13
13
|
getErrorMessage,
|
|
14
14
|
listDirectories,
|
|
15
15
|
readFile
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-473YHDYQ.js";
|
|
17
17
|
import {
|
|
18
18
|
CLI_BIN_NAME,
|
|
19
19
|
LOCAL_SKILLS_PATH,
|
|
20
20
|
STANDARD_FILES
|
|
21
|
-
} from "../chunk-
|
|
21
|
+
} from "../chunk-FVN5PFFY.js";
|
|
22
22
|
import {
|
|
23
23
|
init_esm_shims
|
|
24
24
|
} from "../chunk-DHET7RCE.js";
|
package/dist/commands/doctor.js
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
import {
|
|
3
3
|
BaseCommand,
|
|
4
4
|
EXIT_CODES
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-SRFNNOLC.js";
|
|
6
6
|
import {
|
|
7
7
|
discoverLocalSkills,
|
|
8
8
|
getStackSkillIds,
|
|
9
9
|
loadProjectConfig,
|
|
10
10
|
loadSkillsMatrixFromSource,
|
|
11
11
|
validateProjectConfig
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-ZECXM7LP.js";
|
|
13
13
|
import "../chunk-T4EXUIBY.js";
|
|
14
14
|
import {
|
|
15
15
|
directoryExists,
|
|
@@ -17,12 +17,12 @@ import {
|
|
|
17
17
|
getErrorMessage,
|
|
18
18
|
glob,
|
|
19
19
|
setVerbose
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-473YHDYQ.js";
|
|
21
21
|
import {
|
|
22
22
|
CLAUDE_DIR,
|
|
23
23
|
CLI_BIN_NAME,
|
|
24
24
|
DEFAULT_BRANDING
|
|
25
|
-
} from "../chunk-
|
|
25
|
+
} from "../chunk-FVN5PFFY.js";
|
|
26
26
|
import {
|
|
27
27
|
init_esm_shims
|
|
28
28
|
} from "../chunk-DHET7RCE.js";
|
package/dist/commands/edit.js
CHANGED
|
@@ -2,49 +2,49 @@
|
|
|
2
2
|
import {
|
|
3
3
|
getAgentDefinitions,
|
|
4
4
|
recompileAgents
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-SYGEV3KV.js";
|
|
6
6
|
import {
|
|
7
7
|
Wizard
|
|
8
|
-
} from "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
17
|
-
import "../chunk-MI4NWOWD.js";
|
|
18
|
-
import "../chunk-ZHJEZ7AU.js";
|
|
19
|
-
import "../chunk-VHGIQN5O.js";
|
|
20
|
-
import "../chunk-EPJ2GJNJ.js";
|
|
21
|
-
import "../chunk-YRVTXSXP.js";
|
|
8
|
+
} from "../chunk-Q5BSIARS.js";
|
|
9
|
+
import "../chunk-DAVOSI4M.js";
|
|
10
|
+
import "../chunk-3S4GIO4B.js";
|
|
11
|
+
import "../chunk-ELRGSZHZ.js";
|
|
12
|
+
import "../chunk-KVHLKPYB.js";
|
|
13
|
+
import "../chunk-VTDEENSP.js";
|
|
14
|
+
import "../chunk-ENWMWIHP.js";
|
|
15
|
+
import "../chunk-WWSKP5SR.js";
|
|
16
|
+
import "../chunk-KCYNTAAF.js";
|
|
22
17
|
import "../chunk-K77I4XGL.js";
|
|
23
|
-
import "../chunk-
|
|
24
|
-
import "../chunk-
|
|
25
|
-
import "../chunk-
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-
|
|
18
|
+
import "../chunk-M3AGB4TR.js";
|
|
19
|
+
import "../chunk-YRVTXSXP.js";
|
|
20
|
+
import "../chunk-NTPHCNJO.js";
|
|
21
|
+
import "../chunk-YQFU2KZ5.js";
|
|
22
|
+
import "../chunk-7SOPVGDV.js";
|
|
23
|
+
import "../chunk-F3O5YHSI.js";
|
|
28
24
|
import "../chunk-KUV24B5M.js";
|
|
29
|
-
import "../chunk-
|
|
25
|
+
import "../chunk-ABE55TEU.js";
|
|
30
26
|
import "../chunk-GG4BSB6S.js";
|
|
31
|
-
import "../chunk-
|
|
27
|
+
import "../chunk-5BDYODWP.js";
|
|
28
|
+
import "../chunk-GUIRWCKI.js";
|
|
29
|
+
import "../chunk-KWWLPPHF.js";
|
|
30
|
+
import "../chunk-OALQWRLG.js";
|
|
31
|
+
import "../chunk-HKRLWERR.js";
|
|
32
32
|
import "../chunk-U3IGFMCY.js";
|
|
33
33
|
import {
|
|
34
34
|
claudePluginInstall,
|
|
35
35
|
claudePluginUninstall
|
|
36
|
-
} from "../chunk-
|
|
37
|
-
import "../chunk-
|
|
38
|
-
import "../chunk-
|
|
36
|
+
} from "../chunk-CLHBKFHU.js";
|
|
37
|
+
import "../chunk-FYNMNY4P.js";
|
|
38
|
+
import "../chunk-KZNPPUQG.js";
|
|
39
39
|
import {
|
|
40
40
|
ERROR_MESSAGES,
|
|
41
41
|
INFO_MESSAGES,
|
|
42
42
|
STATUS_MESSAGES
|
|
43
|
-
} from "../chunk-
|
|
43
|
+
} from "../chunk-V43QDMYQ.js";
|
|
44
44
|
import {
|
|
45
45
|
BaseCommand,
|
|
46
46
|
EXIT_CODES
|
|
47
|
-
} from "../chunk-
|
|
47
|
+
} from "../chunk-SRFNNOLC.js";
|
|
48
48
|
import {
|
|
49
49
|
archiveLocalSkill,
|
|
50
50
|
detectInstallation,
|
|
@@ -53,16 +53,17 @@ import {
|
|
|
53
53
|
loadProjectConfig,
|
|
54
54
|
loadSkillsMatrixFromSource,
|
|
55
55
|
restoreArchivedSkill
|
|
56
|
-
} from "../chunk-
|
|
56
|
+
} from "../chunk-ZECXM7LP.js";
|
|
57
57
|
import {
|
|
58
58
|
typedEntries
|
|
59
59
|
} from "../chunk-T4EXUIBY.js";
|
|
60
60
|
import {
|
|
61
61
|
getErrorMessage
|
|
62
|
-
} from "../chunk-
|
|
62
|
+
} from "../chunk-473YHDYQ.js";
|
|
63
63
|
import {
|
|
64
|
+
ASCII_LOGO,
|
|
64
65
|
CLI_BIN_NAME
|
|
65
|
-
} from "../chunk-
|
|
66
|
+
} from "../chunk-FVN5PFFY.js";
|
|
66
67
|
import {
|
|
67
68
|
init_esm_shims
|
|
68
69
|
} from "../chunk-DHET7RCE.js";
|
|
@@ -163,10 +164,12 @@ var Edit = class _Edit extends BaseCommand {
|
|
|
163
164
|
matrix: sourceResult.matrix,
|
|
164
165
|
version: this.config.version,
|
|
165
166
|
marketplaceLabel,
|
|
167
|
+
logo: ASCII_LOGO,
|
|
166
168
|
initialStep: "build",
|
|
167
169
|
initialInstallMode,
|
|
168
170
|
initialExpertMode: projectConfig?.config?.expertMode,
|
|
169
171
|
initialDomains: projectConfig?.config?.domains,
|
|
172
|
+
initialAgents: projectConfig?.config?.selectedAgents,
|
|
170
173
|
installedSkillIds: currentSkillIds,
|
|
171
174
|
projectDir: process.cwd(),
|
|
172
175
|
onComplete: (result2) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cli/commands/edit.tsx"],"sourcesContent":["import { Flags } from \"@oclif/core\";\nimport { render } from \"ink\";\n\nimport { BaseCommand } from \"../base-command.js\";\nimport { Wizard, type WizardResultV2 } from \"../components/wizard/wizard.js\";\nimport { CLI_BIN_NAME } from \"../consts.js\";\nimport { getAgentDefinitions, recompileAgents } from \"../lib/agents/index.js\";\nimport { loadProjectConfig } from \"../lib/configuration/index.js\";\nimport { EXIT_CODES } from \"../lib/exit-codes.js\";\nimport { detectInstallation } from \"../lib/installation/index.js\";\nimport { getMarketplaceLabel, loadSkillsMatrixFromSource } from \"../lib/loading/index.js\";\nimport { discoverAllPluginSkills } from \"../lib/plugins/index.js\";\nimport { archiveLocalSkill, restoreArchivedSkill } from \"../lib/skills/index.js\";\nimport type { SkillId } from \"../types/index.js\";\nimport { getErrorMessage } from \"../utils/errors.js\";\nimport { claudePluginInstall, claudePluginUninstall } from \"../utils/exec.js\";\nimport { ERROR_MESSAGES, INFO_MESSAGES, STATUS_MESSAGES } from \"../utils/messages.js\";\nimport { typedEntries } from \"../utils/typed-object.js\";\n\nconst SOURCE_DISPLAY_NAMES: Record<string, string> = {\n public: \"Public\",\n local: \"Local\",\n};\n\nfunction formatSourceDisplayName(sourceName: string): string {\n return SOURCE_DISPLAY_NAMES[sourceName] ?? sourceName;\n}\n\nexport default class Edit extends BaseCommand {\n static summary = \"Edit skills in the plugin\";\n static description = \"Modify the currently installed skills via interactive wizard\";\n\n static examples = [\n {\n description: \"Open the edit wizard\",\n command: \"<%= config.bin %> <%= command.id %>\",\n },\n {\n description: \"Edit with a custom source\",\n command: \"<%= config.bin %> <%= command.id %> --source github:org/marketplace\",\n },\n {\n description: \"Force refresh skills from remote\",\n command: \"<%= config.bin %> <%= command.id %> --refresh\",\n },\n ];\n\n static flags = {\n ...BaseCommand.baseFlags,\n refresh: Flags.boolean({\n description: \"Force refresh from remote sources\",\n default: false,\n }),\n \"agent-source\": Flags.string({\n description: \"Remote agent partials source (default: local CLI)\",\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(Edit);\n\n const installation = await detectInstallation();\n\n if (!installation) {\n this.error(ERROR_MESSAGES.NO_INSTALLATION, {\n exit: EXIT_CODES.ERROR,\n });\n }\n\n const projectDir = process.cwd();\n const isPluginMode = installation.mode === \"plugin\";\n\n const modeLabel = installation.mode === \"local\" ? \"Local\" : \"Plugin\";\n this.log(`Edit ${modeLabel} Skills\\n`);\n\n this.log(STATUS_MESSAGES.LOADING_MARKETPLACE_SOURCE);\n let sourceResult;\n try {\n sourceResult = await loadSkillsMatrixFromSource({\n sourceFlag: flags.source,\n projectDir,\n forceRefresh: flags.refresh,\n });\n\n const sourceInfo = sourceResult.isLocal ? \"local\" : sourceResult.sourceConfig.sourceOrigin;\n this.log(\n `✓ Loaded ${Object.keys(sourceResult.matrix.skills).length} skills (${sourceInfo})\\n`,\n );\n } catch (error) {\n this.handleError(error);\n }\n\n const projectConfig = await loadProjectConfig(projectDir);\n\n this.log(\"Reading current skills...\");\n let currentSkillIds: SkillId[];\n try {\n const discoveredSkills = await discoverAllPluginSkills(projectDir);\n // Boundary cast: discoverAllPluginSkills keys are skill IDs from frontmatter\n currentSkillIds = Object.keys(discoveredSkills) as SkillId[];\n\n // In local mode, plugin discovery returns empty — fall back to project config skills\n if (currentSkillIds.length === 0 && projectConfig?.config?.skills?.length) {\n currentSkillIds = projectConfig.config.skills;\n this.log(`✓ Found ${currentSkillIds.length} skills from project config\\n`);\n } else {\n this.log(`✓ Current plugin has ${currentSkillIds.length} skills\\n`);\n }\n } catch (error) {\n this.handleError(error);\n }\n\n let wizardResult: WizardResultV2 | null = null;\n const marketplaceLabel = getMarketplaceLabel(sourceResult);\n\n // Read saved installMode from config; fall back to marketplace-derived default only if absent\n const savedInstallMode = projectConfig?.config?.installMode;\n const initialInstallMode = savedInstallMode ?? (sourceResult.marketplace ? \"plugin\" : \"local\");\n\n const { waitUntilExit } = render(\n <Wizard\n matrix={sourceResult.matrix}\n version={this.config.version}\n marketplaceLabel={marketplaceLabel}\n initialStep=\"build\"\n initialInstallMode={initialInstallMode}\n initialExpertMode={projectConfig?.config?.expertMode}\n initialDomains={projectConfig?.config?.domains}\n installedSkillIds={currentSkillIds}\n projectDir={process.cwd()}\n onComplete={(result) => {\n wizardResult = result as WizardResultV2;\n }}\n onCancel={() => {\n this.log(\"\\nEdit cancelled\");\n }}\n />,\n );\n\n await waitUntilExit();\n\n const result = wizardResult as WizardResultV2 | null;\n\n if (!result || result.cancelled) {\n this.error(\"Cancelled\", { exit: EXIT_CODES.CANCELLED });\n }\n\n if (!result.validation.valid) {\n const errorMessages = result.validation.errors.map((e) => e.message).join(\"\\n \");\n this.error(`Selection has validation errors:\\n ${errorMessages}`, {\n exit: EXIT_CODES.ERROR,\n });\n }\n\n const addedSkills = result.selectedSkills.filter((id) => !currentSkillIds.includes(id));\n const removedSkills = currentSkillIds.filter((id) => !result.selectedSkills.includes(id));\n\n const sourceChanges = new Map<SkillId, { from: string; to: string }>();\n for (const [skillId, selectedSource] of typedEntries<SkillId, string>(\n result.sourceSelections,\n )) {\n const skill = sourceResult.matrix.skills[skillId];\n if (skill?.activeSource && skill.activeSource.name !== selectedSource) {\n sourceChanges.set(skillId, {\n from: skill.activeSource.name,\n to: selectedSource,\n });\n }\n }\n\n const hasSourceChanges = sourceChanges.size > 0;\n const hasSkillChanges = addedSkills.length > 0 || removedSkills.length > 0;\n\n if (result.validation.warnings.length > 0) {\n this.log(\"\\nWarnings:\");\n for (const warning of result.validation.warnings) {\n this.warn(` ! ${warning.message}`);\n }\n this.log(\"\");\n }\n\n if (!hasSkillChanges && !hasSourceChanges) {\n this.log(INFO_MESSAGES.NO_CHANGES_MADE);\n this.log(\"Plugin unchanged\\n\");\n return;\n }\n\n this.log(\"\\nChanges:\");\n for (const skillId of addedSkills) {\n const skill = sourceResult.matrix.skills[skillId];\n this.log(` + ${skill?.displayName || skillId}`);\n }\n for (const skillId of removedSkills) {\n const skill = sourceResult.matrix.skills[skillId];\n this.log(` - ${skill?.displayName || skillId}`);\n }\n for (const [skillId, change] of sourceChanges) {\n const fromLabel = formatSourceDisplayName(change.from);\n const toLabel = formatSourceDisplayName(change.to);\n this.log(` ~ ${skillId} (${fromLabel} \\u2192 ${toLabel})`);\n }\n this.log(\"\");\n\n for (const [skillId, change] of sourceChanges) {\n if (change.from === \"local\") {\n await archiveLocalSkill(projectDir, skillId);\n }\n if (change.to === \"local\") {\n await restoreArchivedSkill(projectDir, skillId);\n }\n }\n\n if (isPluginMode && sourceResult.marketplace) {\n for (const skillId of addedSkills) {\n const pluginRef = `${skillId}@${sourceResult.marketplace}`;\n this.log(`Installing plugin: ${pluginRef}...`);\n try {\n await claudePluginInstall(pluginRef, \"project\", projectDir);\n } catch (error) {\n this.warn(`Failed to install plugin ${pluginRef}: ${getErrorMessage(error)}`);\n }\n }\n for (const skillId of removedSkills) {\n this.log(`Uninstalling plugin: ${skillId}...`);\n try {\n await claudePluginUninstall(skillId, \"project\", projectDir);\n } catch (error) {\n this.warn(`Failed to uninstall plugin ${skillId}: ${getErrorMessage(error)}`);\n }\n }\n }\n\n let sourcePath: string;\n this.log(\n flags[\"agent-source\"]\n ? STATUS_MESSAGES.FETCHING_AGENT_PARTIALS\n : STATUS_MESSAGES.LOADING_AGENT_PARTIALS,\n );\n try {\n const agentDefs = await getAgentDefinitions(flags[\"agent-source\"], {\n forceRefresh: flags.refresh,\n });\n sourcePath = agentDefs.sourcePath;\n this.log(flags[\"agent-source\"] ? \"✓ Agent partials fetched\\n\" : \"✓ Agent partials loaded\\n\");\n } catch (error) {\n this.handleError(error);\n }\n\n this.log(STATUS_MESSAGES.RECOMPILING_AGENTS);\n try {\n const recompileSkills = await discoverAllPluginSkills(projectDir);\n\n const recompileResult = await recompileAgents({\n pluginDir: projectDir,\n sourcePath,\n skills: recompileSkills,\n projectDir,\n outputDir: installation.agentsDir,\n });\n\n if (recompileResult.failed.length > 0) {\n this.log(\n `✓ Recompiled ${recompileResult.compiled.length} agents (${recompileResult.failed.length} failed)\\n`,\n );\n for (const warning of recompileResult.warnings) {\n this.warn(warning);\n }\n } else if (recompileResult.compiled.length > 0) {\n this.log(`✓ Recompiled ${recompileResult.compiled.length} agents\\n`);\n } else {\n this.log(\"✓ No agents to recompile\\n\");\n }\n } catch (error) {\n this.warn(`Agent recompilation failed: ${getErrorMessage(error)}`);\n this.log(`You can manually recompile with '${CLI_BIN_NAME} compile'.\\n`);\n }\n\n const summaryParts = [`${addedSkills.length} added`, `${removedSkills.length} removed`];\n if (hasSourceChanges) {\n summaryParts.push(`${sourceChanges.size} source${sourceChanges.size > 1 ? \"s\" : \"\"} changed`);\n }\n this.log(`\\n\\u2713 Plugin updated! (${summaryParts.join(\", \")})\\n`);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,SAAS,aAAa;AACtB,SAAS,cAAc;AAuHjB;AArGN,IAAM,uBAA+C;AAAA,EACnD,QAAQ;AAAA,EACR,OAAO;AACT;AAEA,SAAS,wBAAwB,YAA4B;AAC3D,SAAO,qBAAqB,UAAU,KAAK;AAC7C;AAEA,IAAqB,OAArB,MAAqB,cAAa,YAAY;AAAA,EAC5C,OAAO,UAAU;AAAA,EACjB,OAAO,cAAc;AAAA,EAErB,OAAO,WAAW;AAAA,IAChB;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,OAAO,QAAQ;AAAA,IACb,GAAG,YAAY;AAAA,IACf,SAAS,MAAM,QAAQ;AAAA,MACrB,aAAa;AAAA,MACb,SAAS;AAAA,IACX,CAAC;AAAA,IACD,gBAAgB,MAAM,OAAO;AAAA,MAC3B,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,IAAI,MAAM,KAAK,MAAM,KAAI;AAEvC,UAAM,eAAe,MAAM,mBAAmB;AAE9C,QAAI,CAAC,cAAc;AACjB,WAAK,MAAM,eAAe,iBAAiB;AAAA,QACzC,MAAM,WAAW;AAAA,MACnB,CAAC;AAAA,IACH;AAEA,UAAM,aAAa,QAAQ,IAAI;AAC/B,UAAM,eAAe,aAAa,SAAS;AAE3C,UAAM,YAAY,aAAa,SAAS,UAAU,UAAU;AAC5D,SAAK,IAAI,QAAQ,SAAS;AAAA,CAAW;AAErC,SAAK,IAAI,gBAAgB,0BAA0B;AACnD,QAAI;AACJ,QAAI;AACF,qBAAe,MAAM,2BAA2B;AAAA,QAC9C,YAAY,MAAM;AAAA,QAClB;AAAA,QACA,cAAc,MAAM;AAAA,MACtB,CAAC;AAED,YAAM,aAAa,aAAa,UAAU,UAAU,aAAa,aAAa;AAC9E,WAAK;AAAA,QACH,iBAAY,OAAO,KAAK,aAAa,OAAO,MAAM,EAAE,MAAM,YAAY,UAAU;AAAA;AAAA,MAClF;AAAA,IACF,SAAS,OAAO;AACd,WAAK,YAAY,KAAK;AAAA,IACxB;AAEA,UAAM,gBAAgB,MAAM,kBAAkB,UAAU;AAExD,SAAK,IAAI,2BAA2B;AACpC,QAAI;AACJ,QAAI;AACF,YAAM,mBAAmB,MAAM,wBAAwB,UAAU;AAEjE,wBAAkB,OAAO,KAAK,gBAAgB;AAG9C,UAAI,gBAAgB,WAAW,KAAK,eAAe,QAAQ,QAAQ,QAAQ;AACzE,0BAAkB,cAAc,OAAO;AACvC,aAAK,IAAI,gBAAW,gBAAgB,MAAM;AAAA,CAA+B;AAAA,MAC3E,OAAO;AACL,aAAK,IAAI,6BAAwB,gBAAgB,MAAM;AAAA,CAAW;AAAA,MACpE;AAAA,IACF,SAAS,OAAO;AACd,WAAK,YAAY,KAAK;AAAA,IACxB;AAEA,QAAI,eAAsC;AAC1C,UAAM,mBAAmB,oBAAoB,YAAY;AAGzD,UAAM,mBAAmB,eAAe,QAAQ;AAChD,UAAM,qBAAqB,qBAAqB,aAAa,cAAc,WAAW;AAEtF,UAAM,EAAE,cAAc,IAAI;AAAA,MACxB;AAAA,QAAC;AAAA;AAAA,UACC,QAAQ,aAAa;AAAA,UACrB,SAAS,KAAK,OAAO;AAAA,UACrB;AAAA,UACA,aAAY;AAAA,UACZ;AAAA,UACA,mBAAmB,eAAe,QAAQ;AAAA,UAC1C,gBAAgB,eAAe,QAAQ;AAAA,UACvC,mBAAmB;AAAA,UACnB,YAAY,QAAQ,IAAI;AAAA,UACxB,YAAY,CAACA,YAAW;AACtB,2BAAeA;AAAA,UACjB;AAAA,UACA,UAAU,MAAM;AACd,iBAAK,IAAI,kBAAkB;AAAA,UAC7B;AAAA;AAAA,MACF;AAAA,IACF;AAEA,UAAM,cAAc;AAEpB,UAAM,SAAS;AAEf,QAAI,CAAC,UAAU,OAAO,WAAW;AAC/B,WAAK,MAAM,aAAa,EAAE,MAAM,WAAW,UAAU,CAAC;AAAA,IACxD;AAEA,QAAI,CAAC,OAAO,WAAW,OAAO;AAC5B,YAAM,gBAAgB,OAAO,WAAW,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,MAAM;AAChF,WAAK,MAAM;AAAA,IAAuC,aAAa,IAAI;AAAA,QACjE,MAAM,WAAW;AAAA,MACnB,CAAC;AAAA,IACH;AAEA,UAAM,cAAc,OAAO,eAAe,OAAO,CAAC,OAAO,CAAC,gBAAgB,SAAS,EAAE,CAAC;AACtF,UAAM,gBAAgB,gBAAgB,OAAO,CAAC,OAAO,CAAC,OAAO,eAAe,SAAS,EAAE,CAAC;AAExF,UAAM,gBAAgB,oBAAI,IAA2C;AACrE,eAAW,CAAC,SAAS,cAAc,KAAK;AAAA,MACtC,OAAO;AAAA,IACT,GAAG;AACD,YAAM,QAAQ,aAAa,OAAO,OAAO,OAAO;AAChD,UAAI,OAAO,gBAAgB,MAAM,aAAa,SAAS,gBAAgB;AACrE,sBAAc,IAAI,SAAS;AAAA,UACzB,MAAM,MAAM,aAAa;AAAA,UACzB,IAAI;AAAA,QACN,CAAC;AAAA,MACH;AAAA,IACF;AAEA,UAAM,mBAAmB,cAAc,OAAO;AAC9C,UAAM,kBAAkB,YAAY,SAAS,KAAK,cAAc,SAAS;AAEzE,QAAI,OAAO,WAAW,SAAS,SAAS,GAAG;AACzC,WAAK,IAAI,aAAa;AACtB,iBAAW,WAAW,OAAO,WAAW,UAAU;AAChD,aAAK,KAAK,OAAO,QAAQ,OAAO,EAAE;AAAA,MACpC;AACA,WAAK,IAAI,EAAE;AAAA,IACb;AAEA,QAAI,CAAC,mBAAmB,CAAC,kBAAkB;AACzC,WAAK,IAAI,cAAc,eAAe;AACtC,WAAK,IAAI,oBAAoB;AAC7B;AAAA,IACF;AAEA,SAAK,IAAI,YAAY;AACrB,eAAW,WAAW,aAAa;AACjC,YAAM,QAAQ,aAAa,OAAO,OAAO,OAAO;AAChD,WAAK,IAAI,OAAO,OAAO,eAAe,OAAO,EAAE;AAAA,IACjD;AACA,eAAW,WAAW,eAAe;AACnC,YAAM,QAAQ,aAAa,OAAO,OAAO,OAAO;AAChD,WAAK,IAAI,OAAO,OAAO,eAAe,OAAO,EAAE;AAAA,IACjD;AACA,eAAW,CAAC,SAAS,MAAM,KAAK,eAAe;AAC7C,YAAM,YAAY,wBAAwB,OAAO,IAAI;AACrD,YAAM,UAAU,wBAAwB,OAAO,EAAE;AACjD,WAAK,IAAI,OAAO,OAAO,KAAK,SAAS,WAAW,OAAO,GAAG;AAAA,IAC5D;AACA,SAAK,IAAI,EAAE;AAEX,eAAW,CAAC,SAAS,MAAM,KAAK,eAAe;AAC7C,UAAI,OAAO,SAAS,SAAS;AAC3B,cAAM,kBAAkB,YAAY,OAAO;AAAA,MAC7C;AACA,UAAI,OAAO,OAAO,SAAS;AACzB,cAAM,qBAAqB,YAAY,OAAO;AAAA,MAChD;AAAA,IACF;AAEA,QAAI,gBAAgB,aAAa,aAAa;AAC5C,iBAAW,WAAW,aAAa;AACjC,cAAM,YAAY,GAAG,OAAO,IAAI,aAAa,WAAW;AACxD,aAAK,IAAI,sBAAsB,SAAS,KAAK;AAC7C,YAAI;AACF,gBAAM,oBAAoB,WAAW,WAAW,UAAU;AAAA,QAC5D,SAAS,OAAO;AACd,eAAK,KAAK,4BAA4B,SAAS,KAAK,gBAAgB,KAAK,CAAC,EAAE;AAAA,QAC9E;AAAA,MACF;AACA,iBAAW,WAAW,eAAe;AACnC,aAAK,IAAI,wBAAwB,OAAO,KAAK;AAC7C,YAAI;AACF,gBAAM,sBAAsB,SAAS,WAAW,UAAU;AAAA,QAC5D,SAAS,OAAO;AACd,eAAK,KAAK,8BAA8B,OAAO,KAAK,gBAAgB,KAAK,CAAC,EAAE;AAAA,QAC9E;AAAA,MACF;AAAA,IACF;AAEA,QAAI;AACJ,SAAK;AAAA,MACH,MAAM,cAAc,IAChB,gBAAgB,0BAChB,gBAAgB;AAAA,IACtB;AACA,QAAI;AACF,YAAM,YAAY,MAAM,oBAAoB,MAAM,cAAc,GAAG;AAAA,QACjE,cAAc,MAAM;AAAA,MACtB,CAAC;AACD,mBAAa,UAAU;AACvB,WAAK,IAAI,MAAM,cAAc,IAAI,oCAA+B,gCAA2B;AAAA,IAC7F,SAAS,OAAO;AACd,WAAK,YAAY,KAAK;AAAA,IACxB;AAEA,SAAK,IAAI,gBAAgB,kBAAkB;AAC3C,QAAI;AACF,YAAM,kBAAkB,MAAM,wBAAwB,UAAU;AAEhE,YAAM,kBAAkB,MAAM,gBAAgB;AAAA,QAC5C,WAAW;AAAA,QACX;AAAA,QACA,QAAQ;AAAA,QACR;AAAA,QACA,WAAW,aAAa;AAAA,MAC1B,CAAC;AAED,UAAI,gBAAgB,OAAO,SAAS,GAAG;AACrC,aAAK;AAAA,UACH,qBAAgB,gBAAgB,SAAS,MAAM,YAAY,gBAAgB,OAAO,MAAM;AAAA;AAAA,QAC1F;AACA,mBAAW,WAAW,gBAAgB,UAAU;AAC9C,eAAK,KAAK,OAAO;AAAA,QACnB;AAAA,MACF,WAAW,gBAAgB,SAAS,SAAS,GAAG;AAC9C,aAAK,IAAI,qBAAgB,gBAAgB,SAAS,MAAM;AAAA,CAAW;AAAA,MACrE,OAAO;AACL,aAAK,IAAI,iCAA4B;AAAA,MACvC;AAAA,IACF,SAAS,OAAO;AACd,WAAK,KAAK,+BAA+B,gBAAgB,KAAK,CAAC,EAAE;AACjE,WAAK,IAAI,oCAAoC,YAAY;AAAA,CAAc;AAAA,IACzE;AAEA,UAAM,eAAe,CAAC,GAAG,YAAY,MAAM,UAAU,GAAG,cAAc,MAAM,UAAU;AACtF,QAAI,kBAAkB;AACpB,mBAAa,KAAK,GAAG,cAAc,IAAI,UAAU,cAAc,OAAO,IAAI,MAAM,EAAE,UAAU;AAAA,IAC9F;AACA,SAAK,IAAI;AAAA,0BAA6B,aAAa,KAAK,IAAI,CAAC;AAAA,CAAK;AAAA,EACpE;AACF;","names":["result"]}
|
|
1
|
+
{"version":3,"sources":["../../src/cli/commands/edit.tsx"],"sourcesContent":["import { Flags } from \"@oclif/core\";\nimport { render } from \"ink\";\n\nimport { BaseCommand } from \"../base-command.js\";\nimport { Wizard, type WizardResultV2 } from \"../components/wizard/wizard.js\";\nimport { ASCII_LOGO, CLI_BIN_NAME } from \"../consts.js\";\nimport { getAgentDefinitions, recompileAgents } from \"../lib/agents/index.js\";\nimport { loadProjectConfig } from \"../lib/configuration/index.js\";\nimport { EXIT_CODES } from \"../lib/exit-codes.js\";\nimport { detectInstallation } from \"../lib/installation/index.js\";\nimport { getMarketplaceLabel, loadSkillsMatrixFromSource } from \"../lib/loading/index.js\";\nimport { discoverAllPluginSkills } from \"../lib/plugins/index.js\";\nimport { archiveLocalSkill, restoreArchivedSkill } from \"../lib/skills/index.js\";\nimport type { SkillId } from \"../types/index.js\";\nimport { getErrorMessage } from \"../utils/errors.js\";\nimport { claudePluginInstall, claudePluginUninstall } from \"../utils/exec.js\";\nimport { ERROR_MESSAGES, INFO_MESSAGES, STATUS_MESSAGES } from \"../utils/messages.js\";\nimport { typedEntries } from \"../utils/typed-object.js\";\n\nconst SOURCE_DISPLAY_NAMES: Record<string, string> = {\n public: \"Public\",\n local: \"Local\",\n};\n\nfunction formatSourceDisplayName(sourceName: string): string {\n return SOURCE_DISPLAY_NAMES[sourceName] ?? sourceName;\n}\n\nexport default class Edit extends BaseCommand {\n static summary = \"Edit skills in the plugin\";\n static description = \"Modify the currently installed skills via interactive wizard\";\n\n static examples = [\n {\n description: \"Open the edit wizard\",\n command: \"<%= config.bin %> <%= command.id %>\",\n },\n {\n description: \"Edit with a custom source\",\n command: \"<%= config.bin %> <%= command.id %> --source github:org/marketplace\",\n },\n {\n description: \"Force refresh skills from remote\",\n command: \"<%= config.bin %> <%= command.id %> --refresh\",\n },\n ];\n\n static flags = {\n ...BaseCommand.baseFlags,\n refresh: Flags.boolean({\n description: \"Force refresh from remote sources\",\n default: false,\n }),\n \"agent-source\": Flags.string({\n description: \"Remote agent partials source (default: local CLI)\",\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(Edit);\n\n const installation = await detectInstallation();\n\n if (!installation) {\n this.error(ERROR_MESSAGES.NO_INSTALLATION, {\n exit: EXIT_CODES.ERROR,\n });\n }\n\n const projectDir = process.cwd();\n const isPluginMode = installation.mode === \"plugin\";\n\n const modeLabel = installation.mode === \"local\" ? \"Local\" : \"Plugin\";\n this.log(`Edit ${modeLabel} Skills\\n`);\n\n this.log(STATUS_MESSAGES.LOADING_MARKETPLACE_SOURCE);\n let sourceResult;\n try {\n sourceResult = await loadSkillsMatrixFromSource({\n sourceFlag: flags.source,\n projectDir,\n forceRefresh: flags.refresh,\n });\n\n const sourceInfo = sourceResult.isLocal ? \"local\" : sourceResult.sourceConfig.sourceOrigin;\n this.log(\n `✓ Loaded ${Object.keys(sourceResult.matrix.skills).length} skills (${sourceInfo})\\n`,\n );\n } catch (error) {\n this.handleError(error);\n }\n\n const projectConfig = await loadProjectConfig(projectDir);\n\n this.log(\"Reading current skills...\");\n let currentSkillIds: SkillId[];\n try {\n const discoveredSkills = await discoverAllPluginSkills(projectDir);\n // Boundary cast: discoverAllPluginSkills keys are skill IDs from frontmatter\n currentSkillIds = Object.keys(discoveredSkills) as SkillId[];\n\n // In local mode, plugin discovery returns empty — fall back to project config skills\n if (currentSkillIds.length === 0 && projectConfig?.config?.skills?.length) {\n currentSkillIds = projectConfig.config.skills;\n this.log(`✓ Found ${currentSkillIds.length} skills from project config\\n`);\n } else {\n this.log(`✓ Current plugin has ${currentSkillIds.length} skills\\n`);\n }\n } catch (error) {\n this.handleError(error);\n }\n\n let wizardResult: WizardResultV2 | null = null;\n const marketplaceLabel = getMarketplaceLabel(sourceResult);\n\n // Read saved installMode from config; fall back to marketplace-derived default only if absent\n const savedInstallMode = projectConfig?.config?.installMode;\n const initialInstallMode = savedInstallMode ?? (sourceResult.marketplace ? \"plugin\" : \"local\");\n\n const { waitUntilExit } = render(\n <Wizard\n matrix={sourceResult.matrix}\n version={this.config.version}\n marketplaceLabel={marketplaceLabel}\n logo={ASCII_LOGO}\n initialStep=\"build\"\n initialInstallMode={initialInstallMode}\n initialExpertMode={projectConfig?.config?.expertMode}\n initialDomains={projectConfig?.config?.domains}\n initialAgents={projectConfig?.config?.selectedAgents}\n installedSkillIds={currentSkillIds}\n projectDir={process.cwd()}\n onComplete={(result) => {\n wizardResult = result as WizardResultV2;\n }}\n onCancel={() => {\n this.log(\"\\nEdit cancelled\");\n }}\n />,\n );\n\n await waitUntilExit();\n\n const result = wizardResult as WizardResultV2 | null;\n\n if (!result || result.cancelled) {\n this.error(\"Cancelled\", { exit: EXIT_CODES.CANCELLED });\n }\n\n if (!result.validation.valid) {\n const errorMessages = result.validation.errors.map((e) => e.message).join(\"\\n \");\n this.error(`Selection has validation errors:\\n ${errorMessages}`, {\n exit: EXIT_CODES.ERROR,\n });\n }\n\n const addedSkills = result.selectedSkills.filter((id) => !currentSkillIds.includes(id));\n const removedSkills = currentSkillIds.filter((id) => !result.selectedSkills.includes(id));\n\n const sourceChanges = new Map<SkillId, { from: string; to: string }>();\n for (const [skillId, selectedSource] of typedEntries<SkillId, string>(\n result.sourceSelections,\n )) {\n const skill = sourceResult.matrix.skills[skillId];\n if (skill?.activeSource && skill.activeSource.name !== selectedSource) {\n sourceChanges.set(skillId, {\n from: skill.activeSource.name,\n to: selectedSource,\n });\n }\n }\n\n const hasSourceChanges = sourceChanges.size > 0;\n const hasSkillChanges = addedSkills.length > 0 || removedSkills.length > 0;\n\n if (result.validation.warnings.length > 0) {\n this.log(\"\\nWarnings:\");\n for (const warning of result.validation.warnings) {\n this.warn(` ! ${warning.message}`);\n }\n this.log(\"\");\n }\n\n if (!hasSkillChanges && !hasSourceChanges) {\n this.log(INFO_MESSAGES.NO_CHANGES_MADE);\n this.log(\"Plugin unchanged\\n\");\n return;\n }\n\n this.log(\"\\nChanges:\");\n for (const skillId of addedSkills) {\n const skill = sourceResult.matrix.skills[skillId];\n this.log(` + ${skill?.displayName || skillId}`);\n }\n for (const skillId of removedSkills) {\n const skill = sourceResult.matrix.skills[skillId];\n this.log(` - ${skill?.displayName || skillId}`);\n }\n for (const [skillId, change] of sourceChanges) {\n const fromLabel = formatSourceDisplayName(change.from);\n const toLabel = formatSourceDisplayName(change.to);\n this.log(` ~ ${skillId} (${fromLabel} \\u2192 ${toLabel})`);\n }\n this.log(\"\");\n\n for (const [skillId, change] of sourceChanges) {\n if (change.from === \"local\") {\n await archiveLocalSkill(projectDir, skillId);\n }\n if (change.to === \"local\") {\n await restoreArchivedSkill(projectDir, skillId);\n }\n }\n\n if (isPluginMode && sourceResult.marketplace) {\n for (const skillId of addedSkills) {\n const pluginRef = `${skillId}@${sourceResult.marketplace}`;\n this.log(`Installing plugin: ${pluginRef}...`);\n try {\n await claudePluginInstall(pluginRef, \"project\", projectDir);\n } catch (error) {\n this.warn(`Failed to install plugin ${pluginRef}: ${getErrorMessage(error)}`);\n }\n }\n for (const skillId of removedSkills) {\n this.log(`Uninstalling plugin: ${skillId}...`);\n try {\n await claudePluginUninstall(skillId, \"project\", projectDir);\n } catch (error) {\n this.warn(`Failed to uninstall plugin ${skillId}: ${getErrorMessage(error)}`);\n }\n }\n }\n\n let sourcePath: string;\n this.log(\n flags[\"agent-source\"]\n ? STATUS_MESSAGES.FETCHING_AGENT_PARTIALS\n : STATUS_MESSAGES.LOADING_AGENT_PARTIALS,\n );\n try {\n const agentDefs = await getAgentDefinitions(flags[\"agent-source\"], {\n forceRefresh: flags.refresh,\n });\n sourcePath = agentDefs.sourcePath;\n this.log(flags[\"agent-source\"] ? \"✓ Agent partials fetched\\n\" : \"✓ Agent partials loaded\\n\");\n } catch (error) {\n this.handleError(error);\n }\n\n this.log(STATUS_MESSAGES.RECOMPILING_AGENTS);\n try {\n const recompileSkills = await discoverAllPluginSkills(projectDir);\n\n const recompileResult = await recompileAgents({\n pluginDir: projectDir,\n sourcePath,\n skills: recompileSkills,\n projectDir,\n outputDir: installation.agentsDir,\n });\n\n if (recompileResult.failed.length > 0) {\n this.log(\n `✓ Recompiled ${recompileResult.compiled.length} agents (${recompileResult.failed.length} failed)\\n`,\n );\n for (const warning of recompileResult.warnings) {\n this.warn(warning);\n }\n } else if (recompileResult.compiled.length > 0) {\n this.log(`✓ Recompiled ${recompileResult.compiled.length} agents\\n`);\n } else {\n this.log(\"✓ No agents to recompile\\n\");\n }\n } catch (error) {\n this.warn(`Agent recompilation failed: ${getErrorMessage(error)}`);\n this.log(`You can manually recompile with '${CLI_BIN_NAME} compile'.\\n`);\n }\n\n const summaryParts = [`${addedSkills.length} added`, `${removedSkills.length} removed`];\n if (hasSourceChanges) {\n summaryParts.push(`${sourceChanges.size} source${sourceChanges.size > 1 ? \"s\" : \"\"} changed`);\n }\n this.log(`\\n\\u2713 Plugin updated! (${summaryParts.join(\", \")})\\n`);\n }\n}\n"],"mappings":"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","names":["result"]}
|
package/dist/commands/eject.js
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
import {
|
|
3
3
|
BaseCommand,
|
|
4
4
|
EXIT_CODES
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-SRFNNOLC.js";
|
|
6
6
|
import {
|
|
7
7
|
copySkillsToLocalFlattened,
|
|
8
8
|
loadProjectSourceConfig,
|
|
9
9
|
loadSkillsMatrixFromSource,
|
|
10
10
|
resolveSource,
|
|
11
11
|
saveSourceToProjectConfig
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-ZECXM7LP.js";
|
|
13
13
|
import {
|
|
14
14
|
typedKeys
|
|
15
15
|
} from "../chunk-T4EXUIBY.js";
|
|
@@ -18,8 +18,9 @@ import {
|
|
|
18
18
|
directoryExists,
|
|
19
19
|
ensureDir,
|
|
20
20
|
fileExists,
|
|
21
|
+
listDirectories,
|
|
21
22
|
writeFile
|
|
22
|
-
} from "../chunk-
|
|
23
|
+
} from "../chunk-473YHDYQ.js";
|
|
23
24
|
import {
|
|
24
25
|
CLAUDE_SRC_DIR,
|
|
25
26
|
DEFAULT_BRANDING,
|
|
@@ -28,7 +29,7 @@ import {
|
|
|
28
29
|
PROJECT_ROOT,
|
|
29
30
|
STANDARD_FILES,
|
|
30
31
|
YAML_FORMATTING
|
|
31
|
-
} from "../chunk-
|
|
32
|
+
} from "../chunk-FVN5PFFY.js";
|
|
32
33
|
import {
|
|
33
34
|
init_esm_shims
|
|
34
35
|
} from "../chunk-DHET7RCE.js";
|
|
@@ -227,30 +228,54 @@ var Eject = class _Eject extends BaseCommand {
|
|
|
227
228
|
await writeFile(configPath, configContent);
|
|
228
229
|
this.logSuccess(`Created ${CLAUDE_SRC_DIR}/config.yaml`);
|
|
229
230
|
}
|
|
230
|
-
async ejectAgentPartials(outputBase, force, directOutput = false,
|
|
231
|
-
const sourceDir =
|
|
231
|
+
async ejectAgentPartials(outputBase, force, directOutput = false, templatesFlag = false) {
|
|
232
|
+
const sourceDir = templatesFlag ? path.join(PROJECT_ROOT, DIRS.templates) : path.join(PROJECT_ROOT, DIRS.agents);
|
|
232
233
|
if (!await directoryExists(sourceDir)) {
|
|
233
234
|
this.warn(
|
|
234
|
-
|
|
235
|
+
templatesFlag ? "No agent templates found in CLI." : "No agent partials found in CLI."
|
|
235
236
|
);
|
|
236
237
|
return;
|
|
237
238
|
}
|
|
238
|
-
const destDir = directOutput ? outputBase :
|
|
239
|
+
const destDir = directOutput ? outputBase : templatesFlag ? path.join(outputBase, path.basename(DIRS.agents), path.basename(DIRS.templates)) : path.join(outputBase, path.basename(DIRS.agents));
|
|
240
|
+
const templatesBasename = path.basename(DIRS.templates);
|
|
239
241
|
if (await directoryExists(destDir) && !force) {
|
|
242
|
+
if (templatesFlag) {
|
|
243
|
+
this.warn(`Agent templates already exist at ${destDir}. Use --force to overwrite.`);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
const hasTemplates = await directoryExists(path.join(destDir, templatesBasename));
|
|
247
|
+
if (await this.hasAgentPartialDirs(destDir) && !hasTemplates) {
|
|
248
|
+
this.warn(`Agent partials already exist at ${destDir}. Use --force to overwrite.`);
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
await ensureDir(destDir);
|
|
253
|
+
const skipTemplates = !templatesFlag && !force && await directoryExists(path.join(destDir, templatesBasename));
|
|
254
|
+
if (skipTemplates) {
|
|
255
|
+
const sourceEntries = await listDirectories(sourceDir);
|
|
256
|
+
const nonTemplateEntries = sourceEntries.filter((entry) => entry !== templatesBasename);
|
|
257
|
+
for (const entry of nonTemplateEntries) {
|
|
258
|
+
await copy(path.join(sourceDir, entry), path.join(destDir, entry));
|
|
259
|
+
}
|
|
240
260
|
this.warn(
|
|
241
|
-
|
|
261
|
+
"Agent templates already exist \u2014 skipping templates, only ejecting agent partials."
|
|
242
262
|
);
|
|
243
|
-
|
|
263
|
+
} else {
|
|
264
|
+
await copy(sourceDir, destDir);
|
|
244
265
|
}
|
|
245
|
-
await ensureDir(destDir);
|
|
246
|
-
await copy(sourceDir, destDir);
|
|
247
266
|
this.logSuccess(
|
|
248
|
-
`${
|
|
267
|
+
`${templatesFlag ? "Agent templates" : "Agent partials"} ejected to ${destDir}`
|
|
249
268
|
);
|
|
250
269
|
this.log(
|
|
251
|
-
|
|
270
|
+
templatesFlag ? "You can now customize agent templates locally." : "You can now customize templates, agent intro, workflow, and examples locally."
|
|
252
271
|
);
|
|
253
272
|
}
|
|
273
|
+
/** Checks whether the agents directory contains any agent subdirectories (not just _templates). */
|
|
274
|
+
async hasAgentPartialDirs(agentsDir) {
|
|
275
|
+
const subdirs = await listDirectories(agentsDir);
|
|
276
|
+
const templatesBasename = path.basename(DIRS.templates);
|
|
277
|
+
return subdirs.some((dir) => dir !== templatesBasename);
|
|
278
|
+
}
|
|
254
279
|
async ejectSkills(projectDir, force, sourceResult, directOutput = false, customOutputBase) {
|
|
255
280
|
const destDir = directOutput && customOutputBase ? customOutputBase : path.join(projectDir, LOCAL_SKILLS_PATH);
|
|
256
281
|
if (await directoryExists(destDir) && !force) {
|