dev3000 0.0.131 → 0.0.135

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 (106) hide show
  1. package/bin/dev3000 +90 -0
  2. package/dist/cli.js +202 -33
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/cloud-fix.js +8 -8
  5. package/dist/commands/cloud-fix.js.map +1 -1
  6. package/dist/components/AgentSelector.d.ts +12 -0
  7. package/dist/components/AgentSelector.d.ts.map +1 -0
  8. package/dist/components/AgentSelector.js +99 -0
  9. package/dist/components/AgentSelector.js.map +1 -0
  10. package/dist/components/SkillSelector.d.ts +9 -0
  11. package/dist/components/SkillSelector.d.ts.map +1 -0
  12. package/dist/components/SkillSelector.js +70 -0
  13. package/dist/components/SkillSelector.js.map +1 -0
  14. package/dist/dev-environment.d.ts +37 -0
  15. package/dist/dev-environment.d.ts.map +1 -1
  16. package/dist/dev-environment.js +245 -106
  17. package/dist/dev-environment.js.map +1 -1
  18. package/dist/src/tui-interface-impl.tsx +32 -20
  19. package/dist/tui-interface-impl.d.ts +10 -6
  20. package/dist/tui-interface-impl.d.ts.map +1 -1
  21. package/dist/tui-interface-impl.js +20 -14
  22. package/dist/tui-interface-impl.js.map +1 -1
  23. package/dist/tui-interface.d.ts +11 -7
  24. package/dist/tui-interface.d.ts.map +1 -1
  25. package/dist/tui-interface.js +6 -6
  26. package/dist/tui-interface.js.map +1 -1
  27. package/dist/utils/agent-selection.d.ts +24 -0
  28. package/dist/utils/agent-selection.d.ts.map +1 -0
  29. package/dist/utils/agent-selection.js +34 -0
  30. package/dist/utils/agent-selection.js.map +1 -0
  31. package/dist/utils/project-name.d.ts +6 -0
  32. package/dist/utils/project-name.d.ts.map +1 -1
  33. package/dist/utils/project-name.js +10 -0
  34. package/dist/utils/project-name.js.map +1 -1
  35. package/dist/utils/skill-installer.d.ts +29 -0
  36. package/dist/utils/skill-installer.d.ts.map +1 -0
  37. package/dist/utils/skill-installer.js +185 -0
  38. package/dist/utils/skill-installer.js.map +1 -0
  39. package/dist/utils/tmux-helpers.d.ts.map +1 -1
  40. package/dist/utils/tmux-helpers.js +4 -2
  41. package/dist/utils/tmux-helpers.js.map +1 -1
  42. package/dist/utils/user-config.d.ts +6 -0
  43. package/dist/utils/user-config.d.ts.map +1 -1
  44. package/dist/utils/user-config.js +30 -5
  45. package/dist/utils/user-config.js.map +1 -1
  46. package/dist/utils/version-check.d.ts +10 -1
  47. package/dist/utils/version-check.d.ts.map +1 -1
  48. package/dist/utils/version-check.js +60 -2
  49. package/dist/utils/version-check.js.map +1 -1
  50. package/mcp-server/.next/BUILD_ID +1 -1
  51. package/mcp-server/.next/build-manifest.json +2 -2
  52. package/mcp-server/.next/fallback-build-manifest.json +2 -2
  53. package/mcp-server/.next/next-minimal-server.js.nft.json +1 -1
  54. package/mcp-server/.next/next-server.js.nft.json +1 -1
  55. package/mcp-server/.next/prerender-manifest.json +3 -3
  56. package/mcp-server/.next/server/app/_global-error/page.js.nft.json +1 -1
  57. package/mcp-server/.next/server/app/_global-error.html +2 -2
  58. package/mcp-server/.next/server/app/_global-error.rsc +1 -1
  59. package/mcp-server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  60. package/mcp-server/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  61. package/mcp-server/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  62. package/mcp-server/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  63. package/mcp-server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  64. package/mcp-server/.next/server/app/_not-found/page.js.nft.json +1 -1
  65. package/mcp-server/.next/server/app/_not-found.html +1 -1
  66. package/mcp-server/.next/server/app/_not-found.rsc +1 -1
  67. package/mcp-server/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  68. package/mcp-server/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  69. package/mcp-server/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  70. package/mcp-server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  71. package/mcp-server/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  72. package/mcp-server/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  73. package/mcp-server/.next/server/app/api/jank/[session]/route.js.nft.json +1 -1
  74. package/mcp-server/.next/server/app/api/logs/append/route.js.nft.json +1 -1
  75. package/mcp-server/.next/server/app/api/logs/head/route.js.nft.json +1 -1
  76. package/mcp-server/.next/server/app/api/logs/list/route.js.nft.json +1 -1
  77. package/mcp-server/.next/server/app/api/logs/rotate/route.js.nft.json +1 -1
  78. package/mcp-server/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  79. package/mcp-server/.next/server/app/api/logs/tail/route.js.nft.json +1 -1
  80. package/mcp-server/.next/server/app/api/orchestrator/route.js.nft.json +1 -1
  81. package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js.nft.json +1 -1
  82. package/mcp-server/.next/server/app/api/screenshots/capture/route.js.nft.json +1 -1
  83. package/mcp-server/.next/server/app/api/screenshots/clear/route.js.nft.json +1 -1
  84. package/mcp-server/.next/server/app/api/screenshots/list/route.js.nft.json +1 -1
  85. package/mcp-server/.next/server/app/api/teams/route.js.nft.json +1 -1
  86. package/mcp-server/.next/server/app/api/tools/route.js.nft.json +1 -1
  87. package/mcp-server/.next/server/app/index.html +1 -1
  88. package/mcp-server/.next/server/app/index.rsc +1 -1
  89. package/mcp-server/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  90. package/mcp-server/.next/server/app/index.segments/_full.segment.rsc +1 -1
  91. package/mcp-server/.next/server/app/index.segments/_head.segment.rsc +1 -1
  92. package/mcp-server/.next/server/app/index.segments/_index.segment.rsc +1 -1
  93. package/mcp-server/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  94. package/mcp-server/.next/server/app/logs/page.js.nft.json +1 -1
  95. package/mcp-server/.next/server/app/mcp/route.js.nft.json +1 -1
  96. package/mcp-server/.next/server/app/page.js.nft.json +1 -1
  97. package/mcp-server/.next/server/app/video/[session]/page.js.nft.json +1 -1
  98. package/mcp-server/.next/server/pages/404.html +1 -1
  99. package/mcp-server/.next/server/pages/500.html +2 -2
  100. package/mcp-server/.next/server/server-reference-manifest.js +1 -1
  101. package/mcp-server/.next/server/server-reference-manifest.json +1 -1
  102. package/package.json +11 -4
  103. package/src/tui-interface-impl.tsx +32 -20
  104. /package/mcp-server/.next/static/{i5SOhj7cf3JSMPksTBNpr → w4nXrGobMpURW0AYMnAQ8}/_buildManifest.js +0 -0
  105. /package/mcp-server/.next/static/{i5SOhj7cf3JSMPksTBNpr → w4nXrGobMpURW0AYMnAQ8}/_clientMiddlewareManifest.json +0 -0
  106. /package/mcp-server/.next/static/{i5SOhj7cf3JSMPksTBNpr → w4nXrGobMpURW0AYMnAQ8}/_ssgManifest.js +0 -0
@@ -70,12 +70,12 @@ const LogLine = memo(({ log, isCompact, isVeryCompact }) => {
70
70
  // Fallback for unparsed lines
71
71
  return _jsx(Text, { wrap: "truncate-end", children: log.content });
72
72
  });
73
- const TUIApp = ({ appPort: initialAppPort, mcpPort, logFile, commandName, serversOnly, version, projectName, updateAvailable, onStatusUpdate, onAppPortUpdate, onUpdateAvailableUpdate }) => {
73
+ const TUIApp = ({ appPort: initialAppPort, mcpPort, logFile, commandName, serversOnly, version, projectName, updateInfo: initialUpdateInfo, onStatusUpdate, onAppPortUpdate, onUpdateInfoUpdate }) => {
74
74
  const [logs, setLogs] = useState([]);
75
75
  const [scrollOffset, setScrollOffset] = useState(0);
76
76
  const [initStatus, setInitStatus] = useState(null);
77
77
  const [appPort, setAppPort] = useState(initialAppPort);
78
- const [updateInfo, setUpdateInfo] = useState(updateAvailable || null);
78
+ const [updateInfo, setUpdateInfo] = useState(initialUpdateInfo || null);
79
79
  const [portConfirmed, setPortConfirmed] = useState(false);
80
80
  const logIdCounter = useRef(0);
81
81
  const [clearFromLogId, setClearFromLogId] = useState(0); // Track log ID to clear from
@@ -141,12 +141,18 @@ const TUIApp = ({ appPort: initialAppPort, mcpPort, logFile, commandName, server
141
141
  setPortConfirmed(true);
142
142
  });
143
143
  }, [onAppPortUpdate]);
144
- // Provide update available function to parent
144
+ // Provide update info function to parent
145
145
  useEffect(() => {
146
- onUpdateAvailableUpdate((info) => {
146
+ onUpdateInfoUpdate((info) => {
147
147
  setUpdateInfo(info);
148
+ // Auto-hide "updated" messages after 10 seconds
149
+ if (info?.type === "updated" && info.autoHide !== false) {
150
+ setTimeout(() => {
151
+ setUpdateInfo(null);
152
+ }, 10000);
153
+ }
148
154
  });
149
- }, [onUpdateAvailableUpdate]);
155
+ }, [onUpdateInfoUpdate]);
150
156
  // Calculate available lines for logs dynamically based on terminal height and mode
151
157
  const calculateMaxVisibleLogs = () => {
152
158
  if (isVeryCompact) {
@@ -160,7 +166,7 @@ const TUIApp = ({ appPort: initialAppPort, mcpPort, logFile, commandName, server
160
166
  else {
161
167
  // Normal mode calculation - account for all UI elements
162
168
  const headerBorderLines = 2; // Top border (with title) + bottom border
163
- const headerContentLines = 5; // Logo is 4 lines tall, +1 for padding
169
+ const headerContentLines = 4; // Logo is 4 lines tall
164
170
  const logBoxBorderLines = 2; // Top and bottom border of log box
165
171
  const logBoxHeaderLines = 1; // "Logs (X total)" text
166
172
  const logBoxFooterLines = 1; // Always reserve space for "(X lines below)" to keep layout stable
@@ -326,21 +332,21 @@ const TUIApp = ({ appPort: initialAppPort, mcpPort, logFile, commandName, server
326
332
  const titleLength = title.length;
327
333
  const rightBorderLength = Math.max(0, availableWidth - titleLength - leftPadding);
328
334
  const topBorderLine = `╭${borderChar.repeat(leftPadding)}${title}${borderChar.repeat(rightBorderLength)}╮`;
329
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "#A18CE5", children: topBorderLine }), _jsx(Box, { borderStyle: "round", borderColor: "#A18CE5", borderTop: false, paddingX: 1, paddingY: 1, children: _jsxs(Box, { flexDirection: "row", gap: 1, children: [_jsx(Box, { flexDirection: "column", alignItems: "flex-start", children: FULL_LOGO.map((line) => (_jsx(Text, { color: "#A18CE5", bold: true, children: line }, line))) }), _jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [_jsxs(Box, { children: [_jsxs(Text, { color: "cyan", children: ["\uD83C\uDF10 App: http://localhost:", appPort, " "] }), !portConfirmed && _jsx(Spinner, { type: "dots" })] }), _jsxs(Text, { color: "cyan", children: ["\uD83E\uDD16 MCP: http://localhost:", mcpPort] }), _jsxs(Text, { color: "cyan", children: ["\uD83D\uDCF8 Logs: http://localhost:", mcpPort, "/logs", projectName ? `?project=${encodeURIComponent(projectName)}` : ""] }), serversOnly && (_jsx(Text, { color: "cyan", children: "\uD83D\uDDA5\uFE0F Servers-only mode - use Chrome extension for browser monitoring" }))] })] }) })] }));
335
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "#A18CE5", children: topBorderLine }), _jsx(Box, { borderStyle: "round", borderColor: "#A18CE5", borderTop: false, paddingX: 1, children: _jsxs(Box, { flexDirection: "row", gap: 1, children: [_jsx(Box, { flexDirection: "column", alignItems: "flex-start", children: FULL_LOGO.map((line) => (_jsx(Text, { color: "#A18CE5", bold: true, children: line }, line))) }), _jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [_jsxs(Box, { children: [_jsxs(Text, { color: "cyan", children: ["\uD83C\uDF10 App: http://localhost:", appPort, " "] }), !portConfirmed && _jsx(Spinner, { type: "dots" })] }), _jsxs(Text, { color: "cyan", children: ["\uD83E\uDD16 MCP: http://localhost:", mcpPort] }), _jsxs(Text, { color: "cyan", children: ["\uD83D\uDCF8 Logs: http://localhost:", mcpPort, "/logs", projectName ? `?project=${encodeURIComponent(projectName)}` : ""] }), serversOnly && (_jsx(Text, { color: "cyan", children: "\uD83D\uDDA5\uFE0F Servers-only mode - use Chrome extension for browser monitoring" }))] })] }) })] }));
330
336
  };
331
337
  // Calculate the height for the logs box to ensure stable layout from first render
332
338
  // This prevents the layout from shifting as logs fill in
333
339
  const logsBoxHeight = maxVisibleLogs + 3; // +3 for header line, borders
334
340
  return (_jsxs(Box, { flexDirection: "column", height: termHeight, children: [isCompact ? renderCompactHeader() : renderNormalHeader(), _jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: "gray", paddingX: 1, height: logsBoxHeight, children: [!isVeryCompact && (_jsxs(Text, { color: "gray", dimColor: true, children: ["Logs (", filteredLogs.length, " total", scrollOffset > 0 && `, scrolled up ${scrollOffset} lines`, ")"] })), _jsx(Box, { flexDirection: "column", children: visibleLogs.length === 0 ? (_jsx(Text, { dimColor: true, children: "Waiting for logs..." })) : (visibleLogs.map((log) => (_jsx(LogLine, { log: log, isCompact: isCompact, isVeryCompact: isVeryCompact }, log.id)))) }), !isVeryCompact && logs.length > maxVisibleLogs && scrollOffset > 0 && (_jsxs(Text, { dimColor: true, children: ["(", scrollOffset, " lines below)"] }))] }), _jsxs(Box, { paddingX: 1, justifyContent: "space-between", children: [_jsx(Box, { children: _jsxs(Text, { color: "#A18CE5", children: ["\u23F5\u23F5", " ", isVeryCompact
335
341
  ? logFile.split("/").slice(-2, -1)[0] || "logs" // Just show directory name
336
- : logFile.replace(process.env.HOME || "", "~")] }) }), _jsxs(Box, { gap: 2, children: [updateInfo && _jsxs(Text, { color: "yellow", children: ["\u2191 v", updateInfo.latestVersion, " available (d3k upgrade)"] }), _jsx(Text, { color: "#A18CE5", children: ctrlCMessage })] })] })] }));
342
+ : logFile.replace(process.env.HOME || "", "~")] }) }), _jsxs(Box, { gap: 2, children: [updateInfo?.type === "available" && (_jsxs(Text, { color: "yellow", children: ["\u2191 v", updateInfo.latestVersion, " available (d3k upgrade)"] })), updateInfo?.type === "updated" && _jsxs(Text, { color: "green", children: ["\u2713 Updated to v", updateInfo.newVersion] }), _jsx(Text, { color: "#A18CE5", children: ctrlCMessage })] })] })] }));
337
343
  };
338
344
  export async function runTUI(options) {
339
345
  return new Promise((resolve, reject) => {
340
346
  try {
341
347
  let statusUpdater = null;
342
348
  let appPortUpdater = null;
343
- let updateAvailableUpdater = null;
349
+ let updateInfoUpdater = null;
344
350
  // Wrap stdout.write to add synchronized update escape sequences
345
351
  // This tells the terminal to buffer all output until the end marker
346
352
  // Supported by iTerm2, Kitty, WezTerm, and other modern terminals
@@ -365,8 +371,8 @@ export async function runTUI(options) {
365
371
  statusUpdater = fn;
366
372
  }, onAppPortUpdate: (fn) => {
367
373
  appPortUpdater = fn;
368
- }, onUpdateAvailableUpdate: (fn) => {
369
- updateAvailableUpdater = fn;
374
+ }, onUpdateInfoUpdate: (fn) => {
375
+ updateInfoUpdater = fn;
370
376
  } }), { exitOnCtrlC: false });
371
377
  // Give React one tick to set up the updaters
372
378
  setImmediate(() => {
@@ -382,9 +388,9 @@ export async function runTUI(options) {
382
388
  appPortUpdater(port);
383
389
  }
384
390
  },
385
- updateUpdateAvailable: (info) => {
386
- if (updateAvailableUpdater) {
387
- updateAvailableUpdater(info);
391
+ updateUpdateInfo: (info) => {
392
+ if (updateInfoUpdater) {
393
+ updateInfoUpdater(info);
388
394
  }
389
395
  }
390
396
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tui-interface-impl.js","sourceRoot":"","sources":["../src/tui-interface-impl.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui-interface-impl.js","sourceRoot":"","sources":["../src/tui-interface-impl.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,11 @@
1
+ export type UpdateInfo = {
2
+ type: "available";
3
+ latestVersion: string;
4
+ } | {
5
+ type: "updated";
6
+ newVersion: string;
7
+ autoHide?: boolean;
8
+ } | null;
1
9
  export interface TUIOptions {
2
10
  appPort: string;
3
11
  mcpPort: string;
@@ -6,23 +14,19 @@ export interface TUIOptions {
6
14
  serversOnly?: boolean;
7
15
  version: string;
8
16
  projectName?: string;
9
- updateAvailable?: {
10
- latestVersion: string;
11
- } | null;
17
+ updateInfo?: UpdateInfo;
12
18
  }
13
19
  export declare class DevTUI {
14
20
  private options;
15
21
  private app;
16
22
  private updateStatusFn;
17
23
  private updateAppPortFn;
18
- private updateUpdateAvailableFn;
24
+ private updateUpdateInfoFn;
19
25
  constructor(options: TUIOptions);
20
26
  start(): Promise<void>;
21
27
  updateStatus(status: string | null): void;
22
28
  updateAppPort(port: string): void;
23
- updateUpdateAvailable(info: {
24
- latestVersion: string;
25
- } | null): void;
29
+ updateUpdateInfo(info: UpdateInfo): void;
26
30
  shutdown(): Promise<void>;
27
31
  }
28
32
  //# sourceMappingURL=tui-interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tui-interface.d.ts","sourceRoot":"","sources":["../src/tui-interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE;QAChB,aAAa,EAAE,MAAM,CAAA;KACtB,GAAG,IAAI,CAAA;CACT;AAID,qBAAa,MAAM;IACjB,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,uBAAuB,CAAkE;gBAErF,OAAO,EAAE,UAAU;IAIzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqC5B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAMzC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMjC,qBAAqB,CAAC,IAAI,EAAE;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAAG,IAAI;IAM7D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAOhC"}
1
+ {"version":3,"file":"tui-interface.d.ts","sourceRoot":"","sources":["../src/tui-interface.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3D,IAAI,CAAA;AAER,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAID,qBAAa,MAAM;IACjB,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,kBAAkB,CAA4C;gBAE1D,OAAO,EAAE,UAAU;IAIzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqC5B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAMzC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMjC,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAMlC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAOhC"}
@@ -3,7 +3,7 @@ export class DevTUI {
3
3
  app = null;
4
4
  updateStatusFn = null;
5
5
  updateAppPortFn = null;
6
- updateUpdateAvailableFn = null;
6
+ updateUpdateInfoFn = null;
7
7
  constructor(options) {
8
8
  this.options = options;
9
9
  }
@@ -26,11 +26,11 @@ export class DevTUI {
26
26
  console.error = suppressReactHookWarnings;
27
27
  // Use dynamic import to load the TSX implementation at runtime
28
28
  const { runTUI } = await import("./tui-interface-impl.js");
29
- const { app, updateStatus, updateAppPort, updateUpdateAvailable } = await runTUI(this.options);
29
+ const { app, updateStatus, updateAppPort, updateUpdateInfo } = await runTUI(this.options);
30
30
  this.app = app;
31
31
  this.updateStatusFn = updateStatus;
32
32
  this.updateAppPortFn = updateAppPort;
33
- this.updateUpdateAvailableFn = updateUpdateAvailable;
33
+ this.updateUpdateInfoFn = updateUpdateInfo;
34
34
  // Restore original error logging after startup
35
35
  setTimeout(() => {
36
36
  console.error = originalError;
@@ -51,9 +51,9 @@ export class DevTUI {
51
51
  this.updateAppPortFn(port);
52
52
  }
53
53
  }
54
- updateUpdateAvailable(info) {
55
- if (this.updateUpdateAvailableFn) {
56
- this.updateUpdateAvailableFn(info);
54
+ updateUpdateInfo(info) {
55
+ if (this.updateUpdateInfoFn) {
56
+ this.updateUpdateInfoFn(info);
57
57
  }
58
58
  }
59
59
  async shutdown() {
@@ -1 +1 @@
1
- {"version":3,"file":"tui-interface.js","sourceRoot":"","sources":["../src/tui-interface.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,MAAM;IACT,OAAO,CAAY;IACnB,GAAG,GAAkB,IAAI,CAAA;IACzB,cAAc,GAA6C,IAAI,CAAA;IAC/D,eAAe,GAAoC,IAAI,CAAA;IACvD,uBAAuB,GAA8D,IAAI,CAAA;IAEjG,YAAY,OAAmB;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,gFAAgF;YAChF,2CAA2C;YAC3C,+DAA+D;YAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;YAEnC,8DAA8D;YAC9D,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAA;YACnC,MAAM,yBAAyB,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;gBACvD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;gBACvB,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBACzE,oHAAoH;oBACpH,OAAM;gBACR,CAAC;gBACD,aAAa,CAAC,GAAG,IAAI,CAAC,CAAA;YACxB,CAAC,CAAA;YACD,OAAO,CAAC,KAAK,GAAG,yBAAyB,CAAA;YAEzC,+DAA+D;YAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;YAC1D,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC9F,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;YACd,IAAI,CAAC,cAAc,GAAG,YAAY,CAAA;YAClC,IAAI,CAAC,eAAe,GAAG,aAAa,CAAA;YACpC,IAAI,CAAC,uBAAuB,GAAG,qBAAqB,CAAA;YAEpD,+CAA+C;YAC/C,UAAU,CAAC,GAAG,EAAE;gBACd,OAAO,CAAC,KAAK,GAAG,aAAa,CAAA;YAC/B,CAAC,EAAE,IAAI,CAAC,CAAA;QACV,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;YAC5C,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED,YAAY,CAAC,MAAqB;QAChC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,qBAAqB,CAAC,IAAsC;QAC1D,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;QACpB,CAAC;QACD,oEAAoE;QACpE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IACrC,CAAC;CACF"}
1
+ {"version":3,"file":"tui-interface.js","sourceRoot":"","sources":["../src/tui-interface.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,MAAM;IACT,OAAO,CAAY;IACnB,GAAG,GAAkB,IAAI,CAAA;IACzB,cAAc,GAA6C,IAAI,CAAA;IAC/D,eAAe,GAAoC,IAAI,CAAA;IACvD,kBAAkB,GAAwC,IAAI,CAAA;IAEtE,YAAY,OAAmB;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,gFAAgF;YAChF,2CAA2C;YAC3C,+DAA+D;YAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;YAEnC,8DAA8D;YAC9D,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAA;YACnC,MAAM,yBAAyB,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;gBACvD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;gBACvB,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBACzE,oHAAoH;oBACpH,OAAM;gBACR,CAAC;gBACD,aAAa,CAAC,GAAG,IAAI,CAAC,CAAA;YACxB,CAAC,CAAA;YACD,OAAO,CAAC,KAAK,GAAG,yBAAyB,CAAA;YAEzC,+DAA+D;YAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;YAC1D,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACzF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;YACd,IAAI,CAAC,cAAc,GAAG,YAAY,CAAA;YAClC,IAAI,CAAC,eAAe,GAAG,aAAa,CAAA;YACpC,IAAI,CAAC,kBAAkB,GAAG,gBAAgB,CAAA;YAE1C,+CAA+C;YAC/C,UAAU,CAAC,GAAG,EAAE;gBACd,OAAO,CAAC,KAAK,GAAG,aAAa,CAAA;YAC/B,CAAC,EAAE,IAAI,CAAC,CAAA;QACV,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;YAC5C,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED,YAAY,CAAC,MAAqB;QAChC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,IAAgB;QAC/B,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;QACpB,CAAC;QACD,oEAAoE;QACpE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IACrC,CAAC;CACF"}
@@ -0,0 +1,24 @@
1
+ export interface AgentSubOption {
2
+ label: string;
3
+ command: string;
4
+ }
5
+ export interface AgentOption {
6
+ name: string;
7
+ binary: string;
8
+ displayName: string;
9
+ available: boolean;
10
+ command?: string;
11
+ subOptions?: AgentSubOption[];
12
+ }
13
+ export interface KnownAgent {
14
+ name: string;
15
+ binary: string;
16
+ displayName: string;
17
+ command?: string;
18
+ subOptions?: AgentSubOption[];
19
+ }
20
+ export declare const KNOWN_AGENTS: KnownAgent[];
21
+ export declare function checkBinaryExists(binary: string): boolean;
22
+ export declare function getAvailableAgents(): AgentOption[];
23
+ export declare function getAgentByName(name: string): KnownAgent | undefined;
24
+ //# sourceMappingURL=agent-selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-selection.d.ts","sourceRoot":"","sources":["../../src/utils/agent-selection.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAA;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAA;CAC9B;AAED,eAAO,MAAM,YAAY,EAAE,UAAU,EAapC,CAAA;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOzD;AAED,wBAAgB,kBAAkB,IAAI,WAAW,EAAE,CAKlD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAEnE"}
@@ -0,0 +1,34 @@
1
+ import { execSync } from "child_process";
2
+ export const KNOWN_AGENTS = [
3
+ { name: "claude", binary: "claude", displayName: "claude" },
4
+ {
5
+ name: "claude-yolo",
6
+ binary: "claude",
7
+ displayName: "claude (let it rip)",
8
+ command: "claude --dangerously-skip-permissions"
9
+ },
10
+ { name: "codex", binary: "codex", displayName: "codex" },
11
+ { name: "opencode", binary: "opencode", displayName: "opencode" },
12
+ { name: "gemini", binary: "gemini", displayName: "gemini" },
13
+ { name: "cline", binary: "cline", displayName: "cline" },
14
+ { name: "cursor-agent", binary: "cursor-agent", displayName: "cursor-agent" }
15
+ ];
16
+ export function checkBinaryExists(binary) {
17
+ try {
18
+ execSync(`which ${binary}`, { stdio: "ignore" });
19
+ return true;
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ }
25
+ export function getAvailableAgents() {
26
+ return KNOWN_AGENTS.map((agent) => ({
27
+ ...agent,
28
+ available: checkBinaryExists(agent.binary)
29
+ }));
30
+ }
31
+ export function getAgentByName(name) {
32
+ return KNOWN_AGENTS.find((agent) => agent.name === name);
33
+ }
34
+ //# sourceMappingURL=agent-selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-selection.js","sourceRoot":"","sources":["../../src/utils/agent-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAwBxC,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE;IAC3D;QACE,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,uCAAuC;KACjD;IACD,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE;IACxD,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE;IACjE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE;IAC3D,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE;IACxD,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE;CAC9E,CAAA;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,IAAI,CAAC;QACH,QAAQ,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QAChD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAClC,GAAG,KAAK;QACR,SAAS,EAAE,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC;KAC3C,CAAC,CAAC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AAC1D,CAAC"}
@@ -15,4 +15,10 @@ export declare function getProjectName(cwd?: string): string;
15
15
  * (without hash suffixes for better readability)
16
16
  */
17
17
  export declare function getProjectDisplayName(cwd?: string): string;
18
+ /**
19
+ * Get the d3k data directory for a project
20
+ * All project-specific files are stored here: logs, chrome profile, skills, session info
21
+ * Structure: ~/.d3k/{projectName}/
22
+ */
23
+ export declare function getProjectDir(cwd?: string): string;
18
24
  //# sourceMappingURL=project-name.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-name.d.ts","sourceRoot":"","sources":["../../src/utils/project-name.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CA6FlE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAIzE"}
1
+ {"version":3,"file":"project-name.d.ts","sourceRoot":"","sources":["../../src/utils/project-name.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CA6FlE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAIzE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAGjE"}
@@ -1,5 +1,6 @@
1
1
  import { createHash } from "crypto";
2
2
  import { existsSync, readFileSync } from "fs";
3
+ import { homedir } from "os";
3
4
  import { basename, dirname, join } from "path";
4
5
  /**
5
6
  * Generate a unique project name based on various sources
@@ -112,4 +113,13 @@ export function getProjectDisplayName(cwd = process.cwd()) {
112
113
  // Remove hash suffix if present
113
114
  return fullName.replace(/-[a-f0-9]{6}$/, "");
114
115
  }
116
+ /**
117
+ * Get the d3k data directory for a project
118
+ * All project-specific files are stored here: logs, chrome profile, skills, session info
119
+ * Structure: ~/.d3k/{projectName}/
120
+ */
121
+ export function getProjectDir(cwd = process.cwd()) {
122
+ const projectName = getProjectName(cwd);
123
+ return join(homedir(), ".d3k", projectName);
124
+ }
115
125
  //# sourceMappingURL=project-name.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-name.js","sourceRoot":"","sources":["../../src/utils/project-name.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-name.js","sourceRoot":"","sources":["../../src/utils/project-name.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ export interface AvailableSkill {
2
+ name: string;
3
+ description: string;
4
+ path: string;
5
+ sha: string;
6
+ isNew: boolean;
7
+ isUpdate: boolean;
8
+ }
9
+ interface InstalledSkillInfo {
10
+ installedAt: string;
11
+ sha: string;
12
+ }
13
+ export interface InstalledSkills {
14
+ skills: Record<string, InstalledSkillInfo>;
15
+ seenSkills: string[];
16
+ }
17
+ export declare function loadInstalledSkills(): InstalledSkills;
18
+ export declare function saveInstalledSkills(data: InstalledSkills): void;
19
+ export declare function fetchAvailableSkills(): Promise<AvailableSkill[]>;
20
+ export declare function getActionableSkills(available: AvailableSkill[], installed: InstalledSkills): AvailableSkill[];
21
+ export declare function installSkill(skill: AvailableSkill): Promise<void>;
22
+ export declare function markSkillsAsSeen(skills: AvailableSkill[]): void;
23
+ export declare function checkForNewSkills(): Promise<AvailableSkill[]>;
24
+ export declare function installSelectedSkills(skills: AvailableSkill[], onProgress?: (skill: AvailableSkill, index: number, total: number) => void): Promise<{
25
+ success: string[];
26
+ failed: string[];
27
+ }>;
28
+ export {};
29
+ //# sourceMappingURL=skill-installer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-installer.d.ts","sourceRoot":"","sources":["../../src/utils/skill-installer.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;CAClB;AAUD,UAAU,kBAAkB;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAC1C,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAYD,wBAAgB,mBAAmB,IAAI,eAAe,CAWrD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAM/D;AAgBD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CA2CtE;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,eAAe,GAAG,cAAc,EAAE,CAsB7G;AA+BD,wBAAsB,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBvE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAS/D;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAInE;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,EAAE,EACxB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACzE,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAgBlD"}
@@ -0,0 +1,185 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
2
+ import path from "path";
3
+ import { getProjectDir } from "./project-name.js";
4
+ const GITHUB_REPO = "vercel-labs/agent-skills";
5
+ const SKILLS_PATH = "dx/skills";
6
+ // Skills are installed to project's .claude/skills/ (where Claude Code expects them)
7
+ function getProjectSkillsDir() {
8
+ return path.join(process.cwd(), ".claude", "skills");
9
+ }
10
+ // Tracking data stored in ~/.d3k/{projectName}/skills.json
11
+ function getInstalledSkillsPath() {
12
+ return path.join(getProjectDir(), "skills.json");
13
+ }
14
+ export function loadInstalledSkills() {
15
+ const filePath = getInstalledSkillsPath();
16
+ if (!existsSync(filePath)) {
17
+ return { skills: {}, seenSkills: [] };
18
+ }
19
+ try {
20
+ const content = readFileSync(filePath, "utf-8");
21
+ return JSON.parse(content);
22
+ }
23
+ catch {
24
+ return { skills: {}, seenSkills: [] };
25
+ }
26
+ }
27
+ export function saveInstalledSkills(data) {
28
+ const projectDir = getProjectDir();
29
+ if (!existsSync(projectDir)) {
30
+ mkdirSync(projectDir, { recursive: true });
31
+ }
32
+ writeFileSync(getInstalledSkillsPath(), JSON.stringify(data, null, 2));
33
+ }
34
+ function parseSkillDescription(content) {
35
+ // Parse YAML frontmatter to extract description
36
+ const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---/);
37
+ if (!frontmatterMatch) {
38
+ return "";
39
+ }
40
+ const frontmatter = frontmatterMatch[1];
41
+ const descriptionMatch = frontmatter.match(/description:\s*(.+)/);
42
+ if (descriptionMatch) {
43
+ return descriptionMatch[1].trim();
44
+ }
45
+ return "";
46
+ }
47
+ export async function fetchAvailableSkills() {
48
+ try {
49
+ // Fetch list of skills from GitHub
50
+ const response = await fetch(`https://api.github.com/repos/${GITHUB_REPO}/contents/${SKILLS_PATH}`);
51
+ if (!response.ok) {
52
+ return [];
53
+ }
54
+ const items = (await response.json());
55
+ // Filter to only directories (actual skills, not .zip files)
56
+ const skillDirs = items.filter((item) => item.type === "dir");
57
+ // Fetch description for each skill
58
+ const skills = [];
59
+ for (const dir of skillDirs) {
60
+ try {
61
+ const skillMdUrl = `https://raw.githubusercontent.com/${GITHUB_REPO}/main/${dir.path}/SKILL.md`;
62
+ const skillMdResponse = await fetch(skillMdUrl);
63
+ let description = "";
64
+ if (skillMdResponse.ok) {
65
+ const content = await skillMdResponse.text();
66
+ description = parseSkillDescription(content);
67
+ }
68
+ skills.push({
69
+ name: dir.name,
70
+ description: description || `${dir.name} skill`,
71
+ path: dir.path,
72
+ sha: dir.sha,
73
+ isNew: false, // Will be set by getActionableSkills
74
+ isUpdate: false // Will be set by getActionableSkills
75
+ });
76
+ }
77
+ catch {
78
+ // Skip skills we can't fetch
79
+ }
80
+ }
81
+ return skills;
82
+ }
83
+ catch {
84
+ // Network error or API rate limit - return empty
85
+ return [];
86
+ }
87
+ }
88
+ export function getActionableSkills(available, installed) {
89
+ const actionable = [];
90
+ for (const skill of available) {
91
+ const installedInfo = installed.skills[skill.name];
92
+ const seenKey = `${skill.name}:${skill.sha}`;
93
+ if (!installedInfo) {
94
+ // New skill - check if user already skipped this version
95
+ if (!installed.seenSkills.includes(seenKey)) {
96
+ actionable.push({ ...skill, isNew: true, isUpdate: false });
97
+ }
98
+ }
99
+ else if (installedInfo.sha !== skill.sha) {
100
+ // Update available - check if user already skipped this version
101
+ if (!installed.seenSkills.includes(seenKey)) {
102
+ actionable.push({ ...skill, isNew: false, isUpdate: true });
103
+ }
104
+ }
105
+ // If sha matches, skill is up to date - skip
106
+ }
107
+ return actionable;
108
+ }
109
+ async function downloadDirectory(dirPath, targetDir) {
110
+ const response = await fetch(`https://api.github.com/repos/${GITHUB_REPO}/contents/${dirPath}`);
111
+ if (!response.ok) {
112
+ throw new Error(`Failed to fetch directory: ${dirPath}`);
113
+ }
114
+ const items = (await response.json());
115
+ for (const item of items) {
116
+ if (item.type === "file" && item.download_url) {
117
+ // Download file
118
+ const fileResponse = await fetch(item.download_url);
119
+ if (!fileResponse.ok) {
120
+ continue;
121
+ }
122
+ const content = await fileResponse.text();
123
+ const filePath = path.join(targetDir, item.name);
124
+ writeFileSync(filePath, content);
125
+ }
126
+ else if (item.type === "dir") {
127
+ // Create subdirectory and recurse
128
+ const subDir = path.join(targetDir, item.name);
129
+ if (!existsSync(subDir)) {
130
+ mkdirSync(subDir, { recursive: true });
131
+ }
132
+ await downloadDirectory(item.path, subDir);
133
+ }
134
+ }
135
+ }
136
+ export async function installSkill(skill) {
137
+ const skillDir = path.join(getProjectSkillsDir(), skill.name);
138
+ // Create skill directory
139
+ if (!existsSync(skillDir)) {
140
+ mkdirSync(skillDir, { recursive: true });
141
+ }
142
+ // Download all files recursively
143
+ await downloadDirectory(skill.path, skillDir);
144
+ // Update installed.json
145
+ const installed = loadInstalledSkills();
146
+ installed.skills[skill.name] = {
147
+ installedAt: new Date().toISOString(),
148
+ sha: skill.sha
149
+ };
150
+ // Remove from seenSkills if it was there (user chose to install after skipping)
151
+ installed.seenSkills = installed.seenSkills.filter((s) => !s.startsWith(`${skill.name}:`));
152
+ saveInstalledSkills(installed);
153
+ }
154
+ export function markSkillsAsSeen(skills) {
155
+ const installed = loadInstalledSkills();
156
+ for (const skill of skills) {
157
+ const seenKey = `${skill.name}:${skill.sha}`;
158
+ if (!installed.seenSkills.includes(seenKey)) {
159
+ installed.seenSkills.push(seenKey);
160
+ }
161
+ }
162
+ saveInstalledSkills(installed);
163
+ }
164
+ export async function checkForNewSkills() {
165
+ const available = await fetchAvailableSkills();
166
+ const installed = loadInstalledSkills();
167
+ return getActionableSkills(available, installed);
168
+ }
169
+ export async function installSelectedSkills(skills, onProgress) {
170
+ const success = [];
171
+ const failed = [];
172
+ for (let i = 0; i < skills.length; i++) {
173
+ const skill = skills[i];
174
+ onProgress?.(skill, i, skills.length);
175
+ try {
176
+ await installSkill(skill);
177
+ success.push(skill.name);
178
+ }
179
+ catch {
180
+ failed.push(skill.name);
181
+ }
182
+ }
183
+ return { success, failed };
184
+ }
185
+ //# sourceMappingURL=skill-installer.js.map