@geminilight/mindos 0.6.77 → 0.6.78

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 (204) hide show
  1. package/_standalone/.mindos-build-version +1 -1
  2. package/_standalone/.next/BUILD_ID +1 -1
  3. package/_standalone/.next/app-path-routes-manifest.json +26 -26
  4. package/_standalone/.next/build-manifest.json +3 -3
  5. package/_standalone/.next/cache/.previewinfo +1 -1
  6. package/_standalone/.next/cache/.rscinfo +1 -1
  7. package/_standalone/.next/cache/config.json +3 -3
  8. package/_standalone/.next/prerender-manifest.json +3 -3
  9. package/_standalone/.next/react-loadable-manifest.json +4 -4
  10. package/_standalone/.next/server/app/.well-known/agent-card.json/route_client-reference-manifest.js +1 -1
  11. package/_standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  12. package/_standalone/.next/server/app/_global-error.html +2 -2
  13. package/_standalone/.next/server/app/_global-error.rsc +1 -1
  14. package/_standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  15. package/_standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  16. package/_standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  17. package/_standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  18. package/_standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  19. package/_standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  20. package/_standalone/.next/server/app/_not-found/page.js +1 -1
  21. package/_standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  22. package/_standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  23. package/_standalone/.next/server/app/agents/[agentKey]/page.js +1 -1
  24. package/_standalone/.next/server/app/agents/[agentKey]/page.js.nft.json +1 -1
  25. package/_standalone/.next/server/app/agents/[agentKey]/page_client-reference-manifest.js +1 -1
  26. package/_standalone/.next/server/app/agents/page.js +1 -1
  27. package/_standalone/.next/server/app/agents/page.js.nft.json +1 -1
  28. package/_standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  29. package/_standalone/.next/server/app/api/a2a/agents/route_client-reference-manifest.js +1 -1
  30. package/_standalone/.next/server/app/api/a2a/delegations/route_client-reference-manifest.js +1 -1
  31. package/_standalone/.next/server/app/api/a2a/discover/route_client-reference-manifest.js +1 -1
  32. package/_standalone/.next/server/app/api/a2a/route_client-reference-manifest.js +1 -1
  33. package/_standalone/.next/server/app/api/acp/config/route_client-reference-manifest.js +1 -1
  34. package/_standalone/.next/server/app/api/acp/detect/route_client-reference-manifest.js +1 -1
  35. package/_standalone/.next/server/app/api/acp/install/route_client-reference-manifest.js +1 -1
  36. package/_standalone/.next/server/app/api/acp/registry/route_client-reference-manifest.js +1 -1
  37. package/_standalone/.next/server/app/api/acp/session/route_client-reference-manifest.js +1 -1
  38. package/_standalone/.next/server/app/api/agent-activity/route_client-reference-manifest.js +1 -1
  39. package/_standalone/.next/server/app/api/agents/copy-skill/route.js.nft.json +1 -1
  40. package/_standalone/.next/server/app/api/agents/copy-skill/route_client-reference-manifest.js +1 -1
  41. package/_standalone/.next/server/app/api/agents/custom/detect/route_client-reference-manifest.js +1 -1
  42. package/_standalone/.next/server/app/api/agents/custom/route_client-reference-manifest.js +1 -1
  43. package/_standalone/.next/server/app/api/ask/route.js.nft.json +1 -1
  44. package/_standalone/.next/server/app/api/ask/route_client-reference-manifest.js +1 -1
  45. package/_standalone/.next/server/app/api/ask-sessions/route_client-reference-manifest.js +1 -1
  46. package/_standalone/.next/server/app/api/auth/route_client-reference-manifest.js +1 -1
  47. package/_standalone/.next/server/app/api/backlinks/route.js.nft.json +1 -1
  48. package/_standalone/.next/server/app/api/backlinks/route_client-reference-manifest.js +1 -1
  49. package/_standalone/.next/server/app/api/bootstrap/route.js.nft.json +1 -1
  50. package/_standalone/.next/server/app/api/bootstrap/route_client-reference-manifest.js +1 -1
  51. package/_standalone/.next/server/app/api/changes/route.js.nft.json +1 -1
  52. package/_standalone/.next/server/app/api/changes/route_client-reference-manifest.js +1 -1
  53. package/_standalone/.next/server/app/api/channels/verify/route_client-reference-manifest.js +1 -1
  54. package/_standalone/.next/server/app/api/connect/route_client-reference-manifest.js +1 -1
  55. package/_standalone/.next/server/app/api/embedding/route_client-reference-manifest.js +1 -1
  56. package/_standalone/.next/server/app/api/export/route.js.nft.json +1 -1
  57. package/_standalone/.next/server/app/api/export/route_client-reference-manifest.js +1 -1
  58. package/_standalone/.next/server/app/api/extract-pdf/route_client-reference-manifest.js +1 -1
  59. package/_standalone/.next/server/app/api/file/import/route.js.nft.json +1 -1
  60. package/_standalone/.next/server/app/api/file/import/route_client-reference-manifest.js +1 -1
  61. package/_standalone/.next/server/app/api/file/raw/route.js.nft.json +1 -1
  62. package/_standalone/.next/server/app/api/file/raw/route_client-reference-manifest.js +1 -1
  63. package/_standalone/.next/server/app/api/file/route.js.nft.json +1 -1
  64. package/_standalone/.next/server/app/api/file/route_client-reference-manifest.js +1 -1
  65. package/_standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  66. package/_standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  67. package/_standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  68. package/_standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  69. package/_standalone/.next/server/app/api/graph/route.js.nft.json +1 -1
  70. package/_standalone/.next/server/app/api/graph/route_client-reference-manifest.js +1 -1
  71. package/_standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  72. package/_standalone/.next/server/app/api/im/activity/route_client-reference-manifest.js +1 -1
  73. package/_standalone/.next/server/app/api/im/config/route_client-reference-manifest.js +1 -1
  74. package/_standalone/.next/server/app/api/im/feishu/long-connection/route.js.nft.json +1 -1
  75. package/_standalone/.next/server/app/api/im/feishu/long-connection/route_client-reference-manifest.js +1 -1
  76. package/_standalone/.next/server/app/api/im/status/route.js.nft.json +1 -1
  77. package/_standalone/.next/server/app/api/im/status/route_client-reference-manifest.js +1 -1
  78. package/_standalone/.next/server/app/api/im/test/route_client-reference-manifest.js +1 -1
  79. package/_standalone/.next/server/app/api/im/webhook/feishu/route.js.nft.json +1 -1
  80. package/_standalone/.next/server/app/api/im/webhook/feishu/route_client-reference-manifest.js +1 -1
  81. package/_standalone/.next/server/app/api/im/webhook-status/route.js.nft.json +1 -1
  82. package/_standalone/.next/server/app/api/im/webhook-status/route_client-reference-manifest.js +1 -1
  83. package/_standalone/.next/server/app/api/inbox/clip/route.js.nft.json +1 -1
  84. package/_standalone/.next/server/app/api/inbox/clip/route_client-reference-manifest.js +1 -1
  85. package/_standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
  86. package/_standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -1
  87. package/_standalone/.next/server/app/api/init/route.js.nft.json +1 -1
  88. package/_standalone/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  89. package/_standalone/.next/server/app/api/lint/route.js.nft.json +1 -1
  90. package/_standalone/.next/server/app/api/lint/route_client-reference-manifest.js +1 -1
  91. package/_standalone/.next/server/app/api/mcp/agents/route.js.nft.json +1 -1
  92. package/_standalone/.next/server/app/api/mcp/agents/route_client-reference-manifest.js +1 -1
  93. package/_standalone/.next/server/app/api/mcp/direct-tools/route_client-reference-manifest.js +1 -1
  94. package/_standalone/.next/server/app/api/mcp/install/route_client-reference-manifest.js +1 -1
  95. package/_standalone/.next/server/app/api/mcp/install-skill/route_client-reference-manifest.js +1 -1
  96. package/_standalone/.next/server/app/api/mcp/restart/route_client-reference-manifest.js +1 -1
  97. package/_standalone/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
  98. package/_standalone/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
  99. package/_standalone/.next/server/app/api/mcp/uninstall/route_client-reference-manifest.js +1 -1
  100. package/_standalone/.next/server/app/api/monitoring/route.js.nft.json +1 -1
  101. package/_standalone/.next/server/app/api/monitoring/route_client-reference-manifest.js +1 -1
  102. package/_standalone/.next/server/app/api/obsidian/compat-report/route_client-reference-manifest.js +1 -1
  103. package/_standalone/.next/server/app/api/obsidian/import/route_client-reference-manifest.js +1 -1
  104. package/_standalone/.next/server/app/api/recent-files/route.js.nft.json +1 -1
  105. package/_standalone/.next/server/app/api/recent-files/route_client-reference-manifest.js +1 -1
  106. package/_standalone/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  107. package/_standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  108. package/_standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  109. package/_standalone/.next/server/app/api/settings/list-models/route_client-reference-manifest.js +1 -1
  110. package/_standalone/.next/server/app/api/settings/reset-token/route_client-reference-manifest.js +1 -1
  111. package/_standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
  112. package/_standalone/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  113. package/_standalone/.next/server/app/api/settings/test-key/route.js +1 -1
  114. package/_standalone/.next/server/app/api/settings/test-key/route_client-reference-manifest.js +1 -1
  115. package/_standalone/.next/server/app/api/setup/check-path/route_client-reference-manifest.js +1 -1
  116. package/_standalone/.next/server/app/api/setup/check-port/route_client-reference-manifest.js +1 -1
  117. package/_standalone/.next/server/app/api/setup/generate-token/route_client-reference-manifest.js +1 -1
  118. package/_standalone/.next/server/app/api/setup/ls/route_client-reference-manifest.js +1 -1
  119. package/_standalone/.next/server/app/api/setup/route_client-reference-manifest.js +1 -1
  120. package/_standalone/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  121. package/_standalone/.next/server/app/api/space-overview/route.js +1 -1
  122. package/_standalone/.next/server/app/api/space-overview/route.js.nft.json +1 -1
  123. package/_standalone/.next/server/app/api/space-overview/route_client-reference-manifest.js +1 -1
  124. package/_standalone/.next/server/app/api/sync/route_client-reference-manifest.js +1 -1
  125. package/_standalone/.next/server/app/api/tree-version/route.js.nft.json +1 -1
  126. package/_standalone/.next/server/app/api/tree-version/route_client-reference-manifest.js +1 -1
  127. package/_standalone/.next/server/app/api/uninstall/route_client-reference-manifest.js +1 -1
  128. package/_standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  129. package/_standalone/.next/server/app/api/update-check/route_client-reference-manifest.js +1 -1
  130. package/_standalone/.next/server/app/api/update-status/route_client-reference-manifest.js +1 -1
  131. package/_standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  132. package/_standalone/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
  133. package/_standalone/.next/server/app/changelog/page.js +1 -1
  134. package/_standalone/.next/server/app/changelog/page.js.nft.json +1 -1
  135. package/_standalone/.next/server/app/changelog/page_client-reference-manifest.js +1 -1
  136. package/_standalone/.next/server/app/changes/page.js +1 -1
  137. package/_standalone/.next/server/app/changes/page.js.nft.json +1 -1
  138. package/_standalone/.next/server/app/changes/page_client-reference-manifest.js +1 -1
  139. package/_standalone/.next/server/app/echo/[segment]/page.js +1 -1
  140. package/_standalone/.next/server/app/echo/[segment]/page.js.nft.json +1 -1
  141. package/_standalone/.next/server/app/echo/[segment]/page_client-reference-manifest.js +1 -1
  142. package/_standalone/.next/server/app/echo/page.js +1 -1
  143. package/_standalone/.next/server/app/echo/page.js.nft.json +1 -1
  144. package/_standalone/.next/server/app/echo/page_client-reference-manifest.js +1 -1
  145. package/_standalone/.next/server/app/explore/page.js +1 -1
  146. package/_standalone/.next/server/app/explore/page.js.nft.json +1 -1
  147. package/_standalone/.next/server/app/explore/page_client-reference-manifest.js +1 -1
  148. package/_standalone/.next/server/app/help/page.js +1 -1
  149. package/_standalone/.next/server/app/help/page.js.nft.json +1 -1
  150. package/_standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
  151. package/_standalone/.next/server/app/inbox/history/page.js +1 -1
  152. package/_standalone/.next/server/app/inbox/history/page.js.nft.json +1 -1
  153. package/_standalone/.next/server/app/inbox/history/page_client-reference-manifest.js +1 -1
  154. package/_standalone/.next/server/app/login/page.js +1 -1
  155. package/_standalone/.next/server/app/login/page.js.nft.json +1 -1
  156. package/_standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  157. package/_standalone/.next/server/app/page.js +1 -1
  158. package/_standalone/.next/server/app/page.js.nft.json +1 -1
  159. package/_standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  160. package/_standalone/.next/server/app/setup/page.js +1 -1
  161. package/_standalone/.next/server/app/setup/page.js.nft.json +1 -1
  162. package/_standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  163. package/_standalone/.next/server/app/trash/page.js +3 -3
  164. package/_standalone/.next/server/app/trash/page.js.nft.json +1 -1
  165. package/_standalone/.next/server/app/trash/page_client-reference-manifest.js +1 -1
  166. package/_standalone/.next/server/app/view/[...path]/page.js +2 -2
  167. package/_standalone/.next/server/app/view/[...path]/page.js.nft.json +1 -1
  168. package/_standalone/.next/server/app/view/[...path]/page_client-reference-manifest.js +1 -1
  169. package/_standalone/.next/server/app-paths-manifest.json +26 -26
  170. package/_standalone/.next/server/chunks/1299.js +1 -1
  171. package/_standalone/.next/server/chunks/{5913.js → 2057.js} +2 -2
  172. package/_standalone/.next/server/chunks/4802.js +33 -33
  173. package/_standalone/.next/server/chunks/5299.js +1 -1
  174. package/_standalone/.next/server/chunks/6223.js +1 -1
  175. package/_standalone/.next/server/middleware-build-manifest.js +1 -1
  176. package/_standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  177. package/_standalone/.next/server/pages/500.html +2 -2
  178. package/_standalone/.next/server/server-reference-manifest.js +1 -1
  179. package/_standalone/.next/server/server-reference-manifest.json +1 -1
  180. package/_standalone/.next/static/chunks/{7011.223941e5ce187180.js → 1768.1e964db7834ecb4f.js} +2 -2
  181. package/_standalone/.next/static/chunks/{8954.b927d1b38b3c3878.js → 1937.e178266395104aa3.js} +1 -1
  182. package/_standalone/.next/static/chunks/{5358-ac2733e1433981be.js → 5358-4d1ef32068d304de.js} +1 -1
  183. package/_standalone/.next/static/chunks/app/{layout-d17d1ec3d728ab91.js → layout-5832614ed6a78167.js} +63 -63
  184. package/_standalone/.next/static/chunks/app/trash/page-21dc1c6b6490cae8.js +1 -0
  185. package/_standalone/.next/static/chunks/app/view/[...path]/{page-283e9e8b07c8949e.js → page-e5330470ce362641.js} +2 -2
  186. package/_standalone/.next/static/chunks/webpack-6a9916defe5b8b6d.js +1 -0
  187. package/_standalone/.next/trace +72 -72
  188. package/_standalone/__tests__/agent/model-config.test.ts +90 -0
  189. package/_standalone/__tests__/ask/ask-content-input-during-run.test.tsx +1 -1
  190. package/_standalone/components/ask/AskContent.tsx +1 -1
  191. package/_standalone/package-lock.json +2 -2
  192. package/_standalone/package.json +1 -1
  193. package/_standalone/tsconfig.tsbuildinfo +1 -1
  194. package/app/__tests__/agent/model-config.test.ts +90 -0
  195. package/app/__tests__/ask/ask-content-input-during-run.test.tsx +1 -1
  196. package/app/components/ask/AskContent.tsx +1 -1
  197. package/app/lib/agent/model.ts +2 -1
  198. package/app/lib/settings.ts +17 -5
  199. package/app/package.json +1 -1
  200. package/package.json +1 -1
  201. package/_standalone/.next/static/chunks/app/trash/page-9b2798b1cd1c53e3.js +0 -1
  202. package/_standalone/.next/static/chunks/webpack-8cda3cd172a0535c.js +0 -1
  203. /package/_standalone/.next/static/{xTjrONxqaI_ZUUPRRKA_X → yJdsYbp_76hvDnNeV7OCT}/_buildManifest.js +0 -0
  204. /package/_standalone/.next/static/{xTjrONxqaI_ZUUPRRKA_X → yJdsYbp_76hvDnNeV7OCT}/_ssgManifest.js +0 -0
@@ -0,0 +1,90 @@
1
+ import fs from 'fs';
2
+ import os from 'os';
3
+ import path from 'path';
4
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
5
+
6
+ describe('provider override resolution', () => {
7
+ let tempHome: string;
8
+ let configPath: string;
9
+
10
+ beforeEach(() => {
11
+ tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'mindos-provider-test-'));
12
+ const mindosDir = path.join(tempHome, '.mindos');
13
+ fs.mkdirSync(mindosDir, { recursive: true });
14
+ configPath = path.join(mindosDir, 'config.json');
15
+ vi.resetModules();
16
+ vi.spyOn(os, 'homedir').mockReturnValue(tempHome);
17
+ });
18
+
19
+ afterEach(() => {
20
+ vi.restoreAllMocks();
21
+ fs.rmSync(tempHome, { recursive: true, force: true });
22
+ });
23
+
24
+ it('prefers explicit overrides over active provider config', async () => {
25
+ fs.writeFileSync(configPath, JSON.stringify({
26
+ mindRoot: '/tmp/mind',
27
+ ai: {
28
+ activeProvider: 'p_anthropic',
29
+ providers: [
30
+ {
31
+ id: 'p_anthropic',
32
+ name: 'Anthropic',
33
+ protocol: 'anthropic',
34
+ apiKey: 'sk-ant-test',
35
+ model: 'claude-sonnet-4-6',
36
+ baseUrl: '',
37
+ },
38
+ ],
39
+ },
40
+ }), 'utf-8');
41
+
42
+ const { getModelConfig } = await import('@/lib/agent/model');
43
+ const result = getModelConfig({
44
+ provider: 'openai',
45
+ apiKey: 'venus-key',
46
+ model: 'venus-model',
47
+ baseUrl: 'http://v2.open.venus.oa.com/llmproxy',
48
+ });
49
+
50
+ expect(result.provider).toBe('openai');
51
+ expect(result.apiKey).toBe('venus-key');
52
+ expect(result.modelName).toBe('venus-model');
53
+ expect(result.baseUrl).toBe('http://v2.open.venus.oa.com/llmproxy');
54
+ expect(result.model.provider).toBe('openai');
55
+ expect(result.model.baseUrl).toBe('http://v2.open.venus.oa.com/llmproxy');
56
+ });
57
+
58
+ it('keeps the explicit provider override in getModelConfig', async () => {
59
+ fs.writeFileSync(configPath, JSON.stringify({
60
+ mindRoot: '/tmp/mind',
61
+ ai: {
62
+ activeProvider: 'p_anthropic',
63
+ providers: [
64
+ {
65
+ id: 'p_anthropic',
66
+ name: 'Anthropic',
67
+ protocol: 'anthropic',
68
+ apiKey: 'sk-ant-test',
69
+ model: 'claude-sonnet-4-6',
70
+ baseUrl: '',
71
+ },
72
+ ],
73
+ },
74
+ }), 'utf-8');
75
+
76
+ const { getModelConfig } = await import('@/lib/agent/model');
77
+ const result = getModelConfig({
78
+ provider: 'openai',
79
+ apiKey: 'venus-key',
80
+ model: 'venus-model',
81
+ baseUrl: 'http://v2.open.venus.oa.com/llmproxy',
82
+ });
83
+
84
+ expect(result.provider).toBe('openai');
85
+ expect(result.apiKey).toBe('venus-key');
86
+ expect(result.modelName).toBe('venus-model');
87
+ expect(result.baseUrl).toBe('http://v2.open.venus.oa.com/llmproxy');
88
+ expect(result.model.provider).toBe('openai');
89
+ });
90
+ });
@@ -198,7 +198,7 @@ describe('AskContent input behavior while running', () => {
198
198
  const submitButton = host.querySelector('button[type="submit"]') as HTMLButtonElement;
199
199
  expect(submitButton.disabled).toBe(true);
200
200
  expect(submitButton.title).toBe('Wait for uploaded files to finish processing before sending.');
201
- expect(host.textContent).toContain('Wait for uploaded files to finish processing before sending.');
201
+ expect(host.textContent).not.toContain('Wait for uploaded files to finish processing before sending.');
202
202
 
203
203
  const form = host.querySelector('form') as HTMLFormElement;
204
204
  await act(async () => {
@@ -183,7 +183,7 @@ export default function AskContent({ visible, currentFile, initialMessage, initi
183
183
  session.setSessionDefaultAcpAgent(agent);
184
184
  }, [session]);
185
185
  const hasLoadingAttachments = upload.localAttachments.some((f) => f.status === 'loading');
186
- const composerStatusMessage = upload.uploadError || imageUpload.imageError || (hasLoadingAttachments ? (t.ask.uploadsProcessing ?? 'Wait for uploaded files to finish processing before sending.') : '');
186
+ const composerStatusMessage = upload.uploadError || imageUpload.imageError || '';
187
187
 
188
188
  useEffect(() => {
189
189
  const handler = (e: Event) => {
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "wiki-app",
3
- "version": "0.6.77",
3
+ "version": "0.6.78",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "wiki-app",
9
- "version": "0.6.77",
9
+ "version": "0.6.78",
10
10
  "hasInstallScript": true,
11
11
  "dependencies": {
12
12
  "@agentclientprotocol/sdk": "^0.18.2",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wiki-app",
3
- "version": "0.6.77",
3
+ "version": "0.6.78",
4
4
  "private": true,
5
5
  "engines": {
6
6
  "node": ">=18"