@nanocollective/nanocoder 1.22.4 → 1.23.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 (308) hide show
  1. package/README.md +93 -30
  2. package/assets/nanocoder-vscode.vsix +0 -0
  3. package/dist/ai-sdk-client/chat/chat-handler.js +1 -1
  4. package/dist/ai-sdk-client/chat/chat-handler.js.map +1 -1
  5. package/dist/ai-sdk-client/chat/tool-processor.d.ts +1 -1
  6. package/dist/ai-sdk-client/chat/tool-processor.d.ts.map +1 -1
  7. package/dist/ai-sdk-client/chat/tool-processor.js +8 -3
  8. package/dist/ai-sdk-client/chat/tool-processor.js.map +1 -1
  9. package/dist/ai-sdk-client/error-handling/error-parser.d.ts.map +1 -1
  10. package/dist/ai-sdk-client/error-handling/error-parser.js +4 -1
  11. package/dist/ai-sdk-client/error-handling/error-parser.js.map +1 -1
  12. package/dist/app/App.d.ts.map +1 -1
  13. package/dist/app/App.js +106 -11
  14. package/dist/app/App.js.map +1 -1
  15. package/dist/app/components/chat-input.d.ts +6 -1
  16. package/dist/app/components/chat-input.d.ts.map +1 -1
  17. package/dist/app/components/chat-input.js +9 -7
  18. package/dist/app/components/chat-input.js.map +1 -1
  19. package/dist/app/utils/app-util.d.ts +5 -0
  20. package/dist/app/utils/app-util.d.ts.map +1 -1
  21. package/dist/app/utils/app-util.js +265 -0
  22. package/dist/app/utils/app-util.js.map +1 -1
  23. package/dist/client-factory.d.ts.map +1 -1
  24. package/dist/client-factory.js +3 -2
  25. package/dist/client-factory.js.map +1 -1
  26. package/dist/commands/context-max.d.ts +15 -0
  27. package/dist/commands/context-max.d.ts.map +1 -0
  28. package/dist/commands/context-max.js +22 -0
  29. package/dist/commands/context-max.js.map +1 -0
  30. package/dist/commands/custom-commands.d.ts.map +1 -1
  31. package/dist/commands/custom-commands.js +88 -4
  32. package/dist/commands/custom-commands.js.map +1 -1
  33. package/dist/commands/exit.d.ts.map +1 -1
  34. package/dist/commands/exit.js +5 -8
  35. package/dist/commands/exit.js.map +1 -1
  36. package/dist/commands/ide.d.ts +3 -0
  37. package/dist/commands/ide.d.ts.map +1 -0
  38. package/dist/commands/ide.js +10 -0
  39. package/dist/commands/ide.js.map +1 -0
  40. package/dist/commands/index.d.ts +3 -0
  41. package/dist/commands/index.d.ts.map +1 -1
  42. package/dist/commands/index.js +3 -0
  43. package/dist/commands/index.js.map +1 -1
  44. package/dist/commands/schedule.d.ts +3 -0
  45. package/dist/commands/schedule.d.ts.map +1 -0
  46. package/dist/commands/schedule.js +177 -0
  47. package/dist/commands/schedule.js.map +1 -0
  48. package/dist/commands/usage.d.ts.map +1 -1
  49. package/dist/commands/usage.js +4 -3
  50. package/dist/commands/usage.js.map +1 -1
  51. package/dist/components/development-mode-indicator.d.ts +3 -2
  52. package/dist/components/development-mode-indicator.d.ts.map +1 -1
  53. package/dist/components/development-mode-indicator.js +23 -9
  54. package/dist/components/development-mode-indicator.js.map +1 -1
  55. package/dist/components/ide-selector.d.ts +7 -0
  56. package/dist/components/ide-selector.d.ts.map +1 -0
  57. package/dist/components/ide-selector.js +17 -0
  58. package/dist/components/ide-selector.js.map +1 -0
  59. package/dist/components/question-prompt.d.ts +8 -0
  60. package/dist/components/question-prompt.d.ts.map +1 -0
  61. package/dist/components/question-prompt.js +58 -0
  62. package/dist/components/question-prompt.js.map +1 -0
  63. package/dist/components/scheduler-view.d.ts +14 -0
  64. package/dist/components/scheduler-view.d.ts.map +1 -0
  65. package/dist/components/scheduler-view.js +17 -0
  66. package/dist/components/scheduler-view.js.map +1 -0
  67. package/dist/components/text-input.d.ts +13 -0
  68. package/dist/components/text-input.d.ts.map +1 -0
  69. package/dist/components/text-input.js +175 -0
  70. package/dist/components/text-input.js.map +1 -0
  71. package/dist/components/user-input.d.ts +2 -1
  72. package/dist/components/user-input.d.ts.map +1 -1
  73. package/dist/components/user-input.js +8 -15
  74. package/dist/components/user-input.js.map +1 -1
  75. package/dist/config/themes.d.ts.map +1 -1
  76. package/dist/config/themes.js +20 -0
  77. package/dist/config/themes.js.map +1 -1
  78. package/dist/constants.d.ts +2 -0
  79. package/dist/constants.d.ts.map +1 -1
  80. package/dist/constants.js +55 -0
  81. package/dist/constants.js.map +1 -1
  82. package/dist/custom-commands/command-integration.d.ts +24 -0
  83. package/dist/custom-commands/command-integration.d.ts.map +1 -0
  84. package/dist/custom-commands/command-integration.js +68 -0
  85. package/dist/custom-commands/command-integration.js.map +1 -0
  86. package/dist/custom-commands/executor.d.ts.map +1 -1
  87. package/dist/custom-commands/executor.js +12 -2
  88. package/dist/custom-commands/executor.js.map +1 -1
  89. package/dist/custom-commands/loader.d.ts +33 -5
  90. package/dist/custom-commands/loader.d.ts.map +1 -1
  91. package/dist/custom-commands/loader.js +191 -18
  92. package/dist/custom-commands/loader.js.map +1 -1
  93. package/dist/custom-commands/parser.d.ts.map +1 -1
  94. package/dist/custom-commands/parser.js +115 -48
  95. package/dist/custom-commands/parser.js.map +1 -1
  96. package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts +1 -1
  97. package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts.map +1 -1
  98. package/dist/hooks/chat-handler/conversation/conversation-loop.js +37 -5
  99. package/dist/hooks/chat-handler/conversation/conversation-loop.js.map +1 -1
  100. package/dist/hooks/chat-handler/conversation/tool-executor.js +1 -1
  101. package/dist/hooks/chat-handler/conversation/tool-executor.js.map +1 -1
  102. package/dist/hooks/chat-handler/types.d.ts +3 -1
  103. package/dist/hooks/chat-handler/types.d.ts.map +1 -1
  104. package/dist/hooks/chat-handler/useChatHandler.d.ts +1 -1
  105. package/dist/hooks/chat-handler/useChatHandler.d.ts.map +1 -1
  106. package/dist/hooks/chat-handler/useChatHandler.js +13 -5
  107. package/dist/hooks/chat-handler/useChatHandler.js.map +1 -1
  108. package/dist/hooks/useAppHandlers.d.ts +2 -0
  109. package/dist/hooks/useAppHandlers.d.ts.map +1 -1
  110. package/dist/hooks/useAppHandlers.js +5 -0
  111. package/dist/hooks/useAppHandlers.js.map +1 -1
  112. package/dist/hooks/useAppInitialization.d.ts.map +1 -1
  113. package/dist/hooks/useAppInitialization.js +4 -1
  114. package/dist/hooks/useAppInitialization.js.map +1 -1
  115. package/dist/hooks/useAppState.d.ts +15 -0
  116. package/dist/hooks/useAppState.d.ts.map +1 -1
  117. package/dist/hooks/useAppState.js +23 -0
  118. package/dist/hooks/useAppState.js.map +1 -1
  119. package/dist/hooks/useContextPercentage.d.ts +17 -0
  120. package/dist/hooks/useContextPercentage.d.ts.map +1 -0
  121. package/dist/hooks/useContextPercentage.js +71 -0
  122. package/dist/hooks/useContextPercentage.js.map +1 -0
  123. package/dist/hooks/useModeHandlers.d.ts +4 -1
  124. package/dist/hooks/useModeHandlers.d.ts.map +1 -1
  125. package/dist/hooks/useModeHandlers.js +11 -1
  126. package/dist/hooks/useModeHandlers.js.map +1 -1
  127. package/dist/hooks/useNonInteractiveMode.d.ts.map +1 -1
  128. package/dist/hooks/useNonInteractiveMode.js +3 -1
  129. package/dist/hooks/useNonInteractiveMode.js.map +1 -1
  130. package/dist/hooks/useSchedulerMode.d.ts +30 -0
  131. package/dist/hooks/useSchedulerMode.d.ts.map +1 -0
  132. package/dist/hooks/useSchedulerMode.js +99 -0
  133. package/dist/hooks/useSchedulerMode.js.map +1 -0
  134. package/dist/lsp/lsp-manager.d.ts.map +1 -1
  135. package/dist/lsp/lsp-manager.js +10 -0
  136. package/dist/lsp/lsp-manager.js.map +1 -1
  137. package/dist/mcp/mcp-client.d.ts.map +1 -1
  138. package/dist/mcp/mcp-client.js +20 -1
  139. package/dist/mcp/mcp-client.js.map +1 -1
  140. package/dist/models/index.d.ts +1 -1
  141. package/dist/models/index.d.ts.map +1 -1
  142. package/dist/models/index.js +1 -1
  143. package/dist/models/index.js.map +1 -1
  144. package/dist/models/models-dev-client.d.ts +8 -1
  145. package/dist/models/models-dev-client.d.ts.map +1 -1
  146. package/dist/models/models-dev-client.js +116 -88
  147. package/dist/models/models-dev-client.js.map +1 -1
  148. package/dist/schedule/cron.d.ts +14 -0
  149. package/dist/schedule/cron.d.ts.map +1 -0
  150. package/dist/schedule/cron.js +107 -0
  151. package/dist/schedule/cron.js.map +1 -0
  152. package/dist/schedule/index.d.ts +4 -0
  153. package/dist/schedule/index.d.ts.map +1 -0
  154. package/dist/schedule/index.js +4 -0
  155. package/dist/schedule/index.js.map +1 -0
  156. package/dist/schedule/runner.d.ts +42 -0
  157. package/dist/schedule/runner.d.ts.map +1 -0
  158. package/dist/schedule/runner.js +136 -0
  159. package/dist/schedule/runner.js.map +1 -0
  160. package/dist/schedule/storage.d.ts +9 -0
  161. package/dist/schedule/storage.d.ts.map +1 -0
  162. package/dist/schedule/storage.js +68 -0
  163. package/dist/schedule/storage.js.map +1 -0
  164. package/dist/schedule/types.d.ts +24 -0
  165. package/dist/schedule/types.d.ts.map +1 -0
  166. package/dist/schedule/types.js +2 -0
  167. package/dist/schedule/types.js.map +1 -0
  168. package/dist/services/bash-executor.d.ts.map +1 -1
  169. package/dist/services/bash-executor.js +5 -0
  170. package/dist/services/bash-executor.js.map +1 -1
  171. package/dist/tool-calling/json-parser.d.ts +7 -3
  172. package/dist/tool-calling/json-parser.d.ts.map +1 -1
  173. package/dist/tool-calling/json-parser.js +59 -23
  174. package/dist/tool-calling/json-parser.js.map +1 -1
  175. package/dist/tool-calling/tool-parser.d.ts +2 -2
  176. package/dist/tool-calling/tool-parser.d.ts.map +1 -1
  177. package/dist/tool-calling/tool-parser.js +27 -23
  178. package/dist/tool-calling/tool-parser.js.map +1 -1
  179. package/dist/tool-calling/xml-parser.d.ts +8 -4
  180. package/dist/tool-calling/xml-parser.d.ts.map +1 -1
  181. package/dist/tool-calling/xml-parser.js +15 -5
  182. package/dist/tool-calling/xml-parser.js.map +1 -1
  183. package/dist/tools/ask-question.d.ts +3 -0
  184. package/dist/tools/ask-question.d.ts.map +1 -0
  185. package/dist/tools/ask-question.js +66 -0
  186. package/dist/tools/ask-question.js.map +1 -0
  187. package/dist/tools/execute-bash.js +1 -1
  188. package/dist/tools/execute-bash.js.map +1 -1
  189. package/dist/tools/file-ops/copy-file.d.ts +3 -0
  190. package/dist/tools/file-ops/copy-file.d.ts.map +1 -0
  191. package/dist/tools/file-ops/copy-file.js +126 -0
  192. package/dist/tools/file-ops/copy-file.js.map +1 -0
  193. package/dist/tools/file-ops/create-directory.d.ts +3 -0
  194. package/dist/tools/file-ops/create-directory.d.ts.map +1 -0
  195. package/dist/tools/file-ops/create-directory.js +76 -0
  196. package/dist/tools/file-ops/create-directory.js.map +1 -0
  197. package/dist/tools/file-ops/delete-file.d.ts +3 -0
  198. package/dist/tools/file-ops/delete-file.d.ts.map +1 -0
  199. package/dist/tools/file-ops/delete-file.js +88 -0
  200. package/dist/tools/file-ops/delete-file.js.map +1 -0
  201. package/dist/tools/file-ops/index.d.ts +3 -0
  202. package/dist/tools/file-ops/index.d.ts.map +1 -0
  203. package/dist/tools/file-ops/index.js +8 -0
  204. package/dist/tools/file-ops/index.js.map +1 -0
  205. package/dist/tools/file-ops/move-file.d.ts +3 -0
  206. package/dist/tools/file-ops/move-file.d.ts.map +1 -0
  207. package/dist/tools/file-ops/move-file.js +126 -0
  208. package/dist/tools/file-ops/move-file.js.map +1 -0
  209. package/dist/tools/file-ops/string-replace.d.ts +3 -0
  210. package/dist/tools/file-ops/string-replace.d.ts.map +1 -0
  211. package/dist/tools/{string-replace.js → file-ops/string-replace.js} +17 -17
  212. package/dist/tools/file-ops/string-replace.js.map +1 -0
  213. package/dist/tools/file-ops/write-file.d.ts +3 -0
  214. package/dist/tools/file-ops/write-file.d.ts.map +1 -0
  215. package/dist/tools/{write-file.js → file-ops/write-file.js} +31 -17
  216. package/dist/tools/file-ops/write-file.js.map +1 -0
  217. package/dist/tools/git/git-reset.js +1 -1
  218. package/dist/tools/git/git-reset.js.map +1 -1
  219. package/dist/tools/git/index.js +3 -3
  220. package/dist/tools/git/index.js.map +1 -1
  221. package/dist/tools/git/utils.d.ts +4 -0
  222. package/dist/tools/git/utils.d.ts.map +1 -1
  223. package/dist/tools/git/utils.js +12 -0
  224. package/dist/tools/git/utils.js.map +1 -1
  225. package/dist/tools/index.d.ts.map +1 -1
  226. package/dist/tools/index.js +8 -2
  227. package/dist/tools/index.js.map +1 -1
  228. package/dist/tools/search-file-contents.d.ts.map +1 -1
  229. package/dist/tools/search-file-contents.js +59 -10
  230. package/dist/tools/search-file-contents.js.map +1 -1
  231. package/dist/tools/tool-manager.d.ts.map +1 -1
  232. package/dist/tools/tool-manager.js +9 -0
  233. package/dist/tools/tool-manager.js.map +1 -1
  234. package/dist/types/app.d.ts +2 -0
  235. package/dist/types/app.d.ts.map +1 -1
  236. package/dist/types/commands.d.ts +20 -0
  237. package/dist/types/commands.d.ts.map +1 -1
  238. package/dist/types/core.d.ts +2 -1
  239. package/dist/types/core.d.ts.map +1 -1
  240. package/dist/types/core.js +7 -0
  241. package/dist/types/core.js.map +1 -1
  242. package/dist/types/ui.d.ts +1 -1
  243. package/dist/types/ui.d.ts.map +1 -1
  244. package/dist/utils/auto-compact.d.ts.map +1 -1
  245. package/dist/utils/auto-compact.js +13 -7
  246. package/dist/utils/auto-compact.js.map +1 -1
  247. package/dist/utils/file-content-loader.d.ts.map +1 -1
  248. package/dist/utils/file-content-loader.js +58 -1
  249. package/dist/utils/file-content-loader.js.map +1 -1
  250. package/dist/utils/logging/index.d.ts.map +1 -1
  251. package/dist/utils/logging/index.js +18 -30
  252. package/dist/utils/logging/index.js.map +1 -1
  253. package/dist/utils/question-queue.d.ts +15 -0
  254. package/dist/utils/question-queue.d.ts.map +1 -0
  255. package/dist/utils/question-queue.js +25 -0
  256. package/dist/utils/question-queue.js.map +1 -0
  257. package/dist/utils/response-formatter.d.ts +108 -0
  258. package/dist/utils/response-formatter.d.ts.map +1 -0
  259. package/dist/utils/response-formatter.js +387 -0
  260. package/dist/utils/response-formatter.js.map +1 -0
  261. package/dist/utils/shutdown/index.d.ts +7 -0
  262. package/dist/utils/shutdown/index.d.ts.map +1 -0
  263. package/dist/utils/shutdown/index.js +6 -0
  264. package/dist/utils/shutdown/index.js.map +1 -0
  265. package/dist/utils/shutdown/shutdown-manager.d.ts +19 -0
  266. package/dist/utils/shutdown/shutdown-manager.d.ts.map +1 -0
  267. package/dist/utils/shutdown/shutdown-manager.js +100 -0
  268. package/dist/utils/shutdown/shutdown-manager.js.map +1 -0
  269. package/dist/utils/shutdown/types.d.ts +9 -0
  270. package/dist/utils/shutdown/types.d.ts.map +1 -0
  271. package/dist/utils/shutdown/types.js +2 -0
  272. package/dist/utils/shutdown/types.js.map +1 -0
  273. package/dist/utils/type-helpers.d.ts +140 -0
  274. package/dist/utils/type-helpers.d.ts.map +1 -0
  275. package/dist/utils/type-helpers.js +220 -0
  276. package/dist/utils/type-helpers.js.map +1 -0
  277. package/dist/utils/url-utils.d.ts +6 -0
  278. package/dist/utils/url-utils.d.ts.map +1 -0
  279. package/dist/utils/url-utils.js +22 -0
  280. package/dist/utils/url-utils.js.map +1 -0
  281. package/dist/vscode/vscode-server.d.ts.map +1 -1
  282. package/dist/vscode/vscode-server.js +10 -0
  283. package/dist/vscode/vscode-server.js.map +1 -1
  284. package/dist/wizards/steps/mcp-step.js +1 -1
  285. package/dist/wizards/steps/mcp-step.js.map +1 -1
  286. package/dist/wizards/steps/provider-step.js +1 -1
  287. package/dist/wizards/steps/provider-step.js.map +1 -1
  288. package/dist/wizards/templates/mcp-templates.d.ts.map +1 -1
  289. package/dist/wizards/templates/mcp-templates.js +8 -6
  290. package/dist/wizards/templates/mcp-templates.js.map +1 -1
  291. package/dist/wizards/templates/provider-templates.d.ts.map +1 -1
  292. package/dist/wizards/templates/provider-templates.js +35 -2
  293. package/dist/wizards/templates/provider-templates.js.map +1 -1
  294. package/dist/wizards/validation.d.ts.map +1 -1
  295. package/dist/wizards/validation.js +2 -3
  296. package/dist/wizards/validation.js.map +1 -1
  297. package/package.json +9 -18
  298. package/source/app/prompts/main-prompt.md +21 -3
  299. package/dist/hooks/chat-handler/utils/context-checker.d.ts +0 -15
  300. package/dist/hooks/chat-handler/utils/context-checker.d.ts.map +0 -1
  301. package/dist/hooks/chat-handler/utils/context-checker.js +0 -68
  302. package/dist/hooks/chat-handler/utils/context-checker.js.map +0 -1
  303. package/dist/tools/string-replace.d.ts +0 -3
  304. package/dist/tools/string-replace.d.ts.map +0 -1
  305. package/dist/tools/string-replace.js.map +0 -1
  306. package/dist/tools/write-file.d.ts +0 -3
  307. package/dist/tools/write-file.d.ts.map +0 -1
  308. package/dist/tools/write-file.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,GACtB,MAAM,wBAAwB,CAAC"}
@@ -2,9 +2,16 @@
2
2
  * API client for models.dev
3
3
  * Fetches and caches model metadata
4
4
  */
5
+ export declare function setSessionContextLimit(limit: number | null): void;
6
+ export declare function getSessionContextLimit(): number | null;
7
+ export declare function resetSessionContextLimit(): void;
5
8
  /**
6
9
  * Get context limit for a model
7
- * Returns null if model not found and no fallback available
10
+ * Resolution order:
11
+ * 1. Session override (from /context-max command)
12
+ * 2. NANOCODER_CONTEXT_LIMIT env variable
13
+ * 3. models.dev lookup / hardcoded Ollama defaults
14
+ * 4. null (unknown)
8
15
  */
9
16
  export declare function getModelContextLimit(modelId: string): Promise<number | null>;
10
17
  //# sourceMappingURL=models-dev-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models-dev-client.d.ts","sourceRoot":"","sources":["../../source/models/models-dev-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8SH;;;GAGG;AACH,wBAAsB,oBAAoB,CACzC,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6CxB"}
1
+ {"version":3,"file":"models-dev-client.d.ts","sourceRoot":"","sources":["../../source/models/models-dev-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2UH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEjE;AAED,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAEtD;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACzC,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4DxB"}
@@ -13,39 +13,31 @@ const MODELS_DEV_API_URL = 'https://models.dev/api.json';
13
13
  * Used when models.dev doesn't have the model data
14
14
  */
15
15
  const OLLAMA_MODEL_CONTEXT_LIMITS = {
16
- // Llama 3.2 models
16
+ // Llama 3.2 models (not on models.dev)
17
17
  'llama3.2': 128000,
18
18
  'llama3.2:1b': 128000,
19
19
  'llama3.2:3b': 128000,
20
- // Llama 3.1 models
20
+ // Llama 3.1 models (base matches wrong model on models.dev)
21
21
  'llama3.1': 128000,
22
22
  'llama3.1:8b': 128000,
23
23
  'llama3.1:70b': 128000,
24
24
  'llama3.1:405b': 128000,
25
- // Llama 3 models
26
- llama3: 8192,
25
+ // Llama 3 models (size variants not on models.dev)
27
26
  'llama3:8b': 8192,
28
27
  'llama3:70b': 8192,
29
- // Llama 2 models
28
+ // Llama 2 models (not on models.dev)
30
29
  llama2: 4096,
31
30
  'llama2:7b': 4096,
32
31
  'llama2:13b': 4096,
33
32
  'llama2:70b': 4096,
34
- // Mistral models
33
+ // Mistral models (base matches wrong model on models.dev)
35
34
  mistral: 32000,
36
35
  'mistral:7b': 32000,
37
- 'mistral-large': 256000,
38
- mixtral: 32000,
39
36
  'mixtral:8x7b': 32000,
40
37
  'mixtral:8x22b': 64000,
41
- ministral: 256000,
42
38
  'ministral:3b': 256000,
43
39
  'ministral:8b': 256000,
44
- 'devstral-small-2:24b': 256000,
45
- 'devstral-2': 256000,
46
- // Essentials AI models
47
- 'rnj-1:8b': 32000,
48
- // Qwen models
40
+ // Qwen models (base names match wrong models on models.dev)
49
41
  qwen: 32000,
50
42
  'qwen:7b': 32000,
51
43
  'qwen:14b': 32000,
@@ -57,37 +49,21 @@ const OLLAMA_MODEL_CONTEXT_LIMITS = {
57
49
  'qwen3:7b': 128000,
58
50
  'qwen3:14b': 128000,
59
51
  'qwen3:32b': 128000,
60
- 'qwen3-coder:480b': 256000,
61
- // Gemma models
52
+ // Gemma models (base matches wrong model on models.dev)
62
53
  gemma: 8192,
63
54
  'gemma:2b': 8192,
64
55
  'gemma:7b': 8192,
65
- gemma2: 8192,
66
56
  'gemma2:9b': 8192,
67
57
  'gemma2:27b': 8192,
68
- // Command-R models
69
- 'command-r': 128000,
70
- 'command-r-plus': 128000,
71
- // DeepSeek models
58
+ // DeepSeek models (base matches wrong model on models.dev)
72
59
  'deepseek-coder': 16000,
73
60
  'deepseek-coder-v2': 128000,
74
- 'deepseek-v3.1': 128000,
75
- 'deepseek-v3.2': 128000,
76
- // Phi models
61
+ // Phi models (not on models.dev)
77
62
  phi3: 128000,
78
63
  'phi3:mini': 128000,
79
64
  'phi3:medium': 128000,
80
- // OpenAI models
81
- 'gpt-oss:120b': 128000,
82
- 'gpt-oss:20b': 128000,
83
- // Z.ai models
84
- 'glm-4.7': 200000,
85
- // Moonshot AI models
65
+ // Moonshot AI models (kimi-for-coding is a provider, not a model ID)
86
66
  'kimi-for-coding': 256000,
87
- 'kimi-k2:1t-cloud': 256000,
88
- 'kimi-k2-thinking:cloud': 256000,
89
- // Cloud models
90
- 'minimax-m2:cloud': 196608,
91
67
  };
92
68
  /**
93
69
  * Extract base model architecture from Ollama model name
@@ -95,53 +71,23 @@ const OLLAMA_MODEL_CONTEXT_LIMITS = {
95
71
  */
96
72
  function extractOllamaModelBase(modelName) {
97
73
  const lower = modelName.toLowerCase();
98
- // Try exact matches first
99
- for (const key of Object.keys(OLLAMA_MODEL_CONTEXT_LIMITS)) {
74
+ // Sort keys by length descending so longer/more specific keys match first
75
+ // e.g., "qwen3-coder:480b" matches before "qwen3", "mixtral:8x22b" before "mixtral"
76
+ const sortedKeys = Object.keys(OLLAMA_MODEL_CONTEXT_LIMITS).sort((a, b) => b.length - a.length);
77
+ // Try exact and prefix matches
78
+ for (const key of sortedKeys) {
100
79
  if (lower === key ||
101
80
  lower.startsWith(`${key}-`) ||
102
81
  lower.startsWith(`${key}:`)) {
103
82
  return key;
104
83
  }
105
84
  }
106
- // Try to match base architecture
107
- if (lower.includes('llama3.2'))
108
- return 'llama3.2';
109
- if (lower.includes('llama3.1'))
110
- return 'llama3.1';
111
- if (lower.includes('llama3'))
112
- return 'llama3';
113
- if (lower.includes('llama2'))
114
- return 'llama2';
115
- if (lower.includes('mixtral:8x22b'))
116
- return 'mixtral:8x22b';
117
- if (lower.includes('mixtral'))
118
- return 'mixtral';
119
- if (lower.includes('ministral'))
120
- return 'ministral';
121
- if (lower.includes('mistral-large'))
122
- return 'mistral-large';
123
- if (lower.includes('mistral'))
124
- return 'mistral';
125
- if (lower.includes('qwen2.5'))
126
- return 'qwen2.5';
127
- if (lower.includes('qwen2'))
128
- return 'qwen2';
129
- if (lower.includes('qwen'))
130
- return 'qwen';
131
- if (lower.includes('gemma2'))
132
- return 'gemma2';
133
- if (lower.includes('gemma'))
134
- return 'gemma';
135
- if (lower.includes('command-r-plus'))
136
- return 'command-r-plus';
137
- if (lower.includes('command-r'))
138
- return 'command-r';
139
- if (lower.includes('deepseek-coder-v2'))
140
- return 'deepseek-coder-v2';
141
- if (lower.includes('deepseek'))
142
- return 'deepseek-coder';
143
- if (lower.includes('phi3'))
144
- return 'phi3';
85
+ // Try to match base architecture (also sorted by specificity)
86
+ for (const key of sortedKeys) {
87
+ if (lower.includes(key)) {
88
+ return key;
89
+ }
90
+ }
145
91
  return null;
146
92
  }
147
93
  /**
@@ -245,7 +191,9 @@ async function findModelByName(modelName) {
245
191
  return null;
246
192
  }
247
193
  const lowerName = modelName.toLowerCase();
248
- // Search through all providers
194
+ let bestMatch = null;
195
+ let bestScore = 0;
196
+ // Search through all providers with scored matching
249
197
  for (const [_providerId, provider] of Object.entries(data)) {
250
198
  // Skip malformed provider entries
251
199
  if (!provider || typeof provider !== 'object' || !provider.models) {
@@ -256,8 +204,11 @@ async function findModelByName(modelName) {
256
204
  if (!model || typeof model !== 'object') {
257
205
  continue;
258
206
  }
259
- if ((model.id && model.id.toLowerCase().includes(lowerName)) ||
260
- (model.name && model.name.toLowerCase().includes(lowerName))) {
207
+ const modelIdLower = model.id?.toLowerCase() ?? '';
208
+ const modelNameLower = model.name?.toLowerCase() ?? '';
209
+ let score = 0;
210
+ // Exact ID match → return immediately
211
+ if (modelIdLower === lowerName) {
261
212
  return {
262
213
  id: model.id,
263
214
  name: model.name,
@@ -271,29 +222,100 @@ async function findModelByName(modelName) {
271
222
  },
272
223
  };
273
224
  }
225
+ // ID starts with search term → high score
226
+ if (modelIdLower.startsWith(lowerName)) {
227
+ score = 3;
228
+ }
229
+ // Name starts with search term → medium score
230
+ else if (modelNameLower.startsWith(lowerName)) {
231
+ score = 2;
232
+ }
233
+ // ID or Name contains search term → low score
234
+ else if (modelIdLower.includes(lowerName) ||
235
+ modelNameLower.includes(lowerName)) {
236
+ score = 1;
237
+ }
238
+ if (score > bestScore) {
239
+ bestScore = score;
240
+ bestMatch = {
241
+ id: model.id,
242
+ name: model.name,
243
+ provider: provider.name,
244
+ contextLimit: model.limit?.context ?? null,
245
+ outputLimit: model.limit?.output ?? null,
246
+ supportsToolCalls: model.tool_call ?? false,
247
+ cost: {
248
+ input: model.cost?.input ?? 0,
249
+ output: model.cost?.output ?? 0,
250
+ },
251
+ };
252
+ }
274
253
  }
275
254
  }
276
- return null;
255
+ return bestMatch;
256
+ }
257
+ /**
258
+ * Singleton class for managing session-level context limit overrides.
259
+ * Allows users to manually set a context limit via /context-max command.
260
+ */
261
+ class ContextLimitSessionManager {
262
+ _contextLimit = null;
263
+ get() {
264
+ return this._contextLimit;
265
+ }
266
+ set(limit) {
267
+ if (limit !== null && limit > 0) {
268
+ this._contextLimit = limit;
269
+ }
270
+ else {
271
+ this._contextLimit = null;
272
+ }
273
+ }
274
+ reset() {
275
+ this._contextLimit = null;
276
+ }
277
+ }
278
+ // Singleton instance
279
+ const contextLimitSession = new ContextLimitSessionManager();
280
+ export function setSessionContextLimit(limit) {
281
+ contextLimitSession.set(limit);
282
+ }
283
+ export function getSessionContextLimit() {
284
+ return contextLimitSession.get();
285
+ }
286
+ export function resetSessionContextLimit() {
287
+ contextLimitSession.reset();
277
288
  }
278
289
  /**
279
290
  * Get context limit for a model
280
- * Returns null if model not found and no fallback available
291
+ * Resolution order:
292
+ * 1. Session override (from /context-max command)
293
+ * 2. NANOCODER_CONTEXT_LIMIT env variable
294
+ * 3. models.dev lookup / hardcoded Ollama defaults
295
+ * 4. null (unknown)
281
296
  */
282
297
  export async function getModelContextLimit(modelId) {
283
298
  try {
284
- // Try Ollama fallback first with original model ID (before normalization)
285
- // This handles cloud models like gpt-oss:20b-cloud
286
- const ollamaLimitOriginal = getOllamaFallbackContextLimit(modelId);
287
- if (ollamaLimitOriginal) {
288
- return ollamaLimitOriginal;
299
+ // Check session override first (highest priority)
300
+ const sessionLimit = contextLimitSession.get();
301
+ if (sessionLimit !== null) {
302
+ return sessionLimit;
303
+ }
304
+ // Check environment variable fallback
305
+ const envLimit = process.env.NANOCODER_CONTEXT_LIMIT;
306
+ if (envLimit) {
307
+ const parsed = Number.parseInt(envLimit, 10);
308
+ if (!Number.isNaN(parsed) && parsed > 0) {
309
+ return parsed;
310
+ }
289
311
  }
290
312
  // Strip :cloud or -cloud suffix if present (Ollama cloud models)
291
313
  const normalizedModelId = modelId.endsWith(':cloud') || modelId.endsWith('-cloud')
292
314
  ? modelId.slice(0, -6) // Remove ":cloud" or "-cloud"
293
315
  : modelId;
294
- // Try exact ID match first
316
+ // Try models.dev exact ID match first (primary source)
295
317
  let modelInfo = await findModelById(normalizedModelId);
296
- // Try partial name match if exact match fails
318
+ // Try models.dev partial name match if exact match fails
297
319
  if (!modelInfo) {
298
320
  modelInfo = await findModelByName(normalizedModelId);
299
321
  }
@@ -301,7 +323,13 @@ export async function getModelContextLimit(modelId) {
301
323
  if (modelInfo) {
302
324
  return modelInfo.contextLimit;
303
325
  }
304
- // Fall back to Ollama model defaults with normalized ID
326
+ // Fall back to hardcoded Ollama model defaults (offline fallback)
327
+ // Try original model ID first (handles entries like "kimi-k2:1t-cloud")
328
+ const ollamaLimitOriginal = getOllamaFallbackContextLimit(modelId);
329
+ if (ollamaLimitOriginal) {
330
+ return ollamaLimitOriginal;
331
+ }
332
+ // Try normalized ID (without cloud suffix)
305
333
  const ollamaLimit = getOllamaFallbackContextLimit(normalizedModelId);
306
334
  if (ollamaLimit) {
307
335
  return ollamaLimit;
@@ -1 +1 @@
1
- {"version":3,"file":"models-dev-client.js","sourceRoot":"","sources":["../../source/models/models-dev-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models-dev-client.js","sourceRoot":"","sources":["../../source/models/models-dev-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Validates a cron expression.
3
+ * Returns null if valid, or an error message if invalid.
4
+ */
5
+ export declare function validateCron(expression: string): string | null;
6
+ /**
7
+ * Returns the next run time for a cron expression as a Date, or null if none.
8
+ */
9
+ export declare function getNextRunTime(expression: string): Date | null;
10
+ /**
11
+ * Formats a cron expression into a human-readable description.
12
+ */
13
+ export declare function formatCronHuman(expression: string): string;
14
+ //# sourceMappingURL=cron.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../source/schedule/cron.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ9D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAO9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA2D1D"}
@@ -0,0 +1,107 @@
1
+ import { Cron } from 'croner';
2
+ /**
3
+ * Validates a cron expression.
4
+ * Returns null if valid, or an error message if invalid.
5
+ */
6
+ export function validateCron(expression) {
7
+ try {
8
+ // Attempt to parse — throws on invalid syntax
9
+ new Cron(expression);
10
+ return null;
11
+ }
12
+ catch (error) {
13
+ return error instanceof Error ? error.message : 'Invalid cron expression';
14
+ }
15
+ }
16
+ /**
17
+ * Returns the next run time for a cron expression as a Date, or null if none.
18
+ */
19
+ export function getNextRunTime(expression) {
20
+ try {
21
+ const job = new Cron(expression);
22
+ return job.nextRun() ?? null;
23
+ }
24
+ catch {
25
+ return null;
26
+ }
27
+ }
28
+ /**
29
+ * Formats a cron expression into a human-readable description.
30
+ */
31
+ export function formatCronHuman(expression) {
32
+ const parts = expression.trim().split(/\s+/);
33
+ if (parts.length < 5)
34
+ return expression;
35
+ const [minute, hour, dayOfMonth, month, dayOfWeek] = parts;
36
+ // Common patterns
37
+ if (minute === '*' &&
38
+ hour === '*' &&
39
+ dayOfMonth === '*' &&
40
+ month === '*' &&
41
+ dayOfWeek === '*') {
42
+ return 'every minute';
43
+ }
44
+ if (minute !== '*' &&
45
+ hour === '*' &&
46
+ dayOfMonth === '*' &&
47
+ month === '*' &&
48
+ dayOfWeek === '*') {
49
+ return `every hour at minute ${minute}`;
50
+ }
51
+ if (minute !== '*' &&
52
+ hour !== '*' &&
53
+ dayOfMonth === '*' &&
54
+ month === '*' &&
55
+ dayOfWeek === '*') {
56
+ return `daily at ${hour}:${minute?.padStart(2, '0')}`;
57
+ }
58
+ if (minute !== '*' &&
59
+ hour !== '*' &&
60
+ dayOfMonth === '*' &&
61
+ month === '*' &&
62
+ dayOfWeek !== '*') {
63
+ const days = formatDayOfWeek(dayOfWeek);
64
+ return `${days} at ${hour}:${minute?.padStart(2, '0')}`;
65
+ }
66
+ if (minute !== '*' &&
67
+ hour !== '*' &&
68
+ dayOfMonth !== '*' &&
69
+ month === '*' &&
70
+ dayOfWeek === '*') {
71
+ return `monthly on day ${dayOfMonth} at ${hour}:${minute?.padStart(2, '0')}`;
72
+ }
73
+ return expression;
74
+ }
75
+ const DAY_NAMES = {
76
+ '0': 'Sun',
77
+ '1': 'Mon',
78
+ '2': 'Tue',
79
+ '3': 'Wed',
80
+ '4': 'Thu',
81
+ '5': 'Fri',
82
+ '6': 'Sat',
83
+ '7': 'Sun',
84
+ SUN: 'Sun',
85
+ MON: 'Mon',
86
+ TUE: 'Tue',
87
+ WED: 'Wed',
88
+ THU: 'Thu',
89
+ FRI: 'Fri',
90
+ SAT: 'Sat',
91
+ };
92
+ function formatDayOfWeek(dow) {
93
+ // Handle ranges like 1-5
94
+ if (dow.includes('-')) {
95
+ const [start, end] = dow.split('-');
96
+ return `${DAY_NAMES[start?.toUpperCase()] ?? start}-${DAY_NAMES[end?.toUpperCase()] ?? end}`;
97
+ }
98
+ // Handle lists like 1,3,5
99
+ if (dow.includes(',')) {
100
+ return dow
101
+ .split(',')
102
+ .map(d => DAY_NAMES[d.toUpperCase()] ?? d)
103
+ .join(', ');
104
+ }
105
+ return DAY_NAMES[dow.toUpperCase()] ?? dow;
106
+ }
107
+ //# sourceMappingURL=cron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron.js","sourceRoot":"","sources":["../../source/schedule/cron.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './cron.js';
2
+ export * from './storage.js';
3
+ export * from './types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/schedule/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './cron.js';
2
+ export * from './storage.js';
3
+ export * from './types.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/schedule/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { Schedule, ScheduleRun } from './types.js';
2
+ export interface ScheduleRunnerCallbacks {
3
+ handleMessageSubmit: (message: string) => Promise<void>;
4
+ clearMessages: () => Promise<void>;
5
+ onJobStart: (schedule: Schedule) => void;
6
+ onJobComplete: (schedule: Schedule, run: ScheduleRun) => void;
7
+ onJobError: (schedule: Schedule, error: string) => void;
8
+ waitForConversationComplete: () => Promise<void>;
9
+ }
10
+ export declare class ScheduleRunner {
11
+ private cronJobs;
12
+ private queue;
13
+ private isRunning;
14
+ private isProcessing;
15
+ private callbacks;
16
+ constructor(callbacks: ScheduleRunnerCallbacks);
17
+ /**
18
+ * Start all scheduled cron jobs
19
+ */
20
+ start(): Promise<void>;
21
+ /**
22
+ * Stop all cron jobs and clear the queue
23
+ */
24
+ stop(): void;
25
+ /**
26
+ * Get the number of active cron jobs
27
+ */
28
+ getActiveJobCount(): number;
29
+ /**
30
+ * Get the current queue length
31
+ */
32
+ getQueueLength(): number;
33
+ /**
34
+ * Check if currently processing a job
35
+ */
36
+ getIsProcessing(): boolean;
37
+ private registerCronJob;
38
+ private enqueueJob;
39
+ private processQueue;
40
+ private executeJob;
41
+ }
42
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../source/schedule/runner.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAC,QAAQ,EAAE,WAAW,EAAC,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,uBAAuB;IACvC,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACzC,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9D,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,2BAA2B,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED,qBAAa,cAAc;IAC1B,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAA0B;gBAE/B,SAAS,EAAE,uBAAuB;IAI9C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B;;OAEG;IACH,IAAI,IAAI,IAAI;IASZ;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,UAAU;YAOJ,YAAY;YAcZ,UAAU;CAqExB"}