keri-ts 2.1.0 → 2.2.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 +30 -2
- package/esm/keri/npm/src/acdc/authoring.js +195 -0
- package/esm/keri/npm/src/acdc/custody.js +164 -0
- package/esm/keri/npm/src/acdc/dhking.js +244 -32
- package/esm/keri/npm/src/acdc/regbasing.js +10 -0
- package/esm/keri/npm/src/acdc/salting.js +16 -1
- package/esm/keri/npm/src/acdc/scheming.js +93 -54
- package/esm/keri/npm/src/acdc/unblinding.js +118 -95
- package/esm/keri/npm/src/app/bootstrap/authenticating.js +4 -6
- package/esm/keri/npm/src/app/bootstrap/oobi-resolving.js +41 -0
- package/esm/keri/npm/src/app/bootstrap/oobiery.js +4 -6
- package/esm/keri/npm/src/app/credentials/credential-revoking.js +1 -0
- package/esm/keri/npm/src/app/credentials/credential-workflows.js +2 -0
- package/esm/keri/npm/src/app/credentials/registry-settling.js +44 -0
- package/esm/keri/npm/src/app/credentials/root-replicating.js +68 -60
- package/esm/keri/npm/src/app/credentials/root-replicator.js +198 -0
- package/esm/keri/npm/src/app/credentials/tel-completion.js +36 -0
- package/esm/keri/npm/src/app/delivery/forwarding.js +16 -3
- package/esm/keri/npm/src/app/exchanges/exchanging.js +14 -4
- package/esm/keri/npm/src/app/identity/challenging.js +50 -0
- package/esm/keri/npm/src/app/identity/delegating.js +77 -77
- package/esm/keri/npm/src/app/identity/delegation-approval.js +333 -0
- package/esm/keri/npm/src/app/identity/event-completion.js +154 -0
- package/esm/keri/npm/src/app/identity/habbing.js +129 -6
- package/esm/keri/npm/src/app/identity/keeping.js +77 -4
- package/esm/keri/npm/src/app/ipex/group-ipex.js +327 -0
- package/esm/keri/npm/src/app/ipex/group-issuance.js +902 -0
- package/esm/keri/npm/src/app/ipex/ipex-admitting.js +120 -0
- package/esm/keri/npm/src/app/ipex/ipex-conversation.js +197 -0
- package/esm/keri/npm/src/app/ipex/ipex-discloser.js +591 -0
- package/esm/keri/npm/src/app/ipex/ipex-granting.js +93 -0
- package/esm/keri/npm/src/app/ipex/ipex-grouping.js +34 -11
- package/esm/keri/npm/src/app/ipex/issuance.js +888 -0
- package/esm/keri/npm/src/app/ipex/pending-presentations.js +46 -0
- package/esm/keri/npm/src/app/ipex/presentation-files.js +200 -0
- package/esm/keri/npm/src/app/ipex/presenting.js +401 -0
- package/esm/keri/npm/src/app/ipex/receive-issuance.js +86 -0
- package/esm/keri/npm/src/app/ipex/unblinding-workflow.js +660 -0
- package/esm/keri/npm/src/app/mailbox/ipex-arrival.js +103 -0
- package/esm/keri/npm/src/app/mailbox/kel-publisher.js +322 -0
- package/esm/keri/npm/src/app/mailbox/kel-publishing.js +65 -0
- package/esm/keri/npm/src/app/mailbox/kel-submission.js +24 -0
- package/esm/keri/npm/src/app/mailbox/mailbox-admin.js +208 -0
- package/esm/keri/npm/src/app/mailbox/mailbox-poller.js +212 -47
- package/esm/keri/npm/src/app/mailbox/mailboxing.js +10 -5
- package/esm/keri/npm/src/app/multisig/counseling.js +482 -0
- package/esm/keri/npm/src/app/multisig/group-members.js +18 -0
- package/esm/keri/npm/src/app/multisig/multisig-workflows.js +94 -139
- package/esm/keri/npm/src/app/multisig/proposals.js +281 -0
- package/esm/keri/npm/src/app/multisig/proposing.js +122 -0
- package/esm/keri/npm/src/app/notifications/signaling.js +5 -5
- package/esm/keri/npm/src/app/protocol/parsering.js +26 -1
- package/esm/keri/npm/src/app/protocol/protocol-processing.js +9 -3
- package/esm/keri/npm/src/app/queries/query-workflows.js +98 -0
- package/esm/keri/npm/src/app/runtime/agent-runtime.js +106 -55
- package/esm/keri/npm/src/app/runtime/cue-runtime.js +3 -6
- package/esm/keri/npm/src/app/runtime/delivery-outbox.js +87 -0
- package/esm/keri/npm/src/app/runtime/doing.js +17 -0
- package/esm/keri/npm/src/app/runtime/ipex-auxiliaries.js +207 -0
- package/esm/keri/npm/src/app/runtime/operation-owners.js +151 -0
- package/esm/keri/npm/src/app/runtime/retry-backoff.js +93 -0
- package/esm/keri/npm/src/app/runtime/workflow-contract.js +80 -0
- package/esm/keri/npm/src/app/transport/http-client.js +25 -6
- package/esm/keri/npm/src/app/witness/http-endpoints.js +4 -4
- package/esm/keri/npm/src/cli/common/event-completion.js +49 -0
- package/esm/keri/npm/src/cli/common/runtime-workers.js +23 -0
- package/esm/keri/npm/src/cli/credentials/ipex.js +157 -190
- package/esm/keri/npm/src/cli/credentials/vc.js +53 -72
- package/esm/keri/npm/src/cli/endpoints/did.js +12 -3
- package/esm/keri/npm/src/cli/endpoints/oobi.js +10 -13
- package/esm/keri/npm/src/cli/identity/challenge.js +8 -34
- package/esm/keri/npm/src/cli/identity/delegate.js +81 -258
- package/esm/keri/npm/src/cli/identity/incept.js +15 -32
- package/esm/keri/npm/src/cli/identity/interact.js +5 -17
- package/esm/keri/npm/src/cli/identity/rotate.js +8 -36
- package/esm/keri/npm/src/cli/index.js +3 -1
- package/esm/keri/npm/src/cli/messaging/group-join.js +79 -0
- package/esm/keri/npm/src/cli/messaging/group-wait.js +88 -0
- package/esm/keri/npm/src/cli/messaging/multisig.js +163 -284
- package/esm/keri/npm/src/cli/messaging/root-copy-lines.js +31 -0
- package/esm/keri/npm/src/core/kel/eventing.js +66 -10
- package/esm/keri/npm/src/core/mailbox/kram-policy.js +39 -6
- package/esm/keri/npm/src/core/mailbox/kraming.js +2 -0
- package/esm/keri/npm/src/core/records.js +23 -0
- package/esm/keri/npm/src/core/routing.js +13 -0
- package/esm/keri/npm/src/db/basing.js +34 -2
- package/esm/keri/npm/src/db/core/indexeddb-persistence.js +221 -0
- package/esm/keri/npm/src/db/indexeddb.js +98 -0
- package/esm/keri/npm/src/db/keeping.js +11 -2
- package/esm/keri/npm/src/db/store-lock.js +150 -0
- package/esm/keri/npm/src/npm/db-indexeddb.browser.js +2 -0
- package/esm/keri/npm/src/npm/db-indexeddb.js +3 -0
- package/esm/keri/npm/src/npm/db.browser.js +2 -0
- package/esm/keri/npm/src/npm/index.browser.js +9 -0
- package/esm/keri/npm/src/npm/runtime-web.browser.js +2 -0
- package/esm/keri/npm/src/npm/runtime-web.js +3 -0
- package/esm/keri/npm/src/npm/runtime.browser.js +2 -0
- package/esm/keri/npm/src/runtime/index.js +51 -4
- package/esm/keri/npm/src/runtime/web/output-barrier.js +47 -0
- package/esm/keri/npm/src/runtime/web/persistent-storage.js +37 -0
- package/esm/keri/npm/src/runtime/web.js +10 -0
- package/esm/keri/npm/src/vdr/tel-publication.js +16 -0
- package/esm/keri/npm/src/version.js +2 -2
- package/package.json +15 -2
- package/types/acdc/authoring.d.ts +54 -0
- package/types/acdc/authoring.d.ts.map +1 -0
- package/types/acdc/custody.d.ts +77 -0
- package/types/acdc/custody.d.ts.map +1 -0
- package/types/acdc/dhking.d.ts +94 -3
- package/types/acdc/dhking.d.ts.map +1 -1
- package/types/acdc/regbasing.d.ts +4 -0
- package/types/acdc/regbasing.d.ts.map +1 -1
- package/types/acdc/salting.d.ts +6 -1
- package/types/acdc/salting.d.ts.map +1 -1
- package/types/acdc/scheming.d.ts +2 -0
- package/types/acdc/scheming.d.ts.map +1 -1
- package/types/acdc/unblinding.d.ts +58 -19
- package/types/acdc/unblinding.d.ts.map +1 -1
- package/types/app/bootstrap/authenticating.d.ts +3 -1
- package/types/app/bootstrap/authenticating.d.ts.map +1 -1
- package/types/app/bootstrap/oobi-resolving.d.ts +92 -0
- package/types/app/bootstrap/oobi-resolving.d.ts.map +1 -0
- package/types/app/bootstrap/oobiery.d.ts +3 -1
- package/types/app/bootstrap/oobiery.d.ts.map +1 -1
- package/types/app/credentials/credential-revoking.d.ts +3 -0
- package/types/app/credentials/credential-revoking.d.ts.map +1 -1
- package/types/app/credentials/credential-workflows.d.ts +5 -0
- package/types/app/credentials/credential-workflows.d.ts.map +1 -1
- package/types/app/credentials/registry-settling.d.ts +85 -0
- package/types/app/credentials/registry-settling.d.ts.map +1 -0
- package/types/app/credentials/root-replicating.d.ts +56 -44
- package/types/app/credentials/root-replicating.d.ts.map +1 -1
- package/types/app/credentials/root-replicator.d.ts +105 -0
- package/types/app/credentials/root-replicator.d.ts.map +1 -0
- package/types/app/credentials/tel-completion.d.ts +55 -0
- package/types/app/credentials/tel-completion.d.ts.map +1 -0
- package/types/app/delivery/forwarding.d.ts +6 -0
- package/types/app/delivery/forwarding.d.ts.map +1 -1
- package/types/app/exchanges/exchanging.d.ts.map +1 -1
- package/types/app/identity/challenging.d.ts +54 -0
- package/types/app/identity/challenging.d.ts.map +1 -1
- package/types/app/identity/delegating.d.ts +21 -4
- package/types/app/identity/delegating.d.ts.map +1 -1
- package/types/app/identity/delegation-approval.d.ts +228 -0
- package/types/app/identity/delegation-approval.d.ts.map +1 -0
- package/types/app/identity/event-completion.d.ts +151 -0
- package/types/app/identity/event-completion.d.ts.map +1 -0
- package/types/app/identity/habbing.d.ts +67 -2
- package/types/app/identity/habbing.d.ts.map +1 -1
- package/types/app/identity/keeping.d.ts +49 -3
- package/types/app/identity/keeping.d.ts.map +1 -1
- package/types/app/ipex/group-ipex.d.ts +247 -0
- package/types/app/ipex/group-ipex.d.ts.map +1 -0
- package/types/app/ipex/group-issuance.d.ts +281 -0
- package/types/app/ipex/group-issuance.d.ts.map +1 -0
- package/types/app/ipex/ipex-admitting.d.ts +47 -0
- package/types/app/ipex/ipex-admitting.d.ts.map +1 -0
- package/types/app/ipex/ipex-conversation.d.ts +195 -0
- package/types/app/ipex/ipex-conversation.d.ts.map +1 -0
- package/types/app/ipex/ipex-discloser.d.ts +156 -0
- package/types/app/ipex/ipex-discloser.d.ts.map +1 -0
- package/types/app/ipex/ipex-granting.d.ts +145 -0
- package/types/app/ipex/ipex-granting.d.ts.map +1 -0
- package/types/app/ipex/ipex-grouping.d.ts +18 -0
- package/types/app/ipex/ipex-grouping.d.ts.map +1 -1
- package/types/app/ipex/issuance.d.ts +443 -0
- package/types/app/ipex/issuance.d.ts.map +1 -0
- package/types/app/ipex/pending-presentations.d.ts +25 -0
- package/types/app/ipex/pending-presentations.d.ts.map +1 -0
- package/types/app/ipex/presentation-files.d.ts +47 -0
- package/types/app/ipex/presentation-files.d.ts.map +1 -0
- package/types/app/ipex/presenting.d.ts +298 -0
- package/types/app/ipex/presenting.d.ts.map +1 -0
- package/types/app/ipex/receive-issuance.d.ts +99 -0
- package/types/app/ipex/receive-issuance.d.ts.map +1 -0
- package/types/app/ipex/unblinding-workflow.d.ts +255 -0
- package/types/app/ipex/unblinding-workflow.d.ts.map +1 -0
- package/types/app/mailbox/ipex-arrival.d.ts +104 -0
- package/types/app/mailbox/ipex-arrival.d.ts.map +1 -0
- package/types/app/mailbox/kel-publisher.d.ts +141 -0
- package/types/app/mailbox/kel-publisher.d.ts.map +1 -0
- package/types/app/mailbox/kel-publishing.d.ts +70 -0
- package/types/app/mailbox/kel-publishing.d.ts.map +1 -0
- package/types/app/mailbox/kel-submission.d.ts +18 -0
- package/types/app/mailbox/kel-submission.d.ts.map +1 -0
- package/types/app/mailbox/mailbox-admin.d.ts +113 -0
- package/types/app/mailbox/mailbox-admin.d.ts.map +1 -0
- package/types/app/mailbox/mailbox-poller.d.ts +92 -3
- package/types/app/mailbox/mailbox-poller.d.ts.map +1 -1
- package/types/app/mailbox/mailboxing.d.ts +3 -0
- package/types/app/mailbox/mailboxing.d.ts.map +1 -1
- package/types/app/multisig/counseling.d.ts +196 -0
- package/types/app/multisig/counseling.d.ts.map +1 -0
- package/types/app/multisig/group-members.d.ts +11 -0
- package/types/app/multisig/group-members.d.ts.map +1 -1
- package/types/app/multisig/grouping.d.ts +39 -20
- package/types/app/multisig/grouping.d.ts.map +1 -1
- package/types/app/multisig/multisig-workflows.d.ts +91 -22
- package/types/app/multisig/multisig-workflows.d.ts.map +1 -1
- package/types/app/multisig/proposals.d.ts +129 -0
- package/types/app/multisig/proposals.d.ts.map +1 -0
- package/types/app/multisig/proposing.d.ts +125 -0
- package/types/app/multisig/proposing.d.ts.map +1 -0
- package/types/app/notifications/signaling.d.ts +3 -1
- package/types/app/notifications/signaling.d.ts.map +1 -1
- package/types/app/protocol/parsering.d.ts +13 -0
- package/types/app/protocol/parsering.d.ts.map +1 -1
- package/types/app/protocol/protocol-processing.d.ts +7 -1
- package/types/app/protocol/protocol-processing.d.ts.map +1 -1
- package/types/app/queries/query-workflows.d.ts +98 -0
- package/types/app/queries/query-workflows.d.ts.map +1 -0
- package/types/app/runtime/agent-runtime.d.ts +72 -25
- package/types/app/runtime/agent-runtime.d.ts.map +1 -1
- package/types/app/runtime/cue-runtime.d.ts +2 -1
- package/types/app/runtime/cue-runtime.d.ts.map +1 -1
- package/types/app/runtime/delivery-outbox.d.ts +68 -0
- package/types/app/runtime/delivery-outbox.d.ts.map +1 -0
- package/types/app/runtime/doing.d.ts +27 -0
- package/types/app/runtime/doing.d.ts.map +1 -0
- package/types/app/runtime/ipex-auxiliaries.d.ts +74 -0
- package/types/app/runtime/ipex-auxiliaries.d.ts.map +1 -0
- package/types/app/runtime/operation-owners.d.ts +137 -0
- package/types/app/runtime/operation-owners.d.ts.map +1 -0
- package/types/app/runtime/retry-backoff.d.ts +49 -0
- package/types/app/runtime/retry-backoff.d.ts.map +1 -0
- package/types/app/runtime/workflow-contract.d.ts +79 -0
- package/types/app/runtime/workflow-contract.d.ts.map +1 -0
- package/types/app/transport/http-client.d.ts.map +1 -1
- package/types/cli/common/event-completion.d.ts +26 -0
- package/types/cli/common/event-completion.d.ts.map +1 -0
- package/types/cli/common/runtime-workers.d.ts +23 -0
- package/types/cli/common/runtime-workers.d.ts.map +1 -0
- package/types/cli/credentials/ipex.d.ts.map +1 -1
- package/types/cli/credentials/vc.d.ts +1 -1
- package/types/cli/credentials/vc.d.ts.map +1 -1
- package/types/cli/endpoints/did.d.ts.map +1 -1
- package/types/cli/endpoints/oobi.d.ts +3 -1
- package/types/cli/endpoints/oobi.d.ts.map +1 -1
- package/types/cli/identity/challenge.d.ts +1 -1
- package/types/cli/identity/challenge.d.ts.map +1 -1
- package/types/cli/identity/delegate.d.ts +14 -1
- package/types/cli/identity/delegate.d.ts.map +1 -1
- package/types/cli/identity/incept.d.ts.map +1 -1
- package/types/cli/identity/interact.d.ts.map +1 -1
- package/types/cli/identity/rotate.d.ts.map +1 -1
- package/types/cli/index.d.ts +3 -1
- package/types/cli/index.d.ts.map +1 -1
- package/types/cli/messaging/group-join.d.ts +53 -0
- package/types/cli/messaging/group-join.d.ts.map +1 -0
- package/types/cli/messaging/group-wait.d.ts +34 -0
- package/types/cli/messaging/group-wait.d.ts.map +1 -0
- package/types/cli/messaging/multisig.d.ts +28 -5
- package/types/cli/messaging/multisig.d.ts.map +1 -1
- package/types/cli/messaging/root-copy-lines.d.ts +39 -0
- package/types/cli/messaging/root-copy-lines.d.ts.map +1 -0
- package/types/core/cues.d.ts +11 -0
- package/types/core/cues.d.ts.map +1 -1
- package/types/core/kel/eventing.d.ts.map +1 -1
- package/types/core/mailbox/kram-policy.d.ts +14 -0
- package/types/core/mailbox/kram-policy.d.ts.map +1 -1
- package/types/core/mailbox/kraming.d.ts +1 -1
- package/types/core/mailbox/kraming.d.ts.map +1 -1
- package/types/core/records.d.ts +61 -0
- package/types/core/records.d.ts.map +1 -1
- package/types/core/routing.d.ts +6 -0
- package/types/core/routing.d.ts.map +1 -1
- package/types/db/basing.d.ts +8 -2
- package/types/db/basing.d.ts.map +1 -1
- package/types/db/core/indexeddb-persistence.d.ts +59 -0
- package/types/db/core/indexeddb-persistence.d.ts.map +1 -0
- package/types/db/indexeddb.d.ts +37 -0
- package/types/db/indexeddb.d.ts.map +1 -0
- package/types/db/keeping.d.ts +5 -2
- package/types/db/keeping.d.ts.map +1 -1
- package/types/db/store-lock.d.ts +72 -0
- package/types/db/store-lock.d.ts.map +1 -0
- package/types/npm/db-indexeddb.d.ts +4 -0
- package/types/npm/db-indexeddb.d.ts.map +1 -0
- package/types/npm/runtime-web.d.ts +4 -0
- package/types/npm/runtime-web.d.ts.map +1 -0
- package/types/runtime/index.d.ts +41 -6
- package/types/runtime/index.d.ts.map +1 -1
- package/types/runtime/web/output-barrier.d.ts +30 -0
- package/types/runtime/web/output-barrier.d.ts.map +1 -0
- package/types/runtime/web/persistent-storage.d.ts +36 -0
- package/types/runtime/web/persistent-storage.d.ts.map +1 -0
- package/types/runtime/web.d.ts +11 -0
- package/types/runtime/web.d.ts.map +1 -0
- package/types/vdr/tel-publication.d.ts +6 -0
- package/types/vdr/tel-publication.d.ts.map +1 -1
- package/types/version.d.ts +2 -2
- package/esm/keri/npm/src/cli/common/tel-completion.js +0 -24
- package/types/cli/common/tel-completion.d.ts +0 -8
- package/types/cli/common/tel-completion.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signaling.d.ts","sourceRoot":"","sources":["../../../src/app/notifications/signaling.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"signaling.d.ts","sourceRoot":"","sources":["../../../src/app/notifications/signaling.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,6 +83,11 @@ export type DispatchDecision = KeverDecision | TelProcessDecision | VerifierDeci
|
|
|
83
83
|
export interface AuxiliaryQueryProcessor {
|
|
84
84
|
/** Concrete custom query route selected by composition before any replay-cache admission. */
|
|
85
85
|
readonly resource: string;
|
|
86
|
+
/**
|
|
87
|
+
* Overrides the single-`resource` check for receivers that own several routes or identifiers.
|
|
88
|
+
* Evaluated before KRAM, so a refused query leaves no cache state, as for a missing receiver.
|
|
89
|
+
*/
|
|
90
|
+
claims?(serder: SerderKERI): boolean;
|
|
86
91
|
processQuery(envelope: KeriDispatchEnvelope): DispatchDecision;
|
|
87
92
|
}
|
|
88
93
|
/**
|
|
@@ -125,6 +130,14 @@ messageKevery?: Kevery, registry?: RegistryObserver, qvy?: AuxiliaryQueryProcess
|
|
|
125
130
|
export declare function envelopeFromFrame(message: CesrFrame, local?: boolean): KeriDispatchEnvelope;
|
|
126
131
|
/** Own an auxiliary query's normalized full proof and public nested evidence beyond synchronous intake. */
|
|
127
132
|
export declare function copyAuxiliaryQuery(envelope: KeriDispatchEnvelope): KeriDispatchEnvelope;
|
|
133
|
+
/**
|
|
134
|
+
* Serialize an auxiliary query without nested evidence so a later process can rebuild it: its own frame with
|
|
135
|
+
* every attachment group (plus `children`, nested evidence already encoded as counted frames), then the
|
|
136
|
+
* normalized proof KRAM may have completed from earlier inputs.
|
|
137
|
+
*/
|
|
138
|
+
export declare function auxiliaryQueryWire(envelope: KeriDispatchEnvelope, children?: readonly Uint8Array[]): Uint8Array;
|
|
139
|
+
/** Rebuild the envelope {@link auxiliaryQueryWire} serialized. */
|
|
140
|
+
export declare function restoreAuxiliaryQuery(wire: Uint8Array, local?: boolean): KeriDispatchEnvelope;
|
|
128
141
|
/** Normalize the actual query endorsements for ingress and per-request authorization. */
|
|
129
142
|
export declare function queryEnvelopeFromDispatch(envelope: KeriDispatchEnvelope): QueryEnvelope;
|
|
130
143
|
//# sourceMappingURL=parsering.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsering.d.ts","sourceRoot":"","sources":["../../../src/app/protocol/parsering.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parsering.d.ts","sourceRoot":"","sources":["../../../src/app/protocol/parsering.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,13 @@ import type { Verifier } from "../credentials/verifying.js";
|
|
|
11
11
|
import { Exchanger } from "../exchanges/exchanging.js";
|
|
12
12
|
import type { Habery } from "../identity/habbing.js";
|
|
13
13
|
import { QueryReplies } from "../queries/query-replies.js";
|
|
14
|
+
import { type RuntimeClock } from "../runtime/runtime-clock.js";
|
|
14
15
|
import { type AuxiliaryQueryProcessor, type DispatchResult } from "./parsering.js";
|
|
16
|
+
/**
|
|
17
|
+
* Wait after every escrow pass, as KERIpy's Doist cycle (`tock` 0.03125 s, app/directing.py) paces its `escrowDo`,
|
|
18
|
+
* which runs one full pass per cycle. A pass is never skipped or shortened; this is the time others get between passes.
|
|
19
|
+
*/
|
|
20
|
+
export declare const ESCROW_TOCK_MS = 31.25;
|
|
15
21
|
/** Protocol choices for a frame; input owners separately own cancellation and parsing. */
|
|
16
22
|
export interface DispatchOptions {
|
|
17
23
|
/** Whether the frame arrived through local witness/controller intake. */
|
|
@@ -130,7 +136,7 @@ export declare class ProtocolProcessor {
|
|
|
130
136
|
* - mirrors the dedicated `escrowDo` loop rather than folding escrow
|
|
131
137
|
* processing into parser ingress
|
|
132
138
|
*/
|
|
133
|
-
escrowDo(): Operation<never>;
|
|
139
|
+
escrowDo(clock?: RuntimeClock): Operation<never>;
|
|
134
140
|
}
|
|
135
141
|
/**
|
|
136
142
|
* Compose minimal KEL/reply/exchange intake over an existing Habery; acquire no stores or workers.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol-processing.d.ts","sourceRoot":"","sources":["../../../src/app/protocol/protocol-processing.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,OAAO,EAA0B,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol-processing.d.ts","sourceRoot":"","sources":["../../../src/app/protocol/protocol-processing.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,OAAO,EAA0B,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,6BAA6B,CAAC;AAE7E,OAAO,EACL,KAAK,uBAAuB,EAE5B,KAAK,cAAc,EAGpB,MAAM,gBAAgB,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAQ,CAAC;AAEpC,0FAA0F;AAC1F,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,wFAAwF;IACxF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,yFAAyF;AACzF,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,uFAAuF;IACvF,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAcD;;;;;;;;GAQG;AACH,qBAAa,iBAAiB;IAiB1B,0FAA0F;IAC1F,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,kFAAkF;IAClF,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,wFAAwF;IACxF,QAAQ,CAAC,GAAG,EAAE,SAAS;IACvB,uFAAuF;IACvF,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAC1C,sFAAsF;IACtF,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;IAC7B,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE,YAAY;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,uBAAuB;IAlCxC;;;;;;;;;;;;;;OAcG;;IAED,0FAA0F;IACjF,GAAG,EAAE,MAAM;IACpB,kFAAkF;IACzE,GAAG,EAAE,MAAM;IACpB,wFAAwF;IAC/E,GAAG,EAAE,SAAS;IACvB,uFAAuF;IAC9E,GAAG,EAAE,MAAM,GAAG,IAAI;IAC3B,sEAAsE;IAC7D,GAAG,EAAE,QAAQ,GAAG,IAAI;IAC7B,6EAA6E;IACpE,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAC1C,sFAAsF;IACrE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC;IAC7C,0EAA0E;IACjE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;IAC7B,mFAAmF;IAC1E,OAAO,EAAE,YAAY,EACrB,GAAG,CAAC,EAAE,uBAAuB,YAAA;IAaxC;;;;OAIG;IACH,UAAU,IAAI,MAAM;IAWpB;;;;;;;;;;OAUG;IACH,QAAQ,CACN,KAAK,EAAE,SAAS,EAChB,EAAE,KAAsB,EAAE,UAAU,EAAE,OAAe,EAAE,GAAE,eAAoB,EAC7E,GAAG,GAAE,MAAiB,GACrB,SAAS,CAAC,sBAAsB,CAAC;IAgDpC,mGAAmG;IACnG,OAAO,CAAC,WAAW;IASnB,yFAAyF;IACxF,kBAAkB,IAAI,SAAS,CAAC,IAAI,CAAC;IAQtC;;;;;;OAMG;IACH,0BAA0B,IAAI,IAAI;IAQlC,0FAA0F;IAC1F,OAAO,CAAC,sBAAsB;IAK9B,qFAAqF;IACrF,OAAO,CAAE,cAAc;IAUvB;;;;;;OAMG;IACF,QAAQ,CAAC,KAAK,GAAE,YAA0B,GAAG,SAAS,CAAC,KAAK,CAAC;CAM/D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAMtE"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Library entry points for key-state and anchor queries.
|
|
3
|
+
*
|
|
4
|
+
* A query is a finite workflow (`KeyStateNoticer` or `AnchorQuerier`) that runs
|
|
5
|
+
* beside the host's runtime workers, which send the request and ingest the reply.
|
|
6
|
+
* These functions never start those workers: a wallet already runs them, and the
|
|
7
|
+
* CLI runs them around the call (`cli/common/runtime-workers.ts`). The host must
|
|
8
|
+
* have configured the sender with the signing hab (`runAgentRuntime` does) and,
|
|
9
|
+
* for key state, wired its cue owner to the `cues` Deck it passes here.
|
|
10
|
+
*
|
|
11
|
+
* Begin/status/wait split. `begin*` spawns the workflow in the caller's scope and
|
|
12
|
+
* returns a {@link QueryRun}; `wait` observes it against a deadline; `queryKeyState`
|
|
13
|
+
* and `queryAnchor` are begin + wait + halt. Tasks belong to the scope that began
|
|
14
|
+
* them, so a UI that begins a query keeps that scope open and halts the run.
|
|
15
|
+
*/
|
|
16
|
+
import type { SealEvent } from "cesr-ts";
|
|
17
|
+
import { type Operation } from "effection";
|
|
18
|
+
import type { AgentCue } from "../../core/cues.js";
|
|
19
|
+
import type { Deck } from "../../core/deck.js";
|
|
20
|
+
import type { Hab, Habery } from "../identity/habbing.js";
|
|
21
|
+
import type { ChangeSink, WaitResult } from "../runtime/workflow-contract.js";
|
|
22
|
+
import type { WitnessInquisitor } from "./witness-inquisitor.js";
|
|
23
|
+
/** One elapsed deadline covers query sending and independently received evidence. */
|
|
24
|
+
export declare const QUERY_TIMEOUT_MS = 10000;
|
|
25
|
+
/** Exact event seal sought by an anchor query. */
|
|
26
|
+
export type QueryAnchor = ReturnType<typeof SealEvent.toSad>;
|
|
27
|
+
/** Collaborators every query needs: accepted-state stores and the query sender. */
|
|
28
|
+
export interface QueryDeps {
|
|
29
|
+
readonly hby: Habery;
|
|
30
|
+
readonly querying: WitnessInquisitor;
|
|
31
|
+
/** Optional sink told `{kind:"query", id:"<prefix>"}` when a query starts and when it completes. */
|
|
32
|
+
readonly changes?: ChangeSink;
|
|
33
|
+
}
|
|
34
|
+
/** Key-state queries also need the Deck the host's cue owner fills with saved notices. */
|
|
35
|
+
export interface KeyStateQueryDeps extends QueryDeps {
|
|
36
|
+
readonly cues: Deck<AgentCue>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Status of a query. `scope` says where the fact lives: `"process"` means it is
|
|
40
|
+
* held only by the running {@link QueryRun} and is lost on restart or reload
|
|
41
|
+
* (key-state completion rides a transient `keyStateSaved` cue that leaves no
|
|
42
|
+
* durable record); `"durable"` means it was recomputed from stores
|
|
43
|
+
* ({@link anchorQueryStatus}).
|
|
44
|
+
*/
|
|
45
|
+
export type QueryStatus = {
|
|
46
|
+
state: "active";
|
|
47
|
+
phase: "awaitingEvidence";
|
|
48
|
+
scope: "process" | "durable";
|
|
49
|
+
} | {
|
|
50
|
+
state: "completed";
|
|
51
|
+
scope: "process" | "durable";
|
|
52
|
+
};
|
|
53
|
+
/** Result of waiting on a query: settled once accepted evidence satisfied it, or the deadline won. */
|
|
54
|
+
export type QueryOutcome = WaitResult<QueryStatus>;
|
|
55
|
+
/** Wait budget for a blocking query. */
|
|
56
|
+
export interface QueryWaitOptions {
|
|
57
|
+
/** Wall-clock budget; defaults to {@link QUERY_TIMEOUT_MS}. */
|
|
58
|
+
timeoutMs?: number;
|
|
59
|
+
}
|
|
60
|
+
/** Inputs shared by key-state and anchor queries. */
|
|
61
|
+
export interface QueryTarget {
|
|
62
|
+
/** Local member or single-controller requester that signs the query. */
|
|
63
|
+
hab: Hab;
|
|
64
|
+
/** Subject AID being queried; distinct from the requester. */
|
|
65
|
+
prefix: string;
|
|
66
|
+
}
|
|
67
|
+
/** Handle on a started query; its tasks belong to the scope that began it. */
|
|
68
|
+
export interface QueryRun {
|
|
69
|
+
readonly prefix: string;
|
|
70
|
+
/** Process-local status (`scope: "process"`): completed once the workflow task has returned. */
|
|
71
|
+
status(): QueryStatus;
|
|
72
|
+
/** Observe completion against a fresh deadline; a timeout leaves the run going. */
|
|
73
|
+
wait(options?: QueryWaitOptions): Operation<QueryOutcome>;
|
|
74
|
+
/** Halt the workflow. Safe after completion. */
|
|
75
|
+
halt(): Operation<void>;
|
|
76
|
+
}
|
|
77
|
+
/** Reject group habs: a query must be signed by one member, not by a group needing more signatures. */
|
|
78
|
+
export declare function requireQueryRequester(hby: Habery, hab: Hab): void;
|
|
79
|
+
/** Durable anchor status (`scope: "durable"`): the accepted KEL of `prefix` already holds the exact seal. */
|
|
80
|
+
export declare function anchorQueryStatus(deps: Pick<QueryDeps, "hby">, prefix: string, anchor: QueryAnchor): QueryStatus;
|
|
81
|
+
/** Start a key-state query in the caller's scope. */
|
|
82
|
+
export declare function beginKeyStateQuery(deps: KeyStateQueryDeps, target: QueryTarget): Operation<QueryRun>;
|
|
83
|
+
/** Start an anchor query in the caller's scope. */
|
|
84
|
+
export declare function beginAnchorQuery(deps: QueryDeps, target: QueryTarget & {
|
|
85
|
+
anchor: QueryAnchor;
|
|
86
|
+
}): Operation<QueryRun>;
|
|
87
|
+
/**
|
|
88
|
+
* Query current key state for `prefix` and wait for accepted evidence.
|
|
89
|
+
*
|
|
90
|
+
* @returns `settled` (status `completed`), or `timed-out`; a timeout is not permission to treat
|
|
91
|
+
* stale local state as success. Workflow failures propagate.
|
|
92
|
+
*/
|
|
93
|
+
export declare function queryKeyState(deps: KeyStateQueryDeps, target: QueryTarget, options?: QueryWaitOptions): Operation<QueryOutcome>;
|
|
94
|
+
/** Query for an accepted KEL event holding the exact seal `target.anchor`; see {@link queryKeyState}. */
|
|
95
|
+
export declare function queryAnchor(deps: QueryDeps, target: QueryTarget & {
|
|
96
|
+
anchor: QueryAnchor;
|
|
97
|
+
}, options?: QueryWaitOptions): Operation<QueryOutcome>;
|
|
98
|
+
//# sourceMappingURL=query-workflows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-workflows.d.ts","sourceRoot":"","sources":["../../../src/app/queries/query-workflows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAQ,KAAK,SAAS,EAAiC,MAAM,WAAW,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,QAAS,CAAC;AAEvC,kDAAkD;AAClD,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AAE7D,mFAAmF;AACnF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,oGAAoG;IACpG,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;CAC/B;AAED,0FAA0F;AAC1F,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,GAC5E;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,CAAC;AAEzD,sGAAsG;AACtG,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;AAEnD,wCAAwC;AACxC,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,GAAG,EAAE,GAAG,CAAC;IACT,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8EAA8E;AAC9E,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gGAAgG;IAChG,MAAM,IAAI,WAAW,CAAC;IACtB,mFAAmF;IACnF,IAAI,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;IAC1D,gDAAgD;IAChD,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,uGAAuG;AACvG,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAMjE;AAED,6GAA6G;AAC7G,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,GAClB,WAAW,CAIb;AAED,qDAAqD;AACrD,wBAAiB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,CAMrG;AAED,mDAAmD;AACnD,wBAAiB,gBAAgB,CAC/B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,GAAG;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GAC5C,SAAS,CAAC,QAAQ,CAAC,CAMrB;AAED;;;;;GAKG;AACH,wBAAiB,aAAa,CAC5B,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,gBAAqB,GAC7B,SAAS,CAAC,YAAY,CAAC,CAEzB;AAED,yGAAyG;AACzG,wBAAiB,WAAW,CAC1B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,GAAG;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,EAC7C,OAAO,GAAE,gBAAqB,GAC7B,SAAS,CAAC,YAAY,CAAC,CAEzB"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { type Operation } from "effection";
|
|
2
2
|
import type { AcdcWalkPolicy } from "../../acdc/chaining.js";
|
|
3
|
-
import { Dhke } from "../../acdc/dhking.js";
|
|
4
3
|
import { type Regery as AcdcRegery } from "../../acdc/registraring.js";
|
|
5
4
|
import { RegistryRoot } from "../../acdc/salting.js";
|
|
6
|
-
import { Unblind } from "../../acdc/unblinding.js";
|
|
7
5
|
import type { AgentCue } from "../../core/cues.js";
|
|
8
6
|
import { Deck } from "../../core/deck.js";
|
|
9
7
|
import type { KeriDispatchEnvelope, TransIdxSigGroup } from "../../core/dispatch.js";
|
|
@@ -15,14 +13,17 @@ import { Reger } from "../../db/reger.js";
|
|
|
15
13
|
import { Regery as VdrRegery } from "../../vdr/credentialing.js";
|
|
16
14
|
import { Authenticator } from "../bootstrap/authenticating.js";
|
|
17
15
|
import { Oobiery, type OobiJob } from "../bootstrap/oobiery.js";
|
|
16
|
+
import type { RootReplicator } from "../credentials/root-replicator.js";
|
|
18
17
|
import { Poster } from "../delivery/forwarding.js";
|
|
19
18
|
import { ReplyStreams } from "../delivery/reply-streams.js";
|
|
20
19
|
import { Respondant } from "../delivery/respondant.js";
|
|
21
20
|
import { Exchanger } from "../exchanges/exchanging.js";
|
|
22
21
|
import { Anchorer } from "../identity/delegating.js";
|
|
23
22
|
import type { Hab, Habery } from "../identity/habbing.js";
|
|
23
|
+
import { KelPublisher } from "../mailbox/kel-publisher.js";
|
|
24
24
|
import { MailboxDirector } from "../mailbox/mailbox-director.js";
|
|
25
|
-
import { type MailboxPollBatch, MailboxPoller } from "../mailbox/mailbox-poller.js";
|
|
25
|
+
import { type MailboxPollBatch, MailboxPoller, type MailboxPollingTimeoutPolicy } from "../mailbox/mailbox-poller.js";
|
|
26
|
+
import { Counselor } from "../multisig/counseling.js";
|
|
26
27
|
import { type Multiplexor } from "../multisig/grouping.js";
|
|
27
28
|
import { Notifier } from "../notifications/notifying.js";
|
|
28
29
|
import { Signaler } from "../notifications/signaling.js";
|
|
@@ -31,25 +32,12 @@ import { Reactor } from "../protocol/reactor.js";
|
|
|
31
32
|
import { QueryReplies } from "../queries/query-replies.js";
|
|
32
33
|
import { WitnessInquisitor } from "../queries/witness-inquisitor.js";
|
|
33
34
|
import type { HttpClient } from "../transport/http-client.js";
|
|
35
|
+
import { type DoerPacing } from "./doing.js";
|
|
36
|
+
import { IpexAuxiliaries } from "./ipex-auxiliaries.js";
|
|
37
|
+
import { type OperationStores, type RuntimeOperations } from "./operation-owners.js";
|
|
38
|
+
import type { RetryPolicy } from "./retry-backoff.js";
|
|
34
39
|
import type { RuntimeClock } from "./runtime-clock.js";
|
|
35
40
|
export type { KeriDispatchEnvelope, OobiJob, TransIdxSigGroup };
|
|
36
|
-
/** One explicitly selected local IPEX auxiliary owner; construction never approves a Grant. */
|
|
37
|
-
export type IpexAuxiliarySelection = {
|
|
38
|
-
kind: "dhke";
|
|
39
|
-
hab: Hab;
|
|
40
|
-
} | {
|
|
41
|
-
kind: "unblind";
|
|
42
|
-
hab: Hab;
|
|
43
|
-
states: readonly string[];
|
|
44
|
-
};
|
|
45
|
-
/** Concrete owner exposed only at composition for finite application orchestration. */
|
|
46
|
-
export type IpexAuxiliary = {
|
|
47
|
-
kind: "dhke";
|
|
48
|
-
owner: Dhke;
|
|
49
|
-
} | {
|
|
50
|
-
kind: "unblind";
|
|
51
|
-
owner: Unblind;
|
|
52
|
-
};
|
|
53
41
|
/**
|
|
54
42
|
* Shared runtime composition root owned by one `Habery`.
|
|
55
43
|
*
|
|
@@ -88,8 +76,19 @@ export interface AgentRuntime {
|
|
|
88
76
|
exc: Exchanger;
|
|
89
77
|
/** Group proposal coordinator behind the registered `/multisig/*` routes; owners share routes by child route. */
|
|
90
78
|
mux: Multiplexor;
|
|
91
|
-
/**
|
|
92
|
-
|
|
79
|
+
/**
|
|
80
|
+
* Per-identifier DH and Unblind owners, created on first use for any local identifier, including
|
|
81
|
+
* ones made after the runtime. Null only for a read-only Habery, which has no v2 registry store.
|
|
82
|
+
* Obtaining an owner grants no consent; with KRAM off `approve` throws a "requires KRAM" error.
|
|
83
|
+
*/
|
|
84
|
+
readonly ipex: IpexAuxiliaries | null;
|
|
85
|
+
/**
|
|
86
|
+
* Issuance, presentation and Unblind operations owners, composed whenever `ipex` is.
|
|
87
|
+
* `runAgentRuntime` runs them on one fiber with an adaptive cadence.
|
|
88
|
+
*/
|
|
89
|
+
readonly operations: RuntimeOperations | null;
|
|
90
|
+
/** Root copy replicator driven by the owners loop; null without `ipex` or under `registryRoots: "refuse"`. */
|
|
91
|
+
readonly rootReplicator: RootReplicator | null;
|
|
93
92
|
/** Durable OOBI job owner, independent of outgoing delivery. */
|
|
94
93
|
oobiery: Oobiery;
|
|
95
94
|
/** Well-known authentication jobs over the shared HTTP service. */
|
|
@@ -104,6 +103,21 @@ export interface AgentRuntime {
|
|
|
104
103
|
postman: Poster;
|
|
105
104
|
/** Delegation workflow state and delivery/accepted-state gates. */
|
|
106
105
|
delegating: Anchorer;
|
|
106
|
+
/**
|
|
107
|
+
* Group-event completion over `gpse`/`gdee`/`gpwe`/`cgms`. It acts only on events a
|
|
108
|
+
* caller registered with `start`/`supply`; `runAgentRuntime` runs its loop.
|
|
109
|
+
*/
|
|
110
|
+
counselor: Counselor;
|
|
111
|
+
/** Tells an identifier's mailboxes its KEL after a rotation; `runAgentRuntime` runs its fiber. */
|
|
112
|
+
kelPublisher: KelPublisher;
|
|
113
|
+
/** Pacing of the owners loop `runAgentRuntime` runs. */
|
|
114
|
+
readonly ownerPacing: Readonly<DoerPacing>;
|
|
115
|
+
/** Pacing of the KEL publisher loop `runAgentRuntime` runs. */
|
|
116
|
+
readonly publisherPacing: Readonly<DoerPacing>;
|
|
117
|
+
/** Pacing of the protocol-facing background loops `runAgentRuntime` runs. */
|
|
118
|
+
readonly protocolPacing: Readonly<DoerPacing>;
|
|
119
|
+
/** Pacing of the mailbox poller `runAgentRuntime` runs. */
|
|
120
|
+
readonly pollerPacing: Readonly<DoerPacing>;
|
|
107
121
|
/**
|
|
108
122
|
* Background unsigned-request sender, run independently of reply intake.
|
|
109
123
|
* Pending sender work excludes semantic query waits; their invoking operations
|
|
@@ -153,16 +167,44 @@ export interface AgentRuntimeOptions {
|
|
|
153
167
|
notifier?: Notifier;
|
|
154
168
|
/** Construct a provider mailbox store. Omitted leaves it absent; injected mailboxer stays borrowed. */
|
|
155
169
|
enableMailboxStore?: boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Header and poll-window overrides, in milliseconds, for this runtime's mailbox poller. Omitted values keep
|
|
172
|
+
* the poller defaults; a short `maxPollDurationMs` makes polls turn over quickly for an embedder or test.
|
|
173
|
+
*/
|
|
174
|
+
mailboxPolling?: Partial<MailboxPollingTimeoutPolicy>;
|
|
175
|
+
/** Delivery retry delays of the issuance, presentation and Unblind operations; the production policy when absent. */
|
|
176
|
+
operationRetry?: Readonly<RetryPolicy>;
|
|
177
|
+
/** Milliseconds between issuer DH query resends of an individual issuance; one second when absent. */
|
|
178
|
+
issuanceQueryResendMs?: number;
|
|
179
|
+
/** Receipt retry delays of the Counselor; only `baseMs` and `maxMs` apply. Production policy when absent. */
|
|
180
|
+
counselorReceiptRetry?: Readonly<RetryPolicy>;
|
|
181
|
+
/** Retry delays and budget of KEL posts to mailboxes; the production policy when absent. */
|
|
182
|
+
kelPublishRetry?: Readonly<RetryPolicy>;
|
|
183
|
+
/** Tock and sweep interval of the operation owners loop; {@link OWNER_PACING} when absent. A host that must be gentler (a background tab, a battery) slows it. */
|
|
184
|
+
ownerPacing?: Readonly<DoerPacing>;
|
|
185
|
+
/** Tock and sweep interval of the KEL publisher loop; {@link KEL_PUBLISHER_PACING} when absent. */
|
|
186
|
+
publisherPacing?: Readonly<DoerPacing>;
|
|
187
|
+
/** Tock of the protocol-facing background loops (cues, OOBI, authentication, signals, TEL publication, delegation, group counseling); {@link PROTOCOL_PACING} when absent. */
|
|
188
|
+
protocolPacing?: Readonly<DoerPacing>;
|
|
189
|
+
/** Tock and sweep interval of the mailbox poller; {@link MAILBOX_POLLER_PACING} when absent: a sweep every five seconds. */
|
|
190
|
+
pollerPacing?: Readonly<DoerPacing>;
|
|
156
191
|
/** Borrowed legacy registry store; the runtime creates its processors and never closes this store. */
|
|
157
192
|
reger?: Reger;
|
|
158
193
|
/** An injected v2 manager and its backing store remain caller-owned. */
|
|
159
194
|
acdc?: AcdcRegery;
|
|
160
195
|
/** Sender filtering for v2 non-event ingress; denial always wins. */
|
|
161
196
|
messagePolicy?: MessagePolicy;
|
|
162
|
-
/**
|
|
197
|
+
/**
|
|
198
|
+
* Optional KRAM uses the trusted runtime receiver clock; enabled without `caches` uses `DEFAULT_KRAM_CACHES`.
|
|
199
|
+
* Omitting it leaves KRAM off, which KERIpy also does by default. DH and Unblind need it: with it off the
|
|
200
|
+
* owners still compose, but their `approve` throws a "requires KRAM" error.
|
|
201
|
+
*/
|
|
163
202
|
kram?: KramConfig;
|
|
164
|
-
/**
|
|
165
|
-
|
|
203
|
+
/**
|
|
204
|
+
* What an embedder may supply to the operation owners (the blind-derivation store and a change sink);
|
|
205
|
+
* the rest is composed. See {@link OperationStores}.
|
|
206
|
+
*/
|
|
207
|
+
operationStores?: OperationStores;
|
|
166
208
|
/**
|
|
167
209
|
* `/registry/root` policy. `"accept"` (default) registers `RegistryRoot` when
|
|
168
210
|
* a v2 registry is available, so copies are retained or escrowed on arrival.
|
|
@@ -211,6 +253,8 @@ export interface RuntimePendingState {
|
|
|
211
253
|
* Whether witness, unanchored or publication delegation escrow remains.
|
|
212
254
|
*/
|
|
213
255
|
delegationPending: boolean;
|
|
256
|
+
/** True while a group event awaits signatures, a delegator or witness receipts. */
|
|
257
|
+
groupPending: boolean;
|
|
214
258
|
/** True while unsigned query requests or their current transport attempt remain. */
|
|
215
259
|
queriesPending: boolean;
|
|
216
260
|
/** True while independently retained query/cue delivery owners remain. */
|
|
@@ -302,6 +346,9 @@ export declare function runtimePendingState(runtime: AgentRuntime): RuntimePendi
|
|
|
302
346
|
export declare function runtimeHasPendingWork(runtime: AgentRuntime): boolean;
|
|
303
347
|
/**
|
|
304
348
|
* Return true once OOBI acceptance and its ingress/query dependencies settle.
|
|
349
|
+
* This is a whole-runtime drain predicate: any unrelated pending cue, query,
|
|
350
|
+
* delegation or OOBI keeps it false. A command or request that asked for one
|
|
351
|
+
* OOBI must wait with `waitForOobi` (`app/bootstrap/oobi-resolving.ts`) instead.
|
|
305
352
|
* Background receipt delivery is not remote acknowledgement of OOBI acceptance;
|
|
306
353
|
* static OOBI servers may refuse unsolicited posts. Runtime close still joins I/O.
|
|
307
354
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../../../src/app/runtime/agent-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,SAAS,EAA4B,MAAM,WAAW,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../../../src/app/runtime/agent-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import type { AgentCue } from "../../core/cues.js";
|
|
|
3
3
|
import type { Deck } from "../../core/deck.js";
|
|
4
4
|
import type { Hab } from "../identity/habbing.js";
|
|
5
5
|
import type { AgentRuntime } from "./agent-runtime.js";
|
|
6
|
+
import { type DoerPacing } from "./doing.js";
|
|
6
7
|
/**
|
|
7
8
|
* Route one initial cue batch to its concrete owners before removing source records.
|
|
8
9
|
*
|
|
@@ -29,5 +30,5 @@ export declare function processCuesOnce(runtime: AgentRuntime, { hab, queryCues
|
|
|
29
30
|
export declare function cueDo(runtime: AgentRuntime, options?: {
|
|
30
31
|
hab?: Hab;
|
|
31
32
|
queryCues?: Deck<AgentCue>;
|
|
32
|
-
}): Operation<never>;
|
|
33
|
+
}, pacing?: Readonly<DoerPacing>): Operation<never>;
|
|
33
34
|
//# sourceMappingURL=cue-runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cue-runtime.d.ts","sourceRoot":"","sources":["../../../src/app/runtime/cue-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"cue-runtime.d.ts","sourceRoot":"","sources":["../../../src/app/runtime/cue-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,KAAK,UAAU,EAA4B,MAAM,YAAY,CAAC;AAgBvE;;;;;;;;;;;;GAYG;AACH,wBAAiB,eAAe,CAC9B,OAAO,EAAE,YAAY,EACrB,EAAE,GAAG,EAAE,SAAS,EAAE,GAAE;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC;IAAC,SAAS,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;CAAO,GACjE,SAAS,CAAC,IAAI,CAAC,CAgBjB;AAED;;;;;GAKG;AACH,wBAAiB,KAAK,CACpB,OAAO,EAAE,YAAY,EACrB,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC;IAAC,SAAS,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;CAAO,EACvD,MAAM,GAAE,QAAQ,CAAC,UAAU,CAAmB,GAC7C,SAAS,CAAC,KAAK,CAAC,CAElB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ordered outbox of signed bytes an operation owes its peers, with retry.
|
|
3
|
+
*
|
|
4
|
+
* An operation's steps decide what to send and queue it here; the owner drains the queue each pass. A delivery
|
|
5
|
+
* that fails keeps its message at the head and is retried after a doubling delay ({@link RetryBackoff}), so a peer
|
|
6
|
+
* that is briefly offline delays an operation instead of ending it. The owner decides when retrying stops: an
|
|
7
|
+
* operation with a deadline ends at the deadline, and one without ends once failures have lasted the bound it
|
|
8
|
+
* states. Memory only: the signed messages themselves are durable in the protocol stores.
|
|
9
|
+
*/
|
|
10
|
+
import type { Operation } from "effection";
|
|
11
|
+
import { type RetryPolicy } from "./retry-backoff.js";
|
|
12
|
+
import type { RuntimeClock } from "./runtime-clock.js";
|
|
13
|
+
/** One message waiting for delivery. */
|
|
14
|
+
export interface Outbound {
|
|
15
|
+
src: string;
|
|
16
|
+
dest: string;
|
|
17
|
+
/** The signed bytes, or a producer called at delivery for a message that must be timely when it leaves (a query). */
|
|
18
|
+
msg: Uint8Array | (() => Uint8Array);
|
|
19
|
+
topic?: string;
|
|
20
|
+
}
|
|
21
|
+
/** Signed bytes handed to the transport. */
|
|
22
|
+
export interface DeliveryMessage {
|
|
23
|
+
src: string;
|
|
24
|
+
dest: string;
|
|
25
|
+
msg: Uint8Array;
|
|
26
|
+
topic?: string;
|
|
27
|
+
}
|
|
28
|
+
/** Delivery of signed bytes; resolves once the transport reports an outcome and throws when it failed. */
|
|
29
|
+
export interface OutboxDelivery {
|
|
30
|
+
deliver(message: DeliveryMessage): Operation<string[]>;
|
|
31
|
+
}
|
|
32
|
+
/** Why the head delivery is being retried; part of an active operation's status. */
|
|
33
|
+
export interface DeliveryFailure {
|
|
34
|
+
/** Consecutive failures of the head message. */
|
|
35
|
+
attempts: number;
|
|
36
|
+
/** The error's message followed by its `cause` chain, joined with " <- ". */
|
|
37
|
+
reason: string;
|
|
38
|
+
/** When the next attempt is due (ISO 8601). */
|
|
39
|
+
retryAt: string;
|
|
40
|
+
}
|
|
41
|
+
/** Flatten an error and its `cause` chain to one line of text, so a reader sees the transport's own reason. */
|
|
42
|
+
export declare function describeFailure(error: unknown): string;
|
|
43
|
+
/** The queue and its retry state for one live operation. */
|
|
44
|
+
export declare class DeliveryOutbox {
|
|
45
|
+
private readonly queue;
|
|
46
|
+
private readonly backoff;
|
|
47
|
+
/** Destinations the transport reported for everything delivered so far. */
|
|
48
|
+
readonly delivered: string[];
|
|
49
|
+
constructor(policy?: Readonly<RetryPolicy>);
|
|
50
|
+
/** Messages still waiting. */
|
|
51
|
+
get length(): number;
|
|
52
|
+
/** Consecutive delivery failures of the head message. */
|
|
53
|
+
get attempts(): number;
|
|
54
|
+
/** The latest delivery error, or null. */
|
|
55
|
+
get lastError(): unknown;
|
|
56
|
+
/** The retry state of the head message, or null while nothing is failing. */
|
|
57
|
+
get failure(): DeliveryFailure | null;
|
|
58
|
+
/** Queue a message behind the others. */
|
|
59
|
+
enqueue(message: Outbound): void;
|
|
60
|
+
/**
|
|
61
|
+
* Deliver the queued messages in order. A failure keeps the message and schedules a retry; it throws only when
|
|
62
|
+
* `boundMs` is given and failures have lasted that long.
|
|
63
|
+
*
|
|
64
|
+
* @returns True when the queue is empty, false while a message waits for its retry.
|
|
65
|
+
*/
|
|
66
|
+
drain(transport: OutboxDelivery, clock: RuntimeClock, boundMs?: number): Operation<boolean>;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=delivery-outbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-outbox.d.ts","sourceRoot":"","sources":["../../../src/app/runtime/delivery-outbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAsC,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,wCAAwC;AACxC,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,qHAAqH;IACrH,GAAG,EAAE,UAAU,GAAG,CAAC,MAAM,UAAU,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,4CAA4C;AAC5C,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,0GAA0G;AAC1G,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;CACxD;AAED,oFAAoF;AACpF,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,+GAA+G;AAC/G,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOtD;AAED,4DAA4D;AAC5D,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAM;gBAEtB,MAAM,GAAE,QAAQ,CAAC,WAAW,CAAwB;IAIhE,8BAA8B;IAC9B,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,yDAAyD;IACzD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,0CAA0C;IAC1C,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,6EAA6E;IAC7E,IAAI,OAAO,IAAI,eAAe,GAAG,IAAI,CAQpC;IAED,yCAAyC;IACzC,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAIhC;;;;;OAKG;IACF,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;CAmB7F"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fixed-tock doers: a background loop is a pass that runs, then waits one tock on the runtime clock, as a HIO
|
|
3
|
+
* `Doer` is re-run every `tock` (`hio/base/doing.py`) and KERIpy's Doist cycles at 0.03125 s. A loop never
|
|
4
|
+
* sleeps for a variable time and is never woken early; work that arrives between tocks is seen on the next one.
|
|
5
|
+
* The wait follows the pass, not a fixed rate, because a pass awaits network I/O.
|
|
6
|
+
*/
|
|
7
|
+
import type { Operation } from "effection";
|
|
8
|
+
import type { RuntimeClock } from "./runtime-clock.js";
|
|
9
|
+
/** One pass of a doer; `tock` counts passes from 0, so a doer can do heavier work on tock 0 and every Nth. */
|
|
10
|
+
export type DoerPass = (tock: number) => Operation<unknown>;
|
|
11
|
+
/**
|
|
12
|
+
* How often a doer runs, in milliseconds, and how many tocks apart its full sweeps are. A host that must be
|
|
13
|
+
* gentler (a browser wallet in a background tab, a mobile wallet on battery) supplies longer values.
|
|
14
|
+
*/
|
|
15
|
+
export interface DoerPacing {
|
|
16
|
+
tockMs: number;
|
|
17
|
+
sweepTocks: number;
|
|
18
|
+
}
|
|
19
|
+
/** Milliseconds between passes of the protocol-facing background loops: KERIpy's Doist cycle, as the escrow loop uses. */
|
|
20
|
+
export declare const PROTOCOL_TOCK_MS = 31.25;
|
|
21
|
+
/** Tocks between full sweeps of a loop that has one: 1920 tocks of 31.25 ms is a minute. */
|
|
22
|
+
export declare const PROTOCOL_SWEEP_TOCKS = 1920;
|
|
23
|
+
/** The production pacing of the protocol-facing background loops. */
|
|
24
|
+
export declare const PROTOCOL_PACING: Readonly<DoerPacing>;
|
|
25
|
+
/** Run `pass` forever: pass 0, wait `tockMs` on `clock`, pass 1, and so on. A thrown error ends the doer. */
|
|
26
|
+
export declare function doEvery(clock: RuntimeClock, tockMs: number, pass: DoerPass): Operation<never>;
|
|
27
|
+
//# sourceMappingURL=doing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doing.d.ts","sourceRoot":"","sources":["../../../src/app/runtime/doing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,8GAA8G;AAC9G,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,0HAA0H;AAC1H,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AACtC,4FAA4F;AAC5F,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,qEAAqE;AACrE,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,UAAU,CAG/C,CAAC;AAEH,6GAA6G;AAC7G,wBAAiB,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAK9F"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime-owned registry of IPEX auxiliary owners (DH and Unblind), keyed by local identifier.
|
|
3
|
+
*
|
|
4
|
+
* The runtime registers one query receiver and one reply resource per route. Both resolve the
|
|
5
|
+
* addressed local identifier at dispatch time and create that identifier's owner then, so a wallet
|
|
6
|
+
* with several identifiers needs no owner before the first message and no hook when an identifier
|
|
7
|
+
* is made, joined or reloaded.
|
|
8
|
+
*
|
|
9
|
+
* Dispatch key: an `/ipex/*` message carries the sender (`pre`) and the transaction id (`q.x` for
|
|
10
|
+
* a query, `a.x` for a reply) but no recipient. The addressed local identifier is, from stored state:
|
|
11
|
+
* the holder of an approved operation for that id; for DH the recipient of a Grant `sender` opened in
|
|
12
|
+
* that transaction, and for Unblind the sender of a Grant addressed to `sender`; and, for a local
|
|
13
|
+
* group, itself when it is `sender` (its own members' contributions, which KRAM must pool). Exactly one
|
|
14
|
+
* such identifier owns the message; none or several leave it unowned, which is exactly a runtime without
|
|
15
|
+
* that owner: queries drop as `missingProcessor` before KRAM, and replies fail with the Router's
|
|
16
|
+
* missing-route error. Creating an owner grants no consent.
|
|
17
|
+
*/
|
|
18
|
+
import type { SerderKERI } from "cesr-ts";
|
|
19
|
+
import { Dhke } from "../../acdc/dhking.js";
|
|
20
|
+
import type { RegistryObserver } from "../../acdc/observing.js";
|
|
21
|
+
import { Unblind } from "../../acdc/unblinding.js";
|
|
22
|
+
import type { KeriDispatchEnvelope } from "../../core/dispatch.js";
|
|
23
|
+
import type { Revery, Router } from "../../core/routing.js";
|
|
24
|
+
import type { Exchanger } from "../exchanges/exchanging.js";
|
|
25
|
+
import type { Hab } from "../identity/habbing.js";
|
|
26
|
+
import type { AuxiliaryQueryProcessor, DispatchDecision } from "../protocol/parsering.js";
|
|
27
|
+
/** Per-identifier DH and Unblind owners behind one query receiver and one reply route each. */
|
|
28
|
+
export declare class IpexAuxiliaries implements AuxiliaryQueryProcessor {
|
|
29
|
+
private readonly exc;
|
|
30
|
+
private readonly registry;
|
|
31
|
+
private readonly rvy;
|
|
32
|
+
private readonly now;
|
|
33
|
+
/** Whether the runtime's KRAM is on; DH and Unblind approval need the rows only KRAM writes. */
|
|
34
|
+
private readonly kram;
|
|
35
|
+
/** Unused: `claims` decides which queries this receiver takes. */
|
|
36
|
+
readonly resource = "/ipex";
|
|
37
|
+
private readonly dhkes;
|
|
38
|
+
private readonly unblinds;
|
|
39
|
+
/**
|
|
40
|
+
* @param exc Exchanger shared by every owner.
|
|
41
|
+
* @param registry Public registry observer shared by every owner.
|
|
42
|
+
* @param rvy Reply verifier whose router the owners' routes are registered on.
|
|
43
|
+
* @param now Receiver clock shared by every owner.
|
|
44
|
+
* @param kram Whether KRAM is enabled; with it off, `approve` of either owner throws.
|
|
45
|
+
*/
|
|
46
|
+
constructor(exc: Exchanger, registry: RegistryObserver, rvy: Revery, now: () => number,
|
|
47
|
+
/** Whether the runtime's KRAM is on; DH and Unblind approval need the rows only KRAM writes. */
|
|
48
|
+
kram: boolean);
|
|
49
|
+
private restored;
|
|
50
|
+
/** Every live DH owner, for hosts draining their completion cues. */
|
|
51
|
+
dhkeOwners(): IterableIterator<Dhke>;
|
|
52
|
+
/** Every live Unblind owner, for hosts delivering the replies they owe. */
|
|
53
|
+
unblindOwners(): IterableIterator<Unblind>;
|
|
54
|
+
/** Register the DH and Unblind reply routes once; owners are looked up on each reply. */
|
|
55
|
+
registerReplyRoutes(rtr: Router): void;
|
|
56
|
+
/** The DH owner for `hab`, created on first use and recreated when `hab` is no longer the owner's object. */
|
|
57
|
+
dhke(hab: Hab): Dhke;
|
|
58
|
+
/** The Unblind owner for `hab`, created on first use and recreated when `hab` is no longer the owner's object. */
|
|
59
|
+
unblind(hab: Hab): Unblind;
|
|
60
|
+
/** Close and unregister both owners of `pre`; process-local approvals and retries are cleared. */
|
|
61
|
+
release(pre: string): void;
|
|
62
|
+
/** Close every owner; the runtime calls this on explicit close and scope exit. */
|
|
63
|
+
close(): void;
|
|
64
|
+
claims(serder: SerderKERI): boolean;
|
|
65
|
+
processQuery(envelope: KeriDispatchEnvelope): DispatchDecision;
|
|
66
|
+
private reply;
|
|
67
|
+
private select;
|
|
68
|
+
/**
|
|
69
|
+
* The owner of the one local identifier party to the transaction, created now if needed; absent or
|
|
70
|
+
* ambiguous means unowned. Parties come from live owners (approved operations) and from the store.
|
|
71
|
+
*/
|
|
72
|
+
private claimant;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=ipex-auxiliaries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipex-auxiliaries.d.ts","sourceRoot":"","sources":["../../../src/app/runtime/ipex-auxiliaries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAM1F,+FAA+F;AAC/F,qBAAa,eAAgB,YAAW,uBAAuB;IAc3D,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,gGAAgG;IAChG,OAAO,CAAC,QAAQ,CAAC,IAAI;IAlBvB,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IAEvD;;;;;;OAMG;gBAEgB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,MAAM;IAClC,gGAAgG;IAC/E,IAAI,EAAE,OAAO;IAGhC,OAAO,CAAC,QAAQ,CAAS;IAEzB,qEAAqE;IACrE,UAAU,IAAI,gBAAgB,CAAC,IAAI,CAAC;IAIpC,2EAA2E;IAC3E,aAAa,IAAI,gBAAgB,CAAC,OAAO,CAAC;IAkB1C,yFAAyF;IACzF,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKtC,6GAA6G;IAC7G,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAgBpB,kHAAkH;IAClH,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;IAS1B,kGAAkG;IAClG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ1B,kFAAkF;IAClF,KAAK,IAAI,IAAI;IAMb,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAInC,YAAY,CAAC,QAAQ,EAAE,oBAAoB,GAAG,gBAAgB;IAI9D,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,MAAM;IAKd;;;OAGG;IACH,OAAO,CAAC,QAAQ;CAgCjB"}
|