dsh-super-code 0.3.8 → 0.3.10

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.
Files changed (118) hide show
  1. package/README.en.md +169 -0
  2. package/README.md +105 -175
  3. package/client/index.js +594 -260
  4. package/cordis.patch.yml +3 -7
  5. package/docs/Acknowledgements.md +38 -67
  6. package/docs/Changelog.md +176 -88
  7. package/docs/Compatibility.md +133 -278
  8. package/docs/EvaluationResults.md +176 -150
  9. package/docs/UsageGuide.md +218 -223
  10. package/docs/en/Acknowledgements.md +76 -0
  11. package/docs/en/Changelog.md +176 -0
  12. package/docs/en/Compatibility.md +181 -0
  13. package/docs/en/EvaluationResults.md +240 -0
  14. package/docs/en/UsageGuide.md +321 -0
  15. package/docs/images/agent-tree-preview.png +0 -0
  16. package/docs/images/agent-tree.png +0 -0
  17. package/docs/images/install-tgz-preview.png +0 -0
  18. package/docs/images/install-tgz.png +0 -0
  19. package/docs/images/preset-settings-preview.png +0 -0
  20. package/docs/images/preset-settings.png +0 -0
  21. package/docs/images/task-status-preview.png +0 -0
  22. package/docs/images/task-status.png +0 -0
  23. package/lib/connection/approvals.d.ts +21 -0
  24. package/lib/connection/approvals.d.ts.map +1 -0
  25. package/lib/connection/approvals.js +83 -0
  26. package/lib/connection/approvals.js.map +1 -0
  27. package/lib/connection/client.d.ts +8 -0
  28. package/lib/connection/client.d.ts.map +1 -0
  29. package/lib/connection/client.js +34 -0
  30. package/lib/connection/client.js.map +1 -0
  31. package/lib/connection/guidance.d.ts +10 -0
  32. package/lib/connection/guidance.d.ts.map +1 -0
  33. package/lib/connection/guidance.js +27 -0
  34. package/lib/connection/guidance.js.map +1 -0
  35. package/lib/connection/http.d.ts.map +1 -1
  36. package/lib/connection/http.js +83 -16
  37. package/lib/connection/http.js.map +1 -1
  38. package/lib/connection/service.d.ts +3 -1
  39. package/lib/connection/service.d.ts.map +1 -1
  40. package/lib/connection/service.js +8 -0
  41. package/lib/connection/service.js.map +1 -1
  42. package/lib/connection/store.d.ts.map +1 -1
  43. package/lib/connection/store.js +2 -0
  44. package/lib/connection/store.js.map +1 -1
  45. package/lib/connection/tasks.d.ts +41 -1
  46. package/lib/connection/tasks.d.ts.map +1 -1
  47. package/lib/connection/tasks.js +154 -31
  48. package/lib/connection/tasks.js.map +1 -1
  49. package/lib/connection/types.d.ts +71 -2
  50. package/lib/connection/types.d.ts.map +1 -1
  51. package/lib/connection/types.js +5 -3
  52. package/lib/connection/types.js.map +1 -1
  53. package/lib/connection-cli.d.ts +3 -0
  54. package/lib/connection-cli.d.ts.map +1 -0
  55. package/lib/connection-cli.js +40 -0
  56. package/lib/connection-cli.js.map +1 -0
  57. package/lib/core/deletion-command.d.ts.map +1 -1
  58. package/lib/core/deletion-command.js +2 -1
  59. package/lib/core/deletion-command.js.map +1 -1
  60. package/lib/core/windows-runtime.d.ts +16 -0
  61. package/lib/core/windows-runtime.d.ts.map +1 -0
  62. package/lib/core/windows-runtime.js +123 -0
  63. package/lib/core/windows-runtime.js.map +1 -0
  64. package/lib/dsh/budget-settings.d.ts +2 -0
  65. package/lib/dsh/budget-settings.d.ts.map +1 -1
  66. package/lib/dsh/budget-settings.js +9 -3
  67. package/lib/dsh/budget-settings.js.map +1 -1
  68. package/lib/dsh/budgets.d.ts +2 -0
  69. package/lib/dsh/budgets.d.ts.map +1 -1
  70. package/lib/dsh/budgets.js +6 -0
  71. package/lib/dsh/budgets.js.map +1 -1
  72. package/lib/dsh/connection-approval.d.ts +5 -0
  73. package/lib/dsh/connection-approval.d.ts.map +1 -0
  74. package/lib/dsh/connection-approval.js +72 -0
  75. package/lib/dsh/connection-approval.js.map +1 -0
  76. package/lib/dsh/connection-history.d.ts +6 -0
  77. package/lib/dsh/connection-history.d.ts.map +1 -0
  78. package/lib/dsh/connection-history.js +52 -0
  79. package/lib/dsh/connection-history.js.map +1 -0
  80. package/lib/dsh/connection-host.d.ts +36 -3
  81. package/lib/dsh/connection-host.d.ts.map +1 -1
  82. package/lib/dsh/connection-host.js +97 -19
  83. package/lib/dsh/connection-host.js.map +1 -1
  84. package/lib/dsh/connection.d.ts.map +1 -1
  85. package/lib/dsh/connection.js +4 -1
  86. package/lib/dsh/connection.js.map +1 -1
  87. package/lib/dsh/index.d.ts.map +1 -1
  88. package/lib/dsh/index.js +4 -0
  89. package/lib/dsh/index.js.map +1 -1
  90. package/lib/dsh/official-windows-shell.d.ts +4 -0
  91. package/lib/dsh/official-windows-shell.d.ts.map +1 -0
  92. package/lib/dsh/official-windows-shell.js +128 -0
  93. package/lib/dsh/official-windows-shell.js.map +1 -0
  94. package/lib/dsh/windows-shell.d.ts +53 -0
  95. package/lib/dsh/windows-shell.d.ts.map +1 -0
  96. package/lib/dsh/windows-shell.js +182 -0
  97. package/lib/dsh/windows-shell.js.map +1 -0
  98. package/package.json +28 -16
  99. package/presets/super-code/agent.cordis.yml +3 -7
  100. package/runtime/windows/README.md +45 -0
  101. package/runtime/windows/arm64-busybox.exe.gz +0 -0
  102. package/runtime/windows/bash.exe.gz +0 -0
  103. package/runtime/windows/grep.exe.gz +0 -0
  104. package/runtime/windows/licenses/BusyBox-LICENSE.txt +348 -0
  105. package/runtime/windows/licenses/GPL-3.0.txt +674 -0
  106. package/runtime/windows/licenses/LGPL-3.0.txt +165 -0
  107. package/runtime/windows/licenses/MSYS-COPYING.LIB +165 -0
  108. package/runtime/windows/licenses/MSYS-COPYING.RUNTIME +674 -0
  109. package/runtime/windows/licenses/PCRE-LICENCE.txt +93 -0
  110. package/runtime/windows/licenses/ncurses-COPYING.txt +29 -0
  111. package/runtime/windows/manifest.json +236 -0
  112. package/runtime/windows/msys-2.0.dll.gz +0 -0
  113. package/runtime/windows/msys-iconv-2.dll.gz +0 -0
  114. package/runtime/windows/msys-intl-8.dll.gz +0 -0
  115. package/runtime/windows/msys-pcre-1.dll.gz +0 -0
  116. package/runtime/windows/sources/busybox-w32-FRP-6354-g5f09fb446.tgz +0 -0
  117. package/runtime/windows/sources.json +45 -0
  118. package/runtime/windows/x64-busybox.exe.gz +0 -0
@@ -0,0 +1,128 @@
1
+ import { configurationOf } from './budgets.js';
2
+ import { hostModule, mountBundledBash, creatorOf } from './windows-shell.js';
3
+ // Minimal has a persistent PTY, with a different execution and approval contract.
4
+ const presets = new Set(['standard', 'ptc', 'cordis']);
5
+ export function applyOfficialWindowsShell(ctx) {
6
+ if (process.platform !== 'win32')
7
+ return;
8
+ ctx.inject(['agentPresets', 'agents', 'tools', 'systemPrompt', 'shell'], async (owner) => {
9
+ const registry = owner.get('agentPresets');
10
+ const { scopeParentOf, createScope } = await hostModule(owner, '@deepseek-ai/dsh-scope');
11
+ const mounts = new WeakMap(), selected = new WeakMap();
12
+ const acquire = async (key) => {
13
+ let mount = mounts.get(key);
14
+ if (mount?.closing) {
15
+ await mount.closing;
16
+ return acquire(key);
17
+ }
18
+ if (!mount) {
19
+ // Same generation key: tools remain inherited and capability filters still apply.
20
+ const scope = createScope(owner, key);
21
+ mount = { scope, ready: mountBundledBash(scope.ctx), users: 0 };
22
+ mounts.set(key, mount);
23
+ }
24
+ const entry = mount;
25
+ entry.users++;
26
+ let released = false;
27
+ return { mount: entry, release() {
28
+ if (released)
29
+ return;
30
+ released = true;
31
+ if (--entry.users)
32
+ return;
33
+ // Wait for in-flight registration before removing it. A new user awaits teardown.
34
+ entry.closing = entry.ready.then(() => { }, () => { }).then(() => entry.scope.dispose()).finally(() => {
35
+ if (mounts.get(key) === entry)
36
+ mounts.delete(key);
37
+ });
38
+ } };
39
+ };
40
+ const install = (agent) => {
41
+ const previous = selected.get(agent);
42
+ const id = registry.composedPreset(agent.ctx);
43
+ const key = presets.has(id ?? '') ? scopeParentOf(agent) : undefined;
44
+ if (previous && previous.key === key)
45
+ return previous.ready;
46
+ previous?.release();
47
+ selected.delete(agent);
48
+ if (!key)
49
+ return Promise.resolve();
50
+ const config = configurationOf(owner, agent);
51
+ const creator = creatorOf(owner, agent);
52
+ const parent = creator ? selected.get(creator) : undefined;
53
+ const enabled = parent?.key === key ? parent.enabled : config.windowsBash !== false && config.windowsBashForOfficialPresets === true;
54
+ const cleanups = [];
55
+ const state = { key, enabled, ready: Promise.resolve(), disposed: false, release() {
56
+ if (state.disposed)
57
+ return;
58
+ state.disposed = true;
59
+ for (const cleanup of cleanups.splice(0).reverse())
60
+ cleanup();
61
+ } };
62
+ selected.set(agent, state);
63
+ agent.ctx.effect(() => state.release);
64
+ // Plugin unload restores filters even while the owning Agent remains alive.
65
+ cleanups.push(owner.effect(() => state.release));
66
+ state.ready = (async () => {
67
+ const lease = await acquire(key);
68
+ cleanups.push(lease.release);
69
+ if (state.disposed) {
70
+ lease.release();
71
+ return;
72
+ }
73
+ let prepare;
74
+ try {
75
+ prepare = await lease.mount.ready;
76
+ }
77
+ catch (error) {
78
+ if (!state.disposed) {
79
+ const tools = agent.ctx.get('tools');
80
+ const deny = (enabled ? ['pwsh', 'bash'] : ['bash']).filter(name => tools.get(name, key));
81
+ if (deny.length)
82
+ cleanups.push(tools.restrict({ deny }));
83
+ }
84
+ if (enabled)
85
+ throw error;
86
+ return;
87
+ }
88
+ if (state.disposed)
89
+ return;
90
+ const tools = agent.ctx.get('tools');
91
+ if (!prepare) {
92
+ if (!enabled)
93
+ return;
94
+ cleanups.push(tools.restrict({ deny: ['pwsh'] }));
95
+ throw new Error('Unsupported host shell provider; disable bundled Bash to use the host shell');
96
+ }
97
+ cleanups.push(tools.restrict({ deny: [enabled ? 'pwsh' : 'bash'] }));
98
+ if (!enabled)
99
+ return;
100
+ try {
101
+ if (parent?.key === key)
102
+ await parent.ready;
103
+ await prepare();
104
+ }
105
+ catch (error) {
106
+ if (!state.disposed)
107
+ cleanups.push(tools.restrict({ deny: ['bash'] }));
108
+ throw error;
109
+ }
110
+ })();
111
+ return state.ready;
112
+ };
113
+ owner.on('agent/created', ({ agent }) => install(agent));
114
+ // Blank conversations can switch preset before their first step.
115
+ owner.on('agent/pre-step', async ({ agent }, next) => { await install(agent); return next(); }, true);
116
+ owner.systemPrompt.section({ name: 'super-code:official-windows-shell', order: 94,
117
+ text: ({ agent }) => agent && selected.get(agent)?.enabled
118
+ ? 'Command environment: Windows with GNU Bash and BusyBox utilities. Native programs still run on Windows.' : '' });
119
+ owner.on('system-prompt/assemble', async (_assembly, { agent }, next) => {
120
+ const assembled = await next(), state = agent && selected.get(agent);
121
+ if (!state || state.disposed)
122
+ return assembled;
123
+ const hidden = state.enabled ? 'tool:pwsh' : 'tool:bash';
124
+ return { ...assembled, sections: assembled.sections.filter(section => section.name !== hidden) };
125
+ });
126
+ });
127
+ }
128
+ //# sourceMappingURL=official-windows-shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"official-windows-shell.js","sourceRoot":"","sources":["../../src/dsh/official-windows-shell.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import type { Context } from '@deepseek-ai/cordis';
2
+ import type { Agent } from '@deepseek-ai/dsh-agent';
3
+ import type { WindowsRuntime } from '../core/windows-runtime.js';
4
+ interface ShellSpec {
5
+ command: string;
6
+ env?: NodeJS.ProcessEnv;
7
+ sandboxPolicy?: {
8
+ mode: string;
9
+ [key: string]: unknown;
10
+ };
11
+ [key: string]: unknown;
12
+ }
13
+ interface HostShell {
14
+ readonly config: Record<string, unknown>;
15
+ readonly sandboxMode?: string;
16
+ resolve(request: ShellSpec): ShellSpec;
17
+ argv(spec: ShellSpec): string[];
18
+ }
19
+ interface ShellConstructor {
20
+ new (ctx: Context, config: Record<string, unknown>): HostShell;
21
+ readonly inject?: readonly string[];
22
+ }
23
+ /** Use the host provider's argv extension point, including its sandboxed implementation. */
24
+ export declare function bundledBashProvider(Base: ShellConstructor, runtime: WindowsRuntime | (() => WindowsRuntime)): ShellConstructor;
25
+ /** Resolve the running host's modules, including installed directory presets and Desktop profiles. */
26
+ export declare function hostModule(ctx: Context, name: string): Promise<Record<string, unknown>>;
27
+ export interface ShellStatus {
28
+ readonly platform: string;
29
+ readonly state: 'host' | 'pending' | 'ready' | 'error';
30
+ readonly version?: string;
31
+ readonly error?: string;
32
+ }
33
+ interface RuntimeService {
34
+ status(): ShellStatus;
35
+ prepare(): Promise<WindowsRuntime>;
36
+ }
37
+ declare module '@deepseek-ai/cordis' {
38
+ interface Context {
39
+ superCodeShell: RuntimeService;
40
+ }
41
+ }
42
+ /** One shared preparation result; no installation subprocess or global environment mutation. */
43
+ export declare function applyWindowsShell(ctx: Context): void;
44
+ export declare const name = "super-code-shell";
45
+ export declare const inject: string[];
46
+ /** Runtime ownership is distinct from durable session lineage or shared preset scope. */
47
+ export declare function creatorOf(ctx: Context, agent: Agent): Agent | false;
48
+ /** Contribute an inherited tool without changing the host provider or session policy. */
49
+ export declare function mountBundledBash(ctx: Context): Promise<false | (() => Promise<void>)>;
50
+ /** Keep tools inherited so both root and child capability restrictions still apply. */
51
+ export declare function apply(ctx: Context): Promise<void>;
52
+ export {};
53
+ //# sourceMappingURL=windows-shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows-shell.d.ts","sourceRoot":"","sources":["../../src/dsh/windows-shell.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAU,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAGnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEhE,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;IACxD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AACD,UAAU,SAAS;IACjB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,CAAA;IACtC,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,CAAA;CAChC;AACD,UAAU,gBAAgB;IACxB,KAAI,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc,GAAG,CAAC,MAAM,cAAc,CAAC,GAAG,gBAAgB,CAoB9H;AAED,sGAAsG;AACtG,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAQ7F;AAQD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAA;IACtD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AACD,UAAU,cAAc;IAAG,MAAM,IAAI,WAAW,CAAC;IAAC,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,CAAA;CAAE;AACtF,OAAO,QAAQ,qBAAqB,CAAC;IAAE,UAAU,OAAO;QAAG,cAAc,EAAE,cAAc,CAAA;KAAE;CAAE;AAE7F,gGAAgG;AAChG,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAoBpD;AAED,eAAO,MAAM,IAAI,qBAAqB,CAAA;AACtC,eAAO,MAAM,MAAM,EAAE,MAAM,EAAuC,CAAA;AAElE,yFAAyF;AACzF,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAGnE;AAED,yFAAyF;AACzF,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAkB3F;AAED,uFAAuF;AACvF,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAyEvD"}
@@ -0,0 +1,182 @@
1
+ /** Select the host's standard shell tool; Windows can use the bundled Bash executable. */
2
+ import { createRequire } from 'node:module';
3
+ import { pathToFileURL } from 'node:url';
4
+ import { configurationOf } from './budgets.js';
5
+ import { prepareWindowsRuntime, windowsRuntimeEnvironment } from '../core/windows-runtime.js';
6
+ /** Use the host provider's argv extension point, including its sandboxed implementation. */
7
+ export function bundledBashProvider(Base, runtime) {
8
+ const current = () => typeof runtime === 'function' ? runtime() : runtime;
9
+ return class extends Base {
10
+ resolve(request) {
11
+ const spec = super.resolve(request);
12
+ const mode = spec.sandboxPolicy?.mode ?? this.sandboxMode;
13
+ // MSYS needs named pipes that Windows restricted tokens cannot create.
14
+ // The standard tool resolves an approved per-call mode before this point.
15
+ if (process.platform === 'win32' && mode !== undefined && mode !== 'danger-full-access') {
16
+ throw new Error('SUPER_CODE_BASH_SANDBOX: The Windows sandbox cannot start bundled Bash because MSYS requires internal named pipes. '
17
+ + 'This command was not executed. If it is still needed and approvals are available, request DSH approval for the exact same command '
18
+ + 'with sandbox_permissions="danger-full-access" and a justification. Approval applies only to that invocation; do not change the session permission or switch shells. '
19
+ + 'If approval is rejected, cancelled or disabled, stop this command.');
20
+ }
21
+ return { ...spec, env: windowsRuntimeEnvironment(current(), spec.env) };
22
+ }
23
+ argv(spec) {
24
+ return [current().bash, '--noprofile', '--norc', '-c', spec.command];
25
+ }
26
+ };
27
+ }
28
+ /** Resolve the running host's modules, including installed directory presets and Desktop profiles. */
29
+ export async function hostModule(ctx, name) {
30
+ const profile = ctx.get('profileContext');
31
+ // Directory-preset hosts predate profileContext; their root retains the profile's module fallback links.
32
+ const anchor = profile?.installAnchor ?? (ctx.root.baseUrl
33
+ ? new URL('package.json', ctx.root.baseUrl)
34
+ : new URL('../../package.json', import.meta.url));
35
+ const require = createRequire(anchor);
36
+ return await import(pathToFileURL(require.resolve(name)).href);
37
+ }
38
+ async function hostTool(ctx, name) {
39
+ const module = await hostModule(ctx, name);
40
+ if (typeof module.apply !== 'function')
41
+ throw new Error(`Invalid host shell tool: ${name}`);
42
+ return module;
43
+ }
44
+ /** One shared preparation result; no installation subprocess or global environment mutation. */
45
+ export function applyWindowsShell(ctx) {
46
+ let status = { platform: process.platform, state: process.platform === 'win32' ? 'pending' : 'host' };
47
+ let preparing = false;
48
+ ctx.provide('superCodeShell', {
49
+ status: () => ({ ...status }),
50
+ prepare: () => {
51
+ if (!preparing) {
52
+ status = { platform: process.platform, state: 'pending' };
53
+ preparing = prepareWindowsRuntime().then(runtime => {
54
+ status = { platform: process.platform, state: 'ready', version: runtime.version };
55
+ return runtime;
56
+ }, (error) => {
57
+ preparing = false;
58
+ status = { platform: process.platform, state: 'error', error: error instanceof Error ? error.message : 'Bundled Bash preparation failed' };
59
+ throw error;
60
+ });
61
+ }
62
+ return preparing;
63
+ },
64
+ });
65
+ }
66
+ export const name = 'super-code-shell';
67
+ export const inject = ['tools', 'systemPrompt', 'shell'];
68
+ /** Runtime ownership is distinct from durable session lineage or shared preset scope. */
69
+ export function creatorOf(ctx, agent) {
70
+ const agents = ctx.get('agents');
71
+ return agents?.list().find(candidate => agents.isOwnedBy(agent.id, candidate)) ?? false;
72
+ }
73
+ /** Contribute an inherited tool without changing the host provider or session policy. */
74
+ export async function mountBundledBash(ctx) {
75
+ const host = ctx.get('shell');
76
+ const provider = await hostModule(ctx, host.sandboxMode === undefined ? '@deepseek-ai/dsh-pwsh-local' : '@deepseek-ai/dsh-pwsh-sandbox');
77
+ const Base = provider.default;
78
+ if (typeof Base !== 'function' || !(host instanceof Base))
79
+ return false;
80
+ let runtime = false;
81
+ const Bundled = bundledBashProvider(Base, () => {
82
+ if (!runtime)
83
+ throw new Error('Bundled Bash is not ready for this conversation');
84
+ return runtime;
85
+ });
86
+ const bash = ctx.isolate('shell').isolate('settings');
87
+ await bash.plugin({ inject: [...Base.inject ?? []], apply(scope) { new Bundled(scope, host.config); } });
88
+ await bash.plugin(await hostTool(ctx, '@deepseek-ai/dsh-tool-bash'));
89
+ return async () => {
90
+ const service = ctx.get('superCodeShell');
91
+ if (!service)
92
+ throw new Error('Super Code shell service is unavailable');
93
+ runtime = await service.prepare();
94
+ };
95
+ }
96
+ /** Keep tools inherited so both root and child capability restrictions still apply. */
97
+ export async function apply(ctx) {
98
+ if (process.platform !== 'win32') {
99
+ await ctx.plugin(await hostTool(ctx, '@deepseek-ai/dsh-tool-bash'));
100
+ return;
101
+ }
102
+ const { scopeParentOf } = await hostModule(ctx, '@deepseek-ai/dsh-scope');
103
+ const prepare = await mountBundledBash(ctx);
104
+ if (!prepare) {
105
+ await ctx.plugin(await hostTool(ctx, '@deepseek-ai/dsh-tool-pwsh'));
106
+ const choices = new WeakMap();
107
+ const check = (agent) => {
108
+ const creator = creatorOf(ctx, agent);
109
+ let enabled = creator ? choices.get(creator) : undefined;
110
+ for (let current = agent; current; current = scopeParentOf(current)) {
111
+ if (choices.has(current)) {
112
+ enabled = choices.get(current);
113
+ break;
114
+ }
115
+ }
116
+ enabled ??= configurationOf(ctx, agent).windowsBash !== false;
117
+ choices.set(agent, enabled);
118
+ if (enabled) {
119
+ agent.ctx.get('tools').restrict({ deny: ['pwsh'] });
120
+ throw new Error('Unsupported host shell provider; disable bundled Bash to use the host shell');
121
+ }
122
+ };
123
+ ctx.on('agent/created', ({ agent }) => { check(agent); });
124
+ ctx.on('agent/pre-step', async ({ agent }, next) => { check(agent); return next(); });
125
+ return;
126
+ }
127
+ const installed = new WeakMap();
128
+ const choice = (agent) => {
129
+ for (let current = agent; current; current = scopeParentOf(current)) {
130
+ const state = installed.get(current);
131
+ if (state)
132
+ return state.enabled;
133
+ }
134
+ return configurationOf(ctx, agent).windowsBash !== false;
135
+ };
136
+ await ctx.plugin(await hostTool(ctx, '@deepseek-ai/dsh-tool-pwsh'));
137
+ ctx.systemPrompt.section({ name: 'super-code:windows-shell', order: 94,
138
+ text: ({ agent }) => agent && choice(agent)
139
+ ? 'Command environment: Windows with GNU Bash and BusyBox utilities. Native programs still run on Windows.' : '' });
140
+ ctx.on('system-prompt/assemble', async (_assembly, { agent }, next) => {
141
+ const assembled = await next();
142
+ const hidden = choice(agent) ? 'tool:pwsh' : 'tool:bash';
143
+ return { ...assembled, sections: assembled.sections.filter(section => section.name !== hidden) };
144
+ });
145
+ const install = (agent) => {
146
+ const existing = installed.get(agent);
147
+ if (existing)
148
+ return existing.ready;
149
+ // Descendants retain their conversation's shell and capability filters.
150
+ for (let parent = scopeParentOf(agent); parent; parent = scopeParentOf(parent)) {
151
+ const inherited = installed.get(parent);
152
+ if (inherited) {
153
+ installed.set(agent, inherited);
154
+ return inherited.ready;
155
+ }
156
+ }
157
+ const creator = creatorOf(ctx, agent), inherited = creator && installed.get(creator);
158
+ const enabled = inherited ? inherited.enabled : configurationOf(ctx, agent).windowsBash !== false;
159
+ const tools = agent.ctx.get('tools');
160
+ tools.restrict({ deny: [enabled ? 'pwsh' : 'bash'] });
161
+ const ready = (async () => {
162
+ if (enabled || inherited) {
163
+ try {
164
+ if (inherited)
165
+ await inherited.ready;
166
+ else
167
+ await prepare();
168
+ }
169
+ catch (error) {
170
+ // Sibling recovery must not activate a conversation that failed preparation.
171
+ tools.restrict({ deny: ['bash'] });
172
+ throw error;
173
+ }
174
+ }
175
+ })();
176
+ installed.set(agent, { enabled, ready });
177
+ return ready;
178
+ };
179
+ ctx.on('agent/created', async ({ agent }) => { await install(agent); });
180
+ ctx.on('agent/pre-step', async ({ agent }, next) => { await install(agent); return next(); });
181
+ }
182
+ //# sourceMappingURL=windows-shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows-shell.js","sourceRoot":"","sources":["../../src/dsh/windows-shell.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAGxC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAoB7F,4FAA4F;AAC5F,MAAM,UAAU,mBAAmB,CAAC,IAAsB,EAAE,OAAgD;IAC1G,MAAM,OAAO,GAAG,GAAmB,EAAE,CAAC,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;IACzF,OAAO,KAAM,SAAQ,IAAI;QACd,OAAO,CAAC,OAAkB;YACjC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,IAAI,CAAC,WAAW,CAAA;YACzD,uEAAuE;YACvE,0EAA0E;YAC1E,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBACxF,MAAM,IAAI,KAAK,CAAC,qHAAqH;sBACjI,oIAAoI;sBACpI,sKAAsK;sBACtK,oEAAoE,CAAC,CAAA;YAC3E,CAAC;YACD,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,yBAAyB,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;QACzE,CAAC;QACQ,IAAI,CAAC,IAAe;YAC3B,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QACtE,CAAC;KACF,CAAA;AACH,CAAC;AAED,sGAAsG;AACtG,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAY,EAAE,IAAY;IACzD,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAA2C,CAAA;IACnF,yGAAyG;IACzG,MAAM,MAAM,GAAG,OAAO,EAAE,aAAa,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO;QACxD,CAAC,CAAC,IAAI,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC3C,CAAC,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACnD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACrC,OAAO,MAAM,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAChE,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,GAAY,EAAE,IAAY;IAChD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC1C,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAA;IAC3F,OAAO,MAAkC,CAAA;AAC3C,CAAC;AAWD,gGAAgG;AAChG,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,IAAI,MAAM,GAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA;IAClH,IAAI,SAAS,GAAoC,KAAK,CAAA;IACtD,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE;QAC5B,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;QAC7B,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;gBACzD,SAAS,GAAG,qBAAqB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;oBACjD,MAAM,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;oBACjF,OAAO,OAAO,CAAA;gBAChB,CAAC,EAAE,CAAC,KAAc,EAAE,EAAE;oBACpB,SAAS,GAAG,KAAK,CAAA;oBACjB,MAAM,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC,EAAE,CAAA;oBAC1I,MAAM,KAAK,CAAA;gBACb,CAAC,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,kBAAkB,CAAA;AACtC,MAAM,CAAC,MAAM,MAAM,GAAa,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,CAAA;AAElE,yFAAyF;AACzF,MAAM,UAAU,SAAS,CAAC,GAAY,EAAE,KAAY;IAClD,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAChC,OAAO,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,IAAI,KAAK,CAAA;AACzF,CAAC;AAED,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAY;IACjD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAyB,CAAA;IACrD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAA;IACxI,MAAM,IAAI,GAAG,QAAQ,CAAC,OAA2B,CAAA;IACjD,IAAI,OAAO,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IACvE,IAAI,OAAO,GAA2B,KAAK,CAAA;IAC3C,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE;QAC7C,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;QAChF,OAAO,OAAO,CAAA;IAChB,CAAC,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACrD,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,KAAc,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,CAAA;IAChH,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC,CAAA;IACpE,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;QACzC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;QACxE,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;IACnC,CAAC,CAAA;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,GAAY;IACtC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC,CAAA;QACnE,OAAM;IACR,CAAC;IACD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,wBAAwB,CAAuD,CAAA;IAC/H,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAA;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC,CAAA;QACnE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAmB,CAAA;QAC9C,MAAM,KAAK,GAAG,CAAC,KAAY,EAAQ,EAAE;YACnC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACrC,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACxD,KAAK,IAAI,OAAO,GAAuB,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxF,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAAC,MAAK;gBAAC,CAAC;YACrE,CAAC;YACD,OAAO,KAAK,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,WAAW,KAAK,KAAK,CAAA;YAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAC3B,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBACpD,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAA;YAChG,CAAC;QACH,CAAC,CAAA;QACD,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QACxD,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAA,CAAC,CAAC,CAAC,CAAA;QACpF,OAAM;IACR,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,OAAO,EAAqD,CAAA;IAClF,MAAM,MAAM,GAAG,CAAC,KAAa,EAAW,EAAE;QACxC,KAAK,IAAI,OAAO,GAAuB,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YACxF,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,OAAgB,CAAC,CAAA;YAC7C,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC,OAAO,CAAA;QACjC,CAAC;QACD,OAAO,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,WAAW,KAAK,KAAK,CAAA;IAC1D,CAAC,CAAA;IACD,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC,CAAA;IACnE,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,EAAE;QACpE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;YACzC,CAAC,CAAC,yGAAyG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACvH,GAAG,CAAC,EAAE,CAAC,wBAAwB,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE;QACpE,MAAM,SAAS,GAAG,MAAM,IAAI,EAAE,CAAA;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAA;QACxD,OAAO,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAA;IAClG,CAAC,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,CAAC,KAAY,EAAiB,EAAE;QAC9C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAA;QACnC,wEAAwE;QACxE,KAAK,IAAI,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/E,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,MAAe,CAAC,CAAA;YAChD,IAAI,SAAS,EAAE,CAAC;gBAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC,KAAK,CAAA;YAAC,CAAC;QAC5E,CAAC;QACD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACpF,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,WAAW,KAAK,KAAK,CAAA;QACjG,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAE,CAAA;QACrC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACrD,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE;YACxB,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,IAAI,SAAS;wBAAE,MAAM,SAAS,CAAC,KAAK,CAAA;;wBAC/B,MAAM,OAAO,EAAE,CAAA;gBACtB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,6EAA6E;oBAC7E,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;oBAClC,MAAM,KAAK,CAAA;gBACb,CAAC;YACH,CAAC;QACH,CAAC,CAAC,EAAE,CAAA;QACJ,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QACxC,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IACD,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;IACtE,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAA,CAAC,CAAC,CAAC,CAAA;AAC9F,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "dsh-super-code",
3
- "version": "0.3.8",
3
+ "version": "0.3.10",
4
4
  "description": "Task-focused coding, specialist teams, and durable task memory with directory and declarative presets for DeepSeek Harness.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "lib/index.js",
8
8
  "types": "lib/index.d.ts",
9
9
  "bin": {
10
+ "super-code-mcp": "lib/connection-cli.js",
10
11
  "super-code-eval": "lib/evaluate.js"
11
12
  },
12
13
  "exports": {
@@ -39,22 +40,33 @@
39
40
  "./compaction": {
40
41
  "types": "./lib/dsh/compaction.d.ts",
41
42
  "default": "./lib/dsh/compaction.js"
43
+ },
44
+ "./shell": {
45
+ "types": "./lib/dsh/windows-shell.d.ts",
46
+ "default": "./lib/dsh/windows-shell.js"
42
47
  }
43
48
  },
44
49
  "files": [
45
50
  "lib",
46
51
  "presets",
52
+ "runtime/windows",
47
53
  "cordis.patch.yml",
48
54
  "README.md",
55
+ "README.en.md",
49
56
  "docs/Changelog.md",
50
57
  "docs/Compatibility.md",
51
58
  "docs/UsageGuide.md",
52
59
  "docs/EvaluationResults.md",
53
60
  "docs/Acknowledgements.md",
61
+ "docs/en/*.md",
54
62
  "docs/images/agent-tree.png",
55
63
  "docs/images/agent-tree-preview.png",
64
+ "docs/images/task-status.png",
65
+ "docs/images/task-status-preview.png",
56
66
  "docs/images/preset-settings.png",
57
67
  "docs/images/preset-settings-preview.png",
68
+ "docs/images/install-tgz.png",
69
+ "docs/images/install-tgz-preview.png",
58
70
  "LICENSE",
59
71
  "client",
60
72
  "locales"
@@ -65,21 +77,21 @@
65
77
  "zod": "^4.6.7"
66
78
  },
67
79
  "peerDependencies": {
68
- "@deepseek-ai/cordis": "^4.0.2 || ^4.0.5-alpha.1",
69
- "@deepseek-ai/dsh-agent": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1",
70
- "@deepseek-ai/dsh-compaction": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1",
71
- "@deepseek-ai/dsh-compaction-basic": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1",
72
- "@deepseek-ai/dsh-llm": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1",
73
- "@deepseek-ai/dsh-scope": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1",
74
- "@deepseek-ai/dsh-session": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1",
75
- "@deepseek-ai/dsh-session-projection": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1",
76
- "@deepseek-ai/dsh-settings": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1",
77
- "@deepseek-ai/dsh-storage-domain": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1",
78
- "@deepseek-ai/dsh-system-prompt": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1",
79
- "@deepseek-ai/dsh-token-meter": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1",
80
- "@deepseek-ai/dsh-tools": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1",
81
- "@deepseek-ai/dsh-typert-protocol": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1",
82
- "@deepseek-ai/schemastery": "^3.18.2 || ^3.18.5-alpha.1"
80
+ "@deepseek-ai/cordis": "^4.0.2 || ^4.0.5-alpha.1 || ^4.0.6-alpha.1",
81
+ "@deepseek-ai/dsh-agent": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.2",
82
+ "@deepseek-ai/dsh-compaction": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.2",
83
+ "@deepseek-ai/dsh-compaction-basic": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.2",
84
+ "@deepseek-ai/dsh-llm": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.2",
85
+ "@deepseek-ai/dsh-scope": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.2",
86
+ "@deepseek-ai/dsh-session": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.2",
87
+ "@deepseek-ai/dsh-session-projection": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.2",
88
+ "@deepseek-ai/dsh-settings": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.2",
89
+ "@deepseek-ai/dsh-storage-domain": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.2",
90
+ "@deepseek-ai/dsh-system-prompt": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.2",
91
+ "@deepseek-ai/dsh-token-meter": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.2",
92
+ "@deepseek-ai/dsh-tools": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.2",
93
+ "@deepseek-ai/dsh-typert-protocol": "^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.2",
94
+ "@deepseek-ai/schemastery": "^3.18.2 || ^3.18.5-alpha.1 || ^3.18.6-alpha.1"
83
95
  },
84
96
  "peerDependenciesMeta": {
85
97
  "@deepseek-ai/cordis": {
@@ -2,7 +2,7 @@
2
2
  - id: super-code
3
3
  name: dsh-super-code/super-code
4
4
  config:
5
- presetVersion: 0.3.8
5
+ presetVersion: 0.3.10
6
6
  # Reuse the host backend in an agent-local realm, as shipped Harness presets do.
7
7
  # The token meter remains host-owned; each agent owns its compaction lifecycle.
8
8
  - id: compaction
@@ -19,12 +19,8 @@
19
19
  name: '@deepseek-ai/dsh-agent-instructions'
20
20
  config:
21
21
  maxBytes: 65536
22
- - id: tool-bash
23
- name: '@deepseek-ai/dsh-tool-bash'
24
- disabled: !!js process.platform === 'win32'
25
- - id: tool-pwsh
26
- name: '@deepseek-ai/dsh-tool-pwsh'
27
- disabled: !!js process.platform !== 'win32'
22
+ - id: super-code-shell
23
+ name: dsh-super-code/shell
28
24
  - id: tool-fs
29
25
  name: '@deepseek-ai/dsh-tool-fs'
30
26
  - id: tool-fs-search
@@ -0,0 +1,45 @@
1
+ # Bundled Windows shell
2
+
3
+ This directory contains separately licensed, unmodified command-line programs.
4
+ The plugin's Apache-2.0 license does not replace their licenses. The programs run
5
+ as child processes; they are not linked into the plugin.
6
+
7
+ `manifest.json` pins the decompressed size and SHA-256 of every executable and
8
+ DLL. Assets are gzip streams, decoded offline using Node's standard library.
9
+ Both x64 and ARM64 Unicode BusyBox builds are included. Bash, GNU grep and their
10
+ MSYS libraries are x64 programs; ARM64 Windows runs those through x64 emulation.
11
+ No Git executable, development language, compiler or package manager is included.
12
+
13
+ | Component | Version / origin | License / corresponding source |
14
+ |---|---|---|
15
+ | GNU Bash | `5.3.015-2`, PortableGit `2.56.0.4` | GPL-3.0-or-later; [GNU Bash 5.3](https://ftp.gnu.org/gnu/bash/bash-5.3.tar.gz), [patches 001–015](https://ftp.gnu.org/gnu/bash/bash-5.3-patches/), [exact MSYS build recipe and patches](https://github.com/git-for-windows/MSYS2-packages/tree/591e6d9e542fb00d8eb03a1376212e111ff525d7/bash) |
16
+ | MSYS runtime | `3.6.10-4`, same PortableGit | GPL-3.0-or-later; [COPYING](licenses/MSYS-COPYING.RUNTIME) / [COPYING.LIB](licenses/MSYS-COPYING.LIB); [complete MSYS source package, including build recipe and patches](https://repo.msys2.org/msys/sources/msys2-runtime-3.6.10-4.src.tar.zst) |
17
+ | GNU grep | `1~3.0-7`, same PortableGit | GPL-3.0-or-later; [complete source package](https://repo.msys2.org/msys/sources/grep-1~3.0-7.src.tar.zst) |
18
+ | GNU libiconv | `1.19-1`, same PortableGit | LGPL-3.0-or-later (the upstream LGPL-2.1-or-later option is exercised at version 3); [complete source package](https://repo.msys2.org/msys/sources/libiconv-1.19-1.src.tar.zst) |
19
+ | GNU libintl / gettext | `0.22.5-1`, same PortableGit | LGPL-3.0-or-later (the upstream LGPL-2.1-or-later option is exercised at version 3); [complete source package](https://repo.msys2.org/msys/sources/gettext-0.22.5-1.src.tar.zst) |
20
+ | PCRE | `8.45-5`, same PortableGit | [PCRE license](licenses/PCRE-LICENCE.txt); [complete source package](https://repo.msys2.org/msys/sources/pcre-8.45-5.src.tar.zst) |
21
+ | BusyBox for Windows | `FRP-6354-g5f09fb446`, Unicode x64 / ARM64 | [GPL-2.0-only](licenses/BusyBox-LICENSE.txt); [complete corresponding source and build configurations included in this package](sources/busybox-w32-FRP-6354-g5f09fb446.tgz) |
22
+
23
+ Bash also statically uses Readline (`8.3.006-1`, GPL-3.0-or-later) and ncurses
24
+ (`6.6-2`, MIT-style license). Their complete source packages and build recipes
25
+ are available from the same MSYS source archive:
26
+ [Readline](https://repo.msys2.org/msys/sources/readline-8.3.006-1.src.tar.zst),
27
+ [ncurses](https://repo.msys2.org/msys/sources/ncurses-6.6-2.src.tar.zst).
28
+ See [ncurses's notice](licenses/ncurses-COPYING.txt).
29
+
30
+ The GNU GPL and LGPL texts are included in `licenses/`. Corresponding source is
31
+ available without charge at the URLs above, independently of installing or
32
+ running this plugin. The BusyBox source tarball is distributed alongside its
33
+ binary assets. It includes `configs/mingw64u_defconfig`,
34
+ `configs/mingw64a_defconfig` and the original build scripts; see its `win32/`
35
+ documentation. The library DLLs remain separate files and may be replaced with
36
+ compatible builds. The plugin's cache checks integrity rather than accepting
37
+ silently modified programs; a developer build can update `manifest.json` and
38
+ its matching compressed assets. These checks do not restrict rights granted by
39
+ the third-party licenses.
40
+
41
+ Binary provenance, source hashes and assembly instructions are in
42
+ [`sources.json`](sources.json). Keep this documentation and the license/source
43
+ files with redistributed copies. Before changing a payload, update its matching
44
+ sources and notices as well as the manifest; do not relabel an upstream binary
45
+ as a newer version.
Binary file
Binary file