@agents-inc/cli 0.82.2 → 0.82.4

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 (88) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/{chunk-R5LEXRV3.js → chunk-35ESNSF5.js} +2 -2
  3. package/dist/{chunk-3BM5F4IX.js → chunk-3PB7KSF7.js} +3 -3
  4. package/dist/{chunk-6EMIA36T.js → chunk-5AHKXBNC.js} +2 -2
  5. package/dist/{chunk-VO6JKRLT.js → chunk-63E7LOLB.js} +2 -2
  6. package/dist/{chunk-SXGCCUTH.js → chunk-AAW3PYXA.js} +10 -2
  7. package/dist/chunk-AAW3PYXA.js.map +1 -0
  8. package/dist/{chunk-57HHZMWR.js → chunk-FBLRTXEA.js} +3 -3
  9. package/dist/{chunk-YXOZJWP3.js → chunk-FIXWR56O.js} +2 -2
  10. package/dist/{chunk-ZKQ4XQNO.js → chunk-JQDOUNHF.js} +20 -12
  11. package/dist/chunk-JQDOUNHF.js.map +1 -0
  12. package/dist/{chunk-HRMPQ4DV.js → chunk-K76AXQ7A.js} +2 -2
  13. package/dist/{chunk-L4JYOUGS.js → chunk-KB6LCTCD.js} +14 -6
  14. package/dist/chunk-KB6LCTCD.js.map +1 -0
  15. package/dist/{chunk-ZAYTTG3M.js → chunk-KEW246HB.js} +2 -2
  16. package/dist/{chunk-RX6HPZ7A.js → chunk-KZLGBHDZ.js} +2 -2
  17. package/dist/{chunk-4DXSCGVI.js → chunk-LOB3OU2D.js} +4 -4
  18. package/dist/chunk-LOB3OU2D.js.map +1 -0
  19. package/dist/{chunk-TY5BOAAA.js → chunk-LQ3EJBUN.js} +5 -2
  20. package/dist/chunk-LQ3EJBUN.js.map +1 -0
  21. package/dist/{chunk-GMR4PQX3.js → chunk-M2CS5EOK.js} +3 -3
  22. package/dist/{chunk-ABBXUIMQ.js → chunk-RTXJLZ7A.js} +2 -2
  23. package/dist/commands/build/plugins.js +2 -2
  24. package/dist/commands/build/stack.js +2 -2
  25. package/dist/commands/compile.js +2 -2
  26. package/dist/commands/config/index.js +2 -2
  27. package/dist/commands/config/path.js +1 -1
  28. package/dist/commands/config/show.js +2 -2
  29. package/dist/commands/diff.js +1 -1
  30. package/dist/commands/doctor.js +1 -1
  31. package/dist/commands/edit.js +62 -14
  32. package/dist/commands/edit.js.map +1 -1
  33. package/dist/commands/eject.js +1 -1
  34. package/dist/commands/import/skill.js +1 -1
  35. package/dist/commands/info.js +1 -1
  36. package/dist/commands/init.js +13 -13
  37. package/dist/commands/list.js +1 -1
  38. package/dist/commands/new/agent.js +2 -2
  39. package/dist/commands/new/marketplace.js +2 -2
  40. package/dist/commands/new/skill.js +2 -2
  41. package/dist/commands/outdated.js +1 -1
  42. package/dist/commands/search.js +1 -1
  43. package/dist/commands/uninstall.js +1 -1
  44. package/dist/commands/update.js +2 -2
  45. package/dist/commands/validate.js +1 -1
  46. package/dist/components/wizard/category-grid.test.js +2 -2
  47. package/dist/components/wizard/domain-selection.js +3 -3
  48. package/dist/components/wizard/help-modal.js +8 -1
  49. package/dist/components/wizard/source-grid.test.js +2 -2
  50. package/dist/components/wizard/stack-selection.js +3 -3
  51. package/dist/components/wizard/step-agents.js +3 -3
  52. package/dist/components/wizard/step-agents.test.js +3 -3
  53. package/dist/components/wizard/step-build.js +3 -3
  54. package/dist/components/wizard/step-build.test.js +3 -3
  55. package/dist/components/wizard/step-confirm.test.js +2 -2
  56. package/dist/components/wizard/step-settings.js +2 -2
  57. package/dist/components/wizard/step-settings.test.js +5 -5
  58. package/dist/components/wizard/step-sources.js +3 -3
  59. package/dist/components/wizard/step-sources.test.js +3 -3
  60. package/dist/components/wizard/step-stack.js +4 -4
  61. package/dist/components/wizard/step-stack.test.js +4 -4
  62. package/dist/components/wizard/wizard-layout.js +4 -4
  63. package/dist/components/wizard/wizard.js +12 -12
  64. package/dist/hooks/init.js +13 -13
  65. package/dist/{source-loader-C2QCBXOB.js → source-loader-FMDHHYDQ.js} +2 -2
  66. package/dist/{source-manager-DLEHJUZL.js → source-manager-YMJ4Z5UG.js} +2 -2
  67. package/dist/stores/wizard-store.js +2 -2
  68. package/dist/stores/wizard-store.test.js +26 -2
  69. package/dist/stores/wizard-store.test.js.map +1 -1
  70. package/package.json +1 -1
  71. package/dist/chunk-4DXSCGVI.js.map +0 -1
  72. package/dist/chunk-L4JYOUGS.js.map +0 -1
  73. package/dist/chunk-SXGCCUTH.js.map +0 -1
  74. package/dist/chunk-TY5BOAAA.js.map +0 -1
  75. package/dist/chunk-ZKQ4XQNO.js.map +0 -1
  76. /package/dist/{chunk-R5LEXRV3.js.map → chunk-35ESNSF5.js.map} +0 -0
  77. /package/dist/{chunk-3BM5F4IX.js.map → chunk-3PB7KSF7.js.map} +0 -0
  78. /package/dist/{chunk-6EMIA36T.js.map → chunk-5AHKXBNC.js.map} +0 -0
  79. /package/dist/{chunk-VO6JKRLT.js.map → chunk-63E7LOLB.js.map} +0 -0
  80. /package/dist/{chunk-57HHZMWR.js.map → chunk-FBLRTXEA.js.map} +0 -0
  81. /package/dist/{chunk-YXOZJWP3.js.map → chunk-FIXWR56O.js.map} +0 -0
  82. /package/dist/{chunk-HRMPQ4DV.js.map → chunk-K76AXQ7A.js.map} +0 -0
  83. /package/dist/{chunk-ZAYTTG3M.js.map → chunk-KEW246HB.js.map} +0 -0
  84. /package/dist/{chunk-RX6HPZ7A.js.map → chunk-KZLGBHDZ.js.map} +0 -0
  85. /package/dist/{chunk-GMR4PQX3.js.map → chunk-M2CS5EOK.js.map} +0 -0
  86. /package/dist/{chunk-ABBXUIMQ.js.map → chunk-RTXJLZ7A.js.map} +0 -0
  87. /package/dist/{source-loader-C2QCBXOB.js.map → source-loader-FMDHHYDQ.js.map} +0 -0
  88. /package/dist/{source-manager-DLEHJUZL.js.map → source-manager-YMJ4Z5UG.js.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,24 @@ Each release has detailed notes in its own file under [`changelogs/`](./changelo
7
7
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
8
8
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
9
9
 
10
+ ## [0.82.4] - 2026-03-24
11
+
12
+ **Edit command fixes: agent detection, local skill copy, scope-aware stack splitting**
13
+
14
+ - `splitConfigByScope` no longer drops project skills from global agents' stacks
15
+ - `cc edit` detects agent additions/removals and copies local skills by scope
16
+
17
+ See [changelogs/0.82.4.md](./changelogs/0.82.4.md) for full details.
18
+
19
+ ## [0.82.3] - 2026-03-24
20
+
21
+ **Disable scope toggle when editing from global scope**
22
+
23
+ - S hotkey disabled in build/agents steps when no project context
24
+ - Footer hint and help modal hide scope key in global edit mode
25
+
26
+ See [changelogs/0.82.3.md](./changelogs/0.82.3.md) for full details.
27
+
10
28
  ## [0.82.2] - 2026-03-23
11
29
 
12
30
  **E2E test cleanup, source path fixes, domain subnav hoisting**
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-4QA5TIBU.js";
12
12
  import {
13
13
  useWizardStore
14
- } from "./chunk-TY5BOAAA.js";
14
+ } from "./chunk-LQ3EJBUN.js";
15
15
  import {
16
16
  matrix,
17
17
  typedKeys
@@ -271,4 +271,4 @@ var StepAgents = () => {
271
271
  export {
272
272
  StepAgents
273
273
  };
274
- //# sourceMappingURL=chunk-R5LEXRV3.js.map
274
+ //# sourceMappingURL=chunk-35ESNSF5.js.map
@@ -13,7 +13,7 @@ import {
13
13
  } from "./chunk-5BRHJD7Q.js";
14
14
  import {
15
15
  useWizardStore
16
- } from "./chunk-TY5BOAAA.js";
16
+ } from "./chunk-LQ3EJBUN.js";
17
17
  import {
18
18
  HOTKEY_SET_ALL_LOCAL,
19
19
  HOTKEY_SET_ALL_PLUGIN,
@@ -22,7 +22,7 @@ import {
22
22
  import {
23
23
  resolveAllSources,
24
24
  searchExtraSources
25
- } from "./chunk-L4JYOUGS.js";
25
+ } from "./chunk-KB6LCTCD.js";
26
26
  import {
27
27
  CLI_COLORS,
28
28
  DEFAULT_BRANDING
@@ -168,4 +168,4 @@ var StepSources = ({ projectDir, onContinue, onBack }) => {
168
168
  export {
169
169
  StepSources
170
170
  };
171
- //# sourceMappingURL=chunk-3BM5F4IX.js.map
171
+ //# sourceMappingURL=chunk-3PB7KSF7.js.map
@@ -24,7 +24,7 @@ import {
24
24
  addSource,
25
25
  getSourceSummary,
26
26
  removeSource
27
- } from "./chunk-L4JYOUGS.js";
27
+ } from "./chunk-KB6LCTCD.js";
28
28
  import {
29
29
  getErrorMessage,
30
30
  verbose
@@ -263,4 +263,4 @@ var StepSettings = ({
263
263
  export {
264
264
  StepSettings
265
265
  };
266
- //# sourceMappingURL=chunk-6EMIA36T.js.map
266
+ //# sourceMappingURL=chunk-5AHKXBNC.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  StackSelection
4
- } from "./chunk-HRMPQ4DV.js";
4
+ } from "./chunk-K76AXQ7A.js";
5
5
  import {
6
6
  useMeasuredHeight
7
7
  } from "./chunk-K77I4XGL.js";
@@ -21,4 +21,4 @@ var StepStack = ({ onCancel }) => {
21
21
  export {
22
22
  StepStack
23
23
  };
24
- //# sourceMappingURL=chunk-VO6JKRLT.js.map
24
+ //# sourceMappingURL=chunk-63E7LOLB.js.map
@@ -1,4 +1,7 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ useWizardStore
4
+ } from "./chunk-LQ3EJBUN.js";
2
5
  import {
3
6
  HOTKEY_HELP,
4
7
  HOTKEY_SCOPE,
@@ -69,7 +72,12 @@ var HelpSectionView = ({ section }) => /* @__PURE__ */ jsxs(Box, { flexDirection
69
72
  ] }, key))
70
73
  ] });
71
74
  var HelpModal = ({ currentStep }) => {
72
- const stepSection = STEP_SECTIONS[currentStep];
75
+ const { isEditingFromGlobalScope } = useWizardStore();
76
+ const rawSection = STEP_SECTIONS[currentStep];
77
+ const stepSection = rawSection && isEditingFromGlobalScope ? {
78
+ ...rawSection,
79
+ keys: rawSection.keys.filter((k) => k.key !== HOTKEY_SCOPE.label)
80
+ } : rawSection;
73
81
  return /* @__PURE__ */ jsxs(
74
82
  Box,
75
83
  {
@@ -100,4 +108,4 @@ var HelpModal = ({ currentStep }) => {
100
108
  export {
101
109
  HelpModal
102
110
  };
103
- //# sourceMappingURL=chunk-SXGCCUTH.js.map
111
+ //# sourceMappingURL=chunk-AAW3PYXA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/components/wizard/help-modal.tsx"],"sourcesContent":["import { Box, Text } from \"ink\";\nimport React from \"react\";\nimport { CLI_COLORS } from \"../../consts.js\";\nimport { useWizardStore, type WizardStep } from \"../../stores/wizard-store.js\";\nimport {\n HOTKEY_HELP,\n HOTKEY_SCOPE,\n HOTKEY_SETTINGS,\n HOTKEY_TOGGLE_LABELS,\n KEY_LABEL_ENTER,\n KEY_LABEL_ESC,\n KEY_LABEL_SPACE,\n KEY_LABEL_TAB,\n KEY_LABEL_VIM,\n} from \"./hotkeys.js\";\n\ntype HelpSection = {\n title: string;\n keys: { key: string; description: string }[];\n};\n\nconst GLOBAL_KEYS: HelpSection = {\n title: \"Navigation\",\n keys: [\n { key: \"Arrow keys\", description: \"Move focus\" },\n { key: KEY_LABEL_SPACE, description: \"Toggle selection\" },\n { key: KEY_LABEL_ENTER, description: \"Confirm / continue\" },\n { key: KEY_LABEL_ESC, description: \"Go back\" },\n { key: KEY_LABEL_TAB, description: \"Jump to next section\" },\n ],\n};\n\nconst GLOBAL_TOGGLES: HelpSection = {\n title: \"Toggles\",\n keys: [{ key: HOTKEY_HELP.label, description: \"Toggle this help\" }],\n};\n\nconst BUILD_KEYS: HelpSection = {\n title: \"Skills Step\",\n keys: [\n { key: HOTKEY_TOGGLE_LABELS.label, description: \"Toggle compatibility labels\" },\n { key: HOTKEY_SCOPE.label, description: \"Toggle skill scope (project/global)\" },\n { key: KEY_LABEL_VIM, description: \"Vim-style navigation\" },\n ],\n};\n\nconst SOURCES_KEYS: HelpSection = {\n title: \"Sources Step\",\n keys: [{ key: HOTKEY_SETTINGS.label, description: \"Toggle source settings\" }],\n};\n\nconst AGENTS_KEYS: HelpSection = {\n title: \"Agents Step\",\n keys: [{ key: HOTKEY_SCOPE.label, description: \"Toggle agent scope (project/global)\" }],\n};\n\nconst STEP_SECTIONS: Partial<Record<WizardStep, HelpSection>> = {\n build: BUILD_KEYS,\n sources: SOURCES_KEYS,\n agents: AGENTS_KEYS,\n};\n\nconst KEY_COLUMN_WIDTH = 14;\n\ntype HelpSectionViewProps = {\n section: HelpSection;\n};\n\nconst HelpSectionView: React.FC<HelpSectionViewProps> = ({ section }) => (\n <Box flexDirection=\"column\" marginTop={1} marginBottom={1}>\n <Text bold>{section.title}</Text>\n {section.keys.map(({ key, description }) => (\n <Box key={key} marginTop={1}>\n <Box width={KEY_COLUMN_WIDTH}>\n <Text backgroundColor=\"black\" color={CLI_COLORS.UNFOCUSED}>\n {\" \"}\n {key}{\" \"}\n </Text>\n </Box>\n <Text>{description}</Text>\n </Box>\n ))}\n </Box>\n);\n\nexport type HelpModalProps = {\n currentStep: WizardStep;\n};\n\nexport const HelpModal: React.FC<HelpModalProps> = ({ currentStep }) => {\n const { isEditingFromGlobalScope } = useWizardStore();\n const rawSection = STEP_SECTIONS[currentStep];\n const stepSection =\n rawSection && isEditingFromGlobalScope\n ? {\n ...rawSection,\n keys: rawSection.keys.filter((k) => k.key !== HOTKEY_SCOPE.label),\n }\n : rawSection;\n\n return (\n <Box\n flexDirection=\"column\"\n borderStyle=\"single\"\n borderColor={CLI_COLORS.PRIMARY}\n paddingX={2}\n paddingY={1}\n marginTop={1}\n >\n <Text bold color={CLI_COLORS.PRIMARY}>\n Keyboard Shortcuts\n </Text>\n <Text> </Text>\n\n <HelpSectionView section={GLOBAL_KEYS} />\n <HelpSectionView section={GLOBAL_TOGGLES} />\n {stepSection && <HelpSectionView section={stepSection} />}\n\n <Text dimColor>\n Press {KEY_LABEL_ESC} or {HOTKEY_HELP.label} to close\n </Text>\n </Box>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,SAAS,KAAK,YAAY;AAsEtB,cAIM,YAJN;AAjDJ,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,MAAM;AAAA,IACJ,EAAE,KAAK,cAAc,aAAa,aAAa;AAAA,IAC/C,EAAE,KAAK,iBAAiB,aAAa,mBAAmB;AAAA,IACxD,EAAE,KAAK,iBAAiB,aAAa,qBAAqB;AAAA,IAC1D,EAAE,KAAK,eAAe,aAAa,UAAU;AAAA,IAC7C,EAAE,KAAK,eAAe,aAAa,uBAAuB;AAAA,EAC5D;AACF;AAEA,IAAM,iBAA8B;AAAA,EAClC,OAAO;AAAA,EACP,MAAM,CAAC,EAAE,KAAK,YAAY,OAAO,aAAa,mBAAmB,CAAC;AACpE;AAEA,IAAM,aAA0B;AAAA,EAC9B,OAAO;AAAA,EACP,MAAM;AAAA,IACJ,EAAE,KAAK,qBAAqB,OAAO,aAAa,8BAA8B;AAAA,IAC9E,EAAE,KAAK,aAAa,OAAO,aAAa,sCAAsC;AAAA,IAC9E,EAAE,KAAK,eAAe,aAAa,uBAAuB;AAAA,EAC5D;AACF;AAEA,IAAM,eAA4B;AAAA,EAChC,OAAO;AAAA,EACP,MAAM,CAAC,EAAE,KAAK,gBAAgB,OAAO,aAAa,yBAAyB,CAAC;AAC9E;AAEA,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,MAAM,CAAC,EAAE,KAAK,aAAa,OAAO,aAAa,sCAAsC,CAAC;AACxF;AAEA,IAAM,gBAA0D;AAAA,EAC9D,OAAO;AAAA,EACP,SAAS;AAAA,EACT,QAAQ;AACV;AAEA,IAAM,mBAAmB;AAMzB,IAAM,kBAAkD,CAAC,EAAE,QAAQ,MACjE,qBAAC,OAAI,eAAc,UAAS,WAAW,GAAG,cAAc,GACtD;AAAA,sBAAC,QAAK,MAAI,MAAE,kBAAQ,OAAM;AAAA,EACzB,QAAQ,KAAK,IAAI,CAAC,EAAE,KAAK,YAAY,MACpC,qBAAC,OAAc,WAAW,GACxB;AAAA,wBAAC,OAAI,OAAO,kBACV,+BAAC,QAAK,iBAAgB,SAAQ,OAAO,WAAW,WAC7C;AAAA;AAAA,MACA;AAAA,MAAK;AAAA,OACR,GACF;AAAA,IACA,oBAAC,QAAM,uBAAY;AAAA,OAPX,GAQV,CACD;AAAA,GACH;AAOK,IAAM,YAAsC,CAAC,EAAE,YAAY,MAAM;AACtE,QAAM,EAAE,yBAAyB,IAAI,eAAe;AACpD,QAAM,aAAa,cAAc,WAAW;AAC5C,QAAM,cACJ,cAAc,2BACV;AAAA,IACE,GAAG;AAAA,IACH,MAAM,WAAW,KAAK,OAAO,CAAC,MAAM,EAAE,QAAQ,aAAa,KAAK;AAAA,EAClE,IACA;AAEN,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAc;AAAA,MACd,aAAY;AAAA,MACZ,aAAa,WAAW;AAAA,MACxB,UAAU;AAAA,MACV,UAAU;AAAA,MACV,WAAW;AAAA,MAEX;AAAA,4BAAC,QAAK,MAAI,MAAC,OAAO,WAAW,SAAS,gCAEtC;AAAA,QACA,oBAAC,QAAK,eAAC;AAAA,QAEP,oBAAC,mBAAgB,SAAS,aAAa;AAAA,QACvC,oBAAC,mBAAgB,SAAS,gBAAgB;AAAA,QACzC,eAAe,oBAAC,mBAAgB,SAAS,aAAa;AAAA,QAEvD,qBAAC,QAAK,UAAQ,MAAC;AAAA;AAAA,UACN;AAAA,UAAc;AAAA,UAAK,YAAY;AAAA,UAAM;AAAA,WAC9C;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  Wizard
4
- } from "./chunk-ZKQ4XQNO.js";
4
+ } from "./chunk-JQDOUNHF.js";
5
5
  import {
6
6
  SelectList
7
7
  } from "./chunk-XO6X5QE5.js";
@@ -30,7 +30,7 @@ import {
30
30
  loadProjectConfig,
31
31
  loadSkillsMatrixFromSource,
32
32
  resolveInstallPaths
33
- } from "./chunk-L4JYOUGS.js";
33
+ } from "./chunk-KB6LCTCD.js";
34
34
  import {
35
35
  getSkillById
36
36
  } from "./chunk-3MXMYHO3.js";
@@ -515,4 +515,4 @@ export {
515
515
  showDashboard,
516
516
  Init
517
517
  };
518
- //# sourceMappingURL=chunk-57HHZMWR.js.map
518
+ //# sourceMappingURL=chunk-FBLRTXEA.js.map
@@ -7,7 +7,7 @@ import {
7
7
  loadProjectSourceConfig,
8
8
  resolveAgentsSource,
9
9
  resolveSource
10
- } from "./chunk-L4JYOUGS.js";
10
+ } from "./chunk-KB6LCTCD.js";
11
11
  import {
12
12
  BaseCommand
13
13
  } from "./chunk-X2HE3W74.js";
@@ -90,4 +90,4 @@ ${DEFAULT_BRANDING.NAME} Configuration
90
90
  export {
91
91
  ConfigShow
92
92
  };
93
- //# sourceMappingURL=chunk-YXOZJWP3.js.map
93
+ //# sourceMappingURL=chunk-FIXWR56O.js.map
@@ -1,34 +1,34 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  WizardLayout
4
- } from "./chunk-4DXSCGVI.js";
4
+ } from "./chunk-LOB3OU2D.js";
5
5
  import {
6
6
  StepSettings
7
- } from "./chunk-6EMIA36T.js";
7
+ } from "./chunk-5AHKXBNC.js";
8
8
  import {
9
9
  StepSources
10
- } from "./chunk-3BM5F4IX.js";
10
+ } from "./chunk-3PB7KSF7.js";
11
11
  import {
12
12
  StepStack
13
- } from "./chunk-VO6JKRLT.js";
13
+ } from "./chunk-63E7LOLB.js";
14
14
  import {
15
15
  StepAgents
16
- } from "./chunk-R5LEXRV3.js";
16
+ } from "./chunk-35ESNSF5.js";
17
17
  import {
18
18
  StepBuild
19
- } from "./chunk-GMR4PQX3.js";
19
+ } from "./chunk-M2CS5EOK.js";
20
20
  import {
21
21
  StepConfirm
22
22
  } from "./chunk-C4I4Q33M.js";
23
23
  import {
24
24
  DomainSelection
25
- } from "./chunk-ABBXUIMQ.js";
25
+ } from "./chunk-RTXJLZ7A.js";
26
26
  import {
27
27
  getStackName
28
28
  } from "./chunk-FS4YWW36.js";
29
29
  import {
30
30
  useWizardStore
31
- } from "./chunk-TY5BOAAA.js";
31
+ } from "./chunk-LQ3EJBUN.js";
32
32
  import {
33
33
  cliTheme
34
34
  } from "./chunk-HEQVUIHQ.js";
@@ -42,7 +42,7 @@ import {
42
42
  import {
43
43
  resolveAlias,
44
44
  validateSelection
45
- } from "./chunk-L4JYOUGS.js";
45
+ } from "./chunk-KB6LCTCD.js";
46
46
  import {
47
47
  findStack,
48
48
  matrix
@@ -71,7 +71,8 @@ function useWizardInitialization({
71
71
  installedSkillConfigs,
72
72
  installedAgentConfigs,
73
73
  lockedSkillIds,
74
- lockedAgentNames
74
+ lockedAgentNames,
75
+ isEditingFromGlobalScope
75
76
  }) {
76
77
  const initialized = useRef(false);
77
78
  if (!initialized.current) {
@@ -97,6 +98,9 @@ function useWizardInitialization({
97
98
  ...lockedAgentNames?.length && { lockedAgentNames }
98
99
  });
99
100
  }
101
+ if (isEditingFromGlobalScope) {
102
+ useWizardStore.setState({ isEditingFromGlobalScope });
103
+ }
100
104
  }
101
105
  }
102
106
 
@@ -164,6 +168,7 @@ var Wizard = ({
164
168
  installedAgentConfigs,
165
169
  lockedSkillIds,
166
170
  lockedAgentNames,
171
+ isEditingFromGlobalScope,
167
172
  projectDir,
168
173
  startupMessages
169
174
  }) => {
@@ -182,7 +187,8 @@ var Wizard = ({
182
187
  installedSkillConfigs,
183
188
  installedAgentConfigs,
184
189
  lockedSkillIds,
185
- lockedAgentNames
190
+ lockedAgentNames,
191
+ isEditingFromGlobalScope
186
192
  });
187
193
  const buildStepProps = useBuildStepProps({ store, installedSkillIds });
188
194
  useInput((input, key) => {
@@ -211,6 +217,7 @@ var Wizard = ({
211
217
  return;
212
218
  }
213
219
  if (isHotkey(input, HOTKEY_SCOPE) && store.step === "build") {
220
+ if (store.isEditingFromGlobalScope) return;
214
221
  const focused = store.focusedSkillId;
215
222
  if (focused) {
216
223
  store.toggleSkillScope(focused);
@@ -218,6 +225,7 @@ var Wizard = ({
218
225
  return;
219
226
  }
220
227
  if (isHotkey(input, HOTKEY_SCOPE) && store.step === "agents") {
228
+ if (store.isEditingFromGlobalScope) return;
221
229
  const focused = store.focusedAgentId;
222
230
  if (focused) {
223
231
  store.toggleAgentScope(focused);
@@ -334,4 +342,4 @@ var Wizard = ({
334
342
  export {
335
343
  Wizard
336
344
  };
337
- //# sourceMappingURL=chunk-ZKQ4XQNO.js.map
345
+ //# sourceMappingURL=chunk-JQDOUNHF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/components/wizard/wizard.tsx","../src/cli/components/hooks/use-wizard-initialization.ts","../src/cli/components/hooks/use-build-step-props.ts"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { Box, Text, useApp, useInput, useStdout } from \"ink\";\nimport { ThemeProvider } from \"@inkjs/ui\";\nimport { useWizardStore, type WizardStep } from \"../../stores/wizard-store.js\";\nimport { CLI_COLORS } from \"../../consts.js\";\nimport { cliTheme } from \"../themes/default.js\";\nimport { WizardLayout } from \"./wizard-layout.js\";\nimport { StepStack } from \"./step-stack.js\";\nimport { StepBuild } from \"./step-build.js\";\nimport { StepConfirm } from \"./step-confirm.js\";\nimport { StepSources } from \"./step-sources.js\";\nimport { StepSettings } from \"./step-settings.js\";\nimport { StepAgents } from \"./step-agents.js\";\nimport { DomainSelection } from \"./domain-selection.js\";\nimport { resolveAlias, validateSelection } from \"../../lib/matrix/index.js\";\nimport { matrix, findStack } from \"../../lib/matrix/matrix-provider.js\";\nimport {\n HOTKEY_ACCEPT_DEFAULTS,\n HOTKEY_HELP,\n HOTKEY_SCOPE,\n HOTKEY_SETTINGS,\n isHotkey,\n} from \"./hotkeys.js\";\nimport type { AgentName, Domain, DomainSelections, SkillId } from \"../../types/index.js\";\nimport type { AgentScopeConfig, SkillConfig } from \"../../types/config.js\";\nimport { getStackName } from \"./utils.js\";\nimport type { StartupMessage } from \"../../utils/logger.js\";\nimport { useWizardInitialization } from \"../hooks/use-wizard-initialization.js\";\nimport { useBuildStepProps } from \"../hooks/use-build-step-props.js\";\n\nexport type WizardResultV2 = {\n skills: SkillConfig[];\n selectedAgents: AgentName[];\n agentConfigs: AgentScopeConfig[];\n selectedStackId: string | null;\n domainSelections: DomainSelections;\n selectedDomains: Domain[];\n cancelled: boolean;\n validation: {\n valid: boolean;\n errors: Array<{ message: string }>;\n warnings: Array<{ message: string }>;\n };\n};\n\ntype WizardProps = {\n onComplete: (result: WizardResultV2) => void;\n onCancel: () => void;\n version?: string;\n logo?: string;\n initialStep?: WizardStep;\n initialDomains?: Domain[];\n initialAgents?: AgentName[];\n installedSkillIds?: SkillId[];\n installedSkillConfigs?: SkillConfig[];\n installedAgentConfigs?: AgentScopeConfig[];\n lockedSkillIds?: SkillId[];\n lockedAgentNames?: AgentName[];\n isEditingFromGlobalScope?: boolean;\n projectDir?: string;\n startupMessages?: StartupMessage[];\n};\n\nconst MIN_TERMINAL_WIDTH = 80;\nconst MIN_TERMINAL_HEIGHT = 15;\n\nexport const Wizard: React.FC<WizardProps> = ({\n onComplete,\n onCancel,\n version,\n logo,\n initialStep,\n initialDomains,\n initialAgents,\n installedSkillIds,\n installedSkillConfigs,\n installedAgentConfigs,\n lockedSkillIds,\n lockedAgentNames,\n isEditingFromGlobalScope,\n projectDir,\n startupMessages,\n}) => {\n const store = useWizardStore();\n const { exit } = useApp();\n const { stdout } = useStdout();\n\n const terminalWidth = stdout.columns || MIN_TERMINAL_WIDTH;\n const terminalHeight = stdout.rows || MIN_TERMINAL_HEIGHT;\n const isNarrowTerminal = terminalWidth < MIN_TERMINAL_WIDTH;\n const isShortTerminal = terminalHeight < MIN_TERMINAL_HEIGHT;\n\n useWizardInitialization({\n initialStep,\n initialDomains,\n initialAgents,\n installedSkillIds,\n installedSkillConfigs,\n installedAgentConfigs,\n lockedSkillIds,\n lockedAgentNames,\n isEditingFromGlobalScope,\n });\n\n const buildStepProps = useBuildStepProps({ store, installedSkillIds });\n\n useInput((input, key) => {\n // ESC is handled by step-settings.tsx's own useKeyboardNavigation hook\n if (store.showSettings) {\n if (isHotkey(input, HOTKEY_SETTINGS)) {\n store.toggleSettings();\n }\n return;\n }\n\n if (store.showHelp) {\n if (key.escape || isHotkey(input, HOTKEY_HELP)) {\n store.toggleHelp();\n }\n return;\n }\n\n if (isHotkey(input, HOTKEY_HELP)) {\n store.toggleHelp();\n return;\n }\n\n if (key.escape) {\n // Steps with their own ESC handling (via useInput in child components):\n // - \"stack\": StackSelection handles ESC via onCancel prop\n // - \"domains\": DomainSelection handles ESC via CheckboxGrid onBack\n // - \"build\": StepBuild handles ESC via its own useInput\n // - \"sources\": StepSources handles ESC via onBack prop\n // - \"confirm\": StepConfirm handles ESC via onBack prop\n // - \"agents\": StepAgents handles ESC via its own useInput\n // All steps handle their own ESC, so this is a no-op.\n return;\n }\n\n if (\n isHotkey(input, HOTKEY_ACCEPT_DEFAULTS) &&\n store.step === \"build\" &&\n store.selectedStackId\n ) {\n store.setStackAction(\"defaults\");\n store.setStep(\"confirm\");\n return;\n }\n\n if (isHotkey(input, HOTKEY_SCOPE) && store.step === \"build\") {\n if (store.isEditingFromGlobalScope) return;\n const focused = store.focusedSkillId;\n if (focused) {\n store.toggleSkillScope(focused);\n }\n return;\n }\n\n if (isHotkey(input, HOTKEY_SCOPE) && store.step === \"agents\") {\n if (store.isEditingFromGlobalScope) return;\n const focused = store.focusedAgentId;\n if (focused) {\n store.toggleAgentScope(focused);\n }\n return;\n }\n\n if (isHotkey(input, HOTKEY_SETTINGS) && store.step === \"sources\") {\n store.toggleSettings();\n return;\n }\n });\n\n const handleComplete = useCallback(() => {\n let allSkills: SkillId[];\n\n if (store.selectedStackId && store.stackAction === \"defaults\") {\n const stack = findStack(store.selectedStackId);\n if (!stack) {\n throw new Error(`Stack not found: ${store.selectedStackId}`);\n }\n allSkills = [...stack.allSkillIds];\n } else {\n const techNames = store.getAllSelectedTechnologies();\n allSkills = techNames.map((tech) => resolveAlias(tech));\n }\n\n const skillConfigs: SkillConfig[] = allSkills.map((id) => {\n const existing = store.skillConfigs.find((sc) => sc.id === id);\n return existing ?? { id, scope: \"global\" as const, source: \"local\" };\n });\n\n const validation = validateSelection(allSkills);\n\n const result: WizardResultV2 = {\n skills: skillConfigs,\n selectedAgents: store.selectedAgents,\n agentConfigs: store.agentConfigs,\n selectedStackId: store.selectedStackId,\n domainSelections: store.domainSelections,\n selectedDomains: store.selectedDomains,\n cancelled: false,\n validation,\n };\n\n onComplete(result);\n exit();\n }, [store, onComplete, exit]);\n\n const handleCancel = useCallback(() => {\n onCancel();\n exit();\n }, [onCancel, exit]);\n\n const renderStep = () => {\n switch (store.step) {\n case \"stack\":\n return <StepStack onCancel={handleCancel} />;\n\n case \"domains\":\n return <DomainSelection />;\n\n case \"build\":\n return <StepBuild {...buildStepProps} />;\n\n case \"sources\": {\n if (store.showSettings) {\n return (\n <StepSettings\n projectDir={projectDir || process.cwd()}\n onClose={() => store.toggleSettings()}\n />\n );\n }\n return (\n <StepSources\n projectDir={projectDir}\n onContinue={() => {\n if (!initialAgents?.length) {\n store.preselectAgentsFromDomains();\n }\n store.setStep(\"agents\");\n }}\n onBack={store.goBack}\n />\n );\n }\n\n case \"agents\":\n return <StepAgents />;\n\n case \"confirm\": {\n const stackName = getStackName(store.selectedStackId);\n const selectedSkills = store.getAllSelectedTechnologies();\n return (\n <StepConfirm\n onComplete={handleComplete}\n stackName={stackName}\n selectedDomains={store.selectedDomains}\n domainSelections={store.domainSelections}\n technologyCount={selectedSkills.length}\n skillCount={selectedSkills.length}\n agentCount={store.selectedAgents.length}\n skillConfigs={store.skillConfigs}\n agentConfigs={store.agentConfigs}\n onBack={store.goBack}\n />\n );\n }\n\n default:\n return null;\n }\n };\n\n if (isNarrowTerminal || isShortTerminal) {\n const issue = isNarrowTerminal\n ? `too narrow (${terminalWidth} columns, need ${MIN_TERMINAL_WIDTH})`\n : `too short (${terminalHeight} rows, need ${MIN_TERMINAL_HEIGHT})`;\n\n return (\n <ThemeProvider theme={cliTheme}>\n <Box flexDirection=\"column\" padding={1}>\n <Text color={CLI_COLORS.WARNING}>Terminal {issue}. Please resize your terminal.</Text>\n </Box>\n </ThemeProvider>\n );\n }\n\n return (\n <ThemeProvider theme={cliTheme}>\n <WizardLayout version={version} logo={logo} startupMessages={startupMessages}>\n {renderStep()}\n </WizardLayout>\n </ThemeProvider>\n );\n};\n","import { useRef } from \"react\";\nimport { useWizardStore, type WizardStep } from \"../../stores/wizard-store.js\";\nimport type { AgentScopeConfig, SkillConfig } from \"../../types/config.js\";\nimport type { AgentName, Domain, SkillId } from \"../../types/index.js\";\n\ntype UseWizardInitializationOptions = {\n initialStep?: WizardStep;\n initialDomains?: Domain[];\n initialAgents?: AgentName[];\n installedSkillIds?: SkillId[];\n installedSkillConfigs?: SkillConfig[];\n installedAgentConfigs?: AgentScopeConfig[];\n lockedSkillIds?: SkillId[];\n lockedAgentNames?: AgentName[];\n isEditingFromGlobalScope?: boolean;\n};\n\n/**\n * Runs one-time wizard store initialization before the first render.\n * Populates step, approach, and skill selections from props.\n */\nexport function useWizardInitialization({\n initialStep,\n initialDomains,\n initialAgents,\n installedSkillIds,\n installedSkillConfigs,\n installedAgentConfigs,\n lockedSkillIds,\n lockedAgentNames,\n isEditingFromGlobalScope,\n}: UseWizardInitializationOptions): void {\n const initialized = useRef(false);\n\n if (!initialized.current) {\n initialized.current = true;\n\n if (initialStep) {\n if (installedSkillIds?.length) {\n useWizardStore.getState().populateFromSkillIds(installedSkillIds, installedSkillConfigs);\n }\n useWizardStore.setState({ step: initialStep, approach: \"scratch\" });\n }\n // Restore saved domains from config, overriding the domains\n // derived by populateFromSkillIds\n if (initialDomains?.length) {\n useWizardStore.setState({ selectedDomains: initialDomains, currentDomainIndex: 0 });\n }\n // Restore saved agents from config, overriding the default empty array\n if (initialAgents?.length) {\n useWizardStore.setState({ selectedAgents: initialAgents });\n }\n // Restore saved agent scope configs (project vs global)\n if (initialAgents?.length && installedAgentConfigs?.length) {\n useWizardStore.setState({ agentConfigs: installedAgentConfigs });\n }\n // Set locked IDs (D9: global items read-only in project context)\n if (lockedSkillIds?.length || lockedAgentNames?.length) {\n useWizardStore.setState({\n ...(lockedSkillIds?.length && { lockedSkillIds }),\n ...(lockedAgentNames?.length && { lockedAgentNames }),\n });\n }\n if (isEditingFromGlobalScope) {\n useWizardStore.setState({ isEditingFromGlobalScope });\n }\n }\n}\n","import { useCallback } from \"react\";\nimport type { Domain, SkillId } from \"../../types/index.js\";\nimport type { WizardState } from \"../../stores/wizard-store.js\";\nimport { matrix } from \"../../lib/matrix/matrix-provider.js\";\nimport type { StepBuildProps } from \"../wizard/step-build.js\";\n\ntype UseBuildStepPropsOptions = {\n store: WizardState;\n installedSkillIds?: SkillId[];\n};\n\nexport function useBuildStepProps({\n store,\n installedSkillIds,\n}: UseBuildStepPropsOptions): StepBuildProps {\n const currentDomain = store.getCurrentDomain();\n const defaultDomains: Domain[] = [\"web\"];\n const effectiveDomains =\n store.selectedDomains.length > 0 ? store.selectedDomains : defaultDomains;\n\n const allSelections = store.getAllSelectedTechnologies();\n\n const activeDomain: Domain = currentDomain || effectiveDomains[0] || \"web\";\n\n const onToggle = useCallback(\n (categoryId: Parameters<StepBuildProps[\"onToggle\"]>[0], techId: SkillId) => {\n const domain: Domain = store.getCurrentDomain() || \"web\";\n const cat = matrix.categories[categoryId];\n const exclusive = cat?.exclusive ?? true;\n store.toggleTechnology(domain, categoryId, techId, exclusive);\n },\n [store],\n );\n\n const onContinue = useCallback(() => {\n if (!store.nextDomain()) {\n store.setStep(\"sources\");\n }\n }, [store]);\n\n const onBack = useCallback(() => {\n if (!store.prevDomain()) {\n store.goBack();\n }\n }, [store]);\n\n return {\n domain: activeDomain,\n selectedDomains: effectiveDomains,\n selections: store.domainSelections[activeDomain] || {},\n allSelections,\n showLabels: store.showLabels,\n filterIncompatible: store.filterIncompatible,\n installedSkillIds,\n onToggle,\n onToggleLabels: store.toggleShowLabels,\n onToggleFilterIncompatible: store.toggleFilterIncompatible,\n onContinue,\n onBack,\n };\n}\n"],"mappings":"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","names":["useCallback","useCallback"]}
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-4QA5TIBU.js";
8
8
  import {
9
9
  useWizardStore
10
- } from "./chunk-TY5BOAAA.js";
10
+ } from "./chunk-LQ3EJBUN.js";
11
11
  import {
12
12
  matrix
13
13
  } from "./chunk-3MXMYHO3.js";
@@ -191,4 +191,4 @@ var StackSelection = ({ onCancel }) => {
191
191
  export {
192
192
  StackSelection
193
193
  };
194
- //# sourceMappingURL=chunk-HRMPQ4DV.js.map
194
+ //# sourceMappingURL=chunk-K76AXQ7A.js.map
@@ -587,18 +587,26 @@ function splitConfigByScope(config) {
587
587
  for (const agent of globalAgents) {
588
588
  const agentStack = config.stack[agent.name];
589
589
  if (agentStack) {
590
- const filtered = {};
590
+ const globalFiltered = {};
591
+ const projectFiltered = {};
591
592
  for (const [category, assignments] of typedEntries(
592
593
  agentStack
593
594
  )) {
594
595
  if (!assignments) continue;
595
596
  const globalOnly = assignments.filter((a) => globalSkillIds.has(a.id));
597
+ const projectOnly = assignments.filter((a) => !globalSkillIds.has(a.id));
596
598
  if (globalOnly.length > 0) {
597
- filtered[category] = globalOnly;
599
+ globalFiltered[category] = globalOnly;
598
600
  }
601
+ if (projectOnly.length > 0) {
602
+ projectFiltered[category] = projectOnly;
603
+ }
604
+ }
605
+ if (typedKeys(globalFiltered).length > 0) {
606
+ globalStack[agent.name] = globalFiltered;
599
607
  }
600
- if (typedKeys(filtered).length > 0) {
601
- globalStack[agent.name] = filtered;
608
+ if (typedKeys(projectFiltered).length > 0) {
609
+ projectStack[agent.name] = projectFiltered;
602
610
  }
603
611
  }
604
612
  }
@@ -996,7 +1004,7 @@ function loadConfigTypesDataInBackground(sourceFlag, projectDir) {
996
1004
  if (!await directoryExists(claudeSrcDir)) {
997
1005
  throw new Error(`${CLAUDE_SRC_DIR}/ not found \u2014 run '${CLI_BIN_NAME} init' first`);
998
1006
  }
999
- const { loadSkillsMatrixFromSource: loadSkillsMatrixFromSource2 } = await import("./source-loader-C2QCBXOB.js");
1007
+ const { loadSkillsMatrixFromSource: loadSkillsMatrixFromSource2 } = await import("./source-loader-FMDHHYDQ.js");
1000
1008
  const { loadAllAgents: loadAllAgents2 } = await import("./loader-4XPDVCZK.js");
1001
1009
  const sourceResult = await loadSkillsMatrixFromSource2({
1002
1010
  sourceFlag,
@@ -5611,4 +5619,4 @@ export {
5611
5619
  validateAllPlugins,
5612
5620
  printPluginValidationResult
5613
5621
  };
5614
- //# sourceMappingURL=chunk-L4JYOUGS.js.map
5622
+ //# sourceMappingURL=chunk-KB6LCTCD.js.map