@relaycast/engine 12.0.0 → 12.1.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/dist/adapters/node/index.d.ts.map +1 -1
- package/dist/adapters/node/index.js +1 -0
- package/dist/adapters/node/index.js.map +1 -1
- package/dist/adapters/node/presence.d.ts +18 -0
- package/dist/adapters/node/presence.d.ts.map +1 -1
- package/dist/adapters/node/presence.js +82 -0
- package/dist/adapters/node/presence.js.map +1 -1
- package/dist/adapters/node/realtime.d.ts +4 -0
- package/dist/adapters/node/realtime.d.ts.map +1 -1
- package/dist/adapters/node/realtime.js +32 -5
- package/dist/adapters/node/realtime.js.map +1 -1
- package/dist/db/schema.d.ts +2 -2
- package/dist/engine/a2a.d.ts +3 -0
- package/dist/engine/a2a.d.ts.map +1 -1
- package/dist/engine/a2a.js +1 -0
- package/dist/engine/a2a.js.map +1 -1
- package/dist/engine/action.d.ts +14 -9
- package/dist/engine/action.d.ts.map +1 -1
- package/dist/engine/action.js +335 -74
- package/dist/engine/action.js.map +1 -1
- package/dist/engine/agent.d.ts +9 -3
- package/dist/engine/agent.d.ts.map +1 -1
- package/dist/engine/agent.js +21 -3
- package/dist/engine/agent.js.map +1 -1
- package/dist/engine/delivery.d.ts.map +1 -1
- package/dist/engine/delivery.js +4 -0
- package/dist/engine/delivery.js.map +1 -1
- package/dist/engine/eventDelivery.d.ts +1 -1
- package/dist/engine/inboundWebhook.d.ts.map +1 -1
- package/dist/engine/inboundWebhook.js +12 -3
- package/dist/engine/inboundWebhook.js.map +1 -1
- package/dist/engine/inbox.d.ts.map +1 -1
- package/dist/engine/inbox.js +17 -0
- package/dist/engine/inbox.js.map +1 -1
- package/dist/engine/invocationClaim.d.ts +32 -0
- package/dist/engine/invocationClaim.d.ts.map +1 -0
- package/dist/engine/invocationClaim.js +42 -0
- package/dist/engine/invocationClaim.js.map +1 -0
- package/dist/engine/messageMetadata.d.ts +2 -0
- package/dist/engine/messageMetadata.d.ts.map +1 -1
- package/dist/engine/messageMetadata.js +3 -2
- package/dist/engine/messageMetadata.js.map +1 -1
- package/dist/engine/node.d.ts +12 -2
- package/dist/engine/node.d.ts.map +1 -1
- package/dist/engine/node.js +83 -4
- package/dist/engine/node.js.map +1 -1
- package/dist/engine/presence.d.ts +173 -1
- package/dist/engine/presence.d.ts.map +1 -1
- package/dist/engine/presence.js +81 -4
- package/dist/engine/presence.js.map +1 -1
- package/dist/engine/registrationAdmission.d.ts +40 -0
- package/dist/engine/registrationAdmission.d.ts.map +1 -0
- package/dist/engine/registrationAdmission.js +78 -0
- package/dist/engine/registrationAdmission.js.map +1 -0
- package/dist/engine/taskInvocation.d.ts +1 -1
- package/dist/engine/workspace.d.ts +26 -1
- package/dist/engine/workspace.d.ts.map +1 -1
- package/dist/engine/workspace.js +108 -7
- package/dist/engine/workspace.js.map +1 -1
- package/dist/engine/workspaceDrain.d.ts +38 -0
- package/dist/engine/workspaceDrain.d.ts.map +1 -0
- package/dist/engine/workspaceDrain.js +202 -0
- package/dist/engine/workspaceDrain.js.map +1 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +28 -0
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/engineDiagnostics.d.ts +26 -0
- package/dist/lib/engineDiagnostics.d.ts.map +1 -0
- package/dist/lib/engineDiagnostics.js +100 -0
- package/dist/lib/engineDiagnostics.js.map +1 -0
- package/dist/lib/httpError.d.ts.map +1 -1
- package/dist/lib/httpError.js +5 -1
- package/dist/lib/httpError.js.map +1 -1
- package/dist/middleware/admission.d.ts +7 -0
- package/dist/middleware/admission.d.ts.map +1 -1
- package/dist/middleware/admission.js +19 -1
- package/dist/middleware/admission.js.map +1 -1
- package/dist/middleware/rateLimit.d.ts.map +1 -1
- package/dist/middleware/rateLimit.js +8 -1
- package/dist/middleware/rateLimit.js.map +1 -1
- package/dist/ports/admission.d.ts +24 -3
- package/dist/ports/admission.d.ts.map +1 -1
- package/dist/ports/diagnostics.d.ts +42 -0
- package/dist/ports/diagnostics.d.ts.map +1 -0
- package/dist/ports/diagnostics.js +13 -0
- package/dist/ports/diagnostics.js.map +1 -0
- package/dist/ports/index.d.ts +9 -1
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js.map +1 -1
- package/dist/ports/presence.d.ts +14 -0
- package/dist/ports/presence.d.ts.map +1 -1
- package/dist/ports/realtime.d.ts +18 -0
- package/dist/ports/realtime.d.ts.map +1 -1
- package/dist/ports/realtime.js.map +1 -1
- package/dist/routes/a2a.d.ts.map +1 -1
- package/dist/routes/a2a.js +2 -0
- package/dist/routes/a2a.js.map +1 -1
- package/dist/routes/action.js +3 -0
- package/dist/routes/action.js.map +1 -1
- package/dist/routes/agent.d.ts.map +1 -1
- package/dist/routes/agent.js +5 -1
- package/dist/routes/agent.js.map +1 -1
- package/dist/routes/node.d.ts.map +1 -1
- package/dist/routes/node.js +2 -1
- package/dist/routes/node.js.map +1 -1
- package/dist/routes/workspace.js +10 -2
- package/dist/routes/workspace.js.map +1 -1
- package/package.json +3 -3
package/dist/engine/inbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/engine/inbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/engine/inbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type SQL } from 'drizzle-orm';
|
|
2
|
+
/** Status a pre-send claim observed on the invocation row. */
|
|
3
|
+
export type InvocationClaimStatus = 'pending' | 'dispatched' | 'invoked';
|
|
4
|
+
/**
|
|
5
|
+
* `retry_after_at` is stored as unix seconds. Two deadlines in the same
|
|
6
|
+
* second, and two unset deadlines, are the same compare-and-swap token.
|
|
7
|
+
*/
|
|
8
|
+
export declare function sameStoredRetryDeadline(left: Date | null, right: Date | null): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Values an exclusive claim writes.
|
|
11
|
+
*
|
|
12
|
+
* The compare-and-swap pins the observed status, deadline, and
|
|
13
|
+
* `dispatch_attempts`. When the attempt count or the status changes, the
|
|
14
|
+
* requested deadline is kept, including an unset one, so a queued spawn stays
|
|
15
|
+
* due for drain and out of the pending sweep. Only a claim that would
|
|
16
|
+
* otherwise leave all three tokens untouched moves the deadline forward one
|
|
17
|
+
* second.
|
|
18
|
+
*/
|
|
19
|
+
export declare function exclusiveClaimWrite(args: {
|
|
20
|
+
observedStatus: InvocationClaimStatus;
|
|
21
|
+
observedRetryAfterAt: Date | null;
|
|
22
|
+
observedDispatchAttempts: number;
|
|
23
|
+
nextStatus: InvocationClaimStatus;
|
|
24
|
+
nextRetryAfterAt: Date | null;
|
|
25
|
+
incrementAttempts: boolean;
|
|
26
|
+
}): {
|
|
27
|
+
retryAfterAt: Date | null;
|
|
28
|
+
dispatchAttempts: number;
|
|
29
|
+
};
|
|
30
|
+
/** Match an observed `retry_after_at`, including an unset deadline. */
|
|
31
|
+
export declare function retryAfterAtMatches(observed: Date | null): SQL;
|
|
32
|
+
//# sourceMappingURL=invocationClaim.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invocationClaim.d.ts","sourceRoot":"","sources":["../../src/engine/invocationClaim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,GAAG,EAAE,MAAM,aAAa,CAAC;AAGnD,8DAA8D;AAC9D,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;AAEzE;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAGtF;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,cAAc,EAAE,qBAAqB,CAAC;IACtC,oBAAoB,EAAE,IAAI,GAAG,IAAI,CAAC;IAClC,wBAAwB,EAAE,MAAM,CAAC;IACjC,UAAU,EAAE,qBAAqB,CAAC;IAClC,gBAAgB,EAAE,IAAI,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;CAC5B,GAAG;IAAE,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAa1D;AAED,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,CAI9D"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { eq, isNull } from 'drizzle-orm';
|
|
2
|
+
import { actionInvocations } from '../db/schema.js';
|
|
3
|
+
/**
|
|
4
|
+
* `retry_after_at` is stored as unix seconds. Two deadlines in the same
|
|
5
|
+
* second, and two unset deadlines, are the same compare-and-swap token.
|
|
6
|
+
*/
|
|
7
|
+
export function sameStoredRetryDeadline(left, right) {
|
|
8
|
+
if (left == null || right == null)
|
|
9
|
+
return left == null && right == null;
|
|
10
|
+
return Math.floor(left.getTime() / 1000) === Math.floor(right.getTime() / 1000);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Values an exclusive claim writes.
|
|
14
|
+
*
|
|
15
|
+
* The compare-and-swap pins the observed status, deadline, and
|
|
16
|
+
* `dispatch_attempts`. When the attempt count or the status changes, the
|
|
17
|
+
* requested deadline is kept, including an unset one, so a queued spawn stays
|
|
18
|
+
* due for drain and out of the pending sweep. Only a claim that would
|
|
19
|
+
* otherwise leave all three tokens untouched moves the deadline forward one
|
|
20
|
+
* second.
|
|
21
|
+
*/
|
|
22
|
+
export function exclusiveClaimWrite(args) {
|
|
23
|
+
const dispatchAttempts = args.incrementAttempts
|
|
24
|
+
? args.observedDispatchAttempts + 1
|
|
25
|
+
: args.observedDispatchAttempts;
|
|
26
|
+
const moves = args.nextStatus !== args.observedStatus || dispatchAttempts !== args.observedDispatchAttempts;
|
|
27
|
+
if (moves || !sameStoredRetryDeadline(args.nextRetryAfterAt, args.observedRetryAfterAt)) {
|
|
28
|
+
return { retryAfterAt: args.nextRetryAfterAt, dispatchAttempts };
|
|
29
|
+
}
|
|
30
|
+
const base = args.observedRetryAfterAt?.getTime() ?? Date.now();
|
|
31
|
+
return {
|
|
32
|
+
retryAfterAt: new Date((Math.floor(base / 1000) + 1) * 1000),
|
|
33
|
+
dispatchAttempts,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/** Match an observed `retry_after_at`, including an unset deadline. */
|
|
37
|
+
export function retryAfterAtMatches(observed) {
|
|
38
|
+
return observed == null
|
|
39
|
+
? isNull(actionInvocations.retryAfterAt)
|
|
40
|
+
: eq(actionInvocations.retryAfterAt, observed);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=invocationClaim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invocationClaim.js","sourceRoot":"","sources":["../../src/engine/invocationClaim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAY,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAKpD;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAiB,EAAE,KAAkB;IAC3E,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC;IACxE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAClF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAOnC;IACC,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB;QAC7C,CAAC,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC;QACnC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,cAAc,IAAI,gBAAgB,KAAK,IAAI,CAAC,wBAAwB,CAAC;IAC5G,IAAI,KAAK,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACxF,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACnE,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAChE,OAAO;QACL,YAAY,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QAC5D,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,mBAAmB,CAAC,QAAqB;IACvD,OAAO,QAAQ,IAAI,IAAI;QACrB,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC;QACxC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** The engine-provisioned identity that posts inbound webhook messages; reserved at registration. */
|
|
2
|
+
export declare const WEBHOOK_AGENT_NAME = "__relay_webhook__";
|
|
1
3
|
export declare function sanitizeUserMessageMetadata(metadata: Record<string, unknown> | null | undefined): Record<string, unknown>;
|
|
2
4
|
/** Stable JSON for request identity: object keys are recursively sorted while
|
|
3
5
|
* array order and JSON scalar semantics are preserved.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageMetadata.d.ts","sourceRoot":"","sources":["../../src/engine/messageMetadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"messageMetadata.d.ts","sourceRoot":"","sources":["../../src/engine/messageMetadata.ts"],"names":[],"mappings":"AAEA,qGAAqG;AACrG,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AAEtD,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GACnD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKzB;AAcD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED,gFAAgF;AAChF,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GACnD,MAAM,CAER;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GACnD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQ1B;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EACpD,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,MAAM,CAwBR"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const INTERNAL_METADATA_PREFIX = '__relaycast_';
|
|
2
2
|
const WEBHOOK_ORIGIN = 'inbound_webhook';
|
|
3
|
-
|
|
3
|
+
/** The engine-provisioned identity that posts inbound webhook messages; reserved at registration. */
|
|
4
|
+
export const WEBHOOK_AGENT_NAME = '__relay_webhook__';
|
|
4
5
|
export function sanitizeUserMessageMetadata(metadata) {
|
|
5
6
|
if (!metadata)
|
|
6
7
|
return {};
|
|
@@ -50,7 +51,7 @@ export function displayAgentName(metadata, fallback) {
|
|
|
50
51
|
return author;
|
|
51
52
|
}
|
|
52
53
|
const legacyAuthor = metadata?.author;
|
|
53
|
-
if (fallback ===
|
|
54
|
+
if (fallback === WEBHOOK_AGENT_NAME
|
|
54
55
|
&& typeof legacyAuthor === 'string'
|
|
55
56
|
&& legacyAuthor.length > 0) {
|
|
56
57
|
return legacyAuthor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageMetadata.js","sourceRoot":"","sources":["../../src/engine/messageMetadata.ts"],"names":[],"mappings":"AAAA,MAAM,wBAAwB,GAAG,cAAc,CAAC;AAChD,MAAM,cAAc,GAAG,iBAAiB,CAAC;AACzC,MAAM,
|
|
1
|
+
{"version":3,"file":"messageMetadata.js","sourceRoot":"","sources":["../../src/engine/messageMetadata.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/node.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { FleetAgentRecoverMessage, FleetAgentRegisterMessage, FleetCapabilityAcceptance, FleetInventoryAgent, FleetNodeHeartbeatMessage, FleetNodeRegisterMessage, FleetProviderIdentity, FleetCapability, AgentRegisterReplyData } from '@relaycast/types';
|
|
2
2
|
import type { getDb } from '../db/index.js';
|
|
3
3
|
import { agents, nodes } from '../db/schema.js';
|
|
4
|
+
import type { RegistrationAdmission } from './registrationAdmission.js';
|
|
4
5
|
import type { EngineDb } from '../ports/database.js';
|
|
5
6
|
import type { PresenceTracker } from '../ports/presence.js';
|
|
6
7
|
import type { NodeConnectionRegistry } from '../ports/realtime.js';
|
|
@@ -29,9 +30,16 @@ export interface HandleNodeControlMessageArgs {
|
|
|
29
30
|
* caller drives node control without a registry-managed socket.
|
|
30
31
|
*/
|
|
31
32
|
connectionId?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Host admission for `agent.register` (see `createRegistrationAdmission`).
|
|
35
|
+
* Absent when the host has no `admit` hook.
|
|
36
|
+
*/
|
|
37
|
+
admitRegistration?: RegistrationAdmission;
|
|
32
38
|
raw: string;
|
|
33
39
|
}
|
|
34
40
|
type CapabilityLike = string | FleetCapability;
|
|
41
|
+
/** Id prefix of the implicit direct node minted for every agent; reserved. */
|
|
42
|
+
export declare const IMPLICIT_DIRECT_NODE_ID_PREFIX = "node_direct_";
|
|
35
43
|
export declare function directNodeIdForAgent(agentId: string): string;
|
|
36
44
|
export declare const SERVER_OWNED_NODE_TAG_PREFIX = "cloud:";
|
|
37
45
|
declare function publicNode(row: NodeRow, now?: number): {
|
|
@@ -82,6 +90,8 @@ export declare function createNodeToken(db: Db, workspaceId: string, data: {
|
|
|
82
90
|
idempotencyKeyHash: string;
|
|
83
91
|
requestDigest: string;
|
|
84
92
|
};
|
|
93
|
+
/** Host admission, consulted only when this enrolls a NEW device. */
|
|
94
|
+
admitRegistration?: RegistrationAdmission;
|
|
85
95
|
}): Promise<{
|
|
86
96
|
token: string;
|
|
87
97
|
id: string;
|
|
@@ -550,6 +560,7 @@ export declare function listNodeAgents(db: Db, workspaceId: string, nodeName: st
|
|
|
550
560
|
}[] | null>;
|
|
551
561
|
export declare function registerAgentViaNode(db: Db, workspaceId: string, nodeId: string, providerName: string, message: FleetAgentRegisterMessage, options?: {
|
|
552
562
|
deliveryCursorSupported?: boolean;
|
|
563
|
+
admitRegistration?: RegistrationAdmission;
|
|
553
564
|
}): Promise<AgentRegisterReplyData>;
|
|
554
565
|
/**
|
|
555
566
|
* Recover an existing agent using the authenticated node as the authority.
|
|
@@ -564,10 +575,10 @@ export declare function deregisterAgentViaNode(db: Db, workspaceId: string, node
|
|
|
564
575
|
name?: string;
|
|
565
576
|
}, deps?: InvocationCompletionDeps): Promise<{
|
|
566
577
|
name: string;
|
|
578
|
+
workspaceId: string;
|
|
567
579
|
id: string;
|
|
568
580
|
createdAt: Date;
|
|
569
581
|
metadata: Record<string, unknown> | null;
|
|
570
|
-
workspaceId: string;
|
|
571
582
|
type: string;
|
|
572
583
|
tokenHash: string;
|
|
573
584
|
previousTokenHash: string | null;
|
|
@@ -674,7 +685,6 @@ export declare function getPublicNode(db: Db, workspaceId: string, name: string)
|
|
|
674
685
|
last_heartbeat_at: string | null;
|
|
675
686
|
created_at: string;
|
|
676
687
|
} | null>;
|
|
677
|
-
/** Validate and serialize an authenticated node frame, replying only after its effects. */
|
|
678
688
|
export declare function handleNodeControlMessage(args: HandleNodeControlMessageArgs): Promise<void>;
|
|
679
689
|
export {};
|
|
680
690
|
//# sourceMappingURL=node.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/engine/node.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAEzB,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACvB,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAqB,MAAM,EAA8D,KAAK,
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/engine/node.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/node.js
CHANGED
|
@@ -2,9 +2,11 @@ import { z } from 'zod';
|
|
|
2
2
|
import { invalidateChannelCache } from './cache.js';
|
|
3
3
|
import { and, asc, eq, exists, gt, gte, inArray, isNotNull, isNull, lt, lte, ne, notExists, or, sql } from 'drizzle-orm';
|
|
4
4
|
import { FLEET_ACTION_CALLER_METADATA_KEY, FLEET_ACTION_CALLER_METADATA_VERSION, FLEET_DELIVERY_CURSOR_CAPABILITY, NODE_REGISTRATION_CONTRACT_V1, parseFleetBrokerToRelaycastMessage, } from '@relaycast/types';
|
|
5
|
-
import { actionInvocations, agents, agentNodeBindings, channelMembers, channels, nodeProviders, nodes } from '../db/schema.js';
|
|
5
|
+
import { actionInvocations, agents, agentNodeBindings, channelMembers, channels, nodeProviders, nodes, workspaces } from '../db/schema.js';
|
|
6
|
+
import { isWorkspaceExpired, WORKSPACE_EXPIRED_CODE, WORKSPACE_EXPIRED_MESSAGE } from '../auth/workspaceExpiry.js';
|
|
6
7
|
import { randomHex, sha256Hex } from '../lib/crypto.js';
|
|
7
8
|
import { codedError } from '../lib/httpError.js';
|
|
9
|
+
import { AdmissionDeniedError } from '../lib/admissionError.js';
|
|
8
10
|
import { acceptTaskInvocation, completeTaskInvocation } from './taskInvocation.js';
|
|
9
11
|
import { databaseConstraintKind, runAtomic, runAtomicWrites } from '../ports/database.js';
|
|
10
12
|
import { retryD1Write } from '../lib/d1Retry.js';
|
|
@@ -23,8 +25,10 @@ function resolveProviderIdentity(message, connectionId) {
|
|
|
23
25
|
return message.provider;
|
|
24
26
|
return { name: DEFAULT_PROVIDER_NAME, instance_id: connectionId ?? generateId() };
|
|
25
27
|
}
|
|
28
|
+
/** Id prefix of the implicit direct node minted for every agent; reserved. */
|
|
29
|
+
export const IMPLICIT_DIRECT_NODE_ID_PREFIX = 'node_direct_';
|
|
26
30
|
export function directNodeIdForAgent(agentId) {
|
|
27
|
-
return
|
|
31
|
+
return `${IMPLICIT_DIRECT_NODE_ID_PREFIX}${agentId}`;
|
|
28
32
|
}
|
|
29
33
|
function directNodeNameForAgent(agentId) {
|
|
30
34
|
return `direct-${agentId}`;
|
|
@@ -314,6 +318,14 @@ export async function createNodeToken(db, workspaceId, data, authorization = {})
|
|
|
314
318
|
if (!name || name.startsWith('#')) {
|
|
315
319
|
throw codedError('Node name must be non-empty and cannot begin with "#"', 'invalid_node_name', 400);
|
|
316
320
|
}
|
|
321
|
+
// `node_direct_<agent id>` is the engine-minted implicit direct node, which
|
|
322
|
+
// the device count excludes. The namespace is reserved so a host cannot
|
|
323
|
+
// enroll a node that is miscounted as implicit.
|
|
324
|
+
if (data.node_id !== undefined
|
|
325
|
+
&& authorization.directAgentId === undefined
|
|
326
|
+
&& data.node_id.startsWith(IMPLICIT_DIRECT_NODE_ID_PREFIX)) {
|
|
327
|
+
throw codedError(`Node ids beginning with "${IMPLICIT_DIRECT_NODE_ID_PREFIX}" are reserved for implicit direct nodes`, 'reserved_node_id', 400);
|
|
328
|
+
}
|
|
317
329
|
// Enrollment keys on node_id (the stable identity) when supplied; the name
|
|
318
330
|
// lookup is only a fallback for callers without a stable id. A name held by
|
|
319
331
|
// a *different* node id is a conflict — mirroring node.register — never a
|
|
@@ -345,6 +357,13 @@ export async function createNodeToken(db, workspaceId, data, authorization = {})
|
|
|
345
357
|
if (role === 'direct' && maxAgents !== 1) {
|
|
346
358
|
throw codedError('Direct nodes can bind at most one agent', 'direct_node_capacity_exceeded', 400);
|
|
347
359
|
}
|
|
360
|
+
// Only a NEW device is admitted. Rotating or re-enrolling an established
|
|
361
|
+
// row never is (its role may change, but it was admitted when it was
|
|
362
|
+
// enrolled), and an agent's implicit direct node — minted on its behalf,
|
|
363
|
+
// never enrolled by a host — is its own WebSocket, not a device.
|
|
364
|
+
if (!existing && authorization.directAgentId === undefined && authorization.admitRegistration) {
|
|
365
|
+
await authorization.admitRegistration('register_device');
|
|
366
|
+
}
|
|
348
367
|
if (existing) {
|
|
349
368
|
const hasPresentedTokenProof = authorization.expectedTokenHash !== undefined;
|
|
350
369
|
const authorizedDirectNode = authorization.directAgentId !== undefined
|
|
@@ -1610,6 +1629,16 @@ export async function listNodeAgents(db, workspaceId, nodeName) {
|
|
|
1610
1629
|
export async function registerAgentViaNode(db, workspaceId, nodeId, providerName, message, options = {}) {
|
|
1611
1630
|
assertRegistrableAgentName(message.name);
|
|
1612
1631
|
const wantsAutoJoin = message.auto_join_general !== false;
|
|
1632
|
+
if (options.admitRegistration) {
|
|
1633
|
+
// Only a NEW identity is admitted: an established name is answered by the
|
|
1634
|
+
// conflict below, never by a denial.
|
|
1635
|
+
const [established] = await db
|
|
1636
|
+
.select({ id: agents.id })
|
|
1637
|
+
.from(agents)
|
|
1638
|
+
.where(and(eq(agents.workspaceId, workspaceId), eq(agents.name, message.name)));
|
|
1639
|
+
if (!established)
|
|
1640
|
+
await options.admitRegistration('register_agent');
|
|
1641
|
+
}
|
|
1613
1642
|
const registered = await runAtomic(db, async (tx) => {
|
|
1614
1643
|
// Every awaited statement is a separate D1 round-trip — and this path runs
|
|
1615
1644
|
// under the node-control liveness deadline whose misses surface as
|
|
@@ -2146,6 +2175,7 @@ export async function reconcileInventory(db, registry, workspaceId, nodeId, prov
|
|
|
2146
2175
|
spawnReservedAt: actionInvocations.spawnReservedAt,
|
|
2147
2176
|
attemptedNodeIds: actionInvocations.attemptedNodeIds,
|
|
2148
2177
|
dispatchAttempts: actionInvocations.dispatchAttempts,
|
|
2178
|
+
retryAfterAt: actionInvocations.retryAfterAt,
|
|
2149
2179
|
})
|
|
2150
2180
|
.from(actionInvocations)
|
|
2151
2181
|
.where(and(eq(actionInvocations.workspaceId, workspaceId), eq(actionInvocations.dispatchedNodeId, nodeId), eq(actionInvocations.dispatchedProvider, providerName), inArray(actionInvocations.status, ['pending', 'dispatched'])));
|
|
@@ -2534,6 +2564,30 @@ function sendControl(socket, payload) {
|
|
|
2534
2564
|
}
|
|
2535
2565
|
}
|
|
2536
2566
|
/** Validate and serialize an authenticated node frame, replying only after its effects. */
|
|
2567
|
+
/**
|
|
2568
|
+
* A node socket authenticates once, at upgrade. A workspace deleted (or past
|
|
2569
|
+
* its deadline) afterwards keeps that socket, and a large workspace is drained
|
|
2570
|
+
* in steps with its nodes last, so frames that create identity must re-check:
|
|
2571
|
+
* otherwise a connected node registers agents into a workspace being deleted.
|
|
2572
|
+
*/
|
|
2573
|
+
/** Control frames still admitted after the workspace expires (see the gate below). */
|
|
2574
|
+
const SETTLING_CONTROL_FRAMES = new Set([
|
|
2575
|
+
'action.accept',
|
|
2576
|
+
'action.result',
|
|
2577
|
+
'delivery.ack',
|
|
2578
|
+
'node.deregister',
|
|
2579
|
+
'agent.deregister',
|
|
2580
|
+
]);
|
|
2581
|
+
async function assertWorkspaceUnexpired(db, workspaceId) {
|
|
2582
|
+
const [row] = await db
|
|
2583
|
+
.select({ expiresAt: workspaces.expiresAt })
|
|
2584
|
+
.from(workspaces)
|
|
2585
|
+
.where(eq(workspaces.id, workspaceId))
|
|
2586
|
+
.limit(1);
|
|
2587
|
+
if (!row || isWorkspaceExpired(row)) {
|
|
2588
|
+
throw codedError(WORKSPACE_EXPIRED_MESSAGE, WORKSPACE_EXPIRED_CODE, 401);
|
|
2589
|
+
}
|
|
2590
|
+
}
|
|
2537
2591
|
export async function handleNodeControlMessage(args) {
|
|
2538
2592
|
let message;
|
|
2539
2593
|
try {
|
|
@@ -2573,6 +2627,12 @@ export async function handleNodeControlMessage(args) {
|
|
|
2573
2627
|
// check, the provider-row upsert, or the aggregate recompute.
|
|
2574
2628
|
return serializeNodeOp(args.workspaceId, args.nodeId, async () => {
|
|
2575
2629
|
try {
|
|
2630
|
+
// A socket outlives its workspace's deletion, and every other frame writes
|
|
2631
|
+
// durable state (a heartbeat can insert provider and action rows). Only
|
|
2632
|
+
// frames that settle work already in flight or tear identity down pass.
|
|
2633
|
+
if (!SETTLING_CONTROL_FRAMES.has(message.type)) {
|
|
2634
|
+
await assertWorkspaceUnexpired(args.db, args.workspaceId);
|
|
2635
|
+
}
|
|
2576
2636
|
switch (message.type) {
|
|
2577
2637
|
case 'node.register': {
|
|
2578
2638
|
const provider = resolveProviderIdentity(message, args.connectionId);
|
|
@@ -2705,7 +2765,10 @@ export async function handleNodeControlMessage(args) {
|
|
|
2705
2765
|
return;
|
|
2706
2766
|
}
|
|
2707
2767
|
case 'agent.register': {
|
|
2708
|
-
const registered = await registerAgentViaNode(args.db, args.workspaceId, args.nodeId, frameProviderName, message, {
|
|
2768
|
+
const registered = await registerAgentViaNode(args.db, args.workspaceId, args.nodeId, frameProviderName, message, {
|
|
2769
|
+
deliveryCursorSupported: supportsProviderDeliveryReadiness(args.registry),
|
|
2770
|
+
admitRegistration: args.admitRegistration,
|
|
2771
|
+
});
|
|
2709
2772
|
// The relay broker's node_control client awaits a `reply` frame keyed by
|
|
2710
2773
|
// the request id (it matches `pending_agent_registrations` by `reply.id`
|
|
2711
2774
|
// and parses `data` as {agent_id, token, name} with deny_unknown_fields).
|
|
@@ -2732,6 +2795,11 @@ export async function handleNodeControlMessage(args) {
|
|
|
2732
2795
|
}
|
|
2733
2796
|
case 'agent.recover': {
|
|
2734
2797
|
const recovered = await recoverAgentViaNode(args.db, args.workspaceId, args.nodeId, frameProviderName, message, { deliveryCursorSupported: supportsProviderDeliveryReadiness(args.registry) });
|
|
2798
|
+
// Inventory only clears a hold for an agent it newly routes. A
|
|
2799
|
+
// presence-only disconnect leaves the binding active, so the next
|
|
2800
|
+
// sync would keep the hold. Recovery is the node putting that agent
|
|
2801
|
+
// back, and node liveness should count them without an HTTP heartbeat.
|
|
2802
|
+
await args.presence?.clearExplicitDisconnect?.(args.workspaceId, recovered.agent_id);
|
|
2735
2803
|
const replySent = sendControl(args.socket, {
|
|
2736
2804
|
v: 1,
|
|
2737
2805
|
id: requestId(message),
|
|
@@ -2755,6 +2823,13 @@ export async function handleNodeControlMessage(args) {
|
|
|
2755
2823
|
return;
|
|
2756
2824
|
case 'inventory.sync': {
|
|
2757
2825
|
const result = await reconcileInventory(args.db, args.registry, args.workspaceId, args.nodeId, frameProviderName, message.agents, args.completionDeps);
|
|
2826
|
+
// An agent the node had dropped and is routing again is a new hosting
|
|
2827
|
+
// episode. Clear a presence-only disconnect so node liveness can count
|
|
2828
|
+
// them without an HTTP heartbeat. An agent the snapshot already
|
|
2829
|
+
// routed keeps the hold: still being listed is not recovery.
|
|
2830
|
+
if (args.presence?.clearExplicitDisconnect && result.newlyRoutedAgentIds.length > 0) {
|
|
2831
|
+
await Promise.all(result.newlyRoutedAgentIds.map((agentId) => args.presence.clearExplicitDisconnect(args.workspaceId, agentId)));
|
|
2832
|
+
}
|
|
2758
2833
|
const replySent = sendControl(args.socket, {
|
|
2759
2834
|
v: 1,
|
|
2760
2835
|
id: requestId(message),
|
|
@@ -2836,7 +2911,8 @@ export async function handleNodeControlMessage(args) {
|
|
|
2836
2911
|
}
|
|
2837
2912
|
catch (err) {
|
|
2838
2913
|
const error = err;
|
|
2839
|
-
const
|
|
2914
|
+
const denial = err instanceof AdmissionDeniedError ? err.denial : null;
|
|
2915
|
+
const code = denial?.code ?? error.code ?? 'node_control_failed';
|
|
2840
2916
|
// The rejection reaches the client only as the error frame below. Log it so
|
|
2841
2917
|
// it is not invisible server-side: a rejected node.register/node.heartbeat
|
|
2842
2918
|
// (e.g. node_name_conflict, a UNIQUE violation) otherwise leaves a node
|
|
@@ -2850,7 +2926,10 @@ export async function handleNodeControlMessage(args) {
|
|
|
2850
2926
|
provider: frameProviderName,
|
|
2851
2927
|
message: error.message,
|
|
2852
2928
|
});
|
|
2929
|
+
// An admission denial carries the host's details, as on the HTTP error;
|
|
2930
|
+
// the frame's own fields always win over them.
|
|
2853
2931
|
sendControl(args.socket, {
|
|
2932
|
+
...(denial?.details ?? {}),
|
|
2854
2933
|
v: 1,
|
|
2855
2934
|
id: requestId(message),
|
|
2856
2935
|
type: 'error',
|