@chatcode/chatcode-cli 3.0.4 → 3.0.5-rc.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.
Files changed (143) hide show
  1. package/README.i18n.yaml +6 -6
  2. package/README.md +10 -4
  3. package/README.zh.md +10 -4
  4. package/lib/bin.js +23 -9
  5. package/lib/{command-errors-Ca64Lgba.js → command-errors-CsRCh0gk.js} +12 -12
  6. package/lib/{command-trees-CVc4Xu_z.js → command-trees-CD_43rxX.js} +2 -2
  7. package/lib/{component-identity-6aEut5Yt.js → component-identity-DGA2-TeB.js} +3 -3
  8. package/lib/{dump-config-ZzrfvtnX.js → dump-config-D8kXfdTs.js} +1 -1
  9. package/lib/dump-config-DuCc-QB7.js +2 -0
  10. package/lib/{dump-config-schema-BlO-eZ-J.js → dump-config-schema-CtZbroi6.js} +2 -2
  11. package/lib/{extension-events-C7MUpqVE.js → extension-events-D0BjYRqT.js} +21 -21
  12. package/lib/{host-access-CLbyAGT5.js → host-access-DLJjuR07.js} +1 -1
  13. package/lib/{keymap-82JwLLHe.js → keymap-C4cs2IBN.js} +2 -2
  14. package/lib/{plugin-BlQlWIR5.js → plugin-CGtTByud.js} +801 -456
  15. package/lib/{plugin-BZdazFXS.js → plugin-CYw-MBRn.js} +1 -1
  16. package/lib/{profile-boot-B0aEEQIR.js → profile-boot-CffsubnV.js} +7 -7
  17. package/lib/profile-boot.js +1 -1
  18. package/lib/{scenes-BNS0ZFyQ.js → scenes-CbAGK5Uy.js} +3 -3
  19. package/lib/{settings-sections-CXH24cu5.js → settings-sections-DYKDa04e.js} +3 -3
  20. package/lib/{statusBarSettings-BAMzn8fX.js → statusBarSettings-T1m8xad4.js} +3 -3
  21. package/lib/{themes-DXUIvP7m.js → themes-BY2ui1Dv.js} +12 -12
  22. package/lib/tui-compat-command-trees.js +1 -1
  23. package/lib/tui-compat-extensions.js +3 -3
  24. package/lib/tui-compat-plugin-host.js +5 -5
  25. package/lib/tui-compat-scenes.js +1 -1
  26. package/lib/tui-compat-settings-sections.js +1 -1
  27. package/lib/tui-compat-working-activity.js +1 -1
  28. package/lib/tui-compat-workspaces.js +1 -1
  29. package/lib/tui-compat.js +7 -7
  30. package/lib/types/bin.d.ts +9 -0
  31. package/lib/types/tui-compat.d.ts +1 -1
  32. package/lib/types/web-instance-process.d.ts +20 -0
  33. package/lib/{web-instance-DbP7IHPv.js → web-instance-D_Ppi2Zo.js} +176 -14
  34. package/lib/{web-instance-B0jec7cq.js → web-instance-amvCJWnq.js} +1 -1
  35. package/lib/{workspaces-CUJXNU5W.js → workspaces-D5VKbESy.js} +2 -2
  36. package/package.json +23 -24
  37. package/runtime/manifest.json +2 -2
  38. package/runtime/node_modules/@deepseek-ai/dsh-agent-default-model/lib/index.js +7 -3
  39. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/client.js +11 -3
  40. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/contract/snapshot.d.ts +1 -0
  41. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/assistant-stream.d.ts +2 -0
  42. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/assistant-stream.js +4 -0
  43. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/session.js +10 -3
  44. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js +32 -11
  45. package/runtime/node_modules/@deepseek-ai/dsh-atomic-write/lib/index.js +62 -11
  46. package/runtime/node_modules/@deepseek-ai/dsh-atomic-write/lib/types/darwin-lock.d.ts +7 -0
  47. package/runtime/node_modules/@deepseek-ai/dsh-atomic-write/lib/types/index.d.ts +7 -2
  48. package/runtime/node_modules/@deepseek-ai/dsh-atomic-write/lib/types/linux-lock.d.ts +1 -1
  49. package/runtime/node_modules/@deepseek-ai/dsh-client-locale/lib/client.js +7 -7
  50. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-agent-preset/lib/client.js +62 -62
  51. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-approval/lib/client.js +10 -10
  52. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-attachment/lib/client.js +49 -49
  53. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-chat/lib/client.js +204 -204
  54. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-commands/lib/client.js +16 -16
  55. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-conversation/lib/client.js +159 -157
  56. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-conversation/lib/types/client/service.d.ts +4 -2
  57. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-cordis/lib/client.js +74 -74
  58. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/client.js +129 -123
  59. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/index.js +19 -14
  60. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/changes.d.ts +2 -2
  61. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/client/Deliverables.d.ts +1 -2
  62. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/client/locales.d.ts +2 -1
  63. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/client/present-open.d.ts +1 -1
  64. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/package.json +2 -4
  65. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-browse/lib/client.js +39 -39
  66. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-goal/lib/client.js +16 -16
  67. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-input-trigger/lib/client.js +23 -23
  68. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-jobs/lib/client.js +37 -37
  69. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-layout/lib/client.js +9 -9
  70. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-message-feedback/lib/client.js +12 -12
  71. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/client.js +119 -32
  72. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/catalog.d.ts +13 -0
  73. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/directory.d.ts +2 -0
  74. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/effort-preferences.d.ts +20 -0
  75. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/slots.d.ts +2 -1
  76. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-open-in-app/lib/client.js +8 -8
  77. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-permission-presets/lib/client.js +18 -18
  78. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-plan/lib/client.js +22 -22
  79. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-plugin-manager/lib/client.js +128 -128
  80. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-schedule/lib/client.js +182 -182
  81. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/client.js +130 -130
  82. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +50 -50
  83. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-models/lib/client.js +88 -88
  84. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/lib/client.js +36 -36
  85. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-plugins/lib/client.js +13 -13
  86. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-subagent/lib/client.js +27 -27
  87. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-shortcuts/lib/client.js +42 -42
  88. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +44 -44
  89. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-browser/lib/client.js +25 -25
  90. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/lib/client.excel.js +9 -9
  91. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/lib/client.js +70 -70
  92. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/lib/client.pdf.js +9 -9
  93. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-files/lib/client.js +18 -18
  94. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-right/lib/client.js +26 -26
  95. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-terminal/lib/client.js +16 -16
  96. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-terminal/lib/client.terminal.js +11 -11
  97. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-skill/lib/client.js +20 -20
  98. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-subagent/lib/client.js +37 -37
  99. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-theme/lib/client.js +27 -27
  100. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-tool/lib/client.js +95 -95
  101. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-trajectory/lib/client.js +197 -197
  102. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-user-questions/lib/client.js +49 -49
  103. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workflow-run/lib/client.js +24 -24
  104. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/client.js +656 -152
  105. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/ArchivedSessions.d.ts +9 -2
  106. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/locales.d.ts +46 -0
  107. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/session-actions/DeleteSession.d.ts +9 -10
  108. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/session-actions/deletion.d.ts +57 -0
  109. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/package.json +2 -0
  110. package/runtime/node_modules/@deepseek-ai/dsh-experimental-client-ui-agent-team/lib/client.js +32 -32
  111. package/runtime/node_modules/@deepseek-ai/dsh-experimental-client-ui-voice-input/lib/client.js +24 -24
  112. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/index.js +899 -453
  113. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/adapter.d.ts +4 -20
  114. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/adapter.d.ts +8 -0
  115. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/serialize.d.ts +10 -0
  116. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/sse.d.ts +24 -0
  117. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/translate.d.ts +37 -0
  118. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/types.d.ts +159 -0
  119. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/file-store.d.ts +3 -0
  120. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/files-api.d.ts +4 -0
  121. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/index.d.ts +1 -0
  122. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/protocol-adapter.d.ts +41 -0
  123. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/protocol.d.ts +35 -0
  124. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/transport.d.ts +2 -1
  125. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/types.d.ts +2 -2
  126. package/runtime/node_modules/@deepseek-ai/dsh-mcp-client/lib/index.js +5 -4
  127. package/runtime/node_modules/@deepseek-ai/dsh-session-log-export/lib/client.js +4 -4
  128. package/runtime/node_modules/@deepseek-ai/dsh-session-log-export/lib/index.js +1 -1
  129. package/runtime/node_modules/@deepseek-ai/dsh-session-persistence-jsonl/lib/index.js +2 -2
  130. package/runtime/node_modules/@deepseek-ai/dsh-tool-cordis/lib/types/api-catalog.js +12 -10
  131. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/index.js +208 -39
  132. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/archive.d.ts +47 -0
  133. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/archive.js +129 -0
  134. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/index.d.ts +2 -0
  135. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/index.js +31 -8
  136. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/recorder.d.ts +7 -2
  137. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/recorder.js +35 -19
  138. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/types.d.ts +11 -10
  139. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/package.json +1 -0
  140. package/scripts/link-embedded-runtime.mjs +1 -1
  141. package/lib/dump-config-CDixiJNt.js +0 -2
  142. package/lib/{home-migration-BjDmRwBB.js → home-migration-lRjtl2fP.js} +1 -1
  143. package/lib/{startup-diagnostics-C_hRCp-q.js → startup-diagnostics-4mLHYTFc.js} +1 -1
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.4",
4
+ "version": "3.0.5-rc.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -28,15 +28,15 @@
28
28
  "dependencies": {
29
29
  "@agentclientprotocol/sdk": "1.4.0",
30
30
  "@babel/code-frame": "^7.29.0",
31
- "@chatcode/cco-better-sidebar": "0.18.0-rc.11",
31
+ "@chatcode/cco-better-sidebar": "0.18.0-rc.12",
32
32
  "@chatcode/cco-builtin-browser": "0.1.21",
33
33
  "@chatcode/cco-chat-import": "0.17.0",
34
34
  "@chatcode/cco-computer-use": "0.3.2",
35
- "@chatcode/cco-llm-chatcode-config": "0.1.4-rc.9",
35
+ "@chatcode/cco-llm-chatcode-config": "0.1.4-rc.10",
36
36
  "@chatcode/cco-market": "1.45.2-rc.4",
37
- "@chatcode/cco-tui": "0.10.0-rc.21",
37
+ "@chatcode/cco-tui": "0.10.0-rc.22",
38
38
  "@deepseek-ai/libreoffice-kit": "^0.1.1",
39
- "@deepseek-harness-tui/dsh-tui": "npm:@chatcode/cco-tui@0.10.0-rc.21",
39
+ "@deepseek-harness-tui/dsh-tui": "npm:@chatcode/cco-tui@0.10.0-rc.22",
40
40
  "@earendil-works/pi-ai": "^0.85.1",
41
41
  "@eslint-community/regexpp": "^4.12.2",
42
42
  "@joplin/turndown-plugin-gfm": "^1.0.67",
@@ -58,11 +58,10 @@
58
58
  "commander": "^15.0.0",
59
59
  "compression": "^1.8.1",
60
60
  "diff": "^9.0.0",
61
- "dsh-better-sidebar": "npm:@chatcode/cco-better-sidebar@0.18.0-rc.11",
61
+ "dsh-better-sidebar": "npm:@chatcode/cco-better-sidebar@0.18.0-rc.12",
62
62
  "dsh-builtin-browser": "npm:@chatcode/cco-builtin-browser@0.1.21",
63
63
  "dsh-chat-import": "npm:@chatcode/cco-chat-import@0.17.0",
64
64
  "dsh-computer-use": "npm:@chatcode/cco-computer-use@0.3.2",
65
- "dsh-llm-chatcode-config": "npm:@chatcode/cco-llm-chatcode-config@0.1.4-rc.9",
66
65
  "dshmarket": "npm:@chatcode/cco-market@1.45.2-rc.4",
67
66
  "eventsource-parser": "^3.1.0",
68
67
  "execa": "^10.0.0",
@@ -97,44 +96,44 @@
97
96
  "execa": "^10.0.0",
98
97
  "ws": "8.21.0",
99
98
  "@deepseek-ai/dsh-acp": "0.1.7-rc.2",
100
- "@deepseek-ai/dsh-agent": "0.1.7-rc.2",
101
99
  "@deepseek-ai/dsh-bash-local": "0.1.7-rc.2",
102
- "@deepseek-ai/dsh-agent-loop": "0.1.7-rc.2",
103
- "@deepseek-ai/dsh-credentials-local": "0.1.7-rc.2",
100
+ "@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.1.7-rc.2",
101
+ "@deepseek-ai/dsh-agent": "0.1.7-rc.2",
104
102
  "@deepseek-ai/dsh-attachment-local": "0.1.7-rc.2",
103
+ "@deepseek-ai/dsh-agent-loop": "0.1.7-rc.2",
105
104
  "@deepseek-ai/dsh-experimental-agent-team": "0.1.7-rc.2",
106
- "@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.1.7-rc.2",
107
- "@deepseek-ai/dsh-agent-loop-testkit": "0.1.7-rc.2",
108
105
  "@deepseek-ai/dsh-experimental-tool-agent-team": "0.1.7-rc.2",
109
- "@deepseek-ai/dsh-fs-observation-policy": "0.1.7-rc.2",
110
- "@deepseek-ai/dsh-experimental-ptc-runtime-python": "0.1.7-rc.2",
106
+ "@deepseek-ai/dsh-credentials-local": "0.1.7-rc.2",
107
+ "@deepseek-ai/dsh-agent-loop-testkit": "0.1.7-rc.2",
108
+ "@deepseek-ai/dsh-host-frontend-static": "0.1.7-rc.2",
111
109
  "@deepseek-ai/dsh-fs-sandbox": "0.1.7-rc.2",
112
- "@deepseek-ai/dsh-host-webserver": "0.1.7-rc.2",
113
- "@deepseek-ai/dsh-llm-deepseek-account": "0.1.7-rc.2",
110
+ "@deepseek-ai/dsh-experimental-ptc-runtime-python": "0.1.7-rc.2",
114
111
  "@deepseek-ai/dsh-llm": "0.1.7-rc.2",
112
+ "@deepseek-ai/dsh-host-webserver": "0.1.7-rc.2",
113
+ "@deepseek-ai/dsh-llm-deepseek-api-key": "0.1.7-rc.2",
114
+ "@deepseek-ai/dsh-fs-observation-policy": "0.1.7-rc.2",
115
115
  "@deepseek-ai/dsh-llm-deepseek": "0.1.7-rc.2",
116
116
  "@deepseek-ai/dsh-llm-mock-server": "0.1.7-rc.2",
117
117
  "@deepseek-ai/dsh-llm-replay": "0.1.7-rc.2",
118
- "@deepseek-ai/dsh-llm-pi-ai": "0.1.7-rc.2",
119
- "@deepseek-ai/dsh-host-frontend-static": "0.1.7-rc.2",
120
118
  "@deepseek-ai/dsh-loader-smoke": "0.1.7-rc.2",
119
+ "@deepseek-ai/dsh-llm-deepseek-account": "0.1.7-rc.2",
121
120
  "@deepseek-ai/dsh-sandbox-local": "0.1.7-rc.2",
121
+ "@deepseek-ai/dsh-session": "0.1.7-rc.2",
122
+ "@deepseek-ai/dsh-llm-pi-ai": "0.1.7-rc.2",
122
123
  "@deepseek-ai/dsh-plugin-package-inventory-deepseek": "0.1.7-rc.2",
123
124
  "@deepseek-ai/dsh-sdk-client": "0.1.7-rc.2",
125
+ "@deepseek-ai/dsh-session-checkpoint-policy": "0.1.7-rc.2",
124
126
  "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2",
127
+ "@deepseek-ai/dsh-session-persistence-jsonl": "0.1.7-rc.2",
125
128
  "@deepseek-ai/dsh-session-log-deepseek": "0.1.7-rc.2",
126
- "@deepseek-ai/dsh-session": "0.1.7-rc.2",
127
129
  "@deepseek-ai/dsh-session-query": "0.1.7-rc.2",
128
- "@deepseek-ai/dsh-session-checkpoint-policy": "0.1.7-rc.2",
130
+ "@deepseek-ai/dsh-settings": "0.1.7-rc.2",
129
131
  "@deepseek-ai/dsh-subagent-fork-in-process": "0.1.7-rc.2",
130
132
  "@deepseek-ai/dsh-subagent": "0.1.7-rc.2",
131
133
  "@deepseek-ai/dsh-subagent-spawn-in-process": "0.1.7-rc.2",
132
- "@deepseek-ai/dsh-settings": "0.1.7-rc.2",
133
- "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2",
134
134
  "@deepseek-ai/dsh-shell-env": "0.1.7-rc.2",
135
135
  "@deepseek-ai/dsh-subprocess-local": "0.1.7-rc.2",
136
- "@deepseek-ai/dsh-llm-deepseek-api-key": "0.1.7-rc.2",
137
- "@deepseek-ai/dsh-session-persistence-jsonl": "0.1.7-rc.2",
136
+ "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2",
138
137
  "@deepseek-ai/dsh-tools": "0.1.7-rc.2",
139
138
  "@deepseek-ai/dsh-user-approval": "0.1.7-rc.2"
140
139
  },
@@ -282,6 +282,6 @@
282
282
  "@deepseek-ai/node-addon-system",
283
283
  "@deepseek-ai/schemastery"
284
284
  ],
285
- "fileCount": 3611,
286
- "byteCount": 68765128
285
+ "fileCount": 3623,
286
+ "byteCount": 68860802
287
287
  }
@@ -17,17 +17,19 @@ function selection(settings) {
17
17
  ...settings.reasoningEffort === void 0 ? {} : { reasoningEffort: ReasoningEffortId(settings.reasoningEffort) }
18
18
  };
19
19
  }
20
- /** Parse one product-wide model preference without accepting partial records. */
20
+ /** Parse a complete route, preferring nested effort metadata over legacy top-level metadata. */
21
21
  function sharedPreference(path, warn) {
22
22
  try {
23
23
  const parsed = JSON.parse(readFileSync(path, "utf8"));
24
24
  if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) throw new Error("expected a model preference object");
25
25
  const record = parsed;
26
26
  if (typeof record.provider !== "string" || record.provider.length === 0 || typeof record.model !== "string" || record.model.length === 0) throw new Error("expected non-empty provider and model IDs");
27
+ const reasoning = record.reasoning;
28
+ const effort = reasoning === void 0 ? record.reasoningEffort : typeof reasoning === "object" && reasoning !== null && !Array.isArray(reasoning) ? reasoning.effort : void 0;
27
29
  const route = selection({
28
30
  provider: record.provider,
29
31
  model: record.model,
30
- ...typeof record.reasoningEffort === "string" && record.reasoningEffort.length > 0 ? { reasoningEffort: record.reasoningEffort } : {}
32
+ ...typeof effort === "string" && effort.length > 0 ? { reasoningEffort: effort } : {}
31
33
  });
32
34
  const displayName = typeof record.displayName === "string" ? record.displayName.trim() : "";
33
35
  return {
@@ -203,8 +205,10 @@ var AgentDefaultModelConfig = class extends Service {
203
205
  const previous = this.sharedDisplayName();
204
206
  let displayName = previous?.provider === config.provider && previous.model === config.model ? previous.name : void 0;
205
207
  if (name?.trim()) displayName = name.trim();
208
+ const { reasoningEffort, ...route } = config;
206
209
  const preference = {
207
- ...config,
210
+ ...route,
211
+ ...reasoningEffort === void 0 ? {} : { reasoning: { effort: reasoningEffort } },
208
212
  ...displayName === void 0 ? {} : { displayName }
209
213
  };
210
214
  const path = this.sharedPath;
@@ -1383,6 +1383,10 @@ window.__ModuleLoader__.load({
1383
1383
  publishedSeqs = /* @__PURE__ */ new Set();
1384
1384
  durableCursor = -1;
1385
1385
  transientInGap = 0;
1386
+ /** Whether the followed Assistant attempt is still awaiting its terminal frame. */
1387
+ get streaming() {
1388
+ return this.activeAttempt !== void 0;
1389
+ }
1386
1390
  /**
1387
1391
  * Replace the durable Web window and adopt an optional reconnect baseline.
1388
1392
  * @param entries - durable entries in the replacement window.
@@ -1683,7 +1687,7 @@ window.__ModuleLoader__.load({
1683
1687
  */
1684
1688
  beginSubmission(input) {
1685
1689
  const requestId = randomUUID();
1686
- const placement = this.running ? input.mode === "steer" ? "steering" : "queued" : "transcript";
1690
+ const placement = this.getSnapshot().running ? input.mode === "steer" ? "steering" : "queued" : "transcript";
1687
1691
  this.pendingSubmissions = [...this.pendingSubmissions, {
1688
1692
  requestId,
1689
1693
  placement,
@@ -2076,7 +2080,11 @@ window.__ModuleLoader__.load({
2076
2080
  case "append":
2077
2081
  this.publishAssistantEntry(this.assistantStream.acceptDurable(change.entry));
2078
2082
  return;
2079
- case "assistant-stream": this.publishAssistantEntry(this.assistantStream.acceptFrame(change.frame));
2083
+ case "assistant-stream": {
2084
+ const wasStreaming = this.assistantStream.streaming;
2085
+ this.publishAssistantEntry(this.assistantStream.acceptFrame(change.frame));
2086
+ if (wasStreaming !== this.assistantStream.streaming) this.notifier.markDirty();
2087
+ }
2080
2088
  }
2081
2089
  }
2082
2090
  /** Replace the complete contiguous window and apply page-owned projection metadata. */
@@ -2275,7 +2283,7 @@ window.__ModuleLoader__.load({
2275
2283
  return {
2276
2284
  sessionId: this.sessionId,
2277
2285
  pendingSubmissions: this.pendingSubmissions,
2278
- running: this.running,
2286
+ running: this.running || this.openState !== "error" && this.assistantStream.streaming,
2279
2287
  subagent: this.address === void 0 ? null : {
2280
2288
  address: this.address.mode === "unknown" && identity != null ? {
2281
2289
  ...this.address,
@@ -59,6 +59,7 @@ export interface SessionSnapshot {
59
59
  readonly sessionId: SessionId;
60
60
  /** Local prompt-submission echoes not yet observed as durable events or queue occurrences. */
61
61
  readonly pendingSubmissions: readonly PendingSubmission[];
62
+ /** Host Agent activity or an Assistant attempt on a usable follow stream that has not ended. */
62
63
  readonly running: boolean;
63
64
  readonly subagent: {
64
65
  readonly address: SubagentAddress;
@@ -29,6 +29,8 @@ export declare class ClientAssistantStream {
29
29
  private publishedSeqs;
30
30
  private durableCursor;
31
31
  private transientInGap;
32
+ /** Whether the followed Assistant attempt is still awaiting its terminal frame. */
33
+ get streaming(): boolean;
32
34
  /**
33
35
  * Replace the durable Web window and adopt an optional reconnect baseline.
34
36
  * @param entries - durable entries in the replacement window.
@@ -8,6 +8,10 @@ export class ClientAssistantStream {
8
8
  publishedSeqs = new Set();
9
9
  durableCursor = -1;
10
10
  transientInGap = 0;
11
+ /** Whether the followed Assistant attempt is still awaiting its terminal frame. */
12
+ get streaming() {
13
+ return this.activeAttempt !== undefined;
14
+ }
11
15
  /**
12
16
  * Replace the durable Web window and adopt an optional reconnect baseline.
13
17
  * @param entries - durable entries in the replacement window.
@@ -147,7 +147,7 @@ export class Session {
147
147
  */
148
148
  beginSubmission(input) {
149
149
  const requestId = randomUUID();
150
- const placement = this.running ? input.mode === 'steer' ? 'steering' : 'queued' : 'transcript';
150
+ const placement = this.getSnapshot().running ? input.mode === 'steer' ? 'steering' : 'queued' : 'transcript';
151
151
  this.pendingSubmissions = [...this.pendingSubmissions, {
152
152
  requestId,
153
153
  placement,
@@ -573,8 +573,13 @@ export class Session {
573
573
  case 'append':
574
574
  this.publishAssistantEntry(this.assistantStream.acceptDurable(change.entry));
575
575
  return;
576
- case 'assistant-stream':
576
+ case 'assistant-stream': {
577
+ const wasStreaming = this.assistantStream.streaming;
577
578
  this.publishAssistantEntry(this.assistantStream.acceptFrame(change.frame));
579
+ // Start/end frames can change activity without publishing a text entry.
580
+ if (wasStreaming !== this.assistantStream.streaming)
581
+ this.notifier.markDirty();
582
+ }
578
583
  }
579
584
  }
580
585
  /** Replace the complete contiguous window and apply page-owned projection metadata. */
@@ -814,7 +819,9 @@ export class Session {
814
819
  return {
815
820
  sessionId: this.sessionId,
816
821
  pendingSubmissions: this.pendingSubmissions,
817
- running: this.running,
822
+ // Host status and followed Assistant frames arrive independently. Keep
823
+ // the composer busy until the visible attempt receives its end frame.
824
+ running: this.running || (this.openState !== 'error' && this.assistantStream.streaming),
818
825
  subagent: this.address === undefined
819
826
  ? null
820
827
  : {
@@ -546,7 +546,7 @@ const PROFILE_TEMPLATES = {
546
546
  cli: { bundles: [
547
547
  "@deepseek-ai/dsh-base",
548
548
  "@deepseek-harness-tui/dsh-tui",
549
- "dsh-llm-chatcode-config",
549
+ "@chatcode/cco-llm-chatcode-config",
550
550
  "dshmarket",
551
551
  "dsh-computer-use"
552
552
  ] },
@@ -561,16 +561,37 @@ const INSTALLATION_OWNED_PROFILE_TUPLES = {
561
561
  "@deepseek-ai/dsh-web-app",
562
562
  "dshmarket"
563
563
  ]],
564
- cli: [[
565
- "@deepseek-ai/dsh-base",
566
- "@deepseek-harness-tui/dsh-tui",
567
- "dsh-llm-chatcode-config"
568
- ], [
569
- "@deepseek-ai/dsh-base",
570
- "@deepseek-harness-tui/dsh-tui",
571
- "dsh-llm-chatcode-config",
572
- "dshmarket"
573
- ]],
564
+ cli: [
565
+ [
566
+ "@deepseek-ai/dsh-base",
567
+ "@deepseek-harness-tui/dsh-tui",
568
+ "@chatcode/cco-llm-chatcode-config"
569
+ ],
570
+ [
571
+ "@deepseek-ai/dsh-base",
572
+ "@deepseek-harness-tui/dsh-tui",
573
+ "@chatcode/cco-llm-chatcode-config",
574
+ "dshmarket"
575
+ ],
576
+ [
577
+ "@deepseek-ai/dsh-base",
578
+ "@deepseek-harness-tui/dsh-tui",
579
+ "dsh-llm-chatcode-config"
580
+ ],
581
+ [
582
+ "@deepseek-ai/dsh-base",
583
+ "@deepseek-harness-tui/dsh-tui",
584
+ "dsh-llm-chatcode-config",
585
+ "dshmarket"
586
+ ],
587
+ [
588
+ "@deepseek-ai/dsh-base",
589
+ "@deepseek-harness-tui/dsh-tui",
590
+ "dsh-llm-chatcode-config",
591
+ "dshmarket",
592
+ "dsh-computer-use"
593
+ ]
594
+ ],
574
595
  headless: [[
575
596
  "@deepseek-ai/dsh-base",
576
597
  "@deepseek-ai/dsh-web-app",
@@ -3,11 +3,11 @@ import { link, lstat, mkdir, readFile, rename, rm, stat, writeFile } from "node:
3
3
  import { dirname, win32 } from "node:path";
4
4
  import { execFile } from "node:child_process";
5
5
  import { promisify } from "node:util";
6
- import { closeSync, constants, fstatSync, lstatSync, openSync, readFileSync } from "node:fs";
6
+ import { closeSync, constants, fstatSync, lstatSync, openSync, readFileSync, readSync } from "node:fs";
7
7
  import { constants as constants$1 } from "node:os";
8
8
  //#region lib/types/windows-lock.js
9
9
  /** Exclusive Windows inspection for an empty or zero-filled lock left by a failed creator. */
10
- const execute = promisify(execFile);
10
+ const execute$1 = promisify(execFile);
11
11
  /**
12
12
  * Read a small lock only when no other handle has the file open.
13
13
  * @param path - lock path, protected by the caller's takeover claim.
@@ -26,7 +26,7 @@ async function readUnopenedWindowsLock(path) {
26
26
  "} finally { $file.Dispose() }"
27
27
  ].join("\n");
28
28
  try {
29
- const { stdout } = await execute(powershell, [
29
+ const { stdout } = await execute$1(powershell, [
30
30
  "-NoLogo",
31
31
  "-NoProfile",
32
32
  "-NonInteractive",
@@ -111,7 +111,7 @@ async function readClosedLinuxLock(path) {
111
111
  }
112
112
  //#endregion
113
113
  //#region lib/types/linux-lock.js
114
- /** Linux writer identity and complete-record publication; other platforms retain PID records. */
114
+ /** Linux writer identity and complete-record publication on Linux and macOS. */
115
115
  const RECORD = /^(\d+)\r?\n(?:linux ([a-f0-9-]{36}) (\d+) ([a-f0-9]{24})\n)?$/u;
116
116
  let ownIdentity;
117
117
  /** Read kernel identity without treating inaccessible procfs as evidence of an exited writer. */
@@ -142,13 +142,13 @@ async function writerLockRecord() {
142
142
  return current === void 0 ? pid : `${pid}linux ${current} ${randomBytes(12).toString("hex")}\n`;
143
143
  }
144
144
  /**
145
- * Exclusively publish a complete Linux identity record, or create a legacy PID lock.
145
+ * Exclusively publish a complete macOS PID or Linux identity record; other platforms use wx.
146
146
  * @param path - lock sibling in an existing parent directory.
147
147
  * @param record - one acquisition's record from writerLockRecord.
148
148
  */
149
149
  async function createWriterLock(path, record) {
150
150
  const nonce = RECORD.exec(record)?.[4];
151
- if (process.platform !== "linux" || nonce === void 0) {
151
+ if (process.platform !== "darwin" && (process.platform !== "linux" || nonce === void 0)) {
152
152
  await writeFile(path, record, {
153
153
  mode: 384,
154
154
  flag: "wx"
@@ -204,6 +204,52 @@ async function writerExited(record, path) {
204
204
  }
205
205
  }
206
206
  //#endregion
207
+ //#region lib/types/darwin-lock.js
208
+ /** Read-only macOS inspection of incomplete legacy locks through the system lsof. */
209
+ const execute = promisify(execFile);
210
+ /**
211
+ * Read a small regular lock after lsof reports no open handles on its unchanged inode.
212
+ * @param path - existing lock path protected by the caller's takeover claim.
213
+ * @returns the record, or undefined when any handle, warning, or inspection failure remains.
214
+ */
215
+ async function readClosedDarwinLock(path) {
216
+ let fd;
217
+ try {
218
+ const before = lstatSync(path);
219
+ if (!before.isFile() || before.size > 128) return void 0;
220
+ try {
221
+ await execute("/usr/sbin/lsof", [
222
+ "-nP",
223
+ "+w",
224
+ "-F",
225
+ "p",
226
+ "--",
227
+ path
228
+ ], {
229
+ encoding: "utf8",
230
+ timeout: 2e3,
231
+ maxBuffer: 4096,
232
+ env: Object.fromEntries(Object.entries(process.env).filter(([name]) => !/KEY|SECRET|TOKEN|PASSWORD/i.test(name)))
233
+ });
234
+ return;
235
+ } catch (error) {
236
+ if (error === null || typeof error !== "object" || !("code" in error) || error.code !== 1 || !("killed" in error) || error.killed !== false || !("signal" in error) || error.signal !== null || !("stdout" in error) || error.stdout !== "" || !("stderr" in error) || error.stderr !== "") return void 0;
237
+ }
238
+ fd = openSync(path, constants.O_RDONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK);
239
+ const held = fstatSync(fd);
240
+ if (!held.isFile() || held.size > 128 || held.dev !== before.dev || held.ino !== before.ino) return void 0;
241
+ const bytes = Buffer.alloc(129);
242
+ const length = readSync(fd, bytes, 0, bytes.length, 0);
243
+ const current = lstatSync(path);
244
+ if (length > 128 || current.dev !== held.dev || current.ino !== held.ino) return void 0;
245
+ return bytes.toString("utf8", 0, length);
246
+ } catch (error) {
247
+ return;
248
+ } finally {
249
+ if (fd !== void 0) closeSync(fd);
250
+ }
251
+ }
252
+ //#endregion
207
253
  //#region lib/types/index.js
208
254
  /**
209
255
  * Atomic file replacement and writer coordination.
@@ -218,7 +264,8 @@ async function writerExited(record, path) {
218
264
  * recovers empty or zero-filled records after an exclusive read proves no
219
265
  * creator still has the lock file open. Linux uses a read lease to exclude
220
266
  * unfinished writers, and kernel process identity to distinguish a previous
221
- * boot, reused PID, or zombie process.
267
+ * boot, reused PID, or zombie process. macOS inspects legacy damaged records
268
+ * with the system lsof and publishes complete new records by hard link.
222
269
  * @module @deepseek-ai/dsh-atomic-write
223
270
  */
224
271
  const WINDOWS_TRANSIENT_FILE_ERRORS = new Set([
@@ -311,7 +358,7 @@ async function readLockRecord(lockPath) {
311
358
  }
312
359
  }
313
360
  /**
314
- * Remove an exited holder's lock or a closed, damaged Windows or Linux lock. Contenders that read the
361
+ * Remove an exited holder's lock or a closed, damaged Windows, Linux, or macOS lock. Contenders that read the
315
362
  * same record serialize on a claim file named after it. Under the claim, the
316
363
  * claimant re-reads the lock and probes its PID again, and removes it only
317
364
  * when it still holds that record and that PID is still gone. A damaged
@@ -324,7 +371,7 @@ async function readLockRecord(lockPath) {
324
371
  async function takeOverExitedLock(lockPath) {
325
372
  const record = await readLockRecord(lockPath);
326
373
  if (record === void 0) return false;
327
- const damaged = (process.platform === "win32" || process.platform === "linux") && damagedRecord(record, process.platform === "linux" ? 128 : 64);
374
+ const damaged = (process.platform === "win32" || process.platform === "linux" || process.platform === "darwin") && damagedRecord(record, process.platform === "win32" ? 64 : 128);
328
375
  const partialLinuxPid = process.platform === "linux" && /^\d{1,10}$/u.test(record);
329
376
  if (!damaged && !partialLinuxPid && !await holderExited(record, lockPath)) return false;
330
377
  const claim = `${lockPath}.takeover-${createHash("sha256").update(record).digest("hex").slice(0, 16)}`;
@@ -341,7 +388,7 @@ async function takeOverExitedLock(lockPath) {
341
388
  try {
342
389
  if (await readLockRecord(lockPath) !== record) return false;
343
390
  if (damaged || partialLinuxPid) {
344
- if ((process.platform === "win32" ? await readUnopenedWindowsLock(lockPath) : await readClosedLinuxLock(lockPath)) !== record) return false;
391
+ if ((process.platform === "win32" ? await readUnopenedWindowsLock(lockPath) : process.platform === "darwin" ? await readClosedDarwinLock(lockPath) : await readClosedLinuxLock(lockPath)) !== record) return false;
345
392
  } else if (!await holderExited(record, lockPath)) return false;
346
393
  try {
347
394
  await rm(lockPath, { force: true });
@@ -386,7 +433,11 @@ const DEFAULT_LOCK_WAIT_MS = 2e3;
386
433
  * exclusive inspection proves no creator still has the file open. A failed
387
434
  * inspection preserves the lock. Linux also recovers empty or zero-filled
388
435
  * records of at most 128 bytes and unfinished PID records after a read lease
389
- * excludes open writers. Dead takeover claimants are recovered automatically.
436
+ * excludes open writers. macOS recovers empty or zero-filled records up to
437
+ * 128 bytes only after the system lsof reports no open handles on the unchanged
438
+ * inode without warnings. Missing or failed inspection preserves the lock.
439
+ * New macOS records are published complete by exclusive hard link.
440
+ * Dead takeover claimants are recovered automatically.
390
441
  * Windows lock release retries transient file interference for a bounded interval. Contention backs
391
442
  * off exponentially and times out after the deadline. Linux identity records
392
443
  * distinguish PID reuse, a previous boot, and zombies. Legacy PID-only records
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Read a small regular lock after lsof reports no open handles on its unchanged inode.
3
+ * @param path - existing lock path protected by the caller's takeover claim.
4
+ * @returns the record, or undefined when any handle, warning, or inspection failure remains.
5
+ */
6
+ export declare function readClosedDarwinLock(path: string): Promise<string | undefined>;
7
+ //# sourceMappingURL=darwin-lock.d.ts.map
@@ -11,7 +11,8 @@
11
11
  * recovers empty or zero-filled records after an exclusive read proves no
12
12
  * creator still has the lock file open. Linux uses a read lease to exclude
13
13
  * unfinished writers, and kernel process identity to distinguish a previous
14
- * boot, reused PID, or zombie process.
14
+ * boot, reused PID, or zombie process. macOS inspects legacy damaged records
15
+ * with the system lsof and publishes complete new records by hard link.
15
16
  * @module @deepseek-ai/dsh-atomic-write
16
17
  */
17
18
  /**
@@ -76,7 +77,11 @@ export interface FileLockOptions {
76
77
  * exclusive inspection proves no creator still has the file open. A failed
77
78
  * inspection preserves the lock. Linux also recovers empty or zero-filled
78
79
  * records of at most 128 bytes and unfinished PID records after a read lease
79
- * excludes open writers. Dead takeover claimants are recovered automatically.
80
+ * excludes open writers. macOS recovers empty or zero-filled records up to
81
+ * 128 bytes only after the system lsof reports no open handles on the unchanged
82
+ * inode without warnings. Missing or failed inspection preserves the lock.
83
+ * New macOS records are published complete by exclusive hard link.
84
+ * Dead takeover claimants are recovered automatically.
80
85
  * Windows lock release retries transient file interference for a bounded interval. Contention backs
81
86
  * off exponentially and times out after the deadline. Linux identity records
82
87
  * distinguish PID reuse, a previous boot, and zombies. Legacy PID-only records
@@ -4,7 +4,7 @@
4
4
  */
5
5
  export declare function writerLockRecord(): Promise<string>;
6
6
  /**
7
- * Exclusively publish a complete Linux identity record, or create a legacy PID lock.
7
+ * Exclusively publish a complete macOS PID or Linux identity record; other platforms use wx.
8
8
  * @param path - lock sibling in an existing parent directory.
9
9
  * @param record - one acquisition's record from writerLockRecord.
10
10
  */
@@ -1023,8 +1023,8 @@ window.__ModuleLoader__.load({
1023
1023
  /** English dictionary, checked complete against the zh key set. */
1024
1024
  const en = { "language.title": "Language" };
1025
1025
  //#endregion
1026
- //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/deepseek-harness/packages/client/locale/src/client/LanguageRow.module.css.mjs
1027
- const css = ".Pvcrza_row{border-bottom:.5px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:16px 0;display:flex}.Pvcrza_rowText{flex-direction:column;flex:1;gap:4px;min-width:0;padding-right:48px;display:flex}.Pvcrza_title{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}.Pvcrza_selector{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-module-platform);height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.Pvcrza_selector:hover{background:var(--dsw-alias-interactive-bg-hover)}.Pvcrza_chevron{flex:none}";
1026
+ //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/chatcode-cli-harness/packages/client/locale/src/client/LanguageRow.module.css.mjs
1027
+ const css = "._0iSwzW_row{border-bottom:.5px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:16px 0;display:flex}._0iSwzW_rowText{flex-direction:column;flex:1;gap:4px;min-width:0;padding-right:48px;display:flex}._0iSwzW_title{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}._0iSwzW_selector{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-module-platform);height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}._0iSwzW_selector:hover{background:var(--dsw-alias-interactive-bg-hover)}._0iSwzW_chevron{flex:none}";
1028
1028
  const tagId = "@deepseek-ai/dsh-client-locale/LanguageRow.module.css";
1029
1029
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
1030
1030
  const tag = document.createElement("style");
@@ -1034,11 +1034,11 @@ window.__ModuleLoader__.load({
1034
1034
  document.head.appendChild(tag);
1035
1035
  }
1036
1036
  var LanguageRow_module_css_default = {
1037
- "chevron": "Pvcrza_chevron",
1038
- "row": "Pvcrza_row",
1039
- "rowText": "Pvcrza_rowText",
1040
- "selector": "Pvcrza_selector",
1041
- "title": "Pvcrza_title"
1037
+ "chevron": "_0iSwzW_chevron",
1038
+ "row": "_0iSwzW_row",
1039
+ "rowText": "_0iSwzW_rowText",
1040
+ "selector": "_0iSwzW_selector",
1041
+ "title": "_0iSwzW_title"
1042
1042
  };
1043
1043
  //#endregion
1044
1044
  //#region lib/types/client/LanguageRow.js