agents-inc 0.159.0 → 0.161.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +1 -1
  3. package/dist/{chunk-PEHYVSJG.js → chunk-264XDRU7.js} +2 -2
  4. package/dist/{chunk-WVKGO3Y5.js → chunk-2MPXMJ2O.js} +7 -7
  5. package/dist/{chunk-IO2DPRDS.js → chunk-3H42U56X.js} +2 -2
  6. package/dist/{chunk-FBRLHNUT.js → chunk-3M75HVIM.js} +3 -3
  7. package/dist/{chunk-YKRPWZ3G.js → chunk-3TM4FHTG.js} +2 -2
  8. package/dist/{chunk-5YOSLSQJ.js → chunk-5DWDT6GM.js} +115 -96
  9. package/dist/chunk-5DWDT6GM.js.map +1 -0
  10. package/dist/{chunk-4APXK7ZY.js → chunk-5MML3K36.js} +2 -2
  11. package/dist/{chunk-F35G42TF.js → chunk-6PVWDTEM.js} +12 -12
  12. package/dist/{chunk-VCUXNKOY.js → chunk-A2NA377T.js} +6 -6
  13. package/dist/{chunk-4RYWFQK7.js → chunk-ADDYIMWN.js} +3 -3
  14. package/dist/{chunk-V625APR6.js → chunk-AMZO4YJK.js} +10789 -18786
  15. package/dist/chunk-AMZO4YJK.js.map +1 -0
  16. package/dist/{chunk-4VMLCWLD.js → chunk-AO6DXJUK.js} +3 -3
  17. package/dist/{chunk-G7TYOPON.js → chunk-B3YSTZZC.js} +3 -3
  18. package/dist/{chunk-THLQS2AW.js → chunk-B7YTQVAF.js} +4 -4
  19. package/dist/{chunk-7Z4N4JWQ.js → chunk-BLGETWYI.js} +6 -113
  20. package/dist/chunk-BLGETWYI.js.map +1 -0
  21. package/dist/{chunk-ITEJARWI.js → chunk-BRHU6J3C.js} +3 -3
  22. package/dist/{chunk-AU5FS3QK.js → chunk-DGXW2ZFY.js} +3 -3
  23. package/dist/{chunk-LSSGS2QS.js → chunk-DHRW3MDM.js} +3 -3
  24. package/dist/{chunk-OJIQOVWB.js → chunk-DTCUZL7S.js} +2 -2
  25. package/dist/{chunk-SKDTGHCD.js → chunk-EEFTUZHZ.js} +5 -5
  26. package/dist/{chunk-BQJVHD6Y.js → chunk-EERGAAGE.js} +5 -10
  27. package/dist/chunk-EERGAAGE.js.map +1 -0
  28. package/dist/{chunk-Z6G24ROK.js → chunk-EQSMVZGS.js} +10 -10
  29. package/dist/{chunk-2Q65K6E3.js → chunk-EY7Z34Y4.js} +15 -15
  30. package/dist/{chunk-BNHD2GIB.js → chunk-F6LS2BQD.js} +11 -11
  31. package/dist/{chunk-SITF5EZM.js → chunk-HB3YIAFD.js} +2 -2
  32. package/dist/{chunk-GPZQCLZJ.js → chunk-LZPRLHUE.js} +9 -9
  33. package/dist/{chunk-YAHTF4NO.js → chunk-MED6GNV3.js} +288 -203
  34. package/dist/chunk-MED6GNV3.js.map +1 -0
  35. package/dist/chunk-N6CILY5A.js +35 -0
  36. package/dist/chunk-N6CILY5A.js.map +1 -0
  37. package/dist/{chunk-42PQKBVU.js → chunk-ODUACQLV.js} +6 -6
  38. package/dist/{chunk-VZRO7RYT.js → chunk-OI2H6M5I.js} +1 -103
  39. package/dist/chunk-OI2H6M5I.js.map +1 -0
  40. package/dist/{chunk-MPLWPWL4.js → chunk-QKMT6OOP.js} +2 -2
  41. package/dist/{chunk-WVBJRFFM.js → chunk-SX57ZIGM.js} +4 -4
  42. package/dist/{chunk-62XKTOUI.js → chunk-T4RVCFWN.js} +5 -15
  43. package/dist/chunk-T4RVCFWN.js.map +1 -0
  44. package/dist/{chunk-4VVKVOOP.js → chunk-UMYEY6BA.js} +2 -2
  45. package/dist/{chunk-X5PLVOJS.js → chunk-W2RXRWDB.js} +2 -2
  46. package/dist/{chunk-JV4P7BL4.js → chunk-WVCF7KFV.js} +5 -5
  47. package/dist/chunk-XA4SWA2Z.js +591 -0
  48. package/dist/chunk-XA4SWA2Z.js.map +1 -0
  49. package/dist/{chunk-LVA6XJGR.js → chunk-YOVUXONB.js} +9 -43
  50. package/dist/chunk-YOVUXONB.js.map +1 -0
  51. package/dist/chunk-YSQ76LWG.js +8734 -0
  52. package/dist/chunk-YSQ76LWG.js.map +1 -0
  53. package/dist/{chunk-Z6KROWH4.js → chunk-ZQZHDYHQ.js} +7 -7
  54. package/dist/commands/build/marketplace.js +8 -8
  55. package/dist/commands/build/plugins.js +8 -8
  56. package/dist/commands/compile.js +14 -14
  57. package/dist/commands/doctor.js +13 -13
  58. package/dist/commands/edit.js +45 -45
  59. package/dist/commands/eject.js +11 -11
  60. package/dist/commands/init.js +37 -37
  61. package/dist/commands/list.js +9 -9
  62. package/dist/commands/new/marketplace.js +8 -9
  63. package/dist/commands/new/marketplace.js.map +1 -1
  64. package/dist/commands/search.js +11 -11
  65. package/dist/commands/share.js +11 -10
  66. package/dist/commands/share.js.map +1 -1
  67. package/dist/commands/uninstall.js +12 -12
  68. package/dist/commands/update.js +7 -7
  69. package/dist/components/common/removal-plan-confirm.js +2 -2
  70. package/dist/components/common/select-list.js +2 -2
  71. package/dist/components/wizard/category-grid.js +4 -4
  72. package/dist/components/wizard/checkbox-grid.js +4 -4
  73. package/dist/components/wizard/domain-selection.js +10 -10
  74. package/dist/components/wizard/run-wizard-session.js +27 -27
  75. package/dist/components/wizard/scroll-affordance.js +2 -2
  76. package/dist/components/wizard/skill-agent-summary.js +6 -6
  77. package/dist/components/wizard/source-grid.js +5 -5
  78. package/dist/components/wizard/stack-selection.js +8 -8
  79. package/dist/components/wizard/step-agents.js +9 -9
  80. package/dist/components/wizard/step-build.js +8 -8
  81. package/dist/components/wizard/step-confirm.js +10 -10
  82. package/dist/components/wizard/step-sources.js +9 -9
  83. package/dist/components/wizard/step-stack.js +9 -9
  84. package/dist/components/wizard/summary-panel.js +9 -9
  85. package/dist/components/wizard/toast.js +2 -2
  86. package/dist/components/wizard/wizard-layout.js +13 -13
  87. package/dist/components/wizard/wizard-tabs.js +2 -2
  88. package/dist/components/wizard/wizard.js +26 -26
  89. package/dist/config-exports.js +1 -1
  90. package/dist/hooks/init.js +37 -37
  91. package/dist/load-agent-defs-LDSND43G.js +13 -0
  92. package/dist/recompile-project-agents-GQLODH24.js +17 -0
  93. package/dist/{source-loader-CC6ZWKTI.js → source-loader-TSF5VS6V.js} +5 -5
  94. package/dist/src/agents/_templates/methodologies/anti-over-engineering.liquid +14 -0
  95. package/dist/src/agents/_templates/methodologies/context-management.liquid +7 -154
  96. package/dist/src/agents/_templates/methodologies/investigation-requirements.liquid +12 -0
  97. package/dist/src/agents/_templates/methodologies/success-criteria.liquid +10 -0
  98. package/dist/stores/wizard-store.js +5 -5
  99. package/package.json +9 -4
  100. package/src/agents/_templates/methodologies/anti-over-engineering.liquid +14 -0
  101. package/src/agents/_templates/methodologies/context-management.liquid +7 -154
  102. package/src/agents/_templates/methodologies/investigation-requirements.liquid +12 -0
  103. package/src/agents/_templates/methodologies/success-criteria.liquid +10 -0
  104. package/dist/chunk-5KB4I5J7.js +0 -262
  105. package/dist/chunk-5KB4I5J7.js.map +0 -1
  106. package/dist/chunk-5YOSLSQJ.js.map +0 -1
  107. package/dist/chunk-62XKTOUI.js.map +0 -1
  108. package/dist/chunk-7Z4N4JWQ.js.map +0 -1
  109. package/dist/chunk-BQJVHD6Y.js.map +0 -1
  110. package/dist/chunk-LVA6XJGR.js.map +0 -1
  111. package/dist/chunk-NS5COBTT.js +0 -254
  112. package/dist/chunk-NS5COBTT.js.map +0 -1
  113. package/dist/chunk-V625APR6.js.map +0 -1
  114. package/dist/chunk-VZRO7RYT.js.map +0 -1
  115. package/dist/chunk-YAHTF4NO.js.map +0 -1
  116. package/dist/chunk-YVQSDBTK.js +0 -169
  117. package/dist/chunk-YVQSDBTK.js.map +0 -1
  118. package/dist/load-agent-defs-2H42B2OO.js +0 -13
  119. package/dist/recompile-project-agents-QIAMBCM4.js +0 -17
  120. /package/dist/{chunk-PEHYVSJG.js.map → chunk-264XDRU7.js.map} +0 -0
  121. /package/dist/{chunk-WVKGO3Y5.js.map → chunk-2MPXMJ2O.js.map} +0 -0
  122. /package/dist/{chunk-IO2DPRDS.js.map → chunk-3H42U56X.js.map} +0 -0
  123. /package/dist/{chunk-FBRLHNUT.js.map → chunk-3M75HVIM.js.map} +0 -0
  124. /package/dist/{chunk-YKRPWZ3G.js.map → chunk-3TM4FHTG.js.map} +0 -0
  125. /package/dist/{chunk-4APXK7ZY.js.map → chunk-5MML3K36.js.map} +0 -0
  126. /package/dist/{chunk-F35G42TF.js.map → chunk-6PVWDTEM.js.map} +0 -0
  127. /package/dist/{chunk-VCUXNKOY.js.map → chunk-A2NA377T.js.map} +0 -0
  128. /package/dist/{chunk-4RYWFQK7.js.map → chunk-ADDYIMWN.js.map} +0 -0
  129. /package/dist/{chunk-4VMLCWLD.js.map → chunk-AO6DXJUK.js.map} +0 -0
  130. /package/dist/{chunk-G7TYOPON.js.map → chunk-B3YSTZZC.js.map} +0 -0
  131. /package/dist/{chunk-THLQS2AW.js.map → chunk-B7YTQVAF.js.map} +0 -0
  132. /package/dist/{chunk-ITEJARWI.js.map → chunk-BRHU6J3C.js.map} +0 -0
  133. /package/dist/{chunk-AU5FS3QK.js.map → chunk-DGXW2ZFY.js.map} +0 -0
  134. /package/dist/{chunk-LSSGS2QS.js.map → chunk-DHRW3MDM.js.map} +0 -0
  135. /package/dist/{chunk-OJIQOVWB.js.map → chunk-DTCUZL7S.js.map} +0 -0
  136. /package/dist/{chunk-SKDTGHCD.js.map → chunk-EEFTUZHZ.js.map} +0 -0
  137. /package/dist/{chunk-Z6G24ROK.js.map → chunk-EQSMVZGS.js.map} +0 -0
  138. /package/dist/{chunk-2Q65K6E3.js.map → chunk-EY7Z34Y4.js.map} +0 -0
  139. /package/dist/{chunk-BNHD2GIB.js.map → chunk-F6LS2BQD.js.map} +0 -0
  140. /package/dist/{chunk-SITF5EZM.js.map → chunk-HB3YIAFD.js.map} +0 -0
  141. /package/dist/{chunk-GPZQCLZJ.js.map → chunk-LZPRLHUE.js.map} +0 -0
  142. /package/dist/{chunk-42PQKBVU.js.map → chunk-ODUACQLV.js.map} +0 -0
  143. /package/dist/{chunk-MPLWPWL4.js.map → chunk-QKMT6OOP.js.map} +0 -0
  144. /package/dist/{chunk-WVBJRFFM.js.map → chunk-SX57ZIGM.js.map} +0 -0
  145. /package/dist/{chunk-4VVKVOOP.js.map → chunk-UMYEY6BA.js.map} +0 -0
  146. /package/dist/{chunk-X5PLVOJS.js.map → chunk-W2RXRWDB.js.map} +0 -0
  147. /package/dist/{chunk-JV4P7BL4.js.map → chunk-WVCF7KFV.js.map} +0 -0
  148. /package/dist/{chunk-Z6KROWH4.js.map → chunk-ZQZHDYHQ.js.map} +0 -0
  149. /package/dist/{load-agent-defs-2H42B2OO.js.map → load-agent-defs-LDSND43G.js.map} +0 -0
  150. /package/dist/{recompile-project-agents-QIAMBCM4.js.map → recompile-project-agents-GQLODH24.js.map} +0 -0
  151. /package/dist/{source-loader-CC6ZWKTI.js.map → source-loader-TSF5VS6V.js.map} +0 -0
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  computeRowScrollTop
4
- } from "./chunk-PEHYVSJG.js";
4
+ } from "./chunk-264XDRU7.js";
5
5
  import {
6
6
  SCROLL_VIEWPORT
7
- } from "./chunk-5KB4I5J7.js";
7
+ } from "./chunk-AMZO4YJK.js";
8
8
 
9
9
  // src/cli/components/hooks/use-row-scroll.ts
10
10
  import { useRef } from "react";
@@ -24,4 +24,4 @@ function useRowScroll({
24
24
  export {
25
25
  useRowScroll
26
26
  };
27
- //# sourceMappingURL=chunk-ITEJARWI.js.map
27
+ //# sourceMappingURL=chunk-BRHU6J3C.js.map
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  useRowScroll
4
- } from "./chunk-ITEJARWI.js";
4
+ } from "./chunk-BRHU6J3C.js";
5
5
  import {
6
6
  KEY_SPACE
7
7
  } from "./chunk-WTJ3AY33.js";
8
8
  import {
9
9
  CLI_COLORS,
10
10
  UI_SYMBOLS
11
- } from "./chunk-5KB4I5J7.js";
11
+ } from "./chunk-AMZO4YJK.js";
12
12
 
13
13
  // src/cli/components/wizard/checkbox-grid.tsx
14
14
  import { Box, Text, useInput } from "ink";
@@ -108,4 +108,4 @@ var CheckboxGrid = ({
108
108
  export {
109
109
  CheckboxGrid
110
110
  };
111
- //# sourceMappingURL=chunk-AU5FS3QK.js.map
111
+ //# sourceMappingURL=chunk-DGXW2ZFY.js.map
@@ -2,13 +2,13 @@
2
2
  import {
3
3
  SourceGrid,
4
4
  isRowInert
5
- } from "./chunk-SKDTGHCD.js";
5
+ } from "./chunk-EEFTUZHZ.js";
6
6
  import {
7
7
  useMeasuredHeight
8
8
  } from "./chunk-TSIU7DME.js";
9
9
  import {
10
10
  useWizardStore
11
- } from "./chunk-LVA6XJGR.js";
11
+ } from "./chunk-YOVUXONB.js";
12
12
 
13
13
  // src/cli/components/wizard/step-sources.tsx
14
14
  import { Box, useInput } from "ink";
@@ -45,4 +45,4 @@ var StepSources = ({ onContinue, onBack }) => {
45
45
  export {
46
46
  StepSources
47
47
  };
48
- //# sourceMappingURL=chunk-LSSGS2QS.js.map
48
+ //# sourceMappingURL=chunk-DHRW3MDM.js.map
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  CLI_COLORS,
7
7
  UI_SYMBOLS
8
- } from "./chunk-5KB4I5J7.js";
8
+ } from "./chunk-AMZO4YJK.js";
9
9
 
10
10
  // src/cli/components/common/select-list.tsx
11
11
  import { useCallback } from "react";
@@ -48,4 +48,4 @@ function SelectList({
48
48
  export {
49
49
  SelectList
50
50
  };
51
- //# sourceMappingURL=chunk-OJIQOVWB.js.map
51
+ //# sourceMappingURL=chunk-DTCUZL7S.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ScrollAffordance
4
- } from "./chunk-X5PLVOJS.js";
4
+ } from "./chunk-W2RXRWDB.js";
5
5
  import {
6
6
  useFocusedListItem
7
7
  } from "./chunk-J27W6TXS.js";
@@ -10,15 +10,15 @@ import {
10
10
  } from "./chunk-WTJ3AY33.js";
11
11
  import {
12
12
  useSectionScroll
13
- } from "./chunk-PEHYVSJG.js";
13
+ } from "./chunk-264XDRU7.js";
14
14
  import {
15
15
  getSkillById
16
- } from "./chunk-7Z4N4JWQ.js";
16
+ } from "./chunk-BLGETWYI.js";
17
17
  import {
18
18
  CLI_COLORS,
19
19
  INSTALL_MODE_CELL_LABELS,
20
20
  UI_SYMBOLS
21
- } from "./chunk-5KB4I5J7.js";
21
+ } from "./chunk-AMZO4YJK.js";
22
22
 
23
23
  // src/cli/components/wizard/source-grid.tsx
24
24
  import { useCallback, useMemo } from "react";
@@ -285,4 +285,4 @@ export {
285
285
  isRowInert,
286
286
  SourceGrid
287
287
  };
288
- //# sourceMappingURL=chunk-SKDTGHCD.js.map
288
+ //# sourceMappingURL=chunk-EEFTUZHZ.js.map
@@ -9,13 +9,13 @@ import {
9
9
  } from "./chunk-WTJ3AY33.js";
10
10
  import {
11
11
  useSectionScroll
12
- } from "./chunk-PEHYVSJG.js";
12
+ } from "./chunk-264XDRU7.js";
13
13
  import {
14
14
  getSkillById
15
- } from "./chunk-7Z4N4JWQ.js";
15
+ } from "./chunk-BLGETWYI.js";
16
16
  import {
17
17
  CLI_COLORS
18
- } from "./chunk-5KB4I5J7.js";
18
+ } from "./chunk-AMZO4YJK.js";
19
19
 
20
20
  // src/cli/components/wizard/category-grid.tsx
21
21
  import { useCallback as useCallback2, useEffect as useEffect2 } from "react";
@@ -94,7 +94,6 @@ function useCategoryGridInput({
94
94
 
95
95
  // src/cli/components/wizard/category-grid.tsx
96
96
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
97
- var SYMBOL_REQUIRED = "*";
98
97
  var wrapOptionIndex = (length, currentIndex, direction) => {
99
98
  if (length === 0) return currentIndex;
100
99
  return (currentIndex + direction + length) % length;
@@ -161,12 +160,8 @@ var CategorySection = ({
161
160
  const selectedCount = options.filter((o) => o.selected).length;
162
161
  const selectionCounter = category.exclusive ? `(${selectedCount} of 1)` : null;
163
162
  return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", marginTop: isFirst ? 0 : 1, children: [
164
- /* @__PURE__ */ jsx(Box, { flexDirection: "row", children: isFocused ? /* @__PURE__ */ jsx(Text, { color: CLI_COLORS.WHITE, backgroundColor: CLI_COLORS.LABEL_BG, children: ` ${category.displayName}${category.required ? ` ${SYMBOL_REQUIRED}` : ""}${selectionCounter ? ` ${selectionCounter}` : ""} ` }) : /* @__PURE__ */ jsxs(Fragment, { children: [
163
+ /* @__PURE__ */ jsx(Box, { flexDirection: "row", children: isFocused ? /* @__PURE__ */ jsx(Text, { color: CLI_COLORS.WHITE, backgroundColor: CLI_COLORS.LABEL_BG, children: ` ${category.displayName}${selectionCounter ? ` ${selectionCounter}` : ""} ` }) : /* @__PURE__ */ jsxs(Fragment, { children: [
165
164
  /* @__PURE__ */ jsx(Text, { color: CLI_COLORS.NEUTRAL, children: category.displayName }),
166
- category.required && /* @__PURE__ */ jsxs(Text, { color: CLI_COLORS.NEUTRAL, children: [
167
- " ",
168
- SYMBOL_REQUIRED
169
- ] }),
170
165
  selectionCounter && /* @__PURE__ */ jsxs(Text, { dimColor: true, children: [
171
166
  " ",
172
167
  selectionCounter
@@ -265,4 +260,4 @@ var CategoryGrid = ({
265
260
  export {
266
261
  CategoryGrid
267
262
  };
268
- //# sourceMappingURL=chunk-BQJVHD6Y.js.map
263
+ //# sourceMappingURL=chunk-EERGAAGE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/components/wizard/category-grid.tsx","../src/cli/components/hooks/use-category-grid-input.ts"],"sourcesContent":["import React, { useCallback, useEffect } from \"react\";\n\nimport { Box, Text } from \"ink\";\n\nimport { CLI_COLORS } from \"../../consts.js\";\nimport { getSkillById } from \"../../lib/matrix/matrix-provider.js\";\nimport type { Category, OptionState, SkillId, SkillScope } from \"../../types/index.js\";\nimport { useCategoryGridInput } from \"../hooks/use-category-grid-input.js\";\nimport { useFocusedListItem } from \"../hooks/use-focused-list-item.js\";\nimport { useSectionScroll } from \"../hooks/use-section-scroll.js\";\n\nexport type CategoryOption = {\n id: SkillId;\n state: OptionState;\n selected: boolean;\n local?: boolean;\n installed?: boolean;\n scope?: SkillScope;\n /** Secondary scope badge shown alongside primary (e.g. after G->P toggle, excluded tombstone) */\n secondaryScope?: SkillScope;\n source?: string;\n /** True when selected but has unmet dependency requirements (shown dimmed) */\n hasUnmetRequirements?: boolean;\n /** Explains unmet requirements (shown in label when D pressed) */\n unmetRequirementsReason?: string;\n /** Display name of the skill that requires this one (e.g. \"Next.js\") */\n requiredBy?: string;\n};\n\nexport type CategoryRow = {\n id: Category;\n displayName: string;\n exclusive: boolean;\n options: CategoryOption[];\n};\n\nexport type CategoryGridProps = {\n categories: CategoryRow[];\n /** Available height in terminal lines for the scrollable viewport. 0 = no constraint. */\n availableHeight?: number;\n showLabels: boolean;\n onToggle: (categoryId: Category, technologyId: SkillId) => void;\n onToggleLabels: () => void;\n /** Optional initial focus row (default: 0). Use with React `key` to reset. */\n defaultFocusedRow?: number;\n /** Optional initial focus col (default: 0). Use with React `key` to reset. */\n defaultFocusedCol?: number;\n /** Optional callback fired whenever the focused position changes */\n onFocusChange?: (row: number, col: number) => void;\n /** Optional callback fired with the resolved SkillId of the focused cell */\n onFocusedSkillChange?: (skillId: SkillId | null) => void;\n};\n\n/** Next option index stepping cyclically from `currentIndex`; empty rows stay put. */\nconst wrapOptionIndex = (length: number, currentIndex: number, direction: 1 | -1): number => {\n if (length === 0) return currentIndex;\n return (currentIndex + direction + length) % length;\n};\n\ntype SkillTagProps = {\n option: CategoryOption;\n isFocused: boolean;\n showLabels: boolean;\n};\n\n/**\n * The verdict word and the reason behind it — `(incompatible: conflicts with Vue\n * Composition Api)`. Every advisory state but `normal` carries a reason, so the\n * status discriminant narrows to the two that have one to state.\n *\n * The word leads rather than the reason: it is the only carrier of the verdict\n * once colour is off, a `discourages` rule's reason is free-form author prose\n * that need not identify itself as a discouragement, and `CELL_ANNOTATION` in\n * `e2e/pages/steps/build-step.ts` anchors cell-label parsing on that keyword.\n *\n * Nothing is elided. A long reason grows the tag and wraps inside its border,\n * which is what `unmetRequirementsReason` above already does.\n */\nconst advisoryAnnotation = (state: OptionState): string | null =>\n state.status === \"normal\" ? null : `(${state.status}: ${state.reason})`;\n\nconst getCompatibilityLabel = (option: CategoryOption): string | null => {\n if (option.selected && option.hasUnmetRequirements && option.unmetRequirementsReason) {\n return `(${option.unmetRequirementsReason})`;\n }\n if (option.selected) return null;\n if (option.requiredBy) return `(required by ${option.requiredBy})`;\n return advisoryAnnotation(option.state);\n};\n\nconst STATUS_COLORS: Partial<Record<OptionState[\"status\"], string>> = {\n incompatible: CLI_COLORS.ERROR,\n discouraged: CLI_COLORS.WARNING,\n};\n\n/** Selected wins, then advisory status; `fallback` covers the plain \"normal\" state. */\nfunction resolveTagColor(option: CategoryOption, fallback: string): string {\n if (option.selected) return CLI_COLORS.PRIMARY;\n return STATUS_COLORS[option.state.status] ?? fallback;\n}\n\nconst SkillTag: React.FC<SkillTagProps> = ({ option, isFocused, showLabels }) => {\n const textColor = resolveTagColor(option, CLI_COLORS.DIM);\n const hasRequiredBy = option.selected && !!option.requiredBy;\n const hasUnmetDeps = option.selected && !!option.hasUnmetRequirements;\n const isDimmed = hasUnmetDeps || hasRequiredBy;\n const showCompatibility = hasRequiredBy || hasUnmetDeps || (showLabels && isFocused);\n const compatibilityLabel = showCompatibility ? getCompatibilityLabel(option) : null;\n\n return (\n <Box\n marginRight={1}\n borderColor={isFocused ? resolveTagColor(option, CLI_COLORS.UNFOCUSED) : textColor}\n borderDimColor={!isFocused}\n borderStyle=\"single\"\n flexShrink={0}\n paddingLeft={1}\n flexDirection=\"row\"\n >\n <>\n {option.scope && (\n <>\n {[option.scope, option.secondaryScope].filter(Boolean).map((badgeScope, i) => (\n <Text key={i} color={CLI_COLORS.WARNING} backgroundColor={CLI_COLORS.LABEL_BG}>\n {badgeScope === \"global\" ? \" G \" : \" P \"}\n </Text>\n ))}\n <Text> </Text>\n </>\n )}\n <Text color={textColor} bold dimColor={isDimmed}>\n {getSkillById(option.id).displayName}{\" \"}\n </Text>\n {compatibilityLabel && (\n <Text color={textColor} dimColor>\n {compatibilityLabel}{\" \"}\n </Text>\n )}\n </>\n </Box>\n );\n};\n\ntype CategorySectionProps = {\n isFirst: boolean;\n category: CategoryRow;\n isFocused: boolean;\n focusedOptionIndex: number;\n showLabels: boolean;\n};\n\nconst CategorySection: React.FC<CategorySectionProps> = ({\n isFirst,\n category,\n isFocused,\n focusedOptionIndex,\n showLabels,\n}) => {\n const { options } = category;\n const selectedCount = options.filter((o) => o.selected).length;\n\n const selectionCounter = category.exclusive ? `(${selectedCount} of 1)` : null;\n\n return (\n <Box flexDirection=\"column\" marginTop={isFirst ? 0 : 1}>\n <Box flexDirection=\"row\">\n {isFocused ? (\n <Text color={CLI_COLORS.WHITE} backgroundColor={CLI_COLORS.LABEL_BG}>\n {` ${category.displayName}${selectionCounter ? ` ${selectionCounter}` : \"\"} `}\n </Text>\n ) : (\n <>\n <Text color={CLI_COLORS.NEUTRAL}>{category.displayName}</Text>\n {selectionCounter && <Text dimColor> {selectionCounter}</Text>}\n </>\n )}\n </Box>\n\n <Box flexDirection=\"row\" flexWrap=\"wrap\" marginTop={0}>\n {options.map((option, index) => (\n <SkillTag\n key={option.id}\n option={option}\n isFocused={isFocused && index === focusedOptionIndex}\n showLabels={showLabels}\n />\n ))}\n </Box>\n </Box>\n );\n};\n\nexport const CategoryGrid: React.FC<CategoryGridProps> = ({\n categories,\n availableHeight = 0,\n showLabels,\n onToggle,\n onToggleLabels,\n defaultFocusedRow = 0,\n defaultFocusedCol = 0,\n onFocusChange,\n onFocusedSkillChange,\n}) => {\n const getColCount = useCallback(\n (row: number): number => categories[row]?.options.length ?? 0,\n [categories],\n );\n\n const findValidCol = useCallback(\n (row: number, currentCol: number, direction: 1 | -1): number =>\n wrapOptionIndex(categories[row]?.options.length ?? 0, currentCol, direction),\n [categories],\n );\n\n const handleFocusChange = useCallback(\n (row: number, col: number) => {\n if (showLabels) onToggleLabels();\n onFocusChange?.(row, col);\n },\n [showLabels, onToggleLabels, onFocusChange],\n );\n\n const { focusedRow, focusedCol, setFocused, moveFocus } = useFocusedListItem(\n categories.length,\n getColCount,\n {\n wrap: true,\n findValidCol,\n onChange: handleFocusChange,\n initialRow: defaultFocusedRow,\n initialCol: defaultFocusedCol,\n },\n );\n\n useCategoryGridInput({\n categories,\n focusedRow,\n focusedCol,\n setFocused,\n moveFocus,\n onToggle,\n onToggleLabels,\n });\n\n // Report the focused cell's skill on mount and whenever it changes — including\n // category reshapes that shift the cell without a navigation event. useFocusedListItem\n // only fires onChange during navigation, so the initially highlighted cell would\n // otherwise never reach the store, leaving focusedSkillId out of sync with the visual\n // focus and making the `s` scope hotkey no-op until the first arrow key.\n const focusedSkillId = categories[focusedRow]?.options[focusedCol]?.id ?? null;\n useEffect(() => {\n onFocusedSkillChange?.(focusedSkillId);\n }, [focusedSkillId, onFocusedSkillChange]);\n\n // `hiddenAbove` / `hiddenBelow` are discarded ON PURPOSE — the build grid has\n // no `ScrollAffordance` and is not getting one (owner decision). On a grid\n // this dense a half-cut card already says \"there is more\"; a counted hint\n // would be noise, and it would cost the viewport a row to say what the\n // clipped card says for free. Do not add one on the strength of the counts\n // merely being available here.\n const { setSectionRef, scrollEnabled, scrollTopPx } = useSectionScroll({\n sectionCount: categories.length,\n focusedIndex: focusedRow,\n availableHeight,\n });\n\n if (categories.length === 0) {\n return (\n <Box flexDirection=\"column\">\n <Text dimColor>No categories to display.</Text>\n </Box>\n );\n }\n\n const noShrink = scrollEnabled ? { flexShrink: 0 } : {};\n\n const sectionElements = categories.map((category, index) => (\n <Box key={category.id} ref={(el) => setSectionRef(index, el)} {...noShrink}>\n <CategorySection\n category={category}\n isFocused={index === focusedRow}\n focusedOptionIndex={focusedCol}\n showLabels={showLabels}\n isFirst={index === 0}\n />\n </Box>\n ));\n\n return (\n <Box\n flexDirection=\"column\"\n {...(scrollEnabled\n ? { height: availableHeight, overflow: \"hidden\" as const }\n : { flexGrow: 1 })}\n >\n <Box flexDirection=\"column\" marginTop={scrollTopPx > 0 ? -scrollTopPx : 0} {...noShrink}>\n {sectionElements}\n </Box>\n </Box>\n );\n};\n","import { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { useInput, type Key } from \"ink\";\n\nimport type { Category, SkillId } from \"../../types/index.js\";\nimport type { CategoryRow } from \"../wizard/category-grid.js\";\nimport type { Direction } from \"./use-focused-list-item.js\";\nimport { HOTKEY_TOGGLE_LABELS, KEY_SPACE, isHotkey } from \"../wizard/hotkeys.js\";\n\n/** Find next section index (wrapping forward) */\nconst findNextIndex = (items: { length: number }, currentIndex: number): number => {\n const length = items.length;\n if (length === 0) return currentIndex;\n return (currentIndex + 1) % length;\n};\n\ntype UseCategoryGridInputOptions = {\n categories: CategoryRow[];\n focusedRow: number;\n focusedCol: number;\n setFocused: (row: number, col: number) => void;\n moveFocus: (direction: Direction) => void;\n onToggle: (categoryId: Category, technologyId: SkillId) => void;\n onToggleLabels: () => void;\n};\n\nexport function useCategoryGridInput({\n categories,\n focusedRow,\n focusedCol,\n setFocused,\n moveFocus,\n onToggle,\n onToggleLabels,\n}: UseCategoryGridInputOptions): void {\n const currentRow = categories[focusedRow];\n // Memoised so the effect below keys on the row actually changing — the `[]`\n // fallback used to be a fresh array every render, re-running the effect for\n // nothing whenever no row was focused.\n const currentOptions = useMemo(() => currentRow?.options ?? [], [currentRow]);\n\n // Adjust column when current row's options change externally (e.g. option becomes disabled)\n useEffect(() => {\n if (!currentRow) return;\n\n const maxCol = currentOptions.length - 1;\n if (focusedCol > maxCol) {\n const newCol = Math.max(0, maxCol);\n setFocused(focusedRow, newCol);\n }\n }, [focusedRow, currentOptions, focusedCol, setFocused, currentRow]);\n\n // Store the latest handler in a ref so that the useInput effect never needs to\n // re-register on the event emitter. This avoids a stale-closure race condition\n // where, after a domain switch (CategoryGrid remount via key={activeDomain}),\n // the useInput effect may not yet have re-registered the updated handler when\n // the first keypress arrives — causing the first space press to be silently lost.\n const handlerRef = useRef<((input: string, key: Key) => void) | null>(null);\n handlerRef.current = (input: string, key: Key) => {\n if (key.tab && key.shift) {\n onToggleLabels();\n return;\n }\n\n if (key.tab && !key.shift) {\n const nextSection = findNextIndex(categories, focusedRow);\n if (nextSection !== focusedRow) {\n setFocused(nextSection, 0);\n }\n return;\n }\n\n if (isHotkey(input, HOTKEY_TOGGLE_LABELS)) {\n onToggleLabels();\n return;\n }\n\n if (input === KEY_SPACE) {\n const currentOption = currentOptions[focusedCol];\n if (currentRow && currentOption) {\n onToggle(currentRow.id, currentOption.id);\n }\n return;\n }\n\n const isLeft = key.leftArrow || input === \"h\";\n const isRight = key.rightArrow || input === \"l\";\n const isUp = key.upArrow || input === \"k\";\n const isDown = key.downArrow || input === \"j\";\n\n if (isLeft) {\n moveFocus(\"left\");\n } else if (isRight) {\n moveFocus(\"right\");\n } else if (isUp) {\n moveFocus(\"up\");\n } else if (isDown) {\n moveFocus(\"down\");\n }\n };\n\n // Stable handler reference — never changes, so useInput's effect registers once\n const stableHandler = useCallback((input: string, key: Key) => {\n handlerRef.current?.(input, key);\n }, []);\n\n useInput(stableHandler);\n}\n"],"mappings":"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","names":["useCallback","useEffect","useCallback","useEffect"]}
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  SummaryPanel
4
- } from "./chunk-42PQKBVU.js";
4
+ } from "./chunk-ODUACQLV.js";
5
5
  import {
6
6
  Toast
7
- } from "./chunk-SITF5EZM.js";
7
+ } from "./chunk-HB3YIAFD.js";
8
8
  import {
9
9
  WizardTabs,
10
10
  wizardTabsFor
11
- } from "./chunk-4APXK7ZY.js";
11
+ } from "./chunk-5MML3K36.js";
12
12
  import {
13
13
  getDomainDisplayName,
14
14
  getStackName
15
- } from "./chunk-FBRLHNUT.js";
15
+ } from "./chunk-3M75HVIM.js";
16
16
  import {
17
17
  HOTKEY_INFO,
18
18
  HOTKEY_SCOPE,
@@ -24,18 +24,18 @@ import {
24
24
  } from "./chunk-WTJ3AY33.js";
25
25
  import {
26
26
  getActiveStepFlow,
27
- orderDomains,
28
27
  useWizardStore
29
- } from "./chunk-LVA6XJGR.js";
28
+ } from "./chunk-YOVUXONB.js";
30
29
  import {
31
30
  formatTerminalTooSmallMessage,
32
31
  isTerminalLargeEnough
33
- } from "./chunk-4VVKVOOP.js";
32
+ } from "./chunk-UMYEY6BA.js";
34
33
  import {
35
34
  CLI_COLORS,
36
35
  FALLBACK_DOMAIN,
37
- LOGO_MIN_TERMINAL_ROWS
38
- } from "./chunk-5KB4I5J7.js";
36
+ LOGO_MIN_TERMINAL_ROWS,
37
+ orderDomains
38
+ } from "./chunk-AMZO4YJK.js";
39
39
 
40
40
  // src/cli/components/wizard/wizard-layout.tsx
41
41
  import { Box, Text } from "ink";
@@ -234,4 +234,4 @@ export {
234
234
  useTerminalDimensions,
235
235
  WizardLayout
236
236
  };
237
- //# sourceMappingURL=chunk-Z6G24ROK.js.map
237
+ //# sourceMappingURL=chunk-EQSMVZGS.js.map
@@ -1,17 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  SelectList
4
- } from "./chunk-OJIQOVWB.js";
4
+ } from "./chunk-DTCUZL7S.js";
5
5
  import {
6
- openUrl,
7
- seedToWizardResult
8
- } from "./chunk-YVQSDBTK.js";
6
+ openUrl
7
+ } from "./chunk-N6CILY5A.js";
9
8
  import {
10
9
  runWizardSession
11
- } from "./chunk-THLQS2AW.js";
10
+ } from "./chunk-B7YTQVAF.js";
12
11
  import {
13
12
  useTerminalDimensions
14
- } from "./chunk-Z6G24ROK.js";
13
+ } from "./chunk-EQSMVZGS.js";
15
14
  import {
16
15
  Spinner
17
16
  } from "./chunk-ZBPEFQ4G.js";
@@ -19,7 +18,7 @@ import {
19
18
  fetchSeedConfig,
20
19
  registerExternalSkills,
21
20
  writeExternalSkills
22
- } from "./chunk-NS5COBTT.js";
21
+ } from "./chunk-XA4SWA2Z.js";
23
22
  import {
24
23
  promptValue
25
24
  } from "./chunk-JCPANDNR.js";
@@ -27,24 +26,24 @@ import {
27
26
  compileAgentsAllScopes,
28
27
  loadSource,
29
28
  writeProjectConfig
30
- } from "./chunk-YAHTF4NO.js";
29
+ } from "./chunk-MED6GNV3.js";
31
30
  import {
32
31
  copyLocalSkills,
33
32
  discoverInstalledSkills
34
- } from "./chunk-VCUXNKOY.js";
33
+ } from "./chunk-A2NA377T.js";
35
34
  import {
36
35
  loadAgentDefs
37
- } from "./chunk-G7TYOPON.js";
36
+ } from "./chunk-B3YSTZZC.js";
38
37
  import {
39
38
  render
40
39
  } from "./chunk-JFLVEFFP.js";
41
40
  import {
42
41
  BaseCommand,
43
42
  EXIT_CODES
44
- } from "./chunk-WVKGO3Y5.js";
43
+ } from "./chunk-2MPXMJ2O.js";
45
44
  import {
46
45
  clearTerminalScreen
47
- } from "./chunk-4VVKVOOP.js";
46
+ } from "./chunk-UMYEY6BA.js";
48
47
  import {
49
48
  INCOMPLETE_WORK_RECOVERY,
50
49
  INSTALL_MODE_DESCRIPTIONS,
@@ -67,13 +66,14 @@ import {
67
66
  readFileSafe,
68
67
  resolveBranding,
69
68
  resolveInstallPaths,
69
+ seedToWizardResult,
70
70
  settingsFileSchema,
71
71
  sharedConfigExistingInstall,
72
72
  sharedConfigGlobalInstall,
73
73
  skippedUnknownAgents,
74
74
  skippedUnknownSkills,
75
75
  warn
76
- } from "./chunk-V625APR6.js";
76
+ } from "./chunk-YSQ76LWG.js";
77
77
  import {
78
78
  ASCII_LOGO,
79
79
  CLAUDE_DIR,
@@ -87,7 +87,7 @@ import {
87
87
  MAX_CONFIG_FILE_SIZE,
88
88
  STANDARD_FILES,
89
89
  editorConfigUrl
90
- } from "./chunk-5KB4I5J7.js";
90
+ } from "./chunk-AMZO4YJK.js";
91
91
 
92
92
  // src/cli/commands/init.tsx
93
93
  import "react";
@@ -824,4 +824,4 @@ export {
824
824
  Init,
825
825
  getDashboardData
826
826
  };
827
- //# sourceMappingURL=chunk-2Q65K6E3.js.map
827
+ //# sourceMappingURL=chunk-EY7Z34Y4.js.map
@@ -3,28 +3,28 @@ import {
3
3
  SEED_API_URL,
4
4
  SEED_USER_AGENT,
5
5
  readCarriedSkills
6
- } from "./chunk-NS5COBTT.js";
6
+ } from "./chunk-XA4SWA2Z.js";
7
7
  import {
8
8
  ERROR_MESSAGES,
9
- MATRIX_VERSION,
10
- SEED_VERSION,
11
9
  directoryExists,
12
10
  getErrorMessage,
13
- installableSeedPayloadSchema,
14
11
  isScopePairCompatible,
15
12
  loadProjectConfig,
16
13
  readForkedFromMetadata,
17
- resolveInstallPaths,
18
- seedModelSchema
19
- } from "./chunk-V625APR6.js";
14
+ resolveInstallPaths
15
+ } from "./chunk-YSQ76LWG.js";
20
16
  import {
21
17
  typedEntries,
22
18
  typedValues
23
- } from "./chunk-7Z4N4JWQ.js";
19
+ } from "./chunk-BLGETWYI.js";
24
20
  import {
25
21
  DEFAULT_PUBLIC_SOURCE_NAME,
26
- EJECT_SOURCE
27
- } from "./chunk-5KB4I5J7.js";
22
+ EJECT_SOURCE,
23
+ MATRIX_VERSION,
24
+ SEED_VERSION,
25
+ installableSeedPayloadSchema,
26
+ seedModelSchema
27
+ } from "./chunk-AMZO4YJK.js";
28
28
 
29
29
  // src/cli/lib/seed/installation-payload.ts
30
30
  import path from "path";
@@ -244,4 +244,4 @@ export {
244
244
  skillsAuthoredHere,
245
245
  publishSeedConfig
246
246
  };
247
- //# sourceMappingURL=chunk-BNHD2GIB.js.map
247
+ //# sourceMappingURL=chunk-F6LS2BQD.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CLI_COLORS
4
- } from "./chunk-5KB4I5J7.js";
4
+ } from "./chunk-AMZO4YJK.js";
5
5
 
6
6
  // src/cli/components/wizard/toast.tsx
7
7
  import { Box, Text } from "ink";
@@ -25,4 +25,4 @@ var Toast = ({ children }) => {
25
25
  export {
26
26
  Toast
27
27
  };
28
- //# sourceMappingURL=chunk-SITF5EZM.js.map
28
+ //# sourceMappingURL=chunk-HB3YIAFD.js.map
@@ -1,21 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  getDomainDisplayName
4
- } from "./chunk-FBRLHNUT.js";
4
+ } from "./chunk-3M75HVIM.js";
5
5
  import {
6
6
  CheckboxGrid
7
- } from "./chunk-AU5FS3QK.js";
7
+ } from "./chunk-DGXW2ZFY.js";
8
8
  import {
9
- orderDomains,
10
9
  useWizardStore
11
- } from "./chunk-LVA6XJGR.js";
12
- import {
13
- DOMAIN_DESCRIPTIONS
14
- } from "./chunk-V625APR6.js";
10
+ } from "./chunk-YOVUXONB.js";
15
11
  import {
16
12
  matrix,
17
13
  typedEntries
18
- } from "./chunk-7Z4N4JWQ.js";
14
+ } from "./chunk-BLGETWYI.js";
15
+ import {
16
+ DOMAIN_DESCRIPTIONS,
17
+ orderDomains
18
+ } from "./chunk-AMZO4YJK.js";
19
19
 
20
20
  // src/cli/components/wizard/domain-selection.tsx
21
21
  import { useMemo } from "react";
@@ -56,4 +56,4 @@ var DomainSelection = () => {
56
56
  export {
57
57
  DomainSelection
58
58
  };
59
- //# sourceMappingURL=chunk-GPZQCLZJ.js.map
59
+ //# sourceMappingURL=chunk-LZPRLHUE.js.map