@floegence/redevplugin-ui 0.7.26 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/capability-client.d.ts +17 -19
- package/dist/capability-client.js +59 -62
- package/dist/contracts.gen.d.ts +26 -119
- package/dist/contracts.gen.js +26 -135
- package/dist/error-codes.gen.d.ts +3 -3
- package/dist/error-codes.gen.js +9 -12
- package/dist/http.js +1 -1
- package/dist/openapi.gen.d.ts +316 -829
- package/dist/platform.d.ts +21 -27
- package/dist/platform.js +23 -92
- package/dist/plugin.d.ts +2 -2
- package/dist/surface.d.ts +42 -45
- package/dist/surface.js +148 -423
- package/dist/trusted-parent.d.ts +1 -1
- package/package.json +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PluginBridgeError } from "./errors.js";
|
|
2
|
-
import type { PluginBridgeClient, PluginBridgeRequestOptions, PluginJSONObject,
|
|
2
|
+
import type { PluginBridgeClient, PluginBridgeRequestOptions, PluginJSONObject, PluginExecutionEvent as PluginRawExecutionEvent, PluginExecutionSnapshot } from "./surface.js";
|
|
3
3
|
export type PluginCapabilitySchema = Readonly<Record<string, unknown>>;
|
|
4
4
|
export type PluginCapabilityEffect = "read" | "write" | "execute" | "delete" | "admin";
|
|
5
5
|
type PluginCapabilityMethodContract = {
|
|
@@ -24,52 +24,50 @@ export type PluginCapabilityBusinessErrorSpec = {
|
|
|
24
24
|
detail_schema_sha256: string;
|
|
25
25
|
schema: PluginCapabilitySchema | null;
|
|
26
26
|
};
|
|
27
|
-
export type
|
|
27
|
+
export type PluginExecutionWaitOptions = {
|
|
28
28
|
signal?: AbortSignal;
|
|
29
29
|
timeoutMs?: number;
|
|
30
30
|
pollIntervalMs?: number;
|
|
31
31
|
};
|
|
32
|
-
export type
|
|
33
|
-
[Status in Extract<
|
|
32
|
+
export type PluginExecutionTerminalStatus = {
|
|
33
|
+
[Status in Extract<PluginExecutionSnapshot["status"], "completed" | "failed" | "canceled" | "orphaned">]: {
|
|
34
34
|
status: Status;
|
|
35
|
-
snapshot: Extract<
|
|
35
|
+
snapshot: Extract<PluginExecutionSnapshot, {
|
|
36
36
|
status: Status;
|
|
37
37
|
}>;
|
|
38
38
|
};
|
|
39
|
-
}[Extract<
|
|
40
|
-
type
|
|
41
|
-
snapshot(options?: PluginBridgeRequestOptions): Promise<
|
|
42
|
-
wait(options?:
|
|
39
|
+
}[Extract<PluginExecutionSnapshot["status"], "completed" | "failed" | "canceled" | "orphaned">];
|
|
40
|
+
type PluginExecutionObservation = {
|
|
41
|
+
snapshot(options?: PluginBridgeRequestOptions): Promise<PluginExecutionSnapshot>;
|
|
42
|
+
wait(options?: PluginExecutionWaitOptions): Promise<PluginExecutionTerminalStatus>;
|
|
43
43
|
};
|
|
44
|
-
export type
|
|
44
|
+
export type PluginExecution<T, Cancelable extends boolean = true> = PluginExecutionObservation & {
|
|
45
45
|
data: T;
|
|
46
|
-
|
|
46
|
+
execution_id: string;
|
|
47
47
|
} & (Cancelable extends true ? {
|
|
48
48
|
cancel(reason?: string, options?: PluginBridgeRequestOptions): Promise<void>;
|
|
49
49
|
} : Record<never, never>);
|
|
50
|
-
export type PluginCapabilityStreamEvent<Event> = Omit<
|
|
50
|
+
export type PluginCapabilityStreamEvent<Event> = Omit<PluginRawExecutionEvent, "payload" | "error"> & {
|
|
51
51
|
data: Event;
|
|
52
52
|
};
|
|
53
53
|
export type PluginCapabilityStreamReadResult<Event> = {
|
|
54
54
|
events: PluginCapabilityStreamEvent<Event>[];
|
|
55
55
|
done: false;
|
|
56
|
-
|
|
56
|
+
cursor: number;
|
|
57
57
|
} | {
|
|
58
58
|
events: PluginCapabilityStreamEvent<Event>[];
|
|
59
59
|
done: true;
|
|
60
|
-
|
|
61
|
-
retry_after_ms: 0;
|
|
60
|
+
cursor: number;
|
|
62
61
|
};
|
|
63
|
-
export type PluginStream<Initial, Event> =
|
|
62
|
+
export type PluginStream<Initial, Event> = PluginExecutionObservation & {
|
|
64
63
|
data: Initial;
|
|
65
|
-
|
|
66
|
-
stream_handle: string;
|
|
64
|
+
execution_id: string;
|
|
67
65
|
read(options?: PluginBridgeRequestOptions): Promise<PluginCapabilityStreamReadResult<Event>>;
|
|
68
66
|
cancel(reason?: string, options?: PluginBridgeRequestOptions): Promise<void>;
|
|
69
67
|
[Symbol.asyncIterator](): AsyncIterableIterator<PluginCapabilityStreamEvent<Event>>;
|
|
70
68
|
};
|
|
71
69
|
export declare function callCapabilitySync<Request extends object, Response>(bridge: PluginBridgeClient, contract: PluginCapabilitySyncContract, request: Request, options?: PluginBridgeRequestOptions): Promise<Response>;
|
|
72
|
-
export declare function callCapabilityOperation<Request extends object, Response, Cancelable extends boolean = true>(bridge: PluginBridgeClient, contract: PluginCapabilityOperationContract<Cancelable>, request: Request, options?: PluginBridgeRequestOptions): Promise<
|
|
70
|
+
export declare function callCapabilityOperation<Request extends object, Response, Cancelable extends boolean = true>(bridge: PluginBridgeClient, contract: PluginCapabilityOperationContract<Cancelable>, request: Request, options?: PluginBridgeRequestOptions): Promise<PluginExecution<Response, Cancelable>>;
|
|
73
71
|
export declare function callCapabilityStream<Request extends object, Response, Event>(bridge: PluginBridgeClient, contract: PluginCapabilityStreamContract, request: Request, options?: PluginBridgeRequestOptions): Promise<PluginStream<Response, Event>>;
|
|
74
72
|
export declare function isCapabilityBusinessError(error: unknown, capabilityID: string, capabilityVersion: string, detailSchemas: Readonly<Record<string, PluginCapabilityBusinessErrorSpec>>): error is PluginBridgeError & {
|
|
75
73
|
readonly details: PluginJSONObject;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PluginBridgeError } from "./errors.js";
|
|
2
2
|
import { callPluginBridgeCapability } from "./bridge-capability.js";
|
|
3
|
-
import {
|
|
3
|
+
import { decodePluginEventText } from "./surface.js";
|
|
4
4
|
export async function callCapabilitySync(bridge, contract, request, options = {}) {
|
|
5
5
|
const params = validateRequest(request, contract.requestSchema);
|
|
6
6
|
const result = parseSyncResult(contract.method, await callPluginBridgeCapability(bridge, contract.method, params, contract.effect, options));
|
|
@@ -15,16 +15,16 @@ export async function callCapabilityOperation(bridge, contract, request, options
|
|
|
15
15
|
}
|
|
16
16
|
catch (error) {
|
|
17
17
|
if (contract.cancelable)
|
|
18
|
-
await cancelAfterResponseMismatch(bridge, result.
|
|
18
|
+
await cancelAfterResponseMismatch(bridge, result.execution_id, error);
|
|
19
19
|
throw error;
|
|
20
20
|
}
|
|
21
|
-
const observation =
|
|
21
|
+
const observation = executionObservation(bridge, result.execution_id);
|
|
22
22
|
return Object.freeze({
|
|
23
23
|
data: data,
|
|
24
|
-
|
|
24
|
+
execution_id: result.execution_id,
|
|
25
25
|
...observation,
|
|
26
26
|
...(contract.cancelable ? {
|
|
27
|
-
cancel: (reason, cancelOptions) => bridge.
|
|
27
|
+
cancel: (reason, cancelOptions) => bridge.cancelExecution(result.execution_id, reason, cancelOptions),
|
|
28
28
|
} : {}),
|
|
29
29
|
});
|
|
30
30
|
}
|
|
@@ -36,12 +36,14 @@ export async function callCapabilityStream(bridge, contract, request, options =
|
|
|
36
36
|
data = validateResponse(contract.method, result.data, contract.responseSchema);
|
|
37
37
|
}
|
|
38
38
|
catch (error) {
|
|
39
|
-
|
|
39
|
+
return cancelAfterResponseMismatch(bridge, result.execution_id, error);
|
|
40
40
|
}
|
|
41
41
|
let settled = false;
|
|
42
|
+
let cursor = 0;
|
|
42
43
|
const read = async (options = {}) => {
|
|
43
44
|
try {
|
|
44
|
-
const batch = decodeCapabilityStreamBatch(contract.method, await bridge.
|
|
45
|
+
const batch = decodeCapabilityStreamBatch(contract.method, await bridge.executionEvents(result.execution_id, cursor, options), contract.eventTypeName, contract.eventSchema);
|
|
46
|
+
cursor = batch.cursor;
|
|
45
47
|
if (batch.done)
|
|
46
48
|
settled = true;
|
|
47
49
|
return batch;
|
|
@@ -50,21 +52,24 @@ export async function callCapabilityStream(bridge, contract, request, options =
|
|
|
50
52
|
if (options.signal?.aborted && error instanceof PluginBridgeError && error.errorCode === "PLUGIN_STREAM_CANCELLED") {
|
|
51
53
|
throw error;
|
|
52
54
|
}
|
|
55
|
+
if (error instanceof PluginBridgeError && error.errorCode === "PLUGIN_STREAM_FAILED") {
|
|
56
|
+
settled = true;
|
|
57
|
+
throw error;
|
|
58
|
+
}
|
|
53
59
|
settled = true;
|
|
54
|
-
return cancelAfterStreamMismatch(bridge, result.
|
|
60
|
+
return cancelAfterStreamMismatch(bridge, result.execution_id, error);
|
|
55
61
|
}
|
|
56
62
|
};
|
|
57
63
|
const cancel = async (reason, cancelOptions = {}) => {
|
|
58
64
|
if (settled)
|
|
59
65
|
return;
|
|
60
|
-
await bridge.
|
|
66
|
+
await bridge.cancelExecution(result.execution_id, reason, cancelOptions);
|
|
61
67
|
settled = true;
|
|
62
68
|
};
|
|
63
|
-
const observation =
|
|
69
|
+
const observation = executionObservation(bridge, result.execution_id);
|
|
64
70
|
return Object.freeze({
|
|
65
71
|
data: data,
|
|
66
|
-
|
|
67
|
-
stream_handle: result.stream_handle,
|
|
72
|
+
execution_id: result.execution_id,
|
|
68
73
|
...observation,
|
|
69
74
|
read,
|
|
70
75
|
cancel,
|
|
@@ -74,14 +79,10 @@ export async function callCapabilityStream(bridge, contract, request, options =
|
|
|
74
79
|
const batch = await read();
|
|
75
80
|
for (const event of batch.events)
|
|
76
81
|
yield event;
|
|
77
|
-
if (batch.done)
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
if (batch.events.length === 0 && batch.retry_after_ms > 0) {
|
|
83
|
-
await new Promise((resolve) => setTimeout(resolve, batch.retry_after_ms));
|
|
84
|
-
}
|
|
82
|
+
if (batch.done)
|
|
83
|
+
return;
|
|
84
|
+
if (batch.events.length === 0)
|
|
85
|
+
await new Promise((resolve) => setTimeout(resolve, 250));
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
88
|
finally {
|
|
@@ -91,8 +92,8 @@ export async function callCapabilityStream(bridge, contract, request, options =
|
|
|
91
92
|
},
|
|
92
93
|
});
|
|
93
94
|
}
|
|
94
|
-
function
|
|
95
|
-
const snapshot = (options = {}) => bridge.
|
|
95
|
+
function executionObservation(bridge, executionID) {
|
|
96
|
+
const snapshot = (options = {}) => bridge.executionSnapshot(executionID, options);
|
|
96
97
|
const wait = async (options = {}) => {
|
|
97
98
|
const timeoutMs = options.timeoutMs ?? 120_000;
|
|
98
99
|
if (!Number.isFinite(timeoutMs) || timeoutMs < 1_000 || timeoutMs > 600_000) {
|
|
@@ -114,22 +115,16 @@ function operationObservation(bridge, operationID) {
|
|
|
114
115
|
catch (error) {
|
|
115
116
|
if (options.signal?.aborted)
|
|
116
117
|
throw operationWaitAborted();
|
|
117
|
-
|
|
118
|
-
throw error;
|
|
119
|
-
const retryAfterMS = operationRetryAfterMS(error.details);
|
|
120
|
-
await operationWaitDelay(Math.max(pollIntervalMs, retryAfterMS), deadline, options.signal);
|
|
121
|
-
pollIntervalMs = Math.min(10_000, Math.ceil(pollIntervalMs * 1.5));
|
|
122
|
-
continue;
|
|
118
|
+
throw error;
|
|
123
119
|
}
|
|
124
120
|
switch (current.status) {
|
|
125
121
|
case "completed":
|
|
126
122
|
case "failed":
|
|
127
123
|
case "canceled":
|
|
128
|
-
case "
|
|
129
|
-
case "orphaned_after_uninstall":
|
|
124
|
+
case "orphaned":
|
|
130
125
|
return { status: current.status, snapshot: current };
|
|
131
126
|
default:
|
|
132
|
-
await operationWaitDelay(
|
|
127
|
+
await operationWaitDelay(pollIntervalMs, deadline, options.signal);
|
|
133
128
|
pollIntervalMs = Math.min(10_000, Math.ceil(pollIntervalMs * 1.5));
|
|
134
129
|
}
|
|
135
130
|
}
|
|
@@ -165,14 +160,6 @@ async function operationSnapshotUntilDeadline(snapshot, deadline, signal) {
|
|
|
165
160
|
signal?.removeEventListener("abort", onAbort);
|
|
166
161
|
}
|
|
167
162
|
}
|
|
168
|
-
function operationRetryAfterMS(details) {
|
|
169
|
-
if (details && typeof details === "object" && !Array.isArray(details)) {
|
|
170
|
-
const retryAfterMS = details.retry_after_ms;
|
|
171
|
-
if (Number.isInteger(retryAfterMS) && Number(retryAfterMS) >= 500 && Number(retryAfterMS) <= 10_000)
|
|
172
|
-
return Number(retryAfterMS);
|
|
173
|
-
}
|
|
174
|
-
return 500;
|
|
175
|
-
}
|
|
176
163
|
function operationWaitAborted() {
|
|
177
164
|
return new PluginBridgeError("PLUGIN_BRIDGE_CANCELLED", "Plugin operation observation was cancelled");
|
|
178
165
|
}
|
|
@@ -204,19 +191,35 @@ function operationWaitDelay(delayMs, deadline, signal) {
|
|
|
204
191
|
});
|
|
205
192
|
}
|
|
206
193
|
function decodeCapabilityStreamBatch(method, batch, eventTypeName, eventSchema) {
|
|
207
|
-
const events =
|
|
208
|
-
|
|
209
|
-
|
|
194
|
+
const events = [];
|
|
195
|
+
let done = false;
|
|
196
|
+
for (const event of batch.events) {
|
|
197
|
+
if (event.kind === "terminal") {
|
|
198
|
+
const status = event.payload?.status;
|
|
199
|
+
if (status !== "completed" && status !== "canceled" && status !== "failed" && status !== "orphaned") {
|
|
200
|
+
throw contractMismatch(method, "stream terminal event has an invalid status");
|
|
201
|
+
}
|
|
202
|
+
done = true;
|
|
203
|
+
if (status === "failed" || status === "orphaned") {
|
|
204
|
+
throw new PluginBridgeError("PLUGIN_STREAM_FAILED", `Plugin stream terminated with status ${status}`, undefined, {
|
|
205
|
+
execution_id: event.execution_id,
|
|
206
|
+
status,
|
|
207
|
+
failure_code: event.error?.code,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
events.push(decodeCapabilityStreamEvent(method, event, eventTypeName, eventSchema));
|
|
210
213
|
}
|
|
211
|
-
return { events, done
|
|
214
|
+
return { events, done, cursor: batch.cursor };
|
|
212
215
|
}
|
|
213
216
|
function decodeCapabilityStreamEvent(method, event, eventTypeName, eventSchema) {
|
|
214
|
-
if (event.kind !==
|
|
217
|
+
if (event.kind !== "data" || event.error !== undefined || event.payload?.event_type !== eventTypeName || typeof event.payload.data !== "string") {
|
|
215
218
|
throw contractMismatch(method, "stream event envelope does not match its published contract");
|
|
216
219
|
}
|
|
217
220
|
let value;
|
|
218
221
|
try {
|
|
219
|
-
value = JSON.parse(
|
|
222
|
+
value = JSON.parse(decodePluginEventText(event));
|
|
220
223
|
}
|
|
221
224
|
catch {
|
|
222
225
|
throw contractMismatch(method, "stream event is not canonical JSON");
|
|
@@ -226,9 +229,9 @@ function decodeCapabilityStreamEvent(method, event, eventTypeName, eventSchema)
|
|
|
226
229
|
}
|
|
227
230
|
return Object.freeze({
|
|
228
231
|
sequence: event.sequence,
|
|
232
|
+
execution_id: event.execution_id,
|
|
229
233
|
kind: event.kind,
|
|
230
234
|
data: value,
|
|
231
|
-
at: event.at,
|
|
232
235
|
});
|
|
233
236
|
}
|
|
234
237
|
function parseSyncResult(method, value) {
|
|
@@ -237,37 +240,36 @@ function parseSyncResult(method, value) {
|
|
|
237
240
|
return value;
|
|
238
241
|
}
|
|
239
242
|
function parseOperationResult(method, value) {
|
|
240
|
-
if (!hasExactKeys(value, ["data", "
|
|
243
|
+
if (!hasExactKeys(value, ["data", "execution_id"]) || !validOpaqueIdentifier(value.execution_id, "execution")) {
|
|
241
244
|
throw contractMismatch(method, "returned an invalid operation result envelope");
|
|
242
245
|
}
|
|
243
|
-
return { data: value.data,
|
|
246
|
+
return { data: value.data, execution_id: value.execution_id };
|
|
244
247
|
}
|
|
245
248
|
function parseStreamResult(method, value) {
|
|
246
|
-
if (!hasExactKeys(value, ["data", "
|
|
247
|
-
!validOpaqueIdentifier(value.operation_id, "operation") || !validOpaqueIdentifier(value.stream_handle, "stream")) {
|
|
249
|
+
if (!hasExactKeys(value, ["data", "execution_id"]) || !validOpaqueIdentifier(value.execution_id, "execution")) {
|
|
248
250
|
throw contractMismatch(method, "returned an invalid subscription result envelope");
|
|
249
251
|
}
|
|
250
|
-
return { data: value.data,
|
|
252
|
+
return { data: value.data, execution_id: value.execution_id };
|
|
251
253
|
}
|
|
252
|
-
async function cancelAfterResponseMismatch(bridge,
|
|
254
|
+
async function cancelAfterResponseMismatch(bridge, executionID, mismatch) {
|
|
253
255
|
try {
|
|
254
|
-
await bridge.
|
|
256
|
+
await bridge.cancelExecution(executionID, "response_contract_mismatch");
|
|
255
257
|
}
|
|
256
258
|
catch (cleanupError) {
|
|
257
259
|
throw new PluginBridgeError("PLUGIN_CONTRACT_MISMATCH", "Capability response failed validation and its live operation could not be cancelled", undefined, {
|
|
258
|
-
|
|
260
|
+
execution_id: executionID,
|
|
259
261
|
cleanup_error: cleanupError instanceof Error ? cleanupError.message : String(cleanupError),
|
|
260
262
|
});
|
|
261
263
|
}
|
|
262
264
|
throw mismatch;
|
|
263
265
|
}
|
|
264
|
-
async function cancelAfterStreamMismatch(bridge,
|
|
266
|
+
async function cancelAfterStreamMismatch(bridge, executionID, mismatch) {
|
|
265
267
|
try {
|
|
266
|
-
await bridge.
|
|
268
|
+
await bridge.cancelExecution(executionID, "stream_contract_mismatch");
|
|
267
269
|
}
|
|
268
270
|
catch (cleanupError) {
|
|
269
271
|
throw new PluginBridgeError("PLUGIN_CONTRACT_MISMATCH", "Capability stream failed validation and its live operation could not be cancelled", undefined, {
|
|
270
|
-
|
|
272
|
+
execution_id: executionID,
|
|
271
273
|
cleanup_error: cleanupError instanceof Error ? cleanupError.message : String(cleanupError),
|
|
272
274
|
});
|
|
273
275
|
}
|
|
@@ -612,11 +614,6 @@ function hasExactKeys(value, keys) {
|
|
|
612
614
|
function validOpaqueIdentifier(value, prefix) {
|
|
613
615
|
return typeof value === "string" && value.startsWith(`${prefix}_`) && value.length >= 8 && value.length <= 160 && /^[-A-Za-z0-9_]+$/.test(value);
|
|
614
616
|
}
|
|
615
|
-
function pluginStreamTerminalError(status) {
|
|
616
|
-
if (status === "failed")
|
|
617
|
-
return new PluginBridgeError("PLUGIN_STREAM_FAILED", "Plugin stream execution failed");
|
|
618
|
-
return new PluginBridgeError("PLUGIN_STREAM_CANCELLED", `Plugin stream ended with status ${status}`);
|
|
619
|
-
}
|
|
620
617
|
const prototypeSensitivePropertyNames = new Set(["__proto__", "constructor", "prototype"]);
|
|
621
618
|
function contractMismatch(method, detail) {
|
|
622
619
|
return new PluginBridgeError("PLUGIN_CONTRACT_MISMATCH", `Capability method ${method} ${detail}`);
|
package/dist/contracts.gen.d.ts
CHANGED
|
@@ -21,14 +21,6 @@ export declare const redevPluginContractVersions: {
|
|
|
21
21
|
readonly release_source_policy_pointer_schema_version: "release-source-policy-pointer-v2";
|
|
22
22
|
readonly release_revocation_schema_version: "release-revocation-v3";
|
|
23
23
|
readonly release_revocation_pointer_schema_version: "release-revocation-pointer-v2";
|
|
24
|
-
readonly release_trust_state_schema_version: "release-trust-state-v1";
|
|
25
|
-
readonly trusted_time_evidence_schema_version: "trusted-time-evidence-v1";
|
|
26
|
-
readonly trusted_time_leaf_schema_version: "trusted-time-leaf-v1";
|
|
27
|
-
readonly release_signing_ledger_schema_version: "release-signing-ledger-v1";
|
|
28
|
-
readonly release_signing_subject_schema_version: "release-signing-subject-v1";
|
|
29
|
-
readonly release_signature_envelope_schema_version: "release-signature-envelope-v1";
|
|
30
|
-
readonly release_signing_ledger_receipt_schema_version: "release-signing-ledger-receipt-v1";
|
|
31
|
-
readonly release_signing_ledger_evidence_schema_version: "release-signing-ledger-evidence-v1";
|
|
32
24
|
readonly token_ticket_schema_version: "token-ticket-v4";
|
|
33
25
|
readonly bridge_schema_version: "bridge-v7";
|
|
34
26
|
readonly opaque_surface_document_schema_version: "opaque-surface-document-v3";
|
|
@@ -37,22 +29,17 @@ export declare const redevPluginContractVersions: {
|
|
|
37
29
|
readonly network_grant_schema_version: "network-grant-v2";
|
|
38
30
|
readonly resource_scope_schema_version: "resource-scope-v1";
|
|
39
31
|
readonly session_scope_schema_version: "session-scope-v1";
|
|
40
|
-
readonly session_scope_maintenance_schema_version: "session-scope-maintenance-v1";
|
|
41
32
|
readonly plugin_platform_openapi_version: "plugin-platform-v15";
|
|
42
33
|
readonly compatibility_manifest_version: "redevplugin.compatibility.v17";
|
|
43
34
|
readonly compatibility_schema_version: "compatibility-manifest-v17";
|
|
44
35
|
readonly worker_invocation_schema_version: "worker-invocation-v3";
|
|
45
36
|
readonly host_capability_contract_schema_version: "host-capability-contract-v1";
|
|
46
37
|
readonly host_capability_pin_schema_version: "host-capability-pin-v1";
|
|
47
|
-
readonly host_capability_manifest_schema_version: "host-capability-manifest-v1";
|
|
48
|
-
readonly host_capability_compatibility_schema_version: "host-capability-compatibility-v1";
|
|
49
|
-
readonly host_capability_signature_schema_version: "host-capability-signature-v1";
|
|
50
|
-
readonly host_capability_notices_schema_version: "host-capability-notices-v1";
|
|
51
38
|
readonly error_codes_schema_version: "error-codes-v8";
|
|
52
39
|
readonly performance_contract_version: "performance-contract-v4";
|
|
53
40
|
readonly performance_evidence_schema_version: "performance-evidence-v4";
|
|
54
41
|
readonly contract_registry_version: "contract-registry-v2";
|
|
55
|
-
readonly platform_package_set_schema_version: "platform-package-set-
|
|
42
|
+
readonly platform_package_set_schema_version: "platform-package-set-v2";
|
|
56
43
|
readonly platform_package_publication_schema_version: "platform-package-publication-v1";
|
|
57
44
|
readonly runtime_admission_schema_version: "runtime-admission-v1";
|
|
58
45
|
readonly runtime_descriptor_schema_version: "runtime-descriptor-v2";
|
|
@@ -74,77 +61,42 @@ export declare const redevPluginContractArtifacts: readonly [{
|
|
|
74
61
|
readonly id: "compatibility-manifest-schema";
|
|
75
62
|
readonly path: "spec/plugin/compatibility-manifest-v17.schema.json";
|
|
76
63
|
readonly version: "compatibility-manifest-v17";
|
|
77
|
-
readonly sha256: "
|
|
64
|
+
readonly sha256: "bc426e034b86ef81f947cae6c2fee838d22913c0066f727acb509fa9cbc22ebd";
|
|
78
65
|
}, {
|
|
79
66
|
readonly id: "contract-registry-schema";
|
|
80
67
|
readonly path: "spec/plugin/contract-registry-v2.schema.json";
|
|
81
68
|
readonly version: "contract-registry-v2";
|
|
82
|
-
readonly sha256: "
|
|
69
|
+
readonly sha256: "664a80c4cb8e6fc30a46be56d66b40eed8f0a894e7ceb469757bdffe93b4ee97";
|
|
83
70
|
}, {
|
|
84
71
|
readonly id: "error-codes-schema";
|
|
85
72
|
readonly path: "spec/plugin/error-codes-v8.schema.json";
|
|
86
73
|
readonly version: "error-codes-v8";
|
|
87
|
-
readonly sha256: "
|
|
74
|
+
readonly sha256: "5ec127f0fdd6e749d8ee342e53796acd04d1c220fb03cca462bd5222c57b5944";
|
|
88
75
|
}, {
|
|
89
76
|
readonly id: "external-signer-request-schema";
|
|
90
77
|
readonly path: "spec/plugin/external-signer-request-v1.schema.json";
|
|
91
78
|
readonly version: "external-signer-request-v1";
|
|
92
|
-
readonly sha256: "
|
|
79
|
+
readonly sha256: "56884e9bb0b00d07fe7e8c52acfc33a4a7bab54f8a02d504f35b00bab42a03fb";
|
|
93
80
|
}, {
|
|
94
81
|
readonly id: "external-signer-response-schema";
|
|
95
82
|
readonly path: "spec/plugin/external-signer-response-v1.schema.json";
|
|
96
83
|
readonly version: "external-signer-response-v1";
|
|
97
|
-
readonly sha256: "
|
|
98
|
-
}, {
|
|
99
|
-
readonly id: "host-capability-compatibility-schema";
|
|
100
|
-
readonly path: "spec/plugin/host-capability-compatibility-v1.schema.json";
|
|
101
|
-
readonly version: "host-capability-compatibility-v1";
|
|
102
|
-
readonly sha256: "361ebbf7009aeb66c763ecde46427b17b6cf7d2307c01886c5987a1f4f1762de";
|
|
84
|
+
readonly sha256: "b3b6d2b3dfe4f9bb680387e4c3a8010faef91d2d12fe28e76e51d5d84703a047";
|
|
103
85
|
}, {
|
|
104
86
|
readonly id: "host-capability-contract-schema";
|
|
105
87
|
readonly path: "spec/plugin/host-capability-contract-v1.schema.json";
|
|
106
88
|
readonly version: "host-capability-contract-v1";
|
|
107
89
|
readonly sha256: "0a653e36d44104f1d16b06ee424648086c146f23c907b176bdf470ae73025485";
|
|
108
|
-
}, {
|
|
109
|
-
readonly id: "host-capability-manifest-schema";
|
|
110
|
-
readonly path: "spec/plugin/host-capability-manifest-v1.schema.json";
|
|
111
|
-
readonly version: "host-capability-manifest-v1";
|
|
112
|
-
readonly sha256: "5f13a8e5f918378b9cba9fdc133a9a75ba3a8311c30cb6a02ca0aba09035110e";
|
|
113
|
-
}, {
|
|
114
|
-
readonly id: "host-capability-notices-schema";
|
|
115
|
-
readonly path: "spec/plugin/host-capability-notices-v1.schema.json";
|
|
116
|
-
readonly version: "host-capability-notices-v1";
|
|
117
|
-
readonly sha256: "6affd5d0ae90239f6fd08cbeddae4eef393efa2838c9e4935874ba3dc0e05948";
|
|
118
90
|
}, {
|
|
119
91
|
readonly id: "host-capability-pin-schema";
|
|
120
92
|
readonly path: "spec/plugin/host-capability-pin-v1.schema.json";
|
|
121
93
|
readonly version: "host-capability-pin-v1";
|
|
122
|
-
readonly sha256: "
|
|
123
|
-
}, {
|
|
124
|
-
readonly id: "host-capability-publisher-config-schema";
|
|
125
|
-
readonly path: "spec/plugin/host-capability-publisher-config-v1.schema.json";
|
|
126
|
-
readonly version: "host-capability-publisher-config-v1";
|
|
127
|
-
readonly sha256: "f06ab3d70f3f9dd2114fe9d489841f1d6b5f169ee17b8c92aa1bfaf9bbf865c4";
|
|
128
|
-
}, {
|
|
129
|
-
readonly id: "host-capability-signature-schema";
|
|
130
|
-
readonly path: "spec/plugin/host-capability-signature-v1.schema.json";
|
|
131
|
-
readonly version: "host-capability-signature-v1";
|
|
132
|
-
readonly sha256: "88cbc1d63afb7e289ca4f8b7c76f702b8d20156f7722c1b71f3ab9138a240a5e";
|
|
133
|
-
}, {
|
|
134
|
-
readonly id: "host-capability-signer-request-schema";
|
|
135
|
-
readonly path: "spec/plugin/host-capability-signer-request-v1.schema.json";
|
|
136
|
-
readonly version: "host-capability-signer-request-v1";
|
|
137
|
-
readonly sha256: "7f22e9e0f813b91106693edfbb91309489dde1640152c29d878961fdef6b89d8";
|
|
138
|
-
}, {
|
|
139
|
-
readonly id: "host-capability-signer-response-schema";
|
|
140
|
-
readonly path: "spec/plugin/host-capability-signer-response-v1.schema.json";
|
|
141
|
-
readonly version: "host-capability-signer-response-v1";
|
|
142
|
-
readonly sha256: "02a50b1fc0d1b8ae0611eab95b5560122c6425709ecc8de5e00bf0dd68085f44";
|
|
94
|
+
readonly sha256: "23591639475c485134c842cae5e53a679dde1b30374a6430ce6e4827be4d18ed";
|
|
143
95
|
}, {
|
|
144
96
|
readonly id: "iframe-bridge-schema";
|
|
145
97
|
readonly path: "spec/plugin/bridge-v7.schema.json";
|
|
146
98
|
readonly version: "bridge-v7";
|
|
147
|
-
readonly sha256: "
|
|
99
|
+
readonly sha256: "5a6e7307f1649eb70d13e83e5d16177458957bffb3262b9299b4cf6d443e284a";
|
|
148
100
|
}, {
|
|
149
101
|
readonly id: "manifest-schema";
|
|
150
102
|
readonly path: "spec/plugin/manifest-v8.schema.json";
|
|
@@ -194,7 +146,7 @@ export declare const redevPluginContractArtifacts: readonly [{
|
|
|
194
146
|
readonly id: "performance-contract";
|
|
195
147
|
readonly path: "spec/plugin/performance-contract-v4.json";
|
|
196
148
|
readonly version: "performance-contract-v4";
|
|
197
|
-
readonly sha256: "
|
|
149
|
+
readonly sha256: "c0c8b3362e6f5878c12dbd0a5766592425d4e69b50ca18c226b6f5851d2c627c";
|
|
198
150
|
}, {
|
|
199
151
|
readonly id: "performance-evidence-schema";
|
|
200
152
|
readonly path: "spec/plugin/performance-evidence-v4.schema.json";
|
|
@@ -204,17 +156,17 @@ export declare const redevPluginContractArtifacts: readonly [{
|
|
|
204
156
|
readonly id: "platform-package-publication-schema";
|
|
205
157
|
readonly path: "spec/plugin/platform-package-publication-v1.schema.json";
|
|
206
158
|
readonly version: "platform-package-publication-v1";
|
|
207
|
-
readonly sha256: "
|
|
159
|
+
readonly sha256: "0f4b6788858c3165b6acc94aeab4f771825317f8b05d82d3d202c5848c3f8fdd";
|
|
208
160
|
}, {
|
|
209
161
|
readonly id: "platform-package-set-schema";
|
|
210
|
-
readonly path: "spec/plugin/platform-package-set-
|
|
211
|
-
readonly version: "platform-package-set-
|
|
212
|
-
readonly sha256: "
|
|
162
|
+
readonly path: "spec/plugin/platform-package-set-v2.schema.json";
|
|
163
|
+
readonly version: "platform-package-set-v2";
|
|
164
|
+
readonly sha256: "ce46ba85443349481d7cf4b73fc70be716035c369e833aaaf2650710536f3ea8";
|
|
213
165
|
}, {
|
|
214
166
|
readonly id: "plugin-platform-openapi";
|
|
215
167
|
readonly path: "spec/openapi/plugin-platform-v15.yaml";
|
|
216
168
|
readonly version: "plugin-platform-v15";
|
|
217
|
-
readonly sha256: "
|
|
169
|
+
readonly sha256: "0c95cbb1352040a90acfd63109fb0e41ac452e36ab03a1c6645097d408344d48";
|
|
218
170
|
}, {
|
|
219
171
|
readonly id: "presentation-icon-evidence-schema";
|
|
220
172
|
readonly path: "spec/plugin/presentation-icon-evidence-v1.schema.json";
|
|
@@ -234,7 +186,7 @@ export declare const redevPluginContractArtifacts: readonly [{
|
|
|
234
186
|
readonly id: "publisher-release-ref-schema";
|
|
235
187
|
readonly path: "spec/plugin/publisher-release-ref-v1.schema.json";
|
|
236
188
|
readonly version: "publisher-release-ref-v1";
|
|
237
|
-
readonly sha256: "
|
|
189
|
+
readonly sha256: "f68241937dc291b1f660c2c184bd60a7058a4471d2966bd7954ba574c84fe726";
|
|
238
190
|
}, {
|
|
239
191
|
readonly id: "quarantine-cleanup-schema";
|
|
240
192
|
readonly path: "spec/plugin/quarantine-cleanup-v1.schema.json";
|
|
@@ -244,67 +196,37 @@ export declare const redevPluginContractArtifacts: readonly [{
|
|
|
244
196
|
readonly id: "release-metadata-schema";
|
|
245
197
|
readonly path: "spec/plugin/release-metadata-v8.schema.json";
|
|
246
198
|
readonly version: "release-metadata-v8";
|
|
247
|
-
readonly sha256: "
|
|
199
|
+
readonly sha256: "ad8888e6b5673786ea0fc82475be92835c3b177b685cca5bb3efd936d461b215";
|
|
248
200
|
}, {
|
|
249
201
|
readonly id: "release-publisher-config-schema";
|
|
250
202
|
readonly path: "spec/plugin/release-publisher-config-v1.schema.json";
|
|
251
203
|
readonly version: "release-publisher-config-v1";
|
|
252
|
-
readonly sha256: "
|
|
204
|
+
readonly sha256: "47d782062652b85a77dc67a98c8859f2f1dc598d4496df13ca70c4ceb02df227";
|
|
253
205
|
}, {
|
|
254
206
|
readonly id: "release-revocation-pointer-schema";
|
|
255
207
|
readonly path: "spec/plugin/release-revocation-pointer-v2.schema.json";
|
|
256
208
|
readonly version: "release-revocation-pointer-v2";
|
|
257
|
-
readonly sha256: "
|
|
209
|
+
readonly sha256: "51ced7ca790d7d3d3dcb2e65faf3a3a74713ccefe7b2a5b97355a0b3226bdf34";
|
|
258
210
|
}, {
|
|
259
211
|
readonly id: "release-revocation-schema";
|
|
260
212
|
readonly path: "spec/plugin/release-revocation-v3.schema.json";
|
|
261
213
|
readonly version: "release-revocation-v3";
|
|
262
|
-
readonly sha256: "
|
|
214
|
+
readonly sha256: "930d2729719f5f44de108df23e9efbbae17f7a3072963c1c5471197b189aa8d9";
|
|
263
215
|
}, {
|
|
264
216
|
readonly id: "release-root-delegation-schema";
|
|
265
217
|
readonly path: "spec/plugin/release-root-delegation-v1.schema.json";
|
|
266
218
|
readonly version: "release-root-delegation-v1";
|
|
267
|
-
readonly sha256: "
|
|
268
|
-
}, {
|
|
269
|
-
readonly id: "release-signature-envelope-schema";
|
|
270
|
-
readonly path: "spec/plugin/release-signature-envelope-v1.schema.json";
|
|
271
|
-
readonly version: "release-signature-envelope-v1";
|
|
272
|
-
readonly sha256: "7df9afd22bfdebfa89dc3bdb46ecdbe22a91ecce35fa46c492dd9795c66fae29";
|
|
273
|
-
}, {
|
|
274
|
-
readonly id: "release-signing-ledger-evidence-schema";
|
|
275
|
-
readonly path: "spec/plugin/release-signing-ledger-evidence-v1.schema.json";
|
|
276
|
-
readonly version: "release-signing-ledger-evidence-v1";
|
|
277
|
-
readonly sha256: "9ab8b7f65dedcd119d578debb4f6ff97fc35f4c7ac95c0e5435f8b0959bc1a5c";
|
|
278
|
-
}, {
|
|
279
|
-
readonly id: "release-signing-ledger-receipt-schema";
|
|
280
|
-
readonly path: "spec/plugin/release-signing-ledger-receipt-v1.schema.json";
|
|
281
|
-
readonly version: "release-signing-ledger-receipt-v1";
|
|
282
|
-
readonly sha256: "29210cfefd967017c5c74bcf8489bd50511c5c9f36d17b0200056ccb90c30561";
|
|
283
|
-
}, {
|
|
284
|
-
readonly id: "release-signing-ledger-schema";
|
|
285
|
-
readonly path: "spec/plugin/release-signing-ledger-v1.schema.json";
|
|
286
|
-
readonly version: "release-signing-ledger-v1";
|
|
287
|
-
readonly sha256: "0c72b30bfd6b857b9809e48e1b7eaaeb7134d5afd6a935aa8373465054403765";
|
|
288
|
-
}, {
|
|
289
|
-
readonly id: "release-signing-subject-schema";
|
|
290
|
-
readonly path: "spec/plugin/release-signing-subject-v1.schema.json";
|
|
291
|
-
readonly version: "release-signing-subject-v1";
|
|
292
|
-
readonly sha256: "876b1459824f90042bd141e96bfea4633333bdf2a227e15b6e25c72db1179c8e";
|
|
219
|
+
readonly sha256: "f46249f9d51610b7a8401adc4ed04c098adaad408f35661b092f8d67767e21f2";
|
|
293
220
|
}, {
|
|
294
221
|
readonly id: "release-source-policy-pointer-schema";
|
|
295
222
|
readonly path: "spec/plugin/release-source-policy-pointer-v2.schema.json";
|
|
296
223
|
readonly version: "release-source-policy-pointer-v2";
|
|
297
|
-
readonly sha256: "
|
|
224
|
+
readonly sha256: "a4b2ba0909a633cfd0a365dff87ca1b6eaf6df53ac38b4d2b458d7ea85da6dd1";
|
|
298
225
|
}, {
|
|
299
226
|
readonly id: "release-source-policy-schema";
|
|
300
227
|
readonly path: "spec/plugin/release-source-policy-v3.schema.json";
|
|
301
228
|
readonly version: "release-source-policy-v3";
|
|
302
|
-
readonly sha256: "
|
|
303
|
-
}, {
|
|
304
|
-
readonly id: "release-trust-state-schema";
|
|
305
|
-
readonly path: "spec/plugin/release-trust-state-v1.schema.json";
|
|
306
|
-
readonly version: "release-trust-state-v1";
|
|
307
|
-
readonly sha256: "19ffa182932a22401a33ee4c9921e957c67895c2d8b041c9a27ee3530bdfb2d2";
|
|
229
|
+
readonly sha256: "9b6964cbbaeab6400ab25ff3da6fca891b9833c7f644f56367b420382d096244";
|
|
308
230
|
}, {
|
|
309
231
|
readonly id: "resource-scope-schema";
|
|
310
232
|
readonly path: "spec/plugin/resource-scope-v1.schema.json";
|
|
@@ -329,17 +251,12 @@ export declare const redevPluginContractArtifacts: readonly [{
|
|
|
329
251
|
readonly id: "rust-ipc-schema";
|
|
330
252
|
readonly path: "spec/plugin/ipc-v6.schema.json";
|
|
331
253
|
readonly version: "rust-ipc-v6";
|
|
332
|
-
readonly sha256: "
|
|
333
|
-
}, {
|
|
334
|
-
readonly id: "session-scope-maintenance-contract";
|
|
335
|
-
readonly path: "spec/plugin/session-scope-maintenance-v1.json";
|
|
336
|
-
readonly version: "session-scope-maintenance-v1";
|
|
337
|
-
readonly sha256: "fd87b6654c954ee2a2dc67958ba214048b894aa421bb74a85fb02000ec51f37b";
|
|
254
|
+
readonly sha256: "75d7fb83d4502be726e986025f7ec14fac592bcaeb7add6b28dff42a7360c5dc";
|
|
338
255
|
}, {
|
|
339
256
|
readonly id: "session-scope-schema";
|
|
340
257
|
readonly path: "spec/plugin/session-scope-v1.schema.json";
|
|
341
258
|
readonly version: "session-scope-v1";
|
|
342
|
-
readonly sha256: "
|
|
259
|
+
readonly sha256: "38044d65de36ce5219929ac4080547660734a7c6bb4d26d9b90e5838b1db331a";
|
|
343
260
|
}, {
|
|
344
261
|
readonly id: "target-classifier-fixture";
|
|
345
262
|
readonly path: "spec/plugin/target-classifier-v2.json";
|
|
@@ -349,17 +266,7 @@ export declare const redevPluginContractArtifacts: readonly [{
|
|
|
349
266
|
readonly id: "token-ticket-schema";
|
|
350
267
|
readonly path: "spec/plugin/token-ticket-v4.schema.json";
|
|
351
268
|
readonly version: "token-ticket-v4";
|
|
352
|
-
readonly sha256: "
|
|
353
|
-
}, {
|
|
354
|
-
readonly id: "trusted-time-evidence-schema";
|
|
355
|
-
readonly path: "spec/plugin/trusted-time-evidence-v1.schema.json";
|
|
356
|
-
readonly version: "trusted-time-evidence-v1";
|
|
357
|
-
readonly sha256: "4398cbd2a3eea42a85008ee16a69d7adb265673e6749b1f13a4f1610f36e5e38";
|
|
358
|
-
}, {
|
|
359
|
-
readonly id: "trusted-time-leaf-schema";
|
|
360
|
-
readonly path: "spec/plugin/trusted-time-leaf-v1.schema.json";
|
|
361
|
-
readonly version: "trusted-time-leaf-v1";
|
|
362
|
-
readonly sha256: "1c25eb0040800eef145aa2bb4c0e1ae197ae584d365e9595ab89037e26fe5ddb";
|
|
269
|
+
readonly sha256: "1576e35e4e06ba67c2fdc038934c5d5184fd1224adbd75c9f8eaf6a144ade238";
|
|
363
270
|
}, {
|
|
364
271
|
readonly id: "wasm-worker-schema";
|
|
365
272
|
readonly path: "spec/plugin/wasm-worker-v2.schema.json";
|
|
@@ -369,5 +276,5 @@ export declare const redevPluginContractArtifacts: readonly [{
|
|
|
369
276
|
readonly id: "worker-invocation-schema";
|
|
370
277
|
readonly path: "spec/plugin/worker-invocation-v3.schema.json";
|
|
371
278
|
readonly version: "worker-invocation-v3";
|
|
372
|
-
readonly sha256: "
|
|
279
|
+
readonly sha256: "f75b5b6ea0f5936e15f84a76d9b496690d7e1b7da7a05948ad26a88cc1360847";
|
|
373
280
|
}];
|