@aria-cli/tools 1.0.12 → 1.0.14
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/dist/index.js +378 -70
- package/dist/network-runtime/index.js +8 -12
- package/dist-cjs/index.js +400 -435
- package/dist-cjs/network-runtime/index.js +8 -172
- package/package.json +8 -6
- package/dist/.tsbuildinfo +0 -1
- package/dist/ask-user-interaction.js +0 -22
- package/dist/cache/web-cache.js +0 -66
- package/dist/definitions/arion.js +0 -104
- package/dist/definitions/browser/browser.js +0 -418
- package/dist/definitions/browser/index.js +0 -4
- package/dist/definitions/browser/pw-downloads.js +0 -114
- package/dist/definitions/browser/pw-interactions.js +0 -199
- package/dist/definitions/browser/pw-responses.js +0 -76
- package/dist/definitions/browser/pw-session.js +0 -310
- package/dist/definitions/browser/pw-shared.js +0 -66
- package/dist/definitions/browser/pw-snapshot.js +0 -301
- package/dist/definitions/browser/pw-state.js +0 -62
- package/dist/definitions/browser/types.js +0 -4
- package/dist/definitions/code-intelligence.js +0 -470
- package/dist/definitions/core.js +0 -109
- package/dist/definitions/delegation.js +0 -512
- package/dist/definitions/deploy.js +0 -65
- package/dist/definitions/filesystem.js +0 -196
- package/dist/definitions/frg.js +0 -63
- package/dist/definitions/index.js +0 -20
- package/dist/definitions/memory.js +0 -123
- package/dist/definitions/messaging.js +0 -625
- package/dist/definitions/meta.js +0 -349
- package/dist/definitions/network.js +0 -159
- package/dist/definitions/outlook.js +0 -277
- package/dist/definitions/patch/apply-patch.js +0 -184
- package/dist/definitions/patch/fuzzy-match.js +0 -166
- package/dist/definitions/patch/index.js +0 -1
- package/dist/definitions/patch/patch-parser.js +0 -207
- package/dist/definitions/patch/sandbox-paths.js +0 -105
- package/dist/definitions/process/index.js +0 -4
- package/dist/definitions/process/process-registry.js +0 -213
- package/dist/definitions/process/process.js +0 -386
- package/dist/definitions/process/pty-keys.js +0 -254
- package/dist/definitions/process/session-slug.js +0 -142
- package/dist/definitions/quip.js +0 -195
- package/dist/definitions/search.js +0 -60
- package/dist/definitions/session-history.js +0 -69
- package/dist/definitions/shell.js +0 -181
- package/dist/definitions/slack.js +0 -180
- package/dist/definitions/web.js +0 -109
- package/dist/executors/apply-patch.js +0 -901
- package/dist/executors/arion.js +0 -119
- package/dist/executors/code-intelligence.js +0 -882
- package/dist/executors/deploy.js +0 -848
- package/dist/executors/filesystem.js +0 -1122
- package/dist/executors/frg-freshness.js +0 -576
- package/dist/executors/frg.js +0 -298
- package/dist/executors/index.js +0 -46
- package/dist/executors/learning-meta.js +0 -1146
- package/dist/executors/lsp-client.js +0 -296
- package/dist/executors/memory.js +0 -750
- package/dist/executors/meta.js +0 -220
- package/dist/executors/process-registry.js +0 -465
- package/dist/executors/pty-session-store.js +0 -30
- package/dist/executors/pty.js +0 -271
- package/dist/executors/restart.js +0 -119
- package/dist/executors/search-freshness.js +0 -195
- package/dist/executors/search-types.js +0 -52
- package/dist/executors/search.js +0 -66
- package/dist/executors/self-diagnose.js +0 -398
- package/dist/executors/session-history.js +0 -283
- package/dist/executors/shell-safety.js +0 -473
- package/dist/executors/shell.js +0 -954
- package/dist/executors/utils.js +0 -33
- package/dist/executors/web.js +0 -542
- package/dist/extraction/content-extraction.js +0 -235
- package/dist/extraction/index.js +0 -4
- package/dist/headless-control-contract.js +0 -967
- package/dist/local-control-http-auth.js +0 -2
- package/dist/mcp/client.js +0 -181
- package/dist/mcp/connection.js +0 -480
- package/dist/mcp/index.js +0 -10
- package/dist/mcp/jsonrpc.js +0 -144
- package/dist/mcp/types.js +0 -7
- package/dist/network-control-adapter.js +0 -72
- package/dist/network-runtime/address-types.js +0 -165
- package/dist/network-runtime/db-owner-fencing.js +0 -69
- package/dist/network-runtime/delivery-receipts.js +0 -267
- package/dist/network-runtime/direct-endpoint-authority.js +0 -25
- package/dist/network-runtime/local-control-contract.js +0 -627
- package/dist/network-runtime/node-store-contract.js +0 -34
- package/dist/network-runtime/pair-route-contract.js +0 -77
- package/dist/network-runtime/peer-capabilities.js +0 -28
- package/dist/network-runtime/peer-principal-ref.js +0 -12
- package/dist/network-runtime/peer-state-machine.js +0 -121
- package/dist/network-runtime/protocol-schemas.js +0 -205
- package/dist/network-runtime/runtime-bootstrap-contract.js +0 -60
- package/dist/outlook/desktop-session.js +0 -279
- package/dist/policy.js +0 -149
- package/dist/providers/brave.js +0 -62
- package/dist/providers/duckduckgo.js +0 -176
- package/dist/providers/exa.js +0 -63
- package/dist/providers/firecrawl.js +0 -55
- package/dist/providers/index.js +0 -7
- package/dist/providers/jina.js +0 -49
- package/dist/providers/router.js +0 -96
- package/dist/providers/search-provider.js +0 -32
- package/dist/providers/tavily.js +0 -54
- package/dist/quip/desktop-session.js +0 -317
- package/dist/registry/index.js +0 -1
- package/dist/registry/registry.js +0 -756
- package/dist/runtime-socket-local-control-client.js +0 -330
- package/dist/security/dns-normalization.js +0 -19
- package/dist/security/dns-pinning.js +0 -123
- package/dist/security/external-content.js +0 -91
- package/dist/security/ssrf.js +0 -181
- package/dist/slack/desktop-session.js +0 -324
- package/dist/tool-factory.js +0 -47
- package/dist/types.js +0 -7
- package/dist/utils/retry.js +0 -132
- package/dist/utils/safe-parse-json.js +0 -160
- package/dist/utils/url.js +0 -19
- package/dist-cjs/.tsbuildinfo +0 -1
- package/dist-cjs/ask-user-interaction.js +0 -27
- package/dist-cjs/cache/web-cache.js +0 -70
- package/dist-cjs/definitions/arion.js +0 -107
- package/dist-cjs/definitions/browser/browser.js +0 -421
- package/dist-cjs/definitions/browser/index.js +0 -8
- package/dist-cjs/definitions/browser/pw-downloads.js +0 -117
- package/dist-cjs/definitions/browser/pw-interactions.js +0 -213
- package/dist-cjs/definitions/browser/pw-responses.js +0 -84
- package/dist-cjs/definitions/browser/pw-session.js +0 -326
- package/dist-cjs/definitions/browser/pw-shared.js +0 -72
- package/dist-cjs/definitions/browser/pw-snapshot.js +0 -307
- package/dist-cjs/definitions/browser/pw-state.js +0 -70
- package/dist-cjs/definitions/browser/types.js +0 -5
- package/dist-cjs/definitions/code-intelligence.js +0 -473
- package/dist-cjs/definitions/core.js +0 -133
- package/dist-cjs/definitions/delegation.js +0 -515
- package/dist-cjs/definitions/deploy.js +0 -68
- package/dist-cjs/definitions/filesystem.js +0 -199
- package/dist-cjs/definitions/frg.js +0 -66
- package/dist-cjs/definitions/index.js +0 -43
- package/dist-cjs/definitions/memory.js +0 -126
- package/dist-cjs/definitions/messaging.js +0 -631
- package/dist-cjs/definitions/meta.js +0 -352
- package/dist-cjs/definitions/network.js +0 -162
- package/dist-cjs/definitions/outlook.js +0 -280
- package/dist-cjs/definitions/patch/apply-patch.js +0 -191
- package/dist-cjs/definitions/patch/fuzzy-match.js +0 -172
- package/dist-cjs/definitions/patch/index.js +0 -5
- package/dist-cjs/definitions/patch/patch-parser.js +0 -215
- package/dist-cjs/definitions/patch/sandbox-paths.js +0 -113
- package/dist-cjs/definitions/process/index.js +0 -8
- package/dist-cjs/definitions/process/process-registry.js +0 -231
- package/dist-cjs/definitions/process/process.js +0 -389
- package/dist-cjs/definitions/process/pty-keys.js +0 -259
- package/dist-cjs/definitions/process/session-slug.js +0 -145
- package/dist-cjs/definitions/quip.js +0 -198
- package/dist-cjs/definitions/search.js +0 -63
- package/dist-cjs/definitions/session-history.js +0 -72
- package/dist-cjs/definitions/shell.js +0 -184
- package/dist-cjs/definitions/slack.js +0 -183
- package/dist-cjs/definitions/web.js +0 -112
- package/dist-cjs/executors/apply-patch.js +0 -938
- package/dist-cjs/executors/arion.js +0 -125
- package/dist-cjs/executors/code-intelligence.js +0 -925
- package/dist-cjs/executors/deploy.js +0 -869
- package/dist-cjs/executors/filesystem.js +0 -1167
- package/dist-cjs/executors/frg-freshness.js +0 -627
- package/dist-cjs/executors/frg.js +0 -334
- package/dist-cjs/executors/index.js +0 -143
- package/dist-cjs/executors/learning-meta.js +0 -1165
- package/dist-cjs/executors/lsp-client.js +0 -310
- package/dist-cjs/executors/memory.js +0 -796
- package/dist-cjs/executors/meta.js +0 -226
- package/dist-cjs/executors/process-registry.js +0 -469
- package/dist-cjs/executors/pty-session-store.js +0 -34
- package/dist-cjs/executors/pty.js +0 -312
- package/dist-cjs/executors/restart.js +0 -155
- package/dist-cjs/executors/search-freshness.js +0 -234
- package/dist-cjs/executors/search-types.js +0 -56
- package/dist-cjs/executors/search.js +0 -102
- package/dist-cjs/executors/self-diagnose.js +0 -434
- package/dist-cjs/executors/session-history.js +0 -320
- package/dist-cjs/executors/shell-safety.js +0 -478
- package/dist-cjs/executors/shell.js +0 -1001
- package/dist-cjs/executors/utils.js +0 -73
- package/dist-cjs/executors/web.js +0 -547
- package/dist-cjs/extraction/content-extraction.js +0 -243
- package/dist-cjs/extraction/index.js +0 -8
- package/dist-cjs/headless-control-contract.js +0 -972
- package/dist-cjs/local-control-http-auth.js +0 -5
- package/dist-cjs/mcp/client.js +0 -185
- package/dist-cjs/mcp/connection.js +0 -484
- package/dist-cjs/mcp/index.js +0 -30
- package/dist-cjs/mcp/jsonrpc.js +0 -148
- package/dist-cjs/mcp/types.js +0 -8
- package/dist-cjs/network-control-adapter.js +0 -77
- package/dist-cjs/network-runtime/address-types.js +0 -168
- package/dist-cjs/network-runtime/db-owner-fencing.js +0 -76
- package/dist-cjs/network-runtime/delivery-receipts.js +0 -276
- package/dist-cjs/network-runtime/direct-endpoint-authority.js +0 -29
- package/dist-cjs/network-runtime/local-control-contract.js +0 -633
- package/dist-cjs/network-runtime/node-store-contract.js +0 -38
- package/dist-cjs/network-runtime/pair-route-contract.js +0 -80
- package/dist-cjs/network-runtime/peer-capabilities.js +0 -37
- package/dist-cjs/network-runtime/peer-principal-ref.js +0 -15
- package/dist-cjs/network-runtime/peer-state-machine.js +0 -129
- package/dist-cjs/network-runtime/protocol-schemas.js +0 -212
- package/dist-cjs/network-runtime/runtime-bootstrap-contract.js +0 -63
- package/dist-cjs/outlook/desktop-session.js +0 -318
- package/dist-cjs/policy.js +0 -155
- package/dist-cjs/providers/brave.js +0 -66
- package/dist-cjs/providers/duckduckgo.js +0 -180
- package/dist-cjs/providers/exa.js +0 -67
- package/dist-cjs/providers/firecrawl.js +0 -59
- package/dist-cjs/providers/index.js +0 -17
- package/dist-cjs/providers/jina.js +0 -53
- package/dist-cjs/providers/router.js +0 -100
- package/dist-cjs/providers/search-provider.js +0 -36
- package/dist-cjs/providers/tavily.js +0 -58
- package/dist-cjs/quip/desktop-session.js +0 -353
- package/dist-cjs/registry/index.js +0 -6
- package/dist-cjs/registry/registry.js +0 -761
- package/dist-cjs/runtime-socket-local-control-client.js +0 -367
- package/dist-cjs/security/dns-normalization.js +0 -22
- package/dist-cjs/security/dns-pinning.js +0 -160
- package/dist-cjs/security/external-content.js +0 -95
- package/dist-cjs/security/ssrf.js +0 -221
- package/dist-cjs/slack/desktop-session.js +0 -366
- package/dist-cjs/tool-factory.js +0 -50
- package/dist-cjs/types.js +0 -8
- package/dist-cjs/utils/retry.js +0 -169
- package/dist-cjs/utils/safe-parse-json.js +0 -164
- package/dist-cjs/utils/url.js +0 -23
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { ControlEndpointAdvertisementSchema, NodeIdSchema, PrincipalFingerprintSchema, SigningPublicKeySchema, TransportEndpointAdvertisementSchema, } from "./address-types.js";
|
|
3
|
-
import { SignedContinuityBindSchema } from "./protocol-schemas.js";
|
|
4
|
-
const NonEmptyStringSchema = z.string().trim().min(1);
|
|
5
|
-
function toFastifyBodyJsonSchema(schema) {
|
|
6
|
-
const jsonSchema = z.toJSONSchema(schema);
|
|
7
|
-
delete jsonSchema.$schema;
|
|
8
|
-
return jsonSchema;
|
|
9
|
-
}
|
|
10
|
-
export const PairRequestRouteBodySchema = z
|
|
11
|
-
.object({
|
|
12
|
-
displayNameSnapshot: NonEmptyStringSchema,
|
|
13
|
-
nodeId: NodeIdSchema,
|
|
14
|
-
signingPublicKey: SigningPublicKeySchema,
|
|
15
|
-
port: z.number().int().min(1).max(65535),
|
|
16
|
-
ephemeralPublicKey: z.string().max(512),
|
|
17
|
-
ephemeralKeySignature: z.string().max(512),
|
|
18
|
-
caCert: z.string().max(4096).optional(),
|
|
19
|
-
protocolVersion: z.number().min(1).max(100).optional(),
|
|
20
|
-
wait: z.boolean().optional(),
|
|
21
|
-
})
|
|
22
|
-
.strict();
|
|
23
|
-
export const PairRequestRouteBodyJsonSchema = toFastifyBodyJsonSchema(PairRequestRouteBodySchema);
|
|
24
|
-
export const AcceptInviteRequestSchema = z
|
|
25
|
-
.object({
|
|
26
|
-
inviteToken: NonEmptyStringSchema,
|
|
27
|
-
nodeId: NodeIdSchema,
|
|
28
|
-
displayNameSnapshot: NonEmptyStringSchema.optional(),
|
|
29
|
-
transportEndpoint: TransportEndpointAdvertisementSchema,
|
|
30
|
-
controlEndpoint: ControlEndpointAdvertisementSchema,
|
|
31
|
-
continuity: SignedContinuityBindSchema.optional(),
|
|
32
|
-
})
|
|
33
|
-
.strict();
|
|
34
|
-
export const AcceptInviteRequestBodyJsonSchema = toFastifyBodyJsonSchema(AcceptInviteRequestSchema);
|
|
35
|
-
export const PairRelayRouteBodySchema = z
|
|
36
|
-
.object({
|
|
37
|
-
targetNodeId: NodeIdSchema,
|
|
38
|
-
displayNameSnapshot: NonEmptyStringSchema,
|
|
39
|
-
nodeId: NodeIdSchema,
|
|
40
|
-
signingPublicKey: SigningPublicKeySchema,
|
|
41
|
-
port: z.number().int().min(1).max(65535),
|
|
42
|
-
ephemeralPublicKey: z.string().max(512),
|
|
43
|
-
ephemeralKeySignature: z.string().max(512),
|
|
44
|
-
caCert: z.string().max(4096).optional(),
|
|
45
|
-
})
|
|
46
|
-
.strict();
|
|
47
|
-
export const PairRelayRouteBodyJsonSchema = toFastifyBodyJsonSchema(PairRelayRouteBodySchema);
|
|
48
|
-
export const RelayPendingQuerySchema = z
|
|
49
|
-
.object({
|
|
50
|
-
targetNodeId: NodeIdSchema,
|
|
51
|
-
signingPublicKey: SigningPublicKeySchema,
|
|
52
|
-
signature: NonEmptyStringSchema.max(512),
|
|
53
|
-
timestamp: NonEmptyStringSchema.max(20),
|
|
54
|
-
})
|
|
55
|
-
.strict();
|
|
56
|
-
export const RelayPendingQueryJsonSchema = toFastifyBodyJsonSchema(RelayPendingQuerySchema);
|
|
57
|
-
export const RelayPendingRequestSchema = z
|
|
58
|
-
.object({
|
|
59
|
-
id: NonEmptyStringSchema,
|
|
60
|
-
nodeId: NodeIdSchema,
|
|
61
|
-
displayNameSnapshot: NonEmptyStringSchema.optional(),
|
|
62
|
-
principalFingerprint: PrincipalFingerprintSchema,
|
|
63
|
-
signingPublicKey: SigningPublicKeySchema,
|
|
64
|
-
port: z.number().int().min(1).max(65535),
|
|
65
|
-
ingressHost: NonEmptyStringSchema,
|
|
66
|
-
responderControlHostHint: NonEmptyStringSchema.optional(),
|
|
67
|
-
ephemeralPublicKey: z.string().max(512).optional(),
|
|
68
|
-
ephemeralKeySignature: z.string().max(512).optional(),
|
|
69
|
-
caCert: z.string().max(4096).optional(),
|
|
70
|
-
expiresAt: z.number().int().nonnegative(),
|
|
71
|
-
})
|
|
72
|
-
.strict();
|
|
73
|
-
export const RelayPendingResponseSchema = z
|
|
74
|
-
.object({
|
|
75
|
-
requests: RelayPendingRequestSchema.array(),
|
|
76
|
-
})
|
|
77
|
-
.strict();
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export function canRecordPendingPair(identityState) {
|
|
2
|
-
return identityState === "invited" || identityState === "joining";
|
|
3
|
-
}
|
|
4
|
-
export function canCommitVerifiedPair(identityState, proof) {
|
|
5
|
-
return identityState === "paired_unverified" && proof.proofValid;
|
|
6
|
-
}
|
|
7
|
-
export function canRefreshEndpoint(identityState) {
|
|
8
|
-
return (identityState === "joining" ||
|
|
9
|
-
identityState === "paired_unverified" ||
|
|
10
|
-
identityState === "verified");
|
|
11
|
-
}
|
|
12
|
-
export function canHeartbeat(identityState) {
|
|
13
|
-
return identityState === "paired_unverified" || identityState === "verified";
|
|
14
|
-
}
|
|
15
|
-
export function canAttemptBestEffortTransport(identityState, transportState) {
|
|
16
|
-
if (identityState === "revoked")
|
|
17
|
-
return false;
|
|
18
|
-
return (transportState === "endpoint_known" ||
|
|
19
|
-
transportState === "connecting" ||
|
|
20
|
-
transportState === "connected" ||
|
|
21
|
-
transportState === "degraded");
|
|
22
|
-
}
|
|
23
|
-
export function canAttemptDurableDelivery(identityState, transportState) {
|
|
24
|
-
return identityState === "verified" && transportState === "connected";
|
|
25
|
-
}
|
|
26
|
-
export function canMutateTrustedState(identityState) {
|
|
27
|
-
return identityState === "verified";
|
|
28
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { BindingGenerationSchema, NodeIdSchema, PrincipalFingerprintSchema, PeerTransportIdSchema, } from "./address-types.js";
|
|
3
|
-
const NonEmptyStringSchema = z.string().trim().min(1);
|
|
4
|
-
export const NodePrincipalBindingRefSchema = z
|
|
5
|
-
.object({
|
|
6
|
-
nodeId: NodeIdSchema,
|
|
7
|
-
principalFingerprint: PrincipalFingerprintSchema,
|
|
8
|
-
transportPublicKey: PeerTransportIdSchema,
|
|
9
|
-
bindingGeneration: BindingGenerationSchema,
|
|
10
|
-
displayNameSnapshot: NonEmptyStringSchema.optional(),
|
|
11
|
-
})
|
|
12
|
-
.strict();
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
export const LegacyPeerRegistryStatusSchema = z.enum([
|
|
3
|
-
"active",
|
|
4
|
-
"pending",
|
|
5
|
-
"pending_tunnel",
|
|
6
|
-
"pending_verification",
|
|
7
|
-
"revoked",
|
|
8
|
-
]);
|
|
9
|
-
export const PeerIdentityStateSchema = z.enum([
|
|
10
|
-
"invited",
|
|
11
|
-
"joining",
|
|
12
|
-
"paired_unverified",
|
|
13
|
-
"verified",
|
|
14
|
-
"revoked",
|
|
15
|
-
]);
|
|
16
|
-
export const PeerTransportStateSchema = z.enum([
|
|
17
|
-
"unknown",
|
|
18
|
-
"endpoint_known",
|
|
19
|
-
"connecting",
|
|
20
|
-
"connected",
|
|
21
|
-
"degraded",
|
|
22
|
-
"disconnected",
|
|
23
|
-
]);
|
|
24
|
-
export const PeerMutationKindSchema = z.enum(["repair", "continuity", "revocation"]);
|
|
25
|
-
export const LegacyPeerRuntimeShapeSchema = z.object({
|
|
26
|
-
status: LegacyPeerRegistryStatusSchema,
|
|
27
|
-
endpointHost: z.string().nullable().optional(),
|
|
28
|
-
endpointPort: z.number().int().nullable().optional(),
|
|
29
|
-
lastHandshake: z.number().int().nullable().optional(),
|
|
30
|
-
});
|
|
31
|
-
const VALID_TRANSPORT_BY_IDENTITY = {
|
|
32
|
-
invited: ["unknown", "endpoint_known"],
|
|
33
|
-
joining: ["unknown", "endpoint_known", "connecting"],
|
|
34
|
-
paired_unverified: [
|
|
35
|
-
"unknown",
|
|
36
|
-
"endpoint_known",
|
|
37
|
-
"connecting",
|
|
38
|
-
"connected",
|
|
39
|
-
"degraded",
|
|
40
|
-
"disconnected",
|
|
41
|
-
],
|
|
42
|
-
verified: ["unknown", "endpoint_known", "connecting", "connected", "degraded", "disconnected"],
|
|
43
|
-
revoked: ["unknown", "disconnected"],
|
|
44
|
-
};
|
|
45
|
-
export function isValidPeerStateCombination(identityState, transportState) {
|
|
46
|
-
return VALID_TRANSPORT_BY_IDENTITY[identityState].includes(transportState);
|
|
47
|
-
}
|
|
48
|
-
export const PeerStateSnapshotSchema = z
|
|
49
|
-
.object({
|
|
50
|
-
identityState: PeerIdentityStateSchema,
|
|
51
|
-
transportState: PeerTransportStateSchema,
|
|
52
|
-
})
|
|
53
|
-
.superRefine((value, ctx) => {
|
|
54
|
-
if (!isValidPeerStateCombination(value.identityState, value.transportState)) {
|
|
55
|
-
ctx.addIssue({
|
|
56
|
-
code: z.ZodIssueCode.custom,
|
|
57
|
-
message: `invalid peer state combination: ${value.identityState}/${value.transportState}`,
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
export function derivePeerStateFromLegacyStatus(input) {
|
|
62
|
-
const legacy = LegacyPeerRuntimeShapeSchema.parse(input);
|
|
63
|
-
const hasEndpoint = Boolean(legacy.endpointHost && legacy.endpointPort);
|
|
64
|
-
const hasHandshake = typeof legacy.lastHandshake === "number" &&
|
|
65
|
-
Number.isFinite(legacy.lastHandshake) &&
|
|
66
|
-
legacy.lastHandshake > 0;
|
|
67
|
-
const identityState = legacy.status === "pending"
|
|
68
|
-
? "invited"
|
|
69
|
-
: legacy.status === "revoked"
|
|
70
|
-
? "revoked"
|
|
71
|
-
: legacy.status === "active"
|
|
72
|
-
? "verified"
|
|
73
|
-
: "paired_unverified";
|
|
74
|
-
const transportState = (() => {
|
|
75
|
-
switch (legacy.status) {
|
|
76
|
-
case "active":
|
|
77
|
-
return hasHandshake ? "connected" : hasEndpoint ? "endpoint_known" : "disconnected";
|
|
78
|
-
case "pending_tunnel":
|
|
79
|
-
return hasHandshake ? "connected" : hasEndpoint ? "connecting" : "unknown";
|
|
80
|
-
case "pending_verification":
|
|
81
|
-
return hasHandshake ? "connected" : hasEndpoint ? "endpoint_known" : "unknown";
|
|
82
|
-
case "pending":
|
|
83
|
-
return hasEndpoint ? "endpoint_known" : "unknown";
|
|
84
|
-
case "revoked":
|
|
85
|
-
return hasEndpoint ? "disconnected" : "unknown";
|
|
86
|
-
}
|
|
87
|
-
})();
|
|
88
|
-
return PeerStateSnapshotSchema.parse({ identityState, transportState });
|
|
89
|
-
}
|
|
90
|
-
const IDENTITY_TRANSITIONS = {
|
|
91
|
-
invited: ["invited", "joining", "revoked"],
|
|
92
|
-
joining: ["joining", "paired_unverified", "revoked"],
|
|
93
|
-
paired_unverified: ["paired_unverified", "verified", "revoked"],
|
|
94
|
-
verified: ["verified", "revoked"],
|
|
95
|
-
revoked: ["revoked"],
|
|
96
|
-
};
|
|
97
|
-
export function isValidPeerIdentityTransition(from, to, options = {}) {
|
|
98
|
-
if (from === "verified" && to === "paired_unverified") {
|
|
99
|
-
return options.viaContinuity === true;
|
|
100
|
-
}
|
|
101
|
-
return IDENTITY_TRANSITIONS[from].includes(to);
|
|
102
|
-
}
|
|
103
|
-
const TRANSPORT_TRANSITIONS = {
|
|
104
|
-
unknown: ["unknown", "endpoint_known"],
|
|
105
|
-
endpoint_known: ["endpoint_known", "connecting", "disconnected"],
|
|
106
|
-
connecting: ["connecting", "connected", "endpoint_known", "disconnected"],
|
|
107
|
-
connected: ["connected", "degraded", "disconnected"],
|
|
108
|
-
degraded: ["degraded", "connected", "disconnected"],
|
|
109
|
-
disconnected: ["disconnected", "endpoint_known"],
|
|
110
|
-
};
|
|
111
|
-
export function isValidPeerTransportTransition(from, to) {
|
|
112
|
-
return TRANSPORT_TRANSITIONS[from].includes(to);
|
|
113
|
-
}
|
|
114
|
-
const MUTATION_PRECEDENCE = {
|
|
115
|
-
repair: 0,
|
|
116
|
-
continuity: 1,
|
|
117
|
-
revocation: 2,
|
|
118
|
-
};
|
|
119
|
-
export function comparePeerMutationPrecedence(left, right) {
|
|
120
|
-
return MUTATION_PRECEDENCE[left] - MUTATION_PRECEDENCE[right];
|
|
121
|
-
}
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { BindingGenerationSchema, ControlEndpointAdvertisementSchema, EndpointRevisionSchema, NodeAdvertisementSchema, NodeIdSchema, PeerTransportIdSchema, PublicationRevisionSchema, PrincipalFingerprintSchema, RevocationGenerationSchema, SigningPublicKeySchema, TransportEndpointAdvertisementSchema, } from "./address-types.js";
|
|
3
|
-
export { RuntimeEventKindSchema, RuntimeEventSchema, } from "./node-store-contract.js";
|
|
4
|
-
import { NodePrincipalBindingRefSchema } from "./peer-principal-ref.js";
|
|
5
|
-
const NonEmptyStringSchema = z.string().trim().min(1);
|
|
6
|
-
// Signed transport invite tokens must preserve PEM bytes verbatim; trimming
|
|
7
|
-
// a trailing newline changes the signed payload and breaks verification.
|
|
8
|
-
const NonBlankVerbatimStringSchema = z
|
|
9
|
-
.string()
|
|
10
|
-
.min(1)
|
|
11
|
-
.refine((value) => value.trim().length > 0);
|
|
12
|
-
const RecordSchema = z.record(z.string(), z.unknown());
|
|
13
|
-
function toFastifyBodyJsonSchema(schema) {
|
|
14
|
-
const jsonSchema = z.toJSONSchema(schema);
|
|
15
|
-
delete jsonSchema.$schema;
|
|
16
|
-
return jsonSchema;
|
|
17
|
-
}
|
|
18
|
-
export const NETWORK_RUNTIME_PROTOCOL_VERSION = 1;
|
|
19
|
-
export const NetworkRuntimeProtocolVersionSchema = z.literal(NETWORK_RUNTIME_PROTOCOL_VERSION);
|
|
20
|
-
export function isSupportedNetworkRuntimeProtocolVersion(version) {
|
|
21
|
-
return version === NETWORK_RUNTIME_PROTOCOL_VERSION;
|
|
22
|
-
}
|
|
23
|
-
export function assertSupportedNetworkRuntimeProtocolVersion(version, context = "network runtime") {
|
|
24
|
-
if (!isSupportedNetworkRuntimeProtocolVersion(version)) {
|
|
25
|
-
throw new Error(`Unsupported ${context} protocol version ${String(version)}. Supported: ${NETWORK_RUNTIME_PROTOCOL_VERSION}`);
|
|
26
|
-
}
|
|
27
|
-
return version;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Shared delivery-ack wire contract.
|
|
31
|
-
* Durable settlement is keyed by stable peer identity, not display-name strings.
|
|
32
|
-
*/
|
|
33
|
-
export const DeliveryAckSchema = z
|
|
34
|
-
.object({
|
|
35
|
-
protocolVersion: NetworkRuntimeProtocolVersionSchema,
|
|
36
|
-
messageId: NonEmptyStringSchema,
|
|
37
|
-
senderNodeId: NodeIdSchema,
|
|
38
|
-
recipientNodeId: NodeIdSchema,
|
|
39
|
-
storedAt: z.number().int().nonnegative(),
|
|
40
|
-
})
|
|
41
|
-
.strict();
|
|
42
|
-
export const TransportInviteTokenSchema = z
|
|
43
|
-
.object({
|
|
44
|
-
nodeId: NodeIdSchema,
|
|
45
|
-
audienceNodeId: NodeIdSchema.optional(),
|
|
46
|
-
publicKey: PeerTransportIdSchema,
|
|
47
|
-
leaderDisplayNameSnapshot: NonEmptyStringSchema.optional(),
|
|
48
|
-
host: NonEmptyStringSchema,
|
|
49
|
-
port: z.number().int().min(1).max(65535),
|
|
50
|
-
controlEndpoint: ControlEndpointAdvertisementSchema.optional(),
|
|
51
|
-
psk: NonEmptyStringSchema,
|
|
52
|
-
displayNameSnapshot: NonEmptyStringSchema.optional(),
|
|
53
|
-
signingPublicKey: SigningPublicKeySchema.optional(),
|
|
54
|
-
caCert: NonBlankVerbatimStringSchema.optional(),
|
|
55
|
-
createdAt: z.number().int().nonnegative(),
|
|
56
|
-
expiresAt: z.number().int().nonnegative(),
|
|
57
|
-
tokenNonce: NonEmptyStringSchema,
|
|
58
|
-
coordinationUrl: NonEmptyStringSchema.optional(),
|
|
59
|
-
networkId: NonEmptyStringSchema.optional(),
|
|
60
|
-
})
|
|
61
|
-
.strict();
|
|
62
|
-
export const JoinRequestSchema = z
|
|
63
|
-
.object({
|
|
64
|
-
protocolVersion: NetworkRuntimeProtocolVersionSchema,
|
|
65
|
-
nodeId: NodeIdSchema,
|
|
66
|
-
principalFingerprint: PrincipalFingerprintSchema,
|
|
67
|
-
peerPublicKey: PeerTransportIdSchema,
|
|
68
|
-
signingPublicKey: SigningPublicKeySchema,
|
|
69
|
-
transportEndpoint: TransportEndpointAdvertisementSchema,
|
|
70
|
-
controlEndpoint: ControlEndpointAdvertisementSchema.optional(),
|
|
71
|
-
displayNameSnapshot: NonEmptyStringSchema.optional(),
|
|
72
|
-
inviteTokenNonce: NonEmptyStringSchema,
|
|
73
|
-
})
|
|
74
|
-
.strict();
|
|
75
|
-
export const JoinRouteBodySchema = JoinRequestSchema.extend({
|
|
76
|
-
proofOfWork: NonEmptyStringSchema,
|
|
77
|
-
}).strict();
|
|
78
|
-
export const JoinRouteBodyJsonSchema = toFastifyBodyJsonSchema(JoinRouteBodySchema);
|
|
79
|
-
export const RuntimeIngressEnvelopeSchema = z.union([
|
|
80
|
-
z
|
|
81
|
-
.object({
|
|
82
|
-
protocolVersion: NetworkRuntimeProtocolVersionSchema,
|
|
83
|
-
deliveryAck: DeliveryAckSchema,
|
|
84
|
-
})
|
|
85
|
-
.strict(),
|
|
86
|
-
z
|
|
87
|
-
.object({
|
|
88
|
-
protocolVersion: NetworkRuntimeProtocolVersionSchema,
|
|
89
|
-
ariaMessage: z.unknown(),
|
|
90
|
-
})
|
|
91
|
-
.strict(),
|
|
92
|
-
z
|
|
93
|
-
.object({
|
|
94
|
-
protocolVersion: NetworkRuntimeProtocolVersionSchema,
|
|
95
|
-
joinRequest: JoinRequestSchema,
|
|
96
|
-
})
|
|
97
|
-
.strict(),
|
|
98
|
-
]);
|
|
99
|
-
export const RuntimeNodeAdvertisementSchema = NodeAdvertisementSchema.extend({
|
|
100
|
-
protocolVersion: NetworkRuntimeProtocolVersionSchema,
|
|
101
|
-
publicationRevision: PublicationRevisionSchema,
|
|
102
|
-
signingPublicKey: SigningPublicKeySchema,
|
|
103
|
-
transportEndpoint: TransportEndpointAdvertisementSchema,
|
|
104
|
-
advertisedHosts: z.array(NonEmptyStringSchema).min(1).optional(),
|
|
105
|
-
}).strict();
|
|
106
|
-
export const RuntimeDiscoveryAdvertisementSchema = z
|
|
107
|
-
.object({
|
|
108
|
-
protocolVersion: NetworkRuntimeProtocolVersionSchema,
|
|
109
|
-
nodeId: NodeIdSchema,
|
|
110
|
-
displayNameSnapshot: NonEmptyStringSchema,
|
|
111
|
-
principalFingerprint: PrincipalFingerprintSchema,
|
|
112
|
-
controlPort: z.number().int().min(1).max(65535),
|
|
113
|
-
advertisedHosts: z.array(NonEmptyStringSchema).min(1),
|
|
114
|
-
tlsCaFingerprint: z.string().trim().min(1).optional(),
|
|
115
|
-
})
|
|
116
|
-
.strict();
|
|
117
|
-
export const RuntimeRegisterRequestSchema = z
|
|
118
|
-
.object({
|
|
119
|
-
protocolVersion: NetworkRuntimeProtocolVersionSchema,
|
|
120
|
-
nodeId: NodeIdSchema,
|
|
121
|
-
transportPublicKey: PeerTransportIdSchema,
|
|
122
|
-
principalFingerprint: PrincipalFingerprintSchema,
|
|
123
|
-
endpointRevision: EndpointRevisionSchema,
|
|
124
|
-
controlEndpoint: ControlEndpointAdvertisementSchema.optional(),
|
|
125
|
-
displayNameSnapshot: NonEmptyStringSchema.optional(),
|
|
126
|
-
})
|
|
127
|
-
.strict();
|
|
128
|
-
export const PairProposalSchema = z
|
|
129
|
-
.object({
|
|
130
|
-
protocolVersion: NetworkRuntimeProtocolVersionSchema,
|
|
131
|
-
nodeId: NodeIdSchema,
|
|
132
|
-
principalFingerprint: PrincipalFingerprintSchema,
|
|
133
|
-
transportPublicKey: PeerTransportIdSchema,
|
|
134
|
-
controlEndpoint: ControlEndpointAdvertisementSchema.optional(),
|
|
135
|
-
displayNameSnapshot: NonEmptyStringSchema.optional(),
|
|
136
|
-
presharedKey: NonEmptyStringSchema,
|
|
137
|
-
})
|
|
138
|
-
.strict();
|
|
139
|
-
/**
|
|
140
|
-
* Canonical statement of a continuity bind transition.
|
|
141
|
-
* This is the byte-exact payload that both parties sign.
|
|
142
|
-
*/
|
|
143
|
-
export const ContinuityStatementSchema = z
|
|
144
|
-
.object({
|
|
145
|
-
nodeId: NodeIdSchema,
|
|
146
|
-
previousPrincipalFingerprint: PrincipalFingerprintSchema,
|
|
147
|
-
newPrincipalFingerprint: PrincipalFingerprintSchema,
|
|
148
|
-
newTransportPublicKey: PeerTransportIdSchema.optional(),
|
|
149
|
-
bindingGeneration: BindingGenerationSchema,
|
|
150
|
-
revocationGeneration: RevocationGenerationSchema.optional(),
|
|
151
|
-
createdAt: NonEmptyStringSchema,
|
|
152
|
-
})
|
|
153
|
-
.strict();
|
|
154
|
-
/**
|
|
155
|
-
* Dual-signed continuity bind: delegation (previous principal) + acceptance
|
|
156
|
-
* (new principal). Both public keys are included for independent verification.
|
|
157
|
-
*/
|
|
158
|
-
export const SignedContinuityBindSchema = z
|
|
159
|
-
.object({
|
|
160
|
-
statement: ContinuityStatementSchema,
|
|
161
|
-
delegationSignature: NonEmptyStringSchema,
|
|
162
|
-
acceptanceSignature: NonEmptyStringSchema,
|
|
163
|
-
previousPublicKey: NonEmptyStringSchema,
|
|
164
|
-
newPublicKey: NonEmptyStringSchema,
|
|
165
|
-
})
|
|
166
|
-
.strict();
|
|
167
|
-
export const MutationOperationSchema = z.enum([
|
|
168
|
-
"network.register",
|
|
169
|
-
"network.revoke",
|
|
170
|
-
"network.list_peers",
|
|
171
|
-
"pair.direct",
|
|
172
|
-
"pair.relay",
|
|
173
|
-
"pair.relay_response",
|
|
174
|
-
"peer.update_capabilities",
|
|
175
|
-
"peer.update_trust_tier",
|
|
176
|
-
]);
|
|
177
|
-
export const MutationEnvelopeSchema = z
|
|
178
|
-
.object({
|
|
179
|
-
version: NetworkRuntimeProtocolVersionSchema,
|
|
180
|
-
id: NonEmptyStringSchema,
|
|
181
|
-
operation: MutationOperationSchema,
|
|
182
|
-
principal: NodePrincipalBindingRefSchema,
|
|
183
|
-
target: NodePrincipalBindingRefSchema,
|
|
184
|
-
namespace: NonEmptyStringSchema,
|
|
185
|
-
policyEpoch: z.number().int().nonnegative(),
|
|
186
|
-
nonce: NonEmptyStringSchema,
|
|
187
|
-
timestamp: z.number().int().nonnegative(),
|
|
188
|
-
ttl: z.number().int().positive(),
|
|
189
|
-
contextHash: NonEmptyStringSchema,
|
|
190
|
-
payload: RecordSchema,
|
|
191
|
-
signature: NonEmptyStringSchema,
|
|
192
|
-
method: NonEmptyStringSchema.optional(),
|
|
193
|
-
path: NonEmptyStringSchema.optional(),
|
|
194
|
-
metadata: RecordSchema.optional(),
|
|
195
|
-
reason: NonEmptyStringSchema.optional(),
|
|
196
|
-
parentEnvelopeId: NonEmptyStringSchema.optional(),
|
|
197
|
-
})
|
|
198
|
-
.strict();
|
|
199
|
-
export const NetworkRouteRevokeRequestSchema = z
|
|
200
|
-
.object({
|
|
201
|
-
nodeId: NodeIdSchema,
|
|
202
|
-
envelope: MutationEnvelopeSchema,
|
|
203
|
-
})
|
|
204
|
-
.strict();
|
|
205
|
-
export const NetworkRouteRevokeRequestJsonSchema = toFastifyBodyJsonSchema(NetworkRouteRevokeRequestSchema);
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { LoopbackTlsIdentitySchema, NodeIdSchema, OwnerGenerationSchema, PeerTransportIdSchema, PrincipalFingerprintSchema, RuntimeIdSchema, SigningPublicKeySchema, TlsCaFingerprintSchema, TransportEndpointAdvertisementSchema, } from "./address-types.js";
|
|
3
|
-
import { NetworkRuntimeProtocolVersionSchema } from "./protocol-schemas.js";
|
|
4
|
-
const NonEmptyTrimmedStringSchema = z.string().trim().min(1);
|
|
5
|
-
const NonBlankVerbatimStringSchema = z
|
|
6
|
-
.string()
|
|
7
|
-
.min(1)
|
|
8
|
-
.refine((value) => value.trim().length > 0);
|
|
9
|
-
export const RuntimeBootstrapRevisionSchema = z.number().int().nonnegative();
|
|
10
|
-
export const RuntimeBootstrapPhaseSchema = z.enum([
|
|
11
|
-
"starting",
|
|
12
|
-
"tls_bound",
|
|
13
|
-
"control_ready",
|
|
14
|
-
"network_ready",
|
|
15
|
-
"mesh_ready",
|
|
16
|
-
"degraded",
|
|
17
|
-
"stopped",
|
|
18
|
-
]);
|
|
19
|
-
export const RuntimeBootstrapControlEndpointSchema = z
|
|
20
|
-
.object({
|
|
21
|
-
host: NonEmptyTrimmedStringSchema,
|
|
22
|
-
port: z.number().int().min(1).max(65535),
|
|
23
|
-
})
|
|
24
|
-
.strict();
|
|
25
|
-
export const RuntimeBootstrapTlsSchema = z
|
|
26
|
-
.object({
|
|
27
|
-
caFingerprint: TlsCaFingerprintSchema,
|
|
28
|
-
caCertPem: NonBlankVerbatimStringSchema,
|
|
29
|
-
principalIdentity: PrincipalFingerprintSchema,
|
|
30
|
-
loopbackIdentity: LoopbackTlsIdentitySchema,
|
|
31
|
-
})
|
|
32
|
-
.strict();
|
|
33
|
-
export const RuntimeBootstrapIdentitySchema = z
|
|
34
|
-
.object({
|
|
35
|
-
signingPublicKey: SigningPublicKeySchema,
|
|
36
|
-
transportPublicKey: PeerTransportIdSchema,
|
|
37
|
-
transportEndpoint: TransportEndpointAdvertisementSchema,
|
|
38
|
-
displayNameSnapshot: NonEmptyTrimmedStringSchema.optional(),
|
|
39
|
-
})
|
|
40
|
-
.strict();
|
|
41
|
-
export const RuntimeBootstrapRecordSchema = z
|
|
42
|
-
.object({
|
|
43
|
-
nodeId: NodeIdSchema,
|
|
44
|
-
runtimeId: RuntimeIdSchema,
|
|
45
|
-
arionName: NonEmptyTrimmedStringSchema.optional(),
|
|
46
|
-
ownerGeneration: OwnerGenerationSchema,
|
|
47
|
-
bootstrapRevision: RuntimeBootstrapRevisionSchema,
|
|
48
|
-
phase: RuntimeBootstrapPhaseSchema,
|
|
49
|
-
protocolVersion: NetworkRuntimeProtocolVersionSchema,
|
|
50
|
-
controlEndpoint: RuntimeBootstrapControlEndpointSchema,
|
|
51
|
-
displayNameSnapshot: NonEmptyTrimmedStringSchema.optional(),
|
|
52
|
-
signingPublicKey: SigningPublicKeySchema,
|
|
53
|
-
transportPublicKey: PeerTransportIdSchema,
|
|
54
|
-
transportEndpoint: TransportEndpointAdvertisementSchema,
|
|
55
|
-
tls: RuntimeBootstrapTlsSchema,
|
|
56
|
-
publishedAt: NonEmptyTrimmedStringSchema,
|
|
57
|
-
degradedReason: NonEmptyTrimmedStringSchema.optional(),
|
|
58
|
-
failedPhase: RuntimeBootstrapPhaseSchema.optional(),
|
|
59
|
-
})
|
|
60
|
-
.strict();
|