@laserdata/laser-sdk 0.5.3 → 0.6.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.
- package/README.md +105 -79
- package/dist/agent/agdx.d.ts +8 -3
- package/dist/agent/agdx.d.ts.map +1 -1
- package/dist/agent/agdx.js +39 -22
- package/dist/agent/agdx.js.map +1 -1
- package/dist/agent/builder.d.ts +25 -15
- package/dist/agent/builder.d.ts.map +1 -1
- package/dist/agent/builder.js +103 -59
- package/dist/agent/builder.js.map +1 -1
- package/dist/agent/context.d.ts +3 -6
- package/dist/agent/context.d.ts.map +1 -1
- package/dist/agent/context.js +17 -9
- package/dist/agent/context.js.map +1 -1
- package/dist/agent/contract.d.ts +2 -2
- package/dist/agent/contract.d.ts.map +1 -1
- package/dist/agent/contract.js +10 -6
- package/dist/agent/contract.js.map +1 -1
- package/dist/agent/memory-handler.d.ts +25 -0
- package/dist/agent/memory-handler.d.ts.map +1 -0
- package/dist/agent/memory-handler.js +43 -0
- package/dist/agent/memory-handler.js.map +1 -0
- package/dist/agent/registry.d.ts +3 -10
- package/dist/agent/registry.d.ts.map +1 -1
- package/dist/agent/registry.js +22 -19
- package/dist/agent/registry.js.map +1 -1
- package/dist/agent/reliable-consumer.d.ts +19 -9
- package/dist/agent/reliable-consumer.d.ts.map +1 -1
- package/dist/agent/reliable-consumer.js +193 -54
- package/dist/agent/reliable-consumer.js.map +1 -1
- package/dist/agent/replies.d.ts +6 -0
- package/dist/agent/replies.d.ts.map +1 -1
- package/dist/agent/replies.js +55 -4
- package/dist/agent/replies.js.map +1 -1
- package/dist/agent/router.d.ts +1 -1
- package/dist/agent/router.d.ts.map +1 -1
- package/dist/agent/router.js +5 -19
- package/dist/agent/router.js.map +1 -1
- package/dist/agent/scope.d.ts +7 -3
- package/dist/agent/scope.d.ts.map +1 -1
- package/dist/agent/scope.js +11 -1
- package/dist/agent/scope.js.map +1 -1
- package/dist/agent/timer.d.ts +6 -0
- package/dist/agent/timer.d.ts.map +1 -0
- package/dist/agent/timer.js +21 -0
- package/dist/agent/timer.js.map +1 -0
- package/dist/agent/workflow.d.ts +16 -19
- package/dist/agent/workflow.d.ts.map +1 -1
- package/dist/agent/workflow.js +17 -6
- package/dist/agent/workflow.js.map +1 -1
- package/dist/blob.d.ts +2 -3
- package/dist/blob.d.ts.map +1 -1
- package/dist/blob.js.map +1 -1
- package/dist/bridges/a2a.d.ts +34 -23
- package/dist/bridges/a2a.d.ts.map +1 -1
- package/dist/bridges/a2a.js +29 -19
- package/dist/bridges/a2a.js.map +1 -1
- package/dist/bridges/hops.d.ts +1 -1
- package/dist/bridges/hops.d.ts.map +1 -1
- package/dist/bridges/hops.js +1 -1
- package/dist/bridges/hops.js.map +1 -1
- package/dist/bridges/mcp.d.ts +27 -7
- package/dist/bridges/mcp.d.ts.map +1 -1
- package/dist/bridges/mcp.js +24 -9
- package/dist/bridges/mcp.js.map +1 -1
- package/dist/client/bytes.d.ts +5 -0
- package/dist/client/bytes.d.ts.map +1 -1
- package/dist/client/bytes.js +15 -0
- package/dist/client/bytes.js.map +1 -1
- package/dist/client/capabilities.d.ts +25 -13
- package/dist/client/capabilities.d.ts.map +1 -1
- package/dist/client/capabilities.js +145 -123
- package/dist/client/capabilities.js.map +1 -1
- package/dist/client/error-classify.d.ts +57 -0
- package/dist/client/error-classify.d.ts.map +1 -0
- package/dist/client/error-classify.js +347 -0
- package/dist/client/error-classify.js.map +1 -0
- package/dist/client/errors.d.ts +113 -40
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +191 -53
- package/dist/client/errors.js.map +1 -1
- package/dist/client/internals.d.ts +1 -0
- package/dist/client/internals.d.ts.map +1 -1
- package/dist/client/internals.js +1 -0
- package/dist/client/internals.js.map +1 -1
- package/dist/client/laser.d.ts +62 -46
- package/dist/client/laser.d.ts.map +1 -1
- package/dist/client/laser.js +206 -120
- package/dist/client/laser.js.map +1 -1
- package/dist/client/managed.d.ts +3 -0
- package/dist/client/managed.d.ts.map +1 -1
- package/dist/client/managed.js +70 -3
- package/dist/client/managed.js.map +1 -1
- package/dist/context-scope.d.ts +25 -9
- package/dist/context-scope.d.ts.map +1 -1
- package/dist/context-scope.js +36 -9
- package/dist/context-scope.js.map +1 -1
- package/dist/context.d.ts +33 -16
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +174 -95
- package/dist/context.js.map +1 -1
- package/dist/conversation-state.d.ts +1 -1
- package/dist/conversation-state.d.ts.map +1 -1
- package/dist/conversation-state.js +35 -16
- package/dist/conversation-state.js.map +1 -1
- package/dist/govern.d.ts +24 -5
- package/dist/govern.d.ts.map +1 -1
- package/dist/govern.js +116 -28
- package/dist/govern.js.map +1 -1
- package/dist/iggy/apache-iggy.d.ts +59 -56
- package/dist/iggy/apache-iggy.d.ts.map +1 -1
- package/dist/iggy/apache-iggy.js +300 -137
- package/dist/iggy/apache-iggy.js.map +1 -1
- package/dist/index.d.ts +97 -65
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -30
- package/dist/index.js.map +1 -1
- package/dist/intent.d.ts +16 -2
- package/dist/intent.d.ts.map +1 -1
- package/dist/intent.js +50 -18
- package/dist/intent.js.map +1 -1
- package/dist/managed/coordination.d.ts +82 -0
- package/dist/managed/coordination.d.ts.map +1 -0
- package/dist/managed/coordination.js +367 -0
- package/dist/managed/coordination.js.map +1 -0
- package/dist/managed/destinations.d.ts +4 -3
- package/dist/managed/destinations.d.ts.map +1 -1
- package/dist/managed/destinations.js +29 -13
- package/dist/managed/destinations.js.map +1 -1
- package/dist/managed/filters.d.ts +5 -5
- package/dist/managed/filters.d.ts.map +1 -1
- package/dist/managed/filters.js +39 -22
- package/dist/managed/filters.js.map +1 -1
- package/dist/managed/forks.d.ts +8 -11
- package/dist/managed/forks.d.ts.map +1 -1
- package/dist/managed/forks.js +33 -13
- package/dist/managed/forks.js.map +1 -1
- package/dist/managed/graph.d.ts +1 -4
- package/dist/managed/graph.d.ts.map +1 -1
- package/dist/managed/graph.js +5 -3
- package/dist/managed/graph.js.map +1 -1
- package/dist/managed/kv.d.ts +26 -14
- package/dist/managed/kv.d.ts.map +1 -1
- package/dist/managed/kv.js +88 -61
- package/dist/managed/kv.js.map +1 -1
- package/dist/managed/projections.d.ts +5 -8
- package/dist/managed/projections.d.ts.map +1 -1
- package/dist/managed/projections.js +22 -2
- package/dist/managed/projections.js.map +1 -1
- package/dist/managed/query.d.ts +20 -6
- package/dist/managed/query.d.ts.map +1 -1
- package/dist/managed/query.js +97 -24
- package/dist/managed/query.js.map +1 -1
- package/dist/managed/runs.d.ts +2 -4
- package/dist/managed/runs.d.ts.map +1 -1
- package/dist/managed/runs.js +9 -1
- package/dist/managed/runs.js.map +1 -1
- package/dist/managed/watch.d.ts +2 -4
- package/dist/managed/watch.d.ts.map +1 -1
- package/dist/managed/watch.js +9 -1
- package/dist/managed/watch.js.map +1 -1
- package/dist/memory/handle.d.ts +75 -22
- package/dist/memory/handle.d.ts.map +1 -1
- package/dist/memory/handle.js +232 -58
- package/dist/memory/handle.js.map +1 -1
- package/dist/memory/log-memory.d.ts +24 -12
- package/dist/memory/log-memory.d.ts.map +1 -1
- package/dist/memory/log-memory.js +214 -100
- package/dist/memory/log-memory.js.map +1 -1
- package/dist/memory/topic.d.ts +2 -2
- package/dist/memory/topic.d.ts.map +1 -1
- package/dist/memory/topic.js +7 -5
- package/dist/memory/topic.js.map +1 -1
- package/dist/memory/types.d.ts +41 -5
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/types.js +44 -18
- package/dist/memory/types.js.map +1 -1
- package/dist/memory/vector-memory.d.ts +8 -6
- package/dist/memory/vector-memory.d.ts.map +1 -1
- package/dist/memory/vector-memory.js +65 -34
- package/dist/memory/vector-memory.js.map +1 -1
- package/dist/memory.d.ts +6 -5
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +4 -4
- package/dist/memory.js.map +1 -1
- package/dist/provenance/agent-topic.d.ts +3 -1
- package/dist/provenance/agent-topic.d.ts.map +1 -1
- package/dist/provenance/agent-topic.js +3 -1
- package/dist/provenance/agent-topic.js.map +1 -1
- package/dist/provenance/provenance.d.ts +3 -3
- package/dist/provenance/provenance.d.ts.map +1 -1
- package/dist/provenance/provenance.js +30 -18
- package/dist/provenance/provenance.js.map +1 -1
- package/dist/runtime/clock.d.ts +3 -0
- package/dist/runtime/clock.d.ts.map +1 -1
- package/dist/runtime/clock.js +16 -3
- package/dist/runtime/clock.js.map +1 -1
- package/dist/schema-codecs.d.ts +7 -3
- package/dist/schema-codecs.d.ts.map +1 -1
- package/dist/schema-codecs.js +80 -12
- package/dist/schema-codecs.js.map +1 -1
- package/dist/session.d.ts +27 -18
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +95 -37
- package/dist/session.js.map +1 -1
- package/dist/signing.d.ts +11 -5
- package/dist/signing.d.ts.map +1 -1
- package/dist/signing.js +64 -21
- package/dist/signing.js.map +1 -1
- package/dist/snapshot.d.ts +10 -2
- package/dist/snapshot.d.ts.map +1 -1
- package/dist/snapshot.js +62 -28
- package/dist/snapshot.js.map +1 -1
- package/dist/state-store.d.ts +1 -1
- package/dist/state-store.d.ts.map +1 -1
- package/dist/state-store.js.map +1 -1
- package/dist/stream/batching.d.ts +81 -0
- package/dist/stream/batching.d.ts.map +1 -0
- package/dist/stream/batching.js +210 -0
- package/dist/stream/batching.js.map +1 -0
- package/dist/stream/bson.d.ts +3 -0
- package/dist/stream/bson.d.ts.map +1 -0
- package/dist/stream/bson.js +245 -0
- package/dist/stream/bson.js.map +1 -0
- package/dist/stream/codecs.d.ts +58 -6
- package/dist/stream/codecs.d.ts.map +1 -1
- package/dist/stream/codecs.js +143 -59
- package/dist/stream/codecs.js.map +1 -1
- package/dist/stream/consumer-group.d.ts +13 -10
- package/dist/stream/consumer-group.d.ts.map +1 -1
- package/dist/stream/consumer-group.js +91 -31
- package/dist/stream/consumer-group.js.map +1 -1
- package/dist/stream/consumer-start.d.ts +17 -0
- package/dist/stream/consumer-start.d.ts.map +1 -0
- package/dist/stream/consumer-start.js +2 -0
- package/dist/stream/consumer-start.js.map +1 -0
- package/dist/stream/consumer.d.ts +166 -24
- package/dist/stream/consumer.d.ts.map +1 -1
- package/dist/stream/consumer.js +451 -68
- package/dist/stream/consumer.js.map +1 -1
- package/dist/stream/cursor.d.ts +5 -12
- package/dist/stream/cursor.d.ts.map +1 -1
- package/dist/stream/cursor.js +34 -8
- package/dist/stream/cursor.js.map +1 -1
- package/dist/stream/header-value.d.ts +61 -15
- package/dist/stream/header-value.d.ts.map +1 -1
- package/dist/stream/header-value.js.map +1 -1
- package/dist/stream/message.d.ts +17 -0
- package/dist/stream/message.d.ts.map +1 -0
- package/dist/stream/message.js +9 -0
- package/dist/stream/message.js.map +1 -0
- package/dist/stream/producer.d.ts +127 -11
- package/dist/stream/producer.d.ts.map +1 -1
- package/dist/stream/producer.js +401 -36
- package/dist/stream/producer.js.map +1 -1
- package/dist/stream/publish.d.ts +6 -15
- package/dist/stream/publish.d.ts.map +1 -1
- package/dist/stream/publish.js +18 -28
- package/dist/stream/publish.js.map +1 -1
- package/dist/stream/record.d.ts +4 -6
- package/dist/stream/record.d.ts.map +1 -1
- package/dist/stream/record.js +4 -3
- package/dist/stream/record.js.map +1 -1
- package/dist/stream/routing.d.ts +12 -0
- package/dist/stream/routing.d.ts.map +1 -1
- package/dist/stream/routing.js +6 -1
- package/dist/stream/routing.js.map +1 -1
- package/dist/stream/stream.d.ts +1 -4
- package/dist/stream/stream.d.ts.map +1 -1
- package/dist/stream/stream.js +5 -1
- package/dist/stream/stream.js.map +1 -1
- package/dist/stream/topic.d.ts +22 -23
- package/dist/stream/topic.d.ts.map +1 -1
- package/dist/stream/topic.js +90 -30
- package/dist/stream/topic.js.map +1 -1
- package/dist/stream/typed-topic.d.ts +9 -13
- package/dist/stream/typed-topic.d.ts.map +1 -1
- package/dist/stream/typed-topic.js +25 -10
- package/dist/stream/typed-topic.js.map +1 -1
- package/dist/swarm.d.ts +0 -1
- package/dist/swarm.d.ts.map +1 -1
- package/dist/swarm.js +1 -0
- package/dist/swarm.js.map +1 -1
- package/dist/testing.d.ts +3 -3
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +3 -3
- package/dist/testing.js.map +1 -1
- package/dist/types/ids.d.ts +17 -2
- package/dist/types/ids.d.ts.map +1 -1
- package/dist/types/ids.js +34 -14
- package/dist/types/ids.js.map +1 -1
- package/dist/wire/agent.d.ts +22 -0
- package/dist/wire/agent.d.ts.map +1 -1
- package/dist/wire/agent.js +80 -25
- package/dist/wire/agent.js.map +1 -1
- package/dist/wire/authz.d.ts +35 -1
- package/dist/wire/authz.d.ts.map +1 -1
- package/dist/wire/authz.js +45 -15
- package/dist/wire/authz.js.map +1 -1
- package/dist/wire/cbor.d.ts.map +1 -1
- package/dist/wire/cbor.js +13 -2
- package/dist/wire/cbor.js.map +1 -1
- package/dist/wire/checkpoint.d.ts +17 -12
- package/dist/wire/checkpoint.d.ts.map +1 -1
- package/dist/wire/checkpoint.js +28 -3
- package/dist/wire/checkpoint.js.map +1 -1
- package/dist/wire/control.d.ts +82 -0
- package/dist/wire/control.d.ts.map +1 -1
- package/dist/wire/control.js +219 -0
- package/dist/wire/control.js.map +1 -1
- package/dist/wire/filter-eval.d.ts +41 -7
- package/dist/wire/filter-eval.d.ts.map +1 -1
- package/dist/wire/filter-eval.js +26 -28
- package/dist/wire/filter-eval.js.map +1 -1
- package/dist/wire/filter.d.ts +51 -17
- package/dist/wire/filter.d.ts.map +1 -1
- package/dist/wire/filter.js +99 -10
- package/dist/wire/filter.js.map +1 -1
- package/dist/wire/fork.d.ts +14 -1
- package/dist/wire/fork.d.ts.map +1 -1
- package/dist/wire/fork.js +19 -8
- package/dist/wire/fork.js.map +1 -1
- package/dist/wire/graph.d.ts +3 -0
- package/dist/wire/graph.d.ts.map +1 -1
- package/dist/wire/graph.js +18 -4
- package/dist/wire/graph.js.map +1 -1
- package/dist/wire/hello.d.ts +4 -1
- package/dist/wire/hello.d.ts.map +1 -1
- package/dist/wire/hello.js +13 -3
- package/dist/wire/hello.js.map +1 -1
- package/dist/wire/index.d.ts +4 -1
- package/dist/wire/index.d.ts.map +1 -1
- package/dist/wire/index.js +4 -1
- package/dist/wire/index.js.map +1 -1
- package/dist/wire/kv.d.ts +37 -2
- package/dist/wire/kv.d.ts.map +1 -1
- package/dist/wire/kv.js +36 -18
- package/dist/wire/kv.js.map +1 -1
- package/dist/wire/query.d.ts +6 -0
- package/dist/wire/query.d.ts.map +1 -1
- package/dist/wire/query.js +38 -12
- package/dist/wire/query.js.map +1 -1
- package/dist/wire/schema.d.ts +29 -6
- package/dist/wire/schema.d.ts.map +1 -1
- package/dist/wire/schema.js +61 -26
- package/dist/wire/schema.js.map +1 -1
- package/dist/wire/snapshot.js +1 -1
- package/dist/wire/snapshot.js.map +1 -1
- package/dist/wire/value.d.ts +10 -2
- package/dist/wire/value.d.ts.map +1 -1
- package/dist/wire/value.js +29 -3
- package/dist/wire/value.js.map +1 -1
- package/package.json +2 -3
- package/dist/stream/polling-strategy.d.ts +0 -14
- package/dist/stream/polling-strategy.d.ts.map +0 -1
- package/dist/stream/polling-strategy.js +0 -2
- package/dist/stream/polling-strategy.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UnsupportedError } from "./errors.js";
|
|
2
|
-
import {
|
|
2
|
+
import { feature, filterAnnounceEvaluates, opVersionsHasFeature } from "../wire/hello.js";
|
|
3
3
|
export const OPEN_CAPABILITIES = Object.freeze({
|
|
4
4
|
managed: false,
|
|
5
5
|
query: Object.freeze({
|
|
@@ -10,7 +10,7 @@ export const OPEN_CAPABILITIES = Object.freeze({
|
|
|
10
10
|
cancellation: false,
|
|
11
11
|
executionStatus: false
|
|
12
12
|
}),
|
|
13
|
-
destinations: Object.freeze({ available: false,
|
|
13
|
+
destinations: Object.freeze({ available: false, consistency: "potentially_stale" }),
|
|
14
14
|
kv: Object.freeze({ available: false, cas: false, casFenced: false, fencedLeases: false }),
|
|
15
15
|
graph: false,
|
|
16
16
|
forks: false,
|
|
@@ -19,140 +19,77 @@ export const OPEN_CAPABILITIES = Object.freeze({
|
|
|
19
19
|
watch: false,
|
|
20
20
|
authz: false,
|
|
21
21
|
filters: Object.freeze({ native: false, catalog: false, groupPolicyReads: false }),
|
|
22
|
-
sessions: false,
|
|
23
|
-
durableDedup: false,
|
|
24
22
|
backends: Object.freeze([]),
|
|
25
23
|
hello: "unknown"
|
|
26
24
|
});
|
|
27
|
-
function managedBase() {
|
|
28
|
-
return {
|
|
29
|
-
...OPEN_CAPABILITIES,
|
|
30
|
-
managed: true,
|
|
31
|
-
query: { ...OPEN_CAPABILITIES.query, available: true },
|
|
32
|
-
kv: { ...OPEN_CAPABILITIES.kv, available: true },
|
|
33
|
-
forks: true
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
export function managedCapabilitiesWithUnknownVersions() {
|
|
37
|
-
return managedBase();
|
|
38
|
-
}
|
|
39
|
-
export function managedCapabilitiesFrom(announce) {
|
|
40
|
-
const versions = announce.versions;
|
|
41
|
-
const ready = announce.ready !== false;
|
|
42
|
-
const consistency = opVersionsHasFeature(versions, Feature.STRONG_CONSISTENCY)
|
|
43
|
-
? "strong"
|
|
44
|
-
: opVersionsHasFeature(versions, Feature.READ_YOUR_WRITES)
|
|
45
|
-
? "read_your_writes"
|
|
46
|
-
: "eventual";
|
|
47
|
-
const readyBackends = ready ? announce.backends.filter((backend) => backend.readiness.ready) : [];
|
|
48
|
-
const queryCapabilities = readyBackends.flatMap((backend) => backend.query ?? []);
|
|
49
|
-
return {
|
|
50
|
-
...(ready ? managedBase() : OPEN_CAPABILITIES),
|
|
51
|
-
query: {
|
|
52
|
-
available: ready && versions.query > 0,
|
|
53
|
-
consistency: ready ? consistency : "eventual",
|
|
54
|
-
keyword: ready && opVersionsHasFeature(versions, Feature.KEYWORD_SEARCH),
|
|
55
|
-
cursorPaging: queryCapabilities.some((query) => query.paging.includes("cursor")),
|
|
56
|
-
cancellation: queryCapabilities.some((query) => query.cancellation),
|
|
57
|
-
executionStatus: queryCapabilities.some((query) => query.executionStatus)
|
|
58
|
-
},
|
|
59
|
-
destinations: {
|
|
60
|
-
available: ready &&
|
|
61
|
-
(versions.checkpoint ?? 0) > 0 &&
|
|
62
|
-
opVersionsHasFeature(versions, Feature.DESTINATIONS),
|
|
63
|
-
checkpointVersion: versions.checkpoint ?? 0
|
|
64
|
-
},
|
|
65
|
-
kv: {
|
|
66
|
-
available: ready && versions.kv > 0,
|
|
67
|
-
cas: ready && opVersionsHasFeature(versions, Feature.KV_CAS),
|
|
68
|
-
casFenced: ready &&
|
|
69
|
-
(opVersionsHasFeature(versions, Feature.KV_CAS_FENCED) ||
|
|
70
|
-
opVersionsHasFeature(versions, Feature.KV_FENCED_LEASES)),
|
|
71
|
-
fencedLeases: ready && opVersionsHasFeature(versions, Feature.KV_FENCED_LEASES)
|
|
72
|
-
},
|
|
73
|
-
graph: ready && versions.graph > 0,
|
|
74
|
-
forks: ready && versions.fork > 0,
|
|
75
|
-
agentWorkflow: ready && opVersionsHasFeature(versions, Feature.AGENT_WORKFLOW),
|
|
76
|
-
watch: ready && opVersionsHasFeature(versions, Feature.WATCH),
|
|
77
|
-
authz: opVersionsHasFeature(versions, Feature.AUTHZ),
|
|
78
|
-
filters: {
|
|
79
|
-
native: opVersionsHasFeature(versions, Feature.CONSUMER_FILTERS),
|
|
80
|
-
catalog: ready &&
|
|
81
|
-
(opVersionsHasFeature(versions, Feature.CONSUMER_FILTERS) ||
|
|
82
|
-
opVersionsHasFeature(versions, Feature.GROUP_POLICY_READS)) &&
|
|
83
|
-
(versions.filter ?? 0) > 0,
|
|
84
|
-
// Served by the streaming server itself, like the native reads: a server
|
|
85
|
-
// without a managed plane resolves every group as unbound.
|
|
86
|
-
groupPolicyReads: opVersionsHasFeature(versions, Feature.GROUP_POLICY_READS),
|
|
87
|
-
...(opVersionsHasFeature(versions, Feature.CONSUMER_FILTERS) && announce.filters !== undefined
|
|
88
|
-
? { evaluation: announce.filters }
|
|
89
|
-
: {})
|
|
90
|
-
},
|
|
91
|
-
versions,
|
|
92
|
-
backends: announce.backends,
|
|
93
|
-
...(announce.topology !== undefined ? { topology: announce.topology } : {}),
|
|
94
|
-
hello: "answered"
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
25
|
const CONSISTENCY_RANK = {
|
|
98
26
|
eventual: 0,
|
|
99
27
|
read_your_writes: 1,
|
|
100
28
|
strong: 2
|
|
101
29
|
};
|
|
30
|
+
// The announcement each answered set came from, so a merge onto the builder's
|
|
31
|
+
// seed folds the announcement itself like Rust `merge_announcement`, and the
|
|
32
|
+
// client reads the announced topology without it being a capability.
|
|
33
|
+
const ANNOUNCEMENTS = new WeakMap();
|
|
34
|
+
export function managedCapabilitiesFrom(announce) {
|
|
35
|
+
return mergeAnnouncement(OPEN_CAPABILITIES, announce);
|
|
36
|
+
}
|
|
37
|
+
/** The stream and topic names the deployment announced with `capabilities`,
|
|
38
|
+
* if it announced any. */
|
|
39
|
+
export function advertisedTopology(capabilities) {
|
|
40
|
+
return ANNOUNCEMENTS.get(capabilities)?.topology;
|
|
41
|
+
}
|
|
42
|
+
/** Merges a probe result onto the builder's capability seed. The seed is the
|
|
43
|
+
* starting point, never a ceiling: an answered probe adds what the deployment
|
|
44
|
+
* serves, and a rejected or failed one only records its outcome. */
|
|
102
45
|
export function mergeCapabilities(configured, announced) {
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
46
|
+
const announce = ANNOUNCEMENTS.get(announced);
|
|
47
|
+
if (announce !== undefined)
|
|
48
|
+
return mergeAnnouncement(configured, announce);
|
|
106
49
|
return {
|
|
107
|
-
|
|
108
|
-
query: {
|
|
109
|
-
available: configured.query.available || announced.query.available,
|
|
110
|
-
consistency,
|
|
111
|
-
keyword: configured.query.keyword || announced.query.keyword,
|
|
112
|
-
cursorPaging: configured.query.cursorPaging || announced.query.cursorPaging,
|
|
113
|
-
cancellation: configured.query.cancellation || announced.query.cancellation,
|
|
114
|
-
executionStatus: configured.query.executionStatus || announced.query.executionStatus
|
|
115
|
-
},
|
|
116
|
-
destinations: {
|
|
117
|
-
available: configured.destinations.available || announced.destinations.available,
|
|
118
|
-
checkpointVersion: Math.max(configured.destinations.checkpointVersion, announced.destinations.checkpointVersion)
|
|
119
|
-
},
|
|
120
|
-
kv: {
|
|
121
|
-
available: configured.kv.available || announced.kv.available,
|
|
122
|
-
cas: configured.kv.cas || announced.kv.cas,
|
|
123
|
-
casFenced: configured.kv.casFenced || announced.kv.casFenced,
|
|
124
|
-
fencedLeases: configured.kv.fencedLeases || announced.kv.fencedLeases
|
|
125
|
-
},
|
|
126
|
-
graph: configured.graph || announced.graph,
|
|
127
|
-
forks: configured.forks || announced.forks,
|
|
128
|
-
a2aGateway: configured.a2aGateway || announced.a2aGateway,
|
|
129
|
-
agentWorkflow: configured.agentWorkflow || announced.agentWorkflow,
|
|
130
|
-
watch: configured.watch || announced.watch,
|
|
131
|
-
authz: configured.authz || announced.authz,
|
|
132
|
-
filters: {
|
|
133
|
-
native: configured.filters.native || announced.filters.native,
|
|
134
|
-
catalog: configured.filters.catalog || announced.filters.catalog,
|
|
135
|
-
groupPolicyReads: configured.filters.groupPolicyReads || announced.filters.groupPolicyReads,
|
|
136
|
-
...((announced.filters.evaluation ?? configured.filters.evaluation) !== undefined
|
|
137
|
-
? { evaluation: announced.filters.evaluation ?? configured.filters.evaluation }
|
|
138
|
-
: {})
|
|
139
|
-
},
|
|
140
|
-
sessions: configured.sessions || announced.sessions,
|
|
141
|
-
durableDedup: configured.durableDedup || announced.durableDedup,
|
|
142
|
-
...(announced.versions !== undefined
|
|
143
|
-
? { versions: announced.versions }
|
|
144
|
-
: configured.versions !== undefined
|
|
145
|
-
? { versions: configured.versions }
|
|
146
|
-
: {}),
|
|
147
|
-
backends: announced.backends.length > 0 ? announced.backends : configured.backends,
|
|
148
|
-
...(announced.topology !== undefined
|
|
149
|
-
? { topology: announced.topology }
|
|
150
|
-
: configured.topology !== undefined
|
|
151
|
-
? { topology: configured.topology }
|
|
152
|
-
: {}),
|
|
50
|
+
...configured,
|
|
153
51
|
hello: announced.hello === "unknown" ? configured.hello : announced.hello
|
|
154
52
|
};
|
|
155
53
|
}
|
|
54
|
+
/** True when the connected infrastructure advertised nothing beyond the open
|
|
55
|
+
* SDK, field for field equal to `OPEN_CAPABILITIES`, like Rust
|
|
56
|
+
* `Capabilities::is_open_only`. */
|
|
57
|
+
export function isOpenOnly(capabilities) {
|
|
58
|
+
const open = OPEN_CAPABILITIES;
|
|
59
|
+
const { query, destinations, kv, filters } = capabilities;
|
|
60
|
+
return (capabilities.managed === open.managed &&
|
|
61
|
+
query.available === open.query.available &&
|
|
62
|
+
query.consistency === open.query.consistency &&
|
|
63
|
+
query.keyword === open.query.keyword &&
|
|
64
|
+
query.cursorPaging === open.query.cursorPaging &&
|
|
65
|
+
query.cancellation === open.query.cancellation &&
|
|
66
|
+
query.executionStatus === open.query.executionStatus &&
|
|
67
|
+
destinations.available === open.destinations.available &&
|
|
68
|
+
destinations.consistency === open.destinations.consistency &&
|
|
69
|
+
kv.available === open.kv.available &&
|
|
70
|
+
kv.cas === open.kv.cas &&
|
|
71
|
+
kv.casFenced === open.kv.casFenced &&
|
|
72
|
+
kv.fencedLeases === open.kv.fencedLeases &&
|
|
73
|
+
capabilities.graph === open.graph &&
|
|
74
|
+
capabilities.forks === open.forks &&
|
|
75
|
+
capabilities.a2aGateway === open.a2aGateway &&
|
|
76
|
+
capabilities.agentWorkflow === open.agentWorkflow &&
|
|
77
|
+
capabilities.watch === open.watch &&
|
|
78
|
+
capabilities.authz === open.authz &&
|
|
79
|
+
filters.native === open.filters.native &&
|
|
80
|
+
filters.catalog === open.filters.catalog &&
|
|
81
|
+
filters.groupPolicyReads === open.filters.groupPolicyReads &&
|
|
82
|
+
filters.evaluation === undefined &&
|
|
83
|
+
capabilities.versions === undefined &&
|
|
84
|
+
capabilities.backends.length === 0);
|
|
85
|
+
}
|
|
86
|
+
/** Whether the server evaluates a filter built for `evaluatorVersion` with
|
|
87
|
+
* `codec` exactly as this build does, like Rust `FilterCaps::evaluates`. A
|
|
88
|
+
* server that announced no evaluation contract accepts every filter. */
|
|
89
|
+
export function filterCapsEvaluates(filters, evaluatorVersion, codec) {
|
|
90
|
+
return (filters.evaluation === undefined ||
|
|
91
|
+
filterAnnounceEvaluates(filters.evaluation, evaluatorVersion, codec));
|
|
92
|
+
}
|
|
156
93
|
export function servesConsistency(capabilities, level) {
|
|
157
94
|
return CONSISTENCY_RANK[level] <= CONSISTENCY_RANK[capabilities.query.consistency];
|
|
158
95
|
}
|
|
@@ -208,4 +145,89 @@ export function requireCapability(capabilities, surface) {
|
|
|
208
145
|
});
|
|
209
146
|
}
|
|
210
147
|
}
|
|
148
|
+
function strongerConsistency(left, right) {
|
|
149
|
+
return CONSISTENCY_RANK[right] > CONSISTENCY_RANK[left] ? right : left;
|
|
150
|
+
}
|
|
151
|
+
// Folds one hello announcement into `capabilities`, step for step like Rust
|
|
152
|
+
// `merge_announcement` and `merge_features`. Only a ready announcement lights
|
|
153
|
+
// up plane-served surfaces, and the query surface needs a ready backend that
|
|
154
|
+
// announces query capabilities. Additive, so a surface the seed set survives.
|
|
155
|
+
function mergeAnnouncement(capabilities, announce) {
|
|
156
|
+
const merged = foldAnnouncement(capabilities, announce);
|
|
157
|
+
ANNOUNCEMENTS.set(merged, announce);
|
|
158
|
+
return merged;
|
|
159
|
+
}
|
|
160
|
+
function foldAnnouncement(capabilities, announce) {
|
|
161
|
+
const versions = announce.versions;
|
|
162
|
+
const has = (bit) => opVersionsHasFeature(versions, bit);
|
|
163
|
+
const native = capabilities.filters.native || has(feature.CONSUMER_FILTERS);
|
|
164
|
+
const groupPolicyReads = capabilities.filters.groupPolicyReads || has(feature.GROUP_POLICY_READS);
|
|
165
|
+
const evaluation = native ? announce.filters : capabilities.filters.evaluation;
|
|
166
|
+
const answered = {
|
|
167
|
+
...capabilities,
|
|
168
|
+
versions,
|
|
169
|
+
backends: announce.backends,
|
|
170
|
+
authz: capabilities.authz || has(feature.AUTHZ),
|
|
171
|
+
filters: {
|
|
172
|
+
native,
|
|
173
|
+
catalog: capabilities.filters.catalog,
|
|
174
|
+
groupPolicyReads,
|
|
175
|
+
...(evaluation !== undefined ? { evaluation } : {})
|
|
176
|
+
},
|
|
177
|
+
hello: "answered"
|
|
178
|
+
};
|
|
179
|
+
if (announce.ready === false)
|
|
180
|
+
return answered;
|
|
181
|
+
const destinations = capabilities.destinations.available ||
|
|
182
|
+
((versions.checkpoint ?? 0) > 0 && has(feature.DESTINATIONS));
|
|
183
|
+
let consistency = capabilities.query.consistency;
|
|
184
|
+
if (has(feature.STRONG_CONSISTENCY))
|
|
185
|
+
consistency = "strong";
|
|
186
|
+
else if (has(feature.READ_YOUR_WRITES))
|
|
187
|
+
consistency = strongerConsistency(consistency, "read_your_writes");
|
|
188
|
+
let query = {
|
|
189
|
+
...capabilities.query,
|
|
190
|
+
keyword: capabilities.query.keyword || has(feature.KEYWORD_SEARCH)
|
|
191
|
+
};
|
|
192
|
+
for (const backend of announce.backends) {
|
|
193
|
+
const served = backend.readiness.ready ? backend.query : undefined;
|
|
194
|
+
if (served === undefined)
|
|
195
|
+
continue;
|
|
196
|
+
query = {
|
|
197
|
+
...query,
|
|
198
|
+
available: query.available || versions.query > 0,
|
|
199
|
+
cursorPaging: query.cursorPaging || served.paging.includes("cursor"),
|
|
200
|
+
cancellation: query.cancellation || served.cancellation,
|
|
201
|
+
executionStatus: query.executionStatus || served.executionStatus
|
|
202
|
+
};
|
|
203
|
+
if (served.consistency.includes("strong"))
|
|
204
|
+
consistency = "strong";
|
|
205
|
+
else if (served.consistency.includes("read_your_writes"))
|
|
206
|
+
consistency = strongerConsistency(consistency, "read_your_writes");
|
|
207
|
+
}
|
|
208
|
+
const fencedLeases = capabilities.kv.fencedLeases || has(feature.KV_FENCED_LEASES);
|
|
209
|
+
return {
|
|
210
|
+
...answered,
|
|
211
|
+
managed: true,
|
|
212
|
+
query: { ...query, consistency },
|
|
213
|
+
destinations: {
|
|
214
|
+
available: destinations,
|
|
215
|
+
consistency: destinations ? "linearizable" : capabilities.destinations.consistency
|
|
216
|
+
},
|
|
217
|
+
kv: {
|
|
218
|
+
available: capabilities.kv.available || versions.kv > 0,
|
|
219
|
+
cas: capabilities.kv.cas || has(feature.KV_CAS),
|
|
220
|
+
casFenced: capabilities.kv.casFenced || has(feature.KV_CAS_FENCED) || fencedLeases,
|
|
221
|
+
fencedLeases
|
|
222
|
+
},
|
|
223
|
+
graph: capabilities.graph || versions.graph > 0,
|
|
224
|
+
forks: capabilities.forks || versions.fork > 0,
|
|
225
|
+
agentWorkflow: capabilities.agentWorkflow || has(feature.AGENT_WORKFLOW),
|
|
226
|
+
watch: capabilities.watch || has(feature.WATCH),
|
|
227
|
+
filters: {
|
|
228
|
+
...answered.filters,
|
|
229
|
+
catalog: capabilities.filters.catalog || ((native || groupPolicyReads) && (versions.filter ?? 0) > 0)
|
|
230
|
+
}
|
|
231
|
+
};
|
|
232
|
+
}
|
|
211
233
|
//# sourceMappingURL=capabilities.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/client/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/client/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { ResultCode } from "../wire/result.js";
|
|
2
|
+
import type { FilterErrorReason } from "../wire/filter.js";
|
|
3
|
+
/** The Apache Iggy server error code under a failure, when the server
|
|
4
|
+
* answered one. Publish wrapping is followed, then the causes of a transport
|
|
5
|
+
* or protocol failure. Another typed SDK error that wraps an Apache Iggy
|
|
6
|
+
* failure keeps its own classification, like the Rust SDK. */
|
|
7
|
+
export declare function iggyErrorCode(error: unknown): number | undefined;
|
|
8
|
+
/** The typed consumer-filter cause, when the failure is one. */
|
|
9
|
+
export declare function filterReason(error: unknown): FilterErrorReason | undefined;
|
|
10
|
+
/** Whether the target stream or topic does not exist for this principal.
|
|
11
|
+
* Under RBAC an existing stream the principal cannot see answers like a
|
|
12
|
+
* missing one. */
|
|
13
|
+
export declare function isStreamOrTopicNotFound(error: unknown): boolean;
|
|
14
|
+
/** Whether the server refused the operation for missing permissions. The fix
|
|
15
|
+
* is a grant, not a retry. */
|
|
16
|
+
export declare function isPermissionDenied(error: unknown): boolean;
|
|
17
|
+
/** Whether the connected infrastructure does not provide the feature at all.
|
|
18
|
+
* Permanent: gate the code path instead of retrying. */
|
|
19
|
+
export declare function isUnsupported(error: unknown): boolean;
|
|
20
|
+
/** Whether the failure names a missing resource. */
|
|
21
|
+
export declare function isNotFound(error: unknown): boolean;
|
|
22
|
+
/** Whether the failure is wire-version skew between this SDK and the
|
|
23
|
+
* connected deployment. Permanent for this client build. */
|
|
24
|
+
export declare function isVersionSkew(error: unknown): boolean;
|
|
25
|
+
/** Whether a compare-and-swap lost its precondition. Re-read, recompute, and
|
|
26
|
+
* commit again. */
|
|
27
|
+
export declare function isVersionConflict(error: unknown): boolean;
|
|
28
|
+
/** Whether a managed mutation may already have reached the server. A generic
|
|
29
|
+
* retry loop must stop. */
|
|
30
|
+
export declare function isAmbiguousMutation(error: unknown): boolean;
|
|
31
|
+
/** Whether a read-consistency barrier was not met yet. Retryable. */
|
|
32
|
+
export declare function isStale(error: unknown): boolean;
|
|
33
|
+
/** Whether the plane declined a conditional write because it does not own
|
|
34
|
+
* the mutation partition. */
|
|
35
|
+
export declare function isNotLeader(error: unknown): boolean;
|
|
36
|
+
/** Whether capability routing found no live agent for the skill. */
|
|
37
|
+
export declare function isNoCapableAgent(error: unknown): boolean;
|
|
38
|
+
/** Whether a revocable lease was lost. */
|
|
39
|
+
export declare function isLeaseLost(error: unknown): boolean;
|
|
40
|
+
/** Whether a fenced write lost the fence. Never retryable by the loser. */
|
|
41
|
+
export declare function isFenceViolation(error: unknown): boolean;
|
|
42
|
+
/** Whether a spend ceiling was reached. */
|
|
43
|
+
export declare function isBudgetExceeded(error: unknown): boolean;
|
|
44
|
+
/** Whether the agent is quarantined. */
|
|
45
|
+
export declare function isQuarantined(error: unknown): boolean;
|
|
46
|
+
/** Whether the failure was transient: the identical request may succeed on a
|
|
47
|
+
* later attempt. */
|
|
48
|
+
export declare function isUnavailable(error: unknown): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* This failure's place in the unified result-code space, the same code the
|
|
51
|
+
* Rust `LaserError::code()` and the management HTTP surface give it. A
|
|
52
|
+
* managed surface error projects onto its surface code, and a client-side
|
|
53
|
+
* failure maps to the closest code.
|
|
54
|
+
*/
|
|
55
|
+
export declare function code(error: unknown): ResultCode;
|
|
56
|
+
export declare function publicErrorMessage(error: unknown): string;
|
|
57
|
+
//# sourceMappingURL=error-classify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-classify.d.ts","sourceRoot":"","sources":["../../src/client/error-classify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,mBAAmB,CAAA;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAmD1D;;;8DAG8D;AAC9D,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAgBhE;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAG1E;AAED;;kBAEkB;AAClB,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG/D;AAED;8BAC8B;AAC9B,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQ1D;AAED;wDACwD;AACxD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAarD;AAED,oDAAoD;AACpD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAgBlD;AAED;4DAC4D;AAC5D,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAYrD;AAED;mBACmB;AACnB,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGzD;AAED;2BAC2B;AAC3B,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE3D;AAED,qEAAqE;AACrE,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM/C;AAED;6BAC6B;AAC7B,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQnD;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGxD;AAED,0CAA0C;AAC1C,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGnD;AAED,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAExD;AAED,2CAA2C;AAC3C,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAExD;AAED,wCAAwC;AACxC,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAErD;AAED;oBACoB;AACpB,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGrD;AAoFD;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAuE/C;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAazD"}
|