@opengeni/sdk 0.52.1 → 1.0.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 (300) hide show
  1. package/README.md +1078 -33
  2. package/dist/accounts.d.ts +153 -0
  3. package/dist/accounts.js +307 -0
  4. package/dist/accounts.js.map +1 -0
  5. package/dist/adapters/express.d.ts +31 -0
  6. package/dist/adapters/express.js +87 -0
  7. package/dist/adapters/express.js.map +1 -0
  8. package/dist/adapters/hono.d.ts +16 -0
  9. package/dist/adapters/hono.js +8 -0
  10. package/dist/adapters/hono.js.map +1 -0
  11. package/dist/adapters/next.d.ts +29 -0
  12. package/dist/adapters/next.js +22 -0
  13. package/dist/adapters/next.js.map +1 -0
  14. package/dist/allowance-refusal.d.ts +2 -0
  15. package/dist/allowance-refusal.js +50 -0
  16. package/dist/allowance-refusal.js.map +1 -0
  17. package/dist/artifact-catalog.d.ts +31 -0
  18. package/dist/artifact-client.d.ts +23 -11
  19. package/dist/artifacts.d.ts +1 -1
  20. package/dist/artifacts.js +7 -5
  21. package/dist/automations-client.d.ts +17 -0
  22. package/dist/automations.d.ts +3 -0
  23. package/dist/automations.js +84 -0
  24. package/dist/automations.js.map +1 -0
  25. package/dist/browser.d.ts +11 -0
  26. package/dist/browser.js +47 -0
  27. package/dist/browser.js.map +1 -0
  28. package/dist/chat/fold.d.ts +75 -0
  29. package/dist/chat/handler.d.ts +41 -0
  30. package/dist/chat/http.d.ts +67 -0
  31. package/dist/chat/ids.d.ts +34 -0
  32. package/dist/chat/index.d.ts +9 -0
  33. package/dist/chat/index.js +1694 -0
  34. package/dist/chat/index.js.map +1 -0
  35. package/dist/chat/openai.d.ts +30 -0
  36. package/dist/chat/opengeni.d.ts +128 -0
  37. package/dist/chat/types.d.ts +207 -0
  38. package/dist/chat/vercel.d.ts +49 -0
  39. package/dist/chats.d.ts +8 -0
  40. package/dist/{chunk-KIHGPM7H.js → chunk-2UXZUCEZ.js} +309 -46
  41. package/dist/chunk-2UXZUCEZ.js.map +1 -0
  42. package/dist/chunk-4SMEOV3P.js +246 -0
  43. package/dist/chunk-4SMEOV3P.js.map +1 -0
  44. package/dist/{chunk-FHI4DFIG.js → chunk-AH5D5Q5V.js} +31 -35
  45. package/dist/chunk-AH5D5Q5V.js.map +1 -0
  46. package/dist/chunk-APXVSSSY.js +301 -0
  47. package/dist/chunk-APXVSSSY.js.map +1 -0
  48. package/dist/chunk-DUVIYER4.js +639 -0
  49. package/dist/chunk-DUVIYER4.js.map +1 -0
  50. package/dist/{chunk-ILQZR5N6.js → chunk-FG3OO5LM.js} +3484 -750
  51. package/dist/chunk-FG3OO5LM.js.map +1 -0
  52. package/dist/chunk-GZYZT22T.js +260 -0
  53. package/dist/chunk-GZYZT22T.js.map +1 -0
  54. package/dist/chunk-HMGADJGZ.js +150 -0
  55. package/dist/chunk-HMGADJGZ.js.map +1 -0
  56. package/dist/{chunk-DXDL7EEW.js → chunk-KWADQ227.js} +198 -114
  57. package/dist/chunk-KWADQ227.js.map +1 -0
  58. package/dist/chunk-LY2K6ELJ.js +126 -0
  59. package/dist/chunk-LY2K6ELJ.js.map +1 -0
  60. package/dist/chunk-MOTJYIYL.js +340 -0
  61. package/dist/chunk-MOTJYIYL.js.map +1 -0
  62. package/dist/{chunk-MZWTWOX6.js → chunk-NC57YMUO.js} +447 -3
  63. package/dist/chunk-NC57YMUO.js.map +1 -0
  64. package/dist/chunk-RWKB6YZG.js +1270 -0
  65. package/dist/chunk-RWKB6YZG.js.map +1 -0
  66. package/dist/chunk-U6CV2SXO.js +195 -0
  67. package/dist/chunk-U6CV2SXO.js.map +1 -0
  68. package/dist/chunk-UM4ZXXJR.js +9 -0
  69. package/dist/chunk-UM4ZXXJR.js.map +1 -0
  70. package/dist/chunk-V6GIY62B.js +229 -0
  71. package/dist/chunk-V6GIY62B.js.map +1 -0
  72. package/dist/chunk-WU6GQG25.js +268 -0
  73. package/dist/chunk-WU6GQG25.js.map +1 -0
  74. package/dist/{chunk-VWE2QIVO.js → chunk-XNG7YGR3.js} +23 -6
  75. package/dist/chunk-XNG7YGR3.js.map +1 -0
  76. package/dist/{chunk-FRJFNDIR.js → chunk-YIKA2QT4.js} +37 -2
  77. package/dist/chunk-YIKA2QT4.js.map +1 -0
  78. package/dist/chunk-ZKPY6YAJ.js +135 -0
  79. package/dist/chunk-ZKPY6YAJ.js.map +1 -0
  80. package/dist/client.d.ts +843 -107
  81. package/dist/codex-realtime-controller.d.ts +6 -0
  82. package/dist/codex-realtime-controller.js +2 -2
  83. package/dist/codex-realtime-v3.d.ts +13 -2
  84. package/dist/company-brain.d.ts +22 -0
  85. package/dist/company-profile.d.ts +14 -1
  86. package/dist/core.d.ts +9 -3
  87. package/dist/core.js +28 -9
  88. package/dist/deprecation.d.ts +47 -0
  89. package/dist/desktop.d.ts +8 -0
  90. package/dist/document-authority-client.d.ts +51 -0
  91. package/dist/document-authority.d.ts +2 -0
  92. package/dist/document-authority.js +12 -0
  93. package/dist/document-authority.js.map +1 -0
  94. package/dist/editable-artifacts/browser-session.d.ts +7 -3
  95. package/dist/editable-artifacts/controller.d.ts +4 -1
  96. package/dist/editable-artifacts/errors.d.ts +1 -1
  97. package/dist/editable-artifacts/http-live-transport.d.ts +6 -2
  98. package/dist/editable-artifacts/index.d.ts +2 -0
  99. package/dist/editable-artifacts/open-failure.d.ts +9 -0
  100. package/dist/editable-artifacts/types.d.ts +6 -3
  101. package/dist/editable-artifacts/worker/kernel-adapter.d.ts +1 -1
  102. package/dist/editable-artifacts-worker.js +44 -17
  103. package/dist/editable-artifacts-worker.js.map +1 -1
  104. package/dist/editable-artifacts.js +243 -124
  105. package/dist/editable-artifacts.js.map +1 -1
  106. package/dist/embedding-client.d.ts +129 -0
  107. package/dist/errors.d.ts +36 -1
  108. package/dist/feedback.d.ts +23 -0
  109. package/dist/gateway-realtime-transport.d.ts +1 -0
  110. package/dist/gateway-realtime-transport.js +5 -3
  111. package/dist/github-repositories.d.ts +10 -0
  112. package/dist/github-repositories.js +36 -0
  113. package/dist/github-repositories.js.map +1 -0
  114. package/dist/index.d.ts +61 -12
  115. package/dist/index.js +277 -126
  116. package/dist/index.js.map +1 -1
  117. package/dist/interaction-revision-stream.d.ts +11 -0
  118. package/dist/interaction.d.ts +687 -5
  119. package/dist/interaction.js +32 -1
  120. package/dist/knowledge.d.ts +7 -0
  121. package/dist/knowledge.js +20 -0
  122. package/dist/knowledge.js.map +1 -0
  123. package/dist/message-links.d.ts +68 -0
  124. package/dist/model-context.d.ts +68 -0
  125. package/dist/model-display.d.ts +2 -0
  126. package/dist/model-display.js +15 -0
  127. package/dist/model-display.js.map +1 -0
  128. package/dist/model-picker-order.d.ts +1 -0
  129. package/dist/model-picker-order.js +10 -0
  130. package/dist/model-picker-order.js.map +1 -0
  131. package/dist/organization-integration-policy.d.ts +26 -0
  132. package/dist/organization-integration-policy.js +26 -0
  133. package/dist/organization-integration-policy.js.map +1 -0
  134. package/dist/organization-private-session-settings.d.ts +6 -0
  135. package/dist/organization-private-session-settings.js +22 -0
  136. package/dist/organization-private-session-settings.js.map +1 -0
  137. package/dist/organization-user-setup.d.ts +8 -0
  138. package/dist/organization-user-setup.js +16 -0
  139. package/dist/organization-user-setup.js.map +1 -0
  140. package/dist/pr-review-client.d.ts +16 -0
  141. package/dist/pr-review.d.ts +4 -0
  142. package/dist/pr-review.js +62 -0
  143. package/dist/pr-review.js.map +1 -0
  144. package/dist/preference-registry.d.ts +9 -1
  145. package/dist/proxy.d.ts +7 -5
  146. package/dist/realtime.d.ts +6 -4
  147. package/dist/realtime.js +10 -6
  148. package/dist/realtime.js.map +1 -1
  149. package/dist/retained-artifacts.d.ts +5 -1
  150. package/dist/session-history-import.d.ts +22 -0
  151. package/dist/session-history-import.js +36 -0
  152. package/dist/session-history-import.js.map +1 -0
  153. package/dist/session-list-entries.d.ts +1 -0
  154. package/dist/session-list-entries.js +7 -0
  155. package/dist/session-list-entries.js.map +1 -0
  156. package/dist/session-message-search.d.ts +53 -0
  157. package/dist/session-proxy-client.d.ts +24 -0
  158. package/dist/session-proxy.d.ts +245 -0
  159. package/dist/session-proxy.js +24 -0
  160. package/dist/session-proxy.js.map +1 -0
  161. package/dist/session-titles.d.ts +2 -0
  162. package/dist/site-browser-entry.d.ts +1 -0
  163. package/dist/site-browser-runtime.gen.d.ts +1 -0
  164. package/dist/site-document.d.ts +5 -0
  165. package/dist/site-document.js +20 -0
  166. package/dist/site-document.js.map +1 -0
  167. package/dist/site-document.test.d.ts +1 -0
  168. package/dist/site-http.d.ts +16 -0
  169. package/dist/site-tool-bridge.d.ts +44 -0
  170. package/dist/site.d.ts +101 -0
  171. package/dist/site.js +49 -0
  172. package/dist/site.js.map +1 -0
  173. package/dist/skills.d.ts +75 -0
  174. package/dist/stream.d.ts +2 -0
  175. package/dist/tenant-workspaces.d.ts +47 -0
  176. package/dist/tenant-workspaces.js +8 -0
  177. package/dist/tenant-workspaces.js.map +1 -0
  178. package/dist/tool-auth.d.ts +87 -0
  179. package/dist/tool-auth.js +23 -0
  180. package/dist/tool-auth.js.map +1 -0
  181. package/dist/tool-display-metadata.d.ts +3 -0
  182. package/dist/tools-FXBLUWAE.js +12 -0
  183. package/dist/tools-FXBLUWAE.js.map +1 -0
  184. package/dist/tools.d.ts +61 -0
  185. package/dist/types.d.ts +3048 -406
  186. package/dist/usage-allowances.d.ts +36 -0
  187. package/dist/usage-allowances.js +80 -0
  188. package/dist/usage-allowances.js.map +1 -0
  189. package/dist/workspace-artifacts.d.ts +33 -5
  190. package/dist/workspace-instruction-policies.d.ts +24 -2
  191. package/dist/workspace-integrations.d.ts +74 -0
  192. package/dist/workspace-integrations.js +65 -0
  193. package/dist/workspace-integrations.js.map +1 -0
  194. package/dist/workspace-learning.d.ts +124 -0
  195. package/dist/workspace-live-stream.d.ts +14 -0
  196. package/dist/workspace-state.d.ts +8 -71
  197. package/package.json +108 -3
  198. package/src/accounts.ts +443 -0
  199. package/src/adapters/express.ts +136 -0
  200. package/src/adapters/hono.ts +18 -0
  201. package/src/adapters/next.ts +42 -0
  202. package/src/allowance-refusal.ts +5 -0
  203. package/src/artifact-catalog.ts +41 -0
  204. package/src/artifact-client.ts +43 -52
  205. package/src/artifacts.ts +7 -1
  206. package/src/automations-client.ts +124 -0
  207. package/src/automations.ts +15 -0
  208. package/src/browser.ts +54 -0
  209. package/src/chat/fold.ts +431 -0
  210. package/src/chat/handler.ts +240 -0
  211. package/src/chat/http.ts +257 -0
  212. package/src/chat/ids.ts +85 -0
  213. package/src/chat/index.ts +87 -0
  214. package/src/chat/openai.ts +439 -0
  215. package/src/chat/opengeni.ts +722 -0
  216. package/src/chat/types.ts +219 -0
  217. package/src/chat/vercel.ts +204 -0
  218. package/src/chats.ts +16 -0
  219. package/src/client.ts +5162 -792
  220. package/src/codex-realtime-controller.ts +260 -12
  221. package/src/codex-realtime-lifecycle.ts +1 -0
  222. package/src/codex-realtime-v3.ts +162 -31
  223. package/src/codex-realtime.ts +1 -1
  224. package/src/company-brain.ts +59 -0
  225. package/src/company-profile.ts +17 -1
  226. package/src/core.ts +23 -1
  227. package/src/deprecation.ts +149 -0
  228. package/src/desktop.ts +11 -1
  229. package/src/document-authority-client.ts +219 -0
  230. package/src/document-authority.ts +17 -0
  231. package/src/editable-artifacts/browser-session.ts +36 -22
  232. package/src/editable-artifacts/controller.ts +102 -47
  233. package/src/editable-artifacts/errors.ts +2 -0
  234. package/src/editable-artifacts/http-live-transport.ts +62 -37
  235. package/src/editable-artifacts/index.ts +6 -0
  236. package/src/editable-artifacts/open-failure.ts +79 -0
  237. package/src/editable-artifacts/storage.ts +31 -40
  238. package/src/editable-artifacts/types.ts +6 -3
  239. package/src/editable-artifacts/worker/kernel-adapter.ts +23 -7
  240. package/src/editable-artifacts/worker/runtime.ts +26 -13
  241. package/src/editable-artifacts/worker/wire-codec.ts +23 -5
  242. package/src/embedding-client.ts +519 -0
  243. package/src/errors.ts +185 -4
  244. package/src/feedback.ts +20 -0
  245. package/src/gateway-realtime-transport.ts +253 -110
  246. package/src/github-repositories.ts +60 -0
  247. package/src/index.ts +603 -54
  248. package/src/interaction-revision-stream.ts +117 -0
  249. package/src/interaction.ts +1367 -51
  250. package/src/knowledge.ts +72 -0
  251. package/src/message-links.ts +178 -0
  252. package/src/model-context.ts +112 -0
  253. package/src/model-display.ts +10 -0
  254. package/src/model-picker-order.ts +6 -0
  255. package/src/organization-integration-policy.ts +54 -0
  256. package/src/organization-private-session-settings.ts +33 -0
  257. package/src/organization-user-setup.ts +31 -0
  258. package/src/pr-review-client.ts +92 -0
  259. package/src/pr-review.ts +17 -0
  260. package/src/preference-registry.ts +11 -0
  261. package/src/proxy.ts +17 -6
  262. package/src/realtime.ts +15 -4
  263. package/src/retained-artifacts.ts +101 -0
  264. package/src/session-history-import.ts +84 -0
  265. package/src/session-list-entries.ts +1 -0
  266. package/src/session-message-search.ts +47 -0
  267. package/src/session-proxy-client.ts +64 -0
  268. package/src/session-proxy.ts +1473 -0
  269. package/src/session-titles.ts +10 -0
  270. package/src/site-browser-entry.ts +6 -0
  271. package/src/site-browser-runtime.gen.ts +2 -0
  272. package/src/site-document.test.ts +64 -0
  273. package/src/site-document.ts +18 -0
  274. package/src/site-http.ts +162 -0
  275. package/src/site-tool-bridge.ts +146 -0
  276. package/src/site.ts +585 -0
  277. package/src/skills.ts +69 -0
  278. package/src/sse.ts +8 -2
  279. package/src/stream.ts +38 -4
  280. package/src/tenant-workspaces.ts +148 -0
  281. package/src/tool-auth.ts +301 -0
  282. package/src/tool-display-metadata.ts +19 -0
  283. package/src/tools.ts +396 -0
  284. package/src/types.ts +3607 -493
  285. package/src/usage-allowances.ts +189 -0
  286. package/src/workspace-artifacts.ts +40 -6
  287. package/src/workspace-instruction-policies.ts +26 -1
  288. package/src/workspace-integrations.ts +402 -0
  289. package/src/workspace-learning.ts +138 -0
  290. package/src/workspace-live-stream.ts +137 -0
  291. package/src/workspace-state.ts +8 -82
  292. package/dist/chunk-DXDL7EEW.js.map +0 -1
  293. package/dist/chunk-FHI4DFIG.js.map +0 -1
  294. package/dist/chunk-FRJFNDIR.js.map +0 -1
  295. package/dist/chunk-ILQZR5N6.js.map +0 -1
  296. package/dist/chunk-KIHGPM7H.js.map +0 -1
  297. package/dist/chunk-MZWTWOX6.js.map +0 -1
  298. package/dist/chunk-V5F253OG.js +0 -116
  299. package/dist/chunk-V5F253OG.js.map +0 -1
  300. package/dist/chunk-VWE2QIVO.js.map +0 -1
@@ -0,0 +1,189 @@
1
+ // @opengeni/sdk/usage-allowances — usage allowance reads and administration as
2
+ // free functions over any client's `requestJson`, so a browser console can use
3
+ // them without widening the native browser client. The root `OpenGeniClient`
4
+ // methods of the same names call the same routes.
5
+ //
6
+ // Amounts are integer USD micros (1 USD = 1,000,000). Display `fraction` and
7
+ // `status` in products that must not show money; see docs/usage-allowances.md.
8
+ import type { OpenGeniClient, OpenGeniRequestOptions } from "./client";
9
+ import type {
10
+ ClearWorkspaceAllowanceRequest,
11
+ ClearWorkspaceAllowanceResponse,
12
+ GetMyUsageRequest,
13
+ GetUsageRequest,
14
+ GrantWorkspaceCreditsRequest,
15
+ MemberAllowance,
16
+ SetMemberAllowanceRequest,
17
+ SetWorkspaceAllowanceRequest,
18
+ WorkspaceAllowance,
19
+ WorkspaceAllowanceState,
20
+ WorkspaceCreditGrant,
21
+ WorkspaceUsageResponse,
22
+ } from "@opengeni/contracts/usage-allowances";
23
+
24
+ export type {
25
+ AllowanceExhaustedRefusal,
26
+ ClearWorkspaceAllowanceRequest,
27
+ ClearWorkspaceAllowanceResponse,
28
+ GetMyUsageRequest,
29
+ GetUsageRequest,
30
+ GrantWorkspaceCreditsRequest,
31
+ MemberAllowance,
32
+ MemberAllowanceDefault,
33
+ MemberAllowanceRule,
34
+ MemberAllowanceUsage,
35
+ SetMemberAllowanceRequest,
36
+ SetWorkspaceAllowanceRequest,
37
+ UsageAllowancePeriod,
38
+ UsageAllowanceStatus,
39
+ UsageAllowanceWindow,
40
+ WorkspaceAllowance,
41
+ WorkspaceAllowanceConfig,
42
+ WorkspaceAllowanceState,
43
+ WorkspaceAllowanceUsage,
44
+ WorkspaceCreditGrant,
45
+ WorkspaceUsageResponse,
46
+ } from "@opengeni/contracts/usage-allowances";
47
+
48
+ /** The one client capability these functions need. */
49
+ export type UsageAllowanceRequestClient = Pick<OpenGeniClient, "requestJson">;
50
+
51
+ /** A member target: canonical subject id, or an external identity. */
52
+ export type UsageAllowanceMemberTarget = string | { source: string; externalId: string };
53
+
54
+ function workspacePath(workspaceId: string): string {
55
+ return `/v1/workspaces/${encodeURIComponent(workspaceId)}`;
56
+ }
57
+
58
+ /** Query strings for usage reads: only defined values, stringified. */
59
+ export function usageAllowanceQuery(query: GetUsageRequest): Record<string, string> {
60
+ return Object.fromEntries(
61
+ Object.entries(query)
62
+ .filter(([, value]) => value !== undefined)
63
+ .map(([key, value]) => [key, String(value)]),
64
+ );
65
+ }
66
+
67
+ /** Configuration, or null when no ceiling is configured. Budget-read authority. */
68
+ export async function getWorkspaceAllowance(
69
+ client: UsageAllowanceRequestClient,
70
+ workspaceId: string,
71
+ ): Promise<WorkspaceAllowance | null> {
72
+ return await client.requestJson("GET", `${workspacePath(workspaceId)}/allowance`);
73
+ }
74
+
75
+ /** Lifecycle version plus configuration; version survives a clear. Budget-read authority. */
76
+ export async function getWorkspaceAllowanceState(
77
+ client: UsageAllowanceRequestClient,
78
+ workspaceId: string,
79
+ ): Promise<WorkspaceAllowanceState> {
80
+ return await client.requestJson("GET", `${workspacePath(workspaceId)}/allowance/state`);
81
+ }
82
+
83
+ /**
84
+ * Set the workspace ceiling with exact-version compare-and-set. Requires a
85
+ * verified organization administrator or a full-access organization key.
86
+ */
87
+ export async function setWorkspaceAllowance(
88
+ client: UsageAllowanceRequestClient,
89
+ workspaceId: string,
90
+ request: SetWorkspaceAllowanceRequest,
91
+ ): Promise<WorkspaceAllowance> {
92
+ return await client.requestJson("PUT", `${workspacePath(workspaceId)}/allowance`, request);
93
+ }
94
+
95
+ /** Remove the ceiling (not a refund or counter reset). Returns the next lifecycle version. */
96
+ export async function clearWorkspaceAllowance(
97
+ client: UsageAllowanceRequestClient,
98
+ workspaceId: string,
99
+ request: ClearWorkspaceAllowanceRequest,
100
+ ): Promise<ClearWorkspaceAllowanceResponse> {
101
+ return await client.requestJson("DELETE", `${workspacePath(workspaceId)}/allowance`, request);
102
+ }
103
+
104
+ /** One-off credits on top of the included amount. Reuse the operationId to retry. */
105
+ export async function grantWorkspaceCredits(
106
+ client: UsageAllowanceRequestClient,
107
+ workspaceId: string,
108
+ request: GrantWorkspaceCreditsRequest,
109
+ ): Promise<WorkspaceCreditGrant> {
110
+ return await client.requestJson(
111
+ "POST",
112
+ `${workspacePath(workspaceId)}/allowance/grants`,
113
+ request,
114
+ );
115
+ }
116
+
117
+ /**
118
+ * Set or restore (`rule: null`) one member's ceiling with exact-version CAS.
119
+ * Shares may oversubscribe the pool; the workspace ceiling still binds.
120
+ */
121
+ export async function setMemberAllowance(
122
+ client: UsageAllowanceRequestClient,
123
+ workspaceId: string,
124
+ member: UsageAllowanceMemberTarget,
125
+ request: SetMemberAllowanceRequest,
126
+ ): Promise<MemberAllowance> {
127
+ const path =
128
+ typeof member === "string"
129
+ ? encodeURIComponent(member)
130
+ : `external/${encodeURIComponent(member.source)}/${encodeURIComponent(member.externalId)}`;
131
+ return await client.requestJson(
132
+ "PUT",
133
+ `${workspacePath(workspaceId)}/members/${path}/allowance`,
134
+ request,
135
+ );
136
+ }
137
+
138
+ /** The paginated roster page. Workspace admin, organization admin, or org-key read. */
139
+ export async function getUsage(
140
+ client: UsageAllowanceRequestClient,
141
+ workspaceId: string,
142
+ query: GetUsageRequest = {},
143
+ options: OpenGeniRequestOptions = {},
144
+ ): Promise<WorkspaceUsageResponse> {
145
+ return await client.requestJson(
146
+ "GET",
147
+ `${workspacePath(workspaceId)}/usage`,
148
+ undefined,
149
+ usageAllowanceQuery(query),
150
+ options,
151
+ );
152
+ }
153
+
154
+ /** The caller's own row plus the workspace aggregate. Any authenticated member. */
155
+ export async function getMyUsage(
156
+ client: UsageAllowanceRequestClient,
157
+ workspaceId: string,
158
+ query: GetMyUsageRequest = {},
159
+ options: OpenGeniRequestOptions = {},
160
+ ): Promise<WorkspaceUsageResponse> {
161
+ return await client.requestJson(
162
+ "GET",
163
+ `${workspacePath(workspaceId)}/usage/me`,
164
+ undefined,
165
+ usageAllowanceQuery(query),
166
+ options,
167
+ );
168
+ }
169
+
170
+ /** Every roster page for one period (follows `nextCursor`). */
171
+ export async function getAllUsage(
172
+ client: UsageAllowanceRequestClient,
173
+ workspaceId: string,
174
+ query: Omit<GetUsageRequest, "cursor"> = {},
175
+ options: OpenGeniRequestOptions = {},
176
+ ): Promise<WorkspaceUsageResponse> {
177
+ const first = await getUsage(client, workspaceId, { limit: 200, ...query }, options);
178
+ const members = [...first.members];
179
+ let cursor = first.nextCursor;
180
+ // Bounded: a cursor that repeats would otherwise loop forever.
181
+ const seen = new Set<string>();
182
+ while (cursor && !seen.has(cursor)) {
183
+ seen.add(cursor);
184
+ const page = await getUsage(client, workspaceId, { limit: 200, ...query, cursor }, options);
185
+ members.push(...page.members);
186
+ cursor = page.nextCursor;
187
+ }
188
+ return { ...first, members, nextCursor: null };
189
+ }
@@ -1,3 +1,15 @@
1
+ import type { ToolGatewayIdentity } from "./types";
2
+
3
+ export type WorkspaceArtifactSourceFile = {
4
+ path: string;
5
+ content: string;
6
+ };
7
+
8
+ export type WorkspaceArtifactSourceBundle = {
9
+ entrypoint: string;
10
+ files: WorkspaceArtifactSourceFile[];
11
+ };
12
+
1
13
  export type WorkspaceArtifactVersion = {
2
14
  id: string;
3
15
  accountId: string;
@@ -5,8 +17,11 @@ export type WorkspaceArtifactVersion = {
5
17
  artifactId: string;
6
18
  revision: number;
7
19
  contentType: "text/html";
8
- contentSha256: string;
20
+ contentSha256: string | null;
9
21
  sizeBytes: number;
22
+ sourceSha256: string | null;
23
+ sourceSizeBytes: number | null;
24
+ requestedTools: ToolGatewayIdentity[];
10
25
  sourceSessionId: string | null;
11
26
  sourceTurnId: string | null;
12
27
  sourceAttemptId: string | null;
@@ -34,7 +49,7 @@ export type WorkspaceArtifactEvent = {
34
49
  accountId: string;
35
50
  workspaceId: string;
36
51
  artifactId: string;
37
- type: "published" | "rolled_back";
52
+ type: "published" | "rolled_back" | "archived" | "restored";
38
53
  fromVersionId: string | null;
39
54
  toVersionId: string;
40
55
  sourceSessionId: string | null;
@@ -46,7 +61,12 @@ export type WorkspaceArtifactEvent = {
46
61
  createdAt: string;
47
62
  };
48
63
 
49
- export type WorkspaceArtifactListOptions = { limit?: number; cursor?: string };
64
+ export type WorkspaceArtifactListOptions = {
65
+ sourceSessionId?: string;
66
+ limit?: number;
67
+ cursor?: string;
68
+ status?: WorkspaceArtifact["status"];
69
+ };
50
70
  export type WorkspaceArtifactListResponse = {
51
71
  artifacts: WorkspaceArtifact[];
52
72
  nextCursor: string | null;
@@ -63,8 +83,10 @@ export type WorkspaceArtifactContentResponse = {
63
83
  artifactId: string;
64
84
  versionId: string;
65
85
  contentType: "text/html";
66
- contentSha256: string;
86
+ contentSha256: string | null;
67
87
  html: string;
88
+ source: WorkspaceArtifactSourceBundle;
89
+ requestedTools: ToolGatewayIdentity[];
68
90
  };
69
91
  export type WorkspaceArtifactMutationResponse = {
70
92
  artifact: WorkspaceArtifact;
@@ -76,13 +98,19 @@ export type CreateWorkspaceArtifactRequest = {
76
98
  slug?: string;
77
99
  title: string;
78
100
  description?: string | null;
79
- html: string;
101
+ html?: string;
102
+ uploadId?: string;
103
+ source?: WorkspaceArtifactSourceBundle;
104
+ requestedTools?: ToolGatewayIdentity[];
80
105
  idempotencyKey: string;
81
106
  };
82
107
  export type PublishWorkspaceArtifactVersionRequest = {
83
108
  title?: string;
84
109
  description?: string | null;
85
- html: string;
110
+ html?: string;
111
+ uploadId?: string;
112
+ source?: WorkspaceArtifactSourceBundle;
113
+ requestedTools?: ToolGatewayIdentity[];
86
114
  expectedCurrentVersionId: string;
87
115
  idempotencyKey: string;
88
116
  };
@@ -92,3 +120,9 @@ export type RollbackWorkspaceArtifactRequest = {
92
120
  reason: string;
93
121
  idempotencyKey: string;
94
122
  };
123
+ export type SetWorkspaceArtifactStatusRequest = {
124
+ status: "active" | "archived";
125
+ expectedCurrentVersionId: string;
126
+ reason: string;
127
+ idempotencyKey: string;
128
+ };
@@ -5,11 +5,12 @@ export type WorkspaceInstructionPolicyScope = "global" | "role";
5
5
  export type WorkspaceInstructionPolicyProvenanceSource =
6
6
  | "human"
7
7
  | "onboarding"
8
+ | "agent_learning"
8
9
  | "knowledge_proposal"
9
10
  | "legacy_import";
10
11
  export type WorkspaceInstructionPolicyDraftProvenanceSource = Exclude<
11
12
  WorkspaceInstructionPolicyProvenanceSource,
12
- "legacy_import"
13
+ "legacy_import" | "agent_learning"
13
14
  >;
14
15
  export type WorkspaceInstructionPolicyActivationType = "activate" | "rollback";
15
16
 
@@ -53,6 +54,12 @@ export type WorkspaceInstructionPolicyHead = WorkspaceInstructionPolicyTarget &
53
54
  activatedAt: string;
54
55
  };
55
56
 
57
+ export type WorkspaceInstructionPolicyInactiveHead = WorkspaceInstructionPolicyTarget & {
58
+ workspaceId: string;
59
+ activationVersion: number;
60
+ deactivatedAt: string;
61
+ };
62
+
56
63
  export type WorkspaceInstructionPolicyActivationEvent = WorkspaceInstructionPolicyTarget & {
57
64
  id: string;
58
65
  operationId: string;
@@ -67,6 +74,19 @@ export type WorkspaceInstructionPolicyActivationEvent = WorkspaceInstructionPoli
67
74
  createdAt: string;
68
75
  };
69
76
 
77
+ export type WorkspaceInstructionPolicyDeactivationEvent = WorkspaceInstructionPolicyTarget & {
78
+ id: string;
79
+ operationId: string;
80
+ accountId: string;
81
+ workspaceId: string;
82
+ type: "automatic_deactivate";
83
+ activationVersion: number;
84
+ oldRevision: WorkspaceInstructionPolicyRevisionIdentity;
85
+ actorSubjectId: string;
86
+ reason: string;
87
+ createdAt: string;
88
+ };
89
+
70
90
  export type CreateWorkspaceInstructionPolicyDraftRequest = WorkspaceInstructionPolicyTarget & {
71
91
  operationId?: string;
72
92
  content: string;
@@ -91,7 +111,12 @@ export type WorkspaceInstructionPolicyListOptions = {
91
111
  export type WorkspaceInstructionPolicyListResponse = {
92
112
  revisions: WorkspaceInstructionPolicyRevision[];
93
113
  activeHeads: WorkspaceInstructionPolicyHead[];
114
+ /** Additive current inactive target boundaries; absent on pre-controller servers. */
115
+ inactiveHeads?: WorkspaceInstructionPolicyInactiveHead[];
116
+ inactiveHeadsTruncated?: boolean;
94
117
  activationEvents: WorkspaceInstructionPolicyActivationEvent[];
118
+ /** Additive lifecycle history; absent on pre-controller servers. */
119
+ deactivationEvents?: WorkspaceInstructionPolicyDeactivationEvent[];
95
120
  nextAfterRevision: number | null;
96
121
  };
97
122