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.
Files changed (116) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/{chunk-2Q65K6E3.js → chunk-5K33RJ7Z.js} +10 -10
  3. package/dist/{chunk-BQJVHD6Y.js → chunk-6CP3CLDE.js} +3 -8
  4. package/dist/chunk-6CP3CLDE.js.map +1 -0
  5. package/dist/{chunk-4VMLCWLD.js → chunk-7JQPIMKD.js} +2 -2
  6. package/dist/{chunk-5YOSLSQJ.js → chunk-C5P7RUDR.js} +3 -3
  7. package/dist/{chunk-G7TYOPON.js → chunk-CICB4AKA.js} +3 -3
  8. package/dist/{chunk-FBRLHNUT.js → chunk-CWQLRKWB.js} +3 -3
  9. package/dist/{chunk-JV4P7BL4.js → chunk-DEWI5HDF.js} +3 -3
  10. package/dist/{chunk-Z6G24ROK.js → chunk-EPBUWEW4.js} +4 -4
  11. package/dist/{chunk-IO2DPRDS.js → chunk-GWPKIXBM.js} +2 -2
  12. package/dist/{chunk-BNHD2GIB.js → chunk-IJ7GWQUR.js} +4 -4
  13. package/dist/{chunk-4RYWFQK7.js → chunk-IWUFZ6NR.js} +2 -2
  14. package/dist/{chunk-F35G42TF.js → chunk-J7Q5VYR7.js} +11 -11
  15. package/dist/{chunk-MPLWPWL4.js → chunk-JQDN7KAZ.js} +2 -2
  16. package/dist/{chunk-LSSGS2QS.js → chunk-K6MQV6SK.js} +3 -3
  17. package/dist/{chunk-YVQSDBTK.js → chunk-KCN5N3PB.js} +4 -4
  18. package/dist/{chunk-WVKGO3Y5.js → chunk-LJ6V54NR.js} +3 -3
  19. package/dist/{chunk-VCUXNKOY.js → chunk-LX7UXZBN.js} +5 -5
  20. package/dist/{chunk-VZRO7RYT.js → chunk-OI2H6M5I.js} +1 -103
  21. package/dist/chunk-OI2H6M5I.js.map +1 -0
  22. package/dist/{chunk-Z6KROWH4.js → chunk-OJR3ASZI.js} +5 -5
  23. package/dist/{chunk-V625APR6.js → chunk-OUG6TCQ4.js} +205 -335
  24. package/dist/chunk-OUG6TCQ4.js.map +1 -0
  25. package/dist/{chunk-62XKTOUI.js → chunk-PIUCYRLP.js} +5 -15
  26. package/dist/chunk-PIUCYRLP.js.map +1 -0
  27. package/dist/{chunk-WVBJRFFM.js → chunk-PWPKZNCV.js} +3 -3
  28. package/dist/{chunk-SKDTGHCD.js → chunk-Q2HB5SWU.js} +2 -2
  29. package/dist/{chunk-YAHTF4NO.js → chunk-RJ3JYZJ7.js} +8 -8
  30. package/dist/chunk-RJ3JYZJ7.js.map +1 -0
  31. package/dist/{chunk-LVA6XJGR.js → chunk-SLB2SFTX.js} +3 -27
  32. package/dist/chunk-SLB2SFTX.js.map +1 -0
  33. package/dist/{chunk-NS5COBTT.js → chunk-VH6P7UGF.js} +3 -3
  34. package/dist/{chunk-42PQKBVU.js → chunk-VI4X5DN5.js} +4 -4
  35. package/dist/{chunk-THLQS2AW.js → chunk-XDNGMXOZ.js} +4 -4
  36. package/dist/{chunk-GPZQCLZJ.js → chunk-XSULY25W.js} +5 -5
  37. package/dist/{chunk-7Z4N4JWQ.js → chunk-XX657S4U.js} +1 -103
  38. package/dist/chunk-XX657S4U.js.map +1 -0
  39. package/dist/commands/build/marketplace.js +6 -6
  40. package/dist/commands/build/plugins.js +6 -6
  41. package/dist/commands/compile.js +9 -9
  42. package/dist/commands/doctor.js +9 -9
  43. package/dist/commands/edit.js +28 -28
  44. package/dist/commands/eject.js +9 -9
  45. package/dist/commands/init.js +28 -28
  46. package/dist/commands/list.js +7 -7
  47. package/dist/commands/new/marketplace.js +6 -7
  48. package/dist/commands/new/marketplace.js.map +1 -1
  49. package/dist/commands/search.js +9 -9
  50. package/dist/commands/share.js +7 -7
  51. package/dist/commands/uninstall.js +9 -9
  52. package/dist/commands/update.js +5 -5
  53. package/dist/components/wizard/category-grid.js +2 -2
  54. package/dist/components/wizard/domain-selection.js +6 -6
  55. package/dist/components/wizard/run-wizard-session.js +19 -19
  56. package/dist/components/wizard/skill-agent-summary.js +5 -5
  57. package/dist/components/wizard/source-grid.js +2 -2
  58. package/dist/components/wizard/stack-selection.js +5 -5
  59. package/dist/components/wizard/step-agents.js +6 -6
  60. package/dist/components/wizard/step-build.js +6 -6
  61. package/dist/components/wizard/step-confirm.js +8 -8
  62. package/dist/components/wizard/step-sources.js +6 -6
  63. package/dist/components/wizard/step-stack.js +6 -6
  64. package/dist/components/wizard/summary-panel.js +7 -7
  65. package/dist/components/wizard/wizard-layout.js +8 -8
  66. package/dist/components/wizard/wizard.js +18 -18
  67. package/dist/config-exports.js +1 -1
  68. package/dist/hooks/init.js +28 -28
  69. package/dist/load-agent-defs-KWHG7P7G.js +13 -0
  70. package/dist/recompile-project-agents-5FTDDHX7.js +17 -0
  71. package/dist/{source-loader-CC6ZWKTI.js → source-loader-CDYH2NIM.js} +4 -4
  72. package/dist/src/agents/_templates/methodologies/anti-over-engineering.liquid +14 -0
  73. package/dist/src/agents/_templates/methodologies/context-management.liquid +7 -154
  74. package/dist/src/agents/_templates/methodologies/investigation-requirements.liquid +12 -0
  75. package/dist/src/agents/_templates/methodologies/success-criteria.liquid +10 -0
  76. package/dist/stores/wizard-store.js +4 -4
  77. package/package.json +1 -1
  78. package/src/agents/_templates/methodologies/anti-over-engineering.liquid +14 -0
  79. package/src/agents/_templates/methodologies/context-management.liquid +7 -154
  80. package/src/agents/_templates/methodologies/investigation-requirements.liquid +12 -0
  81. package/src/agents/_templates/methodologies/success-criteria.liquid +10 -0
  82. package/dist/chunk-62XKTOUI.js.map +0 -1
  83. package/dist/chunk-7Z4N4JWQ.js.map +0 -1
  84. package/dist/chunk-BQJVHD6Y.js.map +0 -1
  85. package/dist/chunk-LVA6XJGR.js.map +0 -1
  86. package/dist/chunk-V625APR6.js.map +0 -1
  87. package/dist/chunk-VZRO7RYT.js.map +0 -1
  88. package/dist/chunk-YAHTF4NO.js.map +0 -1
  89. package/dist/load-agent-defs-2H42B2OO.js +0 -13
  90. package/dist/recompile-project-agents-QIAMBCM4.js +0 -17
  91. /package/dist/{chunk-2Q65K6E3.js.map → chunk-5K33RJ7Z.js.map} +0 -0
  92. /package/dist/{chunk-4VMLCWLD.js.map → chunk-7JQPIMKD.js.map} +0 -0
  93. /package/dist/{chunk-5YOSLSQJ.js.map → chunk-C5P7RUDR.js.map} +0 -0
  94. /package/dist/{chunk-G7TYOPON.js.map → chunk-CICB4AKA.js.map} +0 -0
  95. /package/dist/{chunk-FBRLHNUT.js.map → chunk-CWQLRKWB.js.map} +0 -0
  96. /package/dist/{chunk-JV4P7BL4.js.map → chunk-DEWI5HDF.js.map} +0 -0
  97. /package/dist/{chunk-Z6G24ROK.js.map → chunk-EPBUWEW4.js.map} +0 -0
  98. /package/dist/{chunk-IO2DPRDS.js.map → chunk-GWPKIXBM.js.map} +0 -0
  99. /package/dist/{chunk-BNHD2GIB.js.map → chunk-IJ7GWQUR.js.map} +0 -0
  100. /package/dist/{chunk-4RYWFQK7.js.map → chunk-IWUFZ6NR.js.map} +0 -0
  101. /package/dist/{chunk-F35G42TF.js.map → chunk-J7Q5VYR7.js.map} +0 -0
  102. /package/dist/{chunk-MPLWPWL4.js.map → chunk-JQDN7KAZ.js.map} +0 -0
  103. /package/dist/{chunk-LSSGS2QS.js.map → chunk-K6MQV6SK.js.map} +0 -0
  104. /package/dist/{chunk-YVQSDBTK.js.map → chunk-KCN5N3PB.js.map} +0 -0
  105. /package/dist/{chunk-WVKGO3Y5.js.map → chunk-LJ6V54NR.js.map} +0 -0
  106. /package/dist/{chunk-VCUXNKOY.js.map → chunk-LX7UXZBN.js.map} +0 -0
  107. /package/dist/{chunk-Z6KROWH4.js.map → chunk-OJR3ASZI.js.map} +0 -0
  108. /package/dist/{chunk-WVBJRFFM.js.map → chunk-PWPKZNCV.js.map} +0 -0
  109. /package/dist/{chunk-SKDTGHCD.js.map → chunk-Q2HB5SWU.js.map} +0 -0
  110. /package/dist/{chunk-NS5COBTT.js.map → chunk-VH6P7UGF.js.map} +0 -0
  111. /package/dist/{chunk-42PQKBVU.js.map → chunk-VI4X5DN5.js.map} +0 -0
  112. /package/dist/{chunk-THLQS2AW.js.map → chunk-XDNGMXOZ.js.map} +0 -0
  113. /package/dist/{chunk-GPZQCLZJ.js.map → chunk-XSULY25W.js.map} +0 -0
  114. /package/dist/{load-agent-defs-2H42B2OO.js.map → load-agent-defs-KWHG7P7G.js.map} +0 -0
  115. /package/dist/{recompile-project-agents-QIAMBCM4.js.map → recompile-project-agents-5FTDDHX7.js.map} +0 -0
  116. /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-4VMLCWLD.js";
8
+ } from "../../chunk-7JQPIMKD.js";
9
9
  import {
10
10
  BaseCommand,
11
11
  EXIT_CODES
12
- } from "../../chunk-WVKGO3Y5.js";
13
- import "../../chunk-4RYWFQK7.js";
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-V625APR6.js";
27
- import "../../chunk-7Z4N4JWQ.js";
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-VZRO7RYT.js";
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-5YOSLSQJ.js";
5
+ } from "../../chunk-C5P7RUDR.js";
6
6
  import {
7
7
  BaseCommand
8
- } from "../../chunk-WVKGO3Y5.js";
9
- import "../../chunk-4RYWFQK7.js";
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-V625APR6.js";
20
- import "../../chunk-7Z4N4JWQ.js";
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-VZRO7RYT.js";
25
+ import "../../chunk-OI2H6M5I.js";
26
26
 
27
27
  // src/cli/commands/build/plugins.ts
28
28
  import { Flags } from "@oclif/core";
@@ -2,20 +2,20 @@
2
2
  import {
3
3
  detectBothInstallations,
4
4
  reconcileTypesFromDisk
5
- } from "../chunk-YAHTF4NO.js";
5
+ } from "../chunk-RJ3JYZJ7.js";
6
6
  import {
7
7
  compileAgents,
8
8
  discoverInstalledSkills
9
- } from "../chunk-VCUXNKOY.js";
9
+ } from "../chunk-LX7UXZBN.js";
10
10
  import {
11
11
  loadAgentDefs
12
- } from "../chunk-G7TYOPON.js";
13
- import "../chunk-5YOSLSQJ.js";
12
+ } from "../chunk-CICB4AKA.js";
13
+ import "../chunk-C5P7RUDR.js";
14
14
  import {
15
15
  BaseCommand,
16
16
  EXIT_CODES
17
- } from "../chunk-WVKGO3Y5.js";
18
- import "../chunk-4RYWFQK7.js";
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-V625APR6.js";
44
- import "../chunk-7Z4N4JWQ.js";
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-VZRO7RYT.js";
48
+ import "../chunk-OI2H6M5I.js";
49
49
 
50
50
  // src/cli/commands/compile.ts
51
51
  import { Flags } from "@oclif/core";
@@ -2,19 +2,19 @@
2
2
  import {
3
3
  detectProject,
4
4
  loadSource
5
- } from "../chunk-YAHTF4NO.js";
6
- import "../chunk-VCUXNKOY.js";
7
- import "../chunk-G7TYOPON.js";
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-5YOSLSQJ.js";
12
+ } from "../chunk-C5P7RUDR.js";
13
13
  import {
14
14
  BaseCommand,
15
15
  EXIT_CODES
16
- } from "../chunk-WVKGO3Y5.js";
17
- import "../chunk-4RYWFQK7.js";
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-V625APR6.js";
70
+ } from "../chunk-OUG6TCQ4.js";
71
71
  import {
72
72
  matrix
73
- } from "../chunk-7Z4N4JWQ.js";
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-VZRO7RYT.js";
90
+ import "../chunk-OI2H6M5I.js";
91
91
 
92
92
  // src/cli/commands/doctor.ts
93
93
  import os2 from "os";
@@ -3,7 +3,7 @@ import {
3
3
  publishSeedConfig,
4
4
  seedPayloadForInstallation,
5
5
  skillsAuthoredHere
6
- } from "../chunk-BNHD2GIB.js";
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-YVQSDBTK.js";
14
+ } from "../chunk-KCN5N3PB.js";
15
15
  import {
16
16
  runWizardSession
17
- } from "../chunk-THLQS2AW.js";
18
- import "../chunk-F35G42TF.js";
19
- import "../chunk-MPLWPWL4.js";
20
- import "../chunk-LSSGS2QS.js";
21
- import "../chunk-IO2DPRDS.js";
22
- import "../chunk-Z6G24ROK.js";
23
- import "../chunk-42PQKBVU.js";
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-GPZQCLZJ.js";
27
- import "../chunk-SKDTGHCD.js";
26
+ import "../chunk-XSULY25W.js";
27
+ import "../chunk-Q2HB5SWU.js";
28
28
  import "../chunk-X5PLVOJS.js";
29
- import "../chunk-JV4P7BL4.js";
30
- import "../chunk-Z6KROWH4.js";
31
- import "../chunk-FBRLHNUT.js";
32
- import "../chunk-62XKTOUI.js";
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-BQJVHD6Y.js";
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-NS5COBTT.js";
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-YAHTF4NO.js";
60
+ } from "../chunk-RJ3JYZJ7.js";
61
61
  import {
62
62
  copyLocalSkills,
63
63
  discoverInstalledSkills,
64
64
  removeCompiledAgents,
65
65
  uninstallPluginSkills
66
- } from "../chunk-VCUXNKOY.js";
66
+ } from "../chunk-LX7UXZBN.js";
67
67
  import {
68
68
  loadAgentDefs
69
- } from "../chunk-G7TYOPON.js";
70
- import "../chunk-5YOSLSQJ.js";
71
- import "../chunk-WVBJRFFM.js";
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-LVA6XJGR.js";
78
+ } from "../chunk-SLB2SFTX.js";
79
79
  import {
80
80
  BaseCommand,
81
81
  EXIT_CODES
82
- } from "../chunk-WVKGO3Y5.js";
83
- import "../chunk-4RYWFQK7.js";
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-V625APR6.js";
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-7Z4N4JWQ.js";
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-VZRO7RYT.js";
139
+ import "../chunk-OI2H6M5I.js";
140
140
 
141
141
  // src/cli/commands/edit.tsx
142
142
  import os from "os";
@@ -5,15 +5,15 @@ import {
5
5
  loadSource,
6
6
  mutateGlobal,
7
7
  writeProjectPartial
8
- } from "../chunk-YAHTF4NO.js";
9
- import "../chunk-VCUXNKOY.js";
10
- import "../chunk-G7TYOPON.js";
11
- import "../chunk-5YOSLSQJ.js";
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-WVKGO3Y5.js";
16
- import "../chunk-4RYWFQK7.js";
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-V625APR6.js";
32
+ } from "../chunk-OUG6TCQ4.js";
33
33
  import {
34
34
  matrix,
35
35
  typedKeys
36
- } from "../chunk-7Z4N4JWQ.js";
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-VZRO7RYT.js";
44
+ import "../chunk-OI2H6M5I.js";
45
45
 
46
46
  // src/cli/commands/eject.ts
47
47
  import { Args, Flags } from "@oclif/core";
@@ -7,50 +7,50 @@ import {
7
7
  getDashboardData,
8
8
  runDashboardFlow,
9
9
  showDashboard
10
- } from "../chunk-2Q65K6E3.js";
10
+ } from "../chunk-5K33RJ7Z.js";
11
11
  import "../chunk-OJIQOVWB.js";
12
- import "../chunk-YVQSDBTK.js";
13
- import "../chunk-THLQS2AW.js";
14
- import "../chunk-F35G42TF.js";
15
- import "../chunk-MPLWPWL4.js";
16
- import "../chunk-LSSGS2QS.js";
17
- import "../chunk-IO2DPRDS.js";
18
- import "../chunk-Z6G24ROK.js";
19
- import "../chunk-42PQKBVU.js";
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-GPZQCLZJ.js";
23
- import "../chunk-SKDTGHCD.js";
22
+ import "../chunk-XSULY25W.js";
23
+ import "../chunk-Q2HB5SWU.js";
24
24
  import "../chunk-X5PLVOJS.js";
25
- import "../chunk-JV4P7BL4.js";
26
- import "../chunk-Z6KROWH4.js";
27
- import "../chunk-FBRLHNUT.js";
28
- import "../chunk-62XKTOUI.js";
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-BQJVHD6Y.js";
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-NS5COBTT.js";
38
+ import "../chunk-VH6P7UGF.js";
39
39
  import "../chunk-JCPANDNR.js";
40
- import "../chunk-YAHTF4NO.js";
41
- import "../chunk-VCUXNKOY.js";
42
- import "../chunk-G7TYOPON.js";
43
- import "../chunk-5YOSLSQJ.js";
44
- import "../chunk-WVBJRFFM.js";
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-LVA6XJGR.js";
47
- import "../chunk-WVKGO3Y5.js";
48
- import "../chunk-4RYWFQK7.js";
46
+ import "../chunk-SLB2SFTX.js";
47
+ import "../chunk-LJ6V54NR.js";
48
+ import "../chunk-IWUFZ6NR.js";
49
49
  import "../chunk-4VVKVOOP.js";
50
- import "../chunk-V625APR6.js";
51
- import "../chunk-7Z4N4JWQ.js";
50
+ import "../chunk-OUG6TCQ4.js";
51
+ import "../chunk-XX657S4U.js";
52
52
  import "../chunk-5KB4I5J7.js";
53
- import "../chunk-VZRO7RYT.js";
53
+ import "../chunk-OI2H6M5I.js";
54
54
  export {
55
55
  Dashboard,
56
56
  dashboardCountLines,
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  SkillAgentSummary
4
- } from "../chunk-WVBJRFFM.js";
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-LVA6XJGR.js";
10
+ } from "../chunk-SLB2SFTX.js";
11
11
  import {
12
12
  BaseCommand
13
- } from "../chunk-WVKGO3Y5.js";
14
- import "../chunk-4RYWFQK7.js";
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-V625APR6.js";
23
- import "../chunk-7Z4N4JWQ.js";
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-VZRO7RYT.js";
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-4VMLCWLD.js";
4
+ } from "../../chunk-7JQPIMKD.js";
5
5
  import {
6
6
  BaseCommand,
7
7
  EXIT_CODES
8
- } from "../../chunk-WVKGO3Y5.js";
9
- import "../../chunk-4RYWFQK7.js";
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-V625APR6.js";
16
- import "../../chunk-7Z4N4JWQ.js";
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-VZRO7RYT.js";
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"]}
@@ -1,24 +1,24 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  loadSource
4
- } from "../chunk-YAHTF4NO.js";
5
- import "../chunk-VCUXNKOY.js";
6
- import "../chunk-G7TYOPON.js";
7
- import "../chunk-5YOSLSQJ.js";
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-WVKGO3Y5.js";
11
- import "../chunk-4RYWFQK7.js";
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-V625APR6.js";
16
+ } from "../chunk-OUG6TCQ4.js";
17
17
  import {
18
18
  typedValues
19
- } from "../chunk-7Z4N4JWQ.js";
19
+ } from "../chunk-XX657S4U.js";
20
20
  import "../chunk-5KB4I5J7.js";
21
- import "../chunk-VZRO7RYT.js";
21
+ import "../chunk-OI2H6M5I.js";
22
22
 
23
23
  // src/cli/commands/search.ts
24
24
  import { Args } from "@oclif/core";
@@ -2,23 +2,23 @@
2
2
  import {
3
3
  publishSeedConfig,
4
4
  seedPayloadForInstallation
5
- } from "../chunk-BNHD2GIB.js";
6
- import "../chunk-NS5COBTT.js";
5
+ } from "../chunk-IJ7GWQUR.js";
6
+ import "../chunk-VH6P7UGF.js";
7
7
  import {
8
8
  BaseCommand,
9
9
  EXIT_CODES
10
- } from "../chunk-WVKGO3Y5.js";
11
- import "../chunk-4RYWFQK7.js";
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-V625APR6.js";
19
- import "../chunk-7Z4N4JWQ.js";
18
+ } from "../chunk-OUG6TCQ4.js";
19
+ import "../chunk-XX657S4U.js";
20
20
  import "../chunk-5KB4I5J7.js";
21
- import "../chunk-VZRO7RYT.js";
21
+ import "../chunk-OI2H6M5I.js";
22
22
 
23
23
  // src/cli/commands/share.ts
24
24
  import { Flags } from "@oclif/core";