ns-dsh-llm-devin 0.4.2 → 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 +0 -9
- package/dist/adapter.js +2 -45
- package/dist/adapter.js.map +1 -1
- package/package.json +1 -1
package/dist/adapter.d.ts
CHANGED
|
@@ -16,15 +16,6 @@ export declare class DevinAdapter extends LlmAdapter {
|
|
|
16
16
|
private readonly options;
|
|
17
17
|
constructor(options: DevinAdapterOptions);
|
|
18
18
|
providerInfo(provider: string): LlmProviderInfo;
|
|
19
|
-
private refreshPromise;
|
|
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;
|
|
26
|
-
/** Start a stale-catalog refresh without making the caller wait for it. */
|
|
27
|
-
private refreshInBackground;
|
|
28
19
|
private toModelInfo;
|
|
29
20
|
listModels(provider: string): Promise<readonly LlmModelInfo[]>;
|
|
30
21
|
resolveModel(provider: string, model: string, _signal?: AbortSignal): Promise<LlmResolvedModelInfo>;
|
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,39 +21,6 @@ export class DevinAdapter extends LlmAdapter {
|
|
|
21
21
|
providerInfo(provider) {
|
|
22
22
|
return { id: provider, name: this.options.displayName };
|
|
23
23
|
}
|
|
24
|
-
refreshPromise;
|
|
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
|
-
/** Start a stale-catalog refresh without making the caller wait for it. */
|
|
52
|
-
refreshInBackground() {
|
|
53
|
-
if (!isCacheStale())
|
|
54
|
-
return;
|
|
55
|
-
void this.refreshCatalog();
|
|
56
|
-
}
|
|
57
24
|
toModelInfo(provider, model) {
|
|
58
25
|
return {
|
|
59
26
|
provider,
|
|
@@ -64,20 +31,10 @@ export class DevinAdapter extends LlmAdapter {
|
|
|
64
31
|
}
|
|
65
32
|
async listModels(provider) {
|
|
66
33
|
// The Harness awaits this while it builds the model list. Serve the disk
|
|
67
|
-
// cache (or the seed)
|
|
68
|
-
this.refreshInBackground();
|
|
34
|
+
// cache (or the seed). `ns-bridge models refresh` updates that file.
|
|
69
35
|
return getCachedModels().map((model) => this.toModelInfo(provider, model));
|
|
70
36
|
}
|
|
71
37
|
async resolveModel(provider, model, _signal) {
|
|
72
|
-
const cached = getCachedModels().find((candidate) => candidate.id === model);
|
|
73
|
-
if (cached) {
|
|
74
|
-
this.refreshInBackground();
|
|
75
|
-
return this.toResolved(provider, cached);
|
|
76
|
-
}
|
|
77
|
-
// The id is not in the seed or the disk cache. One refresh distinguishes
|
|
78
|
-
// "the account has this model" from a typo. Startup resolves ids that are
|
|
79
|
-
// already cached, so this wait is a lookup, not host boot.
|
|
80
|
-
await this.refreshCatalog();
|
|
81
38
|
const known = getCachedModels().find((candidate) => candidate.id === model);
|
|
82
39
|
if (!known)
|
|
83
40
|
throw new LlmError(`Unknown Devin model: ${model}`, "UNKNOWN_MODEL");
|
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":"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"}
|