@agents-inc/cli 0.74.12 → 0.75.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/{chunk-6W4H2K3Z.js → chunk-5BGBH3KD.js} +34 -20
  3. package/dist/chunk-5BGBH3KD.js.map +1 -0
  4. package/dist/{chunk-4CRWKTNQ.js → chunk-6C66NL4X.js} +2 -8
  5. package/dist/chunk-6C66NL4X.js.map +1 -0
  6. package/dist/{chunk-JBQRRJRY.js → chunk-7QAVO7VN.js} +43 -14
  7. package/dist/{chunk-JBQRRJRY.js.map → chunk-7QAVO7VN.js.map} +1 -1
  8. package/dist/{chunk-HT5KOOUQ.js → chunk-AOZBHMYL.js} +1 -2
  9. package/dist/chunk-AOZBHMYL.js.map +1 -0
  10. package/dist/{chunk-EWGFIBBU.js → chunk-BVSWWBPE.js} +4 -4
  11. package/dist/{chunk-62FBXUNR.js → chunk-CBXMOWQY.js} +2 -2
  12. package/dist/{chunk-NO2XIAJC.js → chunk-CUCF5LM4.js} +5 -5
  13. package/dist/{chunk-6RGNXTTG.js → chunk-DFKNFZI2.js} +16 -23
  14. package/dist/chunk-DFKNFZI2.js.map +1 -0
  15. package/dist/{chunk-MZQKSK3J.js → chunk-FHHTDPMW.js} +20 -11
  16. package/dist/{chunk-MZQKSK3J.js.map → chunk-FHHTDPMW.js.map} +1 -1
  17. package/dist/{chunk-DZUZVT5X.js → chunk-FYYIRFYT.js} +4 -4
  18. package/dist/{chunk-2YFC7IJ6.js → chunk-GCT7LSYW.js} +3 -3
  19. package/dist/{chunk-YUSLPHXO.js → chunk-GMUOEQOY.js} +5 -5
  20. package/dist/{chunk-NG2GGK6P.js → chunk-HKIQA4F6.js} +3813 -2751
  21. package/dist/chunk-HKIQA4F6.js.map +1 -0
  22. package/dist/{chunk-ZU7AOE3X.js → chunk-JGSPESM3.js} +2 -6
  23. package/dist/chunk-JGSPESM3.js.map +1 -0
  24. package/dist/{chunk-7M4INWUR.js → chunk-JNQKCZA3.js} +4 -7
  25. package/dist/chunk-JNQKCZA3.js.map +1 -0
  26. package/dist/{chunk-PJUC2WCA.js → chunk-JOTAIMTC.js} +27 -11
  27. package/dist/chunk-JOTAIMTC.js.map +1 -0
  28. package/dist/{chunk-IJLAVOKZ.js → chunk-KDYE3AGL.js} +2 -2
  29. package/dist/{chunk-NKKYTCBH.js → chunk-PSU42CXK.js} +609 -118
  30. package/dist/chunk-PSU42CXK.js.map +1 -0
  31. package/dist/{chunk-AKW425U6.js → chunk-Q3F36QZZ.js} +2 -2
  32. package/dist/{chunk-BM5Y6LIC.js → chunk-Q72ZBA4X.js} +2 -2
  33. package/dist/{chunk-DG2T7KYG.js → chunk-QN3V3ES7.js} +6 -6
  34. package/dist/{chunk-I7WXUAWA.js → chunk-SPATQKH6.js} +3 -3
  35. package/dist/{chunk-SRIH4U5Y.js → chunk-SYGXJBG6.js} +14 -3
  36. package/dist/chunk-SYGXJBG6.js.map +1 -0
  37. package/dist/{chunk-IJNNVCS4.js → chunk-TYM4D3OF.js} +2 -2
  38. package/dist/{chunk-ARGCINJC.js → chunk-U5R4M7MA.js} +6 -8
  39. package/dist/chunk-U5R4M7MA.js.map +1 -0
  40. package/dist/{chunk-LVNNP7T4.js → chunk-U6A4YFOF.js} +3 -3
  41. package/dist/{chunk-ICJV3JJF.js → chunk-UQKCYLOA.js} +26 -67
  42. package/dist/chunk-UQKCYLOA.js.map +1 -0
  43. package/dist/{chunk-HGTC76BX.js → chunk-V36FRPAU.js} +4 -2
  44. package/dist/chunk-V36FRPAU.js.map +1 -0
  45. package/dist/{chunk-NPMGVQM4.js → chunk-VU4ZCRZS.js} +5 -5
  46. package/dist/{chunk-TDHEAHXD.js → chunk-W22IYRZV.js} +3 -3
  47. package/dist/chunk-W22IYRZV.js.map +1 -0
  48. package/dist/{chunk-GJWHA6P4.js → chunk-WXC2Y5TF.js} +23 -17
  49. package/dist/chunk-WXC2Y5TF.js.map +1 -0
  50. package/dist/{chunk-RRBWNEG3.js → chunk-XHTN56UT.js} +2 -2
  51. package/dist/{chunk-W6NWOYMS.js → chunk-XZ57QYVI.js} +3 -3
  52. package/dist/{chunk-2DKJM7RO.js → chunk-ZZJ6H6VB.js} +23 -8
  53. package/dist/chunk-ZZJ6H6VB.js.map +1 -0
  54. package/dist/commands/build/marketplace.js +4 -4
  55. package/dist/commands/build/plugins.js +8 -8
  56. package/dist/commands/build/stack.js +8 -8
  57. package/dist/commands/compile.js +8 -8
  58. package/dist/commands/config/index.js +8 -8
  59. package/dist/commands/config/path.js +7 -7
  60. package/dist/commands/config/show.js +8 -8
  61. package/dist/commands/diff.js +7 -7
  62. package/dist/commands/doctor.js +7 -7
  63. package/dist/commands/edit.js +25 -25
  64. package/dist/commands/eject.js +7 -7
  65. package/dist/commands/import/skill.js +7 -7
  66. package/dist/commands/info.js +7 -15
  67. package/dist/commands/info.js.map +1 -1
  68. package/dist/commands/init.js +25 -25
  69. package/dist/commands/list.js +7 -7
  70. package/dist/commands/new/agent.js +8 -8
  71. package/dist/commands/new/marketplace.js +9 -9
  72. package/dist/commands/new/skill.js +8 -8
  73. package/dist/commands/outdated.js +7 -7
  74. package/dist/commands/search.js +11 -12
  75. package/dist/commands/search.js.map +1 -1
  76. package/dist/commands/uninstall.js +7 -7
  77. package/dist/commands/update.js +8 -8
  78. package/dist/commands/validate.js +7 -7
  79. package/dist/components/skill-search/skill-search.js +1 -1
  80. package/dist/components/wizard/category-grid.js +2 -2
  81. package/dist/components/wizard/category-grid.test.js +16 -17
  82. package/dist/components/wizard/category-grid.test.js.map +1 -1
  83. package/dist/components/wizard/checkbox-grid.js +2 -2
  84. package/dist/components/wizard/checkbox-grid.test.js +2 -2
  85. package/dist/components/wizard/domain-selection.js +11 -11
  86. package/dist/components/wizard/source-grid.js +2 -2
  87. package/dist/components/wizard/source-grid.test.js +11 -11
  88. package/dist/components/wizard/stack-selection.js +8 -8
  89. package/dist/components/wizard/step-agents.js +10 -10
  90. package/dist/components/wizard/step-agents.test.js +14 -14
  91. package/dist/components/wizard/step-agents.test.js.map +1 -1
  92. package/dist/components/wizard/step-build.js +11 -11
  93. package/dist/components/wizard/step-build.test.js +13 -13
  94. package/dist/components/wizard/step-confirm.js +5 -5
  95. package/dist/components/wizard/step-confirm.test.js +11 -11
  96. package/dist/components/wizard/step-refine.js +2 -2
  97. package/dist/components/wizard/step-refine.test.js +2 -2
  98. package/dist/components/wizard/step-settings.js +8 -8
  99. package/dist/components/wizard/step-settings.test.js +11 -11
  100. package/dist/components/wizard/step-sources.js +11 -11
  101. package/dist/components/wizard/step-sources.test.js +24 -168
  102. package/dist/components/wizard/step-sources.test.js.map +1 -1
  103. package/dist/components/wizard/step-stack.js +13 -13
  104. package/dist/components/wizard/step-stack.test.js +14 -14
  105. package/dist/components/wizard/view-title.js +1 -2
  106. package/dist/components/wizard/wizard-layout.js +9 -9
  107. package/dist/components/wizard/wizard.js +23 -23
  108. package/dist/config-exports.js +1 -1
  109. package/dist/hooks/init.js +25 -25
  110. package/dist/{loader-NHUCFMFQ.js → loader-TK7YS2I5.js} +4 -4
  111. package/dist/plugins/dummy-skill/.claude-plugin/.content-hash +1 -0
  112. package/dist/plugins/dummy-skill/.claude-plugin/plugin.json +13 -0
  113. package/dist/{source-loader-42GVUFZA.js → source-loader-UQXJVVSO.js} +7 -7
  114. package/dist/source-manager-HS2ZT4XE.js +19 -0
  115. package/dist/stores/wizard-store.js +7 -7
  116. package/dist/stores/wizard-store.test.js +10 -10
  117. package/package.json +1 -1
  118. package/src/schemas/custom-metadata.schema.json +0 -7
  119. package/src/schemas/metadata.schema.json +0 -7
  120. package/dist/chunk-2DKJM7RO.js.map +0 -1
  121. package/dist/chunk-4CRWKTNQ.js.map +0 -1
  122. package/dist/chunk-6RGNXTTG.js.map +0 -1
  123. package/dist/chunk-6W4H2K3Z.js.map +0 -1
  124. package/dist/chunk-7M4INWUR.js.map +0 -1
  125. package/dist/chunk-ARGCINJC.js.map +0 -1
  126. package/dist/chunk-GJWHA6P4.js.map +0 -1
  127. package/dist/chunk-HGTC76BX.js.map +0 -1
  128. package/dist/chunk-HT5KOOUQ.js.map +0 -1
  129. package/dist/chunk-ICJV3JJF.js.map +0 -1
  130. package/dist/chunk-NG2GGK6P.js.map +0 -1
  131. package/dist/chunk-NKKYTCBH.js.map +0 -1
  132. package/dist/chunk-PJUC2WCA.js.map +0 -1
  133. package/dist/chunk-SRIH4U5Y.js.map +0 -1
  134. package/dist/chunk-TDHEAHXD.js.map +0 -1
  135. package/dist/chunk-ZU7AOE3X.js.map +0 -1
  136. package/dist/source-manager-WRZBOTEH.js +0 -19
  137. /package/dist/{chunk-EWGFIBBU.js.map → chunk-BVSWWBPE.js.map} +0 -0
  138. /package/dist/{chunk-62FBXUNR.js.map → chunk-CBXMOWQY.js.map} +0 -0
  139. /package/dist/{chunk-NO2XIAJC.js.map → chunk-CUCF5LM4.js.map} +0 -0
  140. /package/dist/{chunk-DZUZVT5X.js.map → chunk-FYYIRFYT.js.map} +0 -0
  141. /package/dist/{chunk-2YFC7IJ6.js.map → chunk-GCT7LSYW.js.map} +0 -0
  142. /package/dist/{chunk-YUSLPHXO.js.map → chunk-GMUOEQOY.js.map} +0 -0
  143. /package/dist/{chunk-IJLAVOKZ.js.map → chunk-KDYE3AGL.js.map} +0 -0
  144. /package/dist/{chunk-AKW425U6.js.map → chunk-Q3F36QZZ.js.map} +0 -0
  145. /package/dist/{chunk-BM5Y6LIC.js.map → chunk-Q72ZBA4X.js.map} +0 -0
  146. /package/dist/{chunk-DG2T7KYG.js.map → chunk-QN3V3ES7.js.map} +0 -0
  147. /package/dist/{chunk-I7WXUAWA.js.map → chunk-SPATQKH6.js.map} +0 -0
  148. /package/dist/{chunk-IJNNVCS4.js.map → chunk-TYM4D3OF.js.map} +0 -0
  149. /package/dist/{chunk-LVNNP7T4.js.map → chunk-U6A4YFOF.js.map} +0 -0
  150. /package/dist/{chunk-NPMGVQM4.js.map → chunk-VU4ZCRZS.js.map} +0 -0
  151. /package/dist/{chunk-RRBWNEG3.js.map → chunk-XHTN56UT.js.map} +0 -0
  152. /package/dist/{chunk-W6NWOYMS.js.map → chunk-XZ57QYVI.js.map} +0 -0
  153. /package/dist/{loader-NHUCFMFQ.js.map → loader-TK7YS2I5.js.map} +0 -0
  154. /package/dist/{source-loader-42GVUFZA.js.map → source-loader-UQXJVVSO.js.map} +0 -0
  155. /package/dist/{source-manager-WRZBOTEH.js.map → source-manager-HS2ZT4XE.js.map} +0 -0
@@ -1,41 +1,41 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  Wizard
4
- } from "../chunk-JBQRRJRY.js";
5
- import "../chunk-2DKJM7RO.js";
4
+ } from "../chunk-7QAVO7VN.js";
5
+ import "../chunk-ZZJ6H6VB.js";
6
6
  import "../chunk-SXGBPQY6.js";
7
- import "../chunk-DZUZVT5X.js";
8
- import "../chunk-6RGNXTTG.js";
9
- import "../chunk-HGTC76BX.js";
10
- import "../chunk-YUSLPHXO.js";
11
- import "../chunk-2YFC7IJ6.js";
12
- import "../chunk-MZQKSK3J.js";
13
- import "../chunk-GJWHA6P4.js";
7
+ import "../chunk-FYYIRFYT.js";
8
+ import "../chunk-DFKNFZI2.js";
9
+ import "../chunk-V36FRPAU.js";
10
+ import "../chunk-GMUOEQOY.js";
11
+ import "../chunk-GCT7LSYW.js";
12
+ import "../chunk-FHHTDPMW.js";
13
+ import "../chunk-WXC2Y5TF.js";
14
14
  import "../chunk-K77I4XGL.js";
15
- import "../chunk-I7WXUAWA.js";
15
+ import "../chunk-SPATQKH6.js";
16
16
  import "../chunk-MWGDG4QN.js";
17
- import "../chunk-TDHEAHXD.js";
17
+ import "../chunk-W22IYRZV.js";
18
18
  import "../chunk-7SOPVGDV.js";
19
19
  import "../chunk-UFKDY45I.js";
20
- import "../chunk-PJUC2WCA.js";
20
+ import "../chunk-JOTAIMTC.js";
21
21
  import "../chunk-P2FHS5IS.js";
22
- import "../chunk-NO2XIAJC.js";
23
- import "../chunk-LVNNP7T4.js";
24
- import "../chunk-62FBXUNR.js";
22
+ import "../chunk-CUCF5LM4.js";
23
+ import "../chunk-U6A4YFOF.js";
24
+ import "../chunk-CBXMOWQY.js";
25
25
  import "../chunk-XMLCXRTS.js";
26
- import "../chunk-7M4INWUR.js";
26
+ import "../chunk-JNQKCZA3.js";
27
27
  import "../chunk-AUNBGZS4.js";
28
28
  import "../chunk-2PZ7LBFT.js";
29
29
  import "../chunk-WF5PMBIR.js";
30
30
  import "../chunk-KUV24B5M.js";
31
- import "../chunk-EWGFIBBU.js";
31
+ import "../chunk-BVSWWBPE.js";
32
32
  import "../chunk-T5DJCIUP.js";
33
33
  import "../chunk-U3IGFMCY.js";
34
34
  import "../chunk-CBYRFAUN.js";
35
35
  import {
36
36
  getAgentDefinitions,
37
37
  recompileAgents
38
- } from "../chunk-NPMGVQM4.js";
38
+ } from "../chunk-VU4ZCRZS.js";
39
39
  import {
40
40
  ERROR_MESSAGES,
41
41
  INFO_MESSAGES,
@@ -58,26 +58,26 @@ import {
58
58
  loadSkillsMatrixFromSource,
59
59
  migrateLocalSkillScope,
60
60
  writeScopedConfigs
61
- } from "../chunk-6W4H2K3Z.js";
61
+ } from "../chunk-5BGBH3KD.js";
62
62
  import {
63
63
  loadAllAgents
64
- } from "../chunk-RRBWNEG3.js";
64
+ } from "../chunk-XHTN56UT.js";
65
65
  import {
66
66
  getSkillById,
67
67
  matrix
68
- } from "../chunk-NG2GGK6P.js";
68
+ } from "../chunk-HKIQA4F6.js";
69
69
  import {
70
70
  BaseCommand,
71
71
  EXIT_CODES
72
- } from "../chunk-IJLAVOKZ.js";
72
+ } from "../chunk-KDYE3AGL.js";
73
73
  import {
74
74
  disableBuffering,
75
75
  drainBuffer,
76
76
  enableBuffering,
77
77
  getErrorMessage,
78
78
  pushBufferMessage
79
- } from "../chunk-4CRWKTNQ.js";
80
- import "../chunk-SRIH4U5Y.js";
79
+ } from "../chunk-6C66NL4X.js";
80
+ import "../chunk-SYGXJBG6.js";
81
81
  import {
82
82
  CLAUDE_DIR,
83
83
  CLAUDE_SRC_DIR,
@@ -87,7 +87,7 @@ import {
87
87
  SOURCE_DISPLAY_NAMES,
88
88
  STANDARD_FILES
89
89
  } from "../chunk-EGMQ3SXN.js";
90
- import "../chunk-NKKYTCBH.js";
90
+ import "../chunk-PSU42CXK.js";
91
91
  import {
92
92
  init_esm_shims
93
93
  } from "../chunk-DHET7RCE.js";
@@ -5,16 +5,16 @@ import {
5
5
  loadSkillsMatrixFromSource,
6
6
  resolveSource,
7
7
  saveSourceToProjectConfig
8
- } from "../chunk-6W4H2K3Z.js";
9
- import "../chunk-RRBWNEG3.js";
8
+ } from "../chunk-5BGBH3KD.js";
9
+ import "../chunk-XHTN56UT.js";
10
10
  import {
11
11
  matrix,
12
12
  typedKeys
13
- } from "../chunk-NG2GGK6P.js";
13
+ } from "../chunk-HKIQA4F6.js";
14
14
  import {
15
15
  BaseCommand,
16
16
  EXIT_CODES
17
- } from "../chunk-IJLAVOKZ.js";
17
+ } from "../chunk-KDYE3AGL.js";
18
18
  import {
19
19
  copy,
20
20
  directoryExists,
@@ -22,8 +22,8 @@ import {
22
22
  fileExists,
23
23
  listDirectories,
24
24
  writeFile
25
- } from "../chunk-4CRWKTNQ.js";
26
- import "../chunk-SRIH4U5Y.js";
25
+ } from "../chunk-6C66NL4X.js";
26
+ import "../chunk-SYGXJBG6.js";
27
27
  import {
28
28
  CLAUDE_SRC_DIR,
29
29
  DEFAULT_BRANDING,
@@ -32,7 +32,7 @@ import {
32
32
  PROJECT_ROOT,
33
33
  STANDARD_FILES
34
34
  } from "../chunk-EGMQ3SXN.js";
35
- import "../chunk-NKKYTCBH.js";
35
+ import "../chunk-PSU42CXK.js";
36
36
  import {
37
37
  init_esm_shims
38
38
  } from "../chunk-DHET7RCE.js";
@@ -8,13 +8,13 @@ import {
8
8
  computeFileHash,
9
9
  fetchFromSource,
10
10
  getCurrentDate
11
- } from "../../chunk-6W4H2K3Z.js";
12
- import "../../chunk-RRBWNEG3.js";
13
- import "../../chunk-NG2GGK6P.js";
11
+ } from "../../chunk-5BGBH3KD.js";
12
+ import "../../chunk-XHTN56UT.js";
13
+ import "../../chunk-HKIQA4F6.js";
14
14
  import {
15
15
  BaseCommand,
16
16
  EXIT_CODES
17
- } from "../../chunk-IJLAVOKZ.js";
17
+ } from "../../chunk-KDYE3AGL.js";
18
18
  import {
19
19
  copy,
20
20
  directoryExists,
@@ -25,8 +25,8 @@ import {
25
25
  listDirectories,
26
26
  readFile,
27
27
  writeFile
28
- } from "../../chunk-4CRWKTNQ.js";
29
- import "../../chunk-SRIH4U5Y.js";
28
+ } from "../../chunk-6C66NL4X.js";
29
+ import "../../chunk-SYGXJBG6.js";
30
30
  import {
31
31
  DEFAULT_SKILLS_SUBDIR,
32
32
  GITHUB_SOURCE,
@@ -34,7 +34,7 @@ import {
34
34
  STANDARD_FILES,
35
35
  YAML_FORMATTING
36
36
  } from "../../chunk-EGMQ3SXN.js";
37
- import "../../chunk-NKKYTCBH.js";
37
+ import "../../chunk-PSU42CXK.js";
38
38
  import {
39
39
  init_esm_shims
40
40
  } from "../../chunk-DHET7RCE.js";
@@ -5,25 +5,25 @@ import {
5
5
  import {
6
6
  discoverLocalSkills,
7
7
  loadSkillsMatrixFromSource
8
- } from "../chunk-6W4H2K3Z.js";
9
- import "../chunk-RRBWNEG3.js";
8
+ } from "../chunk-5BGBH3KD.js";
9
+ import "../chunk-XHTN56UT.js";
10
10
  import {
11
11
  matrix
12
- } from "../chunk-NG2GGK6P.js";
12
+ } from "../chunk-HKIQA4F6.js";
13
13
  import {
14
14
  BaseCommand,
15
15
  EXIT_CODES
16
- } from "../chunk-IJLAVOKZ.js";
16
+ } from "../chunk-KDYE3AGL.js";
17
17
  import {
18
18
  fileExists,
19
19
  readFile
20
- } from "../chunk-4CRWKTNQ.js";
21
- import "../chunk-SRIH4U5Y.js";
20
+ } from "../chunk-6C66NL4X.js";
21
+ import "../chunk-SYGXJBG6.js";
22
22
  import {
23
23
  CLI_BIN_NAME,
24
24
  STANDARD_FILES
25
25
  } from "../chunk-EGMQ3SXN.js";
26
- import "../chunk-NKKYTCBH.js";
26
+ import "../chunk-PSU42CXK.js";
27
27
  import {
28
28
  init_esm_shims
29
29
  } from "../chunk-DHET7RCE.js";
@@ -74,12 +74,6 @@ function formatRequirements(requirements) {
74
74
  return prefix + req.skillIds.join(", ");
75
75
  }).join("; ");
76
76
  }
77
- function formatTags(tags) {
78
- if (tags.length === 0) {
79
- return "(none)";
80
- }
81
- return tags.join(", ");
82
- }
83
77
  function findSuggestions(skills, query, maxSuggestions) {
84
78
  const lowerQuery = query.toLowerCase();
85
79
  const matches = [];
@@ -105,8 +99,6 @@ function formatSkillInfo(skill, isInstalled) {
105
99
  lines.push("Description:");
106
100
  lines.push(` ${skill.description}`);
107
101
  lines.push("");
108
- lines.push(`Tags: ${formatTags(skill.tags)}`);
109
- lines.push("");
110
102
  lines.push(`Requires: ${formatRequirements(skill.requires)}`);
111
103
  lines.push(
112
104
  `Conflicts with: ${skill.conflictsWith.length > 0 ? skill.conflictsWith.map((r) => r.skillId).join(", ") : "(none)"}`
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/commands/info.ts"],"sourcesContent":["import { Args, Flags } from \"@oclif/core\";\nimport path from \"path\";\nimport { BaseCommand } from \"../base-command.js\";\nimport { loadSkillsMatrixFromSource } from \"../lib/loading/index.js\";\nimport { matrix } from \"../lib/matrix/matrix-provider\";\nimport { discoverLocalSkills } from \"../lib/skills/index.js\";\nimport { fileExists, readFile } from \"../utils/fs.js\";\nimport { CLI_BIN_NAME, STANDARD_FILES } from \"../consts.js\";\nimport { EXIT_CODES } from \"../lib/exit-codes.js\";\nimport { STATUS_MESSAGES } from \"../utils/messages.js\";\nimport type { ResolvedSkill, SkillId, SkillSlug, SkillRequirement } from \"../types/index.js\";\n\nconst CONTENT_PREVIEW_LINES = 10;\nconst MAX_LINE_LENGTH = 80;\nconst MAX_SUGGESTIONS = 5;\n\nfunction stripFrontmatter(content: string): string {\n const lines = content.split(\"\\n\");\n let inFrontmatter = false;\n let frontmatterEndIndex = 0;\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i].trim();\n if (line === \"---\") {\n if (!inFrontmatter) {\n inFrontmatter = true;\n } else {\n frontmatterEndIndex = i + 1;\n break;\n }\n }\n }\n\n return lines.slice(frontmatterEndIndex).join(\"\\n\");\n}\n\nfunction getPreviewLines(content: string, maxLines: number): string[] {\n const body = stripFrontmatter(content);\n const lines = body.split(\"\\n\");\n const result: string[] = [];\n\n for (const line of lines) {\n if (result.length >= maxLines) break;\n if (line.trim() || result.length > 0) {\n const truncated =\n line.length > MAX_LINE_LENGTH ? `${line.slice(0, MAX_LINE_LENGTH - 3)}...` : line;\n result.push(truncated);\n }\n }\n\n return result;\n}\n\nfunction formatRequirements(requirements: SkillRequirement[]): string {\n if (requirements.length === 0) {\n return \"(none)\";\n }\n return requirements\n .map((req) => {\n const prefix = req.needsAny ? \"any of: \" : \"\";\n return prefix + req.skillIds.join(\", \");\n })\n .join(\"; \");\n}\n\nfunction formatTags(tags: string[]): string {\n if (tags.length === 0) {\n return \"(none)\";\n }\n return tags.join(\", \");\n}\n\nfunction findSuggestions(\n skills: Partial<Record<SkillId, ResolvedSkill>>,\n query: string,\n maxSuggestions: number,\n): string[] {\n const lowerQuery = query.toLowerCase();\n const matches: string[] = [];\n\n for (const skill of Object.values(skills)) {\n if (!skill) continue;\n if (matches.length >= maxSuggestions) break;\n if (\n skill.id.toLowerCase().includes(lowerQuery) ||\n skill.displayName.toLowerCase().includes(lowerQuery) ||\n skill.slug.toLowerCase().includes(lowerQuery)\n ) {\n matches.push(skill.id);\n }\n }\n\n return matches;\n}\n\nfunction formatSkillInfo(skill: ResolvedSkill, isInstalled: boolean): string {\n const lines: string[] = [];\n\n lines.push(`Skill: ${skill.id}`);\n if (skill.slug) {\n lines.push(`Slug: ${skill.slug}`);\n }\n lines.push(`Display Name: ${skill.displayName}`);\n lines.push(`Author: ${skill.author}`);\n lines.push(`Category: ${skill.category}`);\n lines.push(\"\");\n lines.push(\"Description:\");\n lines.push(` ${skill.description}`);\n lines.push(\"\");\n lines.push(`Tags: ${formatTags(skill.tags)}`);\n lines.push(\"\");\n lines.push(`Requires: ${formatRequirements(skill.requires)}`);\n lines.push(\n `Conflicts with: ${skill.conflictsWith.length > 0 ? skill.conflictsWith.map((r) => r.skillId).join(\", \") : \"(none)\"}`,\n );\n lines.push(\n `Recommended: ${skill.isRecommended ? `Yes${skill.recommendedReason ? ` — ${skill.recommendedReason}` : \"\"}` : \"No\"}`,\n );\n\n if (skill.usageGuidance) {\n lines.push(\"\");\n lines.push(\"Usage Guidance:\");\n lines.push(` ${skill.usageGuidance}`);\n }\n\n lines.push(\"\");\n lines.push(`Local Status: ${isInstalled ? \"Installed\" : \"Not installed\"}`);\n\n return lines.join(\"\\n\");\n}\n\nexport default class Info extends BaseCommand {\n static summary = \"Show detailed information about a skill\";\n static description =\n \"Display comprehensive information about a skill including metadata, relationships, and content preview\";\n\n static examples = [\n {\n description: \"Show info for a skill by ID\",\n command: \"<%= config.bin %> <%= command.id %> web-framework-react\",\n },\n {\n description: \"Show info without content preview\",\n command: \"<%= config.bin %> <%= command.id %> web-framework-react --no-preview\",\n },\n {\n description: \"Show info from a custom source\",\n command: \"<%= config.bin %> <%= command.id %> my-skill --source github:org/marketplace\",\n },\n ];\n\n static args = {\n skill: Args.string({\n description: \"Skill ID or alias to look up\",\n required: true,\n }),\n };\n\n static flags = {\n ...BaseCommand.baseFlags,\n preview: Flags.boolean({\n description: \"Show content preview from SKILL.md\",\n default: true,\n allowNo: true,\n }),\n };\n\n async run(): Promise<void> {\n const { args, flags } = await this.parse(Info);\n\n try {\n this.log(STATUS_MESSAGES.LOADING_SKILLS);\n\n const { sourcePath, isLocal } = await loadSkillsMatrixFromSource({\n sourceFlag: flags.source,\n });\n\n this.log(`Loaded from ${isLocal ? \"local\" : \"remote\"}: ${sourcePath}`);\n\n // CLI arg is an untyped string — try as skill ID first, then as slug\n const slugResolvedId = matrix.slugMap.slugToId[args.skill as SkillSlug];\n let skill =\n matrix.skills[args.skill as SkillId] ??\n (slugResolvedId ? matrix.skills[slugResolvedId] : undefined);\n\n if (!skill) {\n const suggestions = findSuggestions(matrix.skills, args.skill, MAX_SUGGESTIONS);\n\n this.log(\"\");\n this.error(`Skill \"${args.skill}\" not found.`, { exit: false });\n\n if (suggestions.length > 0) {\n this.log(\"\");\n this.log(\"Did you mean one of these?\");\n for (const suggestion of suggestions) {\n this.log(` - ${suggestion}`);\n }\n }\n\n this.log(\"\");\n this.logInfo(`Use '${CLI_BIN_NAME} search <query>' to find available skills.`);\n this.log(\"\");\n this.exit(EXIT_CODES.ERROR);\n }\n\n const localSkillsResult = await discoverLocalSkills(process.cwd());\n const localSkillIds = localSkillsResult?.skills.map((s) => s.id) || [];\n const isInstalled = localSkillIds.includes(skill.id);\n\n this.log(\"\");\n this.log(formatSkillInfo(skill, isInstalled));\n\n if (flags.preview) {\n let skillMdPath: string;\n\n if (skill.local && skill.localPath) {\n skillMdPath = path.join(process.cwd(), skill.localPath, STANDARD_FILES.SKILL_MD);\n } else {\n const sourceDir = isLocal ? sourcePath : path.dirname(sourcePath);\n skillMdPath = path.join(sourceDir, skill.path, STANDARD_FILES.SKILL_MD);\n }\n\n if (await fileExists(skillMdPath)) {\n const content = await readFile(skillMdPath);\n const previewLines = getPreviewLines(content, CONTENT_PREVIEW_LINES);\n\n if (previewLines.length > 0) {\n this.log(\"\");\n this.log(`--- Content Preview (first ${CONTENT_PREVIEW_LINES} lines) ---`);\n for (const line of previewLines) {\n this.log(line);\n }\n }\n }\n }\n\n this.log(\"\");\n } catch (error) {\n this.handleError(error);\n }\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/cli/commands/info.ts"],"sourcesContent":["import { Args, Flags } from \"@oclif/core\";\nimport path from \"path\";\nimport { BaseCommand } from \"../base-command.js\";\nimport { loadSkillsMatrixFromSource } from \"../lib/loading/index.js\";\nimport { matrix } from \"../lib/matrix/matrix-provider\";\nimport { discoverLocalSkills } from \"../lib/skills/index.js\";\nimport { fileExists, readFile } from \"../utils/fs.js\";\nimport { CLI_BIN_NAME, STANDARD_FILES } from \"../consts.js\";\nimport { EXIT_CODES } from \"../lib/exit-codes.js\";\nimport { STATUS_MESSAGES } from \"../utils/messages.js\";\nimport type { ResolvedSkill, SkillId, SkillSlug, SkillRequirement } from \"../types/index.js\";\n\nconst CONTENT_PREVIEW_LINES = 10;\nconst MAX_LINE_LENGTH = 80;\nconst MAX_SUGGESTIONS = 5;\n\nfunction stripFrontmatter(content: string): string {\n const lines = content.split(\"\\n\");\n let inFrontmatter = false;\n let frontmatterEndIndex = 0;\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i].trim();\n if (line === \"---\") {\n if (!inFrontmatter) {\n inFrontmatter = true;\n } else {\n frontmatterEndIndex = i + 1;\n break;\n }\n }\n }\n\n return lines.slice(frontmatterEndIndex).join(\"\\n\");\n}\n\nfunction getPreviewLines(content: string, maxLines: number): string[] {\n const body = stripFrontmatter(content);\n const lines = body.split(\"\\n\");\n const result: string[] = [];\n\n for (const line of lines) {\n if (result.length >= maxLines) break;\n if (line.trim() || result.length > 0) {\n const truncated =\n line.length > MAX_LINE_LENGTH ? `${line.slice(0, MAX_LINE_LENGTH - 3)}...` : line;\n result.push(truncated);\n }\n }\n\n return result;\n}\n\nfunction formatRequirements(requirements: SkillRequirement[]): string {\n if (requirements.length === 0) {\n return \"(none)\";\n }\n return requirements\n .map((req) => {\n const prefix = req.needsAny ? \"any of: \" : \"\";\n return prefix + req.skillIds.join(\", \");\n })\n .join(\"; \");\n}\n\nfunction findSuggestions(\n skills: Partial<Record<SkillId, ResolvedSkill>>,\n query: string,\n maxSuggestions: number,\n): string[] {\n const lowerQuery = query.toLowerCase();\n const matches: string[] = [];\n\n for (const skill of Object.values(skills)) {\n if (!skill) continue;\n if (matches.length >= maxSuggestions) break;\n if (\n skill.id.toLowerCase().includes(lowerQuery) ||\n skill.displayName.toLowerCase().includes(lowerQuery) ||\n skill.slug.toLowerCase().includes(lowerQuery)\n ) {\n matches.push(skill.id);\n }\n }\n\n return matches;\n}\n\nfunction formatSkillInfo(skill: ResolvedSkill, isInstalled: boolean): string {\n const lines: string[] = [];\n\n lines.push(`Skill: ${skill.id}`);\n if (skill.slug) {\n lines.push(`Slug: ${skill.slug}`);\n }\n lines.push(`Display Name: ${skill.displayName}`);\n lines.push(`Author: ${skill.author}`);\n lines.push(`Category: ${skill.category}`);\n lines.push(\"\");\n lines.push(\"Description:\");\n lines.push(` ${skill.description}`);\n lines.push(\"\");\n lines.push(`Requires: ${formatRequirements(skill.requires)}`);\n lines.push(\n `Conflicts with: ${skill.conflictsWith.length > 0 ? skill.conflictsWith.map((r) => r.skillId).join(\", \") : \"(none)\"}`,\n );\n lines.push(\n `Recommended: ${skill.isRecommended ? `Yes${skill.recommendedReason ? ` — ${skill.recommendedReason}` : \"\"}` : \"No\"}`,\n );\n\n if (skill.usageGuidance) {\n lines.push(\"\");\n lines.push(\"Usage Guidance:\");\n lines.push(` ${skill.usageGuidance}`);\n }\n\n lines.push(\"\");\n lines.push(`Local Status: ${isInstalled ? \"Installed\" : \"Not installed\"}`);\n\n return lines.join(\"\\n\");\n}\n\nexport default class Info extends BaseCommand {\n static summary = \"Show detailed information about a skill\";\n static description =\n \"Display comprehensive information about a skill including metadata, relationships, and content preview\";\n\n static examples = [\n {\n description: \"Show info for a skill by ID\",\n command: \"<%= config.bin %> <%= command.id %> web-framework-react\",\n },\n {\n description: \"Show info without content preview\",\n command: \"<%= config.bin %> <%= command.id %> web-framework-react --no-preview\",\n },\n {\n description: \"Show info from a custom source\",\n command: \"<%= config.bin %> <%= command.id %> my-skill --source github:org/marketplace\",\n },\n ];\n\n static args = {\n skill: Args.string({\n description: \"Skill ID or alias to look up\",\n required: true,\n }),\n };\n\n static flags = {\n ...BaseCommand.baseFlags,\n preview: Flags.boolean({\n description: \"Show content preview from SKILL.md\",\n default: true,\n allowNo: true,\n }),\n };\n\n async run(): Promise<void> {\n const { args, flags } = await this.parse(Info);\n\n try {\n this.log(STATUS_MESSAGES.LOADING_SKILLS);\n\n const { sourcePath, isLocal } = await loadSkillsMatrixFromSource({\n sourceFlag: flags.source,\n });\n\n this.log(`Loaded from ${isLocal ? \"local\" : \"remote\"}: ${sourcePath}`);\n\n // CLI arg is an untyped string — try as skill ID first, then as slug\n const slugResolvedId = matrix.slugMap.slugToId[args.skill as SkillSlug];\n let skill =\n matrix.skills[args.skill as SkillId] ??\n (slugResolvedId ? matrix.skills[slugResolvedId] : undefined);\n\n if (!skill) {\n const suggestions = findSuggestions(matrix.skills, args.skill, MAX_SUGGESTIONS);\n\n this.log(\"\");\n this.error(`Skill \"${args.skill}\" not found.`, { exit: false });\n\n if (suggestions.length > 0) {\n this.log(\"\");\n this.log(\"Did you mean one of these?\");\n for (const suggestion of suggestions) {\n this.log(` - ${suggestion}`);\n }\n }\n\n this.log(\"\");\n this.logInfo(`Use '${CLI_BIN_NAME} search <query>' to find available skills.`);\n this.log(\"\");\n this.exit(EXIT_CODES.ERROR);\n }\n\n const localSkillsResult = await discoverLocalSkills(process.cwd());\n const localSkillIds = localSkillsResult?.skills.map((s) => s.id) || [];\n const isInstalled = localSkillIds.includes(skill.id);\n\n this.log(\"\");\n this.log(formatSkillInfo(skill, isInstalled));\n\n if (flags.preview) {\n let skillMdPath: string;\n\n if (skill.local && skill.localPath) {\n skillMdPath = path.join(process.cwd(), skill.localPath, STANDARD_FILES.SKILL_MD);\n } else {\n const sourceDir = isLocal ? sourcePath : path.dirname(sourcePath);\n skillMdPath = path.join(sourceDir, skill.path, STANDARD_FILES.SKILL_MD);\n }\n\n if (await fileExists(skillMdPath)) {\n const content = await readFile(skillMdPath);\n const previewLines = getPreviewLines(content, CONTENT_PREVIEW_LINES);\n\n if (previewLines.length > 0) {\n this.log(\"\");\n this.log(`--- Content Preview (first ${CONTENT_PREVIEW_LINES} lines) ---`);\n for (const line of previewLines) {\n this.log(line);\n }\n }\n }\n }\n\n this.log(\"\");\n } catch (error) {\n this.handleError(error);\n }\n }\n}\n"],"mappings":"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","names":[]}
@@ -4,47 +4,47 @@ import {
4
4
  formatDashboardText,
5
5
  getDashboardData,
6
6
  showDashboard
7
- } from "../chunk-DG2T7KYG.js";
8
- import "../chunk-JBQRRJRY.js";
9
- import "../chunk-2DKJM7RO.js";
7
+ } from "../chunk-QN3V3ES7.js";
8
+ import "../chunk-7QAVO7VN.js";
9
+ import "../chunk-ZZJ6H6VB.js";
10
10
  import "../chunk-SXGBPQY6.js";
11
- import "../chunk-DZUZVT5X.js";
12
- import "../chunk-6RGNXTTG.js";
13
- import "../chunk-HGTC76BX.js";
14
- import "../chunk-YUSLPHXO.js";
15
- import "../chunk-2YFC7IJ6.js";
16
- import "../chunk-MZQKSK3J.js";
17
- import "../chunk-GJWHA6P4.js";
11
+ import "../chunk-FYYIRFYT.js";
12
+ import "../chunk-DFKNFZI2.js";
13
+ import "../chunk-V36FRPAU.js";
14
+ import "../chunk-GMUOEQOY.js";
15
+ import "../chunk-GCT7LSYW.js";
16
+ import "../chunk-FHHTDPMW.js";
17
+ import "../chunk-WXC2Y5TF.js";
18
18
  import "../chunk-K77I4XGL.js";
19
- import "../chunk-I7WXUAWA.js";
19
+ import "../chunk-SPATQKH6.js";
20
20
  import "../chunk-MWGDG4QN.js";
21
- import "../chunk-TDHEAHXD.js";
21
+ import "../chunk-W22IYRZV.js";
22
22
  import "../chunk-7SOPVGDV.js";
23
23
  import "../chunk-UFKDY45I.js";
24
- import "../chunk-PJUC2WCA.js";
24
+ import "../chunk-JOTAIMTC.js";
25
25
  import "../chunk-P2FHS5IS.js";
26
- import "../chunk-NO2XIAJC.js";
27
- import "../chunk-LVNNP7T4.js";
28
- import "../chunk-62FBXUNR.js";
26
+ import "../chunk-CUCF5LM4.js";
27
+ import "../chunk-U6A4YFOF.js";
28
+ import "../chunk-CBXMOWQY.js";
29
29
  import "../chunk-XMLCXRTS.js";
30
- import "../chunk-7M4INWUR.js";
30
+ import "../chunk-JNQKCZA3.js";
31
31
  import "../chunk-AUNBGZS4.js";
32
32
  import "../chunk-2PZ7LBFT.js";
33
33
  import "../chunk-WF5PMBIR.js";
34
34
  import "../chunk-KUV24B5M.js";
35
- import "../chunk-EWGFIBBU.js";
35
+ import "../chunk-BVSWWBPE.js";
36
36
  import "../chunk-T5DJCIUP.js";
37
37
  import "../chunk-U3IGFMCY.js";
38
38
  import "../chunk-CBYRFAUN.js";
39
39
  import "../chunk-CXRVM7BA.js";
40
- import "../chunk-6W4H2K3Z.js";
41
- import "../chunk-RRBWNEG3.js";
42
- import "../chunk-NG2GGK6P.js";
43
- import "../chunk-IJLAVOKZ.js";
44
- import "../chunk-4CRWKTNQ.js";
45
- import "../chunk-SRIH4U5Y.js";
40
+ import "../chunk-5BGBH3KD.js";
41
+ import "../chunk-XHTN56UT.js";
42
+ import "../chunk-HKIQA4F6.js";
43
+ import "../chunk-KDYE3AGL.js";
44
+ import "../chunk-6C66NL4X.js";
45
+ import "../chunk-SYGXJBG6.js";
46
46
  import "../chunk-EGMQ3SXN.js";
47
- import "../chunk-NKKYTCBH.js";
47
+ import "../chunk-PSU42CXK.js";
48
48
  import "../chunk-DHET7RCE.js";
49
49
  export {
50
50
  Init as default,
@@ -2,19 +2,19 @@
2
2
  import {
3
3
  formatInstallationDisplay,
4
4
  getInstallationInfo
5
- } from "../chunk-6W4H2K3Z.js";
6
- import "../chunk-RRBWNEG3.js";
7
- import "../chunk-NG2GGK6P.js";
5
+ } from "../chunk-5BGBH3KD.js";
6
+ import "../chunk-XHTN56UT.js";
7
+ import "../chunk-HKIQA4F6.js";
8
8
  import {
9
9
  BaseCommand
10
- } from "../chunk-IJLAVOKZ.js";
11
- import "../chunk-4CRWKTNQ.js";
12
- import "../chunk-SRIH4U5Y.js";
10
+ } from "../chunk-KDYE3AGL.js";
11
+ import "../chunk-6C66NL4X.js";
12
+ import "../chunk-SYGXJBG6.js";
13
13
  import {
14
14
  CLI_BIN_NAME,
15
15
  DEFAULT_BRANDING
16
16
  } from "../chunk-EGMQ3SXN.js";
17
- import "../chunk-NKKYTCBH.js";
17
+ import "../chunk-PSU42CXK.js";
18
18
  import {
19
19
  init_esm_shims
20
20
  } from "../chunk-DHET7RCE.js";
@@ -1,31 +1,31 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  getAgentDefinitions
4
- } from "../../chunk-NPMGVQM4.js";
4
+ } from "../../chunk-VU4ZCRZS.js";
5
5
  import {
6
6
  isClaudeCLIAvailable,
7
7
  loadConfigTypesDataInBackground,
8
8
  regenerateConfigTypes,
9
9
  resolveSource
10
- } from "../../chunk-6W4H2K3Z.js";
11
- import "../../chunk-RRBWNEG3.js";
12
- import "../../chunk-NG2GGK6P.js";
10
+ } from "../../chunk-5BGBH3KD.js";
11
+ import "../../chunk-XHTN56UT.js";
12
+ import "../../chunk-HKIQA4F6.js";
13
13
  import {
14
14
  BaseCommand,
15
15
  EXIT_CODES
16
- } from "../../chunk-IJLAVOKZ.js";
16
+ } from "../../chunk-KDYE3AGL.js";
17
17
  import {
18
18
  fileExists,
19
19
  getErrorMessage,
20
20
  readFile
21
- } from "../../chunk-4CRWKTNQ.js";
22
- import "../../chunk-SRIH4U5Y.js";
21
+ } from "../../chunk-6C66NL4X.js";
22
+ import "../../chunk-SYGXJBG6.js";
23
23
  import {
24
24
  CLAUDE_DIR,
25
25
  CLI_COLORS,
26
26
  STANDARD_FILES
27
27
  } from "../../chunk-EGMQ3SXN.js";
28
- import "../../chunk-NKKYTCBH.js";
28
+ import "../../chunk-PSU42CXK.js";
29
29
  import {
30
30
  init_esm_shims
31
31
  } from "../../chunk-DHET7RCE.js";
@@ -2,31 +2,31 @@
2
2
  import {
3
3
  generateSkillCategoriesTs,
4
4
  generateSkillRulesTs
5
- } from "../../chunk-ARGCINJC.js";
5
+ } from "../../chunk-U5R4M7MA.js";
6
6
  import {
7
7
  generateMarketplace,
8
8
  writeMarketplace
9
- } from "../../chunk-BM5Y6LIC.js";
9
+ } from "../../chunk-Q72ZBA4X.js";
10
10
  import {
11
11
  LOCAL_DEFAULTS,
12
12
  compileAllSkillPlugins,
13
13
  generateConfigSource,
14
14
  loadConfigTypesDataInBackground,
15
15
  regenerateConfigTypes
16
- } from "../../chunk-6W4H2K3Z.js";
17
- import "../../chunk-RRBWNEG3.js";
18
- import "../../chunk-NG2GGK6P.js";
16
+ } from "../../chunk-5BGBH3KD.js";
17
+ import "../../chunk-XHTN56UT.js";
18
+ import "../../chunk-HKIQA4F6.js";
19
19
  import {
20
20
  BaseCommand,
21
21
  EXIT_CODES
22
- } from "../../chunk-IJLAVOKZ.js";
22
+ } from "../../chunk-KDYE3AGL.js";
23
23
  import {
24
24
  directoryExists,
25
25
  ensureDir,
26
26
  getErrorMessage,
27
27
  writeFile
28
- } from "../../chunk-4CRWKTNQ.js";
29
- import "../../chunk-SRIH4U5Y.js";
28
+ } from "../../chunk-6C66NL4X.js";
29
+ import "../../chunk-SYGXJBG6.js";
30
30
  import {
31
31
  CLAUDE_SRC_DIR,
32
32
  CLI_BIN_NAME,
@@ -38,7 +38,7 @@ import {
38
38
  STACKS_FILE_PATH,
39
39
  STANDARD_FILES
40
40
  } from "../../chunk-EGMQ3SXN.js";
41
- import "../../chunk-NKKYTCBH.js";
41
+ import "../../chunk-PSU42CXK.js";
42
42
  import {
43
43
  init_esm_shims
44
44
  } from "../../chunk-DHET7RCE.js";
@@ -7,15 +7,15 @@ import {
7
7
  generateSkillRulesTs,
8
8
  toTitleCase,
9
9
  validateSkillName
10
- } from "../../chunk-ARGCINJC.js";
11
- import "../../chunk-6W4H2K3Z.js";
12
- import "../../chunk-RRBWNEG3.js";
13
- import "../../chunk-NG2GGK6P.js";
14
- import "../../chunk-IJLAVOKZ.js";
15
- import "../../chunk-4CRWKTNQ.js";
16
- import "../../chunk-SRIH4U5Y.js";
10
+ } from "../../chunk-U5R4M7MA.js";
11
+ import "../../chunk-5BGBH3KD.js";
12
+ import "../../chunk-XHTN56UT.js";
13
+ import "../../chunk-HKIQA4F6.js";
14
+ import "../../chunk-KDYE3AGL.js";
15
+ import "../../chunk-6C66NL4X.js";
16
+ import "../../chunk-SYGXJBG6.js";
17
17
  import "../../chunk-EGMQ3SXN.js";
18
- import "../../chunk-NKKYTCBH.js";
18
+ import "../../chunk-PSU42CXK.js";
19
19
  import "../../chunk-DHET7RCE.js";
20
20
  export {
21
21
  NewSkill as default,
@@ -3,25 +3,25 @@ import {
3
3
  compareLocalSkillsWithSource,
4
4
  detectInstallation,
5
5
  loadSkillsMatrixFromSource
6
- } from "../chunk-6W4H2K3Z.js";
7
- import "../chunk-RRBWNEG3.js";
6
+ } from "../chunk-5BGBH3KD.js";
7
+ import "../chunk-XHTN56UT.js";
8
8
  import {
9
9
  typedEntries
10
- } from "../chunk-NG2GGK6P.js";
10
+ } from "../chunk-HKIQA4F6.js";
11
11
  import {
12
12
  BaseCommand,
13
13
  EXIT_CODES
14
- } from "../chunk-IJLAVOKZ.js";
14
+ } from "../chunk-KDYE3AGL.js";
15
15
  import {
16
16
  fileExists,
17
17
  getErrorMessage
18
- } from "../chunk-4CRWKTNQ.js";
19
- import "../chunk-SRIH4U5Y.js";
18
+ } from "../chunk-6C66NL4X.js";
19
+ import "../chunk-SYGXJBG6.js";
20
20
  import {
21
21
  CLI_BIN_NAME,
22
22
  LOCAL_SKILLS_PATH
23
23
  } from "../chunk-EGMQ3SXN.js";
24
- import "../chunk-NKKYTCBH.js";
24
+ import "../chunk-PSU42CXK.js";
25
25
  import {
26
26
  init_esm_shims
27
27
  } from "../chunk-DHET7RCE.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  SkillSearch
4
- } from "../chunk-HT5KOOUQ.js";
4
+ } from "../chunk-AOZBHMYL.js";
5
5
  import "../chunk-T5DJCIUP.js";
6
6
  import "../chunk-U3IGFMCY.js";
7
7
  import "../chunk-CBYRFAUN.js";
@@ -14,29 +14,29 @@ import {
14
14
  fetchFromSource,
15
15
  loadSkillsMatrixFromSource,
16
16
  resolveAllSources
17
- } from "../chunk-6W4H2K3Z.js";
17
+ } from "../chunk-5BGBH3KD.js";
18
18
  import {
19
19
  parseFrontmatter
20
- } from "../chunk-RRBWNEG3.js";
21
- import "../chunk-NG2GGK6P.js";
20
+ } from "../chunk-XHTN56UT.js";
21
+ import "../chunk-HKIQA4F6.js";
22
22
  import {
23
23
  BaseCommand,
24
24
  EXIT_CODES
25
- } from "../chunk-IJLAVOKZ.js";
25
+ } from "../chunk-KDYE3AGL.js";
26
26
  import {
27
27
  copy,
28
28
  ensureDir,
29
29
  fileExists,
30
30
  listDirectories,
31
31
  readFile
32
- } from "../chunk-4CRWKTNQ.js";
33
- import "../chunk-SRIH4U5Y.js";
32
+ } from "../chunk-6C66NL4X.js";
33
+ import "../chunk-SYGXJBG6.js";
34
34
  import {
35
35
  DEFAULT_SKILLS_SUBDIR,
36
36
  LOCAL_SKILLS_PATH,
37
37
  STANDARD_FILES
38
38
  } from "../chunk-EGMQ3SXN.js";
39
- import "../chunk-NKKYTCBH.js";
39
+ import "../chunk-PSU42CXK.js";
40
40
  import {
41
41
  init_esm_shims
42
42
  } from "../chunk-DHET7RCE.js";
@@ -66,7 +66,7 @@ function matchesQuery(skill, query) {
66
66
  if (skill.slug.toLowerCase().includes(lowerQuery)) return true;
67
67
  if (skill.description.toLowerCase().includes(lowerQuery)) return true;
68
68
  if (skill.category.toLowerCase().includes(lowerQuery)) return true;
69
- return skill.tags.some((tag) => tag.toLowerCase().includes(lowerQuery));
69
+ return false;
70
70
  }
71
71
  function matchesCategory(skill, category) {
72
72
  const lowerCategory = category.toLowerCase();
@@ -102,7 +102,6 @@ async function fetchSkillsFromSource(source, forceRefresh) {
102
102
  displayName: skillDir,
103
103
  // Boundary cast: external source skills have no real category; "imported" is a display-only placeholder
104
104
  category: "imported",
105
- tags: [],
106
105
  author: `@${source.name}`,
107
106
  conflictsWith: [],
108
107
  isRecommended: false,
@@ -122,7 +121,7 @@ async function fetchSkillsFromSource(source, forceRefresh) {
122
121
  }
123
122
  var Search = class _Search extends BaseCommand {
124
123
  static summary = "Search available skills";
125
- static description = "Search skills by ID, alias, description, category, or tags. Run without arguments or with -i for interactive mode with multi-select.";
124
+ static description = "Search skills by ID, alias, description, or category. Run without arguments or with -i for interactive mode with multi-select.";
126
125
  static examples = [
127
126
  {
128
127
  description: "Search for React skills",
@@ -143,7 +142,7 @@ var Search = class _Search extends BaseCommand {
143
142
  ];
144
143
  static args = {
145
144
  query: Args.string({
146
- description: "Search query (matches name, description, category, tags)",
145
+ description: "Search query (matches name, description, category)",
147
146
  required: false
148
147
  })
149
148
  };