@lichen-ai/lichen-sdk 0.1.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 (122) hide show
  1. package/LICENSE +21 -0
  2. package/dist/auth/error.d.ts +9 -0
  3. package/dist/auth/error.js +76 -0
  4. package/dist/auth/error.js.map +1 -0
  5. package/dist/auth/error.mjs +76 -0
  6. package/dist/auth/error.mjs.map +1 -0
  7. package/dist/auth/index.d.ts +18 -0
  8. package/dist/auth/index.js +35 -0
  9. package/dist/auth/index.js.map +1 -0
  10. package/dist/auth/index.mjs +35 -0
  11. package/dist/auth/index.mjs.map +1 -0
  12. package/dist/auth/types.d.ts +297 -0
  13. package/dist/auth/types.js +2 -0
  14. package/dist/auth/types.js.map +1 -0
  15. package/dist/auth/types.mjs +2 -0
  16. package/dist/auth/types.mjs.map +1 -0
  17. package/dist/client.d.ts +773 -0
  18. package/dist/client.js +1544 -0
  19. package/dist/client.js.map +1 -0
  20. package/dist/client.mjs +1544 -0
  21. package/dist/client.mjs.map +1 -0
  22. package/dist/index.d.ts +7 -0
  23. package/dist/index.js +3 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/index.mjs +3 -0
  26. package/dist/index.mjs.map +1 -0
  27. package/dist/logging/index.d.ts +43 -0
  28. package/dist/logging/index.js +33 -0
  29. package/dist/logging/index.js.map +1 -0
  30. package/dist/logging/index.mjs +33 -0
  31. package/dist/logging/index.mjs.map +1 -0
  32. package/dist/schema.d.ts +661 -0
  33. package/dist/schema.js +30 -0
  34. package/dist/schema.js.map +1 -0
  35. package/dist/schema.mjs +30 -0
  36. package/dist/schema.mjs.map +1 -0
  37. package/dist/singletons/fetch.d.ts +7 -0
  38. package/dist/singletons/fetch.js +24 -0
  39. package/dist/singletons/fetch.js.map +1 -0
  40. package/dist/singletons/fetch.mjs +24 -0
  41. package/dist/singletons/fetch.mjs.map +1 -0
  42. package/dist/tests/fetch.test.d.ts +1 -0
  43. package/dist/tests/fetch.test.js +460 -0
  44. package/dist/tests/fetch.test.js.map +1 -0
  45. package/dist/tests/fetch.test.mjs +460 -0
  46. package/dist/tests/fetch.test.mjs.map +1 -0
  47. package/dist/tests/sse.test.d.ts +1 -0
  48. package/dist/tests/sse.test.js +132 -0
  49. package/dist/tests/sse.test.js.map +1 -0
  50. package/dist/tests/sse.test.mjs +132 -0
  51. package/dist/tests/sse.test.mjs.map +1 -0
  52. package/dist/types.d.ts +178 -0
  53. package/dist/types.js +2 -0
  54. package/dist/types.js.map +1 -0
  55. package/dist/types.messages.d.ts +86 -0
  56. package/dist/types.messages.js +2 -0
  57. package/dist/types.messages.js.map +1 -0
  58. package/dist/types.messages.mjs +2 -0
  59. package/dist/types.messages.mjs.map +1 -0
  60. package/dist/types.mjs +2 -0
  61. package/dist/types.mjs.map +1 -0
  62. package/dist/types.stream.d.ts +212 -0
  63. package/dist/types.stream.js +2 -0
  64. package/dist/types.stream.js.map +1 -0
  65. package/dist/types.stream.mjs +2 -0
  66. package/dist/types.stream.mjs.map +1 -0
  67. package/dist/ui/branching.d.ts +35 -0
  68. package/dist/ui/branching.js +143 -0
  69. package/dist/ui/branching.js.map +1 -0
  70. package/dist/ui/branching.mjs +143 -0
  71. package/dist/ui/branching.mjs.map +1 -0
  72. package/dist/ui/branching.test.d.ts +1 -0
  73. package/dist/ui/branching.test.js +369 -0
  74. package/dist/ui/branching.test.js.map +1 -0
  75. package/dist/ui/branching.test.mjs +369 -0
  76. package/dist/ui/branching.test.mjs.map +1 -0
  77. package/dist/ui/errors.d.ts +12 -0
  78. package/dist/ui/errors.js +10 -0
  79. package/dist/ui/errors.js.map +1 -0
  80. package/dist/ui/errors.mjs +10 -0
  81. package/dist/ui/errors.mjs.map +1 -0
  82. package/dist/ui/manager.d.ts +87 -0
  83. package/dist/ui/manager.js +158 -0
  84. package/dist/ui/manager.js.map +1 -0
  85. package/dist/ui/manager.mjs +158 -0
  86. package/dist/ui/manager.mjs.map +1 -0
  87. package/dist/ui/messages.d.ts +18 -0
  88. package/dist/ui/messages.js +64 -0
  89. package/dist/ui/messages.js.map +1 -0
  90. package/dist/ui/messages.mjs +64 -0
  91. package/dist/ui/messages.mjs.map +1 -0
  92. package/dist/ui/utils.d.ts +2 -0
  93. package/dist/ui/utils.js +11 -0
  94. package/dist/ui/utils.js.map +1 -0
  95. package/dist/ui/utils.mjs +11 -0
  96. package/dist/ui/utils.mjs.map +1 -0
  97. package/dist/utils/async_caller.d.ts +48 -0
  98. package/dist/utils/async_caller.js +153 -0
  99. package/dist/utils/async_caller.js.map +1 -0
  100. package/dist/utils/async_caller.mjs +153 -0
  101. package/dist/utils/async_caller.mjs.map +1 -0
  102. package/dist/utils/env.d.ts +1 -0
  103. package/dist/utils/env.js +13 -0
  104. package/dist/utils/env.js.map +1 -0
  105. package/dist/utils/env.mjs +13 -0
  106. package/dist/utils/env.mjs.map +1 -0
  107. package/dist/utils/signals.d.ts +1 -0
  108. package/dist/utils/signals.js +19 -0
  109. package/dist/utils/signals.js.map +1 -0
  110. package/dist/utils/signals.mjs +19 -0
  111. package/dist/utils/signals.mjs.map +1 -0
  112. package/dist/utils/sse.d.ts +8 -0
  113. package/dist/utils/sse.js +151 -0
  114. package/dist/utils/sse.js.map +1 -0
  115. package/dist/utils/sse.mjs +151 -0
  116. package/dist/utils/sse.mjs.map +1 -0
  117. package/dist/utils/stream.d.ts +13 -0
  118. package/dist/utils/stream.js +109 -0
  119. package/dist/utils/stream.js.map +1 -0
  120. package/dist/utils/stream.mjs +109 -0
  121. package/dist/utils/stream.mjs.map +1 -0
  122. package/package.json +63 -0
@@ -0,0 +1,369 @@
1
+ import { it, expect } from 'vitest';
2
+ import { getBranchSequence } from "./branching.js";
3
+ const history = [
4
+ {
5
+ values: {
6
+ messages: [
7
+ {
8
+ content: 'Fork: Hello',
9
+ additional_kwargs: {},
10
+ response_metadata: {},
11
+ id: '33357aea-9c2d-4718-92f4-20038d5a2d29',
12
+ type: 'human'
13
+ },
14
+ {
15
+ content: 'Hey',
16
+ additional_kwargs: {},
17
+ response_metadata: {},
18
+ tool_call_chunks: [],
19
+ id: 'run-782a2f90-2e39-4c21-9ee6-0f38585a0ae6',
20
+ tool_calls: [],
21
+ invalid_tool_calls: [],
22
+ type: 'ai'
23
+ }
24
+ ]
25
+ },
26
+ next: [],
27
+ tasks: [],
28
+ metadata: {
29
+ source: 'loop',
30
+ step: 2,
31
+ parents: {},
32
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc'
33
+ },
34
+ created_at: '2025-08-21T12:47:12.640Z',
35
+ checkpoint: {
36
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc',
37
+ checkpoint_id: '1f07e8cf-56a7-6000-8002-5e272b1d5285',
38
+ checkpoint_ns: '',
39
+ checkpoint_map: null
40
+ },
41
+ parent_checkpoint: {
42
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc',
43
+ checkpoint_id: '1f07e8cf-53aa-6d70-8001-2096b0bbf835',
44
+ checkpoint_ns: '',
45
+ checkpoint_map: null
46
+ }
47
+ },
48
+ {
49
+ values: {
50
+ messages: [
51
+ {
52
+ content: 'Fork: Hello',
53
+ additional_kwargs: {},
54
+ response_metadata: {},
55
+ id: '33357aea-9c2d-4718-92f4-20038d5a2d29',
56
+ type: 'human'
57
+ }
58
+ ]
59
+ },
60
+ next: ['agent'],
61
+ tasks: [
62
+ {
63
+ id: '680ee831-4d10-50f9-956f-e0d937321614',
64
+ name: 'agent',
65
+ error: null,
66
+ interrupts: [],
67
+ path: ['__pregel_pull', 'agent'],
68
+ checkpoint: null,
69
+ state: null,
70
+ result: {
71
+ messages: [
72
+ {
73
+ content: 'Hey',
74
+ additional_kwargs: {},
75
+ response_metadata: {},
76
+ tool_call_chunks: [],
77
+ id: 'run-782a2f90-2e39-4c21-9ee6-0f38585a0ae6',
78
+ tool_calls: [],
79
+ invalid_tool_calls: [],
80
+ type: 'ai'
81
+ }
82
+ ]
83
+ }
84
+ }
85
+ ],
86
+ metadata: {
87
+ source: 'loop',
88
+ step: 1,
89
+ parents: {},
90
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc'
91
+ },
92
+ created_at: '2025-08-21T12:47:12.327Z',
93
+ checkpoint: {
94
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc',
95
+ checkpoint_id: '1f07e8cf-53aa-6d70-8001-2096b0bbf835',
96
+ checkpoint_ns: '',
97
+ checkpoint_map: null
98
+ },
99
+ parent_checkpoint: {
100
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc',
101
+ checkpoint_id: '1f07e8cf-53a8-6660-8000-f157c9cf7d66',
102
+ checkpoint_ns: '',
103
+ checkpoint_map: null
104
+ }
105
+ },
106
+ {
107
+ values: { messages: [] },
108
+ next: ['__start__'],
109
+ tasks: [
110
+ {
111
+ id: '4233f4c0-5ea2-5117-9153-95e5fe59eee3',
112
+ name: '__start__',
113
+ error: null,
114
+ interrupts: [],
115
+ path: ['__pregel_pull', '__start__'],
116
+ checkpoint: null,
117
+ state: null,
118
+ result: { messages: [{ type: 'human', content: 'Fork: Hello' }] }
119
+ }
120
+ ],
121
+ metadata: {
122
+ source: 'input',
123
+ step: 0,
124
+ parents: {},
125
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc'
126
+ },
127
+ created_at: '2025-08-21T12:47:12.326Z',
128
+ checkpoint: {
129
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc',
130
+ checkpoint_id: '1f07e8cf-53a8-6660-8000-f157c9cf7d66',
131
+ checkpoint_ns: '',
132
+ checkpoint_map: null
133
+ },
134
+ parent_checkpoint: {
135
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc',
136
+ checkpoint_id: '1f07e8cf-4cea-6530-ffff-0995a53299c5',
137
+ checkpoint_ns: '',
138
+ checkpoint_map: null
139
+ }
140
+ },
141
+ {
142
+ values: {
143
+ messages: [
144
+ {
145
+ content: 'Hello',
146
+ additional_kwargs: {},
147
+ response_metadata: {},
148
+ id: 'ec300e63-1494-4ef6-936c-60d02d7bdce1',
149
+ type: 'human'
150
+ },
151
+ {
152
+ content: 'Hey',
153
+ additional_kwargs: {},
154
+ response_metadata: {},
155
+ tool_call_chunks: [],
156
+ id: 'run-593064bd-dd07-4ed3-99c0-a918625f4884',
157
+ tool_calls: [],
158
+ invalid_tool_calls: [],
159
+ type: 'ai'
160
+ }
161
+ ]
162
+ },
163
+ next: [],
164
+ tasks: [],
165
+ metadata: {
166
+ source: 'loop',
167
+ step: 1,
168
+ parents: {},
169
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc'
170
+ },
171
+ created_at: '2025-08-21T12:47:12.285Z',
172
+ checkpoint: {
173
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc',
174
+ checkpoint_id: '1f07e8cf-5344-64d0-8001-8a176e91d12f',
175
+ checkpoint_ns: '',
176
+ checkpoint_map: null
177
+ },
178
+ parent_checkpoint: {
179
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc',
180
+ checkpoint_id: '1f07e8cf-4cf8-6f90-8000-7707fd155a8a',
181
+ checkpoint_ns: '',
182
+ checkpoint_map: null
183
+ }
184
+ },
185
+ {
186
+ values: {
187
+ messages: [
188
+ {
189
+ content: 'Hello',
190
+ additional_kwargs: {},
191
+ response_metadata: {},
192
+ id: 'ec300e63-1494-4ef6-936c-60d02d7bdce1',
193
+ type: 'human'
194
+ },
195
+ {
196
+ content: 'Hey',
197
+ additional_kwargs: {},
198
+ response_metadata: {},
199
+ tool_call_chunks: [],
200
+ id: 'run-b86ef558-eaff-4838-bc03-218f20554a9f',
201
+ tool_calls: [],
202
+ invalid_tool_calls: [],
203
+ type: 'ai'
204
+ }
205
+ ]
206
+ },
207
+ next: [],
208
+ tasks: [],
209
+ metadata: {
210
+ source: 'loop',
211
+ step: 1,
212
+ parents: {},
213
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc'
214
+ },
215
+ created_at: '2025-08-21T12:47:11.936Z',
216
+ checkpoint: {
217
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc',
218
+ checkpoint_id: '1f07e8cf-4ff0-6400-8001-a54aedf52a76',
219
+ checkpoint_ns: '',
220
+ checkpoint_map: null
221
+ },
222
+ parent_checkpoint: {
223
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc',
224
+ checkpoint_id: '1f07e8cf-4cf8-6f90-8000-7707fd155a8a',
225
+ checkpoint_ns: '',
226
+ checkpoint_map: null
227
+ }
228
+ },
229
+ {
230
+ values: {
231
+ messages: [
232
+ {
233
+ content: 'Hello',
234
+ additional_kwargs: {},
235
+ response_metadata: {},
236
+ id: 'ec300e63-1494-4ef6-936c-60d02d7bdce1',
237
+ type: 'human'
238
+ }
239
+ ]
240
+ },
241
+ next: ['agent'],
242
+ tasks: [
243
+ {
244
+ id: 'e3f503f1-73bc-5db1-8b4d-13f660ad1b51',
245
+ name: 'agent',
246
+ error: null,
247
+ interrupts: [],
248
+ path: ['__pregel_pull', 'agent'],
249
+ checkpoint: null,
250
+ state: null,
251
+ result: {
252
+ messages: [
253
+ {
254
+ content: 'Hey',
255
+ additional_kwargs: {},
256
+ response_metadata: {},
257
+ tool_call_chunks: [],
258
+ id: 'run-b86ef558-eaff-4838-bc03-218f20554a9f',
259
+ tool_calls: [],
260
+ invalid_tool_calls: [],
261
+ type: 'ai'
262
+ }
263
+ ]
264
+ }
265
+ }
266
+ ],
267
+ metadata: {
268
+ source: 'loop',
269
+ step: 0,
270
+ parents: {},
271
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc'
272
+ },
273
+ created_at: '2025-08-21T12:47:11.625Z',
274
+ checkpoint: {
275
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc',
276
+ checkpoint_id: '1f07e8cf-4cf8-6f90-8000-7707fd155a8a',
277
+ checkpoint_ns: '',
278
+ checkpoint_map: null
279
+ },
280
+ parent_checkpoint: {
281
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc',
282
+ checkpoint_id: '1f07e8cf-4cea-6530-ffff-0995a53299c5',
283
+ checkpoint_ns: '',
284
+ checkpoint_map: null
285
+ }
286
+ },
287
+ {
288
+ values: { messages: [] },
289
+ next: ['__start__'],
290
+ tasks: [
291
+ {
292
+ id: 'cddede95-d276-59f1-bc08-8051d6448734',
293
+ name: '__start__',
294
+ error: null,
295
+ interrupts: [],
296
+ path: ['__pregel_pull', '__start__'],
297
+ checkpoint: null,
298
+ state: null,
299
+ result: { messages: [{ type: 'human', content: 'Hello' }] }
300
+ }
301
+ ],
302
+ metadata: {
303
+ source: 'input',
304
+ step: -1,
305
+ parents: {},
306
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc'
307
+ },
308
+ created_at: '2025-08-21T12:47:11.619Z',
309
+ checkpoint: {
310
+ thread_id: 'efa80f4d-725f-4903-b19f-216309f060bc',
311
+ checkpoint_id: '1f07e8cf-4cea-6530-ffff-0995a53299c5',
312
+ checkpoint_ns: '',
313
+ checkpoint_map: null
314
+ },
315
+ parent_checkpoint: null
316
+ }
317
+ ];
318
+ const node = (value, paths = []) => ({
319
+ type: 'node',
320
+ value: typeof value === 'number' ? history.at(value) : value,
321
+ path: paths.map((v) => {
322
+ if (typeof v === 'number') {
323
+ return history.at(v)?.checkpoint?.checkpoint_id;
324
+ }
325
+ return v?.checkpoint?.checkpoint_id;
326
+ })
327
+ });
328
+ const fork = (...items) => ({ type: 'fork', items });
329
+ const sequence = (...items) => ({ type: 'sequence', items });
330
+ it('full tree', async () => {
331
+ const { rootSequence, paths } = getBranchSequence(history);
332
+ expect
333
+ .soft(paths)
334
+ .toMatchObject(expect.arrayContaining([[5], [5, 4], [5, 3], [2]].map((p) => p.map((i) => history.at(i)?.checkpoint?.checkpoint_id))));
335
+ expect
336
+ .soft(rootSequence)
337
+ .toMatchObject(sequence(node(6), fork(sequence(node(5, [5]), fork(sequence(node(4, [5, 4])), sequence(node(3, [5, 3])))), sequence(node(2, [2]), node(1, [2]), node(0, [2])))));
338
+ });
339
+ it('partial tree', async () => {
340
+ expect(getBranchSequence(history.slice(0, 1))).toMatchObject({
341
+ paths: [],
342
+ rootSequence: sequence(node(0))
343
+ });
344
+ expect(getBranchSequence(history.slice(0, 2))).toMatchObject({
345
+ paths: [],
346
+ rootSequence: sequence(node(1), node(0))
347
+ });
348
+ expect(getBranchSequence(history.slice(0, 3))).toMatchObject({
349
+ paths: [],
350
+ rootSequence: sequence(node(2), node(1), node(0))
351
+ });
352
+ expect(getBranchSequence(history.slice(0, 4))).toMatchObject({
353
+ paths: [],
354
+ rootSequence: sequence(node(2), node(1), node(0))
355
+ });
356
+ expect(getBranchSequence(history.slice(0, 5))).toMatchObject({
357
+ paths: [],
358
+ rootSequence: sequence(node(2), node(1), node(0))
359
+ });
360
+ expect(getBranchSequence(history.slice(0, 6))).toMatchObject({
361
+ paths: expect.arrayContaining([[5], [5, 4], [5, 3], [2]].map((p) => p.map((i) => history.at(i)?.checkpoint?.checkpoint_id))),
362
+ rootSequence: sequence(fork(sequence(node(5, [5]), fork(sequence(node(4, [5, 4])), sequence(node(3, [5, 3])))), sequence(node(2, [2]), node(1, [2]), node(0, [2]))))
363
+ });
364
+ expect(getBranchSequence(history.slice(0, 7))).toMatchObject({
365
+ paths: expect.arrayContaining([[5], [5, 4], [5, 3], [2]].map((p) => p.map((i) => history.at(i)?.checkpoint?.checkpoint_id))),
366
+ rootSequence: sequence(node(6), fork(sequence(node(5, [5]), fork(sequence(node(4, [5, 4])), sequence(node(3, [5, 3])))), sequence(node(2, [2]), node(1, [2]), node(0, [2]))))
367
+ });
368
+ });
369
+ //# sourceMappingURL=branching.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branching.test.js","sourceRoot":"","sources":["../../src/ui/branching.test.ts"],"names":[],"mappings":"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"}