@chatcode/chatcode-cli 3.0.0 → 3.0.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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@chatcode/chatcode-cli",
3
3
  "description": "ChatCode CLI: TUI-first coding agent, Web launcher, profiles, and legacy DSH-compatible plugins",
4
- "version": "3.0.0",
4
+ "version": "3.0.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -92,45 +92,45 @@
92
92
  "ajv": "^8.20.0",
93
93
  "execa": "^10.0.0",
94
94
  "ws": "8.21.0",
95
- "@deepseek-ai/dsh-acp": "0.1.7-rc.2",
96
- "@deepseek-ai/dsh-agent": "0.1.7-rc.2",
97
95
  "@deepseek-ai/dsh-agent-loop": "0.1.7-rc.2",
98
- "@deepseek-ai/dsh-agent-loop-testkit": "0.1.7-rc.2",
99
- "@deepseek-ai/dsh-bash-local": "0.1.7-rc.2",
100
- "@deepseek-ai/dsh-attachment-local": "0.1.7-rc.2",
101
96
  "@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.1.7-rc.2",
97
+ "@deepseek-ai/dsh-acp": "0.1.7-rc.2",
98
+ "@deepseek-ai/dsh-bash-local": "0.1.7-rc.2",
99
+ "@deepseek-ai/dsh-agent": "0.1.7-rc.2",
102
100
  "@deepseek-ai/dsh-experimental-agent-team": "0.1.7-rc.2",
103
- "@deepseek-ai/dsh-fs-observation-policy": "0.1.7-rc.2",
104
- "@deepseek-ai/dsh-credentials-local": "0.1.7-rc.2",
101
+ "@deepseek-ai/dsh-fs-sandbox": "0.1.7-rc.2",
102
+ "@deepseek-ai/dsh-experimental-ptc-runtime-python": "0.1.7-rc.2",
103
+ "@deepseek-ai/dsh-experimental-tool-agent-team": "0.1.7-rc.2",
105
104
  "@deepseek-ai/dsh-host-webserver": "0.1.7-rc.2",
105
+ "@deepseek-ai/dsh-fs-observation-policy": "0.1.7-rc.2",
106
+ "@deepseek-ai/dsh-attachment-local": "0.1.7-rc.2",
107
+ "@deepseek-ai/dsh-llm-deepseek": "0.1.7-rc.2",
108
+ "@deepseek-ai/dsh-host-frontend-static": "0.1.7-rc.2",
106
109
  "@deepseek-ai/dsh-llm": "0.1.7-rc.2",
107
- "@deepseek-ai/dsh-experimental-tool-agent-team": "0.1.7-rc.2",
110
+ "@deepseek-ai/dsh-agent-loop-testkit": "0.1.7-rc.2",
111
+ "@deepseek-ai/dsh-credentials-local": "0.1.7-rc.2",
108
112
  "@deepseek-ai/dsh-llm-deepseek-api-key": "0.1.7-rc.2",
109
- "@deepseek-ai/dsh-llm-deepseek-account": "0.1.7-rc.2",
110
- "@deepseek-ai/dsh-llm-deepseek": "0.1.7-rc.2",
111
113
  "@deepseek-ai/dsh-llm-mock-server": "0.1.7-rc.2",
112
- "@deepseek-ai/dsh-host-frontend-static": "0.1.7-rc.2",
113
- "@deepseek-ai/dsh-llm-replay": "0.1.7-rc.2",
114
+ "@deepseek-ai/dsh-llm-deepseek-account": "0.1.7-rc.2",
115
+ "@deepseek-ai/dsh-plugin-package-inventory-deepseek": "0.1.7-rc.2",
116
+ "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2",
114
117
  "@deepseek-ai/dsh-llm-pi-ai": "0.1.7-rc.2",
118
+ "@deepseek-ai/dsh-session": "0.1.7-rc.2",
115
119
  "@deepseek-ai/dsh-sandbox-local": "0.1.7-rc.2",
116
- "@deepseek-ai/dsh-plugin-package-inventory-deepseek": "0.1.7-rc.2",
117
- "@deepseek-ai/dsh-experimental-ptc-runtime-python": "0.1.7-rc.2",
118
- "@deepseek-ai/dsh-loader-smoke": "0.1.7-rc.2",
119
- "@deepseek-ai/dsh-sdk-client": "0.1.7-rc.2",
120
- "@deepseek-ai/dsh-session-checkpoint-policy": "0.1.7-rc.2",
121
120
  "@deepseek-ai/dsh-session-log-deepseek": "0.1.7-rc.2",
121
+ "@deepseek-ai/dsh-sdk-client": "0.1.7-rc.2",
122
122
  "@deepseek-ai/dsh-session-query": "0.1.7-rc.2",
123
123
  "@deepseek-ai/dsh-session-persistence-jsonl": "0.1.7-rc.2",
124
- "@deepseek-ai/dsh-settings": "0.1.7-rc.2",
125
- "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2",
126
- "@deepseek-ai/dsh-subagent": "0.1.7-rc.2",
124
+ "@deepseek-ai/dsh-session-checkpoint-policy": "0.1.7-rc.2",
127
125
  "@deepseek-ai/dsh-shell-env": "0.1.7-rc.2",
128
- "@deepseek-ai/dsh-subagent-spawn-in-process": "0.1.7-rc.2",
129
- "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2",
130
- "@deepseek-ai/dsh-fs-sandbox": "0.1.7-rc.2",
131
126
  "@deepseek-ai/dsh-subagent-fork-in-process": "0.1.7-rc.2",
127
+ "@deepseek-ai/dsh-subagent": "0.1.7-rc.2",
128
+ "@deepseek-ai/dsh-loader-smoke": "0.1.7-rc.2",
129
+ "@deepseek-ai/dsh-subagent-spawn-in-process": "0.1.7-rc.2",
132
130
  "@deepseek-ai/dsh-subprocess-local": "0.1.7-rc.2",
133
- "@deepseek-ai/dsh-session": "0.1.7-rc.2",
131
+ "@deepseek-ai/dsh-settings": "0.1.7-rc.2",
132
+ "@deepseek-ai/dsh-llm-replay": "0.1.7-rc.2",
133
+ "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2",
134
134
  "@deepseek-ai/dsh-tools": "0.1.7-rc.2",
135
135
  "@deepseek-ai/dsh-user-approval": "0.1.7-rc.2"
136
136
  },
@@ -4125,7 +4125,7 @@ window.__ModuleLoader__.load({
4125
4125
  for (const listener of listeners) listener();
4126
4126
  };
4127
4127
  /** @returns the client identity for one account call, read at call time so it carries the language and zone in effect then. */
4128
- const client = () => accountClientMetadata(ctx.locale.getSnapshot().active, "3.0.0");
4128
+ const client = () => accountClientMetadata(ctx.locale.getSnapshot().active, "3.0.1");
4129
4129
  const notices = createBonusNoticeController({
4130
4130
  ackRetryDelayMs: config.bonusAckRetryDelayMs,
4131
4131
  ackRetryMaxDelayMs: config.bonusAckRetryMaxDelayMs,
@@ -4256,7 +4256,7 @@ window.__ModuleLoader__.load({
4256
4256
  refreshAccount,
4257
4257
  contactUs() {
4258
4258
  const url = contactUrl(config, {
4259
- version: "3.0.0",
4259
+ version: "3.0.1",
4260
4260
  locale: ctx.locale.getSnapshot().active === "zh" ? "zh-CN" : "en",
4261
4261
  width: window.screen.width,
4262
4262
  height: window.screen.height,
@@ -657,7 +657,7 @@ window.__ModuleLoader__.load({
657
657
  function CurrentVersionRow({ t }) {
658
658
  return (0, react_jsx_runtime.jsx)("div", {
659
659
  className: CurrentVersionRow_module_css_default.row,
660
- children: t("general.currentVersion", { version: "3.0.0" })
660
+ children: t("general.currentVersion", { version: "3.0.1" })
661
661
  });
662
662
  }
663
663
  //#endregion
@@ -167,7 +167,7 @@ window.__ModuleLoader__.load({
167
167
  const SCROLLBAR_LINGER_MS = 2e3;
168
168
  /** Format complete-build metadata for the local brand badge. */
169
169
  function localBuildVersion() {
170
- return `3.0.0-0659889-dirty`;
170
+ return `3.0.1-0659889-dirty`;
171
171
  }
172
172
  /** Each panel row subscribes only to its own selection state. */
173
173
  function PanelRow({ id, label, wide, usePanelInfo, selectPanel, renderSlot }) {
@@ -5,7 +5,7 @@ import { join } from 'node:path'
5
5
  import { pathToFileURL } from 'node:url'
6
6
 
7
7
  /**
8
- * Route embedded package imports and require.resolve calls to one runtime.
8
+ * Route embedded imports, require.resolve and bundle lookup paths to one runtime.
9
9
  * @param {string} packageDir - The installed CLI package directory.
10
10
  * @returns {(() => void) | undefined} Removes the resolvers; absent without an embedded runtime.
11
11
  */
@@ -28,28 +28,33 @@ export function registerEmbeddedRuntime(packageDir) {
28
28
  const parts = specifier.split('/')
29
29
  return names.has(specifier.startsWith('@') ? parts.slice(0, 2).join('/') : parts[0])
30
30
  }
31
- let restoreRequireResolve
32
- // Node 22's require.resolve bypasses registerHooks. Keep its legacy resolver
33
- // on the same runtime as import/require without changing installed files.
34
- if (Number(process.versions.node.split('.')[0]) < 24) {
35
- const original = Module._resolveFilename
36
- let resolving = false
37
- function resolveFilename(specifier, parent, isMain, options) {
38
- if (resolving || typeof specifier !== 'string' || !owns(specifier)) {
39
- return original.call(this, specifier, parent, isMain, options)
40
- }
41
- resolving = true
42
- try {
43
- return runtimeRequire.resolve(specifier)
44
- } finally {
45
- resolving = false
46
- }
31
+ // require.resolve.paths bypasses module hooks. Bundle discovery must see the
32
+ // embedded directory even when the bundle does not export package.json.
33
+ const runtimeModules = join(packageDir, 'runtime', 'node_modules')
34
+ const originalLookupPaths = Module._resolveLookupPaths
35
+ function resolveLookupPaths(specifier, parent) {
36
+ const paths = originalLookupPaths.call(this, specifier, parent)
37
+ if (!owns(specifier)) return paths
38
+ return [runtimeModules, ...(paths ?? []).filter(path => path !== runtimeModules)]
39
+ }
40
+ Module._resolveLookupPaths = resolveLookupPaths
41
+
42
+ // require.resolve bypasses module hooks on Node 22 and earlier Node 24
43
+ // releases. Anchor it explicitly instead of inferring support from the major.
44
+ const originalResolveFilename = Module._resolveFilename
45
+ let resolving = false
46
+ function resolveFilename(specifier, parent, isMain, options) {
47
+ if (resolving || typeof specifier !== 'string' || !owns(specifier)) {
48
+ return originalResolveFilename.call(this, specifier, parent, isMain, options)
47
49
  }
48
- Module._resolveFilename = resolveFilename
49
- restoreRequireResolve = () => {
50
- if (Module._resolveFilename === resolveFilename) Module._resolveFilename = original
50
+ resolving = true
51
+ try {
52
+ return runtimeRequire.resolve(specifier)
53
+ } finally {
54
+ resolving = false
51
55
  }
52
56
  }
57
+ Module._resolveFilename = resolveFilename
53
58
  const hooks = registerHooks({
54
59
  resolve(specifier, context, nextResolve) {
55
60
  if (!owns(specifier) || context.parentURL === parentURL) return nextResolve(specifier, context)
@@ -64,6 +69,7 @@ export function registerEmbeddedRuntime(packageDir) {
64
69
  })
65
70
  return () => {
66
71
  hooks.deregister()
67
- restoreRequireResolve?.()
72
+ if (Module._resolveFilename === resolveFilename) Module._resolveFilename = originalResolveFilename
73
+ if (Module._resolveLookupPaths === resolveLookupPaths) Module._resolveLookupPaths = originalLookupPaths
68
74
  }
69
75
  }