gh-inari 0.17.0 → 0.18.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/.codex-plugin/plugin.json +1 -1
- package/dist/admission/authorization.d.ts +48 -3
- package/dist/admission/authorization.js +256 -75
- package/dist/admission/authorization.js.map +1 -1
- package/dist/admission/server.d.ts +6 -1
- package/dist/admission/server.js +143 -16
- package/dist/admission/server.js.map +1 -1
- package/dist/agent-authority/capability-admission.js +17 -1
- package/dist/agent-authority/capability-admission.js.map +1 -1
- package/dist/agent-authority/session-certificate.js +35 -3
- package/dist/agent-authority/session-certificate.js.map +1 -1
- package/dist/authorized-execution.js +15 -4
- package/dist/authorized-execution.js.map +1 -1
- package/dist/cli/runtime/admission-client.d.ts +14 -1
- package/dist/cli/runtime/admission-client.js +127 -23
- package/dist/cli/runtime/admission-client.js.map +1 -1
- package/dist/cli/runtime/branch-observation.d.ts +20 -0
- package/dist/cli/runtime/branch-observation.js +132 -0
- package/dist/cli/runtime/branch-observation.js.map +1 -1
- package/dist/cli/runtime/session-launcher.d.ts +9 -3
- package/dist/cli/runtime/session-launcher.js +122 -28
- package/dist/cli/runtime/session-launcher.js.map +1 -1
- package/dist/cli-core.js +325 -86
- package/dist/cli-core.js.map +1 -1
- package/dist/command-contract.js +12 -3
- package/dist/command-contract.js.map +1 -1
- package/dist/composition/setup-adapters.js +22 -3
- package/dist/composition/setup-adapters.js.map +1 -1
- package/dist/composition/setup-host.d.ts +29 -2
- package/dist/composition/setup-host.js +77 -17
- package/dist/composition/setup-host.js.map +1 -1
- package/dist/composition/setup-observation.d.ts +27 -10
- package/dist/composition/setup-observation.js +111 -38
- package/dist/composition/setup-observation.js.map +1 -1
- package/dist/executor/credential-store.d.ts +19 -0
- package/dist/executor/credential-store.js +56 -5
- package/dist/executor/credential-store.js.map +1 -1
- package/dist/executor/enrollment/issuer-reference.d.ts +8 -1
- package/dist/executor/enrollment/issuer-reference.js +46 -19
- package/dist/executor/enrollment/issuer-reference.js.map +1 -1
- package/dist/executor/enrollment/owner.d.ts +5 -2
- package/dist/executor/enrollment/owner.js +33 -7
- package/dist/executor/enrollment/owner.js.map +1 -1
- package/dist/executor/execution.d.ts +43 -0
- package/dist/executor/execution.js +234 -31
- package/dist/executor/execution.js.map +1 -1
- package/dist/executor/issuer-input.d.ts +11 -0
- package/dist/executor/issuer-input.js +25 -0
- package/dist/executor/issuer-input.js.map +1 -1
- package/dist/executor/server.js +3 -1
- package/dist/executor/server.js.map +1 -1
- package/dist/executor/setup.d.ts +6 -0
- package/dist/executor/setup.js +13 -3
- package/dist/executor/setup.js.map +1 -1
- package/dist/github/pr-publication-provider.js +9 -1
- package/dist/github/pr-publication-provider.js.map +1 -1
- package/dist/implementation-session-binding.d.ts +9 -0
- package/dist/implementation-session-binding.js +36 -2
- package/dist/implementation-session-binding.js.map +1 -1
- package/dist/local-control/executor-client.d.ts +7 -2
- package/dist/local-control/executor-client.js +41 -2
- package/dist/local-control/executor-client.js.map +1 -1
- package/dist/local-control/executor-http.d.ts +20 -0
- package/dist/local-control/executor-http.js +214 -9
- package/dist/local-control/executor-http.js.map +1 -1
- package/dist/local-control/runtime-log.d.ts +29 -0
- package/dist/local-control/runtime-log.js +198 -0
- package/dist/local-control/runtime-log.js.map +1 -0
- package/dist/local-control/session-binding.d.ts +7 -0
- package/dist/local-control/session-binding.js +10 -0
- package/dist/local-control/session-binding.js.map +1 -1
- package/dist/local-control/supervisor.js +44 -2
- package/dist/local-control/supervisor.js.map +1 -1
- package/dist/runtime-contracts/index.d.ts +1 -0
- package/dist/runtime-contracts/index.js +1 -0
- package/dist/runtime-contracts/index.js.map +1 -1
- package/dist/runtime-contracts/ports.d.ts +21 -0
- package/dist/runtime-contracts/runtime-failure.d.ts +95 -0
- package/dist/runtime-contracts/runtime-failure.js +167 -0
- package/dist/runtime-contracts/runtime-failure.js.map +1 -0
- package/package.json +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "inari",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.0",
|
|
4
4
|
"description": "Governed GitHub Issue/PR/template workflows via the inari CLI. Prefer inari over raw gh for operations it owns; use inari skill for operational playbooks.",
|
|
5
5
|
"skills": "skills/inari"
|
|
6
6
|
}
|
|
@@ -2,8 +2,18 @@ import type { LocalSessionBinding } from "../local-control/session-binding.js";
|
|
|
2
2
|
import type { LocalExecutorEvidenceRequest } from "../local-control/executor-http.js";
|
|
3
3
|
import { type ExecutionIntent } from "../local-control/execution-intent.js";
|
|
4
4
|
import { type Delegator } from "../agent-authority/delegator.js";
|
|
5
|
+
import type { SessionCertificateRepository } from "../agent-authority/session-certificate.js";
|
|
5
6
|
import { type AuthorizedExecution } from "../authorized-execution.js";
|
|
6
|
-
import { type
|
|
7
|
+
import { type ChangeProjectionResult } from "../change.js";
|
|
8
|
+
import { type LocalBranchPolicyInput } from "../cli/runtime/branch-observation.js";
|
|
9
|
+
import type { LocalExecutorBranchPolicyRequest } from "../local-control/executor-http.js";
|
|
10
|
+
import { type RuntimeFailure, type RuntimeFailureReason, type RuntimeFailureStage } from "../runtime-contracts/runtime-failure.js";
|
|
11
|
+
/** Bounded Admission denial carrying the owner stage and catalog reason (#1180). */
|
|
12
|
+
export declare class AdmissionAuthorizationError extends Error {
|
|
13
|
+
readonly code: RuntimeFailureReason;
|
|
14
|
+
readonly runtimeFailure: RuntimeFailure;
|
|
15
|
+
constructor(stage: RuntimeFailureStage, code: RuntimeFailureReason, message: string);
|
|
16
|
+
}
|
|
7
17
|
/** Reads current Executor evidence through the neutral Executor client protocol. */
|
|
8
18
|
export type AdmissionEvidenceReader = (request: LocalExecutorEvidenceRequest) => Promise<unknown>;
|
|
9
19
|
export interface AdmissionAuthorizationOptions {
|
|
@@ -11,14 +21,49 @@ export interface AdmissionAuthorizationOptions {
|
|
|
11
21
|
readonly readEvidence: AdmissionEvidenceReader;
|
|
12
22
|
readonly environment?: NodeJS.ProcessEnv;
|
|
13
23
|
readonly now?: () => Date;
|
|
14
|
-
/**
|
|
15
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Reads the current repository branch-policy input from the Executor owner
|
|
26
|
+
* (#1179). Admission verifies every observed Session binding against this
|
|
27
|
+
* current evidence; it never accepts a caller-supplied observation.
|
|
28
|
+
*/
|
|
29
|
+
readonly readBranchPolicy?: (request: LocalExecutorBranchPolicyRequest) => Promise<unknown>;
|
|
16
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Current, owner-acquired branch-policy input for one governed Implementation.
|
|
33
|
+
*
|
|
34
|
+
* #1213: when the owner projects the Implementation's canonical Source set,
|
|
35
|
+
* Admission attaches the certificate-safe projection of the current authorized
|
|
36
|
+
* Implementation carrying that set. The Session launcher signs it as the upper
|
|
37
|
+
* bound of Source-rooted change.* capabilities; the Session task stays the
|
|
38
|
+
* Implementation. The projected set must equal the owner's parsed set.
|
|
39
|
+
*/
|
|
40
|
+
export declare function currentBranchPolicyInput(repository: SessionCertificateRepository, implementation: number, options: AdmissionAuthorizationOptions, stage: RuntimeFailureStage): Promise<LocalBranchPolicyInput>;
|
|
17
41
|
export interface AdmittedSession {
|
|
18
42
|
readonly id: string;
|
|
19
43
|
readonly status: string;
|
|
20
44
|
readonly exp: number;
|
|
21
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Repository-bound Session readiness (#1182): the same current Executor
|
|
48
|
+
* repository binding and protected-ref trust evidence Session registration
|
|
49
|
+
* requires, for the Authority the caller expects Admission to have pinned. It
|
|
50
|
+
* admits nothing and stores nothing; every failure throws a bounded denial.
|
|
51
|
+
*/
|
|
52
|
+
export declare function observeRepositoryReadiness(repository: SessionCertificateRepository, expectedAuthority: {
|
|
53
|
+
readonly id: string;
|
|
54
|
+
readonly publicKeyFingerprint: string;
|
|
55
|
+
}, options: AdmissionAuthorizationOptions): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* A read on behalf of an active Session (#1181): the Session exists, is active
|
|
58
|
+
* and is bound to exactly the requested repository. It authorizes no effect.
|
|
59
|
+
*/
|
|
60
|
+
export declare function requireActiveSessionRepository(sessionId: string, repository: SessionCertificateRepository, options: AdmissionAuthorizationOptions): LocalSessionBinding;
|
|
61
|
+
/**
|
|
62
|
+
* The current Change projection of the Session's Implementation (#1181), from
|
|
63
|
+
* the same Executor evidence and Authority/repository checks every execution
|
|
64
|
+
* uses. Read-only; it authorizes nothing.
|
|
65
|
+
*/
|
|
66
|
+
export declare function currentSessionChange(binding: LocalSessionBinding, options: AdmissionAuthorizationOptions): Promise<ChangeProjectionResult>;
|
|
22
67
|
/** Admits a validated Session binding against current Executor trust evidence. */
|
|
23
68
|
export declare function admitSession(binding: LocalSessionBinding, options: AdmissionAuthorizationOptions): Promise<AdmittedSession>;
|
|
24
69
|
/** Closes a validated Session binding against current Executor trust evidence. */
|
|
@@ -20,25 +20,80 @@ import { createAuthorizedExecution } from "../authorized-execution.js";
|
|
|
20
20
|
import { changeReadRequest } from "../change-execution-port.js";
|
|
21
21
|
import { validateChangeProjectionResult } from "../change.js";
|
|
22
22
|
import { tryAuthorizeImplementation } from "../implementation-authorization.js";
|
|
23
|
-
import { projectImplementationSessionAuthorizationBinding } from "../implementation-session-binding.js";
|
|
23
|
+
import { projectImplementationSessionAuthorizationBinding, } from "../implementation-session-binding.js";
|
|
24
24
|
import { tryProjectImplementationScope } from "../implementation-scope-projection.js";
|
|
25
25
|
import { assertTrustedExecution, validateIssuerRepositoryIdentity, } from "../github/effect-authorizer.js";
|
|
26
|
-
import { observeLocalBranch } from "../cli/runtime/branch-observation.js";
|
|
27
|
-
|
|
26
|
+
import { observeLocalBranch, validateLocalBranchPolicyInput, } from "../cli/runtime/branch-observation.js";
|
|
27
|
+
import { runtimeFailure, } from "../runtime-contracts/runtime-failure.js";
|
|
28
|
+
/** Bounded Admission denial carrying the owner stage and catalog reason (#1180). */
|
|
29
|
+
export class AdmissionAuthorizationError extends Error {
|
|
30
|
+
code;
|
|
31
|
+
runtimeFailure;
|
|
32
|
+
constructor(stage, code, message) {
|
|
33
|
+
super(message);
|
|
34
|
+
this.name = "AdmissionAuthorizationError";
|
|
35
|
+
this.code = code;
|
|
36
|
+
this.runtimeFailure = runtimeFailure(stage, code);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function deny(stage, code, message) {
|
|
40
|
+
throw new AdmissionAuthorizationError(stage, code, message);
|
|
41
|
+
}
|
|
42
|
+
/** Current owner-read branch-policy input; the owner never supplies an Implementation binding. */
|
|
43
|
+
async function readCurrentBranchPolicyInput(repository, implementation, options, stage) {
|
|
44
|
+
if (options.readBranchPolicy === undefined)
|
|
45
|
+
deny(stage, "ADMISSION_BRANCH_OBSERVATION_MISSING", "Current repository branch observation is missing.");
|
|
46
|
+
const input = validateLocalBranchPolicyInput(await options.readBranchPolicy({ version: 1, repository: evidenceRepository(repository), implementation }));
|
|
47
|
+
if (input === undefined || input.implementationBinding !== undefined)
|
|
48
|
+
deny(stage, "ADMISSION_BRANCH_OBSERVATION_STALE", "Current repository branch observation is invalid or stale.");
|
|
49
|
+
return input;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Current, owner-acquired branch-policy input for one governed Implementation.
|
|
53
|
+
*
|
|
54
|
+
* #1213: when the owner projects the Implementation's canonical Source set,
|
|
55
|
+
* Admission attaches the certificate-safe projection of the current authorized
|
|
56
|
+
* Implementation carrying that set. The Session launcher signs it as the upper
|
|
57
|
+
* bound of Source-rooted change.* capabilities; the Session task stays the
|
|
58
|
+
* Implementation. The projected set must equal the owner's parsed set.
|
|
59
|
+
*/
|
|
60
|
+
export async function currentBranchPolicyInput(repository, implementation, options, stage) {
|
|
61
|
+
const input = await readCurrentBranchPolicyInput(repository, implementation, options, stage);
|
|
62
|
+
if (input.sources === undefined)
|
|
63
|
+
return input;
|
|
64
|
+
const pinned = options.runtimeAuthority;
|
|
65
|
+
const subject = {
|
|
66
|
+
repository,
|
|
67
|
+
authority: { id: pinned.id, publicKeyFingerprint: delegatorPublicKeyFingerprint(pinned.key) },
|
|
68
|
+
};
|
|
69
|
+
const evidence = validateEvidence(await options.readEvidence({
|
|
70
|
+
version: 1,
|
|
71
|
+
repository: evidenceRepository(repository),
|
|
72
|
+
authorityId: pinned.id,
|
|
73
|
+
issue: implementation,
|
|
74
|
+
implementationIssue: implementation,
|
|
75
|
+
}), subject, pinned, stage);
|
|
76
|
+
const current = currentImplementationAuthorization(evidence, { kind: "issue", number: implementation }, true, stage);
|
|
77
|
+
if (current.binding.sources === undefined ||
|
|
78
|
+
canonicalJsonString(current.binding.sources) !==
|
|
79
|
+
canonicalJsonString(input.sources))
|
|
80
|
+
deny(stage, "ADMISSION_BRANCH_OBSERVATION_STALE", "Current Implementation Source evidence is inconsistent.");
|
|
81
|
+
return Object.freeze({ ...input, implementationBinding: current.binding });
|
|
82
|
+
}
|
|
83
|
+
async function requireCurrentBranchObservation(binding, options, stage) {
|
|
28
84
|
if (binding.branchObservation === undefined)
|
|
29
85
|
return;
|
|
30
|
-
|
|
31
|
-
throw new Error("Current repository branch observation is missing.");
|
|
86
|
+
const input = await readCurrentBranchPolicyInput(binding.repository, binding.task.number, options, stage);
|
|
32
87
|
let current;
|
|
33
88
|
try {
|
|
34
|
-
current = observeLocalBranch(
|
|
89
|
+
current = observeLocalBranch({ ...input, observedBranch: binding.branchObservation.observedBranch });
|
|
35
90
|
}
|
|
36
91
|
catch {
|
|
37
|
-
|
|
92
|
+
deny(stage, "ADMISSION_BRANCH_OBSERVATION_STALE", "Current repository branch observation is invalid or stale.");
|
|
38
93
|
}
|
|
39
94
|
if (canonicalJsonString(current) !==
|
|
40
95
|
canonicalJsonString(binding.branchObservation))
|
|
41
|
-
|
|
96
|
+
deny(stage, "ADMISSION_BRANCH_OBSERVATION_CONTRADICTED", "Current repository branch observation contradicts Session binding.");
|
|
42
97
|
}
|
|
43
98
|
function isRecord(value) {
|
|
44
99
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -46,12 +101,29 @@ function isRecord(value) {
|
|
|
46
101
|
function exactKeys(value, allowed) {
|
|
47
102
|
return Object.keys(value).every((key) => allowed.includes(key));
|
|
48
103
|
}
|
|
49
|
-
function pinnedRuntimeAuthority(value) {
|
|
104
|
+
function pinnedRuntimeAuthority(value, stage) {
|
|
50
105
|
const result = validateDelegator(value);
|
|
51
106
|
if (!result.valid || result.value === undefined)
|
|
52
|
-
|
|
107
|
+
deny(stage, "ADMISSION_EVIDENCE_MALFORMED", "Public Runtime Authority trust is invalid.");
|
|
53
108
|
return result.value;
|
|
54
109
|
}
|
|
110
|
+
function requirePinnedAuthorityMatch(current, binding, pinnedAuthority, stage) {
|
|
111
|
+
if (current.id !== binding.authority.id ||
|
|
112
|
+
delegatorPublicKeyFingerprint(current.key) !== binding.authority.publicKeyFingerprint ||
|
|
113
|
+
canonicalJsonString(current) !==
|
|
114
|
+
canonicalJsonString(pinnedAuthority))
|
|
115
|
+
deny(stage, "ADMISSION_RUNTIME_AUTHORITY_MISMATCH", "Current Runtime Authority trust does not match Admission configuration.");
|
|
116
|
+
}
|
|
117
|
+
function requireAuthorityRef(authority, stage) {
|
|
118
|
+
if (!isRecord(authority) ||
|
|
119
|
+
!exactKeys(authority, ["ref", "sha"]) ||
|
|
120
|
+
typeof authority.ref !== "string" ||
|
|
121
|
+
!/^refs\/heads\/[A-Za-z0-9._/-]+$/u.test(authority.ref) ||
|
|
122
|
+
typeof authority.sha !== "string" ||
|
|
123
|
+
!/^[a-f0-9]{40}$/u.test(authority.sha))
|
|
124
|
+
deny(stage, "ADMISSION_EVIDENCE_MALFORMED", "Executor Authority evidence is malformed.");
|
|
125
|
+
return { ref: authority.ref, sha: authority.sha };
|
|
126
|
+
}
|
|
55
127
|
function sameRepository(left, right) {
|
|
56
128
|
if (!isRecord(left))
|
|
57
129
|
return false;
|
|
@@ -114,32 +186,21 @@ function readTreeDelta(intent) {
|
|
|
114
186
|
changes: request.changes.map((change) => ({ operation: "modify", path: change.path })),
|
|
115
187
|
};
|
|
116
188
|
}
|
|
117
|
-
function validateEvidence(value, binding, pinnedAuthority) {
|
|
189
|
+
function validateEvidence(value, binding, pinnedAuthority, stage = "implementation-admission") {
|
|
118
190
|
if (!isRecord(value) ||
|
|
119
191
|
!exactKeys(value, ["repository", "authority", "runtimeAuthority", "change", "implementation", "reviewEvidence"]))
|
|
120
|
-
|
|
192
|
+
deny(stage, "ADMISSION_EVIDENCE_MALFORMED", "Executor evidence response is malformed.");
|
|
121
193
|
const repositoryResult = validateIssuerRepositoryIdentity(value.repository);
|
|
122
194
|
if (!repositoryResult.valid ||
|
|
123
195
|
repositoryResult.value === undefined ||
|
|
124
196
|
!sameRepository(repositoryResult.value, binding.repository))
|
|
125
|
-
|
|
126
|
-
const authority = value.authority;
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
typeof authority.ref !== "string" ||
|
|
130
|
-
!/^refs\/heads\/[A-Za-z0-9._/-]+$/u.test(authority.ref) ||
|
|
131
|
-
typeof authority.sha !== "string" ||
|
|
132
|
-
!/^[a-f0-9]{40}$/u.test(authority.sha))
|
|
133
|
-
throw new Error("Executor Authority evidence is malformed.");
|
|
134
|
-
const runtime = pinnedRuntimeAuthority(value.runtimeAuthority);
|
|
135
|
-
if (runtime.id !== binding.authority.id ||
|
|
136
|
-
delegatorPublicKeyFingerprint(runtime.key) !== binding.authority.publicKeyFingerprint ||
|
|
137
|
-
canonicalJsonString(runtime) !==
|
|
138
|
-
canonicalJsonString(pinnedAuthority))
|
|
139
|
-
throw new Error("Current Runtime Authority trust does not match Admission configuration.");
|
|
197
|
+
deny(stage, "ADMISSION_REPOSITORY_MISMATCH", "Executor repository evidence does not match Session.");
|
|
198
|
+
const authority = requireAuthorityRef(value.authority, stage);
|
|
199
|
+
const runtime = pinnedRuntimeAuthority(value.runtimeAuthority, stage);
|
|
200
|
+
requirePinnedAuthorityMatch(runtime, binding, pinnedAuthority, stage);
|
|
140
201
|
const projection = validateChangeProjectionResult(value.change);
|
|
141
202
|
if (!projection.valid || projection.projection === undefined)
|
|
142
|
-
|
|
203
|
+
deny(stage, "ADMISSION_EVIDENCE_MALFORMED", "Current Change evidence is malformed.");
|
|
143
204
|
if (!isRecord(value.implementation) ||
|
|
144
205
|
!exactKeys(value.implementation, [
|
|
145
206
|
"implementation",
|
|
@@ -150,37 +211,27 @@ function validateEvidence(value, binding, pinnedAuthority) {
|
|
|
150
211
|
"change",
|
|
151
212
|
"pullRequest",
|
|
152
213
|
]))
|
|
153
|
-
|
|
214
|
+
deny(stage, "ADMISSION_EVIDENCE_MALFORMED", "Current Implementation evidence is malformed.");
|
|
154
215
|
return {
|
|
155
216
|
repository: repositoryResult.value,
|
|
156
|
-
authority
|
|
217
|
+
authority,
|
|
157
218
|
change: projection.projection,
|
|
158
219
|
implementation: value.implementation,
|
|
159
220
|
...(value.reviewEvidence === undefined ? {} : { reviewEvidence: value.reviewEvidence }),
|
|
160
221
|
};
|
|
161
222
|
}
|
|
162
|
-
function validateTrustEvidence(value,
|
|
223
|
+
function validateTrustEvidence(value, subject, pinnedAuthority) {
|
|
224
|
+
const stage = "trust-evidence";
|
|
163
225
|
if (!isRecord(value) || !exactKeys(value, ["repository", "authority", "runtimeAuthority"]))
|
|
164
|
-
|
|
165
|
-
if (!sameRepository(value.repository,
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
typeof authority.ref !== "string" ||
|
|
171
|
-
!/^refs\/heads\/[A-Za-z0-9._/-]+$/u.test(authority.ref) ||
|
|
172
|
-
typeof authority.sha !== "string" ||
|
|
173
|
-
!/^[a-f0-9]{40}$/u.test(authority.sha))
|
|
174
|
-
throw new Error("Executor Authority evidence is malformed.");
|
|
175
|
-
const current = pinnedRuntimeAuthority(value.runtimeAuthority);
|
|
176
|
-
if (current.id !== binding.authority.id ||
|
|
177
|
-
delegatorPublicKeyFingerprint(current.key) !== binding.authority.publicKeyFingerprint ||
|
|
178
|
-
canonicalJsonString(current) !==
|
|
179
|
-
canonicalJsonString(pinnedAuthority))
|
|
180
|
-
throw new Error("Current Runtime Authority trust does not match Admission configuration.");
|
|
226
|
+
deny(stage, "ADMISSION_EVIDENCE_MALFORMED", "Executor Runtime Authority evidence is malformed.");
|
|
227
|
+
if (!sameRepository(value.repository, subject.repository))
|
|
228
|
+
deny(stage, "ADMISSION_REPOSITORY_MISMATCH", "Executor repository evidence does not match Session.");
|
|
229
|
+
requireAuthorityRef(value.authority, stage);
|
|
230
|
+
const current = pinnedRuntimeAuthority(value.runtimeAuthority, stage);
|
|
231
|
+
requirePinnedAuthorityMatch(current, subject, pinnedAuthority, stage);
|
|
181
232
|
return current;
|
|
182
233
|
}
|
|
183
|
-
function currentImplementationAuthorization(evidence,
|
|
234
|
+
function currentImplementationAuthorization(evidence, task, includeSources, stage = "implementation-admission") {
|
|
184
235
|
const implementationEvidence = evidence.implementation;
|
|
185
236
|
const authorizationInput = {
|
|
186
237
|
implementation: implementationEvidence.implementation,
|
|
@@ -190,17 +241,59 @@ function currentImplementationAuthorization(evidence, binding) {
|
|
|
190
241
|
readiness: implementationEvidence.readiness,
|
|
191
242
|
};
|
|
192
243
|
const authorization = tryAuthorizeImplementation(authorizationInput);
|
|
193
|
-
if (!authorization.valid ||
|
|
194
|
-
|
|
244
|
+
if (!authorization.valid ||
|
|
245
|
+
authorization.status !== "authorized" ||
|
|
246
|
+
authorization.authorization === undefined ||
|
|
247
|
+
authorization.contract === undefined)
|
|
248
|
+
deny(stage, "ADMISSION_IMPLEMENTATION_UNAUTHORIZED", "Current Implementation is not authorized.");
|
|
195
249
|
const currentInput = { ...authorizationInput, authorization: authorization.authorization };
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
250
|
+
let bindingProjection;
|
|
251
|
+
try {
|
|
252
|
+
bindingProjection = projectImplementationSessionAuthorizationBinding({
|
|
253
|
+
...currentInput,
|
|
254
|
+
task,
|
|
255
|
+
...(includeSources ? { includeSources: true } : {}),
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
catch {
|
|
259
|
+
deny(stage, "ADMISSION_IMPLEMENTATION_UNAUTHORIZED", "Current Implementation is not authorized.");
|
|
260
|
+
}
|
|
200
261
|
const scope = tryProjectImplementationScope(currentInput);
|
|
201
262
|
if (!scope.valid || scope.projection === undefined)
|
|
202
|
-
|
|
203
|
-
return { binding: bindingProjection, scope: scope.projection };
|
|
263
|
+
deny(stage, "ADMISSION_IMPLEMENTATION_SCOPE_UNAVAILABLE", "Current Implementation scope is unavailable.");
|
|
264
|
+
return { binding: bindingProjection, scope: scope.projection, sources: authorization.contract.sources };
|
|
265
|
+
}
|
|
266
|
+
const CHANGE_OPERATIONS = new Set([
|
|
267
|
+
"change.show",
|
|
268
|
+
"change.issue",
|
|
269
|
+
"change.ready",
|
|
270
|
+
"change.abort",
|
|
271
|
+
"change.merge",
|
|
272
|
+
]);
|
|
273
|
+
function sameRepositorySource(source, repository, issue) {
|
|
274
|
+
return (source.repositoryHost.toLowerCase() === "github.com" &&
|
|
275
|
+
source.repositoryId === repository.id &&
|
|
276
|
+
source.number === issue);
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* #1213: a Change operation's root must be an exact same-repository member of
|
|
280
|
+
* the signed Session Source set. There is no primary Source. The task-bound
|
|
281
|
+
* compatibility claim of a Source-bound Session is never a Change root. A
|
|
282
|
+
* legacy Session without a signed Source set keeps its task-rooted identity.
|
|
283
|
+
*/
|
|
284
|
+
function requireSignedChangeRoot(binding, issue) {
|
|
285
|
+
const signed = binding.implementationBinding?.sources;
|
|
286
|
+
if (signed === undefined) {
|
|
287
|
+
if (binding.task.number !== issue)
|
|
288
|
+
deny("implementation-admission", "ADMISSION_TASK_MISMATCH", "Execution task does not match Session.");
|
|
289
|
+
}
|
|
290
|
+
else if (!signed.some((source) => sameRepositorySource(source, binding.repository, issue)))
|
|
291
|
+
deny("implementation-admission", "ADMISSION_TASK_MISMATCH", "Change root is not a Session Source.");
|
|
292
|
+
}
|
|
293
|
+
/** The Change root must also still be a same-repository Source of the current Implementation contract. */
|
|
294
|
+
function requireCurrentChangeRoot(binding, issue, currentSources) {
|
|
295
|
+
if (!currentSources.some((source) => sameRepositorySource(source, binding.repository, issue)))
|
|
296
|
+
deny("implementation-admission", "ADMISSION_TASK_MISMATCH", "Change root is not a current Implementation Source.");
|
|
204
297
|
}
|
|
205
298
|
async function currentTrust(binding, options) {
|
|
206
299
|
const evidence = await options.readEvidence({
|
|
@@ -210,9 +303,65 @@ async function currentTrust(binding, options) {
|
|
|
210
303
|
});
|
|
211
304
|
return validateTrustEvidence(evidence, binding, options.runtimeAuthority);
|
|
212
305
|
}
|
|
306
|
+
/**
|
|
307
|
+
* Repository-bound Session readiness (#1182): the same current Executor
|
|
308
|
+
* repository binding and protected-ref trust evidence Session registration
|
|
309
|
+
* requires, for the Authority the caller expects Admission to have pinned. It
|
|
310
|
+
* admits nothing and stores nothing; every failure throws a bounded denial.
|
|
311
|
+
*/
|
|
312
|
+
export async function observeRepositoryReadiness(repository, expectedAuthority, options) {
|
|
313
|
+
const pinned = options.runtimeAuthority;
|
|
314
|
+
if (pinned.id !== expectedAuthority.id ||
|
|
315
|
+
delegatorPublicKeyFingerprint(pinned.key) !== expectedAuthority.publicKeyFingerprint)
|
|
316
|
+
deny("trust-evidence", "ADMISSION_RUNTIME_AUTHORITY_MISMATCH", "The Authority Admission pins differs from the configured setup Authority.");
|
|
317
|
+
const subject = {
|
|
318
|
+
repository,
|
|
319
|
+
authority: { id: pinned.id, publicKeyFingerprint: expectedAuthority.publicKeyFingerprint },
|
|
320
|
+
};
|
|
321
|
+
const evidence = await options.readEvidence({
|
|
322
|
+
version: 1,
|
|
323
|
+
repository: evidenceRepository(repository),
|
|
324
|
+
authorityId: pinned.id,
|
|
325
|
+
});
|
|
326
|
+
validateTrustEvidence(evidence, subject, pinned);
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* A read on behalf of an active Session (#1181): the Session exists, is active
|
|
330
|
+
* and is bound to exactly the requested repository. It authorizes no effect.
|
|
331
|
+
*/
|
|
332
|
+
export function requireActiveSessionRepository(sessionId, repository, options) {
|
|
333
|
+
const stored = readAdmissionSession(sessionId, options.runtimeAuthority, {
|
|
334
|
+
environment: options.environment,
|
|
335
|
+
now: options.now?.(),
|
|
336
|
+
});
|
|
337
|
+
if (stored === undefined || stored.status !== "active")
|
|
338
|
+
deny("implementation-admission", "ADMISSION_SESSION_UNAVAILABLE", "Session is unavailable.");
|
|
339
|
+
const binding = stored.record.binding;
|
|
340
|
+
if (binding.repository.id !== repository.id ||
|
|
341
|
+
binding.repository.name.toLocaleLowerCase("en-US") !== repository.name.toLocaleLowerCase("en-US"))
|
|
342
|
+
deny("implementation-admission", "ADMISSION_TASK_MISMATCH", "The read repository does not match the Session.");
|
|
343
|
+
return binding;
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* The current Change projection of the Session's Implementation (#1181), from
|
|
347
|
+
* the same Executor evidence and Authority/repository checks every execution
|
|
348
|
+
* uses. Read-only; it authorizes nothing.
|
|
349
|
+
*/
|
|
350
|
+
export async function currentSessionChange(binding, options) {
|
|
351
|
+
if (binding.task.kind !== "issue")
|
|
352
|
+
deny("implementation-admission", "ADMISSION_TASK_MISMATCH", "The Session has no Implementation task.");
|
|
353
|
+
const evidence = validateEvidence(await options.readEvidence({
|
|
354
|
+
version: 1,
|
|
355
|
+
repository: evidenceRepository(binding.repository),
|
|
356
|
+
authorityId: binding.authority.id,
|
|
357
|
+
issue: binding.task.number,
|
|
358
|
+
implementationIssue: binding.task.number,
|
|
359
|
+
}), binding, options.runtimeAuthority);
|
|
360
|
+
return evidence.change;
|
|
361
|
+
}
|
|
213
362
|
/** Admits a validated Session binding against current Executor trust evidence. */
|
|
214
363
|
export async function admitSession(binding, options) {
|
|
215
|
-
requireCurrentBranchObservation(binding, options);
|
|
364
|
+
await requireCurrentBranchObservation(binding, options, "session-registration");
|
|
216
365
|
const current = await currentTrust(binding, options);
|
|
217
366
|
const snapshot = createAdmissionSession(binding, current, {
|
|
218
367
|
environment: options.environment,
|
|
@@ -240,18 +389,23 @@ export async function authorizeExecutionIntent(intent, sessionId, options) {
|
|
|
240
389
|
now: options.now?.(),
|
|
241
390
|
});
|
|
242
391
|
if (stored === undefined || stored.status !== "active")
|
|
243
|
-
|
|
392
|
+
deny("implementation-admission", "ADMISSION_SESSION_UNAVAILABLE", "Session is unavailable.");
|
|
244
393
|
const binding = stored.record.binding;
|
|
245
|
-
requireCurrentBranchObservation(binding, options);
|
|
394
|
+
await requireCurrentBranchObservation(binding, options, "implementation-admission");
|
|
246
395
|
if (binding.branchObservation !== undefined &&
|
|
247
396
|
intent.operation === "branch.advance" &&
|
|
248
397
|
intent.request.branch !== binding.branchObservation.expectedBranch)
|
|
249
|
-
|
|
398
|
+
deny("implementation-admission", "ADMISSION_BRANCH_SCOPE_DENIED", "Branch advance does not match the Session policy branch.");
|
|
250
399
|
if (!intentRepositoryMatchesBinding(intent.repository, binding.repository))
|
|
251
|
-
|
|
400
|
+
deny("implementation-admission", "ADMISSION_TASK_MISMATCH", "Execution repository does not match Session.");
|
|
252
401
|
const issue = executionIntentIssue(intent);
|
|
253
|
-
|
|
254
|
-
|
|
402
|
+
const changeOperation = CHANGE_OPERATIONS.has(intent.operation);
|
|
403
|
+
// The Implementation task is the Session identity; a Change operation's root
|
|
404
|
+
// is validated below against current and signed Source evidence instead.
|
|
405
|
+
if (issue === undefined || binding.task.kind !== "issue" || (!changeOperation && binding.task.number !== issue))
|
|
406
|
+
deny("implementation-admission", "ADMISSION_TASK_MISMATCH", "Execution task does not match Session.");
|
|
407
|
+
if (changeOperation)
|
|
408
|
+
requireSignedChangeRoot(binding, issue);
|
|
255
409
|
const evidenceValue = await options.readEvidence({
|
|
256
410
|
version: 1,
|
|
257
411
|
repository: evidenceRepository(binding.repository),
|
|
@@ -260,7 +414,17 @@ export async function authorizeExecutionIntent(intent, sessionId, options) {
|
|
|
260
414
|
implementationIssue: binding.task.number,
|
|
261
415
|
});
|
|
262
416
|
const evidence = validateEvidence(evidenceValue, binding, options.runtimeAuthority);
|
|
263
|
-
const
|
|
417
|
+
const sourceBound = binding.implementationBinding?.sources !== undefined;
|
|
418
|
+
const current = currentImplementationAuthorization(evidence, binding.task, sourceBound);
|
|
419
|
+
if (sourceBound &&
|
|
420
|
+
(binding.implementationBinding === undefined ||
|
|
421
|
+
binding.implementationBinding.task.number !== binding.task.number ||
|
|
422
|
+
binding.implementationBinding.authorization.implementation.number !==
|
|
423
|
+
current.binding.authorization.implementation.number ||
|
|
424
|
+
binding.implementationBinding.repository.repositoryId !== current.binding.repository.repositoryId))
|
|
425
|
+
deny("implementation-admission", "ADMISSION_TASK_MISMATCH", "Signed Implementation binding does not match.");
|
|
426
|
+
if (changeOperation)
|
|
427
|
+
requireCurrentChangeRoot(binding, issue, current.sources);
|
|
264
428
|
const operation = capabilityOperation(intent);
|
|
265
429
|
const nowSeconds = Math.floor((options.now?.() ?? new Date()).getTime() / 1000);
|
|
266
430
|
const context = {
|
|
@@ -268,19 +432,33 @@ export async function authorizeExecutionIntent(intent, sessionId, options) {
|
|
|
268
432
|
implementationBinding: current.binding,
|
|
269
433
|
implementationScope: current.scope,
|
|
270
434
|
};
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
435
|
+
let admission;
|
|
436
|
+
try {
|
|
437
|
+
admission = admitAuthenticatedSessionCapability({
|
|
438
|
+
context,
|
|
439
|
+
operation,
|
|
440
|
+
subject: intentSubject(intent),
|
|
441
|
+
projection: evidence.change,
|
|
442
|
+
...(readTreeDelta(intent) === undefined ? {} : { treeDelta: readTreeDelta(intent) }),
|
|
443
|
+
...(evidence.reviewEvidence === undefined ? {} : { reviewEvidence: evidence.reviewEvidence }),
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
catch (error) {
|
|
447
|
+
// Keep the capability owner's own denial (name/reason) and attach the bounded wire diagnostic.
|
|
448
|
+
if (error instanceof Error) {
|
|
449
|
+
Object.defineProperty(error, "runtimeFailure", {
|
|
450
|
+
value: runtimeFailure("implementation-admission", "ADMISSION_CAPABILITY_DENIED"),
|
|
451
|
+
enumerable: false,
|
|
452
|
+
});
|
|
453
|
+
throw error;
|
|
454
|
+
}
|
|
455
|
+
deny("implementation-admission", "ADMISSION_CAPABILITY_DENIED", "The Session capability does not authorize this operation.");
|
|
456
|
+
}
|
|
279
457
|
let branchAuthorization;
|
|
280
458
|
if (intent.operation === "branch.advance") {
|
|
281
459
|
const authorized = authorizeBranchAdvance({ context, admission, request: intent.request });
|
|
282
460
|
if (!authorized.valid)
|
|
283
|
-
|
|
461
|
+
deny("implementation-admission", "ADMISSION_BRANCH_SCOPE_DENIED", "Branch advance is outside the current authorized scope.");
|
|
284
462
|
branchAuthorization = authorized.authorization;
|
|
285
463
|
}
|
|
286
464
|
const provenanceRequest = {
|
|
@@ -312,7 +490,10 @@ export async function authorizeExecutionIntent(intent, sessionId, options) {
|
|
|
312
490
|
version: 1,
|
|
313
491
|
operation: intent.operation,
|
|
314
492
|
repository: evidence.repository,
|
|
315
|
-
task
|
|
493
|
+
// The closed AuthorizedExecution task names the execution's own root Issue.
|
|
494
|
+
// A Source-rooted Change (#1213) is identified by its Source subject; the
|
|
495
|
+
// Implementation task is not restated as that root.
|
|
496
|
+
...(binding.task.number === issue ? { task: binding.task } : {}),
|
|
316
497
|
subject: admission.subject,
|
|
317
498
|
capability: admission.capability,
|
|
318
499
|
provenance,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../src/admission/authorization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAGxH,OAAO,EAAE,oBAAoB,EAAwB,MAAM,sCAAsC,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAkB,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EACL,mCAAmC,GAGpC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAqC,MAAM,sCAAsC,CAAC;AACjH,OAAO,EACL,mCAAmC,GAEpC,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EAAE,mBAAmB,EAA2B,MAAM,6BAA6B,CAAC;AAC3F,OAAO,EAAE,yBAAyB,EAA4B,MAAM,4BAA4B,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,8BAA8B,EAA+B,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,0BAA0B,EAAyC,MAAM,oCAAoC,CAAC;AACvH,OAAO,EAAE,gDAAgD,EAAE,MAAM,sCAAsC,CAAC;AACxG,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EACL,sBAAsB,EACtB,gCAAgC,GAEjC,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAgC,MAAM,sCAAsC,CAAC;AAcxG,SAAS,+BAA+B,CAAC,OAA4B,EAAE,OAAsC;IAC3G,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS;QAAE,OAAO;IACpD,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAClH,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,IACE,mBAAmB,CAAC,OAAwC,CAAC;QAC7D,mBAAmB,CAAC,OAAO,CAAC,iBAAkD,CAAC;QAE/E,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;AAC1F,CAAC;AAQD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,SAAS,CAAC,KAA8B,EAAE,OAA0B;IAC3E,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC/G,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC;AAED,SAAS,cAAc,CAAC,IAAa,EAAE,KAAmC;IACxE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,CACL,IAAI,CAAC,cAAc,KAAK,YAAY;QACpC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,EAAE;QAC9B,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS;YAC/B,CAAC,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAC7G,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAwC;IAClE,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,8BAA8B,CACrC,MAAqC,EACrC,OAAqC;IAErC,OAAO,CACL,MAAM,CAAC,cAAc,KAAK,YAAY;QACtC,MAAM,CAAC,YAAY,KAAK,OAAO,CAAC,EAAE;QAClC,CAAC,MAAM,CAAC,uBAAuB,KAAK,SAAS;YAC3C,MAAM,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CACzG,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,OAA4B,EAC5B,UAA8B,EAC9B,SAAyD,EACzD,MAAuB,EACvB,SAAuC,EACvC,UAAkB;IAElB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS;QACT,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,UAAU,GAAG,EAAE;KAC3B,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,UAAU;QACV,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QACxF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QACpF,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS;QACT,OAAO;QACP,eAAe,EAAE,MAAM,CAAC,OAAkE;KAC3F,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAuB;IAClD,OAAO,MAAM,CAAC,SAAS,KAAK,qBAAqB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;AAC9F,CAAC;AAED,SAAS,aAAa,CAAC,MAAuB;IAC5C,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAuC,CAAC;QAC/D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IAC3D,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,KAAK,qBAAqB,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,OAA+B,CAAC;QACvD,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ;YACtF,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;IAChG,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,aAAa,CAAC,MAAuB;IAC5C,IAAI,MAAM,CAAC,SAAS,KAAK,gBAAgB;QAAE,OAAO,SAAS,CAAC;IAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAuC,CAAC;IAC/D,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,QAAiB,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;KAChG,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAc,EACd,OAA4B,EAC5B,eAA0B;IAQ1B,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAEhH,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,MAAM,gBAAgB,GAAG,gCAAgC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5E,IACE,CAAC,gBAAgB,CAAC,KAAK;QACvB,gBAAgB,CAAC,KAAK,KAAK,SAAS;QACpC,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC;QAE3D,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,IACE,CAAC,QAAQ,CAAC,SAAS,CAAC;QACpB,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,SAAS,CAAC,GAAG,KAAK,QAAQ;QACjC,CAAC,kCAAkC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;QACvD,OAAO,SAAS,CAAC,GAAG,KAAK,QAAQ;QACjC,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;QAEtC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC/D,IACE,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE;QACnC,6BAA6B,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,oBAAoB;QACrF,mBAAmB,CAAC,OAAwC,CAAC;YAC3D,mBAAmB,CAAC,eAAgD,CAAC;QAEvE,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAC7F,MAAM,UAAU,GAAG,8BAA8B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS;QAC1D,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;QAC/B,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,EAAE;YAC/B,gBAAgB;YAChB,OAAO;YACP,YAAY;YACZ,MAAM;YACN,WAAW;YACX,QAAQ;YACR,aAAa;SACd,CAAC;QAEF,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,OAAO;QACL,UAAU,EAAE,gBAAgB,CAAC,KAAK;QAClC,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE;QACrD,MAAM,EAAE,UAAU,CAAC,UAAU;QAC7B,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;KACxF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc,EAAE,OAA4B,EAAE,eAA0B;IACrG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACxF,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,IACE,CAAC,QAAQ,CAAC,SAAS,CAAC;QACpB,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,SAAS,CAAC,GAAG,KAAK,QAAQ;QACjC,CAAC,kCAAkC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;QACvD,OAAO,SAAS,CAAC,GAAG,KAAK,QAAQ;QACjC,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;QAEtC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC/D,IACE,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE;QACnC,6BAA6B,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,oBAAoB;QACrF,mBAAmB,CAAC,OAAwC,CAAC;YAC3D,mBAAmB,CAAC,eAAgD,CAAC;QAEvE,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAC7F,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,kCAAkC,CACzC,QAA6C,EAC7C,OAA4B;IAE5B,MAAM,sBAAsB,GAAG,QAAQ,CAAC,cAAc,CAAC;IACvD,MAAM,kBAAkB,GAAqC;QAC3D,cAAc,EAAE,sBAAsB,CAAC,cAAoE;QAC3G,KAAK,EAAE,sBAAsB,CAAC,KAAkD;QAChF,UAAU,EAAE,sBAAsB,CAAC,UAA4D;QAC/F,IAAI,EAAE,sBAAsB,CAAC,IAAgD;QAC7E,SAAS,EAAE,sBAAsB,CAAC,SAAS;KAC5C,CAAC;IACF,MAAM,aAAa,GAAG,0BAA0B,CAAC,kBAAkB,CAAC,CAAC;IACrE,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,MAAM,KAAK,YAAY,IAAI,aAAa,CAAC,aAAa,KAAK,SAAS;QAC5G,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,EAAE,GAAG,kBAAkB,EAAE,aAAa,EAAE,aAAa,CAAC,aAAa,EAAE,CAAC;IAC3F,MAAM,iBAAiB,GAAG,gDAAgD,CAAC;QACzE,GAAG,YAAY;QACf,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,6BAA6B,CAAC,YAAY,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACpH,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;AACjE,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,OAA4B,EAAE,OAAsC;IAC9F,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC;QAC1C,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC;QAClD,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE;KAClC,CAAC,CAAC;IACH,OAAO,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC5E,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAA4B,EAC5B,OAAsC;IAEtC,+BAA+B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE;QACxD,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE;KACrB,CAAC,CAAC;IACH,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAC9G,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAA4B,EAC5B,OAAsC;IAEtC,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE;QACvD,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE;KACrB,CAAC,CAAC;IACH,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC5E,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAuB,EACvB,SAAiB,EACjB,OAAsC;IAEtC,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,EAAE;QACvE,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE;KACrB,CAAC,CAAC;IACH,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACnG,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,+BAA+B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,IACE,OAAO,CAAC,iBAAiB,KAAK,SAAS;QACvC,MAAM,CAAC,SAAS,KAAK,gBAAgB;QACpC,MAAM,CAAC,OAAwC,CAAC,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,cAAc;QAEpG,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK;QACvF,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC;QAC/C,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC;QAClD,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE;QACjC,KAAK;QACL,mBAAmB,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;KACzC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACpF,MAAM,OAAO,GAAG,kCAAkC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG;QACd,GAAG,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC;QAC/F,qBAAqB,EAAE,OAAO,CAAC,OAAO;QACtC,mBAAmB,EAAE,OAAO,CAAC,KAAK;KACK,CAAC;IAC1C,MAAM,SAAS,GAAG,mCAAmC,CAAC;QACpD,OAAO;QACP,SAAS;QACT,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC;QAC9B,UAAU,EAAE,QAAQ,CAAC,MAAM;QAC3B,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QACpF,GAAG,CAAC,QAAQ,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,CAAC;KAC9F,CAAC,CAAC;IACH,IAAI,mBAA4B,CAAC;IACjC,IAAI,MAAM,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,sBAAsB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,UAAU,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAClG,mBAAmB,GAAG,UAAU,CAAC,aAAa,CAAC;IACjD,CAAC;IACD,MAAM,iBAAiB,GAAG;QACxB,GAAG,OAAO,CAAC,OAAO;QAClB,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;IACF,MAAM,UAAU,GAAkC,mCAAmC,CAAC;QACpF,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,YAAY;QACnB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,UAAU,EAAE,SAAS,CAAC,UAAU;KACjC,CAAC,CAAC;IACH,MAAM,uBAAuB,GAAG,sBAAsB,CAAC;QACrD,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,uBAAuB;QAChC,KAAK,EAAE,8BAA8B;QACrC,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,uBAAuB,EAAE,OAAO,CAAC,SAAS;QAC1C,SAAS,EAAE,WAAW,OAAO,CAAC,SAAS,EAAE;KAC1C,CAAC,CAAC;IACH,MAAM,cAAc,GAA4B;QAC9C,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,UAAU;QACV,OAAO,EAAE,MAAM,CAAC,SAAS,KAAK,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO;KACxF,CAAC;IACF,IAAI,MAAM,CAAC,SAAS,KAAK,aAAa;QAAE,cAAc,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC;SACtF,IAAI,MAAM,CAAC,SAAS,KAAK,gBAAgB;QAAE,cAAc,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;;QACpG,cAAc,CAAC,SAAS,GAAG,uBAAuB,CAAC;IACxD,OAAO,yBAAyB,CAAC,cAAc,CAAC,CAAC;AACnD,CAAC"}
|
|
1
|
+
{"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../src/admission/authorization.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import type { Delegator } from "../agent-authority/delegator.js";
|
|
|
11
11
|
import type { AuthorizedExecution } from "../authorized-execution.js";
|
|
12
12
|
import { type RepositoryIdentity } from "../github/effect-authorizer.js";
|
|
13
13
|
import type { LocalAdmissionConfig } from "../local-control/config.js";
|
|
14
|
-
import type
|
|
14
|
+
import { type LocalExecutorBranchPolicyRequest, type LocalExecutorEvidenceRequest, type LocalExecutorGovernedContractRequest } from "../local-control/executor-http.js";
|
|
15
15
|
import { type LocalRuntimeEndpoint } from "../local-control/runtime-discovery.js";
|
|
16
16
|
import { type LocalMtlsIdentity } from "../local-control/transport-security.js";
|
|
17
17
|
export declare const LOCAL_ADMISSION_STATUS_PATH: "/status";
|
|
@@ -20,6 +20,9 @@ export declare const LOCAL_ADMISSION_HEALTH_PATH: "/health";
|
|
|
20
20
|
export declare const LOCAL_ADMISSION_SESSIONS_PATH: "/v1/sessions";
|
|
21
21
|
export declare const LOCAL_ADMISSION_REPOSITORY_PATH: "/v1/repository";
|
|
22
22
|
export declare const LOCAL_ADMISSION_EXECUTIONS_PATH: "/v1/executions";
|
|
23
|
+
export declare const LOCAL_ADMISSION_READINESS_PATH: "/v1/readiness";
|
|
24
|
+
export declare const LOCAL_ADMISSION_BRANCH_POLICY_PATH: "/v1/branch-policy";
|
|
25
|
+
export declare const LOCAL_ADMISSION_PULL_REQUEST_CONTEXT_PATH: "/v1/pull-request-context";
|
|
23
26
|
export declare const LOCAL_ADMISSION_SESSION_ID_HEADER: "x-inari-session-id";
|
|
24
27
|
export declare const MAX_LOCAL_ADMISSION_BODY_BYTES = 1048576;
|
|
25
28
|
/**
|
|
@@ -31,6 +34,8 @@ export interface AdmissionExecutorClient {
|
|
|
31
34
|
verifyReady(): Promise<unknown>;
|
|
32
35
|
resolveRepository?(repositoryNameWithOwner: string): Promise<RepositoryIdentity>;
|
|
33
36
|
readEvidence(request: LocalExecutorEvidenceRequest): Promise<unknown>;
|
|
37
|
+
readBranchPolicy?(request: LocalExecutorBranchPolicyRequest): Promise<unknown>;
|
|
38
|
+
readGovernedContract?(request: LocalExecutorGovernedContractRequest): Promise<unknown>;
|
|
34
39
|
execute(execution: AuthorizedExecution): Promise<unknown>;
|
|
35
40
|
}
|
|
36
41
|
export declare function createLocalAdmissionHttpServer(config: LocalAdmissionConfig, version: string, runtimeAuthority: Delegator, executor: AdmissionExecutorClient, options?: {
|