wake-bridge 0.9.0-preview.8

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.
Files changed (115) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +222 -0
  3. package/dist/src/adapters/botlingknows.d.ts +42 -0
  4. package/dist/src/adapters/botlingknows.js +141 -0
  5. package/dist/src/adapters/botlingknows.js.map +1 -0
  6. package/dist/src/adapters/group-chat.d.ts +43 -0
  7. package/dist/src/adapters/group-chat.js +120 -0
  8. package/dist/src/adapters/group-chat.js.map +1 -0
  9. package/dist/src/cli.d.ts +2 -0
  10. package/dist/src/cli.js +637 -0
  11. package/dist/src/cli.js.map +1 -0
  12. package/dist/src/connector-catalog.d.ts +17 -0
  13. package/dist/src/connector-catalog.js +43 -0
  14. package/dist/src/connector-catalog.js.map +1 -0
  15. package/dist/src/connectors/botlingknows-mcp.d.ts +15 -0
  16. package/dist/src/connectors/botlingknows-mcp.js +130 -0
  17. package/dist/src/connectors/botlingknows-mcp.js.map +1 -0
  18. package/dist/src/connectors/group-chat-http.d.ts +17 -0
  19. package/dist/src/connectors/group-chat-http.js +226 -0
  20. package/dist/src/connectors/group-chat-http.js.map +1 -0
  21. package/dist/src/connectors/mcp-http-client.d.ts +11 -0
  22. package/dist/src/connectors/mcp-http-client.js +108 -0
  23. package/dist/src/connectors/mcp-http-client.js.map +1 -0
  24. package/dist/src/core.d.ts +170 -0
  25. package/dist/src/core.js +1720 -0
  26. package/dist/src/core.js.map +1 -0
  27. package/dist/src/daemon.d.ts +31 -0
  28. package/dist/src/daemon.js +605 -0
  29. package/dist/src/daemon.js.map +1 -0
  30. package/dist/src/db.d.ts +31 -0
  31. package/dist/src/db.js +513 -0
  32. package/dist/src/db.js.map +1 -0
  33. package/dist/src/event-sdk.d.ts +43 -0
  34. package/dist/src/event-sdk.js +152 -0
  35. package/dist/src/event-sdk.js.map +1 -0
  36. package/dist/src/host-adapter-registry.d.ts +21 -0
  37. package/dist/src/host-adapter-registry.js +59 -0
  38. package/dist/src/host-adapter-registry.js.map +1 -0
  39. package/dist/src/index.d.ts +5 -0
  40. package/dist/src/index.js +6 -0
  41. package/dist/src/index.js.map +1 -0
  42. package/dist/src/instance-config.d.ts +46 -0
  43. package/dist/src/instance-config.js +176 -0
  44. package/dist/src/instance-config.js.map +1 -0
  45. package/dist/src/mcp.d.ts +51 -0
  46. package/dist/src/mcp.js +728 -0
  47. package/dist/src/mcp.js.map +1 -0
  48. package/dist/src/operator-control.d.ts +82 -0
  49. package/dist/src/operator-control.js +220 -0
  50. package/dist/src/operator-control.js.map +1 -0
  51. package/dist/src/out-of-process-host.d.ts +37 -0
  52. package/dist/src/out-of-process-host.js +196 -0
  53. package/dist/src/out-of-process-host.js.map +1 -0
  54. package/dist/src/policy-control.d.ts +3 -0
  55. package/dist/src/policy-control.js +120 -0
  56. package/dist/src/policy-control.js.map +1 -0
  57. package/dist/src/release-lifecycle.d.ts +98 -0
  58. package/dist/src/release-lifecycle.js +378 -0
  59. package/dist/src/release-lifecycle.js.map +1 -0
  60. package/dist/src/sdk-error.d.ts +6 -0
  61. package/dist/src/sdk-error.js +12 -0
  62. package/dist/src/sdk-error.js.map +1 -0
  63. package/dist/src/source-adapter.d.ts +32 -0
  64. package/dist/src/source-adapter.js +164 -0
  65. package/dist/src/source-adapter.js.map +1 -0
  66. package/dist/src/source-connector.d.ts +50 -0
  67. package/dist/src/source-connector.js +358 -0
  68. package/dist/src/source-connector.js.map +1 -0
  69. package/dist/src/source-control-client.d.ts +38 -0
  70. package/dist/src/source-control-client.js +61 -0
  71. package/dist/src/source-control-client.js.map +1 -0
  72. package/dist/src/source-ingress.d.ts +16 -0
  73. package/dist/src/source-ingress.js +47 -0
  74. package/dist/src/source-ingress.js.map +1 -0
  75. package/dist/src/source-sdk.d.ts +6 -0
  76. package/dist/src/source-sdk.js +53 -0
  77. package/dist/src/source-sdk.js.map +1 -0
  78. package/dist/src/transport-sdk.d.ts +102 -0
  79. package/dist/src/transport-sdk.js +222 -0
  80. package/dist/src/transport-sdk.js.map +1 -0
  81. package/dist/src/transport.d.ts +23 -0
  82. package/dist/src/transport.js +71 -0
  83. package/dist/src/transport.js.map +1 -0
  84. package/dist/src/types.d.ts +522 -0
  85. package/dist/src/types.js +2 -0
  86. package/dist/src/types.js.map +1 -0
  87. package/dist/src/util.d.ts +26 -0
  88. package/dist/src/util.js +136 -0
  89. package/dist/src/util.js.map +1 -0
  90. package/dist/src/version.d.ts +1 -0
  91. package/dist/src/version.js +2 -0
  92. package/dist/src/version.js.map +1 -0
  93. package/docs/adapters/botlingknows.md +40 -0
  94. package/docs/adapters/gmail-planned.md +16 -0
  95. package/docs/adapters/group-chat.md +126 -0
  96. package/docs/operations/connector-catalog.md +40 -0
  97. package/docs/operations/operator-control.md +83 -0
  98. package/docs/operations/out-of-process-host-adapter.md +150 -0
  99. package/docs/operations/policies.md +106 -0
  100. package/docs/operations/public-sdk.md +87 -0
  101. package/docs/operations/release-lifecycle.md +154 -0
  102. package/docs/operations/source-connectors.md +163 -0
  103. package/docs/operations/source-ingress.md +108 -0
  104. package/docs/operations/templates/botlingknows-connector.env.example +5 -0
  105. package/docs/operations/templates/sources.json.example +15 -0
  106. package/docs/quickstart.md +143 -0
  107. package/docs/releases/0.9.0-preview.8.md +44 -0
  108. package/docs/verification.md +19 -0
  109. package/examples/policies/botlingknows-conservative.json +44 -0
  110. package/examples/reference-host-adapter/README.md +41 -0
  111. package/examples/reference-host-adapter/adapter.mjs +173 -0
  112. package/examples/reference-host-adapter/host-adapters.json.example +26 -0
  113. package/package.json +94 -0
  114. package/schemas/event-v1.schema.json +26 -0
  115. package/schemas/policy-v1.schema.json +66 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { type WakeBridge } from "./core.js";
2
+ import type { BatchState, SourceSupervisorStatus, WakeBatch } from "./types.js";
3
+ import type { HostAdapterManifest } from "./transport-sdk.js";
4
+ export type OperatorHealth = "healthy" | "degraded" | "needs_attention";
5
+ export interface OperatorBatchIssue {
6
+ batch_id: string;
7
+ state: "dead_letter" | "needs_attention";
8
+ attention_channel: string;
9
+ attempt: number;
10
+ updated_at: string;
11
+ error_class: string | null;
12
+ }
13
+ export interface OperatorStatus {
14
+ schema_version: 1;
15
+ generated_at: string;
16
+ ok: boolean;
17
+ health: OperatorHealth;
18
+ attention_required: boolean;
19
+ instance: {
20
+ instance_id: string;
21
+ owner_id: string;
22
+ timezone: string;
23
+ };
24
+ queue: {
25
+ counts: Record<BatchState, number>;
26
+ due: number;
27
+ expired_dispatch_leases: number;
28
+ failed_attempts_by_class: Record<string, number>;
29
+ dead_letters: OperatorBatchIssue[];
30
+ needs_attention: OperatorBatchIssue[];
31
+ };
32
+ hosts: {
33
+ endpoints: {
34
+ total: number;
35
+ live: number;
36
+ expired: number;
37
+ };
38
+ bindings: {
39
+ total: number;
40
+ live: number;
41
+ stale: number;
42
+ };
43
+ channels: Array<{
44
+ attention_channel: string;
45
+ endpoint_id: string;
46
+ generation: number;
47
+ host_kind: string | null;
48
+ lease_expires_at: string | null;
49
+ live: boolean;
50
+ }>;
51
+ adapters: Array<Pick<HostAdapterManifest, "adapter_kind" | "adapter_version" | "support_tier" | "host_kinds">>;
52
+ };
53
+ sources: {
54
+ runtime_observed: boolean;
55
+ counts: Record<"healthy" | "backoff" | "needs_attention" | "stopped" | "other", number>;
56
+ items: Array<{
57
+ source: string;
58
+ enabled: boolean;
59
+ runtime_state: string | null;
60
+ last_error_class: string | null;
61
+ consecutive_failures: number;
62
+ checkpoint_revision: number;
63
+ checkpoint_updated_at: string | null;
64
+ }>;
65
+ };
66
+ }
67
+ export interface RetryDeadLetterInput {
68
+ batch_id: string;
69
+ expected_attempt: number;
70
+ reason: string;
71
+ }
72
+ export interface RetryDeadLetterResult {
73
+ retried: boolean;
74
+ batch: WakeBatch;
75
+ }
76
+ /** Secret-free read model for operators. It never recovers leases or mutates queue state. */
77
+ export declare function operatorStatus(bridge: WakeBridge, options?: {
78
+ sources?: SourceSupervisorStatus[];
79
+ host_adapters?: HostAdapterManifest[];
80
+ }): OperatorStatus;
81
+ /** Reopen one permanent transport failure without dispatching it in this call. */
82
+ export declare function retryDeadLetter(bridge: WakeBridge, input: RetryDeadLetterInput): RetryDeadLetterResult;
@@ -0,0 +1,220 @@
1
+ import { BridgeError } from "./core.js";
2
+ import { sqlValue } from "./db.js";
3
+ const BATCH_STATES = [
4
+ "pending",
5
+ "waiting_for_endpoint",
6
+ "waiting_for_waiter",
7
+ "dispatching",
8
+ "retry_wait",
9
+ "dispatched",
10
+ "seen",
11
+ "cancelled",
12
+ "needs_attention",
13
+ "dead_letter",
14
+ ];
15
+ const RETRY_REASON = /^[^\u0000-\u001f\u007f]{1,200}$/u;
16
+ const SAFE_ERROR_CLASS = /^[A-Za-z][A-Za-z0-9_.:-]{0,127}$/u;
17
+ function groupedCounts(rows, key, value) {
18
+ return Object.fromEntries(rows.map((row) => [String(row[key]), Number(row[value])]));
19
+ }
20
+ function safeErrorClass(value) {
21
+ if (value == null)
22
+ return null;
23
+ const candidate = String(value);
24
+ return SAFE_ERROR_CLASS.test(candidate) ? candidate : "invalid_error_class";
25
+ }
26
+ function offlineSources(bridge) {
27
+ return bridge.db.query(`
28
+ SELECT c.source, c.revision, c.updated_at, COALESCE(sc.enabled, 0) AS enabled
29
+ FROM source_checkpoints c
30
+ LEFT JOIN source_controls sc ON sc.instance_id=c.instance_id AND sc.source=c.source
31
+ WHERE c.instance_id=${sqlValue(bridge.config.instance_id)}
32
+ UNION
33
+ SELECT sc.source, 0 AS revision, NULL AS updated_at, sc.enabled
34
+ FROM source_controls sc
35
+ WHERE sc.instance_id=${sqlValue(bridge.config.instance_id)}
36
+ AND NOT EXISTS (
37
+ SELECT 1 FROM source_checkpoints c WHERE c.instance_id=sc.instance_id AND c.source=sc.source
38
+ )
39
+ ORDER BY source;
40
+ `).map((row) => ({
41
+ source: String(row.source),
42
+ enabled: Boolean(Number(row.enabled)),
43
+ runtime_state: null,
44
+ last_error_class: null,
45
+ consecutive_failures: 0,
46
+ checkpoint_revision: Number(row.revision),
47
+ checkpoint_updated_at: row.updated_at == null ? null : String(row.updated_at),
48
+ }));
49
+ }
50
+ function sourceItems(bridge, sources) {
51
+ if (!sources)
52
+ return offlineSources(bridge);
53
+ const checkpoints = new Map(offlineSources(bridge).map((source) => [source.source, source]));
54
+ return sources.map((source) => ({
55
+ source: source.source,
56
+ enabled: source.enabled,
57
+ runtime_state: source.state,
58
+ last_error_class: safeErrorClass(source.last_error_class),
59
+ consecutive_failures: source.consecutive_failures,
60
+ checkpoint_revision: source.checkpoint_revision,
61
+ checkpoint_updated_at: checkpoints.get(source.source)?.checkpoint_updated_at ?? null,
62
+ }));
63
+ }
64
+ /** Secret-free read model for operators. It never recovers leases or mutates queue state. */
65
+ export function operatorStatus(bridge, options = {}) {
66
+ const now = bridge.nowIso();
67
+ const batchCounts = groupedCounts(bridge.db.query(`
68
+ SELECT state, COUNT(*) AS count FROM batches
69
+ WHERE instance_id=${sqlValue(bridge.config.instance_id)} GROUP BY state;
70
+ `), "state", "count");
71
+ const counts = Object.fromEntries(BATCH_STATES.map((state) => [state, batchCounts[state] ?? 0]));
72
+ const due = Number(bridge.db.query(`
73
+ SELECT COUNT(*) AS count FROM batches
74
+ WHERE instance_id=${sqlValue(bridge.config.instance_id)}
75
+ AND state IN ('pending','waiting_for_endpoint','retry_wait')
76
+ AND not_before<=${sqlValue(now)}
77
+ AND (state='waiting_for_endpoint' OR deadline IS NULL OR deadline<=${sqlValue(now)});
78
+ `)[0]?.count ?? 0);
79
+ const expiredDispatchLeases = Number(bridge.db.query(`
80
+ SELECT COUNT(*) AS count FROM batches
81
+ WHERE instance_id=${sqlValue(bridge.config.instance_id)} AND state='dispatching'
82
+ AND lease_expires_at IS NOT NULL AND lease_expires_at<=${sqlValue(now)};
83
+ `)[0]?.count ?? 0);
84
+ const failureClasses = groupedCounts(bridge.db.query(`
85
+ SELECT safe_error_class AS error_class, COUNT(*) AS count FROM (
86
+ SELECT CASE
87
+ WHEN a.error_class IS NULL THEN 'unknown'
88
+ WHEN LENGTH(a.error_class) BETWEEN 1 AND 128
89
+ AND SUBSTR(a.error_class, 1, 1) GLOB '[A-Za-z]'
90
+ AND a.error_class NOT GLOB '*[^A-Za-z0-9_.:-]*'
91
+ THEN a.error_class
92
+ ELSE 'invalid_error_class'
93
+ END AS safe_error_class
94
+ FROM outbox_attempts a JOIN batches b ON b.id=a.batch_id
95
+ WHERE b.instance_id=${sqlValue(bridge.config.instance_id)} AND a.state='failed'
96
+ ) GROUP BY safe_error_class ORDER BY count DESC, safe_error_class ASC;
97
+ `), "error_class", "count");
98
+ const issues = bridge.db.query(`
99
+ SELECT id, state, attention_channel, attempt, updated_at, last_error
100
+ FROM batches WHERE instance_id=${sqlValue(bridge.config.instance_id)}
101
+ AND state IN ('dead_letter','needs_attention')
102
+ ORDER BY updated_at ASC, id ASC LIMIT 100;
103
+ `).map((row) => ({
104
+ batch_id: String(row.id),
105
+ state: String(row.state),
106
+ attention_channel: String(row.attention_channel),
107
+ attempt: Number(row.attempt),
108
+ updated_at: String(row.updated_at),
109
+ error_class: safeErrorClass(row.last_error),
110
+ }));
111
+ const endpoints = bridge.listEndpoints();
112
+ const bindings = bridge.listBindings();
113
+ const endpointById = new Map(endpoints.map((endpoint) => [endpoint.id, endpoint]));
114
+ const channels = bindings.map((binding) => {
115
+ const endpoint = endpointById.get(binding.endpoint_id);
116
+ const live = Boolean(endpoint && endpoint.lease_expires_at > now);
117
+ return {
118
+ attention_channel: binding.attention_channel,
119
+ endpoint_id: binding.endpoint_id,
120
+ generation: binding.generation,
121
+ host_kind: endpoint?.host_kind ?? null,
122
+ lease_expires_at: endpoint?.lease_expires_at ?? null,
123
+ live,
124
+ };
125
+ });
126
+ const liveEndpoints = endpoints.filter((endpoint) => endpoint.lease_expires_at > now).length;
127
+ const items = sourceItems(bridge, options.sources);
128
+ const sourceCounts = { healthy: 0, backoff: 0, needs_attention: 0, stopped: 0, other: 0 };
129
+ for (const source of items) {
130
+ const state = source.runtime_state;
131
+ if (state === "healthy" || state === "backoff" || state === "needs_attention" || state === "stopped")
132
+ sourceCounts[state] += 1;
133
+ else
134
+ sourceCounts.other += 1;
135
+ }
136
+ const attentionRequired = counts.dead_letter > 0 || counts.needs_attention > 0
137
+ || expiredDispatchLeases > 0 || sourceCounts.needs_attention > 0;
138
+ const degraded = counts.waiting_for_endpoint > 0 || counts.retry_wait > 0
139
+ || sourceCounts.backoff > 0 || channels.some((channel) => !channel.live);
140
+ const health = attentionRequired ? "needs_attention" : degraded ? "degraded" : "healthy";
141
+ return {
142
+ schema_version: 1,
143
+ generated_at: now,
144
+ ok: !attentionRequired,
145
+ health,
146
+ attention_required: attentionRequired,
147
+ instance: {
148
+ instance_id: bridge.config.instance_id,
149
+ owner_id: bridge.config.owner_id,
150
+ timezone: bridge.config.timezone ?? "UTC",
151
+ },
152
+ queue: {
153
+ counts,
154
+ due,
155
+ expired_dispatch_leases: expiredDispatchLeases,
156
+ failed_attempts_by_class: failureClasses,
157
+ dead_letters: issues.filter((issue) => issue.state === "dead_letter"),
158
+ needs_attention: issues.filter((issue) => issue.state === "needs_attention"),
159
+ },
160
+ hosts: {
161
+ endpoints: { total: endpoints.length, live: liveEndpoints, expired: endpoints.length - liveEndpoints },
162
+ bindings: { total: bindings.length, live: channels.filter((channel) => channel.live).length, stale: channels.filter((channel) => !channel.live).length },
163
+ channels,
164
+ adapters: (options.host_adapters ?? []).map((adapter) => ({
165
+ adapter_kind: adapter.adapter_kind,
166
+ adapter_version: adapter.adapter_version,
167
+ support_tier: adapter.support_tier,
168
+ host_kinds: [...adapter.host_kinds],
169
+ })),
170
+ },
171
+ sources: { runtime_observed: options.sources !== undefined, counts: sourceCounts, items },
172
+ };
173
+ }
174
+ /** Reopen one permanent transport failure without dispatching it in this call. */
175
+ export function retryDeadLetter(bridge, input) {
176
+ if (!input?.batch_id || input.batch_id.length > 200 || !Number.isSafeInteger(input.expected_attempt) || input.expected_attempt < 1) {
177
+ throw new BridgeError("batch_id and expected_attempt are required", "invalid_arguments", 400);
178
+ }
179
+ const reason = input.reason?.trim();
180
+ if (!reason || !RETRY_REASON.test(reason)) {
181
+ throw new BridgeError("retry reason must be 1-200 printable characters", "invalid_arguments", 400);
182
+ }
183
+ const before = bridge.getBatch(input.batch_id);
184
+ if (!before)
185
+ throw new BridgeError("batch not found", "batch_not_found", 404);
186
+ if (before.state === "retry_wait" && before.attempt === input.expected_attempt && before.last_error === "operator_retry") {
187
+ return { retried: false, batch: before };
188
+ }
189
+ if (before.state !== "dead_letter") {
190
+ throw new BridgeError("only a dead-letter batch can be retried", "batch_not_dead_letter", 409);
191
+ }
192
+ if (before.attempt !== input.expected_attempt) {
193
+ throw new BridgeError("batch attempt changed; inspect status before retrying", "batch_attempt_conflict", 409);
194
+ }
195
+ if (!before.claim_ids.length || before.claim_ids.some((claimId) => bridge.getClaim(claimId)?.state !== "batched")) {
196
+ throw new BridgeError("dead-letter batch claims are no longer retryable", "dead_letter_not_retryable", 409);
197
+ }
198
+ const now = bridge.nowIso();
199
+ const changed = bridge.db.query([
200
+ "BEGIN IMMEDIATE;",
201
+ `UPDATE batches SET state='retry_wait', not_before=${sqlValue(now)}, binding_generation=NULL,
202
+ lease_expires_at=NULL, updated_at=${sqlValue(now)}, last_error='operator_retry'
203
+ WHERE id=${sqlValue(input.batch_id)} AND instance_id=${sqlValue(bridge.config.instance_id)}
204
+ AND state='dead_letter' AND attempt=${input.expected_attempt}
205
+ RETURNING id;`,
206
+ `INSERT INTO batch_transitions(batch_id, from_state, to_state, reason, at)
207
+ SELECT ${sqlValue(input.batch_id)}, 'dead_letter', 'retry_wait', ${sqlValue(`operator_retry:${reason}`)}, ${sqlValue(now)}
208
+ WHERE changes()>0;`,
209
+ "COMMIT;",
210
+ ].join("\n"));
211
+ const after = bridge.getBatch(input.batch_id);
212
+ if (!changed.length && after?.state === "retry_wait" && after.attempt === input.expected_attempt && after.last_error === "operator_retry") {
213
+ return { retried: false, batch: after };
214
+ }
215
+ if (!after || after.state !== "retry_wait" || after.attempt !== input.expected_attempt || after.last_error !== "operator_retry") {
216
+ throw new BridgeError("dead-letter batch changed concurrently", "batch_attempt_conflict", 409);
217
+ }
218
+ return { retried: true, batch: after };
219
+ }
220
+ //# sourceMappingURL=operator-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator-control.js","sourceRoot":"","sources":["../../src/operator-control.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { HostBootstrapCredential } from "./host-adapter-registry.js";
2
+ import { type HostAdapter, type HostAdapterManifest, type TransportReceiptUpperBound } from "./transport-sdk.js";
3
+ import type { EndpointCapabilities, EndpointRegistration, TransportContext, TransportResult } from "./types.js";
4
+ export interface OutOfProcessHostReference {
5
+ id: string;
6
+ adapter_kind: string;
7
+ adapter_version: string;
8
+ host_kind: string;
9
+ tested_host_versions: string[];
10
+ token_env: string;
11
+ attention_channels: string[];
12
+ capabilities: EndpointCapabilities;
13
+ receipt_upper_bound: Exclude<TransportReceiptUpperBound, "agent_completed">;
14
+ timeout_ms?: number;
15
+ }
16
+ export interface OutOfProcessHostFile {
17
+ version: 1;
18
+ adapters: OutOfProcessHostReference[];
19
+ }
20
+ export interface LoadedOutOfProcessHosts {
21
+ adapters: LocalHttpHostAdapter[];
22
+ credentials: HostBootstrapCredential[];
23
+ }
24
+ export declare class LocalHttpHostAdapter implements HostAdapter {
25
+ readonly kind: string;
26
+ readonly manifest: HostAdapterManifest;
27
+ readonly capabilities: EndpointCapabilities;
28
+ private readonly fetchImpl;
29
+ private readonly timeoutMs;
30
+ constructor(manifest: HostAdapterManifest, options?: {
31
+ fetch?: typeof fetch;
32
+ timeout_ms?: number;
33
+ });
34
+ validateEndpoint(registration: EndpointRegistration): void;
35
+ dispatch(context: TransportContext): Promise<TransportResult>;
36
+ }
37
+ export declare function loadOutOfProcessHostFile(path: string, environment?: NodeJS.ProcessEnv): LoadedOutOfProcessHosts;
@@ -0,0 +1,196 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { BridgeError } from "./core.js";
3
+ import { HOST_ADAPTER_CONTRACT_VERSION, LOCAL_HOST_PROTOCOL_VERSION, loopbackHttpOrigin, routeFor, stringAddress, validateHostAdapterManifest, } from "./transport-sdk.js";
4
+ const IDENTIFIER = /^[a-z][a-z0-9._-]{0,63}$/u;
5
+ const VERSION = /^[A-Za-z0-9][A-Za-z0-9._+-]{0,63}$/u;
6
+ const TOKEN_ENV = /^[A-Z_][A-Z0-9_]{0,127}$/u;
7
+ const PRINTABLE = /^[^\u0000-\u001f\u007f]{1,256}$/u;
8
+ const MAX_DECLARATIONS = 32;
9
+ function boundedPrintable(values, field, required = false) {
10
+ if (!Array.isArray(values) || values.length > MAX_DECLARATIONS || (required && values.length === 0)
11
+ || values.some((value) => typeof value !== "string" || !PRINTABLE.test(value))) {
12
+ throw new BridgeError(`out-of-process host ${field} are invalid`, "invalid_host_adapter_file", 400);
13
+ }
14
+ return [...values];
15
+ }
16
+ function normalizedManifest(reference) {
17
+ if (!IDENTIFIER.test(reference.adapter_kind || "") || !VERSION.test(reference.adapter_version || "")
18
+ || !IDENTIFIER.test(reference.host_kind || "")) {
19
+ throw new BridgeError("out-of-process host adapter identity is invalid", "invalid_host_adapter_file", 400);
20
+ }
21
+ if (!reference.capabilities || typeof reference.capabilities !== "object" || Array.isArray(reference.capabilities)
22
+ || reference.capabilities.exact_live_route !== true || reference.capabilities.requires_live_binding !== true) {
23
+ throw new BridgeError("out-of-process host must declare exact_live_route and requires_live_binding", "invalid_host_adapter_file", 400);
24
+ }
25
+ if (!["accepted_to_live_pipe", "host_accepted"].includes(reference.receipt_upper_bound)) {
26
+ throw new BridgeError("out-of-process host receipt upper bound is unsupported", "invalid_host_adapter_file", 400);
27
+ }
28
+ const manifest = {
29
+ contract_version: HOST_ADAPTER_CONTRACT_VERSION,
30
+ adapter_kind: reference.adapter_kind,
31
+ adapter_version: reference.adapter_version,
32
+ host_kinds: [reference.host_kind],
33
+ support_tier: "experimental",
34
+ tested_host_versions: boundedPrintable(reference.tested_host_versions, "tested_host_versions"),
35
+ capabilities: {
36
+ ...reference.capabilities,
37
+ exact_live_route: true,
38
+ requires_live_binding: true,
39
+ receipt_stages: ["transport_accepted"],
40
+ receipt_upper_bound: reference.receipt_upper_bound,
41
+ support_tier: "experimental",
42
+ },
43
+ receipt_upper_bound: reference.receipt_upper_bound,
44
+ };
45
+ validateHostAdapterManifest(manifest);
46
+ return manifest;
47
+ }
48
+ export class LocalHttpHostAdapter {
49
+ kind;
50
+ manifest;
51
+ capabilities;
52
+ fetchImpl;
53
+ timeoutMs;
54
+ constructor(manifest, options = {}) {
55
+ this.manifest = validateHostAdapterManifest(manifest);
56
+ this.kind = manifest.adapter_kind;
57
+ this.capabilities = manifest.capabilities;
58
+ const timeout = options.timeout_ms ?? 5_000;
59
+ if (!Number.isSafeInteger(timeout) || timeout < 100 || timeout > 30_000) {
60
+ throw new BridgeError("out-of-process host timeout_ms must be an integer from 100 to 30000", "invalid_host_adapter", 400);
61
+ }
62
+ this.timeoutMs = timeout;
63
+ this.fetchImpl = options.fetch ?? fetch;
64
+ }
65
+ validateEndpoint(registration) {
66
+ if (!this.manifest.host_kinds.includes(registration.host_kind)) {
67
+ throw new Error("host kind is not declared by the adapter");
68
+ }
69
+ const route = (registration.routes ?? []).find((candidate) => candidate.kind === this.kind);
70
+ if (!route)
71
+ throw new Error("local host route is missing");
72
+ if (Object.keys(route.address).sort().join(",") !== "base_url,token") {
73
+ throw new Error("local host route accepts only base_url and token");
74
+ }
75
+ loopbackHttpOrigin(stringAddress(route, "base_url"), "local host delivery route");
76
+ if (stringAddress(route, "token").length < 32)
77
+ throw new Error("local host route token must contain at least 32 characters");
78
+ }
79
+ async dispatch(context) {
80
+ if (!this.manifest.host_kinds.includes(context.endpoint.host_kind)) {
81
+ return { accepted: false, retryable: false, error_class: "invalid_endpoint", error_message: "host kind is not declared by the adapter" };
82
+ }
83
+ const route = routeFor(context.endpoint, this.kind);
84
+ if (!route) {
85
+ return { accepted: false, retryable: false, error_class: "invalid_endpoint", error_message: "local host route is missing" };
86
+ }
87
+ let origin;
88
+ let token;
89
+ try {
90
+ this.validateEndpoint({ host_kind: context.endpoint.host_kind, session_ref: context.endpoint.session_ref, routes: [route] });
91
+ origin = loopbackHttpOrigin(stringAddress(route, "base_url"), "local host delivery route");
92
+ token = stringAddress(route, "token");
93
+ }
94
+ catch (error) {
95
+ return { accepted: false, retryable: false, error_class: "invalid_endpoint", error_message: String(error) };
96
+ }
97
+ const controller = new AbortController();
98
+ const timeout = setTimeout(() => controller.abort(), this.timeoutMs);
99
+ timeout.unref();
100
+ try {
101
+ const response = await this.fetchImpl(new URL("v1/wakes", origin), {
102
+ method: "POST",
103
+ headers: {
104
+ authorization: `Bearer ${token}`,
105
+ "content-type": "application/json",
106
+ "x-wakebridge-delivery-nonce": context.delivery_nonce,
107
+ },
108
+ body: JSON.stringify({
109
+ protocol_version: LOCAL_HOST_PROTOCOL_VERSION,
110
+ attempt_id: context.attempt_id,
111
+ delivery_nonce: context.delivery_nonce,
112
+ wake: context.payload,
113
+ }),
114
+ redirect: "error",
115
+ signal: controller.signal,
116
+ });
117
+ const status = response.status;
118
+ try {
119
+ await response.body?.cancel();
120
+ }
121
+ catch { /* response bodies are deliberately ignored */ }
122
+ if (status === 202) {
123
+ return {
124
+ accepted: true,
125
+ transport_kind: this.kind,
126
+ receipt_details: {
127
+ protocol_version: LOCAL_HOST_PROTOCOL_VERSION,
128
+ receipt_upper_bound: this.manifest.receipt_upper_bound,
129
+ host_status: status,
130
+ },
131
+ };
132
+ }
133
+ const retryable = status === 408 || status === 425 || status === 429 || status >= 500;
134
+ return {
135
+ accepted: false,
136
+ retryable,
137
+ error_class: retryable ? "host_temporarily_unavailable" : "host_rejected",
138
+ error_message: `local host returned HTTP ${status}`,
139
+ };
140
+ }
141
+ catch (error) {
142
+ return {
143
+ accepted: false,
144
+ retryable: true,
145
+ error_class: error instanceof Error && error.name === "AbortError" ? "host_timeout" : "host_unreachable",
146
+ error_message: String(error),
147
+ };
148
+ }
149
+ finally {
150
+ clearTimeout(timeout);
151
+ }
152
+ }
153
+ }
154
+ export function loadOutOfProcessHostFile(path, environment = process.env) {
155
+ let parsed;
156
+ try {
157
+ parsed = JSON.parse(readFileSync(path, "utf8"));
158
+ }
159
+ catch (error) {
160
+ throw new BridgeError(`out-of-process host file is unreadable: ${String(error)}`, "invalid_host_adapter_file", 400);
161
+ }
162
+ const file = parsed;
163
+ if (file?.version !== 1 || !Array.isArray(file.adapters) || !file.adapters.length || file.adapters.length > MAX_DECLARATIONS) {
164
+ throw new BridgeError("out-of-process host file must use version 1 and contain adapters", "invalid_host_adapter_file", 400);
165
+ }
166
+ const ids = new Set();
167
+ const kinds = new Set();
168
+ const adapters = [];
169
+ const credentials = [];
170
+ for (const reference of file.adapters) {
171
+ if (!reference || !IDENTIFIER.test(reference.id || "") || !TOKEN_ENV.test(reference.token_env || "")) {
172
+ throw new BridgeError("out-of-process host credential reference is invalid", "invalid_host_adapter_file", 400);
173
+ }
174
+ if (ids.has(reference.id) || kinds.has(reference.adapter_kind)) {
175
+ throw new BridgeError("out-of-process host ids and adapter kinds must be unique", "invalid_host_adapter_file", 400);
176
+ }
177
+ ids.add(reference.id);
178
+ kinds.add(reference.adapter_kind);
179
+ const token = environment[reference.token_env];
180
+ if (!token || token.length < 32) {
181
+ throw new BridgeError(`host credential environment variable is missing or too short: ${reference.token_env}`, "host_credential_unavailable", 400);
182
+ }
183
+ const attentionChannels = boundedPrintable(reference.attention_channels, "attention_channels", true);
184
+ const manifest = normalizedManifest(reference);
185
+ adapters.push(new LocalHttpHostAdapter(manifest, { timeout_ms: reference.timeout_ms }));
186
+ credentials.push({
187
+ id: reference.id,
188
+ token,
189
+ adapter_kind: reference.adapter_kind,
190
+ host_kind: reference.host_kind,
191
+ attention_channels: attentionChannels,
192
+ });
193
+ }
194
+ return { adapters, credentials };
195
+ }
196
+ //# sourceMappingURL=out-of-process-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"out-of-process-host.js","sourceRoot":"","sources":["../../src/out-of-process-host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { PolicyFile } from "./types.js";
2
+ export declare function validatePolicyFile(value: unknown): PolicyFile;
3
+ export declare function loadPolicyFile(path: string): PolicyFile;