@tianyi0505/dsh-superagent 0.0.0-stage → 0.1.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/LICENSE +21 -0
- package/README.md +38 -2
- package/cordis.patch.yml +193 -0
- package/lib/client.js +6884 -0
- package/lib/feishu-rAGM9U9b.js +1324 -0
- package/lib/feishu-watch.d.ts +125 -0
- package/lib/feishu-watch.js +2 -0
- package/lib/github-pull-gSbjzypm.js +596 -0
- package/lib/github-watch.d.ts +2 -0
- package/lib/github-watch.js +832 -0
- package/lib/index.d.ts +369 -0
- package/lib/index.js +10616 -0
- package/lib/intake-BntR4bhz.d.ts +728 -0
- package/lib/kind-CC2z1Ko1.d.ts +956 -0
- package/lib/poll-Dh7J1cdM.js +872 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +129 -4
- package/prompts/admission.md +68 -0
- package/prompts/cli.md +17 -0
- package/prompts/dispatch.md +59 -0
- package/prompts/handoff-orchestrator.md +4 -0
- package/prompts/handoff-worker.md +7 -0
- package/prompts/handoff.md +6 -0
- package/prompts/orchestrator.md +16 -0
- package/prompts/replies.md +35 -0
- package/prompts/shared.md +7 -0
- package/prompts/subscriptions.md +13 -0
- package/prompts/team/communication.md +97 -0
- package/prompts/team/delivery.md +28 -0
- package/prompts/team/scope.md +22 -0
- package/prompts/work.md +49 -0
- package/prompts/worker.md +10 -0
- package/skills/dsh-superagent-feishu/SKILL.md +12 -0
- package/skills/dsh-superagent-github/SKILL.md +14 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 DeepSeek Harness Team
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,39 @@
|
|
|
1
|
-
#
|
|
1
|
+
# dsh-superagent
|
|
2
2
|
|
|
3
|
-
This
|
|
3
|
+
> **Research prototype for reference only, not an official DeepSeek product.** This code grew out of our team's day-to-day development work, with much of the engineering done by coding agents. Treat it as research code, not production-ready software. It may still contain bugs, and its coding style and engineering practices may be inconsistent. Review and adapt it before using it in your own environment.
|
|
4
|
+
>
|
|
5
|
+
> We have adapted it for publication, so it is not identical to our internal version or the implementation described in *Exploring Super-agent Design: Towards a More Autonomous Agent System*. Some designs discussed in the article are directions for future development and are not implemented in this prototype.
|
|
6
|
+
|
|
7
|
+
dsh-superagent is a proactive coding agent for one GitHub repository, packaged as a bundle for [DeepSeek Harness](https://www.deepseek.com/en/harness/). It listens to GitHub and, optionally, Feishu. When someone allowed asks the agent for work, it opens a work item, works on it in its own agent session and directory, and answers in the original conversation, for example with a pull request. A web panel shows what needs a person.
|
|
8
|
+
|
|
9
|
+
It is also a way of working with an agent: **take as little human attention as possible, and give as much value as possible.** An agent that can act for a whole team can also waste a whole team's attention, so it acts only when asked or when a rule the team wrote allows it, and speaks only when someone must act or can use a result. [docs/000-philosophy.md](docs/000-philosophy.md) explains the principle and what it asks of the operator.
|
|
10
|
+
|
|
11
|
+
## Setup
|
|
12
|
+
|
|
13
|
+
Setup has many steps, so an agent does it with you. Ask your coding agent:
|
|
14
|
+
|
|
15
|
+
> Read SETUP.md in this repository and set up dsh-superagent with me.
|
|
16
|
+
|
|
17
|
+
It asks one short question at a time, shows the full plan once, and then installs and configures everything. [SETUP.md](SETUP.md) is what it follows.
|
|
18
|
+
|
|
19
|
+
## Documentation
|
|
20
|
+
|
|
21
|
+
Read the numbered documents in order; each builds only on the ones before it.
|
|
22
|
+
|
|
23
|
+
- [000 Philosophy](docs/000-philosophy.md)
|
|
24
|
+
- [001 Domain model](docs/001-domain.md)
|
|
25
|
+
- [002 Authorization](docs/002-authorization.md)
|
|
26
|
+
- [003 Execution](docs/003-execution.md)
|
|
27
|
+
- [004 Prompts](docs/004-prompts.md)
|
|
28
|
+
- [005 Panel](docs/005-panel.md)
|
|
29
|
+
- [006 Deployment](docs/006-deployment.md): manual setup, configuration, upgrades and troubleshooting
|
|
30
|
+
- [007 Architecture](docs/007-architecture.md)
|
|
31
|
+
- [008 Cookbook](docs/008-cookbook.md): adding a Source
|
|
32
|
+
|
|
33
|
+
## Development
|
|
34
|
+
|
|
35
|
+
`pnpm check` runs the typecheck, the tests and the build.
|
|
36
|
+
|
|
37
|
+
## License
|
|
38
|
+
|
|
39
|
+
[MIT](LICENSE)
|
package/cordis.patch.yml
ADDED
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# dsh-superagent bundle layer: inserts the plugins without configuration, and the agent presets its Sessions run under. The
|
|
2
|
+
# profile supplies the `dsh-superagent` entry's stateDir (see docs/006-deployment.md and examples/profile.cordis.patch.yml); the plugin
|
|
3
|
+
# refuses to start without stateDir.
|
|
4
|
+
- insert:
|
|
5
|
+
- id: dsh-superagent
|
|
6
|
+
name: '@tianyi0505/dsh-superagent'
|
|
7
|
+
- id: dsh-superagent-github
|
|
8
|
+
name: '@tianyi0505/dsh-superagent/github-watch'
|
|
9
|
+
# Optional Feishu Source; requires configuring a bot CLI after enabling.
|
|
10
|
+
- id: dsh-superagent-feishu
|
|
11
|
+
name: '@tianyi0505/dsh-superagent/feishu-watch'
|
|
12
|
+
disabled: true
|
|
13
|
+
# The agent preset of every Executor Session (WORKER_PRESET in src/app/sessions.ts); the main Session has its own, below.
|
|
14
|
+
# It is DSH's `standard` preset with only what a worker needs, and a shell whose foreground command moves to a background job
|
|
15
|
+
# after 5 seconds, so a long command does not hold back a person's message, which the Session takes at its next step. Left
|
|
16
|
+
# out: questions to a person, presenting, plan mode, the plugin manager and market, scheduling, goals, workflows, web fetch,
|
|
17
|
+
# and forked subagents, which would run under this preset; spawned subagents run under `standard`, whose shell moves a
|
|
18
|
+
# command to a background job only after 60 seconds, as a subagent's jobs are killed when it ends. A preset row has no
|
|
19
|
+
# setting that hides it from the preset picker, so its name and description say whom it is for.
|
|
20
|
+
- id: dsh-superagent-worker-preset
|
|
21
|
+
name: '@deepseek-ai/dsh-agent-preset'
|
|
22
|
+
config:
|
|
23
|
+
id: dsh-superagent-worker
|
|
24
|
+
name: dsh-superagent 执行器
|
|
25
|
+
description: dsh-superagent 的执行器 Session 专用,不供手动选择。前台命令超 5 秒转入后台,只含执行工作所需的工具。
|
|
26
|
+
order: 90
|
|
27
|
+
plugins:
|
|
28
|
+
- id: persona
|
|
29
|
+
name: '@deepseek-ai/dsh-persona'
|
|
30
|
+
config:
|
|
31
|
+
prefix: You are a coding agent powered by the {{model}} model.
|
|
32
|
+
- id: agent-instructions
|
|
33
|
+
name: '@deepseek-ai/dsh-agent-instructions'
|
|
34
|
+
config:
|
|
35
|
+
maxBytes: 65536
|
|
36
|
+
- id: time-context
|
|
37
|
+
name: '@deepseek-ai/dsh-time-context'
|
|
38
|
+
# A foreground command waits at most 5 s, then the shell tool moves it to a background job.
|
|
39
|
+
- id: shell
|
|
40
|
+
name: cordis:group
|
|
41
|
+
group: true
|
|
42
|
+
isolate:
|
|
43
|
+
shell: true
|
|
44
|
+
config:
|
|
45
|
+
- id: bash-sandbox
|
|
46
|
+
name: '@deepseek-ai/dsh-bash-sandbox'
|
|
47
|
+
disabled: !!js process.platform === 'win32'
|
|
48
|
+
config:
|
|
49
|
+
timeoutMs: 5000
|
|
50
|
+
maxTimeoutMs: 5000
|
|
51
|
+
- id: pwsh-sandbox
|
|
52
|
+
name: '@deepseek-ai/dsh-pwsh-sandbox'
|
|
53
|
+
disabled: !!js process.platform !== 'win32'
|
|
54
|
+
config:
|
|
55
|
+
timeoutMs: 5000
|
|
56
|
+
maxTimeoutMs: 5000
|
|
57
|
+
- id: tool-bash
|
|
58
|
+
name: '@deepseek-ai/dsh-tool-bash'
|
|
59
|
+
disabled: !!js process.platform === 'win32'
|
|
60
|
+
- id: tool-pwsh
|
|
61
|
+
name: '@deepseek-ai/dsh-tool-pwsh'
|
|
62
|
+
disabled: !!js process.platform !== 'win32'
|
|
63
|
+
- id: tool-fs
|
|
64
|
+
name: '@deepseek-ai/dsh-tool-fs'
|
|
65
|
+
- id: tool-fs-search
|
|
66
|
+
name: '@deepseek-ai/dsh-tool-fs-search'
|
|
67
|
+
config:
|
|
68
|
+
sampleOverCapGlobResults: false
|
|
69
|
+
# A wait for a job ends after 5 s too; the job's end wakes the worker with its result.
|
|
70
|
+
- id: tool-jobs
|
|
71
|
+
name: '@deepseek-ai/dsh-tool-jobs'
|
|
72
|
+
config:
|
|
73
|
+
waitTimeoutMs: 5000
|
|
74
|
+
maxWaitTimeoutMs: 5000
|
|
75
|
+
- id: skill-filesystem
|
|
76
|
+
name: '@deepseek-ai/dsh-skill-filesystem'
|
|
77
|
+
- id: tool-skill
|
|
78
|
+
name: '@deepseek-ai/dsh-tool-skill'
|
|
79
|
+
- id: compaction
|
|
80
|
+
name: cordis:group
|
|
81
|
+
group: true
|
|
82
|
+
isolate:
|
|
83
|
+
compaction: true
|
|
84
|
+
toolResultPruner: true
|
|
85
|
+
config:
|
|
86
|
+
- id: compaction-basic
|
|
87
|
+
name: '@deepseek-ai/dsh-compaction-basic'
|
|
88
|
+
- id: command-compact
|
|
89
|
+
name: '@deepseek-ai/dsh-command-compact'
|
|
90
|
+
- id: tool-result-pruner
|
|
91
|
+
name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
|
|
92
|
+
config:
|
|
93
|
+
thresholdChars: 8192
|
|
94
|
+
headChars: 4096
|
|
95
|
+
tailChars: 1024
|
|
96
|
+
- id: delegation
|
|
97
|
+
name: cordis:group
|
|
98
|
+
group: true
|
|
99
|
+
isolate:
|
|
100
|
+
workflowEngine: true
|
|
101
|
+
config:
|
|
102
|
+
- id: tool-subagent-control
|
|
103
|
+
name: '@deepseek-ai/dsh-tool-subagent-control'
|
|
104
|
+
- id: tool-subagent
|
|
105
|
+
name: '@deepseek-ai/dsh-tool-subagent'
|
|
106
|
+
config:
|
|
107
|
+
provider: spawn
|
|
108
|
+
toolName: subagent
|
|
109
|
+
modelSelection: true
|
|
110
|
+
modelDiscovery: true
|
|
111
|
+
agentPreset: standard
|
|
112
|
+
- id: tool-todo
|
|
113
|
+
name: '@deepseek-ai/dsh-tool-todo'
|
|
114
|
+
config:
|
|
115
|
+
allowParallelInProgress: true
|
|
116
|
+
- id: tool-web
|
|
117
|
+
name: '@deepseek-ai/dsh-tool-web'
|
|
118
|
+
config:
|
|
119
|
+
fetch: false
|
|
120
|
+
searchTimeoutMs: 60000
|
|
121
|
+
# The agent preset of the main Session (ROUTER_PRESET in src/app/sessions.ts). The worker's 5-second shell and job waits, so a command or a wait does not hold back the next candidates, and
|
|
122
|
+
# only what the main Session uses: no subagents, web, file search or writes, todo list, questions to a person, presenting,
|
|
123
|
+
# plan mode, plugin manager, scheduling, goals or workflows. No persona: the main Session's prompt is complete, so it has
|
|
124
|
+
# no other section.
|
|
125
|
+
- id: dsh-superagent-router-preset
|
|
126
|
+
name: '@deepseek-ai/dsh-agent-preset'
|
|
127
|
+
config:
|
|
128
|
+
id: dsh-superagent-router
|
|
129
|
+
name: dsh-superagent 主 Session
|
|
130
|
+
description: dsh-superagent 的主 Session 专用,不供手动选择。前台命令和任务等待超 5 秒转入后台,只含路由所需的工具。
|
|
131
|
+
order: 91
|
|
132
|
+
plugins:
|
|
133
|
+
- id: agent-instructions
|
|
134
|
+
name: '@deepseek-ai/dsh-agent-instructions'
|
|
135
|
+
config:
|
|
136
|
+
maxBytes: 65536
|
|
137
|
+
- id: time-context
|
|
138
|
+
name: '@deepseek-ai/dsh-time-context'
|
|
139
|
+
- id: shell
|
|
140
|
+
name: cordis:group
|
|
141
|
+
group: true
|
|
142
|
+
isolate:
|
|
143
|
+
shell: true
|
|
144
|
+
config:
|
|
145
|
+
- id: bash-sandbox
|
|
146
|
+
name: '@deepseek-ai/dsh-bash-sandbox'
|
|
147
|
+
disabled: !!js process.platform === 'win32'
|
|
148
|
+
config:
|
|
149
|
+
timeoutMs: 5000
|
|
150
|
+
maxTimeoutMs: 5000
|
|
151
|
+
- id: pwsh-sandbox
|
|
152
|
+
name: '@deepseek-ai/dsh-pwsh-sandbox'
|
|
153
|
+
disabled: !!js process.platform !== 'win32'
|
|
154
|
+
config:
|
|
155
|
+
timeoutMs: 5000
|
|
156
|
+
maxTimeoutMs: 5000
|
|
157
|
+
- id: tool-bash
|
|
158
|
+
name: '@deepseek-ai/dsh-tool-bash'
|
|
159
|
+
disabled: !!js process.platform === 'win32'
|
|
160
|
+
- id: tool-pwsh
|
|
161
|
+
name: '@deepseek-ai/dsh-tool-pwsh'
|
|
162
|
+
disabled: !!js process.platform !== 'win32'
|
|
163
|
+
- id: tool-fs
|
|
164
|
+
name: '@deepseek-ai/dsh-tool-fs'
|
|
165
|
+
config:
|
|
166
|
+
write: false
|
|
167
|
+
edit: false
|
|
168
|
+
- id: tool-jobs
|
|
169
|
+
name: '@deepseek-ai/dsh-tool-jobs'
|
|
170
|
+
config:
|
|
171
|
+
waitTimeoutMs: 5000
|
|
172
|
+
maxWaitTimeoutMs: 5000
|
|
173
|
+
- id: skill-filesystem
|
|
174
|
+
name: '@deepseek-ai/dsh-skill-filesystem'
|
|
175
|
+
- id: tool-skill
|
|
176
|
+
name: '@deepseek-ai/dsh-tool-skill'
|
|
177
|
+
- id: compaction
|
|
178
|
+
name: cordis:group
|
|
179
|
+
group: true
|
|
180
|
+
isolate:
|
|
181
|
+
compaction: true
|
|
182
|
+
toolResultPruner: true
|
|
183
|
+
config:
|
|
184
|
+
- id: compaction-basic
|
|
185
|
+
name: '@deepseek-ai/dsh-compaction-basic'
|
|
186
|
+
- id: command-compact
|
|
187
|
+
name: '@deepseek-ai/dsh-command-compact'
|
|
188
|
+
- id: tool-result-pruner
|
|
189
|
+
name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
|
|
190
|
+
config:
|
|
191
|
+
thresholdChars: 8192
|
|
192
|
+
headChars: 4096
|
|
193
|
+
tailChars: 1024
|