agents-inc 0.159.0 → 0.160.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/dist/{chunk-2Q65K6E3.js → chunk-5K33RJ7Z.js} +10 -10
- package/dist/{chunk-BQJVHD6Y.js → chunk-6CP3CLDE.js} +3 -8
- package/dist/chunk-6CP3CLDE.js.map +1 -0
- package/dist/{chunk-4VMLCWLD.js → chunk-7JQPIMKD.js} +2 -2
- package/dist/{chunk-5YOSLSQJ.js → chunk-C5P7RUDR.js} +3 -3
- package/dist/{chunk-G7TYOPON.js → chunk-CICB4AKA.js} +3 -3
- package/dist/{chunk-FBRLHNUT.js → chunk-CWQLRKWB.js} +3 -3
- package/dist/{chunk-JV4P7BL4.js → chunk-DEWI5HDF.js} +3 -3
- package/dist/{chunk-Z6G24ROK.js → chunk-EPBUWEW4.js} +4 -4
- package/dist/{chunk-IO2DPRDS.js → chunk-GWPKIXBM.js} +2 -2
- package/dist/{chunk-BNHD2GIB.js → chunk-IJ7GWQUR.js} +4 -4
- package/dist/{chunk-4RYWFQK7.js → chunk-IWUFZ6NR.js} +2 -2
- package/dist/{chunk-F35G42TF.js → chunk-J7Q5VYR7.js} +11 -11
- package/dist/{chunk-MPLWPWL4.js → chunk-JQDN7KAZ.js} +2 -2
- package/dist/{chunk-LSSGS2QS.js → chunk-K6MQV6SK.js} +3 -3
- package/dist/{chunk-YVQSDBTK.js → chunk-KCN5N3PB.js} +4 -4
- package/dist/{chunk-WVKGO3Y5.js → chunk-LJ6V54NR.js} +3 -3
- package/dist/{chunk-VCUXNKOY.js → chunk-LX7UXZBN.js} +5 -5
- package/dist/{chunk-VZRO7RYT.js → chunk-OI2H6M5I.js} +1 -103
- package/dist/chunk-OI2H6M5I.js.map +1 -0
- package/dist/{chunk-Z6KROWH4.js → chunk-OJR3ASZI.js} +5 -5
- package/dist/{chunk-V625APR6.js → chunk-OUG6TCQ4.js} +205 -335
- package/dist/chunk-OUG6TCQ4.js.map +1 -0
- package/dist/{chunk-62XKTOUI.js → chunk-PIUCYRLP.js} +5 -15
- package/dist/chunk-PIUCYRLP.js.map +1 -0
- package/dist/{chunk-WVBJRFFM.js → chunk-PWPKZNCV.js} +3 -3
- package/dist/{chunk-SKDTGHCD.js → chunk-Q2HB5SWU.js} +2 -2
- package/dist/{chunk-YAHTF4NO.js → chunk-RJ3JYZJ7.js} +8 -8
- package/dist/chunk-RJ3JYZJ7.js.map +1 -0
- package/dist/{chunk-LVA6XJGR.js → chunk-SLB2SFTX.js} +3 -27
- package/dist/chunk-SLB2SFTX.js.map +1 -0
- package/dist/{chunk-NS5COBTT.js → chunk-VH6P7UGF.js} +3 -3
- package/dist/{chunk-42PQKBVU.js → chunk-VI4X5DN5.js} +4 -4
- package/dist/{chunk-THLQS2AW.js → chunk-XDNGMXOZ.js} +4 -4
- package/dist/{chunk-GPZQCLZJ.js → chunk-XSULY25W.js} +5 -5
- package/dist/{chunk-7Z4N4JWQ.js → chunk-XX657S4U.js} +1 -103
- package/dist/chunk-XX657S4U.js.map +1 -0
- package/dist/commands/build/marketplace.js +6 -6
- package/dist/commands/build/plugins.js +6 -6
- package/dist/commands/compile.js +9 -9
- package/dist/commands/doctor.js +9 -9
- package/dist/commands/edit.js +28 -28
- package/dist/commands/eject.js +9 -9
- package/dist/commands/init.js +28 -28
- package/dist/commands/list.js +7 -7
- package/dist/commands/new/marketplace.js +6 -7
- package/dist/commands/new/marketplace.js.map +1 -1
- package/dist/commands/search.js +9 -9
- package/dist/commands/share.js +7 -7
- package/dist/commands/uninstall.js +9 -9
- package/dist/commands/update.js +5 -5
- package/dist/components/wizard/category-grid.js +2 -2
- package/dist/components/wizard/domain-selection.js +6 -6
- package/dist/components/wizard/run-wizard-session.js +19 -19
- package/dist/components/wizard/skill-agent-summary.js +5 -5
- package/dist/components/wizard/source-grid.js +2 -2
- package/dist/components/wizard/stack-selection.js +5 -5
- package/dist/components/wizard/step-agents.js +6 -6
- package/dist/components/wizard/step-build.js +6 -6
- package/dist/components/wizard/step-confirm.js +8 -8
- package/dist/components/wizard/step-sources.js +6 -6
- package/dist/components/wizard/step-stack.js +6 -6
- package/dist/components/wizard/summary-panel.js +7 -7
- package/dist/components/wizard/wizard-layout.js +8 -8
- package/dist/components/wizard/wizard.js +18 -18
- package/dist/config-exports.js +1 -1
- package/dist/hooks/init.js +28 -28
- package/dist/load-agent-defs-KWHG7P7G.js +13 -0
- package/dist/recompile-project-agents-5FTDDHX7.js +17 -0
- package/dist/{source-loader-CC6ZWKTI.js → source-loader-CDYH2NIM.js} +4 -4
- package/dist/src/agents/_templates/methodologies/anti-over-engineering.liquid +14 -0
- package/dist/src/agents/_templates/methodologies/context-management.liquid +7 -154
- package/dist/src/agents/_templates/methodologies/investigation-requirements.liquid +12 -0
- package/dist/src/agents/_templates/methodologies/success-criteria.liquid +10 -0
- package/dist/stores/wizard-store.js +4 -4
- package/package.json +1 -1
- package/src/agents/_templates/methodologies/anti-over-engineering.liquid +14 -0
- package/src/agents/_templates/methodologies/context-management.liquid +7 -154
- package/src/agents/_templates/methodologies/investigation-requirements.liquid +12 -0
- package/src/agents/_templates/methodologies/success-criteria.liquid +10 -0
- package/dist/chunk-62XKTOUI.js.map +0 -1
- package/dist/chunk-7Z4N4JWQ.js.map +0 -1
- package/dist/chunk-BQJVHD6Y.js.map +0 -1
- package/dist/chunk-LVA6XJGR.js.map +0 -1
- package/dist/chunk-V625APR6.js.map +0 -1
- package/dist/chunk-VZRO7RYT.js.map +0 -1
- package/dist/chunk-YAHTF4NO.js.map +0 -1
- package/dist/load-agent-defs-2H42B2OO.js +0 -13
- package/dist/recompile-project-agents-QIAMBCM4.js +0 -17
- /package/dist/{chunk-2Q65K6E3.js.map → chunk-5K33RJ7Z.js.map} +0 -0
- /package/dist/{chunk-4VMLCWLD.js.map → chunk-7JQPIMKD.js.map} +0 -0
- /package/dist/{chunk-5YOSLSQJ.js.map → chunk-C5P7RUDR.js.map} +0 -0
- /package/dist/{chunk-G7TYOPON.js.map → chunk-CICB4AKA.js.map} +0 -0
- /package/dist/{chunk-FBRLHNUT.js.map → chunk-CWQLRKWB.js.map} +0 -0
- /package/dist/{chunk-JV4P7BL4.js.map → chunk-DEWI5HDF.js.map} +0 -0
- /package/dist/{chunk-Z6G24ROK.js.map → chunk-EPBUWEW4.js.map} +0 -0
- /package/dist/{chunk-IO2DPRDS.js.map → chunk-GWPKIXBM.js.map} +0 -0
- /package/dist/{chunk-BNHD2GIB.js.map → chunk-IJ7GWQUR.js.map} +0 -0
- /package/dist/{chunk-4RYWFQK7.js.map → chunk-IWUFZ6NR.js.map} +0 -0
- /package/dist/{chunk-F35G42TF.js.map → chunk-J7Q5VYR7.js.map} +0 -0
- /package/dist/{chunk-MPLWPWL4.js.map → chunk-JQDN7KAZ.js.map} +0 -0
- /package/dist/{chunk-LSSGS2QS.js.map → chunk-K6MQV6SK.js.map} +0 -0
- /package/dist/{chunk-YVQSDBTK.js.map → chunk-KCN5N3PB.js.map} +0 -0
- /package/dist/{chunk-WVKGO3Y5.js.map → chunk-LJ6V54NR.js.map} +0 -0
- /package/dist/{chunk-VCUXNKOY.js.map → chunk-LX7UXZBN.js.map} +0 -0
- /package/dist/{chunk-Z6KROWH4.js.map → chunk-OJR3ASZI.js.map} +0 -0
- /package/dist/{chunk-WVBJRFFM.js.map → chunk-PWPKZNCV.js.map} +0 -0
- /package/dist/{chunk-SKDTGHCD.js.map → chunk-Q2HB5SWU.js.map} +0 -0
- /package/dist/{chunk-NS5COBTT.js.map → chunk-VH6P7UGF.js.map} +0 -0
- /package/dist/{chunk-42PQKBVU.js.map → chunk-VI4X5DN5.js.map} +0 -0
- /package/dist/{chunk-THLQS2AW.js.map → chunk-XDNGMXOZ.js.map} +0 -0
- /package/dist/{chunk-GPZQCLZJ.js.map → chunk-XSULY25W.js.map} +0 -0
- /package/dist/{load-agent-defs-2H42B2OO.js.map → load-agent-defs-KWHG7P7G.js.map} +0 -0
- /package/dist/{recompile-project-agents-QIAMBCM4.js.map → recompile-project-agents-5FTDDHX7.js.map} +0 -0
- /package/dist/{source-loader-CC6ZWKTI.js.map → source-loader-CDYH2NIM.js.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,19 @@ 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.160.0] - 2026-08-25
|
|
11
|
+
|
|
12
|
+
**A category is no longer required, a mixed installation counts what it declares, and two rows close by being refuted rather than fixed**
|
|
13
|
+
|
|
14
|
+
- The required-category concept leaves the product entirely — the advisory toast, the `*` header marker, the exclusive-and-required deselect guard and the `required` field on the category types and their three Zod schemas. The reported symptom was never a block: `handleContinue` always called `onContinue()`, so the toast only read as a refusal (CLI-822)
|
|
15
|
+
- A mixed installation counts the skills its configuration declares. `countInstalledSkills` branched on `mode === "plugin"` and otherwise counted directories, so `"mixed"` fell to the eject-only arm and plugin skills were never counted — the published binary printed `Skills: 2` over a config declaring eleven, while `list`'s interactive branch had always held the right answer eleven lines above (CLI-823)
|
|
16
|
+
- An assertion binds to the constant that governs its own data, and a rendering assertion keeps its literal. Eight proposed conversions were stopped by the second half, each of which would have introduced the defect the pass was removing (CLI-829)
|
|
17
|
+
- The positives beside the bound negatives: 8 of 246 converted, and the pass caught that the one before it had broken its own rule at nine sites — the assertion bound while the fixture kept a hardcoded id (CLI-828)
|
|
18
|
+
- Two E2E specs describe behaviour that exists: a comment claiming a Framework skill must be selected before advancing, disproved by a sibling asserting `(0 of 1)`, and a spec named for a deleted guard renamed for what it still proves (CLI-824)
|
|
19
|
+
- A fixture generator's dead return member and a silent no-op option are gone — **zero** call sites ever passed `matrix:`, so a future test using it would have been ignored without a word (CLI-826)
|
|
20
|
+
- `CLI-827` closes **refuted**: the factory was already correct, and the row's evidence had been measured against one TypeScript project where two exist — 6 errors against 83 (CLI-827)
|
|
21
|
+
- `CLI-830` closes as a **documented refusal**, proved in both directions: four plausible-but-wrong values draw complete `tsc` silence under `string` and all four error under the narrowing (CLI-830)
|
|
22
|
+
|
|
10
23
|
## [0.159.0] - 2026-08-24
|
|
11
24
|
|
|
12
25
|
**A configuration can be piped in and a shared id can be opened, the E2E harness takes ownership of the dist guards, and three rows close by disproving their own premise**
|
|
@@ -5,13 +5,13 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
openUrl,
|
|
7
7
|
seedToWizardResult
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-KCN5N3PB.js";
|
|
9
9
|
import {
|
|
10
10
|
runWizardSession
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-XDNGMXOZ.js";
|
|
12
12
|
import {
|
|
13
13
|
useTerminalDimensions
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-EPBUWEW4.js";
|
|
15
15
|
import {
|
|
16
16
|
Spinner
|
|
17
17
|
} from "./chunk-ZBPEFQ4G.js";
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
fetchSeedConfig,
|
|
20
20
|
registerExternalSkills,
|
|
21
21
|
writeExternalSkills
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-VH6P7UGF.js";
|
|
23
23
|
import {
|
|
24
24
|
promptValue
|
|
25
25
|
} from "./chunk-JCPANDNR.js";
|
|
@@ -27,21 +27,21 @@ import {
|
|
|
27
27
|
compileAgentsAllScopes,
|
|
28
28
|
loadSource,
|
|
29
29
|
writeProjectConfig
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-RJ3JYZJ7.js";
|
|
31
31
|
import {
|
|
32
32
|
copyLocalSkills,
|
|
33
33
|
discoverInstalledSkills
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-LX7UXZBN.js";
|
|
35
35
|
import {
|
|
36
36
|
loadAgentDefs
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-CICB4AKA.js";
|
|
38
38
|
import {
|
|
39
39
|
render
|
|
40
40
|
} from "./chunk-JFLVEFFP.js";
|
|
41
41
|
import {
|
|
42
42
|
BaseCommand,
|
|
43
43
|
EXIT_CODES
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-LJ6V54NR.js";
|
|
45
45
|
import {
|
|
46
46
|
clearTerminalScreen
|
|
47
47
|
} from "./chunk-4VVKVOOP.js";
|
|
@@ -73,7 +73,7 @@ import {
|
|
|
73
73
|
skippedUnknownAgents,
|
|
74
74
|
skippedUnknownSkills,
|
|
75
75
|
warn
|
|
76
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-OUG6TCQ4.js";
|
|
77
77
|
import {
|
|
78
78
|
ASCII_LOGO,
|
|
79
79
|
CLAUDE_DIR,
|
|
@@ -824,4 +824,4 @@ export {
|
|
|
824
824
|
Init,
|
|
825
825
|
getDashboardData
|
|
826
826
|
};
|
|
827
|
-
//# sourceMappingURL=chunk-
|
|
827
|
+
//# sourceMappingURL=chunk-5K33RJ7Z.js.map
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from "./chunk-PEHYVSJG.js";
|
|
13
13
|
import {
|
|
14
14
|
getSkillById
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-XX657S4U.js";
|
|
16
16
|
import {
|
|
17
17
|
CLI_COLORS
|
|
18
18
|
} from "./chunk-5KB4I5J7.js";
|
|
@@ -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}${
|
|
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-
|
|
263
|
+
//# sourceMappingURL=chunk-6CP3CLDE.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"]}
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
verbose,
|
|
7
7
|
warn,
|
|
8
8
|
writeFile
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-OUG6TCQ4.js";
|
|
10
10
|
import {
|
|
11
11
|
DEFAULT_PUBLIC_SOURCE_NAME,
|
|
12
12
|
DEFAULT_VERSION,
|
|
@@ -127,4 +127,4 @@ export {
|
|
|
127
127
|
writeMarketplace,
|
|
128
128
|
getMarketplaceStats
|
|
129
129
|
};
|
|
130
|
-
//# sourceMappingURL=chunk-
|
|
130
|
+
//# sourceMappingURL=chunk-7JQPIMKD.js.map
|
|
@@ -34,12 +34,12 @@ import {
|
|
|
34
34
|
writeContentHash,
|
|
35
35
|
writeFile,
|
|
36
36
|
writePluginManifest
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-OUG6TCQ4.js";
|
|
38
38
|
import {
|
|
39
39
|
typedEntries,
|
|
40
40
|
typedFromEntries,
|
|
41
41
|
typedKeys
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-XX657S4U.js";
|
|
43
43
|
import {
|
|
44
44
|
CLAUDE_DIR,
|
|
45
45
|
CLAUDE_SRC_DIR,
|
|
@@ -565,4 +565,4 @@ export {
|
|
|
565
565
|
compileAllAgentPlugins,
|
|
566
566
|
printAgentCompilationSummary
|
|
567
567
|
};
|
|
568
|
-
//# sourceMappingURL=chunk-
|
|
568
|
+
//# sourceMappingURL=chunk-C5P7RUDR.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
getAgentDefinitions
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-C5P7RUDR.js";
|
|
5
5
|
import {
|
|
6
6
|
loadMergedAgents
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-OUG6TCQ4.js";
|
|
8
8
|
|
|
9
9
|
// src/cli/lib/operations/project/load-agent-defs.ts
|
|
10
10
|
async function loadAgentDefs() {
|
|
@@ -20,4 +20,4 @@ async function loadAgentDefs() {
|
|
|
20
20
|
export {
|
|
21
21
|
loadAgentDefs
|
|
22
22
|
};
|
|
23
|
-
//# sourceMappingURL=chunk-
|
|
23
|
+
//# sourceMappingURL=chunk-CICB4AKA.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
isDomain
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-OUG6TCQ4.js";
|
|
5
5
|
import {
|
|
6
6
|
findStack
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-XX657S4U.js";
|
|
8
8
|
|
|
9
9
|
// src/cli/components/wizard/utils.ts
|
|
10
10
|
var DOMAIN_DISPLAY_NAMES = {
|
|
@@ -32,4 +32,4 @@ export {
|
|
|
32
32
|
getDomainDisplayName,
|
|
33
33
|
getStackName
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=chunk-
|
|
35
|
+
//# sourceMappingURL=chunk-CWQLRKWB.js.map
|
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
import {
|
|
12
12
|
showWarningsAsToast,
|
|
13
13
|
useWizardStore
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-SLB2SFTX.js";
|
|
15
15
|
import {
|
|
16
16
|
matrix,
|
|
17
17
|
typedKeys
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-XX657S4U.js";
|
|
19
19
|
import {
|
|
20
20
|
CLI_COLORS,
|
|
21
21
|
UI_SYMBOLS
|
|
@@ -194,4 +194,4 @@ var StackSelection = ({ onCancel }) => {
|
|
|
194
194
|
export {
|
|
195
195
|
StackSelection
|
|
196
196
|
};
|
|
197
|
-
//# sourceMappingURL=chunk-
|
|
197
|
+
//# sourceMappingURL=chunk-DEWI5HDF.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
SummaryPanel
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-VI4X5DN5.js";
|
|
5
5
|
import {
|
|
6
6
|
Toast
|
|
7
7
|
} from "./chunk-SITF5EZM.js";
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
import {
|
|
13
13
|
getDomainDisplayName,
|
|
14
14
|
getStackName
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-CWQLRKWB.js";
|
|
16
16
|
import {
|
|
17
17
|
HOTKEY_INFO,
|
|
18
18
|
HOTKEY_SCOPE,
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
getActiveStepFlow,
|
|
27
27
|
orderDomains,
|
|
28
28
|
useWizardStore
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-SLB2SFTX.js";
|
|
30
30
|
import {
|
|
31
31
|
formatTerminalTooSmallMessage,
|
|
32
32
|
isTerminalLargeEnough
|
|
@@ -234,4 +234,4 @@ export {
|
|
|
234
234
|
useTerminalDimensions,
|
|
235
235
|
WizardLayout
|
|
236
236
|
};
|
|
237
|
-
//# sourceMappingURL=chunk-
|
|
237
|
+
//# sourceMappingURL=chunk-EPBUWEW4.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
StackSelection
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-DEWI5HDF.js";
|
|
5
5
|
|
|
6
6
|
// src/cli/components/wizard/step-stack.tsx
|
|
7
7
|
import { Box } from "ink";
|
|
@@ -14,4 +14,4 @@ var StepStack = ({ onCancel }) => {
|
|
|
14
14
|
export {
|
|
15
15
|
StepStack
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=chunk-
|
|
17
|
+
//# sourceMappingURL=chunk-GWPKIXBM.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
SEED_API_URL,
|
|
4
4
|
SEED_USER_AGENT,
|
|
5
5
|
readCarriedSkills
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VH6P7UGF.js";
|
|
7
7
|
import {
|
|
8
8
|
ERROR_MESSAGES,
|
|
9
9
|
MATRIX_VERSION,
|
|
@@ -16,11 +16,11 @@ import {
|
|
|
16
16
|
readForkedFromMetadata,
|
|
17
17
|
resolveInstallPaths,
|
|
18
18
|
seedModelSchema
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-OUG6TCQ4.js";
|
|
20
20
|
import {
|
|
21
21
|
typedEntries,
|
|
22
22
|
typedValues
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-XX657S4U.js";
|
|
24
24
|
import {
|
|
25
25
|
DEFAULT_PUBLIC_SOURCE_NAME,
|
|
26
26
|
EJECT_SOURCE
|
|
@@ -244,4 +244,4 @@ export {
|
|
|
244
244
|
skillsAuthoredHere,
|
|
245
245
|
publishSeedConfig
|
|
246
246
|
};
|
|
247
|
-
//# sourceMappingURL=chunk-
|
|
247
|
+
//# sourceMappingURL=chunk-IJ7GWQUR.js.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
getErrorMessage,
|
|
6
6
|
isLocalOnlySkill,
|
|
7
7
|
toClaudePluginScope
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-OUG6TCQ4.js";
|
|
9
9
|
import {
|
|
10
10
|
CLI_INVOKE_COMMAND,
|
|
11
11
|
EJECT_SOURCE
|
|
@@ -44,4 +44,4 @@ export {
|
|
|
44
44
|
unbackedPluginInstallError,
|
|
45
45
|
installPluginSkills
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=chunk-
|
|
47
|
+
//# sourceMappingURL=chunk-IWUFZ6NR.js.map
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
StepConfirm
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-JQDN7KAZ.js";
|
|
5
5
|
import {
|
|
6
6
|
StepSources
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-K6MQV6SK.js";
|
|
8
8
|
import {
|
|
9
9
|
StepStack
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-GWPKIXBM.js";
|
|
11
11
|
import {
|
|
12
12
|
WizardLayout
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-EPBUWEW4.js";
|
|
14
14
|
import {
|
|
15
15
|
DomainSelection
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-XSULY25W.js";
|
|
17
17
|
import {
|
|
18
18
|
StepAgents
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-OJR3ASZI.js";
|
|
20
20
|
import {
|
|
21
21
|
StepBuild
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-PIUCYRLP.js";
|
|
23
23
|
import {
|
|
24
24
|
HOTKEY_ACCEPT_DEFAULTS,
|
|
25
25
|
HOTKEY_INFO,
|
|
@@ -29,15 +29,15 @@ import {
|
|
|
29
29
|
} from "./chunk-WTJ3AY33.js";
|
|
30
30
|
import {
|
|
31
31
|
useWizardStore
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-SLB2SFTX.js";
|
|
33
33
|
import {
|
|
34
34
|
validateSelection
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-OUG6TCQ4.js";
|
|
36
36
|
import {
|
|
37
37
|
findStack,
|
|
38
38
|
getSkillById,
|
|
39
39
|
matrix
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-XX657S4U.js";
|
|
41
41
|
import {
|
|
42
42
|
CLI_COLORS,
|
|
43
43
|
EJECT_SOURCE,
|
|
@@ -313,4 +313,4 @@ export {
|
|
|
313
313
|
resolveSelectedSkillIds,
|
|
314
314
|
Wizard
|
|
315
315
|
};
|
|
316
|
-
//# sourceMappingURL=chunk-
|
|
316
|
+
//# sourceMappingURL=chunk-J7Q5VYR7.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
SummaryPanel
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-VI4X5DN5.js";
|
|
5
5
|
|
|
6
6
|
// src/cli/components/wizard/step-confirm.tsx
|
|
7
7
|
import { useInput } from "ink";
|
|
@@ -22,4 +22,4 @@ var StepConfirm = ({ onComplete, onBack }) => {
|
|
|
22
22
|
export {
|
|
23
23
|
StepConfirm
|
|
24
24
|
};
|
|
25
|
-
//# sourceMappingURL=chunk-
|
|
25
|
+
//# sourceMappingURL=chunk-JQDN7KAZ.js.map
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
import {
|
|
3
3
|
SourceGrid,
|
|
4
4
|
isRowInert
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-Q2HB5SWU.js";
|
|
6
6
|
import {
|
|
7
7
|
useMeasuredHeight
|
|
8
8
|
} from "./chunk-TSIU7DME.js";
|
|
9
9
|
import {
|
|
10
10
|
useWizardStore
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-SLB2SFTX.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-
|
|
48
|
+
//# sourceMappingURL=chunk-K6MQV6SK.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
orderDomains
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-SLB2SFTX.js";
|
|
5
5
|
import {
|
|
6
6
|
AGENT_NAMES,
|
|
7
7
|
execCommand,
|
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
isScopePairCompatible,
|
|
10
10
|
seedAgentScope,
|
|
11
11
|
validateSelection
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-OUG6TCQ4.js";
|
|
13
13
|
import {
|
|
14
14
|
getCategoryDomain
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-XX657S4U.js";
|
|
16
16
|
import {
|
|
17
17
|
DEFAULT_PUBLIC_SOURCE_NAME
|
|
18
18
|
} from "./chunk-5KB4I5J7.js";
|
|
@@ -166,4 +166,4 @@ export {
|
|
|
166
166
|
seedToWizardResult,
|
|
167
167
|
openUrl
|
|
168
168
|
};
|
|
169
|
-
//# sourceMappingURL=chunk-
|
|
169
|
+
//# sourceMappingURL=chunk-KCN5N3PB.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
pluginInstallFailureError,
|
|
5
5
|
unbackedPluginInstallError,
|
|
6
6
|
unbackedPluginSkillIds
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-IWUFZ6NR.js";
|
|
8
8
|
import {
|
|
9
9
|
clearTerminalScreen,
|
|
10
10
|
formatTerminalTooSmallMessage,
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
skillMetadataUnusableDetail,
|
|
35
35
|
verbose,
|
|
36
36
|
warn
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-OUG6TCQ4.js";
|
|
38
38
|
import {
|
|
39
39
|
CLI_COLORS,
|
|
40
40
|
DEFAULT_BRANDING,
|
|
@@ -477,4 +477,4 @@ export {
|
|
|
477
477
|
EXIT_CODES,
|
|
478
478
|
BaseCommand
|
|
479
479
|
};
|
|
480
|
-
//# sourceMappingURL=chunk-
|
|
480
|
+
//# sourceMappingURL=chunk-LJ6V54NR.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
loadAgentDefs
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-CICB4AKA.js";
|
|
5
5
|
import {
|
|
6
6
|
pruneStaleCompiledAgents,
|
|
7
7
|
recompileAgents
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-C5P7RUDR.js";
|
|
9
9
|
import {
|
|
10
10
|
buildAgentScopeMap,
|
|
11
11
|
buildMarketplacePluginRef,
|
|
@@ -22,11 +22,11 @@ import {
|
|
|
22
22
|
resolveInstallPaths,
|
|
23
23
|
toClaudePluginScope,
|
|
24
24
|
verbose
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-OUG6TCQ4.js";
|
|
26
26
|
import {
|
|
27
27
|
typedEntries,
|
|
28
28
|
typedKeys
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-XX657S4U.js";
|
|
30
30
|
import {
|
|
31
31
|
LOCAL_SKILLS_PATH,
|
|
32
32
|
globalInstallRoot
|
|
@@ -252,4 +252,4 @@ export {
|
|
|
252
252
|
recompileRegisteredProjectAgents,
|
|
253
253
|
recompilePropagatedProjectAgents
|
|
254
254
|
};
|
|
255
|
-
//# sourceMappingURL=chunk-
|
|
255
|
+
//# sourceMappingURL=chunk-LX7UXZBN.js.map
|