@dsh-enhanced/assistant-actions 0.1.30

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 (76) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +247 -0
  3. package/cordis.patch.yml +3 -0
  4. package/lib/broker-cli.d.ts +70 -0
  5. package/lib/broker-cli.d.ts.map +1 -0
  6. package/lib/broker-cli.js +255 -0
  7. package/lib/broker-cli.js.map +1 -0
  8. package/lib/broker-client.d.ts +54 -0
  9. package/lib/broker-client.d.ts.map +1 -0
  10. package/lib/broker-client.js +266 -0
  11. package/lib/broker-client.js.map +1 -0
  12. package/lib/broker-core.d.ts +51 -0
  13. package/lib/broker-core.d.ts.map +1 -0
  14. package/lib/broker-core.js +441 -0
  15. package/lib/broker-core.js.map +1 -0
  16. package/lib/broker-ledger.d.ts +131 -0
  17. package/lib/broker-ledger.d.ts.map +1 -0
  18. package/lib/broker-ledger.js +925 -0
  19. package/lib/broker-ledger.js.map +1 -0
  20. package/lib/broker-peer-linux.d.ts +23 -0
  21. package/lib/broker-peer-linux.d.ts.map +1 -0
  22. package/lib/broker-peer-linux.js +68 -0
  23. package/lib/broker-peer-linux.js.map +1 -0
  24. package/lib/broker-protocol.d.ts +419 -0
  25. package/lib/broker-protocol.d.ts.map +1 -0
  26. package/lib/broker-protocol.js +786 -0
  27. package/lib/broker-protocol.js.map +1 -0
  28. package/lib/broker-server.d.ts +77 -0
  29. package/lib/broker-server.d.ts.map +1 -0
  30. package/lib/broker-server.js +467 -0
  31. package/lib/broker-server.js.map +1 -0
  32. package/lib/cli.d.ts +3 -0
  33. package/lib/cli.d.ts.map +1 -0
  34. package/lib/cli.js +36 -0
  35. package/lib/cli.js.map +1 -0
  36. package/lib/config.d.ts +54 -0
  37. package/lib/config.d.ts.map +1 -0
  38. package/lib/config.js +165 -0
  39. package/lib/config.js.map +1 -0
  40. package/lib/external-delivery-receipt.d.ts +11 -0
  41. package/lib/external-delivery-receipt.d.ts.map +1 -0
  42. package/lib/external-delivery-receipt.js +25 -0
  43. package/lib/external-delivery-receipt.js.map +1 -0
  44. package/lib/github.d.ts +78 -0
  45. package/lib/github.d.ts.map +1 -0
  46. package/lib/github.js +611 -0
  47. package/lib/github.js.map +1 -0
  48. package/lib/index.d.ts +19 -0
  49. package/lib/index.d.ts.map +1 -0
  50. package/lib/index.js +23 -0
  51. package/lib/index.js.map +1 -0
  52. package/lib/ledger.d.ts +78 -0
  53. package/lib/ledger.d.ts.map +1 -0
  54. package/lib/ledger.js +1064 -0
  55. package/lib/ledger.js.map +1 -0
  56. package/lib/repository-readback.d.ts +34 -0
  57. package/lib/repository-readback.d.ts.map +1 -0
  58. package/lib/repository-readback.js +193 -0
  59. package/lib/repository-readback.js.map +1 -0
  60. package/lib/service.d.ts +86 -0
  61. package/lib/service.d.ts.map +1 -0
  62. package/lib/service.js +1259 -0
  63. package/lib/service.js.map +1 -0
  64. package/lib/types.d.ts +174 -0
  65. package/lib/types.d.ts.map +1 -0
  66. package/lib/types.js +2 -0
  67. package/lib/types.js.map +1 -0
  68. package/lib/verified-delivery.d.ts +104 -0
  69. package/lib/verified-delivery.d.ts.map +1 -0
  70. package/lib/verified-delivery.js +262 -0
  71. package/lib/verified-delivery.js.map +1 -0
  72. package/lib/version.d.ts +2 -0
  73. package/lib/version.d.ts.map +1 -0
  74. package/lib/version.js +2 -0
  75. package/lib/version.js.map +1 -0
  76. package/package.json +123 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broker-client.js","sourceRoot":"","sources":["../src/broker-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { commitOnGitHub, createPullRequestOnGitHub, inspectGitHub } from './github.js';
2
+ import { type BrokerAdminRequest, type BrokerAdminResponseUnsigned, type BrokerClientRequest, type BrokerServerResponseUnsigned } from './broker-protocol.js';
3
+ import { type BrokerControlSnapshot, type ExternalGitHubGrant } from './broker-ledger.js';
4
+ type BrokerResponse = Pick<BrokerServerResponseUnsigned, 'status' | 'dispatched' | 'result' | 'error' | 'completedAt'>;
5
+ type BrokerAdminResponse = Pick<BrokerAdminResponseUnsigned, 'status' | 'state' | 'error' | 'completedAt'>;
6
+ type GitHubTransport = typeof commitOnGitHub;
7
+ type InspectTransport = typeof inspectGitHub;
8
+ type PullRequestTransport = typeof createPullRequestOnGitHub;
9
+ export interface BrokerProtectedFileCredential {
10
+ id: string;
11
+ provider: 'linux-protected-file';
12
+ path: string;
13
+ maxLeaseMs: number;
14
+ }
15
+ export interface ExternalBrokerCoreConfig {
16
+ instanceId: string;
17
+ statePath: string;
18
+ credentials: readonly BrokerProtectedFileCredential[];
19
+ grants: readonly ExternalGitHubGrant[];
20
+ policyEpoch: number;
21
+ expectedGeneration?: number;
22
+ controllerTtlMs?: number;
23
+ credentialMaxBytes?: number;
24
+ now?: () => number;
25
+ }
26
+ export interface ExternalBrokerCoreTransports {
27
+ commit?: GitHubTransport;
28
+ inspect?: InspectTransport;
29
+ pullRequest?: PullRequestTransport;
30
+ /** Deterministic race hook used only by filesystem-boundary tests. */
31
+ beforeCredentialOpen?: () => void | Promise<void>;
32
+ }
33
+ export declare function normalizeExternalBrokerCoreConfig(value: unknown): ExternalBrokerCoreConfig;
34
+ export declare class BrokerCoreError extends Error {
35
+ readonly code: 'aborted' | 'broker-draining' | 'credential-unavailable' | 'deadline-exceeded' | 'grant-invalid' | 'internal-error' | 'policy-changed' | 'request-conflict' | 'request-invalid' | 'transport-failed' | 'unsupported-operation';
36
+ readonly dispatched: boolean;
37
+ constructor(code: 'aborted' | 'broker-draining' | 'credential-unavailable' | 'deadline-exceeded' | 'grant-invalid' | 'internal-error' | 'policy-changed' | 'request-conflict' | 'request-invalid' | 'transport-failed' | 'unsupported-operation', dispatched?: boolean);
38
+ }
39
+ export declare class ExternalBrokerCore {
40
+ #private;
41
+ constructor(input: ExternalBrokerCoreConfig, transports?: ExternalBrokerCoreTransports);
42
+ snapshot(): BrokerControlSnapshot;
43
+ execute: (request: BrokerClientRequest, signal: AbortSignal) => Promise<BrokerResponse>;
44
+ admin: (request: BrokerAdminRequest, signal: AbortSignal) => Promise<BrokerAdminResponse>;
45
+ beginDrain: (reason?: "sigterm" | "sigint" | "admin" | "lifecycle") => void;
46
+ drain: (deadlineAt: number) => Promise<void>;
47
+ close: () => Promise<void>;
48
+ }
49
+ export declare function createExternalBrokerCore(config: ExternalBrokerCoreConfig, transports?: ExternalBrokerCoreTransports): ExternalBrokerCore;
50
+ export {};
51
+ //# sourceMappingURL=broker-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broker-core.d.ts","sourceRoot":"","sources":["../src/broker-core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,441 @@
1
+ import { createHash, randomUUID } from 'node:crypto';
2
+ import { constants } from 'node:fs';
3
+ import { lstat, open, realpath } from 'node:fs/promises';
4
+ import { basename, dirname, isAbsolute, normalize } from 'node:path';
5
+ import { commitOnGitHub, createPullRequestOnGitHub, inspectGitHub } from './github.js';
6
+ import { brokerAdminRequestDigest, canonicalBrokerJson, normalizeBrokerInspectObservation, } from './broker-protocol.js';
7
+ import { BrokerLedgerError, ExternalBrokerLedger, brokerLedgerRequestDigest, normalizeBrokerGrant, } from './broker-ledger.js';
8
+ const FORCED_TEARDOWN_GRACE_MS = 100;
9
+ export function normalizeExternalBrokerCoreConfig(value) {
10
+ if (!plain(value) || Object.keys(value).some(key => !['instanceId', 'statePath', 'credentials', 'grants', 'policyEpoch', 'expectedGeneration', 'controllerTtlMs', 'credentialMaxBytes', 'now'].includes(key)))
11
+ fail('request-invalid');
12
+ const instanceId = text(value.instanceId, 128), statePath = text(value.statePath, 1_024), policyEpoch = integer(value.policyEpoch, 0);
13
+ if (!isAbsolute(statePath) || normalize(statePath) !== statePath || !Array.isArray(value.credentials) || !Array.isArray(value.grants))
14
+ fail('request-invalid');
15
+ const credentials = value.credentials.map(normalizeCredential);
16
+ if (credentials.length > 256 || new Set(credentials.map(item => item.id)).size !== credentials.length)
17
+ fail('request-invalid');
18
+ const grants = value.grants.map(normalizeBrokerGrant);
19
+ if (grants.length > 1_000 || new Set(grants.map(item => item.id)).size !== grants.length || grants.some(grant => !credentials.some(item => item.id === grant.credentialId)))
20
+ fail('request-invalid');
21
+ return Object.freeze({ instanceId, statePath, credentials: Object.freeze(credentials), grants: Object.freeze(grants), policyEpoch,
22
+ ...(value.expectedGeneration === undefined ? {} : { expectedGeneration: integer(value.expectedGeneration, 1) }),
23
+ ...(value.controllerTtlMs === undefined ? {} : { controllerTtlMs: integer(value.controllerTtlMs, 1_000, 300_000) }),
24
+ ...(value.credentialMaxBytes === undefined ? {} : { credentialMaxBytes: integer(value.credentialMaxBytes, 1, 65_536) }),
25
+ ...(value.now === undefined ? {} : typeof value.now === 'function' ? { now: value.now } : fail('request-invalid')) });
26
+ }
27
+ export class BrokerCoreError extends Error {
28
+ code;
29
+ dispatched;
30
+ constructor(code, dispatched = false) {
31
+ super('assistant-actions external broker: ' + code);
32
+ this.code = code;
33
+ this.dispatched = dispatched;
34
+ this.name = 'BrokerCoreError';
35
+ }
36
+ }
37
+ function fail(code, dispatched = false) { throw new BrokerCoreError(code, dispatched); }
38
+ function plain(value) { return value !== null && typeof value === 'object' && !Array.isArray(value) && Object.getPrototypeOf(value) === Object.prototype; }
39
+ function text(value, maximum = 4_096) { if (typeof value !== 'string' || value.length < 1 || value.length > maximum || /[\p{Cc}]/u.test(value))
40
+ fail('request-invalid'); return value; }
41
+ function integer(value, minimum, maximum = Number.MAX_SAFE_INTEGER) { if (typeof value !== 'number' || !Number.isSafeInteger(value) || value < minimum || value > maximum)
42
+ fail('request-invalid'); return value; }
43
+ function safeCode(error) {
44
+ if (error instanceof BrokerLedgerError) {
45
+ if (error.code === 'conflict')
46
+ return 'request-conflict';
47
+ if (error.code === 'grant' || error.code === 'limit')
48
+ return 'grant-invalid';
49
+ if (error.code === 'stopped')
50
+ return 'broker-draining';
51
+ if (error.code === 'controller')
52
+ return 'policy-changed';
53
+ if (error.code === 'invalid-input')
54
+ return 'request-invalid';
55
+ }
56
+ return 'internal-error';
57
+ }
58
+ async function settleWithin(promises, timeoutMs) {
59
+ if (promises.length === 0)
60
+ return true;
61
+ return await new Promise(resolve => {
62
+ let settled = false;
63
+ const finish = (value) => { if (settled)
64
+ return; settled = true; clearTimeout(timer); resolve(value); };
65
+ const timer = setTimeout(() => finish(false), Math.max(1, timeoutMs));
66
+ timer.unref();
67
+ void Promise.allSettled(promises).then(() => finish(true));
68
+ });
69
+ }
70
+ async function abortable(operation, signal) {
71
+ if (signal.aborted)
72
+ throw signal.reason;
73
+ return await new Promise((resolve, reject) => {
74
+ let settled = false;
75
+ const finish = (callback) => { if (settled)
76
+ return; settled = true; signal.removeEventListener('abort', onAbort); callback(); };
77
+ const onAbort = () => finish(() => reject(signal.reason));
78
+ signal.addEventListener('abort', onAbort, { once: true });
79
+ if (signal.aborted) {
80
+ onAbort();
81
+ return;
82
+ }
83
+ operation.then(value => finish(() => resolve(value)), error => finish(() => reject(error)));
84
+ });
85
+ }
86
+ function normalizeCredential(value) {
87
+ if (!plain(value) || Object.keys(value).length !== 4 || Object.keys(value).some(key => !['id', 'provider', 'path', 'maxLeaseMs'].includes(key)) || value.provider !== 'linux-protected-file')
88
+ fail('request-invalid');
89
+ const path = text(value.path, 1_024);
90
+ if (process.platform !== 'linux' || !isAbsolute(path) || normalize(path) !== path || path === '/')
91
+ fail('request-invalid');
92
+ return Object.freeze({ id: text(value.id, 128), provider: 'linux-protected-file', path, maxLeaseMs: integer(value.maxLeaseMs, 1_000, 86_400_000) });
93
+ }
94
+ function sameNode(left, right) { return left.dev === right.dev && left.ino === right.ino && left.uid === right.uid && left.gid === right.gid && left.mode === right.mode && left.nlink === right.nlink; }
95
+ async function safeCredentialAncestors(value, uid, gid) {
96
+ let cursor = value, leaf = true;
97
+ for (;;) {
98
+ const [canonical, stat] = await Promise.all([realpath(cursor), lstat(cursor, { bigint: true })]);
99
+ const mode = Number(stat.mode & 4095n), owner = Number(stat.uid), group = Number(stat.gid), stickyRoot = owner === 0 && (mode & 0o1000) !== 0 && (mode & 0o022) !== 0;
100
+ if (canonical !== cursor || stat.isSymbolicLink() || !stat.isDirectory() || !stickyRoot && (mode & 0o022) !== 0 || leaf && (owner !== uid || group !== gid || mode !== 0o700))
101
+ fail('credential-unavailable');
102
+ const parent = dirname(cursor);
103
+ if (parent === cursor)
104
+ return;
105
+ cursor = parent;
106
+ leaf = false;
107
+ }
108
+ }
109
+ async function readProtectedCredential(credential, maximum, beforeOpen) {
110
+ const uid = process.geteuid?.(), gid = process.getegid?.();
111
+ if (process.platform !== 'linux' || uid === undefined || gid === undefined)
112
+ fail('credential-unavailable');
113
+ const parentPath = dirname(credential.path);
114
+ try {
115
+ await safeCredentialAncestors(parentPath, uid, gid);
116
+ }
117
+ catch {
118
+ return fail('credential-unavailable');
119
+ }
120
+ let parent;
121
+ try {
122
+ parent = await open(parentPath, constants.O_RDONLY | constants.O_DIRECTORY | constants.O_NOFOLLOW);
123
+ }
124
+ catch {
125
+ return fail('credential-unavailable');
126
+ }
127
+ let descriptor;
128
+ try {
129
+ const parentBefore = await parent.stat({ bigint: true }), visibleParent = await lstat(parentPath, { bigint: true });
130
+ if (!parentBefore.isDirectory() || !sameNode(parentBefore, visibleParent))
131
+ fail('credential-unavailable');
132
+ await beforeOpen?.();
133
+ descriptor = await open('/proc/self/fd/' + parent.fd + '/' + basename(credential.path), constants.O_RDONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK);
134
+ const pathParent = await lstat(parentPath, { bigint: true });
135
+ if (!sameNode(parentBefore, await parent.stat({ bigint: true })) || !sameNode(parentBefore, pathParent))
136
+ fail('credential-unavailable');
137
+ }
138
+ catch {
139
+ await descriptor?.close().catch(() => undefined);
140
+ await parent.close().catch(() => undefined);
141
+ return fail('credential-unavailable');
142
+ }
143
+ const bytes = Buffer.alloc(maximum + 1);
144
+ try {
145
+ const before = await descriptor.stat({ bigint: true });
146
+ if (!before.isFile() || before.uid !== BigInt(uid) || before.nlink !== 1n || Number(before.mode & 4095n) !== 0o600 || before.size > BigInt(maximum))
147
+ fail('credential-unavailable');
148
+ let offset = 0;
149
+ while (offset < bytes.length) {
150
+ const read = await descriptor.read(bytes, offset, bytes.length - offset, offset);
151
+ if (read.bytesRead === 0)
152
+ break;
153
+ offset += read.bytesRead;
154
+ }
155
+ const after = await descriptor.stat({ bigint: true }), visible = await lstat(credential.path, { bigint: true }), parentAfter = await parent.stat({ bigint: true }), visibleParent = await lstat(parentPath, { bigint: true });
156
+ if (offset > maximum || BigInt(offset) !== after.size || !sameNode(before, after) || !sameNode(after, visible) || !sameNode(parentAfter, visibleParent) || !after.isFile())
157
+ fail('credential-unavailable');
158
+ await safeCredentialAncestors(parentPath, uid, gid);
159
+ const token = bytes.subarray(0, offset).toString('utf8').replace(/[\r\n]+$/u, '');
160
+ if (!token || token.includes('\0') || Buffer.from(token, 'utf8').length > maximum || !/^[\x21-\x7e]+$/u.test(token))
161
+ fail('credential-unavailable');
162
+ return token;
163
+ }
164
+ catch (error) {
165
+ if (error instanceof BrokerCoreError)
166
+ throw error;
167
+ return fail('credential-unavailable');
168
+ }
169
+ finally {
170
+ bytes.fill(0);
171
+ await descriptor.close().catch(() => undefined);
172
+ await parent.close().catch(() => undefined);
173
+ }
174
+ }
175
+ function containsSecret(value, secret) {
176
+ if (typeof value === 'string')
177
+ return secret.length > 0 && value.includes(secret);
178
+ if (Array.isArray(value))
179
+ return value.some(item => containsSecret(item, secret));
180
+ if (plain(value))
181
+ return Object.entries(value).some(([key, item]) => key.includes(secret) || containsSecret(item, secret));
182
+ return false;
183
+ }
184
+ function containsCredentialShape(value) {
185
+ if (typeof value === 'string')
186
+ return /(?:\bbearer\s+[A-Za-z0-9._~-]+|\bbasic\s+[A-Za-z0-9+/=]+|github_pat_|gh[pousr]_|-----BEGIN [A-Z ]*PRIVATE KEY-----|\bauthorization\s*:|\bcookie\s*:)/iu.test(value);
187
+ if (Array.isArray(value))
188
+ return value.some(containsCredentialShape);
189
+ if (plain(value))
190
+ return Object.entries(value).some(([key, item]) => /^(?:authorization|cookie|password|secret|token)$/iu.test(key) || containsCredentialShape(item));
191
+ return false;
192
+ }
193
+ function inspectProjection(payload, observed, grant) {
194
+ try {
195
+ // The protocol normalizer is the single wire DTO boundary. In particular,
196
+ // it binds PR number, head, repository, and base branch before an untrusted
197
+ // GitHub response can enter the signed broker result.
198
+ return normalizeBrokerInspectObservation(payload, observed, grant.destination);
199
+ }
200
+ catch {
201
+ return undefined;
202
+ }
203
+ }
204
+ function githubGrant(grant, allowPullRequest = false) {
205
+ return Object.freeze({ id: grant.id, revision: grant.revision, principalDigest: grant.owner.principalDigest, principalRecordId: grant.owner.principalRecordId, principalVersion: grant.owner.principalVersion, workspace: grant.owner.workspace, agentPreset: grant.owner.preset, repository: grant.destination.repository, branch: grant.destination.branch, paths: [...grant.destination.paths], credentialHandle: grant.credentialId, expiresAt: grant.expiresAt, maxActions: grant.maxActions, maxTotalBytes: grant.maxTotalBytes,
206
+ ...(grant.destination.baseBranch === undefined ? {} : { repoWorkflow: Object.freeze({ baseBranch: grant.destination.baseBranch, allowBranchCreate: false, allowPullRequest }) }) });
207
+ }
208
+ function response(record) {
209
+ const value = record.outcome;
210
+ if (!value)
211
+ return { status: 'unknown', dispatched: record.status === 'dispatched', result: null, error: { code: 'transport-failed' }, completedAt: Date.now() };
212
+ return { status: value.status, dispatched: value.dispatched, result: value.result, error: value.error, completedAt: value.completedAt };
213
+ }
214
+ export class ExternalBrokerCore {
215
+ #ledger;
216
+ #authority;
217
+ #credentials;
218
+ #commit;
219
+ #inspect;
220
+ #pullRequest;
221
+ #beforeCredentialOpen;
222
+ #now;
223
+ #credentialMaxBytes;
224
+ #pending = new Map();
225
+ #renewal;
226
+ #active = true;
227
+ #closing;
228
+ constructor(input, transports = {}) {
229
+ const config = normalizeExternalBrokerCoreConfig(input);
230
+ const { instanceId, statePath, policyEpoch } = config;
231
+ const controllerTtlMs = config.controllerTtlMs ?? 30_000;
232
+ this.#credentialMaxBytes = config.credentialMaxBytes ?? 8_192;
233
+ this.#now = config.now ?? Date.now;
234
+ const credentials = [...config.credentials];
235
+ this.#credentials = new Map(credentials.map(item => [item.id, item]));
236
+ const grants = [...config.grants];
237
+ this.#commit = transports.commit ?? commitOnGitHub;
238
+ this.#inspect = transports.inspect ?? inspectGitHub;
239
+ this.#pullRequest = transports.pullRequest ?? createPullRequestOnGitHub;
240
+ this.#beforeCredentialOpen = transports.beforeCredentialOpen;
241
+ this.#ledger = new ExternalBrokerLedger(statePath, instanceId, { now: this.#now });
242
+ try {
243
+ this.#authority = this.#ledger.claimController(randomUUID(), controllerTtlMs);
244
+ if (config.expectedGeneration !== undefined && this.#authority.generation !== config.expectedGeneration)
245
+ fail('policy-changed');
246
+ this.#ledger.syncGrants(grants, policyEpoch, this.#authority);
247
+ }
248
+ catch (error) {
249
+ this.#ledger.close();
250
+ throw error;
251
+ }
252
+ this.#renewal = setInterval(() => {
253
+ try {
254
+ this.#ledger.renewController(this.#authority, controllerTtlMs);
255
+ }
256
+ catch {
257
+ this.#active = false;
258
+ for (const pending of this.#pending.values())
259
+ pending.controller.abort();
260
+ }
261
+ }, Math.max(100, Math.floor(controllerTtlMs / 3)));
262
+ this.#renewal.unref();
263
+ }
264
+ snapshot() { return this.#ledger.snapshot(); }
265
+ execute = async (request, signal) => {
266
+ if (!this.#active || signal.aborted)
267
+ fail('aborted');
268
+ let prepared;
269
+ try {
270
+ prepared = this.#ledger.prepare(request, this.#authority);
271
+ }
272
+ catch (error) {
273
+ return fail(safeCode(error));
274
+ }
275
+ if (!prepared.created) {
276
+ if (prepared.record.outcome)
277
+ return response(prepared.record);
278
+ const pending = this.#pending.get(prepared.record.actionId);
279
+ return pending ? await pending.done : fail('request-conflict', prepared.record.status === 'dispatched');
280
+ }
281
+ const controller = new AbortController();
282
+ const done = this.#executePrepared(request, prepared.record, AbortSignal.any([signal, controller.signal]));
283
+ this.#pending.set(prepared.record.actionId, { controller, done });
284
+ try {
285
+ return await done;
286
+ }
287
+ finally {
288
+ this.#pending.delete(prepared.record.actionId);
289
+ }
290
+ };
291
+ async #executePrepared(request, initial, signal) {
292
+ let record = initial;
293
+ const requestDigestValue = brokerLedgerRequestDigest(request);
294
+ try {
295
+ const grant = this.#ledger.grant(record.grantId), credential = grant && this.#credentials.get(grant.credentialId);
296
+ if (!grant || !credential)
297
+ return response(this.#ledger.failPrepared(record.actionId, record.version, requestDigestValue, 'credential-unavailable', this.#authority));
298
+ if (signal.aborted || request.deadline <= this.#now())
299
+ return response(this.#ledger.failPrepared(record.actionId, record.version, requestDigestValue, 'deadline-exceeded', this.#authority));
300
+ const token = await readProtectedCredential(credential, this.#credentialMaxBytes, this.#beforeCredentialOpen);
301
+ const secrets = [];
302
+ try {
303
+ for (const configured of this.#credentials.values())
304
+ secrets.push(configured.id === credential.id ? token : await readProtectedCredential(configured, this.#credentialMaxBytes, this.#beforeCredentialOpen));
305
+ }
306
+ catch {
307
+ return response(this.#ledger.failPrepared(record.actionId, record.version, requestDigestValue, 'credential-unavailable', this.#authority));
308
+ }
309
+ if (secrets.some(secret => containsSecret(request.payload, secret)) || containsCredentialShape(request.payload))
310
+ return response(this.#ledger.failPrepared(record.actionId, record.version, requestDigestValue, 'request-invalid', this.#authority));
311
+ const leaseExpiresAt = Math.min(request.deadline, grant.expiresAt, this.#now() + credential.maxLeaseMs);
312
+ record = this.#ledger.dispatch(record.actionId, record.version, requestDigestValue, credential.id, leaseExpiresAt, this.#authority);
313
+ const deadline = AbortSignal.timeout(Math.max(1, leaseExpiresAt - this.#now()));
314
+ const combined = AbortSignal.any([signal, deadline]);
315
+ let result = null;
316
+ if (request.operation === 'commit') {
317
+ const payload = request.payload;
318
+ const commit = await abortable(this.#commit({ actionId: request.actionId, grant: githubGrant(grant), request: { grantId: grant.id, idempotencyKey: request.actionId, expectedHeadOid: payload.expectedHeadOid, headline: payload.headline, files: payload.files.map(file => ({ ...file })) }, token, signal: combined }), combined);
319
+ if (commit.status === 'succeeded' && commit.commitOid)
320
+ result = { operation: 'commit', repository: grant.destination.repository, branch: grant.destination.branch, parentOid: payload.expectedHeadOid, commitOid: commit.commitOid };
321
+ }
322
+ else if (request.operation === 'pull-request') {
323
+ const payload = request.payload;
324
+ const created = await abortable(this.#pullRequest({ actionId: request.actionId, grant: githubGrant(grant, true), expectedHeadOid: payload.expectedHeadOid, title: payload.title, body: payload.body, token, signal: combined }), combined);
325
+ if (created.status === 'succeeded' && created.pullRequestNumber && grant.destination.baseBranch !== undefined)
326
+ result = { operation: 'pull-request', repository: grant.destination.repository, branch: grant.destination.branch, baseBranch: grant.destination.baseBranch, expectedHeadOid: payload.expectedHeadOid, pullRequestNumber: created.pullRequestNumber };
327
+ }
328
+ else {
329
+ const payload = request.payload;
330
+ const inspected = await abortable(this.#inspect({ grant: githubGrant(grant), kind: payload.kind, ...(payload.path === undefined ? {} : { path: payload.path }), ...(payload.pullRequestNumber === undefined ? {} : { pullRequestNumber: payload.pullRequestNumber }), token, signal: combined }), combined);
331
+ if (inspected) {
332
+ const projected = inspectProjection(payload, inspected.observed, grant);
333
+ if (projected && !secrets.some(secret => containsSecret(projected, secret)) && !containsCredentialShape(projected)) {
334
+ const canonical = canonicalBrokerJson(projected);
335
+ result = { operation: 'inspect', repository: grant.destination.repository, branch: grant.destination.branch, kind: payload.kind, observed: projected, observedDigest: createHash('sha256').update(canonical).digest('hex') };
336
+ }
337
+ }
338
+ }
339
+ if (combined.aborted || signal.aborted || this.#now() >= leaseExpiresAt)
340
+ return response(this.#settle(record, requestDigestValue, null, 'aborted'));
341
+ return response(result ? this.#ledger.settle(record.actionId, record.version, requestDigestValue, { status: 'succeeded', dispatched: true, result, error: null, completedAt: Math.max(1, this.#now()) }, this.#authority) : this.#settle(record, requestDigestValue, null, 'transport-failed'));
342
+ }
343
+ catch (error) {
344
+ if (record.status === 'dispatched') {
345
+ try {
346
+ return response(this.#settle(record, requestDigestValue, null, error instanceof BrokerCoreError ? error.code : 'transport-failed'));
347
+ }
348
+ catch {
349
+ return fail('transport-failed', true);
350
+ }
351
+ }
352
+ try {
353
+ return response(this.#ledger.failPrepared(record.actionId, record.version, requestDigestValue, error instanceof BrokerCoreError ? error.code : safeCode(error), this.#authority));
354
+ }
355
+ catch {
356
+ return fail(safeCode(error));
357
+ }
358
+ }
359
+ }
360
+ #settle(record, requestDigestValue, result, code) {
361
+ const value = result
362
+ ? { status: 'succeeded', dispatched: true, result, error: null, completedAt: Math.max(1, this.#now()) }
363
+ : { status: 'unknown', dispatched: true, result: null, error: { code }, completedAt: Math.max(1, this.#now()) };
364
+ return this.#ledger.settle(record.actionId, record.version, requestDigestValue, value, this.#authority);
365
+ }
366
+ admin = async (request, signal) => {
367
+ if (signal.aborted)
368
+ fail('aborted');
369
+ // The signed request digest is deliberately evaluated even for status so
370
+ // malformed or secret-bearing admin input cannot reach the control plane.
371
+ const adminDigest = brokerAdminRequestDigest(request);
372
+ try {
373
+ let mutation;
374
+ if (request.operation === 'stop') {
375
+ const body = request.body;
376
+ mutation = this.#ledger.applyAdminMutation({ adminKeyId: request.adminKeyId, nonce: request.nonce, requestDigest: adminDigest, expiresAt: request.deadline, mutation: { operation: 'stop', expectedControlVersion: body.expectedControlVersion, reason: body.reason }, authority: this.#authority });
377
+ }
378
+ else if (request.operation === 'resume') {
379
+ const body = request.body;
380
+ mutation = this.#ledger.applyAdminMutation({ adminKeyId: request.adminKeyId, nonce: request.nonce, requestDigest: adminDigest, expiresAt: request.deadline, mutation: { operation: 'resume', expectedControlVersion: body.expectedControlVersion, expectedGeneration: body.expectedGeneration, reason: 'operator-resume' }, authority: this.#authority });
381
+ }
382
+ else if (request.operation === 'revoke') {
383
+ const body = request.body;
384
+ mutation = this.#ledger.applyAdminMutation({ adminKeyId: request.adminKeyId, nonce: request.nonce, requestDigest: adminDigest, expiresAt: request.deadline, mutation: { operation: 'revoke', expectedControlVersion: body.expectedControlVersion, grantId: body.grantId, grantRevision: body.grantRevision, grantDigest: body.grantDigest, policyEpoch: body.policyEpoch, emergencyEpoch: body.emergencyEpoch, reason: body.reason }, authority: this.#authority });
385
+ }
386
+ else
387
+ this.#ledger.consumeAdminNonce(request.adminKeyId, request.nonce, adminDigest, request.deadline, this.#authority);
388
+ if (mutation)
389
+ for (const actionId of mutation.abortActionIds)
390
+ this.#pending.get(actionId)?.controller.abort();
391
+ const state = this.#adminState();
392
+ return { status: 'succeeded', state, error: null, completedAt: Math.max(1, this.#now()) };
393
+ }
394
+ catch (error) {
395
+ return { status: 'failed', state: this.#adminState(), error: { code: safeCode(error) }, completedAt: Math.max(1, this.#now()) };
396
+ }
397
+ };
398
+ #adminState() {
399
+ const snapshot = this.#ledger.snapshot();
400
+ return { admission: snapshot.stopped ? 'stopped' : snapshot.draining ? 'draining' : 'accepting', generation: snapshot.generation, controlVersion: snapshot.controlVersion, activeRequests: this.#pending.size, revocationEpoch: snapshot.emergencyEpoch };
401
+ }
402
+ beginDrain = (reason = 'lifecycle') => { if (!this.#active)
403
+ return; this.#ledger.beginDrain(this.#ledger.snapshot().controlVersion, reason, this.#authority); };
404
+ drain = async (deadlineAt) => {
405
+ integer(deadlineAt, 1);
406
+ if (this.#pending.size === 0)
407
+ return;
408
+ const pending = [...this.#pending.values()];
409
+ if (await settleWithin(pending.map(value => value.done), Math.max(1, deadlineAt - this.#now())))
410
+ return;
411
+ for (const pending of this.#pending.values())
412
+ pending.controller.abort();
413
+ try {
414
+ this.#ledger.terminalizeActive('drain-deadline', this.#authority);
415
+ }
416
+ catch { /* Startup recovery keeps no-replay if the fence was lost. */ }
417
+ await settleWithin(pending.map(value => value.done), FORCED_TEARDOWN_GRACE_MS);
418
+ };
419
+ close = () => this.#closing ??= this.#close();
420
+ async #close() {
421
+ this.#active = false;
422
+ clearInterval(this.#renewal);
423
+ const pending = [...this.#pending.values()];
424
+ for (const pending of this.#pending.values())
425
+ pending.controller.abort();
426
+ try {
427
+ this.#ledger.terminalizeActive('core-close', this.#authority);
428
+ }
429
+ catch { /* A successor will recover if the fence was lost. */ }
430
+ await settleWithin(pending.map(value => value.done), FORCED_TEARDOWN_GRACE_MS);
431
+ try {
432
+ if (this.#ledger.hasController(this.#authority))
433
+ this.#ledger.releaseController(this.#authority);
434
+ }
435
+ finally {
436
+ this.#ledger.close();
437
+ }
438
+ }
439
+ }
440
+ export function createExternalBrokerCore(config, transports = {}) { return new ExternalBrokerCore(config, transports); }
441
+ //# sourceMappingURL=broker-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broker-core.js","sourceRoot":"","sources":["../src/broker-core.ts"],"names":[],"mappings":"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"}