@theway-ai/sdk 2.2.1 → 2.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.
@@ -72,471 +72,6 @@ export function thinkingLevelToJSON(object) {
72
72
  return "UNRECOGNIZED";
73
73
  }
74
74
  }
75
- function createBaseSessionState() {
76
- return {
77
- sessionId: "",
78
- model: "",
79
- modelCatalog: [],
80
- cwd: "",
81
- busy: false,
82
- queuedCount: 0,
83
- latestTriggerPoll: undefined,
84
- goal: undefined,
85
- controlPlanePrompt: undefined,
86
- sidebar: undefined,
87
- feedBlocks: [],
88
- feedLines: [],
89
- dags: [],
90
- subagents: [],
91
- tuiMaxFeedLines: undefined,
92
- contextUsage: undefined,
93
- feedLinesBase: "0",
94
- feedBlocksBase: "0",
95
- feedBlockPatches: [],
96
- extensions: undefined,
97
- sessionContextUsage: undefined,
98
- thinkingLevel: "",
99
- };
100
- }
101
- export const SessionState = {
102
- encode(message, writer = new BinaryWriter()) {
103
- if (message.sessionId !== "") {
104
- writer.uint32(10).string(message.sessionId);
105
- }
106
- if (message.model !== "") {
107
- writer.uint32(18).string(message.model);
108
- }
109
- for (const v of message.modelCatalog) {
110
- ProviderGroup.encode(v, writer.uint32(26).fork()).join();
111
- }
112
- if (message.cwd !== "") {
113
- writer.uint32(34).string(message.cwd);
114
- }
115
- if (message.busy !== false) {
116
- writer.uint32(40).bool(message.busy);
117
- }
118
- if (message.queuedCount !== 0) {
119
- writer.uint32(48).uint32(message.queuedCount);
120
- }
121
- if (message.latestTriggerPoll !== undefined) {
122
- TriggerPollStatus.encode(message.latestTriggerPoll, writer.uint32(58).fork()).join();
123
- }
124
- if (message.goal !== undefined) {
125
- GoalSnapshot.encode(message.goal, writer.uint32(66).fork()).join();
126
- }
127
- if (message.controlPlanePrompt !== undefined) {
128
- ControlPlanePromptSnapshot.encode(message.controlPlanePrompt, writer.uint32(74).fork()).join();
129
- }
130
- if (message.sidebar !== undefined) {
131
- SidebarSnapshot.encode(message.sidebar, writer.uint32(82).fork()).join();
132
- }
133
- for (const v of message.feedBlocks) {
134
- FeedBlock.encode(v, writer.uint32(90).fork()).join();
135
- }
136
- for (const v of message.feedLines) {
137
- writer.uint32(98).string(v);
138
- }
139
- for (const v of message.dags) {
140
- DagRunSnapshot.encode(v, writer.uint32(106).fork()).join();
141
- }
142
- for (const v of message.subagents) {
143
- SubagentJobSnapshot.encode(v, writer.uint32(114).fork()).join();
144
- }
145
- if (message.tuiMaxFeedLines !== undefined) {
146
- writer.uint32(120).uint32(message.tuiMaxFeedLines);
147
- }
148
- if (message.contextUsage !== undefined) {
149
- ContextUsage.encode(message.contextUsage, writer.uint32(130).fork()).join();
150
- }
151
- if (message.feedLinesBase !== "0") {
152
- writer.uint32(136).uint64(message.feedLinesBase);
153
- }
154
- if (message.feedBlocksBase !== "0") {
155
- writer.uint32(144).uint64(message.feedBlocksBase);
156
- }
157
- for (const v of message.feedBlockPatches) {
158
- FeedBlockPatch.encode(v, writer.uint32(154).fork()).join();
159
- }
160
- if (message.extensions !== undefined) {
161
- ExtensionSnapshot.encode(message.extensions, writer.uint32(162).fork()).join();
162
- }
163
- if (message.sessionContextUsage !== undefined) {
164
- ContextUsage.encode(message.sessionContextUsage, writer.uint32(170).fork()).join();
165
- }
166
- if (message.thinkingLevel !== "") {
167
- writer.uint32(178).string(message.thinkingLevel);
168
- }
169
- return writer;
170
- },
171
- decode(input, length) {
172
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
173
- const end = length === undefined ? reader.len : reader.pos + length;
174
- const message = createBaseSessionState();
175
- while (reader.pos < end) {
176
- const tag = reader.uint32();
177
- switch (tag >>> 3) {
178
- case 1: {
179
- if (tag !== 10) {
180
- break;
181
- }
182
- message.sessionId = reader.string();
183
- continue;
184
- }
185
- case 2: {
186
- if (tag !== 18) {
187
- break;
188
- }
189
- message.model = reader.string();
190
- continue;
191
- }
192
- case 3: {
193
- if (tag !== 26) {
194
- break;
195
- }
196
- message.modelCatalog.push(ProviderGroup.decode(reader, reader.uint32()));
197
- continue;
198
- }
199
- case 4: {
200
- if (tag !== 34) {
201
- break;
202
- }
203
- message.cwd = reader.string();
204
- continue;
205
- }
206
- case 5: {
207
- if (tag !== 40) {
208
- break;
209
- }
210
- message.busy = reader.bool();
211
- continue;
212
- }
213
- case 6: {
214
- if (tag !== 48) {
215
- break;
216
- }
217
- message.queuedCount = reader.uint32();
218
- continue;
219
- }
220
- case 7: {
221
- if (tag !== 58) {
222
- break;
223
- }
224
- message.latestTriggerPoll = TriggerPollStatus.decode(reader, reader.uint32());
225
- continue;
226
- }
227
- case 8: {
228
- if (tag !== 66) {
229
- break;
230
- }
231
- message.goal = GoalSnapshot.decode(reader, reader.uint32());
232
- continue;
233
- }
234
- case 9: {
235
- if (tag !== 74) {
236
- break;
237
- }
238
- message.controlPlanePrompt = ControlPlanePromptSnapshot.decode(reader, reader.uint32());
239
- continue;
240
- }
241
- case 10: {
242
- if (tag !== 82) {
243
- break;
244
- }
245
- message.sidebar = SidebarSnapshot.decode(reader, reader.uint32());
246
- continue;
247
- }
248
- case 11: {
249
- if (tag !== 90) {
250
- break;
251
- }
252
- message.feedBlocks.push(FeedBlock.decode(reader, reader.uint32()));
253
- continue;
254
- }
255
- case 12: {
256
- if (tag !== 98) {
257
- break;
258
- }
259
- message.feedLines.push(reader.string());
260
- continue;
261
- }
262
- case 13: {
263
- if (tag !== 106) {
264
- break;
265
- }
266
- message.dags.push(DagRunSnapshot.decode(reader, reader.uint32()));
267
- continue;
268
- }
269
- case 14: {
270
- if (tag !== 114) {
271
- break;
272
- }
273
- message.subagents.push(SubagentJobSnapshot.decode(reader, reader.uint32()));
274
- continue;
275
- }
276
- case 15: {
277
- if (tag !== 120) {
278
- break;
279
- }
280
- message.tuiMaxFeedLines = reader.uint32();
281
- continue;
282
- }
283
- case 16: {
284
- if (tag !== 130) {
285
- break;
286
- }
287
- message.contextUsage = ContextUsage.decode(reader, reader.uint32());
288
- continue;
289
- }
290
- case 17: {
291
- if (tag !== 136) {
292
- break;
293
- }
294
- message.feedLinesBase = reader.uint64().toString();
295
- continue;
296
- }
297
- case 18: {
298
- if (tag !== 144) {
299
- break;
300
- }
301
- message.feedBlocksBase = reader.uint64().toString();
302
- continue;
303
- }
304
- case 19: {
305
- if (tag !== 154) {
306
- break;
307
- }
308
- message.feedBlockPatches.push(FeedBlockPatch.decode(reader, reader.uint32()));
309
- continue;
310
- }
311
- case 20: {
312
- if (tag !== 162) {
313
- break;
314
- }
315
- message.extensions = ExtensionSnapshot.decode(reader, reader.uint32());
316
- continue;
317
- }
318
- case 21: {
319
- if (tag !== 170) {
320
- break;
321
- }
322
- message.sessionContextUsage = ContextUsage.decode(reader, reader.uint32());
323
- continue;
324
- }
325
- case 22: {
326
- if (tag !== 178) {
327
- break;
328
- }
329
- message.thinkingLevel = reader.string();
330
- continue;
331
- }
332
- }
333
- if ((tag & 7) === 4 || tag === 0) {
334
- break;
335
- }
336
- reader.skip(tag & 7);
337
- }
338
- return message;
339
- },
340
- fromJSON(object) {
341
- return {
342
- sessionId: isSet(object.sessionId)
343
- ? globalThis.String(object.sessionId)
344
- : isSet(object.session_id)
345
- ? globalThis.String(object.session_id)
346
- : "",
347
- model: isSet(object.model) ? globalThis.String(object.model) : "",
348
- modelCatalog: globalThis.Array.isArray(object?.modelCatalog)
349
- ? object.modelCatalog.map((e) => ProviderGroup.fromJSON(e))
350
- : globalThis.Array.isArray(object?.model_catalog)
351
- ? object.model_catalog.map((e) => ProviderGroup.fromJSON(e))
352
- : [],
353
- cwd: isSet(object.cwd) ? globalThis.String(object.cwd) : "",
354
- busy: isSet(object.busy) ? globalThis.Boolean(object.busy) : false,
355
- queuedCount: isSet(object.queuedCount)
356
- ? globalThis.Number(object.queuedCount)
357
- : isSet(object.queued_count)
358
- ? globalThis.Number(object.queued_count)
359
- : 0,
360
- latestTriggerPoll: isSet(object.latestTriggerPoll)
361
- ? TriggerPollStatus.fromJSON(object.latestTriggerPoll)
362
- : isSet(object.latest_trigger_poll)
363
- ? TriggerPollStatus.fromJSON(object.latest_trigger_poll)
364
- : undefined,
365
- goal: isSet(object.goal) ? GoalSnapshot.fromJSON(object.goal) : undefined,
366
- controlPlanePrompt: isSet(object.controlPlanePrompt)
367
- ? ControlPlanePromptSnapshot.fromJSON(object.controlPlanePrompt)
368
- : isSet(object.control_plane_prompt)
369
- ? ControlPlanePromptSnapshot.fromJSON(object.control_plane_prompt)
370
- : undefined,
371
- sidebar: isSet(object.sidebar) ? SidebarSnapshot.fromJSON(object.sidebar) : undefined,
372
- feedBlocks: globalThis.Array.isArray(object?.feedBlocks)
373
- ? object.feedBlocks.map((e) => FeedBlock.fromJSON(e))
374
- : globalThis.Array.isArray(object?.feed_blocks)
375
- ? object.feed_blocks.map((e) => FeedBlock.fromJSON(e))
376
- : [],
377
- feedLines: globalThis.Array.isArray(object?.feedLines)
378
- ? object.feedLines.map((e) => globalThis.String(e))
379
- : globalThis.Array.isArray(object?.feed_lines)
380
- ? object.feed_lines.map((e) => globalThis.String(e))
381
- : [],
382
- dags: globalThis.Array.isArray(object?.dags)
383
- ? object.dags.map((e) => DagRunSnapshot.fromJSON(e))
384
- : [],
385
- subagents: globalThis.Array.isArray(object?.subagents)
386
- ? object.subagents.map((e) => SubagentJobSnapshot.fromJSON(e))
387
- : [],
388
- tuiMaxFeedLines: isSet(object.tuiMaxFeedLines)
389
- ? globalThis.Number(object.tuiMaxFeedLines)
390
- : isSet(object.tui_max_feed_lines)
391
- ? globalThis.Number(object.tui_max_feed_lines)
392
- : undefined,
393
- contextUsage: isSet(object.contextUsage)
394
- ? ContextUsage.fromJSON(object.contextUsage)
395
- : isSet(object.context_usage)
396
- ? ContextUsage.fromJSON(object.context_usage)
397
- : undefined,
398
- feedLinesBase: isSet(object.feedLinesBase)
399
- ? globalThis.String(object.feedLinesBase)
400
- : isSet(object.feed_lines_base)
401
- ? globalThis.String(object.feed_lines_base)
402
- : "0",
403
- feedBlocksBase: isSet(object.feedBlocksBase)
404
- ? globalThis.String(object.feedBlocksBase)
405
- : isSet(object.feed_blocks_base)
406
- ? globalThis.String(object.feed_blocks_base)
407
- : "0",
408
- feedBlockPatches: globalThis.Array.isArray(object?.feedBlockPatches)
409
- ? object.feedBlockPatches.map((e) => FeedBlockPatch.fromJSON(e))
410
- : globalThis.Array.isArray(object?.feed_block_patches)
411
- ? object.feed_block_patches.map((e) => FeedBlockPatch.fromJSON(e))
412
- : [],
413
- extensions: isSet(object.extensions) ? ExtensionSnapshot.fromJSON(object.extensions) : undefined,
414
- sessionContextUsage: isSet(object.sessionContextUsage)
415
- ? ContextUsage.fromJSON(object.sessionContextUsage)
416
- : isSet(object.session_context_usage)
417
- ? ContextUsage.fromJSON(object.session_context_usage)
418
- : undefined,
419
- thinkingLevel: isSet(object.thinkingLevel)
420
- ? globalThis.String(object.thinkingLevel)
421
- : isSet(object.thinking_level)
422
- ? globalThis.String(object.thinking_level)
423
- : "",
424
- };
425
- },
426
- toJSON(message) {
427
- const obj = {};
428
- if (message.sessionId !== "") {
429
- obj.sessionId = message.sessionId;
430
- }
431
- if (message.model !== "") {
432
- obj.model = message.model;
433
- }
434
- if (message.modelCatalog?.length) {
435
- obj.modelCatalog = message.modelCatalog.map((e) => ProviderGroup.toJSON(e));
436
- }
437
- if (message.cwd !== "") {
438
- obj.cwd = message.cwd;
439
- }
440
- if (message.busy !== false) {
441
- obj.busy = message.busy;
442
- }
443
- if (message.queuedCount !== 0) {
444
- obj.queuedCount = Math.round(message.queuedCount);
445
- }
446
- if (message.latestTriggerPoll !== undefined) {
447
- obj.latestTriggerPoll = TriggerPollStatus.toJSON(message.latestTriggerPoll);
448
- }
449
- if (message.goal !== undefined) {
450
- obj.goal = GoalSnapshot.toJSON(message.goal);
451
- }
452
- if (message.controlPlanePrompt !== undefined) {
453
- obj.controlPlanePrompt = ControlPlanePromptSnapshot.toJSON(message.controlPlanePrompt);
454
- }
455
- if (message.sidebar !== undefined) {
456
- obj.sidebar = SidebarSnapshot.toJSON(message.sidebar);
457
- }
458
- if (message.feedBlocks?.length) {
459
- obj.feedBlocks = message.feedBlocks.map((e) => FeedBlock.toJSON(e));
460
- }
461
- if (message.feedLines?.length) {
462
- obj.feedLines = message.feedLines;
463
- }
464
- if (message.dags?.length) {
465
- obj.dags = message.dags.map((e) => DagRunSnapshot.toJSON(e));
466
- }
467
- if (message.subagents?.length) {
468
- obj.subagents = message.subagents.map((e) => SubagentJobSnapshot.toJSON(e));
469
- }
470
- if (message.tuiMaxFeedLines !== undefined) {
471
- obj.tuiMaxFeedLines = Math.round(message.tuiMaxFeedLines);
472
- }
473
- if (message.contextUsage !== undefined) {
474
- obj.contextUsage = ContextUsage.toJSON(message.contextUsage);
475
- }
476
- if (message.feedLinesBase !== "0") {
477
- obj.feedLinesBase = message.feedLinesBase;
478
- }
479
- if (message.feedBlocksBase !== "0") {
480
- obj.feedBlocksBase = message.feedBlocksBase;
481
- }
482
- if (message.feedBlockPatches?.length) {
483
- obj.feedBlockPatches = message.feedBlockPatches.map((e) => FeedBlockPatch.toJSON(e));
484
- }
485
- if (message.extensions !== undefined) {
486
- obj.extensions = ExtensionSnapshot.toJSON(message.extensions);
487
- }
488
- if (message.sessionContextUsage !== undefined) {
489
- obj.sessionContextUsage = ContextUsage.toJSON(message.sessionContextUsage);
490
- }
491
- if (message.thinkingLevel !== "") {
492
- obj.thinkingLevel = message.thinkingLevel;
493
- }
494
- return obj;
495
- },
496
- create(base) {
497
- return SessionState.fromPartial(base ?? {});
498
- },
499
- fromPartial(object) {
500
- const message = createBaseSessionState();
501
- message.sessionId = object.sessionId ?? "";
502
- message.model = object.model ?? "";
503
- message.modelCatalog = object.modelCatalog?.map((e) => ProviderGroup.fromPartial(e)) || [];
504
- message.cwd = object.cwd ?? "";
505
- message.busy = object.busy ?? false;
506
- message.queuedCount = object.queuedCount ?? 0;
507
- message.latestTriggerPoll = (object.latestTriggerPoll !== undefined && object.latestTriggerPoll !== null)
508
- ? TriggerPollStatus.fromPartial(object.latestTriggerPoll)
509
- : undefined;
510
- message.goal = (object.goal !== undefined && object.goal !== null)
511
- ? GoalSnapshot.fromPartial(object.goal)
512
- : undefined;
513
- message.controlPlanePrompt = (object.controlPlanePrompt !== undefined && object.controlPlanePrompt !== null)
514
- ? ControlPlanePromptSnapshot.fromPartial(object.controlPlanePrompt)
515
- : undefined;
516
- message.sidebar = (object.sidebar !== undefined && object.sidebar !== null)
517
- ? SidebarSnapshot.fromPartial(object.sidebar)
518
- : undefined;
519
- message.feedBlocks = object.feedBlocks?.map((e) => FeedBlock.fromPartial(e)) || [];
520
- message.feedLines = object.feedLines?.map((e) => e) || [];
521
- message.dags = object.dags?.map((e) => DagRunSnapshot.fromPartial(e)) || [];
522
- message.subagents = object.subagents?.map((e) => SubagentJobSnapshot.fromPartial(e)) || [];
523
- message.tuiMaxFeedLines = object.tuiMaxFeedLines ?? undefined;
524
- message.contextUsage = (object.contextUsage !== undefined && object.contextUsage !== null)
525
- ? ContextUsage.fromPartial(object.contextUsage)
526
- : undefined;
527
- message.feedLinesBase = object.feedLinesBase ?? "0";
528
- message.feedBlocksBase = object.feedBlocksBase ?? "0";
529
- message.feedBlockPatches = object.feedBlockPatches?.map((e) => FeedBlockPatch.fromPartial(e)) || [];
530
- message.extensions = (object.extensions !== undefined && object.extensions !== null)
531
- ? ExtensionSnapshot.fromPartial(object.extensions)
532
- : undefined;
533
- message.sessionContextUsage = (object.sessionContextUsage !== undefined && object.sessionContextUsage !== null)
534
- ? ContextUsage.fromPartial(object.sessionContextUsage)
535
- : undefined;
536
- message.thinkingLevel = object.thinkingLevel ?? "";
537
- return message;
538
- },
539
- };
540
75
  function createBaseFeedBlockPatch() {
541
76
  return { index: "0", block: undefined };
542
77
  }
@@ -609,33 +144,45 @@ export const FeedBlockPatch = {
609
144
  };
610
145
  function createBaseContextUsage() {
611
146
  return {
612
- inputTokens: "0",
147
+ cachedTokens: "0",
148
+ newTokens: "0",
149
+ totalInputTokens: "0",
613
150
  outputTokens: "0",
614
- cacheReadTokens: "0",
615
151
  cacheWriteTokens: "0",
616
- totalTokens: "0",
152
+ providerCacheHitRate: undefined,
153
+ prefixCacheHitRate: undefined,
154
+ prefixHitTokens: undefined,
617
155
  contextWindow: 0,
618
156
  };
619
157
  }
620
158
  export const ContextUsage = {
621
159
  encode(message, writer = new BinaryWriter()) {
622
- if (message.inputTokens !== "0") {
623
- writer.uint32(8).uint64(message.inputTokens);
160
+ if (message.cachedTokens !== "0") {
161
+ writer.uint32(8).uint64(message.cachedTokens);
624
162
  }
625
- if (message.outputTokens !== "0") {
626
- writer.uint32(16).uint64(message.outputTokens);
163
+ if (message.newTokens !== "0") {
164
+ writer.uint32(16).uint64(message.newTokens);
165
+ }
166
+ if (message.totalInputTokens !== "0") {
167
+ writer.uint32(24).uint64(message.totalInputTokens);
627
168
  }
628
- if (message.cacheReadTokens !== "0") {
629
- writer.uint32(24).uint64(message.cacheReadTokens);
169
+ if (message.outputTokens !== "0") {
170
+ writer.uint32(32).uint64(message.outputTokens);
630
171
  }
631
172
  if (message.cacheWriteTokens !== "0") {
632
- writer.uint32(32).uint64(message.cacheWriteTokens);
173
+ writer.uint32(40).uint64(message.cacheWriteTokens);
174
+ }
175
+ if (message.providerCacheHitRate !== undefined) {
176
+ writer.uint32(49).double(message.providerCacheHitRate);
633
177
  }
634
- if (message.totalTokens !== "0") {
635
- writer.uint32(40).uint64(message.totalTokens);
178
+ if (message.prefixCacheHitRate !== undefined) {
179
+ writer.uint32(57).double(message.prefixCacheHitRate);
180
+ }
181
+ if (message.prefixHitTokens !== undefined) {
182
+ writer.uint32(64).uint64(message.prefixHitTokens);
636
183
  }
637
184
  if (message.contextWindow !== 0) {
638
- writer.uint32(48).uint32(message.contextWindow);
185
+ writer.uint32(72).uint32(message.contextWindow);
639
186
  }
640
187
  return writer;
641
188
  },
@@ -650,39 +197,60 @@ export const ContextUsage = {
650
197
  if (tag !== 8) {
651
198
  break;
652
199
  }
653
- message.inputTokens = reader.uint64().toString();
200
+ message.cachedTokens = reader.uint64().toString();
654
201
  continue;
655
202
  }
656
203
  case 2: {
657
204
  if (tag !== 16) {
658
205
  break;
659
206
  }
660
- message.outputTokens = reader.uint64().toString();
207
+ message.newTokens = reader.uint64().toString();
661
208
  continue;
662
209
  }
663
210
  case 3: {
664
211
  if (tag !== 24) {
665
212
  break;
666
213
  }
667
- message.cacheReadTokens = reader.uint64().toString();
214
+ message.totalInputTokens = reader.uint64().toString();
668
215
  continue;
669
216
  }
670
217
  case 4: {
671
218
  if (tag !== 32) {
672
219
  break;
673
220
  }
674
- message.cacheWriteTokens = reader.uint64().toString();
221
+ message.outputTokens = reader.uint64().toString();
675
222
  continue;
676
223
  }
677
224
  case 5: {
678
225
  if (tag !== 40) {
679
226
  break;
680
227
  }
681
- message.totalTokens = reader.uint64().toString();
228
+ message.cacheWriteTokens = reader.uint64().toString();
682
229
  continue;
683
230
  }
684
231
  case 6: {
685
- if (tag !== 48) {
232
+ if (tag !== 49) {
233
+ break;
234
+ }
235
+ message.providerCacheHitRate = reader.double();
236
+ continue;
237
+ }
238
+ case 7: {
239
+ if (tag !== 57) {
240
+ break;
241
+ }
242
+ message.prefixCacheHitRate = reader.double();
243
+ continue;
244
+ }
245
+ case 8: {
246
+ if (tag !== 64) {
247
+ break;
248
+ }
249
+ message.prefixHitTokens = reader.uint64().toString();
250
+ continue;
251
+ }
252
+ case 9: {
253
+ if (tag !== 72) {
686
254
  break;
687
255
  }
688
256
  message.contextWindow = reader.uint32();
@@ -698,31 +266,46 @@ export const ContextUsage = {
698
266
  },
699
267
  fromJSON(object) {
700
268
  return {
701
- inputTokens: isSet(object.inputTokens)
702
- ? globalThis.String(object.inputTokens)
703
- : isSet(object.input_tokens)
704
- ? globalThis.String(object.input_tokens)
269
+ cachedTokens: isSet(object.cachedTokens)
270
+ ? globalThis.String(object.cachedTokens)
271
+ : isSet(object.cached_tokens)
272
+ ? globalThis.String(object.cached_tokens)
273
+ : "0",
274
+ newTokens: isSet(object.newTokens)
275
+ ? globalThis.String(object.newTokens)
276
+ : isSet(object.new_tokens)
277
+ ? globalThis.String(object.new_tokens)
278
+ : "0",
279
+ totalInputTokens: isSet(object.totalInputTokens)
280
+ ? globalThis.String(object.totalInputTokens)
281
+ : isSet(object.total_input_tokens)
282
+ ? globalThis.String(object.total_input_tokens)
705
283
  : "0",
706
284
  outputTokens: isSet(object.outputTokens)
707
285
  ? globalThis.String(object.outputTokens)
708
286
  : isSet(object.output_tokens)
709
287
  ? globalThis.String(object.output_tokens)
710
288
  : "0",
711
- cacheReadTokens: isSet(object.cacheReadTokens)
712
- ? globalThis.String(object.cacheReadTokens)
713
- : isSet(object.cache_read_tokens)
714
- ? globalThis.String(object.cache_read_tokens)
715
- : "0",
716
289
  cacheWriteTokens: isSet(object.cacheWriteTokens)
717
290
  ? globalThis.String(object.cacheWriteTokens)
718
291
  : isSet(object.cache_write_tokens)
719
292
  ? globalThis.String(object.cache_write_tokens)
720
293
  : "0",
721
- totalTokens: isSet(object.totalTokens)
722
- ? globalThis.String(object.totalTokens)
723
- : isSet(object.total_tokens)
724
- ? globalThis.String(object.total_tokens)
725
- : "0",
294
+ providerCacheHitRate: isSet(object.providerCacheHitRate)
295
+ ? globalThis.Number(object.providerCacheHitRate)
296
+ : isSet(object.provider_cache_hit_rate)
297
+ ? globalThis.Number(object.provider_cache_hit_rate)
298
+ : undefined,
299
+ prefixCacheHitRate: isSet(object.prefixCacheHitRate)
300
+ ? globalThis.Number(object.prefixCacheHitRate)
301
+ : isSet(object.prefix_cache_hit_rate)
302
+ ? globalThis.Number(object.prefix_cache_hit_rate)
303
+ : undefined,
304
+ prefixHitTokens: isSet(object.prefixHitTokens)
305
+ ? globalThis.String(object.prefixHitTokens)
306
+ : isSet(object.prefix_hit_tokens)
307
+ ? globalThis.String(object.prefix_hit_tokens)
308
+ : undefined,
726
309
  contextWindow: isSet(object.contextWindow)
727
310
  ? globalThis.Number(object.contextWindow)
728
311
  : isSet(object.context_window)
@@ -732,20 +315,29 @@ export const ContextUsage = {
732
315
  },
733
316
  toJSON(message) {
734
317
  const obj = {};
735
- if (message.inputTokens !== "0") {
736
- obj.inputTokens = message.inputTokens;
318
+ if (message.cachedTokens !== "0") {
319
+ obj.cachedTokens = message.cachedTokens;
320
+ }
321
+ if (message.newTokens !== "0") {
322
+ obj.newTokens = message.newTokens;
323
+ }
324
+ if (message.totalInputTokens !== "0") {
325
+ obj.totalInputTokens = message.totalInputTokens;
737
326
  }
738
327
  if (message.outputTokens !== "0") {
739
328
  obj.outputTokens = message.outputTokens;
740
329
  }
741
- if (message.cacheReadTokens !== "0") {
742
- obj.cacheReadTokens = message.cacheReadTokens;
743
- }
744
330
  if (message.cacheWriteTokens !== "0") {
745
331
  obj.cacheWriteTokens = message.cacheWriteTokens;
746
332
  }
747
- if (message.totalTokens !== "0") {
748
- obj.totalTokens = message.totalTokens;
333
+ if (message.providerCacheHitRate !== undefined) {
334
+ obj.providerCacheHitRate = message.providerCacheHitRate;
335
+ }
336
+ if (message.prefixCacheHitRate !== undefined) {
337
+ obj.prefixCacheHitRate = message.prefixCacheHitRate;
338
+ }
339
+ if (message.prefixHitTokens !== undefined) {
340
+ obj.prefixHitTokens = message.prefixHitTokens;
749
341
  }
750
342
  if (message.contextWindow !== 0) {
751
343
  obj.contextWindow = Math.round(message.contextWindow);
@@ -757,11 +349,14 @@ export const ContextUsage = {
757
349
  },
758
350
  fromPartial(object) {
759
351
  const message = createBaseContextUsage();
760
- message.inputTokens = object.inputTokens ?? "0";
352
+ message.cachedTokens = object.cachedTokens ?? "0";
353
+ message.newTokens = object.newTokens ?? "0";
354
+ message.totalInputTokens = object.totalInputTokens ?? "0";
761
355
  message.outputTokens = object.outputTokens ?? "0";
762
- message.cacheReadTokens = object.cacheReadTokens ?? "0";
763
356
  message.cacheWriteTokens = object.cacheWriteTokens ?? "0";
764
- message.totalTokens = object.totalTokens ?? "0";
357
+ message.providerCacheHitRate = object.providerCacheHitRate ?? undefined;
358
+ message.prefixCacheHitRate = object.prefixCacheHitRate ?? undefined;
359
+ message.prefixHitTokens = object.prefixHitTokens ?? undefined;
765
360
  message.contextWindow = object.contextWindow ?? 0;
766
361
  return message;
767
362
  },
@@ -2407,15 +2002,18 @@ export const FeedBlock = {
2407
2002
  case "thinking":
2408
2003
  ThinkingBlock.encode(message.kind.thinking, writer.uint32(26).fork()).join();
2409
2004
  break;
2410
- case "tool":
2411
- ToolBlock.encode(message.kind.tool, writer.uint32(34).fork()).join();
2412
- break;
2413
2005
  case "toolResult":
2414
2006
  ToolResultBlock.encode(message.kind.toolResult, writer.uint32(42).fork()).join();
2415
2007
  break;
2416
2008
  case "plain":
2417
2009
  PlainBlock.encode(message.kind.plain, writer.uint32(50).fork()).join();
2418
2010
  break;
2011
+ case "toolCall":
2012
+ ToolCallBlock.encode(message.kind.toolCall, writer.uint32(58).fork()).join();
2013
+ break;
2014
+ case "error":
2015
+ ErrorBlock.encode(message.kind.error, writer.uint32(66).fork()).join();
2016
+ break;
2419
2017
  }
2420
2018
  return writer;
2421
2019
  },
@@ -2447,13 +2045,6 @@ export const FeedBlock = {
2447
2045
  message.kind = { $case: "thinking", thinking: ThinkingBlock.decode(reader, reader.uint32()) };
2448
2046
  continue;
2449
2047
  }
2450
- case 4: {
2451
- if (tag !== 34) {
2452
- break;
2453
- }
2454
- message.kind = { $case: "tool", tool: ToolBlock.decode(reader, reader.uint32()) };
2455
- continue;
2456
- }
2457
2048
  case 5: {
2458
2049
  if (tag !== 42) {
2459
2050
  break;
@@ -2468,6 +2059,20 @@ export const FeedBlock = {
2468
2059
  message.kind = { $case: "plain", plain: PlainBlock.decode(reader, reader.uint32()) };
2469
2060
  continue;
2470
2061
  }
2062
+ case 7: {
2063
+ if (tag !== 58) {
2064
+ break;
2065
+ }
2066
+ message.kind = { $case: "toolCall", toolCall: ToolCallBlock.decode(reader, reader.uint32()) };
2067
+ continue;
2068
+ }
2069
+ case 8: {
2070
+ if (tag !== 66) {
2071
+ break;
2072
+ }
2073
+ message.kind = { $case: "error", error: ErrorBlock.decode(reader, reader.uint32()) };
2074
+ continue;
2075
+ }
2471
2076
  }
2472
2077
  if ((tag & 7) === 4 || tag === 0) {
2473
2078
  break;
@@ -2484,15 +2089,19 @@ export const FeedBlock = {
2484
2089
  ? { $case: "assistant", assistant: AssistantBlock.fromJSON(object.assistant) }
2485
2090
  : isSet(object.thinking)
2486
2091
  ? { $case: "thinking", thinking: ThinkingBlock.fromJSON(object.thinking) }
2487
- : isSet(object.tool)
2488
- ? { $case: "tool", tool: ToolBlock.fromJSON(object.tool) }
2489
- : isSet(object.toolResult)
2490
- ? { $case: "toolResult", toolResult: ToolResultBlock.fromJSON(object.toolResult) }
2491
- : isSet(object.tool_result)
2492
- ? { $case: "toolResult", toolResult: ToolResultBlock.fromJSON(object.tool_result) }
2493
- : isSet(object.plain)
2494
- ? { $case: "plain", plain: PlainBlock.fromJSON(object.plain) }
2495
- : undefined,
2092
+ : isSet(object.toolResult)
2093
+ ? { $case: "toolResult", toolResult: ToolResultBlock.fromJSON(object.toolResult) }
2094
+ : isSet(object.tool_result)
2095
+ ? { $case: "toolResult", toolResult: ToolResultBlock.fromJSON(object.tool_result) }
2096
+ : isSet(object.plain)
2097
+ ? { $case: "plain", plain: PlainBlock.fromJSON(object.plain) }
2098
+ : isSet(object.toolCall)
2099
+ ? { $case: "toolCall", toolCall: ToolCallBlock.fromJSON(object.toolCall) }
2100
+ : isSet(object.tool_call)
2101
+ ? { $case: "toolCall", toolCall: ToolCallBlock.fromJSON(object.tool_call) }
2102
+ : isSet(object.error)
2103
+ ? { $case: "error", error: ErrorBlock.fromJSON(object.error) }
2104
+ : undefined,
2496
2105
  };
2497
2106
  },
2498
2107
  toJSON(message) {
@@ -2506,15 +2115,18 @@ export const FeedBlock = {
2506
2115
  else if (message.kind?.$case === "thinking") {
2507
2116
  obj.thinking = ThinkingBlock.toJSON(message.kind.thinking);
2508
2117
  }
2509
- else if (message.kind?.$case === "tool") {
2510
- obj.tool = ToolBlock.toJSON(message.kind.tool);
2511
- }
2512
2118
  else if (message.kind?.$case === "toolResult") {
2513
2119
  obj.toolResult = ToolResultBlock.toJSON(message.kind.toolResult);
2514
2120
  }
2515
2121
  else if (message.kind?.$case === "plain") {
2516
2122
  obj.plain = PlainBlock.toJSON(message.kind.plain);
2517
2123
  }
2124
+ else if (message.kind?.$case === "toolCall") {
2125
+ obj.toolCall = ToolCallBlock.toJSON(message.kind.toolCall);
2126
+ }
2127
+ else if (message.kind?.$case === "error") {
2128
+ obj.error = ErrorBlock.toJSON(message.kind.error);
2129
+ }
2518
2130
  return obj;
2519
2131
  },
2520
2132
  create(base) {
@@ -2541,12 +2153,6 @@ export const FeedBlock = {
2541
2153
  }
2542
2154
  break;
2543
2155
  }
2544
- case "tool": {
2545
- if (object.kind?.tool !== undefined && object.kind?.tool !== null) {
2546
- message.kind = { $case: "tool", tool: ToolBlock.fromPartial(object.kind.tool) };
2547
- }
2548
- break;
2549
- }
2550
2156
  case "toolResult": {
2551
2157
  if (object.kind?.toolResult !== undefined && object.kind?.toolResult !== null) {
2552
2158
  message.kind = { $case: "toolResult", toolResult: ToolResultBlock.fromPartial(object.kind.toolResult) };
@@ -2559,6 +2165,18 @@ export const FeedBlock = {
2559
2165
  }
2560
2166
  break;
2561
2167
  }
2168
+ case "toolCall": {
2169
+ if (object.kind?.toolCall !== undefined && object.kind?.toolCall !== null) {
2170
+ message.kind = { $case: "toolCall", toolCall: ToolCallBlock.fromPartial(object.kind.toolCall) };
2171
+ }
2172
+ break;
2173
+ }
2174
+ case "error": {
2175
+ if (object.kind?.error !== undefined && object.kind?.error !== null) {
2176
+ message.kind = { $case: "error", error: ErrorBlock.fromPartial(object.kind.error) };
2177
+ }
2178
+ break;
2179
+ }
2562
2180
  }
2563
2181
  return message;
2564
2182
  },
@@ -2708,14 +2326,88 @@ export const ThinkingBlock = {
2708
2326
  writer.uint32(10).string(message.text);
2709
2327
  }
2710
2328
  if (message.timestamp !== undefined) {
2711
- writer.uint32(18).string(message.timestamp);
2329
+ writer.uint32(18).string(message.timestamp);
2330
+ }
2331
+ return writer;
2332
+ },
2333
+ decode(input, length) {
2334
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
2335
+ const end = length === undefined ? reader.len : reader.pos + length;
2336
+ const message = createBaseThinkingBlock();
2337
+ while (reader.pos < end) {
2338
+ const tag = reader.uint32();
2339
+ switch (tag >>> 3) {
2340
+ case 1: {
2341
+ if (tag !== 10) {
2342
+ break;
2343
+ }
2344
+ message.text = reader.string();
2345
+ continue;
2346
+ }
2347
+ case 2: {
2348
+ if (tag !== 18) {
2349
+ break;
2350
+ }
2351
+ message.timestamp = reader.string();
2352
+ continue;
2353
+ }
2354
+ }
2355
+ if ((tag & 7) === 4 || tag === 0) {
2356
+ break;
2357
+ }
2358
+ reader.skip(tag & 7);
2359
+ }
2360
+ return message;
2361
+ },
2362
+ fromJSON(object) {
2363
+ return {
2364
+ text: isSet(object.text) ? globalThis.String(object.text) : "",
2365
+ timestamp: isSet(object.timestamp) ? globalThis.String(object.timestamp) : undefined,
2366
+ };
2367
+ },
2368
+ toJSON(message) {
2369
+ const obj = {};
2370
+ if (message.text !== "") {
2371
+ obj.text = message.text;
2372
+ }
2373
+ if (message.timestamp !== undefined) {
2374
+ obj.timestamp = message.timestamp;
2375
+ }
2376
+ return obj;
2377
+ },
2378
+ create(base) {
2379
+ return ThinkingBlock.fromPartial(base ?? {});
2380
+ },
2381
+ fromPartial(object) {
2382
+ const message = createBaseThinkingBlock();
2383
+ message.text = object.text ?? "";
2384
+ message.timestamp = object.timestamp ?? undefined;
2385
+ return message;
2386
+ },
2387
+ };
2388
+ function createBaseToolCallBlock() {
2389
+ return { name: "", args: "", metadata: undefined, timestamp: undefined };
2390
+ }
2391
+ export const ToolCallBlock = {
2392
+ encode(message, writer = new BinaryWriter()) {
2393
+ if (message.name !== "") {
2394
+ writer.uint32(10).string(message.name);
2395
+ }
2396
+ if (message.args !== "") {
2397
+ writer.uint32(18).string(message.args);
2398
+ }
2399
+ if (message.metadata !== undefined) {
2400
+ writer.uint32(26).string(message.metadata);
2401
+ }
2402
+ if (message.timestamp !== undefined) {
2403
+ writer.uint32(34).string(message.timestamp);
2712
2404
  }
2713
2405
  return writer;
2714
2406
  },
2715
2407
  decode(input, length) {
2716
2408
  const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
2717
2409
  const end = length === undefined ? reader.len : reader.pos + length;
2718
- const message = createBaseThinkingBlock();
2410
+ const message = createBaseToolCallBlock();
2719
2411
  while (reader.pos < end) {
2720
2412
  const tag = reader.uint32();
2721
2413
  switch (tag >>> 3) {
@@ -2723,13 +2415,27 @@ export const ThinkingBlock = {
2723
2415
  if (tag !== 10) {
2724
2416
  break;
2725
2417
  }
2726
- message.text = reader.string();
2418
+ message.name = reader.string();
2727
2419
  continue;
2728
2420
  }
2729
2421
  case 2: {
2730
2422
  if (tag !== 18) {
2731
2423
  break;
2732
2424
  }
2425
+ message.args = reader.string();
2426
+ continue;
2427
+ }
2428
+ case 3: {
2429
+ if (tag !== 26) {
2430
+ break;
2431
+ }
2432
+ message.metadata = reader.string();
2433
+ continue;
2434
+ }
2435
+ case 4: {
2436
+ if (tag !== 34) {
2437
+ break;
2438
+ }
2733
2439
  message.timestamp = reader.string();
2734
2440
  continue;
2735
2441
  }
@@ -2743,14 +2449,22 @@ export const ThinkingBlock = {
2743
2449
  },
2744
2450
  fromJSON(object) {
2745
2451
  return {
2746
- text: isSet(object.text) ? globalThis.String(object.text) : "",
2452
+ name: isSet(object.name) ? globalThis.String(object.name) : "",
2453
+ args: isSet(object.args) ? globalThis.String(object.args) : "",
2454
+ metadata: isSet(object.metadata) ? globalThis.String(object.metadata) : undefined,
2747
2455
  timestamp: isSet(object.timestamp) ? globalThis.String(object.timestamp) : undefined,
2748
2456
  };
2749
2457
  },
2750
2458
  toJSON(message) {
2751
2459
  const obj = {};
2752
- if (message.text !== "") {
2753
- obj.text = message.text;
2460
+ if (message.name !== "") {
2461
+ obj.name = message.name;
2462
+ }
2463
+ if (message.args !== "") {
2464
+ obj.args = message.args;
2465
+ }
2466
+ if (message.metadata !== undefined) {
2467
+ obj.metadata = message.metadata;
2754
2468
  }
2755
2469
  if (message.timestamp !== undefined) {
2756
2470
  obj.timestamp = message.timestamp;
@@ -2758,35 +2472,40 @@ export const ThinkingBlock = {
2758
2472
  return obj;
2759
2473
  },
2760
2474
  create(base) {
2761
- return ThinkingBlock.fromPartial(base ?? {});
2475
+ return ToolCallBlock.fromPartial(base ?? {});
2762
2476
  },
2763
2477
  fromPartial(object) {
2764
- const message = createBaseThinkingBlock();
2765
- message.text = object.text ?? "";
2478
+ const message = createBaseToolCallBlock();
2479
+ message.name = object.name ?? "";
2480
+ message.args = object.args ?? "";
2481
+ message.metadata = object.metadata ?? undefined;
2766
2482
  message.timestamp = object.timestamp ?? undefined;
2767
2483
  return message;
2768
2484
  },
2769
2485
  };
2770
- function createBaseToolBlock() {
2771
- return { name: "", args: "", timestamp: undefined };
2486
+ function createBaseErrorBlock() {
2487
+ return { message: "", code: undefined, recoverable: false, timestamp: undefined };
2772
2488
  }
2773
- export const ToolBlock = {
2489
+ export const ErrorBlock = {
2774
2490
  encode(message, writer = new BinaryWriter()) {
2775
- if (message.name !== "") {
2776
- writer.uint32(10).string(message.name);
2491
+ if (message.message !== "") {
2492
+ writer.uint32(10).string(message.message);
2777
2493
  }
2778
- if (message.args !== "") {
2779
- writer.uint32(18).string(message.args);
2494
+ if (message.code !== undefined) {
2495
+ writer.uint32(18).string(message.code);
2496
+ }
2497
+ if (message.recoverable !== false) {
2498
+ writer.uint32(24).bool(message.recoverable);
2780
2499
  }
2781
2500
  if (message.timestamp !== undefined) {
2782
- writer.uint32(26).string(message.timestamp);
2501
+ writer.uint32(34).string(message.timestamp);
2783
2502
  }
2784
2503
  return writer;
2785
2504
  },
2786
2505
  decode(input, length) {
2787
2506
  const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
2788
2507
  const end = length === undefined ? reader.len : reader.pos + length;
2789
- const message = createBaseToolBlock();
2508
+ const message = createBaseErrorBlock();
2790
2509
  while (reader.pos < end) {
2791
2510
  const tag = reader.uint32();
2792
2511
  switch (tag >>> 3) {
@@ -2794,18 +2513,25 @@ export const ToolBlock = {
2794
2513
  if (tag !== 10) {
2795
2514
  break;
2796
2515
  }
2797
- message.name = reader.string();
2516
+ message.message = reader.string();
2798
2517
  continue;
2799
2518
  }
2800
2519
  case 2: {
2801
2520
  if (tag !== 18) {
2802
2521
  break;
2803
2522
  }
2804
- message.args = reader.string();
2523
+ message.code = reader.string();
2805
2524
  continue;
2806
2525
  }
2807
2526
  case 3: {
2808
- if (tag !== 26) {
2527
+ if (tag !== 24) {
2528
+ break;
2529
+ }
2530
+ message.recoverable = reader.bool();
2531
+ continue;
2532
+ }
2533
+ case 4: {
2534
+ if (tag !== 34) {
2809
2535
  break;
2810
2536
  }
2811
2537
  message.timestamp = reader.string();
@@ -2821,18 +2547,22 @@ export const ToolBlock = {
2821
2547
  },
2822
2548
  fromJSON(object) {
2823
2549
  return {
2824
- name: isSet(object.name) ? globalThis.String(object.name) : "",
2825
- args: isSet(object.args) ? globalThis.String(object.args) : "",
2550
+ message: isSet(object.message) ? globalThis.String(object.message) : "",
2551
+ code: isSet(object.code) ? globalThis.String(object.code) : undefined,
2552
+ recoverable: isSet(object.recoverable) ? globalThis.Boolean(object.recoverable) : false,
2826
2553
  timestamp: isSet(object.timestamp) ? globalThis.String(object.timestamp) : undefined,
2827
2554
  };
2828
2555
  },
2829
2556
  toJSON(message) {
2830
2557
  const obj = {};
2831
- if (message.name !== "") {
2832
- obj.name = message.name;
2558
+ if (message.message !== "") {
2559
+ obj.message = message.message;
2833
2560
  }
2834
- if (message.args !== "") {
2835
- obj.args = message.args;
2561
+ if (message.code !== undefined) {
2562
+ obj.code = message.code;
2563
+ }
2564
+ if (message.recoverable !== false) {
2565
+ obj.recoverable = message.recoverable;
2836
2566
  }
2837
2567
  if (message.timestamp !== undefined) {
2838
2568
  obj.timestamp = message.timestamp;
@@ -2840,12 +2570,13 @@ export const ToolBlock = {
2840
2570
  return obj;
2841
2571
  },
2842
2572
  create(base) {
2843
- return ToolBlock.fromPartial(base ?? {});
2573
+ return ErrorBlock.fromPartial(base ?? {});
2844
2574
  },
2845
2575
  fromPartial(object) {
2846
- const message = createBaseToolBlock();
2847
- message.name = object.name ?? "";
2848
- message.args = object.args ?? "";
2576
+ const message = createBaseErrorBlock();
2577
+ message.message = object.message ?? "";
2578
+ message.code = object.code ?? undefined;
2579
+ message.recoverable = object.recoverable ?? false;
2849
2580
  message.timestamp = object.timestamp ?? undefined;
2850
2581
  return message;
2851
2582
  },
@@ -3035,6 +2766,7 @@ function createBaseSessionSummary() {
3035
2766
  preview: undefined,
3036
2767
  metadata: {},
3037
2768
  lastActivityAtRfc3339: undefined,
2769
+ treePrefix: "",
3038
2770
  };
3039
2771
  }
3040
2772
  export const SessionSummary = {
@@ -3078,6 +2810,9 @@ export const SessionSummary = {
3078
2810
  if (message.lastActivityAtRfc3339 !== undefined) {
3079
2811
  writer.uint32(98).string(message.lastActivityAtRfc3339);
3080
2812
  }
2813
+ if (message.treePrefix !== "") {
2814
+ writer.uint32(114).string(message.treePrefix);
2815
+ }
3081
2816
  return writer;
3082
2817
  },
3083
2818
  decode(input, length) {
@@ -3181,6 +2916,13 @@ export const SessionSummary = {
3181
2916
  message.lastActivityAtRfc3339 = reader.string();
3182
2917
  continue;
3183
2918
  }
2919
+ case 14: {
2920
+ if (tag !== 114) {
2921
+ break;
2922
+ }
2923
+ message.treePrefix = reader.string();
2924
+ continue;
2925
+ }
3184
2926
  }
3185
2927
  if ((tag & 7) === 4 || tag === 0) {
3186
2928
  break;
@@ -3233,6 +2975,11 @@ export const SessionSummary = {
3233
2975
  : isSet(object.last_activity_at_rfc3339)
3234
2976
  ? globalThis.String(object.last_activity_at_rfc3339)
3235
2977
  : undefined,
2978
+ treePrefix: isSet(object.treePrefix)
2979
+ ? globalThis.String(object.treePrefix)
2980
+ : isSet(object.tree_prefix)
2981
+ ? globalThis.String(object.tree_prefix)
2982
+ : "",
3236
2983
  };
3237
2984
  },
3238
2985
  toJSON(message) {
@@ -3282,6 +3029,9 @@ export const SessionSummary = {
3282
3029
  if (message.lastActivityAtRfc3339 !== undefined) {
3283
3030
  obj.lastActivityAtRfc3339 = message.lastActivityAtRfc3339;
3284
3031
  }
3032
+ if (message.treePrefix !== "") {
3033
+ obj.treePrefix = message.treePrefix;
3034
+ }
3285
3035
  return obj;
3286
3036
  },
3287
3037
  create(base) {
@@ -3307,6 +3057,7 @@ export const SessionSummary = {
3307
3057
  return acc;
3308
3058
  }, {});
3309
3059
  message.lastActivityAtRfc3339 = object.lastActivityAtRfc3339 ?? undefined;
3060
+ message.treePrefix = object.treePrefix ?? "";
3310
3061
  return message;
3311
3062
  },
3312
3063
  };
@@ -3838,6 +3589,7 @@ function createBaseSessionRuntime() {
3838
3589
  goal: undefined,
3839
3590
  controlPlanePrompt: undefined,
3840
3591
  extensions: undefined,
3592
+ systemContext: "",
3841
3593
  };
3842
3594
  }
3843
3595
  export const SessionRuntime = {
@@ -3877,6 +3629,9 @@ export const SessionRuntime = {
3877
3629
  if (message.extensions !== undefined) {
3878
3630
  ExtensionSnapshot.encode(message.extensions, writer.uint32(90).fork()).join();
3879
3631
  }
3632
+ if (message.systemContext !== "") {
3633
+ writer.uint32(98).string(message.systemContext);
3634
+ }
3880
3635
  return writer;
3881
3636
  },
3882
3637
  decode(input, length) {
@@ -3970,6 +3725,13 @@ export const SessionRuntime = {
3970
3725
  message.extensions = ExtensionSnapshot.decode(reader, reader.uint32());
3971
3726
  continue;
3972
3727
  }
3728
+ case 12: {
3729
+ if (tag !== 98) {
3730
+ break;
3731
+ }
3732
+ message.systemContext = reader.string();
3733
+ continue;
3734
+ }
3973
3735
  }
3974
3736
  if ((tag & 7) === 4 || tag === 0) {
3975
3737
  break;
@@ -4023,6 +3785,11 @@ export const SessionRuntime = {
4023
3785
  ? ControlPlanePromptSnapshot.fromJSON(object.control_plane_prompt)
4024
3786
  : undefined,
4025
3787
  extensions: isSet(object.extensions) ? ExtensionSnapshot.fromJSON(object.extensions) : undefined,
3788
+ systemContext: isSet(object.systemContext)
3789
+ ? globalThis.String(object.systemContext)
3790
+ : isSet(object.system_context)
3791
+ ? globalThis.String(object.system_context)
3792
+ : "",
4026
3793
  };
4027
3794
  },
4028
3795
  toJSON(message) {
@@ -4060,6 +3827,9 @@ export const SessionRuntime = {
4060
3827
  if (message.extensions !== undefined) {
4061
3828
  obj.extensions = ExtensionSnapshot.toJSON(message.extensions);
4062
3829
  }
3830
+ if (message.systemContext !== "") {
3831
+ obj.systemContext = message.systemContext;
3832
+ }
4063
3833
  return obj;
4064
3834
  },
4065
3835
  create(base) {
@@ -4092,6 +3862,7 @@ export const SessionRuntime = {
4092
3862
  message.extensions = (object.extensions !== undefined && object.extensions !== null)
4093
3863
  ? ExtensionSnapshot.fromPartial(object.extensions)
4094
3864
  : undefined;
3865
+ message.systemContext = object.systemContext ?? "";
4095
3866
  return message;
4096
3867
  },
4097
3868
  };
@@ -4636,6 +4407,222 @@ export const SessionSnapshot = {
4636
4407
  return message;
4637
4408
  },
4638
4409
  };
4410
+ function createBaseListSessionMessagesRequest() {
4411
+ return { sessionId: "", beforeEntryId: undefined, limit: 0 };
4412
+ }
4413
+ export const ListSessionMessagesRequest = {
4414
+ encode(message, writer = new BinaryWriter()) {
4415
+ if (message.sessionId !== "") {
4416
+ writer.uint32(10).string(message.sessionId);
4417
+ }
4418
+ if (message.beforeEntryId !== undefined) {
4419
+ writer.uint32(18).string(message.beforeEntryId);
4420
+ }
4421
+ if (message.limit !== 0) {
4422
+ writer.uint32(24).uint32(message.limit);
4423
+ }
4424
+ return writer;
4425
+ },
4426
+ decode(input, length) {
4427
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
4428
+ const end = length === undefined ? reader.len : reader.pos + length;
4429
+ const message = createBaseListSessionMessagesRequest();
4430
+ while (reader.pos < end) {
4431
+ const tag = reader.uint32();
4432
+ switch (tag >>> 3) {
4433
+ case 1: {
4434
+ if (tag !== 10) {
4435
+ break;
4436
+ }
4437
+ message.sessionId = reader.string();
4438
+ continue;
4439
+ }
4440
+ case 2: {
4441
+ if (tag !== 18) {
4442
+ break;
4443
+ }
4444
+ message.beforeEntryId = reader.string();
4445
+ continue;
4446
+ }
4447
+ case 3: {
4448
+ if (tag !== 24) {
4449
+ break;
4450
+ }
4451
+ message.limit = reader.uint32();
4452
+ continue;
4453
+ }
4454
+ }
4455
+ if ((tag & 7) === 4 || tag === 0) {
4456
+ break;
4457
+ }
4458
+ reader.skip(tag & 7);
4459
+ }
4460
+ return message;
4461
+ },
4462
+ fromJSON(object) {
4463
+ return {
4464
+ sessionId: isSet(object.sessionId)
4465
+ ? globalThis.String(object.sessionId)
4466
+ : isSet(object.session_id)
4467
+ ? globalThis.String(object.session_id)
4468
+ : "",
4469
+ beforeEntryId: isSet(object.beforeEntryId)
4470
+ ? globalThis.String(object.beforeEntryId)
4471
+ : isSet(object.before_entry_id)
4472
+ ? globalThis.String(object.before_entry_id)
4473
+ : undefined,
4474
+ limit: isSet(object.limit) ? globalThis.Number(object.limit) : 0,
4475
+ };
4476
+ },
4477
+ toJSON(message) {
4478
+ const obj = {};
4479
+ if (message.sessionId !== "") {
4480
+ obj.sessionId = message.sessionId;
4481
+ }
4482
+ if (message.beforeEntryId !== undefined) {
4483
+ obj.beforeEntryId = message.beforeEntryId;
4484
+ }
4485
+ if (message.limit !== 0) {
4486
+ obj.limit = Math.round(message.limit);
4487
+ }
4488
+ return obj;
4489
+ },
4490
+ create(base) {
4491
+ return ListSessionMessagesRequest.fromPartial(base ?? {});
4492
+ },
4493
+ fromPartial(object) {
4494
+ const message = createBaseListSessionMessagesRequest();
4495
+ message.sessionId = object.sessionId ?? "";
4496
+ message.beforeEntryId = object.beforeEntryId ?? undefined;
4497
+ message.limit = object.limit ?? 0;
4498
+ return message;
4499
+ },
4500
+ };
4501
+ function createBaseSessionMessagePage() {
4502
+ return { sessionId: "", blocks: [], nextBeforeEntryId: undefined, hasMore: false, total: "0" };
4503
+ }
4504
+ export const SessionMessagePage = {
4505
+ encode(message, writer = new BinaryWriter()) {
4506
+ if (message.sessionId !== "") {
4507
+ writer.uint32(10).string(message.sessionId);
4508
+ }
4509
+ for (const v of message.blocks) {
4510
+ FeedBlock.encode(v, writer.uint32(18).fork()).join();
4511
+ }
4512
+ if (message.nextBeforeEntryId !== undefined) {
4513
+ writer.uint32(26).string(message.nextBeforeEntryId);
4514
+ }
4515
+ if (message.hasMore !== false) {
4516
+ writer.uint32(32).bool(message.hasMore);
4517
+ }
4518
+ if (message.total !== "0") {
4519
+ writer.uint32(40).uint64(message.total);
4520
+ }
4521
+ return writer;
4522
+ },
4523
+ decode(input, length) {
4524
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
4525
+ const end = length === undefined ? reader.len : reader.pos + length;
4526
+ const message = createBaseSessionMessagePage();
4527
+ while (reader.pos < end) {
4528
+ const tag = reader.uint32();
4529
+ switch (tag >>> 3) {
4530
+ case 1: {
4531
+ if (tag !== 10) {
4532
+ break;
4533
+ }
4534
+ message.sessionId = reader.string();
4535
+ continue;
4536
+ }
4537
+ case 2: {
4538
+ if (tag !== 18) {
4539
+ break;
4540
+ }
4541
+ message.blocks.push(FeedBlock.decode(reader, reader.uint32()));
4542
+ continue;
4543
+ }
4544
+ case 3: {
4545
+ if (tag !== 26) {
4546
+ break;
4547
+ }
4548
+ message.nextBeforeEntryId = reader.string();
4549
+ continue;
4550
+ }
4551
+ case 4: {
4552
+ if (tag !== 32) {
4553
+ break;
4554
+ }
4555
+ message.hasMore = reader.bool();
4556
+ continue;
4557
+ }
4558
+ case 5: {
4559
+ if (tag !== 40) {
4560
+ break;
4561
+ }
4562
+ message.total = reader.uint64().toString();
4563
+ continue;
4564
+ }
4565
+ }
4566
+ if ((tag & 7) === 4 || tag === 0) {
4567
+ break;
4568
+ }
4569
+ reader.skip(tag & 7);
4570
+ }
4571
+ return message;
4572
+ },
4573
+ fromJSON(object) {
4574
+ return {
4575
+ sessionId: isSet(object.sessionId)
4576
+ ? globalThis.String(object.sessionId)
4577
+ : isSet(object.session_id)
4578
+ ? globalThis.String(object.session_id)
4579
+ : "",
4580
+ blocks: globalThis.Array.isArray(object?.blocks) ? object.blocks.map((e) => FeedBlock.fromJSON(e)) : [],
4581
+ nextBeforeEntryId: isSet(object.nextBeforeEntryId)
4582
+ ? globalThis.String(object.nextBeforeEntryId)
4583
+ : isSet(object.next_before_entry_id)
4584
+ ? globalThis.String(object.next_before_entry_id)
4585
+ : undefined,
4586
+ hasMore: isSet(object.hasMore)
4587
+ ? globalThis.Boolean(object.hasMore)
4588
+ : isSet(object.has_more)
4589
+ ? globalThis.Boolean(object.has_more)
4590
+ : false,
4591
+ total: isSet(object.total) ? globalThis.String(object.total) : "0",
4592
+ };
4593
+ },
4594
+ toJSON(message) {
4595
+ const obj = {};
4596
+ if (message.sessionId !== "") {
4597
+ obj.sessionId = message.sessionId;
4598
+ }
4599
+ if (message.blocks?.length) {
4600
+ obj.blocks = message.blocks.map((e) => FeedBlock.toJSON(e));
4601
+ }
4602
+ if (message.nextBeforeEntryId !== undefined) {
4603
+ obj.nextBeforeEntryId = message.nextBeforeEntryId;
4604
+ }
4605
+ if (message.hasMore !== false) {
4606
+ obj.hasMore = message.hasMore;
4607
+ }
4608
+ if (message.total !== "0") {
4609
+ obj.total = message.total;
4610
+ }
4611
+ return obj;
4612
+ },
4613
+ create(base) {
4614
+ return SessionMessagePage.fromPartial(base ?? {});
4615
+ },
4616
+ fromPartial(object) {
4617
+ const message = createBaseSessionMessagePage();
4618
+ message.sessionId = object.sessionId ?? "";
4619
+ message.blocks = object.blocks?.map((e) => FeedBlock.fromPartial(e)) || [];
4620
+ message.nextBeforeEntryId = object.nextBeforeEntryId ?? undefined;
4621
+ message.hasMore = object.hasMore ?? false;
4622
+ message.total = object.total ?? "0";
4623
+ return message;
4624
+ },
4625
+ };
4639
4626
  function createBaseCollapseSessionRequest() {
4640
4627
  return { sessionId: "", intoSessionId: undefined, title: undefined, summary: undefined };
4641
4628
  }
@@ -6601,20 +6588,7 @@ export const ClearCredentialRequest = {
6601
6588
  },
6602
6589
  };
6603
6590
  export const SessionServiceService = {
6604
- /**
6605
- * Full structured state (binary protobuf). Kept for compatibility; new
6606
- * clients should use GetSnapshot / GetHistory.
6607
- */
6608
- getState: {
6609
- path: "/theway.grpc.v1.SessionService/GetState",
6610
- requestStream: false,
6611
- responseStream: false,
6612
- requestSerialize: (value) => Buffer.from(SessionStateRequest.encode(value).finish()),
6613
- requestDeserialize: (value) => SessionStateRequest.decode(value),
6614
- responseSerialize: (value) => Buffer.from(SessionState.encode(value).finish()),
6615
- responseDeserialize: (value) => SessionState.decode(value),
6616
- },
6617
- /** Full nested session snapshot (session-snapshot-collapse contract). */
6591
+ /** Full nested session snapshot: the single authoritative current snapshot. */
6618
6592
  getSnapshot: {
6619
6593
  path: "/theway.grpc.v1.SessionService/GetSnapshot",
6620
6594
  requestStream: false,
@@ -6624,15 +6598,15 @@ export const SessionServiceService = {
6624
6598
  responseSerialize: (value) => Buffer.from(SessionSnapshot.encode(value).finish()),
6625
6599
  responseDeserialize: (value) => SessionSnapshot.decode(value),
6626
6600
  },
6627
- /** Session history as a snapshot-shaped transcript (session-snapshot-collapse). */
6628
- getHistory: {
6629
- path: "/theway.grpc.v1.SessionService/GetHistory",
6601
+ /** Cursor-paginated full message history on the session's active branch. */
6602
+ listSessionMessages: {
6603
+ path: "/theway.grpc.v1.SessionService/ListSessionMessages",
6630
6604
  requestStream: false,
6631
6605
  responseStream: false,
6632
- requestSerialize: (value) => Buffer.from(SessionStateRequest.encode(value).finish()),
6633
- requestDeserialize: (value) => SessionStateRequest.decode(value),
6634
- responseSerialize: (value) => Buffer.from(SessionSnapshot.encode(value).finish()),
6635
- responseDeserialize: (value) => SessionSnapshot.decode(value),
6606
+ requestSerialize: (value) => Buffer.from(ListSessionMessagesRequest.encode(value).finish()),
6607
+ requestDeserialize: (value) => ListSessionMessagesRequest.decode(value),
6608
+ responseSerialize: (value) => Buffer.from(SessionMessagePage.encode(value).finish()),
6609
+ responseDeserialize: (value) => SessionMessagePage.decode(value),
6636
6610
  },
6637
6611
  /** Collapse a session into a graph node (session-snapshot-collapse). */
6638
6612
  collapseSession: {