dev3000 0.0.186 → 0.0.188

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 (235) hide show
  1. package/README.md +101 -13
  2. package/bin/dev3000 +1 -2
  3. package/dist/cdp-monitor.d.ts +7 -12
  4. package/dist/cdp-monitor.d.ts.map +1 -1
  5. package/dist/cdp-monitor.js +86 -170
  6. package/dist/cdp-monitor.js.map +1 -1
  7. package/dist/cli.d.ts +1 -2
  8. package/dist/cli.d.ts.map +1 -1
  9. package/dist/cli.js +1 -1369
  10. package/dist/cli.js.map +1 -1
  11. package/dist/index.d.ts +1 -2
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +0 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/portless.d.ts +3 -0
  16. package/dist/portless.d.ts.map +1 -1
  17. package/dist/portless.js +10 -0
  18. package/dist/portless.js.map +1 -1
  19. package/dist/runtime/bridge.d.ts +26 -0
  20. package/dist/runtime/bridge.d.ts.map +1 -0
  21. package/dist/runtime/bridge.js +340 -0
  22. package/dist/runtime/bridge.js.map +1 -0
  23. package/dist/runtime/chrome-isolation.d.ts +16 -0
  24. package/dist/runtime/chrome-isolation.d.ts.map +1 -0
  25. package/dist/runtime/chrome-isolation.js +119 -0
  26. package/dist/runtime/chrome-isolation.js.map +1 -0
  27. package/dist/runtime/cli.js +116 -26
  28. package/dist/runtime/cli.js.map +1 -1
  29. package/dist/runtime/event-views.d.ts +21 -0
  30. package/dist/runtime/event-views.d.ts.map +1 -0
  31. package/dist/runtime/event-views.js +53 -0
  32. package/dist/runtime/event-views.js.map +1 -0
  33. package/dist/runtime/harness.d.ts +16 -0
  34. package/dist/runtime/harness.d.ts.map +1 -0
  35. package/dist/runtime/harness.js +68 -0
  36. package/dist/runtime/harness.js.map +1 -0
  37. package/dist/runtime/local-proxy.d.ts +12 -0
  38. package/dist/runtime/local-proxy.d.ts.map +1 -0
  39. package/dist/runtime/local-proxy.js +114 -0
  40. package/dist/runtime/local-proxy.js.map +1 -0
  41. package/dist/runtime/runtime.d.ts +14 -0
  42. package/dist/runtime/runtime.d.ts.map +1 -1
  43. package/dist/runtime/runtime.js +80 -19
  44. package/dist/runtime/runtime.js.map +1 -1
  45. package/dist/runtime/sandbox-agent.d.ts +6 -0
  46. package/dist/runtime/sandbox-agent.d.ts.map +1 -0
  47. package/dist/runtime/sandbox-agent.js +35 -0
  48. package/dist/runtime/sandbox-agent.js.map +1 -0
  49. package/dist/runtime/sandbox-command.d.ts +9 -0
  50. package/dist/runtime/sandbox-command.d.ts.map +1 -0
  51. package/dist/runtime/sandbox-command.js +101 -0
  52. package/dist/runtime/sandbox-command.js.map +1 -0
  53. package/dist/runtime/sandbox-proxy.d.ts +11 -0
  54. package/dist/runtime/sandbox-proxy.d.ts.map +1 -0
  55. package/dist/runtime/sandbox-proxy.js +123 -0
  56. package/dist/runtime/sandbox-proxy.js.map +1 -0
  57. package/dist/runtime/sandbox-sessions.d.ts +31 -0
  58. package/dist/runtime/sandbox-sessions.d.ts.map +1 -0
  59. package/dist/runtime/sandbox-sessions.js +102 -0
  60. package/dist/runtime/sandbox-sessions.js.map +1 -0
  61. package/dist/runtime/sandbox.d.ts +21 -0
  62. package/dist/runtime/sandbox.d.ts.map +1 -0
  63. package/dist/runtime/sandbox.js +481 -0
  64. package/dist/runtime/sandbox.js.map +1 -0
  65. package/dist/utils/agent-browser.d.ts +2 -120
  66. package/dist/utils/agent-browser.d.ts.map +1 -1
  67. package/dist/utils/agent-browser.js +13 -376
  68. package/dist/utils/agent-browser.js.map +1 -1
  69. package/dist/utils/project-name.d.ts +2 -2
  70. package/dist/utils/project-name.js +2 -2
  71. package/package.json +13 -22
  72. package/skills/d3k/SKILL.md +23 -1
  73. package/dist/commands/crawl.d.ts +0 -12
  74. package/dist/commands/crawl.d.ts.map +0 -1
  75. package/dist/commands/crawl.js +0 -101
  76. package/dist/commands/crawl.js.map +0 -1
  77. package/dist/commands/errors.d.ts +0 -14
  78. package/dist/commands/errors.d.ts.map +0 -1
  79. package/dist/commands/errors.js +0 -246
  80. package/dist/commands/errors.js.map +0 -1
  81. package/dist/commands/fix.d.ts +0 -13
  82. package/dist/commands/fix.d.ts.map +0 -1
  83. package/dist/commands/fix.js +0 -219
  84. package/dist/commands/fix.js.map +0 -1
  85. package/dist/commands/logs.d.ts +0 -13
  86. package/dist/commands/logs.d.ts.map +0 -1
  87. package/dist/commands/logs.js +0 -146
  88. package/dist/commands/logs.js.map +0 -1
  89. package/dist/commands/resume.d.ts +0 -11
  90. package/dist/commands/resume.d.ts.map +0 -1
  91. package/dist/commands/resume.js +0 -75
  92. package/dist/commands/resume.js.map +0 -1
  93. package/dist/commands/status.d.ts +0 -21
  94. package/dist/commands/status.d.ts.map +0 -1
  95. package/dist/commands/status.js +0 -44
  96. package/dist/commands/status.js.map +0 -1
  97. package/dist/components/AgentSelector.d.ts +0 -12
  98. package/dist/components/AgentSelector.d.ts.map +0 -1
  99. package/dist/components/AgentSelector.js +0 -99
  100. package/dist/components/AgentSelector.js.map +0 -1
  101. package/dist/components/PackageSelector.d.ts +0 -13
  102. package/dist/components/PackageSelector.d.ts.map +0 -1
  103. package/dist/components/PackageSelector.js +0 -79
  104. package/dist/components/PackageSelector.js.map +0 -1
  105. package/dist/constants/log-colors.d.ts +0 -43
  106. package/dist/constants/log-colors.d.ts.map +0 -1
  107. package/dist/constants/log-colors.js +0 -59
  108. package/dist/constants/log-colors.js.map +0 -1
  109. package/dist/dev-environment.d.ts +0 -187
  110. package/dist/dev-environment.d.ts.map +0 -1
  111. package/dist/dev-environment.js +0 -2248
  112. package/dist/dev-environment.js.map +0 -1
  113. package/dist/screencast-manager.d.ts +0 -78
  114. package/dist/screencast-manager.d.ts.map +0 -1
  115. package/dist/screencast-manager.js +0 -529
  116. package/dist/screencast-manager.js.map +0 -1
  117. package/dist/services/parsers/error-detectors/base.d.ts +0 -24
  118. package/dist/services/parsers/error-detectors/base.d.ts.map +0 -1
  119. package/dist/services/parsers/error-detectors/base.js +0 -44
  120. package/dist/services/parsers/error-detectors/base.js.map +0 -1
  121. package/dist/services/parsers/error-detectors/index.d.ts +0 -6
  122. package/dist/services/parsers/error-detectors/index.d.ts.map +0 -1
  123. package/dist/services/parsers/error-detectors/index.js +0 -6
  124. package/dist/services/parsers/error-detectors/index.js.map +0 -1
  125. package/dist/services/parsers/error-detectors/nextjs.d.ts +0 -9
  126. package/dist/services/parsers/error-detectors/nextjs.d.ts.map +0 -1
  127. package/dist/services/parsers/error-detectors/nextjs.js +0 -52
  128. package/dist/services/parsers/error-detectors/nextjs.js.map +0 -1
  129. package/dist/services/parsers/index.d.ts +0 -9
  130. package/dist/services/parsers/index.d.ts.map +0 -1
  131. package/dist/services/parsers/index.js +0 -10
  132. package/dist/services/parsers/index.js.map +0 -1
  133. package/dist/services/parsers/log-parsers/base.d.ts +0 -26
  134. package/dist/services/parsers/log-parsers/base.d.ts.map +0 -1
  135. package/dist/services/parsers/log-parsers/base.js +0 -6
  136. package/dist/services/parsers/log-parsers/base.js.map +0 -1
  137. package/dist/services/parsers/log-parsers/index.d.ts +0 -6
  138. package/dist/services/parsers/log-parsers/index.d.ts.map +0 -1
  139. package/dist/services/parsers/log-parsers/index.js +0 -5
  140. package/dist/services/parsers/log-parsers/index.js.map +0 -1
  141. package/dist/services/parsers/log-parsers/standard.d.ts +0 -9
  142. package/dist/services/parsers/log-parsers/standard.d.ts.map +0 -1
  143. package/dist/services/parsers/log-parsers/standard.js +0 -17
  144. package/dist/services/parsers/log-parsers/standard.js.map +0 -1
  145. package/dist/services/parsers/output-processor.d.ts +0 -39
  146. package/dist/services/parsers/output-processor.d.ts.map +0 -1
  147. package/dist/services/parsers/output-processor.js +0 -54
  148. package/dist/services/parsers/output-processor.js.map +0 -1
  149. package/dist/skills/d3k/internal-skill.md +0 -32
  150. package/dist/skills/index.d.ts +0 -54
  151. package/dist/skills/index.d.ts.map +0 -1
  152. package/dist/skills/index.js +0 -214
  153. package/dist/skills/index.js.map +0 -1
  154. package/dist/src/tui-interface-impl.tsx +0 -644
  155. package/dist/tui-interface-impl.d.ts +0 -30
  156. package/dist/tui-interface-impl.d.ts.map +0 -1
  157. package/dist/tui-interface-impl.js +0 -403
  158. package/dist/tui-interface-impl.js.map +0 -1
  159. package/dist/tui-interface-opentui.d.ts +0 -33
  160. package/dist/tui-interface-opentui.d.ts.map +0 -1
  161. package/dist/tui-interface-opentui.js +0 -1128
  162. package/dist/tui-interface-opentui.js.map +0 -1
  163. package/dist/tui-interface.d.ts +0 -38
  164. package/dist/tui-interface.d.ts.map +0 -1
  165. package/dist/tui-interface.js +0 -84
  166. package/dist/tui-interface.js.map +0 -1
  167. package/dist/utils/agent-detection.d.ts +0 -17
  168. package/dist/utils/agent-detection.d.ts.map +0 -1
  169. package/dist/utils/agent-detection.js +0 -81
  170. package/dist/utils/agent-detection.js.map +0 -1
  171. package/dist/utils/agent-selection.d.ts +0 -25
  172. package/dist/utils/agent-selection.d.ts.map +0 -1
  173. package/dist/utils/agent-selection.js +0 -73
  174. package/dist/utils/agent-selection.js.map +0 -1
  175. package/dist/utils/browser-command-argv.d.ts +0 -19
  176. package/dist/utils/browser-command-argv.d.ts.map +0 -1
  177. package/dist/utils/browser-command-argv.js +0 -149
  178. package/dist/utils/browser-command-argv.js.map +0 -1
  179. package/dist/utils/build-version.d.ts +0 -2
  180. package/dist/utils/build-version.d.ts.map +0 -1
  181. package/dist/utils/build-version.js +0 -8
  182. package/dist/utils/build-version.js.map +0 -1
  183. package/dist/utils/cli-options.d.ts +0 -5
  184. package/dist/utils/cli-options.d.ts.map +0 -1
  185. package/dist/utils/cli-options.js +0 -36
  186. package/dist/utils/cli-options.js.map +0 -1
  187. package/dist/utils/d3k-dir.d.ts +0 -3
  188. package/dist/utils/d3k-dir.d.ts.map +0 -1
  189. package/dist/utils/d3k-dir.js +0 -12
  190. package/dist/utils/d3k-dir.js.map +0 -1
  191. package/dist/utils/d3k-skill-installer.d.ts +0 -4
  192. package/dist/utils/d3k-skill-installer.d.ts.map +0 -1
  193. package/dist/utils/d3k-skill-installer.js +0 -30
  194. package/dist/utils/d3k-skill-installer.js.map +0 -1
  195. package/dist/utils/log-filename.d.ts +0 -30
  196. package/dist/utils/log-filename.d.ts.map +0 -1
  197. package/dist/utils/log-filename.js +0 -60
  198. package/dist/utils/log-filename.js.map +0 -1
  199. package/dist/utils/project-detector.d.ts +0 -25
  200. package/dist/utils/project-detector.d.ts.map +0 -1
  201. package/dist/utils/project-detector.js +0 -153
  202. package/dist/utils/project-detector.js.map +0 -1
  203. package/dist/utils/project-metadata.d.ts +0 -4
  204. package/dist/utils/project-metadata.d.ts.map +0 -1
  205. package/dist/utils/project-metadata.js +0 -48
  206. package/dist/utils/project-metadata.js.map +0 -1
  207. package/dist/utils/repo-validate.d.ts +0 -2
  208. package/dist/utils/repo-validate.d.ts.map +0 -1
  209. package/dist/utils/repo-validate.js +0 -10
  210. package/dist/utils/repo-validate.js.map +0 -1
  211. package/dist/utils/session.d.ts +0 -19
  212. package/dist/utils/session.d.ts.map +0 -1
  213. package/dist/utils/session.js +0 -65
  214. package/dist/utils/session.js.map +0 -1
  215. package/dist/utils/skill-installer.d.ts +0 -65
  216. package/dist/utils/skill-installer.d.ts.map +0 -1
  217. package/dist/utils/skill-installer.js +0 -265
  218. package/dist/utils/skill-installer.js.map +0 -1
  219. package/dist/utils/timestamp.d.ts +0 -20
  220. package/dist/utils/timestamp.d.ts.map +0 -1
  221. package/dist/utils/timestamp.js +0 -57
  222. package/dist/utils/timestamp.js.map +0 -1
  223. package/dist/utils/tmux-helpers.d.ts +0 -36
  224. package/dist/utils/tmux-helpers.d.ts.map +0 -1
  225. package/dist/utils/tmux-helpers.js +0 -118
  226. package/dist/utils/tmux-helpers.js.map +0 -1
  227. package/dist/utils/user-config.d.ts +0 -12
  228. package/dist/utils/user-config.d.ts.map +0 -1
  229. package/dist/utils/user-config.js +0 -46
  230. package/dist/utils/user-config.js.map +0 -1
  231. package/dist/utils/version-check.d.ts +0 -52
  232. package/dist/utils/version-check.d.ts.map +0 -1
  233. package/dist/utils/version-check.js +0 -304
  234. package/dist/utils/version-check.js.map +0 -1
  235. package/src/tui-interface-impl.tsx +0 -644
@@ -1,46 +0,0 @@
1
- import { existsSync, readFileSync, writeFileSync } from "fs";
2
- import { homedir } from "os";
3
- import { join } from "path";
4
- export function getUserConfigPath() {
5
- return join(homedir(), ".d3k.json");
6
- }
7
- export function loadUserConfig() {
8
- const configPath = getUserConfigPath();
9
- if (!existsSync(configPath)) {
10
- return {};
11
- }
12
- try {
13
- const content = readFileSync(configPath, "utf-8");
14
- const parsed = JSON.parse(content);
15
- const config = {};
16
- if (parsed.defaultAgent && typeof parsed.defaultAgent === "object") {
17
- const agent = parsed.defaultAgent;
18
- if (typeof agent.name === "string" && typeof agent.command === "string") {
19
- config.defaultAgent = { name: agent.name, command: agent.command };
20
- }
21
- }
22
- if (typeof parsed.browser === "string" && parsed.browser.trim().length > 0) {
23
- config.browser = parsed.browser.trim();
24
- }
25
- return config;
26
- }
27
- catch {
28
- return {};
29
- }
30
- }
31
- export function saveUserConfig(updates) {
32
- const configPath = getUserConfigPath();
33
- // Load existing config and merge
34
- const existing = loadUserConfig();
35
- const merged = { ...existing, ...updates };
36
- // Remove defaultAgent if set to undefined (user chose "No agent")
37
- if (updates.defaultAgent === undefined && "defaultAgent" in updates) {
38
- delete merged.defaultAgent;
39
- }
40
- // Remove browser if set to undefined
41
- if (updates.browser === undefined && "browser" in updates) {
42
- delete merged.browser;
43
- }
44
- writeFileSync(configPath, JSON.stringify(merged, null, 2));
45
- }
46
- //# sourceMappingURL=user-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user-config.js","sourceRoot":"","sources":["../../src/utils/user-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAY3B,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAA;IAEtC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAA;QAC7D,MAAM,MAAM,GAAe,EAAE,CAAA;QAC7B,IAAI,MAAM,CAAC,YAAY,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACnE,MAAM,KAAK,GAAG,MAAM,CAAC,YAAuC,CAAA;YAC5D,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACxE,MAAM,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;YACpE,CAAC;QACH,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3E,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QACxC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAA4B;IACzD,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAA;IAEtC,iCAAiC;IACjC,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAA;IACjC,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAA;IAE1C,kEAAkE;IAClE,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,cAAc,IAAI,OAAO,EAAE,CAAC;QACpE,OAAO,MAAM,CAAC,YAAY,CAAA;IAC5B,CAAC;IAED,qCAAqC;IACrC,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;QAC1D,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AAC5D,CAAC"}
@@ -1,52 +0,0 @@
1
- interface VersionInfo {
2
- currentVersion: string;
3
- latestVersion: string | null;
4
- updateAvailable: boolean;
5
- packageManager: "npm" | "pnpm" | "yarn" | null;
6
- }
7
- /**
8
- * Get the current installed version of dev3000
9
- */
10
- export declare function getCurrentVersion(): string;
11
- /**
12
- * Fetch the latest version directly from npm
13
- */
14
- export declare function fetchLatestVersion(): Promise<string | null>;
15
- /**
16
- * Detect how dev3000 was installed globally
17
- */
18
- export declare function detectPackageManager(): "npm" | "pnpm" | "yarn" | null;
19
- /**
20
- * Get the upgrade command for the detected package manager
21
- */
22
- export declare function getUpgradeCommand(packageManager: "npm" | "pnpm" | "yarn" | null): string;
23
- /**
24
- * Compare two semver versions
25
- * Returns true if version2 is greater than version1
26
- *
27
- * Pre-release versions (e.g., 0.0.125-canary) are considered older than
28
- * their corresponding stable versions (e.g., 0.0.125).
29
- */
30
- export declare function isNewerVersion(current: string, latest: string): boolean;
31
- /**
32
- * Check for updates (async, non-blocking)
33
- */
34
- export declare function checkForUpdates(): Promise<VersionInfo>;
35
- /**
36
- * Perform the upgrade (blocking, with stdio output)
37
- */
38
- export declare function performUpgrade(): {
39
- success: boolean;
40
- error?: string;
41
- };
42
- /**
43
- * Perform the upgrade asynchronously (non-blocking, for background updates)
44
- * Returns the new version on success, or null on failure
45
- */
46
- export declare function performUpgradeAsync(): Promise<{
47
- success: boolean;
48
- newVersion?: string;
49
- error?: string;
50
- }>;
51
- export {};
52
- //# sourceMappingURL=version-check.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/utils/version-check.ts"],"names":[],"mappings":"AASA,UAAU,WAAW;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,eAAe,EAAE,OAAO,CAAA;IACxB,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CAC/C;AAoDD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAe1C;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2CjE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAyDrE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CASxF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CA4BvE;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAgB5D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAoBrE;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAgD9G"}
@@ -1,304 +0,0 @@
1
- import { execSync, spawnSync } from "child_process";
2
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
3
- import { homedir } from "os";
4
- import { dirname, join } from "path";
5
- import { fileURLToPath } from "url";
6
- const CACHE_TTL_MS = 1000 * 60 * 60; // 1 hour cache
7
- function getCacheFilePath() {
8
- return join(homedir(), ".d3k", "version-cache.json");
9
- }
10
- /**
11
- * Read cached version info if it exists and is still valid
12
- */
13
- function readCachedVersion() {
14
- try {
15
- const cachePath = getCacheFilePath();
16
- if (!existsSync(cachePath)) {
17
- return null;
18
- }
19
- const cached = JSON.parse(readFileSync(cachePath, "utf8"));
20
- if (Date.now() - cached.timestamp < CACHE_TTL_MS) {
21
- return cached.latestVersion;
22
- }
23
- }
24
- catch {
25
- // Cache read failed, ignore
26
- }
27
- return null;
28
- }
29
- /**
30
- * Write version info to cache
31
- */
32
- function writeCachedVersion(version) {
33
- try {
34
- const cachePath = getCacheFilePath();
35
- const cacheDir = dirname(cachePath);
36
- if (!existsSync(cacheDir)) {
37
- mkdirSync(cacheDir, { recursive: true });
38
- }
39
- const cached = {
40
- latestVersion: version,
41
- timestamp: Date.now()
42
- };
43
- writeFileSync(cachePath, JSON.stringify(cached));
44
- }
45
- catch {
46
- // Cache write failed, ignore
47
- }
48
- }
49
- /**
50
- * Get the current installed version of dev3000
51
- */
52
- export function getCurrentVersion() {
53
- // Check for compile-time injected version first (for standalone binaries)
54
- if (typeof __D3K_VERSION__ !== "undefined") {
55
- return __D3K_VERSION__;
56
- }
57
- try {
58
- const currentFile = fileURLToPath(import.meta.url);
59
- const packageRoot = dirname(dirname(dirname(currentFile))); // Go up from dist/utils to package root
60
- const packageJsonPath = join(packageRoot, "package.json");
61
- const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf8"));
62
- return packageJson.version;
63
- }
64
- catch {
65
- return "0.0.0";
66
- }
67
- }
68
- /**
69
- * Fetch the latest version directly from npm
70
- */
71
- export async function fetchLatestVersion() {
72
- // Check cache first
73
- const cached = readCachedVersion();
74
- if (cached) {
75
- return cached;
76
- }
77
- // Fallback to npm directly (no telemetry)
78
- try {
79
- // Use npm view with a short timeout
80
- const result = execSync("npm view dev3000 version 2>/dev/null", {
81
- encoding: "utf8",
82
- timeout: 5000
83
- }).trim();
84
- if (result) {
85
- writeCachedVersion(result);
86
- return result;
87
- }
88
- }
89
- catch {
90
- // npm view failed, try fetch as fallback
91
- try {
92
- const controller = new AbortController();
93
- const timeout = setTimeout(() => controller.abort(), 3000);
94
- const response = await fetch("https://registry.npmjs.org/dev3000/latest", {
95
- signal: controller.signal
96
- });
97
- clearTimeout(timeout);
98
- if (response.ok) {
99
- const data = await response.json();
100
- if (data.version) {
101
- writeCachedVersion(data.version);
102
- return data.version;
103
- }
104
- }
105
- }
106
- catch {
107
- // Fetch also failed, return null
108
- }
109
- }
110
- return null;
111
- }
112
- /**
113
- * Detect how dev3000 was installed globally
114
- */
115
- export function detectPackageManager() {
116
- const currentFile = fileURLToPath(import.meta.url);
117
- const packageRoot = dirname(dirname(dirname(currentFile)));
118
- // Check path patterns for different package managers
119
- if (packageRoot.includes(".pnpm") || packageRoot.includes("pnpm")) {
120
- return "pnpm";
121
- }
122
- if (packageRoot.includes(".yarn") || packageRoot.includes("yarn")) {
123
- return "yarn";
124
- }
125
- // Check if npm global
126
- if (packageRoot.includes("npm") || packageRoot.includes("/lib/node_modules/") || packageRoot.includes("npm-global")) {
127
- return "npm";
128
- }
129
- // Try to detect by checking which package manager has dev3000 globally installed
130
- try {
131
- const pnpmResult = spawnSync("pnpm", ["list", "-g", "--depth=0", "dev3000"], {
132
- encoding: "utf8",
133
- timeout: 3000
134
- });
135
- if (pnpmResult.status === 0 && pnpmResult.stdout.includes("dev3000")) {
136
- return "pnpm";
137
- }
138
- }
139
- catch {
140
- // pnpm not available or failed
141
- }
142
- try {
143
- const npmResult = spawnSync("npm", ["list", "-g", "--depth=0", "dev3000"], {
144
- encoding: "utf8",
145
- timeout: 3000
146
- });
147
- if (npmResult.status === 0 && npmResult.stdout.includes("dev3000")) {
148
- return "npm";
149
- }
150
- }
151
- catch {
152
- // npm failed
153
- }
154
- try {
155
- const yarnResult = spawnSync("yarn", ["global", "list", "--depth=0"], {
156
- encoding: "utf8",
157
- timeout: 3000
158
- });
159
- if (yarnResult.status === 0 && yarnResult.stdout.includes("dev3000")) {
160
- return "yarn";
161
- }
162
- }
163
- catch {
164
- // yarn not available or failed
165
- }
166
- // Default to npm if we can't detect
167
- return "npm";
168
- }
169
- /**
170
- * Get the upgrade command for the detected package manager
171
- */
172
- export function getUpgradeCommand(packageManager) {
173
- switch (packageManager) {
174
- case "pnpm":
175
- return "pnpm install -g dev3000@latest";
176
- case "yarn":
177
- return "yarn global add dev3000@latest";
178
- default:
179
- return "npm install -g dev3000@latest";
180
- }
181
- }
182
- /**
183
- * Compare two semver versions
184
- * Returns true if version2 is greater than version1
185
- *
186
- * Pre-release versions (e.g., 0.0.125-canary) are considered older than
187
- * their corresponding stable versions (e.g., 0.0.125).
188
- */
189
- export function isNewerVersion(current, latest) {
190
- // Extract pre-release tags
191
- const currentPrerelease = current.includes("-") ? current.split("-")[1] : null;
192
- const latestPrerelease = latest.includes("-") ? latest.split("-")[1] : null;
193
- // Strip any pre-release tags for base version comparison
194
- const cleanCurrent = current.replace(/-.*$/, "");
195
- const cleanLatest = latest.replace(/-.*$/, "");
196
- const v1Parts = cleanCurrent.split(".").map(Number);
197
- const v2Parts = cleanLatest.split(".").map(Number);
198
- for (let i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) {
199
- const v1 = v1Parts[i] || 0;
200
- const v2 = v2Parts[i] || 0;
201
- if (v2 > v1)
202
- return true;
203
- if (v2 < v1)
204
- return false;
205
- }
206
- // Base versions are equal - check pre-release status
207
- // A stable version (no prerelease) is newer than a prerelease version
208
- // e.g., 0.0.125 > 0.0.125-canary
209
- if (currentPrerelease && !latestPrerelease) {
210
- return true; // latest is stable, current is prerelease -> update available
211
- }
212
- return false;
213
- }
214
- /**
215
- * Check for updates (async, non-blocking)
216
- */
217
- export async function checkForUpdates() {
218
- const currentVersion = getCurrentVersion();
219
- const latestVersion = await fetchLatestVersion();
220
- const packageManager = detectPackageManager();
221
- // Don't auto-update if on a canary/prerelease version
222
- // Canary users should upgrade manually
223
- const isCanary = currentVersion.includes("-");
224
- const updateAvailable = !isCanary && latestVersion !== null && isNewerVersion(currentVersion, latestVersion);
225
- return {
226
- currentVersion,
227
- latestVersion,
228
- updateAvailable,
229
- packageManager
230
- };
231
- }
232
- /**
233
- * Perform the upgrade (blocking, with stdio output)
234
- */
235
- export function performUpgrade() {
236
- const packageManager = detectPackageManager();
237
- const command = getUpgradeCommand(packageManager);
238
- try {
239
- console.log(`Upgrading dev3000 using ${packageManager || "npm"}...`);
240
- console.log(`Running: ${command}\n`);
241
- execSync(command, {
242
- stdio: "inherit",
243
- timeout: 120000 // 2 minute timeout
244
- });
245
- return { success: true };
246
- }
247
- catch (error) {
248
- return {
249
- success: false,
250
- error: error instanceof Error ? error.message : "Unknown error during upgrade"
251
- };
252
- }
253
- }
254
- /**
255
- * Perform the upgrade asynchronously (non-blocking, for background updates)
256
- * Returns the new version on success, or null on failure
257
- */
258
- export async function performUpgradeAsync() {
259
- const packageManager = detectPackageManager();
260
- const command = getUpgradeCommand(packageManager);
261
- return new Promise((resolve) => {
262
- try {
263
- // Run upgrade silently in background
264
- execSync(command, {
265
- stdio: "ignore",
266
- timeout: 120000 // 2 minute timeout
267
- });
268
- // After upgrade, fetch the new version by checking what's installed
269
- // Clear the module cache and re-read package.json isn't reliable after global install
270
- // Instead, use npm/pnpm to query the installed version
271
- try {
272
- const versionCommand = packageManager === "pnpm"
273
- ? "pnpm list -g dev3000 --json"
274
- : packageManager === "yarn"
275
- ? "yarn global list --json"
276
- : "npm list -g dev3000 --json";
277
- const result = execSync(versionCommand, { encoding: "utf8", timeout: 5000 });
278
- const parsed = JSON.parse(result);
279
- // Extract version based on package manager format
280
- let newVersion;
281
- if (packageManager === "pnpm") {
282
- // pnpm format: array of packages
283
- newVersion = parsed?.[0]?.dependencies?.dev3000?.version;
284
- }
285
- else if (packageManager === "npm") {
286
- // npm format: { dependencies: { dev3000: { version: "x.x.x" } } }
287
- newVersion = parsed?.dependencies?.dev3000?.version;
288
- }
289
- resolve({ success: true, newVersion });
290
- }
291
- catch {
292
- // Couldn't get version, but upgrade succeeded
293
- resolve({ success: true });
294
- }
295
- }
296
- catch (error) {
297
- resolve({
298
- success: false,
299
- error: error instanceof Error ? error.message : "Unknown error during upgrade"
300
- });
301
- }
302
- });
303
- }
304
- //# sourceMappingURL=version-check.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/utils/version-check.ts"],"names":[],"mappings":"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"}