@joe-broadhead/messaging 0.0.0-stage → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +220 -0
- package/LICENSE +21 -0
- package/NOTICE +12 -0
- package/README.md +36 -2
- package/dist/bin/messaging-mcp.js +26524 -0
- package/dist/bin/messaging-relay.js +19768 -0
- package/dist/bin/messaging.js +15465 -0
- package/dist/bin/messagingd.js +29449 -0
- package/dist/lib/core-testing.js +1 -0
- package/dist/lib/core.js +1 -0
- package/dist/lib/ipc-testing.js +1 -0
- package/dist/lib/ipc.js +1 -0
- package/dist/lib/modules/core/address.js +42 -0
- package/dist/lib/modules/core/agent/operations.js +595 -0
- package/dist/lib/modules/core/agent/present.js +244 -0
- package/dist/lib/modules/core/agent/text.js +79 -0
- package/dist/lib/modules/core/agent-tools.js +477 -0
- package/dist/lib/modules/core/b64u.js +20 -0
- package/dist/lib/modules/core/cards.js +55 -0
- package/dist/lib/modules/core/check.js +20 -0
- package/dist/lib/modules/core/consent.js +199 -0
- package/dist/lib/modules/core/contact-card.js +74 -0
- package/dist/lib/modules/core/conversation/context.js +80 -0
- package/dist/lib/modules/core/conversation/event.js +100 -0
- package/dist/lib/modules/core/conversation/ids.js +38 -0
- package/dist/lib/modules/core/conversation/link.js +35 -0
- package/dist/lib/modules/core/conversation/log.js +766 -0
- package/dist/lib/modules/core/conversation/ratchet.js +243 -0
- package/dist/lib/modules/core/conversation/seal.js +198 -0
- package/dist/lib/modules/core/delegation.js +174 -0
- package/dist/lib/modules/core/directory/device-log.js +258 -0
- package/dist/lib/modules/core/directory/epoch.js +103 -0
- package/dist/lib/modules/core/directory/handle.js +29 -0
- package/dist/lib/modules/core/directory/jelly-device.js +204 -0
- package/dist/lib/modules/core/directory/jelly-issuer.js +12 -0
- package/dist/lib/modules/core/directory/jelly-token.js +305 -0
- package/dist/lib/modules/core/directory/keys-statement.js +43 -0
- package/dist/lib/modules/core/directory/link.js +81 -0
- package/dist/lib/modules/core/directory/merkle-log.js +250 -0
- package/dist/lib/modules/core/directory/person-view.js +197 -0
- package/dist/lib/modules/core/directory/person.js +40 -0
- package/dist/lib/modules/core/directory/realm.js +59 -0
- package/dist/lib/modules/core/directory/smt.js +266 -0
- package/dist/lib/modules/core/envelope.js +320 -0
- package/dist/lib/modules/core/hash.js +5 -0
- package/dist/lib/modules/core/head.js +27 -0
- package/dist/lib/modules/core/identity.js +71 -0
- package/dist/lib/modules/core/index.js +53 -0
- package/dist/lib/modules/core/jcs.js +96 -0
- package/dist/lib/modules/core/jelly-host-double.js +35 -0
- package/dist/lib/modules/core/jelly-host.js +211 -0
- package/dist/lib/modules/core/keys.js +79 -0
- package/dist/lib/modules/core/peer-text.js +563 -0
- package/dist/lib/modules/core/realm.js +1 -0
- package/dist/lib/modules/core/roster.js +454 -0
- package/dist/lib/modules/core/schema/a2a.js +85 -0
- package/dist/lib/modules/core/schema/common.js +310 -0
- package/dist/lib/modules/core/schema/consent.js +120 -0
- package/dist/lib/modules/core/schema/conversation.js +292 -0
- package/dist/lib/modules/core/schema/delegation.js +58 -0
- package/dist/lib/modules/core/schema/directory-frames.js +270 -0
- package/dist/lib/modules/core/schema/directory.js +169 -0
- package/dist/lib/modules/core/schema/envelope.js +211 -0
- package/dist/lib/modules/core/schema/errors.js +104 -0
- package/dist/lib/modules/core/schema/index.js +16 -0
- package/dist/lib/modules/core/schema/ipc/consent.js +181 -0
- package/dist/lib/modules/core/schema/ipc/device.js +276 -0
- package/dist/lib/modules/core/schema/ipc/jelly.js +189 -0
- package/dist/lib/modules/core/schema/ipc/shapes.js +185 -0
- package/dist/lib/modules/core/schema/ipc/surfaces.js +223 -0
- package/dist/lib/modules/core/schema/ipc.js +451 -0
- package/dist/lib/modules/core/schema/jelly.js +122 -0
- package/dist/lib/modules/core/schema/realm.js +27 -0
- package/dist/lib/modules/core/schema/relay.js +112 -0
- package/dist/lib/modules/core/schema/roster.js +126 -0
- package/dist/lib/modules/core/sign.js +43 -0
- package/dist/lib/modules/core/task.js +37 -0
- package/dist/lib/modules/core/testing.js +21 -0
- package/dist/lib/modules/core/ulid.js +36 -0
- package/dist/lib/modules/core/version.js +6 -0
- package/dist/lib/modules/core/wire.js +255 -0
- package/dist/lib/modules/ipc/client.js +289 -0
- package/dist/lib/modules/ipc/framing.js +33 -0
- package/dist/lib/modules/ipc/index.js +6 -0
- package/dist/lib/modules/ipc/paths.js +102 -0
- package/dist/lib/modules/ipc/pipes.js +65 -0
- package/dist/lib/modules/ipc/rpc.js +8 -0
- package/dist/lib/modules/ipc/server.js +317 -0
- package/dist/lib/modules/ipc/testing.js +145 -0
- package/dist/lib/modules/ipc/trust.js +166 -0
- package/dist/lib/modules/ipc/windows-acl.js +275 -0
- package/dist/lib/modules/vendor/zod/index.js +7 -0
- package/dist/lib/modules/vendor/zod/v4/classic/checks.js +1 -0
- package/dist/lib/modules/vendor/zod/v4/classic/coerce.js +17 -0
- package/dist/lib/modules/vendor/zod/v4/classic/compat.js +31 -0
- package/dist/lib/modules/vendor/zod/v4/classic/deep-partial.js +13 -0
- package/dist/lib/modules/vendor/zod/v4/classic/errors.js +57 -0
- package/dist/lib/modules/vendor/zod/v4/classic/external.js +17 -0
- package/dist/lib/modules/vendor/zod/v4/classic/from-json-schema.js +881 -0
- package/dist/lib/modules/vendor/zod/v4/classic/in-out.js +36 -0
- package/dist/lib/modules/vendor/zod/v4/classic/iso.js +15 -0
- package/dist/lib/modules/vendor/zod/v4/classic/parse.js +16 -0
- package/dist/lib/modules/vendor/zod/v4/classic/schemas.js +1535 -0
- package/dist/lib/modules/vendor/zod/v4/core/api.js +1107 -0
- package/dist/lib/modules/vendor/zod/v4/core/checks.js +516 -0
- package/dist/lib/modules/vendor/zod/v4/core/compile.js +1866 -0
- package/dist/lib/modules/vendor/zod/v4/core/core.js +141 -0
- package/dist/lib/modules/vendor/zod/v4/core/doc.js +38 -0
- package/dist/lib/modules/vendor/zod/v4/core/errors.js +267 -0
- package/dist/lib/modules/vendor/zod/v4/core/index.js +19 -0
- package/dist/lib/modules/vendor/zod/v4/core/json-schema-generator.js +99 -0
- package/dist/lib/modules/vendor/zod/v4/core/json-schema-processors.js +843 -0
- package/dist/lib/modules/vendor/zod/v4/core/json-schema.js +1 -0
- package/dist/lib/modules/vendor/zod/v4/core/memoizer.js +311 -0
- package/dist/lib/modules/vendor/zod/v4/core/parse.js +175 -0
- package/dist/lib/modules/vendor/zod/v4/core/regexes.js +156 -0
- package/dist/lib/modules/vendor/zod/v4/core/registries.js +51 -0
- package/dist/lib/modules/vendor/zod/v4/core/schemas.js +2636 -0
- package/dist/lib/modules/vendor/zod/v4/core/to-json-schema.js +651 -0
- package/dist/lib/modules/vendor/zod/v4/core/util.js +873 -0
- package/dist/lib/modules/vendor/zod/v4/core/versions.js +5 -0
- package/dist/lib/modules/vendor/zod/v4/core/visit.js +169 -0
- package/dist/lib/modules/vendor/zod/v4/locales/ar.js +111 -0
- package/dist/lib/modules/vendor/zod/v4/locales/az.js +110 -0
- package/dist/lib/modules/vendor/zod/v4/locales/be.js +168 -0
- package/dist/lib/modules/vendor/zod/v4/locales/bg.js +125 -0
- package/dist/lib/modules/vendor/zod/v4/locales/bn.js +113 -0
- package/dist/lib/modules/vendor/zod/v4/locales/ca.js +112 -0
- package/dist/lib/modules/vendor/zod/v4/locales/ckb.js +133 -0
- package/dist/lib/modules/vendor/zod/v4/locales/cs.js +116 -0
- package/dist/lib/modules/vendor/zod/v4/locales/da.js +120 -0
- package/dist/lib/modules/vendor/zod/v4/locales/de.js +113 -0
- package/dist/lib/modules/vendor/zod/v4/locales/el.js +112 -0
- package/dist/lib/modules/vendor/zod/v4/locales/en.js +125 -0
- package/dist/lib/modules/vendor/zod/v4/locales/eo.js +114 -0
- package/dist/lib/modules/vendor/zod/v4/locales/es.js +136 -0
- package/dist/lib/modules/vendor/zod/v4/locales/fa.js +119 -0
- package/dist/lib/modules/vendor/zod/v4/locales/fi.js +117 -0
- package/dist/lib/modules/vendor/zod/v4/locales/fr-CA.js +112 -0
- package/dist/lib/modules/vendor/zod/v4/locales/fr.js +129 -0
- package/dist/lib/modules/vendor/zod/v4/locales/gu.js +113 -0
- package/dist/lib/modules/vendor/zod/v4/locales/he.js +221 -0
- package/dist/lib/modules/vendor/zod/v4/locales/hi.js +111 -0
- package/dist/lib/modules/vendor/zod/v4/locales/hr.js +126 -0
- package/dist/lib/modules/vendor/zod/v4/locales/hu.js +113 -0
- package/dist/lib/modules/vendor/zod/v4/locales/hy.js +158 -0
- package/dist/lib/modules/vendor/zod/v4/locales/id.js +111 -0
- package/dist/lib/modules/vendor/zod/v4/locales/index.js +63 -0
- package/dist/lib/modules/vendor/zod/v4/locales/is.js +114 -0
- package/dist/lib/modules/vendor/zod/v4/locales/it.js +113 -0
- package/dist/lib/modules/vendor/zod/v4/locales/ja.js +112 -0
- package/dist/lib/modules/vendor/zod/v4/locales/ka.js +117 -0
- package/dist/lib/modules/vendor/zod/v4/locales/kh.js +5 -0
- package/dist/lib/modules/vendor/zod/v4/locales/km.js +115 -0
- package/dist/lib/modules/vendor/zod/v4/locales/kn.js +116 -0
- package/dist/lib/modules/vendor/zod/v4/locales/ko.js +116 -0
- package/dist/lib/modules/vendor/zod/v4/locales/lt.js +207 -0
- package/dist/lib/modules/vendor/zod/v4/locales/mk.js +114 -0
- package/dist/lib/modules/vendor/zod/v4/locales/ms.js +112 -0
- package/dist/lib/modules/vendor/zod/v4/locales/ne.js +111 -0
- package/dist/lib/modules/vendor/zod/v4/locales/nl.js +115 -0
- package/dist/lib/modules/vendor/zod/v4/locales/nn.js +113 -0
- package/dist/lib/modules/vendor/zod/v4/locales/no.js +113 -0
- package/dist/lib/modules/vendor/zod/v4/locales/ota.js +114 -0
- package/dist/lib/modules/vendor/zod/v4/locales/pl.js +114 -0
- package/dist/lib/modules/vendor/zod/v4/locales/ps.js +119 -0
- package/dist/lib/modules/vendor/zod/v4/locales/pt-BR.js +143 -0
- package/dist/lib/modules/vendor/zod/v4/locales/pt.js +142 -0
- package/dist/lib/modules/vendor/zod/v4/locales/ro.js +122 -0
- package/dist/lib/modules/vendor/zod/v4/locales/ru.js +168 -0
- package/dist/lib/modules/vendor/zod/v4/locales/sk.js +116 -0
- package/dist/lib/modules/vendor/zod/v4/locales/sl.js +114 -0
- package/dist/lib/modules/vendor/zod/v4/locales/sv.js +115 -0
- package/dist/lib/modules/vendor/zod/v4/locales/ta.js +115 -0
- package/dist/lib/modules/vendor/zod/v4/locales/tg.js +117 -0
- package/dist/lib/modules/vendor/zod/v4/locales/th.js +115 -0
- package/dist/lib/modules/vendor/zod/v4/locales/tk.js +107 -0
- package/dist/lib/modules/vendor/zod/v4/locales/tr.js +110 -0
- package/dist/lib/modules/vendor/zod/v4/locales/ua.js +5 -0
- package/dist/lib/modules/vendor/zod/v4/locales/uk.js +113 -0
- package/dist/lib/modules/vendor/zod/v4/locales/ur.js +115 -0
- package/dist/lib/modules/vendor/zod/v4/locales/uz.js +113 -0
- package/dist/lib/modules/vendor/zod/v4/locales/vi.js +113 -0
- package/dist/lib/modules/vendor/zod/v4/locales/yo.js +112 -0
- package/dist/lib/modules/vendor/zod/v4/locales/zh-CN.js +114 -0
- package/dist/lib/modules/vendor/zod/v4/locales/zh-TW.js +112 -0
- package/dist/lib/testing-jelly-id.js +1219 -0
- package/dist/lib/zod.js +1 -0
- package/dist/spec/messaging-v1.md +3744 -0
- package/dist/third-party-notices.md +239 -0
- package/dist/third-party.json +88 -0
- package/dist/types/core/address.d.ts +16 -0
- package/dist/types/core/agent/operations.d.ts +129 -0
- package/dist/types/core/agent/present.d.ts +57 -0
- package/dist/types/core/agent/text.d.ts +62 -0
- package/dist/types/core/agent-tools.d.ts +966 -0
- package/dist/types/core/b64u.d.ts +6 -0
- package/dist/types/core/cards.d.ts +21 -0
- package/dist/types/core/check.d.ts +10 -0
- package/dist/types/core/consent.d.ts +132 -0
- package/dist/types/core/contact-card.d.ts +34 -0
- package/dist/types/core/conversation/context.d.ts +56 -0
- package/dist/types/core/conversation/event.d.ts +36 -0
- package/dist/types/core/conversation/ids.d.ts +18 -0
- package/dist/types/core/conversation/link.d.ts +16 -0
- package/dist/types/core/conversation/log.d.ts +142 -0
- package/dist/types/core/conversation/ratchet.d.ts +95 -0
- package/dist/types/core/conversation/seal.d.ts +47 -0
- package/dist/types/core/delegation.d.ts +71 -0
- package/dist/types/core/directory/device-log.d.ts +119 -0
- package/dist/types/core/directory/epoch.d.ts +53 -0
- package/dist/types/core/directory/handle.d.ts +11 -0
- package/dist/types/core/directory/jelly-device.d.ts +88 -0
- package/dist/types/core/directory/jelly-issuer.d.ts +8 -0
- package/dist/types/core/directory/jelly-token.d.ts +116 -0
- package/dist/types/core/directory/keys-statement.d.ts +22 -0
- package/dist/types/core/directory/link.d.ts +36 -0
- package/dist/types/core/directory/merkle-log.d.ts +40 -0
- package/dist/types/core/directory/person-view.d.ts +90 -0
- package/dist/types/core/directory/person.d.ts +8 -0
- package/dist/types/core/directory/realm.d.ts +23 -0
- package/dist/types/core/directory/smt.d.ts +52 -0
- package/dist/types/core/envelope.d.ts +68 -0
- package/dist/types/core/hash.d.ts +2 -0
- package/dist/types/core/head.d.ts +34 -0
- package/dist/types/core/identity.d.ts +35 -0
- package/dist/types/core/index.d.ts +45 -0
- package/dist/types/core/jcs.d.ts +12 -0
- package/dist/types/core/jelly-host-double.d.ts +21 -0
- package/dist/types/core/jelly-host.d.ts +86 -0
- package/dist/types/core/keys.d.ts +16 -0
- package/dist/types/core/peer-text.d.ts +87 -0
- package/dist/types/core/realm.d.ts +36 -0
- package/dist/types/core/roster.d.ts +146 -0
- package/dist/types/core/schema/a2a.d.ts +251 -0
- package/dist/types/core/schema/common.d.ts +328 -0
- package/dist/types/core/schema/consent.d.ts +140 -0
- package/dist/types/core/schema/conversation.d.ts +1657 -0
- package/dist/types/core/schema/delegation.d.ts +58 -0
- package/dist/types/core/schema/directory-frames.d.ts +1301 -0
- package/dist/types/core/schema/directory.d.ts +375 -0
- package/dist/types/core/schema/envelope.d.ts +756 -0
- package/dist/types/core/schema/errors.d.ts +142 -0
- package/dist/types/core/schema/index.d.ts +16 -0
- package/dist/types/core/schema/ipc/consent.d.ts +555 -0
- package/dist/types/core/schema/ipc/device.d.ts +735 -0
- package/dist/types/core/schema/ipc/jelly.d.ts +501 -0
- package/dist/types/core/schema/ipc/shapes.d.ts +414 -0
- package/dist/types/core/schema/ipc/surfaces.d.ts +680 -0
- package/dist/types/core/schema/ipc.d.ts +3146 -0
- package/dist/types/core/schema/jelly.d.ts +160 -0
- package/dist/types/core/schema/realm.d.ts +38 -0
- package/dist/types/core/schema/relay.d.ts +1134 -0
- package/dist/types/core/schema/roster.d.ts +347 -0
- package/dist/types/core/sign.d.ts +13 -0
- package/dist/types/core/task.d.ts +6 -0
- package/dist/types/core/testing.d.ts +19 -0
- package/dist/types/core/ulid.d.ts +5 -0
- package/dist/types/core/version.d.ts +6 -0
- package/dist/types/core/wire.d.ts +14 -0
- package/dist/types/ipc/client.d.ts +85 -0
- package/dist/types/ipc/framing.d.ts +12 -0
- package/dist/types/ipc/index.d.ts +6 -0
- package/dist/types/ipc/paths.d.ts +39 -0
- package/dist/types/ipc/pipes.d.ts +16 -0
- package/dist/types/ipc/rpc.d.ts +13 -0
- package/dist/types/ipc/server.d.ts +94 -0
- package/dist/types/ipc/testing.d.ts +89 -0
- package/dist/types/ipc/trust.d.ts +49 -0
- package/dist/types/ipc/windows-acl.d.ts +56 -0
- package/dist/types/testing/jelly-id.d.ts +518 -0
- package/dist/types/zod.d.ts +1 -0
- package/package.json +77 -4
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import type { Identity } from "./identity.js";
|
|
2
|
+
import { type Hash, type MachineId, type MachineLabel, type PersonName, RELAY_PROTOCOL, type TeamId, type Ulid } from "./schema/common.js";
|
|
3
|
+
import type { AnchorRelation, RealmView } from "./realm.js";
|
|
4
|
+
import type { Anchor, RealmId, RosterAnchor } from "./schema/realm.js";
|
|
5
|
+
import { InviteTicket, type Member, RosterEntry, type RosterHead, type RosterKind } from "./schema/roster.js";
|
|
6
|
+
type ChainedKind = Exclude<RosterKind, "genesis">;
|
|
7
|
+
type EntryOf<K extends RosterKind> = Extract<RosterEntry, {
|
|
8
|
+
kind: K;
|
|
9
|
+
}>;
|
|
10
|
+
export type RosterBody<K extends RosterKind> = EntryOf<K>["body"];
|
|
11
|
+
export type InviteState = "open" | "redeemed" | "revoked" | "expired";
|
|
12
|
+
/** Options for `Roster.apply`. */
|
|
13
|
+
export interface ApplyOptions {
|
|
14
|
+
/** Wall-clock time of a live append. When set, the entry `ts` must be within `skewMs` of it (`expired`). */
|
|
15
|
+
now?: number;
|
|
16
|
+
/**
|
|
17
|
+
* The freshness window around `now`; default `LIMITS.clockSkewMs`. The relay uses the default; a daemon
|
|
18
|
+
* applying a live roster broadcast passes `2 * LIMITS.clockSkewMs`, because the relay's clock may differ
|
|
19
|
+
* from its own by up to the skew (spec §4).
|
|
20
|
+
*/
|
|
21
|
+
skewMs?: number;
|
|
22
|
+
}
|
|
23
|
+
/** SHA-256 of the JCS form of the full entry, including `sig`. The genesis hash is the team id. */
|
|
24
|
+
export declare function entryHash(entry: RosterEntry): Hash;
|
|
25
|
+
/**
|
|
26
|
+
* A verified roster. Every entry passes schema, chain, signature and authority checks (the rules
|
|
27
|
+
* in `schema/roster.ts`) before it is appended; a failed `apply` leaves the roster unchanged.
|
|
28
|
+
* Entries are stored as frozen copies of the received JSON, so hashes cover unknown fields too.
|
|
29
|
+
* Members are stored as fresh `{machine, enc, person, role, label}` objects, never as received.
|
|
30
|
+
* Every method throws only MessagingError.
|
|
31
|
+
*/
|
|
32
|
+
export declare class Roster implements RealmView {
|
|
33
|
+
#private;
|
|
34
|
+
readonly team: TeamId;
|
|
35
|
+
readonly name: string;
|
|
36
|
+
private constructor();
|
|
37
|
+
/** Verifies the whole chain from genesis. Throws the first failing entry's MessagingError. */
|
|
38
|
+
static fromEntries(entries: unknown[]): Roster;
|
|
39
|
+
/**
|
|
40
|
+
* Validates one entry against the head and appends it. Checks run in order: schema, I-JSON and keys
|
|
41
|
+
* (`invalid_request`), chain (`roster_conflict` for seq/prev; `invalid_request` for team and ts),
|
|
42
|
+
* freshness (`expired`), signature (`bad_signature`), then authority (`forbidden`) and invites
|
|
43
|
+
* (`invite_invalid`). Pass `now` when accepting a live append: `ts` must then be within `skewMs`
|
|
44
|
+
* (default `LIMITS.clockSkewMs`) of `now`, so a joiner cannot backdate a redeem past its invite's expiry.
|
|
45
|
+
*/
|
|
46
|
+
apply(raw: unknown, options?: ApplyOptions): void;
|
|
47
|
+
/**
|
|
48
|
+
* Checks `raw` as `apply` would have when the head was at `seq − 1`, without appending it: schema, chain
|
|
49
|
+
* (its `prev` must be the hash of this roster's entry at `seq − 1`), team, signature and authority, all
|
|
50
|
+
* against the state at that point. Returns the entry's hash. An entry that passes and whose hash differs
|
|
51
|
+
* from `entries()[seq]` proves a fork: two valid entries at one seq. `seq` more than one past the head is
|
|
52
|
+
* `roster_conflict`; a seq-0 entry passes only if it is this team's genesis. Other errors are as for
|
|
53
|
+
* `apply`. Checking an entry below the head replays the chain up to it.
|
|
54
|
+
*/
|
|
55
|
+
checkAt(raw: unknown): Hash;
|
|
56
|
+
head(): RosterHead;
|
|
57
|
+
entries(): RosterEntry[];
|
|
58
|
+
member(machine: MachineId): Member | undefined;
|
|
59
|
+
/** The realm's id: the team id. */
|
|
60
|
+
get realm(): RealmId;
|
|
61
|
+
/** A current member's machine; the same as `member`. */
|
|
62
|
+
device(machine: MachineId): Member | undefined;
|
|
63
|
+
/** `{kind: "roster"}` and the head. */
|
|
64
|
+
anchor(): RosterAnchor;
|
|
65
|
+
/** `ahead` past the head; `consistent` for an entry of this chain; `diverged` for another hash at a seq it has. */
|
|
66
|
+
relate(anchor: Anchor): AnchorRelation;
|
|
67
|
+
members(): Member[];
|
|
68
|
+
isAdmin(machine: MachineId): boolean;
|
|
69
|
+
/** The invite and its state at `now` (an open invite is `expired` once `now >= expires`). */
|
|
70
|
+
invite(inviteId: string, now?: number): {
|
|
71
|
+
entry: EntryOf<"invite.create">;
|
|
72
|
+
state: InviteState;
|
|
73
|
+
} | undefined;
|
|
74
|
+
wasRemoved(machine: MachineId): boolean;
|
|
75
|
+
}
|
|
76
|
+
export declare function createGenesis(args: {
|
|
77
|
+
identity: Identity;
|
|
78
|
+
name: string;
|
|
79
|
+
person: PersonName;
|
|
80
|
+
label: MachineLabel;
|
|
81
|
+
now?: number;
|
|
82
|
+
}): EntryOf<"genesis">;
|
|
83
|
+
/** Signs a new entry that extends the roster head. Authority is checked when the entry is applied. */
|
|
84
|
+
export declare function createEntry<K extends ChainedKind>(roster: Roster, identity: Identity, kind: K, body: RosterBody<K>, now?: number): EntryOf<K>;
|
|
85
|
+
/**
|
|
86
|
+
* An `invite.create` entry and its ticket. The secret is a fresh 32-byte Ed25519 seed; only its public key
|
|
87
|
+
* (`invitePub`) goes in the roster. `ttlMs` is at most `LIMITS.ttlMs`.
|
|
88
|
+
*/
|
|
89
|
+
export declare function createInvite(roster: Roster, identity: Identity, args: {
|
|
90
|
+
person: PersonName;
|
|
91
|
+
ttlMs: number;
|
|
92
|
+
relay: string;
|
|
93
|
+
now?: number;
|
|
94
|
+
}): {
|
|
95
|
+
entry: EntryOf<"invite.create">;
|
|
96
|
+
ticket: string;
|
|
97
|
+
secret: string;
|
|
98
|
+
};
|
|
99
|
+
/** `messaging1.` + base64url(UTF-8(JCS(ticket))). */
|
|
100
|
+
export declare function encodeTicket(ticket: InviteTicket): string;
|
|
101
|
+
/** Parses a ticket with `parseWire`. Errors never quote the ticket and chain no `cause`. */
|
|
102
|
+
export declare function decodeTicket(text: string): InviteTicket;
|
|
103
|
+
/**
|
|
104
|
+
* The `invite.redeem` entry for a ticket, signed by the joining identity. Its `proof` is signed with the
|
|
105
|
+
* ticket's seed over {team, inviteId, member}, so the redeem holds only for this member; the seed is not in it.
|
|
106
|
+
*/
|
|
107
|
+
export declare function createRedeem(roster: Roster, ticket: InviteTicket, identity: Identity, args: {
|
|
108
|
+
label: MachineLabel;
|
|
109
|
+
now?: number;
|
|
110
|
+
}): EntryOf<"invite.redeem">;
|
|
111
|
+
/** The value a machine signs (with `DOMAIN.relayAuth`) in the relay `hello` frame. */
|
|
112
|
+
export declare function relayAuthPayload(args: {
|
|
113
|
+
relay: string;
|
|
114
|
+
team: TeamId;
|
|
115
|
+
machine: MachineId;
|
|
116
|
+
nonce: string;
|
|
117
|
+
ts: number;
|
|
118
|
+
}): {
|
|
119
|
+
proto: typeof RELAY_PROTOCOL;
|
|
120
|
+
relay: string;
|
|
121
|
+
team: TeamId;
|
|
122
|
+
machine: MachineId;
|
|
123
|
+
nonce: string;
|
|
124
|
+
ts: number;
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* The value an invite seed signs (with `DOMAIN.inviteJoin`) in a pre-auth `join` frame: the relay id and
|
|
128
|
+
* nonce from the connection's challenge, and the invite. The relay verifies it under the open invite's `invitePub`.
|
|
129
|
+
*/
|
|
130
|
+
export declare function inviteJoinPayload(args: {
|
|
131
|
+
relay: string;
|
|
132
|
+
team: TeamId;
|
|
133
|
+
inviteId: Ulid;
|
|
134
|
+
nonce: string;
|
|
135
|
+
}): {
|
|
136
|
+
relay: string;
|
|
137
|
+
team: TeamId;
|
|
138
|
+
inviteId: Ulid;
|
|
139
|
+
nonce: string;
|
|
140
|
+
};
|
|
141
|
+
/** The `join` frame `proof` for `ticket` on a connection whose challenge carried `relay` and `nonce`. It proves the seed without revealing it. */
|
|
142
|
+
export declare function inviteJoinProof(ticket: InviteTicket, challenge: {
|
|
143
|
+
relay: string;
|
|
144
|
+
nonce: string;
|
|
145
|
+
}): string;
|
|
146
|
+
export {};
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A v1 JSON shapes (proto3 JSON mapping of `lf.a2a.v1`, specification/a2a.proto).
|
|
3
|
+
* Field names are lowerCamelCase; enums are their proto names; bytes are base64.
|
|
4
|
+
* Objects strip unknown keys on parse, so newer peers' extra fields are tolerated.
|
|
5
|
+
* Signatures are always verified over the raw received JSON, before parsing.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
export declare const TaskState: z.ZodEnum<{
|
|
9
|
+
TASK_STATE_SUBMITTED: "TASK_STATE_SUBMITTED";
|
|
10
|
+
TASK_STATE_WORKING: "TASK_STATE_WORKING";
|
|
11
|
+
TASK_STATE_COMPLETED: "TASK_STATE_COMPLETED";
|
|
12
|
+
TASK_STATE_FAILED: "TASK_STATE_FAILED";
|
|
13
|
+
TASK_STATE_CANCELED: "TASK_STATE_CANCELED";
|
|
14
|
+
TASK_STATE_INPUT_REQUIRED: "TASK_STATE_INPUT_REQUIRED";
|
|
15
|
+
TASK_STATE_REJECTED: "TASK_STATE_REJECTED";
|
|
16
|
+
TASK_STATE_AUTH_REQUIRED: "TASK_STATE_AUTH_REQUIRED";
|
|
17
|
+
}>;
|
|
18
|
+
export type TaskState = z.infer<typeof TaskState>;
|
|
19
|
+
export declare const TERMINAL_STATES: readonly TaskState[];
|
|
20
|
+
export declare const INTERRUPTED_STATES: readonly TaskState[];
|
|
21
|
+
export declare const Role: z.ZodEnum<{
|
|
22
|
+
ROLE_USER: "ROLE_USER";
|
|
23
|
+
ROLE_AGENT: "ROLE_AGENT";
|
|
24
|
+
}>;
|
|
25
|
+
export type Role = z.infer<typeof Role>;
|
|
26
|
+
/** Exactly one of text | raw | url | data. `data` may be any JSON value, including null. */
|
|
27
|
+
export declare const Part: z.ZodObject<{
|
|
28
|
+
text: z.ZodOptional<z.ZodString>;
|
|
29
|
+
raw: z.ZodOptional<z.ZodString>;
|
|
30
|
+
url: z.ZodOptional<z.ZodString>;
|
|
31
|
+
data: z.ZodOptional<z.ZodUnknown>;
|
|
32
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
33
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
34
|
+
mediaType: z.ZodOptional<z.ZodString>;
|
|
35
|
+
}, z.core.$strip>;
|
|
36
|
+
export type Part = z.infer<typeof Part>;
|
|
37
|
+
export declare const Message: z.ZodObject<{
|
|
38
|
+
messageId: z.ZodString;
|
|
39
|
+
contextId: z.ZodOptional<z.ZodString>;
|
|
40
|
+
taskId: z.ZodOptional<z.ZodString>;
|
|
41
|
+
role: z.ZodEnum<{
|
|
42
|
+
ROLE_USER: "ROLE_USER";
|
|
43
|
+
ROLE_AGENT: "ROLE_AGENT";
|
|
44
|
+
}>;
|
|
45
|
+
parts: z.ZodArray<z.ZodObject<{
|
|
46
|
+
text: z.ZodOptional<z.ZodString>;
|
|
47
|
+
raw: z.ZodOptional<z.ZodString>;
|
|
48
|
+
url: z.ZodOptional<z.ZodString>;
|
|
49
|
+
data: z.ZodOptional<z.ZodUnknown>;
|
|
50
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
51
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
52
|
+
mediaType: z.ZodOptional<z.ZodString>;
|
|
53
|
+
}, z.core.$strip>>;
|
|
54
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
55
|
+
extensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
56
|
+
referenceTaskIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
57
|
+
}, z.core.$strip>;
|
|
58
|
+
export type Message = z.infer<typeof Message>;
|
|
59
|
+
export declare const TaskStatus: z.ZodObject<{
|
|
60
|
+
state: z.ZodEnum<{
|
|
61
|
+
TASK_STATE_SUBMITTED: "TASK_STATE_SUBMITTED";
|
|
62
|
+
TASK_STATE_WORKING: "TASK_STATE_WORKING";
|
|
63
|
+
TASK_STATE_COMPLETED: "TASK_STATE_COMPLETED";
|
|
64
|
+
TASK_STATE_FAILED: "TASK_STATE_FAILED";
|
|
65
|
+
TASK_STATE_CANCELED: "TASK_STATE_CANCELED";
|
|
66
|
+
TASK_STATE_INPUT_REQUIRED: "TASK_STATE_INPUT_REQUIRED";
|
|
67
|
+
TASK_STATE_REJECTED: "TASK_STATE_REJECTED";
|
|
68
|
+
TASK_STATE_AUTH_REQUIRED: "TASK_STATE_AUTH_REQUIRED";
|
|
69
|
+
}>;
|
|
70
|
+
message: z.ZodOptional<z.ZodObject<{
|
|
71
|
+
messageId: z.ZodString;
|
|
72
|
+
contextId: z.ZodOptional<z.ZodString>;
|
|
73
|
+
taskId: z.ZodOptional<z.ZodString>;
|
|
74
|
+
role: z.ZodEnum<{
|
|
75
|
+
ROLE_USER: "ROLE_USER";
|
|
76
|
+
ROLE_AGENT: "ROLE_AGENT";
|
|
77
|
+
}>;
|
|
78
|
+
parts: z.ZodArray<z.ZodObject<{
|
|
79
|
+
text: z.ZodOptional<z.ZodString>;
|
|
80
|
+
raw: z.ZodOptional<z.ZodString>;
|
|
81
|
+
url: z.ZodOptional<z.ZodString>;
|
|
82
|
+
data: z.ZodOptional<z.ZodUnknown>;
|
|
83
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
84
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
85
|
+
mediaType: z.ZodOptional<z.ZodString>;
|
|
86
|
+
}, z.core.$strip>>;
|
|
87
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
88
|
+
extensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
89
|
+
referenceTaskIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
90
|
+
}, z.core.$strip>>;
|
|
91
|
+
timestamp: z.ZodOptional<z.ZodString>;
|
|
92
|
+
}, z.core.$strip>;
|
|
93
|
+
export type TaskStatus = z.infer<typeof TaskStatus>;
|
|
94
|
+
export declare const Artifact: z.ZodObject<{
|
|
95
|
+
artifactId: z.ZodString;
|
|
96
|
+
name: z.ZodOptional<z.ZodString>;
|
|
97
|
+
description: z.ZodOptional<z.ZodString>;
|
|
98
|
+
parts: z.ZodArray<z.ZodObject<{
|
|
99
|
+
text: z.ZodOptional<z.ZodString>;
|
|
100
|
+
raw: z.ZodOptional<z.ZodString>;
|
|
101
|
+
url: z.ZodOptional<z.ZodString>;
|
|
102
|
+
data: z.ZodOptional<z.ZodUnknown>;
|
|
103
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
104
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
105
|
+
mediaType: z.ZodOptional<z.ZodString>;
|
|
106
|
+
}, z.core.$strip>>;
|
|
107
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
108
|
+
extensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
109
|
+
}, z.core.$strip>;
|
|
110
|
+
export type Artifact = z.infer<typeof Artifact>;
|
|
111
|
+
export declare const Task: z.ZodObject<{
|
|
112
|
+
id: z.ZodString;
|
|
113
|
+
contextId: z.ZodOptional<z.ZodString>;
|
|
114
|
+
status: z.ZodObject<{
|
|
115
|
+
state: z.ZodEnum<{
|
|
116
|
+
TASK_STATE_SUBMITTED: "TASK_STATE_SUBMITTED";
|
|
117
|
+
TASK_STATE_WORKING: "TASK_STATE_WORKING";
|
|
118
|
+
TASK_STATE_COMPLETED: "TASK_STATE_COMPLETED";
|
|
119
|
+
TASK_STATE_FAILED: "TASK_STATE_FAILED";
|
|
120
|
+
TASK_STATE_CANCELED: "TASK_STATE_CANCELED";
|
|
121
|
+
TASK_STATE_INPUT_REQUIRED: "TASK_STATE_INPUT_REQUIRED";
|
|
122
|
+
TASK_STATE_REJECTED: "TASK_STATE_REJECTED";
|
|
123
|
+
TASK_STATE_AUTH_REQUIRED: "TASK_STATE_AUTH_REQUIRED";
|
|
124
|
+
}>;
|
|
125
|
+
message: z.ZodOptional<z.ZodObject<{
|
|
126
|
+
messageId: z.ZodString;
|
|
127
|
+
contextId: z.ZodOptional<z.ZodString>;
|
|
128
|
+
taskId: z.ZodOptional<z.ZodString>;
|
|
129
|
+
role: z.ZodEnum<{
|
|
130
|
+
ROLE_USER: "ROLE_USER";
|
|
131
|
+
ROLE_AGENT: "ROLE_AGENT";
|
|
132
|
+
}>;
|
|
133
|
+
parts: z.ZodArray<z.ZodObject<{
|
|
134
|
+
text: z.ZodOptional<z.ZodString>;
|
|
135
|
+
raw: z.ZodOptional<z.ZodString>;
|
|
136
|
+
url: z.ZodOptional<z.ZodString>;
|
|
137
|
+
data: z.ZodOptional<z.ZodUnknown>;
|
|
138
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
139
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
140
|
+
mediaType: z.ZodOptional<z.ZodString>;
|
|
141
|
+
}, z.core.$strip>>;
|
|
142
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
143
|
+
extensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
144
|
+
referenceTaskIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
145
|
+
}, z.core.$strip>>;
|
|
146
|
+
timestamp: z.ZodOptional<z.ZodString>;
|
|
147
|
+
}, z.core.$strip>;
|
|
148
|
+
artifacts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
149
|
+
artifactId: z.ZodString;
|
|
150
|
+
name: z.ZodOptional<z.ZodString>;
|
|
151
|
+
description: z.ZodOptional<z.ZodString>;
|
|
152
|
+
parts: z.ZodArray<z.ZodObject<{
|
|
153
|
+
text: z.ZodOptional<z.ZodString>;
|
|
154
|
+
raw: z.ZodOptional<z.ZodString>;
|
|
155
|
+
url: z.ZodOptional<z.ZodString>;
|
|
156
|
+
data: z.ZodOptional<z.ZodUnknown>;
|
|
157
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
158
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
159
|
+
mediaType: z.ZodOptional<z.ZodString>;
|
|
160
|
+
}, z.core.$strip>>;
|
|
161
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
162
|
+
extensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
163
|
+
}, z.core.$strip>>>;
|
|
164
|
+
history: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
165
|
+
messageId: z.ZodString;
|
|
166
|
+
contextId: z.ZodOptional<z.ZodString>;
|
|
167
|
+
taskId: z.ZodOptional<z.ZodString>;
|
|
168
|
+
role: z.ZodEnum<{
|
|
169
|
+
ROLE_USER: "ROLE_USER";
|
|
170
|
+
ROLE_AGENT: "ROLE_AGENT";
|
|
171
|
+
}>;
|
|
172
|
+
parts: z.ZodArray<z.ZodObject<{
|
|
173
|
+
text: z.ZodOptional<z.ZodString>;
|
|
174
|
+
raw: z.ZodOptional<z.ZodString>;
|
|
175
|
+
url: z.ZodOptional<z.ZodString>;
|
|
176
|
+
data: z.ZodOptional<z.ZodUnknown>;
|
|
177
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
178
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
179
|
+
mediaType: z.ZodOptional<z.ZodString>;
|
|
180
|
+
}, z.core.$strip>>;
|
|
181
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
182
|
+
extensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
183
|
+
referenceTaskIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
184
|
+
}, z.core.$strip>>>;
|
|
185
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
186
|
+
}, z.core.$strip>;
|
|
187
|
+
export type Task = z.infer<typeof Task>;
|
|
188
|
+
export declare const TaskStatusUpdateEvent: z.ZodObject<{
|
|
189
|
+
taskId: z.ZodString;
|
|
190
|
+
contextId: z.ZodString;
|
|
191
|
+
status: z.ZodObject<{
|
|
192
|
+
state: z.ZodEnum<{
|
|
193
|
+
TASK_STATE_SUBMITTED: "TASK_STATE_SUBMITTED";
|
|
194
|
+
TASK_STATE_WORKING: "TASK_STATE_WORKING";
|
|
195
|
+
TASK_STATE_COMPLETED: "TASK_STATE_COMPLETED";
|
|
196
|
+
TASK_STATE_FAILED: "TASK_STATE_FAILED";
|
|
197
|
+
TASK_STATE_CANCELED: "TASK_STATE_CANCELED";
|
|
198
|
+
TASK_STATE_INPUT_REQUIRED: "TASK_STATE_INPUT_REQUIRED";
|
|
199
|
+
TASK_STATE_REJECTED: "TASK_STATE_REJECTED";
|
|
200
|
+
TASK_STATE_AUTH_REQUIRED: "TASK_STATE_AUTH_REQUIRED";
|
|
201
|
+
}>;
|
|
202
|
+
message: z.ZodOptional<z.ZodObject<{
|
|
203
|
+
messageId: z.ZodString;
|
|
204
|
+
contextId: z.ZodOptional<z.ZodString>;
|
|
205
|
+
taskId: z.ZodOptional<z.ZodString>;
|
|
206
|
+
role: z.ZodEnum<{
|
|
207
|
+
ROLE_USER: "ROLE_USER";
|
|
208
|
+
ROLE_AGENT: "ROLE_AGENT";
|
|
209
|
+
}>;
|
|
210
|
+
parts: z.ZodArray<z.ZodObject<{
|
|
211
|
+
text: z.ZodOptional<z.ZodString>;
|
|
212
|
+
raw: z.ZodOptional<z.ZodString>;
|
|
213
|
+
url: z.ZodOptional<z.ZodString>;
|
|
214
|
+
data: z.ZodOptional<z.ZodUnknown>;
|
|
215
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
216
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
217
|
+
mediaType: z.ZodOptional<z.ZodString>;
|
|
218
|
+
}, z.core.$strip>>;
|
|
219
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
220
|
+
extensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
221
|
+
referenceTaskIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
222
|
+
}, z.core.$strip>>;
|
|
223
|
+
timestamp: z.ZodOptional<z.ZodString>;
|
|
224
|
+
}, z.core.$strip>;
|
|
225
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
226
|
+
}, z.core.$strip>;
|
|
227
|
+
export type TaskStatusUpdateEvent = z.infer<typeof TaskStatusUpdateEvent>;
|
|
228
|
+
export declare const TaskArtifactUpdateEvent: z.ZodObject<{
|
|
229
|
+
taskId: z.ZodString;
|
|
230
|
+
contextId: z.ZodString;
|
|
231
|
+
artifact: z.ZodObject<{
|
|
232
|
+
artifactId: z.ZodString;
|
|
233
|
+
name: z.ZodOptional<z.ZodString>;
|
|
234
|
+
description: z.ZodOptional<z.ZodString>;
|
|
235
|
+
parts: z.ZodArray<z.ZodObject<{
|
|
236
|
+
text: z.ZodOptional<z.ZodString>;
|
|
237
|
+
raw: z.ZodOptional<z.ZodString>;
|
|
238
|
+
url: z.ZodOptional<z.ZodString>;
|
|
239
|
+
data: z.ZodOptional<z.ZodUnknown>;
|
|
240
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
241
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
242
|
+
mediaType: z.ZodOptional<z.ZodString>;
|
|
243
|
+
}, z.core.$strip>>;
|
|
244
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
245
|
+
extensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
246
|
+
}, z.core.$strip>;
|
|
247
|
+
append: z.ZodOptional<z.ZodBoolean>;
|
|
248
|
+
lastChunk: z.ZodOptional<z.ZodBoolean>;
|
|
249
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
250
|
+
}, z.core.$strip>;
|
|
251
|
+
export type TaskArtifactUpdateEvent = z.infer<typeof TaskArtifactUpdateEvent>;
|