@llmtune/cli 0.1.8 → 0.2.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 (194) hide show
  1. package/README.md +206 -181
  2. package/dist/agent/conversation.d.ts.map +1 -0
  3. package/dist/agent/conversation.js.map +1 -0
  4. package/dist/agent/loop.d.ts.map +1 -0
  5. package/dist/agent/loop.js +45 -11
  6. package/dist/agent/loop.js.map +1 -0
  7. package/dist/agent/planner.d.ts.map +1 -0
  8. package/dist/agent/planner.js.map +1 -0
  9. package/dist/auth/client.d.ts.map +1 -0
  10. package/dist/auth/client.js.map +1 -0
  11. package/dist/auth/config.d.ts.map +1 -0
  12. package/dist/auth/config.js.map +1 -0
  13. package/dist/commands/balance.d.ts +2 -0
  14. package/dist/commands/balance.d.ts.map +1 -0
  15. package/dist/commands/balance.js +65 -0
  16. package/dist/commands/balance.js.map +1 -0
  17. package/dist/commands/chat.d.ts.map +1 -0
  18. package/dist/commands/chat.js +15 -11
  19. package/dist/commands/chat.js.map +1 -0
  20. package/dist/commands/config.d.ts.map +1 -0
  21. package/dist/commands/config.js.map +1 -0
  22. package/dist/commands/doctor.d.ts +2 -0
  23. package/dist/commands/doctor.d.ts.map +1 -0
  24. package/dist/commands/doctor.js +212 -0
  25. package/dist/commands/doctor.js.map +1 -0
  26. package/dist/commands/login.d.ts.map +1 -0
  27. package/dist/commands/login.js +3 -1
  28. package/dist/commands/login.js.map +1 -0
  29. package/dist/commands/marketplace.d.ts.map +1 -0
  30. package/dist/commands/marketplace.js.map +1 -0
  31. package/dist/commands/models.d.ts.map +1 -0
  32. package/dist/commands/models.js +9 -15
  33. package/dist/commands/models.js.map +1 -0
  34. package/dist/commands/update.d.ts +6 -0
  35. package/dist/commands/update.d.ts.map +1 -0
  36. package/dist/commands/update.js +115 -0
  37. package/dist/commands/update.js.map +1 -0
  38. package/dist/compact/auto-compact.d.ts.map +1 -0
  39. package/dist/compact/auto-compact.js.map +1 -0
  40. package/dist/compact/budget.d.ts.map +1 -0
  41. package/dist/compact/budget.js +18 -0
  42. package/dist/compact/budget.js.map +1 -0
  43. package/dist/compact/history-store.d.ts.map +1 -0
  44. package/dist/compact/history-store.js.map +1 -0
  45. package/dist/compact/microcompact.d.ts.map +1 -0
  46. package/dist/compact/microcompact.js.map +1 -0
  47. package/dist/compact/service.d.ts.map +1 -0
  48. package/dist/compact/service.js.map +1 -0
  49. package/dist/context/agent-identity.d.ts.map +1 -0
  50. package/dist/context/agent-identity.js +19 -0
  51. package/dist/context/agent-identity.js.map +1 -0
  52. package/dist/context/analyzer.d.ts.map +1 -0
  53. package/dist/context/analyzer.js.map +1 -0
  54. package/dist/context/builder.d.ts.map +1 -0
  55. package/dist/context/builder.js +7 -0
  56. package/dist/context/builder.js.map +1 -0
  57. package/dist/context/cache.d.ts.map +1 -0
  58. package/dist/context/cache.js +110 -0
  59. package/dist/context/cache.js.map +1 -0
  60. package/dist/context/git-context.d.ts.map +1 -0
  61. package/dist/context/git-context.js.map +1 -0
  62. package/dist/context/llmtune-md.d.ts.map +1 -0
  63. package/dist/context/llmtune-md.js.map +1 -0
  64. package/dist/context/project-detect.d.ts +26 -0
  65. package/dist/context/project-detect.d.ts.map +1 -0
  66. package/dist/context/project-detect.js +213 -0
  67. package/dist/context/project-detect.js.map +1 -0
  68. package/dist/context/workspace.d.ts.map +1 -0
  69. package/dist/context/workspace.js +2 -1
  70. package/dist/context/workspace.js.map +1 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +57 -5
  73. package/dist/index.js.map +1 -0
  74. package/dist/marketplace/client.d.ts.map +1 -0
  75. package/dist/marketplace/client.js.map +1 -0
  76. package/dist/memory/files.d.ts.map +1 -0
  77. package/dist/memory/files.js.map +1 -0
  78. package/dist/memory/service.d.ts +2 -1
  79. package/dist/memory/service.d.ts.map +1 -0
  80. package/dist/memory/service.js +1 -0
  81. package/dist/memory/service.js.map +1 -0
  82. package/dist/repl/auto-save.d.ts +14 -0
  83. package/dist/repl/auto-save.d.ts.map +1 -0
  84. package/dist/repl/auto-save.js +101 -0
  85. package/dist/repl/auto-save.js.map +1 -0
  86. package/dist/repl/repl.d.ts +1 -0
  87. package/dist/repl/repl.d.ts.map +1 -0
  88. package/dist/repl/repl.js +296 -34
  89. package/dist/repl/repl.js.map +1 -0
  90. package/dist/skills/args.d.ts.map +1 -0
  91. package/dist/skills/args.js.map +1 -0
  92. package/dist/skills/frontmatter.d.ts.map +1 -0
  93. package/dist/skills/frontmatter.js.map +1 -0
  94. package/dist/skills/loader.d.ts.map +1 -0
  95. package/dist/skills/loader.js.map +1 -0
  96. package/dist/skills/registry.d.ts.map +1 -0
  97. package/dist/skills/registry.js.map +1 -0
  98. package/dist/skills/signing/signer.d.ts.map +1 -0
  99. package/dist/skills/signing/signer.js.map +1 -0
  100. package/dist/skills/trust.d.ts.map +1 -0
  101. package/dist/skills/trust.js.map +1 -0
  102. package/dist/telemetry/logger.d.ts.map +1 -0
  103. package/dist/telemetry/logger.js.map +1 -0
  104. package/dist/tools/permissions.d.ts +2 -0
  105. package/dist/tools/permissions.d.ts.map +1 -0
  106. package/dist/tools/permissions.js +9 -0
  107. package/dist/tools/permissions.js.map +1 -0
  108. package/dist/tools/protocol.d.ts.map +1 -0
  109. package/dist/tools/protocol.js.map +1 -0
  110. package/dist/tools/registry.d.ts.map +1 -0
  111. package/dist/tools/registry.js.map +1 -0
  112. package/dist/tools/sandbox/docker.d.ts.map +1 -0
  113. package/dist/tools/sandbox/docker.js.map +1 -0
  114. package/dist/tools/sandbox/index.d.ts.map +1 -0
  115. package/dist/tools/sandbox/index.js.map +1 -0
  116. package/dist/tools/sanitize.d.ts +10 -0
  117. package/dist/tools/sanitize.d.ts.map +1 -0
  118. package/dist/tools/sanitize.js +87 -0
  119. package/dist/tools/sanitize.js.map +1 -0
  120. package/dist/tools/tools/ask-user.d.ts.map +1 -0
  121. package/dist/tools/tools/ask-user.js.map +1 -0
  122. package/dist/tools/tools/bash.d.ts.map +1 -0
  123. package/dist/tools/tools/bash.js +52 -1
  124. package/dist/tools/tools/bash.js.map +1 -0
  125. package/dist/tools/tools/edit.d.ts.map +1 -0
  126. package/dist/tools/tools/edit.js +9 -2
  127. package/dist/tools/tools/edit.js.map +1 -0
  128. package/dist/tools/tools/glob.d.ts.map +1 -0
  129. package/dist/tools/tools/glob.js.map +1 -0
  130. package/dist/tools/tools/grep.d.ts.map +1 -0
  131. package/dist/tools/tools/grep.js +6 -8
  132. package/dist/tools/tools/grep.js.map +1 -0
  133. package/dist/tools/tools/read.d.ts.map +1 -0
  134. package/dist/tools/tools/read.js +7 -4
  135. package/dist/tools/tools/read.js.map +1 -0
  136. package/dist/tools/tools/web-fetch.d.ts.map +1 -0
  137. package/dist/tools/tools/web-fetch.js +74 -99
  138. package/dist/tools/tools/web-fetch.js.map +1 -0
  139. package/dist/tools/tools/write.d.ts.map +1 -0
  140. package/dist/tools/tools/write.js +13 -7
  141. package/dist/tools/tools/write.js.map +1 -0
  142. package/dist/tools/validation.d.ts.map +1 -0
  143. package/dist/tools/validation.js.map +1 -0
  144. package/dist/ui/banner.d.ts +2 -0
  145. package/dist/ui/banner.d.ts.map +1 -0
  146. package/dist/ui/banner.js +29 -0
  147. package/dist/ui/banner.js.map +1 -0
  148. package/dist/utils/diff.d.ts +38 -0
  149. package/dist/utils/diff.d.ts.map +1 -0
  150. package/dist/utils/diff.js +184 -0
  151. package/dist/utils/diff.js.map +1 -0
  152. package/dist/utils/errors.d.ts +32 -0
  153. package/dist/utils/errors.d.ts.map +1 -0
  154. package/dist/utils/errors.js +72 -0
  155. package/dist/utils/errors.js.map +1 -0
  156. package/dist/utils/ignore.d.ts +22 -0
  157. package/dist/utils/ignore.d.ts.map +1 -0
  158. package/dist/utils/ignore.js +205 -0
  159. package/dist/utils/ignore.js.map +1 -0
  160. package/dist/utils/input-history.d.ts +37 -0
  161. package/dist/utils/input-history.d.ts.map +1 -0
  162. package/dist/utils/input-history.js +142 -0
  163. package/dist/utils/input-history.js.map +1 -0
  164. package/dist/utils/markdown.d.ts.map +1 -0
  165. package/dist/utils/markdown.js.map +1 -0
  166. package/dist/utils/rate-limit.d.ts +36 -0
  167. package/dist/utils/rate-limit.d.ts.map +1 -0
  168. package/dist/utils/rate-limit.js +71 -0
  169. package/dist/utils/rate-limit.js.map +1 -0
  170. package/dist/utils/retry.d.ts +26 -0
  171. package/dist/utils/retry.d.ts.map +1 -0
  172. package/dist/utils/retry.js +96 -0
  173. package/dist/utils/retry.js.map +1 -0
  174. package/dist/utils/spinner.d.ts +12 -0
  175. package/dist/utils/spinner.d.ts.map +1 -0
  176. package/dist/utils/spinner.js +51 -0
  177. package/dist/utils/spinner.js.map +1 -0
  178. package/dist/utils/stats.d.ts +29 -0
  179. package/dist/utils/stats.d.ts.map +1 -0
  180. package/dist/utils/stats.js +95 -0
  181. package/dist/utils/stats.js.map +1 -0
  182. package/dist/utils/streaming.d.ts +6 -3
  183. package/dist/utils/streaming.d.ts.map +1 -0
  184. package/dist/utils/streaming.js +14 -19
  185. package/dist/utils/streaming.js.map +1 -0
  186. package/dist/utils/tokens.d.ts.map +1 -0
  187. package/dist/utils/tokens.js.map +1 -0
  188. package/dist/utils/undo-tracker.d.ts +37 -0
  189. package/dist/utils/undo-tracker.d.ts.map +1 -0
  190. package/dist/utils/undo-tracker.js +118 -0
  191. package/dist/utils/undo-tracker.js.map +1 -0
  192. package/dist/version.d.ts.map +1 -0
  193. package/dist/version.js.map +1 -0
  194. package/package.json +61 -45
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.balanceCommand = balanceCommand;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const config_1 = require("../auth/config");
9
+ async function balanceCommand() {
10
+ const apiKey = (0, config_1.getApiKey)();
11
+ if (!apiKey) {
12
+ console.log(chalk_1.default.red('Not authenticated. Run "llmtune login" first.'));
13
+ process.exit(1);
14
+ }
15
+ const config = (0, config_1.loadConfig)();
16
+ const apiBase = config.apiBase || "https://api.llmtune.io/api/agent/v1";
17
+ // Derive the base URL (strip /api/agent/v1 → root)
18
+ const baseUrl = apiBase.replace(/\/api\/agent\/v1\/?$/, "");
19
+ const url = `${baseUrl}/api/usage/balance-bar`;
20
+ try {
21
+ const res = await fetch(url, {
22
+ headers: {
23
+ Authorization: `Bearer ${apiKey}`,
24
+ "Content-Type": "application/json",
25
+ },
26
+ });
27
+ if (!res.ok) {
28
+ const text = await res.text();
29
+ console.log(chalk_1.default.red(`Failed to fetch balance (${res.status}): ${text}`));
30
+ return;
31
+ }
32
+ const data = (await res.json());
33
+ console.log("");
34
+ console.log(chalk_1.default.bold(" Account Balance"));
35
+ console.log("");
36
+ // Balance display
37
+ const balance = data.balanceUsd;
38
+ const balanceStr = balance < 0
39
+ ? chalk_1.default.red(`-$${Math.abs(balance).toFixed(2)}`)
40
+ : balance < 1
41
+ ? chalk_1.default.yellow(`$${balance.toFixed(4)}`)
42
+ : chalk_1.default.green(`$${balance.toFixed(2)}`);
43
+ console.log(` Balance: ${balanceStr}`);
44
+ // Token usage (30d)
45
+ if (data.totalTokens !== undefined) {
46
+ const tokens = data.totalTokens;
47
+ const formatted = tokens >= 1_000_000
48
+ ? `${(tokens / 1_000_000).toFixed(1)}M`
49
+ : tokens >= 1_000
50
+ ? `${(tokens / 1_000).toFixed(1)}K`
51
+ : `${tokens}`;
52
+ console.log(` Usage (30d): ${chalk_1.default.dim(formatted + " tokens")}`);
53
+ }
54
+ console.log("");
55
+ // Low balance warning
56
+ if (balance > 0 && balance < 0.50) {
57
+ console.log(chalk_1.default.yellow(" ⚠ Low balance — consider topping up at llmtune.io"));
58
+ console.log("");
59
+ }
60
+ }
61
+ catch (err) {
62
+ console.log(chalk_1.default.red(`Error: ${err instanceof Error ? err.message : String(err)}`));
63
+ }
64
+ }
65
+ //# sourceMappingURL=balance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../src/commands/balance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAMA,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,iBAuBA"}
@@ -5,23 +5,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.chatCommand = chatCommand;
7
7
  const chalk_1 = __importDefault(require("chalk"));
8
- const config_js_1 = require("../auth/config.js");
9
- const client_js_1 = require("../auth/client.js");
10
- const repl_js_1 = require("../repl/repl.js");
8
+ const config_1 = require("../auth/config");
9
+ const client_1 = require("../auth/client");
10
+ const repl_1 = require("../repl/repl");
11
+ const banner_1 = require("../ui/banner");
11
12
  async function chatCommand(options) {
12
- const config = (0, config_js_1.loadConfig)();
13
+ const config = (0, config_1.loadConfig)();
13
14
  if (!config.apiKey) {
14
15
  console.log(chalk_1.default.red('No API key configured. Run "llmtune login" first.'));
15
16
  process.exit(1);
16
17
  }
17
- const client = (0, client_js_1.createClient)();
18
+ const client = (0, client_1.createClient)();
18
19
  const model = options.model || config.defaultModel || "z-ai/GLM-5.1";
19
20
  const stream = options.stream !== false;
20
- console.log(chalk_1.default.cyan(`\nLLMTune CLI`));
21
- console.log(chalk_1.default.dim(`Connected to ${(0, config_js_1.getApiBase)()}`));
22
- console.log(chalk_1.default.dim(`Model: ${model}`));
23
- console.log(chalk_1.default.dim(`Stream: ${stream}`));
24
- console.log(chalk_1.default.dim(`Type /help for commands, /exit to quit\n`));
25
- await (0, repl_js_1.startRepl)({ client, model, stream });
21
+ // Render the LLMTune ASCII art banner
22
+ console.log((0, banner_1.renderBanner)());
23
+ // Connection info
24
+ console.log(chalk_1.default.dim(` Connected to ${(0, config_1.getApiBase)()}`));
25
+ console.log(chalk_1.default.dim(` Model: ${model}`));
26
+ console.log(chalk_1.default.dim(` Stream: ${stream}`));
27
+ console.log(chalk_1.default.dim(` Type /help for commands, /exit to quit`));
28
+ console.log("");
29
+ await (0, repl_1.startRepl)({ client, model, stream });
26
30
  }
27
31
  //# sourceMappingURL=chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":";;;;;AAMA,kCA0BC;AAhCD,kDAAyB;AACzB,2CAAuD;AACvD,2CAA6C;AAC7C,uCAAwC;AACxC,yCAA2C;AAEpC,KAAK,UAAU,WAAW,CAAC,OAGjC;IACC,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAE5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,qBAAY,GAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAK,MAAM,CAAC,YAAuB,IAAI,cAAc,CAAC;IACjF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC;IAExC,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,IAAA,qBAAY,GAAE,CAAC,CAAC;IAE5B,kBAAkB;IAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,kBAAkB,IAAA,mBAAU,GAAE,EAAE,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,IAAA,gBAAS,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,IAAI,IAAI,CAgCjC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":";;;;;AAGA,gCAgCC;AAnCD,kDAA0B;AAC1B,2CAA2D;AAE3D,SAAgB,UAAU;IACxB,MAAM,UAAU,GAAG,IAAA,sBAAa,GAAE,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,kBAAkB,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,CAAC,MAA4B,CAAA;QAClD,MAAM,OAAO,GAAG,MAAM,CAAC,OAA6B,CAAA;QACpD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAkC,CAAA;QAC9D,OAAO,CAAC,GAAG,CAAC,kBAAkB,eAAK,CAAC,IAAI,CAAC,OAAO,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,oBAAoB,eAAK,CAAC,IAAI,CAAC,YAAY,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QAE3E,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,GAAG,EAAE;gBAChB,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC/C,CAAC,CAAC,OAAO,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,kBAAkB,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,kBAAkB,eAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,WAAW,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,6BAA6B,CAAC,CAC/E,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,SAAS,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,CACpE,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function doctorCommand(): Promise<void>;
2
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAeA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAsKnD"}
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.doctorCommand = doctorCommand;
40
+ const chalk_1 = __importDefault(require("chalk"));
41
+ const fs = __importStar(require("fs"));
42
+ const os = __importStar(require("os"));
43
+ const path = __importStar(require("path"));
44
+ const child_process_1 = require("child_process");
45
+ const config_1 = require("../auth/config");
46
+ const version_1 = require("../version");
47
+ async function doctorCommand() {
48
+ const checks = [];
49
+ console.log(chalk_1.default.bold("\n🩺 LLMTune CLI Doctor\n"));
50
+ // 1. Node.js version
51
+ const nodeVersion = process.version;
52
+ const major = parseInt(nodeVersion.slice(1).split(".")[0], 10);
53
+ if (major >= 18) {
54
+ checks.push({ name: "Node.js", status: "pass", message: `v${nodeVersion.slice(1)}` });
55
+ }
56
+ else {
57
+ checks.push({
58
+ name: "Node.js",
59
+ status: "fail",
60
+ message: `v${nodeVersion.slice(1)} — requires >= 18.0.0`,
61
+ fix: "Upgrade Node.js: https://nodejs.org/",
62
+ });
63
+ }
64
+ // 2. CLI version
65
+ checks.push({ name: "CLI version", status: "pass", message: `v${version_1.CLI_VERSION}` });
66
+ // 3. Config file
67
+ const configPath = (0, config_1.getConfigPath)();
68
+ if (fs.existsSync(configPath)) {
69
+ checks.push({ name: "Config file", status: "pass", message: configPath });
70
+ }
71
+ else {
72
+ checks.push({
73
+ name: "Config file",
74
+ status: "warn",
75
+ message: "Not found",
76
+ fix: "Run: llmtune login",
77
+ });
78
+ }
79
+ // 4. API key
80
+ if ((0, config_1.isLoggedIn)()) {
81
+ const config = (0, config_1.loadConfig)();
82
+ const key = config.apiKey;
83
+ const masked = key && key.length > 12
84
+ ? `${key.slice(0, 6)}...${key.slice(-4)}`
85
+ : key ? "(set)" : "(not set)";
86
+ checks.push({ name: "API key", status: "pass", message: masked });
87
+ }
88
+ else {
89
+ checks.push({
90
+ name: "API key",
91
+ status: "fail",
92
+ message: "Not configured",
93
+ fix: "Run: llmtune login",
94
+ });
95
+ }
96
+ // 5. API connectivity — use native fetch instead of curl (Windows compatible)
97
+ if ((0, config_1.isLoggedIn)()) {
98
+ try {
99
+ const config = (0, config_1.loadConfig)();
100
+ const apiBase = config.apiBase || "https://api.llmtune.io/api/agent/v1";
101
+ const apiKey = config.apiKey;
102
+ const controller = new AbortController();
103
+ const timeout = setTimeout(() => controller.abort(), 10000);
104
+ const response = await fetch(`${apiBase}/models`, {
105
+ headers: { Authorization: `Bearer ${apiKey}` },
106
+ signal: controller.signal,
107
+ });
108
+ clearTimeout(timeout);
109
+ if (response.ok) {
110
+ checks.push({ name: "API connection", status: "pass", message: `${apiBase} (HTTP ${response.status})` });
111
+ }
112
+ else {
113
+ checks.push({ name: "API connection", status: "warn", message: `${apiBase} (HTTP ${response.status})` });
114
+ }
115
+ }
116
+ catch (err) {
117
+ checks.push({
118
+ name: "API connection",
119
+ status: "fail",
120
+ message: "Cannot reach API",
121
+ fix: "Check your network connection and API base URL",
122
+ });
123
+ }
124
+ }
125
+ // 6. Config dir
126
+ const configDir = path.join(os.homedir(), ".llmtune");
127
+ if (fs.existsSync(configDir)) {
128
+ checks.push({ name: "Config dir", status: "pass", message: configDir });
129
+ }
130
+ else {
131
+ checks.push({
132
+ name: "Config dir",
133
+ status: "warn",
134
+ message: "Not created yet",
135
+ fix: "Will be created on first login",
136
+ });
137
+ }
138
+ // 7. Git
139
+ try {
140
+ const gitVersion = (0, child_process_1.execSync)("git --version", { encoding: "utf-8", timeout: 5000 }).trim();
141
+ checks.push({ name: "Git", status: "pass", message: gitVersion });
142
+ }
143
+ catch {
144
+ checks.push({
145
+ name: "Git",
146
+ status: "warn",
147
+ message: "Not found",
148
+ fix: "Install Git for full workspace context features",
149
+ });
150
+ }
151
+ // 8. Docker (optional)
152
+ try {
153
+ const dockerVersion = (0, child_process_1.execSync)("docker --version", { encoding: "utf-8", timeout: 5000 }).trim();
154
+ checks.push({ name: "Docker", status: "pass", message: `${dockerVersion} (sandbox available)` });
155
+ }
156
+ catch {
157
+ checks.push({ name: "Docker", status: "warn", message: "Not found (sandbox mode unavailable)" });
158
+ }
159
+ // 9. Memory dir
160
+ const memoryDir = path.join(os.homedir(), ".llmtune", "memory");
161
+ if (fs.existsSync(memoryDir)) {
162
+ const files = fs.readdirSync(memoryDir).filter(f => f.endsWith(".md"));
163
+ checks.push({ name: "Memory", status: "pass", message: `${files.length} memory files` });
164
+ }
165
+ else {
166
+ checks.push({ name: "Memory", status: "warn", message: "Not initialized" });
167
+ }
168
+ // 10. Check for updates
169
+ try {
170
+ const latest = (0, child_process_1.execSync)("npm view @llmtune/cli version", {
171
+ encoding: "utf-8",
172
+ timeout: 10000,
173
+ }).trim();
174
+ if (latest === version_1.CLI_VERSION) {
175
+ checks.push({ name: "Update", status: "pass", message: "Up to date" });
176
+ }
177
+ else {
178
+ checks.push({
179
+ name: "Update",
180
+ status: "warn",
181
+ message: `Latest: v${latest} (you have v${version_1.CLI_VERSION})`,
182
+ fix: "Run: npm update -g @llmtune/cli",
183
+ });
184
+ }
185
+ }
186
+ catch {
187
+ checks.push({ name: "Update", status: "pass", message: "Could not check (offline?)" });
188
+ }
189
+ // Print results
190
+ for (const check of checks) {
191
+ const icon = check.status === "pass" ? chalk_1.default.green("✓")
192
+ : check.status === "warn" ? chalk_1.default.yellow("⚠")
193
+ : chalk_1.default.red("✗");
194
+ const label = chalk_1.default.bold(check.name.padEnd(16));
195
+ console.log(` ${icon} ${label} ${chalk_1.default.dim(check.message)}`);
196
+ if (check.fix && check.status !== "pass") {
197
+ console.log(`${" ".repeat(22)}${chalk_1.default.dim("→ " + check.fix)}`);
198
+ }
199
+ }
200
+ const fails = checks.filter(c => c.status === "fail").length;
201
+ const warns = checks.filter(c => c.status === "warn").length;
202
+ const passes = checks.filter(c => c.status === "pass").length;
203
+ console.log("");
204
+ if (fails === 0) {
205
+ console.log(chalk_1.default.green(` ${passes} passed, ${warns} warnings`));
206
+ }
207
+ else {
208
+ console.log(chalk_1.default.red(` ${passes} passed, ${warns} warnings, ${fails} failed`));
209
+ }
210
+ console.log("");
211
+ }
212
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AA8BA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAkClD"}
@@ -79,12 +79,14 @@ async function loginCommand() {
79
79
  }
80
80
  const apiBase = await ask("API base URL", existingUrl);
81
81
  const model = await ask("Default model (leave empty for auto)", existingModel || undefined);
82
+ // FIX: Merge with existing config to preserve other keys (providers, preferences, etc.)
82
83
  (0, config_1.saveConfig)({
84
+ ...existing,
83
85
  apiKey: key,
84
86
  apiBase: apiBase.replace(/\/$/, ""),
85
87
  defaultModel: model || undefined,
86
88
  });
87
- console.log(chalk_1.default.green("\nConfiguration saved!"));
89
+ console.log(chalk_1.default.green("\n✓ Configuration saved!"));
88
90
  console.log(` API key: ${maskKey(key)}`);
89
91
  console.log(` API base: ${apiBase}`);
90
92
  console.log(` Model: ${model || "auto"}`);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../src/commands/marketplace.ts"],"names":[],"mappings":"AAMA,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCtF;AA6HD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEvD;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErE;AAED,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../src/commands/marketplace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAuDnD"}
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.modelsCommand = modelsCommand;
7
7
  const chalk_1 = __importDefault(require("chalk"));
8
- const cli_table3_1 = __importDefault(require("cli-table3"));
8
+ const markdown_1 = require("../utils/markdown");
9
9
  const config_1 = require("../auth/config");
10
10
  async function modelsCommand() {
11
11
  const apiKey = (0, config_1.getApiKey)();
@@ -28,22 +28,16 @@ async function modelsCommand() {
28
28
  process.exit(1);
29
29
  }
30
30
  const data = (await response.json());
31
+ console.log("");
31
32
  if (data.subscription) {
32
- console.log(chalk_1.default.cyan(`\nSubscription: ${data.subscription.planName}`));
33
- console.log(chalk_1.default.dim(`Daily quota: ${data.subscription.quotaDaily} requests\n`));
33
+ console.log(chalk_1.default.cyan(` Subscription: ${data.subscription.planName}`));
34
+ console.log(chalk_1.default.dim(` Daily quota: ${data.subscription.quotaDaily} requests`));
35
+ console.log("");
34
36
  }
35
- const table = new cli_table3_1.default({
36
- head: [
37
- chalk_1.default.cyan("Model ID"),
38
- chalk_1.default.cyan("Provider"),
39
- ],
40
- colWidths: [50, 20],
41
- });
42
- for (const model of data.data) {
43
- table.push([model.id, model.owned_by]);
44
- }
45
- console.log(table.toString());
46
- console.log(chalk_1.default.dim(`\n${data.data.length} models available`));
37
+ const headers = ["Model ID", "Provider"];
38
+ const rows = data.data.map((model) => [model.id, model.owned_by]);
39
+ console.log((0, markdown_1.renderTable)(headers, rows));
40
+ console.log(chalk_1.default.dim(`\n ${data.data.length} models available\n`));
47
41
  }
48
42
  catch (err) {
49
43
  console.log(chalk_1.default.red(`Error: ${err instanceof Error ? err.message : String(err)}`));
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":";;;;;AAIA,sCAuDC;AA3DD,kDAAyB;AACzB,gDAA+C;AAC/C,2CAAsD;AAE/C,KAAK,UAAU,aAAa;IACjC,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAA;IAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC,CAAA;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,mBAAU,GAAE,CAAA;IAE5B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,SAAS,CAAA;QACxD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;YACtC,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,EAAE;aAClC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YAClC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,2BAA2B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;YAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAYlC,CAAA;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;YACxE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,YAAY,CAAC,UAAU,WAAW,CAAC,CAAC,CAAA;YACjF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;QACjE,OAAO,CAAC,GAAG,CAAC,IAAA,sBAAW,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;QACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,qBAAqB,CAAC,CAAC,CAAA;IACtE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CACxE,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare function updateCommand(): Promise<void>;
2
+ /**
3
+ * Check for updates (cached, runs once per day). Returns latest version or null.
4
+ */
5
+ export declare function checkForUpdate(): string | null;
6
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAUA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA6BnD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CA2B9C"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.updateCommand = updateCommand;
40
+ exports.checkForUpdate = checkForUpdate;
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const child_process_1 = require("child_process");
43
+ const fs = __importStar(require("fs"));
44
+ const path = __importStar(require("path"));
45
+ const os = __importStar(require("os"));
46
+ const version_1 = require("../version");
47
+ const CACHE_FILE = path.join(os.homedir(), ".llmtune", "cache", "update-check.json");
48
+ const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000; // Once per day
49
+ async function updateCommand() {
50
+ console.log(chalk_1.default.dim("Checking for updates..."));
51
+ const current = version_1.CLI_VERSION;
52
+ const latest = fetchLatestVersion();
53
+ if (!latest) {
54
+ console.log(chalk_1.default.yellow("Could not check for updates. Are you online?"));
55
+ return;
56
+ }
57
+ if (latest === current) {
58
+ console.log(chalk_1.default.green(`\n Already on the latest version (v${current})\n`));
59
+ return;
60
+ }
61
+ console.log(chalk_1.default.yellow(`\n Update available: v${current} → v${latest}`));
62
+ console.log(chalk_1.default.dim(" Installing..."));
63
+ try {
64
+ (0, child_process_1.execSync)("npm install -g @llmtune/cli@latest", {
65
+ stdio: "inherit",
66
+ timeout: 120_000,
67
+ });
68
+ console.log(chalk_1.default.green(`\n Updated to v${latest}\n`));
69
+ }
70
+ catch {
71
+ console.log(chalk_1.default.red("\n Update failed. Try manually:"));
72
+ console.log(chalk_1.default.bold(" npm install -g @llmtune/cli@latest\n"));
73
+ }
74
+ }
75
+ /**
76
+ * Check for updates (cached, runs once per day). Returns latest version or null.
77
+ */
78
+ function checkForUpdate() {
79
+ try {
80
+ // Check cache first
81
+ try {
82
+ if (fs.existsSync(CACHE_FILE)) {
83
+ const cached = JSON.parse(fs.readFileSync(CACHE_FILE, "utf-8"));
84
+ if (Date.now() - cached.lastCheck < CHECK_INTERVAL_MS) {
85
+ return cached.latestVersion !== version_1.CLI_VERSION ? cached.latestVersion : null;
86
+ }
87
+ }
88
+ }
89
+ catch { /* ignore */ }
90
+ const latest = fetchLatestVersion();
91
+ if (!latest)
92
+ return null;
93
+ // Save to cache
94
+ const dir = path.dirname(CACHE_FILE);
95
+ if (!fs.existsSync(dir))
96
+ fs.mkdirSync(dir, { recursive: true });
97
+ fs.writeFileSync(CACHE_FILE, JSON.stringify({ lastCheck: Date.now(), latestVersion: latest }), "utf-8");
98
+ return latest !== version_1.CLI_VERSION ? latest : null;
99
+ }
100
+ catch {
101
+ return null;
102
+ }
103
+ }
104
+ function fetchLatestVersion() {
105
+ try {
106
+ return (0, child_process_1.execSync)("npm view @llmtune/cli version", {
107
+ encoding: "utf-8",
108
+ timeout: 10_000,
109
+ }).trim();
110
+ }
111
+ catch {
112
+ return null;
113
+ }
114
+ }
115
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-compact.d.ts","sourceRoot":"","sources":["../../src/compact/auto-compact.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,WAAW,CAAA;AAMnE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,YAAY,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAQR;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA0C9F;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,QAAQ,GAAG,MAAM,EAC1B,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAkBN"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-compact.js","sourceRoot":"","sources":["../../src/compact/auto-compact.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/compact/budget.ts"],"names":[],"mappings":"AAAA;;GAEG;AAuBH,eAAO,MAAM,uBAAuB,OAAO,CAAA;AAC3C,eAAO,MAAM,kBAAkB,IAAI,CAAA;AAEnC,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAmB3D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD"}