@nanocollective/nanocoder 1.14.0 → 1.14.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.
- package/README.md +11 -0
- package/dist/langgraph-client.d.ts.map +1 -1
- package/dist/langgraph-client.js +12 -2
- package/dist/langgraph-client.js.map +1 -1
- package/dist/tools/fetch-url.d.ts.map +1 -1
- package/dist/tools/fetch-url.js +5 -18
- package/dist/tools/fetch-url.js.map +1 -1
- package/dist/tools/search-files.d.ts.map +1 -1
- package/dist/tools/search-files.js +66 -8
- package/dist/tools/search-files.js.map +1 -1
- package/dist/wizard/templates/provider-templates.js +2 -2
- package/dist/wizard/templates/provider-templates.spec.js +2 -2
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -208,6 +208,17 @@ It is recommended to set both `requestTimeout` and `socketTimeout` to the same v
|
|
|
208
208
|
}
|
|
209
209
|
```
|
|
210
210
|
|
|
211
|
+
**Troubleshooting Context Length Issues:**
|
|
212
|
+
|
|
213
|
+
If you experience the model repeating tool calls or getting into loops (especially with multi-turn conversations), this is often caused by insufficient context length settings in your local AI provider:
|
|
214
|
+
|
|
215
|
+
- **LM Studio**: Increase "Context Length" in Settings → Model Settings (recommended: 8192 or higher)
|
|
216
|
+
- **Ollama**: Set context length with `OLLAMA_NUM_CTX=8192`
|
|
217
|
+
- **llama.cpp**: Use `--ctx-size 8192` or higher when starting the server
|
|
218
|
+
- **vLLM**: Set `--max-model-len 8192` when launching
|
|
219
|
+
|
|
220
|
+
Tool-calling conversations require more context to track the history of tool calls and their results. If the context window is too small, the model may lose track of previous actions and repeat them indefinitely.
|
|
221
|
+
|
|
211
222
|
### MCP (Model Context Protocol) Servers
|
|
212
223
|
|
|
213
224
|
Nanocoder supports connecting to MCP servers to extend its capabilities with additional tools. Configure MCP servers in your `agents.config.json`:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"langgraph-client.d.ts","sourceRoot":"","sources":["../source/langgraph-client.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACX,OAAO,EACP,IAAI,EACJ,SAAS,EACT,uBAAuB,EACvB,eAAe,EACf,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"langgraph-client.d.ts","sourceRoot":"","sources":["../source/langgraph-client.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACX,OAAO,EACP,IAAI,EACJ,SAAS,EACT,uBAAuB,EACvB,eAAe,EACf,MAAM,eAAe,CAAC;AAoJvB,qBAAa,eAAgB,YAAW,SAAS;IAChD,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,WAAW,CAAQ;gBAEf,cAAc,EAAE,uBAAuB;IA0BnD,MAAM,CAAC,MAAM,CACZ,cAAc,EAAE,uBAAuB,GACrC,OAAO,CAAC,eAAe,CAAC;IAK3B,OAAO,CAAC,eAAe;IA8CvB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,eAAe,IAAI,MAAM;IAIzB,cAAc,IAAI,MAAM;IA0BxB,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIjC,IAAI,CACT,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,IAAI,EAAE,EACb,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,eAAe,CAAC;IAoGrB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAGnC"}
|
package/dist/langgraph-client.js
CHANGED
|
@@ -151,12 +151,20 @@ export class LangGraphClient {
|
|
|
151
151
|
dispatcher: this.undiciAgent,
|
|
152
152
|
});
|
|
153
153
|
};
|
|
154
|
+
// Add OpenRouter-specific headers for app attribution
|
|
155
|
+
const defaultHeaders = {};
|
|
156
|
+
if (this.providerConfig.name.toLowerCase() === 'openrouter') {
|
|
157
|
+
defaultHeaders['HTTP-Referer'] =
|
|
158
|
+
'https://github.com/Nano-Collective/nanocoder';
|
|
159
|
+
defaultHeaders['X-Title'] = 'Nanocoder';
|
|
160
|
+
}
|
|
154
161
|
const chatConfig = {
|
|
155
162
|
modelName: this.currentModel,
|
|
156
163
|
openAIApiKey: config.apiKey ?? 'dummy-key',
|
|
157
164
|
configuration: {
|
|
158
165
|
baseURL: config.baseURL ?? '',
|
|
159
166
|
fetch: customFetch,
|
|
167
|
+
defaultHeaders,
|
|
160
168
|
},
|
|
161
169
|
...config,
|
|
162
170
|
};
|
|
@@ -181,7 +189,7 @@ export class LangGraphClient {
|
|
|
181
189
|
}
|
|
182
190
|
getContextSize() {
|
|
183
191
|
// For OpenRouter, get from cached model info
|
|
184
|
-
if (this.providerConfig.name === 'openrouter') {
|
|
192
|
+
if (this.providerConfig.name.toLowerCase() === 'openrouter') {
|
|
185
193
|
const modelData = this.modelInfoCache.get(this.currentModel);
|
|
186
194
|
if (modelData?.context_length) {
|
|
187
195
|
return modelData.context_length;
|
|
@@ -225,7 +233,9 @@ export class LangGraphClient {
|
|
|
225
233
|
},
|
|
226
234
|
}));
|
|
227
235
|
// Try binding tools to the model
|
|
228
|
-
const modelWithTools = this.chatModel.bindTools(langchainTools
|
|
236
|
+
const modelWithTools = this.chatModel.bindTools(langchainTools, {
|
|
237
|
+
parallel_tool_calls: false,
|
|
238
|
+
});
|
|
229
239
|
result = (await modelWithTools.invoke(langchainMessages, invokeOptions));
|
|
230
240
|
}
|
|
231
241
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"langgraph-client.js","sourceRoot":"","sources":["../source/langgraph-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"langgraph-client.js","sourceRoot":"","sources":["../source/langgraph-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,KAAK,EAAE,KAAK,EAA2B,MAAM,QAAQ,CAAC;AAC9D,OAAO,EACN,SAAS,EACT,YAAY,EACZ,aAAa,EACb,WAAW,GAEX,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAE5D;;GAEG;AACH,SAAS,aAAa,CAAC,KAAc;IACpC,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,8DAA8D,CAAC;IACvE,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;IAEnC,mEAAmE;IACnE,kEAAkE;IAClE,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CACrC,mEAAmE,CACnE,CAAC;IACF,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC;QAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpC,QAAQ,UAAU,EAAE,CAAC;YACpB,KAAK,KAAK;gBACT,OAAO,gBAAgB,YAAY,EAAE,CAAC;YACvC,KAAK,KAAK;gBACT,OAAO,uDAAuD,CAAC;YAChE,KAAK,KAAK;gBACT,OAAO,8CAA8C,CAAC;YACvD,KAAK,KAAK;gBACT,OAAO,sEAAsE,CAAC;YAC/E,KAAK,KAAK;gBACT,OAAO,mEAAmE,CAAC;YAC5E,KAAK,KAAK,CAAC;YACX,KAAK,KAAK,CAAC;YACX,KAAK,KAAK;gBACT,OAAO,iBAAiB,YAAY,EAAE,CAAC;YACxC;gBACC,OAAO,mBAAmB,UAAU,MAAM,YAAY,EAAE,CAAC;QAC3D,CAAC;IACF,CAAC;IAED,wBAAwB;IACxB,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5E,OAAO,uDAAuD,CAAC;IAChE,CAAC;IAED,wBAAwB;IACxB,IACC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC;QACrC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC/B,CAAC;QACF,OAAO,qDAAqD,CAAC;IAC9D,CAAC;IAED,4CAA4C;IAC5C,IACC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACvC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EACvC,CAAC;QACF,OAAO,0EAA0E,CAAC;IACnF,CAAC;IAED,4BAA4B;IAC5B,IAAI,YAAY,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;QAC1D,OAAO,4EAA4E,CAAC;IACrF,CAAC;IAED,oDAAoD;IACpD,yDAAyD;IACzD,OAAO,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,OAAgB;IAClD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,MAAM;YACV,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAChD,KAAK,QAAQ;YACZ,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACjD,KAAK,WAAW;YACf,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzD,OAAO,IAAI,SAAS,CAAC;oBACpB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;oBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;wBACzC,EAAE,EAAE,EAAE,CAAC,EAAE;wBACT,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;wBACtB,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS;qBAC3B,CAAC,CAAC;iBACH,CAAC,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC7C,KAAK,MAAM;YACV,OAAO,IAAI,WAAW,CAAC;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;gBAC9B,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE;gBACxC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;aACxB,CAAC,CAAC;QACJ,OAAO,CAAC,CAAC,CAAC;YACT,MAAM,cAAc,GAAG,OAAyB,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,6BAA6B,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;IACF,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,2BAA2B,CAAC,OAAkB;IACtD,MAAM,MAAM,GAAY;QACvB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO,CAAC,OAAiB;KAClC,CAAC;IAEF,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzD,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACjD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;YACf,QAAQ,EAAE;gBACT,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,SAAS,EAAE,EAAE,CAAC,IAAI;aAClB;SACD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAqBD,MAAM,OAAO,eAAe;IACnB,SAAS,CAAa;IACtB,YAAY,CAAS;IACrB,eAAe,CAAW;IAC1B,cAAc,CAA0B;IACxC,cAAc,GAA2B,IAAI,GAAG,EAAE,CAAC;IACnD,WAAW,CAAQ;IAE3B,YAAY,cAAuC;QAClD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEnD,MAAM,EAAC,cAAc,EAAE,aAAa,EAAE,cAAc,EAAC,GAAG,IAAI,CAAC,cAAc,CAAC;QAC5E,MAAM,qBAAqB,GAC1B,aAAa,KAAK,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,aAAa,IAAI,cAAc,KAAK,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,cAAc,IAAI,MAAM,CAAC;QAE7B,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC;YAC5B,OAAO,EAAE;gBACR,OAAO,EAAE,qBAAqB;aAC9B;YACD,WAAW,EAAE,qBAAqB;YAClC,cAAc,EAAE,qBAAqB;YACrC,gBAAgB,EAAE,cAAc,EAAE,WAAW;YAC7C,mBAAmB,EAAE,cAAc,EAAE,wBAAwB;SAC7D,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,MAAM,CACZ,cAAuC;QAEvC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,cAAc,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEO,eAAe;QACtB,MAAM,EAAC,MAAM,EAAE,cAAc,EAAC,GAAG,IAAI,CAAC,cAAc,CAAC;QAErD,MAAM,WAAW,GAAG,CACnB,GAA2B,EAC3B,UAAuB,EAAE,EACxB,EAAE;YACH,oDAAoD;YACpD,OAAO,KAAK,CAAC,GAAkB,EAAE;gBAChC,GAAG,OAAO;gBACV,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,iCAAiC;gBACzD,UAAU,EAAE,IAAI,CAAC,WAAW;aAC5B,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,sDAAsD;QACtD,MAAM,cAAc,GAA2B,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY,EAAE,CAAC;YAC7D,cAAc,CAAC,cAAc,CAAC;gBAC7B,8CAA8C,CAAC;YAChD,cAAc,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;QACzC,CAAC;QAED,MAAM,UAAU,GAAe;YAC9B,SAAS,EAAE,IAAI,CAAC,YAAY;YAC5B,YAAY,EAAE,MAAM,CAAC,MAAM,IAAI,WAAW;YAC1C,aAAa,EAAE;gBACd,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;gBAC7B,KAAK,EAAE,WAAW;gBAClB,cAAc;aACd;YACD,GAAG,MAAM;SACT,CAAC;QAEF,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3B,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;QAChC,CAAC;aAAM,IAAI,cAAc,EAAE,CAAC;YAC3B,UAAU,CAAC,OAAO,GAAG,cAAc,CAAC;QACrC,CAAC;aAAM,CAAC;YACP,UAAU;YACV,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,YAAY;QAC1C,CAAC;QAED,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,KAAa;QACrB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACzC,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAED,cAAc;QACb,6CAA6C;QAC7C,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY,EAAE,CAAC;YAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7D,IAAI,SAAS,EAAE,cAAc,EAAE,CAAC;gBAC/B,OAAO,SAAS,CAAC,cAAc,CAAC;YACjC,CAAC;YACD,OAAO,CAAC,CAAC;QACV,CAAC;QAED,2EAA2E;QAC3E,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACtD,OAAO,CAAC,CAAC;QACV,CAAC;QAED,+CAA+C;QAC/C,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAEnC,CAAC;QACF,IAAI,sBAAsB,CAAC,SAAS,EAAE,CAAC;YACtC,OAAO,sBAAsB,CAAC,SAAS,CAAC;QACzC,CAAC;QAED,OAAO,CAAC,CAAC;IACV,CAAC;IAED,kBAAkB;QACjB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,IAAI,CACT,QAAmB,EACnB,KAAa,EACb,MAAoB;QAEpB,2CAA2C;QAC3C,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YAClE,IAAI,MAAiB,CAAC;YAEtB,sDAAsD;YACtD,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAE7C,2DAA2D;YAC3D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACJ,wCAAwC;oBACxC,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACzC,IAAI,EAAE,UAAmB;wBACzB,QAAQ,EAAE;4BACT,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;4BACxB,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;4BACtC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;yBACpC;qBACD,CAAC,CAAC,CAAC;oBAEJ,iCAAiC;oBACjC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,EAAE;wBAC/D,mBAAmB,EAAE,KAAK;qBAC1B,CAAC,CAAC;oBACH,MAAM,GAAG,CAAC,MAAM,cAAc,CAAC,MAAM,CACpC,iBAAiB,EACjB,aAAa,CACb,CAAc,CAAC;gBACjB,CAAC;gBAAC,MAAM,CAAC;oBACR,+CAA+C;oBAC/C,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CACpC,iBAAiB,EACjB,aAAa,CACb,CAAc,CAAC;gBACjB,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,2BAA2B;gBAC3B,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CACpC,iBAAiB,EACjB,aAAa,CACb,CAAc,CAAC;YACjB,CAAC;YAED,IAAI,gBAAgB,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;YAE3D,mEAAmE;YACnE,IACC,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,CAAC,CAAC,gBAAgB,CAAC,UAAU;oBAC5B,gBAAgB,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;gBAC1C,gBAAgB,CAAC,OAAO,EACvB,CAAC;gBACF,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;gBAEzC,IAAI,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7C,MAAM,eAAe,GAAG,iBAAiB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;oBAClE,MAAM,SAAS,GACd,iBAAiB,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;oBACvD,MAAM,cAAc,GACnB,iBAAiB,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;oBAEvD,gBAAgB,GAAG;wBAClB,GAAG,gBAAgB;wBACnB,OAAO,EAAE,cAAc;wBACvB,UAAU,EAAE,SAAS;qBACrB,CAAC;gBACH,CAAC;YACF,CAAC;YAED,OAAO;gBACN,OAAO,EAAE;oBACR;wBACC,OAAO,EAAE;4BACR,IAAI,EAAE,WAAoB;4BAC1B,OAAO,EAAE,gBAAgB,CAAC,OAAO;4BACjC,UAAU,EAAE,gBAAgB,CAAC,UAAU;yBACvC;qBACD;iBACD;aACD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,mCAAmC;YACnC,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC5C,CAAC;YAED,wCAAwC;YACxC,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YAEzC,uCAAuC;YACvC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;IACF,CAAC;IAED,KAAK,CAAC,YAAY;QACjB,iDAAiD;IAClD,CAAC;CACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-url.d.ts","sourceRoot":"","sources":["../../source/tools/fetch-url.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,cAAc,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"fetch-url.d.ts","sourceRoot":"","sources":["../../source/tools/fetch-url.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,cAAc,EAAC,MAAM,eAAe,CAAC;AA+I/D,eAAO,MAAM,YAAY,EAAE,cAuB1B,CAAC"}
|
package/dist/tools/fetch-url.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { convertToMarkdown } from '@nanocollective/get-md';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { Text, Box } from 'ink';
|
|
5
5
|
import { ThemeContext } from '../hooks/useTheme.js';
|
|
@@ -12,20 +12,10 @@ const handler = async (args) => {
|
|
|
12
12
|
catch {
|
|
13
13
|
throw new Error(`Invalid URL: ${args.url}`);
|
|
14
14
|
}
|
|
15
|
-
// Use Jina AI Reader to convert URL to LLM-friendly markdown
|
|
16
|
-
const jinaUrl = `https://r.jina.ai/${args.url}`;
|
|
17
15
|
try {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
},
|
|
22
|
-
signal: AbortSignal.timeout(15000), // 15 second timeout
|
|
23
|
-
method: 'GET',
|
|
24
|
-
});
|
|
25
|
-
if (!response.ok) {
|
|
26
|
-
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
27
|
-
}
|
|
28
|
-
const content = await response.text();
|
|
16
|
+
// Use get-md to convert URL to LLM-friendly markdown
|
|
17
|
+
const result = await convertToMarkdown(args.url);
|
|
18
|
+
const content = result.markdown;
|
|
29
19
|
if (!content || content.length === 0) {
|
|
30
20
|
throw new Error('No content returned from URL');
|
|
31
21
|
}
|
|
@@ -38,9 +28,6 @@ const handler = async (args) => {
|
|
|
38
28
|
return content;
|
|
39
29
|
}
|
|
40
30
|
catch (error) {
|
|
41
|
-
if (error instanceof Error && error.name === 'AbortError') {
|
|
42
|
-
throw new Error(`Request timeout: URL took too long to fetch (>15s)`);
|
|
43
|
-
}
|
|
44
31
|
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
45
32
|
throw new Error(`Failed to fetch URL: ${message}`);
|
|
46
33
|
}
|
|
@@ -110,7 +97,7 @@ export const fetchUrlTool = {
|
|
|
110
97
|
type: 'function',
|
|
111
98
|
function: {
|
|
112
99
|
name: 'fetch_url',
|
|
113
|
-
description: 'Fetch and convert any URL to clean, LLM-friendly markdown text. Useful for reading documentation, articles, or web content.
|
|
100
|
+
description: 'Fetch and convert any URL to clean, LLM-friendly markdown text using @nanocollective/get-md. Automatically extracts main content, removes ads/navigation, and converts to well-structured markdown. Useful for reading documentation, articles, or web content.',
|
|
114
101
|
parameters: {
|
|
115
102
|
type: 'object',
|
|
116
103
|
properties: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-url.js","sourceRoot":"","sources":["../../source/tools/fetch-url.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"fetch-url.js","sourceRoot":"","sources":["../../source/tools/fetch-url.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-files.d.ts","sourceRoot":"","sources":["../../source/tools/search-files.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"search-files.d.ts","sourceRoot":"","sources":["../../source/tools/search-files.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAc,cAAc,EAAC,MAAM,eAAe,CAAC;AA2T/D,eAAO,MAAM,eAAe,EAAE,cAqC7B,CAAC"}
|
|
@@ -1,33 +1,78 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { exec } from 'node:child_process';
|
|
3
3
|
import { promisify } from 'node:util';
|
|
4
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
5
|
+
import { join } from 'node:path';
|
|
4
6
|
import React from 'react';
|
|
7
|
+
import ignore from 'ignore';
|
|
5
8
|
const execAsync = promisify(exec);
|
|
6
9
|
import { Text, Box } from 'ink';
|
|
7
10
|
import { ThemeContext } from '../hooks/useTheme.js';
|
|
8
11
|
import ToolMessage from '../components/tool-message.js';
|
|
12
|
+
/**
|
|
13
|
+
* Load and parse .gitignore file, returns an ignore instance
|
|
14
|
+
*/
|
|
15
|
+
function loadGitignore(cwd) {
|
|
16
|
+
const ig = ignore();
|
|
17
|
+
const gitignorePath = join(cwd, '.gitignore');
|
|
18
|
+
// Always ignore common directories
|
|
19
|
+
ig.add([
|
|
20
|
+
'node_modules',
|
|
21
|
+
'.git',
|
|
22
|
+
'dist',
|
|
23
|
+
'build',
|
|
24
|
+
'coverage',
|
|
25
|
+
'.next',
|
|
26
|
+
'.nuxt',
|
|
27
|
+
'out',
|
|
28
|
+
'.cache',
|
|
29
|
+
]);
|
|
30
|
+
// Load .gitignore if it exists
|
|
31
|
+
if (existsSync(gitignorePath)) {
|
|
32
|
+
try {
|
|
33
|
+
const gitignoreContent = readFileSync(gitignorePath, 'utf-8');
|
|
34
|
+
ig.add(gitignoreContent);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
// Silently fail if we can't read .gitignore
|
|
38
|
+
// The hardcoded ignores above will still apply
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return ig;
|
|
42
|
+
}
|
|
9
43
|
/**
|
|
10
44
|
* Search file contents using grep
|
|
11
45
|
*/
|
|
12
46
|
async function searchFiles(query, cwd, maxResults, _contextLines) {
|
|
13
47
|
try {
|
|
14
|
-
|
|
15
|
-
|
|
48
|
+
const ig = loadGitignore(cwd);
|
|
49
|
+
// Use grep with basic exclusions for performance, then filter with gitignore
|
|
50
|
+
// We still exclude the most common large directories to avoid performance issues
|
|
51
|
+
const { stdout } = await execAsync(`grep -rn -i --include="*" --exclude-dir={node_modules,.git,dist,build,coverage,.next,.nuxt,out,.cache} "${query.replace(/"/g, '\\"')}" . | head -n ${maxResults * 3}`, { cwd, maxBuffer: 1024 * 1024 });
|
|
16
52
|
const matches = [];
|
|
17
53
|
const lines = stdout.trim().split('\n').filter(Boolean);
|
|
18
54
|
for (const line of lines) {
|
|
19
55
|
const match = line.match(/^\.\/(.+?):(\d+):(.*)$/);
|
|
20
56
|
if (match) {
|
|
57
|
+
const filePath = match[1];
|
|
58
|
+
// Skip files ignored by gitignore
|
|
59
|
+
if (ig.ignores(filePath)) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
21
62
|
matches.push({
|
|
22
|
-
file:
|
|
63
|
+
file: filePath,
|
|
23
64
|
line: parseInt(match[2], 10),
|
|
24
65
|
content: match[3].trim(),
|
|
25
66
|
});
|
|
67
|
+
// Stop once we have enough matches
|
|
68
|
+
if (matches.length >= maxResults) {
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
26
71
|
}
|
|
27
72
|
}
|
|
28
73
|
return {
|
|
29
74
|
matches,
|
|
30
|
-
truncated: lines.length >= maxResults,
|
|
75
|
+
truncated: lines.length >= maxResults * 3 || matches.length >= maxResults,
|
|
31
76
|
totalMatches: matches.length,
|
|
32
77
|
};
|
|
33
78
|
}
|
|
@@ -44,6 +89,7 @@ async function searchFiles(query, cwd, maxResults, _contextLines) {
|
|
|
44
89
|
*/
|
|
45
90
|
async function listFiles(pattern, cwd, maxResults) {
|
|
46
91
|
try {
|
|
92
|
+
const ig = loadGitignore(cwd);
|
|
47
93
|
// Convert glob pattern to find-compatible pattern
|
|
48
94
|
// **/*.ts -> -name "*.ts"
|
|
49
95
|
// **/*.{ts,tsx} -> \( -name "*.ts" -o -name "*.tsx" \)
|
|
@@ -62,15 +108,27 @@ async function listFiles(pattern, cwd, maxResults) {
|
|
|
62
108
|
const ext = pattern.split('*').pop();
|
|
63
109
|
findPattern = `-name "*${ext}"`;
|
|
64
110
|
}
|
|
65
|
-
|
|
66
|
-
const
|
|
111
|
+
// Find files with basic exclusions for performance, filter afterward with gitignore
|
|
112
|
+
const { stdout } = await execAsync(`find . -type f ${findPattern} -not -path "*/node_modules/*" -not -path "*/.git/*" -not -path "*/dist/*" -not -path "*/build/*" -not -path "*/coverage/*" -not -path "*/.next/*" -not -path "*/.nuxt/*" -not -path "*/out/*" -not -path "*/.cache/*" | head -n ${maxResults * 3}`, { cwd, maxBuffer: 1024 * 1024 });
|
|
113
|
+
const allFiles = stdout
|
|
67
114
|
.trim()
|
|
68
115
|
.split('\n')
|
|
69
116
|
.filter(Boolean)
|
|
70
|
-
.map(line =>
|
|
117
|
+
.map(line => line.replace(/^\.\//, ''));
|
|
118
|
+
// Filter using gitignore
|
|
119
|
+
const matches = [];
|
|
120
|
+
for (const file of allFiles) {
|
|
121
|
+
if (!ig.ignores(file)) {
|
|
122
|
+
matches.push({ file });
|
|
123
|
+
// Stop once we have enough matches
|
|
124
|
+
if (matches.length >= maxResults) {
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
71
129
|
return {
|
|
72
130
|
matches,
|
|
73
|
-
truncated: matches.length >= maxResults,
|
|
131
|
+
truncated: allFiles.length >= maxResults * 3 || matches.length >= maxResults,
|
|
74
132
|
totalMatches: matches.length,
|
|
75
133
|
};
|
|
76
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-files.js","sourceRoot":"","sources":["../../source/tools/search-files.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"search-files.js","sourceRoot":"","sources":["../../source/tools/search-files.tsx"],"names":[],"mappings":"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"}
|
|
@@ -125,11 +125,11 @@ export const PROVIDER_TEMPLATES = [
|
|
|
125
125
|
{
|
|
126
126
|
name: 'providerName',
|
|
127
127
|
prompt: 'Provider name',
|
|
128
|
-
default: '
|
|
128
|
+
default: 'OpenRouter',
|
|
129
129
|
},
|
|
130
130
|
],
|
|
131
131
|
buildConfig: answers => ({
|
|
132
|
-
name: answers.providerName || '
|
|
132
|
+
name: answers.providerName || 'OpenRouter',
|
|
133
133
|
baseUrl: 'https://openrouter.ai/api/v1',
|
|
134
134
|
apiKey: answers.apiKey,
|
|
135
135
|
models: answers.model
|
|
@@ -64,7 +64,7 @@ test('openrouter template: single model', t => {
|
|
|
64
64
|
const template = PROVIDER_TEMPLATES.find(t => t.id === 'openrouter');
|
|
65
65
|
t.truthy(template);
|
|
66
66
|
const config = template.buildConfig({
|
|
67
|
-
providerName: '
|
|
67
|
+
providerName: 'OpenRouter',
|
|
68
68
|
apiKey: 'test-key',
|
|
69
69
|
model: 'z-ai/glm-4.6',
|
|
70
70
|
});
|
|
@@ -74,7 +74,7 @@ test('openrouter template: multiple comma-separated models', t => {
|
|
|
74
74
|
const template = PROVIDER_TEMPLATES.find(t => t.id === 'openrouter');
|
|
75
75
|
t.truthy(template);
|
|
76
76
|
const config = template.buildConfig({
|
|
77
|
-
providerName: '
|
|
77
|
+
providerName: 'OpenRouter',
|
|
78
78
|
apiKey: 'test-key',
|
|
79
79
|
model: 'z-ai/glm-4.6, anthropic/claude-3-opus, openai/gpt-4',
|
|
80
80
|
});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nanocollective/nanocoder",
|
|
3
3
|
"main": "dist/cli.js",
|
|
4
|
-
"version": "1.14.
|
|
4
|
+
"version": "1.14.1",
|
|
5
5
|
"description": "A local-first CLI coding agent that brings the power of agentic coding tools like Claude Code and Gemini CLI to local models or controlled APIs like OpenRouter",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"cli",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"build": "tsc && tsc-alias && chmod +x dist/cli.js",
|
|
35
35
|
"dev": "tsc --watch",
|
|
36
36
|
"start": "node dist/cli.js",
|
|
37
|
-
"test:all": "./test.sh",
|
|
37
|
+
"test:all": "./scripts/test.sh",
|
|
38
38
|
"test:ava": "ava",
|
|
39
39
|
"test:ava:coverage": "c8 ava",
|
|
40
40
|
"test:format": "prettier --check .",
|
|
@@ -54,9 +54,11 @@
|
|
|
54
54
|
"@langchain/openai": "^0.6.15",
|
|
55
55
|
"@mishieck/ink-titled-box": "^0.3.0",
|
|
56
56
|
"@modelcontextprotocol/sdk": "^1.17.3",
|
|
57
|
+
"@nanocollective/get-md": "^1.0.0",
|
|
57
58
|
"cheerio": "^1.1.2",
|
|
58
59
|
"cli-highlight": "^2.1.11",
|
|
59
60
|
"dotenv": "^17.2.3",
|
|
61
|
+
"ignore": "^7.0.5",
|
|
60
62
|
"ink": "^6.3.1",
|
|
61
63
|
"ink-big-text": "^2.0.0",
|
|
62
64
|
"ink-gradient": "^3.0.0",
|