@laserdata/laser-sdk 0.0.1-rc.3 → 0.0.1

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 (92) hide show
  1. package/README.md +5 -5
  2. package/dist/agent/agdx.d.ts +2 -2
  3. package/dist/agent/agdx.d.ts.map +1 -1
  4. package/dist/agent/agdx.js +33 -22
  5. package/dist/agent/agdx.js.map +1 -1
  6. package/dist/agent/builder.d.ts +13 -2
  7. package/dist/agent/builder.d.ts.map +1 -1
  8. package/dist/agent/builder.js +38 -2
  9. package/dist/agent/builder.js.map +1 -1
  10. package/dist/agent/context.d.ts.map +1 -1
  11. package/dist/agent/context.js +5 -3
  12. package/dist/agent/context.js.map +1 -1
  13. package/dist/agent/contract.d.ts +1 -1
  14. package/dist/agent/contract.d.ts.map +1 -1
  15. package/dist/agent/contract.js +17 -19
  16. package/dist/agent/contract.js.map +1 -1
  17. package/dist/agent/registry.d.ts +1 -1
  18. package/dist/agent/registry.d.ts.map +1 -1
  19. package/dist/agent/registry.js +31 -16
  20. package/dist/agent/registry.js.map +1 -1
  21. package/dist/agent/reliable-consumer.d.ts +10 -3
  22. package/dist/agent/reliable-consumer.d.ts.map +1 -1
  23. package/dist/agent/reliable-consumer.js +80 -12
  24. package/dist/agent/reliable-consumer.js.map +1 -1
  25. package/dist/agent/replies.d.ts +5 -3
  26. package/dist/agent/replies.d.ts.map +1 -1
  27. package/dist/agent/replies.js +36 -10
  28. package/dist/agent/replies.js.map +1 -1
  29. package/dist/bridges/a2a.d.ts +1 -1
  30. package/dist/bridges/a2a.d.ts.map +1 -1
  31. package/dist/bridges/a2a.js +1 -1
  32. package/dist/bridges/a2a.js.map +1 -1
  33. package/dist/client/capabilities.d.ts +1 -0
  34. package/dist/client/capabilities.d.ts.map +1 -1
  35. package/dist/client/capabilities.js +56 -17
  36. package/dist/client/capabilities.js.map +1 -1
  37. package/dist/client/laser.d.ts +22 -8
  38. package/dist/client/laser.d.ts.map +1 -1
  39. package/dist/client/laser.js +101 -39
  40. package/dist/client/laser.js.map +1 -1
  41. package/dist/govern.d.ts +11 -3
  42. package/dist/govern.d.ts.map +1 -1
  43. package/dist/govern.js +76 -10
  44. package/dist/govern.js.map +1 -1
  45. package/dist/iggy/apache-iggy.d.ts +6 -1
  46. package/dist/iggy/apache-iggy.d.ts.map +1 -1
  47. package/dist/iggy/apache-iggy.js +157 -35
  48. package/dist/iggy/apache-iggy.js.map +1 -1
  49. package/dist/managed/rbac.d.ts.map +1 -1
  50. package/dist/managed/rbac.js +11 -3
  51. package/dist/managed/rbac.js.map +1 -1
  52. package/dist/runtime/async-once.d.ts +1 -0
  53. package/dist/runtime/async-once.d.ts.map +1 -1
  54. package/dist/runtime/async-once.js +3 -0
  55. package/dist/runtime/async-once.js.map +1 -1
  56. package/dist/signing.d.ts +5 -5
  57. package/dist/signing.d.ts.map +1 -1
  58. package/dist/signing.js +68 -23
  59. package/dist/signing.js.map +1 -1
  60. package/dist/wire/authz.d.ts +3 -0
  61. package/dist/wire/authz.d.ts.map +1 -1
  62. package/dist/wire/authz.js +23 -5
  63. package/dist/wire/authz.js.map +1 -1
  64. package/dist/wire/cbor.d.ts +1 -0
  65. package/dist/wire/cbor.d.ts.map +1 -1
  66. package/dist/wire/cbor.js +16 -2
  67. package/dist/wire/cbor.js.map +1 -1
  68. package/dist/wire/codes.d.ts +1 -0
  69. package/dist/wire/codes.d.ts.map +1 -1
  70. package/dist/wire/codes.js +24 -0
  71. package/dist/wire/codes.js.map +1 -1
  72. package/dist/wire/forward.d.ts +1 -0
  73. package/dist/wire/forward.d.ts.map +1 -1
  74. package/dist/wire/forward.js +5 -0
  75. package/dist/wire/forward.js.map +1 -1
  76. package/dist/wire/hello.d.ts +1 -0
  77. package/dist/wire/hello.d.ts.map +1 -1
  78. package/dist/wire/hello.js +4 -1
  79. package/dist/wire/hello.js.map +1 -1
  80. package/dist/wire/index.d.ts +1 -0
  81. package/dist/wire/index.d.ts.map +1 -1
  82. package/dist/wire/index.js +1 -0
  83. package/dist/wire/index.js.map +1 -1
  84. package/dist/wire/keys.d.ts +22 -0
  85. package/dist/wire/keys.d.ts.map +1 -0
  86. package/dist/wire/keys.js +56 -0
  87. package/dist/wire/keys.js.map +1 -0
  88. package/dist/wire/mutation.d.ts +9 -0
  89. package/dist/wire/mutation.d.ts.map +1 -1
  90. package/dist/wire/mutation.js +35 -1
  91. package/dist/wire/mutation.js.map +1 -1
  92. package/package.json +9 -7
@@ -28,39 +28,78 @@ export function managedCapabilitiesWithUnknownVersions() {
28
28
  }
29
29
  export function managedCapabilitiesFrom(announce) {
30
30
  const versions = announce.versions;
31
+ const ready = announce.ready !== false;
31
32
  const consistency = opVersionsHasFeature(versions, Feature.STRONG_CONSISTENCY)
32
33
  ? "strong"
33
34
  : opVersionsHasFeature(versions, Feature.READ_YOUR_WRITES)
34
35
  ? "readYourWrites"
35
36
  : "eventual";
36
37
  return {
37
- ...managedBase(),
38
+ ...(ready ? managedBase() : OPEN_CAPABILITIES),
38
39
  query: {
39
- available: true,
40
- consistency,
41
- keyword: opVersionsHasFeature(versions, Feature.KEYWORD_SEARCH)
40
+ available: ready && versions.query > 0,
41
+ consistency: ready ? consistency : "eventual",
42
+ keyword: ready && opVersionsHasFeature(versions, Feature.KEYWORD_SEARCH)
42
43
  },
43
44
  kv: {
44
- available: true,
45
- cas: opVersionsHasFeature(versions, Feature.KV_CAS),
46
- casFenced: opVersionsHasFeature(versions, Feature.KV_CAS_FENCED)
45
+ available: ready && versions.kv > 0,
46
+ cas: ready && opVersionsHasFeature(versions, Feature.KV_CAS),
47
+ casFenced: ready && opVersionsHasFeature(versions, Feature.KV_CAS_FENCED)
47
48
  },
48
- graph: versions.graph > 0,
49
- agentWorkflow: opVersionsHasFeature(versions, Feature.AGENT_WORKFLOW),
50
- watch: opVersionsHasFeature(versions, Feature.WATCH),
49
+ graph: ready && versions.graph > 0,
50
+ forks: ready && versions.fork > 0,
51
+ agentWorkflow: ready && opVersionsHasFeature(versions, Feature.AGENT_WORKFLOW),
52
+ watch: ready && opVersionsHasFeature(versions, Feature.WATCH),
51
53
  authz: opVersionsHasFeature(versions, Feature.AUTHZ),
52
54
  versions,
53
- backends: announce.backends,
55
+ backends: ready ? announce.backends : [],
54
56
  ...(announce.topology !== undefined ? { topology: announce.topology } : {})
55
57
  };
56
58
  }
57
- export function servesConsistency(capabilities, level) {
58
- const rank = {
59
- eventual: 0,
60
- readYourWrites: 1,
61
- strong: 2
59
+ const CONSISTENCY_RANK = {
60
+ eventual: 0,
61
+ readYourWrites: 1,
62
+ strong: 2
63
+ };
64
+ export function mergeCapabilities(configured, announced) {
65
+ const consistency = CONSISTENCY_RANK[announced.query.consistency] > CONSISTENCY_RANK[configured.query.consistency]
66
+ ? announced.query.consistency
67
+ : configured.query.consistency;
68
+ return {
69
+ managed: configured.managed || announced.managed,
70
+ query: {
71
+ available: configured.query.available || announced.query.available,
72
+ consistency,
73
+ keyword: configured.query.keyword || announced.query.keyword
74
+ },
75
+ kv: {
76
+ available: configured.kv.available || announced.kv.available,
77
+ cas: configured.kv.cas || announced.kv.cas,
78
+ casFenced: configured.kv.casFenced || announced.kv.casFenced
79
+ },
80
+ graph: configured.graph || announced.graph,
81
+ forks: configured.forks || announced.forks,
82
+ a2aGateway: configured.a2aGateway || announced.a2aGateway,
83
+ agentWorkflow: configured.agentWorkflow || announced.agentWorkflow,
84
+ watch: configured.watch || announced.watch,
85
+ authz: configured.authz || announced.authz,
86
+ sessions: configured.sessions || announced.sessions,
87
+ durableDedup: configured.durableDedup || announced.durableDedup,
88
+ ...(announced.versions !== undefined
89
+ ? { versions: announced.versions }
90
+ : configured.versions !== undefined
91
+ ? { versions: configured.versions }
92
+ : {}),
93
+ backends: announced.managed ? announced.backends : configured.backends,
94
+ ...(announced.topology !== undefined
95
+ ? { topology: announced.topology }
96
+ : configured.topology !== undefined
97
+ ? { topology: configured.topology }
98
+ : {})
62
99
  };
63
- return rank[level] <= rank[capabilities.query.consistency];
100
+ }
101
+ export function servesConsistency(capabilities, level) {
102
+ return CONSISTENCY_RANK[level] <= CONSISTENCY_RANK[capabilities.query.consistency];
64
103
  }
65
104
  export function requireCapability(capabilities, surface) {
66
105
  const available = surface === "managed"
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/client/capabilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/client/capabilities.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ import { type StreamEvent } from "../agent/assembler.js";
11
11
  import { AgentRegistry, ClientMetadataRequest, type AgentPresenceInput } from "../agent/registry.js";
12
12
  import { Stream } from "../stream/stream.js";
13
13
  import { ContextScope } from "../context-scope.js";
14
- import { GovernorState, type ActionGovernor, type GovernorMode, type PolicyEvidence } from "../govern.js";
14
+ import { GovernorState, type ActionGovernor, type GovernorMode, type GovernorRetention, type PolicyEvidence } from "../govern.js";
15
15
  import { MemoryBackend, MemoryHandle } from "../memory/handle.js";
16
16
  import { MemoryTopicBuilder } from "../memory/topic.js";
17
17
  import type { Embedder, Memory } from "../memory/types.js";
@@ -46,6 +46,12 @@ interface LaserTopology {
46
46
  readonly deadLetterTopic: string;
47
47
  readonly changesTopic: string;
48
48
  }
49
+ interface TopologyOverrides {
50
+ readonly opsStream: boolean;
51
+ readonly controlTopic: boolean;
52
+ readonly deadLetterTopic: boolean;
53
+ readonly changesTopic: boolean;
54
+ }
49
55
  interface LaserBuildOptions {
50
56
  readonly connectionString?: string;
51
57
  readonly address?: {
@@ -67,10 +73,12 @@ interface LaserBuildOptions {
67
73
  readonly governor?: {
68
74
  readonly policy: ActionGovernor;
69
75
  readonly mode: GovernorMode;
76
+ readonly retention: Partial<GovernorRetention>;
70
77
  };
71
78
  readonly observer: LaserObserver;
72
79
  readonly verifier?: KeyRegistry;
73
80
  readonly topology: LaserTopology;
81
+ readonly topologyOverrides: TopologyOverrides;
74
82
  }
75
83
  export interface InjectedClientOptions {
76
84
  readonly ownership?: ClientOwnership;
@@ -91,6 +99,7 @@ export declare class LaserBuilder {
91
99
  private observerValue;
92
100
  private verifierValue;
93
101
  private topologyValue;
102
+ private topologyOverridesValue;
94
103
  constructor(create: (options: LaserBuildOptions) => Promise<Laser>);
95
104
  connectionString(value: string): this;
96
105
  address(host: string, port?: number): this;
@@ -101,7 +110,7 @@ export declare class LaserBuilder {
101
110
  }): this;
102
111
  defaultStream(value: string): this;
103
112
  capabilities(value: Capabilities): this;
104
- governor(policy: ActionGovernor, mode: GovernorMode): this;
113
+ governor(policy: ActionGovernor, mode: GovernorMode, retention?: Partial<GovernorRetention>): this;
105
114
  observer(value: LaserObserver): this;
106
115
  verifier(value: KeyRegistry): this;
107
116
  opsStream(value: string): this;
@@ -135,13 +144,17 @@ export declare class Laser implements AsyncDisposable {
135
144
  private readonly observer;
136
145
  private readonly governor?;
137
146
  private readonly verifier?;
147
+ private readonly configuredTopology;
148
+ private readonly topologyOverrides;
149
+ private readonly configuredCapabilities;
150
+ private readonly capabilityOverride?;
138
151
  private readonly ownsClosure;
139
152
  private closed;
140
- readonly opsStream: string;
141
- readonly controlTopic: string;
142
- readonly deadLetterTopic: string;
143
- readonly changesTopic: string;
144
153
  private constructor();
154
+ get opsStream(): string;
155
+ get controlTopic(): string;
156
+ get deadLetterTopic(): string;
157
+ get changesTopic(): string;
145
158
  static builder(): LaserBuilder;
146
159
  static fromIggyClient(client: IggyClient, options?: InjectedClientOptions): Promise<Laser>;
147
160
  static connect(connectionString: string): Promise<Laser>;
@@ -150,13 +163,14 @@ export declare class Laser implements AsyncDisposable {
150
163
  static local(): Promise<Laser>;
151
164
  withDefaultStream(stream: string): Laser;
152
165
  withCapabilities(capabilities: Capabilities): Laser;
153
- withGovernor(governor: ActionGovernor, mode: GovernorMode): Laser;
166
+ withGovernor(governor: ActionGovernor, mode: GovernorMode, retention?: Partial<GovernorRetention>): Laser;
154
167
  withVerifier(verifier: KeyRegistry): Laser;
155
168
  withObserver(observer: LaserObserver): Laser;
156
- private topology;
157
169
  private observe;
158
170
  private managedTransport;
159
171
  capabilities(): Promise<Capabilities>;
172
+ refreshCapabilities(): Promise<Capabilities>;
173
+ private applyAdvertisedTopology;
160
174
  [INTERNAL_TRANSPORT](): LaserTransport;
161
175
  [INTERNAL_VERIFIER](): KeyRegistry | undefined;
162
176
  [INTERNAL_REPLY_HUB](topic: string): Promise<ReplyHub>;
@@ -1 +1 @@
1
- {"version":3,"file":"laser.d.ts","sourceRoot":"","sources":["../../src/client/laser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"laser.d.ts","sourceRoot":"","sources":["../../src/client/laser.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ import { encodeNamed } from "../wire/cbor.js";
41
41
  import { ConfigError, NoStreamError, PresenceConflictError, ProtocolError, QueryExecutionError, InvalidError, UnsupportedError } from "./errors.js";
42
42
  import { executeManaged } from "./managed.js";
43
43
  import { INTERNAL_GOVERN, INTERNAL_REPLY_HUB, INTERNAL_TRANSPORT, INTERNAL_VERIFIER } from "./internals.js";
44
- import { OPEN_CAPABILITIES, managedCapabilitiesFrom, managedCapabilitiesWithUnknownVersions, servesConsistency } from "./capabilities.js";
44
+ import { OPEN_CAPABILITIES, managedCapabilitiesFrom, mergeCapabilities, servesConsistency } from "./capabilities.js";
45
45
  const LOCAL_CONNECTION_STRING = "iggy:iggy@127.0.0.1:8090";
46
46
  const DEFAULT_TOPOLOGY = {
47
47
  opsStream: OPS_STREAM,
@@ -49,6 +49,12 @@ const DEFAULT_TOPOLOGY = {
49
49
  deadLetterTopic: DLQ_TOPIC,
50
50
  changesTopic: CHANGES_TOPIC
51
51
  };
52
+ const NO_TOPOLOGY_OVERRIDES = {
53
+ opsStream: false,
54
+ controlTopic: false,
55
+ deadLetterTopic: false,
56
+ changesTopic: false
57
+ };
52
58
  export class LaserBuilder {
53
59
  create;
54
60
  connectionStringValue;
@@ -62,6 +68,7 @@ export class LaserBuilder {
62
68
  observerValue = NOOP_OBSERVER;
63
69
  verifierValue;
64
70
  topologyValue = DEFAULT_TOPOLOGY;
71
+ topologyOverridesValue = NO_TOPOLOGY_OVERRIDES;
65
72
  constructor(create) {
66
73
  this.create = create;
67
74
  }
@@ -94,8 +101,8 @@ export class LaserBuilder {
94
101
  this.capabilitiesValue = value;
95
102
  return this;
96
103
  }
97
- governor(policy, mode) {
98
- this.governorValue = { policy, mode };
104
+ governor(policy, mode, retention = {}) {
105
+ this.governorValue = { policy, mode, retention };
99
106
  return this;
100
107
  }
101
108
  observer(value) {
@@ -108,18 +115,22 @@ export class LaserBuilder {
108
115
  }
109
116
  opsStream(value) {
110
117
  this.topologyValue = { ...this.topologyValue, opsStream: value };
118
+ this.topologyOverridesValue = { ...this.topologyOverridesValue, opsStream: true };
111
119
  return this;
112
120
  }
113
121
  controlTopic(value) {
114
122
  this.topologyValue = { ...this.topologyValue, controlTopic: value };
123
+ this.topologyOverridesValue = { ...this.topologyOverridesValue, controlTopic: true };
115
124
  return this;
116
125
  }
117
126
  deadLetterTopic(value) {
118
127
  this.topologyValue = { ...this.topologyValue, deadLetterTopic: value };
128
+ this.topologyOverridesValue = { ...this.topologyOverridesValue, deadLetterTopic: true };
119
129
  return this;
120
130
  }
121
131
  changesTopic(value) {
122
132
  this.topologyValue = { ...this.topologyValue, changesTopic: value };
133
+ this.topologyOverridesValue = { ...this.topologyOverridesValue, changesTopic: true };
123
134
  return this;
124
135
  }
125
136
  connect() {
@@ -161,13 +172,18 @@ export class LaserBuilder {
161
172
  ...(this.governorValue !== undefined ? { governor: this.governorValue } : {}),
162
173
  observer: this.observerValue,
163
174
  ...(this.verifierValue !== undefined ? { verifier: this.verifierValue } : {}),
164
- topology: this.topologyValue
175
+ topology: this.topologyValue,
176
+ topologyOverrides: this.topologyOverridesValue
165
177
  });
166
178
  }
167
179
  }
168
180
  export { INTERNAL_GOVERN, INTERNAL_REPLY_HUB, INTERNAL_TRANSPORT, INTERNAL_VERIFIER } from "./internals.js";
169
181
  function newSharedState() {
170
- return { registryCaches: new Map(), replyHubs: new Map() };
182
+ return {
183
+ registryCaches: new Map(),
184
+ replyHubs: new Map(),
185
+ announcedTopology: DEFAULT_TOPOLOGY
186
+ };
171
187
  }
172
188
  const WELL_KNOWN_AGENT_TOPICS = [
173
189
  AgentTopic.Commands,
@@ -220,13 +236,13 @@ async function probeCapabilities(transport) {
220
236
  return OPEN_CAPABILITIES;
221
237
  }
222
238
  if (reply.byteLength === 0) {
223
- return managedCapabilitiesWithUnknownVersions();
239
+ return OPEN_CAPABILITIES;
224
240
  }
225
241
  try {
226
242
  return managedCapabilitiesFrom(decodeBackendAnnounce(reply));
227
243
  }
228
244
  catch {
229
- return managedCapabilitiesWithUnknownVersions();
245
+ return OPEN_CAPABILITIES;
230
246
  }
231
247
  }
232
248
  /** Owns one Apache Iggy connection and addresses every stream available through it. */
@@ -238,13 +254,13 @@ export class Laser {
238
254
  observer;
239
255
  governor;
240
256
  verifier;
257
+ configuredTopology;
258
+ topologyOverrides;
259
+ configuredCapabilities;
260
+ capabilityOverride;
241
261
  ownsClosure;
242
262
  closed = false;
243
- opsStream;
244
- controlTopic;
245
- deadLetterTopic;
246
- changesTopic;
247
- constructor(transport, defaultStream, capabilitiesOnce, shared, observer = NOOP_OBSERVER, governor, verifier, topology = DEFAULT_TOPOLOGY, ownsClosure = true) {
263
+ constructor(transport, defaultStream, capabilitiesOnce, shared, observer = NOOP_OBSERVER, governor, verifier, configuredTopology = DEFAULT_TOPOLOGY, topologyOverrides = NO_TOPOLOGY_OVERRIDES, configuredCapabilities = OPEN_CAPABILITIES, capabilityOverride, ownsClosure = true) {
248
264
  this.transport = transport;
249
265
  this.defaultStream = defaultStream;
250
266
  this.capabilitiesOnce = capabilitiesOnce;
@@ -252,17 +268,37 @@ export class Laser {
252
268
  this.observer = observer;
253
269
  this.governor = governor;
254
270
  this.verifier = verifier;
271
+ this.configuredTopology = configuredTopology;
272
+ this.topologyOverrides = topologyOverrides;
273
+ this.configuredCapabilities = configuredCapabilities;
274
+ this.capabilityOverride = capabilityOverride;
255
275
  this.ownsClosure = ownsClosure;
256
- this.opsStream = topology.opsStream;
257
- this.controlTopic = topology.controlTopic;
258
- this.deadLetterTopic = topology.deadLetterTopic;
259
- this.changesTopic = topology.changesTopic;
276
+ }
277
+ get opsStream() {
278
+ return this.topologyOverrides.opsStream
279
+ ? this.configuredTopology.opsStream
280
+ : this.shared.announcedTopology.opsStream;
281
+ }
282
+ get controlTopic() {
283
+ return this.topologyOverrides.controlTopic
284
+ ? this.configuredTopology.controlTopic
285
+ : this.shared.announcedTopology.controlTopic;
286
+ }
287
+ get deadLetterTopic() {
288
+ return this.topologyOverrides.deadLetterTopic
289
+ ? this.configuredTopology.deadLetterTopic
290
+ : this.shared.announcedTopology.deadLetterTopic;
291
+ }
292
+ get changesTopic() {
293
+ return this.topologyOverrides.changesTopic
294
+ ? this.configuredTopology.changesTopic
295
+ : this.shared.announcedTopology.changesTopic;
260
296
  }
261
297
  static builder() {
262
298
  return new LaserBuilder(async (options) => {
263
299
  let transport;
264
300
  if (options.client !== undefined) {
265
- transport = ApacheIggyTransport.fromClient(options.client, options.ownership);
301
+ transport = await ApacheIggyTransport.fromClient(options.client, options.ownership);
266
302
  }
267
303
  else if (options.address !== undefined) {
268
304
  const credentials = options.credentials ?? {
@@ -281,11 +317,14 @@ export class Laser {
281
317
  else {
282
318
  transport = await ApacheIggyTransport.connect(options.connectionString ?? LOCAL_CONNECTION_STRING);
283
319
  }
284
- return new Laser(transport, options.defaultStream, options.capabilities === undefined
320
+ const laser = new Laser(transport, options.defaultStream, options.capabilities === undefined
285
321
  ? new AsyncOnce()
286
322
  : AsyncOnce.resolved(options.capabilities), newSharedState(), options.observer, options.governor === undefined
287
323
  ? undefined
288
- : new GovernorState(options.governor.policy, options.governor.mode), options.verifier, options.topology);
324
+ : new GovernorState(options.governor.policy, options.governor.mode, undefined, options.governor.retention), options.verifier, options.topology, options.topologyOverrides, options.capabilities ?? OPEN_CAPABILITIES);
325
+ if (options.capabilities === undefined)
326
+ await laser.capabilities();
327
+ return laser;
289
328
  });
290
329
  }
291
330
  static fromIggyClient(client, options = {}) {
@@ -300,11 +339,15 @@ export class Laser {
300
339
  }
301
340
  static async connect(connectionString) {
302
341
  const transport = await ApacheIggyTransport.connect(connectionString);
303
- return new Laser(transport, undefined, new AsyncOnce(), newSharedState());
342
+ const laser = new Laser(transport, undefined, new AsyncOnce(), newSharedState());
343
+ await laser.capabilities();
344
+ return laser;
304
345
  }
305
346
  static async connectWithStream(connectionString, stream) {
306
347
  const transport = await ApacheIggyTransport.connect(connectionString);
307
- return new Laser(transport, stream, new AsyncOnce(), newSharedState());
348
+ const laser = new Laser(transport, stream, new AsyncOnce(), newSharedState());
349
+ await laser.capabilities();
350
+ return laser;
308
351
  }
309
352
  static async connectEnv(env = process.env) {
310
353
  const connectionString = env["LASER_CONNECTION_STRING"];
@@ -320,27 +363,19 @@ export class Laser {
320
363
  return Laser.connect(LOCAL_CONNECTION_STRING);
321
364
  }
322
365
  withDefaultStream(stream) {
323
- return new Laser(this.transport, stream, this.capabilitiesOnce, this.shared, this.observer, this.governor, this.verifier, this.topology(), false);
366
+ return new Laser(this.transport, stream, this.capabilitiesOnce, this.shared, this.observer, this.governor, this.verifier, this.configuredTopology, this.topologyOverrides, this.configuredCapabilities, this.capabilityOverride, false);
324
367
  }
325
368
  withCapabilities(capabilities) {
326
- return new Laser(this.transport, this.defaultStream, AsyncOnce.resolved(capabilities), this.shared, this.observer, this.governor, this.verifier, this.topology(), false);
369
+ return new Laser(this.transport, this.defaultStream, this.capabilitiesOnce, this.shared, this.observer, this.governor, this.verifier, this.configuredTopology, this.topologyOverrides, this.configuredCapabilities, capabilities, false);
327
370
  }
328
- withGovernor(governor, mode) {
329
- return new Laser(this.transport, this.defaultStream, this.capabilitiesOnce, this.shared, this.observer, new GovernorState(governor, mode), this.verifier, this.topology(), false);
371
+ withGovernor(governor, mode, retention = {}) {
372
+ return new Laser(this.transport, this.defaultStream, this.capabilitiesOnce, this.shared, this.observer, new GovernorState(governor, mode, undefined, retention), this.verifier, this.configuredTopology, this.topologyOverrides, this.configuredCapabilities, this.capabilityOverride, false);
330
373
  }
331
374
  withVerifier(verifier) {
332
- return new Laser(this.transport, this.defaultStream, this.capabilitiesOnce, this.shared, this.observer, this.governor, verifier, this.topology(), false);
375
+ return new Laser(this.transport, this.defaultStream, this.capabilitiesOnce, this.shared, this.observer, this.governor, verifier, this.configuredTopology, this.topologyOverrides, this.configuredCapabilities, this.capabilityOverride, false);
333
376
  }
334
377
  withObserver(observer) {
335
- return new Laser(this.transport, this.defaultStream, this.capabilitiesOnce, this.shared, observer, this.governor, this.verifier, this.topology(), false);
336
- }
337
- topology() {
338
- return {
339
- opsStream: this.opsStream,
340
- controlTopic: this.controlTopic,
341
- deadLetterTopic: this.deadLetterTopic,
342
- changesTopic: this.changesTopic
343
- };
378
+ return new Laser(this.transport, this.defaultStream, this.capabilitiesOnce, this.shared, observer, this.governor, this.verifier, this.configuredTopology, this.topologyOverrides, this.configuredCapabilities, this.capabilityOverride, false);
344
379
  }
345
380
  async observe(operation, attributes, effect) {
346
381
  const span = this.observer.start(operation, attributes);
@@ -360,7 +395,34 @@ export class Laser {
360
395
  };
361
396
  }
362
397
  async capabilities() {
363
- return this.capabilitiesOnce.get(() => probeCapabilities(this.managedTransport()));
398
+ if (this.capabilityOverride !== undefined)
399
+ return this.capabilityOverride;
400
+ if (this.shared.lastCapabilities?.managed === false &&
401
+ Date.now() - (this.shared.capabilityProbeAtMs ?? 0) >= 1_000) {
402
+ this.capabilitiesOnce.clear();
403
+ }
404
+ const capabilities = await this.capabilitiesOnce.get(async () => mergeCapabilities(this.configuredCapabilities, await probeCapabilities(this.managedTransport())));
405
+ this.shared.lastCapabilities = capabilities;
406
+ this.shared.capabilityProbeAtMs = Date.now();
407
+ this.applyAdvertisedTopology(capabilities);
408
+ return capabilities;
409
+ }
410
+ async refreshCapabilities() {
411
+ if (this.capabilityOverride !== undefined)
412
+ return this.capabilityOverride;
413
+ this.capabilitiesOnce.clear();
414
+ return this.capabilities();
415
+ }
416
+ applyAdvertisedTopology(capabilities) {
417
+ const topology = capabilities.topology;
418
+ if (topology === undefined)
419
+ return;
420
+ this.shared.announcedTopology = {
421
+ opsStream: topology.opsStream,
422
+ controlTopic: topology.controlTopic,
423
+ deadLetterTopic: topology.dlqTopic,
424
+ changesTopic: topology.changesTopic
425
+ };
364
426
  }
365
427
  [INTERNAL_TRANSPORT]() {
366
428
  return this.transport;
@@ -422,7 +484,7 @@ export class Laser {
422
484
  ...metadataActionFields(envelope),
423
485
  payload: envelope.body,
424
486
  signed: willSign
425
- }));
487
+ }), this.verifier);
426
488
  }
427
489
  agent(id) {
428
490
  return new AgentScope(this, id);
@@ -631,7 +693,7 @@ export class Laser {
631
693
  const correlationId = provenance.correlationId ?? ConversationId.new().toString();
632
694
  const correlated = { ...provenance, correlationId };
633
695
  const hub = await this.replyHub(replyTopic);
634
- const ticket = hub.subscribe(correlationId);
696
+ const ticket = hub.subscribe(correlationId, correlated.targetAgentId?.asString());
635
697
  try {
636
698
  await this.sendAgent(requestTopic, payload, correlated);
637
699
  }
@@ -707,7 +769,7 @@ export class Laser {
707
769
  const key = `${stream}\u001f${topic}`;
708
770
  let hub = this.shared.replyHubs.get(key);
709
771
  if (hub === undefined) {
710
- hub = ReplyHub.create(this.transport, stream, topic);
772
+ hub = ReplyHub.create(this.transport, stream, topic, this.verifier);
711
773
  this.shared.replyHubs.set(key, hub);
712
774
  void hub.catch(() => this.shared.replyHubs.delete(key));
713
775
  }