@autonav/core 1.1.4 → 1.3.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 (72) hide show
  1. package/README.md +33 -0
  2. package/dist/adapter/claude-adapter.d.ts +30 -0
  3. package/dist/adapter/claude-adapter.d.ts.map +1 -1
  4. package/dist/adapter/claude-adapter.js +155 -0
  5. package/dist/adapter/claude-adapter.js.map +1 -1
  6. package/dist/cli/autonav.d.ts +1 -0
  7. package/dist/cli/autonav.d.ts.map +1 -1
  8. package/dist/cli/autonav.js +23 -4
  9. package/dist/cli/autonav.js.map +1 -1
  10. package/dist/cli/nav-init.js +19 -10
  11. package/dist/cli/nav-init.js.map +1 -1
  12. package/dist/cli/nav-install.d.ts +3 -0
  13. package/dist/cli/nav-install.d.ts.map +1 -0
  14. package/dist/cli/nav-install.js +101 -0
  15. package/dist/cli/nav-install.js.map +1 -0
  16. package/dist/cli/nav-uninstall.d.ts +3 -0
  17. package/dist/cli/nav-uninstall.d.ts.map +1 -0
  18. package/dist/cli/nav-uninstall.js +123 -0
  19. package/dist/cli/nav-uninstall.js.map +1 -0
  20. package/dist/cli/nav-update.d.ts +3 -0
  21. package/dist/cli/nav-update.d.ts.map +1 -0
  22. package/dist/cli/nav-update.js +131 -0
  23. package/dist/cli/nav-update.js.map +1 -0
  24. package/dist/interview/App.d.ts.map +1 -1
  25. package/dist/interview/App.js +141 -38
  26. package/dist/interview/App.js.map +1 -1
  27. package/dist/interview/ui/ActivityIndicator.d.ts +23 -0
  28. package/dist/interview/ui/ActivityIndicator.d.ts.map +1 -0
  29. package/dist/interview/ui/ActivityIndicator.js +81 -0
  30. package/dist/interview/ui/ActivityIndicator.js.map +1 -0
  31. package/dist/interview/ui/Banner.d.ts +14 -0
  32. package/dist/interview/ui/Banner.d.ts.map +1 -0
  33. package/dist/interview/ui/Banner.js +23 -0
  34. package/dist/interview/ui/Banner.js.map +1 -0
  35. package/dist/interview/ui/CompletionScreen.d.ts +12 -0
  36. package/dist/interview/ui/CompletionScreen.d.ts.map +1 -0
  37. package/dist/interview/ui/CompletionScreen.js +43 -0
  38. package/dist/interview/ui/CompletionScreen.js.map +1 -0
  39. package/dist/interview/ui/Divider.d.ts +7 -0
  40. package/dist/interview/ui/Divider.d.ts.map +1 -0
  41. package/dist/interview/ui/Divider.js +15 -0
  42. package/dist/interview/ui/Divider.js.map +1 -0
  43. package/dist/interview/ui/SystemMessage.d.ts +13 -0
  44. package/dist/interview/ui/SystemMessage.d.ts.map +1 -0
  45. package/dist/interview/ui/SystemMessage.js +37 -0
  46. package/dist/interview/ui/SystemMessage.js.map +1 -0
  47. package/dist/interview/ui/UserResponse.d.ts +12 -0
  48. package/dist/interview/ui/UserResponse.d.ts.map +1 -0
  49. package/dist/interview/ui/UserResponse.js +25 -0
  50. package/dist/interview/ui/UserResponse.js.map +1 -0
  51. package/dist/interview/ui/index.d.ts +12 -0
  52. package/dist/interview/ui/index.d.ts.map +1 -0
  53. package/dist/interview/ui/index.js +12 -0
  54. package/dist/interview/ui/index.js.map +1 -0
  55. package/dist/interview/ui/test-indicator.d.ts +9 -0
  56. package/dist/interview/ui/test-indicator.d.ts.map +1 -0
  57. package/dist/interview/ui/test-indicator.js +18 -0
  58. package/dist/interview/ui/test-indicator.js.map +1 -0
  59. package/dist/interview/ui/text-utils.d.ts +12 -0
  60. package/dist/interview/ui/text-utils.d.ts.map +1 -0
  61. package/dist/interview/ui/text-utils.js +60 -0
  62. package/dist/interview/ui/text-utils.js.map +1 -0
  63. package/dist/interview/ui/theme.d.ts +90 -0
  64. package/dist/interview/ui/theme.d.ts.map +1 -0
  65. package/dist/interview/ui/theme.js +114 -0
  66. package/dist/interview/ui/theme.js.map +1 -0
  67. package/dist/skill-generator/index.d.ts +89 -4
  68. package/dist/skill-generator/index.d.ts.map +1 -1
  69. package/dist/skill-generator/index.js +364 -143
  70. package/dist/skill-generator/index.js.map +1 -1
  71. package/package.json +11 -2
  72. package/dist/templates/CLAUDE-import.md.template +0 -90
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * System/assistant message display with glitch-corner borders
4
+ *
5
+ * Uses single-line box characters with decorative glitch blocks at corners.
6
+ * The glitch effect is achieved by replacing part of the horizontal border.
7
+ */
8
+ import { Box, Text } from "ink";
9
+ import { colors, boxChars, glitchBlocks } from "./theme.js";
10
+ import { wrapText } from "./text-utils.js";
11
+ /** Maximum content width (will wrap text to fit) */
12
+ const MAX_WIDTH = 76;
13
+ /** Number of glitch characters to show at corners */
14
+ const GLITCH_COUNT = 3;
15
+ export function SystemMessage({ content }) {
16
+ const { single } = boxChars;
17
+ const glitch = glitchBlocks[3]; // Solid block for corners
18
+ // Wrap text to fit within max width
19
+ const lines = wrapText(content, MAX_WIDTH);
20
+ const contentWidth = MAX_WIDTH;
21
+ // Total inner width includes 1 space padding on each side
22
+ const innerWidth = contentWidth + 2;
23
+ // Build borders - glitch replaces part of the horizontal line, not added to it
24
+ // Top: corner + (horizontal - glitch) + glitch + corner
25
+ // Bottom: corner + glitch + (horizontal - glitch) + corner
26
+ const horizontalLength = innerWidth - GLITCH_COUNT;
27
+ const topBorder = single.topLeft +
28
+ single.horizontal.repeat(horizontalLength) +
29
+ glitch.repeat(GLITCH_COUNT) +
30
+ single.topRight;
31
+ const bottomBorder = single.bottomLeft +
32
+ glitch.repeat(GLITCH_COUNT) +
33
+ single.horizontal.repeat(horizontalLength) +
34
+ single.bottomRight;
35
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: colors.dimmed, children: topBorder }), lines.map((line, i) => (_jsxs(Text, { color: colors.dimmed, children: [single.vertical + " ", _jsx(Text, { color: "white", children: line.padEnd(contentWidth) }), " " + single.vertical] }, i))), _jsx(Text, { color: colors.dimmed, children: bottomBorder })] }));
36
+ }
37
+ //# sourceMappingURL=SystemMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SystemMessage.js","sourceRoot":"","sources":["../../../src/interview/ui/SystemMessage.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAO3C,oDAAoD;AACpD,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB,qDAAqD;AACrD,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,MAAM,UAAU,aAAa,CAAC,EAAE,OAAO,EAAsB;IAC3D,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAC5B,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B;IAE1D,oCAAoC;IACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,SAAS,CAAC;IAE/B,0DAA0D;IAC1D,MAAM,UAAU,GAAG,YAAY,GAAG,CAAC,CAAC;IAEpC,+EAA+E;IAC/E,wDAAwD;IACxD,2DAA2D;IAC3D,MAAM,gBAAgB,GAAG,UAAU,GAAG,YAAY,CAAC;IACnD,MAAM,SAAS,GACb,MAAM,CAAC,OAAO;QACd,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;QAC3B,MAAM,CAAC,QAAQ,CAAC;IAClB,MAAM,YAAY,GAChB,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;QAC3B,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAC1C,MAAM,CAAC,WAAW,CAAC;IAErB,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACzC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,YAAG,SAAS,GAAQ,EAC7C,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,MAAC,IAAI,IAAS,KAAK,EAAE,MAAM,CAAC,MAAM,aAC/B,MAAM,CAAC,QAAQ,GAAG,GAAG,EACtB,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAQ,EACrD,GAAG,GAAG,MAAM,CAAC,QAAQ,KAHb,CAAC,CAIL,CACR,CAAC,EACF,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,YAAG,YAAY,GAAQ,IAC7C,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * User response display with rounded borders
3
+ *
4
+ * Shows user input with a prompt indicator and rounded box styling.
5
+ */
6
+ interface UserResponseProps {
7
+ /** User's response text */
8
+ content: string;
9
+ }
10
+ export declare function UserResponse({ content }: UserResponseProps): React.ReactNode;
11
+ export {};
12
+ //# sourceMappingURL=UserResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserResponse.d.ts","sourceRoot":"","sources":["../../../src/interview/ui/UserResponse.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,UAAU,iBAAiB;IACzB,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAQD,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,KAAK,CAAC,SAAS,CA6B5E"}
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * User response display with rounded borders
4
+ *
5
+ * Shows user input with a prompt indicator and rounded box styling.
6
+ */
7
+ import { Box, Text } from "ink";
8
+ import { colors, boxChars } from "./theme.js";
9
+ import { wrapText } from "./text-utils.js";
10
+ /** Maximum content width (will wrap text to fit) */
11
+ const MAX_WIDTH = 76;
12
+ /** Prompt indicator shown before user text */
13
+ const PROMPT = "▸ ";
14
+ export function UserResponse({ content }) {
15
+ const { rounded } = boxChars;
16
+ // Wrap text to fit within max width (accounting for prompt on first line)
17
+ const lines = wrapText(content, MAX_WIDTH - PROMPT.length);
18
+ const contentWidth = MAX_WIDTH;
19
+ // Inner width includes 1 space padding on each side
20
+ const innerWidth = contentWidth + 2;
21
+ const topBorder = rounded.topLeft + rounded.horizontal.repeat(innerWidth) + rounded.topRight;
22
+ const bottomBorder = rounded.bottomLeft + rounded.horizontal.repeat(innerWidth) + rounded.bottomRight;
23
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: colors.dimmed, children: topBorder }), lines.map((line, i) => (_jsxs(Text, { color: colors.dimmed, children: [rounded.vertical + " ", i === 0 && _jsx(Text, { color: colors.primary, children: PROMPT }), _jsx(Text, { color: "white", children: i === 0 ? line.padEnd(contentWidth - PROMPT.length) : line.padEnd(contentWidth) }), " " + rounded.vertical] }, i))), _jsx(Text, { color: colors.dimmed, children: bottomBorder })] }));
24
+ }
25
+ //# sourceMappingURL=UserResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserResponse.js","sourceRoot":"","sources":["../../../src/interview/ui/UserResponse.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAO3C,oDAAoD;AACpD,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB,8CAA8C;AAC9C,MAAM,MAAM,GAAG,IAAI,CAAC;AAEpB,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAqB;IACzD,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAE7B,0EAA0E;IAC1E,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,SAAS,CAAC;IAE/B,oDAAoD;IACpD,MAAM,UAAU,GAAG,YAAY,GAAG,CAAC,CAAC;IAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC7F,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAEtG,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACzC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,YAAG,SAAS,GAAQ,EAC7C,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,MAAC,IAAI,IAAS,KAAK,EAAE,MAAM,CAAC,MAAM,aAC/B,OAAO,CAAC,QAAQ,GAAG,GAAG,EACtB,CAAC,KAAK,CAAC,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,YAAG,MAAM,GAAQ,EACxD,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAChB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAC3E,EACN,GAAG,GAAG,OAAO,CAAC,QAAQ,KANd,CAAC,CAOL,CACR,CAAC,EACF,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,YAAG,YAAY,GAAQ,IAC7C,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * UI components for interview TUI
3
+ */
4
+ export { ActivityIndicator } from "./ActivityIndicator.js";
5
+ export { Banner } from "./Banner.js";
6
+ export { SystemMessage } from "./SystemMessage.js";
7
+ export { UserResponse } from "./UserResponse.js";
8
+ export { Divider } from "./Divider.js";
9
+ export { CompletionScreen } from "./CompletionScreen.js";
10
+ export * from "./theme.js";
11
+ export * from "./text-utils.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interview/ui/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * UI components for interview TUI
3
+ */
4
+ export { ActivityIndicator } from "./ActivityIndicator.js";
5
+ export { Banner } from "./Banner.js";
6
+ export { SystemMessage } from "./SystemMessage.js";
7
+ export { UserResponse } from "./UserResponse.js";
8
+ export { Divider } from "./Divider.js";
9
+ export { CompletionScreen } from "./CompletionScreen.js";
10
+ export * from "./theme.js";
11
+ export * from "./text-utils.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interview/ui/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Test script for Matrix-style ActivityIndicator
4
+ *
5
+ * Shows all combinations of glyph sets and line counts
6
+ * Run with: npm run test:indicator
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=test-indicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-indicator.d.ts","sourceRoot":"","sources":["../../../src/interview/ui/test-indicator.tsx"],"names":[],"mappings":";AACA;;;;;GAKG"}
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * Test script for Matrix-style ActivityIndicator
5
+ *
6
+ * Shows all combinations of glyph sets and line counts
7
+ * Run with: npm run test:indicator
8
+ */
9
+ import { createElement } from "react";
10
+ import { render, Box, Text } from "ink";
11
+ import chalk from "chalk";
12
+ import { ActivityIndicator } from "./ActivityIndicator.js";
13
+ import { glyphSetA, glyphSetB, glyphSetC, glyphSetD, glyphSetE } from "./theme.js";
14
+ function TestApp() {
15
+ return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, children: chalk.rgb(0, 255, 70)("▓▒░ MATRIX ACTIVITY INDICATOR TEST ░▒▓") }) }), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "gray", children: "Compare glyph sets (A-E) and line counts (1-3). Press Ctrl+C to exit." }) }), _jsx(Box, { marginTop: 1, marginBottom: 1, children: _jsx(Text, { bold: true, color: "cyan", children: "A. Classic Mix (Letters + Numbers + Symbols + Blocks)" }) }), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "green", children: "A1. Single line" }) }), _jsx(ActivityIndicator, { message: "thinking...", width: 50, lines: 1, glyphSet: glyphSetA }), _jsx(Box, { marginTop: 1, marginBottom: 1, children: _jsx(Text, { color: "green", children: "A2. Two lines" }) }), _jsx(ActivityIndicator, { message: "processing...", width: 50, lines: 2, glyphSet: glyphSetA }), _jsx(Box, { marginTop: 1, marginBottom: 1, children: _jsx(Text, { color: "green", children: "A3. Three lines" }) }), _jsx(ActivityIndicator, { message: "analyzing...", width: 50, lines: 3, glyphSet: glyphSetA }), _jsx(Box, { marginTop: 2, marginBottom: 1, children: _jsx(Text, { bold: true, color: "cyan", children: "B. Block Heavy (Mostly blocks + symbols)" }) }), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "green", children: "B1. Single line" }) }), _jsx(ActivityIndicator, { message: "thinking...", width: 50, lines: 1, glyphSet: glyphSetB }), _jsx(Box, { marginTop: 1, marginBottom: 1, children: _jsx(Text, { color: "green", children: "B2. Two lines" }) }), _jsx(ActivityIndicator, { message: "processing...", width: 50, lines: 2, glyphSet: glyphSetB }), _jsx(Box, { marginTop: 1, marginBottom: 1, children: _jsx(Text, { color: "green", children: "B3. Three lines" }) }), _jsx(ActivityIndicator, { message: "analyzing...", width: 50, lines: 3, glyphSet: glyphSetB }), _jsx(Box, { marginTop: 2, marginBottom: 1, children: _jsx(Text, { bold: true, color: "cyan", children: "C. Digital (Numbers + Symbols)" }) }), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "green", children: "C1. Single line" }) }), _jsx(ActivityIndicator, { message: "thinking...", width: 50, lines: 1, glyphSet: glyphSetC }), _jsx(Box, { marginTop: 1, marginBottom: 1, children: _jsx(Text, { color: "green", children: "C2. Two lines" }) }), _jsx(ActivityIndicator, { message: "processing...", width: 50, lines: 2, glyphSet: glyphSetC }), _jsx(Box, { marginTop: 1, marginBottom: 1, children: _jsx(Text, { color: "green", children: "C3. Three lines" }) }), _jsx(ActivityIndicator, { message: "analyzing...", width: 50, lines: 3, glyphSet: glyphSetC }), _jsx(Box, { marginTop: 2, marginBottom: 1, children: _jsx(Text, { bold: true, color: "cyan", children: "D. Geometric (Box drawing + blocks)" }) }), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "green", children: "D1. Single line" }) }), _jsx(ActivityIndicator, { message: "thinking...", width: 50, lines: 1, glyphSet: glyphSetD }), _jsx(Box, { marginTop: 1, marginBottom: 1, children: _jsx(Text, { color: "green", children: "D2. Two lines" }) }), _jsx(ActivityIndicator, { message: "processing...", width: 50, lines: 2, glyphSet: glyphSetD }), _jsx(Box, { marginTop: 1, marginBottom: 1, children: _jsx(Text, { color: "green", children: "D3. Three lines" }) }), _jsx(ActivityIndicator, { message: "analyzing...", width: 50, lines: 3, glyphSet: glyphSetD }), _jsx(Box, { marginTop: 2, marginBottom: 1, children: _jsx(Text, { bold: true, color: "cyan", children: "E. Minimal (Blocks + Numbers only)" }) }), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "green", children: "E1. Single line" }) }), _jsx(ActivityIndicator, { message: "thinking...", width: 50, lines: 1, glyphSet: glyphSetE }), _jsx(Box, { marginTop: 1, marginBottom: 1, children: _jsx(Text, { color: "green", children: "E2. Two lines" }) }), _jsx(ActivityIndicator, { message: "processing...", width: 50, lines: 2, glyphSet: glyphSetE }), _jsx(Box, { marginTop: 1, marginBottom: 1, children: _jsx(Text, { color: "green", children: "E3. Three lines" }) }), _jsx(ActivityIndicator, { message: "analyzing...", width: 50, lines: 3, glyphSet: glyphSetE })] }));
16
+ }
17
+ render(createElement(TestApp));
18
+ //# sourceMappingURL=test-indicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-indicator.js","sourceRoot":"","sources":["../../../src/interview/ui/test-indicator.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Text utility functions for UI components
3
+ */
4
+ /**
5
+ * Wrap text to fit within a maximum width, breaking at word boundaries
6
+ *
7
+ * @param text - Text to wrap
8
+ * @param maxWidth - Maximum width per line
9
+ * @returns Array of wrapped lines
10
+ */
11
+ export declare function wrapText(text: string, maxWidth: number): string[];
12
+ //# sourceMappingURL=text-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-utils.d.ts","sourceRoot":"","sources":["../../../src/interview/ui/text-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAwDjE"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Text utility functions for UI components
3
+ */
4
+ /**
5
+ * Wrap text to fit within a maximum width, breaking at word boundaries
6
+ *
7
+ * @param text - Text to wrap
8
+ * @param maxWidth - Maximum width per line
9
+ * @returns Array of wrapped lines
10
+ */
11
+ export function wrapText(text, maxWidth) {
12
+ const lines = [];
13
+ // Split by existing newlines first
14
+ const paragraphs = text.split('\n');
15
+ for (const paragraph of paragraphs) {
16
+ if (paragraph.length === 0) {
17
+ lines.push('');
18
+ continue;
19
+ }
20
+ if (paragraph.length <= maxWidth) {
21
+ lines.push(paragraph);
22
+ continue;
23
+ }
24
+ // Need to wrap this paragraph
25
+ const words = paragraph.split(' ');
26
+ let currentLine = '';
27
+ for (const word of words) {
28
+ // If word itself is longer than maxWidth, we have to break it
29
+ if (word.length > maxWidth) {
30
+ if (currentLine) {
31
+ lines.push(currentLine.trim());
32
+ currentLine = '';
33
+ }
34
+ // Break the long word into chunks
35
+ for (let i = 0; i < word.length; i += maxWidth) {
36
+ lines.push(word.slice(i, i + maxWidth));
37
+ }
38
+ continue;
39
+ }
40
+ // Try adding word to current line
41
+ const testLine = currentLine ? `${currentLine} ${word}` : word;
42
+ if (testLine.length <= maxWidth) {
43
+ currentLine = testLine;
44
+ }
45
+ else {
46
+ // Current line is full, start new line
47
+ if (currentLine) {
48
+ lines.push(currentLine);
49
+ }
50
+ currentLine = word;
51
+ }
52
+ }
53
+ // Add remaining text
54
+ if (currentLine) {
55
+ lines.push(currentLine);
56
+ }
57
+ }
58
+ return lines;
59
+ }
60
+ //# sourceMappingURL=text-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-utils.js","sourceRoot":"","sources":["../../../src/interview/ui/text-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,QAAgB;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,mCAAmC;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEpC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,SAAS;QACX,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QAED,8BAA8B;QAC9B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,8DAA8D;YAC9D,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;gBAC3B,IAAI,WAAW,EAAE,CAAC;oBAChB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC/B,WAAW,GAAG,EAAE,CAAC;gBACnB,CAAC;gBACD,kCAAkC;gBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;oBAC/C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC1C,CAAC;gBACD,SAAS;YACX,CAAC;YAED,kCAAkC;YAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAE/D,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAChC,WAAW,GAAG,QAAQ,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,uCAAuC;gBACvC,IAAI,WAAW,EAAE,CAAC;oBAChB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1B,CAAC;gBACD,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Theme configuration for cyberpunk glitch UI
3
+ *
4
+ * Provides colors, characters, and glyphs for the interview TUI
5
+ */
6
+ /** Color palette */
7
+ export declare const colors: {
8
+ readonly primary: "green";
9
+ readonly accent: "cyan";
10
+ readonly dimmed: "gray";
11
+ readonly error: "red";
12
+ readonly warning: "yellow";
13
+ };
14
+ /** Box-drawing characters */
15
+ export declare const boxChars: {
16
+ readonly double: {
17
+ readonly topLeft: "╔";
18
+ readonly topRight: "╗";
19
+ readonly bottomLeft: "╚";
20
+ readonly bottomRight: "╝";
21
+ readonly horizontal: "═";
22
+ readonly vertical: "║";
23
+ readonly leftT: "╠";
24
+ readonly rightT: "╣";
25
+ };
26
+ readonly single: {
27
+ readonly topLeft: "┌";
28
+ readonly topRight: "┐";
29
+ readonly bottomLeft: "└";
30
+ readonly bottomRight: "┘";
31
+ readonly horizontal: "─";
32
+ readonly vertical: "│";
33
+ readonly leftT: "├";
34
+ readonly rightT: "┤";
35
+ };
36
+ readonly rounded: {
37
+ readonly topLeft: "╭";
38
+ readonly topRight: "╮";
39
+ readonly bottomLeft: "╰";
40
+ readonly bottomRight: "╯";
41
+ readonly horizontal: "─";
42
+ readonly vertical: "│";
43
+ };
44
+ };
45
+ /** Glitch block characters for decorations */
46
+ export declare const glitchBlocks: readonly ["░", "▒", "▓", "█"];
47
+ /** Matrix-style glyph sets for animated activity indicator */
48
+ export declare const glyphSetA: readonly ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ".", "=", "*", "+", "-", "<", ">", "|", "/", "\\", "^", "~", "_", "│", "─", "┤", "┐", "└", "┴", "┬", "├", "┼", "┘", "┌", "░", "▒", "▓", "█", "▀", "▄", "■", "□"];
49
+ export declare const glyphSetB: readonly ["░", "▒", "▓", "█", "▀", "▄", "■", "□", "▪", "▫", "░", "▒", "▓", "█", "▀", "▄", "■", "□", "▪", "▫", "│", "─", "║", "═", "╬", "╪", "┼", "╔", "╗", "╚", "╝", ":", ".", "*", "#", "@", "$", "%", "&", "=", "+", "-", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
50
+ export declare const glyphSetC: readonly ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ".", "=", "*", "+", "-", "<", ">", "|", "/", "\\", "░", "▒", "▓", "█", "#", "@", "$", "%", "&", "^", "~"];
51
+ export declare const glyphSetD: readonly ["│", "─", "┤", "┐", "└", "┴", "┬", "├", "┼", "┘", "┌", "║", "═", "╬", "╪", "╔", "╗", "╚", "╝", "╠", "╣", "╦", "╩", "│", "─", "┤", "┐", "└", "┴", "┬", "├", "┼", "┘", "┌", "░", "▒", "▓", "█", "▀", "▄", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
52
+ export declare const glyphSetE: readonly ["░", "▒", "▓", "█", "▀", "▄", "■", "□", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "░", "▒", "▓", "█", "▀", "▄", "■", "□"];
53
+ export declare const matrixGlyphs: readonly ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ".", "=", "*", "+", "-", "<", ">", "|", "/", "\\", "^", "~", "_", "│", "─", "┤", "┐", "└", "┴", "┬", "├", "┼", "┘", "┌", "░", "▒", "▓", "█", "▀", "▄", "■", "□"];
54
+ /** Brightness levels for Matrix fade effect */
55
+ export declare const matrixBrightness: {
56
+ readonly bright: {
57
+ readonly r: 0;
58
+ readonly g: 255;
59
+ readonly b: 70;
60
+ };
61
+ readonly medium: {
62
+ readonly r: 0;
63
+ readonly g: 190;
64
+ readonly b: 0;
65
+ };
66
+ readonly dim: {
67
+ readonly r: 0;
68
+ readonly g: 100;
69
+ readonly b: 0;
70
+ };
71
+ readonly darkest: {
72
+ readonly r: 0;
73
+ readonly g: 40;
74
+ readonly b: 0;
75
+ };
76
+ };
77
+ /** Block-letter alphabet for ASCII art headers */
78
+ export declare const blockLetters: {
79
+ readonly A: readonly ["▄▀█", "█▀█"];
80
+ readonly U: readonly ["█░█", "█▄█"];
81
+ readonly T: readonly ["▀█▀", "░█░"];
82
+ readonly O: readonly ["█▀█", "█▄█"];
83
+ readonly N: readonly ["█▄░█", "█░▀█"];
84
+ readonly V: readonly ["█░█", "▀▄▀"];
85
+ readonly C: readonly ["█▀▀", "█░░", "▀▀▀"];
86
+ readonly R: readonly ["█▀█", "█▀▄", "▀░▀"];
87
+ readonly E: readonly ["█▀▀", "█▀▀", "▀▀▀"];
88
+ readonly D: readonly ["█▀▄", "█░█", "▀▀░"];
89
+ };
90
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/interview/ui/theme.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,oBAAoB;AACpB,eAAO,MAAM,MAAM;;;;;;CAMT,CAAC;AAEX,6BAA6B;AAC7B,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCX,CAAC;AAEX,8CAA8C;AAC9C,eAAO,MAAM,YAAY,+BAAgC,CAAC;AAE1D,8DAA8D;AAG9D,eAAO,MAAM,SAAS,qWAOZ,CAAC;AAGX,eAAO,MAAM,SAAS,+QAMZ,CAAC;AAGX,eAAO,MAAM,SAAS,8NAMZ,CAAC;AAGX,eAAO,MAAM,SAAS,qQAMZ,CAAC;AAGX,eAAO,MAAM,SAAS,6IAIZ,CAAC;AAGX,eAAO,MAAM,YAAY,qWAAY,CAAC;AAEtC,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;CAMnB,CAAC;AAEX,kDAAkD;AAClD,eAAO,MAAM,YAAY;;;;;;;;;;;CAYf,CAAC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Theme configuration for cyberpunk glitch UI
3
+ *
4
+ * Provides colors, characters, and glyphs for the interview TUI
5
+ */
6
+ /** Color palette */
7
+ export const colors = {
8
+ primary: "green",
9
+ accent: "cyan",
10
+ dimmed: "gray",
11
+ error: "red",
12
+ warning: "yellow",
13
+ };
14
+ /** Box-drawing characters */
15
+ export const boxChars = {
16
+ // Double-line borders
17
+ double: {
18
+ topLeft: "╔",
19
+ topRight: "╗",
20
+ bottomLeft: "╚",
21
+ bottomRight: "╝",
22
+ horizontal: "═",
23
+ vertical: "║",
24
+ leftT: "╠",
25
+ rightT: "╣",
26
+ },
27
+ // Single-line borders
28
+ single: {
29
+ topLeft: "┌",
30
+ topRight: "┐",
31
+ bottomLeft: "└",
32
+ bottomRight: "┘",
33
+ horizontal: "─",
34
+ vertical: "│",
35
+ leftT: "├",
36
+ rightT: "┤",
37
+ },
38
+ // Rounded borders
39
+ rounded: {
40
+ topLeft: "╭",
41
+ topRight: "╮",
42
+ bottomLeft: "╰",
43
+ bottomRight: "╯",
44
+ horizontal: "─",
45
+ vertical: "│",
46
+ },
47
+ };
48
+ /** Glitch block characters for decorations */
49
+ export const glitchBlocks = ["░", "▒", "▓", "█"];
50
+ /** Matrix-style glyph sets for animated activity indicator */
51
+ // A. Classic Mix: Letters + Numbers + Symbols + Blocks
52
+ export const glyphSetA = [
53
+ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
54
+ "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
55
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
56
+ ":", ".", "=", "*", "+", "-", "<", ">", "|", "/", "\\", "^", "~", "_",
57
+ "│", "─", "┤", "┐", "└", "┴", "┬", "├", "┼", "┘", "┌",
58
+ "░", "▒", "▓", "█", "▀", "▄", "■", "□",
59
+ ];
60
+ // B. Block Heavy: Mostly blocks and symbols
61
+ export const glyphSetB = [
62
+ "░", "▒", "▓", "█", "▀", "▄", "■", "□", "▪", "▫",
63
+ "░", "▒", "▓", "█", "▀", "▄", "■", "□", "▪", "▫", // Repeat for density
64
+ "│", "─", "║", "═", "╬", "╪", "┼", "╔", "╗", "╚", "╝",
65
+ ":", ".", "*", "#", "@", "$", "%", "&", "=", "+", "-",
66
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
67
+ ];
68
+ // C. Numbers + Symbols: Digital/binary feel
69
+ export const glyphSetC = [
70
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
71
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", // More numbers
72
+ ":", ".", "=", "*", "+", "-", "<", ">", "|", "/", "\\",
73
+ "░", "▒", "▓", "█",
74
+ "#", "@", "$", "%", "&", "^", "~",
75
+ ];
76
+ // D. Box Drawing: Geometric/architectural
77
+ export const glyphSetD = [
78
+ "│", "─", "┤", "┐", "└", "┴", "┬", "├", "┼", "┘", "┌",
79
+ "║", "═", "╬", "╪", "╔", "╗", "╚", "╝", "╠", "╣", "╦", "╩",
80
+ "│", "─", "┤", "┐", "└", "┴", "┬", "├", "┼", "┘", "┌", // Repeat
81
+ "░", "▒", "▓", "█", "▀", "▄",
82
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
83
+ ];
84
+ // E. Minimal: Just blocks and numbers
85
+ export const glyphSetE = [
86
+ "░", "▒", "▓", "█", "▀", "▄", "■", "□",
87
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
88
+ "░", "▒", "▓", "█", "▀", "▄", "■", "□", // Repeat for more blocks
89
+ ];
90
+ // Default export for backwards compatibility
91
+ export const matrixGlyphs = glyphSetA;
92
+ /** Brightness levels for Matrix fade effect */
93
+ export const matrixBrightness = {
94
+ // RGB values for green fade: bright → medium → dark
95
+ bright: { r: 0, g: 255, b: 70 }, // Bright white-green
96
+ medium: { r: 0, g: 190, b: 0 }, // Medium green
97
+ dim: { r: 0, g: 100, b: 0 }, // Dark green
98
+ darkest: { r: 0, g: 40, b: 0 }, // Nearly black
99
+ };
100
+ /** Block-letter alphabet for ASCII art headers */
101
+ export const blockLetters = {
102
+ A: ["▄▀█", "█▀█"],
103
+ U: ["█░█", "█▄█"],
104
+ T: ["▀█▀", "░█░"],
105
+ O: ["█▀█", "█▄█"],
106
+ N: ["█▄░█", "█░▀█"],
107
+ V: ["█░█", "▀▄▀"],
108
+ C: ["█▀▀", "█░░", "▀▀▀"],
109
+ R: ["█▀█", "█▀▄", "▀░▀"],
110
+ E: ["█▀▀", "█▀▀", "▀▀▀"],
111
+ D: ["█▀▄", "█░█", "▀▀░"],
112
+ // Add more as needed
113
+ };
114
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/interview/ui/theme.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
1
  /**
2
2
  * Skill Generator
3
3
  *
4
- * Generates global Claude Code skills for navigators, enabling
4
+ * Generates Claude Code skills for navigators, enabling
5
5
  * inter-navigator communication via the "ask <navname>" pattern.
6
+ *
7
+ * Skills are stored locally in the navigator directory (.autonav/skills/)
8
+ * and symlinked to the global skills directory (~/.claude/skills/) for
9
+ * discovery by Claude Code.
6
10
  */
7
11
  export interface SkillConfig {
8
12
  /** Navigator name (used for skill name: ask-<navname>) */
@@ -17,21 +21,49 @@ export interface SkillConfig {
17
21
  audience?: string;
18
22
  }
19
23
  /**
20
- * Get the global skills directory path
24
+ * Get the global skills directory path (~/.claude/skills/)
21
25
  */
22
26
  export declare function getGlobalSkillsDir(): string;
23
27
  /**
24
- * Check if a skill already exists
28
+ * Get the local skills directory path for a navigator (.autonav/skills/)
29
+ */
30
+ export declare function getLocalSkillsDir(navigatorPath: string): string;
31
+ /**
32
+ * Get the full path to a local skill directory
33
+ */
34
+ export declare function getLocalSkillPath(navigatorPath: string, skillName: string): string;
35
+ /**
36
+ * Check if a skill already exists globally
25
37
  */
26
38
  export declare function skillExists(skillName: string): boolean;
39
+ /**
40
+ * Check if a skill exists locally in a navigator
41
+ */
42
+ export declare function localSkillExists(navigatorPath: string, skillName: string): boolean;
43
+ /**
44
+ * Check if a global skill is a symlink
45
+ */
46
+ export declare function isSkillSymlink(skillName: string): boolean;
47
+ /**
48
+ * Get the target of a global skill symlink
49
+ */
50
+ export declare function getSkillSymlinkTarget(skillName: string): string | null;
27
51
  /**
28
52
  * Generate the skill name from navigator name
29
53
  */
30
54
  export declare function getSkillName(navigatorName: string): string;
55
+ /**
56
+ * Generate the update skill name from navigator name
57
+ */
58
+ export declare function getUpdateSkillName(navigatorName: string): string;
31
59
  /**
32
60
  * Generate the SKILL.md content for a navigator
33
61
  */
34
62
  export declare function generateSkillContent(config: SkillConfig): string;
63
+ /**
64
+ * Generate the update skill content for a navigator (with write permissions)
65
+ */
66
+ export declare function generateUpdateSkillContent(config: SkillConfig): string;
35
67
  /**
36
68
  * Create a global skill for a navigator
37
69
  *
@@ -44,9 +76,62 @@ export declare function createNavigatorSkill(config: SkillConfig, options?: {
44
76
  quiet?: boolean;
45
77
  }): Promise<string | null>;
46
78
  /**
47
- * Remove a navigator skill
79
+ * Remove a navigator skill (both ask and update skills, global only)
48
80
  */
49
81
  export declare function removeNavigatorSkill(navigatorName: string, options?: {
50
82
  quiet?: boolean;
51
83
  }): boolean;
84
+ export interface SymlinkResult {
85
+ success: boolean;
86
+ action: "created" | "already_linked" | "conflict" | "error";
87
+ message: string;
88
+ skillName: string;
89
+ localPath?: string;
90
+ globalPath?: string;
91
+ conflictTarget?: string;
92
+ }
93
+ /**
94
+ * Create a skill locally in the navigator's .autonav/skills/ directory
95
+ */
96
+ export declare function createLocalSkill(navigatorPath: string, config: SkillConfig, options?: {
97
+ force?: boolean;
98
+ quiet?: boolean;
99
+ }): Promise<string | null>;
100
+ /**
101
+ * Create a symlink from global skills directory to local skill
102
+ *
103
+ * @returns SymlinkResult with status and details
104
+ */
105
+ export declare function symlinkSkillToGlobal(localSkillPath: string, skillName: string, options?: {
106
+ force?: boolean;
107
+ quiet?: boolean;
108
+ }): SymlinkResult;
109
+ /**
110
+ * Remove the global symlink for a skill (preserves local skill)
111
+ */
112
+ export declare function removeSkillSymlink(skillName: string, options?: {
113
+ quiet?: boolean;
114
+ }): {
115
+ success: boolean;
116
+ wasSymlink: boolean;
117
+ message: string;
118
+ };
119
+ /**
120
+ * Create a skill locally AND symlink it globally (recommended for new navigators)
121
+ *
122
+ * This is the preferred method for creating skills as it:
123
+ * 1. Stores the skill in the navigator's .autonav/skills/ (version-controlled)
124
+ * 2. Symlinks to ~/.claude/skills/ for global discovery
125
+ */
126
+ export declare function createAndSymlinkSkill(navigatorPath: string, config: SkillConfig, options?: {
127
+ force?: boolean;
128
+ quiet?: boolean;
129
+ }): Promise<{
130
+ localPath: string | null;
131
+ symlinkResult: SymlinkResult | null;
132
+ }>;
133
+ /**
134
+ * Discover all local skills in a navigator
135
+ */
136
+ export declare function discoverLocalSkills(navigatorPath: string): string[];
52
137
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skill-generator/index.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAGtD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAgKhE;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACZ,GACL,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4BxB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAChC,OAAO,CAkBT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skill-generator/index.ts"],"names":[],"mappings":"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"}