@dsh-enhanced/coding-subscription-provider 0.1.1 → 0.1.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/README.md +81 -30
- package/lib/adapter.d.ts +34 -3
- package/lib/adapter.d.ts.map +1 -1
- package/lib/adapter.js +288 -71
- package/lib/adapter.js.map +1 -1
- package/lib/codex-direct-auth.d.ts +34 -0
- package/lib/codex-direct-auth.d.ts.map +1 -0
- package/lib/codex-direct-auth.js +604 -0
- package/lib/codex-direct-auth.js.map +1 -0
- package/lib/codex-direct-responses.d.ts +50 -0
- package/lib/codex-direct-responses.d.ts.map +1 -0
- package/lib/codex-direct-responses.js +1585 -0
- package/lib/codex-direct-responses.js.map +1 -0
- package/lib/config.d.ts +16 -1
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +34 -1
- package/lib/config.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +32 -4
- package/lib/index.js.map +1 -1
- package/lib/process.d.ts +6 -0
- package/lib/process.d.ts.map +1 -1
- package/lib/process.js +26 -4
- package/lib/process.js.map +1 -1
- package/lib/prompt.d.ts.map +1 -1
- package/lib/prompt.js +33 -2
- package/lib/prompt.js.map +1 -1
- package/lib/session-cwd.d.ts +24 -0
- package/lib/session-cwd.d.ts.map +1 -0
- package/lib/session-cwd.js +39 -0
- package/lib/session-cwd.js.map +1 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +14 -4
package/lib/prompt.js
CHANGED
|
@@ -23,13 +23,43 @@ function serializeBlock(block) {
|
|
|
23
23
|
function serializeMessage(message) {
|
|
24
24
|
return { role: message.role, content: message.content.map(serializeBlock) };
|
|
25
25
|
}
|
|
26
|
+
function skillCatalogSource(message) {
|
|
27
|
+
const source = message.source;
|
|
28
|
+
if (source.kind !== 'skill-catalog' || source.form !== 'catalog' || !Array.isArray(source.entries))
|
|
29
|
+
return undefined;
|
|
30
|
+
for (const entry of source.entries) {
|
|
31
|
+
if (entry === null || typeof entry !== 'object' || Array.isArray(entry))
|
|
32
|
+
return undefined;
|
|
33
|
+
const fields = entry;
|
|
34
|
+
if (typeof fields.name !== 'string' || fields.name.length === 0 || typeof fields.description !== 'string')
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
return source;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* A skill-catalog update is a complete replacement, but durable history retains the catalogs it
|
|
41
|
+
* supersedes. Compatibility providers do not serialize message sources, so remove only the older
|
|
42
|
+
* catalogs when the newest catalog explicitly carries the replacement marker.
|
|
43
|
+
*/
|
|
44
|
+
function effectiveMessages(messages) {
|
|
45
|
+
let newestCatalog = -1;
|
|
46
|
+
for (let index = messages.length - 1; index >= 0; index -= 1) {
|
|
47
|
+
if (skillCatalogSource(messages[index]) !== undefined) {
|
|
48
|
+
newestCatalog = index;
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (newestCatalog < 0 || skillCatalogSource(messages[newestCatalog])?.update !== true)
|
|
53
|
+
return messages;
|
|
54
|
+
return messages.filter((message, index) => index === newestCatalog || skillCatalogSource(message) === undefined);
|
|
55
|
+
}
|
|
26
56
|
/** Serialize one provider-neutral DSH call into a stateless coding-agent task. */
|
|
27
57
|
export function buildPrompt(options, maxPromptBytes) {
|
|
28
58
|
const request = {
|
|
29
59
|
protocol: 'dsh-coding-subscription-provider/v1',
|
|
30
60
|
instruction: 'Continue the conversation as the assistant. Return only the next assistant response. Do not modify files or execute commands.',
|
|
31
61
|
system: options.system ?? null,
|
|
32
|
-
conversation: options.messages.map(serializeMessage),
|
|
62
|
+
conversation: effectiveMessages(options.messages).map(serializeMessage),
|
|
33
63
|
constraints: {
|
|
34
64
|
tools: 'DSH tool schemas are not delegated through this compatibility adapter.',
|
|
35
65
|
stop: options.stop ?? null,
|
|
@@ -42,7 +72,8 @@ export function buildPrompt(options, maxPromptBytes) {
|
|
|
42
72
|
const prompt = `Act as a text model backend for DeepSeek Harness. The JSON request follows.\n${JSON.stringify(request)}`;
|
|
43
73
|
const size = Buffer.byteLength(prompt, 'utf8');
|
|
44
74
|
if (size > maxPromptBytes) {
|
|
45
|
-
throw new Error(`serialized DSH request is ${size} bytes; configured limit is ${maxPromptBytes}`
|
|
75
|
+
throw new Error(`serialized DSH request is ${size} bytes; configured limit is ${maxPromptBytes}. `
|
|
76
|
+
+ 'Raise `maxPromptBytes` for this plugin if the request is legitimately this large.', { cause: 'prompt-limit' });
|
|
46
77
|
}
|
|
47
78
|
return prompt;
|
|
48
79
|
}
|
package/lib/prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAkBA,SAAS,cAAc,CAAC,KAAmB;IACzC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;QAC3C,KAAK,WAAW;YACd,6EAA6E;YAC7E,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAA;QACtC,KAAK,WAAW;YACd,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;QAC1F,KAAK,aAAa;YAChB,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;aAC3C,CAAA;QACH,KAAK,OAAO;YACV,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAA;QAC1F;YACE,OAAO,EAAE,IAAI,EAAE,eAAe,MAAM,CAAE,KAA4B,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;IAChF,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACxC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAA;AAC7E,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,WAAW,CAAC,OAAwB,EAAE,cAAsB;IAC1E,MAAM,OAAO,GAAG;QACd,QAAQ,EAAE,qCAAqC;QAC/C,WAAW,EAAE,+HAA+H;QAC5I,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;QAC9B,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type GenerateOptions } from '@deepseek-ai/dsh-llm';
|
|
2
|
+
export interface LiveSessionCwd {
|
|
3
|
+
readonly id: NonNullable<GenerateOptions['sessionId']>;
|
|
4
|
+
readonly header: {
|
|
5
|
+
readonly cwd?: string;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export interface LiveSessionLookup {
|
|
9
|
+
get(id: NonNullable<GenerateOptions['sessionId']>): LiveSessionCwd | undefined;
|
|
10
|
+
}
|
|
11
|
+
export declare class TrustedSessionCwdError extends Error {
|
|
12
|
+
constructor();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Resolves the only cwd a local coding process may receive for this request.
|
|
16
|
+
* The marker is process-local and the session lookup is live, so copied request
|
|
17
|
+
* fields or a persisted/stale session id cannot select an arbitrary directory.
|
|
18
|
+
*/
|
|
19
|
+
export declare function resolveTrustedSessionCwd(input: {
|
|
20
|
+
request: GenerateOptions;
|
|
21
|
+
configuredCwd: string;
|
|
22
|
+
sessions: LiveSessionLookup | undefined;
|
|
23
|
+
}): string;
|
|
24
|
+
//# sourceMappingURL=session-cwd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-cwd.d.ts","sourceRoot":"","sources":["../src/session-cwd.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE/E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;IACtD,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC3C;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,GAAG,cAAc,GAAG,SAAS,CAAA;CAC/E;AAED,qBAAa,sBAAuB,SAAQ,KAAK;;CAIhD;AAWD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,OAAO,EAAE,eAAe,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,iBAAiB,GAAG,SAAS,CAAA;CACxC,GAAG,MAAM,CAaT"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { realpathSync } from 'node:fs';
|
|
2
|
+
import { isAbsolute } from 'node:path';
|
|
3
|
+
import { isAgentLoopRequest } from '@deepseek-ai/dsh-llm';
|
|
4
|
+
export class TrustedSessionCwdError extends Error {
|
|
5
|
+
constructor() {
|
|
6
|
+
super('local provider requires a matching live loop session and canonical cwd');
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
function canonicalDirectory(path) {
|
|
10
|
+
if (!isAbsolute(path))
|
|
11
|
+
throw new TrustedSessionCwdError();
|
|
12
|
+
try {
|
|
13
|
+
return realpathSync.native(path);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
throw new TrustedSessionCwdError();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Resolves the only cwd a local coding process may receive for this request.
|
|
21
|
+
* The marker is process-local and the session lookup is live, so copied request
|
|
22
|
+
* fields or a persisted/stale session id cannot select an arbitrary directory.
|
|
23
|
+
*/
|
|
24
|
+
export function resolveTrustedSessionCwd(input) {
|
|
25
|
+
const sessionId = input.request.sessionId;
|
|
26
|
+
if (sessionId === undefined || !Object.isFrozen(input.request) || !isAgentLoopRequest(input.request)) {
|
|
27
|
+
throw new TrustedSessionCwdError();
|
|
28
|
+
}
|
|
29
|
+
const session = input.sessions?.get(sessionId);
|
|
30
|
+
if (session === undefined || session.id !== sessionId || typeof session.header.cwd !== 'string') {
|
|
31
|
+
throw new TrustedSessionCwdError();
|
|
32
|
+
}
|
|
33
|
+
const configuredCwd = canonicalDirectory(input.configuredCwd);
|
|
34
|
+
const sessionCwd = canonicalDirectory(session.header.cwd);
|
|
35
|
+
if (configuredCwd !== sessionCwd)
|
|
36
|
+
throw new TrustedSessionCwdError();
|
|
37
|
+
return sessionCwd;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=session-cwd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-cwd.js","sourceRoot":"","sources":["../src/session-cwd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,kBAAkB,EAAwB,MAAM,sBAAsB,CAAA;AAW/E,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C;QACE,KAAK,CAAC,wEAAwE,CAAC,CAAA;IACjF,CAAC;CACF;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,sBAAsB,EAAE,CAAA;IACzD,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,sBAAsB,EAAE,CAAA;IACpC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAIxC;IACC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAA;IACzC,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACrG,MAAM,IAAI,sBAAsB,EAAE,CAAA;IACpC,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QAChG,MAAM,IAAI,sBAAsB,EAAE,CAAA;IACpC,CAAC;IACD,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC7D,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACzD,IAAI,aAAa,KAAK,UAAU;QAAE,MAAM,IAAI,sBAAsB,EAAE,CAAA;IACpE,OAAO,UAAU,CAAA;AACnB,CAAC"}
|
package/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "0.1.
|
|
1
|
+
export declare const version = "0.1.3";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/lib/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '0.1.
|
|
1
|
+
export const version = '0.1.3';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dsh-enhanced/coding-subscription-provider",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Use locally authenticated coding subscriptions as DeepSeek Harness model providers.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -47,15 +47,25 @@
|
|
|
47
47
|
}
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@deepseek-ai/schemastery": "3.18.1"
|
|
50
|
+
"@deepseek-ai/schemastery": "3.18.1",
|
|
51
|
+
"@dsh-enhanced/llm-route-capabilities": "0.1.3"
|
|
51
52
|
},
|
|
52
53
|
"peerDependencies": {
|
|
53
54
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
54
|
-
"@deepseek-ai/dsh-
|
|
55
|
+
"@deepseek-ai/dsh-attachment": ">=0.1.0-rc.8 <0.2.0",
|
|
56
|
+
"@deepseek-ai/dsh-llm": ">=0.1.0-rc.8 <0.2.0",
|
|
57
|
+
"@deepseek-ai/dsh-session": ">=0.1.0-rc.8 <0.2.0"
|
|
58
|
+
},
|
|
59
|
+
"peerDependenciesMeta": {
|
|
60
|
+
"@deepseek-ai/dsh-attachment": {
|
|
61
|
+
"optional": true
|
|
62
|
+
}
|
|
55
63
|
},
|
|
56
64
|
"devDependencies": {
|
|
57
65
|
"@deepseek-ai/cordis": "4.0.1",
|
|
58
|
-
"@deepseek-ai/dsh-
|
|
66
|
+
"@deepseek-ai/dsh-attachment": "0.1.0-rc.8",
|
|
67
|
+
"@deepseek-ai/dsh-llm": "0.1.0-rc.8",
|
|
68
|
+
"@deepseek-ai/dsh-session": "0.1.0-rc.8",
|
|
59
69
|
"@types/node": "22.20.0",
|
|
60
70
|
"typescript": "6.0.3",
|
|
61
71
|
"vitest": "4.1.8"
|