dsh-super-code 0.3.6 → 0.3.8
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 +95 -63
- package/client/index.js +1049 -47
- package/cordis.patch.yml +1 -1
- package/docs/Changelog.md +19 -0
- package/docs/Compatibility.md +44 -0
- package/docs/EvaluationResults.md +134 -58
- package/docs/UsageGuide.md +112 -0
- package/lib/connection/directories.d.ts +30 -0
- package/lib/connection/directories.d.ts.map +1 -0
- package/lib/connection/directories.js +82 -0
- package/lib/connection/directories.js.map +1 -0
- package/lib/connection/git.d.ts +5 -0
- package/lib/connection/git.d.ts.map +1 -0
- package/lib/connection/git.js +86 -0
- package/lib/connection/git.js.map +1 -0
- package/lib/connection/http.d.ts +38 -0
- package/lib/connection/http.d.ts.map +1 -0
- package/lib/connection/http.js +275 -0
- package/lib/connection/http.js.map +1 -0
- package/lib/connection/service.d.ts +57 -0
- package/lib/connection/service.d.ts.map +1 -0
- package/lib/connection/service.js +168 -0
- package/lib/connection/service.js.map +1 -0
- package/lib/connection/store.d.ts +21 -0
- package/lib/connection/store.d.ts.map +1 -0
- package/lib/connection/store.js +139 -0
- package/lib/connection/store.js.map +1 -0
- package/lib/connection/tasks.d.ts +84 -0
- package/lib/connection/tasks.d.ts.map +1 -0
- package/lib/connection/tasks.js +270 -0
- package/lib/connection/tasks.js.map +1 -0
- package/lib/connection/types.d.ts +90 -0
- package/lib/connection/types.d.ts.map +1 -0
- package/lib/connection/types.js +21 -0
- package/lib/connection/types.js.map +1 -0
- package/lib/core/deletion-command.d.ts +3 -0
- package/lib/core/deletion-command.d.ts.map +1 -0
- package/lib/core/deletion-command.js +169 -0
- package/lib/core/deletion-command.js.map +1 -0
- package/lib/dsh/budgets.d.ts +5 -0
- package/lib/dsh/budgets.d.ts.map +1 -1
- package/lib/dsh/budgets.js +11 -0
- package/lib/dsh/budgets.js.map +1 -1
- package/lib/dsh/connection-host.d.ts +81 -0
- package/lib/dsh/connection-host.d.ts.map +1 -0
- package/lib/dsh/connection-host.js +130 -0
- package/lib/dsh/connection-host.js.map +1 -0
- package/lib/dsh/connection.d.ts +72 -0
- package/lib/dsh/connection.d.ts.map +1 -0
- package/lib/dsh/connection.js +183 -0
- package/lib/dsh/connection.js.map +1 -0
- package/lib/dsh/deletion-protection.d.ts +13 -0
- package/lib/dsh/deletion-protection.d.ts.map +1 -0
- package/lib/dsh/deletion-protection.js +68 -0
- package/lib/dsh/deletion-protection.js.map +1 -0
- package/lib/dsh/index.d.ts.map +1 -1
- package/lib/dsh/index.js +6 -0
- package/lib/dsh/index.js.map +1 -1
- package/lib/task-feedback-projection.d.ts +68 -0
- package/lib/task-feedback-projection.d.ts.map +1 -0
- package/lib/task-feedback-projection.js +176 -0
- package/lib/task-feedback-projection.js.map +1 -0
- package/package.json +7 -6
- package/presets/super-code/agent.cordis.yml +1 -1
package/lib/dsh/budgets.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"budgets.d.ts","sourceRoot":"","sources":["../../src/dsh/budgets.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,OAAO,CAAC,MAAM,0BAA0B,CAAA;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAIlD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,WAAW,CAAC;QACpB,UAAU,IAAI,CAAC,CAAC,GAAG,GAAG;YAAI,QAAQ,CAAC,EAAE,OAAO,CAAA;SAAE;KAC/C;CACF;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,eAAO,MAAM,YAAY,EAAE,CAAC,CAAC,OAAO,CASlC,CAAA;AAGF,eAAO,MAAM,2BAA2B,EAAE,CAAC,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"budgets.d.ts","sourceRoot":"","sources":["../../src/dsh/budgets.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,OAAO,CAAC,MAAM,0BAA0B,CAAA;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAIlD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,WAAW,CAAC;QACpB,UAAU,IAAI,CAAC,CAAC,GAAG,GAAG;YAAI,QAAQ,CAAC,EAAE,OAAO,CAAA;SAAE;KAC/C;CACF;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAA;AAEjE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAA;IAC9D,QAAQ,CAAC,oCAAoC,CAAC,EAAE,OAAO,CAAA;IACvD,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,eAAO,MAAM,YAAY,EAAE,CAAC,CAAC,OAAO,CASlC,CAAA;AAGF,eAAO,MAAM,2BAA2B,EAAE,CAAC,CAAC,aAAa,CAOvD,CAAA;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,CAAC,aAAa,CAO/C,CAAA;AAyBF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAE1E;AAED,8FAA8F;AAC9F,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,oBAAoB,CAAC,GAAG,sBAAsB,CAGhH;AAED,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAMxE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAG3E"}
|
package/lib/dsh/budgets.js
CHANGED
|
@@ -14,18 +14,24 @@ export const budgetSchema = z.object({
|
|
|
14
14
|
// SettingsProvider resolves plain data; volatile references belong only to Loader entries.
|
|
15
15
|
export const settingsConfigurationSchema = z.object({
|
|
16
16
|
applyToOfficialPresets: z.boolean().description('Apply common runtime budgets to Standard, PTC, Minimal and Create presets (default: off).'),
|
|
17
|
+
deletionProtection: z.union(['off', 'relaxed', 'strict', z.boolean()]).description('Deletion protection: off, relaxed (default; prefer trash, honor explicit rm requests), or strict (one-time confirmation). Legacy false/true mean off/strict.'),
|
|
18
|
+
deletionProtectionForOfficialPresets: z.boolean().description('Also protect official presets, independently of budget settings (default: off).'),
|
|
17
19
|
budgets: budgetSchema.description('Optional runtime budgets; leave blank to follow the host.'),
|
|
18
20
|
maxTasks: z.number().step(1).min(1).max(128),
|
|
19
21
|
maxContextBytes: z.number().step(1).min(1024).max(262144),
|
|
20
22
|
});
|
|
21
23
|
export const configurationSchema = z.object({
|
|
22
24
|
applyToOfficialPresets: settingsConfigurationSchema.dict.applyToOfficialPresets.extra('volatile', true),
|
|
25
|
+
deletionProtection: settingsConfigurationSchema.dict.deletionProtection.extra('volatile', true),
|
|
26
|
+
deletionProtectionForOfficialPresets: settingsConfigurationSchema.dict.deletionProtectionForOfficialPresets.extra('volatile', true),
|
|
23
27
|
budgets: settingsConfigurationSchema.dict.budgets.extra('volatile', true),
|
|
24
28
|
maxTasks: settingsConfigurationSchema.dict.maxTasks.extra('volatile', true),
|
|
25
29
|
maxContextBytes: settingsConfigurationSchema.dict.maxContextBytes.extra('volatile', true),
|
|
26
30
|
});
|
|
27
31
|
const validConfiguration = json.object({
|
|
28
32
|
applyToOfficialPresets: json.boolean().optional(),
|
|
33
|
+
deletionProtection: json.union([json.enum(['off', 'relaxed', 'strict']), json.boolean()]).optional(),
|
|
34
|
+
deletionProtectionForOfficialPresets: json.boolean().optional(),
|
|
29
35
|
budgets: json.object({
|
|
30
36
|
pressureBasis: json.enum(['host', 'window']).optional(),
|
|
31
37
|
thresholdRatio: json.number().min(0.01).max(1).optional(),
|
|
@@ -50,6 +56,11 @@ const validConfiguration = json.object({
|
|
|
50
56
|
export function validateConfiguration(config) {
|
|
51
57
|
return validConfiguration.parse(config);
|
|
52
58
|
}
|
|
59
|
+
/** Preserve saved boolean choices while new installations default to prompt-only guidance. */
|
|
60
|
+
export function deletionProtectionMode(config) {
|
|
61
|
+
const value = config.deletionProtection;
|
|
62
|
+
return value === true ? 'strict' : value === false ? 'off' : value ?? 'relaxed';
|
|
63
|
+
}
|
|
53
64
|
/** Newer Loader schemas expose volatile fields as references; older hosts return plain values. */
|
|
54
65
|
export function configurationValues(config) {
|
|
55
66
|
return validateConfiguration(Object.fromEntries(Object.entries(config).flatMap(([key, value]) => {
|
package/lib/dsh/budgets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"budgets.js","sourceRoot":"","sources":["../../src/dsh/budgets.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAExC,OAAO,EAAE,CAAC,IAAI,IAAI,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"budgets.js","sourceRoot":"","sources":["../../src/dsh/budgets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/** Structural adapter over public host services, shared by supported v3/v4 journals. */
|
|
2
|
+
import type { SessionEvent } from '@deepseek-ai/dsh-session';
|
|
3
|
+
import type { DelegationHost, HostObservation } from '../connection/types.js';
|
|
4
|
+
import type { PresetInstallationStatus } from './preset-installation.js';
|
|
5
|
+
interface HostAgent {
|
|
6
|
+
status: string;
|
|
7
|
+
cancel(cause: {
|
|
8
|
+
kind: 'user';
|
|
9
|
+
}, options: {
|
|
10
|
+
keepInbox: boolean;
|
|
11
|
+
}): void;
|
|
12
|
+
}
|
|
13
|
+
interface SessionCut extends Disposable {
|
|
14
|
+
events: readonly SessionEvent[];
|
|
15
|
+
inheritedEventCount: number;
|
|
16
|
+
}
|
|
17
|
+
interface Descendant {
|
|
18
|
+
id: string;
|
|
19
|
+
parentId: string;
|
|
20
|
+
kind: string;
|
|
21
|
+
mode?: string;
|
|
22
|
+
activity?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface ConnectionHostServices {
|
|
25
|
+
presets: {
|
|
26
|
+
status(): Promise<PresetInstallationStatus>;
|
|
27
|
+
};
|
|
28
|
+
controller: {
|
|
29
|
+
create(request: {
|
|
30
|
+
sessionId: string;
|
|
31
|
+
cwd: string;
|
|
32
|
+
agentPreset: string;
|
|
33
|
+
}): Promise<{
|
|
34
|
+
sessionId: string;
|
|
35
|
+
agentPreset?: string;
|
|
36
|
+
}>;
|
|
37
|
+
prompt(request: {
|
|
38
|
+
sessionId: string;
|
|
39
|
+
requestId: string;
|
|
40
|
+
mode: 'queue';
|
|
41
|
+
content: {
|
|
42
|
+
type: 'text';
|
|
43
|
+
text: string;
|
|
44
|
+
}[];
|
|
45
|
+
}, signal: AbortSignal): Promise<unknown>;
|
|
46
|
+
};
|
|
47
|
+
agents: {
|
|
48
|
+
get(id: string): HostAgent | undefined;
|
|
49
|
+
};
|
|
50
|
+
query: {
|
|
51
|
+
observeSession(id: string, options: {
|
|
52
|
+
projectionMode: 'none';
|
|
53
|
+
signal: AbortSignal;
|
|
54
|
+
}): Promise<SessionCut>;
|
|
55
|
+
};
|
|
56
|
+
subagents: {
|
|
57
|
+
listDescendants(id: string, signal?: AbortSignal): Promise<Descendant[]>;
|
|
58
|
+
interrupt(id: string, authority: {
|
|
59
|
+
kind: 'user';
|
|
60
|
+
parentSessionId: string;
|
|
61
|
+
}): Promise<unknown>;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
interface SessionFacts {
|
|
65
|
+
status: HostObservation['status'];
|
|
66
|
+
output: string;
|
|
67
|
+
}
|
|
68
|
+
/** Own events only; idle without a settled, admitted request is not a completed task. */
|
|
69
|
+
export declare function connectionSessionFacts(events: readonly SessionEvent[], agentStatus: string, requestId: string, cancelling?: boolean): SessionFacts;
|
|
70
|
+
export declare class ConnectionHost implements DelegationHost {
|
|
71
|
+
private readonly services;
|
|
72
|
+
constructor(services: ConnectionHostServices);
|
|
73
|
+
preset(): Promise<string>;
|
|
74
|
+
create(sessionId: string, cwd: string, preset: string): Promise<void>;
|
|
75
|
+
prompt(sessionId: string, requestId: string, prompt: string): Promise<void>;
|
|
76
|
+
private facts;
|
|
77
|
+
observe(sessionId: string, requestId: string, cancelling?: boolean): Promise<HostObservation>;
|
|
78
|
+
cancel(sessionId: string): Promise<void>;
|
|
79
|
+
}
|
|
80
|
+
export {};
|
|
81
|
+
//# sourceMappingURL=connection-host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-host.d.ts","sourceRoot":"","sources":["../../src/dsh/connection-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { ConnectionError } from '../connection/types.js';
|
|
2
|
+
function record(value) { return value && typeof value === 'object' ? value : {}; }
|
|
3
|
+
/** Own events only; idle without a settled, admitted request is not a completed task. */
|
|
4
|
+
export function connectionSessionFacts(events, agentStatus, requestId, cancelling = false) {
|
|
5
|
+
let admitted = requestId === '', requestSeq = -1, endSeq = -1, reason = '', output = '';
|
|
6
|
+
const approvals = new Set(), external = new Set();
|
|
7
|
+
for (const event of events) {
|
|
8
|
+
const data = record(event.data), type = event.type;
|
|
9
|
+
if (type === 'user/message' && data.source?.rpcId === requestId) {
|
|
10
|
+
admitted = true;
|
|
11
|
+
requestSeq = event.seq;
|
|
12
|
+
output = '';
|
|
13
|
+
}
|
|
14
|
+
if (type === 'turn/start') {
|
|
15
|
+
reason = '';
|
|
16
|
+
approvals.clear();
|
|
17
|
+
}
|
|
18
|
+
if (type === 'turn/end') {
|
|
19
|
+
endSeq = event.seq;
|
|
20
|
+
reason = data.reason?.kind ?? '';
|
|
21
|
+
approvals.clear();
|
|
22
|
+
}
|
|
23
|
+
if (type === 'approval/asked' && typeof data.id === 'string')
|
|
24
|
+
approvals.add(data.id);
|
|
25
|
+
if (type === 'approval/decided')
|
|
26
|
+
approvals.delete(data.id);
|
|
27
|
+
if (type === 'subagent/start' && data.runId)
|
|
28
|
+
external.add(data.runId);
|
|
29
|
+
if (type === 'subagent/end')
|
|
30
|
+
external.delete(data.runId);
|
|
31
|
+
if (type === 'assistant/message' && admitted && event.seq > requestSeq) {
|
|
32
|
+
const content = data.message?.content ?? data.content;
|
|
33
|
+
if (Array.isArray(content)) {
|
|
34
|
+
const text = content.filter(block => block?.type === 'text' && typeof block.text === 'string').map(block => block.text).join('\n');
|
|
35
|
+
if (text)
|
|
36
|
+
output = text.slice(-12000);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (approvals.size)
|
|
41
|
+
return { status: 'waiting_confirmation', output };
|
|
42
|
+
if (agentStatus === 'running' || external.size)
|
|
43
|
+
return { status: agentStatus === 'missing' ? 'unavailable' : 'running', output };
|
|
44
|
+
if (cancelling && agentStatus === 'idle')
|
|
45
|
+
return { status: 'interrupted', output };
|
|
46
|
+
if (!admitted || endSeq <= requestSeq || !reason)
|
|
47
|
+
return { status: agentStatus === 'missing' ? 'unavailable' : 'running', output };
|
|
48
|
+
if (reason === 'error' || reason === 'max-tokens')
|
|
49
|
+
return { status: 'failed', output };
|
|
50
|
+
if (['aborted', 'interrupted', 'forked'].includes(reason))
|
|
51
|
+
return { status: 'interrupted', output };
|
|
52
|
+
if (reason === 'blocked')
|
|
53
|
+
return { status: 'waiting_confirmation', output };
|
|
54
|
+
return { status: reason === 'completed' ? 'finished' : 'unavailable', output };
|
|
55
|
+
}
|
|
56
|
+
export class ConnectionHost {
|
|
57
|
+
services;
|
|
58
|
+
constructor(services) {
|
|
59
|
+
this.services = services;
|
|
60
|
+
}
|
|
61
|
+
async preset() {
|
|
62
|
+
const preset = await this.services.presets.status();
|
|
63
|
+
if (!['available', 'installed'].includes(preset.state))
|
|
64
|
+
throw new ConnectionError('super-code-preset-unavailable');
|
|
65
|
+
return preset.id;
|
|
66
|
+
}
|
|
67
|
+
async create(sessionId, cwd, preset) {
|
|
68
|
+
const created = await this.services.controller.create({ sessionId, cwd, agentPreset: preset });
|
|
69
|
+
if (created.sessionId !== sessionId || created.agentPreset !== undefined && created.agentPreset !== preset)
|
|
70
|
+
throw new ConnectionError('session-identity-mismatch');
|
|
71
|
+
}
|
|
72
|
+
async prompt(sessionId, requestId, prompt) {
|
|
73
|
+
await this.services.controller.prompt({ sessionId, requestId, mode: 'queue', content: [{ type: 'text', text: prompt }] }, new AbortController().signal);
|
|
74
|
+
}
|
|
75
|
+
async facts(id, requestId, cancelling = false) {
|
|
76
|
+
const cut = await this.services.query.observeSession(id, { projectionMode: 'none', signal: AbortSignal.timeout(5000) });
|
|
77
|
+
try {
|
|
78
|
+
return connectionSessionFacts(cut.events.slice(cut.inheritedEventCount), this.services.agents.get(id)?.status ?? 'missing', requestId, cancelling);
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
cut[Symbol.dispose]();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async observe(sessionId, requestId, cancelling = false) {
|
|
85
|
+
try {
|
|
86
|
+
const root = await this.facts(sessionId, requestId, cancelling);
|
|
87
|
+
const children = await this.services.subagents.listDescendants(sessionId, AbortSignal.timeout(5000));
|
|
88
|
+
let status = root.status;
|
|
89
|
+
for (const child of children) {
|
|
90
|
+
if (child.kind === 'diagnostic') {
|
|
91
|
+
status = 'unavailable';
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
if (child.mode === 'external')
|
|
95
|
+
continue; // Root start/end run facts track these activations.
|
|
96
|
+
const facts = await this.facts(child.id, '', cancelling);
|
|
97
|
+
if (facts.status === 'waiting_confirmation') {
|
|
98
|
+
status = 'waiting_confirmation';
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
if (facts.status === 'unavailable') {
|
|
102
|
+
status = 'unavailable';
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
if (facts.status === 'running' && status !== 'waiting_confirmation')
|
|
106
|
+
status = 'running';
|
|
107
|
+
}
|
|
108
|
+
return { status, output: root.output, detail: status === 'finished' ? 'Root and managed descendants settled. Acceptance has not been verified.'
|
|
109
|
+
: status === 'waiting_confirmation' ? 'Resolve the pending permission or blocked turn in DSH.' : `DSH task tree: ${status}.` };
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return { status: 'unavailable', output: '', detail: 'Could not observe the complete DSH task tree. No request was replayed.' };
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
async cancel(sessionId) {
|
|
116
|
+
// Clear queued follow-ups as well as aborting the root, so cancellation cannot wake another turn.
|
|
117
|
+
this.services.agents.get(sessionId)?.cancel({ kind: 'user' }, { keepInbox: false });
|
|
118
|
+
const children = await this.services.subagents.listDescendants(sessionId, AbortSignal.timeout(5000));
|
|
119
|
+
for (const child of [...children].reverse()) {
|
|
120
|
+
if (child.kind === 'diagnostic')
|
|
121
|
+
throw new ConnectionError('cancellation-unconfirmed');
|
|
122
|
+
const agent = this.services.agents.get(child.id);
|
|
123
|
+
agent?.cancel({ kind: 'user' }, { keepInbox: false });
|
|
124
|
+
if (child.mode === 'external' || agent?.status === 'running') {
|
|
125
|
+
await this.services.subagents.interrupt(child.id, { kind: 'user', parentSessionId: child.parentId });
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=connection-host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-host.js","sourceRoot":"","sources":["../../src/dsh/connection-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
+
import { TypertRemoteService } from '@deepseek-ai/dsh-typert-protocol';
|
|
3
|
+
import { ConnectionService } from '../connection/service.js';
|
|
4
|
+
import type { ConnectionSaveResult, ConnectionSnapshot } from '../connection/service.js';
|
|
5
|
+
interface DirectoryListing {
|
|
6
|
+
path: string;
|
|
7
|
+
home: string;
|
|
8
|
+
crumbs: {
|
|
9
|
+
name: string;
|
|
10
|
+
path: string;
|
|
11
|
+
hidden: boolean;
|
|
12
|
+
}[];
|
|
13
|
+
entries: {
|
|
14
|
+
name: string;
|
|
15
|
+
path: string;
|
|
16
|
+
hidden: boolean;
|
|
17
|
+
}[];
|
|
18
|
+
truncated: boolean;
|
|
19
|
+
}
|
|
20
|
+
interface SettingsEnvironment {
|
|
21
|
+
workspaces: false | {
|
|
22
|
+
list(): {
|
|
23
|
+
path: string;
|
|
24
|
+
title: string;
|
|
25
|
+
}[];
|
|
26
|
+
};
|
|
27
|
+
picker: false | {
|
|
28
|
+
capability(): {
|
|
29
|
+
kind: string;
|
|
30
|
+
pick?(signal: AbortSignal): Promise<string | null>;
|
|
31
|
+
list?(path?: string, signal?: AbortSignal): Promise<DirectoryListing>;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export declare class SuperCodeConnection extends TypertRemoteService {
|
|
36
|
+
private readonly current;
|
|
37
|
+
private readonly environment;
|
|
38
|
+
constructor(ctx: Context, current: () => ConnectionService | false, environment?: SettingsEnvironment);
|
|
39
|
+
private service;
|
|
40
|
+
readConfig(): ConnectionSnapshot;
|
|
41
|
+
saveConfig(content: string, expected: string): Promise<ConnectionSaveResult>;
|
|
42
|
+
revealToken(): {
|
|
43
|
+
token: string;
|
|
44
|
+
};
|
|
45
|
+
rotateToken(expected: string): Promise<ConnectionSaveResult>;
|
|
46
|
+
overview(): ReturnType<ConnectionService['overview']>;
|
|
47
|
+
disconnectClient(id: string): Promise<{
|
|
48
|
+
disconnected: true;
|
|
49
|
+
}>;
|
|
50
|
+
pendingDirectories(): ReturnType<ConnectionService['pendingDirectories']>;
|
|
51
|
+
resolveDirectory(id: string, decision: string): ReturnType<ConnectionService['resolveDirectory']>;
|
|
52
|
+
directories(): Promise<{
|
|
53
|
+
items: {
|
|
54
|
+
path: string;
|
|
55
|
+
title: string;
|
|
56
|
+
available: boolean;
|
|
57
|
+
workspace: boolean;
|
|
58
|
+
}[];
|
|
59
|
+
picker: string;
|
|
60
|
+
available: boolean;
|
|
61
|
+
}>;
|
|
62
|
+
pickDirectory(signal: AbortSignal): Promise<{
|
|
63
|
+
kind: 'selected';
|
|
64
|
+
path: string;
|
|
65
|
+
} | {
|
|
66
|
+
kind: 'cancelled';
|
|
67
|
+
}>;
|
|
68
|
+
browseDirectory(path: string, signal: AbortSignal): Promise<DirectoryListing>;
|
|
69
|
+
}
|
|
70
|
+
export declare function applyConnection(ctx: Context): void;
|
|
71
|
+
export {};
|
|
72
|
+
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/dsh/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
2
|
+
var useValue = arguments.length > 2;
|
|
3
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
4
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
5
|
+
}
|
|
6
|
+
return useValue ? value : void 0;
|
|
7
|
+
};
|
|
8
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
9
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
10
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
11
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
12
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
13
|
+
var _, done = false;
|
|
14
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
15
|
+
var context = {};
|
|
16
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
17
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
18
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
19
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
20
|
+
if (kind === "accessor") {
|
|
21
|
+
if (result === void 0) continue;
|
|
22
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
23
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
24
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
25
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
26
|
+
}
|
|
27
|
+
else if (_ = accept(result)) {
|
|
28
|
+
if (kind === "field") initializers.unshift(_);
|
|
29
|
+
else descriptor[key] = _;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
33
|
+
done = true;
|
|
34
|
+
};
|
|
35
|
+
import { Remote, TypertRemoteService } from '@deepseek-ai/dsh-typert-protocol';
|
|
36
|
+
import { fileURLToPath } from 'node:url';
|
|
37
|
+
import { readFile, realpath, stat } from 'node:fs/promises';
|
|
38
|
+
import { dirname, join } from 'node:path';
|
|
39
|
+
import { ConnectionService } from '../connection/service.js';
|
|
40
|
+
import { ConnectionError, defaultConnectionConfig } from '../connection/types.js';
|
|
41
|
+
import { ConnectionStore } from '../connection/store.js';
|
|
42
|
+
import { ConnectionHost } from './connection-host.js';
|
|
43
|
+
let SuperCodeConnection = (() => {
|
|
44
|
+
let _classSuper = TypertRemoteService;
|
|
45
|
+
let _instanceExtraInitializers = [];
|
|
46
|
+
let _readConfig_decorators;
|
|
47
|
+
let _saveConfig_decorators;
|
|
48
|
+
let _revealToken_decorators;
|
|
49
|
+
let _rotateToken_decorators;
|
|
50
|
+
let _overview_decorators;
|
|
51
|
+
let _disconnectClient_decorators;
|
|
52
|
+
let _pendingDirectories_decorators;
|
|
53
|
+
let _resolveDirectory_decorators;
|
|
54
|
+
let _directories_decorators;
|
|
55
|
+
let _pickDirectory_decorators;
|
|
56
|
+
let _browseDirectory_decorators;
|
|
57
|
+
return class SuperCodeConnection extends _classSuper {
|
|
58
|
+
static {
|
|
59
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
60
|
+
_readConfig_decorators = [Remote];
|
|
61
|
+
_saveConfig_decorators = [Remote];
|
|
62
|
+
_revealToken_decorators = [Remote];
|
|
63
|
+
_rotateToken_decorators = [Remote];
|
|
64
|
+
_overview_decorators = [Remote];
|
|
65
|
+
_disconnectClient_decorators = [Remote];
|
|
66
|
+
_pendingDirectories_decorators = [Remote];
|
|
67
|
+
_resolveDirectory_decorators = [Remote];
|
|
68
|
+
_directories_decorators = [Remote];
|
|
69
|
+
_pickDirectory_decorators = [Remote];
|
|
70
|
+
_browseDirectory_decorators = [Remote];
|
|
71
|
+
__esDecorate(this, null, _readConfig_decorators, { kind: "method", name: "readConfig", static: false, private: false, access: { has: obj => "readConfig" in obj, get: obj => obj.readConfig }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
72
|
+
__esDecorate(this, null, _saveConfig_decorators, { kind: "method", name: "saveConfig", static: false, private: false, access: { has: obj => "saveConfig" in obj, get: obj => obj.saveConfig }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
73
|
+
__esDecorate(this, null, _revealToken_decorators, { kind: "method", name: "revealToken", static: false, private: false, access: { has: obj => "revealToken" in obj, get: obj => obj.revealToken }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
74
|
+
__esDecorate(this, null, _rotateToken_decorators, { kind: "method", name: "rotateToken", static: false, private: false, access: { has: obj => "rotateToken" in obj, get: obj => obj.rotateToken }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
75
|
+
__esDecorate(this, null, _overview_decorators, { kind: "method", name: "overview", static: false, private: false, access: { has: obj => "overview" in obj, get: obj => obj.overview }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
76
|
+
__esDecorate(this, null, _disconnectClient_decorators, { kind: "method", name: "disconnectClient", static: false, private: false, access: { has: obj => "disconnectClient" in obj, get: obj => obj.disconnectClient }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
77
|
+
__esDecorate(this, null, _pendingDirectories_decorators, { kind: "method", name: "pendingDirectories", static: false, private: false, access: { has: obj => "pendingDirectories" in obj, get: obj => obj.pendingDirectories }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
78
|
+
__esDecorate(this, null, _resolveDirectory_decorators, { kind: "method", name: "resolveDirectory", static: false, private: false, access: { has: obj => "resolveDirectory" in obj, get: obj => obj.resolveDirectory }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
79
|
+
__esDecorate(this, null, _directories_decorators, { kind: "method", name: "directories", static: false, private: false, access: { has: obj => "directories" in obj, get: obj => obj.directories }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
80
|
+
__esDecorate(this, null, _pickDirectory_decorators, { kind: "method", name: "pickDirectory", static: false, private: false, access: { has: obj => "pickDirectory" in obj, get: obj => obj.pickDirectory }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
81
|
+
__esDecorate(this, null, _browseDirectory_decorators, { kind: "method", name: "browseDirectory", static: false, private: false, access: { has: obj => "browseDirectory" in obj, get: obj => obj.browseDirectory }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
82
|
+
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
83
|
+
}
|
|
84
|
+
current = __runInitializers(this, _instanceExtraInitializers);
|
|
85
|
+
environment;
|
|
86
|
+
constructor(ctx, current, environment = { workspaces: false, picker: false }) {
|
|
87
|
+
super(ctx, 'superCodeConnection');
|
|
88
|
+
this.current = current;
|
|
89
|
+
this.environment = environment;
|
|
90
|
+
}
|
|
91
|
+
service() { const service = this.current(); if (!service)
|
|
92
|
+
throw new ConnectionError('unavailable'); return service; }
|
|
93
|
+
readConfig() { return this.current() ? this.service().read() : { configuration: structuredClone(defaultConnectionConfig), revision: 0, writable: false, state: 'error', error: 'unavailable', url: '' }; }
|
|
94
|
+
saveConfig(content, expected) { return this.service().save(content, expected); }
|
|
95
|
+
revealToken() { return this.service().reveal(); }
|
|
96
|
+
rotateToken(expected) { return this.service().rotate(expected); }
|
|
97
|
+
overview() { return this.current() ? this.service().overview() : { connections: [], sessions: [] }; }
|
|
98
|
+
disconnectClient(id) { return this.service().disconnect(id); }
|
|
99
|
+
pendingDirectories() { return this.current() ? this.service().pendingDirectories() : []; }
|
|
100
|
+
resolveDirectory(id, decision) { return this.service().resolveDirectory(id, decision); }
|
|
101
|
+
async directories() {
|
|
102
|
+
const workspaces = this.environment.workspaces ? this.environment.workspaces.list() : [];
|
|
103
|
+
const config = this.current() ? this.service().read().configuration : defaultConnectionConfig;
|
|
104
|
+
// Registry entities expose these fields through prototype getters.
|
|
105
|
+
const rows = [...workspaces.map(row => ({ path: row.path, title: row.title, workspace: true })),
|
|
106
|
+
...[...config.knownDirectories, ...config.allowedDirectories].map(path => ({ path, title: '', workspace: false }))];
|
|
107
|
+
const items = await Promise.all(rows.slice(0, 500).map(async (row) => {
|
|
108
|
+
try {
|
|
109
|
+
const path = await realpath(row.path);
|
|
110
|
+
return { path, title: row.title, workspace: row.workspace, available: (await stat(path)).isDirectory() };
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return { path: row.path, title: row.title, workspace: row.workspace, available: false };
|
|
114
|
+
}
|
|
115
|
+
}));
|
|
116
|
+
return { items: items.filter((row, index) => items.findIndex(other => other.path === row.path) === index),
|
|
117
|
+
picker: this.environment.picker ? this.environment.picker.capability().kind : 'unavailable', available: !!this.environment.workspaces };
|
|
118
|
+
}
|
|
119
|
+
async pickDirectory(signal) {
|
|
120
|
+
const picker = this.environment.picker && this.environment.picker.capability();
|
|
121
|
+
if (!picker || picker.kind !== 'native' || !picker.pick)
|
|
122
|
+
throw new ConnectionError('picker-unavailable');
|
|
123
|
+
const path = await picker.pick(signal);
|
|
124
|
+
return path === null ? { kind: 'cancelled' } : { kind: 'selected', path };
|
|
125
|
+
}
|
|
126
|
+
async browseDirectory(path, signal) {
|
|
127
|
+
const picker = this.environment.picker && this.environment.picker.capability();
|
|
128
|
+
if (!picker || picker.kind !== 'browse' || !picker.list)
|
|
129
|
+
throw new ConnectionError('picker-unavailable');
|
|
130
|
+
return picker.list(path || undefined, signal);
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
})();
|
|
134
|
+
export { SuperCodeConnection };
|
|
135
|
+
export function applyConnection(ctx) {
|
|
136
|
+
let service = false;
|
|
137
|
+
const environment = { workspaces: false, picker: false };
|
|
138
|
+
new SuperCodeConnection(ctx, () => service, environment);
|
|
139
|
+
ctx.inject(['workspaceRegistry'], owner => {
|
|
140
|
+
environment.workspaces = owner.get('workspaceRegistry');
|
|
141
|
+
owner.effect(() => () => { environment.workspaces = false; });
|
|
142
|
+
});
|
|
143
|
+
ctx.inject(['directoryPicker'], owner => {
|
|
144
|
+
environment.picker = owner.get('directoryPicker');
|
|
145
|
+
owner.effect(() => () => { environment.picker = false; });
|
|
146
|
+
});
|
|
147
|
+
const profileServices = 'profileContext' in ctx ? ['profileContext'] : [];
|
|
148
|
+
ctx.inject([...profileServices, 'sessionController', 'agents', 'sessionQuery', 'subagents', 'superCodePresets'], async (owner) => {
|
|
149
|
+
let directory;
|
|
150
|
+
try {
|
|
151
|
+
if (profileServices.length) {
|
|
152
|
+
const profile = owner.get('profileContext');
|
|
153
|
+
directory = dirname(profile.patchPath);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
// Early hosts expose the profile only as the boot context base URL. Verify its manifest.
|
|
157
|
+
const baseUrl = owner.root.baseUrl;
|
|
158
|
+
if (!baseUrl)
|
|
159
|
+
throw new Error('Profile base URL unavailable');
|
|
160
|
+
directory = fileURLToPath(baseUrl);
|
|
161
|
+
const manifest = JSON.parse(await readFile(join(directory, 'package.json'), 'utf8'));
|
|
162
|
+
if (!Array.isArray(manifest.dsh?.profile?.bundles))
|
|
163
|
+
throw new Error('Not a profile');
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
owner.logger.warn('Super Code connection requires a persistent host profile.');
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
const host = new ConnectionHost({ presets: owner.get('superCodePresets'), controller: owner.get('sessionController'),
|
|
171
|
+
agents: owner.get('agents'), query: owner.get('sessionQuery'), subagents: owner.get('subagents') });
|
|
172
|
+
const connection = new ConnectionService(new ConnectionStore(join(directory, 'super-code-connection')), host);
|
|
173
|
+
try {
|
|
174
|
+
await connection.initialize();
|
|
175
|
+
service = connection;
|
|
176
|
+
owner.effect(() => () => { service = false; return connection.close(); });
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
owner.logger.warn('Super Code connection storage is unavailable or already owned by another host. No endpoint was started.');
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/dsh/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Global registration with per-preset eligibility; no shell rewriting or remembered grants. */
|
|
2
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
3
|
+
declare module '@deepseek-ai/dsh-llm' {
|
|
4
|
+
interface MessageSourceMap {
|
|
5
|
+
'dsh-super-code/deletion-protection': {
|
|
6
|
+
kind: 'dsh-super-code/deletion-protection';
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export declare const DELETION_INSTRUCTION: string;
|
|
11
|
+
export declare const RELAXED_DELETION_INSTRUCTION: string;
|
|
12
|
+
export declare function applyDeletionProtection(ctx: Context): void;
|
|
13
|
+
//# sourceMappingURL=deletion-protection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deletion-protection.d.ts","sourceRoot":"","sources":["../../src/dsh/deletion-protection.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AASlD,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,gBAAgB;QAAG,oCAAoC,EAAE;YAAE,IAAI,EAAE,oCAAoC,CAAA;SAAE,CAAA;KAAE;CACpH;AAED,eAAO,MAAM,oBAAoB,EAAE,MAA6xB,CAAA;AAEh0B,eAAO,MAAM,4BAA4B,EAAE,MAA+uB,CAAA;AAa1xB,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CA4C1D"}
|