@laserdata/laser-sdk 0.3.2 → 0.4.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 (54) hide show
  1. package/README.md +38 -24
  2. package/dist/agent/reliable-consumer.d.ts.map +1 -1
  3. package/dist/agent/reliable-consumer.js +0 -1
  4. package/dist/agent/reliable-consumer.js.map +1 -1
  5. package/dist/agent/router.d.ts.map +1 -1
  6. package/dist/agent/router.js +0 -1
  7. package/dist/agent/router.js.map +1 -1
  8. package/dist/bridges/a2a.d.ts +1 -1
  9. package/dist/bridges/a2a.js +1 -1
  10. package/dist/client/laser.d.ts +11 -0
  11. package/dist/client/laser.d.ts.map +1 -1
  12. package/dist/client/laser.js +25 -3
  13. package/dist/client/laser.js.map +1 -1
  14. package/dist/client/publish-options.d.ts +8 -0
  15. package/dist/client/publish-options.d.ts.map +1 -0
  16. package/dist/client/publish-options.js +43 -0
  17. package/dist/client/publish-options.js.map +1 -0
  18. package/dist/context-scope.d.ts +8 -2
  19. package/dist/context-scope.d.ts.map +1 -1
  20. package/dist/context-scope.js +12 -1
  21. package/dist/context-scope.js.map +1 -1
  22. package/dist/context.d.ts +29 -0
  23. package/dist/context.d.ts.map +1 -1
  24. package/dist/context.js +85 -3
  25. package/dist/context.js.map +1 -1
  26. package/dist/conversation-state.d.ts +7 -1
  27. package/dist/conversation-state.d.ts.map +1 -1
  28. package/dist/conversation-state.js +6 -0
  29. package/dist/conversation-state.js.map +1 -1
  30. package/dist/iggy/apache-iggy.d.ts +18 -4
  31. package/dist/iggy/apache-iggy.d.ts.map +1 -1
  32. package/dist/iggy/apache-iggy.js +150 -43
  33. package/dist/iggy/apache-iggy.js.map +1 -1
  34. package/dist/index.d.ts +3 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +2 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/session.d.ts +102 -0
  39. package/dist/session.d.ts.map +1 -0
  40. package/dist/session.js +161 -0
  41. package/dist/session.js.map +1 -0
  42. package/dist/stream/cursor.d.ts +3 -0
  43. package/dist/stream/cursor.d.ts.map +1 -1
  44. package/dist/stream/cursor.js +37 -4
  45. package/dist/stream/cursor.js.map +1 -1
  46. package/dist/stream/producer.d.ts +1 -0
  47. package/dist/stream/producer.d.ts.map +1 -1
  48. package/dist/stream/producer.js +10 -0
  49. package/dist/stream/producer.js.map +1 -1
  50. package/dist/stream/topic.d.ts +5 -0
  51. package/dist/stream/topic.d.ts.map +1 -1
  52. package/dist/stream/topic.js +15 -0
  53. package/dist/stream/topic.js.map +1 -1
  54. package/package.json +9 -9
@@ -1,3 +1,4 @@
1
+ import { publishOptions } from "./publish-options.js";
1
2
  import { ApacheIggyTransport } from "../iggy/apache-iggy.js";
2
3
  import { createAgdx } from "../agent/agdx.js";
3
4
  import { decodeAgentMessage } from "../agent/reliable-consumer.js";
@@ -11,6 +12,7 @@ import { AgentRegistry, ClientMetadataRequest, encodePresenceInput, newRegistryC
11
12
  import { AsyncOnce } from "../runtime/async-once.js";
12
13
  import { Stream } from "../stream/stream.js";
13
14
  import { ContextScope } from "../context-scope.js";
15
+ import { Sessions } from "../session.js";
14
16
  import { ActionKind, GovernorState, encodePolicyEvidence, decodePolicyEvidence, POLICY_DECISION_OPERATION } from "../govern.js";
15
17
  import { MemoryBackend, MemoryHandle } from "../memory/handle.js";
16
18
  import { MemoryTopicBuilder } from "../memory/topic.js";
@@ -58,6 +60,7 @@ const NO_TOPOLOGY_OVERRIDES = {
58
60
  };
59
61
  export class LaserBuilder {
60
62
  create;
63
+ publishOptionsValue = {};
61
64
  connectionStringValue;
62
65
  addressValue;
63
66
  credentialsValue;
@@ -73,6 +76,18 @@ export class LaserBuilder {
73
76
  constructor(create) {
74
77
  this.create = create;
75
78
  }
79
+ publishTimeout(milliseconds) {
80
+ this.publishOptionsValue = { ...this.publishOptionsValue, timeoutMs: milliseconds };
81
+ return this;
82
+ }
83
+ publishMaxRetries(value) {
84
+ this.publishOptionsValue = { ...this.publishOptionsValue, maxRetries: value };
85
+ return this;
86
+ }
87
+ publishRetryBackoff(milliseconds) {
88
+ this.publishOptionsValue = { ...this.publishOptionsValue, retryBackoffMs: milliseconds };
89
+ return this;
90
+ }
76
91
  connectionString(value) {
77
92
  this.connectionStringValue = value;
78
93
  return this;
@@ -161,6 +176,7 @@ export class LaserBuilder {
161
176
  throw new ConfigError(`${name} must not be empty`);
162
177
  }
163
178
  return this.create({
179
+ publishOptions: publishOptions(this.publishOptionsValue),
164
180
  ...(this.connectionStringValue !== undefined
165
181
  ? { connectionString: this.connectionStringValue }
166
182
  : {}),
@@ -299,7 +315,7 @@ export class Laser {
299
315
  return new LaserBuilder(async (options) => {
300
316
  let transport;
301
317
  if (options.client !== undefined) {
302
- transport = await ApacheIggyTransport.fromClient(options.client, options.ownership);
318
+ transport = await ApacheIggyTransport.fromClient(options.client, options.ownership, options.publishOptions);
303
319
  }
304
320
  else if (options.address !== undefined) {
305
321
  const credentials = options.credentials ?? {
@@ -313,10 +329,10 @@ export class Laser {
313
329
  const authorityHost = options.address.host.includes(":")
314
330
  ? `[${options.address.host.replace(/^\[|\]$/g, "")}]`
315
331
  : options.address.host;
316
- transport = await ApacheIggyTransport.connect(`iggy://${userInfo}@${authorityHost}:${String(options.address.port)}`);
332
+ transport = await ApacheIggyTransport.connect(`iggy://${userInfo}@${authorityHost}:${String(options.address.port)}`, options.publishOptions);
317
333
  }
318
334
  else {
319
- transport = await ApacheIggyTransport.connect(options.connectionString ?? LOCAL_CONNECTION_STRING);
335
+ transport = await ApacheIggyTransport.connect(options.connectionString ?? LOCAL_CONNECTION_STRING, options.publishOptions);
320
336
  }
321
337
  const laser = new Laser(transport, options.defaultStream, options.capabilities === undefined
322
338
  ? new AsyncOnce()
@@ -537,6 +553,12 @@ export class Laser {
537
553
  context(conversation) {
538
554
  return new ContextScope(this, conversation);
539
555
  }
556
+ /** The session accessor: one conversation seen as typed turns, a model-ready
557
+ * context, scoped memory, and checkpointed replay. Built on `context`, so a
558
+ * session is never a second store. */
559
+ sessions(options) {
560
+ return new Sessions(this, options);
561
+ }
540
562
  memory(namespace) {
541
563
  return this.memoryWith(namespace, MemoryBackend.Auto);
542
564
  }
@@ -1 +1 @@
1
- {"version":3,"file":"laser.js","sourceRoot":"","sources":["../../src/client/laser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"laser.js","sourceRoot":"","sources":["../../src/client/laser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface PublishOptions {
2
+ readonly timeoutMs: number;
3
+ readonly maxRetries: number;
4
+ readonly retryBackoffMs: number;
5
+ }
6
+ export declare function publishOptions(options?: Partial<PublishOptions>, environment?: Readonly<Record<string, string | undefined>>): PublishOptions;
7
+ export declare function publishWithin<T>(promise: Promise<T>, timeoutMs: number): Promise<T>;
8
+ //# sourceMappingURL=publish-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-options.d.ts","sourceRoot":"","sources":["../../src/client/publish-options.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAChC;AAED,wBAAgB,cAAc,CAC5B,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,EACrC,WAAW,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAe,GACtE,cAAc,CAuBhB;AAED,wBAAsB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAczF"}
@@ -0,0 +1,43 @@
1
+ import { ConfigError, TimeoutError } from "./errors.js";
2
+ export function publishOptions(options = {}, environment = process.env) {
3
+ const number = (explicit, name, fallback) => {
4
+ const raw = environment[name];
5
+ if (explicit !== undefined)
6
+ return explicit;
7
+ if (raw === undefined)
8
+ return fallback;
9
+ if (!/^\d+$/.test(raw))
10
+ throw new ConfigError(`${name} must be an integer`);
11
+ return Number(raw);
12
+ };
13
+ const resolved = {
14
+ timeoutMs: number(options.timeoutMs, "LASER_PUBLISH_TIMEOUT_MS", 60_000),
15
+ maxRetries: number(options.maxRetries, "LASER_PUBLISH_MAX_RETRIES", 3),
16
+ retryBackoffMs: number(options.retryBackoffMs, "LASER_PUBLISH_RETRY_BACKOFF_MS", 250)
17
+ };
18
+ for (const [name, value] of Object.entries(resolved)) {
19
+ const minimum = name === "maxRetries" ? 0 : 1;
20
+ const maximum = name === "maxRetries" ? 0xffff_ffff : 0x7fff_ffff;
21
+ if (!Number.isSafeInteger(value) || value < minimum || value > maximum) {
22
+ throw new ConfigError(`${name} must be an integer between ${String(minimum)} and ${String(maximum)}`);
23
+ }
24
+ }
25
+ return resolved;
26
+ }
27
+ export async function publishWithin(promise, timeoutMs) {
28
+ let timer;
29
+ try {
30
+ return await Promise.race([
31
+ promise,
32
+ new Promise((_, reject) => {
33
+ timer = setTimeout(() => {
34
+ reject(new TimeoutError("Iggy publish response"));
35
+ }, timeoutMs);
36
+ })
37
+ ]);
38
+ }
39
+ finally {
40
+ clearTimeout(timer);
41
+ }
42
+ }
43
+ //# sourceMappingURL=publish-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-options.js","sourceRoot":"","sources":["../../src/client/publish-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAQvD,MAAM,UAAU,cAAc,CAC5B,OAAO,GAA4B,EAAE,EACrC,WAAW,GAAiD,OAAO,CAAC,GAAG;IAEvE,MAAM,MAAM,GAAG,CAAC,QAA4B,EAAE,IAAY,EAAE,QAAgB,EAAU,EAAE;QACtF,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAA;QAC3C,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAA;QACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,qBAAqB,CAAC,CAAA;QAC3E,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC,CAAA;IACD,MAAM,QAAQ,GAAG;QACf,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,0BAA0B,EAAE,MAAM,CAAC;QACxE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,2BAA2B,EAAE,CAAC,CAAC;QACtE,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,gCAAgC,EAAE,GAAG,CAAC;KACtF,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7C,MAAM,OAAO,GAAG,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAA;QACjE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,OAAO,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;YACvE,MAAM,IAAI,WAAW,CACnB,GAAG,IAAI,+BAA+B,MAAM,CAAC,OAAO,CAAC,QAAQ,MAAM,CAAC,OAAO,CAAC,EAAE,CAC/E,CAAA;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,OAAmB,EAAE,SAAiB;IAC3E,IAAI,KAAgD,CAAA;IACpD,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;YACxB,OAAO;YACP,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBAC/B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACtB,MAAM,CAAC,IAAI,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAA;gBACnD,CAAC,EAAE,SAAS,CAAC,CAAA;YACf,CAAC,CAAC;SACH,CAAC,CAAA;IACJ,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;AACH,CAAC"}
@@ -1,12 +1,12 @@
1
1
  import type { Laser } from "./client/laser.js";
2
2
  import type { GraphHandle } from "./managed/graph.js";
3
- import { type ContextMessage, type ContextPolicy } from "./context.js";
3
+ import { Checkpoint, type ContextMessage, type ContextPolicy } from "./context.js";
4
4
  import { type ReplayBound } from "./conversation-state.js";
5
5
  import type { SnapshotStore } from "./snapshot.js";
6
6
  import type { BytesLike } from "./client/bytes.js";
7
7
  import type { ConversationId } from "./types/ids.js";
8
8
  import type { MemoryHandle } from "./memory/handle.js";
9
- import type { Feedback, MemoryId } from "./memory/types.js";
9
+ import type { Feedback, MemoryId, MemoryItem } from "./memory/types.js";
10
10
  export declare class ContextScope {
11
11
  private readonly laser;
12
12
  readonly conversation: ConversationId;
@@ -15,6 +15,9 @@ export declare class ContextScope {
15
15
  fetch(topics: readonly string[], count: number): Promise<readonly ContextMessage[]>;
16
16
  fetchWith(topics: readonly string[], policy: ContextPolicy): Promise<readonly ContextMessage[]>;
17
17
  block(topics: readonly string[], count: number): Promise<string>;
18
+ /** The current tail of `topics` as a `Checkpoint`: fold up to it with the
19
+ * `at` replay bound or resume after it with `from-checkpoint`. */
20
+ checkpoint(topics: readonly string[]): Promise<Checkpoint>;
18
21
  /** Binds a memory namespace or existing handle to this conversation. */
19
22
  memory(namespaceOrHandle: string | MemoryHandle): ScopedMemory;
20
23
  /** The knowledge graph `name`, reached from this scope so one conversation's
@@ -33,6 +36,9 @@ export declare class ScopedMemory {
33
36
  constructor(handle: MemoryHandle, conversation: ConversationId);
34
37
  remember(payload: Uint8Array): import("./memory/handle.js").RememberBuilder;
35
38
  recall(): import("./memory/handle.js").RecallBuilder;
39
+ /** Keyword recall for `query` within this conversation. Needs no embedder,
40
+ * so it works on the default log-backed memory. */
41
+ search(query: string, limit?: number): Promise<readonly MemoryItem[]>;
36
42
  context(tokenBudget?: number): Promise<string>;
37
43
  forget(id: MemoryId): Promise<void>;
38
44
  improve(feedback: Feedback): Promise<MemoryId>;
@@ -1 +1 @@
1
- {"version":3,"file":"context-scope.d.ts","sourceRoot":"","sources":["../src/context-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAA2B,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAC/F,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE3D,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,QAAQ,CAAC,YAAY,EAAE,cAAc;IAFvC,YACmB,KAAK,EAAE,KAAK,EACpB,YAAY,EAAE,cAAc,EACnC;IAEJ,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvD;IAED,KAAK,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAElF;IAED,SAAS,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAM9F;IAEK,KAAK,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGrE;IAED,wEAAwE;IACxE,MAAM,CAAC,iBAAiB,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY,CAM7D;IAED;;;;;wEAKoE;IACpE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAE/B;IAED,KAAK,CAAC,KAAK,EACT,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,KAAK,EACd,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,KAAK,KAAK,GACrD,OAAO,CAAC,KAAK,CAAC,CAEhB;IAED,SAAS,CAAC,KAAK,EACb,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,EAAE,KAAK,EACd,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,KAAK,EACzC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,KAAK,KAAK,GACrD,OAAO,CAAC,KAAK,CAAC,CAUhB;CACF;AAED,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAF/B,YACmB,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,cAAc,EAC3C;IAEJ,QAAQ,CAAC,OAAO,EAAE,UAAU,gDAE3B;IAED,MAAM,+CAEL;IAED,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK7C;IAED,MAAM,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAElC;IAED,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAE7C;CACF"}
1
+ {"version":3,"file":"context-scope.d.ts","sourceRoot":"","sources":["../src/context-scope.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ContextAssembler, LastN } from "./context.js";
1
+ import { Checkpoint, ContextAssembler, LastN } from "./context.js";
2
2
  import { ConversationState } from "./conversation-state.js";
3
3
  export class ContextScope {
4
4
  laser;
@@ -24,6 +24,11 @@ export class ContextScope {
24
24
  const messages = await this.fetch(topics, count);
25
25
  return messages.map((message) => new TextDecoder().decode(message.payload)).join("\n");
26
26
  }
27
+ /** The current tail of `topics` as a `Checkpoint`: fold up to it with the
28
+ * `at` replay bound or resume after it with `from-checkpoint`. */
29
+ checkpoint(topics) {
30
+ return Checkpoint.capture(this.laser, topics);
31
+ }
27
32
  /** Binds a memory namespace or existing handle to this conversation. */
28
33
  memory(namespaceOrHandle) {
29
34
  const handle = typeof namespaceOrHandle === "string"
@@ -60,6 +65,12 @@ export class ScopedMemory {
60
65
  recall() {
61
66
  return this.handle.recall().conversation(this.conversation);
62
67
  }
68
+ /** Keyword recall for `query` within this conversation. Needs no embedder,
69
+ * so it works on the default log-backed memory. */
70
+ search(query, limit) {
71
+ const recall = this.recall().keyword(query);
72
+ return (limit === undefined ? recall : recall.limit(limit)).fetch();
73
+ }
63
74
  context(tokenBudget) {
64
75
  return this.handle.context({ conversation: this.conversation }, tokenBudget === undefined ? {} : { tokenBudget });
65
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context-scope.js","sourceRoot":"","sources":["../src/context-scope.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAA2C,MAAM,cAAc,CAAA;AAC/F,OAAO,EAAE,iBAAiB,EAAoB,MAAM,yBAAyB,CAAA;AAO7E,MAAM,OAAO,YAAY;IAEJ,KAAK;IACb,YAAY;IAFvB,YACmB,KAAY,EACpB,YAA4B;qBADpB,KAAK;4BACb,YAAY;IACpB,CAAC;IAEJ,MAAM,CAAC,KAAa,EAAE,OAAkB;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;IACpF,CAAC;IAED,KAAK,CAAC,MAAyB,EAAE,KAAa;QAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,SAAS,CAAC,MAAyB,EAAE,MAAqB;QACxD,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;aAC/C,MAAM,CAAC,MAAM,CAAC;aACd,MAAM,CAAC,MAAM,CAAC;aACd,KAAK,EAAE;aACP,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAyB,EAAE,KAAa;QAClD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAChD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxF,CAAC;IAED,wEAAwE;IACxE,MAAM,CAAC,iBAAwC;QAC7C,MAAM,MAAM,GACV,OAAO,iBAAiB,KAAK,QAAQ;YACnC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC;YACtC,CAAC,CAAC,iBAAiB,CAAA;QACvB,OAAO,IAAI,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IACpD,CAAC;IAED;;;;;wEAKoE;IACpE,KAAK,CAAC,IAAY;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED,KAAK,CACH,MAAyB,EACzB,KAAkB,EAClB,OAAc,EACd,IAAsD;QAEtD,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IAC5F,CAAC;IAED,SAAS,CACP,KAAoB,EACpB,MAAyB,EACzB,OAAc,EACd,WAAyC,EACzC,IAAsD;QAEtD,OAAO,iBAAiB,CAAC,QAAQ,CAC/B,IAAI,CAAC,KAAK,EACV,KAAK,EACL,IAAI,CAAC,YAAY,EACjB,MAAM,EACN,OAAO,EACP,WAAW,EACX,IAAI,CACL,CAAA;IACH,CAAC;CACF;AAED,MAAM,OAAO,YAAY;IAEJ,MAAM;IACN,YAAY;IAF/B,YACmB,MAAoB,EACpB,YAA4B;sBAD5B,MAAM;4BACN,YAAY;IAC5B,CAAC;IAEJ,QAAQ,CAAC,OAAmB;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACtE,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC7D,CAAC;IAED,OAAO,CAAC,WAAoB;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,EACnC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CACjD,CAAA;IACH,CAAC;IAED,MAAM,CAAC,EAAY;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,CAAA;IACpE,CAAC;IAED,OAAO,CAAC,QAAkB;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,CAAA;IAC3E,CAAC;CACF"}
1
+ {"version":3,"file":"context-scope.js","sourceRoot":"","sources":["../src/context-scope.ts"],"names":[],"mappings":"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"}
package/dist/context.d.ts CHANGED
@@ -8,6 +8,25 @@ export interface ContextMessage {
8
8
  readonly payload: Uint8Array;
9
9
  readonly envelope?: AgentEnvelope;
10
10
  readonly timestampMicros: bigint;
11
+ /** The name of the topic the message was read from. */
12
+ readonly topic: string;
13
+ }
14
+ /** A point in a conversation's log: the next offset each partition of each
15
+ * topic will write, as captured by `ContextScope.checkpoint`. A client-side
16
+ * bookmark keyed by topic name, never a record on the log. `toJSON` and
17
+ * `Checkpoint.fromJSON` persist it. */
18
+ export declare class Checkpoint {
19
+ private readonly perTopic;
20
+ private constructor();
21
+ static empty(): Checkpoint;
22
+ static capture(laser: Laser, topics: readonly string[]): Promise<Checkpoint>;
23
+ /** The per-partition offsets for `topic`, or `undefined` when the checkpoint
24
+ * was not taken over that topic. */
25
+ topicOffsets(topic: string): ReadonlyMap<number, bigint> | undefined;
26
+ get topics(): readonly string[];
27
+ isEmpty(): boolean;
28
+ toJSON(): Record<string, Record<string, string>>;
29
+ static fromJSON(value: unknown): Checkpoint;
11
30
  }
12
31
  export interface ContextPolicy {
13
32
  select(history: readonly ContextMessage[]): readonly ContextMessage[];
@@ -39,6 +58,8 @@ interface ContextAssemblerOptions {
39
58
  readonly topics: readonly string[];
40
59
  readonly policy: ContextPolicy;
41
60
  readonly fromOffsets: ReadonlyMap<number, bigint>;
61
+ readonly fromCheckpoint?: Checkpoint;
62
+ readonly toCheckpoint?: Checkpoint;
42
63
  }
43
64
  export declare class ContextAssemblerBuilder {
44
65
  private readonly conversation;
@@ -46,11 +67,19 @@ export declare class ContextAssemblerBuilder {
46
67
  private selectedTopics;
47
68
  private selectedPolicy;
48
69
  private offsets;
70
+ private resumeFrom;
71
+ private stopAt;
49
72
  constructor(conversation: ConversationId);
50
73
  acrossSubconversations(value?: boolean): this;
51
74
  topics(topics: readonly string[]): this;
52
75
  policy(policy: ContextPolicy): this;
76
+ /** One offset map shared by every topic. `fromCheckpoint` takes precedence
77
+ * for the topics it names. */
53
78
  fromOffsets(offsets: ReadonlyMap<number, bigint>): this;
79
+ /** Resume after `checkpoint`, per topic and partition, and read to the tail. */
80
+ fromCheckpoint(checkpoint: Checkpoint): this;
81
+ /** Stop at `checkpoint`, per topic and partition: a point-in-time read. */
82
+ toCheckpoint(checkpoint: Checkpoint): this;
54
83
  build(): ContextAssembler;
55
84
  }
56
85
  export declare class ContextAssembler {
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAWpD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED;;;uCAGuC;AACvC,qBAAa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAD3B,OAAO,eAEH;IAEJ,MAAM,CAAC,KAAK,IAAI,UAAU,CAEzB;IAED,OAAa,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAKjF;IAED;wCACoC;IACpC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAEnE;IAED,IAAI,MAAM,IAAI,SAAS,MAAM,EAAE,CAE9B;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAS/C;IAED,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CA0B1C;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,cAAc,EAAE,CAAA;CACtE;AAED,qBAAa,KAAM,YAAW,aAAa;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM;IAAlC,YAAqB,KAAK,EAAE,MAAM,EAAI;IAEtC,MAAM,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,cAAc,EAAE,CAEpE;CACF;AAED,qBAAa,UAAW,YAAW,aAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C,YAAY,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,EAEpC;IAED,MAAM,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,cAAc,EAAE,CAKpE;CACF;AAED,qBAAa,YAAa,YAAW,aAAa;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE;IAAvD,YAAqB,QAAQ,EAAE,SAAS,aAAa,EAAE,EAAI;IAE3D,MAAM,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,cAAc,EAAE,CAKpE;CACF;AAED,qBAAa,WAAY,YAAW,aAAa;IAE7C,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAF3B,YACW,SAAS,EAAE,MAAM,EACT,QAAQ,GAAE,CAAC,OAAO,EAAE,cAAc,KAAK,MACb,EACzC;IAEJ,MAAM,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,cAAc,EAAE,CAapE;CACF;AAED,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAA;IACrC,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAA;IACxC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,UAAU,CAAA;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAA;CACnC;AAED,qBAAa,uBAAuB;IAQtB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAPzC,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,cAAc,CAAiE;IACvF,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,MAAM,CAAwB;IAEtC,YAA6B,YAAY,EAAE,cAAc,EAAI;IAE7D,sBAAsB,CAAC,KAAK,UAAO,GAAG,IAAI,CAGzC;IAED,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAGtC;IAED,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAGlC;IAED;kCAC8B;IAC9B,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAGtD;IAED,gFAAgF;IAChF,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAG3C;IAED,2EAA2E;IAC3E,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAGzC;IAED,KAAK,IAAI,gBAAgB,CAUxB;CACF;AAED,qBAAa,gBAAgB;IAKf,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,GAAG,uBAAuB,CAEpE;IAED,YAA6B,OAAO,EAAE,uBAAuB,EAAI;IAE3D,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAsD/D;IAED,OAAO,CAAC,OAAO;CAQhB"}
package/dist/context.js CHANGED
@@ -7,6 +7,60 @@ const READ_BATCH = 1_000;
7
7
  // history. Selection policies want the newest records, so the oldest are the
8
8
  // ones dropped.
9
9
  const MAX_CONTEXT_RECORDS = 10_000;
10
+ /** A point in a conversation's log: the next offset each partition of each
11
+ * topic will write, as captured by `ContextScope.checkpoint`. A client-side
12
+ * bookmark keyed by topic name, never a record on the log. `toJSON` and
13
+ * `Checkpoint.fromJSON` persist it. */
14
+ export class Checkpoint {
15
+ perTopic;
16
+ constructor(perTopic) {
17
+ this.perTopic = perTopic;
18
+ }
19
+ static empty() {
20
+ return new Checkpoint(new Map());
21
+ }
22
+ static async capture(laser, topics) {
23
+ const entries = await Promise.all(topics.map(async (topic) => [topic, await laser.topic(topic).tailOffsets()]));
24
+ return new Checkpoint(new Map(entries));
25
+ }
26
+ /** The per-partition offsets for `topic`, or `undefined` when the checkpoint
27
+ * was not taken over that topic. */
28
+ topicOffsets(topic) {
29
+ return this.perTopic.get(topic);
30
+ }
31
+ get topics() {
32
+ return [...this.perTopic.keys()];
33
+ }
34
+ isEmpty() {
35
+ return this.perTopic.size === 0;
36
+ }
37
+ toJSON() {
38
+ return Object.fromEntries([...this.perTopic].map(([topic, offsets]) => [
39
+ topic,
40
+ Object.fromEntries([...offsets].map(([partition, offset]) => [String(partition), String(offset)]))
41
+ ]));
42
+ }
43
+ static fromJSON(value) {
44
+ const parsed = typeof value === "string" ? JSON.parse(value) : value;
45
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
46
+ throw new TypeError("a checkpoint is an object keyed by topic name");
47
+ }
48
+ const perTopic = new Map();
49
+ for (const [topic, offsets] of Object.entries(parsed)) {
50
+ if (typeof offsets !== "object" || offsets === null || Array.isArray(offsets)) {
51
+ throw new TypeError(`checkpoint topic ${topic} is not an object keyed by partition`);
52
+ }
53
+ perTopic.set(topic, new Map(Object.entries(offsets).map(([partition, offset]) => {
54
+ if (!/^\d+$/.test(partition) ||
55
+ (typeof offset !== "string" && typeof offset !== "number")) {
56
+ throw new TypeError(`checkpoint topic ${topic} has an invalid partition entry`);
57
+ }
58
+ return [Number(partition), BigInt(offset)];
59
+ })));
60
+ }
61
+ return new Checkpoint(perTopic);
62
+ }
63
+ }
10
64
  export class LastN {
11
65
  count;
12
66
  constructor(count) {
@@ -67,6 +121,8 @@ export class ContextAssemblerBuilder {
67
121
  selectedTopics = [AgentTopic.Commands, AgentTopic.Responses];
68
122
  selectedPolicy = new LastN(50);
69
123
  offsets = new Map();
124
+ resumeFrom;
125
+ stopAt;
70
126
  constructor(conversation) {
71
127
  this.conversation = conversation;
72
128
  }
@@ -82,17 +138,31 @@ export class ContextAssemblerBuilder {
82
138
  this.selectedPolicy = policy;
83
139
  return this;
84
140
  }
141
+ /** One offset map shared by every topic. `fromCheckpoint` takes precedence
142
+ * for the topics it names. */
85
143
  fromOffsets(offsets) {
86
144
  this.offsets = new Map(offsets);
87
145
  return this;
88
146
  }
147
+ /** Resume after `checkpoint`, per topic and partition, and read to the tail. */
148
+ fromCheckpoint(checkpoint) {
149
+ this.resumeFrom = checkpoint;
150
+ return this;
151
+ }
152
+ /** Stop at `checkpoint`, per topic and partition: a point-in-time read. */
153
+ toCheckpoint(checkpoint) {
154
+ this.stopAt = checkpoint;
155
+ return this;
156
+ }
89
157
  build() {
90
158
  return new ContextAssembler({
91
159
  conversation: this.conversation,
92
160
  acrossSubconversations: this.acrossChildren,
93
161
  topics: this.selectedTopics,
94
162
  policy: this.selectedPolicy,
95
- fromOffsets: this.offsets
163
+ fromOffsets: this.offsets,
164
+ ...(this.resumeFrom === undefined ? {} : { fromCheckpoint: this.resumeFrom }),
165
+ ...(this.stopAt === undefined ? {} : { toCheckpoint: this.stopAt })
96
166
  });
97
167
  }
98
168
  }
@@ -106,9 +176,20 @@ export class ContextAssembler {
106
176
  }
107
177
  async assemble(laser) {
108
178
  const perTopic = await Promise.all(this.options.topics.map(async (topic, topicIndex) => {
109
- const cursor = await laser.topic(topic).replay({ batchSize: READ_BATCH });
110
- cursor.fromOffsets(this.options.fromOffsets);
111
179
  const collected = [];
180
+ // A topic nobody has written yet has no history, same as in Rust.
181
+ if ((await laser.topic(topic).partitionCount()) === undefined)
182
+ return collected;
183
+ const cursor = await laser.topic(topic).replay({ batchSize: READ_BATCH });
184
+ const resume = this.options.fromCheckpoint?.topicOffsets(topic);
185
+ cursor.fromOffsets(resume ?? this.options.fromOffsets);
186
+ const stop = this.options.toCheckpoint;
187
+ if (stop !== undefined) {
188
+ // A checkpoint holds the next offset to write, so a partition it does
189
+ // not name existed only after it and reads as empty.
190
+ const ends = stop.topicOffsets(topic) ?? new Map();
191
+ cursor.until(new Map([...cursor.offsets.keys()].map((partition) => [partition, ends.get(partition) ?? 0n])));
192
+ }
112
193
  for (;;) {
113
194
  const records = await cursor.poll();
114
195
  if (records.length === 0)
@@ -125,6 +206,7 @@ export class ContextAssembler {
125
206
  ? { envelope: decoded.message.envelope }
126
207
  : {}),
127
208
  timestampMicros: record.timestampMicros ?? 0n,
209
+ topic,
128
210
  topicIndex
129
211
  });
130
212
  if (collected.length > MAX_CONTEXT_RECORDS)