@robosystems/client 0.2.49 → 0.3.1

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 (191) hide show
  1. package/extensions/InvestorClient.d.ts +98 -0
  2. package/extensions/InvestorClient.js +223 -0
  3. package/extensions/InvestorClient.ts +508 -0
  4. package/extensions/LedgerClient.d.ts +190 -309
  5. package/extensions/LedgerClient.js +268 -587
  6. package/extensions/LedgerClient.ts +784 -903
  7. package/extensions/ReportClient.d.ts +82 -113
  8. package/extensions/ReportClient.js +124 -211
  9. package/extensions/ReportClient.ts +305 -358
  10. package/extensions/config.d.ts +19 -0
  11. package/extensions/config.js +1 -1
  12. package/extensions/config.ts +22 -2
  13. package/extensions/graphql/client.d.ts +82 -0
  14. package/extensions/graphql/client.js +149 -0
  15. package/extensions/graphql/client.ts +189 -0
  16. package/extensions/graphql/generated/graphql.d.ts +1786 -0
  17. package/extensions/graphql/generated/graphql.js +2671 -0
  18. package/extensions/graphql/generated/graphql.ts +4491 -0
  19. package/extensions/graphql/queries/investor/holdings.d.ts +8 -0
  20. package/extensions/graphql/queries/investor/holdings.js +36 -0
  21. package/extensions/graphql/queries/investor/holdings.ts +34 -0
  22. package/extensions/graphql/queries/investor/portfolio.d.ts +4 -0
  23. package/extensions/graphql/queries/investor/portfolio.js +21 -0
  24. package/extensions/graphql/queries/investor/portfolio.ts +19 -0
  25. package/extensions/graphql/queries/investor/portfolios.d.ts +4 -0
  26. package/extensions/graphql/queries/investor/portfolios.js +29 -0
  27. package/extensions/graphql/queries/investor/portfolios.ts +27 -0
  28. package/extensions/graphql/queries/investor/position.d.ts +4 -0
  29. package/extensions/graphql/queries/investor/position.js +33 -0
  30. package/extensions/graphql/queries/investor/position.ts +31 -0
  31. package/extensions/graphql/queries/investor/positions.d.ts +8 -0
  32. package/extensions/graphql/queries/investor/positions.js +57 -0
  33. package/extensions/graphql/queries/investor/positions.ts +55 -0
  34. package/extensions/graphql/queries/investor/securities.d.ts +8 -0
  35. package/extensions/graphql/queries/investor/securities.js +50 -0
  36. package/extensions/graphql/queries/investor/securities.ts +48 -0
  37. package/extensions/graphql/queries/investor/security.d.ts +4 -0
  38. package/extensions/graphql/queries/investor/security.js +26 -0
  39. package/extensions/graphql/queries/investor/security.ts +24 -0
  40. package/extensions/graphql/queries/ledger/accountRollups.d.ts +7 -0
  41. package/extensions/graphql/queries/ledger/accountRollups.js +36 -0
  42. package/extensions/graphql/queries/ledger/accountRollups.ts +34 -0
  43. package/extensions/graphql/queries/ledger/accountTree.d.ts +11 -0
  44. package/extensions/graphql/queries/ledger/accountTree.js +61 -0
  45. package/extensions/graphql/queries/ledger/accountTree.ts +59 -0
  46. package/extensions/graphql/queries/ledger/accounts.d.ts +8 -0
  47. package/extensions/graphql/queries/ledger/accounts.js +45 -0
  48. package/extensions/graphql/queries/ledger/accounts.ts +43 -0
  49. package/extensions/graphql/queries/ledger/closingBookStructures.d.ts +6 -0
  50. package/extensions/graphql/queries/ledger/closingBookStructures.js +27 -0
  51. package/extensions/graphql/queries/ledger/closingBookStructures.ts +25 -0
  52. package/extensions/graphql/queries/ledger/elements.d.ts +6 -0
  53. package/extensions/graphql/queries/ledger/elements.js +56 -0
  54. package/extensions/graphql/queries/ledger/elements.ts +54 -0
  55. package/extensions/graphql/queries/ledger/entities.d.ts +7 -0
  56. package/extensions/graphql/queries/ledger/entities.js +31 -0
  57. package/extensions/graphql/queries/ledger/entities.ts +29 -0
  58. package/extensions/graphql/queries/ledger/entity.d.ts +14 -0
  59. package/extensions/graphql/queries/ledger/entity.js +55 -0
  60. package/extensions/graphql/queries/ledger/entity.ts +54 -0
  61. package/extensions/graphql/queries/ledger/fiscalCalendar.d.ts +8 -0
  62. package/extensions/graphql/queries/ledger/fiscalCalendar.js +35 -0
  63. package/extensions/graphql/queries/ledger/fiscalCalendar.ts +33 -0
  64. package/extensions/graphql/queries/ledger/mappedTrialBalance.d.ts +9 -0
  65. package/extensions/graphql/queries/ledger/mappedTrialBalance.js +29 -0
  66. package/extensions/graphql/queries/ledger/mappedTrialBalance.ts +27 -0
  67. package/extensions/graphql/queries/ledger/mapping.d.ts +5 -0
  68. package/extensions/graphql/queries/ledger/mapping.js +35 -0
  69. package/extensions/graphql/queries/ledger/mapping.ts +33 -0
  70. package/extensions/graphql/queries/ledger/mappingCoverage.d.ts +5 -0
  71. package/extensions/graphql/queries/ledger/mappingCoverage.js +22 -0
  72. package/extensions/graphql/queries/ledger/mappingCoverage.ts +20 -0
  73. package/extensions/graphql/queries/ledger/mappings.d.ts +6 -0
  74. package/extensions/graphql/queries/ledger/mappings.js +23 -0
  75. package/extensions/graphql/queries/ledger/mappings.ts +21 -0
  76. package/extensions/graphql/queries/ledger/periodCloseStatus.d.ts +6 -0
  77. package/extensions/graphql/queries/ledger/periodCloseStatus.js +29 -0
  78. package/extensions/graphql/queries/ledger/periodCloseStatus.ts +27 -0
  79. package/extensions/graphql/queries/ledger/periodDrafts.d.ts +8 -0
  80. package/extensions/graphql/queries/ledger/periodDrafts.js +45 -0
  81. package/extensions/graphql/queries/ledger/periodDrafts.ts +43 -0
  82. package/extensions/graphql/queries/ledger/publishList.d.ts +5 -0
  83. package/extensions/graphql/queries/ledger/publishList.js +29 -0
  84. package/extensions/graphql/queries/ledger/publishList.ts +27 -0
  85. package/extensions/graphql/queries/ledger/publishLists.d.ts +5 -0
  86. package/extensions/graphql/queries/ledger/publishLists.js +29 -0
  87. package/extensions/graphql/queries/ledger/publishLists.ts +27 -0
  88. package/extensions/graphql/queries/ledger/report.d.ts +5 -0
  89. package/extensions/graphql/queries/ledger/report.js +40 -0
  90. package/extensions/graphql/queries/ledger/report.ts +38 -0
  91. package/extensions/graphql/queries/ledger/reportingTaxonomy.d.ts +6 -0
  92. package/extensions/graphql/queries/ledger/reportingTaxonomy.js +27 -0
  93. package/extensions/graphql/queries/ledger/reportingTaxonomy.ts +25 -0
  94. package/extensions/graphql/queries/ledger/reports.d.ts +8 -0
  95. package/extensions/graphql/queries/ledger/reports.js +45 -0
  96. package/extensions/graphql/queries/ledger/reports.ts +43 -0
  97. package/extensions/graphql/queries/ledger/scheduleFacts.d.ts +7 -0
  98. package/extensions/graphql/queries/ledger/scheduleFacts.js +24 -0
  99. package/extensions/graphql/queries/ledger/scheduleFacts.ts +22 -0
  100. package/extensions/graphql/queries/ledger/schedules.d.ts +6 -0
  101. package/extensions/graphql/queries/ledger/schedules.js +24 -0
  102. package/extensions/graphql/queries/ledger/schedules.ts +22 -0
  103. package/extensions/graphql/queries/ledger/statement.d.ts +9 -0
  104. package/extensions/graphql/queries/ledger/statement.js +43 -0
  105. package/extensions/graphql/queries/ledger/statement.ts +41 -0
  106. package/extensions/graphql/queries/ledger/structures.d.ts +5 -0
  107. package/extensions/graphql/queries/ledger/structures.js +22 -0
  108. package/extensions/graphql/queries/ledger/structures.ts +20 -0
  109. package/extensions/graphql/queries/ledger/summary.d.ts +7 -0
  110. package/extensions/graphql/queries/ledger/summary.js +25 -0
  111. package/extensions/graphql/queries/ledger/summary.ts +23 -0
  112. package/extensions/graphql/queries/ledger/taxonomies.d.ts +5 -0
  113. package/extensions/graphql/queries/ledger/taxonomies.js +28 -0
  114. package/extensions/graphql/queries/ledger/taxonomies.ts +26 -0
  115. package/extensions/graphql/queries/ledger/transaction.d.ts +6 -0
  116. package/extensions/graphql/queries/ledger/transaction.js +49 -0
  117. package/extensions/graphql/queries/ledger/transaction.ts +47 -0
  118. package/extensions/graphql/queries/ledger/transactions.d.ts +7 -0
  119. package/extensions/graphql/queries/ledger/transactions.js +49 -0
  120. package/extensions/graphql/queries/ledger/transactions.ts +47 -0
  121. package/extensions/graphql/queries/ledger/trialBalance.d.ts +7 -0
  122. package/extensions/graphql/queries/ledger/trialBalance.js +28 -0
  123. package/extensions/graphql/queries/ledger/trialBalance.ts +26 -0
  124. package/extensions/graphql/queries/ledger/unmappedElements.d.ts +8 -0
  125. package/extensions/graphql/queries/ledger/unmappedElements.js +29 -0
  126. package/extensions/graphql/queries/ledger/unmappedElements.ts +27 -0
  127. package/extensions/hooks.d.ts +1 -1
  128. package/extensions/index.d.ts +18 -1
  129. package/extensions/index.js +26 -1
  130. package/extensions/index.ts +49 -2
  131. package/index.ts +2 -2
  132. package/package.json +14 -5
  133. package/sdk/index.d.ts +2 -2
  134. package/sdk/index.js +38 -73
  135. package/sdk/index.ts +2 -2
  136. package/sdk/sdk.gen.d.ts +100 -325
  137. package/sdk/sdk.gen.js +228 -592
  138. package/sdk/sdk.gen.ts +193 -556
  139. package/sdk/types.gen.d.ts +4522 -7708
  140. package/sdk/types.gen.ts +4569 -7983
  141. package/sdk.gen.d.ts +100 -325
  142. package/sdk.gen.js +228 -592
  143. package/sdk.gen.ts +193 -556
  144. package/types.gen.d.ts +4522 -7708
  145. package/types.gen.ts +4569 -7983
  146. package/extensions/AgentClient.test.ts +0 -403
  147. package/extensions/LedgerClient.test.ts +0 -1655
  148. package/extensions/OperationClient.test.ts +0 -365
  149. package/extensions/QueryClient.test.ts +0 -432
  150. package/extensions/ReportClient.test.ts +0 -828
  151. package/extensions/SSEClient.test.ts +0 -375
  152. package/extensions/config.test.ts +0 -199
  153. package/extensions/hooks.test.ts +0 -373
  154. package/extensions/index.test.ts +0 -420
  155. package/sdk-extensions/AgentClient.d.ts +0 -82
  156. package/sdk-extensions/AgentClient.js +0 -218
  157. package/sdk-extensions/AgentClient.test.ts +0 -403
  158. package/sdk-extensions/AgentClient.ts +0 -321
  159. package/sdk-extensions/LedgerClient.d.ts +0 -416
  160. package/sdk-extensions/LedgerClient.js +0 -737
  161. package/sdk-extensions/LedgerClient.test.ts +0 -1655
  162. package/sdk-extensions/LedgerClient.ts +0 -1249
  163. package/sdk-extensions/OperationClient.d.ts +0 -65
  164. package/sdk-extensions/OperationClient.js +0 -251
  165. package/sdk-extensions/OperationClient.test.ts +0 -365
  166. package/sdk-extensions/OperationClient.ts +0 -324
  167. package/sdk-extensions/QueryClient.d.ts +0 -52
  168. package/sdk-extensions/QueryClient.js +0 -313
  169. package/sdk-extensions/QueryClient.test.ts +0 -432
  170. package/sdk-extensions/QueryClient.ts +0 -420
  171. package/sdk-extensions/README.md +0 -901
  172. package/sdk-extensions/ReportClient.d.ts +0 -151
  173. package/sdk-extensions/ReportClient.js +0 -278
  174. package/sdk-extensions/ReportClient.test.ts +0 -828
  175. package/sdk-extensions/ReportClient.ts +0 -486
  176. package/sdk-extensions/SSEClient.d.ts +0 -62
  177. package/sdk-extensions/SSEClient.js +0 -154
  178. package/sdk-extensions/SSEClient.test.ts +0 -375
  179. package/sdk-extensions/SSEClient.ts +0 -210
  180. package/sdk-extensions/config.d.ts +0 -57
  181. package/sdk-extensions/config.js +0 -152
  182. package/sdk-extensions/config.test.ts +0 -199
  183. package/sdk-extensions/config.ts +0 -175
  184. package/sdk-extensions/hooks.d.ts +0 -110
  185. package/sdk-extensions/hooks.js +0 -384
  186. package/sdk-extensions/hooks.test.ts +0 -373
  187. package/sdk-extensions/hooks.ts +0 -459
  188. package/sdk-extensions/index.d.ts +0 -63
  189. package/sdk-extensions/index.js +0 -164
  190. package/sdk-extensions/index.test.ts +0 -420
  191. package/sdk-extensions/index.ts +0 -203
@@ -1,420 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from 'vitest'
2
- import { RoboSystemsExtensions } from './index'
3
-
4
- // Mock the SDK client
5
- vi.mock('../sdk/client.gen', () => ({
6
- client: {
7
- getConfig: vi.fn(() => ({
8
- baseUrl: 'http://mock-sdk.com',
9
- headers: {},
10
- })),
11
- },
12
- }))
13
-
14
- describe('RoboSystemsExtensions', () => {
15
- beforeEach(() => {
16
- vi.clearAllMocks()
17
- })
18
-
19
- describe('constructor', () => {
20
- it('should create instance with default config', () => {
21
- const ext = new RoboSystemsExtensions()
22
-
23
- expect(ext).toBeDefined()
24
- expect(ext.query).toBeDefined()
25
- expect(ext.operations).toBeDefined()
26
- expect(ext.ledger).toBeDefined()
27
- expect(ext.reports).toBeDefined()
28
- expect(typeof ext.query.executeQuery).toBe('function')
29
- expect(typeof ext.operations.monitorOperation).toBe('function')
30
- })
31
-
32
- it('should create instance with custom baseUrl', () => {
33
- const ext = new RoboSystemsExtensions({
34
- baseUrl: 'https://custom-api.com',
35
- })
36
-
37
- expect(ext.query).toBeDefined()
38
- expect(ext.operations).toBeDefined()
39
- })
40
-
41
- it('should create instance with JWT token', () => {
42
- const ext = new RoboSystemsExtensions({
43
- token: 'eyJhbGc.eyJzdWI.SflKxw',
44
- })
45
-
46
- expect(ext.query).toBeDefined()
47
- expect(typeof ext.query.query).toBe('function')
48
- })
49
-
50
- it('should create instance with credentials option', () => {
51
- const ext = new RoboSystemsExtensions({
52
- credentials: 'omit',
53
- })
54
-
55
- expect(ext.query).toBeDefined()
56
- expect(ext.operations).toBeDefined()
57
- })
58
-
59
- it('should create instance with custom headers', () => {
60
- const ext = new RoboSystemsExtensions({
61
- headers: {
62
- 'X-Custom-Header': 'test-value',
63
- },
64
- })
65
-
66
- expect(ext.query).toBeDefined()
67
- })
68
-
69
- it('should create instance with retry config', () => {
70
- const ext = new RoboSystemsExtensions({
71
- maxRetries: 10,
72
- retryDelay: 5000,
73
- })
74
-
75
- expect(ext.operations).toBeDefined()
76
- expect(typeof ext.operations.monitorOperation).toBe('function')
77
- })
78
-
79
- it('should merge config with SDK client config', () => {
80
- const ext = new RoboSystemsExtensions({
81
- token: 'custom-token',
82
- })
83
-
84
- expect(ext.query).toBeDefined()
85
- expect(ext.operations).toBeDefined()
86
- })
87
-
88
- it('should initialize all five client types', () => {
89
- const ext = new RoboSystemsExtensions()
90
-
91
- // Verify each client has its signature methods
92
- expect(typeof ext.query.executeQuery).toBe('function')
93
- expect(typeof ext.query.query).toBe('function')
94
- expect(typeof ext.agent.executeQuery).toBe('function')
95
- expect(typeof ext.agent.analyzeFinancials).toBe('function')
96
- expect(typeof ext.operations.monitorOperation).toBe('function')
97
- expect(typeof ext.operations.closeAll).toBe('function')
98
- expect(typeof ext.ledger.listAccounts).toBe('function')
99
- expect(typeof ext.ledger.getTrialBalance).toBe('function')
100
- expect(typeof ext.reports.create).toBe('function')
101
- expect(typeof ext.reports.statement).toBe('function')
102
- })
103
-
104
- it('should default credentials to include', () => {
105
- const ext = new RoboSystemsExtensions()
106
-
107
- // Access private config via casting
108
- const config = (ext as any).config
109
- expect(config.credentials).toBe('include')
110
- })
111
-
112
- it('should default maxRetries to 5 and retryDelay to 1000', () => {
113
- const ext = new RoboSystemsExtensions()
114
-
115
- const config = (ext as any).config
116
- expect(config.maxRetries).toBe(5)
117
- expect(config.retryDelay).toBe(1000)
118
- })
119
-
120
- it('should fall back to SDK client baseUrl or default', () => {
121
- const ext = new RoboSystemsExtensions()
122
-
123
- const config = (ext as any).config
124
- // Should use SDK baseUrl or localhost default
125
- expect(typeof config.baseUrl).toBe('string')
126
- expect(config.baseUrl.length).toBeGreaterThan(0)
127
- })
128
-
129
- it('should prefer explicit baseUrl over SDK client', () => {
130
- const ext = new RoboSystemsExtensions({
131
- baseUrl: 'https://explicit.com',
132
- })
133
-
134
- const config = (ext as any).config
135
- expect(config.baseUrl).toBe('https://explicit.com')
136
- })
137
- })
138
-
139
- describe('createSSEClient', () => {
140
- it('should create a new SSEClient instance', () => {
141
- const ext = new RoboSystemsExtensions()
142
- const sseClient = ext.createSSEClient()
143
-
144
- expect(sseClient).toBeDefined()
145
- expect(typeof sseClient.connect).toBe('function')
146
- expect(typeof sseClient.close).toBe('function')
147
- expect(typeof sseClient.on).toBe('function')
148
- expect(typeof sseClient.off).toBe('function')
149
- })
150
-
151
- it('should create SSEClient with config', () => {
152
- const ext = new RoboSystemsExtensions({
153
- baseUrl: 'https://custom-api.com',
154
- token: 'test-token',
155
- })
156
- const sseClient = ext.createSSEClient()
157
-
158
- expect(sseClient).toBeDefined()
159
- expect(typeof sseClient.connect).toBe('function')
160
- })
161
-
162
- it('should create independent SSEClient instances each time', () => {
163
- const ext = new RoboSystemsExtensions()
164
- const client1 = ext.createSSEClient()
165
- const client2 = ext.createSSEClient()
166
-
167
- expect(client1).not.toBe(client2)
168
- })
169
- })
170
-
171
- describe('monitorOperation', () => {
172
- it('should delegate to operations.monitorOperation', async () => {
173
- const ext = new RoboSystemsExtensions()
174
-
175
- const monitorSpy = vi.spyOn(ext.operations, 'monitorOperation').mockResolvedValue({
176
- success: true,
177
- result: { data: 'test' },
178
- })
179
-
180
- const result = await ext.monitorOperation('op_123')
181
-
182
- expect(monitorSpy).toHaveBeenCalledWith('op_123', { onProgress: undefined })
183
- expect(result).toEqual({
184
- success: true,
185
- result: { data: 'test' },
186
- })
187
- })
188
-
189
- it('should pass progress callback through', async () => {
190
- const ext = new RoboSystemsExtensions()
191
-
192
- const monitorSpy = vi.spyOn(ext.operations, 'monitorOperation').mockResolvedValue({
193
- success: true,
194
- })
195
-
196
- const progressCallback = vi.fn()
197
- await ext.monitorOperation('op_123', progressCallback)
198
-
199
- expect(monitorSpy).toHaveBeenCalledWith('op_123', { onProgress: progressCallback })
200
- })
201
-
202
- it('should propagate errors from operations client', async () => {
203
- const ext = new RoboSystemsExtensions()
204
-
205
- vi.spyOn(ext.operations, 'monitorOperation').mockRejectedValue(new Error('Operation timeout'))
206
-
207
- await expect(ext.monitorOperation('op_bad')).rejects.toThrow('Operation timeout')
208
- })
209
- })
210
-
211
- describe('close', () => {
212
- it('should close all three closeable clients', () => {
213
- const ext = new RoboSystemsExtensions()
214
-
215
- const queryCloseSpy = vi.spyOn(ext.query, 'close')
216
- const agentCloseSpy = vi.spyOn(ext.agent, 'close')
217
- const operationsCloseSpy = vi.spyOn(ext.operations, 'closeAll')
218
-
219
- ext.close()
220
-
221
- expect(queryCloseSpy).toHaveBeenCalled()
222
- expect(agentCloseSpy).toHaveBeenCalled()
223
- expect(operationsCloseSpy).toHaveBeenCalled()
224
- })
225
-
226
- it('should not throw when called multiple times', () => {
227
- const ext = new RoboSystemsExtensions()
228
-
229
- expect(() => {
230
- ext.close()
231
- ext.close()
232
- }).not.toThrow()
233
- })
234
- })
235
-
236
- describe('full config integration', () => {
237
- it('should properly configure all clients with full config', () => {
238
- const fullConfig = {
239
- baseUrl: 'https://api.production.com',
240
- credentials: 'include' as const,
241
- token: 'jwt-token-123',
242
- headers: {
243
- 'X-API-Key': 'key-123',
244
- 'X-Custom': 'value',
245
- },
246
- maxRetries: 7,
247
- retryDelay: 3000,
248
- }
249
-
250
- const ext = new RoboSystemsExtensions(fullConfig)
251
-
252
- expect(ext.query).toBeDefined()
253
- expect(ext.operations).toBeDefined()
254
- expect(ext.ledger).toBeDefined()
255
- expect(ext.reports).toBeDefined()
256
- expect(ext.agent).toBeDefined()
257
- expect(typeof ext.query.executeQuery).toBe('function')
258
- expect(typeof ext.operations.monitorOperation).toBe('function')
259
- })
260
-
261
- it('should use SDK client baseUrl when no baseUrl provided', () => {
262
- const ext = new RoboSystemsExtensions({})
263
-
264
- expect(ext.query).toBeDefined()
265
- expect(ext.operations).toBeDefined()
266
- })
267
- })
268
- })
269
-
270
- describe('extensions singleton', () => {
271
- beforeEach(() => {
272
- vi.clearAllMocks()
273
- // Reset the lazy singleton between tests
274
- vi.resetModules()
275
- })
276
-
277
- it('should export extensions object with getter properties', async () => {
278
- const { extensions } = await import('./index')
279
-
280
- expect(extensions).toBeDefined()
281
- expect(typeof extensions.monitorOperation).toBe('function')
282
- expect(typeof extensions.createSSEClient).toBe('function')
283
- expect(typeof extensions.close).toBe('function')
284
- })
285
-
286
- it('should lazily create clients on first access', async () => {
287
- const { extensions } = await import('./index')
288
-
289
- const query = extensions.query
290
- expect(query).toBeDefined()
291
- expect(typeof query.executeQuery).toBe('function')
292
- })
293
-
294
- it('should return same instance on repeated access', async () => {
295
- const { extensions } = await import('./index')
296
-
297
- const query1 = extensions.query
298
- const query2 = extensions.query
299
- expect(query1).toBe(query2)
300
- })
301
-
302
- it('should expose all five client getters', async () => {
303
- const { extensions } = await import('./index')
304
-
305
- expect(typeof extensions.query.executeQuery).toBe('function')
306
- expect(typeof extensions.agent.executeQuery).toBe('function')
307
- expect(typeof extensions.operations.monitorOperation).toBe('function')
308
- expect(typeof extensions.ledger.listAccounts).toBe('function')
309
- expect(typeof extensions.reports.create).toBe('function')
310
- })
311
-
312
- it('should create SSEClient from singleton', async () => {
313
- const { extensions } = await import('./index')
314
-
315
- const sseClient = extensions.createSSEClient()
316
- expect(typeof sseClient.connect).toBe('function')
317
- expect(typeof sseClient.close).toBe('function')
318
- })
319
-
320
- it('should close without error', async () => {
321
- const { extensions } = await import('./index')
322
-
323
- // Access to initialize
324
- extensions.query
325
- expect(() => extensions.close()).not.toThrow()
326
- })
327
- })
328
-
329
- describe('convenience functions', () => {
330
- let mockFetch: any
331
-
332
- beforeEach(async () => {
333
- vi.clearAllMocks()
334
- vi.resetModules()
335
- mockFetch = vi.fn()
336
- global.fetch = mockFetch
337
- globalThis.fetch = mockFetch
338
- })
339
-
340
- it('should export executeQuery function', async () => {
341
- const { executeQuery } = await import('./index')
342
- expect(typeof executeQuery).toBe('function')
343
- })
344
-
345
- it('should export streamQuery function', async () => {
346
- const { streamQuery } = await import('./index')
347
- expect(typeof streamQuery).toBe('function')
348
- })
349
-
350
- it('should export agentQuery function', async () => {
351
- const { agentQuery } = await import('./index')
352
- expect(typeof agentQuery).toBe('function')
353
- })
354
-
355
- it('should export analyzeFinancials function', async () => {
356
- const { analyzeFinancials } = await import('./index')
357
- expect(typeof analyzeFinancials).toBe('function')
358
- })
359
-
360
- it('should export monitorOperation function', async () => {
361
- const mod = await import('./index')
362
- expect(typeof mod.monitorOperation).toBe('function')
363
- })
364
- })
365
-
366
- describe('re-exports', () => {
367
- it('should re-export all client classes', async () => {
368
- const mod = await import('./index')
369
-
370
- // Verify these are constructor functions (classes)
371
- expect(typeof mod.QueryClient).toBe('function')
372
- expect(typeof mod.AgentClient).toBe('function')
373
- expect(typeof mod.OperationClient).toBe('function')
374
- expect(typeof mod.SSEClient).toBe('function')
375
- expect(typeof mod.LedgerClient).toBe('function')
376
- expect(typeof mod.ReportClient).toBe('function')
377
-
378
- // Verify they can be instantiated
379
- const q = new mod.QueryClient({ baseUrl: 'http://test.com' })
380
- expect(typeof q.executeQuery).toBe('function')
381
- })
382
-
383
- it('should re-export config functions', async () => {
384
- const mod = await import('./index')
385
-
386
- expect(typeof mod.setSDKExtensionsConfig).toBe('function')
387
- expect(typeof mod.getSDKExtensionsConfig).toBe('function')
388
- expect(typeof mod.resetSDKExtensionsConfig).toBe('function')
389
- expect(typeof mod.extractJWTFromHeader).toBe('function')
390
- expect(typeof mod.isValidJWT).toBe('function')
391
- expect(typeof mod.configureWithJWT).toBe('function')
392
- expect(typeof mod.getEnvironmentConfig).toBe('function')
393
- })
394
-
395
- it('should re-export React hooks', async () => {
396
- const mod = await import('./index')
397
-
398
- expect(typeof mod.useQuery).toBe('function')
399
- expect(typeof mod.useStreamingQuery).toBe('function')
400
- expect(typeof mod.useOperation).toBe('function')
401
- expect(typeof mod.useMultipleOperations).toBe('function')
402
- expect(typeof mod.useSDKClients).toBe('function')
403
- })
404
-
405
- it('should re-export error classes', async () => {
406
- const mod = await import('./index')
407
-
408
- expect(typeof mod.QueuedQueryError).toBe('function')
409
- expect(typeof mod.QueuedAgentError).toBe('function')
410
- })
411
-
412
- it('should re-export EventType enum', async () => {
413
- const mod = await import('./index')
414
-
415
- expect(mod.EventType).toBeDefined()
416
- expect(mod.EventType.OPERATION_COMPLETED).toBeDefined()
417
- expect(mod.EventType.OPERATION_ERROR).toBeDefined()
418
- expect(mod.EventType.OPERATION_PROGRESS).toBeDefined()
419
- })
420
- })
@@ -1,82 +0,0 @@
1
- export interface AgentQueryRequest {
2
- message: string;
3
- history?: Array<{
4
- role: string;
5
- content: string;
6
- }>;
7
- context?: Record<string, any>;
8
- mode?: 'quick' | 'standard' | 'extended' | 'streaming';
9
- enableRag?: boolean;
10
- forceExtendedAnalysis?: boolean;
11
- }
12
- export interface AgentOptions {
13
- mode?: 'auto' | 'sync' | 'async';
14
- maxWait?: number;
15
- onProgress?: (message: string, percentage?: number) => void;
16
- }
17
- export interface AgentResult {
18
- content: string;
19
- agent_used: string;
20
- mode_used: 'quick' | 'standard' | 'extended' | 'streaming';
21
- metadata?: Record<string, any>;
22
- tokens_used?: {
23
- prompt_tokens: number;
24
- completion_tokens: number;
25
- total_tokens: number;
26
- };
27
- confidence_score?: number;
28
- execution_time?: number;
29
- timestamp?: string;
30
- }
31
- export interface QueuedAgentResponse {
32
- status: 'queued';
33
- operation_id: string;
34
- message: string;
35
- sse_endpoint?: string;
36
- }
37
- export declare class AgentClient {
38
- private sseClient?;
39
- private config;
40
- constructor(config: {
41
- baseUrl: string;
42
- credentials?: 'include' | 'same-origin' | 'omit';
43
- headers?: Record<string, string>;
44
- token?: string;
45
- });
46
- /**
47
- * Execute agent query with automatic agent selection
48
- */
49
- executeQuery(graphId: string, request: AgentQueryRequest, options?: AgentOptions): Promise<AgentResult>;
50
- /**
51
- * Execute specific agent type
52
- */
53
- executeAgent(graphId: string, agentType: string, request: AgentQueryRequest, options?: AgentOptions): Promise<AgentResult>;
54
- private waitForAgentCompletion;
55
- /**
56
- * Convenience method for simple agent queries with auto-selection
57
- */
58
- query(graphId: string, message: string, context?: Record<string, any>): Promise<AgentResult>;
59
- /**
60
- * Execute financial agent for financial analysis
61
- */
62
- analyzeFinancials(graphId: string, message: string, options?: AgentOptions): Promise<AgentResult>;
63
- /**
64
- * Execute research agent for deep research
65
- */
66
- research(graphId: string, message: string, options?: AgentOptions): Promise<AgentResult>;
67
- /**
68
- * Execute RAG agent for fast retrieval
69
- */
70
- rag(graphId: string, message: string, options?: AgentOptions): Promise<AgentResult>;
71
- /**
72
- * Cancel any active SSE connections
73
- */
74
- close(): void;
75
- }
76
- /**
77
- * Error thrown when agent execution is queued and maxWait is 0
78
- */
79
- export declare class QueuedAgentError extends Error {
80
- queueInfo: QueuedAgentResponse;
81
- constructor(queueInfo: QueuedAgentResponse);
82
- }