@robosystems/client 0.2.48 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/extensions/InvestorClient.d.ts +91 -0
  2. package/extensions/InvestorClient.js +223 -0
  3. package/extensions/InvestorClient.ts +501 -0
  4. package/extensions/LedgerClient.d.ts +213 -165
  5. package/extensions/LedgerClient.js +315 -393
  6. package/extensions/LedgerClient.ts +887 -564
  7. package/extensions/ReportClient.d.ts +77 -115
  8. package/extensions/ReportClient.js +124 -211
  9. package/extensions/ReportClient.ts +298 -358
  10. package/extensions/config.js +1 -1
  11. package/extensions/config.ts +1 -1
  12. package/extensions/graphql/client.d.ts +46 -0
  13. package/extensions/graphql/client.js +75 -0
  14. package/extensions/graphql/client.ts +82 -0
  15. package/extensions/graphql/generated/graphql.d.ts +1786 -0
  16. package/extensions/graphql/generated/graphql.js +2671 -0
  17. package/extensions/graphql/generated/graphql.ts +4491 -0
  18. package/extensions/graphql/queries/investor/holdings.d.ts +8 -0
  19. package/extensions/graphql/queries/investor/holdings.js +36 -0
  20. package/extensions/graphql/queries/investor/holdings.ts +34 -0
  21. package/extensions/graphql/queries/investor/portfolio.d.ts +4 -0
  22. package/extensions/graphql/queries/investor/portfolio.js +21 -0
  23. package/extensions/graphql/queries/investor/portfolio.ts +19 -0
  24. package/extensions/graphql/queries/investor/portfolios.d.ts +4 -0
  25. package/extensions/graphql/queries/investor/portfolios.js +29 -0
  26. package/extensions/graphql/queries/investor/portfolios.ts +27 -0
  27. package/extensions/graphql/queries/investor/position.d.ts +4 -0
  28. package/extensions/graphql/queries/investor/position.js +33 -0
  29. package/extensions/graphql/queries/investor/position.ts +31 -0
  30. package/extensions/graphql/queries/investor/positions.d.ts +8 -0
  31. package/extensions/graphql/queries/investor/positions.js +57 -0
  32. package/extensions/graphql/queries/investor/positions.ts +55 -0
  33. package/extensions/graphql/queries/investor/securities.d.ts +8 -0
  34. package/extensions/graphql/queries/investor/securities.js +50 -0
  35. package/extensions/graphql/queries/investor/securities.ts +48 -0
  36. package/extensions/graphql/queries/investor/security.d.ts +4 -0
  37. package/extensions/graphql/queries/investor/security.js +26 -0
  38. package/extensions/graphql/queries/investor/security.ts +24 -0
  39. package/extensions/graphql/queries/ledger/accountRollups.d.ts +7 -0
  40. package/extensions/graphql/queries/ledger/accountRollups.js +36 -0
  41. package/extensions/graphql/queries/ledger/accountRollups.ts +34 -0
  42. package/extensions/graphql/queries/ledger/accountTree.d.ts +11 -0
  43. package/extensions/graphql/queries/ledger/accountTree.js +61 -0
  44. package/extensions/graphql/queries/ledger/accountTree.ts +59 -0
  45. package/extensions/graphql/queries/ledger/accounts.d.ts +8 -0
  46. package/extensions/graphql/queries/ledger/accounts.js +45 -0
  47. package/extensions/graphql/queries/ledger/accounts.ts +43 -0
  48. package/extensions/graphql/queries/ledger/closingBookStructures.d.ts +6 -0
  49. package/extensions/graphql/queries/ledger/closingBookStructures.js +27 -0
  50. package/extensions/graphql/queries/ledger/closingBookStructures.ts +25 -0
  51. package/extensions/graphql/queries/ledger/elements.d.ts +6 -0
  52. package/extensions/graphql/queries/ledger/elements.js +56 -0
  53. package/extensions/graphql/queries/ledger/elements.ts +54 -0
  54. package/extensions/graphql/queries/ledger/entities.d.ts +7 -0
  55. package/extensions/graphql/queries/ledger/entities.js +31 -0
  56. package/extensions/graphql/queries/ledger/entities.ts +29 -0
  57. package/extensions/graphql/queries/ledger/entity.d.ts +14 -0
  58. package/extensions/graphql/queries/ledger/entity.js +55 -0
  59. package/extensions/graphql/queries/ledger/entity.ts +54 -0
  60. package/extensions/graphql/queries/ledger/fiscalCalendar.d.ts +8 -0
  61. package/extensions/graphql/queries/ledger/fiscalCalendar.js +35 -0
  62. package/extensions/graphql/queries/ledger/fiscalCalendar.ts +33 -0
  63. package/extensions/graphql/queries/ledger/mappedTrialBalance.d.ts +9 -0
  64. package/extensions/graphql/queries/ledger/mappedTrialBalance.js +29 -0
  65. package/extensions/graphql/queries/ledger/mappedTrialBalance.ts +27 -0
  66. package/extensions/graphql/queries/ledger/mapping.d.ts +5 -0
  67. package/extensions/graphql/queries/ledger/mapping.js +35 -0
  68. package/extensions/graphql/queries/ledger/mapping.ts +33 -0
  69. package/extensions/graphql/queries/ledger/mappingCoverage.d.ts +5 -0
  70. package/extensions/graphql/queries/ledger/mappingCoverage.js +22 -0
  71. package/extensions/graphql/queries/ledger/mappingCoverage.ts +20 -0
  72. package/extensions/graphql/queries/ledger/mappings.d.ts +6 -0
  73. package/extensions/graphql/queries/ledger/mappings.js +23 -0
  74. package/extensions/graphql/queries/ledger/mappings.ts +21 -0
  75. package/extensions/graphql/queries/ledger/periodCloseStatus.d.ts +6 -0
  76. package/extensions/graphql/queries/ledger/periodCloseStatus.js +29 -0
  77. package/extensions/graphql/queries/ledger/periodCloseStatus.ts +27 -0
  78. package/extensions/graphql/queries/ledger/periodDrafts.d.ts +8 -0
  79. package/extensions/graphql/queries/ledger/periodDrafts.js +45 -0
  80. package/extensions/graphql/queries/ledger/periodDrafts.ts +43 -0
  81. package/extensions/graphql/queries/ledger/publishList.d.ts +5 -0
  82. package/extensions/graphql/queries/ledger/publishList.js +29 -0
  83. package/extensions/graphql/queries/ledger/publishList.ts +27 -0
  84. package/extensions/graphql/queries/ledger/publishLists.d.ts +5 -0
  85. package/extensions/graphql/queries/ledger/publishLists.js +29 -0
  86. package/extensions/graphql/queries/ledger/publishLists.ts +27 -0
  87. package/extensions/graphql/queries/ledger/report.d.ts +5 -0
  88. package/extensions/graphql/queries/ledger/report.js +40 -0
  89. package/extensions/graphql/queries/ledger/report.ts +38 -0
  90. package/extensions/graphql/queries/ledger/reportingTaxonomy.d.ts +6 -0
  91. package/extensions/graphql/queries/ledger/reportingTaxonomy.js +27 -0
  92. package/extensions/graphql/queries/ledger/reportingTaxonomy.ts +25 -0
  93. package/extensions/graphql/queries/ledger/reports.d.ts +8 -0
  94. package/extensions/graphql/queries/ledger/reports.js +45 -0
  95. package/extensions/graphql/queries/ledger/reports.ts +43 -0
  96. package/extensions/graphql/queries/ledger/scheduleFacts.d.ts +7 -0
  97. package/extensions/graphql/queries/ledger/scheduleFacts.js +24 -0
  98. package/extensions/graphql/queries/ledger/scheduleFacts.ts +22 -0
  99. package/extensions/graphql/queries/ledger/schedules.d.ts +6 -0
  100. package/extensions/graphql/queries/ledger/schedules.js +24 -0
  101. package/extensions/graphql/queries/ledger/schedules.ts +22 -0
  102. package/extensions/graphql/queries/ledger/statement.d.ts +9 -0
  103. package/extensions/graphql/queries/ledger/statement.js +43 -0
  104. package/extensions/graphql/queries/ledger/statement.ts +41 -0
  105. package/extensions/graphql/queries/ledger/structures.d.ts +5 -0
  106. package/extensions/graphql/queries/ledger/structures.js +22 -0
  107. package/extensions/graphql/queries/ledger/structures.ts +20 -0
  108. package/extensions/graphql/queries/ledger/summary.d.ts +7 -0
  109. package/extensions/graphql/queries/ledger/summary.js +25 -0
  110. package/extensions/graphql/queries/ledger/summary.ts +23 -0
  111. package/extensions/graphql/queries/ledger/taxonomies.d.ts +5 -0
  112. package/extensions/graphql/queries/ledger/taxonomies.js +28 -0
  113. package/extensions/graphql/queries/ledger/taxonomies.ts +26 -0
  114. package/extensions/graphql/queries/ledger/transaction.d.ts +6 -0
  115. package/extensions/graphql/queries/ledger/transaction.js +49 -0
  116. package/extensions/graphql/queries/ledger/transaction.ts +47 -0
  117. package/extensions/graphql/queries/ledger/transactions.d.ts +7 -0
  118. package/extensions/graphql/queries/ledger/transactions.js +49 -0
  119. package/extensions/graphql/queries/ledger/transactions.ts +47 -0
  120. package/extensions/graphql/queries/ledger/trialBalance.d.ts +7 -0
  121. package/extensions/graphql/queries/ledger/trialBalance.js +28 -0
  122. package/extensions/graphql/queries/ledger/trialBalance.ts +26 -0
  123. package/extensions/graphql/queries/ledger/unmappedElements.d.ts +8 -0
  124. package/extensions/graphql/queries/ledger/unmappedElements.js +29 -0
  125. package/extensions/graphql/queries/ledger/unmappedElements.ts +27 -0
  126. package/extensions/hooks.d.ts +1 -1
  127. package/extensions/index.d.ts +5 -1
  128. package/extensions/index.js +13 -1
  129. package/extensions/index.ts +14 -0
  130. package/index.ts +2 -2
  131. package/package.json +14 -5
  132. package/sdk/index.d.ts +2 -2
  133. package/sdk/index.js +38 -65
  134. package/sdk/index.ts +2 -2
  135. package/sdk/sdk.gen.d.ts +101 -220
  136. package/sdk/sdk.gen.js +251 -445
  137. package/sdk/sdk.gen.ts +216 -409
  138. package/sdk/types.gen.d.ts +4586 -7045
  139. package/sdk/types.gen.ts +4702 -7334
  140. package/sdk.gen.d.ts +101 -220
  141. package/sdk.gen.js +251 -445
  142. package/sdk.gen.ts +216 -409
  143. package/types.gen.d.ts +4586 -7045
  144. package/types.gen.ts +4702 -7334
  145. package/extensions/AgentClient.test.ts +0 -403
  146. package/extensions/LedgerClient.test.ts +0 -1138
  147. package/extensions/OperationClient.test.ts +0 -365
  148. package/extensions/QueryClient.test.ts +0 -432
  149. package/extensions/ReportClient.test.ts +0 -828
  150. package/extensions/SSEClient.test.ts +0 -375
  151. package/extensions/config.test.ts +0 -199
  152. package/extensions/hooks.test.ts +0 -373
  153. package/extensions/index.test.ts +0 -420
  154. package/sdk-extensions/AgentClient.d.ts +0 -82
  155. package/sdk-extensions/AgentClient.js +0 -218
  156. package/sdk-extensions/AgentClient.test.ts +0 -403
  157. package/sdk-extensions/AgentClient.ts +0 -321
  158. package/sdk-extensions/LedgerClient.d.ts +0 -242
  159. package/sdk-extensions/LedgerClient.js +0 -496
  160. package/sdk-extensions/LedgerClient.test.ts +0 -1138
  161. package/sdk-extensions/LedgerClient.ts +0 -800
  162. package/sdk-extensions/OperationClient.d.ts +0 -65
  163. package/sdk-extensions/OperationClient.js +0 -251
  164. package/sdk-extensions/OperationClient.test.ts +0 -365
  165. package/sdk-extensions/OperationClient.ts +0 -324
  166. package/sdk-extensions/QueryClient.d.ts +0 -52
  167. package/sdk-extensions/QueryClient.js +0 -313
  168. package/sdk-extensions/QueryClient.test.ts +0 -432
  169. package/sdk-extensions/QueryClient.ts +0 -420
  170. package/sdk-extensions/README.md +0 -901
  171. package/sdk-extensions/ReportClient.d.ts +0 -151
  172. package/sdk-extensions/ReportClient.js +0 -278
  173. package/sdk-extensions/ReportClient.test.ts +0 -828
  174. package/sdk-extensions/ReportClient.ts +0 -486
  175. package/sdk-extensions/SSEClient.d.ts +0 -62
  176. package/sdk-extensions/SSEClient.js +0 -154
  177. package/sdk-extensions/SSEClient.test.ts +0 -375
  178. package/sdk-extensions/SSEClient.ts +0 -210
  179. package/sdk-extensions/config.d.ts +0 -57
  180. package/sdk-extensions/config.js +0 -152
  181. package/sdk-extensions/config.test.ts +0 -199
  182. package/sdk-extensions/config.ts +0 -175
  183. package/sdk-extensions/hooks.d.ts +0 -110
  184. package/sdk-extensions/hooks.js +0 -384
  185. package/sdk-extensions/hooks.test.ts +0 -373
  186. package/sdk-extensions/hooks.ts +0 -459
  187. package/sdk-extensions/index.d.ts +0 -63
  188. package/sdk-extensions/index.js +0 -164
  189. package/sdk-extensions/index.test.ts +0 -420
  190. 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
- }