conductor-oss 0.4.0 → 0.6.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 (375) hide show
  1. package/dist/backend.d.ts +112 -0
  2. package/dist/backend.d.ts.map +1 -0
  3. package/dist/backend.js +101 -0
  4. package/dist/backend.js.map +1 -0
  5. package/dist/commands/cleanup.d.ts.map +1 -1
  6. package/dist/commands/cleanup.js +8 -6
  7. package/dist/commands/cleanup.js.map +1 -1
  8. package/dist/commands/doctor.d.ts.map +1 -1
  9. package/dist/commands/doctor.js +84 -147
  10. package/dist/commands/doctor.js.map +1 -1
  11. package/dist/commands/init.d.ts +3 -8
  12. package/dist/commands/init.d.ts.map +1 -1
  13. package/dist/commands/init.js +56 -128
  14. package/dist/commands/init.js.map +1 -1
  15. package/dist/commands/kill.d.ts.map +1 -1
  16. package/dist/commands/kill.js +6 -11
  17. package/dist/commands/kill.js.map +1 -1
  18. package/dist/commands/list.d.ts.map +1 -1
  19. package/dist/commands/list.js +12 -10
  20. package/dist/commands/list.js.map +1 -1
  21. package/dist/commands/mcp-server.d.ts +0 -20
  22. package/dist/commands/mcp-server.d.ts.map +1 -1
  23. package/dist/commands/mcp-server.js +18 -22
  24. package/dist/commands/mcp-server.js.map +1 -1
  25. package/dist/commands/restore.d.ts.map +1 -1
  26. package/dist/commands/restore.js +7 -12
  27. package/dist/commands/restore.js.map +1 -1
  28. package/dist/commands/retry.d.ts.map +1 -1
  29. package/dist/commands/retry.js +2 -5
  30. package/dist/commands/retry.js.map +1 -1
  31. package/dist/commands/send.d.ts.map +1 -1
  32. package/dist/commands/send.js +5 -9
  33. package/dist/commands/send.js.map +1 -1
  34. package/dist/commands/spawn.d.ts.map +1 -1
  35. package/dist/commands/spawn.js +16 -17
  36. package/dist/commands/spawn.js.map +1 -1
  37. package/dist/commands/status.d.ts.map +1 -1
  38. package/dist/commands/status.js +7 -7
  39. package/dist/commands/status.js.map +1 -1
  40. package/dist/commands/task.d.ts.map +1 -1
  41. package/dist/commands/task.js +3 -5
  42. package/dist/commands/task.js.map +1 -1
  43. package/dist/rust-cli.d.ts +9 -0
  44. package/dist/rust-cli.d.ts.map +1 -0
  45. package/dist/rust-cli.js +75 -0
  46. package/dist/rust-cli.js.map +1 -0
  47. package/node_modules/@conductor-oss/plugin-agent-amp/package.json +1 -1
  48. package/node_modules/@conductor-oss/plugin-agent-ccr/package.json +1 -1
  49. package/node_modules/@conductor-oss/plugin-agent-claude-code/package.json +1 -1
  50. package/node_modules/@conductor-oss/plugin-agent-codex/package.json +1 -1
  51. package/node_modules/@conductor-oss/plugin-agent-cursor-cli/package.json +1 -1
  52. package/node_modules/@conductor-oss/plugin-agent-droid/package.json +1 -1
  53. package/node_modules/@conductor-oss/plugin-agent-gemini/package.json +1 -1
  54. package/node_modules/@conductor-oss/plugin-agent-github-copilot/package.json +1 -1
  55. package/node_modules/@conductor-oss/plugin-agent-opencode/package.json +1 -1
  56. package/node_modules/@conductor-oss/plugin-agent-qwen-code/package.json +1 -1
  57. package/node_modules/@conductor-oss/plugin-mcp-server/package.json +1 -1
  58. package/node_modules/@conductor-oss/plugin-notifier-desktop/package.json +1 -1
  59. package/node_modules/@conductor-oss/plugin-notifier-discord/package.json +1 -1
  60. package/node_modules/@conductor-oss/plugin-runtime-tmux/package.json +1 -1
  61. package/node_modules/@conductor-oss/plugin-scm-github/package.json +1 -1
  62. package/node_modules/@conductor-oss/plugin-terminal-web/package.json +1 -1
  63. package/node_modules/@conductor-oss/plugin-tracker-github/package.json +1 -1
  64. package/node_modules/@conductor-oss/plugin-workspace-worktree/package.json +1 -1
  65. package/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +11 -36
  66. package/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +10 -22
  67. package/node_modules/jose/dist/webapi/jwe/general/decrypt.js +1 -1
  68. package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +8 -16
  69. package/node_modules/jose/dist/webapi/jwk/embedded.js +1 -1
  70. package/node_modules/jose/dist/webapi/jwk/thumbprint.js +2 -2
  71. package/node_modules/jose/dist/webapi/jwks/local.js +1 -1
  72. package/node_modules/jose/dist/webapi/jwks/remote.js +2 -2
  73. package/node_modules/jose/dist/webapi/jws/flattened/sign.js +5 -8
  74. package/node_modules/jose/dist/webapi/jws/flattened/verify.js +6 -16
  75. package/node_modules/jose/dist/webapi/jws/general/sign.js +3 -6
  76. package/node_modules/jose/dist/webapi/jws/general/verify.js +1 -1
  77. package/node_modules/jose/dist/webapi/jwt/encrypt.js +5 -12
  78. package/node_modules/jose/dist/webapi/key/import.js +1 -1
  79. package/node_modules/jose/dist/webapi/lib/aesgcmkw.js +1 -2
  80. package/node_modules/jose/dist/webapi/lib/check_key_type.js +1 -1
  81. package/node_modules/jose/dist/webapi/lib/content_encryption.js +217 -0
  82. package/node_modules/jose/dist/webapi/lib/crypto_key.js +9 -16
  83. package/node_modules/jose/dist/webapi/lib/ecdhes.js +1 -1
  84. package/node_modules/jose/dist/webapi/lib/helpers.js +19 -0
  85. package/node_modules/jose/dist/webapi/lib/jwk_to_key.js +9 -11
  86. package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +1 -1
  87. package/node_modules/jose/dist/webapi/lib/key_management.js +186 -0
  88. package/node_modules/jose/dist/webapi/lib/normalize_key.js +10 -20
  89. package/node_modules/jose/dist/webapi/lib/rsaes.js +1 -1
  90. package/node_modules/jose/dist/webapi/lib/signing.js +68 -0
  91. package/node_modules/jose/dist/webapi/lib/type_checks.js +40 -0
  92. package/node_modules/jose/dist/webapi/util/decode_jwt.js +1 -1
  93. package/node_modules/jose/dist/webapi/util/decode_protected_header.js +1 -1
  94. package/node_modules/jose/package.json +1 -1
  95. package/package.json +23 -23
  96. package/web/.next/standalone/packages/web/.next/BUILD_ID +1 -1
  97. package/web/.next/standalone/packages/web/.next/build-manifest.json +2 -2
  98. package/web/.next/standalone/packages/web/.next/prerender-manifest.json +3 -3
  99. package/web/.next/standalone/packages/web/.next/server/app/_global-error.html +2 -2
  100. package/web/.next/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
  101. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  102. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  103. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  104. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  105. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  106. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page/server-reference-manifest.json +7 -7
  107. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  108. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  109. package/web/.next/standalone/packages/web/.next/server/app/_not-found.html +1 -1
  110. package/web/.next/standalone/packages/web/.next/server/app/_not-found.rsc +3 -3
  111. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  112. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  113. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  114. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  115. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  116. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  117. package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js +3 -3
  118. package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js.nft.json +1 -1
  119. package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js +3 -4
  120. package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js.nft.json +1 -1
  121. package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route.js +3 -3
  122. package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route.js.nft.json +1 -1
  123. package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js +3 -3
  124. package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js.nft.json +1 -1
  125. package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route.js +1 -1
  126. package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route.js.nft.json +1 -1
  127. package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route.js +3 -3
  128. package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route.js.nft.json +1 -1
  129. package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js +3 -3
  130. package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js.nft.json +1 -1
  131. package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js +3 -3
  132. package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js.nft.json +1 -1
  133. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route.js +3 -3
  134. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route.js.nft.json +1 -1
  135. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js +3 -3
  136. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js.nft.json +1 -1
  137. package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js +2 -2
  138. package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js.nft.json +1 -1
  139. package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route.js +3 -3
  140. package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route.js.nft.json +1 -1
  141. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js +3 -3
  142. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js.nft.json +1 -1
  143. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route.js +3 -3
  144. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route.js.nft.json +1 -1
  145. package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js +3 -3
  146. package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js.nft.json +1 -1
  147. package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route.js +3 -3
  148. package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route.js.nft.json +1 -1
  149. package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js +3 -3
  150. package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js.nft.json +1 -1
  151. package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js +3 -3
  152. package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js.nft.json +1 -1
  153. package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js +3 -3
  154. package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js.nft.json +1 -1
  155. package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js +3 -3
  156. package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js.nft.json +1 -1
  157. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route.js +3 -3
  158. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  159. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js +3 -3
  160. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js.nft.json +1 -1
  161. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js +3 -3
  162. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js.nft.json +1 -1
  163. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route.js +3 -3
  164. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -1
  165. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js +3 -3
  166. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js.nft.json +1 -1
  167. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js +3 -3
  168. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js.nft.json +1 -1
  169. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/route.js +3 -3
  170. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/route.js.nft.json +1 -1
  171. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/stream/route.js +2 -2
  172. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/stream/route.js.nft.json +1 -1
  173. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route.js +3 -3
  174. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route.js.nft.json +1 -1
  175. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js +3 -3
  176. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js.nft.json +1 -1
  177. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/interrupt/route.js +3 -3
  178. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/interrupt/route.js.nft.json +1 -1
  179. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js +3 -3
  180. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js.nft.json +1 -1
  181. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js +3 -3
  182. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js.nft.json +1 -1
  183. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js +3 -3
  184. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js.nft.json +1 -1
  185. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js +2 -2
  186. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js.nft.json +1 -1
  187. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/dom/route.js +2 -2
  188. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/dom/route.js.nft.json +1 -1
  189. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/route.js +2 -2
  190. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/route.js.nft.json +1 -1
  191. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/screenshot/route.js +2 -2
  192. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/screenshot/route.js.nft.json +1 -1
  193. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js +3 -3
  194. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js.nft.json +1 -1
  195. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js +3 -3
  196. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  197. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route.js +3 -3
  198. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route.js.nft.json +1 -1
  199. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js +3 -3
  200. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
  201. package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js +3 -3
  202. package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js.nft.json +1 -1
  203. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js +3 -3
  204. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js.nft.json +1 -1
  205. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js +3 -3
  206. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  207. package/web/.next/standalone/packages/web/.next/server/app/page/server-reference-manifest.json +7 -7
  208. package/web/.next/standalone/packages/web/.next/server/app/page.js.nft.json +1 -1
  209. package/web/.next/standalone/packages/web/.next/server/app/page_client-reference-manifest.js +1 -1
  210. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page/server-reference-manifest.json +7 -7
  211. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  212. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  213. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page/server-reference-manifest.json +7 -7
  214. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js.nft.json +1 -1
  215. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page_client-reference-manifest.js +1 -1
  216. package/web/.next/standalone/packages/web/.next/server/app/unlock/page/server-reference-manifest.json +7 -7
  217. package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js.nft.json +1 -1
  218. package/web/.next/standalone/packages/web/.next/server/app/unlock/page_client-reference-manifest.js +1 -1
  219. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__02aa69a2._.js +3 -0
  220. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__06b6b4e9._.js +3 -0
  221. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__025155ac._.js → [root-of-the-server]__0cdc32e7._.js} +1 -1
  222. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__105e4f26._.js +3 -0
  223. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__119c6b92._.js +3 -0
  224. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__137fab33._.js +3 -0
  225. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__15c7d025._.js +3 -0
  226. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1be57288._.js +3 -0
  227. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__66e8ccce._.js → [root-of-the-server]__1d2f280d._.js} +1 -1
  228. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1e450a04._.js +3 -0
  229. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2ce39d51._.js +1 -1
  230. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__30055cf3._.js +3 -0
  231. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__85b114a2._.js → [root-of-the-server]__308f1548._.js} +1 -1
  232. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__30e803d7._.js +3 -0
  233. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3cfb9abc._.js +3 -0
  234. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__a45d3a1d._.js → [root-of-the-server]__3d4382ac._.js} +1 -1
  235. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__41e0efdc._.js +3 -0
  236. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__42e88695._.js +3 -0
  237. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__45147dc5._.js +3 -0
  238. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__46573554._.js +3 -0
  239. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__47b9cd43._.js +3 -0
  240. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4c56df8f._.js +3 -0
  241. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5064824d._.js +3 -0
  242. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__57113ab2._.js +3 -0
  243. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5b1a6733._.js +3 -0
  244. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__64061a84._.js +3 -0
  245. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__668ff2cd._.js +1 -1
  246. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6a1b89e2._.js +3 -0
  247. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7ddba7a1._.js +3 -0
  248. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__87674bea._.js +3 -0
  249. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__89cafbb6._.js +3 -0
  250. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__8baf1991._.js +3 -0
  251. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__92efd41b._.js +3 -0
  252. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__97b2fe24._.js +3 -0
  253. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a2cdc6d9._.js +3 -0
  254. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a80a6abe._.js +3 -0
  255. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ac588927._.js +3 -0
  256. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b03e9dba._.js +3 -0
  257. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b0bc3324._.js +3 -0
  258. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b39c66d6._.js +3 -0
  259. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c207ffb8._.js +3 -0
  260. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c24a825f._.js +3 -0
  261. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c27d443a._.js +3 -0
  262. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d0fc233f._.js +3 -0
  263. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d35c3ac2._.js +3 -0
  264. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d3d0e4a1._.js +3 -0
  265. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e2d46590._.js +3 -0
  266. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e7aa992a._.js +3 -0
  267. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ec231481._.js +3 -0
  268. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ef43f682._.js +3 -0
  269. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f134e517._.js +3 -0
  270. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f7e5d8de._.js +3 -0
  271. package/web/.next/standalone/packages/web/.next/server/chunks/_2c837d66._.js +5 -5
  272. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__000b8c99._.js +1 -1
  273. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__4168e031._.js → [root-of-the-server]__13c58ffa._.js} +2 -2
  274. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__29d8d063._.js +1 -1
  275. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{_1f2460d5._.js → _08147ea0._.js} +1 -1
  276. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_0e1412de._.js +1 -1
  277. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_69e05fca._.js +1 -1
  278. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_80efe193._.js +1 -1
  279. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_b6d31783._.js +1 -1
  280. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_c0f0e227._.js +1 -1
  281. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_f36ddaa9._.js +1 -1
  282. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_4622a292._.js +3 -0
  283. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{node_modules_@clerk_nextjs_dist_esm_app-router_0a811c5a._.js → node_modules_@clerk_nextjs_dist_esm_app-router_9141c401._.js} +2 -2
  284. package/web/.next/standalone/packages/web/.next/server/functions-config-manifest.json +3 -2
  285. package/web/.next/standalone/packages/web/.next/server/pages/404.html +1 -1
  286. package/web/.next/standalone/packages/web/.next/server/pages/500.html +2 -2
  287. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.js +1 -1
  288. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.json +8 -8
  289. package/web/.next/standalone/packages/web/.next/static/chunks/4486758753cb685a.js +1 -0
  290. package/web/.next/standalone/packages/web/.next/static/chunks/48b4b6b3dba3b0b6.js +1 -0
  291. package/web/.next/standalone/packages/web/.next/static/chunks/{2e2e8fd2ceca47dc.js → 97ae9d425d9939b0.js} +2 -2
  292. package/web/.next/standalone/packages/web/src/app/api/agents/route.ts +2 -196
  293. package/web/.next/standalone/packages/web/src/app/api/auth/session/route.ts +3 -38
  294. package/web/.next/standalone/packages/web/src/app/api/events/route.ts +61 -2
  295. package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/feed/stream/route.ts +75 -5
  296. package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/output/stream/route.ts +75 -5
  297. package/web/.next/static/chunks/4486758753cb685a.js +1 -0
  298. package/web/.next/static/chunks/48b4b6b3dba3b0b6.js +1 -0
  299. package/web/.next/static/chunks/{2e2e8fd2ceca47dc.js → 97ae9d425d9939b0.js} +2 -2
  300. package/node_modules/jose/dist/webapi/lib/cek.js +0 -19
  301. package/node_modules/jose/dist/webapi/lib/check_cek_length.js +0 -7
  302. package/node_modules/jose/dist/webapi/lib/check_iv_length.js +0 -7
  303. package/node_modules/jose/dist/webapi/lib/check_key_length.js +0 -8
  304. package/node_modules/jose/dist/webapi/lib/decrypt.js +0 -106
  305. package/node_modules/jose/dist/webapi/lib/decrypt_key_management.js +0 -127
  306. package/node_modules/jose/dist/webapi/lib/digest.js +0 -4
  307. package/node_modules/jose/dist/webapi/lib/encrypt.js +0 -74
  308. package/node_modules/jose/dist/webapi/lib/encrypt_key_management.js +0 -92
  309. package/node_modules/jose/dist/webapi/lib/get_sign_verify_key.js +0 -12
  310. package/node_modules/jose/dist/webapi/lib/is_disjoint.js +0 -21
  311. package/node_modules/jose/dist/webapi/lib/is_jwk.js +0 -6
  312. package/node_modules/jose/dist/webapi/lib/is_object.js +0 -14
  313. package/node_modules/jose/dist/webapi/lib/iv.js +0 -19
  314. package/node_modules/jose/dist/webapi/lib/private_symbols.js +0 -1
  315. package/node_modules/jose/dist/webapi/lib/sign.js +0 -9
  316. package/node_modules/jose/dist/webapi/lib/subtle_dsa.js +0 -31
  317. package/node_modules/jose/dist/webapi/lib/verify.js +0 -14
  318. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__07d320fc._.js +0 -3
  319. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__0d3270b2._.js +0 -3
  320. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__186317eb._.js +0 -3
  321. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1888a793._.js +0 -3
  322. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1ae07be2._.js +0 -3
  323. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1c1c0e68._.js +0 -3
  324. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1ce34a21._.js +0 -3
  325. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__31703e2b._.js +0 -3
  326. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__394943dc._.js +0 -3
  327. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3bab2cf7._.js +0 -3
  328. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3f48e8a2._.js +0 -3
  329. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__405fc5bc._.js +0 -3
  330. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__428f1837._.js +0 -3
  331. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__49e358a8._.js +0 -3
  332. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5dc7cf0d._.js +0 -3
  333. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5fd67791._.js +0 -3
  334. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__61a55b93._.js +0 -3
  335. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__621d9bca._.js +0 -3
  336. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__65fcccc8._.js +0 -3
  337. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6b163dd7._.js +0 -3
  338. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6c5a5852._.js +0 -3
  339. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__78d6e137._.js +0 -3
  340. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7dac9015._.js +0 -3
  341. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7fcfdb86._.js +0 -3
  342. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__90d02df4._.js +0 -3
  343. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__95440fe8._.js +0 -3
  344. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__968aabbd._.js +0 -3
  345. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__97658502._.js +0 -3
  346. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b5c89bad._.js +0 -3
  347. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b73a3118._.js +0 -3
  348. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c06cb06b._.js +0 -3
  349. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c9626ece._.js +0 -3
  350. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cb1e2942._.js +0 -3
  351. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cc4964a5._.js +0 -3
  352. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cdcdbbe3._.js +0 -3
  353. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ce529f57._.js +0 -3
  354. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cfaae401._.js +0 -3
  355. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d2afbd4e._.js +0 -3
  356. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e0d759be._.js +0 -3
  357. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__eabdec9e._.js +0 -3
  358. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ececfccf._.js +0 -3
  359. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__eda7b9ea._.js +0 -3
  360. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ef38eeb2._.js +0 -3
  361. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__efd26bfc._.js +0 -3
  362. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f4d63c18._.js +0 -3
  363. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f8ebc9db._.js +0 -3
  364. package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_5eb57175.js +0 -6
  365. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_2c78c2f3._.js +0 -3
  366. package/web/.next/standalone/packages/web/.next/static/chunks/7fd2a83e9e74f215.js +0 -1
  367. package/web/.next/standalone/packages/web/.next/static/chunks/91e9e111a2536f92.js +0 -1
  368. package/web/.next/static/chunks/7fd2a83e9e74f215.js +0 -1
  369. package/web/.next/static/chunks/91e9e111a2536f92.js +0 -1
  370. /package/web/.next/standalone/packages/web/.next/static/{E4-NvSai1Ps20r9dtdpps → BHEBqfhQTyzF7_rs_EqmL}/_buildManifest.js +0 -0
  371. /package/web/.next/standalone/packages/web/.next/static/{E4-NvSai1Ps20r9dtdpps → BHEBqfhQTyzF7_rs_EqmL}/_clientMiddlewareManifest.json +0 -0
  372. /package/web/.next/standalone/packages/web/.next/static/{E4-NvSai1Ps20r9dtdpps → BHEBqfhQTyzF7_rs_EqmL}/_ssgManifest.js +0 -0
  373. /package/web/.next/static/{E4-NvSai1Ps20r9dtdpps → BHEBqfhQTyzF7_rs_EqmL}/_buildManifest.js +0 -0
  374. /package/web/.next/static/{E4-NvSai1Ps20r9dtdpps → BHEBqfhQTyzF7_rs_EqmL}/_clientMiddlewareManifest.json +0 -0
  375. /package/web/.next/static/{E4-NvSai1Ps20r9dtdpps → BHEBqfhQTyzF7_rs_EqmL}/_ssgManifest.js +0 -0
@@ -3,6 +3,11 @@ const isAlgorithm = (algorithm, name) => algorithm.name === name;
3
3
  function getHashLength(hash) {
4
4
  return parseInt(hash.name.slice(4), 10);
5
5
  }
6
+ function checkHashLength(algorithm, expected) {
7
+ const actual = getHashLength(algorithm.hash);
8
+ if (actual !== expected)
9
+ throw unusable(`SHA-${expected}`, 'algorithm.hash');
10
+ }
6
11
  function getNamedCurve(alg) {
7
12
  switch (alg) {
8
13
  case 'ES256':
@@ -27,10 +32,7 @@ export function checkSigCryptoKey(key, alg, usage) {
27
32
  case 'HS512': {
28
33
  if (!isAlgorithm(key.algorithm, 'HMAC'))
29
34
  throw unusable('HMAC');
30
- const expected = parseInt(alg.slice(2), 10);
31
- const actual = getHashLength(key.algorithm.hash);
32
- if (actual !== expected)
33
- throw unusable(`SHA-${expected}`, 'algorithm.hash');
35
+ checkHashLength(key.algorithm, parseInt(alg.slice(2), 10));
34
36
  break;
35
37
  }
36
38
  case 'RS256':
@@ -38,10 +40,7 @@ export function checkSigCryptoKey(key, alg, usage) {
38
40
  case 'RS512': {
39
41
  if (!isAlgorithm(key.algorithm, 'RSASSA-PKCS1-v1_5'))
40
42
  throw unusable('RSASSA-PKCS1-v1_5');
41
- const expected = parseInt(alg.slice(2), 10);
42
- const actual = getHashLength(key.algorithm.hash);
43
- if (actual !== expected)
44
- throw unusable(`SHA-${expected}`, 'algorithm.hash');
43
+ checkHashLength(key.algorithm, parseInt(alg.slice(2), 10));
45
44
  break;
46
45
  }
47
46
  case 'PS256':
@@ -49,10 +48,7 @@ export function checkSigCryptoKey(key, alg, usage) {
49
48
  case 'PS512': {
50
49
  if (!isAlgorithm(key.algorithm, 'RSA-PSS'))
51
50
  throw unusable('RSA-PSS');
52
- const expected = parseInt(alg.slice(2), 10);
53
- const actual = getHashLength(key.algorithm.hash);
54
- if (actual !== expected)
55
- throw unusable(`SHA-${expected}`, 'algorithm.hash');
51
+ checkHashLength(key.algorithm, parseInt(alg.slice(2), 10));
56
52
  break;
57
53
  }
58
54
  case 'Ed25519':
@@ -130,10 +126,7 @@ export function checkEncCryptoKey(key, alg, usage) {
130
126
  case 'RSA-OAEP-512': {
131
127
  if (!isAlgorithm(key.algorithm, 'RSA-OAEP'))
132
128
  throw unusable('RSA-OAEP');
133
- const expected = parseInt(alg.slice(9), 10) || 1;
134
- const actual = getHashLength(key.algorithm.hash);
135
- if (actual !== expected)
136
- throw unusable(`SHA-${expected}`, 'algorithm.hash');
129
+ checkHashLength(key.algorithm, parseInt(alg.slice(9), 10) || 1);
137
130
  break;
138
131
  }
139
132
  default:
@@ -1,6 +1,6 @@
1
1
  import { encode, concat, uint32be } from './buffer_utils.js';
2
2
  import { checkEncCryptoKey } from './crypto_key.js';
3
- import { digest } from './digest.js';
3
+ import { digest } from './helpers.js';
4
4
  function lengthAndInput(input) {
5
5
  return concat(uint32be(input.length), input);
6
6
  }
@@ -0,0 +1,19 @@
1
+ import { decode } from '../util/base64url.js';
2
+ export const unprotected = Symbol();
3
+ export function assertNotSet(value, name) {
4
+ if (value) {
5
+ throw new TypeError(`${name} can only be called once`);
6
+ }
7
+ }
8
+ export function decodeBase64url(value, label, ErrorClass) {
9
+ try {
10
+ return decode(value);
11
+ }
12
+ catch {
13
+ throw new ErrorClass(`Failed to base64url decode the ${label}`);
14
+ }
15
+ }
16
+ export async function digest(algorithm, data) {
17
+ const subtleDigest = `SHA-${algorithm.slice(-3)}`;
18
+ return new Uint8Array(await crypto.subtle.digest(subtleDigest, data));
19
+ }
@@ -1,4 +1,5 @@
1
1
  import { JOSENotSupported } from '../util/errors.js';
2
+ const unsupportedAlg = 'Invalid or unsupported JWK "alg" (Algorithm) Parameter value';
2
3
  function subtleMapping(jwk) {
3
4
  let algorithm;
4
5
  let keyUsages;
@@ -12,7 +13,7 @@ function subtleMapping(jwk) {
12
13
  keyUsages = jwk.priv ? ['sign'] : ['verify'];
13
14
  break;
14
15
  default:
15
- throw new JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
16
+ throw new JOSENotSupported(unsupportedAlg);
16
17
  }
17
18
  break;
18
19
  }
@@ -41,22 +42,19 @@ function subtleMapping(jwk) {
41
42
  keyUsages = jwk.d ? ['decrypt', 'unwrapKey'] : ['encrypt', 'wrapKey'];
42
43
  break;
43
44
  default:
44
- throw new JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
45
+ throw new JOSENotSupported(unsupportedAlg);
45
46
  }
46
47
  break;
47
48
  }
48
49
  case 'EC': {
49
50
  switch (jwk.alg) {
50
51
  case 'ES256':
51
- algorithm = { name: 'ECDSA', namedCurve: 'P-256' };
52
- keyUsages = jwk.d ? ['sign'] : ['verify'];
53
- break;
54
52
  case 'ES384':
55
- algorithm = { name: 'ECDSA', namedCurve: 'P-384' };
56
- keyUsages = jwk.d ? ['sign'] : ['verify'];
57
- break;
58
53
  case 'ES512':
59
- algorithm = { name: 'ECDSA', namedCurve: 'P-521' };
54
+ algorithm = {
55
+ name: 'ECDSA',
56
+ namedCurve: { ES256: 'P-256', ES384: 'P-384', ES512: 'P-521' }[jwk.alg],
57
+ };
60
58
  keyUsages = jwk.d ? ['sign'] : ['verify'];
61
59
  break;
62
60
  case 'ECDH-ES':
@@ -67,7 +65,7 @@ function subtleMapping(jwk) {
67
65
  keyUsages = jwk.d ? ['deriveBits'] : [];
68
66
  break;
69
67
  default:
70
- throw new JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
68
+ throw new JOSENotSupported(unsupportedAlg);
71
69
  }
72
70
  break;
73
71
  }
@@ -86,7 +84,7 @@ function subtleMapping(jwk) {
86
84
  keyUsages = jwk.d ? ['deriveBits'] : [];
87
85
  break;
88
86
  default:
89
- throw new JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
87
+ throw new JOSENotSupported(unsupportedAlg);
90
88
  }
91
89
  break;
92
90
  }
@@ -1,6 +1,6 @@
1
1
  import { JWTClaimValidationFailed, JWTExpired, JWTInvalid } from '../util/errors.js';
2
2
  import { encoder, decoder } from './buffer_utils.js';
3
- import { isObject } from './is_object.js';
3
+ import { isObject } from './type_checks.js';
4
4
  const epoch = (date) => Math.floor(date.getTime() / 1000);
5
5
  const minute = 60;
6
6
  const hour = minute * 60;
@@ -0,0 +1,186 @@
1
+ import * as aeskw from './aeskw.js';
2
+ import * as ecdhes from './ecdhes.js';
3
+ import * as pbes2kw from './pbes2kw.js';
4
+ import * as rsaes from './rsaes.js';
5
+ import { encode as b64u } from '../util/base64url.js';
6
+ import { normalizeKey } from './normalize_key.js';
7
+ import { JOSENotSupported, JWEInvalid } from '../util/errors.js';
8
+ import { decodeBase64url } from './helpers.js';
9
+ import { generateCek, cekLength } from './content_encryption.js';
10
+ import { importJWK } from '../key/import.js';
11
+ import { exportJWK } from '../key/export.js';
12
+ import { isObject } from './type_checks.js';
13
+ import { wrap as aesGcmKwWrap, unwrap as aesGcmKwUnwrap } from './aesgcmkw.js';
14
+ import { assertCryptoKey } from './is_key_like.js';
15
+ const unsupportedAlgHeader = 'Invalid or unsupported "alg" (JWE Algorithm) header value';
16
+ function assertEncryptedKey(encryptedKey) {
17
+ if (encryptedKey === undefined)
18
+ throw new JWEInvalid('JWE Encrypted Key missing');
19
+ }
20
+ export async function decryptKeyManagement(alg, key, encryptedKey, joseHeader, options) {
21
+ switch (alg) {
22
+ case 'dir': {
23
+ if (encryptedKey !== undefined)
24
+ throw new JWEInvalid('Encountered unexpected JWE Encrypted Key');
25
+ return key;
26
+ }
27
+ case 'ECDH-ES':
28
+ if (encryptedKey !== undefined)
29
+ throw new JWEInvalid('Encountered unexpected JWE Encrypted Key');
30
+ case 'ECDH-ES+A128KW':
31
+ case 'ECDH-ES+A192KW':
32
+ case 'ECDH-ES+A256KW': {
33
+ if (!isObject(joseHeader.epk))
34
+ throw new JWEInvalid(`JOSE Header "epk" (Ephemeral Public Key) missing or invalid`);
35
+ assertCryptoKey(key);
36
+ if (!ecdhes.allowed(key))
37
+ throw new JOSENotSupported('ECDH with the provided key is not allowed or not supported by your javascript runtime');
38
+ const epk = await importJWK(joseHeader.epk, alg);
39
+ assertCryptoKey(epk);
40
+ let partyUInfo;
41
+ let partyVInfo;
42
+ if (joseHeader.apu !== undefined) {
43
+ if (typeof joseHeader.apu !== 'string')
44
+ throw new JWEInvalid(`JOSE Header "apu" (Agreement PartyUInfo) invalid`);
45
+ partyUInfo = decodeBase64url(joseHeader.apu, 'apu', JWEInvalid);
46
+ }
47
+ if (joseHeader.apv !== undefined) {
48
+ if (typeof joseHeader.apv !== 'string')
49
+ throw new JWEInvalid(`JOSE Header "apv" (Agreement PartyVInfo) invalid`);
50
+ partyVInfo = decodeBase64url(joseHeader.apv, 'apv', JWEInvalid);
51
+ }
52
+ const sharedSecret = await ecdhes.deriveKey(epk, key, alg === 'ECDH-ES' ? joseHeader.enc : alg, alg === 'ECDH-ES' ? cekLength(joseHeader.enc) : parseInt(alg.slice(-5, -2), 10), partyUInfo, partyVInfo);
53
+ if (alg === 'ECDH-ES')
54
+ return sharedSecret;
55
+ assertEncryptedKey(encryptedKey);
56
+ return aeskw.unwrap(alg.slice(-6), sharedSecret, encryptedKey);
57
+ }
58
+ case 'RSA-OAEP':
59
+ case 'RSA-OAEP-256':
60
+ case 'RSA-OAEP-384':
61
+ case 'RSA-OAEP-512': {
62
+ assertEncryptedKey(encryptedKey);
63
+ assertCryptoKey(key);
64
+ return rsaes.decrypt(alg, key, encryptedKey);
65
+ }
66
+ case 'PBES2-HS256+A128KW':
67
+ case 'PBES2-HS384+A192KW':
68
+ case 'PBES2-HS512+A256KW': {
69
+ assertEncryptedKey(encryptedKey);
70
+ if (typeof joseHeader.p2c !== 'number')
71
+ throw new JWEInvalid(`JOSE Header "p2c" (PBES2 Count) missing or invalid`);
72
+ const p2cLimit = options?.maxPBES2Count || 10_000;
73
+ if (joseHeader.p2c > p2cLimit)
74
+ throw new JWEInvalid(`JOSE Header "p2c" (PBES2 Count) out is of acceptable bounds`);
75
+ if (typeof joseHeader.p2s !== 'string')
76
+ throw new JWEInvalid(`JOSE Header "p2s" (PBES2 Salt) missing or invalid`);
77
+ let p2s;
78
+ p2s = decodeBase64url(joseHeader.p2s, 'p2s', JWEInvalid);
79
+ return pbes2kw.unwrap(alg, key, encryptedKey, joseHeader.p2c, p2s);
80
+ }
81
+ case 'A128KW':
82
+ case 'A192KW':
83
+ case 'A256KW': {
84
+ assertEncryptedKey(encryptedKey);
85
+ return aeskw.unwrap(alg, key, encryptedKey);
86
+ }
87
+ case 'A128GCMKW':
88
+ case 'A192GCMKW':
89
+ case 'A256GCMKW': {
90
+ assertEncryptedKey(encryptedKey);
91
+ if (typeof joseHeader.iv !== 'string')
92
+ throw new JWEInvalid(`JOSE Header "iv" (Initialization Vector) missing or invalid`);
93
+ if (typeof joseHeader.tag !== 'string')
94
+ throw new JWEInvalid(`JOSE Header "tag" (Authentication Tag) missing or invalid`);
95
+ let iv;
96
+ iv = decodeBase64url(joseHeader.iv, 'iv', JWEInvalid);
97
+ let tag;
98
+ tag = decodeBase64url(joseHeader.tag, 'tag', JWEInvalid);
99
+ return aesGcmKwUnwrap(alg, key, encryptedKey, iv, tag);
100
+ }
101
+ default: {
102
+ throw new JOSENotSupported(unsupportedAlgHeader);
103
+ }
104
+ }
105
+ }
106
+ export async function encryptKeyManagement(alg, enc, key, providedCek, providedParameters = {}) {
107
+ let encryptedKey;
108
+ let parameters;
109
+ let cek;
110
+ switch (alg) {
111
+ case 'dir': {
112
+ cek = key;
113
+ break;
114
+ }
115
+ case 'ECDH-ES':
116
+ case 'ECDH-ES+A128KW':
117
+ case 'ECDH-ES+A192KW':
118
+ case 'ECDH-ES+A256KW': {
119
+ assertCryptoKey(key);
120
+ if (!ecdhes.allowed(key)) {
121
+ throw new JOSENotSupported('ECDH with the provided key is not allowed or not supported by your javascript runtime');
122
+ }
123
+ const { apu, apv } = providedParameters;
124
+ let ephemeralKey;
125
+ if (providedParameters.epk) {
126
+ ephemeralKey = (await normalizeKey(providedParameters.epk, alg));
127
+ }
128
+ else {
129
+ ephemeralKey = (await crypto.subtle.generateKey(key.algorithm, true, ['deriveBits'])).privateKey;
130
+ }
131
+ const { x, y, crv, kty } = await exportJWK(ephemeralKey);
132
+ const sharedSecret = await ecdhes.deriveKey(key, ephemeralKey, alg === 'ECDH-ES' ? enc : alg, alg === 'ECDH-ES' ? cekLength(enc) : parseInt(alg.slice(-5, -2), 10), apu, apv);
133
+ parameters = { epk: { x, crv, kty } };
134
+ if (kty === 'EC')
135
+ parameters.epk.y = y;
136
+ if (apu)
137
+ parameters.apu = b64u(apu);
138
+ if (apv)
139
+ parameters.apv = b64u(apv);
140
+ if (alg === 'ECDH-ES') {
141
+ cek = sharedSecret;
142
+ break;
143
+ }
144
+ cek = providedCek || generateCek(enc);
145
+ const kwAlg = alg.slice(-6);
146
+ encryptedKey = await aeskw.wrap(kwAlg, sharedSecret, cek);
147
+ break;
148
+ }
149
+ case 'RSA-OAEP':
150
+ case 'RSA-OAEP-256':
151
+ case 'RSA-OAEP-384':
152
+ case 'RSA-OAEP-512': {
153
+ cek = providedCek || generateCek(enc);
154
+ assertCryptoKey(key);
155
+ encryptedKey = await rsaes.encrypt(alg, key, cek);
156
+ break;
157
+ }
158
+ case 'PBES2-HS256+A128KW':
159
+ case 'PBES2-HS384+A192KW':
160
+ case 'PBES2-HS512+A256KW': {
161
+ cek = providedCek || generateCek(enc);
162
+ const { p2c, p2s } = providedParameters;
163
+ ({ encryptedKey, ...parameters } = await pbes2kw.wrap(alg, key, cek, p2c, p2s));
164
+ break;
165
+ }
166
+ case 'A128KW':
167
+ case 'A192KW':
168
+ case 'A256KW': {
169
+ cek = providedCek || generateCek(enc);
170
+ encryptedKey = await aeskw.wrap(alg, key, cek);
171
+ break;
172
+ }
173
+ case 'A128GCMKW':
174
+ case 'A192GCMKW':
175
+ case 'A256GCMKW': {
176
+ cek = providedCek || generateCek(enc);
177
+ const { iv } = providedParameters;
178
+ ({ encryptedKey, ...parameters } = await aesGcmKwWrap(alg, key, cek, iv));
179
+ break;
180
+ }
181
+ default: {
182
+ throw new JOSENotSupported(unsupportedAlgHeader);
183
+ }
184
+ }
185
+ return { cek, encryptedKey, parameters };
186
+ }
@@ -1,7 +1,8 @@
1
- import { isJWK } from './is_jwk.js';
1
+ import { isJWK } from './type_checks.js';
2
2
  import { decode } from '../util/base64url.js';
3
3
  import { jwkToKey } from './jwk_to_key.js';
4
4
  import { isCryptoKey, isKeyObject } from './is_key_like.js';
5
+ const unusableForAlg = 'given KeyObject instance cannot be used for this algorithm';
5
6
  let cache;
6
7
  const handleJWK = async (key, jwk, alg, freeze = false) => {
7
8
  cache ||= new WeakMap();
@@ -37,13 +38,13 @@ const handleKeyObject = (keyObject, alg) => {
37
38
  case 'ECDH-ES+A256KW':
38
39
  break;
39
40
  default:
40
- throw new TypeError('given KeyObject instance cannot be used for this algorithm');
41
+ throw new TypeError(unusableForAlg);
41
42
  }
42
43
  cryptoKey = keyObject.toCryptoKey(keyObject.asymmetricKeyType, extractable, isPublic ? [] : ['deriveBits']);
43
44
  }
44
45
  if (keyObject.asymmetricKeyType === 'ed25519') {
45
46
  if (alg !== 'EdDSA' && alg !== 'Ed25519') {
46
- throw new TypeError('given KeyObject instance cannot be used for this algorithm');
47
+ throw new TypeError(unusableForAlg);
47
48
  }
48
49
  cryptoKey = keyObject.toCryptoKey(keyObject.asymmetricKeyType, extractable, [
49
50
  isPublic ? 'verify' : 'sign',
@@ -54,7 +55,7 @@ const handleKeyObject = (keyObject, alg) => {
54
55
  case 'ml-dsa-65':
55
56
  case 'ml-dsa-87': {
56
57
  if (alg !== keyObject.asymmetricKeyType.toUpperCase()) {
57
- throw new TypeError('given KeyObject instance cannot be used for this algorithm');
58
+ throw new TypeError(unusableForAlg);
58
59
  }
59
60
  cryptoKey = keyObject.toCryptoKey(keyObject.asymmetricKeyType, extractable, [
60
61
  isPublic ? 'verify' : 'sign',
@@ -83,7 +84,7 @@ const handleKeyObject = (keyObject, alg) => {
83
84
  hash = 'SHA-512';
84
85
  break;
85
86
  default:
86
- throw new TypeError('given KeyObject instance cannot be used for this algorithm');
87
+ throw new TypeError(unusableForAlg);
87
88
  }
88
89
  if (alg.startsWith('RSA-OAEP')) {
89
90
  return keyObject.toCryptoKey({
@@ -104,21 +105,10 @@ const handleKeyObject = (keyObject, alg) => {
104
105
  ]);
105
106
  const namedCurve = nist.get(keyObject.asymmetricKeyDetails?.namedCurve);
106
107
  if (!namedCurve) {
107
- throw new TypeError('given KeyObject instance cannot be used for this algorithm');
108
+ throw new TypeError(unusableForAlg);
108
109
  }
109
- if (alg === 'ES256' && namedCurve === 'P-256') {
110
- cryptoKey = keyObject.toCryptoKey({
111
- name: 'ECDSA',
112
- namedCurve,
113
- }, extractable, [isPublic ? 'verify' : 'sign']);
114
- }
115
- if (alg === 'ES384' && namedCurve === 'P-384') {
116
- cryptoKey = keyObject.toCryptoKey({
117
- name: 'ECDSA',
118
- namedCurve,
119
- }, extractable, [isPublic ? 'verify' : 'sign']);
120
- }
121
- if (alg === 'ES512' && namedCurve === 'P-521') {
110
+ const expectedCurve = { ES256: 'P-256', ES384: 'P-384', ES512: 'P-521' };
111
+ if (expectedCurve[alg] && namedCurve === expectedCurve[alg]) {
122
112
  cryptoKey = keyObject.toCryptoKey({
123
113
  name: 'ECDSA',
124
114
  namedCurve,
@@ -132,7 +122,7 @@ const handleKeyObject = (keyObject, alg) => {
132
122
  }
133
123
  }
134
124
  if (!cryptoKey) {
135
- throw new TypeError('given KeyObject instance cannot be used for this algorithm');
125
+ throw new TypeError(unusableForAlg);
136
126
  }
137
127
  if (!cached) {
138
128
  cache.set(keyObject, { [alg]: cryptoKey });
@@ -1,5 +1,5 @@
1
1
  import { checkEncCryptoKey } from './crypto_key.js';
2
- import { checkKeyLength } from './check_key_length.js';
2
+ import { checkKeyLength } from './signing.js';
3
3
  import { JOSENotSupported } from '../util/errors.js';
4
4
  const subtleAlgorithm = (alg) => {
5
5
  switch (alg) {
@@ -0,0 +1,68 @@
1
+ import { JOSENotSupported } from '../util/errors.js';
2
+ import { checkSigCryptoKey } from './crypto_key.js';
3
+ import { invalidKeyInput } from './invalid_key_input.js';
4
+ export function checkKeyLength(alg, key) {
5
+ if (alg.startsWith('RS') || alg.startsWith('PS')) {
6
+ const { modulusLength } = key.algorithm;
7
+ if (typeof modulusLength !== 'number' || modulusLength < 2048) {
8
+ throw new TypeError(`${alg} requires key modulusLength to be 2048 bits or larger`);
9
+ }
10
+ }
11
+ }
12
+ function subtleAlgorithm(alg, algorithm) {
13
+ const hash = `SHA-${alg.slice(-3)}`;
14
+ switch (alg) {
15
+ case 'HS256':
16
+ case 'HS384':
17
+ case 'HS512':
18
+ return { hash, name: 'HMAC' };
19
+ case 'PS256':
20
+ case 'PS384':
21
+ case 'PS512':
22
+ return { hash, name: 'RSA-PSS', saltLength: parseInt(alg.slice(-3), 10) >> 3 };
23
+ case 'RS256':
24
+ case 'RS384':
25
+ case 'RS512':
26
+ return { hash, name: 'RSASSA-PKCS1-v1_5' };
27
+ case 'ES256':
28
+ case 'ES384':
29
+ case 'ES512':
30
+ return { hash, name: 'ECDSA', namedCurve: algorithm.namedCurve };
31
+ case 'Ed25519':
32
+ case 'EdDSA':
33
+ return { name: 'Ed25519' };
34
+ case 'ML-DSA-44':
35
+ case 'ML-DSA-65':
36
+ case 'ML-DSA-87':
37
+ return { name: alg };
38
+ default:
39
+ throw new JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);
40
+ }
41
+ }
42
+ async function getSigKey(alg, key, usage) {
43
+ if (key instanceof Uint8Array) {
44
+ if (!alg.startsWith('HS')) {
45
+ throw new TypeError(invalidKeyInput(key, 'CryptoKey', 'KeyObject', 'JSON Web Key'));
46
+ }
47
+ return crypto.subtle.importKey('raw', key, { hash: `SHA-${alg.slice(-3)}`, name: 'HMAC' }, false, [usage]);
48
+ }
49
+ checkSigCryptoKey(key, alg, usage);
50
+ return key;
51
+ }
52
+ export async function sign(alg, key, data) {
53
+ const cryptoKey = await getSigKey(alg, key, 'sign');
54
+ checkKeyLength(alg, cryptoKey);
55
+ const signature = await crypto.subtle.sign(subtleAlgorithm(alg, cryptoKey.algorithm), cryptoKey, data);
56
+ return new Uint8Array(signature);
57
+ }
58
+ export async function verify(alg, key, signature, data) {
59
+ const cryptoKey = await getSigKey(alg, key, 'verify');
60
+ checkKeyLength(alg, cryptoKey);
61
+ const algorithm = subtleAlgorithm(alg, cryptoKey.algorithm);
62
+ try {
63
+ return await crypto.subtle.verify(algorithm, cryptoKey, signature, data);
64
+ }
65
+ catch {
66
+ return false;
67
+ }
68
+ }
@@ -0,0 +1,40 @@
1
+ const isObjectLike = (value) => typeof value === 'object' && value !== null;
2
+ export function isObject(input) {
3
+ if (!isObjectLike(input) || Object.prototype.toString.call(input) !== '[object Object]') {
4
+ return false;
5
+ }
6
+ if (Object.getPrototypeOf(input) === null) {
7
+ return true;
8
+ }
9
+ let proto = input;
10
+ while (Object.getPrototypeOf(proto) !== null) {
11
+ proto = Object.getPrototypeOf(proto);
12
+ }
13
+ return Object.getPrototypeOf(input) === proto;
14
+ }
15
+ export function isDisjoint(...headers) {
16
+ const sources = headers.filter(Boolean);
17
+ if (sources.length === 0 || sources.length === 1) {
18
+ return true;
19
+ }
20
+ let acc;
21
+ for (const header of sources) {
22
+ const parameters = Object.keys(header);
23
+ if (!acc || acc.size === 0) {
24
+ acc = new Set(parameters);
25
+ continue;
26
+ }
27
+ for (const parameter of parameters) {
28
+ if (acc.has(parameter)) {
29
+ return false;
30
+ }
31
+ acc.add(parameter);
32
+ }
33
+ }
34
+ return true;
35
+ }
36
+ export const isJWK = (key) => isObject(key) && typeof key.kty === 'string';
37
+ export const isPrivateJWK = (key) => key.kty !== 'oct' &&
38
+ ((key.kty === 'AKP' && typeof key.priv === 'string') || typeof key.d === 'string');
39
+ export const isPublicJWK = (key) => key.kty !== 'oct' && key.d === undefined && key.priv === undefined;
40
+ export const isSecretJWK = (key) => key.kty === 'oct' && typeof key.k === 'string';
@@ -1,6 +1,6 @@
1
1
  import { decode as b64u } from './base64url.js';
2
2
  import { decoder } from '../lib/buffer_utils.js';
3
- import { isObject } from '../lib/is_object.js';
3
+ import { isObject } from '../lib/type_checks.js';
4
4
  import { JWTInvalid } from './errors.js';
5
5
  export function decodeJwt(jwt) {
6
6
  if (typeof jwt !== 'string')
@@ -1,6 +1,6 @@
1
1
  import { decode as b64u } from './base64url.js';
2
2
  import { decoder } from '../lib/buffer_utils.js';
3
- import { isObject } from '../lib/is_object.js';
3
+ import { isObject } from '../lib/type_checks.js';
4
4
  export function decodeProtectedHeader(token) {
5
5
  let protectedB64u;
6
6
  if (typeof token === 'string') {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jose",
3
- "version": "6.2.0",
3
+ "version": "6.2.1",
4
4
  "description": "JWA, JWS, JWE, JWT, JWK, JWKS for Node.js, Browser, Cloudflare Workers, Deno, Bun, and other Web-interoperable runtimes",
5
5
  "keywords": [
6
6
  "akp",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "conductor-oss",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "dist/launcher.js",
@@ -33,25 +33,25 @@
33
33
  "directory": "packages/cli"
34
34
  },
35
35
  "dependencies": {
36
- "@conductor-oss/core": "0.4.0",
37
- "@conductor-oss/plugin-agent-claude-code": "0.4.0",
38
- "@conductor-oss/plugin-agent-codex": "0.4.0",
39
- "@conductor-oss/plugin-agent-gemini": "0.4.0",
40
- "@conductor-oss/plugin-agent-amp": "0.4.0",
41
- "@conductor-oss/plugin-agent-cursor-cli": "0.4.0",
42
- "@conductor-oss/plugin-agent-opencode": "0.4.0",
43
- "@conductor-oss/plugin-agent-droid": "0.4.0",
44
- "@conductor-oss/plugin-agent-qwen-code": "0.4.0",
45
- "@conductor-oss/plugin-agent-ccr": "0.4.0",
46
- "@conductor-oss/plugin-agent-github-copilot": "0.4.0",
47
- "@conductor-oss/plugin-mcp-server": "0.4.0",
48
- "@conductor-oss/plugin-notifier-desktop": "0.4.0",
49
- "@conductor-oss/plugin-notifier-discord": "0.4.0",
50
- "@conductor-oss/plugin-runtime-tmux": "0.4.0",
51
- "@conductor-oss/plugin-scm-github": "0.4.0",
52
- "@conductor-oss/plugin-terminal-web": "0.4.0",
53
- "@conductor-oss/plugin-tracker-github": "0.4.0",
54
- "@conductor-oss/plugin-workspace-worktree": "0.4.0",
36
+ "@conductor-oss/core": "0.6.0",
37
+ "@conductor-oss/plugin-agent-claude-code": "0.6.0",
38
+ "@conductor-oss/plugin-agent-codex": "0.6.0",
39
+ "@conductor-oss/plugin-agent-gemini": "0.6.0",
40
+ "@conductor-oss/plugin-agent-amp": "0.6.0",
41
+ "@conductor-oss/plugin-agent-cursor-cli": "0.6.0",
42
+ "@conductor-oss/plugin-agent-opencode": "0.6.0",
43
+ "@conductor-oss/plugin-agent-droid": "0.6.0",
44
+ "@conductor-oss/plugin-agent-qwen-code": "0.6.0",
45
+ "@conductor-oss/plugin-agent-ccr": "0.6.0",
46
+ "@conductor-oss/plugin-agent-github-copilot": "0.6.0",
47
+ "@conductor-oss/plugin-mcp-server": "0.6.0",
48
+ "@conductor-oss/plugin-notifier-desktop": "0.6.0",
49
+ "@conductor-oss/plugin-notifier-discord": "0.6.0",
50
+ "@conductor-oss/plugin-runtime-tmux": "0.6.0",
51
+ "@conductor-oss/plugin-scm-github": "0.6.0",
52
+ "@conductor-oss/plugin-terminal-web": "0.6.0",
53
+ "@conductor-oss/plugin-tracker-github": "0.6.0",
54
+ "@conductor-oss/plugin-workspace-worktree": "0.6.0",
55
55
  "chalk": "^5.6.2",
56
56
  "commander": "^14.0.3",
57
57
  "ora": "^9.3.0",
@@ -82,9 +82,9 @@
82
82
  "tailwind-merge": "^3.5.0"
83
83
  },
84
84
  "optionalDependencies": {
85
- "conductor-oss-native-darwin-universal": "0.4.0",
86
- "conductor-oss-native-linux-x64": "0.4.0",
87
- "conductor-oss-native-win32-x64": "0.4.0"
85
+ "conductor-oss-native-darwin-universal": "0.6.0",
86
+ "conductor-oss-native-linux-x64": "0.6.0",
87
+ "conductor-oss-native-win32-x64": "0.6.0"
88
88
  },
89
89
  "files": [
90
90
  "dist/",
@@ -1 +1 @@
1
- E4-NvSai1Ps20r9dtdpps
1
+ BHEBqfhQTyzF7_rs_EqmL
@@ -7,8 +7,8 @@
7
7
  "static/chunks/a6dad97d9634a72d.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/E4-NvSai1Ps20r9dtdpps/_ssgManifest.js",
11
- "static/E4-NvSai1Ps20r9dtdpps/_buildManifest.js"
10
+ "static/BHEBqfhQTyzF7_rs_EqmL/_ssgManifest.js",
11
+ "static/BHEBqfhQTyzF7_rs_EqmL/_buildManifest.js"
12
12
  ],
13
13
  "rootMainFiles": [
14
14
  "static/chunks/ba2aa8b54e912820.js",
@@ -83,8 +83,8 @@
83
83
  "dynamicRoutes": {},
84
84
  "notFoundRoutes": [],
85
85
  "preview": {
86
- "previewModeId": "fce92a1f1342f1b13ed91b6bdd62464f",
87
- "previewModeSigningKey": "36400662164e8e9f828a442b4c6e70fd6e3c64f04eb5388674ca49fc4a3132b1",
88
- "previewModeEncryptionKey": "3e887dce7449921a6b7eff2086b8a7decf80741749bc475da0ea45d92a39055b"
86
+ "previewModeId": "ce02106457fbec85b89dd65ba8686ff4",
87
+ "previewModeSigningKey": "f5b80feb5acbddec31748ebc2b7f56558b217c67ee652925d9d92ac17112d4ac",
88
+ "previewModeEncryptionKey": "37e3c5666d5cda7e7922b3a4acd78fae37fe8b5461ec0118a783dc1f078e2cf2"
89
89
  }
90
90
  }