@namzu/sdk 62.8.0 → 62.10.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 (110) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/compaction/plan.d.ts +12 -0
  3. package/dist/compaction/plan.d.ts.map +1 -1
  4. package/dist/compaction/plan.js +39 -11
  5. package/dist/compaction/plan.js.map +1 -1
  6. package/dist/compaction/salience/minhash.d.ts +9 -0
  7. package/dist/compaction/salience/minhash.d.ts.map +1 -1
  8. package/dist/compaction/salience/minhash.js +20 -0
  9. package/dist/compaction/salience/minhash.js.map +1 -1
  10. package/dist/compaction/salience/score.d.ts.map +1 -1
  11. package/dist/compaction/salience/score.js +87 -45
  12. package/dist/compaction/salience/score.js.map +1 -1
  13. package/dist/compaction/salience/working-set.d.ts +14 -0
  14. package/dist/compaction/salience/working-set.d.ts.map +1 -1
  15. package/dist/compaction/salience/working-set.js +84 -33
  16. package/dist/compaction/salience/working-set.js.map +1 -1
  17. package/dist/config/runtime.d.ts +2 -0
  18. package/dist/config/runtime.d.ts.map +1 -1
  19. package/dist/config/runtime.js +14 -0
  20. package/dist/config/runtime.js.map +1 -1
  21. package/dist/connector/http-operation.d.ts +1 -0
  22. package/dist/connector/http-operation.d.ts.map +1 -1
  23. package/dist/connector/http-operation.js +1 -1
  24. package/dist/connector/http-operation.js.map +1 -1
  25. package/dist/connector/mcp/adapter.d.ts.map +1 -1
  26. package/dist/connector/mcp/adapter.js +10 -0
  27. package/dist/connector/mcp/adapter.js.map +1 -1
  28. package/dist/connector/mcp/client.d.ts +12 -0
  29. package/dist/connector/mcp/client.d.ts.map +1 -1
  30. package/dist/connector/mcp/client.js +59 -10
  31. package/dist/connector/mcp/client.js.map +1 -1
  32. package/dist/constants/mcp/index.d.ts +15 -0
  33. package/dist/constants/mcp/index.d.ts.map +1 -1
  34. package/dist/constants/mcp/index.js +15 -0
  35. package/dist/constants/mcp/index.js.map +1 -1
  36. package/dist/manager/session/turn-recorder.d.ts +25 -0
  37. package/dist/manager/session/turn-recorder.d.ts.map +1 -1
  38. package/dist/manager/session/turn-recorder.js +193 -17
  39. package/dist/manager/session/turn-recorder.js.map +1 -1
  40. package/dist/public-runtime.d.ts +1 -1
  41. package/dist/public-runtime.d.ts.map +1 -1
  42. package/dist/public-runtime.js +1 -1
  43. package/dist/public-runtime.js.map +1 -1
  44. package/dist/runtime/query/cancelled-before-start.js +1 -1
  45. package/dist/runtime/query/cancelled-before-start.js.map +1 -1
  46. package/dist/runtime/query/checkpoint.js +2 -1
  47. package/dist/runtime/query/checkpoint.js.map +1 -1
  48. package/dist/runtime/query/index.d.ts.map +1 -1
  49. package/dist/runtime/query/index.js +4 -1
  50. package/dist/runtime/query/index.js.map +1 -1
  51. package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
  52. package/dist/runtime/query/iteration/phases/compaction.js +15 -1
  53. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
  54. package/dist/runtime/query/prepare-turn.js +10 -4
  55. package/dist/runtime/query/prepare-turn.js.map +1 -1
  56. package/dist/store/session-log/core.d.ts +31 -1
  57. package/dist/store/session-log/core.d.ts.map +1 -1
  58. package/dist/store/session-log/core.js +95 -9
  59. package/dist/store/session-log/core.js.map +1 -1
  60. package/dist/store/session-log/disk.d.ts +2 -0
  61. package/dist/store/session-log/disk.d.ts.map +1 -1
  62. package/dist/store/session-log/disk.js +37 -0
  63. package/dist/store/session-log/disk.js.map +1 -1
  64. package/dist/store/session-log/fold.d.ts +9 -1
  65. package/dist/store/session-log/fold.d.ts.map +1 -1
  66. package/dist/store/session-log/fold.js +18 -2
  67. package/dist/store/session-log/fold.js.map +1 -1
  68. package/dist/store/session-log/incremental.d.ts +8 -0
  69. package/dist/store/session-log/incremental.d.ts.map +1 -1
  70. package/dist/store/session-log/incremental.js +7 -2
  71. package/dist/store/session-log/incremental.js.map +1 -1
  72. package/dist/store/session-log/index.d.ts +1 -0
  73. package/dist/store/session-log/index.d.ts.map +1 -1
  74. package/dist/store/session-log/index.js +1 -0
  75. package/dist/store/session-log/index.js.map +1 -1
  76. package/dist/store/session-log/verified-prefix.d.ts +46 -0
  77. package/dist/store/session-log/verified-prefix.d.ts.map +1 -0
  78. package/dist/store/session-log/verified-prefix.js +233 -0
  79. package/dist/store/session-log/verified-prefix.js.map +1 -0
  80. package/dist/types/connector/mcp.d.ts +19 -0
  81. package/dist/types/connector/mcp.d.ts.map +1 -1
  82. package/dist/types/session/records.d.ts +80 -1
  83. package/dist/types/session/records.d.ts.map +1 -1
  84. package/dist/types/session/records.js +22 -0
  85. package/dist/types/session/records.js.map +1 -1
  86. package/package.json +1 -1
  87. package/src/compaction/plan.ts +53 -11
  88. package/src/compaction/salience/minhash.ts +20 -0
  89. package/src/compaction/salience/score.ts +112 -43
  90. package/src/compaction/salience/working-set.ts +102 -31
  91. package/src/config/runtime.ts +14 -0
  92. package/src/connector/http-operation.ts +1 -1
  93. package/src/connector/mcp/adapter.ts +11 -0
  94. package/src/connector/mcp/client.ts +75 -12
  95. package/src/constants/mcp/index.ts +17 -0
  96. package/src/manager/session/turn-recorder.ts +218 -15
  97. package/src/public-runtime.ts +1 -0
  98. package/src/runtime/query/cancelled-before-start.ts +1 -1
  99. package/src/runtime/query/checkpoint.ts +2 -1
  100. package/src/runtime/query/index.ts +4 -1
  101. package/src/runtime/query/iteration/phases/compaction.ts +18 -0
  102. package/src/runtime/query/prepare-turn.ts +10 -3
  103. package/src/store/session-log/core.ts +129 -10
  104. package/src/store/session-log/disk.ts +32 -0
  105. package/src/store/session-log/fold.ts +19 -2
  106. package/src/store/session-log/incremental.ts +15 -2
  107. package/src/store/session-log/index.ts +1 -0
  108. package/src/store/session-log/verified-prefix.ts +243 -0
  109. package/src/types/connector/mcp.ts +19 -0
  110. package/src/types/session/records.ts +25 -0
@@ -1 +1 @@
1
- {"version":3,"file":"disk.js","sourceRoot":"","sources":["../../../src/store/session-log/disk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"disk.js","sourceRoot":"","sources":["../../../src/store/session-log/disk.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,10 @@ import type { SpillRef } from './spill.js';
21
21
  * override or a structured-output answer is what every reader of the fold
22
22
  * sees; the model's raw text stays in the log for audit only.
23
23
  *
24
- * Only `message`, `message_replaced` and `compaction` records move the fold.
24
+ * `message_edited` is applied the same way as `message_replaced`: a compaction
25
+ * pass's edit of one message, written under the message's own id.
26
+ *
27
+ * Only `message`, `message_replaced`, `message_edited` and `compaction` records move the fold.
25
28
  * The live compaction events (`compaction_completed` and the rest) are
26
29
  * reports, not instructions.
27
30
  */
@@ -121,6 +124,11 @@ export declare class TurnRuleError extends Error {
121
124
  export declare class SessionTurnState {
122
125
  #private;
123
126
  get active(): ActiveTurnRecord | undefined;
127
+ /**
128
+ * An independent copy at the records applied so far. `apply` replaces the
129
+ * active turn's object rather than editing it, so the copy may share it.
130
+ */
131
+ clone(): SessionTurnState;
124
132
  /** The last turn that started, active or not. */
125
133
  get lastTurnId(): TurnId | undefined;
126
134
  /** Whether `session_started` has been applied. */
@@ -1 +1 @@
1
- {"version":3,"file":"fold.d.ts","sourceRoot":"","sources":["../../../src/store/session-log/fold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fold.d.ts","sourceRoot":"","sources":["../../../src/store/session-log/fold.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,10 @@
17
17
  * override or a structured-output answer is what every reader of the fold
18
18
  * sees; the model's raw text stays in the log for audit only.
19
19
  *
20
- * Only `message`, `message_replaced` and `compaction` records move the fold.
20
+ * `message_edited` is applied the same way as `message_replaced`: a compaction
21
+ * pass's edit of one message, written under the message's own id.
22
+ *
23
+ * Only `message`, `message_replaced`, `message_edited` and `compaction` records move the fold.
21
24
  * The live compaction events (`compaction_completed` and the rest) are
22
25
  * reports, not instructions.
23
26
  */
@@ -79,7 +82,8 @@ export class SessionMessageFold {
79
82
  case 'message':
80
83
  this.#message(record);
81
84
  return;
82
- case 'message_replaced': {
85
+ case 'message_replaced':
86
+ case 'message_edited': {
83
87
  const spill = record.spill;
84
88
  this.#replacements.set(record.targetMessageId, {
85
89
  message: record.content,
@@ -231,6 +235,17 @@ export class SessionTurnState {
231
235
  get active() {
232
236
  return this.#active;
233
237
  }
238
+ /**
239
+ * An independent copy at the records applied so far. `apply` replaces the
240
+ * active turn's object rather than editing it, so the copy may share it.
241
+ */
242
+ clone() {
243
+ const copy = new SessionTurnState();
244
+ copy.#active = this.#active;
245
+ copy.#lastTurnId = this.#lastTurnId;
246
+ copy.#started = this.#started;
247
+ return copy;
248
+ }
234
249
  /** The last turn that started, active or not. */
235
250
  get lastTurnId() {
236
251
  return this.#lastTurnId;
@@ -331,6 +346,7 @@ const CLOSES_OR_DECIDES = new Set([
331
346
  'audit',
332
347
  'log_repaired',
333
348
  'message_replaced',
349
+ 'message_edited',
334
350
  'session_updated',
335
351
  ]);
336
352
  //# sourceMappingURL=fold.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fold.js","sourceRoot":"","sources":["../../../src/store/session-log/fold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fold.js","sourceRoot":"","sources":["../../../src/store/session-log/fold.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,14 @@ export interface IncrementalFold<S, R> {
4
4
  /** The reduction's name; one cache slot per name and read mode. */
5
5
  readonly name: string;
6
6
  readonly mode: 'strict' | 'tolerant';
7
+ /**
8
+ * Strict reductions only: before resuming, hash every byte before the
9
+ * resume point against what this process verified (`read({ reverify })`),
10
+ * so a resumed read refuses a log altered anywhere, as a read from byte 0
11
+ * does, without parsing the prefix again. Off by default: the window the
12
+ * header describes then applies.
13
+ */
14
+ readonly reverify?: boolean;
7
15
  /** A fresh, empty state. */
8
16
  create(): S;
9
17
  /** Fold one record into the state, in place. */
@@ -1 +1 @@
1
- {"version":3,"file":"incremental.d.ts","sourceRoot":"","sources":["../../../src/store/session-log/incremental.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAA4B,MAAM,YAAY,CAAA;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAmE3C,MAAM,WAAW,eAAe,CAAC,CAAC,EAAE,CAAC;IACpC,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAA;IACpC,4BAA4B;IAC5B,MAAM,IAAI,CAAC,CAAA;IACX,gDAAgD;IAChD,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAA;IAC7C;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;CAChC;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,CAAC,EACxC,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GACzB,OAAO,CAAC,CAAC,CAAC,CAsDZ"}
1
+ {"version":3,"file":"incremental.d.ts","sourceRoot":"","sources":["../../../src/store/session-log/incremental.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAA4B,MAAM,YAAY,CAAA;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAoE3C,MAAM,WAAW,eAAe,CAAC,CAAC,EAAE,CAAC;IACpC,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAA;IACpC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,4BAA4B;IAC5B,MAAM,IAAI,CAAC,CAAA;IACX,gDAAgD;IAChD,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAA;IAC7C;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;CAChC;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,CAAC,EACxC,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GACzB,OAAO,CAAC,CAAC,CAAC,CA0DZ"}
@@ -24,7 +24,8 @@ import { SessionLogIntegrityError } from './chain.js';
24
24
  *
25
25
  * Cost that remains: the state of the "every message ever recorded" reduction
26
26
  * holds each message the log ever recorded, superseded and compacted ones
27
- * included, so it grows with the log and not with the live context, and it
27
+ * included, and the earlier texts of an edited message (one per edit, until a
28
+ * replacement clears them), so it grows with the log and not with the live context, and it
28
29
  * lives for the life of the process (for the sessions kept). Reading it
29
30
  * returns a copy of all of them, which is O(history) per turn. Both are small
30
31
  * next to the whole-log walks this file removes, and are left as they are.
@@ -72,7 +73,11 @@ export async function foldSessionLog(log, fold) {
72
73
  }
73
74
  let moved = false;
74
75
  try {
75
- const walk = log.read({ mode: fold.mode, ...(anchor ? { after: anchor } : {}) });
76
+ const walk = log.read({
77
+ mode: fold.mode,
78
+ ...(anchor ? { after: anchor } : {}),
79
+ ...(fold.reverify && fold.mode === 'strict' ? { reverify: true } : {}),
80
+ });
76
81
  let summary;
77
82
  for (;;) {
78
83
  summary = await walk.next();
@@ -1 +1 @@
1
- {"version":3,"file":"incremental.js","sourceRoot":"","sources":["../../../src/store/session-log/incremental.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"incremental.js","sourceRoot":"","sources":["../../../src/store/session-log/incremental.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export { type ActiveTurn, type ActiveTurnOptions, type AbandonTurnLogOptions, ty
3
3
  export { DiskLogMedium, DiskSessionLog, type DiskSessionLogOptions, readSessionLog, streamSessionLog, } from './disk.js';
4
4
  export { type ActiveTurnRecord, type FoldSessionMessagesOptions, type FoldedMessage, SessionMessageFold, SessionTurnState, type SpilledSummary, SpillUnavailableError, TurnRuleError, MESSAGES_WITHDRAWN_DETAIL, foldSessionMessages, withMessageId, } from './fold.js';
5
5
  export { type TornTailRepair, repairRecordDraft } from './heal.js';
6
+ export { type IncrementalFold, foldSessionLog } from './incremental.js';
6
7
  export { foldChildOutcomes, foldTurnOutcomes, parseTurnOutcome, readOutcomeProgress, readTurnOutcome, } from './turn-outcome.js';
7
8
  export { type ReleaseHeldSessionLeasesOptions, type ReleaseHeldSessionLeasesResult, SessionLeasesReleasedError, releaseHeldSessionLeases, } from './held-leases.js';
8
9
  export { type ClaimSessionOptions, DiskSessionLeaseStore, InMemorySessionLeaseStore, type LeaseClaimContext, type SessionLease, type SessionLeaseStore, StaleSessionLeaseError, isLeaseLive, readSessionLease, } from './lease.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/session-log/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACN,KAAK,QAAQ,EACb,YAAY,EACZ,eAAe,EACf,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,GACb,MAAM,YAAY,CAAA;AACnB,OAAO,EACN,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,6BAA6B,EAC7B,yBAAyB,EACzB,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,uBAAuB,EACvB,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,cAAc,GACd,MAAM,WAAW,CAAA;AAClB,OAAO,EACN,aAAa,EACb,cAAc,EACd,KAAK,qBAAqB,EAC1B,cAAc,EACd,gBAAgB,GAChB,MAAM,WAAW,CAAA;AAClB,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,aAAa,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,cAAc,EACnB,qBAAqB,EACrB,aAAa,EACb,yBAAyB,EACzB,mBAAmB,EACnB,aAAa,GACb,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,KAAK,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAClE,OAAO,EACN,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACN,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,0BAA0B,EAC1B,wBAAwB,GACxB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,KAAK,mBAAmB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,sBAAsB,EACtB,WAAW,EACX,gBAAgB,GAChB,MAAM,YAAY,CAAA;AACnB,OAAO,EACN,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,yBAAyB,GAC9B,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,aAAa,GACb,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,oBAAoB,EAAE,KAAK,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AAC/F,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/session-log/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACN,KAAK,QAAQ,EACb,YAAY,EACZ,eAAe,EACf,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,GACb,MAAM,YAAY,CAAA;AACnB,OAAO,EACN,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,6BAA6B,EAC7B,yBAAyB,EACzB,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,uBAAuB,EACvB,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,cAAc,GACd,MAAM,WAAW,CAAA;AAClB,OAAO,EACN,aAAa,EACb,cAAc,EACd,KAAK,qBAAqB,EAC1B,cAAc,EACd,gBAAgB,GAChB,MAAM,WAAW,CAAA;AAClB,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,aAAa,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,cAAc,EACnB,qBAAqB,EACrB,aAAa,EACb,yBAAyB,EACzB,mBAAmB,EACnB,aAAa,GACb,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,KAAK,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAClE,OAAO,EAAE,KAAK,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACvE,OAAO,EACN,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACN,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,0BAA0B,EAC1B,wBAAwB,GACxB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,KAAK,mBAAmB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,sBAAsB,EACtB,WAAW,EACX,gBAAgB,GAChB,MAAM,YAAY,CAAA;AACnB,OAAO,EACN,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,yBAAyB,GAC9B,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,aAAa,GACb,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,oBAAoB,EAAE,KAAK,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AAC/F,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAA"}
@@ -9,6 +9,7 @@ export { DEFAULT_DEGRADED_BUFFER_BYTES, InvalidSessionRecordError, SessionLogCon
9
9
  export { DiskLogMedium, DiskSessionLog, readSessionLog, streamSessionLog, } from './disk.js';
10
10
  export { SessionMessageFold, SessionTurnState, SpillUnavailableError, TurnRuleError, MESSAGES_WITHDRAWN_DETAIL, foldSessionMessages, withMessageId, } from './fold.js';
11
11
  export { repairRecordDraft } from './heal.js';
12
+ export { foldSessionLog } from './incremental.js';
12
13
  export { foldChildOutcomes, foldTurnOutcomes, parseTurnOutcome, readOutcomeProgress, readTurnOutcome, } from './turn-outcome.js';
13
14
  export { SessionLeasesReleasedError, releaseHeldSessionLeases, } from './held-leases.js';
14
15
  export { DiskSessionLeaseStore, InMemorySessionLeaseStore, StaleSessionLeaseError, isLeaseLive, readSessionLease, } from './lease.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/store/session-log/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,4EAA4E;AAC5E,kEAAkE;AAClE,0EAA0E;AAC1E,8EAA8E;AAC9E,+EAA+E;AAE/E,OAAO,EAEN,YAAY,EACZ,eAAe,EAIf,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,GACb,MAAM,YAAY,CAAA;AACnB,OAAO,EAKN,6BAA6B,EAC7B,yBAAyB,EAKzB,uBAAuB,EACvB,cAAc,EAQd,uBAAuB,EAEvB,cAAc,GACd,MAAM,WAAW,CAAA;AAClB,OAAO,EACN,aAAa,EACb,cAAc,EAEd,cAAc,EACd,gBAAgB,GAChB,MAAM,WAAW,CAAA;AAClB,OAAO,EAIN,kBAAkB,EAClB,gBAAgB,EAEhB,qBAAqB,EACrB,aAAa,EACb,yBAAyB,EACzB,mBAAmB,EACnB,aAAa,GACb,MAAM,WAAW,CAAA;AAClB,OAAO,EAAuB,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAClE,OAAO,EACN,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGN,0BAA0B,EAC1B,wBAAwB,GACxB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAEN,qBAAqB,EACrB,yBAAyB,EAIzB,sBAAsB,EACtB,WAAW,EACX,gBAAgB,GAChB,MAAM,YAAY,CAAA;AACnB,OAAO,EACN,iBAAiB,EACjB,kBAAkB,GAElB,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,mBAAmB,EAKnB,aAAa,GACb,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,oBAAoB,EAAoC,MAAM,wBAAwB,CAAA;AAC/F,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/store/session-log/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,4EAA4E;AAC5E,kEAAkE;AAClE,0EAA0E;AAC1E,8EAA8E;AAC9E,+EAA+E;AAE/E,OAAO,EAEN,YAAY,EACZ,eAAe,EAIf,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,GACb,MAAM,YAAY,CAAA;AACnB,OAAO,EAKN,6BAA6B,EAC7B,yBAAyB,EAKzB,uBAAuB,EACvB,cAAc,EAQd,uBAAuB,EAEvB,cAAc,GACd,MAAM,WAAW,CAAA;AAClB,OAAO,EACN,aAAa,EACb,cAAc,EAEd,cAAc,EACd,gBAAgB,GAChB,MAAM,WAAW,CAAA;AAClB,OAAO,EAIN,kBAAkB,EAClB,gBAAgB,EAEhB,qBAAqB,EACrB,aAAa,EACb,yBAAyB,EACzB,mBAAmB,EACnB,aAAa,GACb,MAAM,WAAW,CAAA;AAClB,OAAO,EAAuB,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAClE,OAAO,EAAwB,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACvE,OAAO,EACN,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGN,0BAA0B,EAC1B,wBAAwB,GACxB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAEN,qBAAqB,EACrB,yBAAyB,EAIzB,sBAAsB,EACtB,WAAW,EACX,gBAAgB,GAChB,MAAM,YAAY,CAAA;AACnB,OAAO,EACN,iBAAiB,EACjB,kBAAkB,GAElB,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,mBAAmB,EAKnB,aAAa,GACb,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,oBAAoB,EAAoC,MAAM,wBAAwB,CAAA;AAC/F,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAA"}
@@ -0,0 +1,46 @@
1
+ import type { SessionId } from '../../types/ids/index.js';
2
+ import type { RecordPointer } from '../../types/session/records.js';
3
+ import { type LogBytes, type SessionLogEntry } from './chain.js';
4
+ import { SessionTurnState } from './fold.js';
5
+ export declare class VerifiedPrefix {
6
+ #private;
7
+ /** Records remembered. */
8
+ get count(): number;
9
+ get head(): RecordPointer | null;
10
+ get gen(): number;
11
+ get sessionId(): SessionId | undefined;
12
+ /** Byte offset just after the last remembered record. */
13
+ get end(): number;
14
+ /** The turn state at the head, as its own copy. */
15
+ turns(): SessionTurnState;
16
+ /** Lengths and digests as they stand now; entries below `count` never change. */
17
+ get lengths(): Uint32Array;
18
+ get digests(): Buffer;
19
+ /** Whether the remembered record `seq` is exactly `pointer` (length and digest). */
20
+ holds(pointer: RecordPointer): boolean;
21
+ /**
22
+ * Remember a record that was verified in full. Ignored unless it continues
23
+ * what is held: the next seq, naming the head by its pointer.
24
+ */
25
+ append(entry: SessionLogEntry): void;
26
+ }
27
+ /** The ledger of a log, if this process has one; marks it recently used. */
28
+ export declare function verifiedPrefixOf(key: string): VerifiedPrefix | undefined;
29
+ /** Discard what is remembered of a log and start an empty ledger for it. */
30
+ export declare function startVerifiedPrefix(key: string): VerifiedPrefix;
31
+ /** Forget every remembered log: what a process that has not read them yet looks like. For tests. */
32
+ export declare function clearVerifiedPrefixes(): void;
33
+ /** How many logs are remembered. For tests. */
34
+ export declare function verifiedPrefixCount(): number;
35
+ /**
36
+ * Read the first `count` lines of `bytes` and compare each one's length and
37
+ * SHA-256 with the ledger's. Resolves `true` only when every one is equal.
38
+ * Parses nothing and keeps nothing. Any difference, a log that ends sooner,
39
+ * or a fragment no record could be, resolves `false`: the caller then verifies
40
+ * in full, which says what is wrong.
41
+ */
42
+ export declare function rehashPrefix(bytes: Pick<LogBytes, 'size'> & {
43
+ stream(offset: number): AsyncIterable<Uint8Array>;
44
+ scan?(offset: number, visit: (chunk: Uint8Array) => boolean): Promise<void>;
45
+ }, ledger: VerifiedPrefix, count: number): Promise<boolean>;
46
+ //# sourceMappingURL=verified-prefix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verified-prefix.d.ts","sourceRoot":"","sources":["../../../src/store/session-log/verified-prefix.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAgB,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAA;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAsD5C,qBAAa,cAAc;;IAW1B,0BAA0B;IAC1B,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,IAAI,IAAI,aAAa,GAAG,IAAI,CAE/B;IACD,IAAI,GAAG,IAAI,MAAM,CAEhB;IACD,IAAI,SAAS,IAAI,SAAS,GAAG,SAAS,CAErC;IACD,yDAAyD;IACzD,IAAI,GAAG,IAAI,MAAM,CAEhB;IACD,mDAAmD;IACnD,KAAK,IAAI,gBAAgB;IAGzB,iFAAiF;IACjF,IAAI,OAAO,IAAI,WAAW,CAEzB;IACD,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,oFAAoF;IACpF,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO;IAStC;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;CA4BpC;AAeD,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAOxE;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAS/D;AAED,oGAAoG;AACpG,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,+CAA+C;AAC/C,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CACjC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG;IAC/B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IACjD,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3E,EACD,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAmClB"}
@@ -0,0 +1,233 @@
1
+ import * as crypto from 'node:crypto';
2
+ import { LineSplitter } from './chain.js';
3
+ import { SessionTurnState } from './fold.js';
4
+ /**
5
+ * What this process has already verified of a session log, so that checking
6
+ * it again costs the bytes and not the parsing.
7
+ *
8
+ * A ledger remembers, for every record this process verified IN FULL (schema,
9
+ * parse, hash chain, seq, gen, links: everything `SessionLogChain.accept`
10
+ * checks), the byte length of its line and the SHA-256 of those bytes, plus
11
+ * the head pointer, the `gen`, the session id and the turn state folded to
12
+ * the head. A later claim of the same log reads every byte again and hashes
13
+ * each line; a line whose length and digest equal the remembered ones is
14
+ * byte-identical to a line that already passed every rule, so it passes them
15
+ * again without being parsed. Only what lies after the remembered head is
16
+ * verified in full. Nothing about the file's identity is trusted for
17
+ * soundness: the content is compared. Any difference (a changed byte, a
18
+ * shorter file, a replaced file, a line that no longer splits the same way)
19
+ * makes the caller discard the ledger and verify from byte 0 as before.
20
+ *
21
+ * A ledger is fed only from entries that came out of a full verification and
22
+ * that continue it (`seq` = count + 1 and `prev` equal to the head), so what
23
+ * it holds is a prefix of one valid chain and nothing else. It costs 36 bytes
24
+ * per record.
25
+ */
26
+ const DIGEST_BYTES = 32;
27
+ /** Logs kept; the least recently used is dropped. */
28
+ const LEDGERS_KEPT = 16;
29
+ /** A log with more records than this is not remembered (about 72 MB of digests). */
30
+ const MAX_RECORDS = 1 << 21;
31
+ /**
32
+ * The digest of one line as lowercase hex. A string, not a Buffer: a Buffer per
33
+ * line (82,000 of them in a long log) is native memory the collector has to
34
+ * chase, and measured about twice the CPU. The one-shot form where Node has it.
35
+ */
36
+ const hexDigestOf = typeof crypto.hash === 'function'
37
+ ? (line) => crypto.hash('sha256', line, 'hex')
38
+ : (line) => crypto.createHash('sha256').update(line).digest('hex');
39
+ /** Whether `hex` (64 lowercase hex characters) spells the 32 bytes at `at` in `bytes`. */
40
+ function hexEqualsBytes(hex, bytes, at) {
41
+ if (hex.length !== DIGEST_BYTES * 2)
42
+ return false;
43
+ for (let i = 0; i < DIGEST_BYTES; i++) {
44
+ const high = hex.charCodeAt(i * 2);
45
+ const low = hex.charCodeAt(i * 2 + 1);
46
+ const value = ((high <= 0x39 ? high - 0x30 : high - 0x57) << 4) | (low <= 0x39 ? low - 0x30 : low - 0x57);
47
+ if (value !== bytes[at + i])
48
+ return false;
49
+ }
50
+ return true;
51
+ }
52
+ export class VerifiedPrefix {
53
+ #count = 0;
54
+ #lengths = new Uint32Array(1024);
55
+ #digests = Buffer.allocUnsafe(1024 * DIGEST_BYTES);
56
+ #head = null;
57
+ #gen = 0;
58
+ #sessionId;
59
+ #end = 0;
60
+ #dead = false;
61
+ #turns = new SessionTurnState();
62
+ /** Records remembered. */
63
+ get count() {
64
+ return this.#count;
65
+ }
66
+ get head() {
67
+ return this.#head;
68
+ }
69
+ get gen() {
70
+ return this.#gen;
71
+ }
72
+ get sessionId() {
73
+ return this.#sessionId;
74
+ }
75
+ /** Byte offset just after the last remembered record. */
76
+ get end() {
77
+ return this.#end;
78
+ }
79
+ /** The turn state at the head, as its own copy. */
80
+ turns() {
81
+ return this.#turns.clone();
82
+ }
83
+ /** Lengths and digests as they stand now; entries below `count` never change. */
84
+ get lengths() {
85
+ return this.#lengths;
86
+ }
87
+ get digests() {
88
+ return this.#digests;
89
+ }
90
+ /** Whether the remembered record `seq` is exactly `pointer` (length and digest). */
91
+ holds(pointer) {
92
+ const at = pointer.seq - 1;
93
+ if (at < 0 || at >= this.#count)
94
+ return false;
95
+ if (this.#lengths[at] !== pointer.length)
96
+ return false;
97
+ return (this.#digests.toString('hex', at * DIGEST_BYTES, (at + 1) * DIGEST_BYTES) === pointer.sha256);
98
+ }
99
+ /**
100
+ * Remember a record that was verified in full. Ignored unless it continues
101
+ * what is held: the next seq, naming the head by its pointer.
102
+ */
103
+ append(entry) {
104
+ if (this.#dead)
105
+ return;
106
+ const { record, pointer } = entry;
107
+ if (pointer.seq !== this.#count + 1 || pointer.offset !== this.#end)
108
+ return;
109
+ const prev = record.prev;
110
+ if (this.#head === null ? prev !== null : !samePointer(prev, this.#head))
111
+ return;
112
+ if (this.#sessionId !== undefined && record.sessionId !== this.#sessionId)
113
+ return;
114
+ if (this.#count >= MAX_RECORDS) {
115
+ this.#dead = true;
116
+ return;
117
+ }
118
+ if (this.#count === this.#lengths.length) {
119
+ const lengths = new Uint32Array(this.#lengths.length * 2);
120
+ lengths.set(this.#lengths);
121
+ this.#lengths = lengths;
122
+ const digests = Buffer.allocUnsafe(this.#digests.length * 2);
123
+ this.#digests.copy(digests);
124
+ this.#digests = digests;
125
+ }
126
+ this.#lengths[this.#count] = pointer.length;
127
+ this.#digests.write(pointer.sha256, this.#count * DIGEST_BYTES, DIGEST_BYTES, 'hex');
128
+ this.#count += 1;
129
+ this.#head = pointer;
130
+ this.#gen = record.gen;
131
+ this.#end = pointer.offset + pointer.length;
132
+ this.#sessionId ??= record.sessionId;
133
+ this.#turns.apply(record);
134
+ }
135
+ }
136
+ function samePointer(a, b) {
137
+ return (a !== null &&
138
+ a !== undefined &&
139
+ a.seq === b.seq &&
140
+ a.offset === b.offset &&
141
+ a.length === b.length &&
142
+ a.sha256 === b.sha256);
143
+ }
144
+ const ledgers = new Map();
145
+ /** The ledger of a log, if this process has one; marks it recently used. */
146
+ export function verifiedPrefixOf(key) {
147
+ const found = ledgers.get(key);
148
+ if (found !== undefined) {
149
+ ledgers.delete(key);
150
+ ledgers.set(key, found);
151
+ }
152
+ return found;
153
+ }
154
+ /** Discard what is remembered of a log and start an empty ledger for it. */
155
+ export function startVerifiedPrefix(key) {
156
+ ledgers.delete(key);
157
+ if (ledgers.size >= LEDGERS_KEPT) {
158
+ const oldest = ledgers.keys().next().value;
159
+ if (oldest !== undefined)
160
+ ledgers.delete(oldest);
161
+ }
162
+ const fresh = new VerifiedPrefix();
163
+ ledgers.set(key, fresh);
164
+ return fresh;
165
+ }
166
+ /** Forget every remembered log: what a process that has not read them yet looks like. For tests. */
167
+ export function clearVerifiedPrefixes() {
168
+ ledgers.clear();
169
+ }
170
+ /** How many logs are remembered. For tests. */
171
+ export function verifiedPrefixCount() {
172
+ return ledgers.size;
173
+ }
174
+ /**
175
+ * Read the first `count` lines of `bytes` and compare each one's length and
176
+ * SHA-256 with the ledger's. Resolves `true` only when every one is equal.
177
+ * Parses nothing and keeps nothing. Any difference, a log that ends sooner,
178
+ * or a fragment no record could be, resolves `false`: the caller then verifies
179
+ * in full, which says what is wrong.
180
+ */
181
+ export async function rehashPrefix(bytes, ledger, count) {
182
+ if (count === 0)
183
+ return true;
184
+ if (count > ledger.count)
185
+ return false;
186
+ const lengths = ledger.lengths;
187
+ const digests = ledger.digests;
188
+ if ((await bytes.size()) < endOfLine(lengths, count))
189
+ return false;
190
+ const splitter = new LineSplitter(0);
191
+ let index = 0;
192
+ let matched = false;
193
+ // True once the answer is known. A chunk is read from a buffer the caller of `visit`
194
+ // may reuse, so nothing here keeps a slice of it: a line is hashed where it stands.
195
+ const visit = (chunk) => {
196
+ for (const { line } of splitter.push(chunk)) {
197
+ if (line.byteLength !== lengths[index])
198
+ return true;
199
+ if (!hexEqualsBytes(hexDigestOf(line), digests, index * DIGEST_BYTES))
200
+ return true;
201
+ index += 1;
202
+ if (index === count) {
203
+ matched = true;
204
+ return true;
205
+ }
206
+ }
207
+ return false;
208
+ };
209
+ try {
210
+ if (bytes.scan !== undefined) {
211
+ await bytes.scan(0, visit);
212
+ }
213
+ else {
214
+ for await (const chunk of bytes.stream(0))
215
+ if (visit(chunk))
216
+ break;
217
+ }
218
+ }
219
+ catch (error) {
220
+ // A fragment longer than any record can be: not the log that was verified.
221
+ if (error.name === 'SessionLogIntegrityError')
222
+ return false;
223
+ throw error;
224
+ }
225
+ return matched;
226
+ }
227
+ function endOfLine(lengths, count) {
228
+ let total = 0;
229
+ for (let i = 0; i < count; i++)
230
+ total += lengths[i];
231
+ return total;
232
+ }
233
+ //# sourceMappingURL=verified-prefix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verified-prefix.js","sourceRoot":"","sources":["../../../src/store/session-log/verified-prefix.ts"],"names":[],"mappings":"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"}
@@ -512,6 +512,25 @@ export interface MCPClientConfig {
512
512
  * forever — no error, no failure, just a turn that stopped.
513
513
  */
514
514
  requestTimeoutMs?: number;
515
+ /**
516
+ * Treat the deadline as an idle deadline for a tool call that reports
517
+ * progress: each accepted `notifications/progress` (one whose value rose)
518
+ * re-arms `requestTimeoutMs` for that call. Off by default, which keeps
519
+ * the single fixed deadline.
520
+ *
521
+ * Only a `tools/call` made with `onProgress` carries a progress token, so
522
+ * only such a call can be extended. The call is still bounded in total by
523
+ * `maxTotalTimeoutMs`, which progress never extends.
524
+ */
525
+ resetTimeoutOnProgress?: boolean;
526
+ /**
527
+ * The most a progress-extended call may take in total, counted from when
528
+ * the request was issued, in milliseconds. An integer no smaller than
529
+ * `requestTimeoutMs`. Defaults to ten times `requestTimeoutMs`
530
+ * (`DEFAULT_MCP_TOTAL_TIMEOUT_FACTOR`). Applies only with
531
+ * `resetTimeoutOnProgress`.
532
+ */
533
+ maxTotalTimeoutMs?: number;
515
534
  /**
516
535
  * How long `connect()`'s era probe waits for an answer before deciding
517
536
  * the peer speaks a legacy revision. Defaults to