agents-inc 0.159.0 → 0.160.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 +13 -0
- package/dist/{chunk-2Q65K6E3.js → chunk-5K33RJ7Z.js} +10 -10
- package/dist/{chunk-BQJVHD6Y.js → chunk-6CP3CLDE.js} +3 -8
- package/dist/chunk-6CP3CLDE.js.map +1 -0
- package/dist/{chunk-4VMLCWLD.js → chunk-7JQPIMKD.js} +2 -2
- package/dist/{chunk-5YOSLSQJ.js → chunk-C5P7RUDR.js} +3 -3
- package/dist/{chunk-G7TYOPON.js → chunk-CICB4AKA.js} +3 -3
- package/dist/{chunk-FBRLHNUT.js → chunk-CWQLRKWB.js} +3 -3
- package/dist/{chunk-JV4P7BL4.js → chunk-DEWI5HDF.js} +3 -3
- package/dist/{chunk-Z6G24ROK.js → chunk-EPBUWEW4.js} +4 -4
- package/dist/{chunk-IO2DPRDS.js → chunk-GWPKIXBM.js} +2 -2
- package/dist/{chunk-BNHD2GIB.js → chunk-IJ7GWQUR.js} +4 -4
- package/dist/{chunk-4RYWFQK7.js → chunk-IWUFZ6NR.js} +2 -2
- package/dist/{chunk-F35G42TF.js → chunk-J7Q5VYR7.js} +11 -11
- package/dist/{chunk-MPLWPWL4.js → chunk-JQDN7KAZ.js} +2 -2
- package/dist/{chunk-LSSGS2QS.js → chunk-K6MQV6SK.js} +3 -3
- package/dist/{chunk-YVQSDBTK.js → chunk-KCN5N3PB.js} +4 -4
- package/dist/{chunk-WVKGO3Y5.js → chunk-LJ6V54NR.js} +3 -3
- package/dist/{chunk-VCUXNKOY.js → chunk-LX7UXZBN.js} +5 -5
- package/dist/{chunk-VZRO7RYT.js → chunk-OI2H6M5I.js} +1 -103
- package/dist/chunk-OI2H6M5I.js.map +1 -0
- package/dist/{chunk-Z6KROWH4.js → chunk-OJR3ASZI.js} +5 -5
- package/dist/{chunk-V625APR6.js → chunk-OUG6TCQ4.js} +205 -335
- package/dist/chunk-OUG6TCQ4.js.map +1 -0
- package/dist/{chunk-62XKTOUI.js → chunk-PIUCYRLP.js} +5 -15
- package/dist/chunk-PIUCYRLP.js.map +1 -0
- package/dist/{chunk-WVBJRFFM.js → chunk-PWPKZNCV.js} +3 -3
- package/dist/{chunk-SKDTGHCD.js → chunk-Q2HB5SWU.js} +2 -2
- package/dist/{chunk-YAHTF4NO.js → chunk-RJ3JYZJ7.js} +8 -8
- package/dist/chunk-RJ3JYZJ7.js.map +1 -0
- package/dist/{chunk-LVA6XJGR.js → chunk-SLB2SFTX.js} +3 -27
- package/dist/chunk-SLB2SFTX.js.map +1 -0
- package/dist/{chunk-NS5COBTT.js → chunk-VH6P7UGF.js} +3 -3
- package/dist/{chunk-42PQKBVU.js → chunk-VI4X5DN5.js} +4 -4
- package/dist/{chunk-THLQS2AW.js → chunk-XDNGMXOZ.js} +4 -4
- package/dist/{chunk-GPZQCLZJ.js → chunk-XSULY25W.js} +5 -5
- package/dist/{chunk-7Z4N4JWQ.js → chunk-XX657S4U.js} +1 -103
- package/dist/chunk-XX657S4U.js.map +1 -0
- package/dist/commands/build/marketplace.js +6 -6
- package/dist/commands/build/plugins.js +6 -6
- package/dist/commands/compile.js +9 -9
- package/dist/commands/doctor.js +9 -9
- package/dist/commands/edit.js +28 -28
- package/dist/commands/eject.js +9 -9
- package/dist/commands/init.js +28 -28
- package/dist/commands/list.js +7 -7
- package/dist/commands/new/marketplace.js +6 -7
- package/dist/commands/new/marketplace.js.map +1 -1
- package/dist/commands/search.js +9 -9
- package/dist/commands/share.js +7 -7
- package/dist/commands/uninstall.js +9 -9
- package/dist/commands/update.js +5 -5
- package/dist/components/wizard/category-grid.js +2 -2
- package/dist/components/wizard/domain-selection.js +6 -6
- package/dist/components/wizard/run-wizard-session.js +19 -19
- package/dist/components/wizard/skill-agent-summary.js +5 -5
- package/dist/components/wizard/source-grid.js +2 -2
- package/dist/components/wizard/stack-selection.js +5 -5
- package/dist/components/wizard/step-agents.js +6 -6
- package/dist/components/wizard/step-build.js +6 -6
- package/dist/components/wizard/step-confirm.js +8 -8
- package/dist/components/wizard/step-sources.js +6 -6
- package/dist/components/wizard/step-stack.js +6 -6
- package/dist/components/wizard/summary-panel.js +7 -7
- package/dist/components/wizard/wizard-layout.js +8 -8
- package/dist/components/wizard/wizard.js +18 -18
- package/dist/config-exports.js +1 -1
- package/dist/hooks/init.js +28 -28
- package/dist/load-agent-defs-KWHG7P7G.js +13 -0
- package/dist/recompile-project-agents-5FTDDHX7.js +17 -0
- package/dist/{source-loader-CC6ZWKTI.js → source-loader-CDYH2NIM.js} +4 -4
- package/dist/src/agents/_templates/methodologies/anti-over-engineering.liquid +14 -0
- package/dist/src/agents/_templates/methodologies/context-management.liquid +7 -154
- package/dist/src/agents/_templates/methodologies/investigation-requirements.liquid +12 -0
- package/dist/src/agents/_templates/methodologies/success-criteria.liquid +10 -0
- package/dist/stores/wizard-store.js +4 -4
- package/package.json +1 -1
- package/src/agents/_templates/methodologies/anti-over-engineering.liquid +14 -0
- package/src/agents/_templates/methodologies/context-management.liquid +7 -154
- package/src/agents/_templates/methodologies/investigation-requirements.liquid +12 -0
- package/src/agents/_templates/methodologies/success-criteria.liquid +10 -0
- package/dist/chunk-62XKTOUI.js.map +0 -1
- package/dist/chunk-7Z4N4JWQ.js.map +0 -1
- package/dist/chunk-BQJVHD6Y.js.map +0 -1
- package/dist/chunk-LVA6XJGR.js.map +0 -1
- package/dist/chunk-V625APR6.js.map +0 -1
- package/dist/chunk-VZRO7RYT.js.map +0 -1
- package/dist/chunk-YAHTF4NO.js.map +0 -1
- package/dist/load-agent-defs-2H42B2OO.js +0 -13
- package/dist/recompile-project-agents-QIAMBCM4.js +0 -17
- /package/dist/{chunk-2Q65K6E3.js.map → chunk-5K33RJ7Z.js.map} +0 -0
- /package/dist/{chunk-4VMLCWLD.js.map → chunk-7JQPIMKD.js.map} +0 -0
- /package/dist/{chunk-5YOSLSQJ.js.map → chunk-C5P7RUDR.js.map} +0 -0
- /package/dist/{chunk-G7TYOPON.js.map → chunk-CICB4AKA.js.map} +0 -0
- /package/dist/{chunk-FBRLHNUT.js.map → chunk-CWQLRKWB.js.map} +0 -0
- /package/dist/{chunk-JV4P7BL4.js.map → chunk-DEWI5HDF.js.map} +0 -0
- /package/dist/{chunk-Z6G24ROK.js.map → chunk-EPBUWEW4.js.map} +0 -0
- /package/dist/{chunk-IO2DPRDS.js.map → chunk-GWPKIXBM.js.map} +0 -0
- /package/dist/{chunk-BNHD2GIB.js.map → chunk-IJ7GWQUR.js.map} +0 -0
- /package/dist/{chunk-4RYWFQK7.js.map → chunk-IWUFZ6NR.js.map} +0 -0
- /package/dist/{chunk-F35G42TF.js.map → chunk-J7Q5VYR7.js.map} +0 -0
- /package/dist/{chunk-MPLWPWL4.js.map → chunk-JQDN7KAZ.js.map} +0 -0
- /package/dist/{chunk-LSSGS2QS.js.map → chunk-K6MQV6SK.js.map} +0 -0
- /package/dist/{chunk-YVQSDBTK.js.map → chunk-KCN5N3PB.js.map} +0 -0
- /package/dist/{chunk-WVKGO3Y5.js.map → chunk-LJ6V54NR.js.map} +0 -0
- /package/dist/{chunk-VCUXNKOY.js.map → chunk-LX7UXZBN.js.map} +0 -0
- /package/dist/{chunk-Z6KROWH4.js.map → chunk-OJR3ASZI.js.map} +0 -0
- /package/dist/{chunk-WVBJRFFM.js.map → chunk-PWPKZNCV.js.map} +0 -0
- /package/dist/{chunk-SKDTGHCD.js.map → chunk-Q2HB5SWU.js.map} +0 -0
- /package/dist/{chunk-NS5COBTT.js.map → chunk-VH6P7UGF.js.map} +0 -0
- /package/dist/{chunk-42PQKBVU.js.map → chunk-VI4X5DN5.js.map} +0 -0
- /package/dist/{chunk-THLQS2AW.js.map → chunk-XDNGMXOZ.js.map} +0 -0
- /package/dist/{chunk-GPZQCLZJ.js.map → chunk-XSULY25W.js.map} +0 -0
- /package/dist/{load-agent-defs-2H42B2OO.js.map → load-agent-defs-KWHG7P7G.js.map} +0 -0
- /package/dist/{recompile-project-agents-QIAMBCM4.js.map → recompile-project-agents-5FTDDHX7.js.map} +0 -0
- /package/dist/{source-loader-CC6ZWKTI.js.map → source-loader-CDYH2NIM.js.map} +0 -0
|
@@ -5,12 +5,12 @@ import {
|
|
|
5
5
|
validateMarketplaceName,
|
|
6
6
|
validateSkillIdNamespace,
|
|
7
7
|
writeMarketplace
|
|
8
|
-
} from "../../chunk-
|
|
8
|
+
} from "../../chunk-7JQPIMKD.js";
|
|
9
9
|
import {
|
|
10
10
|
BaseCommand,
|
|
11
11
|
EXIT_CODES
|
|
12
|
-
} from "../../chunk-
|
|
13
|
-
import "../../chunk-
|
|
12
|
+
} from "../../chunk-LJ6V54NR.js";
|
|
13
|
+
import "../../chunk-IWUFZ6NR.js";
|
|
14
14
|
import "../../chunk-4VVKVOOP.js";
|
|
15
15
|
import {
|
|
16
16
|
getErrorMessage,
|
|
@@ -23,8 +23,8 @@ import {
|
|
|
23
23
|
validateKebabCaseName,
|
|
24
24
|
warn,
|
|
25
25
|
writeFile
|
|
26
|
-
} from "../../chunk-
|
|
27
|
-
import "../../chunk-
|
|
26
|
+
} from "../../chunk-OUG6TCQ4.js";
|
|
27
|
+
import "../../chunk-XX657S4U.js";
|
|
28
28
|
import {
|
|
29
29
|
CATALOG_JSON,
|
|
30
30
|
CLI_INVOKE_COMMAND,
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
PLUGIN_MANIFEST_DIR,
|
|
35
35
|
STANDARD_FILES
|
|
36
36
|
} from "../../chunk-5KB4I5J7.js";
|
|
37
|
-
import "../../chunk-
|
|
37
|
+
import "../../chunk-OI2H6M5I.js";
|
|
38
38
|
|
|
39
39
|
// src/cli/commands/build/marketplace.ts
|
|
40
40
|
import { Flags } from "@oclif/core";
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import {
|
|
3
3
|
compileAllAgentPlugins,
|
|
4
4
|
printAgentCompilationSummary
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-C5P7RUDR.js";
|
|
6
6
|
import {
|
|
7
7
|
BaseCommand
|
|
8
|
-
} from "../../chunk-
|
|
9
|
-
import "../../chunk-
|
|
8
|
+
} from "../../chunk-LJ6V54NR.js";
|
|
9
|
+
import "../../chunk-IWUFZ6NR.js";
|
|
10
10
|
import "../../chunk-4VVKVOOP.js";
|
|
11
11
|
import {
|
|
12
12
|
compileAllSkillPlugins,
|
|
@@ -16,13 +16,13 @@ import {
|
|
|
16
16
|
readPluginManifest,
|
|
17
17
|
remove,
|
|
18
18
|
setVerbose
|
|
19
|
-
} from "../../chunk-
|
|
20
|
-
import "../../chunk-
|
|
19
|
+
} from "../../chunk-OUG6TCQ4.js";
|
|
20
|
+
import "../../chunk-XX657S4U.js";
|
|
21
21
|
import {
|
|
22
22
|
DIRS,
|
|
23
23
|
PLUGINS_DIST_PATH
|
|
24
24
|
} from "../../chunk-5KB4I5J7.js";
|
|
25
|
-
import "../../chunk-
|
|
25
|
+
import "../../chunk-OI2H6M5I.js";
|
|
26
26
|
|
|
27
27
|
// src/cli/commands/build/plugins.ts
|
|
28
28
|
import { Flags } from "@oclif/core";
|
package/dist/commands/compile.js
CHANGED
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
import {
|
|
3
3
|
detectBothInstallations,
|
|
4
4
|
reconcileTypesFromDisk
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-RJ3JYZJ7.js";
|
|
6
6
|
import {
|
|
7
7
|
compileAgents,
|
|
8
8
|
discoverInstalledSkills
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-LX7UXZBN.js";
|
|
10
10
|
import {
|
|
11
11
|
loadAgentDefs
|
|
12
|
-
} from "../chunk-
|
|
13
|
-
import "../chunk-
|
|
12
|
+
} from "../chunk-CICB4AKA.js";
|
|
13
|
+
import "../chunk-C5P7RUDR.js";
|
|
14
14
|
import {
|
|
15
15
|
BaseCommand,
|
|
16
16
|
EXIT_CODES
|
|
17
|
-
} from "../chunk-
|
|
18
|
-
import "../chunk-
|
|
17
|
+
} from "../chunk-LJ6V54NR.js";
|
|
18
|
+
import "../chunk-IWUFZ6NR.js";
|
|
19
19
|
import "../chunk-4VVKVOOP.js";
|
|
20
20
|
import {
|
|
21
21
|
ConfigLoadError,
|
|
@@ -40,12 +40,12 @@ import {
|
|
|
40
40
|
skillMetadataUnusableDetail,
|
|
41
41
|
skillMetadataUnusableError,
|
|
42
42
|
verbose
|
|
43
|
-
} from "../chunk-
|
|
44
|
-
import "../chunk-
|
|
43
|
+
} from "../chunk-OUG6TCQ4.js";
|
|
44
|
+
import "../chunk-XX657S4U.js";
|
|
45
45
|
import {
|
|
46
46
|
STANDARD_FILES
|
|
47
47
|
} from "../chunk-5KB4I5J7.js";
|
|
48
|
-
import "../chunk-
|
|
48
|
+
import "../chunk-OI2H6M5I.js";
|
|
49
49
|
|
|
50
50
|
// src/cli/commands/compile.ts
|
|
51
51
|
import { Flags } from "@oclif/core";
|
package/dist/commands/doctor.js
CHANGED
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
import {
|
|
3
3
|
detectProject,
|
|
4
4
|
loadSource
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
5
|
+
} from "../chunk-RJ3JYZJ7.js";
|
|
6
|
+
import "../chunk-LX7UXZBN.js";
|
|
7
|
+
import "../chunk-CICB4AKA.js";
|
|
8
8
|
import {
|
|
9
9
|
filterExcludedEntries,
|
|
10
10
|
listAgentMdFiles,
|
|
11
11
|
splitAgentsByProvenance
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-C5P7RUDR.js";
|
|
13
13
|
import {
|
|
14
14
|
BaseCommand,
|
|
15
15
|
EXIT_CODES
|
|
16
|
-
} from "../chunk-
|
|
17
|
-
import "../chunk-
|
|
16
|
+
} from "../chunk-LJ6V54NR.js";
|
|
17
|
+
import "../chunk-IWUFZ6NR.js";
|
|
18
18
|
import "../chunk-4VVKVOOP.js";
|
|
19
19
|
import {
|
|
20
20
|
ConfigDefaultExportError,
|
|
@@ -67,10 +67,10 @@ import {
|
|
|
67
67
|
validateProjectConfig,
|
|
68
68
|
validateSkillFrontmatter,
|
|
69
69
|
validateSkillMetadata
|
|
70
|
-
} from "../chunk-
|
|
70
|
+
} from "../chunk-OUG6TCQ4.js";
|
|
71
71
|
import {
|
|
72
72
|
matrix
|
|
73
|
-
} from "../chunk-
|
|
73
|
+
} from "../chunk-XX657S4U.js";
|
|
74
74
|
import {
|
|
75
75
|
CLAUDE_SRC_DIR,
|
|
76
76
|
CLI_INVOKE_COMMAND,
|
|
@@ -87,7 +87,7 @@ import {
|
|
|
87
87
|
STANDARD_FILES,
|
|
88
88
|
UI_SYMBOLS
|
|
89
89
|
} from "../chunk-5KB4I5J7.js";
|
|
90
|
-
import "../chunk-
|
|
90
|
+
import "../chunk-OI2H6M5I.js";
|
|
91
91
|
|
|
92
92
|
// src/cli/commands/doctor.ts
|
|
93
93
|
import os2 from "os";
|
package/dist/commands/edit.js
CHANGED
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
publishSeedConfig,
|
|
4
4
|
seedPayloadForInstallation,
|
|
5
5
|
skillsAuthoredHere
|
|
6
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-IJ7GWQUR.js";
|
|
7
7
|
import {
|
|
8
8
|
RemovalPlanConfirm
|
|
9
9
|
} from "../chunk-YKRPWZ3G.js";
|
|
@@ -11,31 +11,31 @@ import "../chunk-OZXAJNLA.js";
|
|
|
11
11
|
import {
|
|
12
12
|
openUrl,
|
|
13
13
|
seedToWizardResult
|
|
14
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-KCN5N3PB.js";
|
|
15
15
|
import {
|
|
16
16
|
runWizardSession
|
|
17
|
-
} from "../chunk-
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
17
|
+
} from "../chunk-XDNGMXOZ.js";
|
|
18
|
+
import "../chunk-J7Q5VYR7.js";
|
|
19
|
+
import "../chunk-JQDN7KAZ.js";
|
|
20
|
+
import "../chunk-K6MQV6SK.js";
|
|
21
|
+
import "../chunk-GWPKIXBM.js";
|
|
22
|
+
import "../chunk-EPBUWEW4.js";
|
|
23
|
+
import "../chunk-VI4X5DN5.js";
|
|
24
24
|
import "../chunk-SITF5EZM.js";
|
|
25
25
|
import "../chunk-4APXK7ZY.js";
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-
|
|
26
|
+
import "../chunk-XSULY25W.js";
|
|
27
|
+
import "../chunk-Q2HB5SWU.js";
|
|
28
28
|
import "../chunk-X5PLVOJS.js";
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-
|
|
31
|
-
import "../chunk-
|
|
32
|
-
import "../chunk-
|
|
29
|
+
import "../chunk-DEWI5HDF.js";
|
|
30
|
+
import "../chunk-OJR3ASZI.js";
|
|
31
|
+
import "../chunk-CWQLRKWB.js";
|
|
32
|
+
import "../chunk-PIUCYRLP.js";
|
|
33
33
|
import "../chunk-TSIU7DME.js";
|
|
34
34
|
import "../chunk-XVAQG2CV.js";
|
|
35
35
|
import {
|
|
36
36
|
Spinner
|
|
37
37
|
} from "../chunk-ZBPEFQ4G.js";
|
|
38
|
-
import "../chunk-
|
|
38
|
+
import "../chunk-6CP3CLDE.js";
|
|
39
39
|
import "../chunk-J27W6TXS.js";
|
|
40
40
|
import "../chunk-AU5FS3QK.js";
|
|
41
41
|
import "../chunk-ITEJARWI.js";
|
|
@@ -45,7 +45,7 @@ import {
|
|
|
45
45
|
fetchSeedConfig,
|
|
46
46
|
registerExternalSkills,
|
|
47
47
|
writeExternalSkills
|
|
48
|
-
} from "../chunk-
|
|
48
|
+
} from "../chunk-VH6P7UGF.js";
|
|
49
49
|
import {
|
|
50
50
|
promptConfirm
|
|
51
51
|
} from "../chunk-JCPANDNR.js";
|
|
@@ -57,30 +57,30 @@ import {
|
|
|
57
57
|
mutateGlobal,
|
|
58
58
|
normalizeProjectPath,
|
|
59
59
|
writeProjectConfig
|
|
60
|
-
} from "../chunk-
|
|
60
|
+
} from "../chunk-RJ3JYZJ7.js";
|
|
61
61
|
import {
|
|
62
62
|
copyLocalSkills,
|
|
63
63
|
discoverInstalledSkills,
|
|
64
64
|
removeCompiledAgents,
|
|
65
65
|
uninstallPluginSkills
|
|
66
|
-
} from "../chunk-
|
|
66
|
+
} from "../chunk-LX7UXZBN.js";
|
|
67
67
|
import {
|
|
68
68
|
loadAgentDefs
|
|
69
|
-
} from "../chunk-
|
|
70
|
-
import "../chunk-
|
|
71
|
-
import "../chunk-
|
|
69
|
+
} from "../chunk-CICB4AKA.js";
|
|
70
|
+
import "../chunk-C5P7RUDR.js";
|
|
71
|
+
import "../chunk-PWPKZNCV.js";
|
|
72
72
|
import {
|
|
73
73
|
render
|
|
74
74
|
} from "../chunk-JFLVEFFP.js";
|
|
75
75
|
import {
|
|
76
76
|
formatScopeTag,
|
|
77
77
|
orderDomains
|
|
78
|
-
} from "../chunk-
|
|
78
|
+
} from "../chunk-SLB2SFTX.js";
|
|
79
79
|
import {
|
|
80
80
|
BaseCommand,
|
|
81
81
|
EXIT_CODES
|
|
82
|
-
} from "../chunk-
|
|
83
|
-
import "../chunk-
|
|
82
|
+
} from "../chunk-LJ6V54NR.js";
|
|
83
|
+
import "../chunk-IWUFZ6NR.js";
|
|
84
84
|
import "../chunk-4VVKVOOP.js";
|
|
85
85
|
import {
|
|
86
86
|
ERROR_MESSAGES,
|
|
@@ -119,7 +119,7 @@ import {
|
|
|
119
119
|
toClaudePluginScope,
|
|
120
120
|
unplaceableKept,
|
|
121
121
|
unresolvedSkillRemovalReasons
|
|
122
|
-
} from "../chunk-
|
|
122
|
+
} from "../chunk-OUG6TCQ4.js";
|
|
123
123
|
import {
|
|
124
124
|
getCategoryDomain,
|
|
125
125
|
getSkillById,
|
|
@@ -127,7 +127,7 @@ import {
|
|
|
127
127
|
matrix,
|
|
128
128
|
typedEntries,
|
|
129
129
|
typedKeys
|
|
130
|
-
} from "../chunk-
|
|
130
|
+
} from "../chunk-XX657S4U.js";
|
|
131
131
|
import {
|
|
132
132
|
CLI_COLORS,
|
|
133
133
|
CLI_INVOKE_COMMAND,
|
|
@@ -136,7 +136,7 @@ import {
|
|
|
136
136
|
editorConfigUrl,
|
|
137
137
|
formatSourceDisplayName
|
|
138
138
|
} from "../chunk-5KB4I5J7.js";
|
|
139
|
-
import "../chunk-
|
|
139
|
+
import "../chunk-OI2H6M5I.js";
|
|
140
140
|
|
|
141
141
|
// src/cli/commands/edit.tsx
|
|
142
142
|
import os from "os";
|
package/dist/commands/eject.js
CHANGED
|
@@ -5,15 +5,15 @@ import {
|
|
|
5
5
|
loadSource,
|
|
6
6
|
mutateGlobal,
|
|
7
7
|
writeProjectPartial
|
|
8
|
-
} from "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
8
|
+
} from "../chunk-RJ3JYZJ7.js";
|
|
9
|
+
import "../chunk-LX7UXZBN.js";
|
|
10
|
+
import "../chunk-CICB4AKA.js";
|
|
11
|
+
import "../chunk-C5P7RUDR.js";
|
|
12
12
|
import {
|
|
13
13
|
BaseCommand,
|
|
14
14
|
EXIT_CODES
|
|
15
|
-
} from "../chunk-
|
|
16
|
-
import "../chunk-
|
|
15
|
+
} from "../chunk-LJ6V54NR.js";
|
|
16
|
+
import "../chunk-IWUFZ6NR.js";
|
|
17
17
|
import "../chunk-4VVKVOOP.js";
|
|
18
18
|
import {
|
|
19
19
|
INCOMPLETE_WORK_RECOVERY,
|
|
@@ -29,11 +29,11 @@ import {
|
|
|
29
29
|
listDirectories,
|
|
30
30
|
loadProjectSourceConfig,
|
|
31
31
|
resolveSource
|
|
32
|
-
} from "../chunk-
|
|
32
|
+
} from "../chunk-OUG6TCQ4.js";
|
|
33
33
|
import {
|
|
34
34
|
matrix,
|
|
35
35
|
typedKeys
|
|
36
|
-
} from "../chunk-
|
|
36
|
+
} from "../chunk-XX657S4U.js";
|
|
37
37
|
import {
|
|
38
38
|
CLAUDE_SRC_DIR,
|
|
39
39
|
DIRS,
|
|
@@ -41,7 +41,7 @@ import {
|
|
|
41
41
|
PROJECT_ROOT,
|
|
42
42
|
STANDARD_FILES
|
|
43
43
|
} from "../chunk-5KB4I5J7.js";
|
|
44
|
-
import "../chunk-
|
|
44
|
+
import "../chunk-OI2H6M5I.js";
|
|
45
45
|
|
|
46
46
|
// src/cli/commands/eject.ts
|
|
47
47
|
import { Args, Flags } from "@oclif/core";
|
package/dist/commands/init.js
CHANGED
|
@@ -7,50 +7,50 @@ import {
|
|
|
7
7
|
getDashboardData,
|
|
8
8
|
runDashboardFlow,
|
|
9
9
|
showDashboard
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-5K33RJ7Z.js";
|
|
11
11
|
import "../chunk-OJIQOVWB.js";
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-KCN5N3PB.js";
|
|
13
|
+
import "../chunk-XDNGMXOZ.js";
|
|
14
|
+
import "../chunk-J7Q5VYR7.js";
|
|
15
|
+
import "../chunk-JQDN7KAZ.js";
|
|
16
|
+
import "../chunk-K6MQV6SK.js";
|
|
17
|
+
import "../chunk-GWPKIXBM.js";
|
|
18
|
+
import "../chunk-EPBUWEW4.js";
|
|
19
|
+
import "../chunk-VI4X5DN5.js";
|
|
20
20
|
import "../chunk-SITF5EZM.js";
|
|
21
21
|
import "../chunk-4APXK7ZY.js";
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-XSULY25W.js";
|
|
23
|
+
import "../chunk-Q2HB5SWU.js";
|
|
24
24
|
import "../chunk-X5PLVOJS.js";
|
|
25
|
-
import "../chunk-
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-
|
|
28
|
-
import "../chunk-
|
|
25
|
+
import "../chunk-DEWI5HDF.js";
|
|
26
|
+
import "../chunk-OJR3ASZI.js";
|
|
27
|
+
import "../chunk-CWQLRKWB.js";
|
|
28
|
+
import "../chunk-PIUCYRLP.js";
|
|
29
29
|
import "../chunk-TSIU7DME.js";
|
|
30
30
|
import "../chunk-XVAQG2CV.js";
|
|
31
31
|
import "../chunk-ZBPEFQ4G.js";
|
|
32
|
-
import "../chunk-
|
|
32
|
+
import "../chunk-6CP3CLDE.js";
|
|
33
33
|
import "../chunk-J27W6TXS.js";
|
|
34
34
|
import "../chunk-AU5FS3QK.js";
|
|
35
35
|
import "../chunk-ITEJARWI.js";
|
|
36
36
|
import "../chunk-WTJ3AY33.js";
|
|
37
37
|
import "../chunk-PEHYVSJG.js";
|
|
38
|
-
import "../chunk-
|
|
38
|
+
import "../chunk-VH6P7UGF.js";
|
|
39
39
|
import "../chunk-JCPANDNR.js";
|
|
40
|
-
import "../chunk-
|
|
41
|
-
import "../chunk-
|
|
42
|
-
import "../chunk-
|
|
43
|
-
import "../chunk-
|
|
44
|
-
import "../chunk-
|
|
40
|
+
import "../chunk-RJ3JYZJ7.js";
|
|
41
|
+
import "../chunk-LX7UXZBN.js";
|
|
42
|
+
import "../chunk-CICB4AKA.js";
|
|
43
|
+
import "../chunk-C5P7RUDR.js";
|
|
44
|
+
import "../chunk-PWPKZNCV.js";
|
|
45
45
|
import "../chunk-JFLVEFFP.js";
|
|
46
|
-
import "../chunk-
|
|
47
|
-
import "../chunk-
|
|
48
|
-
import "../chunk-
|
|
46
|
+
import "../chunk-SLB2SFTX.js";
|
|
47
|
+
import "../chunk-LJ6V54NR.js";
|
|
48
|
+
import "../chunk-IWUFZ6NR.js";
|
|
49
49
|
import "../chunk-4VVKVOOP.js";
|
|
50
|
-
import "../chunk-
|
|
51
|
-
import "../chunk-
|
|
50
|
+
import "../chunk-OUG6TCQ4.js";
|
|
51
|
+
import "../chunk-XX657S4U.js";
|
|
52
52
|
import "../chunk-5KB4I5J7.js";
|
|
53
|
-
import "../chunk-
|
|
53
|
+
import "../chunk-OI2H6M5I.js";
|
|
54
54
|
export {
|
|
55
55
|
Dashboard,
|
|
56
56
|
dashboardCountLines,
|
package/dist/commands/list.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
SkillAgentSummary
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-PWPKZNCV.js";
|
|
5
5
|
import {
|
|
6
6
|
render
|
|
7
7
|
} from "../chunk-JFLVEFFP.js";
|
|
8
8
|
import {
|
|
9
9
|
hydrateWizardStore
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-SLB2SFTX.js";
|
|
11
11
|
import {
|
|
12
12
|
BaseCommand
|
|
13
|
-
} from "../chunk-
|
|
14
|
-
import "../chunk-
|
|
13
|
+
} from "../chunk-LJ6V54NR.js";
|
|
14
|
+
import "../chunk-IWUFZ6NR.js";
|
|
15
15
|
import "../chunk-4VVKVOOP.js";
|
|
16
16
|
import {
|
|
17
17
|
INSTALL_MODE_LABELS,
|
|
@@ -19,14 +19,14 @@ import {
|
|
|
19
19
|
formatInstallationDisplay,
|
|
20
20
|
getInstallationInfo,
|
|
21
21
|
loadProjectConfig
|
|
22
|
-
} from "../chunk-
|
|
23
|
-
import "../chunk-
|
|
22
|
+
} from "../chunk-OUG6TCQ4.js";
|
|
23
|
+
import "../chunk-XX657S4U.js";
|
|
24
24
|
import {
|
|
25
25
|
CLI_COLORS,
|
|
26
26
|
CLI_INVOKE_COMMAND,
|
|
27
27
|
DEFAULT_BRANDING
|
|
28
28
|
} from "../chunk-5KB4I5J7.js";
|
|
29
|
-
import "../chunk-
|
|
29
|
+
import "../chunk-OI2H6M5I.js";
|
|
30
30
|
|
|
31
31
|
// src/cli/commands/list.tsx
|
|
32
32
|
import { useEffect } from "react";
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
validateMarketplaceName
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-7JQPIMKD.js";
|
|
5
5
|
import {
|
|
6
6
|
BaseCommand,
|
|
7
7
|
EXIT_CODES
|
|
8
|
-
} from "../../chunk-
|
|
9
|
-
import "../../chunk-
|
|
8
|
+
} from "../../chunk-LJ6V54NR.js";
|
|
9
|
+
import "../../chunk-IWUFZ6NR.js";
|
|
10
10
|
import "../../chunk-4VVKVOOP.js";
|
|
11
11
|
import {
|
|
12
12
|
isDirectoryEmpty,
|
|
13
13
|
validateKebabCaseName,
|
|
14
14
|
writeFile
|
|
15
|
-
} from "../../chunk-
|
|
16
|
-
import "../../chunk-
|
|
15
|
+
} from "../../chunk-OUG6TCQ4.js";
|
|
16
|
+
import "../../chunk-XX657S4U.js";
|
|
17
17
|
import {
|
|
18
18
|
CLI_INVOKE_COMMAND,
|
|
19
19
|
DEFAULT_VERSION,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
STACKS_FILE_PATH,
|
|
24
24
|
STANDARD_FILES
|
|
25
25
|
} from "../../chunk-5KB4I5J7.js";
|
|
26
|
-
import "../../chunk-
|
|
26
|
+
import "../../chunk-OI2H6M5I.js";
|
|
27
27
|
|
|
28
28
|
// src/cli/commands/new/marketplace.ts
|
|
29
29
|
import { Args } from "@oclif/core";
|
|
@@ -94,7 +94,6 @@ function skillCategoriesModule() {
|
|
|
94
94
|
description: "Replace this with a category of your own",
|
|
95
95
|
domain: EXAMPLE_DOMAIN,
|
|
96
96
|
exclusive: false,
|
|
97
|
-
required: false,
|
|
98
97
|
order: EXAMPLE_CATEGORY_ORDER
|
|
99
98
|
}
|
|
100
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cli/commands/new/marketplace.ts","../../../src/cli/lib/marketplace-scaffold.ts"],"sourcesContent":["import { Args } from \"@oclif/core\";\nimport path from \"path\";\n\nimport { BaseCommand } from \"../../base-command.js\";\nimport { CLI_INVOKE_COMMAND, SKILLS_DIR_PATH } from \"../../consts.js\";\nimport { EXIT_CODES } from \"../../lib/exit-codes.js\";\nimport { validateMarketplaceName } from \"../../lib/marketplace-generator.js\";\nimport { exampleSkillId, writeMarketplaceScaffold } from \"../../lib/marketplace-scaffold.js\";\nimport { validateKebabCaseName } from \"../../lib/validate-kebab-name.js\";\nimport { isDirectoryEmpty } from \"../../utils/fs.js\";\n\n/**\n * The refusal over a target directory that already holds something.\n *\n * A scaffold writes a whole marketplace, so writing into an occupied directory\n * would mean merging with — or overwriting — work this command did not author.\n * Both ways out are one step, which is why there is no `--force`: a flag that\n * overwrites an author's own files is the destructive half of a silent fallback.\n */\nfunction occupiedDirectoryError(marketplaceDir: string): string {\n return (\n `${marketplaceDir} already holds files. A scaffold writes a whole marketplace, ` +\n `so it will not write into a directory that already has contents. Choose another ` +\n `name, or empty that directory first.`\n );\n}\n\nexport default class NewMarketplace extends BaseCommand {\n static summary = \"Scaffold a marketplace of your own\";\n\n static description =\n \"Create a directory holding everything the CLI needs to read a marketplace: a package.json \" +\n \"carrying its identity, the three config files, and one example skill already named in the \" +\n \"marketplace's own namespace. It scaffolds only — run 'build plugins' and 'build marketplace' \" +\n \"to publish what you have written.\";\n\n static examples = [\n {\n description: \"Scaffold a marketplace named acme into ./acme\",\n command: \"<%= config.bin %> <%= command.id %> acme\",\n },\n ];\n\n static args = {\n name: Args.string({\n description:\n \"Name of the marketplace (kebab-case). Becomes the directory, the package.json name, \" +\n \"and the prefix every skill id must carry.\",\n required: true,\n }),\n };\n\n async run(): Promise<void> {\n const { args } = await this.parse(NewMarketplace);\n const marketplaceName = args.name;\n const marketplaceDir = path.join(process.cwd(), marketplaceName);\n\n this.refuseUnusableName(marketplaceName);\n await this.refuseOccupiedDirectory(marketplaceDir);\n\n try {\n const written = await writeMarketplaceScaffold(marketplaceDir, marketplaceName);\n this.reportCreated(marketplaceName, marketplaceDir, written);\n this.reportNextSteps(marketplaceName, marketplaceDir);\n } catch (error) {\n this.handleError(error);\n }\n }\n\n /**\n * Both name rules `build marketplace` enforces, enforced here instead — failing\n * at creation beats failing at publish, when the name is already the directory,\n * the package name and the prefix on every id.\n */\n private refuseUnusableName(marketplaceName: string): void {\n const kebabError = validateKebabCaseName(marketplaceName, \"Marketplace\");\n if (kebabError) {\n this.error(kebabError, { exit: EXIT_CODES.INVALID_ARGS });\n }\n\n // The package.json this command is about to write names the marketplace after\n // itself, so the marketplace name IS the package name. That is what keeps the\n // public catalogue's exemption out of reach: it belongs to one npm package, and\n // nobody scaffolds that package from here.\n const reservedError = validateMarketplaceName(marketplaceName, marketplaceName);\n if (reservedError) {\n this.error(reservedError, { exit: EXIT_CODES.ERROR });\n }\n }\n\n private async refuseOccupiedDirectory(marketplaceDir: string): Promise<void> {\n if (await isDirectoryEmpty(marketplaceDir)) return;\n\n this.error(occupiedDirectoryError(marketplaceDir), { exit: EXIT_CODES.ERROR });\n }\n\n private reportCreated(\n marketplaceName: string,\n marketplaceDir: string,\n written: readonly string[],\n ): void {\n this.log(\"\");\n this.logSuccess(`Created marketplace '${marketplaceName}' at ${marketplaceDir}`);\n for (const relPath of written) {\n this.log(` ${relPath}`);\n }\n }\n\n private reportNextSteps(marketplaceName: string, marketplaceDir: string): void {\n const skillDir = path.join(SKILLS_DIR_PATH, exampleSkillId(marketplaceName));\n const steps = [\n `cd ${marketplaceName}`,\n \"Replace the placeholder 'author' in package.json with your own handle — it is what 'build marketplace' records as this marketplace's owner\",\n `Replace ${skillDir}/ with a skill of your own. Every skill id must begin with '${marketplaceName}-'`,\n `${CLI_INVOKE_COMMAND} build plugins`,\n `${CLI_INVOKE_COMMAND} build marketplace`,\n `${CLI_INVOKE_COMMAND} init --marketplace ${marketplaceDir} (from a project)`,\n ];\n\n this.log(\"\");\n this.log(\"Next steps:\");\n for (const [index, step] of steps.entries()) {\n this.log(` ${index + 1}. ${step}`);\n }\n this.log(\"\");\n }\n}\n","import path from \"path\";\n\nimport {\n DEFAULT_VERSION,\n SKILL_CATEGORIES_PATH,\n SKILL_RULES_PATH,\n SKILLS_DIR_PATH,\n STACKS_FILE_PATH,\n STANDARD_FILES,\n} from \"../consts.js\";\nimport { writeFile } from \"../utils/fs.js\";\n\n/** One file of a scaffolded marketplace: where it goes, and what it holds. */\ntype ScaffoldFile = {\n /** Path relative to the marketplace root. */\n relPath: string;\n contents: string;\n};\n\n/**\n * The bare id of the one skill a scaffold ships. The marketplace's own name is\n * prefixed onto it by {@link exampleSkillId} — this half is the same for every\n * marketplace, and on its own it belongs to none of them.\n */\nconst EXAMPLE_SKILL_SUFFIX = \"example-skill\";\n\n/**\n * The domain the scaffolded category sits under.\n *\n * `web` rather than a placeholder of its own: a domain is a member of a generated\n * union, and one invented for the scaffold appears in no wizard domain view and\n * reaches no sub-agent. It is also one of the domains a from-scratch selection\n * opens with, so the example skill is visible without the author choosing anything.\n */\nconst EXAMPLE_DOMAIN = \"web\";\n\n/**\n * The category the scaffold declares and places its example skill in, named by the\n * `<domain>-<name>` convention every category in the public catalogue follows. No\n * built-in category holds this key, so declaring it adds one rather than redefining\n * somebody else's.\n */\nconst EXAMPLE_CATEGORY = `${EXAMPLE_DOMAIN}-example`;\n\n/**\n * The slug the example skill answers to.\n *\n * Deliberately NOT namespaced: the marketplace-namespace rule governs skill ids,\n * and a marketplace's matrix is built from its own skills alone, so nothing in it\n * can collide with this. Prefixing it would settle a question nobody has ruled on.\n */\nconst EXAMPLE_SLUG = \"example-skill\";\n\n/** Where the scaffolded category sorts among the categories a marketplace grows later. */\nconst EXAMPLE_CATEGORY_ORDER = 1;\n\n/** The version a marketplace starts at — pre-release, because nothing is published yet. */\nconst INITIAL_PACKAGE_VERSION = \"0.1.0\";\n\n/** The sub-agent the scaffolded stack hands its skill to. */\nconst EXAMPLE_STACK_AGENT = \"web-developer\";\n\n/**\n * Composes the id of a scaffolded marketplace's example skill.\n *\n * Every skill id a marketplace publishes begins with that marketplace's name, so an\n * author who edits the scaffold rather than starting from a blank directory falls\n * into the namespace instead of having to remember it — `build marketplace` refuses\n * an id that lacks the prefix, and so does the load side.\n */\nexport function exampleSkillId(marketplaceName: string): string {\n return `${marketplaceName}-${EXAMPLE_SKILL_SUFFIX}`;\n}\n\n/**\n * Writes a complete marketplace into `marketplaceDir` and returns every path it\n * wrote, relative to that directory.\n *\n * What it writes is exactly what `docs/guides/creating-a-marketplace.md` promises a\n * marketplace holds — no more. It deliberately writes no `.claude-src/` pair: a\n * marketplace is a repository of skills, and a config manifest there would make\n * `doctor` diagnose an installation that does not exist.\n */\nexport async function writeMarketplaceScaffold(\n marketplaceDir: string,\n marketplaceName: string,\n): Promise<string[]> {\n const files = scaffoldFiles(marketplaceName);\n\n await Promise.all(\n files.map((file) => writeFile(path.join(marketplaceDir, file.relPath), file.contents)),\n );\n\n return files.map((file) => file.relPath);\n}\n\nfunction scaffoldFiles(marketplaceName: string): ScaffoldFile[] {\n const skillId = exampleSkillId(marketplaceName);\n const skillDir = path.join(SKILLS_DIR_PATH, skillId);\n\n return [\n { relPath: STANDARD_FILES.PACKAGE_JSON, contents: packageJson(marketplaceName) },\n { relPath: SKILL_CATEGORIES_PATH, contents: skillCategoriesModule() },\n { relPath: SKILL_RULES_PATH, contents: skillRulesModule() },\n { relPath: STACKS_FILE_PATH, contents: stacksModule(marketplaceName, skillId) },\n { relPath: path.join(skillDir, STANDARD_FILES.SKILL_MD), contents: skillMd(skillId) },\n {\n relPath: path.join(skillDir, STANDARD_FILES.METADATA_YAML),\n contents: metadataYaml(marketplaceName),\n },\n ];\n}\n\n/**\n * A `config/*.ts` module the CLI's loader can read.\n *\n * The loader unwraps a DEFAULT export and treats a module without one as no config\n * at all, so the export form here is load-bearing rather than stylistic.\n */\nfunction configModule(comment: string, data: unknown): string {\n return `${comment}\\nexport default ${JSON.stringify(data, null, 2)};\\n`;\n}\n\n/**\n * `build marketplace` reads a marketplace's whole identity out of package.json and\n * refuses a file missing any of name, version or description.\n *\n * `author` is the field this command cannot know, and it is written anyway —\n * omitting it is not the neutral choice it looks like. The build turns an absent\n * author into `owner: { name: \"\" }`, and the schema the CLI parses a\n * `marketplace.json` back with requires a non-empty owner name, so a scaffold with\n * no author builds a marketplace that then loads as no marketplace at all. The\n * marketplace's own handle is the least-wrong default: it is derived from what the\n * author typed rather than invented, and the next steps say to replace it.\n */\nfunction packageJson(marketplaceName: string): string {\n return `${JSON.stringify(\n {\n name: marketplaceName,\n version: INITIAL_PACKAGE_VERSION,\n description: `Skills curated for ${marketplaceName}'s conventions`,\n author: { name: authorHandle(marketplaceName) },\n },\n null,\n 2,\n )}\\n`;\n}\n\n/** The placeholder handle the marketplace publishes itself and its example skill under. */\nfunction authorHandle(marketplaceName: string): string {\n return `@${marketplaceName}`;\n}\n\nfunction skillCategoriesModule(): string {\n return configModule(\"// The categories this marketplace's skills fall into.\", {\n version: DEFAULT_VERSION,\n categories: {\n [EXAMPLE_CATEGORY]: {\n id: EXAMPLE_CATEGORY,\n displayName: \"Example\",\n description: \"Replace this with a category of your own\",\n domain: EXAMPLE_DOMAIN,\n exclusive: false,\n required: false,\n order: EXAMPLE_CATEGORY_ORDER,\n },\n },\n });\n}\n\n/**\n * A rules file with a version and nothing else.\n *\n * Relationship rules name skills by slug, and that slug reference is the CLI's own\n * generated union — so a marketplace cannot yet name its OWN skills in a rule, and\n * one that tries fails to load. A marketplace works fully without them; what it\n * loses is the wizard's incompatibility hints between its own skills.\n */\nfunction skillRulesModule(): string {\n return configModule(\n [\n \"// Relationships between skills — conflicts, requires, alternatives.\",\n \"//\",\n \"// Rules may only name skills the public catalogue carries; this marketplace's own\",\n \"// skills cannot be named here yet, and a rule that names one will not load. The\",\n \"// file still has to exist, so it ships with a version and no relationships.\",\n ].join(\"\\n\"),\n { version: DEFAULT_VERSION },\n );\n}\n\nfunction stacksModule(marketplaceName: string, skillId: string): string {\n return configModule(\"// The stacks this marketplace offers the wizard.\", {\n stacks: [\n {\n id: `${marketplaceName}-starter`,\n name: `${marketplaceName} starter`,\n description: `Every skill ${marketplaceName} ships`,\n agents: {\n [EXAMPLE_STACK_AGENT]: {\n [EXAMPLE_CATEGORY]: [{ id: skillId }],\n },\n },\n },\n ],\n });\n}\n\n/**\n * The skill's content, headed by the frontmatter the loader reads its machine id\n * out of. That id is also the directory name — `doctor` compares the two — so both\n * come from {@link exampleSkillId} rather than being spelled twice.\n */\nfunction skillMd(skillId: string): string {\n return `---\nname: ${skillId}\ndescription: A placeholder skill — replace it with one of your own\n---\n\n# Example Skill\n\nThis is where a skill's content goes: the conventions, patterns and rules you want\nevery sub-agent carrying it to follow.\n\nReplace this file and the \\`${STANDARD_FILES.METADATA_YAML}\\` beside it, and rename the\ndirectory to the id your skill should publish under.\n`;\n}\n\nfunction metadataYaml(marketplaceName: string): string {\n return [\n \"custom: true\",\n `domain: ${EXAMPLE_DOMAIN}`,\n `author: \"${authorHandle(marketplaceName)}\"`,\n \"displayName: Example Skill\",\n `category: ${EXAMPLE_CATEGORY}`,\n `slug: ${EXAMPLE_SLUG}`,\n 'cliDescription: \"A placeholder skill to replace with your own\"',\n 'usageGuidance: \"Use when you need a worked example of this marketplace\\'s skill shape\"',\n \"\",\n ].join(\"\\n\");\n}\n"],"mappings":"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","names":["path","path"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/cli/commands/new/marketplace.ts","../../../src/cli/lib/marketplace-scaffold.ts"],"sourcesContent":["import { Args } from \"@oclif/core\";\nimport path from \"path\";\n\nimport { BaseCommand } from \"../../base-command.js\";\nimport { CLI_INVOKE_COMMAND, SKILLS_DIR_PATH } from \"../../consts.js\";\nimport { EXIT_CODES } from \"../../lib/exit-codes.js\";\nimport { validateMarketplaceName } from \"../../lib/marketplace-generator.js\";\nimport { exampleSkillId, writeMarketplaceScaffold } from \"../../lib/marketplace-scaffold.js\";\nimport { validateKebabCaseName } from \"../../lib/validate-kebab-name.js\";\nimport { isDirectoryEmpty } from \"../../utils/fs.js\";\n\n/**\n * The refusal over a target directory that already holds something.\n *\n * A scaffold writes a whole marketplace, so writing into an occupied directory\n * would mean merging with — or overwriting — work this command did not author.\n * Both ways out are one step, which is why there is no `--force`: a flag that\n * overwrites an author's own files is the destructive half of a silent fallback.\n */\nfunction occupiedDirectoryError(marketplaceDir: string): string {\n return (\n `${marketplaceDir} already holds files. A scaffold writes a whole marketplace, ` +\n `so it will not write into a directory that already has contents. Choose another ` +\n `name, or empty that directory first.`\n );\n}\n\nexport default class NewMarketplace extends BaseCommand {\n static summary = \"Scaffold a marketplace of your own\";\n\n static description =\n \"Create a directory holding everything the CLI needs to read a marketplace: a package.json \" +\n \"carrying its identity, the three config files, and one example skill already named in the \" +\n \"marketplace's own namespace. It scaffolds only — run 'build plugins' and 'build marketplace' \" +\n \"to publish what you have written.\";\n\n static examples = [\n {\n description: \"Scaffold a marketplace named acme into ./acme\",\n command: \"<%= config.bin %> <%= command.id %> acme\",\n },\n ];\n\n static args = {\n name: Args.string({\n description:\n \"Name of the marketplace (kebab-case). Becomes the directory, the package.json name, \" +\n \"and the prefix every skill id must carry.\",\n required: true,\n }),\n };\n\n async run(): Promise<void> {\n const { args } = await this.parse(NewMarketplace);\n const marketplaceName = args.name;\n const marketplaceDir = path.join(process.cwd(), marketplaceName);\n\n this.refuseUnusableName(marketplaceName);\n await this.refuseOccupiedDirectory(marketplaceDir);\n\n try {\n const written = await writeMarketplaceScaffold(marketplaceDir, marketplaceName);\n this.reportCreated(marketplaceName, marketplaceDir, written);\n this.reportNextSteps(marketplaceName, marketplaceDir);\n } catch (error) {\n this.handleError(error);\n }\n }\n\n /**\n * Both name rules `build marketplace` enforces, enforced here instead — failing\n * at creation beats failing at publish, when the name is already the directory,\n * the package name and the prefix on every id.\n */\n private refuseUnusableName(marketplaceName: string): void {\n const kebabError = validateKebabCaseName(marketplaceName, \"Marketplace\");\n if (kebabError) {\n this.error(kebabError, { exit: EXIT_CODES.INVALID_ARGS });\n }\n\n // The package.json this command is about to write names the marketplace after\n // itself, so the marketplace name IS the package name. That is what keeps the\n // public catalogue's exemption out of reach: it belongs to one npm package, and\n // nobody scaffolds that package from here.\n const reservedError = validateMarketplaceName(marketplaceName, marketplaceName);\n if (reservedError) {\n this.error(reservedError, { exit: EXIT_CODES.ERROR });\n }\n }\n\n private async refuseOccupiedDirectory(marketplaceDir: string): Promise<void> {\n if (await isDirectoryEmpty(marketplaceDir)) return;\n\n this.error(occupiedDirectoryError(marketplaceDir), { exit: EXIT_CODES.ERROR });\n }\n\n private reportCreated(\n marketplaceName: string,\n marketplaceDir: string,\n written: readonly string[],\n ): void {\n this.log(\"\");\n this.logSuccess(`Created marketplace '${marketplaceName}' at ${marketplaceDir}`);\n for (const relPath of written) {\n this.log(` ${relPath}`);\n }\n }\n\n private reportNextSteps(marketplaceName: string, marketplaceDir: string): void {\n const skillDir = path.join(SKILLS_DIR_PATH, exampleSkillId(marketplaceName));\n const steps = [\n `cd ${marketplaceName}`,\n \"Replace the placeholder 'author' in package.json with your own handle — it is what 'build marketplace' records as this marketplace's owner\",\n `Replace ${skillDir}/ with a skill of your own. Every skill id must begin with '${marketplaceName}-'`,\n `${CLI_INVOKE_COMMAND} build plugins`,\n `${CLI_INVOKE_COMMAND} build marketplace`,\n `${CLI_INVOKE_COMMAND} init --marketplace ${marketplaceDir} (from a project)`,\n ];\n\n this.log(\"\");\n this.log(\"Next steps:\");\n for (const [index, step] of steps.entries()) {\n this.log(` ${index + 1}. ${step}`);\n }\n this.log(\"\");\n }\n}\n","import path from \"path\";\n\nimport {\n DEFAULT_VERSION,\n SKILL_CATEGORIES_PATH,\n SKILL_RULES_PATH,\n SKILLS_DIR_PATH,\n STACKS_FILE_PATH,\n STANDARD_FILES,\n} from \"../consts.js\";\nimport { writeFile } from \"../utils/fs.js\";\n\n/** One file of a scaffolded marketplace: where it goes, and what it holds. */\ntype ScaffoldFile = {\n /** Path relative to the marketplace root. */\n relPath: string;\n contents: string;\n};\n\n/**\n * The bare id of the one skill a scaffold ships. The marketplace's own name is\n * prefixed onto it by {@link exampleSkillId} — this half is the same for every\n * marketplace, and on its own it belongs to none of them.\n */\nconst EXAMPLE_SKILL_SUFFIX = \"example-skill\";\n\n/**\n * The domain the scaffolded category sits under.\n *\n * `web` rather than a placeholder of its own: a domain is a member of a generated\n * union, and one invented for the scaffold appears in no wizard domain view and\n * reaches no sub-agent. It is also one of the domains a from-scratch selection\n * opens with, so the example skill is visible without the author choosing anything.\n */\nconst EXAMPLE_DOMAIN = \"web\";\n\n/**\n * The category the scaffold declares and places its example skill in, named by the\n * `<domain>-<name>` convention every category in the public catalogue follows. No\n * built-in category holds this key, so declaring it adds one rather than redefining\n * somebody else's.\n */\nconst EXAMPLE_CATEGORY = `${EXAMPLE_DOMAIN}-example`;\n\n/**\n * The slug the example skill answers to.\n *\n * Deliberately NOT namespaced: the marketplace-namespace rule governs skill ids,\n * and a marketplace's matrix is built from its own skills alone, so nothing in it\n * can collide with this. Prefixing it would settle a question nobody has ruled on.\n */\nconst EXAMPLE_SLUG = \"example-skill\";\n\n/** Where the scaffolded category sorts among the categories a marketplace grows later. */\nconst EXAMPLE_CATEGORY_ORDER = 1;\n\n/** The version a marketplace starts at — pre-release, because nothing is published yet. */\nconst INITIAL_PACKAGE_VERSION = \"0.1.0\";\n\n/** The sub-agent the scaffolded stack hands its skill to. */\nconst EXAMPLE_STACK_AGENT = \"web-developer\";\n\n/**\n * Composes the id of a scaffolded marketplace's example skill.\n *\n * Every skill id a marketplace publishes begins with that marketplace's name, so an\n * author who edits the scaffold rather than starting from a blank directory falls\n * into the namespace instead of having to remember it — `build marketplace` refuses\n * an id that lacks the prefix, and so does the load side.\n */\nexport function exampleSkillId(marketplaceName: string): string {\n return `${marketplaceName}-${EXAMPLE_SKILL_SUFFIX}`;\n}\n\n/**\n * Writes a complete marketplace into `marketplaceDir` and returns every path it\n * wrote, relative to that directory.\n *\n * What it writes is exactly what `docs/guides/creating-a-marketplace.md` promises a\n * marketplace holds — no more. It deliberately writes no `.claude-src/` pair: a\n * marketplace is a repository of skills, and a config manifest there would make\n * `doctor` diagnose an installation that does not exist.\n */\nexport async function writeMarketplaceScaffold(\n marketplaceDir: string,\n marketplaceName: string,\n): Promise<string[]> {\n const files = scaffoldFiles(marketplaceName);\n\n await Promise.all(\n files.map((file) => writeFile(path.join(marketplaceDir, file.relPath), file.contents)),\n );\n\n return files.map((file) => file.relPath);\n}\n\nfunction scaffoldFiles(marketplaceName: string): ScaffoldFile[] {\n const skillId = exampleSkillId(marketplaceName);\n const skillDir = path.join(SKILLS_DIR_PATH, skillId);\n\n return [\n { relPath: STANDARD_FILES.PACKAGE_JSON, contents: packageJson(marketplaceName) },\n { relPath: SKILL_CATEGORIES_PATH, contents: skillCategoriesModule() },\n { relPath: SKILL_RULES_PATH, contents: skillRulesModule() },\n { relPath: STACKS_FILE_PATH, contents: stacksModule(marketplaceName, skillId) },\n { relPath: path.join(skillDir, STANDARD_FILES.SKILL_MD), contents: skillMd(skillId) },\n {\n relPath: path.join(skillDir, STANDARD_FILES.METADATA_YAML),\n contents: metadataYaml(marketplaceName),\n },\n ];\n}\n\n/**\n * A `config/*.ts` module the CLI's loader can read.\n *\n * The loader unwraps a DEFAULT export and treats a module without one as no config\n * at all, so the export form here is load-bearing rather than stylistic.\n */\nfunction configModule(comment: string, data: unknown): string {\n return `${comment}\\nexport default ${JSON.stringify(data, null, 2)};\\n`;\n}\n\n/**\n * `build marketplace` reads a marketplace's whole identity out of package.json and\n * refuses a file missing any of name, version or description.\n *\n * `author` is the field this command cannot know, and it is written anyway —\n * omitting it is not the neutral choice it looks like. The build turns an absent\n * author into `owner: { name: \"\" }`, and the schema the CLI parses a\n * `marketplace.json` back with requires a non-empty owner name, so a scaffold with\n * no author builds a marketplace that then loads as no marketplace at all. The\n * marketplace's own handle is the least-wrong default: it is derived from what the\n * author typed rather than invented, and the next steps say to replace it.\n */\nfunction packageJson(marketplaceName: string): string {\n return `${JSON.stringify(\n {\n name: marketplaceName,\n version: INITIAL_PACKAGE_VERSION,\n description: `Skills curated for ${marketplaceName}'s conventions`,\n author: { name: authorHandle(marketplaceName) },\n },\n null,\n 2,\n )}\\n`;\n}\n\n/** The placeholder handle the marketplace publishes itself and its example skill under. */\nfunction authorHandle(marketplaceName: string): string {\n return `@${marketplaceName}`;\n}\n\nfunction skillCategoriesModule(): string {\n return configModule(\"// The categories this marketplace's skills fall into.\", {\n version: DEFAULT_VERSION,\n categories: {\n [EXAMPLE_CATEGORY]: {\n id: EXAMPLE_CATEGORY,\n displayName: \"Example\",\n description: \"Replace this with a category of your own\",\n domain: EXAMPLE_DOMAIN,\n exclusive: false,\n order: EXAMPLE_CATEGORY_ORDER,\n },\n },\n });\n}\n\n/**\n * A rules file with a version and nothing else.\n *\n * Relationship rules name skills by slug, and that slug reference is the CLI's own\n * generated union — so a marketplace cannot yet name its OWN skills in a rule, and\n * one that tries fails to load. A marketplace works fully without them; what it\n * loses is the wizard's incompatibility hints between its own skills.\n */\nfunction skillRulesModule(): string {\n return configModule(\n [\n \"// Relationships between skills — conflicts, requires, alternatives.\",\n \"//\",\n \"// Rules may only name skills the public catalogue carries; this marketplace's own\",\n \"// skills cannot be named here yet, and a rule that names one will not load. The\",\n \"// file still has to exist, so it ships with a version and no relationships.\",\n ].join(\"\\n\"),\n { version: DEFAULT_VERSION },\n );\n}\n\nfunction stacksModule(marketplaceName: string, skillId: string): string {\n return configModule(\"// The stacks this marketplace offers the wizard.\", {\n stacks: [\n {\n id: `${marketplaceName}-starter`,\n name: `${marketplaceName} starter`,\n description: `Every skill ${marketplaceName} ships`,\n agents: {\n [EXAMPLE_STACK_AGENT]: {\n [EXAMPLE_CATEGORY]: [{ id: skillId }],\n },\n },\n },\n ],\n });\n}\n\n/**\n * The skill's content, headed by the frontmatter the loader reads its machine id\n * out of. That id is also the directory name — `doctor` compares the two — so both\n * come from {@link exampleSkillId} rather than being spelled twice.\n */\nfunction skillMd(skillId: string): string {\n return `---\nname: ${skillId}\ndescription: A placeholder skill — replace it with one of your own\n---\n\n# Example Skill\n\nThis is where a skill's content goes: the conventions, patterns and rules you want\nevery sub-agent carrying it to follow.\n\nReplace this file and the \\`${STANDARD_FILES.METADATA_YAML}\\` beside it, and rename the\ndirectory to the id your skill should publish under.\n`;\n}\n\nfunction metadataYaml(marketplaceName: string): string {\n return [\n \"custom: true\",\n `domain: ${EXAMPLE_DOMAIN}`,\n `author: \"${authorHandle(marketplaceName)}\"`,\n \"displayName: Example Skill\",\n `category: ${EXAMPLE_CATEGORY}`,\n `slug: ${EXAMPLE_SLUG}`,\n 'cliDescription: \"A placeholder skill to replace with your own\"',\n 'usageGuidance: \"Use when you need a worked example of this marketplace\\'s skill shape\"',\n \"\",\n ].join(\"\\n\");\n}\n"],"mappings":"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","names":["path","path"]}
|
package/dist/commands/search.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
loadSource
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-RJ3JYZJ7.js";
|
|
5
|
+
import "../chunk-LX7UXZBN.js";
|
|
6
|
+
import "../chunk-CICB4AKA.js";
|
|
7
|
+
import "../chunk-C5P7RUDR.js";
|
|
8
8
|
import {
|
|
9
9
|
BaseCommand
|
|
10
|
-
} from "../chunk-
|
|
11
|
-
import "../chunk-
|
|
10
|
+
} from "../chunk-LJ6V54NR.js";
|
|
11
|
+
import "../chunk-IWUFZ6NR.js";
|
|
12
12
|
import "../chunk-4VVKVOOP.js";
|
|
13
13
|
import {
|
|
14
14
|
STATUS_MESSAGES,
|
|
15
15
|
truncateText
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-OUG6TCQ4.js";
|
|
17
17
|
import {
|
|
18
18
|
typedValues
|
|
19
|
-
} from "../chunk-
|
|
19
|
+
} from "../chunk-XX657S4U.js";
|
|
20
20
|
import "../chunk-5KB4I5J7.js";
|
|
21
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-OI2H6M5I.js";
|
|
22
22
|
|
|
23
23
|
// src/cli/commands/search.ts
|
|
24
24
|
import { Args } from "@oclif/core";
|
package/dist/commands/share.js
CHANGED
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
import {
|
|
3
3
|
publishSeedConfig,
|
|
4
4
|
seedPayloadForInstallation
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-
|
|
5
|
+
} from "../chunk-IJ7GWQUR.js";
|
|
6
|
+
import "../chunk-VH6P7UGF.js";
|
|
7
7
|
import {
|
|
8
8
|
BaseCommand,
|
|
9
9
|
EXIT_CODES
|
|
10
|
-
} from "../chunk-
|
|
11
|
-
import "../chunk-
|
|
10
|
+
} from "../chunk-LJ6V54NR.js";
|
|
11
|
+
import "../chunk-IWUFZ6NR.js";
|
|
12
12
|
import "../chunk-4VVKVOOP.js";
|
|
13
13
|
import {
|
|
14
14
|
formatZodErrors,
|
|
15
15
|
getErrorMessage,
|
|
16
16
|
seedPayloadSchema,
|
|
17
17
|
sharedConfigDestinations
|
|
18
|
-
} from "../chunk-
|
|
19
|
-
import "../chunk-
|
|
18
|
+
} from "../chunk-OUG6TCQ4.js";
|
|
19
|
+
import "../chunk-XX657S4U.js";
|
|
20
20
|
import "../chunk-5KB4I5J7.js";
|
|
21
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-OI2H6M5I.js";
|
|
22
22
|
|
|
23
23
|
// src/cli/commands/share.ts
|
|
24
24
|
import { Flags } from "@oclif/core";
|