ns-dsh-llm-devin 0.4.1 → 0.4.3
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/dist/adapter.d.ts +2 -7
- package/dist/adapter.js +12 -33
- package/dist/adapter.js.map +1 -1
- package/package.json +3 -3
package/dist/adapter.d.ts
CHANGED
|
@@ -16,15 +16,10 @@ export declare class DevinAdapter extends LlmAdapter {
|
|
|
16
16
|
private readonly options;
|
|
17
17
|
constructor(options: DevinAdapterOptions);
|
|
18
18
|
providerInfo(provider: string): LlmProviderInfo;
|
|
19
|
-
private
|
|
20
|
-
/**
|
|
21
|
-
* `GetCliModelConfigs` refreshes the catalog when the disk cache is stale.
|
|
22
|
-
* A failed refresh leaves the stale (or seed) catalog in place — listing
|
|
23
|
-
* must never fail just because discovery could not reach the server.
|
|
24
|
-
*/
|
|
25
|
-
private refreshCatalog;
|
|
19
|
+
private toModelInfo;
|
|
26
20
|
listModels(provider: string): Promise<readonly LlmModelInfo[]>;
|
|
27
21
|
resolveModel(provider: string, model: string, _signal?: AbortSignal): Promise<LlmResolvedModelInfo>;
|
|
22
|
+
private toResolved;
|
|
28
23
|
stream(options: GenerateOptions): AsyncIterable<StreamChunk>;
|
|
29
24
|
private streamInner;
|
|
30
25
|
}
|
package/dist/adapter.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ABOUTME: The Harness LLM seam over devin-core.
|
|
2
2
|
import { LlmAdapter, LlmError, } from "@deepseek-ai/dsh-llm";
|
|
3
3
|
import { streamToDsh } from "ns-bridge-core/dsh";
|
|
4
|
-
import {
|
|
4
|
+
import { getCachedModels, streamDevin } from "ns-devin-core";
|
|
5
5
|
import { toLlmError } from "./errors.js";
|
|
6
6
|
import { toDevinMessages } from "./messages.js";
|
|
7
7
|
const EFFORT_NAMES = {
|
|
@@ -21,47 +21,26 @@ export class DevinAdapter extends LlmAdapter {
|
|
|
21
21
|
providerInfo(provider) {
|
|
22
22
|
return { id: provider, name: this.options.displayName };
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
* `GetCliModelConfigs` refreshes the catalog when the disk cache is stale.
|
|
27
|
-
* A failed refresh leaves the stale (or seed) catalog in place — listing
|
|
28
|
-
* must never fail just because discovery could not reach the server.
|
|
29
|
-
*/
|
|
30
|
-
refreshCatalog() {
|
|
31
|
-
this.refreshPromise ??= (async () => {
|
|
32
|
-
try {
|
|
33
|
-
if (!isCacheStale())
|
|
34
|
-
return;
|
|
35
|
-
const credentials = await this.options.credentials();
|
|
36
|
-
const fetched = await fetchDevinModels({ apiKey: credentials.access });
|
|
37
|
-
if (fetched)
|
|
38
|
-
updateDevinModelsCache(fetched);
|
|
39
|
-
}
|
|
40
|
-
catch (error) {
|
|
41
|
-
logger.warn("model discovery refresh failed", {
|
|
42
|
-
message: error instanceof Error ? error.message : String(error),
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
finally {
|
|
46
|
-
this.refreshPromise = undefined;
|
|
47
|
-
}
|
|
48
|
-
})();
|
|
49
|
-
return this.refreshPromise;
|
|
50
|
-
}
|
|
51
|
-
async listModels(provider) {
|
|
52
|
-
await this.refreshCatalog();
|
|
53
|
-
return getCachedModels().map((model) => ({
|
|
24
|
+
toModelInfo(provider, model) {
|
|
25
|
+
return {
|
|
54
26
|
provider,
|
|
55
27
|
id: model.id,
|
|
56
28
|
name: model.name,
|
|
57
29
|
inputModalities: model.input.filter((modality) => modality === "text" || modality === "image"),
|
|
58
|
-
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
async listModels(provider) {
|
|
33
|
+
// The Harness awaits this while it builds the model list. Serve the disk
|
|
34
|
+
// cache (or the seed). `ns-bridge models refresh` updates that file.
|
|
35
|
+
return getCachedModels().map((model) => this.toModelInfo(provider, model));
|
|
59
36
|
}
|
|
60
37
|
async resolveModel(provider, model, _signal) {
|
|
61
|
-
await this.refreshCatalog();
|
|
62
38
|
const known = getCachedModels().find((candidate) => candidate.id === model);
|
|
63
39
|
if (!known)
|
|
64
40
|
throw new LlmError(`Unknown Devin model: ${model}`, "UNKNOWN_MODEL");
|
|
41
|
+
return this.toResolved(provider, known);
|
|
42
|
+
}
|
|
43
|
+
toResolved(provider, known) {
|
|
65
44
|
return {
|
|
66
45
|
provider,
|
|
67
46
|
id: known.id,
|
package/dist/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAGjD,OAAO,EAEL,UAAU,EACV,QAAQ,GAMT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAGjD,OAAO,EAEL,UAAU,EACV,QAAQ,GAMT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAA2D,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAchD,MAAM,YAAY,GAAgC;IAChD,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,YAAY;IACnB,GAAG,EAAE,SAAS;CACf,CAAC;AAEF,MAAM,OAAO,YAAa,SAAQ,UAAU;IACb;IAA7B,YAA6B,OAA4B;QACvD,KAAK,EAAE,CAAC;QADmB,YAAO,GAAP,OAAO,CAAqB;IAEzD,CAAC;IAED,YAAY,CAAC,QAAgB;QAC3B,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC1D,CAAC;IAEO,WAAW,CAAC,QAAgB,EAAE,KAAiD;QACrF,OAAO;YACL,QAAQ;YACR,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,CAAC;SAC/F,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB;QAC/B,yEAAyE;QACzE,qEAAqE;QACrE,OAAO,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,KAAa,EAAE,OAAqB;QACvE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,QAAQ,CAAC,wBAAwB,KAAK,EAAE,EAAE,eAAe,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEO,UAAU,CAAC,QAAgB,EAAE,KAAiD;QACpF,OAAO;YACL,QAAQ;YACR,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,CAAC;YAC9F,OAAO,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;YAC/C,gBAAgB,EAAE,KAAK,CAAC,SAAS;YACjC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM;gBACvB,CAAC,CAAC;oBACE,SAAS,EAAE;wBACT,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;4BACtC,EAAE,EAAE,MAA2B;4BAC/B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;yBAC3B,CAAC,CAAC;qBACJ;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,OAAwB;QACpC,IAAI,CAAC;YACH,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4EAA4E;YAC5E,0EAA0E;YAC1E,sDAAsD;YACtD,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,CAAC,WAAW,CAAC,OAAwB;QACjD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,QAAQ,CAAC,wBAAwB,OAAO,CAAC,KAAK,EAAE,EAAE,eAAe,CAAC,CAAC;QAEzF,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE;YACxD,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE;YACzC,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,4EAA4E;QAC5E,4EAA4E;QAC5E,uDAAuD;QACvD,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;QAErG,MAAM,KAAK,GAA4B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACnE,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC,CAAC;QAEJ,sEAAsE;QACtE,uDAAuD;QACvD,KAAK,CAAC,CAAC,WAAW,CAChB,WAAW,CAAC;YACV,KAAK;YACL,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,YAAY,EAAE,MAAM;YACpB,KAAK;YACL,MAAM,EAAE,OAAO,CAAC,eAA0C;YAC1D,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CACH,CAAC;IACJ,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ns-dsh-llm-devin",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"description": "DeepSeek Harness (dsh) LLM adapter adding Devin (Cognition Cascade) as a model provider",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
],
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@deepseek-ai/schemastery": "^3.18.2",
|
|
38
|
-
"ns-devin-core": "0.4.
|
|
39
|
-
"ns-bridge-core": "0.3.
|
|
38
|
+
"ns-devin-core": "0.4.2",
|
|
39
|
+
"ns-bridge-core": "0.3.2"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"@deepseek-ai/cordis": "^4.0.2",
|