jinzd-ai-cli 0.4.273 → 0.4.276

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 (103) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +610 -610
  3. package/README.zh-CN.md +559 -559
  4. package/dist/agent-client-6GX6QQDU.js +0 -0
  5. package/dist/auth-PE3Z5OHS.js +0 -0
  6. package/dist/{batch-LOW3GM26.js → batch-F7SKIBI3.js} +2 -2
  7. package/dist/chat-index-2D5GK2DB.js +0 -0
  8. package/dist/chunk-23SJVOQD.js +0 -0
  9. package/dist/chunk-3FEZSLGI.js +0 -0
  10. package/dist/chunk-4BKXL7SM.js +0 -0
  11. package/dist/{chunk-AUEX6RNY.js → chunk-4KTK2OYU.js} +54 -21
  12. package/dist/{chunk-M3NXF4GD.js → chunk-4NH4Q7QK.js} +1 -1
  13. package/dist/chunk-5C76XDDF.js +0 -0
  14. package/dist/chunk-6YZEZFX5.js +0 -0
  15. package/dist/{chunk-FHXLAJJG.js → chunk-AOISQVXS.js} +1 -1
  16. package/dist/{chunk-FNLWPYP5.js → chunk-ATD2Y3PB.js} +1 -1
  17. package/dist/chunk-BXP6YZ2P.js +0 -0
  18. package/dist/chunk-CGDYO52A.js +0 -0
  19. package/dist/chunk-CKH4KQ4E.js +0 -0
  20. package/dist/{chunk-JT6UN5C6.js → chunk-DPTEC6AQ.js} +3 -0
  21. package/dist/{chunk-EDAUDILT.js → chunk-FLDYAXJR.js} +1 -1
  22. package/dist/chunk-GHWZVPUV.js +0 -0
  23. package/dist/chunk-GLSR2NR3.js +0 -0
  24. package/dist/chunk-HLWUDRBO.js +0 -0
  25. package/dist/chunk-HOSJZMQS.js +0 -0
  26. package/dist/chunk-IW3Q7AE5.js +0 -0
  27. package/dist/chunk-KHYD3WXE.js +0 -0
  28. package/dist/{chunk-Z3UXZ5EI.js → chunk-KWSGSSWN.js} +1 -1
  29. package/dist/{chunk-4FIDMC2K.js → chunk-MCKUGWOY.js} +69 -4
  30. package/dist/chunk-MX75TNE5.js +0 -0
  31. package/dist/{chunk-FN7DE4HA.js → chunk-MXPUOF5K.js} +4 -4
  32. package/dist/chunk-NR5U6LVG.js +0 -0
  33. package/dist/{chunk-ZWCQQZT5.js → chunk-NXAHXWPF.js} +1 -1
  34. package/dist/{chunk-R4YGDJPL.js → chunk-NXNXWM6H.js} +5 -5
  35. package/dist/chunk-NYNSYLFY.js +0 -0
  36. package/dist/{chunk-WSCZRQDR.js → chunk-OMBKLWLJ.js} +1 -1
  37. package/dist/chunk-RYQBBEMM.js +0 -0
  38. package/dist/{chunk-3OBY7WSS.js → chunk-TEXT4DAT.js} +7 -1
  39. package/dist/chunk-TU3L3PW7.js +0 -0
  40. package/dist/{chunk-LEK5WGKV.js → chunk-UNL7NR55.js} +1 -1
  41. package/dist/chunk-UUSRWSSX.js +0 -0
  42. package/dist/{chunk-T65VFCID.js → chunk-VF7DMSKF.js} +1 -1
  43. package/dist/chunk-VOIOUJXI.js +0 -0
  44. package/dist/{chunk-MTQBSOZW.js → chunk-WYDP2WEQ.js} +4 -4
  45. package/dist/chunk-XNFIYS7G.js +0 -0
  46. package/dist/{ci-C5YMQXCS.js → ci-VURFRMWQ.js} +6 -6
  47. package/dist/{ci-format-R6EMNOGZ.js → ci-format-AFJJIURF.js} +2 -2
  48. package/dist/config-command-E5DHADEV.js +0 -0
  49. package/dist/{constants-QJCNMBPJ.js → constants-WO7ERENL.js} +1 -1
  50. package/dist/{doctor-cli-5CM2I6OF.js → doctor-cli-BGGILTHE.js} +6 -6
  51. package/dist/electron-server.js +167 -57
  52. package/dist/file-checkpoint-NKBHGC7L.js +0 -0
  53. package/dist/git-context-EXOEHQSF.js +0 -0
  54. package/dist/{hub-7JBSZOSD.js → hub-Z73RLNJI.js} +1 -1
  55. package/dist/hub-server-RF6LURXY.js +0 -0
  56. package/dist/index.js +57 -43
  57. package/dist/indexer-VZETNE4H.js +0 -0
  58. package/dist/persist-PQM4BRI4.js +0 -0
  59. package/dist/{persistent-memory-4E53HW3U.js → persistent-memory-5QMARQJF.js} +2 -2
  60. package/dist/{persistent-memory-KYRY56PG.js → persistent-memory-CI544RLT.js} +2 -2
  61. package/dist/{pr-NPUGZSXB.js → pr-24REDMGV.js} +6 -6
  62. package/dist/project-trust-NKYHL3VZ.js +0 -0
  63. package/dist/{run-tests-5FHQ5IBX.js → run-tests-72VNZXNT.js} +2 -2
  64. package/dist/{run-tests-SU5CDQKF.js → run-tests-JJ3KOY5E.js} +2 -2
  65. package/dist/semantic-HLAE2O4F.js +0 -0
  66. package/dist/{server-ER36M7TR.js → server-JMXC2N3F.js} +40 -29
  67. package/dist/{server-77YS5NNN.js → server-QJHCJDA7.js} +6 -6
  68. package/dist/setup-wizard-S55ICNHH.js +0 -0
  69. package/dist/store-MWNHVGJT.js +0 -0
  70. package/dist/{task-orchestrator-56PQ7LGV.js → task-orchestrator-DJN36HP5.js} +6 -6
  71. package/dist/{usage-3YATXRFZ.js → usage-HXJVDETY.js} +3 -3
  72. package/dist/vector-store-BBDXB5IQ.js +0 -0
  73. package/dist/wasm/web-tree-sitter.wasm +0 -0
  74. package/dist/web/client/actions.js +104 -104
  75. package/dist/web/client/actions.js.br +0 -0
  76. package/dist/web/client/actions.js.gz +0 -0
  77. package/dist/web/client/api.js.gz +0 -0
  78. package/dist/web/client/app.js.gz +0 -0
  79. package/dist/web/client/dom.js.gz +0 -0
  80. package/dist/web/client/icon.svg +22 -22
  81. package/dist/web/client/icon.svg.br +0 -0
  82. package/dist/web/client/icon.svg.gz +0 -0
  83. package/dist/web/client/index.html +388 -388
  84. package/dist/web/client/index.html.br +0 -0
  85. package/dist/web/client/index.html.gz +0 -0
  86. package/dist/web/client/manifest.json +15 -15
  87. package/dist/web/client/sidebar-tabs.js.gz +0 -0
  88. package/dist/web/client/state.js.gz +0 -0
  89. package/dist/web/client/style.css +991 -991
  90. package/dist/web/client/style.css.br +0 -0
  91. package/dist/web/client/style.css.gz +0 -0
  92. package/dist/web/client/sw.js +85 -85
  93. package/dist/web/client/sw.js.br +0 -0
  94. package/dist/web/client/sw.js.gz +0 -0
  95. package/dist/web/client/templates.js.gz +0 -0
  96. package/dist/web/client/util.js.gz +0 -0
  97. package/dist/web/client/vendor/daisyui-full.min.css.gz +0 -0
  98. package/dist/web/client/vendor/github-dark.min.css.gz +0 -0
  99. package/dist/web/client/vendor/github.min.css.gz +0 -0
  100. package/dist/web/client/vendor/highlight.min.js.gz +0 -0
  101. package/dist/web/client/vendor/marked.min.js.gz +0 -0
  102. package/dist/web/client/vendor/tailwind.js.gz +0 -0
  103. package/package.json +178 -178
Binary file
Binary file
@@ -1,86 +1,86 @@
1
- /**
2
- * ai-cli PWA Service Worker
3
- * Caches app shell (HTML/CSS/JS/icons) for fast startup.
4
- * API calls and WebSocket are always network-first.
5
- */
6
-
7
- // v0.4.159: self-updating SW. Bumped to v3. The old v1/v2 service workers kept
8
- // serving a stale index.html/app.js (no Hub tab, broken Light theme) because a
9
- // new SW only "waits" — it never told the page to reload. Now: install →
10
- // skipWaiting (take over immediately), activate → evict old caches + claim +
11
- // postMessage('reload') so every open tab refreshes once onto the new version.
12
- // index.html / app.js are NEVER cached (always network), so a plain refresh
13
- // after upgrade is enough even before the SW turns over.
14
- const CACHE_NAME = 'aicli-v3';
15
-
16
- // HTML/JS that must always be fresh — never served from the SW cache, so an
17
- // upgraded server is reflected on the very next load. Other assets (vendored
18
- // CSS/JS, icons) are large + content-stable and fine to cache.
1
+ /**
2
+ * ai-cli PWA Service Worker
3
+ * Caches app shell (HTML/CSS/JS/icons) for fast startup.
4
+ * API calls and WebSocket are always network-first.
5
+ */
6
+
7
+ // v0.4.159: self-updating SW. Bumped to v3. The old v1/v2 service workers kept
8
+ // serving a stale index.html/app.js (no Hub tab, broken Light theme) because a
9
+ // new SW only "waits" — it never told the page to reload. Now: install →
10
+ // skipWaiting (take over immediately), activate → evict old caches + claim +
11
+ // postMessage('reload') so every open tab refreshes once onto the new version.
12
+ // index.html / app.js are NEVER cached (always network), so a plain refresh
13
+ // after upgrade is enough even before the SW turns over.
14
+ const CACHE_NAME = 'aicli-v3';
15
+
16
+ // HTML/JS that must always be fresh — never served from the SW cache, so an
17
+ // upgraded server is reflected on the very next load. Other assets (vendored
18
+ // CSS/JS, icons) are large + content-stable and fine to cache.
19
19
  const NEVER_CACHE = new Set(['/', '/index.html', '/state.js', '/util.js', '/dom.js', '/app.js', '/sidebar-tabs.js', '/templates.js', '/actions.js']);
20
-
21
- // App shell to precache (offline-capable startup). Deliberately EXCLUDES the
22
- // always-fresh HTML/JS in NEVER_CACHE — only large content-stable assets.
23
- const APP_SHELL = [
24
- '/style.css',
25
- '/manifest.json',
26
- '/icon.svg',
27
- '/icon-192.png',
28
- '/icon-512.png',
29
- '/vendor/daisyui-full.min.css',
30
- '/vendor/tailwind.js',
31
- '/vendor/marked.min.js',
32
- '/vendor/highlight.min.js',
33
- '/vendor/github-dark.min.css',
34
- '/vendor/github.min.css',
35
- ];
36
-
37
- self.addEventListener('install', (event) => {
38
- // Take over immediately rather than waiting for all old tabs to close.
39
- event.waitUntil(
40
- caches.open(CACHE_NAME)
41
- .then(cache => cache.addAll(APP_SHELL))
42
- .then(() => self.skipWaiting())
43
- );
44
- });
45
-
46
- self.addEventListener('activate', (event) => {
47
- event.waitUntil(
48
- caches.keys()
49
- .then(keys => Promise.all(keys.filter(k => k !== CACHE_NAME).map(k => caches.delete(k))))
50
- .then(() => self.clients.claim())
51
- .then(async () => {
52
- // Tell every open tab a new version is live so it can reload once.
53
- const clients = await self.clients.matchAll({ type: 'window' });
54
- for (const c of clients) c.postMessage({ type: 'sw-updated' });
55
- })
56
- );
57
- });
58
-
59
- self.addEventListener('fetch', (event) => {
60
- const url = new URL(event.request.url);
61
-
62
- // Never intercept API calls or WebSocket upgrades.
63
- if (url.pathname.startsWith('/api/') || event.request.headers.get('upgrade') === 'websocket') {
64
- return;
65
- }
66
-
67
- // Always-fresh HTML/JS: network-only, never touch the cache. Guarantees an
68
- // upgraded server shows up on the next load even if the SW hasn't turned over.
69
- if (NEVER_CACHE.has(url.pathname)) {
70
- event.respondWith(fetch(event.request).catch(() => caches.match(event.request)));
71
- return;
72
- }
73
-
74
- // Everything else: network-first with cache fallback (offline support).
75
- event.respondWith(
76
- fetch(event.request)
77
- .then(response => {
78
- if (response.ok) {
79
- const clone = response.clone();
80
- caches.open(CACHE_NAME).then(cache => cache.put(event.request, clone));
81
- }
82
- return response;
83
- })
84
- .catch(() => caches.match(event.request))
85
- );
86
- });
20
+
21
+ // App shell to precache (offline-capable startup). Deliberately EXCLUDES the
22
+ // always-fresh HTML/JS in NEVER_CACHE — only large content-stable assets.
23
+ const APP_SHELL = [
24
+ '/style.css',
25
+ '/manifest.json',
26
+ '/icon.svg',
27
+ '/icon-192.png',
28
+ '/icon-512.png',
29
+ '/vendor/daisyui-full.min.css',
30
+ '/vendor/tailwind.js',
31
+ '/vendor/marked.min.js',
32
+ '/vendor/highlight.min.js',
33
+ '/vendor/github-dark.min.css',
34
+ '/vendor/github.min.css',
35
+ ];
36
+
37
+ self.addEventListener('install', (event) => {
38
+ // Take over immediately rather than waiting for all old tabs to close.
39
+ event.waitUntil(
40
+ caches.open(CACHE_NAME)
41
+ .then(cache => cache.addAll(APP_SHELL))
42
+ .then(() => self.skipWaiting())
43
+ );
44
+ });
45
+
46
+ self.addEventListener('activate', (event) => {
47
+ event.waitUntil(
48
+ caches.keys()
49
+ .then(keys => Promise.all(keys.filter(k => k !== CACHE_NAME).map(k => caches.delete(k))))
50
+ .then(() => self.clients.claim())
51
+ .then(async () => {
52
+ // Tell every open tab a new version is live so it can reload once.
53
+ const clients = await self.clients.matchAll({ type: 'window' });
54
+ for (const c of clients) c.postMessage({ type: 'sw-updated' });
55
+ })
56
+ );
57
+ });
58
+
59
+ self.addEventListener('fetch', (event) => {
60
+ const url = new URL(event.request.url);
61
+
62
+ // Never intercept API calls or WebSocket upgrades.
63
+ if (url.pathname.startsWith('/api/') || event.request.headers.get('upgrade') === 'websocket') {
64
+ return;
65
+ }
66
+
67
+ // Always-fresh HTML/JS: network-only, never touch the cache. Guarantees an
68
+ // upgraded server shows up on the next load even if the SW hasn't turned over.
69
+ if (NEVER_CACHE.has(url.pathname)) {
70
+ event.respondWith(fetch(event.request).catch(() => caches.match(event.request)));
71
+ return;
72
+ }
73
+
74
+ // Everything else: network-first with cache fallback (offline support).
75
+ event.respondWith(
76
+ fetch(event.request)
77
+ .then(response => {
78
+ if (response.ok) {
79
+ const clone = response.clone();
80
+ caches.open(CACHE_NAME).then(cache => cache.put(event.request, clone));
81
+ }
82
+ return response;
83
+ })
84
+ .catch(() => caches.match(event.request))
85
+ );
86
+ });
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,190 +1,190 @@
1
- {
2
- "name": "jinzd-ai-cli",
3
- "version": "0.4.273",
4
- "description": "Cross-platform REPL-style AI CLI with multi-provider support",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "bin": {
8
- "aicli": "dist/index.js"
9
- },
10
- "publishConfig": {
11
- "access": "public",
12
- "registry": "https://registry.npmjs.org/"
13
- },
14
- "exports": {
15
- ".": "./dist/index.js"
16
- },
17
- "scripts": {
18
- "build": "tsup",
19
- "dev": "tsx src/index.ts",
20
- "test": "vitest run",
21
- "test:providers": "vitest run --config vitest.providers.config.ts tests/integration/provider-smoke.test.ts",
22
- "test:watch": "vitest",
23
- "test:coverage": "vitest run --coverage",
24
- "test:dist": "npm run build && vitest run tests/unit/cli/version-drift.test.ts",
25
- "typecheck": "tsc --noEmit",
26
- "lint": "eslint src --max-warnings=0",
27
- "smoke:dist": "node scripts/smoke-dist.mjs",
28
- "sbom": "cyclonedx-npm --output-file bom.json",
29
- "verify": "npm run lint && npm run typecheck && npm run build && npm run test:coverage && npm run smoke:dist",
30
- "prepublishOnly": "npm run verify",
31
- "patch": "node scripts/patch-sqlite.mjs",
32
- "pack:win": "npm run build && npm run patch && npx pkg dist-cjs/index.cjs --target node22-win-x64 --output release/ai-cli-win.exe --compress GZip --options no-deprecation",
33
- "pack:mac": "npm run build && npm run patch && npx pkg dist-cjs/index.cjs --target node22-macos-arm64 --output release/ai-cli-mac --compress GZip --options no-deprecation",
34
- "pack:mac-x64": "npm run build && npm run patch && npx pkg dist-cjs/index.cjs --target node22-macos-x64 --output release/ai-cli-mac-x64 --compress GZip --options no-deprecation",
35
- "pack:linux": "npm run build && npm run patch && npx pkg dist-cjs/index.cjs --target node22-linux-x64 --output release/ai-cli-linux --compress GZip --options no-deprecation",
36
- "pack:all": "npm run build && npm run patch && npx pkg dist-cjs/index.cjs --target node22-win-x64,node22-macos-arm64,node22-linux-x64 --out-path release --compress GZip --options no-deprecation",
37
- "electron": "npm run build && electron electron/main.cjs",
38
- "electron:dev": "electron electron/main.cjs",
39
- "electron:build-win": "npm run build && electron-builder --win",
40
- "electron:build-mac": "npm run build && electron-builder --mac",
41
- "electron:build-linux": "npm run build && electron-builder --linux",
42
- "electron:build-all": "npm run build && electron-builder --win --mac --linux",
43
- "release": "node scripts/release.mjs",
44
- "test:e2e-web": "node scripts/check-playwright-env.mjs && playwright test"
45
- },
46
- "pkg": {
47
- "scripts": "dist-cjs/index.cjs",
48
- "assets": [
49
- "dist/wasm/**/*"
50
- ],
51
- "targets": [
52
- "node22-win-x64",
53
- "node22-macos-arm64",
54
- "node22-linux-x64"
55
- ],
56
- "outputPath": "release",
57
- "options": "no-deprecation"
58
- },
59
- "engines": {
60
- "node": ">=20.18.1"
61
- },
62
- "files": [
1
+ {
2
+ "name": "jinzd-ai-cli",
3
+ "version": "0.4.276",
4
+ "description": "Cross-platform REPL-style AI CLI with multi-provider support",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "bin": {
8
+ "aicli": "dist/index.js"
9
+ },
10
+ "publishConfig": {
11
+ "access": "public",
12
+ "registry": "https://registry.npmjs.org/"
13
+ },
14
+ "exports": {
15
+ ".": "./dist/index.js"
16
+ },
17
+ "scripts": {
18
+ "build": "tsup",
19
+ "dev": "tsx src/index.ts",
20
+ "test": "vitest run",
21
+ "test:providers": "vitest run --config vitest.providers.config.ts tests/integration/provider-smoke.test.ts",
22
+ "test:watch": "vitest",
23
+ "test:coverage": "vitest run --coverage",
24
+ "test:dist": "npm run build && vitest run tests/unit/cli/version-drift.test.ts",
25
+ "typecheck": "tsc --noEmit",
26
+ "lint": "eslint src --max-warnings=0",
27
+ "smoke:dist": "node scripts/smoke-dist.mjs",
28
+ "sbom": "cyclonedx-npm --output-file bom.json",
29
+ "verify": "npm run lint && npm run typecheck && npm run build && npm run test:coverage && npm run smoke:dist",
30
+ "prepublishOnly": "npm run verify",
31
+ "patch": "node scripts/patch-sqlite.mjs",
32
+ "pack:win": "npm run build && npm run patch && npx pkg dist-cjs/index.cjs --target node22-win-x64 --output release/ai-cli-win.exe --compress GZip --options no-deprecation",
33
+ "pack:mac": "npm run build && npm run patch && npx pkg dist-cjs/index.cjs --target node22-macos-arm64 --output release/ai-cli-mac --compress GZip --options no-deprecation",
34
+ "pack:mac-x64": "npm run build && npm run patch && npx pkg dist-cjs/index.cjs --target node22-macos-x64 --output release/ai-cli-mac-x64 --compress GZip --options no-deprecation",
35
+ "pack:linux": "npm run build && npm run patch && npx pkg dist-cjs/index.cjs --target node22-linux-x64 --output release/ai-cli-linux --compress GZip --options no-deprecation",
36
+ "pack:all": "npm run build && npm run patch && npx pkg dist-cjs/index.cjs --target node22-win-x64,node22-macos-arm64,node22-linux-x64 --out-path release --compress GZip --options no-deprecation",
37
+ "electron": "npm run build && electron electron/main.cjs",
38
+ "electron:dev": "electron electron/main.cjs",
39
+ "electron:build-win": "npm run build && electron-builder --win",
40
+ "electron:build-mac": "npm run build && electron-builder --mac",
41
+ "electron:build-linux": "npm run build && electron-builder --linux",
42
+ "electron:build-all": "npm run build && electron-builder --win --mac --linux",
43
+ "release": "node scripts/release.mjs",
44
+ "test:e2e-web": "node scripts/check-playwright-env.mjs && playwright test"
45
+ },
46
+ "pkg": {
47
+ "scripts": "dist-cjs/index.cjs",
48
+ "assets": [
49
+ "dist/wasm/**/*"
50
+ ],
51
+ "targets": [
52
+ "node22-win-x64",
53
+ "node22-macos-arm64",
54
+ "node22-linux-x64"
55
+ ],
56
+ "outputPath": "release",
57
+ "options": "no-deprecation"
58
+ },
59
+ "engines": {
60
+ "node": ">=20.18.1"
61
+ },
62
+ "files": [
63
63
  "dist/*.js",
64
64
  "dist/web/",
65
65
  "dist/wasm/",
66
66
  "README.md",
67
67
  "README.zh-CN.md",
68
68
  "THIRD_PARTY_NOTICES.md"
69
- ],
70
- "keywords": [
71
- "ai",
72
- "cli",
73
- "claude",
74
- "gemini",
75
- "deepseek",
76
- "kimi",
77
- "chatbot",
78
- "repl"
79
- ],
80
- "repository": {
81
- "type": "git",
82
- "url": "git+https://github.com/jinzhengdong/ai-cli.git"
83
- },
84
- "bugs": {
85
- "url": "https://github.com/jinzhengdong/ai-cli/issues"
86
- },
87
- "homepage": "https://github.com/jinzhengdong/ai-cli#readme",
88
- "license": "MIT",
89
- "dependencies": {
90
- "@anthropic-ai/sdk": "^0.39.0",
91
- "@google/generative-ai": "^0.24.0",
92
- "@huggingface/transformers": "^4.2.0",
93
- "@inquirer/prompts": "^7.0.0",
94
- "chalk": "^5.4.1",
95
- "commander": "^13.0.0",
96
- "express": "^5.2.1",
97
- "openai": "^4.77.0",
98
- "tree-sitter-cpp": "^0.23.4",
99
- "tree-sitter-go": "^0.25.0",
100
- "tree-sitter-java": "^0.23.5",
101
- "tree-sitter-javascript": "^0.25.0",
102
- "tree-sitter-python": "^0.25.0",
103
- "tree-sitter-rust": "^0.24.0",
104
- "tree-sitter-typescript": "^0.23.2",
105
- "undici": "^7.29.0",
106
- "uuid": "^14.0.0",
107
- "web-tree-sitter": "^0.26.8",
108
- "ws": "^8.21.1",
109
- "zod": "^3.24.1"
110
- },
111
- "devDependencies": {
112
- "@cyclonedx/cyclonedx-npm": "6.0.0",
113
- "@playwright/test": "^1.60.0",
114
- "@types/express": "^5.0.6",
115
- "@types/node": "^22.10.0",
116
- "@types/uuid": "^10.0.0",
117
- "@types/ws": "^8.18.1",
118
- "@typescript-eslint/eslint-plugin": "^8.13.0",
119
- "@typescript-eslint/parser": "^8.13.0",
120
- "@vitest/coverage-v8": "3.2.7",
121
- "@yao-pkg/pkg": "^6.22.0",
69
+ ],
70
+ "keywords": [
71
+ "ai",
72
+ "cli",
73
+ "claude",
74
+ "gemini",
75
+ "deepseek",
76
+ "kimi",
77
+ "chatbot",
78
+ "repl"
79
+ ],
80
+ "repository": {
81
+ "type": "git",
82
+ "url": "git+https://github.com/jinzhengdong/ai-cli.git"
83
+ },
84
+ "bugs": {
85
+ "url": "https://github.com/jinzhengdong/ai-cli/issues"
86
+ },
87
+ "homepage": "https://github.com/jinzhengdong/ai-cli#readme",
88
+ "license": "MIT",
89
+ "dependencies": {
90
+ "@anthropic-ai/sdk": "^0.39.0",
91
+ "@google/generative-ai": "^0.24.0",
92
+ "@huggingface/transformers": "^4.2.0",
93
+ "@inquirer/prompts": "^7.0.0",
94
+ "chalk": "^5.4.1",
95
+ "commander": "^13.0.0",
96
+ "express": "^5.2.1",
97
+ "openai": "^4.77.0",
98
+ "tree-sitter-cpp": "^0.23.4",
99
+ "tree-sitter-go": "^0.25.0",
100
+ "tree-sitter-java": "^0.23.5",
101
+ "tree-sitter-javascript": "^0.25.0",
102
+ "tree-sitter-python": "^0.25.0",
103
+ "tree-sitter-rust": "^0.24.0",
104
+ "tree-sitter-typescript": "^0.23.2",
105
+ "undici": "^7.29.0",
106
+ "uuid": "^14.0.0",
107
+ "web-tree-sitter": "^0.26.8",
108
+ "ws": "^8.21.1",
109
+ "zod": "^3.24.1"
110
+ },
111
+ "devDependencies": {
112
+ "@cyclonedx/cyclonedx-npm": "6.0.0",
113
+ "@playwright/test": "^1.60.0",
114
+ "@types/express": "^5.0.6",
115
+ "@types/node": "^22.10.0",
116
+ "@types/uuid": "^10.0.0",
117
+ "@types/ws": "^8.18.1",
118
+ "@typescript-eslint/eslint-plugin": "^8.13.0",
119
+ "@typescript-eslint/parser": "^8.13.0",
120
+ "@vitest/coverage-v8": "3.2.7",
121
+ "@yao-pkg/pkg": "^6.22.0",
122
122
  "electron": "^41.10.4",
123
- "electron-builder": "^26.15.3",
124
- "eslint": "^9.13.0",
125
- "tsup": "^8.3.5",
126
- "tsx": "^4.19.2",
127
- "typescript": "^5.7.3",
128
- "vitest": "3.2.7"
129
- },
123
+ "electron-builder": "^26.15.3",
124
+ "eslint": "^9.13.0",
125
+ "tsup": "^8.3.5",
126
+ "tsx": "^4.19.2",
127
+ "typescript": "^5.7.3",
128
+ "vitest": "3.2.7"
129
+ },
130
130
  "overrides": {
131
131
  "adm-zip": "0.6.0",
132
132
  "esbuild": "0.28.1",
133
133
  "nanoid": "3.3.18",
134
134
  "sharp": "0.35.0"
135
- },
136
- "author": "jinzd",
137
- "build": {
138
- "appId": "com.jinzd.ai-cli",
139
- "productName": "ai-cli",
140
- "artifactName": "ai-cli-${os}-${arch}.${ext}",
141
- "extraMetadata": {
142
- "main": "electron/main.cjs"
143
- },
144
- "npmRebuild": false,
145
- "files": [
146
- "dist/**/*",
147
- "electron/**/*.cjs"
148
- ],
149
- "extraResources": [
150
- {
151
- "from": "dist/web/client",
152
- "to": "web-client"
153
- }
154
- ],
155
- "asar": true,
156
- "asarUnpack": [
157
- "dist/electron-server.js",
158
- "dist/chunk-*.js"
159
- ],
160
- "forceCodeSigning": false,
161
- "win": {
162
- "target": [
163
- "nsis",
164
- "portable"
165
- ],
166
- "icon": "src/web/client/icon-512.png",
167
- "signAndEditExecutable": false
168
- },
169
- "mac": {
170
- "target": [
171
- "dmg",
172
- "zip"
173
- ],
174
- "category": "public.app-category.developer-tools",
175
- "icon": "src/web/client/icon-512.png"
176
- },
177
- "linux": {
178
- "target": [
179
- "AppImage",
180
- "deb"
181
- ],
182
- "icon": "src/web/client/icon-512.png",
183
- "category": "Development"
184
- },
185
- "nsis": {
186
- "oneClick": false,
187
- "allowToChangeInstallationDirectory": true
188
- }
189
- }
190
- }
135
+ },
136
+ "author": "jinzd",
137
+ "build": {
138
+ "appId": "com.jinzd.ai-cli",
139
+ "productName": "ai-cli",
140
+ "artifactName": "ai-cli-${os}-${arch}.${ext}",
141
+ "extraMetadata": {
142
+ "main": "electron/main.cjs"
143
+ },
144
+ "npmRebuild": false,
145
+ "files": [
146
+ "dist/**/*",
147
+ "electron/**/*.cjs"
148
+ ],
149
+ "extraResources": [
150
+ {
151
+ "from": "dist/web/client",
152
+ "to": "web-client"
153
+ }
154
+ ],
155
+ "asar": true,
156
+ "asarUnpack": [
157
+ "dist/electron-server.js",
158
+ "dist/chunk-*.js"
159
+ ],
160
+ "forceCodeSigning": false,
161
+ "win": {
162
+ "target": [
163
+ "nsis",
164
+ "portable"
165
+ ],
166
+ "icon": "src/web/client/icon-512.png",
167
+ "signAndEditExecutable": false
168
+ },
169
+ "mac": {
170
+ "target": [
171
+ "dmg",
172
+ "zip"
173
+ ],
174
+ "category": "public.app-category.developer-tools",
175
+ "icon": "src/web/client/icon-512.png"
176
+ },
177
+ "linux": {
178
+ "target": [
179
+ "AppImage",
180
+ "deb"
181
+ ],
182
+ "icon": "src/web/client/icon-512.png",
183
+ "category": "Development"
184
+ },
185
+ "nsis": {
186
+ "oneClick": false,
187
+ "allowToChangeInstallationDirectory": true
188
+ }
189
+ }
190
+ }