@dipoleml/dcode-cli 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (447) hide show
  1. package/dist/THIRD-PARTY-NOTICES.md +1081 -12
  2. package/dist/dcode.cjs +59253 -45604
  3. package/dist/packages/browser-use-plugin/README.md +12 -12
  4. package/dist/packages/browser-use-plugin/docs/api.json +1 -1
  5. package/dist/packages/browser-use-plugin/docs/overview.md +5 -4
  6. package/dist/packages/browser-use-plugin/docs/workflow.md +1 -1
  7. package/dist/packages/browser-use-plugin/scripts/build.mjs +1 -0
  8. package/dist/packages/browser-use-plugin/skills/control-browser/SKILL.md +10 -7
  9. package/dist/packages/bundled-skills/skills/dynamic-workflows/SKILL.md +760 -687
  10. package/dist/packages/bundled-skills/skills/dynamic-workflows/examples.md +310 -1
  11. package/dist/packages/bundled-skills/skills/dynamic-workflows/patterns.md +336 -4
  12. package/dist/packages/node-repl-host/.dcode-plugin/plugin.json +1 -1
  13. package/dist/packages/node-repl-host/dist/mcp/server.js +9 -14
  14. package/dist/packages/node-repl-host/scripts/build.mjs +1 -0
  15. package/dist/provider/dcode-builtin.json +6612 -202
  16. package/node_modules/@dcode/contracts/dist/compact/index.d.ts +7 -7
  17. package/node_modules/@dcode/contracts/dist/config/index.d.ts +1 -1
  18. package/node_modules/@dcode/contracts/dist/events/event-reducer.js +1 -0
  19. package/node_modules/@dcode/contracts/dist/events/in-memory-session-event-store.js +3 -2
  20. package/node_modules/@dcode/contracts/dist/events/session-event-retention.d.ts +8 -0
  21. package/node_modules/@dcode/contracts/dist/events/session-event-retention.js +18 -0
  22. package/node_modules/@dcode/contracts/dist/events/session.events.d.ts +94 -16
  23. package/node_modules/@dcode/contracts/dist/events/session.events.js +10 -0
  24. package/node_modules/@dcode/contracts/dist/hooks/index.d.ts +134 -134
  25. package/node_modules/@dcode/contracts/dist/hooks/workspace-hook-trust.d.ts +14 -14
  26. package/node_modules/@dcode/contracts/dist/index.d.ts +2 -0
  27. package/node_modules/@dcode/contracts/dist/index.js +2 -0
  28. package/node_modules/@dcode/contracts/dist/interfaces/browser-control.port.d.ts +22 -0
  29. package/node_modules/@dcode/contracts/dist/interfaces/dynamic-workflow-run-hole.port.d.ts +92 -0
  30. package/node_modules/@dcode/contracts/dist/interfaces/dynamic-workflow-run-hole.port.js +9 -0
  31. package/node_modules/@dcode/contracts/dist/interfaces/dynamic-workflow-run-retune.port.d.ts +4 -4
  32. package/node_modules/@dcode/contracts/dist/interfaces/dynamic-workflow-run-retune.port.js +7 -3
  33. package/node_modules/@dcode/contracts/dist/interfaces/dynamic-workflow-run-workspace.port.js +8 -3
  34. package/node_modules/@dcode/contracts/dist/interfaces/dynamic-workflow-run.port.d.ts +119 -18
  35. package/node_modules/@dcode/contracts/dist/interfaces/dynamic-workflow-run.port.js +13 -0
  36. package/node_modules/@dcode/contracts/dist/interfaces/index.d.ts +1 -0
  37. package/node_modules/@dcode/contracts/dist/interfaces/index.js +1 -0
  38. package/node_modules/@dcode/contracts/dist/interfaces/mcp.port.d.ts +161 -1
  39. package/node_modules/@dcode/contracts/dist/interfaces/mcp.port.js +17 -0
  40. package/node_modules/@dcode/contracts/dist/interfaces/permission-full-access.d.ts +15 -15
  41. package/node_modules/@dcode/contracts/dist/interfaces/permission-full-access.js +1 -1
  42. package/node_modules/@dcode/contracts/dist/interfaces/permission.port.d.ts +15 -1
  43. package/node_modules/@dcode/contracts/dist/interfaces/provider-endpoint-routing.port.d.ts +19 -0
  44. package/node_modules/@dcode/contracts/dist/interfaces/provider-endpoint-routing.port.js +1 -0
  45. package/node_modules/@dcode/contracts/dist/interfaces/session-store.port.d.ts +4 -2
  46. package/node_modules/@dcode/contracts/dist/interfaces/session-store.port.js +5 -0
  47. package/node_modules/@dcode/contracts/dist/interfaces/session.port.d.ts +92 -3
  48. package/node_modules/@dcode/contracts/dist/interfaces/session.port.js +4 -1
  49. package/node_modules/@dcode/contracts/dist/interfaces/topic-resource.port.d.ts +25 -0
  50. package/node_modules/@dcode/contracts/dist/interfaces/topic-resource.port.js +1 -0
  51. package/node_modules/@dcode/contracts/dist/model/index.d.ts +15 -1
  52. package/node_modules/@dcode/contracts/dist/model/index.js +5 -0
  53. package/node_modules/@dcode/contracts/dist/model/invocation-context.d.ts +6 -1
  54. package/node_modules/@dcode/contracts/dist/plugins/index.d.ts +23 -0
  55. package/node_modules/@dcode/contracts/dist/plugins/index.js +2 -1
  56. package/node_modules/@dcode/contracts/dist/telemetry/agent-execution.d.ts +2 -0
  57. package/node_modules/@dcode/contracts/dist/telemetry/agent-execution.js +2 -0
  58. package/node_modules/@dcode/contracts/dist/telemetry/index.d.ts +5 -1
  59. package/node_modules/@dcode/contracts/dist/telemetry/index.js +12 -0
  60. package/node_modules/@dcode/contracts/dist/tools/agent.d.ts +12 -12
  61. package/node_modules/@dcode/contracts/dist/tools/amend-workflow.d.ts +39 -15
  62. package/node_modules/@dcode/contracts/dist/tools/amend-workflow.js +12 -6
  63. package/node_modules/@dcode/contracts/dist/tools/automation.d.ts +32 -32
  64. package/node_modules/@dcode/contracts/dist/tools/automation.js +1 -1
  65. package/node_modules/@dcode/contracts/dist/tools/bash.d.ts +16 -16
  66. package/node_modules/@dcode/contracts/dist/tools/bash.js +1 -1
  67. package/node_modules/@dcode/contracts/dist/tools/create-workflow.d.ts +365 -66
  68. package/node_modules/@dcode/contracts/dist/tools/create-workflow.js +92 -11
  69. package/node_modules/@dcode/contracts/dist/tools/edit.d.ts +16 -16
  70. package/node_modules/@dcode/contracts/dist/tools/eval-workflow-snippet.d.ts +6 -6
  71. package/node_modules/@dcode/contracts/dist/tools/eval-workflow-snippet.js +5 -1
  72. package/node_modules/@dcode/contracts/dist/tools/fill-workflow-hole.d.ts +729 -0
  73. package/node_modules/@dcode/contracts/dist/tools/fill-workflow-hole.js +102 -0
  74. package/node_modules/@dcode/contracts/dist/tools/get-workflow-run.d.ts +136 -28
  75. package/node_modules/@dcode/contracts/dist/tools/get-workflow-run.js +36 -0
  76. package/node_modules/@dcode/contracts/dist/tools/grep.d.ts +4 -4
  77. package/node_modules/@dcode/contracts/dist/tools/grep.js +4 -0
  78. package/node_modules/@dcode/contracts/dist/tools/index.d.ts +2 -0
  79. package/node_modules/@dcode/contracts/dist/tools/index.js +4 -0
  80. package/node_modules/@dcode/contracts/dist/tools/list-saved-workflows.d.ts +8 -8
  81. package/node_modules/@dcode/contracts/dist/tools/list-workflow-runs.d.ts +8 -8
  82. package/node_modules/@dcode/contracts/dist/tools/node-repl.d.ts +2 -2
  83. package/node_modules/@dcode/contracts/dist/tools/off-peak.d.ts +3 -3
  84. package/node_modules/@dcode/contracts/dist/tools/off-peak.js +2 -2
  85. package/node_modules/@dcode/contracts/dist/tools/performance.d.ts +22 -22
  86. package/node_modules/@dcode/contracts/dist/tools/plan-mode.d.ts +12 -12
  87. package/node_modules/@dcode/contracts/dist/tools/plan-mode.js +6 -4
  88. package/node_modules/@dcode/contracts/dist/tools/read-session-context.d.ts +86 -13
  89. package/node_modules/@dcode/contracts/dist/tools/read-session-context.js +37 -6
  90. package/node_modules/@dcode/contracts/dist/tools/read.d.ts +38 -38
  91. package/node_modules/@dcode/contracts/dist/tools/save-workflow.d.ts +21 -10
  92. package/node_modules/@dcode/contracts/dist/tools/save-workflow.js +22 -2
  93. package/node_modules/@dcode/contracts/dist/tools/saved-workflow.d.ts +4 -4
  94. package/node_modules/@dcode/contracts/dist/tools/send-message.d.ts +2 -2
  95. package/node_modules/@dcode/contracts/dist/tools/skill.js +1 -0
  96. package/node_modules/@dcode/contracts/dist/tools/task-output.d.ts +6 -6
  97. package/node_modules/@dcode/contracts/dist/tools/tool-result-metadata.d.ts +1228 -259
  98. package/node_modules/@dcode/contracts/dist/tools/tool-result-metadata.js +41 -0
  99. package/node_modules/@dcode/contracts/dist/tools/webfetch.d.ts +2 -2
  100. package/node_modules/@dcode/contracts/dist/tools/workflow-observation-display.d.ts +20 -20
  101. package/node_modules/@dcode/contracts/dist/tools/workflow-settings.d.ts +55 -0
  102. package/node_modules/@dcode/contracts/dist/tools/workflow-settings.js +86 -0
  103. package/node_modules/@dcode/contracts/dist/tools/workflow.d.ts +8 -8
  104. package/node_modules/@dcode/contracts/dist/tools/write.d.ts +18 -18
  105. package/node_modules/@dcode/contracts/dist/workflow/index.d.ts +98 -98
  106. package/node_modules/@dcode/contracts/dist/workflow/script.d.ts +12 -12
  107. package/node_modules/@dcode/i18n/dist/index.js +2 -2
  108. package/node_modules/@dcode/i18n/dist/locale.d.ts +1 -1
  109. package/node_modules/@dcode/i18n/dist/locale.js +4 -4
  110. package/node_modules/@dcode/i18n/dist/locales/en-US.js +5 -5
  111. package/node_modules/@dcode/i18n/dist/locales/fr-CA.d.ts +3 -0
  112. package/node_modules/@dcode/i18n/dist/locales/fr-CA.js +354 -0
  113. package/node_modules/@dcode/model-option-map/package.json +1 -1
  114. package/node_modules/@dcode/shared/dist/api-key-usage-scene.d.ts +7 -0
  115. package/node_modules/@dcode/shared/dist/api-key-usage-scene.js +6 -0
  116. package/node_modules/@dcode/shared/dist/attachment-source.d.ts +8 -0
  117. package/node_modules/@dcode/shared/dist/attachment-source.js +4 -0
  118. package/node_modules/@dcode/shared/dist/background-bash-output.d.ts +4 -4
  119. package/node_modules/@dcode/shared/dist/bots.d.ts +763 -15
  120. package/node_modules/@dcode/shared/dist/bots.js +236 -2
  121. package/node_modules/@dcode/shared/dist/browser-use/command-metadata.d.ts +2 -2
  122. package/node_modules/@dcode/shared/dist/browser-use/commands.d.ts +4 -3
  123. package/node_modules/@dcode/shared/dist/browser-use/commands.js +3 -1
  124. package/node_modules/@dcode/shared/dist/browser-use/nodeReplBroker.d.ts +5 -4
  125. package/node_modules/@dcode/shared/dist/browser-use/result.d.ts +6 -6
  126. package/node_modules/@dcode/shared/dist/channel-mention.d.ts +173 -0
  127. package/node_modules/@dcode/shared/dist/channel-mention.js +120 -0
  128. package/node_modules/@dcode/shared/dist/channels.d.ts +128 -1
  129. package/node_modules/@dcode/shared/dist/channels.js +66 -0
  130. package/node_modules/@dcode/shared/dist/clientConfig.d.ts +1 -0
  131. package/node_modules/@dcode/shared/dist/clientConfig.js +18 -2
  132. package/node_modules/@dcode/shared/dist/cloudContent.d.ts +160 -0
  133. package/node_modules/@dcode/shared/dist/cloudContent.js +116 -0
  134. package/node_modules/@dcode/shared/dist/coding-plan-subscription.d.ts +59 -0
  135. package/node_modules/@dcode/shared/dist/conversation-message-projection-policy.js +2 -0
  136. package/node_modules/@dcode/shared/dist/conversation-share.d.ts +351 -47
  137. package/node_modules/@dcode/shared/dist/conversation-share.js +8 -6
  138. package/node_modules/@dcode/shared/dist/conversationSelection.d.ts +23 -0
  139. package/node_modules/@dcode/shared/dist/conversationSelection.js +30 -0
  140. package/node_modules/@dcode/shared/dist/database-startup.d.ts +5 -5
  141. package/node_modules/@dcode/shared/dist/dcode-agent-model-state.js +14 -6
  142. package/node_modules/@dcode/shared/dist/dcode-agent-policy.d.ts +16 -1
  143. package/node_modules/@dcode/shared/dist/dcode-agent-policy.js +17 -1
  144. package/node_modules/@dcode/shared/dist/dcode-agent-runtime.js +1 -1
  145. package/node_modules/@dcode/shared/dist/dcode-protocol/index.d.ts +1733 -318
  146. package/node_modules/@dcode/shared/dist/dcode-protocol/index.js +555 -24
  147. package/node_modules/@dcode/shared/dist/dcode-protocol/trace.d.ts +9 -0
  148. package/node_modules/@dcode/shared/dist/dcode-protocol/trace.js +10 -0
  149. package/node_modules/@dcode/shared/dist/dcode-protocol-legacy-types.d.ts +30 -20
  150. package/node_modules/@dcode/shared/dist/dcode-protocol-legacy-types.js +3 -1
  151. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/apply.js +12 -3
  152. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/attachment-ref.d.ts +5 -0
  153. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/attachment-ref.js +3 -0
  154. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/coalesce.d.ts +3 -1
  155. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/coalesce.js +3 -1
  156. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/command.d.ts +359 -28
  157. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/command.js +67 -45
  158. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/controller.d.ts +170 -65
  159. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/create-session-config.d.ts +20 -0
  160. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/create-session-config.js +15 -0
  161. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/create-workflow-display.d.ts +34 -0
  162. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/create-workflow-display.js +45 -1
  163. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/delta.d.ts +1453 -278
  164. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/delta.js +45 -2
  165. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/index.d.ts +1 -0
  166. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/index.js +1 -0
  167. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/input-intent.d.ts +173 -6
  168. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/input-intent.js +29 -0
  169. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/rows.d.ts +731 -125
  170. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/rows.js +23 -11
  171. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/sessions-index-workflow-activity.d.ts +30 -11
  172. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/sessions-index-workflow-activity.js +35 -3
  173. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/sessions-index.d.ts +40 -25
  174. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/snapshot.d.ts +1444 -216
  175. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/snapshot.js +3 -0
  176. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/submission.d.ts +1 -0
  177. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/submission.js +1 -1
  178. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/telemetry.d.ts +62 -58
  179. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/toolDisplay.d.ts +185 -50
  180. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/toolDisplay.js +31 -3
  181. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/transport.d.ts +7145 -1002
  182. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/transport.js +18 -5
  183. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/wire-assembler.js +2 -1
  184. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/wire-fault.js +4 -1
  185. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/wire-reassembly.js +5 -3
  186. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-artifacts.d.ts +29 -1
  187. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-artifacts.js +64 -4
  188. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-command-rejections.d.ts +13 -0
  189. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-command-rejections.js +23 -0
  190. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-observation-display.d.ts +14 -14
  191. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-row-meta.d.ts +52 -8
  192. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-row-meta.js +22 -3
  193. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-run-settings-command.d.ts +4 -4
  194. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-run-settings-command.js +2 -2
  195. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-actor-session.d.ts +21 -0
  196. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-actor-session.js +44 -0
  197. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-actor-status.d.ts +1 -1
  198. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-actor-status.js +3 -2
  199. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-caps.js +5 -4
  200. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-concurrency.d.ts +26 -19
  201. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-concurrency.js +40 -32
  202. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-delta.d.ts +4 -3
  203. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-delta.js +4 -3
  204. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-entries.d.ts +12 -2
  205. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-entries.js +44 -6
  206. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-eviction.d.ts +2 -2
  207. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-eviction.js +17 -10
  208. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-holes.d.ts +33 -0
  209. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-holes.js +202 -0
  210. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-legacy.d.ts +1 -1
  211. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-legacy.js +1 -1
  212. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-phases.js +10 -1
  213. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-reducer.d.ts +1 -1
  214. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-reducer.js +29 -22
  215. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-started.js +5 -2
  216. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-tables.js +2 -1
  217. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs-unlisted.js +6 -3
  218. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs.d.ts +125 -40
  219. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-runs.js +101 -26
  220. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workflow-workspace.d.ts +4 -4
  221. package/node_modules/@dcode/shared/dist/dcode-protocol-v4/workspace-hook-review.d.ts +1 -1
  222. package/node_modules/@dcode/shared/dist/dcode-session-content-profile.d.ts +5 -0
  223. package/node_modules/@dcode/shared/dist/dcode-session-content-profile.js +49 -0
  224. package/node_modules/@dcode/shared/dist/dcode-slash-command-help.js +4 -4
  225. package/node_modules/@dcode/shared/dist/dcode-task-mode-schema.d.ts +6 -1
  226. package/node_modules/@dcode/shared/dist/dcode-task-mode-schema.js +13 -1
  227. package/node_modules/@dcode/shared/dist/dcode-task-types-core.d.ts +12 -2
  228. package/node_modules/@dcode/shared/dist/dcode-task-types.d.ts +23 -0
  229. package/node_modules/@dcode/shared/dist/dcodeEndpoint.d.ts +20 -1
  230. package/node_modules/@dcode/shared/dist/dcodeEndpoint.js +98 -17
  231. package/node_modules/@dcode/shared/dist/desktopMenu.js +48 -48
  232. package/node_modules/@dcode/shared/dist/dynamic-workflow-feature.d.ts +35 -6
  233. package/node_modules/@dcode/shared/dist/dynamic-workflow-feature.js +45 -6
  234. package/node_modules/@dcode/shared/dist/env.d.ts +5 -4
  235. package/node_modules/@dcode/shared/dist/env.js +9 -9
  236. package/node_modules/@dcode/shared/dist/errors.d.ts +24 -0
  237. package/node_modules/@dcode/shared/dist/errors.js +54 -0
  238. package/node_modules/@dcode/shared/dist/execution-state.d.ts +4 -2
  239. package/node_modules/@dcode/shared/dist/execution-state.js +1 -1
  240. package/node_modules/@dcode/shared/dist/feedback.d.ts +1 -1
  241. package/node_modules/@dcode/shared/dist/gen-ui/contract.d.ts +140 -0
  242. package/node_modules/@dcode/shared/dist/gen-ui/contract.example.d.ts +5 -0
  243. package/node_modules/@dcode/shared/dist/gen-ui/contract.example.js +36 -0
  244. package/node_modules/@dcode/shared/dist/gen-ui/contract.js +196 -0
  245. package/node_modules/@dcode/shared/dist/gen-ui/contract.test.d.ts +2 -0
  246. package/node_modules/@dcode/shared/dist/gen-ui/contract.test.js +75 -0
  247. package/node_modules/@dcode/shared/dist/gen-ui/index.d.ts +2 -0
  248. package/node_modules/@dcode/shared/dist/gen-ui/index.js +2 -0
  249. package/node_modules/@dcode/shared/dist/gen-ui/module.d.ts +7 -0
  250. package/node_modules/@dcode/shared/dist/gen-ui/module.js +7 -0
  251. package/node_modules/@dcode/shared/dist/gen-ui/tweakProtocol.d.ts +202 -0
  252. package/node_modules/@dcode/shared/dist/gen-ui/tweakProtocol.js +126 -0
  253. package/node_modules/@dcode/shared/dist/helpAppConfig.d.ts +1 -1
  254. package/node_modules/@dcode/shared/dist/helpAppConfig.js +2 -2
  255. package/node_modules/@dcode/shared/dist/highspeed.d.ts +181 -0
  256. package/node_modules/@dcode/shared/dist/highspeed.js +112 -0
  257. package/node_modules/@dcode/shared/dist/index.d.ts +27 -5
  258. package/node_modules/@dcode/shared/dist/index.js +24 -2
  259. package/node_modules/@dcode/shared/dist/localTtft.d.ts +27 -27
  260. package/node_modules/@dcode/shared/dist/marketingTouch.d.ts +930 -0
  261. package/node_modules/@dcode/shared/dist/marketingTouch.js +170 -0
  262. package/node_modules/@dcode/shared/dist/mcp-apps/appTools.d.ts +83 -0
  263. package/node_modules/@dcode/shared/dist/mcp-apps/appTools.js +124 -0
  264. package/node_modules/@dcode/shared/dist/mcp-apps/content.d.ts +4 -0
  265. package/node_modules/@dcode/shared/dist/mcp-apps/content.js +8 -0
  266. package/node_modules/@dcode/shared/dist/mcp-apps/contract.d.ts +241 -0
  267. package/node_modules/@dcode/shared/dist/mcp-apps/contract.example.d.ts +31 -0
  268. package/node_modules/@dcode/shared/dist/mcp-apps/contract.example.js +42 -0
  269. package/node_modules/@dcode/shared/dist/mcp-apps/contract.js +101 -0
  270. package/node_modules/@dcode/shared/dist/mcp-apps/contract.test.d.ts +2 -0
  271. package/node_modules/@dcode/shared/dist/mcp-apps/contract.test.js +64 -0
  272. package/node_modules/@dcode/shared/dist/mcp-apps/hostContract.d.ts +47 -0
  273. package/node_modules/@dcode/shared/dist/mcp-apps/hostContract.js +8 -0
  274. package/node_modules/@dcode/shared/dist/mcp-apps/index.d.ts +9 -0
  275. package/node_modules/@dcode/shared/dist/mcp-apps/index.js +9 -0
  276. package/node_modules/@dcode/shared/dist/mcp-apps/instance.d.ts +10 -0
  277. package/node_modules/@dcode/shared/dist/mcp-apps/instance.js +11 -0
  278. package/node_modules/@dcode/shared/dist/mcp-apps/module.d.ts +12 -0
  279. package/node_modules/@dcode/shared/dist/mcp-apps/module.js +12 -0
  280. package/node_modules/@dcode/shared/dist/mcp-apps/resourceMime.d.ts +8 -0
  281. package/node_modules/@dcode/shared/dist/mcp-apps/resourceMime.js +73 -0
  282. package/node_modules/@dcode/shared/dist/mcp-apps/sampling.d.ts +101 -0
  283. package/node_modules/@dcode/shared/dist/mcp-apps/sampling.js +107 -0
  284. package/node_modules/@dcode/shared/dist/mcp-apps/sampling.test.d.ts +2 -0
  285. package/node_modules/@dcode/shared/dist/mcp-apps/sampling.test.js +55 -0
  286. package/node_modules/@dcode/shared/dist/mcp-apps/schemas.d.ts +78 -0
  287. package/node_modules/@dcode/shared/dist/mcp-apps/schemas.js +65 -0
  288. package/node_modules/@dcode/shared/dist/mcp-apps/toolMeta.d.ts +39 -0
  289. package/node_modules/@dcode/shared/dist/mcp-apps/toolMeta.js +199 -0
  290. package/node_modules/@dcode/shared/dist/mcp.d.ts +6 -2
  291. package/node_modules/@dcode/shared/dist/memory.d.ts +9 -0
  292. package/node_modules/@dcode/shared/dist/memory.js +2 -0
  293. package/node_modules/@dcode/shared/dist/model-execution.d.ts +31 -0
  294. package/node_modules/@dcode/shared/dist/model-execution.js +38 -0
  295. package/node_modules/@dcode/shared/dist/networkCapture.d.ts +49 -0
  296. package/node_modules/@dcode/shared/dist/networkCapture.js +41 -0
  297. package/node_modules/@dcode/shared/dist/node/genUiPaths.d.ts +6 -0
  298. package/node_modules/@dcode/shared/dist/node/genUiPaths.js +16 -0
  299. package/node_modules/@dcode/shared/dist/node/genUiPaths.test.d.ts +2 -0
  300. package/node_modules/@dcode/shared/dist/node/genUiPaths.test.js +30 -0
  301. package/node_modules/@dcode/shared/dist/node/networkCapture.d.ts +8 -0
  302. package/node_modules/@dcode/shared/dist/node/networkCapture.js +96 -0
  303. package/node_modules/@dcode/shared/dist/node/officialPluginCache.d.ts +1 -2
  304. package/node_modules/@dcode/shared/dist/node/subagentMarkdownMigration.d.ts +1 -2
  305. package/node_modules/@dcode/shared/dist/node.d.ts +2 -0
  306. package/node_modules/@dcode/shared/dist/node.js +2 -0
  307. package/node_modules/@dcode/shared/dist/output-style.d.ts +17 -0
  308. package/node_modules/@dcode/shared/dist/output-style.js +2 -0
  309. package/node_modules/@dcode/shared/dist/platform.d.ts +149 -1
  310. package/node_modules/@dcode/shared/dist/platform.js +2 -0
  311. package/node_modules/@dcode/shared/dist/platformUpdate.d.ts +61 -0
  312. package/node_modules/@dcode/shared/dist/platformUpdate.js +2 -0
  313. package/node_modules/@dcode/shared/dist/plugin-marketplaces.d.ts +5 -0
  314. package/node_modules/@dcode/shared/dist/plugin-marketplaces.js +20 -14
  315. package/node_modules/@dcode/shared/dist/project-access-token-client.d.ts +42 -0
  316. package/node_modules/@dcode/shared/dist/project-access-token-client.js +260 -0
  317. package/node_modules/@dcode/shared/dist/project-access-token-response.d.ts +4 -0
  318. package/node_modules/@dcode/shared/dist/project-access-token-response.js +9 -0
  319. package/node_modules/@dcode/shared/dist/project-access-token.d.ts +45 -0
  320. package/node_modules/@dcode/shared/dist/project-access-token.js +164 -0
  321. package/node_modules/@dcode/shared/dist/protocol.d.ts +41 -4
  322. package/node_modules/@dcode/shared/dist/protocol.js +1 -1
  323. package/node_modules/@dcode/shared/dist/provider-provisioning.d.ts +26 -2
  324. package/node_modules/@dcode/shared/dist/provider-provisioning.js +19 -3
  325. package/node_modules/@dcode/shared/dist/providers.d.ts +1 -2
  326. package/node_modules/@dcode/shared/dist/providers.js +1 -1
  327. package/node_modules/@dcode/shared/dist/remote-workspace-identity.d.ts +6 -1
  328. package/node_modules/@dcode/shared/dist/remote-workspace-identity.js +35 -1
  329. package/node_modules/@dcode/shared/dist/remoteAppConfig.js +1 -1
  330. package/node_modules/@dcode/shared/dist/remoteEnvironmentKey.js +19 -0
  331. package/node_modules/@dcode/shared/dist/remoteTarget.d.ts +14 -1
  332. package/node_modules/@dcode/shared/dist/remoteTarget.js +4 -0
  333. package/node_modules/@dcode/shared/dist/remoteUsageTelemetry.d.ts +27 -0
  334. package/node_modules/@dcode/shared/dist/remoteUsageTelemetry.js +43 -0
  335. package/node_modules/@dcode/shared/dist/rendererActionTrace.d.ts +35 -35
  336. package/node_modules/@dcode/shared/dist/request-security-edition/index.d.ts +3 -0
  337. package/node_modules/@dcode/shared/dist/request-security-edition/index.js +3 -0
  338. package/node_modules/@dcode/shared/dist/request-security-edition/policy.d.ts +3 -0
  339. package/node_modules/@dcode/shared/dist/request-security-edition/policy.js +5 -0
  340. package/node_modules/@dcode/shared/dist/request-security-edition/verification-policy.d.ts +19 -0
  341. package/node_modules/@dcode/shared/dist/request-security-edition/verification-policy.js +29 -0
  342. package/node_modules/@dcode/shared/dist/rewardsBridge.d.ts +8 -0
  343. package/node_modules/@dcode/shared/dist/rewardsBridge.js +80 -0
  344. package/node_modules/@dcode/shared/dist/rewardsEmbedded.d.ts +37 -0
  345. package/node_modules/@dcode/shared/dist/rewardsEmbedded.js +50 -0
  346. package/node_modules/@dcode/shared/dist/sessionCreateTelemetry.d.ts +3 -3
  347. package/node_modules/@dcode/shared/dist/subagent-profile-frontmatter.d.ts +10 -0
  348. package/node_modules/@dcode/shared/dist/subagent-profile-frontmatter.js +212 -0
  349. package/node_modules/@dcode/shared/dist/subagent-profile-parser.d.ts +10 -0
  350. package/node_modules/@dcode/shared/dist/subagent-profile-parser.js +200 -0
  351. package/node_modules/@dcode/shared/dist/subagent-profile.d.ts +82 -0
  352. package/node_modules/@dcode/shared/dist/subagent-profile.js +28 -0
  353. package/node_modules/@dcode/shared/dist/subagent-runtime-config.d.ts +135 -0
  354. package/node_modules/@dcode/shared/dist/subagent-runtime-config.js +39 -0
  355. package/node_modules/@dcode/shared/dist/subagents-types.d.ts +1 -1
  356. package/node_modules/@dcode/shared/dist/task-realtime-core.d.ts +57 -24
  357. package/node_modules/@dcode/shared/dist/task-realtime-core.js +8 -2
  358. package/node_modules/@dcode/shared/dist/test-ids-workflow.d.ts +4 -0
  359. package/node_modules/@dcode/shared/dist/test-ids-workflow.js +5 -0
  360. package/node_modules/@dcode/shared/dist/test-ids.d.ts +25 -0
  361. package/node_modules/@dcode/shared/dist/test-ids.js +25 -0
  362. package/node_modules/@dcode/shared/dist/tool-identity.d.ts +1 -1
  363. package/node_modules/@dcode/shared/dist/tool-identity.js +4 -0
  364. package/node_modules/@dcode/shared/dist/tool-plan-adapter.js +14 -1
  365. package/node_modules/@dcode/shared/dist/usage-stats.d.ts +13 -0
  366. package/node_modules/@dcode/shared/dist/validation.d.ts +1461 -85
  367. package/node_modules/@dcode/shared/dist/validation.js +423 -14
  368. package/node_modules/@dcode/shared/dist/validationAppSettings.d.ts +71 -15
  369. package/node_modules/@dcode/shared/dist/validationAppSettings.js +74 -12
  370. package/node_modules/@dcode/shared/dist/web-remote-control-heartbeat.d.ts +8 -0
  371. package/node_modules/@dcode/shared/dist/web-remote-control-heartbeat.js +40 -0
  372. package/node_modules/@dcode/shared/dist/web-remote-control-rpc-transport.d.ts +183 -0
  373. package/node_modules/@dcode/shared/dist/web-remote-control-rpc-transport.js +562 -0
  374. package/node_modules/@dcode/shared/dist/web-remote-control.d.ts +645 -0
  375. package/node_modules/@dcode/shared/dist/web-remote-control.js +174 -0
  376. package/node_modules/@dcode/shared/package.json +5 -2
  377. package/node_modules/@dcode/tui/dist/app-approval-panel.js +3 -2
  378. package/node_modules/@dcode/tui/dist/app-approval.d.ts +3 -1
  379. package/node_modules/@dcode/tui/dist/app-approval.js +9 -5
  380. package/node_modules/@dcode/tui/dist/app-compact-timeline.d.ts +3 -0
  381. package/node_modules/@dcode/tui/dist/app-compact-timeline.js +5 -2
  382. package/node_modules/@dcode/tui/dist/app-empty-transcript.d.ts +1 -0
  383. package/node_modules/@dcode/tui/dist/app-empty-transcript.js +1 -1
  384. package/node_modules/@dcode/tui/dist/app-file-mentions.d.ts +2 -0
  385. package/node_modules/@dcode/tui/dist/app-file-mentions.js +2 -2
  386. package/node_modules/@dcode/tui/dist/app-input-pane.d.ts +38 -0
  387. package/node_modules/@dcode/tui/dist/app-input-pane.js +19 -19
  388. package/node_modules/@dcode/tui/dist/app-input-status.d.ts +17 -0
  389. package/node_modules/@dcode/tui/dist/app-input-status.js +4 -4
  390. package/node_modules/@dcode/tui/dist/app-input.d.ts +1 -0
  391. package/node_modules/@dcode/tui/dist/app-input.js +1 -1
  392. package/node_modules/@dcode/tui/dist/app-markdown-theme.d.ts +2 -1
  393. package/node_modules/@dcode/tui/dist/app-markdown-theme.js +1 -1
  394. package/node_modules/@dcode/tui/dist/app-markdown.d.ts +1 -0
  395. package/node_modules/@dcode/tui/dist/app-markdown.js +1 -1
  396. package/node_modules/@dcode/tui/dist/app-mode-command.d.ts +3 -0
  397. package/node_modules/@dcode/tui/dist/app-mode-command.js +4 -4
  398. package/node_modules/@dcode/tui/dist/app-mode-suggestion-panel.d.ts +5 -0
  399. package/node_modules/@dcode/tui/dist/app-mode-suggestion-panel.js +1 -1
  400. package/node_modules/@dcode/tui/dist/app-mode.d.ts +1 -1
  401. package/node_modules/@dcode/tui/dist/app-mode.js +1 -1
  402. package/node_modules/@dcode/tui/dist/app-model-ref.d.ts +1 -0
  403. package/node_modules/@dcode/tui/dist/app-model-ref.js +1 -1
  404. package/node_modules/@dcode/tui/dist/app-motion.d.ts +13 -0
  405. package/node_modules/@dcode/tui/dist/app-motion.js +17 -7
  406. package/node_modules/@dcode/tui/dist/app-session-event-handler.d.ts +33 -0
  407. package/node_modules/@dcode/tui/dist/app-session-event-handler.js +4 -4
  408. package/node_modules/@dcode/tui/dist/app-shiki-diff-view.d.ts +18 -1
  409. package/node_modules/@dcode/tui/dist/app-shiki-diff-view.js +3 -3
  410. package/node_modules/@dcode/tui/dist/app-shiki-highlighter.d.ts +3 -0
  411. package/node_modules/@dcode/tui/dist/app-shiki-highlighter.js +7 -2
  412. package/node_modules/@dcode/tui/dist/app-sidebar-layout.d.ts +10 -0
  413. package/node_modules/@dcode/tui/dist/app-sidebar-layout.js +4 -4
  414. package/node_modules/@dcode/tui/dist/app-submit.d.ts +1 -0
  415. package/node_modules/@dcode/tui/dist/app-submit.js +1 -1
  416. package/node_modules/@dcode/tui/dist/app-thought-components.d.ts +7 -0
  417. package/node_modules/@dcode/tui/dist/app-thought-components.js +2 -2
  418. package/node_modules/@dcode/tui/dist/app-tool-transcript.d.ts +1 -0
  419. package/node_modules/@dcode/tui/dist/app-tool-transcript.js +3 -0
  420. package/node_modules/@dcode/tui/dist/app-view.d.ts +27 -0
  421. package/node_modules/@dcode/tui/dist/app-view.js +1 -1
  422. package/node_modules/@dcode/tui/dist/app-workflow-card.js +1 -1
  423. package/node_modules/@dcode/tui/dist/app-workflow-seed.d.ts +18 -1
  424. package/node_modules/@dcode/tui/dist/app-workflow-seed.js +4 -4
  425. package/node_modules/@dcode/tui/dist/index.js +5118 -2579
  426. package/node_modules/@dcode/tui/dist/tui.d.ts +3 -0
  427. package/node_modules/@dcode/tui/dist/tui.js +1 -1
  428. package/node_modules/@dcode/tui/dist/types.d.ts +1 -1
  429. package/node_modules/oniguruma-parser/LICENSE +1 -1
  430. package/node_modules/oniguruma-parser/README.md +15 -61
  431. package/node_modules/oniguruma-parser/dist/oniguruma-parser.min.js +4 -4
  432. package/node_modules/oniguruma-parser/dist/parser/parse.js +1 -1
  433. package/node_modules/oniguruma-parser/dist/traverser/traverse.js +1 -1
  434. package/node_modules/oniguruma-parser/package.json +5 -5
  435. package/node_modules/oniguruma-to-es/dist/cjs/generate.d.ts +1 -1
  436. package/node_modules/oniguruma-to-es/dist/cjs/index.js +121 -120
  437. package/node_modules/oniguruma-to-es/dist/cjs/subclass.d.ts +2 -2
  438. package/node_modules/oniguruma-to-es/dist/cjs/transform.d.ts +3 -5
  439. package/node_modules/oniguruma-to-es/dist/cjs/unicode.d.ts +1 -1
  440. package/node_modules/oniguruma-to-es/dist/esm/generate.d.ts +1 -1
  441. package/node_modules/oniguruma-to-es/dist/esm/index.js +1 -3
  442. package/node_modules/oniguruma-to-es/dist/esm/subclass.d.ts +2 -2
  443. package/node_modules/oniguruma-to-es/dist/esm/transform.d.ts +3 -5
  444. package/node_modules/oniguruma-to-es/dist/esm/unicode.d.ts +1 -1
  445. package/node_modules/oniguruma-to-es/dist/index.min.js +6 -6
  446. package/node_modules/oniguruma-to-es/package.json +5 -5
  447. package/package.json +5 -5
@@ -28,21 +28,60 @@ export function normalizeDynamicWorkflowMode(value) {
28
28
  : undefined;
29
29
  }
30
30
  /**
31
- * 解析保留服务端契约的三态,消费侧统一转换为布尔开关。
32
- * 将来 onDemand 有独立行为时,只需调整消费侧。
31
+ * 「功能是否提供」的折叠:`onDemand` 与 `alwaysOn` 同为开启——目录里的 `/workflow`、技能、
32
+ * 自动化页的工作流 tab 与 Resume 入口在两种模式下都在。两者的差别只在模型工具面的注册时机
33
+ * (launch.md「On demand: activation」),由 CLI 侧按 mode 本身裁决,这里不参与。
33
34
  */
34
35
  export function isDynamicWorkflowModeEnabled(mode) {
35
36
  return mode !== "disabled";
36
37
  }
37
- export function createDynamicWorkflowClientConfig(mode, source) {
38
- return { mode, enabled: isDynamicWorkflowModeEnabled(mode), source };
38
+ export function createDynamicWorkflowClientConfig(offeredMode, source) {
39
+ return {
40
+ mode: offeredMode,
41
+ enabled: isDynamicWorkflowModeEnabled(offeredMode),
42
+ source,
43
+ offeredMode,
44
+ };
39
45
  }
40
46
  /**
41
- * 纯函数:把远端 envelope 的 `configs.dynamicWorkflow` 与本地覆盖环境变量折叠成一个快照。
42
- * 优先级:覆盖 > 远端合法值 > 缺省。远端成功但**未下发**该 key 也视为 disabled——
47
+ * 功能是否提供(与用户选择无关):设置行只在提供时出现。
48
+ *
49
+ * 修复原因:快照可能来自没有 offeredMode 的旧 Host(新 UI——例如手机远控 bundle——连旧桌面)。
50
+ * 过去直接比 `!== "disabled"`,缺席的字段读作「已提供」,设置行照出、选择写进一个旧 Host 不认的
51
+ * 设置。缺席或读不懂的 offeredMode 一律按未提供:只有认用户选择的 Host 才会写这个字段。
52
+ */
53
+ export function isDynamicWorkflowOffered(config) {
54
+ const offeredMode = normalizeDynamicWorkflowMode(config.offeredMode);
55
+ return offeredMode !== undefined && isDynamicWorkflowModeEnabled(offeredMode);
56
+ }
57
+ /**
58
+ * 「服务端提供、用户挑选」规则的唯一实现(launch.md「The user's choice」):
59
+ * - 功能未提供(offeredMode 为 disabled)时用户选择不生效——选择永远不能把服务端关掉的功能打开;
60
+ * - 可用时合法的用户选择取代提供的模式;缺席或非法值(旧文件、未来版本写入的新值)按跟随处理。
61
+ * 只从 `offeredMode` 推导,所以对已应用过选择的快照再次应用是覆盖而不是叠加:Host 闩住的是提供,
62
+ * 每次使用都用最新选择重新应用。
63
+ */
64
+ export function applyDynamicWorkflowUserMode(config, userMode) {
65
+ const offer = createDynamicWorkflowClientConfig(config.offeredMode, config.source);
66
+ const choice = normalizeDynamicWorkflowMode(userMode);
67
+ if (!choice || !isDynamicWorkflowOffered(offer))
68
+ return offer;
69
+ return {
70
+ ...offer,
71
+ mode: choice,
72
+ enabled: isDynamicWorkflowModeEnabled(choice),
73
+ userMode: choice,
74
+ };
75
+ }
76
+ /**
77
+ * 纯函数:把远端 envelope 的 `configs.dynamicWorkflow` 与本地覆盖环境变量折叠成「提供」,再应用用户选择。
78
+ * 提供的优先级:覆盖 > 远端合法值 > 缺省。远端成功但**未下发**该 key 也视为 disabled——
43
79
  * 服务端撤掉 key 等于关闭,不能沿用旧快照(与 desktopContextPromptRollout 同一裁决)。
44
80
  */
45
81
  export function resolveDynamicWorkflowClientConfig(input) {
82
+ return applyDynamicWorkflowUserMode(resolveDynamicWorkflowOffer(input), input.userMode);
83
+ }
84
+ function resolveDynamicWorkflowOffer(input) {
46
85
  const override = normalizeDynamicWorkflowMode(input.env?.[DCODE_DYNAMIC_WORKFLOW_MODE_ENV]);
47
86
  if (override)
48
87
  return createDynamicWorkflowClientConfig(override, "override");
@@ -15,11 +15,12 @@ export declare const DCODE_PRODUCT_FLAVOR: DCodeProductFlavor;
15
15
  export declare const DCODE_APP_VERSION_ENV: "DCODE_APP_VERSION";
16
16
  export declare const DCODE_BUILD_COMMIT_ID_ENV: "DCODE_BUILD_COMMIT_ID";
17
17
  export declare const RUNTIME_DCODE_DEBUG: string | undefined;
18
- export declare const DCODE_TELEMETRY_ENABLED: boolean;
19
- /** 数仓事件上报端点:由运行时环境变量提供,未配置即停用,构建产物不内嵌。 */
20
- export declare const DCODE_TELEMETRY_REPORT_ENDPOINT: string;
21
- /** ARMS RUM 接入端点:由运行时环境变量提供,未配置即停用,构建产物不内嵌。 */
18
+ /** ARMS RUM 上报地址;为空时 SDK 以 enable=false 初始化,不产生上报。 */
22
19
  export declare const DCODE_ARMS_RUM_ENDPOINT: string;
20
+ /** 事件上报(数仓)地址;为空时不上报。 */
21
+ export declare const DCODE_TELEMETRY_REPORT_ENDPOINT: string;
22
+ /** 桌面自动更新是否启用。 */
23
+ export declare const DCODE_AUTO_UPDATE_ENABLED: boolean;
23
24
  /** 将本地运行态与编译期 DCODE_ENV 映射为 ARMS 控制台识别的上报环境标签 */
24
25
  export declare function mapDCodeEnvToArmsRumEnv(runtimeEnv: DCodeRuntimeEnv): ArmsRumEnv;
25
26
  //# sourceMappingURL=env.d.ts.map
@@ -20,15 +20,15 @@ export const DCODE_BUILD_COMMIT_ID_ENV = "DCODE_BUILD_COMMIT_ID";
20
20
  // ── 运行时环境变量(不经过编译打包,启动时从 process.env 读取) ──
21
21
  // 启用调试模式,值为 inspect-brk 的端口号,如 DCODE_DEBUG=9230
22
22
  export const RUNTIME_DCODE_DEBUG = typeof process !== "undefined" ? process.env.DCODE_DEBUG : undefined;
23
- // 恢复原因:写死 false 会让运行时已配置的数仓/ARMS 永远空转。
24
- // 功能保持可用;实际出网由各出口的运行时端点检查决定,未配置不上报。
25
- // DCode v1.0-beta:遥测默认关闭。DipoleML 尚未搭建遥测后端;
26
- // 需要恢复时把此值改回 true 并配置 DCODE_TELEMETRY_REPORT_ENDPOINT / DCODE_ARMS_RUM_ENDPOINT。
27
- export const DCODE_TELEMETRY_ENABLED = false;
28
- /** 数仓事件上报端点:由运行时环境变量提供,未配置即停用,构建产物不内嵌。 */
29
- export const DCODE_TELEMETRY_REPORT_ENDPOINT = typeof process !== "undefined" ? (process.env.DCODE_TELEMETRY_REPORT_ENDPOINT ?? "") : "";
30
- /** ARMS RUM 接入端点:由运行时环境变量提供,未配置即停用,构建产物不内嵌。 */
31
- export const DCODE_ARMS_RUM_ENDPOINT = typeof process !== "undefined" ? (process.env.DCODE_ARMS_RUM_ENDPOINT ?? "") : "";
23
+ // ── 构建期可选能力(见 docs/desktop/build-time-optional-capabilities.md),未注入时一律关闭 ──
24
+ /** ARMS RUM 上报地址;为空时 SDK 以 enable=false 初始化,不产生上报。 */
25
+ export const DCODE_ARMS_RUM_ENDPOINT = typeof __DCODE_ARMS_RUM_ENDPOINT__ !== "undefined" ? __DCODE_ARMS_RUM_ENDPOINT__ : "";
26
+ /** 事件上报(数仓)地址;为空时不上报。 */
27
+ export const DCODE_TELEMETRY_REPORT_ENDPOINT = typeof __DCODE_TELEMETRY_REPORT_ENDPOINT__ !== "undefined"
28
+ ? __DCODE_TELEMETRY_REPORT_ENDPOINT__
29
+ : "";
30
+ /** 桌面自动更新是否启用。 */
31
+ export const DCODE_AUTO_UPDATE_ENABLED = typeof __DCODE_AUTO_UPDATE_ENABLED__ !== "undefined" ? __DCODE_AUTO_UPDATE_ENABLED__ : false;
32
32
  /** 将本地运行态与编译期 DCODE_ENV 映射为 ARMS 控制台识别的上报环境标签 */
33
33
  export function mapDCodeEnvToArmsRumEnv(runtimeEnv) {
34
34
  return runtimeEnv !== "development" && DCODE_ENV === "production" ? "prod" : "local";
@@ -6,4 +6,28 @@ export declare const DCODE_FILE_LOCK_TIMEOUT_ERROR_CODE: "DCODE_FILE_LOCK_TIMEOU
6
6
  export declare function stringifyUnknownValue(value: unknown): string;
7
7
  export declare function normalizeUnknownError(error: unknown): NormalizedUnknownError;
8
8
  export declare function isDCodeFileLockTimeoutError(error: unknown): boolean;
9
+ /**
10
+ * 不可自动重试的 workspace DCode Agent 预热错误模式列表。
11
+ *
12
+ * 这些错误代表确定性的配置/安装/鉴权问题,继续重试不会变好。
13
+ * 同时用于 MCP-fallback 降级判断:命中这些模式时不做 MCP 降级,因为错误与 MCP 无关。
14
+ */
15
+ export declare const NON_RETRYABLE_WORKSPACE_PREPARE_ERROR_PATTERNS: readonly ["binary 未找到", "未正确安装", "binary not found", "not installed", "initialize 前进程已退出", "initialize 超时", "进程启动失败", "optional dependency was not installed", "Cannot find package '@openai/codex-", "Missing optional dependency @openai/codex-", "Missing Codex runtime files", "Gemini API key is missing or not configured", "Please fix the configuration file(s)", "Expected property name or '}' in JSON", "已暂停自动重试"];
16
+ /**
17
+ * 额外的不可 MCP-fallback 降级的错误模式。
18
+ *
19
+ * session/new 超时属于 agent 自身启动/登录卡住,和 MCP 无关,降级也没用。
20
+ */
21
+ export declare const NON_MCP_FALLBACK_EXTRA_ERROR_PATTERNS: readonly ["session/new 超时"];
22
+ /**
23
+ * 判断错误消息是否代表确定性失败,不应自动重试 workspace DCode Agent 预热。
24
+ */
25
+ export declare function isNonRetryableWorkspacePrepareError(errorMessage: string): boolean;
26
+ /**
27
+ * 判断 OpenCode 是否命中 Bun/运行时崩溃。
28
+ *
29
+ * 这类错误不同于配置缺失:短时间内重建进程可能恢复,但连续出现时应停止自动重试,
30
+ * 避免 UI 只显示泛化的 “connection closed” 并把用户拖进 5/5 的无意义等待。
31
+ */
32
+ export declare function isOpenCodeRuntimeCrashError(errorMessage: string): boolean;
9
33
  //# sourceMappingURL=errors.d.ts.map
@@ -70,4 +70,58 @@ export function normalizeUnknownError(error) {
70
70
  export function isDCodeFileLockTimeoutError(error) {
71
71
  return normalizeUnknownError(error).code === DCODE_FILE_LOCK_TIMEOUT_ERROR_CODE;
72
72
  }
73
+ /**
74
+ * 不可自动重试的 workspace DCode Agent 预热错误模式列表。
75
+ *
76
+ * 这些错误代表确定性的配置/安装/鉴权问题,继续重试不会变好。
77
+ * 同时用于 MCP-fallback 降级判断:命中这些模式时不做 MCP 降级,因为错误与 MCP 无关。
78
+ */
79
+ export const NON_RETRYABLE_WORKSPACE_PREPARE_ERROR_PATTERNS = [
80
+ "binary 未找到",
81
+ "未正确安装",
82
+ "binary not found",
83
+ "not installed",
84
+ "initialize 前进程已退出",
85
+ "initialize 超时",
86
+ "进程启动失败",
87
+ "optional dependency was not installed",
88
+ "Cannot find package '@openai/codex-",
89
+ "Missing optional dependency @openai/codex-",
90
+ "Missing Codex runtime files",
91
+ "Gemini API key is missing or not configured",
92
+ "Please fix the configuration file(s)",
93
+ "Expected property name or '}' in JSON",
94
+ "已暂停自动重试",
95
+ ];
96
+ /**
97
+ * 额外的不可 MCP-fallback 降级的错误模式。
98
+ *
99
+ * session/new 超时属于 agent 自身启动/登录卡住,和 MCP 无关,降级也没用。
100
+ */
101
+ export const NON_MCP_FALLBACK_EXTRA_ERROR_PATTERNS = ["session/new 超时"];
102
+ const OPENCODE_RUNTIME_CRASH_ERROR_PATTERNS = [
103
+ "opencode runtime 崩溃",
104
+ "opencode runtime crashed",
105
+ "bun has crashed",
106
+ "segmentation fault",
107
+ "panic(main thread)",
108
+ "code=3221226505",
109
+ ];
110
+ /**
111
+ * 判断错误消息是否代表确定性失败,不应自动重试 workspace DCode Agent 预热。
112
+ */
113
+ export function isNonRetryableWorkspacePrepareError(errorMessage) {
114
+ const normalizedMessage = errorMessage.toLowerCase();
115
+ return NON_RETRYABLE_WORKSPACE_PREPARE_ERROR_PATTERNS.some((pattern) => normalizedMessage.includes(pattern.toLowerCase()));
116
+ }
117
+ /**
118
+ * 判断 OpenCode 是否命中 Bun/运行时崩溃。
119
+ *
120
+ * 这类错误不同于配置缺失:短时间内重建进程可能恢复,但连续出现时应停止自动重试,
121
+ * 避免 UI 只显示泛化的 “connection closed” 并把用户拖进 5/5 的无意义等待。
122
+ */
123
+ export function isOpenCodeRuntimeCrashError(errorMessage) {
124
+ const normalizedMessage = errorMessage.toLowerCase();
125
+ return OPENCODE_RUNTIME_CRASH_ERROR_PATTERNS.some((pattern) => normalizedMessage.includes(pattern.toLowerCase()));
126
+ }
73
127
  //# sourceMappingURL=errors.js.map
@@ -1,17 +1,19 @@
1
1
  import { z } from "zod";
2
2
  /** auto 保留为内部权限;plan 仅在旧格式读取边界接受。 */
3
3
  export declare const executionPermissionModeSchema: z.ZodEnum<{
4
+ auto: "auto";
4
5
  build: "build";
5
6
  edit: "edit";
6
7
  yolo: "yolo";
7
- auto: "auto";
8
+ guarded: "guarded";
8
9
  }>;
9
10
  export declare const executionStateSchema: z.ZodObject<{
10
11
  mode: z.ZodEnum<{
12
+ auto: "auto";
11
13
  build: "build";
12
14
  edit: "edit";
13
15
  yolo: "yolo";
14
- auto: "auto";
16
+ guarded: "guarded";
15
17
  }>;
16
18
  planEnabled: z.ZodBoolean;
17
19
  }, z.core.$strip>;
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  /** auto 保留为内部权限;plan 仅在旧格式读取边界接受。 */
3
- export const executionPermissionModeSchema = z.enum(["build", "edit", "yolo", "auto"]);
3
+ export const executionPermissionModeSchema = z.enum(["build", "edit", "yolo", "guarded", "auto"]);
4
4
  export const executionStateSchema = z.object({
5
5
  mode: executionPermissionModeSchema,
6
6
  planEnabled: z.boolean(),
@@ -54,7 +54,7 @@ export interface CreateFeedbackTicketInput {
54
54
  /** 用户选填的联系方式(邮箱或其他社交账号),后端不强制要求。 */
55
55
  contact?: string;
56
56
  /** 当前界面语言,仅用于请求头透传,不写入后端工单正文。 */
57
- locale?: "zh-CN" | "en-US";
57
+ locale?: "fr-CA" | "en-US";
58
58
  }
59
59
  export interface FeedbackTicketSummary {
60
60
  id: string;
@@ -0,0 +1,140 @@
1
+ import { z } from "zod";
2
+ export * from "./tweakProtocol.js";
3
+ export declare const GEN_UI_HTML_MAX_BYTES = 5000000;
4
+ export declare const GEN_UI_STATE_MAX_BYTES: number;
5
+ export declare const GEN_UI_STATE_MAX_ENTRIES = 100;
6
+ export declare const GEN_UI_CONTEXT_MAX_BYTES: number;
7
+ export declare const GEN_UI_GLOBALS_EVENT = "dcode:set_globals";
8
+ export declare const GEN_UI_STATE_CONTEXT_KEY = "dcode/genUiState";
9
+ export declare const GEN_UI_TWEAK_CONTEXT_KEY = "dcode/genUiTweaks";
10
+ export declare const GEN_UI_STATE_METHOD = "dcode/gen-ui/state";
11
+ export declare const GEN_UI_FOLLOW_UP_METHOD = "dcode/gen-ui/follow-up";
12
+ export declare const GEN_UI_TWEAK_METHOD = "dcode/gen-ui/tweak";
13
+ export declare const GEN_UI_PRESENTATION_METHOD = "dcode/gen-ui/presentation";
14
+ export declare const GEN_UI_STATIC_DOMAINS: readonly ["cdnjs.cloudflare.com", "esm.sh", "cdn.jsdelivr.net", "unpkg.com", "fonts.googleapis.com", "fonts.gstatic.com", "fonts.bunny.net"];
15
+ /** This is a wire-format check. The executor owns normalization and filesystem authorization. */
16
+ export declare const genUiPathSchema: z.ZodString;
17
+ export declare const genUiReferenceSchema: z.ZodObject<{
18
+ path: z.ZodString;
19
+ title: z.ZodOptional<z.ZodString>;
20
+ mode: z.ZodOptional<z.ZodEnum<{
21
+ wide: "wide";
22
+ }>>;
23
+ }, z.core.$strict>;
24
+ export type GenUiReference = z.infer<typeof genUiReferenceSchema>;
25
+ export declare const genUiScopeSchema: z.ZodObject<{
26
+ workspacePath: z.ZodString;
27
+ workspaceIdentity: z.ZodOptional<z.ZodString>;
28
+ sessionId: z.ZodString;
29
+ }, z.core.$strict>;
30
+ export type GenUiScope = z.infer<typeof genUiScopeSchema>;
31
+ export declare const genUiStateTargetSchema: z.ZodObject<{
32
+ workspacePath: z.ZodString;
33
+ workspaceIdentity: z.ZodOptional<z.ZodString>;
34
+ sessionId: z.ZodString;
35
+ path: z.ZodString;
36
+ }, z.core.$strict>;
37
+ export type GenUiStateTarget = z.infer<typeof genUiStateTargetSchema>;
38
+ export declare const genUiWidgetStateSchema: z.ZodPipe<z.ZodObject<{
39
+ modelContent: z.ZodDefault<z.ZodUnknown>;
40
+ privateContent: z.ZodDefault<z.ZodUnknown>;
41
+ }, z.core.$strict>, z.ZodTransform<{
42
+ modelContent: unknown;
43
+ privateContent: unknown;
44
+ }, {
45
+ modelContent: unknown;
46
+ privateContent: unknown;
47
+ }>>;
48
+ export type GenUiWidgetState = z.infer<typeof genUiWidgetStateSchema>;
49
+ export declare const genUiFollowUpSchema: z.ZodObject<{
50
+ prompt: z.ZodString;
51
+ title: z.ZodOptional<z.ZodString>;
52
+ }, z.core.$strict>;
53
+ export interface GenUiDocument {
54
+ path: string;
55
+ html: string;
56
+ }
57
+ export declare const genUiTweakControlSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
58
+ type: z.ZodLiteral<"slider">;
59
+ value: z.ZodNumber;
60
+ min: z.ZodNumber;
61
+ max: z.ZodNumber;
62
+ step: z.ZodOptional<z.ZodNumber>;
63
+ unit: z.ZodOptional<z.ZodString>;
64
+ id: z.ZodString;
65
+ label: z.ZodString;
66
+ reference: z.ZodOptional<z.ZodString>;
67
+ }, z.core.$strict>, z.ZodObject<{
68
+ type: z.ZodLiteral<"color">;
69
+ value: z.ZodString;
70
+ id: z.ZodString;
71
+ label: z.ZodString;
72
+ reference: z.ZodOptional<z.ZodString>;
73
+ }, z.core.$strict>, z.ZodObject<{
74
+ type: z.ZodLiteral<"toggle">;
75
+ value: z.ZodBoolean;
76
+ id: z.ZodString;
77
+ label: z.ZodString;
78
+ reference: z.ZodOptional<z.ZodString>;
79
+ }, z.core.$strict>, z.ZodObject<{
80
+ type: z.ZodLiteral<"select">;
81
+ value: z.ZodString;
82
+ options: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
83
+ label: z.ZodString;
84
+ value: z.ZodString;
85
+ }, z.core.$strict>]>>;
86
+ id: z.ZodString;
87
+ label: z.ZodString;
88
+ reference: z.ZodOptional<z.ZodString>;
89
+ }, z.core.$strict>], "type">;
90
+ export declare const genUiTweakSchema: z.ZodObject<{
91
+ title: z.ZodString;
92
+ controls: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
93
+ type: z.ZodLiteral<"slider">;
94
+ value: z.ZodNumber;
95
+ min: z.ZodNumber;
96
+ max: z.ZodNumber;
97
+ step: z.ZodOptional<z.ZodNumber>;
98
+ unit: z.ZodOptional<z.ZodString>;
99
+ id: z.ZodString;
100
+ label: z.ZodString;
101
+ reference: z.ZodOptional<z.ZodString>;
102
+ }, z.core.$strict>, z.ZodObject<{
103
+ type: z.ZodLiteral<"color">;
104
+ value: z.ZodString;
105
+ id: z.ZodString;
106
+ label: z.ZodString;
107
+ reference: z.ZodOptional<z.ZodString>;
108
+ }, z.core.$strict>, z.ZodObject<{
109
+ type: z.ZodLiteral<"toggle">;
110
+ value: z.ZodBoolean;
111
+ id: z.ZodString;
112
+ label: z.ZodString;
113
+ reference: z.ZodOptional<z.ZodString>;
114
+ }, z.core.$strict>, z.ZodObject<{
115
+ type: z.ZodLiteral<"select">;
116
+ value: z.ZodString;
117
+ options: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
118
+ label: z.ZodString;
119
+ value: z.ZodString;
120
+ }, z.core.$strict>]>>;
121
+ id: z.ZodString;
122
+ label: z.ZodString;
123
+ reference: z.ZodOptional<z.ZodString>;
124
+ }, z.core.$strict>], "type">>;
125
+ }, z.core.$strict>;
126
+ export type GenUiTweak = z.infer<typeof genUiTweakSchema>;
127
+ export type GenUiTweakValues = Record<string, string | number | boolean>;
128
+ export interface GenUiStateEntry {
129
+ path: string;
130
+ state: GenUiWidgetState;
131
+ }
132
+ export interface GenUiStateChange {
133
+ target: GenUiStateTarget;
134
+ state: GenUiWidgetState | null;
135
+ }
136
+ export declare function buildGenUiScopeKey(scope: GenUiScope): string;
137
+ export declare function buildGenUiStateKey(target: GenUiStateTarget): string;
138
+ export declare function buildGenUiModelContext(entries: readonly GenUiStateEntry[]): string;
139
+ export declare function stripGenUiModelContext(content: string): string;
140
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1,5 @@
1
+ import type { GenUiReference, GenUiWidgetState, GenUiTweakMessage } from "./contract.js";
2
+ export declare const exampleGenUiReference: GenUiReference;
3
+ export declare const exampleGenUiState: GenUiWidgetState;
4
+ export declare const exampleGenUiTweakRegistration: GenUiTweakMessage;
5
+ //# sourceMappingURL=contract.example.d.ts.map
@@ -0,0 +1,36 @@
1
+ export const exampleGenUiReference = {
2
+ path: "/workspace/charts/sales.html",
3
+ title: "Sales",
4
+ };
5
+ export const exampleGenUiState = {
6
+ modelContent: { month: 6 },
7
+ privateContent: { tab: "chart" },
8
+ };
9
+ export const exampleGenUiTweakRegistration = {
10
+ type: "register",
11
+ registrationId: "tweak-1",
12
+ targets: [
13
+ {
14
+ id: "1",
15
+ label: "Player",
16
+ selector: "#player",
17
+ tagName: "div",
18
+ rect: { x: 0, y: 0, width: 200, height: 100 },
19
+ },
20
+ ],
21
+ annotationControls: {
22
+ controlsMode: "replace",
23
+ controls: [
24
+ {
25
+ type: "range",
26
+ callback: "tweak-1-1",
27
+ label: "Radius",
28
+ currentValue: 12,
29
+ min: 0,
30
+ max: 40,
31
+ step: 1,
32
+ },
33
+ ],
34
+ },
35
+ };
36
+ //# sourceMappingURL=contract.example.js.map
@@ -0,0 +1,196 @@
1
+ import { z } from "zod";
2
+ export * from "./tweakProtocol.js";
3
+ export const GEN_UI_HTML_MAX_BYTES = 5_000_000;
4
+ export const GEN_UI_STATE_MAX_BYTES = 16 * 1024;
5
+ export const GEN_UI_STATE_MAX_ENTRIES = 100;
6
+ export const GEN_UI_CONTEXT_MAX_BYTES = 64 * 1024;
7
+ export const GEN_UI_GLOBALS_EVENT = "dcode:set_globals";
8
+ export const GEN_UI_STATE_CONTEXT_KEY = "dcode/genUiState";
9
+ export const GEN_UI_TWEAK_CONTEXT_KEY = "dcode/genUiTweaks";
10
+ export const GEN_UI_STATE_METHOD = "dcode/gen-ui/state";
11
+ export const GEN_UI_FOLLOW_UP_METHOD = "dcode/gen-ui/follow-up";
12
+ export const GEN_UI_TWEAK_METHOD = "dcode/gen-ui/tweak";
13
+ export const GEN_UI_PRESENTATION_METHOD = "dcode/gen-ui/presentation";
14
+ export const GEN_UI_STATIC_DOMAINS = [
15
+ "cdnjs.cloudflare.com",
16
+ "esm.sh",
17
+ "cdn.jsdelivr.net",
18
+ "unpkg.com",
19
+ "fonts.googleapis.com",
20
+ "fonts.gstatic.com",
21
+ "fonts.bunny.net",
22
+ ];
23
+ /** This is a wire-format check. The executor owns normalization and filesystem authorization. */
24
+ export const genUiPathSchema = z
25
+ .string()
26
+ .min(1)
27
+ .max(4096)
28
+ .refine((path) => {
29
+ if (path.includes("\0") || /[\r\n]/u.test(path))
30
+ return false;
31
+ const segments = path.split(/[\\/]/u);
32
+ return (/^(?:\/|[A-Za-z]:[\\/]|\\\\)/u.test(path) &&
33
+ !segments.includes("..") &&
34
+ /^[a-z0-9]+(?:-[a-z0-9]+)*\.html$/u.test(segments.at(-1) ?? ""));
35
+ }, "Expected an absolute executor path to a lowercase-hyphenated HTML file");
36
+ export const genUiReferenceSchema = z
37
+ .object({
38
+ path: genUiPathSchema,
39
+ title: z.string().max(250).optional(),
40
+ mode: z.enum(["wide"]).optional(),
41
+ })
42
+ .strict();
43
+ export const genUiScopeSchema = z
44
+ .object({
45
+ workspacePath: z.string().min(1).max(4096),
46
+ workspaceIdentity: z.string().max(4096).optional(),
47
+ sessionId: z.string().min(1).max(512),
48
+ })
49
+ .strict();
50
+ export const genUiStateTargetSchema = genUiScopeSchema.extend({ path: genUiPathSchema });
51
+ function serializeJson(value) {
52
+ return JSON.stringify(value, (_key, item) => {
53
+ if (typeof item === "undefined" ||
54
+ typeof item === "function" ||
55
+ typeof item === "symbol" ||
56
+ typeof item === "bigint" ||
57
+ (typeof item === "number" && !Number.isFinite(item))) {
58
+ throw new Error("Widget state must contain JSON values only");
59
+ }
60
+ return item;
61
+ });
62
+ }
63
+ export const genUiWidgetStateSchema = z
64
+ .object({
65
+ modelContent: z.unknown().default(null),
66
+ privateContent: z.unknown().default(null),
67
+ })
68
+ .strict()
69
+ .transform((state, context) => {
70
+ try {
71
+ const serialized = serializeJson(state);
72
+ if (new TextEncoder().encode(serialized).byteLength > GEN_UI_STATE_MAX_BYTES) {
73
+ throw new Error("Widget state exceeds 16 KiB");
74
+ }
75
+ return JSON.parse(serialized);
76
+ }
77
+ catch (error) {
78
+ context.addIssue({
79
+ code: "custom",
80
+ message: error instanceof Error ? error.message : "Invalid widget state",
81
+ });
82
+ return z.NEVER;
83
+ }
84
+ });
85
+ export const genUiFollowUpSchema = z
86
+ .object({
87
+ prompt: z
88
+ .string()
89
+ .trim()
90
+ .min(1)
91
+ .max(64 * 1024),
92
+ title: z.string().max(250).optional(),
93
+ })
94
+ .strict();
95
+ const controlBase = {
96
+ id: z.string().regex(/^[a-zA-Z][a-zA-Z0-9_-]{0,63}$/),
97
+ label: z.string().min(1).max(120),
98
+ reference: z
99
+ .string()
100
+ .regex(/^[\w./:@$#-]{1,160}$/u)
101
+ .optional(),
102
+ };
103
+ export const genUiTweakControlSchema = z.discriminatedUnion("type", [
104
+ z
105
+ .object({
106
+ ...controlBase,
107
+ type: z.literal("slider"),
108
+ value: z.number().finite(),
109
+ min: z.number().finite(),
110
+ max: z.number().finite(),
111
+ step: z.number().positive().optional(),
112
+ unit: z.string().max(24).optional(),
113
+ })
114
+ .strict(),
115
+ z
116
+ .object({
117
+ ...controlBase,
118
+ type: z.literal("color"),
119
+ value: z.string().regex(/^#(?:[\da-f]{3}|[\da-f]{4}|[\da-f]{6}|[\da-f]{8})$/i),
120
+ })
121
+ .strict(),
122
+ z.object({ ...controlBase, type: z.literal("toggle"), value: z.boolean() }).strict(),
123
+ z
124
+ .object({
125
+ ...controlBase,
126
+ type: z.literal("select"),
127
+ value: z.string().max(120),
128
+ options: z
129
+ .array(z.union([
130
+ z.string().min(1).max(120),
131
+ z.object({ label: z.string().min(1).max(120), value: z.string().max(120) }).strict(),
132
+ ]))
133
+ .min(1)
134
+ .max(12),
135
+ })
136
+ .strict(),
137
+ ]);
138
+ export const genUiTweakSchema = z
139
+ .object({
140
+ title: z.string().min(1).max(120),
141
+ controls: z.array(genUiTweakControlSchema).min(1).max(12),
142
+ })
143
+ .strict()
144
+ .superRefine((input, ctx) => {
145
+ const ids = new Set();
146
+ for (const control of input.controls) {
147
+ if (ids.has(control.id) ||
148
+ (control.type === "slider" &&
149
+ (control.min >= control.max ||
150
+ control.value < control.min ||
151
+ control.value > control.max)) ||
152
+ (control.type === "select" &&
153
+ !control.options.some((option) => (typeof option === "string" ? option : option.value) === control.value)))
154
+ ctx.addIssue({ code: "custom", message: "Invalid or duplicate tweak control" });
155
+ ids.add(control.id);
156
+ }
157
+ });
158
+ export function buildGenUiScopeKey(scope) {
159
+ return JSON.stringify([scope.workspaceIdentity?.trim() || scope.workspacePath, scope.sessionId]);
160
+ }
161
+ export function buildGenUiStateKey(target) {
162
+ return JSON.stringify([buildGenUiScopeKey(target), target.path]);
163
+ }
164
+ export function buildGenUiModelContext(entries) {
165
+ const selected = [];
166
+ for (const entry of [...entries]
167
+ .sort((a, b) => a.path.localeCompare(b.path))
168
+ .slice(0, GEN_UI_STATE_MAX_ENTRIES)) {
169
+ const parsed = genUiWidgetStateSchema.safeParse(entry.state);
170
+ if (!parsed.success || parsed.data.modelContent === null)
171
+ continue;
172
+ const next = { path: entry.path, state: parsed.data.modelContent };
173
+ if (new TextEncoder().encode(JSON.stringify([...selected, next])).length >
174
+ GEN_UI_CONTEXT_MAX_BYTES)
175
+ break;
176
+ selected.push(next);
177
+ }
178
+ return selected.length
179
+ ? `<untrusted_gen_ui_state>\n${JSON.stringify(selected).replaceAll("<", "\\u003c")}\n</untrusted_gen_ui_state>`
180
+ : "";
181
+ }
182
+ export function stripGenUiModelContext(content) {
183
+ const match = /\n\n<untrusted_gen_ui_state>\n([^]*?)\n<\/untrusted_gen_ui_state>\s*$/u.exec(content);
184
+ if (!match)
185
+ return content;
186
+ try {
187
+ z.array(z.object({ path: genUiPathSchema, state: z.unknown() }).strict())
188
+ .max(GEN_UI_STATE_MAX_ENTRIES)
189
+ .parse(JSON.parse(match[1]));
190
+ return content.slice(0, match.index);
191
+ }
192
+ catch {
193
+ return content;
194
+ }
195
+ }
196
+ //# sourceMappingURL=contract.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=contract.test.d.ts.map