@agents-inc/cli 0.74.7 → 0.74.8

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 (112) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/{chunk-HA35FGPO.js → chunk-4Q2JLBCX.js} +2 -2
  3. package/dist/{chunk-RO6BG4ZW.js → chunk-7JVDZFJG.js} +3 -5
  4. package/dist/chunk-7JVDZFJG.js.map +1 -0
  5. package/dist/{chunk-TJBOCGLR.js → chunk-7SKGMV7P.js} +11 -11
  6. package/dist/{chunk-JB2QTE7M.js → chunk-7W226BOV.js} +5 -6
  7. package/dist/chunk-7W226BOV.js.map +1 -0
  8. package/dist/{chunk-STC7IEVI.js → chunk-BQW4ONJE.js} +2 -2
  9. package/dist/{chunk-6VIOO74O.js → chunk-CBYRFAUN.js} +1 -3
  10. package/dist/{chunk-6VIOO74O.js.map → chunk-CBYRFAUN.js.map} +1 -1
  11. package/dist/{chunk-GFTBHBRQ.js → chunk-E3MF6GGS.js} +14 -3
  12. package/dist/chunk-E3MF6GGS.js.map +1 -0
  13. package/dist/{chunk-BKTPEATV.js → chunk-F7LOH754.js} +2 -2
  14. package/dist/{chunk-UKYWXIDT.js → chunk-FVMYBN5K.js} +85 -68
  15. package/dist/chunk-FVMYBN5K.js.map +1 -0
  16. package/dist/{chunk-HIVZDWJC.js → chunk-GNA6IOQZ.js} +2 -2
  17. package/dist/{chunk-VMTZ5WC5.js → chunk-HJY4354Y.js} +2 -2
  18. package/dist/{chunk-MVYJVKVT.js → chunk-HT5KOOUQ.js} +2 -2
  19. package/dist/{chunk-RHAZARG3.js → chunk-KZG3EQSH.js} +5 -5
  20. package/dist/{chunk-KYULKBFC.js → chunk-NA6I5P5P.js} +2 -2
  21. package/dist/{chunk-CJSCCLT5.js → chunk-PN65K3LH.js} +2 -2
  22. package/dist/{chunk-MOWZ2FLG.js → chunk-Q53GBFTO.js} +2 -2
  23. package/dist/{chunk-2GD57LQE.js → chunk-RBR355UI.js} +5 -5
  24. package/dist/{chunk-FDIKV4ON.js → chunk-SM4FX2IU.js} +4 -88
  25. package/dist/chunk-SM4FX2IU.js.map +1 -0
  26. package/dist/{chunk-COZ75NET.js → chunk-TPXDHJDB.js} +2 -2
  27. package/dist/{chunk-2ZQKORJI.js → chunk-TUGXTCGX.js} +3 -3
  28. package/dist/{chunk-2MHSOPIU.js → chunk-UFKDY45I.js} +2 -2
  29. package/dist/{chunk-W3GHDONP.js → chunk-ULP3GGXG.js} +4 -4
  30. package/dist/{chunk-JZPQI7YI.js → chunk-X6LXHVA6.js} +2 -2
  31. package/dist/commands/build/plugins.js +2 -2
  32. package/dist/commands/build/stack.js +2 -2
  33. package/dist/commands/compile.js +2 -2
  34. package/dist/commands/config/index.js +2 -2
  35. package/dist/commands/config/path.js +1 -1
  36. package/dist/commands/config/show.js +2 -2
  37. package/dist/commands/diff.js +1 -1
  38. package/dist/commands/doctor.js +1 -1
  39. package/dist/commands/edit.js +47 -40
  40. package/dist/commands/edit.js.map +1 -1
  41. package/dist/commands/eject.js +1 -1
  42. package/dist/commands/import/skill.js +1 -1
  43. package/dist/commands/info.js +1 -1
  44. package/dist/commands/init.js +18 -18
  45. package/dist/commands/list.js +1 -1
  46. package/dist/commands/new/agent.js +2 -2
  47. package/dist/commands/new/marketplace.js +2 -2
  48. package/dist/commands/new/skill.js +2 -2
  49. package/dist/commands/outdated.js +1 -1
  50. package/dist/commands/search.js +3 -3
  51. package/dist/commands/uninstall.js +1 -1
  52. package/dist/commands/update.js +2 -2
  53. package/dist/commands/validate.js +62 -44
  54. package/dist/commands/validate.js.map +1 -1
  55. package/dist/components/skill-search/skill-search.js +2 -2
  56. package/dist/components/wizard/category-grid.js +2 -2
  57. package/dist/components/wizard/category-grid.test.js +4 -4
  58. package/dist/components/wizard/domain-selection.js +3 -3
  59. package/dist/components/wizard/help-modal.js +2 -2
  60. package/dist/components/wizard/search-modal.js +2 -2
  61. package/dist/components/wizard/search-modal.test.js +2 -2
  62. package/dist/components/wizard/source-grid.js +3 -3
  63. package/dist/components/wizard/source-grid.test.js +5 -5
  64. package/dist/components/wizard/stack-selection.js +3 -3
  65. package/dist/components/wizard/step-agents.js +3 -3
  66. package/dist/components/wizard/step-agents.test.js +3 -3
  67. package/dist/components/wizard/step-build.js +5 -5
  68. package/dist/components/wizard/step-build.test.js +5 -5
  69. package/dist/components/wizard/step-confirm.js +2 -2
  70. package/dist/components/wizard/step-confirm.test.js +4 -4
  71. package/dist/components/wizard/step-refine.js +2 -2
  72. package/dist/components/wizard/step-refine.test.js +2 -2
  73. package/dist/components/wizard/step-settings.js +3 -3
  74. package/dist/components/wizard/step-settings.test.js +6 -6
  75. package/dist/components/wizard/step-sources.js +6 -6
  76. package/dist/components/wizard/step-sources.test.js +6 -6
  77. package/dist/components/wizard/step-stack.js +5 -5
  78. package/dist/components/wizard/step-stack.test.js +5 -5
  79. package/dist/components/wizard/wizard-layout.js +5 -5
  80. package/dist/components/wizard/wizard.js +17 -17
  81. package/dist/hooks/init.js +18 -18
  82. package/dist/source-loader-X46F4X2B.js +23 -0
  83. package/dist/{source-manager-A3QLBYCU.js → source-manager-WG7HJHVW.js} +2 -2
  84. package/dist/stores/wizard-store.js +2 -2
  85. package/dist/stores/wizard-store.test.js +26 -5
  86. package/dist/stores/wizard-store.test.js.map +1 -1
  87. package/package.json +1 -1
  88. package/dist/chunk-FDIKV4ON.js.map +0 -1
  89. package/dist/chunk-GFTBHBRQ.js.map +0 -1
  90. package/dist/chunk-JB2QTE7M.js.map +0 -1
  91. package/dist/chunk-RO6BG4ZW.js.map +0 -1
  92. package/dist/chunk-UKYWXIDT.js.map +0 -1
  93. package/dist/source-loader-HQTTAMS7.js +0 -17
  94. /package/dist/{chunk-HA35FGPO.js.map → chunk-4Q2JLBCX.js.map} +0 -0
  95. /package/dist/{chunk-TJBOCGLR.js.map → chunk-7SKGMV7P.js.map} +0 -0
  96. /package/dist/{chunk-STC7IEVI.js.map → chunk-BQW4ONJE.js.map} +0 -0
  97. /package/dist/{chunk-BKTPEATV.js.map → chunk-F7LOH754.js.map} +0 -0
  98. /package/dist/{chunk-HIVZDWJC.js.map → chunk-GNA6IOQZ.js.map} +0 -0
  99. /package/dist/{chunk-VMTZ5WC5.js.map → chunk-HJY4354Y.js.map} +0 -0
  100. /package/dist/{chunk-MVYJVKVT.js.map → chunk-HT5KOOUQ.js.map} +0 -0
  101. /package/dist/{chunk-RHAZARG3.js.map → chunk-KZG3EQSH.js.map} +0 -0
  102. /package/dist/{chunk-KYULKBFC.js.map → chunk-NA6I5P5P.js.map} +0 -0
  103. /package/dist/{chunk-CJSCCLT5.js.map → chunk-PN65K3LH.js.map} +0 -0
  104. /package/dist/{chunk-MOWZ2FLG.js.map → chunk-Q53GBFTO.js.map} +0 -0
  105. /package/dist/{chunk-2GD57LQE.js.map → chunk-RBR355UI.js.map} +0 -0
  106. /package/dist/{chunk-COZ75NET.js.map → chunk-TPXDHJDB.js.map} +0 -0
  107. /package/dist/{chunk-2ZQKORJI.js.map → chunk-TUGXTCGX.js.map} +0 -0
  108. /package/dist/{chunk-2MHSOPIU.js.map → chunk-UFKDY45I.js.map} +0 -0
  109. /package/dist/{chunk-W3GHDONP.js.map → chunk-ULP3GGXG.js.map} +0 -0
  110. /package/dist/{chunk-JZPQI7YI.js.map → chunk-X6LXHVA6.js.map} +0 -0
  111. /package/dist/{source-loader-HQTTAMS7.js.map → source-loader-X46F4X2B.js.map} +0 -0
  112. /package/dist/{source-manager-A3QLBYCU.js.map → source-manager-WG7HJHVW.js.map} +0 -0
@@ -7,7 +7,7 @@ import {
7
7
  loadProjectSourceConfig,
8
8
  resolveAgentsSource,
9
9
  resolveSource
10
- } from "./chunk-UKYWXIDT.js";
10
+ } from "./chunk-FVMYBN5K.js";
11
11
  import {
12
12
  BaseCommand
13
13
  } from "./chunk-IJLAVOKZ.js";
@@ -90,4 +90,4 @@ ${DEFAULT_BRANDING.NAME} Configuration
90
90
  export {
91
91
  ConfigShow
92
92
  };
93
- //# sourceMappingURL=chunk-HIVZDWJC.js.map
93
+ //# sourceMappingURL=chunk-GNA6IOQZ.js.map
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-OV5UJWS5.js";
9
9
  import {
10
10
  useWizardStore
11
- } from "./chunk-GFTBHBRQ.js";
11
+ } from "./chunk-E3MF6GGS.js";
12
12
  import {
13
13
  matrix,
14
14
  typedEntries
@@ -63,4 +63,4 @@ var DomainSelection = () => {
63
63
  export {
64
64
  DomainSelection
65
65
  };
66
- //# sourceMappingURL=chunk-VMTZ5WC5.js.map
66
+ //# sourceMappingURL=chunk-HJY4354Y.js.map
@@ -12,7 +12,7 @@ import {
12
12
  KEY_LABEL_SPACE,
13
13
  KEY_LABEL_VIM_VERT,
14
14
  isHotkey
15
- } from "./chunk-6VIOO74O.js";
15
+ } from "./chunk-CBYRFAUN.js";
16
16
  import {
17
17
  CLI_COLORS,
18
18
  UI_LAYOUT,
@@ -352,4 +352,4 @@ var SkillSearch = ({
352
352
  export {
353
353
  SkillSearch
354
354
  };
355
- //# sourceMappingURL=chunk-MVYJVKVT.js.map
355
+ //# sourceMappingURL=chunk-HT5KOOUQ.js.map
@@ -10,24 +10,24 @@ import {
10
10
  } from "./chunk-MWGDG4QN.js";
11
11
  import {
12
12
  SourceGrid
13
- } from "./chunk-COZ75NET.js";
13
+ } from "./chunk-TPXDHJDB.js";
14
14
  import {
15
15
  ViewTitle
16
16
  } from "./chunk-AQYAVLZK.js";
17
17
  import {
18
18
  useWizardStore
19
- } from "./chunk-GFTBHBRQ.js";
19
+ } from "./chunk-E3MF6GGS.js";
20
20
  import {
21
21
  HOTKEY_SET_ALL_LOCAL,
22
22
  HOTKEY_SET_ALL_PLUGIN,
23
23
  KEY_LABEL_ENTER,
24
24
  KEY_LABEL_ESC,
25
25
  isHotkey
26
- } from "./chunk-6VIOO74O.js";
26
+ } from "./chunk-CBYRFAUN.js";
27
27
  import {
28
28
  resolveAllSources,
29
29
  searchExtraSources
30
- } from "./chunk-UKYWXIDT.js";
30
+ } from "./chunk-FVMYBN5K.js";
31
31
  import {
32
32
  CLI_COLORS,
33
33
  DEFAULT_BRANDING
@@ -181,4 +181,4 @@ var StepSources = ({ projectDir, onContinue, onBack }) => {
181
181
  export {
182
182
  StepSources
183
183
  };
184
- //# sourceMappingURL=chunk-RHAZARG3.js.map
184
+ //# sourceMappingURL=chunk-KZG3EQSH.js.map
@@ -10,7 +10,7 @@ import {
10
10
  KEY_LABEL_SPACE,
11
11
  KEY_LABEL_TAB,
12
12
  KEY_LABEL_VIM
13
- } from "./chunk-6VIOO74O.js";
13
+ } from "./chunk-CBYRFAUN.js";
14
14
  import {
15
15
  CLI_COLORS
16
16
  } from "./chunk-EGMQ3SXN.js";
@@ -102,4 +102,4 @@ var HelpModal = ({ currentStep }) => {
102
102
  export {
103
103
  HelpModal
104
104
  };
105
- //# sourceMappingURL=chunk-KYULKBFC.js.map
105
+ //# sourceMappingURL=chunk-NA6I5P5P.js.map
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  KEY_LABEL_ENTER,
10
10
  KEY_LABEL_ESC
11
- } from "./chunk-6VIOO74O.js";
11
+ } from "./chunk-CBYRFAUN.js";
12
12
  import {
13
13
  CLI_COLORS
14
14
  } from "./chunk-EGMQ3SXN.js";
@@ -123,4 +123,4 @@ var StepConfirm = ({
123
123
  export {
124
124
  StepConfirm
125
125
  };
126
- //# sourceMappingURL=chunk-CJSCCLT5.js.map
126
+ //# sourceMappingURL=chunk-PN65K3LH.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-AUNBGZS4.js";
8
8
  import {
9
9
  useWizardStore
10
- } from "./chunk-GFTBHBRQ.js";
10
+ } from "./chunk-E3MF6GGS.js";
11
11
  import {
12
12
  matrix
13
13
  } from "./chunk-NG2GGK6P.js";
@@ -110,4 +110,4 @@ var StackSelection = ({
110
110
  export {
111
111
  StackSelection
112
112
  };
113
- //# sourceMappingURL=chunk-MOWZ2FLG.js.map
113
+ //# sourceMappingURL=chunk-Q53GBFTO.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-K77I4XGL.js";
5
5
  import {
6
6
  CategoryGrid
7
- } from "./chunk-JZPQI7YI.js";
7
+ } from "./chunk-X6LXHVA6.js";
8
8
  import {
9
9
  getDomainDisplayName,
10
10
  orderDomains
@@ -14,15 +14,15 @@ import {
14
14
  } from "./chunk-AQYAVLZK.js";
15
15
  import {
16
16
  useWizardStore
17
- } from "./chunk-GFTBHBRQ.js";
17
+ } from "./chunk-E3MF6GGS.js";
18
18
  import {
19
19
  KEY_LABEL_ENTER,
20
20
  KEY_LABEL_ESC
21
- } from "./chunk-6VIOO74O.js";
21
+ } from "./chunk-CBYRFAUN.js";
22
22
  import {
23
23
  getAvailableSkills,
24
24
  resolveAlias
25
- } from "./chunk-UKYWXIDT.js";
25
+ } from "./chunk-FVMYBN5K.js";
26
26
  import {
27
27
  getSkillById,
28
28
  matrix
@@ -243,4 +243,4 @@ export {
243
243
  validateBuildStep,
244
244
  StepBuild
245
245
  };
246
- //# sourceMappingURL=chunk-2GD57LQE.js.map
246
+ //# sourceMappingURL=chunk-RBR355UI.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  Wizard
4
- } from "./chunk-TJBOCGLR.js";
4
+ } from "./chunk-7SKGMV7P.js";
5
5
  import {
6
6
  SelectList
7
7
  } from "./chunk-WF5PMBIR.js";
@@ -9,7 +9,7 @@ import {
9
9
  KEY_LABEL_ARROWS_VERT,
10
10
  KEY_LABEL_ENTER,
11
11
  KEY_LABEL_ESC
12
- } from "./chunk-6VIOO74O.js";
12
+ } from "./chunk-CBYRFAUN.js";
13
13
  import {
14
14
  STATUS_MESSAGES,
15
15
  SUCCESS_MESSAGES
@@ -19,7 +19,6 @@ import {
19
19
  claudePluginMarketplaceAdd,
20
20
  claudePluginMarketplaceExists,
21
21
  deriveInstallMode,
22
- detectGlobalInstallation,
23
22
  detectProjectInstallation,
24
23
  ensureBlankGlobalConfig,
25
24
  fetchMarketplace,
@@ -29,7 +28,7 @@ import {
29
28
  installPluginConfig,
30
29
  loadProjectConfig,
31
30
  loadSkillsMatrixFromSource
32
- } from "./chunk-UKYWXIDT.js";
31
+ } from "./chunk-FVMYBN5K.js";
33
32
  import {
34
33
  getSkillById
35
34
  } from "./chunk-NG2GGK6P.js";
@@ -67,8 +66,6 @@ init_esm_shims();
67
66
  import { Flags } from "@oclif/core";
68
67
  import { render, Box as Box2, Text as Text2, useApp } from "ink";
69
68
  import fs from "fs";
70
- import os from "os";
71
- import path2 from "path";
72
69
 
73
70
  // src/cli/lib/permission-checker.tsx
74
71
  init_esm_shims();
@@ -187,50 +184,6 @@ var Dashboard = ({ onSelect, onCancel }) => {
187
184
  ] })
188
185
  ] });
189
186
  };
190
- var GLOBAL_CONFIG_OPTIONS = [
191
- { label: "Edit global installation", value: "edit-global" },
192
- { label: "Create new project installation", value: "create-project" }
193
- ];
194
- var GlobalConfigPrompt = ({
195
- globalConfigDir,
196
- onSelect,
197
- onCancel
198
- }) => {
199
- const { exit } = useApp();
200
- return /* @__PURE__ */ jsxs2(Box2, { flexDirection: "column", children: [
201
- /* @__PURE__ */ jsxs2(Text2, { children: [
202
- "A global installation was found at ",
203
- globalConfigDir
204
- ] }),
205
- /* @__PURE__ */ jsx2(Text2, { children: " " }),
206
- /* @__PURE__ */ jsx2(
207
- SelectList,
208
- {
209
- items: GLOBAL_CONFIG_OPTIONS,
210
- onSelect: (choice) => {
211
- onSelect(choice);
212
- exit();
213
- },
214
- onCancel: () => {
215
- onCancel();
216
- exit();
217
- }
218
- }
219
- ),
220
- /* @__PURE__ */ jsx2(Text2, { children: " " }),
221
- /* @__PURE__ */ jsxs2(Text2, { dimColor: true, children: [
222
- " ",
223
- KEY_LABEL_ARROWS_VERT,
224
- " Navigate ",
225
- " ",
226
- KEY_LABEL_ENTER,
227
- " Confirm ",
228
- " ",
229
- KEY_LABEL_ESC,
230
- " Exit"
231
- ] })
232
- ] });
233
- };
234
187
  async function getDashboardData(projectDir) {
235
188
  const [info, loaded] = await Promise.all([getInstallationInfo(), loadProjectConfig(projectDir)]);
236
189
  const skillCount = loaded?.config?.skills?.length ?? 0;
@@ -315,43 +268,6 @@ var Init = class _Init extends BaseCommand {
315
268
  }
316
269
  return;
317
270
  }
318
- const globalInstallation = await detectGlobalInstallation();
319
- if (globalInstallation) {
320
- const globalConfigDir = path2.join(os.homedir(), CLAUDE_SRC_DIR);
321
- if (process.stdin.isTTY) {
322
- let globalChoice = null;
323
- const { waitUntilExit: waitForPrompt } = render(
324
- /* @__PURE__ */ jsx2(
325
- GlobalConfigPrompt,
326
- {
327
- globalConfigDir,
328
- onSelect: (choice) => {
329
- globalChoice = choice;
330
- },
331
- onCancel: () => {
332
- globalChoice = null;
333
- }
334
- }
335
- )
336
- );
337
- await waitForPrompt();
338
- clearTerminalOutput();
339
- if (globalChoice === "edit-global") {
340
- const editArgs = [];
341
- if (flags.source) {
342
- editArgs.push("--source", flags.source);
343
- }
344
- if (flags.refresh) {
345
- editArgs.push("--refresh");
346
- }
347
- await this.config.runCommand("edit", editArgs);
348
- return;
349
- }
350
- if (globalChoice === null) {
351
- return;
352
- }
353
- }
354
- }
355
271
  const isGlobalRoot = fs.realpathSync(projectDir) === fs.realpathSync(GLOBAL_INSTALL_ROOT);
356
272
  if (!isGlobalRoot) {
357
273
  const created = await ensureBlankGlobalConfig();
@@ -560,4 +476,4 @@ export {
560
476
  showDashboard,
561
477
  Init
562
478
  };
563
- //# sourceMappingURL=chunk-FDIKV4ON.js.map
479
+ //# sourceMappingURL=chunk-SM4FX2IU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/init.tsx","../src/cli/lib/permission-checker.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { Flags } from \"@oclif/core\";\nimport { render, Box, Text, useApp } from \"ink\";\nimport fs from \"fs\";\n\nimport { BaseCommand } from \"../base-command.js\";\nimport { Wizard, type WizardResultV2 } from \"../components/wizard/wizard.js\";\nimport {\n loadSkillsMatrixFromSource,\n getMarketplaceLabel,\n fetchMarketplace,\n type SourceLoadResult,\n} from \"../lib/loading/index.js\";\nimport {\n installLocal,\n installPluginConfig,\n detectProjectInstallation,\n deriveInstallMode,\n} from \"../lib/installation/index.js\";\nimport { checkPermissions } from \"../lib/permission-checker.js\";\nimport { getInstallationInfo } from \"../lib/plugins/plugin-info.js\";\nimport {\n claudePluginInstall,\n claudePluginMarketplaceExists,\n claudePluginMarketplaceAdd,\n} from \"../utils/exec.js\";\nimport {\n ASCII_LOGO,\n CLAUDE_SRC_DIR,\n CLI_BIN_NAME,\n DEFAULT_BRANDING,\n GLOBAL_INSTALL_ROOT,\n} from \"../consts.js\";\nimport { SelectList, type SelectListItem } from \"../components/common/select-list.js\";\nimport {\n KEY_LABEL_ARROWS_VERT,\n KEY_LABEL_ENTER,\n KEY_LABEL_ESC,\n} from \"../components/wizard/hotkeys.js\";\nimport { getErrorMessage } from \"../utils/errors.js\";\nimport { EXIT_CODES } from \"../lib/exit-codes.js\";\nimport { getSkillById } from \"../lib/matrix/matrix-provider\";\nimport { loadProjectConfig } from \"../lib/configuration/project-config.js\";\nimport {\n enableBuffering,\n drainBuffer,\n disableBuffering,\n type StartupMessage,\n} from \"../utils/logger.js\";\nimport { SUCCESS_MESSAGES, STATUS_MESSAGES } from \"../utils/messages.js\";\nimport { ensureBlankGlobalConfig } from \"../lib/configuration/config-writer.js\";\n\n/** Clears the visible terminal area so the next render starts clean. */\nfunction clearTerminalOutput(): void {\n process.stdout.write(\"\\x1b[2J\\x1b[H\");\n}\n\nconst DASHBOARD_OPTIONS: SelectListItem<string>[] = [\n { label: \"Edit\", value: \"edit\" },\n { label: \"Compile\", value: \"compile\" },\n { label: \"Doctor\", value: \"doctor\" },\n { label: \"List\", value: \"list\" },\n];\n\ntype DashboardProps = {\n onSelect: (command: string) => void;\n onCancel: () => void;\n};\n\nconst Dashboard: React.FC<DashboardProps> = ({ onSelect, onCancel }) => {\n const { exit } = useApp();\n\n return (\n <Box flexDirection=\"column\">\n <Text bold>{DEFAULT_BRANDING.NAME}</Text>\n <Text> </Text>\n <SelectList\n items={DASHBOARD_OPTIONS}\n onSelect={(command) => {\n onSelect(command);\n exit();\n }}\n onCancel={() => {\n onCancel();\n exit();\n }}\n />\n <Text> </Text>\n <Text dimColor>\n {\" \"}\n {KEY_LABEL_ARROWS_VERT} Navigate {\" \"}\n {KEY_LABEL_ENTER} Confirm {\" \"}\n {KEY_LABEL_ESC} Exit\n </Text>\n </Box>\n );\n};\n\nexport type DashboardData = {\n skillCount: number;\n agentCount: number;\n mode: string;\n source?: string;\n};\n\n/** Gathers dashboard data from the installation and project config. */\nexport async function getDashboardData(projectDir: string): Promise<DashboardData> {\n const [info, loaded] = await Promise.all([getInstallationInfo(), loadProjectConfig(projectDir)]);\n\n // Skill count from config (canonical source of truth for installed skills)\n const skillCount = loaded?.config?.skills?.length ?? 0;\n // Agent count from filesystem (compiled .md files in agents dir)\n const agentCount = info?.agentCount ?? 0;\n const mode =\n info?.mode ?? (loaded?.config?.skills ? deriveInstallMode(loaded.config.skills) : \"local\");\n const source = loaded?.config?.source;\n\n return { skillCount, agentCount, mode, source };\n}\n\n/** Formats the dashboard summary as plain text lines (for non-interactive/test output). */\nexport function formatDashboardText(data: DashboardData): string {\n const modeLabel = data.mode === \"plugin\" ? \"Plugin\" : \"Local\";\n const lines = [\n DEFAULT_BRANDING.NAME,\n \"\",\n ` Skills: ${data.skillCount} installed`,\n ` Agents: ${data.agentCount} compiled`,\n ` Mode: ${modeLabel}`,\n ];\n if (data.source) {\n lines.push(` Source: ${data.source}`);\n }\n lines.push(\"\");\n lines.push(` [Edit] [Compile] [Doctor] [List]`);\n return lines.join(\"\\n\");\n}\n\n/**\n * Shows the project dashboard and returns the selected command (or null if cancelled).\n * In non-interactive environments (no TTY), prints the summary text and returns null.\n */\nexport async function showDashboard(\n projectDir: string,\n log?: (message: string) => void,\n): Promise<string | null> {\n const data = await getDashboardData(projectDir);\n\n // Non-interactive: print text summary and exit (CI, piped, tests)\n if (!process.stdin.isTTY) {\n const output = log ?? console.log;\n output(formatDashboardText(data));\n return null;\n }\n\n let selectedCommand: string | null = null;\n\n const { waitUntilExit } = render(\n <Dashboard\n onSelect={(command) => {\n selectedCommand = command;\n }}\n onCancel={() => {\n selectedCommand = null;\n }}\n />,\n );\n\n await waitUntilExit();\n clearTerminalOutput();\n\n return selectedCommand;\n}\n\nexport default class Init extends BaseCommand {\n static summary = `Initialize ${DEFAULT_BRANDING.NAME} in this project`;\n static description =\n \"Interactive wizard to set up skills and agents. Supports Plugin Mode (native install) and Local Mode (copy to .claude/).\";\n\n static examples = [\n {\n description: \"Start the setup wizard\",\n command: \"<%= config.bin %> <%= command.id %>\",\n },\n {\n description: \"Initialize from a custom marketplace\",\n command: \"<%= config.bin %> <%= command.id %> --source github:org/marketplace\",\n },\n {\n description: \"Force refresh skills from remote\",\n command: \"<%= config.bin %> <%= command.id %> --refresh\",\n },\n ];\n\n static flags = {\n ...BaseCommand.baseFlags,\n refresh: Flags.boolean({\n description: \"Force refresh from remote source\",\n default: false,\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(Init);\n const projectDir = process.cwd();\n\n // For \"already initialized\" check, only look at the target directory (no global fallback)\n const existingInstallation = await detectProjectInstallation(projectDir);\n\n if (existingInstallation) {\n const selectedCommand = await showDashboard(projectDir, (msg) => this.log(msg));\n if (selectedCommand) {\n await this.config.runCommand(selectedCommand);\n }\n return;\n }\n\n // Auto-create blank global config on first init from a project directory.\n // This ensures the project config can always import from global.\n // Resolve both paths through realpathSync — on macOS /var is a symlink to\n // /private/var, so os.homedir() and process.cwd() can return different\n // prefixes for the same directory.\n const isGlobalRoot = fs.realpathSync(projectDir) === fs.realpathSync(GLOBAL_INSTALL_ROOT);\n if (!isGlobalRoot) {\n const created = await ensureBlankGlobalConfig();\n if (created) {\n this.log(\"Created blank global config at ~/\" + CLAUDE_SRC_DIR);\n }\n }\n\n enableBuffering();\n\n let sourceResult: SourceLoadResult;\n let startupMessages: StartupMessage[] = [];\n try {\n sourceResult = await loadSkillsMatrixFromSource({\n sourceFlag: flags.source,\n projectDir,\n forceRefresh: flags.refresh,\n });\n } catch (error) {\n disableBuffering();\n this.error(getErrorMessage(error), {\n exit: EXIT_CODES.ERROR,\n });\n }\n\n startupMessages = drainBuffer();\n disableBuffering();\n\n let wizardResult: WizardResultV2 | null = null;\n\n const marketplaceLabel = getMarketplaceLabel(sourceResult);\n const { waitUntilExit } = render(\n <Wizard\n version={this.config.version}\n marketplaceLabel={marketplaceLabel}\n logo={ASCII_LOGO}\n projectDir={projectDir}\n startupMessages={startupMessages}\n onComplete={(result) => {\n wizardResult = result;\n }}\n onCancel={() => {\n this.log(\"Setup cancelled\");\n }}\n />,\n );\n\n await waitUntilExit();\n\n // TypeScript can't track that onComplete callback mutates wizardResult before waitUntilExit resolves\n const result = wizardResult as WizardResultV2 | null;\n\n if (!result || result.cancelled) {\n this.exit(EXIT_CODES.CANCELLED);\n }\n\n if (result.skills.length === 0) {\n this.error(\"No skills selected\", { exit: EXIT_CODES.ERROR });\n }\n\n await this.handleInstallation(result, sourceResult, flags);\n }\n\n private async handleInstallation(\n result: WizardResultV2,\n sourceResult: SourceLoadResult,\n flags: { source?: string; refresh: boolean },\n ): Promise<void> {\n const projectDir = process.cwd();\n const installMode = deriveInstallMode(result.skills);\n\n this.log(\"\\n\");\n this.log(`Selected ${result.skills.length} skills`);\n this.log(\n `Install mode: ${installMode === \"plugin\" ? \"Plugin (native install)\" : \"Local (copy to .claude/skills/)\"}`,\n );\n\n if (installMode === \"plugin\") {\n await this.installIndividualPlugins(result, sourceResult, flags, projectDir);\n return;\n }\n\n await this.installLocalMode(result, sourceResult, flags, projectDir);\n }\n\n private async installIndividualPlugins(\n result: WizardResultV2,\n sourceResult: SourceLoadResult,\n flags: { source?: string },\n projectDir: string,\n ): Promise<void> {\n // Lazily resolve marketplace name if not already set (e.g. BUILT_IN_MATRIX skips fetch)\n if (!sourceResult.marketplace) {\n try {\n const marketplaceResult = await fetchMarketplace(sourceResult.sourceConfig.source, {});\n sourceResult.marketplace = marketplaceResult.marketplace.name;\n } catch {\n this.warn(\"Could not resolve marketplace. Falling back to Local Mode...\");\n await this.installLocalMode(result, sourceResult, flags, projectDir);\n return;\n }\n }\n\n // After lazy resolution, marketplace is guaranteed to be set (or we returned above)\n const marketplace = sourceResult.marketplace;\n\n const marketplaceExists = await claudePluginMarketplaceExists(marketplace);\n\n if (!marketplaceExists) {\n this.log(`Registering marketplace \"${marketplace}\"...`);\n try {\n const marketplaceSource = sourceResult.sourceConfig.source.replace(/^github:/, \"\");\n await claudePluginMarketplaceAdd(marketplaceSource);\n this.log(`Registered marketplace: ${marketplace}`);\n } catch (error) {\n this.error(getErrorMessage(error), {\n exit: EXIT_CODES.ERROR,\n });\n }\n }\n\n this.log(\"Installing skill plugins...\");\n for (const skill of result.skills.filter((s) => s.source !== \"local\")) {\n const pluginRef = `${skill.id}@${marketplace}`;\n const pluginScope = skill.scope === \"global\" ? \"user\" : \"project\";\n try {\n await claudePluginInstall(pluginRef, pluginScope, projectDir);\n this.log(` Installed ${pluginRef}`);\n } catch (error) {\n this.error(`Failed to install plugin ${pluginRef}: ${getErrorMessage(error)}`, {\n exit: EXIT_CODES.ERROR,\n });\n }\n }\n\n const pluginSkillCount = result.skills.filter((s) => s.source !== \"local\").length;\n this.log(`Installed ${pluginSkillCount} skill plugins\\n`);\n\n this.log(\"Generating configuration...\");\n try {\n const configResult = await installPluginConfig({\n wizardResult: result,\n sourceResult,\n projectDir,\n sourceFlag: flags.source,\n });\n\n if (configResult.wasMerged) {\n this.log(`Merged with existing config at ${configResult.mergedConfigPath}`);\n }\n\n this.log(`Configuration saved (${configResult.config.agents.length} agents)\\n`);\n this.log(STATUS_MESSAGES.COMPILING_AGENTS);\n this.log(`Compiled ${configResult.compiledAgents.length} agents to .claude/agents/\\n`);\n\n this.log(`${SUCCESS_MESSAGES.INIT_SUCCESS}\\n`);\n this.log(\"Agents compiled to:\");\n this.log(` ${configResult.agentsDir}`);\n for (const agentName of configResult.compiledAgents) {\n this.log(` ${agentName}.md`);\n }\n this.log(\"\");\n this.log(\"Configuration:\");\n this.log(` ${configResult.configPath}`);\n this.log(\"\");\n this.log(\"To customize agent-skill assignments:\");\n this.log(` 1. Edit .claude-src/config.ts`);\n this.log(` 2. Run '${CLI_BIN_NAME} compile' to regenerate agents`);\n this.log(\"\");\n\n const permissionWarning = await checkPermissions(projectDir);\n if (permissionWarning) {\n const { waitUntilExit } = render(permissionWarning);\n await waitUntilExit();\n }\n } catch (error) {\n this.handleError(error);\n }\n }\n\n private async installLocalMode(\n result: WizardResultV2,\n sourceResult: SourceLoadResult,\n flags: { source?: string },\n projectDir: string,\n ): Promise<void> {\n this.log(\"Copying skills to local directory...\");\n try {\n const installResult = await installLocal({\n wizardResult: result,\n sourceResult,\n projectDir,\n sourceFlag: flags.source,\n });\n\n this.log(`Copied ${installResult.copiedSkills.length} skills to .claude/skills/\\n`);\n this.log(\"Generating configuration...\");\n\n if (installResult.wasMerged) {\n this.log(`Merged with existing config at ${installResult.mergedConfigPath}`);\n }\n\n this.log(`Configuration saved (${installResult.config.agents.length} agents)\\n`);\n this.log(STATUS_MESSAGES.COMPILING_AGENTS);\n this.log(`Compiled ${installResult.compiledAgents.length} agents to .claude/agents/\\n`);\n\n this.log(`${SUCCESS_MESSAGES.INIT_SUCCESS}\\n`);\n this.log(\"Skills copied to:\");\n this.log(` ${installResult.skillsDir}`);\n for (const copiedSkill of installResult.copiedSkills) {\n const displayName = getSkillById(copiedSkill.skillId).displayName;\n this.log(` ${displayName}/`);\n }\n this.log(\"\");\n this.log(\"Agents compiled to:\");\n this.log(` ${installResult.agentsDir}`);\n for (const agentName of installResult.compiledAgents) {\n this.log(` ${agentName}.md`);\n }\n this.log(\"\");\n this.log(\"Configuration:\");\n this.log(` ${installResult.configPath}`);\n this.log(\"\");\n this.log(\"To customize agent-skill assignments:\");\n this.log(` 1. Edit .claude-src/config.ts`);\n this.log(` 2. Run '${CLI_BIN_NAME} compile' to regenerate agents`);\n this.log(\"\");\n\n const permissionWarning = await checkPermissions(projectDir);\n if (permissionWarning) {\n const { waitUntilExit } = render(permissionWarning);\n await waitUntilExit();\n }\n } catch (error) {\n this.handleError(error);\n }\n }\n}\n","import React from \"react\";\n\nimport { Text, Box } from \"ink\";\nimport path from \"path\";\n\nimport { CLAUDE_DIR, CLI_COLORS, MAX_CONFIG_FILE_SIZE } from \"../consts\";\nimport { fileExists, readFileSafe } from \"../utils/fs\";\nimport { warn } from \"../utils/logger\";\nimport { settingsFileSchema, warnUnknownFields } from \"./schemas\";\n\ntype PermissionConfig = {\n allow?: string[];\n deny?: string[];\n};\n\ntype SettingsFile = {\n permissions?: PermissionConfig;\n};\n\nexport async function checkPermissions(projectRoot: string): Promise<React.ReactElement | null> {\n const settingsPath = path.join(projectRoot, CLAUDE_DIR, \"settings.json\");\n const localSettingsPath = path.join(projectRoot, CLAUDE_DIR, \"settings.local.json\");\n\n let permissions: PermissionConfig | undefined;\n\n for (const filePath of [localSettingsPath, settingsPath]) {\n if (await fileExists(filePath)) {\n try {\n const content = await readFileSafe(filePath, MAX_CONFIG_FILE_SIZE);\n const raw = JSON.parse(content);\n if (typeof raw === \"object\" && raw !== null && !Array.isArray(raw)) {\n // Known Claude CLI settings.json fields (permissions is ours; the rest are managed by Claude CLI)\n const EXPECTED_SETTINGS_KEYS = [\n \"permissions\",\n \"enabledPlugins\",\n \"env\",\n \"allowedTools\",\n \"customInstructions\",\n \"defaultModel\",\n ] as const;\n warnUnknownFields(\n raw as Record<string, unknown>,\n EXPECTED_SETTINGS_KEYS,\n `settings file '${filePath}'`,\n );\n }\n const result = settingsFileSchema.safeParse(raw);\n const parsed: SettingsFile = result.success ? (result.data as SettingsFile) : {};\n if (parsed.permissions) {\n permissions = parsed.permissions;\n break;\n }\n } catch {\n warn(`Malformed settings file at '${filePath}' — skipping`);\n }\n }\n }\n\n if (!permissions) {\n return (\n <Box flexDirection=\"column\" borderStyle=\"round\" borderColor={CLI_COLORS.WARNING} padding={1}>\n <Text bold color={CLI_COLORS.WARNING}>\n Permission Notice\n </Text>\n <Text>No permissions configured in .claude/settings.json</Text>\n <Text>Agents will prompt for approval on each tool use.</Text>\n <Text> </Text>\n <Text>For autonomous operation, add to .claude/settings.json:</Text>\n <Text> </Text>\n <Text color=\"dim\">{\"{\"}</Text>\n <Text color=\"dim\">{' \"permissions\": {'}</Text>\n <Text color=\"dim\">{' \"allow\": ['}</Text>\n <Text color=\"dim\">{' \"Read(*)\",'}</Text>\n <Text color=\"dim\">{' \"Bash(git *)\",'}</Text>\n <Text color=\"dim\">{' \"Bash(bun *)\"'}</Text>\n <Text color=\"dim\">{\" ]\"}</Text>\n <Text color=\"dim\">{\" }\"}</Text>\n <Text color=\"dim\">{\"}\"}</Text>\n </Box>\n );\n }\n\n const hasRestrictiveBash = permissions.deny?.some(\n (rule) => rule === \"Bash(*)\" || rule === \"Bash\",\n );\n const hasNoAllows = !permissions.allow || permissions.allow.length === 0;\n\n if (hasRestrictiveBash || hasNoAllows) {\n return (\n <Box flexDirection=\"column\" borderStyle=\"round\" borderColor={CLI_COLORS.WARNING} padding={1}>\n <Text bold color={CLI_COLORS.WARNING}>\n Permission Warnings\n </Text>\n {hasRestrictiveBash && (\n <Text>\n ⚠ Bash is denied in permissions. Some agents require Bash for git, testing, and build\n commands.\n </Text>\n )}\n {hasNoAllows && (\n <Text>⚠ No allow rules configured. Agents will prompt for each tool use.</Text>\n )}\n </Box>\n );\n }\n\n return null;\n}\n"],"mappings":"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","names":["Box","Text","jsx","jsxs","Box","Text","result"]}
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-7SOPVGDV.js";
5
5
  import {
6
6
  SearchModal
7
- } from "./chunk-2MHSOPIU.js";
7
+ } from "./chunk-UFKDY45I.js";
8
8
  import {
9
9
  useFocusedListItem
10
10
  } from "./chunk-GG4BSB6S.js";
@@ -260,4 +260,4 @@ var SourceGrid = ({
260
260
  export {
261
261
  SourceGrid
262
262
  };
263
- //# sourceMappingURL=chunk-COZ75NET.js.map
263
+ //# sourceMappingURL=chunk-TPXDHJDB.js.map
@@ -21,13 +21,13 @@ import {
21
21
  KEY_LABEL_ENTER,
22
22
  KEY_LABEL_ESC,
23
23
  isHotkey
24
- } from "./chunk-6VIOO74O.js";
24
+ } from "./chunk-CBYRFAUN.js";
25
25
  import {
26
26
  DEFAULT_SOURCE,
27
27
  addSource,
28
28
  getSourceSummary,
29
29
  removeSource
30
- } from "./chunk-UKYWXIDT.js";
30
+ } from "./chunk-FVMYBN5K.js";
31
31
  import {
32
32
  getErrorMessage,
33
33
  verbose
@@ -270,4 +270,4 @@ var StepSettings = ({
270
270
  export {
271
271
  StepSettings
272
272
  };
273
- //# sourceMappingURL=chunk-2ZQKORJI.js.map
273
+ //# sourceMappingURL=chunk-TUGXTCGX.js.map
@@ -6,7 +6,7 @@ import {
6
6
  KEY_LABEL_ARROWS_VERT,
7
7
  KEY_LABEL_ENTER,
8
8
  KEY_LABEL_ESC
9
- } from "./chunk-6VIOO74O.js";
9
+ } from "./chunk-CBYRFAUN.js";
10
10
  import {
11
11
  CLI_COLORS
12
12
  } from "./chunk-EGMQ3SXN.js";
@@ -81,4 +81,4 @@ var SearchModal = ({
81
81
  export {
82
82
  SearchModal
83
83
  };
84
- //# sourceMappingURL=chunk-2MHSOPIU.js.map
84
+ //# sourceMappingURL=chunk-UFKDY45I.js.map
@@ -1,19 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  StackSelection
4
- } from "./chunk-MOWZ2FLG.js";
4
+ } from "./chunk-Q53GBFTO.js";
5
5
  import {
6
6
  useMeasuredHeight
7
7
  } from "./chunk-K77I4XGL.js";
8
8
  import {
9
9
  DomainSelection
10
- } from "./chunk-VMTZ5WC5.js";
10
+ } from "./chunk-HJY4354Y.js";
11
11
  import {
12
12
  ViewTitle
13
13
  } from "./chunk-AQYAVLZK.js";
14
14
  import {
15
15
  useWizardStore
16
- } from "./chunk-GFTBHBRQ.js";
16
+ } from "./chunk-E3MF6GGS.js";
17
17
  import {
18
18
  init_esm_shims
19
19
  } from "./chunk-DHET7RCE.js";
@@ -37,4 +37,4 @@ var StepStack = ({ onCancel }) => {
37
37
  export {
38
38
  StepStack
39
39
  };
40
- //# sourceMappingURL=chunk-W3GHDONP.js.map
40
+ //# sourceMappingURL=chunk-ULP3GGXG.js.map
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  HOTKEY_TOGGLE_LABELS,
10
10
  isHotkey
11
- } from "./chunk-6VIOO74O.js";
11
+ } from "./chunk-CBYRFAUN.js";
12
12
  import {
13
13
  getSkillById
14
14
  } from "./chunk-NG2GGK6P.js";
@@ -341,4 +341,4 @@ var CategoryGrid = ({
341
341
  export {
342
342
  CategoryGrid
343
343
  };
344
- //# sourceMappingURL=chunk-JZPQI7YI.js.map
344
+ //# sourceMappingURL=chunk-X6LXHVA6.js.map
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  compileAllAgentPlugins,
4
4
  printAgentCompilationSummary
5
- } from "../../chunk-RO6BG4ZW.js";
5
+ } from "../../chunk-7JVDZFJG.js";
6
6
  import {
7
7
  compileAllSkillPlugins,
8
8
  compileSkillPlugin,
9
9
  printCompilationSummary
10
- } from "../../chunk-UKYWXIDT.js";
10
+ } from "../../chunk-FVMYBN5K.js";
11
11
  import "../../chunk-RRBWNEG3.js";
12
12
  import "../../chunk-NG2GGK6P.js";
13
13
  import {
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  getAgentDefinitions
4
- } from "../../chunk-RO6BG4ZW.js";
4
+ } from "../../chunk-7JVDZFJG.js";
5
5
  import {
6
6
  compileStackPlugin,
7
7
  loadStacks,
8
8
  printStackCompilationSummary
9
- } from "../../chunk-UKYWXIDT.js";
9
+ } from "../../chunk-FVMYBN5K.js";
10
10
  import "../../chunk-RRBWNEG3.js";
11
11
  import "../../chunk-NG2GGK6P.js";
12
12
  import {
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  getAgentDefinitions,
4
4
  recompileAgents
5
- } from "../chunk-RO6BG4ZW.js";
5
+ } from "../chunk-7JVDZFJG.js";
6
6
  import {
7
7
  ERROR_MESSAGES,
8
8
  INFO_MESSAGES,
@@ -13,7 +13,7 @@ import {
13
13
  detectProjectInstallation,
14
14
  discoverAllPluginSkills,
15
15
  resolveSource
16
- } from "../chunk-UKYWXIDT.js";
16
+ } from "../chunk-FVMYBN5K.js";
17
17
  import {
18
18
  parseFrontmatter
19
19
  } from "../chunk-RRBWNEG3.js";
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ConfigShow
4
- } from "../../chunk-HIVZDWJC.js";
5
- import "../../chunk-UKYWXIDT.js";
4
+ } from "../../chunk-GNA6IOQZ.js";
5
+ import "../../chunk-FVMYBN5K.js";
6
6
  import "../../chunk-RRBWNEG3.js";
7
7
  import "../../chunk-NG2GGK6P.js";
8
8
  import "../../chunk-IJLAVOKZ.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  getProjectConfigPath
4
- } from "../../chunk-UKYWXIDT.js";
4
+ } from "../../chunk-FVMYBN5K.js";
5
5
  import "../../chunk-RRBWNEG3.js";
6
6
  import "../../chunk-NG2GGK6P.js";
7
7
  import {
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ConfigShow
4
- } from "../../chunk-HIVZDWJC.js";
5
- import "../../chunk-UKYWXIDT.js";
4
+ } from "../../chunk-GNA6IOQZ.js";
5
+ import "../../chunk-FVMYBN5K.js";
6
6
  import "../../chunk-RRBWNEG3.js";
7
7
  import "../../chunk-NG2GGK6P.js";
8
8
  import "../../chunk-IJLAVOKZ.js";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  loadSkillsMatrixFromSource,
4
4
  readForkedFromMetadata
5
- } from "../chunk-UKYWXIDT.js";
5
+ } from "../chunk-FVMYBN5K.js";
6
6
  import "../chunk-RRBWNEG3.js";
7
7
  import "../chunk-NG2GGK6P.js";
8
8
  import {
@@ -5,7 +5,7 @@ import {
5
5
  loadProjectConfig,
6
6
  loadSkillsMatrixFromSource,
7
7
  validateProjectConfig
8
- } from "../chunk-UKYWXIDT.js";
8
+ } from "../chunk-FVMYBN5K.js";
9
9
  import "../chunk-RRBWNEG3.js";
10
10
  import {
11
11
  matrix