@beeuni/sdk 0.1.0 → 0.3.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 (291) hide show
  1. package/README.md +53 -92
  2. package/dist/beeuni.esm.min.js +36 -34
  3. package/dist/beeuni.global.js +36 -34
  4. package/dist/browser/cache/idb-sync-cache.js +15 -5
  5. package/dist/browser/session-sync/server-transcript-mirror.d.ts +7 -1
  6. package/dist/browser/session-sync/server-transcript-mirror.js +30 -24
  7. package/dist/browser/session-sync/session-sync-registry.d.ts +3 -1
  8. package/dist/browser/session-sync/session-sync-registry.js +48 -3
  9. package/dist/browser/stores/sync-store/keep-unchanged.d.ts +4 -0
  10. package/dist/browser/stores/sync-store/keep-unchanged.js +34 -0
  11. package/dist/browser/stores/sync-store.d.ts +7 -0
  12. package/dist/browser/stores/sync-store.js +122 -35
  13. package/dist/core/attachments/prompt-attachments.d.ts +4 -0
  14. package/dist/core/attachments/prompt-attachments.js +34 -0
  15. package/dist/core/capture/rules.d.ts +17 -0
  16. package/dist/core/capture/rules.js +27 -0
  17. package/dist/core/client/beeuni.d.ts +99 -34
  18. package/dist/core/client/beeuni.js +5 -11
  19. package/dist/core/client/capture.d.ts +105 -0
  20. package/dist/core/client/capture.js +48 -0
  21. package/dist/core/client/facade-catalog.d.ts +0 -4
  22. package/dist/core/client/facade-catalog.js +1 -5
  23. package/dist/core/client/facade-identity.d.ts +1 -0
  24. package/dist/core/client/facade-identity.js +1 -0
  25. package/dist/core/client/project-access-resources.d.ts +3 -1
  26. package/dist/core/client/project-access-resources.js +1 -1
  27. package/dist/core/client/project-connections.d.ts +2 -2
  28. package/dist/core/client/project-connections.js +2 -2
  29. package/dist/core/client/project-operations-admin.d.ts +4 -4
  30. package/dist/core/client/project-operations-review.d.ts +2 -3
  31. package/dist/core/client/project-operations-review.js +1 -0
  32. package/dist/core/client/project-operations-workspace.d.ts +4 -4
  33. package/dist/core/client/project-operations-workspace.js +1 -1
  34. package/dist/core/client/project-operations.d.ts +9 -19
  35. package/dist/core/client/project-operations.js +2 -6
  36. package/dist/core/client/project-platform-security.d.ts +1 -1
  37. package/dist/core/client/project-platform-settings.d.ts +1 -1
  38. package/dist/core/client/session-context.d.ts +2 -0
  39. package/dist/core/client/session-handle.d.ts +13 -0
  40. package/dist/core/client/session-lifecycle-resources.d.ts +11 -0
  41. package/dist/core/client/session-lifecycle-resources.js +4 -0
  42. package/dist/core/client/session-lifecycle-security.d.ts +2 -0
  43. package/dist/core/client/session-lifecycle-security.js +1 -0
  44. package/dist/core/client/session-readiness.d.ts +2 -0
  45. package/dist/core/client/session-readiness.js +20 -1
  46. package/dist/core/http/api-client.d.ts +1 -7
  47. package/dist/core/http/api-client.js +2 -37
  48. package/dist/core/http/auth.d.ts +2 -4
  49. package/dist/core/http/auth.js +2 -8
  50. package/dist/core/http/config.d.ts +2 -0
  51. package/dist/core/http/response-error.js +26 -11
  52. package/dist/core/http/transport.js +6 -1
  53. package/dist/core/models/composer-model.d.ts +14 -0
  54. package/dist/core/models/composer-model.js +21 -1
  55. package/dist/core/rest/platform-client/capture.d.ts +363 -0
  56. package/dist/core/rest/platform-client/capture.js +116 -0
  57. package/dist/core/rest/platform-client/client-policy.d.ts +8 -0
  58. package/dist/core/rest/platform-client/client-policy.js +30 -0
  59. package/dist/core/rest/platform-client/index.d.ts +4 -4
  60. package/dist/core/rest/platform-client/index.js +4 -4
  61. package/dist/core/rest/platform-client/lifecycle.js +18 -12
  62. package/dist/core/rest/platform-client/shared.d.ts +5 -0
  63. package/dist/core/rest/platform-client/shared.js +18 -0
  64. package/dist/core/rest/platform-client/types.d.ts +1 -1
  65. package/dist/core/rest/projects-client/account-secret-resources.d.ts +2 -1
  66. package/dist/core/rest/projects-client/accounts.d.ts +34 -0
  67. package/dist/core/rest/projects-client/accounts.js +10 -0
  68. package/dist/core/rest/projects-client/admin-providers.d.ts +0 -61
  69. package/dist/core/rest/projects-client/admin-providers.js +0 -6
  70. package/dist/core/rest/projects-client/agent-config.d.ts +3 -0
  71. package/dist/core/rest/projects-client/apps-fleet.d.ts +5 -1
  72. package/dist/core/rest/projects-client/apps-fleet.js +2 -2
  73. package/dist/core/rest/projects-client/apps.d.ts +11 -1
  74. package/dist/core/rest/projects-client/change-requests.d.ts +2 -0
  75. package/dist/core/rest/projects-client/change-requests.js +2 -0
  76. package/dist/core/rest/projects-client/connectors.d.ts +13 -55
  77. package/dist/core/rest/projects-client/connectors.js +5 -29
  78. package/dist/core/rest/projects-client/files.d.ts +3 -0
  79. package/dist/core/rest/projects-client/files.js +4 -0
  80. package/dist/core/rest/projects-client/gateway.d.ts +5 -0
  81. package/dist/core/rest/projects-client/git-backend.d.ts +1 -10
  82. package/dist/core/rest/projects-client/git-backend.js +0 -10
  83. package/dist/core/rest/projects-client/iam-actions.d.ts +76 -0
  84. package/dist/core/rest/projects-client/iam-actions.js +101 -0
  85. package/dist/core/rest/projects-client/iam-sso.d.ts +0 -10
  86. package/dist/core/rest/projects-client/iam-sso.js +0 -3
  87. package/dist/core/rest/projects-client/iam.d.ts +1 -0
  88. package/dist/core/rest/projects-client/iam.js +1 -0
  89. package/dist/core/rest/projects-client/index.d.ts +1 -4
  90. package/dist/core/rest/projects-client/index.js +1 -4
  91. package/dist/core/rest/projects-client/notifications.d.ts +1 -1
  92. package/dist/core/rest/projects-client/notifications.js +4 -0
  93. package/dist/core/rest/projects-client/projects.d.ts +4 -2
  94. package/dist/core/rest/projects-client/projects.js +4 -2
  95. package/dist/core/rest/projects-client/review-items.d.ts +2 -0
  96. package/dist/core/rest/projects-client/review-items.js +4 -0
  97. package/dist/core/rest/projects-client/review.d.ts +17 -3
  98. package/dist/core/rest/projects-client/review.js +11 -0
  99. package/dist/core/rest/projects-client/sandbox.d.ts +8 -9
  100. package/dist/core/rest/projects-client/secrets.d.ts +3 -0
  101. package/dist/core/rest/projects-client/session-attachments.js +14 -1
  102. package/dist/core/rest/projects-client/session-sandbox.d.ts +1 -1
  103. package/dist/core/rest/projects-client/sessions.d.ts +31 -4
  104. package/dist/core/rest/projects-client/sessions.js +34 -4
  105. package/dist/core/runtime/runtime-rest-client.js +1 -1
  106. package/dist/core/runtime/runtime-types.d.ts +1 -0
  107. package/dist/core/session/control-stream.d.ts +1 -0
  108. package/dist/core/session/control-stream.js +18 -1
  109. package/dist/core/session/open-bundle.d.ts +4 -4
  110. package/dist/core/session/open-bundle.js +29 -46
  111. package/dist/core/session/turn-end-watch.d.ts +47 -0
  112. package/dist/core/session/turn-end-watch.js +141 -0
  113. package/dist/core/session-log/guard.d.ts +6 -0
  114. package/dist/core/session-log/guard.js +109 -0
  115. package/dist/core/session-log/index.d.ts +7 -0
  116. package/dist/core/session-log/index.js +5 -0
  117. package/dist/core/session-log/saved-log.d.ts +10 -0
  118. package/dist/core/session-log/saved-log.js +25 -0
  119. package/dist/core/session-log/source.d.ts +25 -0
  120. package/dist/core/session-log/source.js +30 -0
  121. package/dist/core/session-log/store.d.ts +21 -0
  122. package/dist/core/session-log/store.js +126 -0
  123. package/dist/core/session-log/tool-call.d.ts +11 -0
  124. package/dist/core/session-log/tool-call.js +65 -0
  125. package/dist/core/session-log/turns/blocks.d.ts +60 -0
  126. package/dist/core/session-log/turns/blocks.js +124 -0
  127. package/dist/core/session-log/turns/history.d.ts +32 -0
  128. package/dist/core/session-log/turns/history.js +99 -0
  129. package/dist/core/session-log/turns/index.d.ts +4 -0
  130. package/dist/core/session-log/turns/index.js +4 -0
  131. package/dist/core/session-log/turns/metrics.d.ts +21 -0
  132. package/dist/core/session-log/turns/metrics.js +29 -0
  133. package/dist/core/session-log/turns/turn.d.ts +55 -0
  134. package/dist/core/session-log/turns/turn.js +279 -0
  135. package/dist/core/session-log/turns/v1-parts.d.ts +8 -0
  136. package/dist/core/session-log/turns/v1-parts.js +43 -0
  137. package/dist/core/session-log/types.d.ts +264 -0
  138. package/dist/core/session-log/types.js +6 -0
  139. package/dist/core/session-log/v1-view.d.ts +13 -0
  140. package/dist/core/session-log/v1-view.js +215 -0
  141. package/dist/core/session-log/v1.d.ts +31 -0
  142. package/dist/core/session-log/v1.js +473 -0
  143. package/dist/core/session-sync/copy-store-types.d.ts +19 -0
  144. package/dist/core/session-sync/copy-store-types.js +1 -0
  145. package/dist/core/session-sync/saved-copy-store.js +25 -4
  146. package/dist/core/session-sync/saved-transcript.d.ts +15 -1
  147. package/dist/core/session-sync/saved-transcript.js +55 -0
  148. package/dist/core/session-sync/session-sync-controller.js +3 -0
  149. package/dist/core/stream/event-stream.js +2 -2
  150. package/dist/core/turns/classify.d.ts +2 -1
  151. package/dist/core/turns/classify.js +7 -3
  152. package/dist/core/turns/edit-blocks.d.ts +1 -0
  153. package/dist/core/turns/edit-blocks.js +15 -0
  154. package/dist/core/turns/parts.d.ts +3 -2
  155. package/dist/core/turns/parts.js +4 -2
  156. package/dist/core/turns/segments/burst-summary.d.ts +1 -0
  157. package/dist/core/turns/segments/burst-summary.js +24 -0
  158. package/dist/core/turns/segments/group-steps.d.ts +4 -3
  159. package/dist/core/turns/segments/group-steps.js +9 -6
  160. package/dist/core/turns/segments/index.d.ts +1 -0
  161. package/dist/core/turns/segments/index.js +1 -0
  162. package/dist/core/turns/segments/narration.d.ts +5 -4
  163. package/dist/core/turns/segments/narration.js +12 -3
  164. package/dist/core/turns/segments/session-activity-groups.d.ts +2 -1
  165. package/dist/core/turns/segments/session-activity-groups.js +3 -1
  166. package/dist/core/turns/segments/step-label.d.ts +2 -1
  167. package/dist/core/turns/segments/step-label.js +3 -1
  168. package/dist/core/turns/segments/work-split.d.ts +10 -0
  169. package/dist/core/turns/segments/work-split.js +40 -0
  170. package/dist/core/turns/segments/working-turn.d.ts +4 -2
  171. package/dist/core/turns/segments/working-turn.js +9 -8
  172. package/dist/core/turns/state.d.ts +2 -7
  173. package/dist/core/turns/state.js +28 -134
  174. package/dist/core/turns/tool-kind.d.ts +1 -1
  175. package/dist/core/turns/tool-kind.js +3 -2
  176. package/dist/core/turns/tool-registry.js +1 -0
  177. package/dist/core/turns/tools/tool-meta.d.ts +3 -2
  178. package/dist/core/turns/tools/tool-meta.js +5 -2
  179. package/dist/core/turns/tools/tool-outcome.d.ts +2 -1
  180. package/dist/core/turns/tools/tool-outcome.js +3 -1
  181. package/dist/core/turns/types.d.ts +1 -1
  182. package/dist/core/turns/view-model.js +1 -13
  183. package/dist/core/warm-session-pool.d.ts +29 -0
  184. package/dist/core/warm-session-pool.js +127 -0
  185. package/dist/genui/catalog.d.ts +28 -0
  186. package/dist/genui/catalog.js +396 -0
  187. package/dist/genui/expansion.d.ts +3 -0
  188. package/dist/genui/expansion.js +295 -0
  189. package/dist/genui/fence-entry.d.ts +2 -0
  190. package/dist/genui/fence-entry.js +1 -0
  191. package/dist/genui/fence.d.ts +21 -0
  192. package/dist/genui/fence.js +138 -0
  193. package/dist/genui/index.d.ts +6 -0
  194. package/dist/genui/index.js +6 -0
  195. package/dist/genui/markdown.d.ts +12 -0
  196. package/dist/genui/markdown.js +104 -0
  197. package/dist/genui/parse.d.ts +6 -0
  198. package/dist/genui/parse.js +75 -0
  199. package/dist/genui/prompt.d.ts +2 -0
  200. package/dist/genui/prompt.js +206 -0
  201. package/dist/genui/react/default-components.d.ts +2 -0
  202. package/dist/genui/react/default-components.js +72 -0
  203. package/dist/genui/react/default-components.test.d.ts +1 -0
  204. package/dist/genui/react/default-components.test.js +94 -0
  205. package/dist/genui/react/genui-block-disabled.test.d.ts +1 -0
  206. package/dist/genui/react/genui-block-disabled.test.js +50 -0
  207. package/dist/genui/react/genui-block.d.ts +28 -0
  208. package/dist/genui/react/genui-block.js +91 -0
  209. package/dist/genui/react/genui-block.test.d.ts +1 -0
  210. package/dist/genui/react/genui-block.test.js +205 -0
  211. package/dist/genui/react/index.d.ts +2 -0
  212. package/dist/genui/react/index.js +2 -0
  213. package/dist/genui/share.d.ts +5 -0
  214. package/dist/genui/share.js +30 -0
  215. package/dist/genui/test-fixtures.d.ts +2 -0
  216. package/dist/genui/test-fixtures.js +16 -0
  217. package/dist/genui/types.d.ts +29 -0
  218. package/dist/genui/types.js +1 -0
  219. package/dist/genui/urls.d.ts +1 -0
  220. package/dist/genui/urls.js +18 -0
  221. package/dist/genui/validate.d.ts +9 -0
  222. package/dist/genui/validate.js +116 -0
  223. package/dist/index.d.ts +4 -4
  224. package/dist/index.js +4 -4
  225. package/dist/internal/connector-catalog.d.ts +48 -0
  226. package/dist/internal/connector-catalog.js +27 -0
  227. package/dist/internal/host-configuration.d.ts +22 -0
  228. package/dist/internal/host-configuration.js +28 -0
  229. package/dist/internal/platform-admin-react.d.ts +12 -0
  230. package/dist/internal/platform-admin-react.js +13 -0
  231. package/dist/internal/platform-admin.d.ts +9 -0
  232. package/dist/internal/platform-admin.js +9 -0
  233. package/dist/platform/ui.d.ts +8 -2
  234. package/dist/platform/ui.js +19 -4
  235. package/dist/react/chat/use-chat-turns.d.ts +1 -1
  236. package/dist/react/human-presence.d.ts +9 -0
  237. package/dist/react/human-presence.js +12 -0
  238. package/dist/react/index.d.ts +4 -13
  239. package/dist/react/index.js +4 -13
  240. package/dist/react/opencode.d.ts +1 -0
  241. package/dist/react/opencode.js +1 -0
  242. package/dist/react/query-contracts.d.ts +6 -0
  243. package/dist/react/query-contracts.js +6 -0
  244. package/dist/react/query-keys.d.ts +17 -2
  245. package/dist/react/query-keys.js +24 -2
  246. package/dist/react/reset-identity-state.js +2 -0
  247. package/dist/react/session-cache-write.d.ts +1 -0
  248. package/dist/react/session-cache-write.js +20 -0
  249. package/dist/react/session-transcript-subscription.js +3 -1
  250. package/dist/react/sign-in-with-beeuni.d.ts +6 -6
  251. package/dist/react/turn-end-handoff.d.ts +13 -0
  252. package/dist/react/turn-end-handoff.js +101 -0
  253. package/dist/react/use-admin-providers.d.ts +3 -6
  254. package/dist/react/use-admin-providers.js +1 -11
  255. package/dist/react/use-capture.d.ts +47 -0
  256. package/dist/react/use-capture.js +173 -0
  257. package/dist/react/use-feature-flag.js +1 -0
  258. package/dist/react/use-opencode-events/handle-event.d.ts +1 -0
  259. package/dist/react/use-opencode-events/handle-event.js +5 -0
  260. package/dist/react/use-opencode-events/handle-interaction-event.js +8 -3
  261. package/dist/react/use-opencode-events/handle-session-event.js +13 -8
  262. package/dist/react/use-opencode-events/handler-context.d.ts +1 -0
  263. package/dist/react/use-opencode-events/helpers.d.ts +1 -0
  264. package/dist/react/use-opencode-events/helpers.js +11 -1
  265. package/dist/react/use-opencode-events/index.js +1 -0
  266. package/dist/react/use-opencode-local.d.ts +5 -1
  267. package/dist/react/use-opencode-local.js +15 -2
  268. package/dist/react/use-opencode-sessions/commands.d.ts +11 -1
  269. package/dist/react/use-opencode-sessions/commands.js +21 -1
  270. package/dist/react/use-opencode-sessions/permissions.js +28 -1
  271. package/dist/react/use-project-sessions.d.ts +1 -1
  272. package/dist/react/use-project-sessions.js +6 -5
  273. package/dist/react/use-prompt-attachments.js +1 -0
  274. package/dist/react/use-review-summary.d.ts +13 -0
  275. package/dist/react/use-review-summary.js +32 -0
  276. package/dist/react/use-runtime-reconnect.js +1 -1
  277. package/dist/react/use-session-list-state.d.ts +6 -0
  278. package/dist/react/use-session-list-state.js +33 -0
  279. package/dist/react/use-session-log.d.ts +16 -0
  280. package/dist/react/use-session-log.js +143 -0
  281. package/dist/react/use-session-messages.d.ts +2 -1
  282. package/dist/react/use-session-messages.js +15 -14
  283. package/dist/react/use-session-stream.js +12 -1
  284. package/dist/react/use-session-sync.d.ts +2 -2
  285. package/dist/react/use-session-sync.js +10 -8
  286. package/dist/react/use-session-transcript-history.js +2 -12
  287. package/dist/react/use-session-working.d.ts +2 -0
  288. package/dist/react/use-session-working.js +10 -0
  289. package/dist/react/use-session.d.ts +6 -0
  290. package/dist/react/use-session.js +88 -6
  291. package/package.json +62 -8
@@ -202,6 +202,40 @@ export declare function acceptAccountInvite(inviteId: string): Promise<{
202
202
  role: string;
203
203
  }>;
204
204
  }>;
205
+ export type AccountInviteLanding = {
206
+ kind: 'project';
207
+ projectId: string;
208
+ accountId: string;
209
+ } | {
210
+ kind: 'account';
211
+ accountId: string;
212
+ };
213
+ export declare function accountInviteLanding(accepted: {
214
+ account_id: string;
215
+ bootstrap_grants_applied?: ReadonlyArray<{
216
+ project_id: string;
217
+ }>;
218
+ }, invite?: {
219
+ projects?: ReadonlyArray<{
220
+ project_id: string;
221
+ }>;
222
+ } | null): AccountInviteLanding;
223
+ export declare function acceptAccountInviteAndLand(inviteId: string, invite?: {
224
+ projects?: ReadonlyArray<{
225
+ project_id: string;
226
+ }>;
227
+ } | null): Promise<{
228
+ accepted: {
229
+ account_id: string;
230
+ account_role: AccountRole;
231
+ already_accepted?: boolean;
232
+ bootstrap_grants_applied?: Array<{
233
+ project_id: string;
234
+ role: string;
235
+ }>;
236
+ };
237
+ landing: AccountInviteLanding;
238
+ }>;
205
239
  export declare function declineAccountInvite(inviteId: string): Promise<{
206
240
  ok: boolean;
207
241
  }>;
@@ -58,6 +58,16 @@ export async function describeAccountInvite(inviteId) {
58
58
  export async function acceptAccountInvite(inviteId) {
59
59
  return unwrap(await backendApi.post(`/account-invites/${inviteId}/accept`, {}));
60
60
  }
61
+ export function accountInviteLanding(accepted, invite) {
62
+ const project = accepted.bootstrap_grants_applied?.[0] ?? invite?.projects?.[0];
63
+ return project
64
+ ? { kind: 'project', projectId: project.project_id, accountId: accepted.account_id }
65
+ : { kind: 'account', accountId: accepted.account_id };
66
+ }
67
+ export async function acceptAccountInviteAndLand(inviteId, invite) {
68
+ const accepted = await acceptAccountInvite(inviteId);
69
+ return { accepted, landing: accountInviteLanding(accepted, invite) };
70
+ }
61
71
  export async function declineAccountInvite(inviteId) {
62
72
  return unwrap(await backendApi.post(`/account-invites/${inviteId}/decline`, {}));
63
73
  }
@@ -68,64 +68,3 @@ export declare function getAdminProviderFallback(): Promise<{
68
68
  enabled: boolean;
69
69
  }>;
70
70
  export declare function setAdminProviderFallback<T = unknown>(enabled: boolean): Promise<T>;
71
- export type AdminBootMode = 'standard' | 'artifacts' | 'volume';
72
- export interface AdminBootModeRule {
73
- mode: AdminBootMode;
74
- standardFallback: boolean;
75
- }
76
- export interface AdminVolumesPolicy {
77
- enabled: boolean;
78
- percent: number;
79
- orgs: Record<string, boolean>;
80
- }
81
- export interface AdminBootModePolicy {
82
- volumes: AdminVolumesPolicy;
83
- killSwitch: boolean;
84
- default: AdminBootModeRule;
85
- orgs: Record<string, AdminBootModeRule>;
86
- fallback: {
87
- volumeAttempts: number;
88
- artifactsAttempts: number;
89
- };
90
- artifacts: string | null;
91
- }
92
- export interface AdminBootModes {
93
- stored: boolean;
94
- policy: AdminBootModePolicy;
95
- orgs: Array<{
96
- accountId: string;
97
- name: string | null;
98
- volumes: boolean | null;
99
- rule: AdminBootModeRule | null;
100
- }>;
101
- env: {
102
- bootArtifacts: string | null;
103
- volumeOff: boolean;
104
- driveSync: boolean;
105
- };
106
- providers: {
107
- allowed: string[];
108
- default: string;
109
- volumeProvider: string;
110
- volumeProviderConfigured: boolean;
111
- };
112
- stats: {
113
- since: string;
114
- modes: {
115
- mode: AdminBootMode;
116
- requested: number;
117
- booted: number;
118
- }[];
119
- fallbacks: {
120
- from: AdminBootMode;
121
- to: AdminBootMode;
122
- reason: string;
123
- count: number;
124
- sample: string | null;
125
- }[];
126
- } | {
127
- error: string;
128
- };
129
- }
130
- export declare function getAdminBootModes(): Promise<AdminBootModes>;
131
- export declare function setAdminBootModes(policy: AdminBootModePolicy): Promise<AdminBootModes>;
@@ -31,9 +31,3 @@ export function setAdminProviderFallback(enabled) {
31
31
  .put('/admin/api/provider-fallback', { enabled })
32
32
  .then((response) => unwrap(response));
33
33
  }
34
- export function getAdminBootModes() {
35
- return backendApi.get('/admin/api/boot-modes').then((response) => unwrap(response));
36
- }
37
- export function setAdminBootModes(policy) {
38
- return backendApi.put('/admin/api/boot-modes', policy).then((response) => unwrap(response));
39
- }
@@ -26,6 +26,9 @@ export interface AgentConfigBlock {
26
26
  connectors_personal?: string[];
27
27
  secrets?: AgentGrantSetV2;
28
28
  skills?: AgentGrantSetV2;
29
+ subagents?: AgentGrantSetV2;
30
+ commands?: AgentGrantSetV2;
31
+ extensions?: AgentGrantSetV2;
29
32
  apps?: AgentGrantSetV2;
30
33
  beeuni_permissions?: AgentGrantSetV2;
31
34
  beeuni_cli?: AgentGrantSetV2;
@@ -27,6 +27,8 @@ export interface AppVolume {
27
27
  process_group: string;
28
28
  machine_id: string | null;
29
29
  size_gb: number;
30
+ used_bytes?: number | null;
31
+ last_commit_at?: string | null;
30
32
  status: 'creating' | 'ready' | 'destroying' | 'destroyed' | 'error';
31
33
  attached: boolean;
32
34
  snapshot_retention_days: number;
@@ -61,7 +63,9 @@ export declare const startAppMachine: (projectId: string, appId: string, machine
61
63
  export declare const stopAppMachine: (projectId: string, appId: string, machineId: string) => Promise<AppMachine[]>;
62
64
  export declare const restartAppMachine: (projectId: string, appId: string, machineId: string) => Promise<AppMachine[]>;
63
65
  export declare function destroyAppMachine(projectId: string, appId: string, machineId: string): Promise<AppMachine[]>;
64
- export declare function scaleApp(projectId: string, appId: string, count: Record<string, number>): Promise<{
66
+ export declare function scaleApp(projectId: string, appId: string, count: Record<string, number>, options?: {
67
+ newVolumes?: boolean;
68
+ }): Promise<{
65
69
  scale: Record<string, number>;
66
70
  machines: AppMachine[];
67
71
  }>;
@@ -13,8 +13,8 @@ export const restartAppMachine = (projectId, appId, machineId) => machineAction(
13
13
  export async function destroyAppMachine(projectId, appId, machineId) {
14
14
  return unwrap(await backendApi.delete(`${app(projectId, appId)}/machines/${machineId}`), 'Failed to destroy the machine').machines;
15
15
  }
16
- export async function scaleApp(projectId, appId, count) {
17
- return unwrap(await backendApi.put(`${app(projectId, appId)}/scale`, { count }), 'Failed to scale the App');
16
+ export async function scaleApp(projectId, appId, count, options = {}) {
17
+ return unwrap(await backendApi.put(`${app(projectId, appId)}/scale`, { count, ...(options.newVolumes ? { new_volumes: true } : {}) }), 'Failed to scale the App');
18
18
  }
19
19
  export async function execInApp(projectId, appId, input) {
20
20
  return unwrap(await backendApi.post(`${app(projectId, appId)}/exec`, input), 'Failed to run the command');
@@ -1,4 +1,4 @@
1
- export type AppHostingProvider = 'daytona' | 'platinum' | 'e2b';
1
+ export type AppHostingProvider = string;
2
2
  export type AppDesiredState = 'running' | 'stopped';
3
3
  export type AppAccessMode = 'private' | 'project' | 'restricted' | 'public' | 'password';
4
4
  export type AppArtifactKind = 'archive' | 'oci_image';
@@ -100,6 +100,7 @@ export interface App {
100
100
  slug: string;
101
101
  name: string;
102
102
  url: string;
103
+ external_url?: string | null;
103
104
  access_mode: AppAccessMode;
104
105
  access_revision: number;
105
106
  desired_state: AppDesiredState;
@@ -120,6 +121,7 @@ export interface App {
120
121
  used_by?: string[];
121
122
  auth?: AppAuth;
122
123
  labels?: string[];
124
+ display?: AppDisplay;
123
125
  scale?: Record<string, number>;
124
126
  services?: AppServiceSummary[];
125
127
  machines?: {
@@ -135,6 +137,11 @@ export interface App {
135
137
  created_at: string;
136
138
  updated_at: string;
137
139
  }
140
+ export interface AppDisplay {
141
+ listed?: boolean;
142
+ preview?: 'live' | 'none';
143
+ parent?: string;
144
+ }
138
145
  export interface CreateAppInput {
139
146
  slug: string;
140
147
  name: string;
@@ -144,6 +151,7 @@ export interface CreateAppInput {
144
151
  idle_timeout_seconds?: number;
145
152
  always_on?: boolean;
146
153
  uses?: string[];
154
+ external_url?: string;
147
155
  }
148
156
  export interface UpdateAppInput {
149
157
  name?: string;
@@ -154,6 +162,8 @@ export interface UpdateAppInput {
154
162
  always_on?: boolean;
155
163
  uses?: string[];
156
164
  labels?: string[];
165
+ display?: AppDisplay;
166
+ external_url?: string;
157
167
  }
158
168
  export type AppViewerTokenScope = 'off' | 'identity' | 'api';
159
169
  export interface AppAccessConfig {
@@ -77,9 +77,11 @@ export interface ChangeRequestMergeResponse {
77
77
  export interface ListChangeRequestsOptions {
78
78
  originSessionId?: string;
79
79
  limit?: number;
80
+ cursor?: string;
80
81
  }
81
82
  export declare function listChangeRequests(projectId: string, status?: ChangeRequestStatus | 'all', options?: ListChangeRequestsOptions): Promise<{
82
83
  change_requests: ChangeRequest[];
84
+ next_cursor?: string | null;
83
85
  }>;
84
86
  export declare function getChangeRequest(projectId: string, crId: string): Promise<ChangeRequestDetailResponse>;
85
87
  export declare function getChangeRequestDiff(projectId: string, crId: string): Promise<ChangeRequestDiffResponse>;
@@ -12,6 +12,8 @@ export async function listChangeRequests(projectId, status, options) {
12
12
  params.set('origin_session_id', options.originSessionId);
13
13
  if (options?.limit != null)
14
14
  params.set('limit', String(options.limit));
15
+ if (options?.cursor)
16
+ params.set('cursor', options.cursor);
15
17
  const query = params.toString() ? `?${params.toString()}` : '';
16
18
  return unwrap(await backendApi.get(`/projects/${projectId}/change-requests${query}`, {
17
19
  showErrors: false,
@@ -103,7 +103,7 @@ export type ConnectorAuthorizationStrategy = 'project' | 'user';
103
103
  export interface AdminConnector {
104
104
  slug: string;
105
105
  name: string;
106
- provider: 'composio' | 'pipedream' | 'mcp' | 'openapi' | 'postman' | 'graphql' | 'http' | 'channel' | 'computer';
106
+ provider: string;
107
107
  platform?: 'slack' | 'email' | null;
108
108
  iconUrl?: string | null;
109
109
  status: 'active' | 'disabled' | 'needs_auth' | 'error';
@@ -379,7 +379,7 @@ export interface ConnectionSharePrincipal {
379
379
  principal_id: string;
380
380
  }
381
381
  export declare function shareConnection(projectId: string, connectionId: string, principals?: ConnectionSharePrincipal[]): Promise<Connection>;
382
- export type ConnectorConnectProvider = 'composio' | 'pipedream';
382
+ export type ConnectorConnectProvider = string;
383
383
  export interface ConnectorConnectResult {
384
384
  provider?: ConnectorConnectProvider;
385
385
  app?: string;
@@ -404,8 +404,8 @@ export interface ConnectorConnectStatus {
404
404
  provider: ConnectorConnectProvider | null;
405
405
  providers?: ConnectorConnectProvider[];
406
406
  }
407
- export declare function pipedreamConnectConnection(projectId: string, connectionId: string, input?: ConnectionConnectInput): Promise<ConnectorConnectResult>;
408
- export declare function pipedreamFinalizeConnection(projectId: string, connectionId: string): Promise<ConnectorFinalizeResult>;
407
+ export declare function connectorConnectConnection(projectId: string, connectionId: string, input?: ConnectionConnectInput): Promise<ConnectorConnectResult>;
408
+ export declare function connectorFinalizeConnection(projectId: string, connectionId: string): Promise<ConnectorFinalizeResult>;
409
409
  export interface ListConnectorsOptions {
410
410
  includeSchemas?: boolean;
411
411
  }
@@ -485,7 +485,6 @@ export interface ConnectorConnectOptions {
485
485
  errorRedirectUri?: string;
486
486
  }
487
487
  export declare function connectorConnect(projectId: string, slug: string, options?: ConnectorConnectOptions): Promise<ConnectorConnectResult>;
488
- export declare const pipedreamConnect: typeof connectorConnect;
489
488
  export interface SessionConnectRequest {
490
489
  slug: string;
491
490
  app: string;
@@ -523,56 +522,14 @@ export declare function createConnector(projectId: string, draft: ConnectorDraft
523
522
  authDiscovery?: ConnectorAuthDiscovery;
524
523
  }>;
525
524
  export declare function discoverConnectorAuth(projectId: string, draft: ConnectorDraftInput): Promise<ConnectorAuthDiscovery>;
525
+ export interface McpServerSignInCheck {
526
+ requires_sign_in: boolean;
527
+ one_click: boolean;
528
+ }
529
+ export declare function checkMcpServerSignIn(projectId: string, url: string): Promise<McpServerSignInCheck>;
526
530
  export declare function deleteConnector(projectId: string, slug: string): Promise<{
527
531
  ok: boolean;
528
532
  }>;
529
- export interface PipedreamApp {
530
- slug: string;
531
- name: string;
532
- description: string | null;
533
- imgSrc: string | null;
534
- authType: string | null;
535
- categories: string[];
536
- hasActions: boolean;
537
- hasTriggers: boolean;
538
- featuredWeight: number;
539
- directId?: string | null;
540
- }
541
- export interface PipedreamCategory {
542
- key: string;
543
- label: string;
544
- count: number;
545
- }
546
- export interface PipedreamCatalogQuery {
547
- q?: string;
548
- category?: string;
549
- cursor?: string;
550
- limit?: number;
551
- }
552
- export interface PipedreamCatalogPage {
553
- apps: PipedreamApp[];
554
- categories: PipedreamCategory[];
555
- total?: number;
556
- nextCursor?: string;
557
- hasMore: boolean;
558
- indexReady?: boolean;
559
- excludedNoActions?: number;
560
- }
561
- export declare function listPipedreamApps(projectId: string, qOrQuery?: string | PipedreamCatalogQuery, cursor?: string): Promise<PipedreamCatalogPage>;
562
- export interface PipedreamSection {
563
- key: string;
564
- label: string;
565
- total: number;
566
- apps: PipedreamApp[];
567
- }
568
- export declare function listPipedreamSections(projectId: string, opts?: {
569
- perCategory?: number;
570
- maxCategories?: number;
571
- }): Promise<{
572
- sections: PipedreamSection[];
573
- categories: PipedreamCategory[];
574
- indexReady?: boolean;
575
- }>;
576
533
  export interface ConnectToolkit {
577
534
  slug: string;
578
535
  name: string;
@@ -582,9 +539,10 @@ export interface ConnectToolkit {
582
539
  isNoAuth: boolean;
583
540
  connected: boolean;
584
541
  directId?: string | null;
542
+ directMcpUrl?: string | null;
585
543
  }
586
544
  export interface ConnectToolkitsPage {
587
- provider: 'composio';
545
+ provider: string;
588
546
  toolkits: ConnectToolkit[];
589
547
  total?: number;
590
548
  nextCursor?: string;
@@ -609,7 +567,7 @@ export interface ConnectCategory {
609
567
  count: number;
610
568
  }
611
569
  export interface ConnectSectionsPage {
612
- provider: 'composio';
570
+ provider: string;
613
571
  sections: ConnectSection[];
614
572
  categories: ConnectCategory[];
615
573
  }
@@ -705,6 +663,7 @@ export declare const getDiscoverIntegration: typeof getDiscoverConnector;
705
663
  export declare function getConnectStatus(): Promise<ConnectorConnectStatus>;
706
664
  export declare function setConnectorCredential(projectId: string, slug: string, credential: string | ConnectionCredentialInput): Promise<{
707
665
  ok: boolean;
666
+ sync?: ConnectorSyncResult;
708
667
  }>;
709
668
  export declare function deleteConnectorCredential(projectId: string, slug: string): Promise<{
710
669
  ok: boolean;
@@ -717,5 +676,4 @@ export interface ConnectorFinalizeOptions {
717
676
  connectionId?: string;
718
677
  }
719
678
  export declare function connectorFinalize(projectId: string, slug: string, options?: ConnectorFinalizeOptions): Promise<ConnectorFinalizeResult>;
720
- export declare const pipedreamFinalize: typeof connectorFinalize;
721
679
  export {};
@@ -249,10 +249,10 @@ export async function shareConnection(projectId, connectionId, principals = [])
249
249
  principals,
250
250
  }));
251
251
  }
252
- export async function pipedreamConnectConnection(projectId, connectionId, input = {}) {
252
+ export async function connectorConnectConnection(projectId, connectionId, input = {}) {
253
253
  return unwrap(await backendApi.post(`/projects/${projectId}/connections/${connectionId}/connect`, input));
254
254
  }
255
- export async function pipedreamFinalizeConnection(projectId, connectionId) {
255
+ export async function connectorFinalizeConnection(projectId, connectionId) {
256
256
  return unwrap(await backendApi.post(`/projects/${projectId}/connections/${connectionId}/connect/finalize`, {}));
257
257
  }
258
258
  export async function listConnectors(projectId, options) {
@@ -296,7 +296,6 @@ export async function connectorConnect(projectId, slug, options = {}) {
296
296
  ...(options.errorRedirectUri ? { error_redirect_uri: options.errorRedirectUri } : {}),
297
297
  }));
298
298
  }
299
- export const pipedreamConnect = connectorConnect;
300
299
  export async function listSessionConnectRequests(projectId, sessionId) {
301
300
  const result = unwrap(await backendApi.get(`/connectors/projects/${projectId}/sessions/${encodeURIComponent(sessionId)}/connect-requests`));
302
301
  return result.connectors ?? [];
@@ -307,34 +306,12 @@ export async function createConnector(projectId, draft) {
307
306
  export async function discoverConnectorAuth(projectId, draft) {
308
307
  return unwrap(await backendApi.post(`/connectors/projects/${projectId}/connectors/auth-discovery`, draft));
309
308
  }
309
+ export async function checkMcpServerSignIn(projectId, url) {
310
+ return unwrap(await backendApi.post(`/connectors/projects/${projectId}/connectors/mcp-sign-in-check`, { url }));
311
+ }
310
312
  export async function deleteConnector(projectId, slug) {
311
313
  return unwrap(await backendApi.delete(`/connectors/projects/${projectId}/connectors/${encodeURIComponent(slug)}`));
312
314
  }
313
- export async function listPipedreamApps(projectId, qOrQuery, cursor) {
314
- const query = typeof qOrQuery === 'string' || qOrQuery === undefined
315
- ? { ...(qOrQuery ? { q: qOrQuery } : {}), ...(cursor ? { cursor } : {}) }
316
- : qOrQuery;
317
- const params = new URLSearchParams();
318
- if (query.q)
319
- params.set('q', query.q);
320
- if (query.category)
321
- params.set('category', query.category);
322
- if (query.cursor)
323
- params.set('cursor', query.cursor);
324
- if (query.limit)
325
- params.set('limit', String(query.limit));
326
- const qs = params.toString();
327
- return unwrap(await backendApi.get(`/connectors/projects/${projectId}/pipedream/apps${qs ? `?${qs}` : ''}`));
328
- }
329
- export async function listPipedreamSections(projectId, opts) {
330
- const params = new URLSearchParams();
331
- if (opts?.perCategory)
332
- params.set('perCategory', String(opts.perCategory));
333
- if (opts?.maxCategories)
334
- params.set('maxCategories', String(opts.maxCategories));
335
- const qs = params.toString();
336
- return unwrap(await backendApi.get(`/connectors/projects/${projectId}/pipedream/sections${qs ? `?${qs}` : ''}`));
337
- }
338
315
  export async function listConnectToolkits(projectId, query = {}) {
339
316
  const params = new URLSearchParams();
340
317
  if (query.q)
@@ -418,4 +395,3 @@ export async function connectorFinalize(projectId, slug, options = {}) {
418
395
  body.connection_id = options.connectionId;
419
396
  return unwrap(await backendApi.post(`/connectors/projects/${projectId}/connectors/${encodeURIComponent(slug)}/connect/finalize`, body));
420
397
  }
421
- export const pipedreamFinalize = connectorFinalize;
@@ -12,10 +12,13 @@ export interface ProjectDirectoryEntry {
12
12
  export interface ProjectDirectoryListing {
13
13
  entries: ProjectDirectoryEntry[];
14
14
  truncated: boolean;
15
+ next_cursor?: string | null;
15
16
  }
16
17
  export declare function listProjectDirectory(projectId: string, options?: {
17
18
  ref?: string;
18
19
  path?: string;
20
+ cursor?: string;
21
+ limit?: number;
19
22
  }): Promise<ProjectDirectoryListing>;
20
23
  export interface ProjectFileSearchMatch {
21
24
  path: string;
@@ -19,6 +19,10 @@ export async function listProjectDirectory(projectId, options) {
19
19
  if (options?.path)
20
20
  params.set('path', options.path);
21
21
  params.set('depth', '1');
22
+ if (options?.cursor)
23
+ params.set('cursor', options.cursor);
24
+ if (options?.limit !== undefined)
25
+ params.set('limit', String(options.limit));
22
26
  return unwrap(await backendApi.get(`/projects/${projectId}/files?${params.toString()}`, { showErrors: false }));
23
27
  }
24
28
  export async function searchProjectFiles(projectId, query, options) {
@@ -104,9 +104,13 @@ export interface GatewayBudgetRow {
104
104
  budget_id: string;
105
105
  scope: 'project' | 'member';
106
106
  subject_user_id: string | null;
107
+ subject_email?: string | null;
107
108
  limit_usd: number;
108
109
  period: 'day' | 'week' | 'month';
109
110
  action: 'block' | 'warn';
111
+ spent_usd?: number;
112
+ period_start?: string;
113
+ resets_at?: string;
110
114
  }
111
115
  export interface GatewayMemberSpend {
112
116
  user_id: string | null;
@@ -143,6 +147,7 @@ export interface CreatedGatewayKey {
143
147
  name: string;
144
148
  key_prefix: string;
145
149
  secret_key: string;
150
+ gateway_url?: string | null;
146
151
  }
147
152
  export type GatewayFallbackCondition = 'transient' | 'any-error';
148
153
  export interface GatewayFallbackChain {
@@ -1,15 +1,6 @@
1
- import type { GitHubRepository } from './github.js';
2
1
  export interface ManagedGitBackend {
3
2
  configured: boolean;
4
- kind: 'app' | 'pat' | null;
3
+ kind: string | null;
5
4
  owner: string | null;
6
5
  }
7
- export interface ManagedGitRepositoriesResponse {
8
- owner: string;
9
- repositories: GitHubRepository[];
10
- }
11
6
  export declare function getManagedGitBackend(): Promise<ManagedGitBackend>;
12
- export declare function listManagedGitRepositories(options?: {
13
- search?: string;
14
- limit?: number;
15
- }): Promise<ManagedGitRepositoriesResponse>;
@@ -3,13 +3,3 @@ import { unwrap } from './shared.js';
3
3
  export async function getManagedGitBackend() {
4
4
  return unwrap(await backendApi.get('/projects/git/backend', { showErrors: false }));
5
5
  }
6
- export async function listManagedGitRepositories(options) {
7
- const params = new URLSearchParams();
8
- const search = options?.search?.trim();
9
- if (search)
10
- params.set('search', search);
11
- if (options?.limit !== undefined)
12
- params.set('limit', String(options.limit));
13
- const query = params.toString();
14
- return unwrap(await backendApi.get(`/projects/git/backend/repositories${query ? `?${query}` : ''}`, { showErrors: false }));
15
- }
@@ -0,0 +1,76 @@
1
+ import type { ReviewVerdict } from './review.js';
2
+ import { type ReviewItem } from './review-items.js';
3
+ export declare const PROJECT_ACTIONS: {
4
+ readonly PROJECT_READ: "project.read";
5
+ readonly PROJECT_WRITE: "project.write";
6
+ readonly PROJECT_DELETE: "project.delete";
7
+ readonly PROJECT_SESSION_READ: "project.session.read";
8
+ readonly PROJECT_SESSION_START: "project.session.start";
9
+ readonly PROJECT_SESSION_STOP: "project.session.stop";
10
+ readonly PROJECT_SESSION_BINDINGS_WRITE: "project.session.bindings.write";
11
+ readonly PROJECT_MEMBERS_READ: "project.members.read";
12
+ readonly PROJECT_MEMBERS_MANAGE: "project.members.manage";
13
+ readonly PROJECT_TRIGGER_READ: "project.trigger.read";
14
+ readonly PROJECT_TRIGGER_CREATE: "project.trigger.create";
15
+ readonly PROJECT_TRIGGER_UPDATE: "project.trigger.update";
16
+ readonly PROJECT_TRIGGER_DELETE: "project.trigger.delete";
17
+ readonly PROJECT_TRIGGER_FIRE: "project.trigger.fire";
18
+ readonly PROJECT_GATEWAY_LOGS_READ: "project.gateway.logs.read";
19
+ readonly PROJECT_GATEWAY_SPEND_READ: "project.gateway.spend.read";
20
+ readonly PROJECT_USAGE_READ: "project.usage.read";
21
+ readonly PROJECT_GATEWAY_BUDGET_SET: "project.gateway.budget.set";
22
+ readonly PROJECT_GATEWAY_KEYS_MANAGE: "project.gateway.keys.manage";
23
+ readonly PROJECT_AGENT_READ: "project.agent.read";
24
+ readonly PROJECT_AGENT_WRITE: "project.agent.write";
25
+ readonly PROJECT_SKILL_READ: "project.skill.read";
26
+ readonly PROJECT_SKILL_WRITE: "project.skill.write";
27
+ readonly PROJECT_COMMAND_READ: "project.command.read";
28
+ readonly PROJECT_COMMAND_WRITE: "project.command.write";
29
+ readonly PROJECT_FILE_READ: "project.file.read";
30
+ readonly PROJECT_FILE_WRITE: "project.file.write";
31
+ readonly PROJECT_SETTINGS_WRITE: "project.settings.write";
32
+ readonly PROJECT_SANDBOX_WRITE: "project.sandbox.write";
33
+ readonly PROJECT_MODEL_READ: "project.model.read";
34
+ readonly PROJECT_MODEL_WRITE: "project.model.write";
35
+ readonly PROJECT_GITOPS_READ: "project.gitops.read";
36
+ readonly PROJECT_GITOPS_PUSH: "project.gitops.push";
37
+ readonly PROJECT_GITOPS_MERGE: "project.gitops.merge";
38
+ readonly PROJECT_GITOPS_REF_ANY: "project.gitops.ref.any";
39
+ readonly PROJECT_GITOPS_REF_DELETE: "project.gitops.ref.delete";
40
+ readonly PROJECT_SECRET_READ: "project.secret.read";
41
+ readonly PROJECT_SECRET_WRITE: "project.secret.write";
42
+ readonly PROJECT_CONNECTOR_READ: "project.connector.read";
43
+ readonly PROJECT_CONNECTOR_CONNECTIONS_MANAGE: "project.connector.connections.manage";
44
+ readonly PROJECT_CONNECTOR_WRITE: "project.connector.write";
45
+ readonly PROJECT_APP_READ: "project.app.read";
46
+ readonly PROJECT_APP_WRITE: "project.app.write";
47
+ readonly PROJECT_APP_DEPLOY: "project.app.deploy";
48
+ readonly PROJECT_APP_ADMIN: "project.app.admin";
49
+ readonly PROJECT_REVIEW_READ: "project.review.read";
50
+ readonly PROJECT_REVIEW_SUBMIT: "project.review.submit";
51
+ readonly PROJECT_REVIEW_ACT: "project.review.act";
52
+ readonly PROJECT_CREDENTIALS_ISSUE: "project.credentials.issue";
53
+ };
54
+ export type ProjectAction = (typeof PROJECT_ACTIONS)[keyof typeof PROJECT_ACTIONS];
55
+ export declare const TRIGGER_CONTROL_ACTIONS: readonly ["project.write", "project.trigger.create", "project.trigger.fire", "project.trigger.update", "project.trigger.delete"];
56
+ export interface TriggerControls {
57
+ canCreate: boolean;
58
+ canFire: boolean;
59
+ canUpdate: boolean;
60
+ canDelete: boolean;
61
+ }
62
+ export declare function triggerControlsFrom(cans: Partial<Record<string, {
63
+ allowed: boolean;
64
+ } | undefined>>): TriggerControls;
65
+ export declare const REVIEW_CONTROL_ACTIONS: readonly ["project.write", "project.gitops.push", "project.gitops.merge", "project.review.act"];
66
+ export interface ChangeRequestControls {
67
+ canOpen: boolean;
68
+ canMerge: boolean;
69
+ canClose: boolean;
70
+ }
71
+ export declare function changeRequestControlsFrom(cans: Partial<Record<string, {
72
+ allowed: boolean;
73
+ } | undefined>>): ChangeRequestControls;
74
+ export declare function reviewVerdictAllowed(item: ReviewItem, verdict: ReviewVerdict, cans: Partial<Record<string, {
75
+ allowed: boolean;
76
+ } | undefined>>): boolean;