@openma/deepseek-harness-acp 0.4.27 → 0.4.28
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/cordis.patch.yml +8 -0
- package/dist/bridge.js +30 -25
- package/dist/plugin.js +58 -33
- package/dist/server.js +30 -25
- package/package.json +57 -58
- package/vendor/dsh-runtime.tgz +0 -0
- package/vendor/runtime.json +2 -2
package/cordis.patch.yml
CHANGED
|
@@ -20,6 +20,14 @@
|
|
|
20
20
|
- id: hmr
|
|
21
21
|
disabled: true
|
|
22
22
|
|
|
23
|
+
# Newer dsh versions seed the acp profile with their own ACP transport.
|
|
24
|
+
# This bundle owns stdout and must replace that transport.
|
|
25
|
+
- id: acp
|
|
26
|
+
disabled: true
|
|
27
|
+
|
|
28
|
+
- id: acp-app-startup
|
|
29
|
+
disabled: true
|
|
30
|
+
|
|
23
31
|
# Model-facing tool rows move off the host plane and into each agent preset's
|
|
24
32
|
# own composition (standard/code/minimal/cordis ship complete agent.cordis.yml
|
|
25
33
|
# files) — the same split the web-app bundle makes, and what gives "minimal"
|
package/dist/bridge.js
CHANGED
|
@@ -1911,26 +1911,27 @@ function installAcpUserQuestionProvider(service, options) {
|
|
|
1911
1911
|
let router = routers.get(owner);
|
|
1912
1912
|
if (router === void 0) {
|
|
1913
1913
|
const routes = [];
|
|
1914
|
-
const
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
);
|
|
1925
|
-
}
|
|
1926
|
-
return askUserQuestionsOverAcp(request, sessionId, route.create);
|
|
1914
|
+
const ask = async (request, next) => {
|
|
1915
|
+
for (let index = routes.length - 1; index >= 0; index -= 1) {
|
|
1916
|
+
const route = routes[index];
|
|
1917
|
+
const sessionId = route?.sessionIdForRequest(request);
|
|
1918
|
+
if (route === void 0 || sessionId === void 0) continue;
|
|
1919
|
+
if (!route.formSupported()) {
|
|
1920
|
+
throw new UserQuestionError(
|
|
1921
|
+
"the ACP client does not support form elicitation",
|
|
1922
|
+
"CLIENT_UNSUPPORTED"
|
|
1923
|
+
);
|
|
1927
1924
|
}
|
|
1928
|
-
|
|
1929
|
-
"ACP user interaction requires a live root session",
|
|
1930
|
-
"ASK_MISSING_AGENT"
|
|
1931
|
-
);
|
|
1925
|
+
return askUserQuestionsOverAcp(request, sessionId, route.create);
|
|
1932
1926
|
}
|
|
1933
|
-
|
|
1927
|
+
if (next !== void 0) return next();
|
|
1928
|
+
throw new UserQuestionError(
|
|
1929
|
+
"ACP user interaction requires a live root session",
|
|
1930
|
+
"ASK_MISSING_AGENT"
|
|
1931
|
+
);
|
|
1932
|
+
};
|
|
1933
|
+
const legacy = service;
|
|
1934
|
+
const disposeProvider = typeof legacy.registerProvider === "function" ? legacy.registerProvider({ ask }) : service.ctx.root.on("user-questions/request", ask);
|
|
1934
1935
|
router = { routes, disposeProvider };
|
|
1935
1936
|
routers.set(owner, router);
|
|
1936
1937
|
}
|
|
@@ -1973,6 +1974,9 @@ function presetDisplayName(preset) {
|
|
|
1973
1974
|
// src/bridge/index.ts
|
|
1974
1975
|
var name3 = "acp-bridge";
|
|
1975
1976
|
var inject3 = ["agents", "credentials", "llm", "agentDefaultModel", "sessionPersistence", "approval", "permissionPresets", "commands", "agentPresets", "skills", "subagents", "userQuestions"];
|
|
1977
|
+
function readSessionEvents(session) {
|
|
1978
|
+
return session.snapshotEvents?.() ?? session.events ?? [];
|
|
1979
|
+
}
|
|
1976
1980
|
function invalidParams(detail) {
|
|
1977
1981
|
return RequestError.invalidParams(void 0, detail);
|
|
1978
1982
|
}
|
|
@@ -2354,8 +2358,7 @@ async function apply3(ctx, config = {}) {
|
|
|
2354
2358
|
);
|
|
2355
2359
|
if (presetId !== void 0) record.preset = presetId;
|
|
2356
2360
|
{
|
|
2357
|
-
const
|
|
2358
|
-
const storedMode = permission.current(events);
|
|
2361
|
+
const storedMode = currentPermission(record);
|
|
2359
2362
|
if (storedMode !== void 0) record.modeId = storedMode;
|
|
2360
2363
|
for (let index = events.length - 1; index >= 0; index -= 1) {
|
|
2361
2364
|
const event = events[index];
|
|
@@ -2550,6 +2553,10 @@ async function apply3(ctx, config = {}) {
|
|
|
2550
2553
|
record.approvals = policy;
|
|
2551
2554
|
};
|
|
2552
2555
|
const permissionService = () => permissionPresets;
|
|
2556
|
+
const currentPermission = (record) => {
|
|
2557
|
+
const session = record.agent.session;
|
|
2558
|
+
return permissionService().current(typeof session.snapshotEvents === "function" ? session : readSessionEvents(session));
|
|
2559
|
+
};
|
|
2553
2560
|
const permissionPresentation = (id) => {
|
|
2554
2561
|
const spec = permissionService().resolve(id);
|
|
2555
2562
|
const stock = MODE_LABELS[id];
|
|
@@ -2635,7 +2642,7 @@ async function apply3(ctx, config = {}) {
|
|
|
2635
2642
|
});
|
|
2636
2643
|
}
|
|
2637
2644
|
if (commandRuntime.list(record.agent).some((command) => command.name === "plan")) {
|
|
2638
|
-
const active = [...record.agent.session
|
|
2645
|
+
const active = [...readSessionEvents(record.agent.session)].reverse().map((event) => event).find((event) => event.type === "plan/mode")?.data?.["active"] === true;
|
|
2639
2646
|
result.push({
|
|
2640
2647
|
type: "select",
|
|
2641
2648
|
id: "collaboration_mode",
|
|
@@ -2803,10 +2810,8 @@ async function apply3(ctx, config = {}) {
|
|
|
2803
2810
|
});
|
|
2804
2811
|
};
|
|
2805
2812
|
const syncPermissionState = (record, sessionId) => {
|
|
2806
|
-
const events = record.agent.session
|
|
2807
|
-
|
|
2808
|
-
const permission = permissionService();
|
|
2809
|
-
const storedMode = permission.current(events);
|
|
2813
|
+
const events = readSessionEvents(record.agent.session);
|
|
2814
|
+
const storedMode = currentPermission(record);
|
|
2810
2815
|
for (let index = events.length - 1; index >= 0; index -= 1) {
|
|
2811
2816
|
const event = events[index];
|
|
2812
2817
|
if (event?.type === "approval/policy") {
|
package/dist/plugin.js
CHANGED
|
@@ -1913,26 +1913,27 @@ function installAcpUserQuestionProvider(service, options) {
|
|
|
1913
1913
|
let router = routers.get(owner);
|
|
1914
1914
|
if (router === void 0) {
|
|
1915
1915
|
const routes = [];
|
|
1916
|
-
const
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
);
|
|
1927
|
-
}
|
|
1928
|
-
return askUserQuestionsOverAcp(request, sessionId, route.create);
|
|
1916
|
+
const ask = async (request, next) => {
|
|
1917
|
+
for (let index = routes.length - 1; index >= 0; index -= 1) {
|
|
1918
|
+
const route = routes[index];
|
|
1919
|
+
const sessionId = route?.sessionIdForRequest(request);
|
|
1920
|
+
if (route === void 0 || sessionId === void 0) continue;
|
|
1921
|
+
if (!route.formSupported()) {
|
|
1922
|
+
throw new UserQuestionError(
|
|
1923
|
+
"the ACP client does not support form elicitation",
|
|
1924
|
+
"CLIENT_UNSUPPORTED"
|
|
1925
|
+
);
|
|
1929
1926
|
}
|
|
1930
|
-
|
|
1931
|
-
"ACP user interaction requires a live root session",
|
|
1932
|
-
"ASK_MISSING_AGENT"
|
|
1933
|
-
);
|
|
1927
|
+
return askUserQuestionsOverAcp(request, sessionId, route.create);
|
|
1934
1928
|
}
|
|
1935
|
-
|
|
1929
|
+
if (next !== void 0) return next();
|
|
1930
|
+
throw new UserQuestionError(
|
|
1931
|
+
"ACP user interaction requires a live root session",
|
|
1932
|
+
"ASK_MISSING_AGENT"
|
|
1933
|
+
);
|
|
1934
|
+
};
|
|
1935
|
+
const legacy = service;
|
|
1936
|
+
const disposeProvider = typeof legacy.registerProvider === "function" ? legacy.registerProvider({ ask }) : service.ctx.root.on("user-questions/request", ask);
|
|
1936
1937
|
router = { routes, disposeProvider };
|
|
1937
1938
|
routers.set(owner, router);
|
|
1938
1939
|
}
|
|
@@ -1975,6 +1976,9 @@ function presetDisplayName(preset) {
|
|
|
1975
1976
|
// src/bridge/index.ts
|
|
1976
1977
|
var name3 = "acp-bridge";
|
|
1977
1978
|
var inject3 = ["agents", "credentials", "llm", "agentDefaultModel", "sessionPersistence", "approval", "permissionPresets", "commands", "agentPresets", "skills", "subagents", "userQuestions"];
|
|
1979
|
+
function readSessionEvents(session) {
|
|
1980
|
+
return session.snapshotEvents?.() ?? session.events ?? [];
|
|
1981
|
+
}
|
|
1978
1982
|
function invalidParams(detail) {
|
|
1979
1983
|
return RequestError.invalidParams(void 0, detail);
|
|
1980
1984
|
}
|
|
@@ -2356,8 +2360,7 @@ async function apply3(ctx, config = {}) {
|
|
|
2356
2360
|
);
|
|
2357
2361
|
if (presetId !== void 0) record.preset = presetId;
|
|
2358
2362
|
{
|
|
2359
|
-
const
|
|
2360
|
-
const storedMode = permission.current(events);
|
|
2363
|
+
const storedMode = currentPermission(record);
|
|
2361
2364
|
if (storedMode !== void 0) record.modeId = storedMode;
|
|
2362
2365
|
for (let index = events.length - 1; index >= 0; index -= 1) {
|
|
2363
2366
|
const event = events[index];
|
|
@@ -2552,6 +2555,10 @@ async function apply3(ctx, config = {}) {
|
|
|
2552
2555
|
record.approvals = policy;
|
|
2553
2556
|
};
|
|
2554
2557
|
const permissionService = () => permissionPresets;
|
|
2558
|
+
const currentPermission = (record) => {
|
|
2559
|
+
const session = record.agent.session;
|
|
2560
|
+
return permissionService().current(typeof session.snapshotEvents === "function" ? session : readSessionEvents(session));
|
|
2561
|
+
};
|
|
2555
2562
|
const permissionPresentation = (id) => {
|
|
2556
2563
|
const spec = permissionService().resolve(id);
|
|
2557
2564
|
const stock = MODE_LABELS[id];
|
|
@@ -2637,7 +2644,7 @@ async function apply3(ctx, config = {}) {
|
|
|
2637
2644
|
});
|
|
2638
2645
|
}
|
|
2639
2646
|
if (commandRuntime.list(record.agent).some((command) => command.name === "plan")) {
|
|
2640
|
-
const active = [...record.agent.session
|
|
2647
|
+
const active = [...readSessionEvents(record.agent.session)].reverse().map((event) => event).find((event) => event.type === "plan/mode")?.data?.["active"] === true;
|
|
2641
2648
|
result.push({
|
|
2642
2649
|
type: "select",
|
|
2643
2650
|
id: "collaboration_mode",
|
|
@@ -2805,10 +2812,8 @@ async function apply3(ctx, config = {}) {
|
|
|
2805
2812
|
});
|
|
2806
2813
|
};
|
|
2807
2814
|
const syncPermissionState = (record, sessionId) => {
|
|
2808
|
-
const events = record.agent.session
|
|
2809
|
-
|
|
2810
|
-
const permission = permissionService();
|
|
2811
|
-
const storedMode = permission.current(events);
|
|
2815
|
+
const events = readSessionEvents(record.agent.session);
|
|
2816
|
+
const storedMode = currentPermission(record);
|
|
2812
2817
|
for (let index = events.length - 1; index >= 0; index -= 1) {
|
|
2813
2818
|
const event = events[index];
|
|
2814
2819
|
if (event?.type === "approval/policy") {
|
|
@@ -3569,39 +3574,59 @@ function resolvedHostModule(ctx, specifier) {
|
|
|
3569
3574
|
for (const anchor of anchors) {
|
|
3570
3575
|
try {
|
|
3571
3576
|
return pathToFileURL(createRequire2(anchor).resolve(specifier)).href;
|
|
3572
|
-
} catch {
|
|
3577
|
+
} catch (error) {
|
|
3578
|
+
if (error.code === "ERR_PACKAGE_PATH_NOT_EXPORTED") return specifier;
|
|
3573
3579
|
}
|
|
3574
3580
|
}
|
|
3575
3581
|
return specifier;
|
|
3576
3582
|
}
|
|
3577
|
-
function
|
|
3583
|
+
function shippedPresetRoots(ctx) {
|
|
3578
3584
|
const anchors = [ctx.baseUrl, import.meta.url].filter((value) => typeof value === "string");
|
|
3579
3585
|
for (const anchor of anchors) {
|
|
3580
3586
|
try {
|
|
3581
3587
|
const manifest = createRequire2(anchor).resolve("@deepseek-ai/dsh/package.json");
|
|
3582
3588
|
const root = join(dirname(manifest), "config", "agent-presets");
|
|
3583
|
-
if (existsSync(root)) return root;
|
|
3589
|
+
if (existsSync(root)) return [{ path: root, trust: "system" }];
|
|
3584
3590
|
} catch {
|
|
3585
3591
|
}
|
|
3586
3592
|
}
|
|
3587
|
-
|
|
3593
|
+
for (const anchor of anchors) {
|
|
3594
|
+
try {
|
|
3595
|
+
const manifest = createRequire2(anchor).resolve("@deepseek-ai/dsh-agent-presets/package.json");
|
|
3596
|
+
if (existsSync(join(dirname(manifest), "presets"))) return [];
|
|
3597
|
+
} catch {
|
|
3598
|
+
}
|
|
3599
|
+
}
|
|
3600
|
+
throw new Error(
|
|
3601
|
+
"dsh-acp-plugin: cannot resolve the dsh shipped agent presets (looked for @deepseek-ai/dsh/config/agent-presets and a self-shipping @deepseek-ai/dsh-agent-presets)"
|
|
3602
|
+
);
|
|
3588
3603
|
}
|
|
3589
3604
|
async function mountService(ctx, service, specifier, config) {
|
|
3590
3605
|
if (ctx.get(service) !== void 0) return;
|
|
3606
|
+
const resolved = typeof config === "function" ? config() : config;
|
|
3591
3607
|
const exports = await ctx.loader.import(resolvedHostModule(ctx, specifier));
|
|
3592
3608
|
const plugin = ctx.loader.unwrapExports(exports);
|
|
3593
|
-
await ctx.plugin(plugin,
|
|
3609
|
+
await ctx.plugin(plugin, resolved);
|
|
3594
3610
|
if (ctx.get(service) === void 0) {
|
|
3595
3611
|
throw new Error(`dsh-acp-plugin: ${specifier} did not provide ${service}`);
|
|
3596
3612
|
}
|
|
3597
3613
|
}
|
|
3598
3614
|
async function apply5(ctx, config = {}) {
|
|
3599
3615
|
if (ctx.get("acpServer") !== void 0) return;
|
|
3600
|
-
await mountService(ctx, "agentPresets", "@deepseek-ai/dsh-agent-presets", {
|
|
3601
|
-
|
|
3602
|
-
|
|
3616
|
+
await mountService(ctx, "agentPresets", "@deepseek-ai/dsh-agent-presets", () => {
|
|
3617
|
+
const roots = shippedPresetRoots(ctx);
|
|
3618
|
+
return {
|
|
3619
|
+
default: "standard",
|
|
3620
|
+
// dsh 0.1.2's roster self-ships its presets (includeShippedRoot);
|
|
3621
|
+
// passing the legacy root there would duplicate the roster.
|
|
3622
|
+
...roots.length > 0 ? { roots } : {}
|
|
3623
|
+
};
|
|
3603
3624
|
});
|
|
3604
3625
|
await mountService(ctx, "dynamicCordisRunner", "@deepseek-ai/dsh-cordis-host-runner");
|
|
3626
|
+
const modelSettings = "@deepseek-ai/dsh-tool-subagent/model-selection-settings";
|
|
3627
|
+
if (ctx.get("subagentModelSelection") === void 0 && resolvedHostModule(ctx, modelSettings) !== modelSettings) {
|
|
3628
|
+
await mountService(ctx, "subagentModelSelection", modelSettings);
|
|
3629
|
+
}
|
|
3605
3630
|
await ctx.plugin(server_exports, config);
|
|
3606
3631
|
if (ctx.get("acpServer") === void 0) {
|
|
3607
3632
|
throw new Error("dsh-acp-plugin: ACP server did not activate");
|
package/dist/server.js
CHANGED
|
@@ -1907,26 +1907,27 @@ function installAcpUserQuestionProvider(service, options) {
|
|
|
1907
1907
|
let router = routers.get(owner);
|
|
1908
1908
|
if (router === void 0) {
|
|
1909
1909
|
const routes = [];
|
|
1910
|
-
const
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
);
|
|
1921
|
-
}
|
|
1922
|
-
return askUserQuestionsOverAcp(request, sessionId, route.create);
|
|
1910
|
+
const ask = async (request, next) => {
|
|
1911
|
+
for (let index = routes.length - 1; index >= 0; index -= 1) {
|
|
1912
|
+
const route = routes[index];
|
|
1913
|
+
const sessionId = route?.sessionIdForRequest(request);
|
|
1914
|
+
if (route === void 0 || sessionId === void 0) continue;
|
|
1915
|
+
if (!route.formSupported()) {
|
|
1916
|
+
throw new UserQuestionError(
|
|
1917
|
+
"the ACP client does not support form elicitation",
|
|
1918
|
+
"CLIENT_UNSUPPORTED"
|
|
1919
|
+
);
|
|
1923
1920
|
}
|
|
1924
|
-
|
|
1925
|
-
"ACP user interaction requires a live root session",
|
|
1926
|
-
"ASK_MISSING_AGENT"
|
|
1927
|
-
);
|
|
1921
|
+
return askUserQuestionsOverAcp(request, sessionId, route.create);
|
|
1928
1922
|
}
|
|
1929
|
-
|
|
1923
|
+
if (next !== void 0) return next();
|
|
1924
|
+
throw new UserQuestionError(
|
|
1925
|
+
"ACP user interaction requires a live root session",
|
|
1926
|
+
"ASK_MISSING_AGENT"
|
|
1927
|
+
);
|
|
1928
|
+
};
|
|
1929
|
+
const legacy = service;
|
|
1930
|
+
const disposeProvider = typeof legacy.registerProvider === "function" ? legacy.registerProvider({ ask }) : service.ctx.root.on("user-questions/request", ask);
|
|
1930
1931
|
router = { routes, disposeProvider };
|
|
1931
1932
|
routers.set(owner, router);
|
|
1932
1933
|
}
|
|
@@ -1969,6 +1970,9 @@ function presetDisplayName(preset) {
|
|
|
1969
1970
|
// src/bridge/index.ts
|
|
1970
1971
|
var name3 = "acp-bridge";
|
|
1971
1972
|
var inject3 = ["agents", "credentials", "llm", "agentDefaultModel", "sessionPersistence", "approval", "permissionPresets", "commands", "agentPresets", "skills", "subagents", "userQuestions"];
|
|
1973
|
+
function readSessionEvents(session) {
|
|
1974
|
+
return session.snapshotEvents?.() ?? session.events ?? [];
|
|
1975
|
+
}
|
|
1972
1976
|
function invalidParams(detail) {
|
|
1973
1977
|
return RequestError.invalidParams(void 0, detail);
|
|
1974
1978
|
}
|
|
@@ -2350,8 +2354,7 @@ async function apply3(ctx, config = {}) {
|
|
|
2350
2354
|
);
|
|
2351
2355
|
if (presetId !== void 0) record.preset = presetId;
|
|
2352
2356
|
{
|
|
2353
|
-
const
|
|
2354
|
-
const storedMode = permission.current(events);
|
|
2357
|
+
const storedMode = currentPermission(record);
|
|
2355
2358
|
if (storedMode !== void 0) record.modeId = storedMode;
|
|
2356
2359
|
for (let index = events.length - 1; index >= 0; index -= 1) {
|
|
2357
2360
|
const event = events[index];
|
|
@@ -2546,6 +2549,10 @@ async function apply3(ctx, config = {}) {
|
|
|
2546
2549
|
record.approvals = policy;
|
|
2547
2550
|
};
|
|
2548
2551
|
const permissionService = () => permissionPresets;
|
|
2552
|
+
const currentPermission = (record) => {
|
|
2553
|
+
const session = record.agent.session;
|
|
2554
|
+
return permissionService().current(typeof session.snapshotEvents === "function" ? session : readSessionEvents(session));
|
|
2555
|
+
};
|
|
2549
2556
|
const permissionPresentation = (id) => {
|
|
2550
2557
|
const spec = permissionService().resolve(id);
|
|
2551
2558
|
const stock = MODE_LABELS[id];
|
|
@@ -2631,7 +2638,7 @@ async function apply3(ctx, config = {}) {
|
|
|
2631
2638
|
});
|
|
2632
2639
|
}
|
|
2633
2640
|
if (commandRuntime.list(record.agent).some((command) => command.name === "plan")) {
|
|
2634
|
-
const active = [...record.agent.session
|
|
2641
|
+
const active = [...readSessionEvents(record.agent.session)].reverse().map((event) => event).find((event) => event.type === "plan/mode")?.data?.["active"] === true;
|
|
2635
2642
|
result.push({
|
|
2636
2643
|
type: "select",
|
|
2637
2644
|
id: "collaboration_mode",
|
|
@@ -2799,10 +2806,8 @@ async function apply3(ctx, config = {}) {
|
|
|
2799
2806
|
});
|
|
2800
2807
|
};
|
|
2801
2808
|
const syncPermissionState = (record, sessionId) => {
|
|
2802
|
-
const events = record.agent.session
|
|
2803
|
-
|
|
2804
|
-
const permission = permissionService();
|
|
2805
|
-
const storedMode = permission.current(events);
|
|
2809
|
+
const events = readSessionEvents(record.agent.session);
|
|
2810
|
+
const storedMode = currentPermission(record);
|
|
2806
2811
|
for (let index = events.length - 1; index >= 0; index -= 1) {
|
|
2807
2812
|
const event = events[index];
|
|
2808
2813
|
if (event?.type === "approval/policy") {
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.4.
|
|
6
|
+
"version": "0.4.28",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "git+https://github.com/openma-ai/deepseek-harness-acp.git"
|
|
@@ -53,62 +53,61 @@
|
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
55
55
|
"@deepseek-ai/cordis-plugin-timer": "^1.1.3",
|
|
56
|
-
"@deepseek-ai/dsh": "0.1.
|
|
57
|
-
"@deepseek-ai/dsh-agent": "0.1.
|
|
58
|
-
"@deepseek-ai/dsh-agent-instructions": "0.1.
|
|
59
|
-
"@deepseek-ai/dsh-agent-loop": "0.1.
|
|
60
|
-
"@deepseek-ai/dsh-
|
|
61
|
-
"@deepseek-ai/dsh-
|
|
62
|
-
"@deepseek-ai/dsh-
|
|
63
|
-
"@deepseek-ai/dsh-
|
|
64
|
-
"@deepseek-ai/dsh-
|
|
65
|
-
"@deepseek-ai/dsh-
|
|
66
|
-
"@deepseek-ai/dsh-compaction": "0.1.
|
|
67
|
-
"@deepseek-ai/dsh-compaction-
|
|
68
|
-
"@deepseek-ai/dsh-
|
|
69
|
-
"@deepseek-ai/dsh-credentials": "0.1.
|
|
70
|
-
"@deepseek-ai/dsh-
|
|
71
|
-
"@deepseek-ai/dsh-fs": "0.1.
|
|
72
|
-
"@deepseek-ai/dsh-fs-
|
|
73
|
-
"@deepseek-ai/dsh-fs-
|
|
74
|
-
"@deepseek-ai/dsh-
|
|
75
|
-
"@deepseek-ai/dsh-goal": "0.1.
|
|
76
|
-
"@deepseek-ai/dsh-
|
|
77
|
-
"@deepseek-ai/dsh-
|
|
78
|
-
"@deepseek-ai/dsh-
|
|
79
|
-
"@deepseek-ai/dsh-
|
|
80
|
-
"@deepseek-ai/dsh-
|
|
81
|
-
"@deepseek-ai/dsh-llm": "0.1.
|
|
82
|
-
"@deepseek-ai/dsh-llm-
|
|
83
|
-
"@deepseek-ai/dsh-
|
|
84
|
-
"@deepseek-ai/dsh-sandbox": "0.1.
|
|
85
|
-
"@deepseek-ai/dsh-sandbox-
|
|
86
|
-
"@deepseek-ai/dsh-
|
|
87
|
-
"@deepseek-ai/dsh-
|
|
88
|
-
"@deepseek-ai/dsh-session": "0.1.
|
|
89
|
-
"@deepseek-ai/dsh-session-
|
|
90
|
-
"@deepseek-ai/dsh-session-persistence": "0.1.
|
|
91
|
-
"@deepseek-ai/dsh-session-
|
|
92
|
-
"@deepseek-ai/dsh-session-
|
|
93
|
-
"@deepseek-ai/dsh-
|
|
94
|
-
"@deepseek-ai/dsh-
|
|
95
|
-
"@deepseek-ai/dsh-shell": "0.1.
|
|
96
|
-
"@deepseek-ai/dsh-
|
|
97
|
-
"@deepseek-ai/dsh-skill": "0.1.
|
|
98
|
-
"@deepseek-ai/dsh-
|
|
99
|
-
"@deepseek-ai/dsh-subprocess": "0.1.
|
|
100
|
-
"@deepseek-ai/dsh-
|
|
101
|
-
"@deepseek-ai/dsh-
|
|
102
|
-
"@deepseek-ai/dsh-
|
|
103
|
-
"@deepseek-ai/dsh-
|
|
104
|
-
"@deepseek-ai/dsh-tool-
|
|
105
|
-
"@deepseek-ai/dsh-tool-
|
|
106
|
-
"@deepseek-ai/dsh-tool-
|
|
107
|
-
"@deepseek-ai/dsh-tool-
|
|
108
|
-
"@deepseek-ai/dsh-tool-
|
|
109
|
-
"@deepseek-ai/dsh-
|
|
110
|
-
"@deepseek-ai/dsh-
|
|
111
|
-
"@deepseek-ai/dsh-user-approval": "0.1.1-rc.2",
|
|
56
|
+
"@deepseek-ai/dsh": "0.1.2-rc.1",
|
|
57
|
+
"@deepseek-ai/dsh-agent": "0.1.2-rc.1",
|
|
58
|
+
"@deepseek-ai/dsh-agent-instructions": "0.1.2-rc.1",
|
|
59
|
+
"@deepseek-ai/dsh-agent-loop": "0.1.2-rc.1",
|
|
60
|
+
"@deepseek-ai/dsh-anonymous-user-id": "0.1.2-rc.1",
|
|
61
|
+
"@deepseek-ai/dsh-attachment": "0.1.2-rc.1",
|
|
62
|
+
"@deepseek-ai/dsh-bash-sandbox": "0.1.2-rc.1",
|
|
63
|
+
"@deepseek-ai/dsh-brand": "0.1.2-rc.1",
|
|
64
|
+
"@deepseek-ai/dsh-commands": "0.1.2-rc.1",
|
|
65
|
+
"@deepseek-ai/dsh-compaction": "0.1.2-rc.1",
|
|
66
|
+
"@deepseek-ai/dsh-compaction-basic": "0.1.2-rc.1",
|
|
67
|
+
"@deepseek-ai/dsh-compaction-tool-result-pruner": "0.1.2-rc.1",
|
|
68
|
+
"@deepseek-ai/dsh-credentials": "0.1.2-rc.1",
|
|
69
|
+
"@deepseek-ai/dsh-credentials-local": "0.1.2-rc.1",
|
|
70
|
+
"@deepseek-ai/dsh-fs": "0.1.2-rc.1",
|
|
71
|
+
"@deepseek-ai/dsh-fs-local": "0.1.2-rc.1",
|
|
72
|
+
"@deepseek-ai/dsh-fs-observation-policy": "0.1.2-rc.1",
|
|
73
|
+
"@deepseek-ai/dsh-fs-sandbox": "0.1.2-rc.1",
|
|
74
|
+
"@deepseek-ai/dsh-goal": "0.1.2-rc.1",
|
|
75
|
+
"@deepseek-ai/dsh-goal-round-driver": "0.1.2-rc.1",
|
|
76
|
+
"@deepseek-ai/dsh-home-paths": "0.1.2-rc.1",
|
|
77
|
+
"@deepseek-ai/dsh-invariants": "0.1.2-rc.1",
|
|
78
|
+
"@deepseek-ai/dsh-jobs-local": "0.1.2-rc.1",
|
|
79
|
+
"@deepseek-ai/dsh-launch-environment": "0.1.2-rc.1",
|
|
80
|
+
"@deepseek-ai/dsh-llm": "0.1.2-rc.1",
|
|
81
|
+
"@deepseek-ai/dsh-llm-deepseek": "0.1.2-rc.1",
|
|
82
|
+
"@deepseek-ai/dsh-llm-retry": "0.1.2-rc.1",
|
|
83
|
+
"@deepseek-ai/dsh-sandbox": "0.1.2-rc.1",
|
|
84
|
+
"@deepseek-ai/dsh-sandbox-local": "0.1.2-rc.1",
|
|
85
|
+
"@deepseek-ai/dsh-sandbox-policy": "0.1.2-rc.1",
|
|
86
|
+
"@deepseek-ai/dsh-scope": "0.1.2-rc.1",
|
|
87
|
+
"@deepseek-ai/dsh-session": "0.1.2-rc.1",
|
|
88
|
+
"@deepseek-ai/dsh-session-checkpoint-policy": "0.1.2-rc.1",
|
|
89
|
+
"@deepseek-ai/dsh-session-persistence": "0.1.2-rc.1",
|
|
90
|
+
"@deepseek-ai/dsh-session-persistence-jsonl": "0.1.2-rc.1",
|
|
91
|
+
"@deepseek-ai/dsh-session-projection": "0.1.2-rc.1",
|
|
92
|
+
"@deepseek-ai/dsh-session-title": "0.1.2-rc.1",
|
|
93
|
+
"@deepseek-ai/dsh-settings": "0.1.2-rc.1",
|
|
94
|
+
"@deepseek-ai/dsh-shell": "0.1.2-rc.1",
|
|
95
|
+
"@deepseek-ai/dsh-shell-env": "0.1.2-rc.1",
|
|
96
|
+
"@deepseek-ai/dsh-skill": "0.1.2-rc.1",
|
|
97
|
+
"@deepseek-ai/dsh-skill-filesystem": "0.1.2-rc.1",
|
|
98
|
+
"@deepseek-ai/dsh-subprocess": "0.1.2-rc.1",
|
|
99
|
+
"@deepseek-ai/dsh-subprocess-local": "0.1.2-rc.1",
|
|
100
|
+
"@deepseek-ai/dsh-system-prompt": "0.1.2-rc.1",
|
|
101
|
+
"@deepseek-ai/dsh-timeout": "0.1.2-rc.1",
|
|
102
|
+
"@deepseek-ai/dsh-token-meter": "0.1.2-rc.1",
|
|
103
|
+
"@deepseek-ai/dsh-tool-bash": "0.1.2-rc.1",
|
|
104
|
+
"@deepseek-ai/dsh-tool-fs": "0.1.2-rc.1",
|
|
105
|
+
"@deepseek-ai/dsh-tool-goal": "0.1.2-rc.1",
|
|
106
|
+
"@deepseek-ai/dsh-tool-jobs": "0.1.2-rc.1",
|
|
107
|
+
"@deepseek-ai/dsh-tool-skill": "0.1.2-rc.1",
|
|
108
|
+
"@deepseek-ai/dsh-tool-todo": "0.1.2-rc.1",
|
|
109
|
+
"@deepseek-ai/dsh-tools": "0.1.2-rc.1",
|
|
110
|
+
"@deepseek-ai/dsh-user-approval": "0.1.2-rc.1",
|
|
112
111
|
"@types/node": "^26.1.0",
|
|
113
112
|
"esbuild": "^0.28.1",
|
|
114
113
|
"pnpm": "11.22.0",
|
|
@@ -145,7 +144,7 @@
|
|
|
145
144
|
}
|
|
146
145
|
},
|
|
147
146
|
"dshAcp": {
|
|
148
|
-
"standaloneDsh": "0.1.
|
|
147
|
+
"standaloneDsh": "0.1.2-rc.1",
|
|
149
148
|
"hostCompatibility": {
|
|
150
149
|
"cordisProtocol": 0,
|
|
151
150
|
"policy": "capability-negotiated"
|
package/vendor/dsh-runtime.tgz
CHANGED
|
Binary file
|
package/vendor/runtime.json
CHANGED