devchain-cli 0.20.3 → 0.21.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 (397) hide show
  1. package/dist/cli.js +11 -1
  2. package/dist/drizzle/0072_fat_vulcan.sql +21 -0
  3. package/dist/drizzle/meta/0072_snapshot.json +6062 -0
  4. package/dist/drizzle/meta/_journal.json +7 -0
  5. package/dist/node_modules/@devchain/shared/e2ee/index.d.ts +1 -1
  6. package/dist/node_modules/@devchain/shared/e2ee/index.d.ts.map +1 -1
  7. package/dist/node_modules/@devchain/shared/e2ee/index.js +1 -1
  8. package/dist/node_modules/@devchain/shared/e2ee/index.js.map +1 -1
  9. package/dist/node_modules/@devchain/shared/e2ee/negotiation.d.ts +6 -0
  10. package/dist/node_modules/@devchain/shared/e2ee/negotiation.d.ts.map +1 -1
  11. package/dist/node_modules/@devchain/shared/e2ee/negotiation.js +13 -0
  12. package/dist/node_modules/@devchain/shared/e2ee/negotiation.js.map +1 -1
  13. package/dist/node_modules/@devchain/shared/index.d.ts +2 -2
  14. package/dist/node_modules/@devchain/shared/index.d.ts.map +1 -1
  15. package/dist/node_modules/@devchain/shared/index.js +2 -2
  16. package/dist/node_modules/@devchain/shared/index.js.map +1 -1
  17. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts +11816 -0
  18. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts.map +1 -0
  19. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js +1069 -0
  20. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js.map +1 -0
  21. package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
  22. package/dist/node_modules/@devchain/shared/tunnel-protocol.d.ts +23 -2
  23. package/dist/node_modules/@devchain/shared/tunnel-protocol.d.ts.map +1 -1
  24. package/dist/node_modules/@devchain/shared/tunnel-protocol.js +24 -2
  25. package/dist/node_modules/@devchain/shared/tunnel-protocol.js.map +1 -1
  26. package/dist/server/app.main.module.js +2 -0
  27. package/dist/server/app.main.module.js.map +1 -1
  28. package/dist/server/app.normal.module.js +2 -0
  29. package/dist/server/app.normal.module.js.map +1 -1
  30. package/dist/server/common/test/app-bootstrap.helper.js +0 -1
  31. package/dist/server/common/test/app-bootstrap.helper.js.map +1 -1
  32. package/dist/server/modules/agent-message-delivery/adapters/legacy-delivery-formatter.adapter.js +10 -4
  33. package/dist/server/modules/agent-message-delivery/adapters/legacy-delivery-formatter.adapter.js.map +1 -1
  34. package/dist/server/modules/agent-message-delivery/agent-message-delivery.service.js +2 -0
  35. package/dist/server/modules/agent-message-delivery/agent-message-delivery.service.js.map +1 -1
  36. package/dist/server/modules/agent-message-delivery/dtos/delivery.types.d.ts +4 -1
  37. package/dist/server/modules/cloud/cloud.module.js +2 -1
  38. package/dist/server/modules/cloud/cloud.module.js.map +1 -1
  39. package/dist/server/modules/cloud/services/cloud-egress-bridge.service.d.ts +3 -1
  40. package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js +16 -9
  41. package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js.map +1 -1
  42. package/dist/server/modules/cloud/services/event-mapper.service.d.ts +1 -0
  43. package/dist/server/modules/cloud/services/event-mapper.service.js +14 -0
  44. package/dist/server/modules/cloud/services/event-mapper.service.js.map +1 -1
  45. package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js +4 -0
  46. package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js.map +1 -1
  47. package/dist/server/modules/cloud-tunnel/services/ask-user-question-push-gate.service.d.ts +5 -1
  48. package/dist/server/modules/cloud-tunnel/services/ask-user-question-push-gate.service.js +27 -7
  49. package/dist/server/modules/cloud-tunnel/services/ask-user-question-push-gate.service.js.map +1 -1
  50. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.d.ts +5 -2
  51. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js +12 -5
  52. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js.map +1 -1
  53. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.d.ts +11815 -0
  54. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js +1076 -0
  55. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js.map +1 -0
  56. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.d.ts +67 -0
  57. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.js +181 -0
  58. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.js.map +1 -0
  59. package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.d.ts +15 -2
  60. package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js +145 -6
  61. package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js.map +1 -1
  62. package/dist/server/modules/cloud-tunnel/services/tunnel-event-forwarder.service.d.ts +4 -1
  63. package/dist/server/modules/cloud-tunnel/services/tunnel-event-forwarder.service.js +16 -2
  64. package/dist/server/modules/cloud-tunnel/services/tunnel-event-forwarder.service.js.map +1 -1
  65. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.d.ts +4 -1
  66. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js +64 -250
  67. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js.map +1 -1
  68. package/dist/server/modules/cloud-tunnel/services/tunnel-rpc-crypto.service.d.ts +0 -2
  69. package/dist/server/modules/cloud-tunnel/services/tunnel-rpc-crypto.service.js +7 -5
  70. package/dist/server/modules/cloud-tunnel/services/tunnel-rpc-crypto.service.js.map +1 -1
  71. package/dist/server/modules/cloud-tunnel/services/tunnel-viewport-crypto.service.d.ts +1 -2
  72. package/dist/server/modules/cloud-tunnel/services/tunnel-viewport-crypto.service.js +14 -16
  73. package/dist/server/modules/cloud-tunnel/services/tunnel-viewport-crypto.service.js.map +1 -1
  74. package/dist/server/modules/cloud-tunnel/services/viewport-streamer.service.d.ts +20 -3
  75. package/dist/server/modules/cloud-tunnel/services/viewport-streamer.service.js +139 -9
  76. package/dist/server/modules/cloud-tunnel/services/viewport-streamer.service.js.map +1 -1
  77. package/dist/server/modules/e2ee/controllers/e2ee-pairing.controller.js +3 -1
  78. package/dist/server/modules/e2ee/controllers/e2ee-pairing.controller.js.map +1 -1
  79. package/dist/server/modules/e2ee/controllers/e2ee-trust.controller.d.ts +6 -1
  80. package/dist/server/modules/e2ee/controllers/e2ee-trust.controller.js +56 -2
  81. package/dist/server/modules/e2ee/controllers/e2ee-trust.controller.js.map +1 -1
  82. package/dist/server/modules/e2ee/e2ee.module.js +17 -2
  83. package/dist/server/modules/e2ee/e2ee.module.js.map +1 -1
  84. package/dist/server/modules/e2ee/events/paired-device-workspace-access.events.d.ts +6 -0
  85. package/dist/server/modules/e2ee/events/paired-device-workspace-access.events.js +5 -0
  86. package/dist/server/modules/e2ee/events/paired-device-workspace-access.events.js.map +1 -0
  87. package/dist/server/modules/e2ee/services/e2ee-device-label.d.ts +1 -0
  88. package/dist/server/modules/e2ee/services/e2ee-device-label.js +17 -0
  89. package/dist/server/modules/e2ee/services/e2ee-device-label.js.map +1 -0
  90. package/dist/server/modules/e2ee/services/e2ee-device-store.service.d.ts +9 -2
  91. package/dist/server/modules/e2ee/services/e2ee-device-store.service.js +94 -28
  92. package/dist/server/modules/e2ee/services/e2ee-device-store.service.js.map +1 -1
  93. package/dist/server/modules/e2ee/services/e2ee-pairing.service.js +3 -1
  94. package/dist/server/modules/e2ee/services/e2ee-pairing.service.js.map +1 -1
  95. package/dist/server/modules/e2ee/services/e2ee-trust.service.d.ts +4 -0
  96. package/dist/server/modules/e2ee/services/e2ee-trust.service.js +33 -10
  97. package/dist/server/modules/e2ee/services/e2ee-trust.service.js.map +1 -1
  98. package/dist/server/modules/e2ee/services/paired-device-workspace-access.service.d.ts +19 -0
  99. package/dist/server/modules/e2ee/services/paired-device-workspace-access.service.js +103 -0
  100. package/dist/server/modules/e2ee/services/paired-device-workspace-access.service.js.map +1 -0
  101. package/dist/server/modules/epics/services/epics.service.d.ts +1 -0
  102. package/dist/server/modules/epics/services/epics.service.js +7 -1
  103. package/dist/server/modules/epics/services/epics.service.js.map +1 -1
  104. package/dist/server/modules/events/catalog/epic.updated.d.ts +26 -26
  105. package/dist/server/modules/events/catalog/index.d.ts +48 -48
  106. package/dist/server/modules/events/catalog/review.updated.d.ts +18 -18
  107. package/dist/server/modules/events/catalog/team.config.updated.d.ts +4 -4
  108. package/dist/server/modules/mcp/mcp-full.module.js +2 -3
  109. package/dist/server/modules/mcp/mcp-full.module.js.map +1 -1
  110. package/dist/server/modules/mcp/services/handlers/epic-tools.js +1 -1
  111. package/dist/server/modules/mcp/services/handlers/epic-tools.js.map +1 -1
  112. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.d.ts +23 -0
  113. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js +120 -0
  114. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js.map +1 -0
  115. package/dist/server/modules/mcp/services/mcp.service.d.ts +4 -45
  116. package/dist/server/modules/mcp/services/mcp.service.js +15 -265
  117. package/dist/server/modules/mcp/services/mcp.service.js.map +1 -1
  118. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.d.ts +5 -0
  119. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js +8 -0
  120. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js.map +1 -0
  121. package/dist/server/modules/mcp/standalone-mcp.module.js +3 -10
  122. package/dist/server/modules/mcp/standalone-mcp.module.js.map +1 -1
  123. package/dist/server/modules/mcp/tool-descriptors/agent.bindings.d.ts +1 -2
  124. package/dist/server/modules/mcp/tool-descriptors/agent.bindings.js +15 -2
  125. package/dist/server/modules/mcp/tool-descriptors/agent.bindings.js.map +1 -1
  126. package/dist/server/modules/mcp/tool-descriptors/binding-types.d.ts +38 -0
  127. package/dist/server/modules/mcp/tool-descriptors/binding-types.js +10 -0
  128. package/dist/server/modules/mcp/tool-descriptors/binding-types.js.map +1 -0
  129. package/dist/server/modules/mcp/tool-descriptors/chat.bindings.d.ts +1 -2
  130. package/dist/server/modules/mcp/tool-descriptors/chat.bindings.js +16 -2
  131. package/dist/server/modules/mcp/tool-descriptors/chat.bindings.js.map +1 -1
  132. package/dist/server/modules/mcp/tool-descriptors/document.bindings.d.ts +1 -2
  133. package/dist/server/modules/mcp/tool-descriptors/document.bindings.js +10 -2
  134. package/dist/server/modules/mcp/tool-descriptors/document.bindings.js.map +1 -1
  135. package/dist/server/modules/mcp/tool-descriptors/epic.bindings.d.ts +1 -2
  136. package/dist/server/modules/mcp/tool-descriptors/epic.bindings.js +12 -6
  137. package/dist/server/modules/mcp/tool-descriptors/epic.bindings.js.map +1 -1
  138. package/dist/server/modules/mcp/tool-descriptors/index.d.ts +2 -3
  139. package/dist/server/modules/mcp/tool-descriptors/index.js +1 -25
  140. package/dist/server/modules/mcp/tool-descriptors/index.js.map +1 -1
  141. package/dist/server/modules/mcp/tool-descriptors/project.bindings.d.ts +1 -2
  142. package/dist/server/modules/mcp/tool-descriptors/project.bindings.js +11 -2
  143. package/dist/server/modules/mcp/tool-descriptors/project.bindings.js.map +1 -1
  144. package/dist/server/modules/mcp/tool-descriptors/prompt.bindings.d.ts +1 -2
  145. package/dist/server/modules/mcp/tool-descriptors/prompt.bindings.js +11 -2
  146. package/dist/server/modules/mcp/tool-descriptors/prompt.bindings.js.map +1 -1
  147. package/dist/server/modules/mcp/tool-descriptors/record.bindings.d.ts +1 -2
  148. package/dist/server/modules/mcp/tool-descriptors/record.bindings.js +6 -2
  149. package/dist/server/modules/mcp/tool-descriptors/record.bindings.js.map +1 -1
  150. package/dist/server/modules/mcp/tool-descriptors/review.bindings.d.ts +1 -2
  151. package/dist/server/modules/mcp/tool-descriptors/review.bindings.js +13 -2
  152. package/dist/server/modules/mcp/tool-descriptors/review.bindings.js.map +1 -1
  153. package/dist/server/modules/mcp/tool-descriptors/runtime-bindings.d.ts +2 -0
  154. package/dist/server/modules/mcp/tool-descriptors/runtime-bindings.js +29 -0
  155. package/dist/server/modules/mcp/tool-descriptors/runtime-bindings.js.map +1 -0
  156. package/dist/server/modules/mcp/tool-descriptors/session.bindings.d.ts +1 -2
  157. package/dist/server/modules/mcp/tool-descriptors/session.bindings.js +11 -2
  158. package/dist/server/modules/mcp/tool-descriptors/session.bindings.js.map +1 -1
  159. package/dist/server/modules/mcp/tool-descriptors/skill.bindings.d.ts +1 -2
  160. package/dist/server/modules/mcp/tool-descriptors/skill.bindings.js +10 -2
  161. package/dist/server/modules/mcp/tool-descriptors/skill.bindings.js.map +1 -1
  162. package/dist/server/modules/mcp/tool-descriptors/team.bindings.d.ts +1 -2
  163. package/dist/server/modules/mcp/tool-descriptors/team.bindings.js +11 -2
  164. package/dist/server/modules/mcp/tool-descriptors/team.bindings.js.map +1 -1
  165. package/dist/server/modules/mcp/tool-descriptors/types.d.ts +0 -2
  166. package/dist/server/modules/project-communication/project-communication.service.d.ts +2 -0
  167. package/dist/server/modules/project-communication/project-communication.service.js +72 -20
  168. package/dist/server/modules/project-communication/project-communication.service.js.map +1 -1
  169. package/dist/server/modules/projects/controllers/projects.controller.d.ts +2 -1
  170. package/dist/server/modules/projects/controllers/projects.controller.js +16 -3
  171. package/dist/server/modules/projects/controllers/projects.controller.js.map +1 -1
  172. package/dist/server/modules/projects/dtos/template-upgrade.dto.d.ts +1 -0
  173. package/dist/server/modules/projects/dtos/template-upgrade.dto.js +9 -0
  174. package/dist/server/modules/projects/dtos/template-upgrade.dto.js.map +1 -1
  175. package/dist/server/modules/projects/events/project-workspace-changed.events.d.ts +6 -0
  176. package/dist/server/modules/projects/events/project-workspace-changed.events.js +5 -0
  177. package/dist/server/modules/projects/events/project-workspace-changed.events.js.map +1 -0
  178. package/dist/server/modules/projects/helpers/template-loader.d.ts +1 -0
  179. package/dist/server/modules/projects/helpers/template-loader.js +1 -0
  180. package/dist/server/modules/projects/helpers/template-loader.js.map +1 -1
  181. package/dist/server/modules/projects/services/project-registry-import.service.d.ts +2 -0
  182. package/dist/server/modules/projects/services/project-registry-import.service.js +3 -1
  183. package/dist/server/modules/projects/services/project-registry-import.service.js.map +1 -1
  184. package/dist/server/modules/projects/services/projects.service.d.ts +4 -1
  185. package/dist/server/modules/projects/services/projects.service.js +17 -3
  186. package/dist/server/modules/projects/services/projects.service.js.map +1 -1
  187. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js +14 -16
  188. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js.map +1 -1
  189. package/dist/server/modules/seeders/seeders/0003_seed_preseed_jeffallan_claude_skills.js +45 -15
  190. package/dist/server/modules/seeders/seeders/0003_seed_preseed_jeffallan_claude_skills.js.map +1 -1
  191. package/dist/server/modules/seeders/seeders/0005_seed_renew_instructions_subscriber.js +2 -2
  192. package/dist/server/modules/seeders/seeders/0005_seed_renew_instructions_subscriber.js.map +1 -1
  193. package/dist/server/modules/session-reader/data/pricing.json +51 -4
  194. package/dist/server/modules/session-reader/services/transcript-serialization.d.ts +13 -0
  195. package/dist/server/modules/session-reader/services/transcript-serialization.js +41 -0
  196. package/dist/server/modules/session-reader/services/transcript-serialization.js.map +1 -1
  197. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.module.d.ts +2 -0
  198. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.module.js +25 -0
  199. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.module.js.map +1 -0
  200. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.d.ts +19 -0
  201. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.js +118 -0
  202. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.js.map +1 -0
  203. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.types.d.ts +10 -0
  204. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.types.js +3 -0
  205. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.types.js.map +1 -0
  206. package/dist/server/modules/sessions/services/message-enqueue.service.d.ts +2 -1
  207. package/dist/server/modules/sessions/services/message-enqueue.service.js +1 -0
  208. package/dist/server/modules/sessions/services/message-enqueue.service.js.map +1 -1
  209. package/dist/server/modules/sessions/services/message-pool.types.d.ts +6 -1
  210. package/dist/server/modules/sessions/services/message-pool.types.js +10 -1
  211. package/dist/server/modules/sessions/services/message-pool.types.js.map +1 -1
  212. package/dist/server/modules/sessions/services/provider-runtime-preparation/index.d.ts +2 -0
  213. package/dist/server/modules/sessions/services/provider-runtime-preparation/index.js +6 -0
  214. package/dist/server/modules/sessions/services/provider-runtime-preparation/index.js.map +1 -0
  215. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.d.ts +24 -0
  216. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js +297 -0
  217. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js.map +1 -0
  218. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.types.d.ts +41 -0
  219. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.types.js +8 -0
  220. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.types.js.map +1 -0
  221. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.d.ts +33 -37
  222. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js +37 -56
  223. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js.map +1 -1
  224. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.d.ts +3 -5
  225. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js +23 -112
  226. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js.map +1 -1
  227. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.d.ts +3 -9
  228. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js +23 -125
  229. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js.map +1 -1
  230. package/dist/server/modules/sessions/services/sessions-message-pool.service.d.ts +13 -1
  231. package/dist/server/modules/sessions/services/sessions-message-pool.service.js +253 -20
  232. package/dist/server/modules/sessions/services/sessions-message-pool.service.js.map +1 -1
  233. package/dist/server/modules/sessions/services/sessions.service.d.ts +0 -13
  234. package/dist/server/modules/sessions/services/sessions.service.js +0 -66
  235. package/dist/server/modules/sessions/services/sessions.service.js.map +1 -1
  236. package/dist/server/modules/sessions/sessions-lifecycle.module.js.map +1 -1
  237. package/dist/server/modules/sessions/sessions.module.js +3 -1
  238. package/dist/server/modules/sessions/sessions.module.js.map +1 -1
  239. package/dist/server/modules/settings/dtos/settings.dto.d.ts +2 -2
  240. package/dist/server/modules/skills/controllers/community-sources.controller.d.ts +3 -3
  241. package/dist/server/modules/skills/controllers/community-sources.controller.js +8 -8
  242. package/dist/server/modules/skills/controllers/community-sources.controller.js.map +1 -1
  243. package/dist/server/modules/skills/controllers/local-sources.controller.d.ts +3 -3
  244. package/dist/server/modules/skills/controllers/local-sources.controller.js +8 -8
  245. package/dist/server/modules/skills/controllers/local-sources.controller.js.map +1 -1
  246. package/dist/server/modules/skills/controllers/skills.controller.d.ts +4 -3
  247. package/dist/server/modules/skills/controllers/skills.controller.js +7 -7
  248. package/dist/server/modules/skills/controllers/skills.controller.js.map +1 -1
  249. package/dist/server/modules/skills/services/skill-source-lifecycle.service.d.ts +42 -0
  250. package/dist/server/modules/skills/services/{local-sources.service.js → skill-source-lifecycle.service.js} +187 -62
  251. package/dist/server/modules/skills/services/skill-source-lifecycle.service.js.map +1 -0
  252. package/dist/server/modules/skills/services/skill-sync.service.d.ts +2 -20
  253. package/dist/server/modules/skills/services/skill-sync.service.js +30 -68
  254. package/dist/server/modules/skills/services/skill-sync.service.js.map +1 -1
  255. package/dist/server/modules/skills/services/skill-sync.types.d.ts +14 -0
  256. package/dist/server/modules/{mcp/services/handlers/types.js → skills/services/skill-sync.types.js} +1 -1
  257. package/dist/server/modules/skills/services/skill-sync.types.js.map +1 -0
  258. package/dist/server/modules/skills/services/skills.service.d.ts +0 -1
  259. package/dist/server/modules/skills/services/skills.service.js +0 -3
  260. package/dist/server/modules/skills/services/skills.service.js.map +1 -1
  261. package/dist/server/modules/skills/skills.module.js +2 -5
  262. package/dist/server/modules/skills/skills.module.js.map +1 -1
  263. package/dist/server/modules/storage/db/db.provider.d.ts +4 -0
  264. package/dist/server/modules/storage/db/db.provider.js +13 -1
  265. package/dist/server/modules/storage/db/db.provider.js.map +1 -1
  266. package/dist/server/modules/storage/db/schema.d.ts +182 -0
  267. package/dist/server/modules/storage/db/schema.js +23 -2
  268. package/dist/server/modules/storage/db/schema.js.map +1 -1
  269. package/dist/server/modules/storage/db/transaction-runner.d.ts +9 -0
  270. package/dist/server/modules/storage/db/transaction-runner.js +142 -4
  271. package/dist/server/modules/storage/db/transaction-runner.js.map +1 -1
  272. package/dist/server/modules/storage/interfaces/storage.interface.d.ts +31 -9
  273. package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
  274. package/dist/server/modules/storage/local/delegates/agent.delegate.d.ts +3 -2
  275. package/dist/server/modules/storage/local/delegates/agent.delegate.js +45 -6
  276. package/dist/server/modules/storage/local/delegates/agent.delegate.js.map +1 -1
  277. package/dist/server/modules/storage/local/delegates/base-storage.delegate.d.ts +2 -0
  278. package/dist/server/modules/storage/local/delegates/base-storage.delegate.js +3 -0
  279. package/dist/server/modules/storage/local/delegates/base-storage.delegate.js.map +1 -1
  280. package/dist/server/modules/storage/local/delegates/document.delegate.d.ts +4 -6
  281. package/dist/server/modules/storage/local/delegates/document.delegate.js +86 -79
  282. package/dist/server/modules/storage/local/delegates/document.delegate.js.map +1 -1
  283. package/dist/server/modules/storage/local/delegates/epic.delegate.d.ts +6 -4
  284. package/dist/server/modules/storage/local/delegates/epic.delegate.js +94 -60
  285. package/dist/server/modules/storage/local/delegates/epic.delegate.js.map +1 -1
  286. package/dist/server/modules/storage/local/delegates/project-workspace.delegate.d.ts +16 -0
  287. package/dist/server/modules/storage/local/delegates/project-workspace.delegate.js +191 -0
  288. package/dist/server/modules/storage/local/delegates/project-workspace.delegate.js.map +1 -0
  289. package/dist/server/modules/storage/local/delegates/project.delegate.d.ts +7 -2
  290. package/dist/server/modules/storage/local/delegates/project.delegate.js +126 -140
  291. package/dist/server/modules/storage/local/delegates/project.delegate.js.map +1 -1
  292. package/dist/server/modules/storage/local/delegates/prompt.delegate.d.ts +3 -2
  293. package/dist/server/modules/storage/local/delegates/prompt.delegate.js +65 -66
  294. package/dist/server/modules/storage/local/delegates/prompt.delegate.js.map +1 -1
  295. package/dist/server/modules/storage/local/delegates/record.delegate.d.ts +3 -2
  296. package/dist/server/modules/storage/local/delegates/record.delegate.js +76 -62
  297. package/dist/server/modules/storage/local/delegates/record.delegate.js.map +1 -1
  298. package/dist/server/modules/storage/local/delegates/review.delegate.d.ts +3 -6
  299. package/dist/server/modules/storage/local/delegates/review.delegate.js +93 -72
  300. package/dist/server/modules/storage/local/delegates/review.delegate.js.map +1 -1
  301. package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.d.ts +4 -2
  302. package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.js +53 -20
  303. package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.js.map +1 -1
  304. package/dist/server/modules/storage/local/delegates/skill-source.delegate.d.ts +7 -11
  305. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js +135 -160
  306. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js.map +1 -1
  307. package/dist/server/modules/storage/local/delegates/tag.delegate.d.ts +1 -0
  308. package/dist/server/modules/storage/local/delegates/tag.delegate.js +11 -5
  309. package/dist/server/modules/storage/local/delegates/tag.delegate.js.map +1 -1
  310. package/dist/server/modules/storage/local/helpers/storage-helpers.d.ts +0 -2
  311. package/dist/server/modules/storage/local/helpers/storage-helpers.js +1 -24
  312. package/dist/server/modules/storage/local/helpers/storage-helpers.js.map +1 -1
  313. package/dist/server/modules/storage/local/local-storage.service.d.ts +15 -12
  314. package/dist/server/modules/storage/local/local-storage.service.js +40 -95
  315. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
  316. package/dist/server/modules/storage/local/versioned-mutation.executor.d.ts +31 -0
  317. package/dist/server/modules/storage/local/versioned-mutation.executor.js +50 -0
  318. package/dist/server/modules/storage/local/versioned-mutation.executor.js.map +1 -0
  319. package/dist/server/modules/storage/models/domain.models.d.ts +18 -1
  320. package/dist/server/modules/subscribers/actions/action.interface.d.ts +4 -0
  321. package/dist/server/modules/subscribers/actions/actions.registry.js +4 -0
  322. package/dist/server/modules/subscribers/actions/actions.registry.js.map +1 -1
  323. package/dist/server/modules/subscribers/actions/delete-agent.action.d.ts +16 -0
  324. package/dist/server/modules/subscribers/actions/delete-agent.action.js +200 -0
  325. package/dist/server/modules/subscribers/actions/delete-agent.action.js.map +1 -0
  326. package/dist/server/modules/subscribers/actions/family-agent-targets.d.ts +4 -0
  327. package/dist/server/modules/subscribers/actions/family-agent-targets.js +35 -0
  328. package/dist/server/modules/subscribers/actions/family-agent-targets.js.map +1 -0
  329. package/dist/server/modules/subscribers/actions/send-message.action.js +22 -9
  330. package/dist/server/modules/subscribers/actions/send-message.action.js.map +1 -1
  331. package/dist/server/modules/subscribers/actions/terminate-session.action.d.ts +27 -0
  332. package/dist/server/modules/subscribers/actions/terminate-session.action.js +204 -0
  333. package/dist/server/modules/subscribers/actions/terminate-session.action.js.map +1 -0
  334. package/dist/server/modules/subscribers/dtos/subscriber.dto.js +3 -2
  335. package/dist/server/modules/subscribers/dtos/subscriber.dto.js.map +1 -1
  336. package/dist/server/modules/subscribers/events/event-fields-catalog.js +1 -1
  337. package/dist/server/modules/subscribers/events/event-fields-catalog.js.map +1 -1
  338. package/dist/server/modules/subscribers/services/subscriber-executor.service.d.ts +3 -3
  339. package/dist/server/modules/subscribers/services/subscriber-executor.service.js +7 -13
  340. package/dist/server/modules/subscribers/services/subscriber-executor.service.js.map +1 -1
  341. package/dist/server/modules/subscribers/subscribers.module.js +2 -0
  342. package/dist/server/modules/subscribers/subscribers.module.js.map +1 -1
  343. package/dist/server/modules/teams/services/teams.service.d.ts +9 -0
  344. package/dist/server/modules/teams/services/teams.service.js +24 -6
  345. package/dist/server/modules/teams/services/teams.service.js.map +1 -1
  346. package/dist/server/modules/terminal/gateways/terminal.gateway.d.ts +6 -4
  347. package/dist/server/modules/terminal/gateways/terminal.gateway.js +13 -12
  348. package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
  349. package/dist/server/modules/terminal/services/pty.service.d.ts +7 -7
  350. package/dist/server/modules/terminal/services/pty.service.js +21 -24
  351. package/dist/server/modules/terminal/services/pty.service.js.map +1 -1
  352. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js.map +1 -1
  353. package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.d.ts +3 -3
  354. package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js +8 -12
  355. package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js.map +1 -1
  356. package/dist/server/modules/terminal/services/terminal-seed.service.d.ts +3 -3
  357. package/dist/server/modules/terminal/services/terminal-seed.service.js +11 -18
  358. package/dist/server/modules/terminal/services/terminal-seed.service.js.map +1 -1
  359. package/dist/server/modules/terminal/services/terminal-viewport/terminal-viewport.facade.js.map +1 -1
  360. package/dist/server/modules/terminal/terminal-key-input.module.js.map +1 -1
  361. package/dist/server/modules/terminal/terminal-viewport.module.js.map +1 -1
  362. package/dist/server/modules/terminal/terminal.module.js +2 -2
  363. package/dist/server/modules/terminal/terminal.module.js.map +1 -1
  364. package/dist/server/modules/workspaces/controllers/workspaces.controller.d.ts +11 -0
  365. package/dist/server/modules/workspaces/controllers/workspaces.controller.js +101 -0
  366. package/dist/server/modules/workspaces/controllers/workspaces.controller.js.map +1 -0
  367. package/dist/server/modules/workspaces/services/workspace-mode-control.d.ts +6 -0
  368. package/dist/server/modules/workspaces/services/workspace-mode-control.js +5 -0
  369. package/dist/server/modules/workspaces/services/workspace-mode-control.js.map +1 -0
  370. package/dist/server/modules/workspaces/services/workspace-mode-coordinator.service.d.ts +23 -0
  371. package/dist/server/modules/workspaces/services/workspace-mode-coordinator.service.js +137 -0
  372. package/dist/server/modules/workspaces/services/workspace-mode-coordinator.service.js.map +1 -0
  373. package/dist/server/modules/workspaces/services/workspaces.service.d.ts +11 -0
  374. package/dist/server/modules/workspaces/services/workspaces.service.js +41 -0
  375. package/dist/server/modules/workspaces/services/workspaces.service.js.map +1 -0
  376. package/dist/server/modules/workspaces/workspaces.module.d.ts +2 -0
  377. package/dist/server/modules/workspaces/workspaces.module.js +26 -0
  378. package/dist/server/modules/workspaces/workspaces.module.js.map +1 -0
  379. package/dist/server/templates/teams-dev.json +214 -15
  380. package/dist/server/tsconfig.tsbuildinfo +1 -1
  381. package/dist/server/ui/assets/{ReviewDetailPage-BXLlZvPO.js → ReviewDetailPage-CNffXKv8.js} +1 -1
  382. package/dist/server/ui/assets/{ReviewsPage-CmFUc6IP.js → ReviewsPage-DAcufZ3r.js} +1 -1
  383. package/dist/server/ui/assets/index-7iCs8Dxj.js +1153 -0
  384. package/dist/server/ui/assets/index-CLXZjL_B.css +32 -0
  385. package/dist/server/ui/assets/{useReviewSubscription-Ch8K_5xz.js → useReviewSubscription-DD29I7uU.js} +1 -1
  386. package/dist/server/ui/index.html +2 -2
  387. package/dist/templates/teams-dev.json +214 -15
  388. package/package.json +13 -2
  389. package/dist/server/modules/mcp/services/handlers/types.d.ts +0 -2
  390. package/dist/server/modules/mcp/services/handlers/types.js.map +0 -1
  391. package/dist/server/modules/skills/services/community-sources.service.d.ts +0 -18
  392. package/dist/server/modules/skills/services/community-sources.service.js +0 -161
  393. package/dist/server/modules/skills/services/community-sources.service.js.map +0 -1
  394. package/dist/server/modules/skills/services/local-sources.service.d.ts +0 -20
  395. package/dist/server/modules/skills/services/local-sources.service.js.map +0 -1
  396. package/dist/server/ui/assets/index-LNBfBNWF.js +0 -1148
  397. package/dist/server/ui/assets/index-NypjSmlZ.css +0 -32
@@ -0,0 +1,1069 @@
1
+ import { z } from 'zod';
2
+ export const MOBILE_RPC_CRYPTO_MODES = {
3
+ conditionalSeal: 'conditional-seal',
4
+ plaintextBootstrap: 'plaintext-bootstrap',
5
+ sealedOnly: 'sealed-only',
6
+ };
7
+ export const MOBILE_RPC_PARAMS_MODES = {
8
+ passthrough: 'passthrough',
9
+ strict: 'strict',
10
+ };
11
+ export const MOBILE_RPC_COMPATIBILITY_FACTS = {
12
+ projectIdDerivedFromStatus: 'project-id-derived-from-status',
13
+ optionalClientMessageId: 'optional-client-message-id',
14
+ expiredCursorReturnsNull: 'expired-cursor-returns-null',
15
+ replaceFromChunkIdAuthoritative: 'replace-from-chunk-id-authoritative',
16
+ transcriptIsoTimestampProjection: 'transcript-iso-timestamp-projection',
17
+ deprecatedTranscriptTurnsPreserved: 'deprecated-transcript-turns-preserved',
18
+ viewportDimensionsIgnored: 'viewport-dimensions-ignored',
19
+ viewportRequiresTunnelV2: 'viewport-requires-tunnel-v2',
20
+ nonCanonicalInstallIdKeepsAppendBehavior: 'non-canonical-install-id-keeps-append-behavior',
21
+ trustImplementationValidatesKeyAndKid: 'trust-implementation-validates-key-and-kid',
22
+ revokeParamsIgnored: 'revoke-params-ignored',
23
+ revokeIdentityFromVerifiedSenderKid: 'revoke-identity-from-verified-sender-kid',
24
+ };
25
+ const uuidSchema = z.string().uuid();
26
+ const isoTimestampSchema = z.string().datetime({ offset: true });
27
+ const projectSchema = z
28
+ .object({
29
+ id: uuidSchema,
30
+ name: z.string(),
31
+ })
32
+ .passthrough();
33
+ const projectWorkspaceSchema = z
34
+ .object({
35
+ id: uuidSchema,
36
+ name: z.string(),
37
+ isDefault: z.boolean(),
38
+ position: z.number().int().nonnegative(),
39
+ projectCount: z.number().int().nonnegative(),
40
+ })
41
+ .passthrough();
42
+ const statusSchema = z
43
+ .object({
44
+ id: uuidSchema,
45
+ name: z.string(),
46
+ color: z.string(),
47
+ position: z.number().int(),
48
+ })
49
+ .passthrough();
50
+ const statusWithCountSchema = z
51
+ .object({
52
+ status: statusSchema,
53
+ epicCount: z.number().int().nonnegative(),
54
+ })
55
+ .passthrough();
56
+ const childStatusCountSchema = z
57
+ .object({
58
+ statusId: uuidSchema,
59
+ statusName: z.string().optional(),
60
+ statusColor: z.string().optional(),
61
+ count: z.number().int().nonnegative(),
62
+ })
63
+ .passthrough();
64
+ const epicSchema = z
65
+ .object({
66
+ id: uuidSchema,
67
+ projectId: uuidSchema,
68
+ title: z.string(),
69
+ statusId: uuidSchema,
70
+ statusName: z.string().optional(),
71
+ statusColor: z.string().optional(),
72
+ statusPosition: z.number().int().optional(),
73
+ status: statusSchema.optional(),
74
+ agentId: uuidSchema.nullable(),
75
+ agentName: z.string().optional(),
76
+ parentId: uuidSchema.nullable(),
77
+ version: z.number().int().nonnegative(),
78
+ updatedAt: isoTimestampSchema,
79
+ description: z.string().nullable(),
80
+ createdAt: isoTimestampSchema,
81
+ tags: z.array(z.string()),
82
+ })
83
+ .passthrough();
84
+ const parentEpicSummarySchema = epicSchema.extend({
85
+ childCount: z.number().int().nonnegative(),
86
+ childStatusCounts: z.array(childStatusCountSchema),
87
+ });
88
+ const parentEpicsResponseSchema = z
89
+ .object({
90
+ statuses: z.array(statusSchema),
91
+ items: z.array(parentEpicSummarySchema),
92
+ total: z.number().int().nonnegative(),
93
+ limit: z.number().int().positive(),
94
+ offset: z.number().int().nonnegative(),
95
+ })
96
+ .passthrough();
97
+ const parentEpicsByStatusResponseSchema = z
98
+ .object({
99
+ items: z.array(parentEpicSummarySchema),
100
+ total: z.number().int().nonnegative(),
101
+ limit: z.number().int().positive(),
102
+ offset: z.number().int().nonnegative(),
103
+ })
104
+ .passthrough();
105
+ const parentChildrenResponseSchema = z
106
+ .object({
107
+ items: z.array(epicSchema),
108
+ total: z.number().int().nonnegative(),
109
+ limit: z.number().int().positive(),
110
+ offset: z.number().int().nonnegative(),
111
+ childStatusCounts: z.array(childStatusCountSchema),
112
+ })
113
+ .passthrough();
114
+ const epicCommentSchema = z
115
+ .object({
116
+ id: uuidSchema,
117
+ epicId: uuidSchema,
118
+ authorName: z.string(),
119
+ content: z.string(),
120
+ createdAt: isoTimestampSchema,
121
+ updatedAt: isoTimestampSchema,
122
+ })
123
+ .passthrough();
124
+ const epicCommentsPageSchema = z
125
+ .object({
126
+ items: z.array(epicCommentSchema),
127
+ total: z.number().int().nonnegative(),
128
+ limit: z.number().int().positive(),
129
+ offset: z.number().int().nonnegative(),
130
+ })
131
+ .passthrough();
132
+ const tokenUsageSchema = z
133
+ .object({
134
+ input: z.number(),
135
+ output: z.number(),
136
+ cacheRead: z.number(),
137
+ cacheCreation: z.number(),
138
+ })
139
+ .passthrough();
140
+ const textContentBlockSchema = z
141
+ .object({
142
+ type: z.literal('text'),
143
+ text: z.string(),
144
+ })
145
+ .passthrough();
146
+ const thinkingContentBlockSchema = z
147
+ .object({
148
+ type: z.literal('thinking'),
149
+ thinking: z.string(),
150
+ signature: z.string().optional(),
151
+ })
152
+ .passthrough();
153
+ const toolCallContentBlockSchema = z
154
+ .object({
155
+ type: z.literal('tool_call'),
156
+ toolCallId: z.string(),
157
+ toolName: z.string(),
158
+ input: z.record(z.unknown()),
159
+ })
160
+ .passthrough();
161
+ const toolResultContentBlockSchema = z
162
+ .object({
163
+ type: z.literal('tool_result'),
164
+ toolCallId: z.string(),
165
+ content: z.union([z.string(), z.array(z.unknown())]),
166
+ isError: z.boolean(),
167
+ isTruncated: z.boolean().optional(),
168
+ fullLength: z.number().int().nonnegative().optional(),
169
+ })
170
+ .passthrough();
171
+ const imageContentBlockSchema = z
172
+ .object({
173
+ type: z.literal('image'),
174
+ mediaType: z.string(),
175
+ data: z.string(),
176
+ })
177
+ .passthrough();
178
+ const contentBlockSchema = z.discriminatedUnion('type', [
179
+ textContentBlockSchema,
180
+ thinkingContentBlockSchema,
181
+ toolCallContentBlockSchema,
182
+ toolResultContentBlockSchema,
183
+ imageContentBlockSchema,
184
+ ]);
185
+ const unifiedToolCallSchema = z
186
+ .object({
187
+ id: z.string(),
188
+ name: z.string(),
189
+ input: z.record(z.unknown()),
190
+ isTask: z.boolean(),
191
+ taskDescription: z.string().optional(),
192
+ taskSubagentType: z.string().optional(),
193
+ })
194
+ .passthrough();
195
+ const unifiedToolResultSchema = z
196
+ .object({
197
+ toolCallId: z.string(),
198
+ content: z.union([z.string(), z.array(z.unknown())]),
199
+ isError: z.boolean(),
200
+ isTruncated: z.boolean().optional(),
201
+ fullLength: z.number().int().nonnegative().optional(),
202
+ })
203
+ .passthrough();
204
+ const serializedMessageSchema = z
205
+ .object({
206
+ id: z.string(),
207
+ parentId: z.string().nullable(),
208
+ role: z.enum(['user', 'assistant', 'system']),
209
+ timestamp: isoTimestampSchema,
210
+ content: z.array(contentBlockSchema),
211
+ usage: tokenUsageSchema.optional(),
212
+ model: z.string().optional(),
213
+ toolCalls: z.array(unifiedToolCallSchema),
214
+ toolResults: z.array(unifiedToolResultSchema),
215
+ isMeta: z.boolean(),
216
+ isSidechain: z.boolean(),
217
+ isCompactSummary: z.boolean().optional(),
218
+ sourceToolUseId: z.string().optional(),
219
+ stopReason: z.string().nullable().optional(),
220
+ })
221
+ .passthrough();
222
+ const chunkMetricsSchema = z
223
+ .object({
224
+ inputTokens: z.number(),
225
+ outputTokens: z.number(),
226
+ cacheReadTokens: z.number(),
227
+ cacheCreationTokens: z.number(),
228
+ totalTokens: z.number(),
229
+ messageCount: z.number().int().nonnegative(),
230
+ durationMs: z.number(),
231
+ costUsd: z.number(),
232
+ })
233
+ .passthrough();
234
+ const semanticStepContentSchema = z
235
+ .object({
236
+ thinkingText: z.string().optional(),
237
+ toolName: z.string().optional(),
238
+ toolInput: z.record(z.unknown()).optional(),
239
+ toolCallId: z.string().optional(),
240
+ toolResultContent: z.union([z.string(), z.array(z.unknown())]).optional(),
241
+ isTruncated: z.boolean().optional(),
242
+ fullLength: z.number().int().nonnegative().optional(),
243
+ isError: z.boolean().optional(),
244
+ outputText: z.string().optional(),
245
+ subagentId: z.string().optional(),
246
+ subagentDescription: z.string().optional(),
247
+ interruptionText: z.string().optional(),
248
+ sourceModel: z.string().optional(),
249
+ })
250
+ .passthrough();
251
+ const semanticStepTokensSchema = z
252
+ .object({
253
+ input: z.number(),
254
+ output: z.number(),
255
+ cached: z.number().optional(),
256
+ })
257
+ .passthrough();
258
+ const semanticStepSchema = z
259
+ .object({
260
+ id: z.string(),
261
+ type: z.enum(['thinking', 'tool_call', 'tool_result', 'output', 'subagent', 'interruption']),
262
+ startTime: isoTimestampSchema,
263
+ durationMs: z.number(),
264
+ content: semanticStepContentSchema,
265
+ tokens: semanticStepTokensSchema.optional(),
266
+ estimatedTokens: z.number().optional(),
267
+ sourceMessageId: z.string().optional(),
268
+ context: z.enum(['main', 'subagent']),
269
+ })
270
+ .passthrough();
271
+ const turnSummarySchema = z
272
+ .object({
273
+ thinkingCount: z.number().int().nonnegative(),
274
+ toolCallCount: z.number().int().nonnegative(),
275
+ subagentCount: z.number().int().nonnegative(),
276
+ outputCount: z.number().int().nonnegative(),
277
+ })
278
+ .passthrough();
279
+ const deprecatedTurnSchema = z
280
+ .object({
281
+ id: z.string(),
282
+ assistantMessageId: z.string(),
283
+ model: z.string().optional(),
284
+ timestamp: isoTimestampSchema,
285
+ steps: z.array(semanticStepSchema),
286
+ summary: turnSummarySchema,
287
+ tokens: semanticStepTokensSchema.optional(),
288
+ durationMs: z.number(),
289
+ })
290
+ .passthrough();
291
+ const chunkBaseShape = {
292
+ id: z.string(),
293
+ startTime: isoTimestampSchema,
294
+ endTime: isoTimestampSchema,
295
+ messages: z.array(serializedMessageSchema),
296
+ metrics: chunkMetricsSchema,
297
+ };
298
+ const transcriptChunkSchema = z.discriminatedUnion('type', [
299
+ z.object({ ...chunkBaseShape, type: z.literal('user') }).passthrough(),
300
+ z
301
+ .object({
302
+ ...chunkBaseShape,
303
+ type: z.literal('ai'),
304
+ semanticSteps: z.array(semanticStepSchema),
305
+ turns: z.array(deprecatedTurnSchema).optional(),
306
+ })
307
+ .passthrough(),
308
+ z.object({ ...chunkBaseShape, type: z.literal('system') }).passthrough(),
309
+ z.object({ ...chunkBaseShape, type: z.literal('compact') }).passthrough(),
310
+ ]);
311
+ const phaseTokenBreakdownSchema = z
312
+ .object({
313
+ phaseNumber: z.number().int(),
314
+ contribution: z.number(),
315
+ peakTokens: z.number(),
316
+ postCompaction: z.number().optional(),
317
+ compactionMessageId: z.string().optional(),
318
+ })
319
+ .passthrough();
320
+ const unifiedMetricsSchema = z
321
+ .object({
322
+ inputTokens: z.number(),
323
+ outputTokens: z.number(),
324
+ cacheReadTokens: z.number(),
325
+ cacheCreationTokens: z.number(),
326
+ totalTokens: z.number(),
327
+ totalContextConsumption: z.number(),
328
+ compactionCount: z.number().int().nonnegative(),
329
+ phaseBreakdowns: z.array(phaseTokenBreakdownSchema),
330
+ visibleContextTokens: z.number(),
331
+ totalContextTokens: z.number(),
332
+ contextWindowTokens: z.number(),
333
+ contextBreakdown: z
334
+ .object({
335
+ system: z.number(),
336
+ conversation: z.number(),
337
+ toolDefinitions: z.number(),
338
+ })
339
+ .passthrough()
340
+ .optional(),
341
+ costUsd: z.number(),
342
+ nativeCost: z.number().optional(),
343
+ primaryModel: z.string(),
344
+ modelsUsed: z.array(z.string()).optional(),
345
+ durationMs: z.number(),
346
+ messageCount: z.number().int().nonnegative(),
347
+ isOngoing: z.boolean(),
348
+ })
349
+ .passthrough();
350
+ const transcriptSummaryWithCursorSchema = z
351
+ .object({
352
+ sessionId: uuidSchema,
353
+ providerName: z.string(),
354
+ metrics: unifiedMetricsSchema,
355
+ messageCount: z.number().int().nonnegative(),
356
+ isOngoing: z.boolean(),
357
+ cursor: z.string().min(1),
358
+ })
359
+ .passthrough();
360
+ const unifiedChunkedResponseSchema = z
361
+ .object({
362
+ chunks: z.array(transcriptChunkSchema),
363
+ nextCursor: z.string().nullable(),
364
+ prevCursor: z.string().nullable(),
365
+ totalCount: z.number().int().nonnegative(),
366
+ })
367
+ .passthrough();
368
+ const transcriptSourceChangeKindSchema = z.enum([
369
+ 'cache-hit',
370
+ 'same-file-append',
371
+ 'file-replacement',
372
+ 'file-truncation',
373
+ 'same-file-rewrite',
374
+ 'db-update',
375
+ 'unknown-full-parse',
376
+ ]);
377
+ const transcriptTailDeltaSchema = z
378
+ .object({
379
+ kind: z.literal('delta'),
380
+ cursor: z.string().min(1),
381
+ replaceFromChunkId: z.string().nullable(),
382
+ replaceFromChunkIndex: z.number().int().nonnegative(),
383
+ deltaChunks: z.array(transcriptChunkSchema),
384
+ deltaMessages: z.array(serializedMessageSchema),
385
+ metrics: unifiedMetricsSchema,
386
+ totalChunkCount: z.number().int().nonnegative(),
387
+ totalMessageCount: z.number().int().nonnegative(),
388
+ })
389
+ .passthrough();
390
+ const transcriptTailFullRefetchSchema = z
391
+ .object({
392
+ kind: z.literal('full-refetch-required'),
393
+ sourceChangeKind: transcriptSourceChangeKindSchema,
394
+ })
395
+ .passthrough();
396
+ const transcriptTailResponseSchema = z
397
+ .union([transcriptTailDeltaSchema, transcriptTailFullRefetchSchema])
398
+ .nullable();
399
+ const mobileChatAgentSchema = z
400
+ .object({
401
+ id: uuidSchema,
402
+ name: z.string(),
403
+ type: z.literal('agent'),
404
+ profileName: z.string().optional(),
405
+ providerName: z.string().optional(),
406
+ providerConfigName: z.string().optional(),
407
+ online: z.boolean(),
408
+ sessionId: uuidSchema.optional(),
409
+ activityState: z.enum(['idle', 'busy']).nullable().optional(),
410
+ latestMessageCount: z.number().int().nonnegative().optional(),
411
+ })
412
+ .passthrough();
413
+ const mobileChatTeamSchema = z
414
+ .object({
415
+ id: uuidSchema,
416
+ name: z.string(),
417
+ teamLeadAgentId: uuidSchema.nullable(),
418
+ memberAgentIds: z.array(uuidSchema),
419
+ memberCount: z.number().int().nonnegative().optional(),
420
+ })
421
+ .passthrough();
422
+ const mobileChatProfileSchema = z
423
+ .object({
424
+ id: uuidSchema,
425
+ name: z.string(),
426
+ familySlug: z.string().nullable().optional(),
427
+ })
428
+ .passthrough();
429
+ const mobileChatProviderConfigSchema = z
430
+ .object({
431
+ id: uuidSchema,
432
+ profileId: uuidSchema,
433
+ providerId: uuidSchema,
434
+ providerName: z.string().optional(),
435
+ name: z.string(),
436
+ position: z.number().int(),
437
+ })
438
+ .passthrough();
439
+ const mobileChatCreatedAgentSchema = z
440
+ .object({
441
+ id: uuidSchema,
442
+ name: z.string(),
443
+ profileId: uuidSchema,
444
+ providerConfigId: uuidSchema,
445
+ description: z.string().nullable(),
446
+ teamId: uuidSchema.nullable(),
447
+ })
448
+ .passthrough();
449
+ const customPromptSummarySchema = z
450
+ .object({
451
+ id: uuidSchema,
452
+ title: z.string(),
453
+ })
454
+ .passthrough();
455
+ const customPromptDetailSchema = customPromptSummarySchema.extend({ content: z.string() });
456
+ const sendMessageResultSchema = z
457
+ .object({
458
+ status: z.enum(['queued', 'delivered']),
459
+ messageId: z.string().optional(),
460
+ clientMessageId: uuidSchema.optional(),
461
+ })
462
+ .passthrough();
463
+ const pendingMobileMessageSchema = z
464
+ .object({
465
+ messageId: z.string(),
466
+ clientMessageId: uuidSchema,
467
+ text: z.string(),
468
+ status: z.enum(['queued', 'delivered', 'failed', 'unconfirmed']),
469
+ timestamp: z.number(),
470
+ deliveredAt: z.number().optional(),
471
+ failureCode: z
472
+ .enum([
473
+ 'paste_not_confirmed',
474
+ 'no_active_session',
475
+ 'project_delivery_failed',
476
+ 'send_keys_failed',
477
+ 'tmux_error',
478
+ ])
479
+ .optional(),
480
+ })
481
+ .passthrough();
482
+ const lifecycleStartResultSchema = z
483
+ .object({
484
+ operationId: uuidSchema,
485
+ status: z.enum(['launching', 'restarting', 'restoring']),
486
+ })
487
+ .passthrough();
488
+ const lifecycleOperationSchema = z
489
+ .object({
490
+ operationId: uuidSchema,
491
+ type: z.enum(['launch', 'restart', 'restore']),
492
+ agentId: uuidSchema.nullable(),
493
+ sessionId: uuidSchema.nullable(),
494
+ projectId: uuidSchema,
495
+ status: z.enum(['pending', 'running', 'succeeded', 'failed']),
496
+ errorCode: z.string().optional(),
497
+ errorMessage: z.string().optional(),
498
+ createdAt: isoTimestampSchema,
499
+ updatedAt: isoTimestampSchema,
500
+ })
501
+ .passthrough();
502
+ const askUserQuestionOptionSchema = z
503
+ .object({
504
+ label: z.string().min(1),
505
+ description: z.string(),
506
+ })
507
+ .passthrough();
508
+ const askUserQuestionSchema = z
509
+ .object({
510
+ question: z.string().min(1),
511
+ header: z.string().min(1),
512
+ multiSelect: z.boolean(),
513
+ options: z.array(askUserQuestionOptionSchema).min(1),
514
+ })
515
+ .passthrough();
516
+ const pendingAskUserQuestionSchema = z
517
+ .object({
518
+ toolUseId: z.string().min(1),
519
+ questions: z.array(askUserQuestionSchema).min(1),
520
+ createdAt: z.number(),
521
+ expiresAt: z.number(),
522
+ })
523
+ .passthrough();
524
+ const sessionHistoryItemSchema = z
525
+ .object({
526
+ id: uuidSchema,
527
+ providerSessionId: z.string().nullable(),
528
+ providerNameAtLaunch: z.string().nullable(),
529
+ status: z.enum(['stopped', 'failed']),
530
+ startedAt: isoTimestampSchema,
531
+ endedAt: isoTimestampSchema.nullable(),
532
+ lastActivityAt: isoTimestampSchema.nullable(),
533
+ sizeBytes: z.number().int().nonnegative().nullable(),
534
+ transcriptAvailable: z.boolean(),
535
+ name: z.string().nullable(),
536
+ })
537
+ .passthrough();
538
+ const sessionHistoryResponseSchema = z
539
+ .object({
540
+ items: z.array(sessionHistoryItemSchema),
541
+ nextCursor: z.string().nullable(),
542
+ hasMore: z.boolean(),
543
+ total: z.number().int().nonnegative(),
544
+ })
545
+ .passthrough();
546
+ const sessionSchema = z
547
+ .object({
548
+ id: uuidSchema,
549
+ epicId: uuidSchema.nullable(),
550
+ agentId: uuidSchema.nullable(),
551
+ tmuxSessionId: z.string().nullable(),
552
+ providerSessionId: z.string().nullable().optional(),
553
+ providerNameAtLaunch: z.string().nullable().optional(),
554
+ status: z.enum(['running', 'stopped', 'failed']),
555
+ startedAt: isoTimestampSchema,
556
+ endedAt: isoTimestampSchema.nullable(),
557
+ lastActivityAt: isoTimestampSchema.nullable().optional(),
558
+ activityState: z.enum(['idle', 'busy']).nullable().optional(),
559
+ busySince: isoTimestampSchema.nullable().optional(),
560
+ transcriptPath: z.string().nullable().optional(),
561
+ name: z.string().nullable().optional(),
562
+ createdAt: isoTimestampSchema,
563
+ updatedAt: isoTimestampSchema,
564
+ })
565
+ .passthrough();
566
+ const deviceTrustResultSchema = z
567
+ .object({
568
+ kid: z.string().min(1),
569
+ trust: z.enum(['unverified', 'verified', 'revoked']),
570
+ verifiedVia: z.enum(['qr', 'email-tofu', 'safety-number']).optional(),
571
+ })
572
+ .passthrough();
573
+ const conditionalSeal = MOBILE_RPC_CRYPTO_MODES.conditionalSeal;
574
+ const plaintextBootstrap = MOBILE_RPC_CRYPTO_MODES.plaintextBootstrap;
575
+ const sealedOnly = MOBILE_RPC_CRYPTO_MODES.sealedOnly;
576
+ const passthrough = MOBILE_RPC_PARAMS_MODES.passthrough;
577
+ const strict = MOBILE_RPC_PARAMS_MODES.strict;
578
+ const facts = MOBILE_RPC_COMPATIBILITY_FACTS;
579
+ const boardCatalog = {
580
+ 'board.listWorkspaces': {
581
+ paramsSchema: z.object({}).passthrough(),
582
+ resultSchema: z.array(projectWorkspaceSchema),
583
+ paramsMode: passthrough,
584
+ cryptoMode: conditionalSeal,
585
+ },
586
+ 'board.listProjects': {
587
+ paramsSchema: z.object({ workspaceId: uuidSchema.optional() }).passthrough(),
588
+ resultSchema: z.array(projectSchema),
589
+ paramsMode: passthrough,
590
+ cryptoMode: conditionalSeal,
591
+ },
592
+ 'board.listStatuses': {
593
+ paramsSchema: z.object({ projectId: uuidSchema }).passthrough(),
594
+ resultSchema: z.array(statusWithCountSchema),
595
+ paramsMode: passthrough,
596
+ cryptoMode: conditionalSeal,
597
+ },
598
+ 'board.listParentEpics': {
599
+ paramsSchema: z
600
+ .object({
601
+ projectId: uuidSchema,
602
+ type: z.enum(['active', 'archived', 'all']).optional(),
603
+ limit: z.number().int().positive().optional(),
604
+ offset: z.number().int().nonnegative().optional(),
605
+ limitPerParent: z.number().int().positive().optional(),
606
+ })
607
+ .passthrough(),
608
+ resultSchema: parentEpicsResponseSchema,
609
+ paramsMode: passthrough,
610
+ cryptoMode: conditionalSeal,
611
+ },
612
+ 'board.listParentChildren': {
613
+ paramsSchema: z
614
+ .object({
615
+ parentId: uuidSchema,
616
+ statusId: uuidSchema.optional(),
617
+ limit: z.number().int().positive().optional(),
618
+ offset: z.number().int().nonnegative().optional(),
619
+ })
620
+ .passthrough(),
621
+ resultSchema: parentChildrenResponseSchema,
622
+ paramsMode: passthrough,
623
+ cryptoMode: conditionalSeal,
624
+ },
625
+ 'board.listEpicsByStatus': {
626
+ paramsSchema: z
627
+ .object({
628
+ statusId: uuidSchema,
629
+ projectId: uuidSchema.optional(),
630
+ limit: z.number().int().positive().optional(),
631
+ offset: z.number().int().nonnegative().optional(),
632
+ })
633
+ .passthrough(),
634
+ resultSchema: z.array(epicSchema),
635
+ paramsMode: passthrough,
636
+ cryptoMode: conditionalSeal,
637
+ compatibility: [facts.projectIdDerivedFromStatus],
638
+ },
639
+ 'board.listParentEpicsByStatus': {
640
+ paramsSchema: z
641
+ .object({
642
+ projectId: uuidSchema,
643
+ statusId: uuidSchema,
644
+ type: z.enum(['active', 'archived', 'all']).optional(),
645
+ limit: z.number().int().positive().optional(),
646
+ offset: z.number().int().nonnegative().optional(),
647
+ })
648
+ .passthrough(),
649
+ resultSchema: parentEpicsByStatusResponseSchema,
650
+ paramsMode: passthrough,
651
+ cryptoMode: conditionalSeal,
652
+ },
653
+ 'board.getEpicDetail': {
654
+ paramsSchema: z.object({ epicId: uuidSchema }).passthrough(),
655
+ resultSchema: epicSchema,
656
+ paramsMode: passthrough,
657
+ cryptoMode: conditionalSeal,
658
+ },
659
+ 'board.updateEpicAssignment': {
660
+ paramsSchema: z
661
+ .object({
662
+ projectId: uuidSchema,
663
+ epicId: uuidSchema,
664
+ agentId: uuidSchema.nullable(),
665
+ version: z.number().int().nonnegative(),
666
+ })
667
+ .passthrough(),
668
+ resultSchema: epicSchema,
669
+ paramsMode: passthrough,
670
+ cryptoMode: conditionalSeal,
671
+ },
672
+ 'board.listEpicComments': {
673
+ paramsSchema: z
674
+ .object({
675
+ projectId: uuidSchema,
676
+ epicId: uuidSchema,
677
+ limit: z.number().int().min(1).max(100).optional(),
678
+ offset: z.number().int().min(0).optional(),
679
+ })
680
+ .passthrough(),
681
+ resultSchema: epicCommentsPageSchema,
682
+ paramsMode: passthrough,
683
+ cryptoMode: conditionalSeal,
684
+ },
685
+ 'board.addEpicComment': {
686
+ paramsSchema: z
687
+ .object({
688
+ projectId: uuidSchema,
689
+ epicId: uuidSchema,
690
+ authorName: z.string().trim().min(1),
691
+ content: z.string().trim().min(1),
692
+ })
693
+ .passthrough(),
694
+ resultSchema: epicCommentSchema,
695
+ paramsMode: passthrough,
696
+ cryptoMode: conditionalSeal,
697
+ },
698
+ 'board.deleteEpicComment': {
699
+ paramsSchema: z
700
+ .object({
701
+ projectId: uuidSchema,
702
+ epicId: uuidSchema,
703
+ commentId: uuidSchema,
704
+ })
705
+ .passthrough(),
706
+ resultSchema: z.object({ deleted: z.literal(true) }).passthrough(),
707
+ paramsMode: passthrough,
708
+ cryptoMode: conditionalSeal,
709
+ },
710
+ };
711
+ const chatReadCatalog = {
712
+ 'chat.listAgents': {
713
+ paramsSchema: z.object({ projectId: uuidSchema }).passthrough(),
714
+ resultSchema: z.array(mobileChatAgentSchema),
715
+ paramsMode: passthrough,
716
+ cryptoMode: conditionalSeal,
717
+ },
718
+ 'chat.listTeams': {
719
+ paramsSchema: z.object({ projectId: uuidSchema }).passthrough(),
720
+ resultSchema: z.array(mobileChatTeamSchema),
721
+ paramsMode: passthrough,
722
+ cryptoMode: conditionalSeal,
723
+ },
724
+ 'chat.listProfiles': {
725
+ paramsSchema: z.object({ projectId: uuidSchema, teamId: uuidSchema.nullish() }).passthrough(),
726
+ resultSchema: z.array(mobileChatProfileSchema),
727
+ paramsMode: passthrough,
728
+ cryptoMode: conditionalSeal,
729
+ },
730
+ 'chat.listProfileConfigs': {
731
+ paramsSchema: z.object({ projectId: uuidSchema, profileId: uuidSchema }).passthrough(),
732
+ resultSchema: z.array(mobileChatProviderConfigSchema),
733
+ paramsMode: passthrough,
734
+ cryptoMode: conditionalSeal,
735
+ },
736
+ 'chat.createTeamAgent': {
737
+ paramsSchema: z
738
+ .object({
739
+ projectId: uuidSchema,
740
+ teamId: uuidSchema,
741
+ name: z.string().trim().min(1),
742
+ providerConfigId: uuidSchema,
743
+ description: z.string().optional(),
744
+ })
745
+ .passthrough(),
746
+ resultSchema: mobileChatCreatedAgentSchema,
747
+ paramsMode: passthrough,
748
+ cryptoMode: conditionalSeal,
749
+ },
750
+ 'chat.createIndependentAgent': {
751
+ paramsSchema: z
752
+ .object({
753
+ projectId: uuidSchema,
754
+ name: z.string().trim().min(1),
755
+ profileId: uuidSchema,
756
+ providerConfigId: uuidSchema,
757
+ description: z.string().optional(),
758
+ })
759
+ .passthrough(),
760
+ resultSchema: mobileChatCreatedAgentSchema,
761
+ paramsMode: passthrough,
762
+ cryptoMode: conditionalSeal,
763
+ },
764
+ 'chat.deleteAgent': {
765
+ paramsSchema: z.object({ projectId: uuidSchema, agentId: uuidSchema }).passthrough(),
766
+ resultSchema: z.object({ deleted: z.literal(true) }).passthrough(),
767
+ paramsMode: passthrough,
768
+ cryptoMode: conditionalSeal,
769
+ },
770
+ 'chat.getTranscriptSummary': {
771
+ paramsSchema: z.object({ sessionId: uuidSchema, projectId: uuidSchema }).passthrough(),
772
+ resultSchema: transcriptSummaryWithCursorSchema,
773
+ paramsMode: passthrough,
774
+ cryptoMode: conditionalSeal,
775
+ },
776
+ 'chat.getTranscriptChunks': {
777
+ paramsSchema: z
778
+ .object({
779
+ sessionId: uuidSchema,
780
+ projectId: uuidSchema,
781
+ cursor: z.string().min(1).optional(),
782
+ limit: z.number().int().min(1).max(100).optional(),
783
+ direction: z.enum(['forward', 'backward']).optional(),
784
+ })
785
+ .passthrough(),
786
+ resultSchema: unifiedChunkedResponseSchema,
787
+ paramsMode: passthrough,
788
+ cryptoMode: conditionalSeal,
789
+ compatibility: [
790
+ facts.transcriptIsoTimestampProjection,
791
+ facts.deprecatedTranscriptTurnsPreserved,
792
+ ],
793
+ },
794
+ 'chat.getTranscriptTail': {
795
+ paramsSchema: z
796
+ .object({ sessionId: uuidSchema, projectId: uuidSchema, since: z.string().min(1) })
797
+ .passthrough(),
798
+ resultSchema: transcriptTailResponseSchema,
799
+ paramsMode: passthrough,
800
+ cryptoMode: conditionalSeal,
801
+ compatibility: [
802
+ facts.expiredCursorReturnsNull,
803
+ facts.replaceFromChunkIdAuthoritative,
804
+ facts.transcriptIsoTimestampProjection,
805
+ facts.deprecatedTranscriptTurnsPreserved,
806
+ ],
807
+ },
808
+ };
809
+ const chatActionCatalog = {
810
+ 'chat.listCustomPrompts': {
811
+ paramsSchema: z.object({ sessionId: uuidSchema, projectId: uuidSchema }).strict(),
812
+ resultSchema: z.array(customPromptSummarySchema),
813
+ paramsMode: strict,
814
+ cryptoMode: conditionalSeal,
815
+ },
816
+ 'chat.getCustomPrompt': {
817
+ paramsSchema: z
818
+ .object({ sessionId: uuidSchema, projectId: uuidSchema, promptId: uuidSchema })
819
+ .strict(),
820
+ resultSchema: customPromptDetailSchema,
821
+ paramsMode: strict,
822
+ cryptoMode: conditionalSeal,
823
+ },
824
+ 'chat.sendMessage': {
825
+ paramsSchema: z
826
+ .object({
827
+ agentId: uuidSchema,
828
+ projectId: uuidSchema,
829
+ text: z.string().trim().min(1),
830
+ clientMessageId: uuidSchema.optional(),
831
+ })
832
+ .passthrough(),
833
+ resultSchema: sendMessageResultSchema,
834
+ paramsMode: passthrough,
835
+ cryptoMode: conditionalSeal,
836
+ compatibility: [facts.optionalClientMessageId],
837
+ },
838
+ 'chat.getPendingMessages': {
839
+ paramsSchema: z
840
+ .object({
841
+ agentId: uuidSchema,
842
+ projectId: uuidSchema,
843
+ clientMessageIds: z.array(uuidSchema).min(1).max(50),
844
+ })
845
+ .strict(),
846
+ resultSchema: z.array(pendingMobileMessageSchema),
847
+ paramsMode: strict,
848
+ cryptoMode: conditionalSeal,
849
+ },
850
+ 'chat.launchAgent': {
851
+ paramsSchema: z.object({ agentId: uuidSchema, projectId: uuidSchema }).passthrough(),
852
+ resultSchema: lifecycleStartResultSchema,
853
+ paramsMode: passthrough,
854
+ cryptoMode: conditionalSeal,
855
+ },
856
+ 'chat.restartAgent': {
857
+ paramsSchema: z.object({ agentId: uuidSchema, projectId: uuidSchema }).passthrough(),
858
+ resultSchema: lifecycleStartResultSchema,
859
+ paramsMode: passthrough,
860
+ cryptoMode: conditionalSeal,
861
+ },
862
+ 'chat.restoreSession': {
863
+ paramsSchema: z.object({ sessionId: uuidSchema, projectId: uuidSchema }).passthrough(),
864
+ resultSchema: lifecycleStartResultSchema,
865
+ paramsMode: passthrough,
866
+ cryptoMode: conditionalSeal,
867
+ },
868
+ 'chat.terminateSession': {
869
+ paramsSchema: z.object({ sessionId: uuidSchema, projectId: uuidSchema }).passthrough(),
870
+ resultSchema: z.object({ status: z.literal('terminated') }).passthrough(),
871
+ paramsMode: passthrough,
872
+ cryptoMode: conditionalSeal,
873
+ },
874
+ 'chat.getOperationStatus': {
875
+ paramsSchema: z.object({ operationId: uuidSchema, projectId: uuidSchema }).passthrough(),
876
+ resultSchema: lifecycleOperationSchema,
877
+ paramsMode: passthrough,
878
+ cryptoMode: conditionalSeal,
879
+ },
880
+ 'chat.getAgentStatus': {
881
+ paramsSchema: z.object({ agentId: uuidSchema, projectId: uuidSchema }).passthrough(),
882
+ resultSchema: lifecycleOperationSchema.nullable(),
883
+ paramsMode: passthrough,
884
+ cryptoMode: conditionalSeal,
885
+ },
886
+ 'chat.listPendingAskQuestions': {
887
+ paramsSchema: z.object({ sessionId: uuidSchema, projectId: uuidSchema }).passthrough(),
888
+ resultSchema: z.array(pendingAskUserQuestionSchema),
889
+ paramsMode: passthrough,
890
+ cryptoMode: conditionalSeal,
891
+ },
892
+ 'chat.listSessions': {
893
+ paramsSchema: z
894
+ .object({
895
+ agentId: uuidSchema,
896
+ projectId: uuidSchema,
897
+ cursor: z.string().min(1).optional(),
898
+ limit: z.number().int().min(1).max(100).optional(),
899
+ })
900
+ .passthrough(),
901
+ resultSchema: sessionHistoryResponseSchema,
902
+ paramsMode: passthrough,
903
+ cryptoMode: conditionalSeal,
904
+ },
905
+ 'chat.deleteSessionRecord': {
906
+ paramsSchema: z.object({ sessionId: uuidSchema, projectId: uuidSchema }).passthrough(),
907
+ resultSchema: z.object({ deleted: z.boolean() }).passthrough(),
908
+ paramsMode: passthrough,
909
+ cryptoMode: conditionalSeal,
910
+ },
911
+ 'chat.renameSession': {
912
+ paramsSchema: z
913
+ .object({
914
+ sessionId: uuidSchema,
915
+ projectId: uuidSchema,
916
+ name: z.string().trim().max(120).nullable(),
917
+ })
918
+ .passthrough(),
919
+ resultSchema: sessionSchema,
920
+ paramsMode: passthrough,
921
+ cryptoMode: conditionalSeal,
922
+ },
923
+ };
924
+ const terminalCatalog = {
925
+ 'terminal.viewport.subscribe': {
926
+ paramsSchema: z
927
+ .object({
928
+ sessionId: uuidSchema,
929
+ projectId: uuidSchema,
930
+ cols: z.number().int().positive().optional(),
931
+ rows: z.number().int().positive().optional(),
932
+ })
933
+ .passthrough(),
934
+ resultSchema: z.object({ subscriptionId: z.string().min(1) }).passthrough(),
935
+ paramsMode: passthrough,
936
+ cryptoMode: conditionalSeal,
937
+ compatibility: [facts.viewportDimensionsIgnored, facts.viewportRequiresTunnelV2],
938
+ },
939
+ 'terminal.viewport.unsubscribe': {
940
+ paramsSchema: z.object({ subscriptionId: z.string().min(1) }).passthrough(),
941
+ resultSchema: z.object({ ok: z.boolean() }).passthrough(),
942
+ paramsMode: passthrough,
943
+ cryptoMode: conditionalSeal,
944
+ },
945
+ 'terminal.sendKey': {
946
+ paramsSchema: z
947
+ .object({
948
+ sessionId: uuidSchema,
949
+ projectId: uuidSchema,
950
+ key: z.enum([
951
+ 'Up',
952
+ 'Down',
953
+ 'Left',
954
+ 'Right',
955
+ 'Enter',
956
+ 'Escape',
957
+ 'Tab',
958
+ '0',
959
+ '1',
960
+ '2',
961
+ '3',
962
+ '4',
963
+ '5',
964
+ '6',
965
+ '7',
966
+ '8',
967
+ '9',
968
+ ]),
969
+ })
970
+ .strict(),
971
+ resultSchema: z.object({ ok: z.literal(true) }).passthrough(),
972
+ paramsMode: strict,
973
+ cryptoMode: conditionalSeal,
974
+ },
975
+ };
976
+ const e2eeCatalog = {
977
+ 'e2ee.adoptDeviceKey': {
978
+ paramsSchema: z
979
+ .object({
980
+ kid: z.string().min(1),
981
+ publicKeyB64: z.string().min(1),
982
+ installId: z.string().max(100).optional(),
983
+ label: z.string().max(120).optional(),
984
+ })
985
+ .passthrough(),
986
+ resultSchema: deviceTrustResultSchema,
987
+ paramsMode: passthrough,
988
+ cryptoMode: plaintextBootstrap,
989
+ compatibility: [
990
+ facts.nonCanonicalInstallIdKeepsAppendBehavior,
991
+ facts.trustImplementationValidatesKeyAndKid,
992
+ ],
993
+ },
994
+ 'e2ee.revokeDeviceKey': {
995
+ paramsSchema: z.object({}).passthrough(),
996
+ resultSchema: z
997
+ .object({
998
+ kid: z.string().min(1),
999
+ removed: z.boolean(),
1000
+ })
1001
+ .passthrough(),
1002
+ paramsMode: passthrough,
1003
+ cryptoMode: sealedOnly,
1004
+ compatibility: [facts.revokeParamsIgnored, facts.revokeIdentityFromVerifiedSenderKid],
1005
+ },
1006
+ };
1007
+ export const MOBILE_RPC_CATALOG = {
1008
+ ...boardCatalog,
1009
+ ...chatReadCatalog,
1010
+ ...chatActionCatalog,
1011
+ ...terminalCatalog,
1012
+ ...e2eeCatalog,
1013
+ };
1014
+ export const MOBILE_RPC_METHODS = [
1015
+ 'board.listWorkspaces',
1016
+ 'board.listProjects',
1017
+ 'board.listStatuses',
1018
+ 'board.listParentEpics',
1019
+ 'board.listParentChildren',
1020
+ 'board.listEpicsByStatus',
1021
+ 'board.listParentEpicsByStatus',
1022
+ 'board.getEpicDetail',
1023
+ 'board.updateEpicAssignment',
1024
+ 'board.listEpicComments',
1025
+ 'board.addEpicComment',
1026
+ 'board.deleteEpicComment',
1027
+ 'chat.listAgents',
1028
+ 'chat.listTeams',
1029
+ 'chat.listProfiles',
1030
+ 'chat.listProfileConfigs',
1031
+ 'chat.createTeamAgent',
1032
+ 'chat.createIndependentAgent',
1033
+ 'chat.deleteAgent',
1034
+ 'chat.getTranscriptSummary',
1035
+ 'chat.getTranscriptChunks',
1036
+ 'chat.getTranscriptTail',
1037
+ 'chat.listCustomPrompts',
1038
+ 'chat.getCustomPrompt',
1039
+ 'chat.sendMessage',
1040
+ 'chat.getPendingMessages',
1041
+ 'chat.launchAgent',
1042
+ 'chat.restartAgent',
1043
+ 'chat.restoreSession',
1044
+ 'chat.terminateSession',
1045
+ 'chat.getOperationStatus',
1046
+ 'chat.getAgentStatus',
1047
+ 'chat.listPendingAskQuestions',
1048
+ 'chat.listSessions',
1049
+ 'chat.deleteSessionRecord',
1050
+ 'chat.renameSession',
1051
+ 'terminal.viewport.subscribe',
1052
+ 'terminal.viewport.unsubscribe',
1053
+ 'terminal.sendKey',
1054
+ 'e2ee.adoptDeviceKey',
1055
+ 'e2ee.revokeDeviceKey',
1056
+ ];
1057
+ export function isMobileRpcMethod(value) {
1058
+ return (typeof value === 'string' && Object.prototype.hasOwnProperty.call(MOBILE_RPC_CATALOG, value));
1059
+ }
1060
+ export function getMobileRpcCryptoMode(method) {
1061
+ return MOBILE_RPC_CATALOG[method].cryptoMode;
1062
+ }
1063
+ export function getMobileRpcParamsSchema(method) {
1064
+ return MOBILE_RPC_CATALOG[method].paramsSchema;
1065
+ }
1066
+ export function getMobileRpcResultSchema(method) {
1067
+ return MOBILE_RPC_CATALOG[method].resultSchema;
1068
+ }
1069
+ //# sourceMappingURL=index.js.map