@agi-fans/oh-my-dsh 0.12.0 → 0.14.0
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 +1 -0
- package/config/agent-presets/minimal/agent.cordis.yml +1 -1
- package/config/cordis.yml +78 -11
- package/lib/agent-behavior.d.ts +32 -0
- package/lib/agent-behavior.js +74 -0
- package/lib/boot.js +8 -2
- package/lib/profile.d.ts +3 -2
- package/lib/profile.js +4 -4
- package/package.json +91 -66
package/README.md
CHANGED
|
@@ -45,6 +45,7 @@ The full documentation is also published on the [official site](https://omdsh.ag
|
|
|
45
45
|
- [User plugins](https://omdsh.agi.fans/docs/plugins/) — install DSH bundles into the omdsh Profile with `omdsh plugin`.
|
|
46
46
|
- [Architecture](https://omdsh.agi.fans/docs/architecture/) — understand the plugin boundaries and runtime data flow.
|
|
47
47
|
- [Performance](https://omdsh.agi.fans/docs/performance/) — inspect the benchmarks, methodology, and rendering optimizations.
|
|
48
|
+
- [Report a bug or request a feature](https://github.com/agi-fans/oh-my-dsh/issues/new/choose) — use a guided form to include the version, environment, reproduction steps, and sanitized context.
|
|
48
49
|
|
|
49
50
|
## Why oh-my-dsh
|
|
50
51
|
|
package/config/cordis.yml
CHANGED
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
|
|
16
16
|
- id: llm-deepseek
|
|
17
17
|
name: '@deepseek-ai/dsh-llm-deepseek'
|
|
18
|
+
config:
|
|
19
|
+
# Current built-ins share this fallback. Exact catalog values still win,
|
|
20
|
+
# and omitting models keeps future adapter additions visible.
|
|
21
|
+
maxTokens: 384000
|
|
18
22
|
|
|
19
23
|
- id: session
|
|
20
24
|
name: '@deepseek-ai/dsh-session'
|
|
@@ -102,6 +106,7 @@
|
|
|
102
106
|
name: '@deepseek-ai/dsh-agent-presets'
|
|
103
107
|
config:
|
|
104
108
|
default: standard
|
|
109
|
+
includeShippedRoot: false
|
|
105
110
|
roots:
|
|
106
111
|
- path: !!js "process.getBuiltinModule('node:url').fileURLToPath(new URL('./agent-presets/', baseUrl))"
|
|
107
112
|
trust: system
|
|
@@ -160,19 +165,78 @@
|
|
|
160
165
|
name: Full access
|
|
161
166
|
description: Full filesystem access without approval prompts.
|
|
162
167
|
|
|
163
|
-
|
|
164
|
-
|
|
168
|
+
# — spine 展开块(替代已删除的 @deepseek-ai/dsh-agent-spine-demo)—
|
|
169
|
+
# 顺序遵循上游 spine apply() 的挂载顺序;agent-instructions 必须先于
|
|
170
|
+
# tool-skill 注册(两者都以 session 前缀消息注入,注册顺序即渲染顺序)。
|
|
171
|
+
- id: system-prompt
|
|
172
|
+
name: '@deepseek-ai/dsh-system-prompt'
|
|
173
|
+
|
|
174
|
+
- id: tools
|
|
175
|
+
name: '@deepseek-ai/dsh-tools'
|
|
176
|
+
config:
|
|
177
|
+
mode: native
|
|
178
|
+
|
|
179
|
+
- id: skill
|
|
180
|
+
name: '@deepseek-ai/dsh-skill'
|
|
181
|
+
|
|
182
|
+
- id: skill-filesystem
|
|
183
|
+
name: '@deepseek-ai/dsh-skill-filesystem'
|
|
184
|
+
config:
|
|
185
|
+
dshHome: !!js process.env.OMDSH_HOME || undefined
|
|
186
|
+
|
|
187
|
+
- id: llm-retry
|
|
188
|
+
name: '@deepseek-ai/dsh-llm-retry'
|
|
189
|
+
|
|
190
|
+
- id: goal
|
|
191
|
+
name: '@deepseek-ai/dsh-goal'
|
|
192
|
+
|
|
193
|
+
- id: tool-goal
|
|
194
|
+
name: '@deepseek-ai/dsh-tool-goal'
|
|
195
|
+
|
|
196
|
+
- id: goal-round-driver
|
|
197
|
+
name: '@deepseek-ai/dsh-goal-round-driver'
|
|
198
|
+
|
|
199
|
+
- id: jobs
|
|
200
|
+
name: '@deepseek-ai/dsh-jobs-local'
|
|
201
|
+
|
|
202
|
+
- id: invariants
|
|
203
|
+
name: '@deepseek-ai/dsh-invariants'
|
|
204
|
+
|
|
205
|
+
- id: session-invariant
|
|
206
|
+
name: '@deepseek-ai/dsh-session/invariant'
|
|
207
|
+
|
|
208
|
+
- id: agent-invariant
|
|
209
|
+
name: '@deepseek-ai/dsh-agent/invariant'
|
|
210
|
+
|
|
211
|
+
- id: scope-invariant
|
|
212
|
+
name: '@deepseek-ai/dsh-scope/invariant'
|
|
213
|
+
|
|
214
|
+
- id: agent-loop-invariant
|
|
215
|
+
name: '@deepseek-ai/dsh-agent-loop/invariant'
|
|
216
|
+
|
|
217
|
+
- id: shell-env
|
|
218
|
+
name: '@deepseek-ai/dsh-shell-env'
|
|
165
219
|
config:
|
|
166
|
-
workspaceContext:
|
|
167
|
-
maxBytes: 65536
|
|
168
220
|
dshHome: !!js process.env.OMDSH_HOME || undefined
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
221
|
+
|
|
222
|
+
- id: tool-bash
|
|
223
|
+
name: '@deepseek-ai/dsh-tool-bash'
|
|
224
|
+
|
|
225
|
+
- id: agent-instructions
|
|
226
|
+
name: '@deepseek-ai/dsh-agent-instructions'
|
|
227
|
+
config:
|
|
228
|
+
maxBytes: 65536
|
|
229
|
+
|
|
230
|
+
- id: tool-skill
|
|
231
|
+
name: '@deepseek-ai/dsh-tool-skill'
|
|
232
|
+
|
|
233
|
+
- id: tool-jobs
|
|
234
|
+
name: '@deepseek-ai/dsh-tool-jobs'
|
|
235
|
+
|
|
236
|
+
- id: agent-loop
|
|
237
|
+
name: '@deepseek-ai/dsh-agent-loop'
|
|
238
|
+
config:
|
|
239
|
+
agents: []
|
|
176
240
|
|
|
177
241
|
- id: code-runtime
|
|
178
242
|
name: '@deepseek-ai/dsh-code-runtime-worker-thread'
|
|
@@ -257,6 +321,9 @@
|
|
|
257
321
|
config:
|
|
258
322
|
model: !!js process.env.OMDSH_MODEL || 'deepseek-v4-flash'
|
|
259
323
|
|
|
324
|
+
- id: agent-behavior
|
|
325
|
+
name: '@agi-fans/oh-my-dsh/agent-behavior'
|
|
326
|
+
|
|
260
327
|
- id: tui-tool-presentation
|
|
261
328
|
name: '@agi-fans/dsh-tui/tool-presentation'
|
|
262
329
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Product-owned Agent behavior settings projected into the Harness system prompt.
|
|
3
|
+
* @module @agi-fans/oh-my-dsh/agent-behavior
|
|
4
|
+
*/
|
|
5
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
6
|
+
import type { Agent } from '@deepseek-ai/dsh-agent';
|
|
7
|
+
import type { AssembleContext } from '@deepseek-ai/dsh-system-prompt';
|
|
8
|
+
import z from '@deepseek-ai/schemastery';
|
|
9
|
+
import type { TuiAgentBehaviorSettings } from '@agi-fans/dsh-tui';
|
|
10
|
+
export declare const name = "omdsh-agent-behavior";
|
|
11
|
+
export declare const inject: string[];
|
|
12
|
+
export declare const AGENT_BEHAVIOR_SETTINGS_NAMESPACE = "omdsh-agent";
|
|
13
|
+
export declare const AGENT_BEHAVIOR_SECTION = "omdsh:agent-behavior";
|
|
14
|
+
export declare const AGENT_BEHAVIOR_ORDER = 30;
|
|
15
|
+
export declare const AGENT_BEHAVIOR_VARIABLE = "omdsh_agent_behavior";
|
|
16
|
+
export declare const AGENT_LANGUAGES: readonly ["auto", "zh-CN", "en"];
|
|
17
|
+
export type AgentLanguage = typeof AGENT_LANGUAGES[number];
|
|
18
|
+
export interface AgentBehaviorSettings extends TuiAgentBehaviorSettings {
|
|
19
|
+
language: AgentLanguage;
|
|
20
|
+
}
|
|
21
|
+
export declare const AgentBehaviorSettingsSchema: z<AgentBehaviorSettings>;
|
|
22
|
+
/** Stable model instruction for one accepted language setting. */
|
|
23
|
+
export declare function agentLanguageFragment(language: AgentLanguage): string;
|
|
24
|
+
/** Freeze live user settings at a turn boundary while keeping direct assemblies useful. */
|
|
25
|
+
export declare class AgentBehaviorPrompt {
|
|
26
|
+
#private;
|
|
27
|
+
snapshot(agent: Agent, turn: number, language: AgentLanguage): void;
|
|
28
|
+
clear(agent: Agent): void;
|
|
29
|
+
fragment(context: AssembleContext, current: AgentLanguage): string;
|
|
30
|
+
variable(context: AssembleContext, current: AgentLanguage): string;
|
|
31
|
+
}
|
|
32
|
+
export declare function apply(ctx: Context): void;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Product-owned Agent behavior settings projected into the Harness system prompt.
|
|
3
|
+
* @module @agi-fans/oh-my-dsh/agent-behavior
|
|
4
|
+
*/
|
|
5
|
+
import z from '@deepseek-ai/schemastery';
|
|
6
|
+
export const name = 'omdsh-agent-behavior';
|
|
7
|
+
export const inject = ['settings', 'systemPrompt'];
|
|
8
|
+
export const AGENT_BEHAVIOR_SETTINGS_NAMESPACE = 'omdsh-agent';
|
|
9
|
+
export const AGENT_BEHAVIOR_SECTION = 'omdsh:agent-behavior';
|
|
10
|
+
export const AGENT_BEHAVIOR_ORDER = 30;
|
|
11
|
+
export const AGENT_BEHAVIOR_VARIABLE = 'omdsh_agent_behavior';
|
|
12
|
+
export const AGENT_LANGUAGES = ['auto', 'zh-CN', 'en'];
|
|
13
|
+
export const AgentBehaviorSettingsSchema = z.object({
|
|
14
|
+
language: z.union([...AGENT_LANGUAGES]).default('auto'),
|
|
15
|
+
});
|
|
16
|
+
const LANGUAGE_FRAGMENTS = {
|
|
17
|
+
'zh-CN': '主要使用简体中文进行推理和面向用户的沟通,包括回复、提问、计划、待办文字和子 Agent 简报。代码、标识符、命令、Tool 参数、日志、引用、文件内容和惯用技术术语在准确性需要时保留原文或标准写法。项目指令中明确规定语言时,遵循项目指令;若用户明确要求当前任务使用其他语言,以该要求为准。',
|
|
18
|
+
en: 'Use English as the primary language for reasoning and user-facing communication, including replies, questions, plans, todo text, and subagent summaries. Preserve code, identifiers, commands, tool arguments, logs, quotations, file contents, and conventional technical terms in their original or standard form when accuracy requires. Follow explicit language requirements in project instructions; if the user explicitly requests another language for the current task, follow that request.',
|
|
19
|
+
};
|
|
20
|
+
/** Stable model instruction for one accepted language setting. */
|
|
21
|
+
export function agentLanguageFragment(language) {
|
|
22
|
+
return language === 'auto' ? '' : LANGUAGE_FRAGMENTS[language];
|
|
23
|
+
}
|
|
24
|
+
/** Freeze live user settings at a turn boundary while keeping direct assemblies useful. */
|
|
25
|
+
export class AgentBehaviorPrompt {
|
|
26
|
+
#snapshots = new WeakMap();
|
|
27
|
+
snapshot(agent, turn, language) {
|
|
28
|
+
const current = this.#snapshots.get(agent);
|
|
29
|
+
if (current?.turn === turn)
|
|
30
|
+
return;
|
|
31
|
+
this.#snapshots.set(agent, { turn, language });
|
|
32
|
+
}
|
|
33
|
+
clear(agent) {
|
|
34
|
+
this.#snapshots.delete(agent);
|
|
35
|
+
}
|
|
36
|
+
fragment(context, current) {
|
|
37
|
+
const language = context.agent === undefined
|
|
38
|
+
? current
|
|
39
|
+
: this.#snapshots.get(context.agent)?.language ?? current;
|
|
40
|
+
return agentLanguageFragment(language);
|
|
41
|
+
}
|
|
42
|
+
variable(context, current) {
|
|
43
|
+
const fragment = this.fragment(context, current);
|
|
44
|
+
return fragment === '' ? '' : `\n\n${fragment}`;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export function apply(ctx) {
|
|
48
|
+
const scope = ctx.settings.register(AGENT_BEHAVIOR_SETTINGS_NAMESPACE, AgentBehaviorSettingsSchema, { applies: 'live' });
|
|
49
|
+
const prompt = new AgentBehaviorPrompt();
|
|
50
|
+
ctx.on('agent/pre-step', async (payload, next) => {
|
|
51
|
+
prompt.snapshot(payload.agent, payload.turn, scope.get().language);
|
|
52
|
+
return next();
|
|
53
|
+
});
|
|
54
|
+
ctx.on('agent/status', ({ agent, status }) => {
|
|
55
|
+
if (status === 'idle')
|
|
56
|
+
prompt.clear(agent);
|
|
57
|
+
});
|
|
58
|
+
ctx.on('agent/disposed', ({ agent }) => { prompt.clear(agent); });
|
|
59
|
+
ctx.effect(() => ctx.systemPrompt.section({
|
|
60
|
+
name: AGENT_BEHAVIOR_SECTION,
|
|
61
|
+
order: AGENT_BEHAVIOR_ORDER,
|
|
62
|
+
text: context => prompt.fragment(context, scope.get().language),
|
|
63
|
+
}), 'omdsh Agent behavior prompt section');
|
|
64
|
+
ctx.effect(() => ctx.systemPrompt.variable(AGENT_BEHAVIOR_VARIABLE, context => prompt.variable(context, scope.get().language)), 'omdsh Agent behavior prompt variable');
|
|
65
|
+
ctx.inject(['tui'], (tuiCtx) => {
|
|
66
|
+
const binding = {
|
|
67
|
+
get: () => scope.get(),
|
|
68
|
+
update: next => scope.update({ language: next.language }),
|
|
69
|
+
watch: listener => scope.watch(next => { listener(next); }),
|
|
70
|
+
};
|
|
71
|
+
tuiCtx.effect(() => tuiCtx.tui.bindAgentBehaviorSettings?.(binding) ?? (() => { }), 'bind Agent behavior settings to TUI');
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=agent-behavior.js.map
|
package/lib/boot.js
CHANGED
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
* before any entry mounts.
|
|
5
5
|
* @module @agi-fans/oh-my-dsh
|
|
6
6
|
*/
|
|
7
|
-
import { boot, installFailLoud } from '@deepseek-ai/dsh-app-boot';
|
|
7
|
+
import { boot, healProfilesModuleFallback, installFailLoud } from '@deepseek-ai/dsh-app-boot';
|
|
8
8
|
import { provideCmdline } from '@deepseek-ai/dsh-cmdline';
|
|
9
9
|
import { DSH_LAUNCH_ENVIRONMENT_KEY } from '@deepseek-ai/dsh-launch-environment';
|
|
10
10
|
import { NAME, prepareLaunchEnvironment } from "./composition.js";
|
|
11
|
-
import { composeLaunch } from "./profile.js";
|
|
11
|
+
import { composeLaunch, INSTALL_ANCHOR } from "./profile.js";
|
|
12
|
+
import { omdshHome } from "./mcp-config.js";
|
|
12
13
|
import { createProcessShutdown } from "./process-shutdown.js";
|
|
13
14
|
export { NAME } from "./composition.js";
|
|
14
15
|
/**
|
|
@@ -32,6 +33,11 @@ export async function runOmdsh(prompt, resume) {
|
|
|
32
33
|
installFailLoud(NAME, process, async () => { await app.current?.fiber.dispose(); });
|
|
33
34
|
const environment = prepareLaunchEnvironment();
|
|
34
35
|
const composed = composeLaunch();
|
|
36
|
+
await healProfilesModuleFallback({
|
|
37
|
+
installAnchor: INSTALL_ANCHOR,
|
|
38
|
+
profile: composed.profile,
|
|
39
|
+
home: omdshHome(),
|
|
40
|
+
});
|
|
35
41
|
const ctx = await boot(NAME, composed.rootConfig, structuredClone(composed.patches), (hostCtx) => {
|
|
36
42
|
app.current = hostCtx;
|
|
37
43
|
hostCtx.provide(DSH_LAUNCH_ENVIRONMENT_KEY, environment);
|
package/lib/profile.d.ts
CHANGED
|
@@ -27,8 +27,9 @@ export declare function ensureProductBundleFirst(dir: string): void;
|
|
|
27
27
|
*/
|
|
28
28
|
export declare function ensureOmdshProfile(home: string): string;
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
30
|
+
* Ensure the Profile exists, load its bundles, and rewrite the empty root
|
|
31
|
+
* include. Module fallback healing happens asynchronously in runOmdsh after
|
|
32
|
+
* this function returns the resolved Profile.
|
|
32
33
|
*/
|
|
33
34
|
export declare function prepareProfile(home: string, userLayer?: boolean): Profile;
|
|
34
35
|
/** One launch's labeled layers and the flattened patch list `boot()` mounts. */
|
package/lib/profile.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import { existsSync, writeFileSync } from 'node:fs';
|
|
10
10
|
import { join } from 'node:path';
|
|
11
11
|
import { fileURLToPath } from 'node:url';
|
|
12
|
-
import { composeEntries,
|
|
12
|
+
import { composeEntries, initProfile, loadOptionalPatches, loadProfile, PROFILE_PATCH_FILENAME, readProfileManifest, resolveProfileDir, writeProfileManifest, } from '@deepseek-ai/dsh-app-boot';
|
|
13
13
|
import { loadMcpPatches, omdshHome } from "./mcp-config.js";
|
|
14
14
|
export const NAME = 'omdsh';
|
|
15
15
|
export const PROFILE_NAME = 'omdsh';
|
|
@@ -55,11 +55,11 @@ export function ensureOmdshProfile(home) {
|
|
|
55
55
|
return dir;
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
58
|
+
* Ensure the Profile exists, load its bundles, and rewrite the empty root
|
|
59
|
+
* include. Module fallback healing happens asynchronously in runOmdsh after
|
|
60
|
+
* this function returns the resolved Profile.
|
|
60
61
|
*/
|
|
61
62
|
export function prepareProfile(home, userLayer = true) {
|
|
62
|
-
healProfilesModuleFallback(INSTALL_ANCHOR, home);
|
|
63
63
|
ensureOmdshProfile(home);
|
|
64
64
|
const profile = loadProfile(NAME, PROFILE_NAME, INSTALL_ANCHOR, home, { userLayer });
|
|
65
65
|
writeFileSync(join(profile.dir, PROFILE_ROOT_FILENAME), PROFILE_ROOT_CONFIG);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agi-fans/oh-my-dsh",
|
|
3
3
|
"description": "omdsh: a keyboard-first DeepSeek TUI coding agent on the DeepSeek Harness runtime",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.14.0",
|
|
5
5
|
"homepage": "https://omdsh.agi.fans/",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"omdsh",
|
|
@@ -27,6 +27,13 @@
|
|
|
27
27
|
"bin": {
|
|
28
28
|
"omdsh": "lib/bin.js"
|
|
29
29
|
},
|
|
30
|
+
"exports": {
|
|
31
|
+
"./agent-behavior": {
|
|
32
|
+
"types": "./lib/agent-behavior.d.ts",
|
|
33
|
+
"default": "./lib/agent-behavior.js"
|
|
34
|
+
},
|
|
35
|
+
"./package.json": "./package.json"
|
|
36
|
+
},
|
|
30
37
|
"files": [
|
|
31
38
|
"lib/*.js",
|
|
32
39
|
"lib/*.d.ts",
|
|
@@ -42,77 +49,95 @@
|
|
|
42
49
|
"access": "public"
|
|
43
50
|
},
|
|
44
51
|
"dependencies": {
|
|
45
|
-
"@deepseek-ai/cordis-plugin-loader": "1.0.
|
|
52
|
+
"@deepseek-ai/cordis-plugin-loader": "1.0.3",
|
|
53
|
+
"@deepseek-ai/cordis-plugin-timer": "1.1.4",
|
|
54
|
+
"@deepseek-ai/dsh-agent": "0.1.2-rc.1",
|
|
55
|
+
"@deepseek-ai/dsh-agent-default-model": "0.1.2-rc.1",
|
|
56
|
+
"@deepseek-ai/dsh-agent-instructions": "0.1.2-rc.1",
|
|
57
|
+
"@deepseek-ai/dsh-agent-loop": "0.1.2-rc.1",
|
|
58
|
+
"@deepseek-ai/dsh-agent-presets": "0.1.2-rc.1",
|
|
59
|
+
"@deepseek-ai/dsh-app-boot": "0.1.2-rc.1",
|
|
60
|
+
"@deepseek-ai/dsh-attachment-local": "0.1.2-rc.1",
|
|
61
|
+
"@deepseek-ai/dsh-authorization": "0.1.2-rc.1",
|
|
62
|
+
"@deepseek-ai/dsh-bash-sandbox": "0.1.2-rc.1",
|
|
63
|
+
"@deepseek-ai/dsh-cmdline": "0.1.2-rc.1",
|
|
64
|
+
"@deepseek-ai/dsh-code-runtime-worker-thread": "0.1.2-rc.1",
|
|
65
|
+
"@deepseek-ai/dsh-command-compact": "0.1.2-rc.1",
|
|
66
|
+
"@deepseek-ai/dsh-command-goal": "0.1.2-rc.1",
|
|
67
|
+
"@deepseek-ai/dsh-commands": "0.1.2-rc.1",
|
|
68
|
+
"@deepseek-ai/dsh-compaction-basic": "0.1.2-rc.1",
|
|
69
|
+
"@deepseek-ai/dsh-cordis-host-runner": "0.1.2-rc.1",
|
|
70
|
+
"@deepseek-ai/dsh-credentials-local": "0.1.2-rc.1",
|
|
71
|
+
"@deepseek-ai/dsh-file-reference": "0.1.2-rc.1",
|
|
72
|
+
"@deepseek-ai/dsh-file-reference-local": "0.1.2-rc.1",
|
|
73
|
+
"@deepseek-ai/dsh-fs-local": "0.1.2-rc.1",
|
|
74
|
+
"@deepseek-ai/dsh-fs-observation-policy": "0.1.2-rc.1",
|
|
75
|
+
"@deepseek-ai/dsh-goal": "0.1.2-rc.1",
|
|
76
|
+
"@deepseek-ai/dsh-goal-round-driver": "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-pi-ai": "0.1.2-rc.1",
|
|
83
|
+
"@deepseek-ai/dsh-llm-retry": "0.1.2-rc.1",
|
|
84
|
+
"@deepseek-ai/dsh-mcp-client": "0.1.2-rc.1",
|
|
85
|
+
"@deepseek-ai/dsh-permission-presets": "0.1.2-rc.1",
|
|
86
|
+
"@deepseek-ai/dsh-persona": "0.1.2-rc.1",
|
|
87
|
+
"@deepseek-ai/dsh-plan-mode": "0.1.2-rc.1",
|
|
88
|
+
"@deepseek-ai/dsh-sandbox-local": "0.1.2-rc.1",
|
|
89
|
+
"@deepseek-ai/dsh-sandbox-policy": "0.1.2-rc.1",
|
|
90
|
+
"@deepseek-ai/dsh-scope": "0.1.2-rc.1",
|
|
91
|
+
"@deepseek-ai/dsh-session": "0.1.2-rc.1",
|
|
92
|
+
"@deepseek-ai/dsh-session-checkpoint-policy": "0.1.2-rc.1",
|
|
93
|
+
"@deepseek-ai/dsh-session-persistence-jsonl": "0.1.2-rc.1",
|
|
94
|
+
"@deepseek-ai/dsh-session-projection": "0.1.2-rc.1",
|
|
95
|
+
"@deepseek-ai/dsh-session-query": "0.1.2-rc.1",
|
|
96
|
+
"@deepseek-ai/dsh-session-query-sqlite": "0.1.2-rc.1",
|
|
97
|
+
"@deepseek-ai/dsh-session-reference": "0.1.2-rc.1",
|
|
98
|
+
"@deepseek-ai/dsh-session-stats": "0.1.2-rc.1",
|
|
99
|
+
"@deepseek-ai/dsh-session-title": "0.1.2-rc.1",
|
|
100
|
+
"@deepseek-ai/dsh-settings": "0.1.2-rc.1",
|
|
101
|
+
"@deepseek-ai/dsh-settings-file": "0.1.2-rc.1",
|
|
102
|
+
"@deepseek-ai/dsh-shell-env": "0.1.2-rc.1",
|
|
103
|
+
"@deepseek-ai/dsh-skill": "0.1.2-rc.1",
|
|
104
|
+
"@deepseek-ai/dsh-skill-filesystem": "0.1.2-rc.1",
|
|
105
|
+
"@deepseek-ai/dsh-subagent": "0.1.2-rc.1",
|
|
106
|
+
"@deepseek-ai/dsh-subagent-spawn-in-process": "0.1.2-rc.1",
|
|
107
|
+
"@deepseek-ai/dsh-subprocess-local": "0.1.2-rc.1",
|
|
108
|
+
"@deepseek-ai/dsh-system-prompt": "0.1.2-rc.1",
|
|
109
|
+
"@deepseek-ai/dsh-terminal": "0.1.2-rc.1",
|
|
110
|
+
"@deepseek-ai/dsh-terminal-bash": "0.1.2-rc.1",
|
|
111
|
+
"@deepseek-ai/dsh-token-meter": "0.1.2-rc.1",
|
|
112
|
+
"@deepseek-ai/dsh-tool-ask-user": "0.1.2-rc.1",
|
|
113
|
+
"@deepseek-ai/dsh-tool-bash": "0.1.2-rc.1",
|
|
114
|
+
"@deepseek-ai/dsh-tool-bash-persistent": "0.1.2-rc.1",
|
|
115
|
+
"@deepseek-ai/dsh-tool-cordis": "0.1.2-rc.1",
|
|
116
|
+
"@deepseek-ai/dsh-tool-fs": "0.1.2-rc.1",
|
|
117
|
+
"@deepseek-ai/dsh-tool-fs-search": "0.1.2-rc.1",
|
|
118
|
+
"@deepseek-ai/dsh-tool-goal": "0.1.2-rc.1",
|
|
119
|
+
"@deepseek-ai/dsh-tool-jobs": "0.1.2-rc.1",
|
|
120
|
+
"@deepseek-ai/dsh-tool-skill": "0.1.2-rc.1",
|
|
121
|
+
"@deepseek-ai/dsh-tool-str-replace-editor": "0.1.2-rc.1",
|
|
122
|
+
"@deepseek-ai/dsh-tool-subagent": "0.1.2-rc.1",
|
|
123
|
+
"@deepseek-ai/dsh-tool-subagent-control": "0.1.2-rc.1",
|
|
124
|
+
"@deepseek-ai/dsh-tool-todo": "0.1.2-rc.1",
|
|
125
|
+
"@deepseek-ai/dsh-tools": "0.1.2-rc.1",
|
|
126
|
+
"@deepseek-ai/dsh-user-approval": "0.1.2-rc.1",
|
|
127
|
+
"@deepseek-ai/dsh-user-questions": "0.1.2-rc.1",
|
|
128
|
+
"@deepseek-ai/schemastery": "3.18.2",
|
|
46
129
|
"node-addon-require-builtin": "0.1.4",
|
|
47
|
-
"@
|
|
48
|
-
"@deepseek-ai/dsh-agent": "0.1.1-rc.2",
|
|
49
|
-
"@deepseek-ai/dsh-agent-default-model": "0.1.1-rc.2",
|
|
50
|
-
"@deepseek-ai/dsh-agent-presets": "0.1.1-rc.2",
|
|
51
|
-
"@deepseek-ai/dsh-agent-spine-demo": "0.1.1-rc.2",
|
|
52
|
-
"@deepseek-ai/dsh-attachment-local": "0.1.1-rc.2",
|
|
53
|
-
"@deepseek-ai/dsh-command-compact": "0.1.1-rc.2",
|
|
54
|
-
"@deepseek-ai/dsh-command-goal": "0.1.1-rc.2",
|
|
55
|
-
"@deepseek-ai/dsh-commands": "0.1.1-rc.2",
|
|
56
|
-
"@deepseek-ai/dsh-compaction-basic": "0.1.1-rc.2",
|
|
57
|
-
"@deepseek-ai/dsh-code-runtime-worker-thread": "0.1.1-rc.2",
|
|
58
|
-
"@deepseek-ai/dsh-cordis-host-runner": "0.1.1-rc.2",
|
|
59
|
-
"@deepseek-ai/dsh-app-boot": "0.1.1-rc.2",
|
|
60
|
-
"@deepseek-ai/dsh-bash-sandbox": "0.1.1-rc.2",
|
|
61
|
-
"@deepseek-ai/dsh-cmdline": "0.1.1-rc.2",
|
|
62
|
-
"@deepseek-ai/dsh-file-reference": "0.1.1-rc.2",
|
|
63
|
-
"@deepseek-ai/dsh-file-reference-local": "0.1.1-rc.2",
|
|
64
|
-
"@deepseek-ai/dsh-fs-local": "0.1.1-rc.2",
|
|
65
|
-
"@deepseek-ai/dsh-fs-observation-policy": "0.1.1-rc.2",
|
|
66
|
-
"@deepseek-ai/dsh-launch-environment": "0.1.1-rc.2",
|
|
67
|
-
"@deepseek-ai/dsh-llm": "0.1.1-rc.2",
|
|
68
|
-
"@deepseek-ai/dsh-llm-deepseek": "0.1.1-rc.2",
|
|
69
|
-
"@deepseek-ai/dsh-llm-pi-ai": "0.1.1-rc.2",
|
|
70
|
-
"@deepseek-ai/dsh-mcp-client": "0.1.1-rc.2",
|
|
71
|
-
"@deepseek-ai/dsh-permission-presets": "0.1.1-rc.2",
|
|
72
|
-
"@deepseek-ai/dsh-persona": "0.1.1-rc.2",
|
|
73
|
-
"@deepseek-ai/dsh-plan-mode": "0.1.1-rc.2",
|
|
74
|
-
"@deepseek-ai/dsh-sandbox-local": "0.1.1-rc.2",
|
|
75
|
-
"@deepseek-ai/dsh-sandbox-policy": "0.1.1-rc.2",
|
|
76
|
-
"@deepseek-ai/dsh-session": "0.1.1-rc.2",
|
|
77
|
-
"@deepseek-ai/dsh-session-checkpoint-policy": "0.1.1-rc.2",
|
|
78
|
-
"@deepseek-ai/dsh-session-persistence-jsonl": "0.1.1-rc.2",
|
|
79
|
-
"@deepseek-ai/dsh-session-projection": "0.1.1-rc.2",
|
|
80
|
-
"@deepseek-ai/dsh-session-query": "0.1.1-rc.2",
|
|
81
|
-
"@deepseek-ai/dsh-session-query-sqlite": "0.1.1-rc.2",
|
|
82
|
-
"@deepseek-ai/dsh-session-reference": "0.1.1-rc.2",
|
|
83
|
-
"@deepseek-ai/dsh-session-stats": "0.1.1-rc.2",
|
|
84
|
-
"@deepseek-ai/dsh-session-title": "0.1.1-rc.2",
|
|
85
|
-
"@deepseek-ai/dsh-subagent": "0.1.1-rc.2",
|
|
86
|
-
"@deepseek-ai/dsh-subagent-spawn-in-process": "0.1.1-rc.2",
|
|
87
|
-
"@deepseek-ai/dsh-terminal": "0.1.1-rc.2",
|
|
88
|
-
"@deepseek-ai/dsh-terminal-bash": "0.1.1-rc.2",
|
|
89
|
-
"@deepseek-ai/dsh-token-meter": "0.1.1-rc.2",
|
|
90
|
-
"@deepseek-ai/dsh-tool-ask-user": "0.1.1-rc.2",
|
|
91
|
-
"@deepseek-ai/dsh-tool-bash-persistent": "0.1.1-rc.2",
|
|
92
|
-
"@deepseek-ai/dsh-tool-cordis": "0.1.1-rc.2",
|
|
93
|
-
"@deepseek-ai/dsh-tool-fs": "0.1.1-rc.2",
|
|
94
|
-
"@deepseek-ai/dsh-tool-fs-search": "0.1.1-rc.2",
|
|
95
|
-
"@deepseek-ai/dsh-tool-str-replace-editor": "0.1.1-rc.2",
|
|
96
|
-
"@deepseek-ai/dsh-tool-subagent": "0.1.1-rc.2",
|
|
97
|
-
"@deepseek-ai/dsh-tool-subagent-control": "0.1.1-rc.2",
|
|
98
|
-
"@deepseek-ai/dsh-tool-todo": "0.1.1-rc.2",
|
|
99
|
-
"@deepseek-ai/dsh-user-approval": "0.1.1-rc.2",
|
|
100
|
-
"@deepseek-ai/dsh-user-questions": "0.1.1-rc.2",
|
|
101
|
-
"@deepseek-ai/dsh-subprocess-local": "0.1.1-rc.2",
|
|
102
|
-
"@deepseek-ai/dsh-settings-file": "0.1.1-rc.2",
|
|
103
|
-
"@deepseek-ai/dsh-credentials-local": "0.1.1-rc.2",
|
|
104
|
-
"@deepseek-ai/dsh-authorization": "0.1.1-rc.2",
|
|
105
|
-
"@agi-fans/dsh-tui": "^0.12.0"
|
|
130
|
+
"@agi-fans/dsh-tui": "^0.14.0"
|
|
106
131
|
},
|
|
107
132
|
"peerDependencies": {
|
|
108
|
-
"@deepseek-ai/cordis": "^4.0.
|
|
133
|
+
"@deepseek-ai/cordis": "^4.0.2"
|
|
109
134
|
},
|
|
110
135
|
"devDependencies": {
|
|
111
|
-
"@deepseek-ai/cordis": "4.0.
|
|
112
|
-
"
|
|
136
|
+
"@deepseek-ai/cordis": "4.0.2",
|
|
137
|
+
"@types/node": "^22.10.0",
|
|
113
138
|
"tsx": "^4.19.0",
|
|
114
|
-
"
|
|
115
|
-
"
|
|
139
|
+
"typescript": "^5.6.0",
|
|
140
|
+
"vitest": "^2.1.0"
|
|
116
141
|
},
|
|
117
142
|
"scripts": {
|
|
118
143
|
"clean": "node -e \"const fs=require('node:fs');fs.rmSync('lib',{recursive:true,force:true});fs.rmSync('tsconfig.tsbuildinfo',{force:true})\"",
|