@agi-fans/oh-my-dsh 0.5.1 → 0.6.1
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 +12 -10
- package/config/cordis.yml +249 -241
- package/lib/args.d.ts +8 -2
- package/lib/args.js +26 -3
- package/lib/bin.js +27 -2
- package/lib/boot.d.ts +4 -6
- package/lib/boot.js +10 -11
- package/lib/composition.d.ts +21 -0
- package/lib/composition.js +49 -0
- package/lib/plugin.d.ts +64 -0
- package/lib/plugin.js +436 -0
- package/lib/profile.d.ts +54 -0
- package/lib/profile.js +116 -0
- package/package.json +9 -2
package/README.md
CHANGED
|
@@ -6,15 +6,15 @@
|
|
|
6
6
|
|
|
7
7
|
**Into the Unknown**
|
|
8
8
|
|
|
9
|
-
A focused, keyboard-first DeepSeek coding agent built on the plugin architecture of [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) and inspired by the interaction quality of [oh-my-pi](https://github.com/can1357/oh-my-pi).
|
|
9
|
+
A focused, keyboard-first DeepSeek coding agent built on the plugin architecture of [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) and inspired by the interaction quality of [oh-my-pi](https://github.com/can1357/oh-my-pi) and the original [Pi](https://github.com/earendil-works/pi) agent harness.
|
|
10
10
|
|
|
11
|
-
[](https://www.npmjs.com/package/@agi-fans/oh-my-dsh) [](https://www.npmjs.com/package/@agi-fans/oh-my-dsh) [](https://nodejs.org/) [](https://github.com/agi-fans/oh-my-dsh/blob/main/LICENSE)
|
|
11
|
+
[](https://github.com/agi-fans/oh-my-dsh/actions/workflows/ci.yml) [](https://www.npmjs.com/package/@agi-fans/oh-my-dsh) [](https://www.npmjs.com/package/@agi-fans/oh-my-dsh) [](https://nodejs.org/) [](https://github.com/agi-fans/oh-my-dsh/blob/main/LICENSE)
|
|
12
12
|
|
|
13
13
|
English · [简体中文](https://github.com/agi-fans/oh-my-dsh/blob/main/README.zh-CN.md)
|
|
14
14
|
|
|
15
15
|
</div>
|
|
16
16
|
|
|
17
|
-

|
|
18
18
|
|
|
19
19
|
## Quick start
|
|
20
20
|
|
|
@@ -32,14 +32,15 @@ Run `/login` once inside omdsh to validate and save your DeepSeek API key, then
|
|
|
32
32
|
- **Durable conversations:** resume sessions, rewind to a human turn, retry, compact, and export complete transcripts as Markdown.
|
|
33
33
|
- **Four real session controls:** choose a Harness Agent preset (Standard, PTC, Minimal, or Cordis), Workflow (Default or Plan), tool presentation (Native, Code, or Both), and Access (Read only, Workspace write, or Full access).
|
|
34
34
|
- **Rich terminal input:** search project files with `@`, paste clipboard images, reuse persistent prompt history, edit multiline prompts externally, and retrieve queued follow-ups.
|
|
35
|
-
- **Readable tool activity:** follow streaming calls, inspect distinct Input and Output sections, expand long results, and keep domain-specific presentation owned by tool plugins.
|
|
35
|
+
- **Readable tool activity:** follow streaming calls and live subagent progress, open a child's transcript from the Agents roster, steer a continuable child from that view, inspect distinct Input and Output sections, expand long results, and keep domain-specific presentation owned by tool plugins.
|
|
36
36
|
- **Live operational context:** see Agent, Workflow, Tools, Access, model, reasoning effort, workspace, Git state, context pressure, tokens, TTFT, throughput, cache, timings, turns, and steps without leaving the composer.
|
|
37
37
|
- **Responsive by design:** retain settled transcript layout, coalesce scroll updates, emit row-level terminal diffs, and preserve correct display-cell alignment for CJK text and emoji.
|
|
38
38
|
|
|
39
39
|
## Learn
|
|
40
40
|
|
|
41
|
-
- [Tutorials](https://github.com/agi-fans/oh-my-dsh/blob/main/docs/tutorials.md) — complete a first task, add precise context, guide queued work, recover long sessions,
|
|
41
|
+
- [Tutorials](https://github.com/agi-fans/oh-my-dsh/blob/main/docs/tutorials.md) — complete a first task, add precise context, guide queued work, recover long sessions, customize the environment, and write an installable plugin.
|
|
42
42
|
- [Skills and MCP](https://github.com/agi-fans/oh-my-dsh/blob/main/docs/skills-and-mcp.md) — extend a project with reusable instructions and external tools.
|
|
43
|
+
- [User plugins](https://github.com/agi-fans/oh-my-dsh/blob/main/docs/plugins.md) — install DSH bundles into the omdsh Profile with `omdsh plugin`.
|
|
43
44
|
- [Architecture](https://github.com/agi-fans/oh-my-dsh/blob/main/docs/architecture.md) — understand the plugin boundaries and runtime data flow.
|
|
44
45
|
- [Performance](https://github.com/agi-fans/oh-my-dsh/blob/main/docs/performance.md) — inspect the benchmarks, methodology, and rendering optimizations.
|
|
45
46
|
|
|
@@ -80,7 +81,7 @@ See the reproducible [TUI performance report](https://github.com/agi-fans/oh-my-
|
|
|
80
81
|
|
|
81
82
|
## Configuration
|
|
82
83
|
|
|
83
|
-
Run `/login` to
|
|
84
|
+
Run `/login` to configure a provider API key. DeepSeek still opens the official key dashboard, validates the key, and prefers the stored credential over an inherited `DEEPSEEK_API_KEY`. The same command can also activate a catalog provider such as OpenAI or Anthropic, or add a custom provider with its own id, base URL, protocol, and model ids. `/model` then lists every live route. `/logout` removes an omdsh-managed choice and, for DeepSeek, falls back to the environment when available.
|
|
84
85
|
|
|
85
86
|
Model settings can also come from `$DSH_HOME/settings.yaml`. Skills and MCP configuration are documented in [Skills and MCP](https://github.com/agi-fans/oh-my-dsh/blob/main/docs/skills-and-mcp.md).
|
|
86
87
|
|
|
@@ -98,7 +99,7 @@ pnpm smoke # interactive PTY smoke test
|
|
|
98
99
|
pnpm smoke:happy # mock-LLM happy path
|
|
99
100
|
```
|
|
100
101
|
|
|
101
|
-
The checkouts in `refs/deepseek-harness
|
|
102
|
+
The checkouts in `refs/deepseek-harness`, `refs/oh-my-pi`, and `refs/pi` are read-only references. Do not use them as runtime dependencies or modify them while developing omdsh.
|
|
102
103
|
|
|
103
104
|
## Changelog
|
|
104
105
|
|
|
@@ -106,12 +107,13 @@ User-visible changes and release history are tracked in [CHANGELOG.md](https://g
|
|
|
106
107
|
|
|
107
108
|
## Acknowledgements
|
|
108
109
|
|
|
109
|
-
oh-my-dsh exists because of
|
|
110
|
+
oh-my-dsh exists because of these projects:
|
|
110
111
|
|
|
111
112
|
- [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) provides the runtime foundation, plugin architecture, and the conviction that agent capabilities should be composable rather than embedded in one application.
|
|
112
|
-
- [
|
|
113
|
+
- [Pi](https://github.com/earendil-works/pi) is the original open agent harness whose terminal interaction, differential rendering, and compact coding-agent craft still set the standard this community builds on.
|
|
114
|
+
- [oh-my-pi](https://github.com/can1357/oh-my-pi) continues that lineage and shows how thoughtful terminal interaction, compact information design, and careful keyboard workflows can make an agent feel fast and approachable.
|
|
113
115
|
|
|
114
|
-
Thank you to
|
|
116
|
+
Thank you to these projects and their contributors. omdsh is an independent community project: it is built on DeepSeek Harness and learns from Pi and OMP, but is not an official distribution of any of them.
|
|
115
117
|
|
|
116
118
|
## License
|
|
117
119
|
|
package/config/cordis.yml
CHANGED
|
@@ -1,266 +1,274 @@
|
|
|
1
|
-
# omdsh
|
|
2
|
-
# runtime. No Host, no HTTP, no
|
|
3
|
-
# executor-less agent spine, the DeepSeek
|
|
4
|
-
# (provider + interactive runner).
|
|
1
|
+
# omdsh product bundle — one insert over an empty Profile root.
|
|
2
|
+
# TUI coding agent over the DeepSeek Harness core runtime. No Host, no HTTP, no
|
|
3
|
+
# browser layer: local executors, the executor-less agent spine, the DeepSeek
|
|
4
|
+
# adapter, and the omdsh TUI seam (provider + interactive runner).
|
|
5
5
|
#
|
|
6
6
|
# Model/provider rows read the CLI/environment overrides through the
|
|
7
7
|
# harness's sanctioned dynamic-config mechanism (!!js under plugin config).
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
#
|
|
49
|
-
#
|
|
50
|
-
#
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
- id:
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
- id:
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
- id:
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
- id: tool-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
9
|
+
- insert:
|
|
10
|
+
- id: timer
|
|
11
|
+
name: '@deepseek-ai/cordis-plugin-timer'
|
|
12
|
+
|
|
13
|
+
- id: llm
|
|
14
|
+
name: '@deepseek-ai/dsh-llm'
|
|
15
|
+
|
|
16
|
+
- id: llm-deepseek
|
|
17
|
+
name: '@deepseek-ai/dsh-llm-deepseek'
|
|
18
|
+
|
|
19
|
+
- id: session
|
|
20
|
+
name: '@deepseek-ai/dsh-session'
|
|
21
|
+
|
|
22
|
+
- id: session-persistence
|
|
23
|
+
name: '@deepseek-ai/dsh-session-persistence-jsonl'
|
|
24
|
+
config:
|
|
25
|
+
root: !!js "(process.env.OMDSH_HOME || process.env.DSH_HOME || process.env.HOME + '/.dsh') + '/sessions'"
|
|
26
|
+
|
|
27
|
+
- id: session-checkpoint
|
|
28
|
+
name: '@deepseek-ai/dsh-session-checkpoint-policy'
|
|
29
|
+
|
|
30
|
+
- id: session-projection
|
|
31
|
+
name: '@deepseek-ai/dsh-session-projection'
|
|
32
|
+
|
|
33
|
+
- id: session-title
|
|
34
|
+
name: '@deepseek-ai/dsh-session-title'
|
|
35
|
+
config:
|
|
36
|
+
fallbackMaxWords: 8
|
|
37
|
+
fallbackMaxBytes: 80
|
|
38
|
+
maxTitleBytes: 120
|
|
39
|
+
|
|
40
|
+
- id: session-stats
|
|
41
|
+
name: '@deepseek-ai/dsh-session-stats'
|
|
42
|
+
|
|
43
|
+
- id: attachments
|
|
44
|
+
name: '@deepseek-ai/dsh-attachment-local'
|
|
45
|
+
config:
|
|
46
|
+
dshHome: !!js process.env.OMDSH_HOME || process.env.DSH_HOME || undefined
|
|
47
|
+
|
|
48
|
+
# User settings document ($DSH_HOME/settings.yaml) and credential sources
|
|
49
|
+
# (inherited env, managed .credentials.yaml, project/user .env) — the same
|
|
50
|
+
# rows the harness base mounts, so omdsh honors the user's existing model
|
|
51
|
+
# route and API key setup out of the box.
|
|
52
|
+
- id: settings
|
|
53
|
+
name: '@deepseek-ai/dsh-settings-file'
|
|
54
|
+
config:
|
|
55
|
+
dshHome: !!js process.env.OMDSH_HOME || process.env.DSH_HOME || undefined
|
|
56
|
+
|
|
57
|
+
- id: credentials
|
|
58
|
+
name: '@deepseek-ai/dsh-credentials-local'
|
|
59
|
+
config:
|
|
60
|
+
dshHome: !!js process.env.OMDSH_HOME || process.env.DSH_HOME || undefined
|
|
61
|
+
|
|
62
|
+
# Dormant multi-provider twin: zero extra picker routes until a `llm-pi-ai:`
|
|
63
|
+
# settings section supplies profiles. /login writes those profiles; /model
|
|
64
|
+
# lists whatever routes become live. Keep llm-deepseek as the official
|
|
65
|
+
# DeepSeek identity — its route is `deepseek-official`, not catalog `deepseek`.
|
|
66
|
+
- id: llm-pi-ai
|
|
67
|
+
name: '@deepseek-ai/dsh-llm-pi-ai'
|
|
68
|
+
|
|
69
|
+
- id: agent
|
|
70
|
+
name: '@deepseek-ai/dsh-agent'
|
|
71
|
+
|
|
72
|
+
- id: agent-default-model
|
|
73
|
+
name: '@deepseek-ai/dsh-agent-default-model'
|
|
74
|
+
config:
|
|
75
|
+
provider: !!js process.env.OMDSH_PROVIDER || 'deepseek-official'
|
|
76
|
+
model: !!js process.env.OMDSH_MODEL || 'deepseek-v4-flash'
|
|
77
|
+
|
|
78
|
+
- id: agent-presets
|
|
79
|
+
name: '@deepseek-ai/dsh-agent-presets'
|
|
80
|
+
config:
|
|
81
|
+
default: standard
|
|
82
|
+
roots:
|
|
83
|
+
- path: !!js "process.getBuiltinModule('node:url').fileURLToPath(new URL('./agent-presets/', baseUrl))"
|
|
84
|
+
trust: system
|
|
85
|
+
|
|
86
|
+
- id: commands
|
|
87
|
+
name: '@deepseek-ai/dsh-commands'
|
|
88
|
+
|
|
89
|
+
- id: user-questions
|
|
90
|
+
name: '@deepseek-ai/dsh-user-questions'
|
|
91
|
+
|
|
92
|
+
- id: approval
|
|
93
|
+
name: '@deepseek-ai/dsh-user-approval'
|
|
94
|
+
config:
|
|
95
|
+
policy: !!js "(process.env.OMDSH_PERMISSION_MODE || 'workspace-write') === 'danger-full-access' ? 'never' : 'ask'"
|
|
96
|
+
|
|
97
|
+
# Every session starts with one explicit access preset. The environment is a
|
|
98
|
+
# deployment override; the TUI switches it later through the /permission picker.
|
|
99
|
+
- id: sandbox
|
|
100
|
+
name: '@deepseek-ai/dsh-sandbox-local'
|
|
101
|
+
|
|
102
|
+
- id: sandbox-policy
|
|
103
|
+
name: '@deepseek-ai/dsh-sandbox-policy'
|
|
104
|
+
config:
|
|
105
|
+
mode: !!js process.env.OMDSH_PERMISSION_MODE || 'workspace-write'
|
|
106
|
+
workspaceRoot: !!js process.cwd()
|
|
107
|
+
|
|
108
|
+
- id: fs
|
|
109
|
+
name: '@deepseek-ai/dsh-fs-local'
|
|
110
|
+
|
|
111
|
+
- id: fs-observation-policy
|
|
112
|
+
name: '@deepseek-ai/dsh-fs-observation-policy'
|
|
113
|
+
|
|
114
|
+
- id: subprocess
|
|
115
|
+
name: '@deepseek-ai/dsh-subprocess-local'
|
|
116
|
+
|
|
117
|
+
- id: bash
|
|
118
|
+
name: '@deepseek-ai/dsh-bash-sandbox'
|
|
119
|
+
|
|
120
|
+
- id: permission
|
|
121
|
+
name: '@deepseek-ai/dsh-permission-presets'
|
|
122
|
+
config:
|
|
123
|
+
presets:
|
|
124
|
+
read-only:
|
|
125
|
+
sandbox: read-only
|
|
126
|
+
approval: ask
|
|
127
|
+
name: Read only
|
|
128
|
+
description: Inspect the workspace without writing; escalation requires approval.
|
|
129
|
+
workspace-write:
|
|
130
|
+
sandbox: workspace-write
|
|
131
|
+
approval: ask
|
|
132
|
+
name: Workspace write
|
|
133
|
+
description: Write inside the workspace; wider access requires approval.
|
|
134
|
+
danger-full-access:
|
|
135
|
+
sandbox: danger-full-access
|
|
136
|
+
approval: never
|
|
137
|
+
name: Full access
|
|
138
|
+
description: Full filesystem access without approval prompts.
|
|
139
|
+
|
|
140
|
+
- id: spine
|
|
141
|
+
name: '@deepseek-ai/dsh-agent-spine-demo'
|
|
142
|
+
config:
|
|
143
|
+
workspaceContext:
|
|
144
|
+
maxBytes: 65536
|
|
145
|
+
dshHome: !!js process.env.OMDSH_HOME || undefined
|
|
146
|
+
skills:
|
|
147
|
+
enabled: true
|
|
148
|
+
goals:
|
|
149
|
+
domain: {}
|
|
150
|
+
tool: {}
|
|
151
|
+
tools:
|
|
152
|
+
mode: native
|
|
153
|
+
|
|
154
|
+
- id: code-runtime
|
|
155
|
+
name: '@deepseek-ai/dsh-code-runtime-worker-thread'
|
|
156
|
+
|
|
157
|
+
- id: cordis-host-runner
|
|
158
|
+
name: '@deepseek-ai/dsh-cordis-host-runner'
|
|
159
|
+
|
|
160
|
+
# Human and model workflow contributions. The TUI discovers human commands
|
|
161
|
+
# from dsh-commands and renders unknown tools through its safe fallback.
|
|
162
|
+
- id: command-goal
|
|
163
|
+
name: '@deepseek-ai/dsh-command-goal'
|
|
164
|
+
|
|
165
|
+
- id: tool-ask-user
|
|
166
|
+
name: '@deepseek-ai/dsh-tool-ask-user'
|
|
167
|
+
|
|
168
|
+
- id: plan-mode
|
|
169
|
+
name: '@deepseek-ai/dsh-plan-mode'
|
|
170
|
+
config:
|
|
171
|
+
section: |
|
|
172
|
+
You are in plan mode. Stay in plan mode until exit_plan_mode succeeds or the user switches the session mode. Imperative language to implement changes means plan the implementation, not execute it. A user's conversational agreement — including an answer confirming something you asked — approves nothing and does not end plan mode; fold the confirmed decision into the plan and submit it through exit_plan_mode.
|
|
173
|
+
|
|
174
|
+
Explore first. Use non-mutating reads, searches, static analysis, and checks to ground the plan in the actual repository. Do not edit or write files, change configuration, run formatters or code generation that rewrites tracked files, commit, or otherwise carry out the plan. Prefer existing functions and patterns over new machinery.
|
|
175
|
+
|
|
176
|
+
The tool catalog stays the same across modes for request-cache stability. These plan-mode rules override any later tool description or guidance that suggests using mutation tools; those tools remain listed to keep the tool catalog unchanged. Do not use todo_write to track this planning phase: it tracks implementation after an approved plan, while the plan itself belongs in exit_plan_mode.
|
|
177
|
+
|
|
178
|
+
Resolve discoverable facts by inspection. Use ask_user_question only for user-owned choices or material ambiguity that inspection cannot answer. Do not ask the user where code lives or how current behavior works when you can find out.
|
|
179
|
+
|
|
180
|
+
Make the plan decision-complete: state the goal and success criteria; group implementation changes by subsystem; identify public interface, schema, and data-flow changes; cover edge cases, failure modes, tests, acceptance criteria, and explicit assumptions. Keep it concise enough to review but detailed enough that another engineer can implement it without making design decisions.
|
|
181
|
+
|
|
182
|
+
When ready, call exit_plan_mode with the complete plan markdown, starting with a # title. Make exit_plan_mode the only and final tool call in that assistant response: it presents the plan for approval, and implementation begins only in a later step after approval. Do not paste the final plan as a plain reply or ask "should I proceed?" through prose or ask_user_question. If review rejects it, incorporate the feedback and present again. If the review channel is unavailable or aborted, stay in plan mode and ask the user to switch modes manually; do not proceed with implementation.
|
|
183
|
+
|
|
184
|
+
- id: tool-fs
|
|
185
|
+
name: '@deepseek-ai/dsh-tool-fs'
|
|
186
|
+
|
|
187
|
+
- id: tool-fs-search
|
|
188
|
+
name: '@deepseek-ai/dsh-tool-fs-search'
|
|
189
|
+
config:
|
|
190
|
+
sampleOverCapGlobResults: false
|
|
191
|
+
|
|
192
|
+
- id: tool-todo
|
|
193
|
+
name: '@deepseek-ai/dsh-tool-todo'
|
|
194
|
+
config:
|
|
195
|
+
allowParallelInProgress: true
|
|
188
196
|
|
|
189
|
-
- id: tool-str-replace-editor
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
197
|
+
- id: tool-str-replace-editor
|
|
198
|
+
name: '@deepseek-ai/dsh-tool-str-replace-editor'
|
|
199
|
+
config:
|
|
200
|
+
maxOutputChars: 16000
|
|
193
201
|
|
|
194
|
-
- id: token-meter
|
|
195
|
-
|
|
202
|
+
- id: token-meter
|
|
203
|
+
name: '@deepseek-ai/dsh-token-meter'
|
|
196
204
|
|
|
197
|
-
- id: compaction
|
|
198
|
-
|
|
205
|
+
- id: compaction
|
|
206
|
+
name: '@deepseek-ai/dsh-compaction-basic'
|
|
199
207
|
|
|
200
|
-
- id: command-compact
|
|
201
|
-
|
|
208
|
+
- id: command-compact
|
|
209
|
+
name: '@deepseek-ai/dsh-command-compact'
|
|
202
210
|
|
|
203
|
-
- id: subagent
|
|
204
|
-
|
|
211
|
+
- id: subagent
|
|
212
|
+
name: '@deepseek-ai/dsh-subagent'
|
|
205
213
|
|
|
206
|
-
- id: subagent-spawn
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
- id: subagent-control
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
- id: subagent-list
|
|
215
|
-
|
|
214
|
+
- id: subagent-spawn
|
|
215
|
+
name: '@deepseek-ai/dsh-subagent-spawn-in-process'
|
|
216
|
+
config:
|
|
217
|
+
providerName: spawn
|
|
218
|
+
|
|
219
|
+
- id: subagent-control
|
|
220
|
+
name: '@deepseek-ai/dsh-tool-subagent-control'
|
|
221
|
+
|
|
222
|
+
- id: subagent-list
|
|
223
|
+
name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
|
|
216
224
|
|
|
217
|
-
- id: tool-subagent
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
225
|
+
- id: tool-subagent
|
|
226
|
+
name: '@deepseek-ai/dsh-tool-subagent'
|
|
227
|
+
config:
|
|
228
|
+
provider: spawn
|
|
229
|
+
toolName: subagent
|
|
230
|
+
backgroundMode: continuable
|
|
223
231
|
|
|
224
|
-
- id: tui
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
232
|
+
- id: tui
|
|
233
|
+
name: '@agi-fans/dsh-tui'
|
|
234
|
+
config:
|
|
235
|
+
model: !!js process.env.OMDSH_MODEL || 'deepseek-v4-flash'
|
|
228
236
|
|
|
229
|
-
- id: tui-tool-presentation
|
|
230
|
-
|
|
237
|
+
- id: tui-tool-presentation
|
|
238
|
+
name: '@agi-fans/dsh-tui/tool-presentation'
|
|
231
239
|
|
|
232
|
-
- id: tui-session-runtime
|
|
233
|
-
|
|
240
|
+
- id: tui-session-runtime
|
|
241
|
+
name: '@agi-fans/dsh-tui/session-runtime'
|
|
234
242
|
|
|
235
|
-
- id: tui-human-interaction
|
|
236
|
-
|
|
243
|
+
- id: tui-human-interaction
|
|
244
|
+
name: '@agi-fans/dsh-tui/human-interaction'
|
|
237
245
|
|
|
238
|
-
- id: tui-command-session
|
|
239
|
-
|
|
246
|
+
- id: tui-command-session
|
|
247
|
+
name: '@agi-fans/dsh-tui/command-session'
|
|
240
248
|
|
|
241
|
-
- id: tui-command-session-configuration
|
|
242
|
-
|
|
249
|
+
- id: tui-command-session-configuration
|
|
250
|
+
name: '@agi-fans/dsh-tui/command-session-configuration'
|
|
243
251
|
|
|
244
|
-
- id: tui-command-steer
|
|
245
|
-
|
|
252
|
+
- id: tui-command-steer
|
|
253
|
+
name: '@agi-fans/dsh-tui/command-steer'
|
|
246
254
|
|
|
247
|
-
- id: tui-command-loop
|
|
248
|
-
|
|
255
|
+
- id: tui-command-loop
|
|
256
|
+
name: '@agi-fans/dsh-tui/command-loop'
|
|
249
257
|
|
|
250
|
-
- id: tui-command-model
|
|
251
|
-
|
|
258
|
+
- id: tui-command-model
|
|
259
|
+
name: '@agi-fans/dsh-tui/command-model'
|
|
252
260
|
|
|
253
|
-
- id: tui-command-auth
|
|
254
|
-
|
|
261
|
+
- id: tui-command-auth
|
|
262
|
+
name: '@agi-fans/dsh-tui/command-auth'
|
|
255
263
|
|
|
256
|
-
- id: tui-command-export
|
|
257
|
-
|
|
264
|
+
- id: tui-command-export
|
|
265
|
+
name: '@agi-fans/dsh-tui/command-export'
|
|
258
266
|
|
|
259
|
-
- id: tui-command-integrations
|
|
260
|
-
|
|
267
|
+
- id: tui-command-integrations
|
|
268
|
+
name: '@agi-fans/dsh-tui/command-integrations'
|
|
261
269
|
|
|
262
|
-
- id: tui-startup-notices
|
|
263
|
-
|
|
270
|
+
- id: tui-startup-notices
|
|
271
|
+
name: '@agi-fans/dsh-tui/startup-notices'
|
|
264
272
|
|
|
265
|
-
- id: runner
|
|
266
|
-
|
|
273
|
+
- id: runner
|
|
274
|
+
name: '@agi-fans/dsh-tui/runner'
|
package/lib/args.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* omdsh argument parsing: one optional prompt
|
|
3
|
-
*
|
|
2
|
+
* omdsh argument parsing: one optional prompt, --model/--provider
|
|
3
|
+
* overrides, durable --resume, --dump-config, `omdsh plugin`, and help/version.
|
|
4
4
|
* @module @agi-fans/oh-my-dsh
|
|
5
5
|
*/
|
|
6
6
|
export interface OmdshInvocation {
|
|
@@ -12,6 +12,12 @@ export interface OmdshInvocation {
|
|
|
12
12
|
provider: string | undefined;
|
|
13
13
|
/** Durable session selected by --resume/-r. */
|
|
14
14
|
resume: string | undefined;
|
|
15
|
+
/** Print the composed plugin tree and exit. */
|
|
16
|
+
dumpConfig: boolean;
|
|
17
|
+
/** `omdsh plugin` forwarded the remaining arguments to pnpm. */
|
|
18
|
+
plugin: boolean;
|
|
19
|
+
/** pnpm arguments after `omdsh plugin`. */
|
|
20
|
+
pluginArgs: string[];
|
|
15
21
|
/** --help requested. */
|
|
16
22
|
help: boolean;
|
|
17
23
|
}
|