@llmtune/cli 0.1.9 → 0.2.1

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 (173) 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 +27 -10
  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.map +1 -0
  14. package/dist/commands/balance.js.map +1 -0
  15. package/dist/commands/chat.d.ts.map +1 -0
  16. package/dist/commands/chat.js.map +1 -0
  17. package/dist/commands/config.d.ts.map +1 -0
  18. package/dist/commands/config.js.map +1 -0
  19. package/dist/commands/doctor.d.ts.map +1 -0
  20. package/dist/commands/doctor.js.map +1 -0
  21. package/dist/commands/login.d.ts.map +1 -0
  22. package/dist/commands/login.js.map +1 -0
  23. package/dist/commands/marketplace.d.ts.map +1 -0
  24. package/dist/commands/marketplace.js.map +1 -0
  25. package/dist/commands/models.d.ts.map +1 -0
  26. package/dist/commands/models.js.map +1 -0
  27. package/dist/commands/update.d.ts.map +1 -0
  28. package/dist/commands/update.js +14 -3
  29. package/dist/commands/update.js.map +1 -0
  30. package/dist/compact/auto-compact.d.ts.map +1 -0
  31. package/dist/compact/auto-compact.js.map +1 -0
  32. package/dist/compact/budget.d.ts.map +1 -0
  33. package/dist/compact/budget.js +18 -0
  34. package/dist/compact/budget.js.map +1 -0
  35. package/dist/compact/history-store.d.ts.map +1 -0
  36. package/dist/compact/history-store.js.map +1 -0
  37. package/dist/compact/microcompact.d.ts.map +1 -0
  38. package/dist/compact/microcompact.js.map +1 -0
  39. package/dist/compact/service.d.ts.map +1 -0
  40. package/dist/compact/service.js.map +1 -0
  41. package/dist/context/agent-identity.d.ts.map +1 -0
  42. package/dist/context/agent-identity.js +19 -0
  43. package/dist/context/agent-identity.js.map +1 -0
  44. package/dist/context/analyzer.d.ts.map +1 -0
  45. package/dist/context/analyzer.js.map +1 -0
  46. package/dist/context/builder.d.ts.map +1 -0
  47. package/dist/context/builder.js +7 -0
  48. package/dist/context/builder.js.map +1 -0
  49. package/dist/context/cache.d.ts.map +1 -0
  50. package/dist/context/cache.js.map +1 -0
  51. package/dist/context/git-context.d.ts.map +1 -0
  52. package/dist/context/git-context.js.map +1 -0
  53. package/dist/context/llmtune-md.d.ts.map +1 -0
  54. package/dist/context/llmtune-md.js.map +1 -0
  55. package/dist/context/project-detect.d.ts +26 -0
  56. package/dist/context/project-detect.d.ts.map +1 -0
  57. package/dist/context/project-detect.js +213 -0
  58. package/dist/context/project-detect.js.map +1 -0
  59. package/dist/context/workspace.d.ts.map +1 -0
  60. package/dist/context/workspace.js.map +1 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/marketplace/client.d.ts.map +1 -0
  64. package/dist/marketplace/client.js.map +1 -0
  65. package/dist/memory/files.d.ts.map +1 -0
  66. package/dist/memory/files.js.map +1 -0
  67. package/dist/memory/service.d.ts +2 -1
  68. package/dist/memory/service.d.ts.map +1 -0
  69. package/dist/memory/service.js +1 -0
  70. package/dist/memory/service.js.map +1 -0
  71. package/dist/repl/auto-save.d.ts +14 -0
  72. package/dist/repl/auto-save.d.ts.map +1 -0
  73. package/dist/repl/auto-save.js +101 -0
  74. package/dist/repl/auto-save.js.map +1 -0
  75. package/dist/repl/repl.d.ts.map +1 -0
  76. package/dist/repl/repl.js +264 -22
  77. package/dist/repl/repl.js.map +1 -0
  78. package/dist/skills/args.d.ts.map +1 -0
  79. package/dist/skills/args.js.map +1 -0
  80. package/dist/skills/frontmatter.d.ts.map +1 -0
  81. package/dist/skills/frontmatter.js.map +1 -0
  82. package/dist/skills/loader.d.ts.map +1 -0
  83. package/dist/skills/loader.js.map +1 -0
  84. package/dist/skills/registry.d.ts.map +1 -0
  85. package/dist/skills/registry.js.map +1 -0
  86. package/dist/skills/signing/signer.d.ts.map +1 -0
  87. package/dist/skills/signing/signer.js.map +1 -0
  88. package/dist/skills/trust.d.ts.map +1 -0
  89. package/dist/skills/trust.js.map +1 -0
  90. package/dist/telemetry/logger.d.ts.map +1 -0
  91. package/dist/telemetry/logger.js.map +1 -0
  92. package/dist/tools/permissions.d.ts.map +1 -0
  93. package/dist/tools/permissions.js +15 -9
  94. package/dist/tools/permissions.js.map +1 -0
  95. package/dist/tools/protocol.d.ts.map +1 -0
  96. package/dist/tools/protocol.js.map +1 -0
  97. package/dist/tools/registry.d.ts.map +1 -0
  98. package/dist/tools/registry.js.map +1 -0
  99. package/dist/tools/sandbox/docker.d.ts.map +1 -0
  100. package/dist/tools/sandbox/docker.js.map +1 -0
  101. package/dist/tools/sandbox/index.d.ts.map +1 -0
  102. package/dist/tools/sandbox/index.js.map +1 -0
  103. package/dist/tools/sanitize.d.ts.map +1 -0
  104. package/dist/tools/sanitize.js.map +1 -0
  105. package/dist/tools/tools/ask-user.d.ts.map +1 -0
  106. package/dist/tools/tools/ask-user.js.map +1 -0
  107. package/dist/tools/tools/bash.d.ts.map +1 -0
  108. package/dist/tools/tools/bash.js +52 -1
  109. package/dist/tools/tools/bash.js.map +1 -0
  110. package/dist/tools/tools/edit.d.ts.map +1 -0
  111. package/dist/tools/tools/edit.js +1 -0
  112. package/dist/tools/tools/edit.js.map +1 -0
  113. package/dist/tools/tools/glob.d.ts.map +1 -0
  114. package/dist/tools/tools/glob.js.map +1 -0
  115. package/dist/tools/tools/grep.d.ts.map +1 -0
  116. package/dist/tools/tools/grep.js +6 -8
  117. package/dist/tools/tools/grep.js.map +1 -0
  118. package/dist/tools/tools/read.d.ts.map +1 -0
  119. package/dist/tools/tools/read.js.map +1 -0
  120. package/dist/tools/tools/web-fetch.d.ts.map +1 -0
  121. package/dist/tools/tools/web-fetch.js.map +1 -0
  122. package/dist/tools/tools/write.d.ts.map +1 -0
  123. package/dist/tools/tools/write.js.map +1 -0
  124. package/dist/tools/validation.d.ts.map +1 -0
  125. package/dist/tools/validation.js.map +1 -0
  126. package/dist/ui/banner.d.ts.map +1 -0
  127. package/dist/ui/banner.js +9 -8
  128. package/dist/ui/banner.js.map +1 -0
  129. package/dist/utils/diff.d.ts +38 -0
  130. package/dist/utils/diff.d.ts.map +1 -0
  131. package/dist/utils/diff.js +184 -0
  132. package/dist/utils/diff.js.map +1 -0
  133. package/dist/utils/errors.d.ts +32 -0
  134. package/dist/utils/errors.d.ts.map +1 -0
  135. package/dist/utils/errors.js +72 -0
  136. package/dist/utils/errors.js.map +1 -0
  137. package/dist/utils/ignore.d.ts +22 -0
  138. package/dist/utils/ignore.d.ts.map +1 -0
  139. package/dist/utils/ignore.js +205 -0
  140. package/dist/utils/ignore.js.map +1 -0
  141. package/dist/utils/input-history.d.ts +37 -0
  142. package/dist/utils/input-history.d.ts.map +1 -0
  143. package/dist/utils/input-history.js +142 -0
  144. package/dist/utils/input-history.js.map +1 -0
  145. package/dist/utils/markdown.d.ts.map +1 -0
  146. package/dist/utils/markdown.js.map +1 -0
  147. package/dist/utils/rate-limit.d.ts +36 -0
  148. package/dist/utils/rate-limit.d.ts.map +1 -0
  149. package/dist/utils/rate-limit.js +71 -0
  150. package/dist/utils/rate-limit.js.map +1 -0
  151. package/dist/utils/retry.d.ts +26 -0
  152. package/dist/utils/retry.d.ts.map +1 -0
  153. package/dist/utils/retry.js +96 -0
  154. package/dist/utils/retry.js.map +1 -0
  155. package/dist/utils/spinner.d.ts +12 -0
  156. package/dist/utils/spinner.d.ts.map +1 -0
  157. package/dist/utils/spinner.js +51 -0
  158. package/dist/utils/spinner.js.map +1 -0
  159. package/dist/utils/stats.d.ts +29 -0
  160. package/dist/utils/stats.d.ts.map +1 -0
  161. package/dist/utils/stats.js +95 -0
  162. package/dist/utils/stats.js.map +1 -0
  163. package/dist/utils/streaming.d.ts.map +1 -0
  164. package/dist/utils/streaming.js.map +1 -0
  165. package/dist/utils/tokens.d.ts.map +1 -0
  166. package/dist/utils/tokens.js.map +1 -0
  167. package/dist/utils/undo-tracker.d.ts +37 -0
  168. package/dist/utils/undo-tracker.d.ts.map +1 -0
  169. package/dist/utils/undo-tracker.js +118 -0
  170. package/dist/utils/undo-tracker.js.map +1 -0
  171. package/dist/version.d.ts.map +1 -0
  172. package/dist/version.js.map +1 -0
  173. package/package.json +61 -45
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Undo tracker — keeps a stack of file snapshots before destructive edits.
3
+ * Enables /undo command to revert the last file change.
4
+ */
5
+ export interface FileSnapshot {
6
+ filePath: string;
7
+ content: string | null;
8
+ timestamp: number;
9
+ operation: "write" | "edit";
10
+ }
11
+ export declare class UndoTracker {
12
+ private stack;
13
+ /**
14
+ * Save a snapshot of the file before it gets modified.
15
+ * Call this BEFORE performing the write/edit.
16
+ */
17
+ push(filePath: string, operation: "write" | "edit"): void;
18
+ /**
19
+ * Undo the most recent file change. Returns info about what was undone,
20
+ * or null if there's nothing to undo.
21
+ */
22
+ undo(): FileSnapshot | null;
23
+ /**
24
+ * Peek at the most recent snapshot without popping it.
25
+ */
26
+ peek(): FileSnapshot | null;
27
+ /**
28
+ * Get the full undo history.
29
+ */
30
+ getHistory(): readonly FileSnapshot[];
31
+ /**
32
+ * Clear the undo stack.
33
+ */
34
+ clear(): void;
35
+ get size(): number;
36
+ }
37
+ //# sourceMappingURL=undo-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undo-tracker.d.ts","sourceRoot":"","sources":["../../src/utils/undo-tracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,OAAO,GAAG,MAAM,CAAA;CAC5B;AAID,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAqB;IAElC;;;OAGG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAuBzD;;;OAGG;IACH,IAAI,IAAI,YAAY,GAAG,IAAI;IAoB3B;;OAEG;IACH,IAAI,IAAI,YAAY,GAAG,IAAI;IAI3B;;OAEG;IACH,UAAU,IAAI,SAAS,YAAY,EAAE;IAIrC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ /**
3
+ * Undo tracker — keeps a stack of file snapshots before destructive edits.
4
+ * Enables /undo command to revert the last file change.
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.UndoTracker = void 0;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const MAX_UNDO_STACK = 50;
44
+ class UndoTracker {
45
+ stack = [];
46
+ /**
47
+ * Save a snapshot of the file before it gets modified.
48
+ * Call this BEFORE performing the write/edit.
49
+ */
50
+ push(filePath, operation) {
51
+ const resolved = path.resolve(filePath);
52
+ let content = null;
53
+ try {
54
+ content = fs.readFileSync(resolved, "utf-8");
55
+ }
56
+ catch {
57
+ // File doesn't exist yet — that's fine
58
+ }
59
+ this.stack.push({
60
+ filePath: resolved,
61
+ content,
62
+ timestamp: Date.now(),
63
+ operation,
64
+ });
65
+ // Trim old entries
66
+ if (this.stack.length > MAX_UNDO_STACK) {
67
+ this.stack = this.stack.slice(-MAX_UNDO_STACK);
68
+ }
69
+ }
70
+ /**
71
+ * Undo the most recent file change. Returns info about what was undone,
72
+ * or null if there's nothing to undo.
73
+ */
74
+ undo() {
75
+ const snapshot = this.stack.pop();
76
+ if (!snapshot)
77
+ return null;
78
+ try {
79
+ if (snapshot.content === null) {
80
+ // File was created — delete it
81
+ fs.unlinkSync(snapshot.filePath);
82
+ }
83
+ else {
84
+ // File was modified — restore previous content
85
+ fs.writeFileSync(snapshot.filePath, snapshot.content, "utf-8");
86
+ }
87
+ return snapshot;
88
+ }
89
+ catch (err) {
90
+ // Put it back on the stack if undo failed
91
+ this.stack.push(snapshot);
92
+ throw err;
93
+ }
94
+ }
95
+ /**
96
+ * Peek at the most recent snapshot without popping it.
97
+ */
98
+ peek() {
99
+ return this.stack.length > 0 ? this.stack[this.stack.length - 1] : null;
100
+ }
101
+ /**
102
+ * Get the full undo history.
103
+ */
104
+ getHistory() {
105
+ return this.stack;
106
+ }
107
+ /**
108
+ * Clear the undo stack.
109
+ */
110
+ clear() {
111
+ this.stack = [];
112
+ }
113
+ get size() {
114
+ return this.stack.length;
115
+ }
116
+ }
117
+ exports.UndoTracker = UndoTracker;
118
+ //# sourceMappingURL=undo-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undo-tracker.js","sourceRoot":"","sources":["../../src/utils/undo-tracker.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAwB;AACxB,2CAA4B;AAU5B,MAAM,cAAc,GAAG,EAAE,CAAA;AAEzB,MAAa,WAAW;IACd,KAAK,GAAmB,EAAE,CAAA;IAElC;;;OAGG;IACH,IAAI,CAAC,QAAgB,EAAE,SAA2B;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACvC,IAAI,OAAO,GAAkB,IAAI,CAAA;QAEjC,IAAI,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,QAAQ,EAAE,QAAQ;YAClB,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,SAAS;SACV,CAAC,CAAA;QAEF,mBAAmB;QACnB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QACjC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAE1B,IAAI,CAAC;YACH,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC9B,+BAA+B;gBAC/B,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAClC,CAAC;iBAAM,CAAC;gBACN,+CAA+C;gBAC/C,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAChE,CAAC;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,0CAA0C;YAC1C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACzB,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACzE,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACjB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;CACF;AA9ED,kCA8EC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAAsB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;;;;AAAA,mEAAyC;AAE5B,QAAA,WAAW,GAAG,sBAAW,CAAC,OAAO,CAAA"}
package/package.json CHANGED
@@ -1,45 +1,61 @@
1
- {
2
- "name": "@llmtune/cli",
3
- "version": "0.1.9",
4
- "description": "LLMTune CLI - AI CLI Agent powered by llmtune.io",
5
- "main": "dist/index.js",
6
- "bin": {
7
- "llmtune": "dist/index.js"
8
- },
9
- "scripts": {
10
- "build": "tsc",
11
- "dev": "tsx src/index.ts",
12
- "start": "node dist/index.js",
13
- "lint": "tsc --noEmit",
14
- "test": "npm run build && node scripts/smoke-test.js"
15
- },
16
- "keywords": [
17
- "llmtune",
18
- "cli",
19
- "ai",
20
- "agent",
21
- "coding"
22
- ],
23
- "license": "MIT",
24
- "engines": {
25
- "node": ">=18.0.0"
26
- },
27
- "dependencies": {
28
- "commander": "^13.1.0",
29
- "openai": "^4.78.0",
30
- "chalk": "^5.3.0",
31
- "ora": "^8.1.0",
32
- "@inquirer/prompts": "^7.3.0",
33
- "marked": "^15.0.0",
34
- "marked-terminal": "^7.3.0",
35
- "simple-git": "^3.27.0",
36
- "glob": "^11.0.0",
37
- "zod": "^3.24.0",
38
- "yaml": "^2.6.0"
39
- },
40
- "devDependencies": {
41
- "typescript": "^5.7.0",
42
- "tsx": "^4.19.0",
43
- "@types/node": "^22.10.0"
44
- }
45
- }
1
+ {
2
+ "name": "@llmtune/cli",
3
+ "version": "0.2.1",
4
+ "description": "LLMTune CLI - AI CLI Agent powered by llmtune.io",
5
+ "main": "dist/index.js",
6
+ "bin": {
7
+ "llmtune": "dist/index.js"
8
+ },
9
+ "scripts": {
10
+ "build": "tsc",
11
+ "dev": "tsx src/index.ts",
12
+ "start": "node dist/index.js",
13
+ "lint": "tsc --noEmit",
14
+ "test": "npm run build && node scripts/smoke-test.js"
15
+ },
16
+ "keywords": [
17
+ "llmtune",
18
+ "cli",
19
+ "ai",
20
+ "agent",
21
+ "coding"
22
+ ],
23
+ "author": "LLMTune",
24
+ "license": "MIT",
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "git+https://github.com/llmtune/llmtune-cli.git"
28
+ },
29
+ "homepage": "https://llmtune.io",
30
+ "bugs": {
31
+ "url": "https://github.com/llmtune/llmtune-cli/issues"
32
+ },
33
+ "engines": {
34
+ "node": ">=18.0.0"
35
+ },
36
+ "files": [
37
+ "dist/",
38
+ "README.md"
39
+ ],
40
+ "publishConfig": {
41
+ "access": "public"
42
+ },
43
+ "dependencies": {
44
+ "commander": "^13.1.0",
45
+ "openai": "^4.78.0",
46
+ "chalk": "^5.3.0",
47
+ "ora": "^8.1.0",
48
+ "@inquirer/prompts": "^7.3.0",
49
+ "marked": "^15.0.0",
50
+ "marked-terminal": "^7.3.0",
51
+ "simple-git": "^3.27.0",
52
+ "glob": "^11.0.0",
53
+ "zod": "^3.24.0",
54
+ "yaml": "^2.6.0"
55
+ },
56
+ "devDependencies": {
57
+ "typescript": "^5.7.0",
58
+ "tsx": "^4.19.0",
59
+ "@types/node": "^22.10.0"
60
+ }
61
+ }