@diskd-ai/sdk 5.1.2

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 (299) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +1036 -0
  3. package/dist/agentHub/StreamProtocolFetcher.d.ts +55 -0
  4. package/dist/agentHub/StreamProtocolFetcher.d.ts.map +1 -0
  5. package/dist/agentHub/StreamProtocolFetcher.js +176 -0
  6. package/dist/agentHub/StreamProtocolFetcher.js.map +1 -0
  7. package/dist/agentHub/StreamProtocolHandler.d.ts +18 -0
  8. package/dist/agentHub/StreamProtocolHandler.d.ts.map +1 -0
  9. package/dist/agentHub/StreamProtocolHandler.js +63 -0
  10. package/dist/agentHub/StreamProtocolHandler.js.map +1 -0
  11. package/dist/agentHub/agentHub.d.ts +30 -0
  12. package/dist/agentHub/agentHub.d.ts.map +1 -0
  13. package/dist/agentHub/agentHub.js +200 -0
  14. package/dist/agentHub/agentHub.js.map +1 -0
  15. package/dist/agentHub/agentHubTypes.d.ts +110 -0
  16. package/dist/agentHub/agentHubTypes.d.ts.map +1 -0
  17. package/dist/agentHub/agentHubTypes.js +8 -0
  18. package/dist/agentHub/agentHubTypes.js.map +1 -0
  19. package/dist/agentHub/streamProtocolMap.d.ts +328 -0
  20. package/dist/agentHub/streamProtocolMap.d.ts.map +1 -0
  21. package/dist/agentHub/streamProtocolMap.js +8 -0
  22. package/dist/agentHub/streamProtocolMap.js.map +1 -0
  23. package/dist/auth/createApiKeyAuth.d.ts +11 -0
  24. package/dist/auth/createApiKeyAuth.d.ts.map +1 -0
  25. package/dist/auth/createApiKeyAuth.js +31 -0
  26. package/dist/auth/createApiKeyAuth.js.map +1 -0
  27. package/dist/auth/createAuth.d.ts +3 -0
  28. package/dist/auth/createAuth.d.ts.map +1 -0
  29. package/dist/auth/createAuth.js +128 -0
  30. package/dist/auth/createAuth.js.map +1 -0
  31. package/dist/auth/createAuthBrowser.d.ts +3 -0
  32. package/dist/auth/createAuthBrowser.d.ts.map +1 -0
  33. package/dist/auth/createAuthBrowser.js +104 -0
  34. package/dist/auth/createAuthBrowser.js.map +1 -0
  35. package/dist/auth/jwtClaims.d.ts +3 -0
  36. package/dist/auth/jwtClaims.d.ts.map +1 -0
  37. package/dist/auth/jwtClaims.js +23 -0
  38. package/dist/auth/jwtClaims.js.map +1 -0
  39. package/dist/auth/keyfile.d.ts +10 -0
  40. package/dist/auth/keyfile.d.ts.map +1 -0
  41. package/dist/auth/keyfile.js +28 -0
  42. package/dist/auth/keyfile.js.map +1 -0
  43. package/dist/auth/oidcDiscovery.d.ts +9 -0
  44. package/dist/auth/oidcDiscovery.d.ts.map +1 -0
  45. package/dist/auth/oidcDiscovery.js +27 -0
  46. package/dist/auth/oidcDiscovery.js.map +1 -0
  47. package/dist/auth/pkce.d.ts +4 -0
  48. package/dist/auth/pkce.d.ts.map +1 -0
  49. package/dist/auth/pkce.js +43 -0
  50. package/dist/auth/pkce.js.map +1 -0
  51. package/dist/auth/sessionStorage.d.ts +8 -0
  52. package/dist/auth/sessionStorage.d.ts.map +1 -0
  53. package/dist/auth/sessionStorage.js +8 -0
  54. package/dist/auth/sessionStorage.js.map +1 -0
  55. package/dist/auth/tokenRequests.d.ts +15 -0
  56. package/dist/auth/tokenRequests.d.ts.map +1 -0
  57. package/dist/auth/tokenRequests.js +89 -0
  58. package/dist/auth/tokenRequests.js.map +1 -0
  59. package/dist/auth/types.d.ts +35 -0
  60. package/dist/auth/types.d.ts.map +1 -0
  61. package/dist/auth/types.js +2 -0
  62. package/dist/auth/types.js.map +1 -0
  63. package/dist/auth/urlRuntime.d.ts +7 -0
  64. package/dist/auth/urlRuntime.d.ts.map +1 -0
  65. package/dist/auth/urlRuntime.js +17 -0
  66. package/dist/auth/urlRuntime.js.map +1 -0
  67. package/dist/browser/index.d.ts +8 -0
  68. package/dist/browser/index.d.ts.map +1 -0
  69. package/dist/browser/index.js +3 -0
  70. package/dist/browser/index.js.map +1 -0
  71. package/dist/calendar/calendar.d.ts +21 -0
  72. package/dist/calendar/calendar.d.ts.map +1 -0
  73. package/dist/calendar/calendar.js +105 -0
  74. package/dist/calendar/calendar.js.map +1 -0
  75. package/dist/calendar/calendarTypes.d.ts +191 -0
  76. package/dist/calendar/calendarTypes.d.ts.map +1 -0
  77. package/dist/calendar/calendarTypes.js +4 -0
  78. package/dist/calendar/calendarTypes.js.map +1 -0
  79. package/dist/contacts/contacts.d.ts +10 -0
  80. package/dist/contacts/contacts.d.ts.map +1 -0
  81. package/dist/contacts/contacts.js +86 -0
  82. package/dist/contacts/contacts.js.map +1 -0
  83. package/dist/contacts/contactsTypes.d.ts +81 -0
  84. package/dist/contacts/contactsTypes.d.ts.map +1 -0
  85. package/dist/contacts/contactsTypes.js +4 -0
  86. package/dist/contacts/contactsTypes.js.map +1 -0
  87. package/dist/drive/DriveRepository.d.ts +88 -0
  88. package/dist/drive/DriveRepository.d.ts.map +1 -0
  89. package/dist/drive/DriveRepository.js +156 -0
  90. package/dist/drive/DriveRepository.js.map +1 -0
  91. package/dist/drive/crontab.d.ts +7 -0
  92. package/dist/drive/crontab.d.ts.map +1 -0
  93. package/dist/drive/crontab.js +374 -0
  94. package/dist/drive/crontab.js.map +1 -0
  95. package/dist/drive/crontabTypes.d.ts +136 -0
  96. package/dist/drive/crontabTypes.d.ts.map +1 -0
  97. package/dist/drive/crontabTypes.js +2 -0
  98. package/dist/drive/crontabTypes.js.map +1 -0
  99. package/dist/drive/drive.d.ts +8 -0
  100. package/dist/drive/drive.d.ts.map +1 -0
  101. package/dist/drive/drive.js +711 -0
  102. package/dist/drive/drive.js.map +1 -0
  103. package/dist/drive/driveDb.d.ts +6 -0
  104. package/dist/drive/driveDb.d.ts.map +1 -0
  105. package/dist/drive/driveDb.js +220 -0
  106. package/dist/drive/driveDb.js.map +1 -0
  107. package/dist/drive/driveDbTypes.d.ts +138 -0
  108. package/dist/drive/driveDbTypes.d.ts.map +1 -0
  109. package/dist/drive/driveDbTypes.js +5 -0
  110. package/dist/drive/driveDbTypes.js.map +1 -0
  111. package/dist/drive/driveTypes.d.ts +322 -0
  112. package/dist/drive/driveTypes.d.ts.map +1 -0
  113. package/dist/drive/driveTypes.js +5 -0
  114. package/dist/drive/driveTypes.js.map +1 -0
  115. package/dist/drive/rpc.d.ts +14 -0
  116. package/dist/drive/rpc.d.ts.map +1 -0
  117. package/dist/drive/rpc.js +48 -0
  118. package/dist/drive/rpc.js.map +1 -0
  119. package/dist/drive/session.d.ts +7 -0
  120. package/dist/drive/session.d.ts.map +1 -0
  121. package/dist/drive/session.js +450 -0
  122. package/dist/drive/session.js.map +1 -0
  123. package/dist/drive/sessionBuilder.d.ts +33 -0
  124. package/dist/drive/sessionBuilder.d.ts.map +1 -0
  125. package/dist/drive/sessionBuilder.js +77 -0
  126. package/dist/drive/sessionBuilder.js.map +1 -0
  127. package/dist/drive/sessionObject.d.ts +57 -0
  128. package/dist/drive/sessionObject.d.ts.map +1 -0
  129. package/dist/drive/sessionObject.js +191 -0
  130. package/dist/drive/sessionObject.js.map +1 -0
  131. package/dist/drive/sessionTypes.d.ts +182 -0
  132. package/dist/drive/sessionTypes.d.ts.map +1 -0
  133. package/dist/drive/sessionTypes.js +2 -0
  134. package/dist/drive/sessionTypes.js.map +1 -0
  135. package/dist/drive/typeorm/DriveDriver.d.ts +27 -0
  136. package/dist/drive/typeorm/DriveDriver.d.ts.map +1 -0
  137. package/dist/drive/typeorm/DriveDriver.js +86 -0
  138. package/dist/drive/typeorm/DriveDriver.js.map +1 -0
  139. package/dist/drive/typeorm/DriveQueryRunner.d.ts +15 -0
  140. package/dist/drive/typeorm/DriveQueryRunner.d.ts.map +1 -0
  141. package/dist/drive/typeorm/DriveQueryRunner.js +76 -0
  142. package/dist/drive/typeorm/DriveQueryRunner.js.map +1 -0
  143. package/dist/drive/typeorm/createDriveDataSource.d.ts +3 -0
  144. package/dist/drive/typeorm/createDriveDataSource.d.ts.map +1 -0
  145. package/dist/drive/typeorm/createDriveDataSource.js +36 -0
  146. package/dist/drive/typeorm/createDriveDataSource.js.map +1 -0
  147. package/dist/drive/typeorm/datasourceTypes.d.ts +56 -0
  148. package/dist/drive/typeorm/datasourceTypes.d.ts.map +1 -0
  149. package/dist/drive/typeorm/datasourceTypes.js +5 -0
  150. package/dist/drive/typeorm/datasourceTypes.js.map +1 -0
  151. package/dist/drive/types.d.ts +48 -0
  152. package/dist/drive/types.d.ts.map +1 -0
  153. package/dist/drive/types.js +2 -0
  154. package/dist/drive/types.js.map +1 -0
  155. package/dist/env/apiKey.d.ts +2 -0
  156. package/dist/env/apiKey.d.ts.map +1 -0
  157. package/dist/env/apiKey.js +11 -0
  158. package/dist/env/apiKey.js.map +1 -0
  159. package/dist/env/baseUrl.d.ts +3 -0
  160. package/dist/env/baseUrl.d.ts.map +1 -0
  161. package/dist/env/baseUrl.js +31 -0
  162. package/dist/env/baseUrl.js.map +1 -0
  163. package/dist/inbox/inboxTypes.d.ts +34 -0
  164. package/dist/inbox/inboxTypes.d.ts.map +1 -0
  165. package/dist/inbox/inboxTypes.js +5 -0
  166. package/dist/inbox/inboxTypes.js.map +1 -0
  167. package/dist/index.d.ts +56 -0
  168. package/dist/index.d.ts.map +1 -0
  169. package/dist/index.js +43 -0
  170. package/dist/index.js.map +1 -0
  171. package/dist/llmRouter/llmRouter.d.ts +23 -0
  172. package/dist/llmRouter/llmRouter.d.ts.map +1 -0
  173. package/dist/llmRouter/llmRouter.js +566 -0
  174. package/dist/llmRouter/llmRouter.js.map +1 -0
  175. package/dist/llmRouter/llmRouterTypes.d.ts +350 -0
  176. package/dist/llmRouter/llmRouterTypes.d.ts.map +1 -0
  177. package/dist/llmRouter/llmRouterTypes.js +5 -0
  178. package/dist/llmRouter/llmRouterTypes.js.map +1 -0
  179. package/dist/mcpHub/mcpHub.d.ts +23 -0
  180. package/dist/mcpHub/mcpHub.d.ts.map +1 -0
  181. package/dist/mcpHub/mcpHub.js +223 -0
  182. package/dist/mcpHub/mcpHub.js.map +1 -0
  183. package/dist/mcpHub/mcpHubTypes.d.ts +228 -0
  184. package/dist/mcpHub/mcpHubTypes.d.ts.map +1 -0
  185. package/dist/mcpHub/mcpHubTypes.js +5 -0
  186. package/dist/mcpHub/mcpHubTypes.js.map +1 -0
  187. package/dist/mcpTools/mcpTools.d.ts +31 -0
  188. package/dist/mcpTools/mcpTools.d.ts.map +1 -0
  189. package/dist/mcpTools/mcpTools.js +144 -0
  190. package/dist/mcpTools/mcpTools.js.map +1 -0
  191. package/dist/mcpTools/mcpToolsTypes.d.ts +45 -0
  192. package/dist/mcpTools/mcpToolsTypes.d.ts.map +1 -0
  193. package/dist/mcpTools/mcpToolsTypes.js +5 -0
  194. package/dist/mcpTools/mcpToolsTypes.js.map +1 -0
  195. package/dist/messagesStore/messagesStore.d.ts +22 -0
  196. package/dist/messagesStore/messagesStore.d.ts.map +1 -0
  197. package/dist/messagesStore/messagesStore.js +402 -0
  198. package/dist/messagesStore/messagesStore.js.map +1 -0
  199. package/dist/messagesStore/messagesStoreTypes.d.ts +327 -0
  200. package/dist/messagesStore/messagesStoreTypes.d.ts.map +1 -0
  201. package/dist/messagesStore/messagesStoreTypes.js +11 -0
  202. package/dist/messagesStore/messagesStoreTypes.js.map +1 -0
  203. package/dist/node/fastDns.d.ts +2 -0
  204. package/dist/node/fastDns.d.ts.map +1 -0
  205. package/dist/node/fastDns.js +119 -0
  206. package/dist/node/fastDns.js.map +1 -0
  207. package/dist/operatives/operatives.d.ts +22 -0
  208. package/dist/operatives/operatives.d.ts.map +1 -0
  209. package/dist/operatives/operatives.js +199 -0
  210. package/dist/operatives/operatives.js.map +1 -0
  211. package/dist/operatives/operativesTypes.d.ts +141 -0
  212. package/dist/operatives/operativesTypes.d.ts.map +1 -0
  213. package/dist/operatives/operativesTypes.js +6 -0
  214. package/dist/operatives/operativesTypes.js.map +1 -0
  215. package/dist/platformEvents/platformEvents.d.ts +14 -0
  216. package/dist/platformEvents/platformEvents.d.ts.map +1 -0
  217. package/dist/platformEvents/platformEvents.js +70 -0
  218. package/dist/platformEvents/platformEvents.js.map +1 -0
  219. package/dist/platformEvents/platformEventsTypes.d.ts +31 -0
  220. package/dist/platformEvents/platformEventsTypes.d.ts.map +1 -0
  221. package/dist/platformEvents/platformEventsTypes.js +8 -0
  222. package/dist/platformEvents/platformEventsTypes.js.map +1 -0
  223. package/dist/projects/projects.d.ts +19 -0
  224. package/dist/projects/projects.d.ts.map +1 -0
  225. package/dist/projects/projects.js +52 -0
  226. package/dist/projects/projects.js.map +1 -0
  227. package/dist/projects/projectsTypes.d.ts +47 -0
  228. package/dist/projects/projectsTypes.d.ts.map +1 -0
  229. package/dist/projects/projectsTypes.js +4 -0
  230. package/dist/projects/projectsTypes.js.map +1 -0
  231. package/dist/routineRuns/routineRuns.d.ts +19 -0
  232. package/dist/routineRuns/routineRuns.d.ts.map +1 -0
  233. package/dist/routineRuns/routineRuns.js +47 -0
  234. package/dist/routineRuns/routineRuns.js.map +1 -0
  235. package/dist/routineRuns/routineRunsTypes.d.ts +39 -0
  236. package/dist/routineRuns/routineRunsTypes.d.ts.map +1 -0
  237. package/dist/routineRuns/routineRunsTypes.js +4 -0
  238. package/dist/routineRuns/routineRunsTypes.js.map +1 -0
  239. package/dist/routines/routines.d.ts +19 -0
  240. package/dist/routines/routines.d.ts.map +1 -0
  241. package/dist/routines/routines.js +77 -0
  242. package/dist/routines/routines.js.map +1 -0
  243. package/dist/routines/routinesTypes.d.ts +106 -0
  244. package/dist/routines/routinesTypes.d.ts.map +1 -0
  245. package/dist/routines/routinesTypes.js +4 -0
  246. package/dist/routines/routinesTypes.js.map +1 -0
  247. package/dist/sdk/diskd.d.ts +3 -0
  248. package/dist/sdk/diskd.d.ts.map +1 -0
  249. package/dist/sdk/diskd.js +126 -0
  250. package/dist/sdk/diskd.js.map +1 -0
  251. package/dist/sdk/http.d.ts +13 -0
  252. package/dist/sdk/http.d.ts.map +1 -0
  253. package/dist/sdk/http.js +80 -0
  254. package/dist/sdk/http.js.map +1 -0
  255. package/dist/sdk/types.d.ts +115 -0
  256. package/dist/sdk/types.d.ts.map +1 -0
  257. package/dist/sdk/types.js +2 -0
  258. package/dist/sdk/types.js.map +1 -0
  259. package/dist/testing/auth.d.ts +8 -0
  260. package/dist/testing/auth.d.ts.map +1 -0
  261. package/dist/testing/auth.js +14 -0
  262. package/dist/testing/auth.js.map +1 -0
  263. package/dist/testing/fetchMock.d.ts +17 -0
  264. package/dist/testing/fetchMock.d.ts.map +1 -0
  265. package/dist/testing/fetchMock.js +46 -0
  266. package/dist/testing/fetchMock.js.map +1 -0
  267. package/dist/testing/index.d.ts +11 -0
  268. package/dist/testing/index.d.ts.map +1 -0
  269. package/dist/testing/index.js +11 -0
  270. package/dist/testing/index.js.map +1 -0
  271. package/dist/testing/integration.d.ts +33 -0
  272. package/dist/testing/integration.d.ts.map +1 -0
  273. package/dist/testing/integration.js +32 -0
  274. package/dist/testing/integration.js.map +1 -0
  275. package/dist/testing/jsonRpc.d.ts +9 -0
  276. package/dist/testing/jsonRpc.d.ts.map +1 -0
  277. package/dist/testing/jsonRpc.js +24 -0
  278. package/dist/testing/jsonRpc.js.map +1 -0
  279. package/dist/testing/rpcMock.d.ts +16 -0
  280. package/dist/testing/rpcMock.d.ts.map +1 -0
  281. package/dist/testing/rpcMock.js +28 -0
  282. package/dist/testing/rpcMock.js.map +1 -0
  283. package/dist/tgUserbot/tgUserbot.d.ts +23 -0
  284. package/dist/tgUserbot/tgUserbot.d.ts.map +1 -0
  285. package/dist/tgUserbot/tgUserbot.js +314 -0
  286. package/dist/tgUserbot/tgUserbot.js.map +1 -0
  287. package/dist/tgUserbot/tgUserbotTypes.d.ts +124 -0
  288. package/dist/tgUserbot/tgUserbotTypes.d.ts.map +1 -0
  289. package/dist/tgUserbot/tgUserbotTypes.js +5 -0
  290. package/dist/tgUserbot/tgUserbotTypes.js.map +1 -0
  291. package/dist/webNavigator/webNavigator.d.ts +22 -0
  292. package/dist/webNavigator/webNavigator.d.ts.map +1 -0
  293. package/dist/webNavigator/webNavigator.js +46 -0
  294. package/dist/webNavigator/webNavigator.js.map +1 -0
  295. package/dist/webNavigator/webNavigatorTypes.d.ts +133 -0
  296. package/dist/webNavigator/webNavigatorTypes.d.ts.map +1 -0
  297. package/dist/webNavigator/webNavigatorTypes.js +5 -0
  298. package/dist/webNavigator/webNavigatorTypes.js.map +1 -0
  299. package/package.json +90 -0
@@ -0,0 +1,450 @@
1
+ // Drive's session API addresses sessions by `root_path`, the canonical
2
+ // folder under which `.sessions/<sessionId>.session` lives. The SDK's
3
+ // public surface keeps `projectId` as the domain handle (callers do not
4
+ // need to know about the storage layout), and we translate to the wire
5
+ // `root_path` here. The convention `/Projects/<projectId>` matches
6
+ // app-service, which writes sessions under
7
+ // `Projects/<projectId>/.sessions/<sessionId>.session`.
8
+ const projectRootPath = (projectId) => `/Projects/${projectId}`;
9
+ const isObject = (value) => typeof value === 'object' && value !== null;
10
+ const hasOwn = (obj, key) => Object.hasOwn(obj, key);
11
+ const readField = (obj, snakeKey, camelKey) => hasOwn(obj, snakeKey) ? obj[snakeKey] : obj[camelKey];
12
+ const readRequiredNonEmptyString = (obj, snakeKey, camelKey) => {
13
+ const value = readField(obj, snakeKey, camelKey);
14
+ if (typeof value !== 'string' || value.length === 0) {
15
+ throw new Error(`Invalid Drive Session payload: '${snakeKey}' must be a non-empty string`);
16
+ }
17
+ return value;
18
+ };
19
+ const readRequiredString = (obj, snakeKey, camelKey) => {
20
+ const value = readField(obj, snakeKey, camelKey);
21
+ if (typeof value !== 'string') {
22
+ throw new Error(`Invalid Drive Session payload: '${snakeKey}' must be a string`);
23
+ }
24
+ return value;
25
+ };
26
+ const readNullableString = (obj, snakeKey, camelKey) => {
27
+ const value = readField(obj, snakeKey, camelKey);
28
+ if (value === undefined || value === null)
29
+ return null;
30
+ if (typeof value !== 'string') {
31
+ throw new Error(`Invalid Drive Session payload: '${snakeKey}' must be a string or null`);
32
+ }
33
+ return value;
34
+ };
35
+ const readNullableNumber = (obj, snakeKey, camelKey) => {
36
+ const value = readField(obj, snakeKey, camelKey);
37
+ if (value === undefined || value === null)
38
+ return null;
39
+ if (typeof value !== 'number') {
40
+ throw new Error(`Invalid Drive Session payload: '${snakeKey}' must be a number or null`);
41
+ }
42
+ return value;
43
+ };
44
+ const readRequiredBoolean = (obj, snakeKey, camelKey) => {
45
+ const value = readField(obj, snakeKey, camelKey);
46
+ if (typeof value === 'boolean')
47
+ return value;
48
+ // Be liberal in what we accept: some backends may encode booleans as 0/1.
49
+ if (value === 0)
50
+ return false;
51
+ if (value === 1)
52
+ return true;
53
+ throw new Error(`Invalid Drive Session payload: '${snakeKey}' must be a boolean`);
54
+ };
55
+ const readRequiredArray = (obj, snakeKey, camelKey) => {
56
+ const value = readField(obj, snakeKey, camelKey);
57
+ if (!Array.isArray(value)) {
58
+ throw new Error(`Invalid Drive Session payload: '${snakeKey}' must be an array`);
59
+ }
60
+ return value;
61
+ };
62
+ const readOptionalArray = (obj, snakeKey, camelKey) => {
63
+ if (hasOwn(obj, snakeKey)) {
64
+ const value = obj[snakeKey];
65
+ if (value === undefined || value === null)
66
+ return undefined;
67
+ if (!Array.isArray(value))
68
+ throw new Error(`Invalid Drive Session payload: '${snakeKey}' must be an array`);
69
+ return value;
70
+ }
71
+ if (hasOwn(obj, camelKey)) {
72
+ const value = obj[camelKey];
73
+ if (value === undefined || value === null)
74
+ return undefined;
75
+ if (!Array.isArray(value))
76
+ throw new Error(`Invalid Drive Session payload: '${camelKey}' must be an array`);
77
+ return value;
78
+ }
79
+ return undefined;
80
+ };
81
+ const readRequiredJsonObject = (obj, snakeKey, camelKey) => {
82
+ const value = readField(obj, snakeKey, camelKey);
83
+ if (!isObject(value) || Array.isArray(value)) {
84
+ throw new Error(`Invalid Drive Session payload: '${snakeKey}' must be an object`);
85
+ }
86
+ return value;
87
+ };
88
+ const readNullableJsonObject = (obj, snakeKey, camelKey) => {
89
+ const value = readField(obj, snakeKey, camelKey);
90
+ if (value === undefined || value === null)
91
+ return null;
92
+ if (!isObject(value) || Array.isArray(value)) {
93
+ throw new Error(`Invalid Drive Session payload: '${snakeKey}' must be an object or null`);
94
+ }
95
+ return value;
96
+ };
97
+ const readNullableJsonObjectArray = (obj, snakeKey, camelKey) => {
98
+ const value = readField(obj, snakeKey, camelKey);
99
+ if (value === undefined || value === null)
100
+ return null;
101
+ if (!Array.isArray(value)) {
102
+ throw new Error(`Invalid Drive Session payload: '${snakeKey}' must be an array or null`);
103
+ }
104
+ return value.map((item) => {
105
+ if (!isObject(item) || Array.isArray(item)) {
106
+ throw new Error(`Invalid Drive Session payload: '${snakeKey}' must be an array of objects`);
107
+ }
108
+ return item;
109
+ });
110
+ };
111
+ const readNullableStringArray = (obj, snakeKey, camelKey) => {
112
+ const value = readField(obj, snakeKey, camelKey);
113
+ if (value === undefined || value === null)
114
+ return null;
115
+ if (!Array.isArray(value)) {
116
+ throw new Error(`Invalid Drive Session payload: '${snakeKey}' must be an array or null`);
117
+ }
118
+ return value.map((item) => {
119
+ if (typeof item !== 'string')
120
+ throw new Error(`Invalid Drive Session payload: '${snakeKey}' must be an array of strings`);
121
+ return item;
122
+ });
123
+ };
124
+ const decodeSessionConfig = (raw) => {
125
+ if (!isObject(raw) || Array.isArray(raw)) {
126
+ throw new Error('Invalid Drive session config: expected object');
127
+ }
128
+ return {
129
+ operativeId: readNullableString(raw, 'operative_id', 'operativeId'),
130
+ provider: readNullableString(raw, 'provider', 'provider'),
131
+ model: readNullableString(raw, 'model', 'model'),
132
+ promptText: readNullableString(raw, 'prompt_text', 'promptText'),
133
+ driveSourcesMuted: readRequiredBoolean(raw, 'drive_sources_muted', 'driveSourcesMuted'),
134
+ };
135
+ };
136
+ const decodeSessionExchange = (raw) => {
137
+ if (!isObject(raw) || Array.isArray(raw)) {
138
+ throw new Error('Invalid Drive session exchange: expected object');
139
+ }
140
+ return {
141
+ id: readRequiredNonEmptyString(raw, 'id', 'id'),
142
+ kind: readRequiredNonEmptyString(raw, 'kind', 'kind'),
143
+ metadata: readRequiredJsonObject(raw, 'metadata', 'metadata'),
144
+ createdAt: readRequiredNonEmptyString(raw, 'created_at', 'createdAt'),
145
+ };
146
+ };
147
+ const decodeSessionParticipant = (raw) => {
148
+ if (!isObject(raw) || Array.isArray(raw)) {
149
+ throw new Error('Invalid Drive session participant: expected object');
150
+ }
151
+ return {
152
+ exchangeId: readRequiredNonEmptyString(raw, 'exchange_id', 'exchangeId'),
153
+ participantKind: readRequiredNonEmptyString(raw, 'participant_kind', 'participantKind'),
154
+ participantId: readRequiredNonEmptyString(raw, 'participant_id', 'participantId'),
155
+ joinedAt: readRequiredNonEmptyString(raw, 'joined_at', 'joinedAt'),
156
+ leftAt: readNullableString(raw, 'left_at', 'leftAt'),
157
+ };
158
+ };
159
+ const decodeSessionMessage = (raw) => {
160
+ if (!isObject(raw) || Array.isArray(raw)) {
161
+ throw new Error('Invalid Drive session message: expected object');
162
+ }
163
+ return {
164
+ id: readRequiredNonEmptyString(raw, 'id', 'id'),
165
+ role: readRequiredNonEmptyString(raw, 'role', 'role'),
166
+ participantKind: readRequiredNonEmptyString(raw, 'participant_kind', 'participantKind'),
167
+ participantId: readNullableString(raw, 'participant_id', 'participantId'),
168
+ participantName: readNullableString(raw, 'participant_name', 'participantName'),
169
+ participantSlug: readNullableString(raw, 'participant_slug', 'participantSlug'),
170
+ content: readNullableString(raw, 'content', 'content'),
171
+ contentBlocksJson: readNullableString(raw, 'content_blocks_json', 'contentBlocksJson'),
172
+ sourceOrigin: readNullableString(raw, 'source_origin', 'sourceOrigin'),
173
+ turnCorrelationId: readNullableString(raw, 'turn_correlation_id', 'turnCorrelationId'),
174
+ turnContextJson: readNullableString(raw, 'turn_context_json', 'turnContextJson'),
175
+ functionCall: readNullableJsonObject(raw, 'function_call', 'functionCall'),
176
+ toolCalls: readNullableJsonObjectArray(raw, 'tool_calls', 'toolCalls'),
177
+ toolCallId: readNullableString(raw, 'tool_call_id', 'toolCallId'),
178
+ context: readNullableJsonObject(raw, 'context', 'context'),
179
+ metadata: readNullableJsonObject(raw, 'metadata', 'metadata'),
180
+ attachments: readNullableStringArray(raw, 'attachments', 'attachments'),
181
+ subtype: readNullableString(raw, 'subtype', 'subtype'),
182
+ parentMessageId: readNullableString(raw, 'parent_message_id', 'parentMessageId'),
183
+ isSidechain: readRequiredBoolean(raw, 'is_sidechain', 'isSidechain'),
184
+ tokenCount: readNullableNumber(raw, 'token_count', 'tokenCount'),
185
+ createdAt: readRequiredNonEmptyString(raw, 'created_at', 'createdAt'),
186
+ updatedAt: readNullableString(raw, 'updated_at', 'updatedAt'),
187
+ deletedAt: readNullableString(raw, 'deleted_at', 'deletedAt'),
188
+ };
189
+ };
190
+ const decodeSessionDocument = (raw) => {
191
+ if (!isObject(raw) || Array.isArray(raw)) {
192
+ throw new Error('Invalid Drive session document: expected object');
193
+ }
194
+ const exchangesRaw = readOptionalArray(raw, 'exchanges', 'exchanges') ?? [];
195
+ const participantsRaw = readOptionalArray(raw, 'participants', 'participants') ?? [];
196
+ const messagesRaw = readOptionalArray(raw, 'messages', 'messages') ?? [];
197
+ return {
198
+ id: readRequiredNonEmptyString(raw, 'id', 'id'),
199
+ workspaceId: readRequiredNonEmptyString(raw, 'workspace_id', 'workspaceId'),
200
+ projectId: readRequiredNonEmptyString(raw, 'project_id', 'projectId'),
201
+ title: readNullableString(raw, 'title', 'title'),
202
+ config: decodeSessionConfig(readField(raw, 'config', 'config')),
203
+ exchanges: exchangesRaw.map(decodeSessionExchange),
204
+ participants: participantsRaw.map(decodeSessionParticipant),
205
+ messages: messagesRaw.map(decodeSessionMessage),
206
+ createdAt: readRequiredNonEmptyString(raw, 'created_at', 'createdAt'),
207
+ updatedAt: readRequiredNonEmptyString(raw, 'updated_at', 'updatedAt'),
208
+ sourceOrigin: readNullableString(raw, 'source_origin', 'sourceOrigin'),
209
+ forkSourceSessionId: readNullableString(raw, 'fork_source_session_id', 'forkSourceSessionId'),
210
+ forkSourceMessageId: readNullableString(raw, 'fork_source_message_id', 'forkSourceMessageId'),
211
+ };
212
+ };
213
+ const encodeSessionConfig = (config) => ({
214
+ operative_id: config.operativeId,
215
+ provider: config.provider,
216
+ model: config.model,
217
+ prompt_text: config.promptText,
218
+ drive_sources_muted: config.driveSourcesMuted,
219
+ });
220
+ const encodeSessionExchange = (exchange) => ({
221
+ id: exchange.id,
222
+ kind: exchange.kind,
223
+ metadata: exchange.metadata,
224
+ created_at: exchange.createdAt,
225
+ });
226
+ const encodeSessionParticipant = (participant) => ({
227
+ exchange_id: participant.exchangeId,
228
+ participant_kind: participant.participantKind,
229
+ participant_id: participant.participantId,
230
+ joined_at: participant.joinedAt,
231
+ left_at: participant.leftAt,
232
+ });
233
+ const encodeSessionMessage = (message) => ({
234
+ id: message.id,
235
+ role: message.role,
236
+ participant_kind: message.participantKind,
237
+ participant_id: message.participantId,
238
+ participant_name: message.participantName,
239
+ participant_slug: message.participantSlug,
240
+ content: message.content,
241
+ content_blocks_json: message.contentBlocksJson,
242
+ source_origin: message.sourceOrigin,
243
+ turn_correlation_id: message.turnCorrelationId,
244
+ turn_context_json: message.turnContextJson,
245
+ function_call: message.functionCall,
246
+ tool_calls: message.toolCalls,
247
+ tool_call_id: message.toolCallId,
248
+ context: message.context,
249
+ metadata: message.metadata,
250
+ attachments: message.attachments,
251
+ subtype: message.subtype,
252
+ parent_message_id: message.parentMessageId,
253
+ is_sidechain: message.isSidechain,
254
+ token_count: message.tokenCount,
255
+ created_at: message.createdAt,
256
+ updated_at: message.updatedAt,
257
+ deleted_at: message.deletedAt,
258
+ });
259
+ const encodeSessionDocument = (doc) => ({
260
+ id: doc.id,
261
+ workspace_id: doc.workspaceId,
262
+ project_id: doc.projectId,
263
+ title: doc.title,
264
+ config: encodeSessionConfig(doc.config),
265
+ exchanges: doc.exchanges.map(encodeSessionExchange),
266
+ participants: doc.participants.map(encodeSessionParticipant),
267
+ messages: doc.messages.map(encodeSessionMessage),
268
+ created_at: doc.createdAt,
269
+ updated_at: doc.updatedAt,
270
+ source_origin: doc.sourceOrigin,
271
+ fork_source_session_id: doc.forkSourceSessionId,
272
+ fork_source_message_id: doc.forkSourceMessageId,
273
+ });
274
+ const decodeSaveResult = (raw) => {
275
+ if (!isObject(raw) || Array.isArray(raw))
276
+ throw new Error('Invalid drive/session/save result');
277
+ return {
278
+ sessionId: readRequiredNonEmptyString(raw, 'session_id', 'sessionId'),
279
+ messageCount: (() => {
280
+ const v = readField(raw, 'message_count', 'messageCount');
281
+ if (typeof v !== 'number')
282
+ throw new Error("Invalid drive/session/save result: 'message_count' must be a number");
283
+ return v;
284
+ })(),
285
+ updatedAt: readRequiredNonEmptyString(raw, 'updated_at', 'updatedAt'),
286
+ };
287
+ };
288
+ const decodeAppendResult = (raw) => {
289
+ if (!isObject(raw) || Array.isArray(raw))
290
+ throw new Error('Invalid drive/session/append-messages result');
291
+ return {
292
+ sessionId: readRequiredNonEmptyString(raw, 'session_id', 'sessionId'),
293
+ messageCount: (() => {
294
+ const v = readField(raw, 'message_count', 'messageCount');
295
+ if (typeof v !== 'number')
296
+ throw new Error("Invalid drive/session/append-messages result: 'message_count' must be a number");
297
+ return v;
298
+ })(),
299
+ updatedAt: readRequiredNonEmptyString(raw, 'updated_at', 'updatedAt'),
300
+ };
301
+ };
302
+ const decodeDeleteMessagesResult = (raw) => {
303
+ if (!isObject(raw) || Array.isArray(raw))
304
+ throw new Error('Invalid drive/session/delete-messages result');
305
+ return {
306
+ sessionId: readRequiredNonEmptyString(raw, 'session_id', 'sessionId'),
307
+ messageCount: (() => {
308
+ const v = readField(raw, 'message_count', 'messageCount');
309
+ if (typeof v !== 'number')
310
+ throw new Error("Invalid drive/session/delete-messages result: 'message_count' must be a number");
311
+ return v;
312
+ })(),
313
+ updatedAt: readRequiredNonEmptyString(raw, 'updated_at', 'updatedAt'),
314
+ };
315
+ };
316
+ const decodeGetResult = (raw) => {
317
+ if (!isObject(raw) || Array.isArray(raw))
318
+ throw new Error('Invalid drive/session/get result');
319
+ const sessionRaw = readField(raw, 'session', 'session');
320
+ return { session: decodeSessionDocument(sessionRaw) };
321
+ };
322
+ const decodeGetPreviewResult = (raw) => {
323
+ if (!isObject(raw) || Array.isArray(raw))
324
+ throw new Error('Invalid drive/session/get-preview result');
325
+ const sessionRaw = readField(raw, 'session', 'session');
326
+ const messagesRaw = readRequiredArray(raw, 'messages', 'messages');
327
+ const messageCountRaw = readField(raw, 'message_count', 'messageCount');
328
+ if (typeof messageCountRaw !== 'number') {
329
+ throw new Error("Invalid drive/session/get-preview result: 'message_count' must be a number");
330
+ }
331
+ return {
332
+ session: decodeSessionDocument(sessionRaw),
333
+ messages: messagesRaw.map(decodeSessionMessage),
334
+ messageCount: messageCountRaw,
335
+ };
336
+ };
337
+ const decodeGetMessageRangeResult = (raw) => {
338
+ if (!isObject(raw) || Array.isArray(raw))
339
+ throw new Error('Invalid drive/session/get-message-range result');
340
+ const messagesRaw = readRequiredArray(raw, 'messages', 'messages');
341
+ const hasMoreRaw = readField(raw, 'has_more', 'hasMore');
342
+ if (typeof hasMoreRaw !== 'boolean')
343
+ throw new Error("Invalid drive/session/get-message-range result: 'has_more' must be a boolean");
344
+ return { messages: messagesRaw.map(decodeSessionMessage), hasMore: hasMoreRaw };
345
+ };
346
+ const decodeListResult = (raw) => {
347
+ if (!isObject(raw) || Array.isArray(raw))
348
+ throw new Error('Invalid drive/session/list result');
349
+ const itemsRaw = readRequiredArray(raw, 'items', 'items');
350
+ return {
351
+ items: itemsRaw.map((itemRaw) => {
352
+ if (!isObject(itemRaw) || Array.isArray(itemRaw))
353
+ throw new Error('Invalid drive/session/list result: item must be object');
354
+ const messageCountRaw = readField(itemRaw, 'message_count', 'messageCount');
355
+ if (typeof messageCountRaw !== 'number')
356
+ throw new Error("Invalid drive/session/list item: 'message_count' must be a number");
357
+ return {
358
+ sessionId: readRequiredNonEmptyString(itemRaw, 'session_id', 'sessionId'),
359
+ title: readNullableString(itemRaw, 'title', 'title'),
360
+ messageCount: messageCountRaw,
361
+ updatedAt: readRequiredNonEmptyString(itemRaw, 'updated_at', 'updatedAt'),
362
+ provider: readNullableString(itemRaw, 'provider', 'provider'),
363
+ model: readNullableString(itemRaw, 'model', 'model'),
364
+ };
365
+ }),
366
+ };
367
+ };
368
+ const decodeDeleteResult = (raw) => {
369
+ if (!isObject(raw) || Array.isArray(raw))
370
+ throw new Error('Invalid drive/session/delete result');
371
+ return {
372
+ sessionId: readRequiredNonEmptyString(raw, 'session_id', 'sessionId'),
373
+ status: readRequiredNonEmptyString(raw, 'status', 'status'),
374
+ };
375
+ };
376
+ export const createDriveSessionClient = (params) => {
377
+ return {
378
+ save: async (p) => {
379
+ const result = await params.call('drive/session/save', {
380
+ root_path: projectRootPath(p.projectId),
381
+ session: encodeSessionDocument(p.session),
382
+ ...(p.attributes ? { attributes: p.attributes } : {}),
383
+ });
384
+ return decodeSaveResult(result);
385
+ },
386
+ get: async (p) => {
387
+ const result = await params.call('drive/session/get', {
388
+ root_path: projectRootPath(p.projectId),
389
+ session_id: p.sessionId,
390
+ });
391
+ return decodeGetResult(result);
392
+ },
393
+ getPreview: async (p) => {
394
+ const result = await params.call('drive/session/get-preview', {
395
+ root_path: projectRootPath(p.projectId),
396
+ session_id: p.sessionId,
397
+ ...(p.limit !== undefined ? { limit: p.limit } : {}),
398
+ });
399
+ return decodeGetPreviewResult(result);
400
+ },
401
+ getMessageRange: async (p) => {
402
+ const result = await params.call('drive/session/get-message-range', {
403
+ root_path: projectRootPath(p.projectId),
404
+ session_id: p.sessionId,
405
+ limit: p.limit,
406
+ ...(p.before !== undefined ? { before: p.before } : {}),
407
+ });
408
+ return decodeGetMessageRangeResult(result);
409
+ },
410
+ list: async (p) => {
411
+ const result = await params.call('drive/session/list', {
412
+ root_path: projectRootPath(p.projectId),
413
+ });
414
+ return decodeListResult(result);
415
+ },
416
+ appendMessages: async (p) => {
417
+ const result = await params.call('drive/session/append-messages', {
418
+ root_path: projectRootPath(p.projectId),
419
+ session_id: p.sessionId,
420
+ messages: p.messages.map(encodeSessionMessage),
421
+ });
422
+ return decodeAppendResult(result);
423
+ },
424
+ deleteMessages: async (p) => {
425
+ const result = await params.call('drive/session/delete-messages', (() => {
426
+ if ('messageIds' in p) {
427
+ return {
428
+ root_path: projectRootPath(p.projectId),
429
+ session_id: p.sessionId,
430
+ message_ids: p.messageIds,
431
+ };
432
+ }
433
+ return {
434
+ root_path: projectRootPath(p.projectId),
435
+ session_id: p.sessionId,
436
+ rollback_after_message_id: p.rollbackAfterMessageId,
437
+ };
438
+ })());
439
+ return decodeDeleteMessagesResult(result);
440
+ },
441
+ delete: async (p) => {
442
+ const result = await params.call('drive/session/delete', {
443
+ root_path: projectRootPath(p.projectId),
444
+ session_id: p.sessionId,
445
+ });
446
+ return decodeDeleteResult(result);
447
+ },
448
+ };
449
+ };
450
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/drive/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { DriveSessionDocument, DriveSessionMessage, JsonObject } from './sessionTypes.js';
2
+ export type MessageParams = {
3
+ readonly role: string;
4
+ readonly content: string;
5
+ readonly id?: string;
6
+ readonly participantKind?: string;
7
+ readonly participantId?: string;
8
+ readonly participantName?: string;
9
+ readonly participantSlug?: string;
10
+ readonly contentBlocksJson?: string;
11
+ readonly sourceOrigin?: string;
12
+ readonly turnCorrelationId?: string;
13
+ readonly turnContextJson?: string;
14
+ readonly functionCall?: JsonObject;
15
+ readonly toolCalls?: readonly JsonObject[];
16
+ readonly toolCallId?: string;
17
+ readonly context?: JsonObject;
18
+ readonly metadata?: JsonObject;
19
+ readonly attachments?: readonly string[];
20
+ readonly subtype?: string;
21
+ readonly parentMessageId?: string;
22
+ readonly isSidechain?: boolean;
23
+ readonly tokenCount?: number;
24
+ };
25
+ export declare const generateUlid: () => string;
26
+ export declare const buildMessage: (params: MessageParams) => DriveSessionMessage;
27
+ export declare const buildMinimalDocument: (params: {
28
+ readonly sessionId: string;
29
+ readonly projectId: string;
30
+ readonly title?: string;
31
+ readonly workspaceId?: string;
32
+ }) => DriveSessionDocument;
33
+ //# sourceMappingURL=sessionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionBuilder.d.ts","sourceRoot":"","sources":["../../src/drive/sessionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACX,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAoBF,eAAO,MAAM,YAAY,QAAO,MAAuD,CAAC;AASxF,eAAO,MAAM,YAAY,GAAI,QAAQ,aAAa,KAAG,mBAyBnD,CAAC;AAUH,eAAO,MAAM,oBAAoB,GAAI,QAAQ;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,KAAG,oBAiBH,CAAC"}
@@ -0,0 +1,77 @@
1
+ const CROCKFORD = '0123456789ABCDEFGHJKMNPQRSTVWXYZ';
2
+ const encodeTime = (ms, length) => {
3
+ let value = ms;
4
+ const chars = [];
5
+ for (let i = 0; i < length; i += 1) {
6
+ chars.unshift(CROCKFORD[value % 32]);
7
+ value = Math.floor(value / 32);
8
+ }
9
+ return chars.join('');
10
+ };
11
+ const encodeRandom = (length) => {
12
+ const bytes = new Uint8Array(length);
13
+ crypto.getRandomValues(bytes);
14
+ return Array.from(bytes, (b) => CROCKFORD[b % 32]).join('');
15
+ };
16
+ export const generateUlid = () => encodeTime(Date.now(), 10) + encodeRandom(16);
17
+ const inferParticipantKind = (role) => {
18
+ if (role === 'user')
19
+ return 'human';
20
+ if (role === 'assistant')
21
+ return 'ai';
22
+ if (role === 'system')
23
+ return 'system';
24
+ return role;
25
+ };
26
+ export const buildMessage = (params) => ({
27
+ id: params.id ?? generateUlid(),
28
+ role: params.role,
29
+ participantKind: params.participantKind ?? inferParticipantKind(params.role),
30
+ participantId: params.participantId ?? null,
31
+ participantName: params.participantName ?? null,
32
+ participantSlug: params.participantSlug ?? null,
33
+ content: params.content,
34
+ contentBlocksJson: params.contentBlocksJson ?? null,
35
+ sourceOrigin: params.sourceOrigin ?? null,
36
+ turnCorrelationId: params.turnCorrelationId ?? null,
37
+ turnContextJson: params.turnContextJson ?? null,
38
+ functionCall: params.functionCall ?? null,
39
+ toolCalls: params.toolCalls ?? null,
40
+ toolCallId: params.toolCallId ?? null,
41
+ context: params.context ?? null,
42
+ metadata: params.metadata ?? null,
43
+ attachments: params.attachments ?? null,
44
+ subtype: params.subtype ?? null,
45
+ parentMessageId: params.parentMessageId ?? null,
46
+ isSidechain: params.isSidechain ?? false,
47
+ tokenCount: params.tokenCount ?? null,
48
+ createdAt: new Date().toISOString(),
49
+ updatedAt: null,
50
+ deletedAt: null,
51
+ });
52
+ const emptyConfig = {
53
+ operativeId: null,
54
+ provider: null,
55
+ model: null,
56
+ promptText: null,
57
+ driveSourcesMuted: false,
58
+ };
59
+ export const buildMinimalDocument = (params) => {
60
+ const now = new Date().toISOString();
61
+ return {
62
+ id: params.sessionId,
63
+ workspaceId: params.workspaceId ?? '',
64
+ projectId: params.projectId,
65
+ title: params.title ?? null,
66
+ config: emptyConfig,
67
+ exchanges: [],
68
+ participants: [],
69
+ messages: [],
70
+ createdAt: now,
71
+ updatedAt: now,
72
+ sourceOrigin: null,
73
+ forkSourceSessionId: null,
74
+ forkSourceMessageId: null,
75
+ };
76
+ };
77
+ //# sourceMappingURL=sessionBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionBuilder.js","sourceRoot":"","sources":["../../src/drive/sessionBuilder.ts"],"names":[],"mappings":"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"}