@civilization/dsh 0.2.0-rc.2 → 0.2.0-rc.2-civilization.0.0.2

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 CHANGED
@@ -1,7 +1,9 @@
1
- # `@deepseek-ai/dsh`
1
+ # `@civilization/dsh`
2
2
 
3
3
  English | [中文](README.zh.md)
4
4
 
5
+ > **Unofficial Package Notice**: `@civilization/dsh` is the community distribution maintained on top of upstream `deepseek-ai/deepseek-harness`, featuring cross-platform path fixes and standalone single-package distribution. Upstream official package is `@deepseek-ai/dsh`.
6
+
5
7
  The `dsh` command is the sole supported Node application launcher: profiles are ordered stacks of plugin-bundle patch layers under the user's own overrides. SDK and ACP are profiles, not separate public bins. The Python runtime wheel packages this same command; the SDK defaults to `sdk`, and the minimal example selects `sdk-minimal`. [`src/args.ts`](src/args.ts) owns the command grammar, and [`src/bin.ts`](src/bin.ts) loads only the selected runner. Invalid commands, options from another mode, and fatal configuration or boot failures exit nonzero.
6
8
 
7
9
  ## Entry modes
package/README.zh.md CHANGED
@@ -1,7 +1,9 @@
1
- # `@deepseek-ai/dsh`
1
+ # `@civilization/dsh`
2
2
 
3
3
  [English](README.md) | 中文
4
4
 
5
+ > **非官方发布包说明**:`@civilization/dsh` 是基于上游官方 `deepseek-ai/deepseek-harness` 维护的社区独立发行版,集成了跨平台路径修复与单主包便捷分发机制。官方原版对应包名为 `@deepseek-ai/dsh`。
6
+
5
7
  `dsh` 是唯一受支持的 Node 应用启动器;profile 由多个插件组合包 patch 层按顺序叠加而成,其上再应用用户自己的覆盖配置。SDK 与 ACP(Agent Client Protocol)都是 profile,而不是独立的公开可执行命令。Python 运行时 wheel 包中也包含同一个命令;SDK 默认使用 `sdk`,极简示例选择 `sdk-minimal`。[`src/args.ts`](src/args.ts) 负责命令语法,[`src/bin.ts`](src/bin.ts) 只加载选中的运行器。无效命令、来自其他模式的选项,以及致命的配置或启动错误都会以非零状态退出。
6
8
 
7
9
  ## 入口模式
package/lib/bin.js CHANGED
@@ -46,6 +46,9 @@ Examples:
46
46
  dsh tui --resume <session> arguments after the launcher flags reach the app
47
47
  dsh web --help the web app's own flags and help
48
48
  dsh plugin --profile tui add <package> install a plugin into the tui profile
49
+
50
+ Repository:
51
+ https://github.com/civilization-os/deepseek-harness (@civilization/dsh)
49
52
  `;
50
53
  /**
51
54
  * Resolve a boot or dump invocation from the launcher flags and the leftover
@@ -102,7 +105,7 @@ function parseDshArgs(argv, version, manageDesktopProfile = false) {
102
105
  const first = argv[0];
103
106
  let resolved;
104
107
  const program = new Command();
105
- program.name("dsh").version(version, "-V, --version", "output the version number").usage("[--profile] <name> [options] [app-args...]\n dsh plugin --profile <name> <pnpm-args...>").description("dsh: boot a DeepSeek Harness profile — an ordered stack of plugin-bundle patch layers under your own overrides.").addHelpText("after", HELP_EXAMPLES).exitOverride().helpOption(false).helpCommand(false).allowUnknownOption().passThroughOptions().enablePositionalOptions().argument("[args...]", "arguments for the booted profile's app (see: dsh --profile <name> --help)").option("--profile <name>", "the profile under $DSH_HOME/profiles to boot", selectProfile).option("--from-default-profile <name>", "initialize a new custom profile from a shipped profile template").option("--patch <path>", "extra patch-list overlay applied after the profile layer (repeatable)", collect).option("--dump-config", "print the composed profile tree and exit").option("--dump-config-schema", "print JSON Schema for profile entries and patches without mounting").option("--dump-default-config", "print the profile tree without its user layer or --patch overlays and exit").action((args, options) => {
108
+ program.name("dsh").version(`${version} (@civilization/dsh)`, "-V, --version", "output the version number").usage("[--profile] <name> [options] [app-args...]\n dsh plugin --profile <name> <pnpm-args...>").description("dsh: boot a DeepSeek Harness profile (@civilization/dsh) — an ordered stack of plugin-bundle patch layers under your own overrides.").addHelpText("after", HELP_EXAMPLES).exitOverride().helpOption(false).helpCommand(false).allowUnknownOption().passThroughOptions().enablePositionalOptions().argument("[args...]", "arguments for the booted profile's app (see: dsh --profile <name> --help)").option("--profile <name>", "the profile under $DSH_HOME/profiles to boot", selectProfile).option("--from-default-profile <name>", "initialize a new custom profile from a shipped profile template").option("--patch <path>", "extra patch-list overlay applied after the profile layer (repeatable)", collect).option("--dump-config", "print the composed profile tree and exit").option("--dump-config-schema", "print JSON Schema for profile entries and patches without mounting").option("--dump-default-config", "print the profile tree without its user layer or --patch overlays and exit").action((args, options) => {
106
109
  if (options.profile === void 0) {
107
110
  if (args.some((argument) => argument === "-h" || argument === "--help")) program.help();
108
111
  program.error("error: --profile <name> is required");
package/package.json CHANGED
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "name": "@civilization/dsh",
3
3
  "description": "dsh CLI: profile launch, plugin management, and configuration inspection",
4
- "version": "0.2.0-rc.2",
4
+ "version": "0.2.0-rc.2-civilization.0.0.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
8
  "repository": {
9
9
  "type": "git",
10
- "url": "git+https://github.com/deepseek-ai/deepseek-harness.git",
10
+ "url": "git+https://github.com/civilization-os/deepseek-harness.git",
11
11
  "directory": "apps/cli"
12
12
  },
13
+ "homepage": "https://github.com/civilization-os/deepseek-harness#readme",
13
14
  "type": "module",
14
15
  "bin": {
15
16
  "dsh": "lib/bin.js"
@@ -23,82 +24,82 @@
23
24
  "commander": "^15.0.0",
24
25
  "js-yaml": "^4.2.0",
25
26
  "node-addon-require-builtin": "^0.1.6",
26
- "@deepseek-ai/dsh-hmr": "0.2.0-rc.2",
27
- "@deepseek-ai/cordis-plugin-include": "~1.0.9",
28
27
  "@deepseek-ai/cordis": "~4.0.4",
28
+ "@deepseek-ai/cordis-plugin-include": "~1.0.9",
29
29
  "@deepseek-ai/cordis-plugin-loader": "~1.0.5",
30
- "@deepseek-ai/dsh-acp-app": "0.2.0-rc.2",
31
30
  "@deepseek-ai/cordis-plugin-timer": "~1.1.6",
32
- "@deepseek-ai/dsh-agent-tool-presentation": "0.2.0-rc.2",
31
+ "@deepseek-ai/dsh-hmr": "0.2.0-rc.2",
32
+ "@deepseek-ai/dsh-acp-app": "0.2.0-rc.2",
33
33
  "@deepseek-ai/dsh-agent-instructions": "0.2.0-rc.2",
34
- "@deepseek-ai/dsh-client-ui-cordis": "0.2.0-rc.2",
34
+ "@deepseek-ai/dsh-base": "0.2.0-rc.2",
35
35
  "@deepseek-ai/dsh-client-ui-agent-preset": "0.2.0-rc.2",
36
36
  "@deepseek-ai/dsh-cmdline": "0.2.0-rc.2",
37
- "@deepseek-ai/dsh-base": "0.2.0-rc.2",
38
- "@deepseek-ai/dsh-command-compact": "0.2.0-rc.2",
39
- "@deepseek-ai/dsh-command-goal": "0.2.0-rc.2",
40
- "@deepseek-ai/dsh-compaction-basic": "0.2.0-rc.2",
37
+ "@deepseek-ai/dsh-agent-tool-presentation": "0.2.0-rc.2",
41
38
  "@deepseek-ai/dsh-app-boot": "0.2.0-rc.2",
42
- "@deepseek-ai/dsh-compaction-tool-result-pruner": "0.2.0-rc.2",
39
+ "@deepseek-ai/dsh-client-ui-cordis": "0.2.0-rc.2",
40
+ "@deepseek-ai/dsh-compaction-basic": "0.2.0-rc.2",
43
41
  "@deepseek-ai/dsh-cordis-client-runner": "0.2.0-rc.2",
42
+ "@deepseek-ai/dsh-command-goal": "0.2.0-rc.2",
43
+ "@deepseek-ai/dsh-command-compact": "0.2.0-rc.2",
44
+ "@deepseek-ai/dsh-compaction-tool-result-pruner": "0.2.0-rc.2",
44
45
  "@deepseek-ai/dsh-experimental-schedule-bundle": "0.2.0-rc.2",
45
- "@deepseek-ai/dsh-fs-local": "0.2.0-rc.2",
46
+ "@deepseek-ai/dsh-experimental-agent-team-profile": "0.2.0-rc.2",
46
47
  "@deepseek-ai/dsh-goal": "0.2.0-rc.2",
48
+ "@deepseek-ai/dsh-fs-local": "0.2.0-rc.2",
49
+ "@deepseek-ai/dsh-goal-round-driver": "0.2.0-rc.2",
47
50
  "@deepseek-ai/dsh-headless": "0.2.0-rc.2",
48
51
  "@deepseek-ai/dsh-home-paths": "0.2.0-rc.2",
49
- "@deepseek-ai/dsh-goal-round-driver": "0.2.0-rc.2",
50
- "@deepseek-ai/dsh-hooks-codex": "0.2.0-rc.2",
51
52
  "@deepseek-ai/dsh-hooks-claude-code": "0.2.0-rc.2",
52
- "@deepseek-ai/dsh-launch-environment": "0.2.0-rc.2",
53
- "@deepseek-ai/dsh-experimental-agent-team-profile": "0.2.0-rc.2",
54
53
  "@deepseek-ai/dsh-jobs-local": "0.2.0-rc.2",
54
+ "@deepseek-ai/dsh-hooks-codex": "0.2.0-rc.2",
55
+ "@deepseek-ai/dsh-launch-environment": "0.2.0-rc.2",
55
56
  "@deepseek-ai/dsh-mcp-client": "0.2.0-rc.2",
57
+ "@deepseek-ai/dsh-persona": "0.2.0-rc.2",
56
58
  "@deepseek-ai/dsh-plan-mode": "0.2.0-rc.2",
57
59
  "@deepseek-ai/dsh-pwsh-local": "0.2.0-rc.2",
58
- "@deepseek-ai/dsh-schedule": "0.2.0-rc.2",
59
- "@deepseek-ai/dsh-persona": "0.2.0-rc.2",
60
60
  "@deepseek-ai/dsh-pwsh-sandbox": "0.2.0-rc.2",
61
- "@deepseek-ai/dsh-sdk-minimal": "0.2.0-rc.2",
62
61
  "@deepseek-ai/dsh-sdk-app": "0.2.0-rc.2",
62
+ "@deepseek-ai/dsh-sdk-minimal": "0.2.0-rc.2",
63
+ "@deepseek-ai/dsh-schedule": "0.2.0-rc.2",
63
64
  "@deepseek-ai/dsh-session-projection": "0.2.0-rc.2",
65
+ "@deepseek-ai/dsh-session-reference": "0.2.0-rc.2",
64
66
  "@deepseek-ai/dsh-skill": "0.2.0-rc.2",
65
- "@deepseek-ai/dsh-skill-filesystem": "0.2.0-rc.2",
66
67
  "@deepseek-ai/dsh-skill-office": "0.2.0-rc.2",
68
+ "@deepseek-ai/dsh-skill-filesystem": "0.2.0-rc.2",
67
69
  "@deepseek-ai/dsh-tool-workspace-dependencies": "0.2.0-rc.2",
68
- "@deepseek-ai/dsh-terminal": "0.2.0-rc.2",
69
- "@deepseek-ai/dsh-time-context": "0.2.0-rc.2",
70
70
  "@deepseek-ai/dsh-terminal-bash": "0.2.0-rc.2",
71
- "@deepseek-ai/dsh-session-reference": "0.2.0-rc.2",
71
+ "@deepseek-ai/dsh-time-context": "0.2.0-rc.2",
72
72
  "@deepseek-ai/dsh-tmux-context": "0.2.0-rc.2",
73
- "@deepseek-ai/dsh-tool-ask-user": "0.2.0-rc.2",
73
+ "@deepseek-ai/dsh-terminal": "0.2.0-rc.2",
74
74
  "@deepseek-ai/dsh-token-meter": "0.2.0-rc.2",
75
- "@deepseek-ai/dsh-tool-bash": "0.2.0-rc.2",
75
+ "@deepseek-ai/dsh-tool-ask-user": "0.2.0-rc.2",
76
76
  "@deepseek-ai/dsh-tool-bash-persistent": "0.2.0-rc.2",
77
- "@deepseek-ai/dsh-tool-cordis": "0.2.0-rc.2",
78
- "@deepseek-ai/dsh-tool-fs": "0.2.0-rc.2",
79
77
  "@deepseek-ai/dsh-tool-present": "0.2.0-rc.2",
80
- "@deepseek-ai/dsh-tool-fs-search": "0.2.0-rc.2",
78
+ "@deepseek-ai/dsh-tool-bash": "0.2.0-rc.2",
79
+ "@deepseek-ai/dsh-tool-fs": "0.2.0-rc.2",
81
80
  "@deepseek-ai/dsh-tool-goal": "0.2.0-rc.2",
82
- "@deepseek-ai/dsh-tool-pwsh": "0.2.0-rc.2",
81
+ "@deepseek-ai/dsh-tool-fs-search": "0.2.0-rc.2",
83
82
  "@deepseek-ai/dsh-tool-jobs": "0.2.0-rc.2",
83
+ "@deepseek-ai/dsh-tool-pwsh": "0.2.0-rc.2",
84
+ "@deepseek-ai/dsh-tool-cordis": "0.2.0-rc.2",
85
+ "@deepseek-ai/dsh-tool-ralph": "0.2.0-rc.2",
84
86
  "@deepseek-ai/dsh-tool-pwsh-persistent": "0.2.0-rc.2",
85
87
  "@deepseek-ai/dsh-tool-skill": "0.2.0-rc.2",
86
- "@deepseek-ai/dsh-tool-ralph": "0.2.0-rc.2",
87
88
  "@deepseek-ai/dsh-tool-str-replace-editor": "0.2.0-rc.2",
88
- "@deepseek-ai/dsh-tool-subagent": "0.2.0-rc.2",
89
89
  "@deepseek-ai/dsh-tool-subagent-control": "0.2.0-rc.2",
90
- "@deepseek-ai/dsh-tool-todo": "0.2.0-rc.2",
91
- "@deepseek-ai/dsh-tool-workflow": "0.2.0-rc.2",
92
90
  "@deepseek-ai/dsh-tool-web": "0.2.0-rc.2",
91
+ "@deepseek-ai/dsh-tool-todo": "0.2.0-rc.2",
93
92
  "@deepseek-ai/dsh-web-app": "0.2.0-rc.2",
94
- "@deepseek-ai/dsh-webhook": "0.2.0-rc.2",
93
+ "@deepseek-ai/dsh-tool-workflow": "0.2.0-rc.2",
95
94
  "@deepseek-ai/dsh-webhook-github": "0.2.0-rc.2",
95
+ "@deepseek-ai/dsh-webhook": "0.2.0-rc.2",
96
96
  "@deepseek-ai/dsh-workflow-ptc": "0.2.0-rc.2",
97
- "@deepseek-ai/schemastery": "~3.18.4",
98
97
  "@deepseek-ai/dsh-http-proxy": "0.2.0-rc.2",
99
98
  "@deepseek-ai/dsh-mcp-resources": "0.2.0-rc.2",
100
- "@deepseek-ai/dsh-agent-preset": "0.2.0-rc.2",
99
+ "@deepseek-ai/schemastery": "~3.18.4",
100
+ "@deepseek-ai/dsh-tool-subagent": "0.2.0-rc.2",
101
101
  "@deepseek-ai/dsh-plugin-manager": "0.2.0-rc.2",
102
+ "@deepseek-ai/dsh-agent-preset": "0.2.0-rc.2",
102
103
  "@deepseek-ai/dsh-experimental-voice-input-bundle": "0.2.0-rc.2",
103
104
  "@deepseek-ai/dsh-atomic-write": "0.2.0-rc.2",
104
105
  "@deepseek-ai/dsh-experimental-auto-review": "0.2.0-rc.2"
@@ -113,44 +114,44 @@
113
114
  "@deepseek-ai/dsh-acp": "0.2.0-rc.2",
114
115
  "@deepseek-ai/dsh-agent": "0.2.0-rc.2",
115
116
  "@deepseek-ai/dsh-agent-loop": "0.2.0-rc.2",
117
+ "@deepseek-ai/dsh-attachment-local": "0.2.0-rc.2",
116
118
  "@deepseek-ai/dsh-agent-loop-testkit": "0.2.0-rc.2",
117
119
  "@deepseek-ai/dsh-bash-local": "0.2.0-rc.2",
118
- "@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.2.0-rc.2",
119
120
  "@deepseek-ai/dsh-credentials-local": "0.2.0-rc.2",
120
- "@deepseek-ai/dsh-attachment-local": "0.2.0-rc.2",
121
+ "@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.2.0-rc.2",
121
122
  "@deepseek-ai/dsh-experimental-agent-team": "0.2.0-rc.2",
122
123
  "@deepseek-ai/dsh-fs-observation-policy": "0.2.0-rc.2",
123
- "@deepseek-ai/dsh-experimental-ptc-runtime-python": "0.2.0-rc.2",
124
- "@deepseek-ai/dsh-host-frontend-static": "0.2.0-rc.2",
125
124
  "@deepseek-ai/dsh-experimental-tool-agent-team": "0.2.0-rc.2",
126
- "@deepseek-ai/dsh-host-webserver": "0.2.0-rc.2",
127
- "@deepseek-ai/dsh-fs-sandbox": "0.2.0-rc.2",
125
+ "@deepseek-ai/dsh-host-frontend-static": "0.2.0-rc.2",
128
126
  "@deepseek-ai/dsh-llm": "0.2.0-rc.2",
129
127
  "@deepseek-ai/dsh-llm-deepseek": "0.2.0-rc.2",
128
+ "@deepseek-ai/dsh-experimental-ptc-runtime-python": "0.2.0-rc.2",
130
129
  "@deepseek-ai/dsh-llm-deepseek-api-key": "0.2.0-rc.2",
131
- "@deepseek-ai/dsh-llm-pi-ai": "0.2.0-rc.2",
132
- "@deepseek-ai/dsh-llm-deepseek-account": "0.2.0-rc.2",
130
+ "@deepseek-ai/dsh-host-webserver": "0.2.0-rc.2",
131
+ "@deepseek-ai/dsh-fs-sandbox": "0.2.0-rc.2",
133
132
  "@deepseek-ai/dsh-llm-mock-server": "0.2.0-rc.2",
133
+ "@deepseek-ai/dsh-llm-pi-ai": "0.2.0-rc.2",
134
134
  "@deepseek-ai/dsh-llm-replay": "0.2.0-rc.2",
135
- "@deepseek-ai/dsh-sandbox-local": "0.2.0-rc.2",
136
- "@deepseek-ai/dsh-plugin-package-inventory-deepseek": "0.2.0-rc.2",
137
- "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.2",
135
+ "@deepseek-ai/dsh-llm-deepseek-account": "0.2.0-rc.2",
138
136
  "@deepseek-ai/dsh-loader-smoke": "0.2.0-rc.2",
137
+ "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.2",
139
138
  "@deepseek-ai/dsh-sdk-client": "0.2.0-rc.2",
139
+ "@deepseek-ai/dsh-sandbox-local": "0.2.0-rc.2",
140
140
  "@deepseek-ai/dsh-session": "0.2.0-rc.2",
141
141
  "@deepseek-ai/dsh-session-checkpoint-policy": "0.2.0-rc.2",
142
+ "@deepseek-ai/dsh-plugin-package-inventory-deepseek": "0.2.0-rc.2",
142
143
  "@deepseek-ai/dsh-session-log-deepseek": "0.2.0-rc.2",
143
- "@deepseek-ai/dsh-shell-env": "0.2.0-rc.2",
144
- "@deepseek-ai/dsh-session-query": "0.2.0-rc.2",
145
144
  "@deepseek-ai/dsh-session-persistence-jsonl": "0.2.0-rc.2",
145
+ "@deepseek-ai/dsh-session-query": "0.2.0-rc.2",
146
+ "@deepseek-ai/dsh-shell-env": "0.2.0-rc.2",
146
147
  "@deepseek-ai/dsh-settings": "0.2.0-rc.2",
147
- "@deepseek-ai/dsh-subagent-fork-in-process": "0.2.0-rc.2",
148
148
  "@deepseek-ai/dsh-subagent": "0.2.0-rc.2",
149
- "@deepseek-ai/dsh-subagent-spawn-in-process": "0.2.0-rc.2",
149
+ "@deepseek-ai/dsh-subagent-fork-in-process": "0.2.0-rc.2",
150
150
  "@deepseek-ai/dsh-subprocess-local": "0.2.0-rc.2",
151
151
  "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.2",
152
- "@deepseek-ai/dsh-tools": "0.2.0-rc.2",
153
- "@deepseek-ai/dsh-user-approval": "0.2.0-rc.2"
152
+ "@deepseek-ai/dsh-subagent-spawn-in-process": "0.2.0-rc.2",
153
+ "@deepseek-ai/dsh-user-approval": "0.2.0-rc.2",
154
+ "@deepseek-ai/dsh-tools": "0.2.0-rc.2"
154
155
  },
155
156
  "exports": {
156
157
  "./profile-boot": {