@1outres/dsh-plugins 0.0.0-stage → 0.2.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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 1outres
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,17 @@
1
- # Temporary Holding Version
1
+ # @1outres/dsh-plugins
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ The all-in-one bundle. It contains no runtime code: its patch inserts one
4
+ Loader row per plugin, and its dependencies pull those plugin packages into the
5
+ profile.
6
+
7
+ ```sh
8
+ dsh plugin add @1outres/dsh-plugins
9
+ ```
10
+
11
+ Every plugin package is also its own bundle (it ships a one-row
12
+ `cordis.patch.yml`), so `dsh plugin add @1outres/dsh-plugin-notify` installs
13
+ just that plugin without this package. Enable one or the other for a given
14
+ plugin: both insert the same row id.
15
+
16
+ See the repository [README](../../README.md) for the full plugin list, the row
17
+ ids and the development workflow.
@@ -0,0 +1,10 @@
1
+ # Row ids are the settings namespaces the plugins read. Disable a row here (or
2
+ # in your profile patch) to turn that plugin off without uninstalling it.
3
+ #
4
+ # Each plugin package also ships this row as its own one-row bundle. Select
5
+ # either this bundle or a plugin's own bundle for a given plugin, never both.
6
+ - insert:
7
+ - id: background
8
+ name: "@1outres/dsh-plugin-background"
9
+ - id: notify
10
+ name: "@1outres/dsh-plugin-notify"
package/package.json CHANGED
@@ -1,6 +1,45 @@
1
1
  {
2
2
  "name": "@1outres/dsh-plugins",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.2.0",
4
+ "description": "Personal DeepSeek Harness plugin bundle. Installs every plugin in this repository.",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/1outres/my-dsh-plugins.git",
8
+ "directory": "packages/dsh-plugins"
9
+ },
10
+ "type": "module",
11
+ "exports": {
12
+ "./cordis.patch.yml": "./cordis.patch.yml",
13
+ "./presets/creator-ptc.patch.yml": "./presets/creator-ptc.patch.yml",
14
+ "./package.json": "./package.json"
15
+ },
16
+ "files": [
17
+ "cordis.patch.yml",
18
+ "presets"
19
+ ],
20
+ "keywords": [
21
+ "dsh",
22
+ "dsh-bundle",
23
+ "deepseek-harness"
24
+ ],
25
+ "license": "MIT",
26
+ "publishConfig": {
27
+ "access": "public"
28
+ },
29
+ "engines": {
30
+ "dsh": ">=0.2.1-rc.5 <0.3.0",
31
+ "node": ">=22"
32
+ },
33
+ "dependencies": {
34
+ "@1outres/dsh-plugin-background": "0.2.0",
35
+ "@1outres/dsh-plugin-notify": "0.2.0"
36
+ },
37
+ "dsh": {
38
+ "bundle": {
39
+ "patch": [
40
+ "./cordis.patch.yml",
41
+ "./presets/creator-ptc.patch.yml"
42
+ ]
43
+ }
44
+ }
6
45
  }
@@ -0,0 +1,146 @@
1
+ # Agent preset "Creator (PTC)": the shipped Creator preset (`cordis`) with PTC
2
+ # tool presentation. Copied verbatim from @deepseek-ai/dsh-web-app 0.2.1-rc.5
3
+ # presets/cordis.patch.yml; the only addition is the `tool-presentation` row
4
+ # before `present`. A patch replaces the targeted row's whole config, and a
5
+ # preset cannot inherit from another, so the child list is restated in full.
6
+ # Re-copy the list when a DSH upgrade changes the shipped Creator preset.
7
+ - insert:
8
+ - id: preset-creator-ptc
9
+ name: "@deepseek-ai/dsh-agent-preset"
10
+ config:
11
+ id: creator-ptc
12
+ name: Creator (PTC)
13
+ description: Creator tools, presented as run_code plus a generated SDK.
14
+ order: 5
15
+ plugins:
16
+ # Same persona as `standard`: tool descriptions and the skill catalog carry
17
+ # the operating detail, and the skills own the preset-authoring rules.
18
+ - id: persona
19
+ name: "@deepseek-ai/dsh-persona"
20
+ config:
21
+ prefix: >-
22
+ You are a coding agent powered by the {{model}} model.
23
+ - id: agent-instructions
24
+ name: "@deepseek-ai/dsh-agent-instructions"
25
+ config:
26
+ maxBytes: 65536
27
+ - id: time-context
28
+ name: "@deepseek-ai/dsh-time-context"
29
+ - id: tool-bash
30
+ name: "@deepseek-ai/dsh-tool-bash"
31
+ disabled: !!js process.platform === 'win32'
32
+ - id: tool-pwsh
33
+ name: "@deepseek-ai/dsh-tool-pwsh"
34
+ disabled: !!js process.platform !== 'win32'
35
+ - id: tool-fs
36
+ name: "@deepseek-ai/dsh-tool-fs"
37
+ - id: tool-fs-search
38
+ name: "@deepseek-ai/dsh-tool-fs-search"
39
+ config:
40
+ sampleOverCapGlobResults: false
41
+ - id: tool-jobs
42
+ name: "@deepseek-ai/dsh-tool-jobs"
43
+ - id: tool-schedule
44
+ name: "@deepseek-ai/dsh-tool-schedule"
45
+ - id: command-goal
46
+ name: "@deepseek-ai/dsh-command-goal"
47
+ - id: tool-goal
48
+ name: "@deepseek-ai/dsh-tool-goal"
49
+ - id: planning
50
+ name: cordis:group
51
+ group: true
52
+ isolate:
53
+ planMode: true
54
+ config:
55
+ - id: plan-mode
56
+ name: "@deepseek-ai/dsh-plan-mode"
57
+ config:
58
+ section: |
59
+ You are in plan mode. Stay in plan mode until the user approves your plan through exit_plan_mode or 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.
60
+
61
+ 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.
62
+
63
+ 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.
64
+
65
+ 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.
66
+
67
+ Make the plan decision-complete: state the goal and success criteria; group implementation changes by subsystem; identify public API, 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.
68
+
69
+ 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.
70
+ - id: compaction
71
+ name: cordis:group
72
+ group: true
73
+ isolate:
74
+ compaction: true
75
+ toolResultPruner: true
76
+ config:
77
+ - id: compaction-basic
78
+ name: "@deepseek-ai/dsh-compaction-basic"
79
+ - id: command-compact
80
+ name: "@deepseek-ai/dsh-command-compact"
81
+ - id: tool-result-pruner
82
+ name: "@deepseek-ai/dsh-compaction-tool-result-pruner"
83
+ config:
84
+ thresholdChars: 8192
85
+ headChars: 4096
86
+ tailChars: 1024
87
+ - id: delegation
88
+ name: cordis:group
89
+ group: true
90
+ isolate:
91
+ workflowEngine: true
92
+ config:
93
+ - id: tool-subagent-control
94
+ name: "@deepseek-ai/dsh-tool-subagent-control"
95
+ - id: tool-subagent-list-agents
96
+ name: "@deepseek-ai/dsh-tool-subagent-control/list-agents"
97
+ - id: tool-subagent
98
+ name: "@deepseek-ai/dsh-tool-subagent"
99
+ config:
100
+ provider: spawn
101
+ toolName: subagent
102
+ modelSelectionSettings: true
103
+ - id: tool-subagent-fork
104
+ name: "@deepseek-ai/dsh-tool-subagent"
105
+ config:
106
+ provider: fork
107
+ toolName: subagent_fork
108
+ - id: workflow-ptc
109
+ name: "@deepseek-ai/dsh-workflow-ptc"
110
+ config:
111
+ provider: spawn
112
+ - id: tool-workflow
113
+ name: "@deepseek-ai/dsh-tool-workflow"
114
+ - id: tool-ask-user
115
+ name: "@deepseek-ai/dsh-tool-ask-user"
116
+ - id: tool-todo
117
+ name: "@deepseek-ai/dsh-tool-todo"
118
+ config:
119
+ allowParallelInProgress: true
120
+ - id: tool-web
121
+ name: "@deepseek-ai/dsh-tool-web"
122
+ config:
123
+ fetch: true
124
+ searchTimeoutMs: 60000
125
+ - id: tool-cordis
126
+ name: "@deepseek-ai/dsh-tool-cordis"
127
+ - id: skill-filesystem
128
+ name: "@deepseek-ai/dsh-skill-filesystem"
129
+ config:
130
+ customSkillDirs:
131
+ - !!js process.getBuiltinModule('node:path').join(process.getBuiltinModule('node:path').dirname(process.getBuiltinModule('node:module').createRequire(baseUrl).resolve('@deepseek-ai/dsh-agent-preset/package.json')), 'skills')
132
+ - id: tool-skill
133
+ name: "@deepseek-ai/dsh-tool-skill"
134
+ # The only difference from the shipped Creator preset.
135
+ - id: tool-presentation
136
+ name: "@deepseek-ai/dsh-agent-tool-presentation"
137
+ config:
138
+ mode: ptc
139
+ - id: present
140
+ name: "@deepseek-ai/dsh-tool-present"
141
+ - id: tool-plugin-manager
142
+ name: "@deepseek-ai/dsh-plugin-manager/tools"
143
+ disabled: !!js "!ctx.get('profileContext')"
144
+ - id: tool-plugin-market
145
+ name: "@deepseek-ai/dsh-plugin-market/tools"
146
+ disabled: !!js "!ctx.get('profileContext')"