@jini-ai/agent-plugins 0.6.12 → 0.6.15-rc.2
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/CHANGELOG.md +14 -0
- package/dist/admin-surfaces/action-schema.d.ts +2 -55
- package/dist/admin-surfaces/action-schema.d.ts.map +1 -1
- package/dist/admin-surfaces/action-schema.js +2 -166
- package/dist/admin-surfaces/action-schema.js.map +1 -1
- package/dist/admin-surfaces/action-tools.d.ts +6 -0
- package/dist/admin-surfaces/action-tools.d.ts.map +1 -1
- package/dist/admin-surfaces/action-tools.js +4 -2
- package/dist/admin-surfaces/action-tools.js.map +1 -1
- package/dist/admin-surfaces/surface-capabilities.d.ts +8 -4
- package/dist/admin-surfaces/surface-capabilities.d.ts.map +1 -1
- package/dist/admin-surfaces/surface-capabilities.js +14 -7
- package/dist/admin-surfaces/surface-capabilities.js.map +1 -1
- package/dist/admin-surfaces/surface-handlers.d.ts +6 -2
- package/dist/admin-surfaces/surface-handlers.d.ts.map +1 -1
- package/dist/admin-surfaces/surface-handlers.js +8 -16
- package/dist/admin-surfaces/surface-handlers.js.map +1 -1
- package/dist/contracts/admin-surface-action-schema.d.ts +56 -0
- package/dist/contracts/admin-surface-action-schema.d.ts.map +1 -0
- package/dist/contracts/admin-surface-action-schema.js +167 -0
- package/dist/contracts/admin-surface-action-schema.js.map +1 -0
- package/dist/lifecycle/activation.d.ts +7 -0
- package/dist/lifecycle/activation.d.ts.map +1 -1
- package/dist/lifecycle/activation.js +29 -1
- package/dist/lifecycle/activation.js.map +1 -1
- package/dist/lifecycle/automatic-use.d.ts +8 -4
- package/dist/lifecycle/automatic-use.d.ts.map +1 -1
- package/dist/lifecycle/automatic-use.js +46 -16
- package/dist/lifecycle/automatic-use.js.map +1 -1
- package/dist/lifecycle/bundled-source-archive.d.ts +25 -2
- package/dist/lifecycle/bundled-source-archive.d.ts.map +1 -1
- package/dist/lifecycle/bundled-source-archive.js +180 -19
- package/dist/lifecycle/bundled-source-archive.js.map +1 -1
- package/dist/lifecycle/exports.d.ts +51 -0
- package/dist/lifecycle/exports.d.ts.map +1 -0
- package/dist/lifecycle/exports.js +96 -0
- package/dist/lifecycle/exports.js.map +1 -0
- package/dist/lifecycle/index.d.ts +18 -11
- package/dist/lifecycle/index.d.ts.map +1 -1
- package/dist/lifecycle/index.js +4 -2
- package/dist/lifecycle/index.js.map +1 -1
- package/dist/lifecycle/installed-package-index.d.ts.map +1 -1
- package/dist/lifecycle/installed-package-index.js +6 -2
- package/dist/lifecycle/installed-package-index.js.map +1 -1
- package/dist/lifecycle/manifest.d.ts +3 -1
- package/dist/lifecycle/manifest.d.ts.map +1 -1
- package/dist/lifecycle/manifest.js +7 -0
- package/dist/lifecycle/manifest.js.map +1 -1
- package/dist/lifecycle/ports.d.ts +13 -3
- package/dist/lifecycle/ports.d.ts.map +1 -1
- package/dist/lifecycle/resolve-agent-plugin-refs.d.ts +11 -0
- package/dist/lifecycle/resolve-agent-plugin-refs.d.ts.map +1 -1
- package/dist/lifecycle/resolve-agent-plugin-refs.js +38 -16
- package/dist/lifecycle/resolve-agent-plugin-refs.js.map +1 -1
- package/dist/lifecycle/search-projection.d.ts +34 -0
- package/dist/lifecycle/search-projection.d.ts.map +1 -0
- package/dist/lifecycle/search-projection.js +53 -0
- package/dist/lifecycle/search-projection.js.map +1 -0
- package/dist/lifecycle/search.js.map +1 -1
- package/dist/lifecycle/seed-bundled.d.ts +10 -1
- package/dist/lifecycle/seed-bundled.d.ts.map +1 -1
- package/dist/lifecycle/seed-bundled.js +7 -5
- package/dist/lifecycle/seed-bundled.js.map +1 -1
- package/dist/lifecycle/set-enabled.d.ts +3 -1
- package/dist/lifecycle/set-enabled.d.ts.map +1 -1
- package/dist/lifecycle/set-enabled.js +34 -13
- package/dist/lifecycle/set-enabled.js.map +1 -1
- package/dist/lifecycle/tools/capabilities.d.ts +51 -11
- package/dist/lifecycle/tools/capabilities.d.ts.map +1 -1
- package/dist/lifecycle/tools/capabilities.js +67 -15
- package/dist/lifecycle/tools/capabilities.js.map +1 -1
- package/dist/lifecycle/tools/projection.d.ts +5 -1
- package/dist/lifecycle/tools/projection.d.ts.map +1 -1
- package/dist/lifecycle/tools/projection.js +33 -20
- package/dist/lifecycle/tools/projection.js.map +1 -1
- package/dist/lifecycle/types.d.ts +2 -1
- package/dist/lifecycle/types.d.ts.map +1 -1
- package/dist/lifecycle/uninstall.d.ts.map +1 -1
- package/dist/lifecycle/uninstall.js +4 -0
- package/dist/lifecycle/uninstall.js.map +1 -1
- package/package.json +6 -6
|
@@ -3,8 +3,19 @@
|
|
|
3
3
|
* every implementation (token store, guarded HTTP, limiter, artifact store) and Jini never names a
|
|
4
4
|
* provider. A per-call session wraps them so that (1) every capability stops working the moment the
|
|
5
5
|
* plugin's tools are revoked, even for a module that kept a reference, and (2) an access token the
|
|
6
|
-
* call obtained can never leave through the tool's result or error text
|
|
7
|
-
*
|
|
6
|
+
* call obtained can never leave through the tool's result or error text, and (3) capabilities stop
|
|
7
|
+
* working once the call that received them finishes or the user stops it, so a stale reference kept
|
|
8
|
+
* in module scope, or code that ignores abort, cannot act after the call is over. Those gates
|
|
9
|
+
* are `openCapabilityGate`, the ONE gate every session opens (tool calls here; admin-surface actions
|
|
10
|
+
* and bootstrap in `../../admin-surfaces/surface-capabilities.ts`), and `runInCapabilitySession` is
|
|
11
|
+
* the one way a caller runs plugin code inside a session, so each path retires it identically.
|
|
12
|
+
*
|
|
13
|
+
* Trust boundary: plugin code is trusted first-party code running in the host process with the
|
|
14
|
+
* host's own access (it can keep a token it was given, call `globalThis.fetch`, read the environment).
|
|
15
|
+
* Gate (3) is a guard against plugin bugs, not a security boundary. The boundaries that hold are
|
|
16
|
+
* against the model's tool arguments: ref binding (a call reaches only its top-level `connectionRef`),
|
|
17
|
+
* the account frozen at confirmation (host side), and the token scan on results and errors.
|
|
18
|
+
* Third-party executable plugins need a process sandbox first. See README "Trust boundary".
|
|
8
19
|
*
|
|
9
20
|
* Plugin state reaches a tool read-only: the plugin's admin surface writes its settings (for example
|
|
10
21
|
* which of its products are on), and its tools must honor them, but an agent tool never changes them.
|
|
@@ -86,6 +97,8 @@ export declare const PLUGIN_STATE_MAX_KEY_LENGTH = 128;
|
|
|
86
97
|
export declare const REVOKED_MESSAGE = "This plugin tool was disabled; its capabilities are revoked. Re-enable the plugin and retry.";
|
|
87
98
|
export declare const WITHHELD_OUTPUT_MESSAGE = "The plugin tool result was withheld because it contained a connection credential.";
|
|
88
99
|
export declare const WITHHELD_ERROR_MESSAGE = "The plugin tool failed and its error was withheld because it contained a connection credential.";
|
|
100
|
+
export declare const CALL_ENDED_MESSAGE = "This plugin call already finished or was stopped; capabilities kept from it no longer work. Use the capabilities of the current call.";
|
|
101
|
+
export declare const UNDECLARED_CONNECTION_MESSAGE = "This plugin tool call may only use the connection its connectionRef input names. Nothing was sent. Report this to the plugin author.";
|
|
89
102
|
/**
|
|
90
103
|
* Access tokens one plugin obtained, across all of its calls: plugin code that keeps a token in module
|
|
91
104
|
* scope must not be able to return or store it in a later call unseen.
|
|
@@ -127,19 +140,24 @@ export declare function openCredentialScan(required: {
|
|
|
127
140
|
};
|
|
128
141
|
export type AgentPluginCredentialScan = ReturnType<typeof openCredentialScan>;
|
|
129
142
|
/**
|
|
130
|
-
* The revocation and credential gates every capability session shares: this file's tool
|
|
131
|
-
* the admin-surface session (`../../admin-surfaces/surface-capabilities.ts`), so both
|
|
132
|
-
* the same way.
|
|
143
|
+
* The revocation, lifetime and credential gates every capability session shares: this file's tool
|
|
144
|
+
* session and the admin-surface session (`../../admin-surfaces/surface-capabilities.ts`), so both
|
|
145
|
+
* revoke, retire and scan the same way. One gate per invocation.
|
|
133
146
|
* @param required.isLive - False once the contributing plugin's contributions are revoked.
|
|
134
147
|
* @param required.issued - The plugin's token memory (see `createIssuedTokenMemories`).
|
|
135
|
-
* @
|
|
136
|
-
*
|
|
148
|
+
* @param optional.signal - The call's abort signal: once it fires (the user pressed Stop) the call is
|
|
149
|
+
* over for its capabilities too, even while plugin code that ignores abort keeps running.
|
|
150
|
+
* @returns `guard` (wraps a capability so it refuses once revoked or once the call ended or was stopped), `end`
|
|
151
|
+
* (retires every guarded capability), `noteToken` (records a token the call obtained),
|
|
152
|
+
* `mentionsToken`, and the `release` (result) and `sanitize` (error) gates.
|
|
137
153
|
* @complexity O(1) to open; the scans are O(serialized size * remembered tokens).
|
|
138
154
|
*/
|
|
139
155
|
export declare function openCapabilityGate(required: {
|
|
140
156
|
readonly isLive: () => boolean;
|
|
141
157
|
readonly issued: IssuedTokenMemory;
|
|
142
|
-
},
|
|
158
|
+
}, optional?: {
|
|
159
|
+
readonly signal?: AbortSignal;
|
|
160
|
+
}): {
|
|
143
161
|
/** The result, unless it mentions a token this plugin obtained. */
|
|
144
162
|
release<T>({ value }: {
|
|
145
163
|
readonly value: T;
|
|
@@ -151,11 +169,24 @@ export declare function openCapabilityGate(required: {
|
|
|
151
169
|
readonly error: unknown;
|
|
152
170
|
}): unknown;
|
|
153
171
|
guard: <A extends unknown[], R>(call: (...args: A) => Promise<R>) => (...args: A) => Promise<R>;
|
|
172
|
+
end: () => void;
|
|
154
173
|
noteToken({ token }: {
|
|
155
174
|
readonly token: string;
|
|
156
175
|
}): string;
|
|
157
176
|
};
|
|
158
177
|
export type AgentPluginCapabilityGate = ReturnType<typeof openCapabilityGate>;
|
|
178
|
+
/**
|
|
179
|
+
* Runs one invocation's plugin code inside its session: an error is sanitized, and the session is
|
|
180
|
+
* retired in `finally`, whether the code returned, threw or its result was withheld. Every path that
|
|
181
|
+
* hands plugin code capabilities (tool calls, admin-surface actions, bootstrap) runs through here.
|
|
182
|
+
* @param required.session - The invocation's session (`sanitize` and `end` from its gate).
|
|
183
|
+
* @param required.run - The plugin call; apply `release` inside it when the result must be scanned.
|
|
184
|
+
* @complexity O(1) plus `run` and the error scan.
|
|
185
|
+
*/
|
|
186
|
+
export declare function runInCapabilitySession<T>(required: {
|
|
187
|
+
readonly session: Pick<AgentPluginCapabilityGate, 'sanitize' | 'end'>;
|
|
188
|
+
readonly run: () => Promise<T>;
|
|
189
|
+
}, _optional?: Record<string, never>): Promise<T>;
|
|
159
190
|
/** The host capabilities every session wraps the same way: guarded HTTP, limiter and artifacts
|
|
160
191
|
* (artifacts only when the host gives a store: absent stays absent, never a wrapper that throws). @complexity O(1). */
|
|
161
192
|
export declare function guardSharedCapabilities(required: {
|
|
@@ -180,14 +211,22 @@ export declare function guardStateReader(required: {
|
|
|
180
211
|
* @param required.capabilities - The host's capabilities for this call.
|
|
181
212
|
* @param required.isLive - False once the contributing plugin's tools are revoked.
|
|
182
213
|
* @param required.issued - The plugin's token memory, shared by all its calls and its surface handlers.
|
|
183
|
-
* @
|
|
184
|
-
*
|
|
214
|
+
* @param required.connections - The call's declared connections (`callConnections`); a token for any
|
|
215
|
+
* other ref is refused before the host is asked, so plugin code cannot reach a connection the call
|
|
216
|
+
* (and its confirmation card) did not name. Empty means the call gets no token at all.
|
|
217
|
+
* @param optional.signal - The call's abort signal; see `openCapabilityGate`.
|
|
218
|
+
* @returns Wrapped capabilities plus `release` (result gate), `sanitize` (error gate) and `end`; run the
|
|
219
|
+
* call with `runInCapabilitySession` so `end` always runs when it finishes.
|
|
220
|
+
* @complexity O(1) to open; gates are O(serialized size); a token request is O(c) declared connections.
|
|
185
221
|
*/
|
|
186
222
|
export declare function openCapabilitySession(required: {
|
|
187
223
|
readonly capabilities: AgentPluginToolCapabilities;
|
|
188
224
|
readonly isLive: () => boolean;
|
|
189
225
|
readonly issued: IssuedTokenMemory;
|
|
190
|
-
|
|
226
|
+
readonly connections: readonly string[];
|
|
227
|
+
}, optional?: {
|
|
228
|
+
readonly signal?: AbortSignal;
|
|
229
|
+
}): {
|
|
191
230
|
capabilities: AgentPluginToolCapabilities;
|
|
192
231
|
release: <T>({ value }: {
|
|
193
232
|
readonly value: T;
|
|
@@ -195,5 +234,6 @@ export declare function openCapabilitySession(required: {
|
|
|
195
234
|
sanitize: ({ error }: {
|
|
196
235
|
readonly error: unknown;
|
|
197
236
|
}) => unknown;
|
|
237
|
+
end: () => void;
|
|
198
238
|
};
|
|
199
239
|
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/tools/capabilities.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/tools/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,19 @@
|
|
|
3
3
|
* every implementation (token store, guarded HTTP, limiter, artifact store) and Jini never names a
|
|
4
4
|
* provider. A per-call session wraps them so that (1) every capability stops working the moment the
|
|
5
5
|
* plugin's tools are revoked, even for a module that kept a reference, and (2) an access token the
|
|
6
|
-
* call obtained can never leave through the tool's result or error text
|
|
7
|
-
*
|
|
6
|
+
* call obtained can never leave through the tool's result or error text, and (3) capabilities stop
|
|
7
|
+
* working once the call that received them finishes or the user stops it, so a stale reference kept
|
|
8
|
+
* in module scope, or code that ignores abort, cannot act after the call is over. Those gates
|
|
9
|
+
* are `openCapabilityGate`, the ONE gate every session opens (tool calls here; admin-surface actions
|
|
10
|
+
* and bootstrap in `../../admin-surfaces/surface-capabilities.ts`), and `runInCapabilitySession` is
|
|
11
|
+
* the one way a caller runs plugin code inside a session, so each path retires it identically.
|
|
12
|
+
*
|
|
13
|
+
* Trust boundary: plugin code is trusted first-party code running in the host process with the
|
|
14
|
+
* host's own access (it can keep a token it was given, call `globalThis.fetch`, read the environment).
|
|
15
|
+
* Gate (3) is a guard against plugin bugs, not a security boundary. The boundaries that hold are
|
|
16
|
+
* against the model's tool arguments: ref binding (a call reaches only its top-level `connectionRef`),
|
|
17
|
+
* the account frozen at confirmation (host side), and the token scan on results and errors.
|
|
18
|
+
* Third-party executable plugins need a process sandbox first. See README "Trust boundary".
|
|
8
19
|
*
|
|
9
20
|
* Plugin state reaches a tool read-only: the plugin's admin surface writes its settings (for example
|
|
10
21
|
* which of its products are on), and its tools must honor them, but an agent tool never changes them.
|
|
@@ -15,6 +26,8 @@ const STATE_KEY_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/;
|
|
|
15
26
|
export const REVOKED_MESSAGE = 'This plugin tool was disabled; its capabilities are revoked. Re-enable the plugin and retry.';
|
|
16
27
|
export const WITHHELD_OUTPUT_MESSAGE = 'The plugin tool result was withheld because it contained a connection credential.';
|
|
17
28
|
export const WITHHELD_ERROR_MESSAGE = 'The plugin tool failed and its error was withheld because it contained a connection credential.';
|
|
29
|
+
export const CALL_ENDED_MESSAGE = 'This plugin call already finished or was stopped; capabilities kept from it no longer work. Use the capabilities of the current call.';
|
|
30
|
+
export const UNDECLARED_CONNECTION_MESSAGE = 'This plugin tool call may only use the connection its connectionRef input names. Nothing was sent. Report this to the plugin author.';
|
|
18
31
|
/** Newest tokens kept; access tokens are short-lived, so older ones matter less than bounded memory. */
|
|
19
32
|
export const ISSUED_TOKEN_MEMORY_LIMIT = 64;
|
|
20
33
|
/**
|
|
@@ -134,23 +147,31 @@ export function openCredentialScan(required, _optional = {}) {
|
|
|
134
147
|
};
|
|
135
148
|
}
|
|
136
149
|
/**
|
|
137
|
-
* The revocation and credential gates every capability session shares: this file's tool
|
|
138
|
-
* the admin-surface session (`../../admin-surfaces/surface-capabilities.ts`), so both
|
|
139
|
-
* the same way.
|
|
150
|
+
* The revocation, lifetime and credential gates every capability session shares: this file's tool
|
|
151
|
+
* session and the admin-surface session (`../../admin-surfaces/surface-capabilities.ts`), so both
|
|
152
|
+
* revoke, retire and scan the same way. One gate per invocation.
|
|
140
153
|
* @param required.isLive - False once the contributing plugin's contributions are revoked.
|
|
141
154
|
* @param required.issued - The plugin's token memory (see `createIssuedTokenMemories`).
|
|
142
|
-
* @
|
|
143
|
-
*
|
|
155
|
+
* @param optional.signal - The call's abort signal: once it fires (the user pressed Stop) the call is
|
|
156
|
+
* over for its capabilities too, even while plugin code that ignores abort keeps running.
|
|
157
|
+
* @returns `guard` (wraps a capability so it refuses once revoked or once the call ended or was stopped), `end`
|
|
158
|
+
* (retires every guarded capability), `noteToken` (records a token the call obtained),
|
|
159
|
+
* `mentionsToken`, and the `release` (result) and `sanitize` (error) gates.
|
|
144
160
|
* @complexity O(1) to open; the scans are O(serialized size * remembered tokens).
|
|
145
161
|
*/
|
|
146
|
-
export function openCapabilityGate(required,
|
|
162
|
+
export function openCapabilityGate(required, optional = {}) {
|
|
147
163
|
const { isLive, issued } = required;
|
|
164
|
+
const { signal } = optional;
|
|
165
|
+
let ended = false;
|
|
148
166
|
return {
|
|
149
167
|
guard: (call) => async (...args) => {
|
|
150
168
|
if (!isLive())
|
|
151
169
|
throw new Error(REVOKED_MESSAGE);
|
|
170
|
+
if (ended || signal?.aborted)
|
|
171
|
+
throw new Error(CALL_ENDED_MESSAGE);
|
|
152
172
|
return call(...args);
|
|
153
173
|
},
|
|
174
|
+
end: () => { ended = true; },
|
|
154
175
|
noteToken({ token }) {
|
|
155
176
|
if (token)
|
|
156
177
|
remember(issued, token);
|
|
@@ -165,6 +186,26 @@ export function openCapabilityGate(required, _optional = {}) {
|
|
|
165
186
|
},
|
|
166
187
|
};
|
|
167
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Runs one invocation's plugin code inside its session: an error is sanitized, and the session is
|
|
191
|
+
* retired in `finally`, whether the code returned, threw or its result was withheld. Every path that
|
|
192
|
+
* hands plugin code capabilities (tool calls, admin-surface actions, bootstrap) runs through here.
|
|
193
|
+
* @param required.session - The invocation's session (`sanitize` and `end` from its gate).
|
|
194
|
+
* @param required.run - The plugin call; apply `release` inside it when the result must be scanned.
|
|
195
|
+
* @complexity O(1) plus `run` and the error scan.
|
|
196
|
+
*/
|
|
197
|
+
export async function runInCapabilitySession(required, _optional = {}) {
|
|
198
|
+
const { session, run } = required;
|
|
199
|
+
try {
|
|
200
|
+
return await run();
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
throw session.sanitize({ error });
|
|
204
|
+
}
|
|
205
|
+
finally {
|
|
206
|
+
session.end();
|
|
207
|
+
}
|
|
208
|
+
}
|
|
168
209
|
/** The host capabilities every session wraps the same way: guarded HTTP, limiter and artifacts
|
|
169
210
|
* (artifacts only when the host gives a store: absent stays absent, never a wrapper that throws). @complexity O(1). */
|
|
170
211
|
export function guardSharedCapabilities(required, _optional = {}) {
|
|
@@ -197,17 +238,28 @@ export function guardStateReader(required, _optional = {}) {
|
|
|
197
238
|
* @param required.capabilities - The host's capabilities for this call.
|
|
198
239
|
* @param required.isLive - False once the contributing plugin's tools are revoked.
|
|
199
240
|
* @param required.issued - The plugin's token memory, shared by all its calls and its surface handlers.
|
|
200
|
-
* @
|
|
201
|
-
*
|
|
241
|
+
* @param required.connections - The call's declared connections (`callConnections`); a token for any
|
|
242
|
+
* other ref is refused before the host is asked, so plugin code cannot reach a connection the call
|
|
243
|
+
* (and its confirmation card) did not name. Empty means the call gets no token at all.
|
|
244
|
+
* @param optional.signal - The call's abort signal; see `openCapabilityGate`.
|
|
245
|
+
* @returns Wrapped capabilities plus `release` (result gate), `sanitize` (error gate) and `end`; run the
|
|
246
|
+
* call with `runInCapabilitySession` so `end` always runs when it finishes.
|
|
247
|
+
* @complexity O(1) to open; gates are O(serialized size); a token request is O(c) declared connections.
|
|
202
248
|
*/
|
|
203
|
-
export function openCapabilitySession(required,
|
|
204
|
-
const { capabilities: host, isLive, issued } = required;
|
|
205
|
-
const gate = openCapabilityGate({ isLive, issued });
|
|
249
|
+
export function openCapabilitySession(required, optional = {}) {
|
|
250
|
+
const { capabilities: host, isLive, issued, connections } = required;
|
|
251
|
+
const gate = openCapabilityGate({ isLive, issued }, optional);
|
|
206
252
|
const capabilities = Object.freeze({
|
|
207
|
-
connections: Object.freeze({ getAccessToken: gate.guard(async (input) =>
|
|
253
|
+
connections: Object.freeze({ getAccessToken: gate.guard(async (input) => {
|
|
254
|
+
// Read once: plugin code may pass a getter, so the ref checked must be the very value forwarded.
|
|
255
|
+
const { connectionRef } = input;
|
|
256
|
+
if (!connections.includes(connectionRef))
|
|
257
|
+
throw new Error(UNDECLARED_CONNECTION_MESSAGE);
|
|
258
|
+
return gate.noteToken({ token: await host.connections.getAccessToken({ connectionRef }) });
|
|
259
|
+
}) }),
|
|
208
260
|
...guardSharedCapabilities({ gate, host }),
|
|
209
261
|
state: guardStateReader({ gate, state: host.state }),
|
|
210
262
|
});
|
|
211
|
-
return { capabilities, release: gate.release, sanitize: gate.sanitize };
|
|
263
|
+
return { capabilities, release: gate.release, sanitize: gate.sanitize, end: gate.end };
|
|
212
264
|
}
|
|
213
265
|
//# sourceMappingURL=capabilities.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/lifecycle/tools/capabilities.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/lifecycle/tools/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,8 @@ export interface AgentPluginAdditionalTool {
|
|
|
27
27
|
readonly describeAffectedResources: (required: {
|
|
28
28
|
readonly input: unknown;
|
|
29
29
|
}) => readonly string[] | Promise<readonly string[]>;
|
|
30
|
+
/** Host connection refs the contribution's execution owner may use; disclosed so the host can freeze their accounts. */
|
|
31
|
+
readonly connections?: readonly string[];
|
|
30
32
|
}
|
|
31
33
|
/** One plugin's generation in the contract's snapshot shape; routes and widgets stay empty. */
|
|
32
34
|
export interface AgentPluginToolSnapshot {
|
|
@@ -55,10 +57,12 @@ export interface AgentPluginToolProjectionPorts {
|
|
|
55
57
|
/** The host's ONE token memory source, also passed to its admin-surface host (see `createIssuedTokenMemories`). */
|
|
56
58
|
readonly issuedTokens: IssuedTokenMemories;
|
|
57
59
|
}
|
|
58
|
-
/** What the host shows before confirming a call.
|
|
60
|
+
/** What the host shows before confirming a call. `connections` is every connection the call may use
|
|
61
|
+
* (see {@link callConnections}); the capability session refuses any other, so the card cannot under-show. */
|
|
59
62
|
export interface AgentPluginToolDisclosure {
|
|
60
63
|
readonly effect: AgentPluginToolEffect;
|
|
61
64
|
readonly resources: readonly string[];
|
|
65
|
+
readonly connections: readonly string[];
|
|
62
66
|
}
|
|
63
67
|
/**
|
|
64
68
|
* Creates the projection for one dedicated contribution registry (keyed by plugin id, so it must not
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/tools/projection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/tools/projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,13 +7,15 @@
|
|
|
7
7
|
* Added at this seam, because only it knows a tool came from an Agent Plugin module:
|
|
8
8
|
* - schema validation of the input before the module runs (the registry passes schemas through);
|
|
9
9
|
* - per-call host capabilities, revoked when the plugin's tools are withdrawn;
|
|
10
|
-
* - the affected-resources disclosure the host shows before confirming a write/destructive call
|
|
10
|
+
* - the affected-resources disclosure the host shows before confirming a write/destructive call,
|
|
11
|
+
* including the one connection the call may use (its top-level `connectionRef`), which the
|
|
12
|
+
* capability session then enforces;
|
|
11
13
|
* - refusal of ambiguous ids (two plugins whose namespaced ids collide) and of write/destructive
|
|
12
14
|
* tools that cannot disclose what they change.
|
|
13
15
|
*/
|
|
14
16
|
import { Validator } from '@cfworker/json-schema';
|
|
15
17
|
import { requireInputRecord, ToolInputError } from '@jini-ai/core';
|
|
16
|
-
import { openCapabilitySession, openCredentialScan, REVOKED_MESSAGE } from './capabilities.js';
|
|
18
|
+
import { openCapabilitySession, openCredentialScan, REVOKED_MESSAGE, runInCapabilitySession } from './capabilities.js';
|
|
17
19
|
const MAX_RESOURCES = 50;
|
|
18
20
|
const MAX_RESOURCE_LENGTH = 300;
|
|
19
21
|
/** Agent Plugin tools have no site-plugin SDK; the contract's slot is filled with one that refuses. */
|
|
@@ -84,6 +86,15 @@ function validatedInput(tool, input) {
|
|
|
84
86
|
const where = [...new Set(result.errors.map(unit => `${unit.instanceLocation} (${unit.keyword})`))].slice(0, 3).join(', ');
|
|
85
87
|
throw new ToolInputError({ message: `Input for '${tool.toolId}' does not match its schema at ${where}. Fix the input and retry.` });
|
|
86
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* The connections one call may use: the validated input's top-level string `connectionRef`, else none.
|
|
91
|
+
* A `connectionRef` nested in payload data is data, never a connection. One rule feeds both the
|
|
92
|
+
* disclosure and the capability session, so what the card shows is exactly what the call can reach.
|
|
93
|
+
* @complexity O(1).
|
|
94
|
+
*/
|
|
95
|
+
function callConnections(checked) {
|
|
96
|
+
return typeof checked.connectionRef === 'string' ? Object.freeze([checked.connectionRef]) : Object.freeze([]);
|
|
97
|
+
}
|
|
87
98
|
/** True when both generations hold the same modules and declarations: no revocation needed. @complexity O(t). */
|
|
88
99
|
function sameTools(previous, next, additional) {
|
|
89
100
|
if (!previous || previous.tools.length !== next.length || previous.additional.length !== additional.length
|
|
@@ -176,14 +187,10 @@ export function createAgentPluginToolProjection(required, _optional = {}) {
|
|
|
176
187
|
const checked = validatedInput(tool, input);
|
|
177
188
|
const host = required.capabilities({ pluginId, workspaceId: auth.workspaceId,
|
|
178
189
|
...(auth.principalId === undefined ? {} : { principalId: auth.principalId }), ...(signal === undefined ? {} : { signal }) });
|
|
179
|
-
const session = openCapabilitySession({ capabilities: host, isLive, issued });
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
}
|
|
184
|
-
catch (error) {
|
|
185
|
-
throw session.sanitize({ error });
|
|
186
|
-
}
|
|
190
|
+
const session = openCapabilitySession({ capabilities: host, isLive, issued, connections: callConnections(checked) }, signal === undefined ? {} : { signal });
|
|
191
|
+
return runInCapabilitySession({ session, run: async () => session.release({
|
|
192
|
+
value: await module.invoke({ input: checked, capabilities: session.capabilities, ...(signal === undefined ? {} : { signal }) }),
|
|
193
|
+
}) });
|
|
187
194
|
},
|
|
188
195
|
};
|
|
189
196
|
return Object.freeze(contribution);
|
|
@@ -250,23 +257,17 @@ export function createAgentPluginToolProjection(required, _optional = {}) {
|
|
|
250
257
|
async describeAffectedResources(input, _options = {}) {
|
|
251
258
|
const extra = additionalById.get(input.toolId);
|
|
252
259
|
if (extra && registry.list({}).includes(extra.snapshot)) {
|
|
253
|
-
|
|
254
|
-
try {
|
|
255
|
-
const resources = await extra.entry.describeAffectedResources({ input: input.input });
|
|
256
|
-
return { effect: extra.entry.tool.effect ?? 'write', resources: checkedResources(input.toolId, resources, scan) };
|
|
257
|
-
}
|
|
258
|
-
catch (error) {
|
|
259
|
-
throw scan.sanitize({ error });
|
|
260
|
-
}
|
|
260
|
+
return describeAdditionalResources({ entry: extra.entry, input: input.input, toolId: input.toolId, issuedTokens: required.issuedTokens });
|
|
261
261
|
}
|
|
262
262
|
const entry = byToolId.get(input.toolId);
|
|
263
263
|
if (!entry || !registry.list({}).includes(entry.snapshot))
|
|
264
264
|
return null;
|
|
265
265
|
const { tool } = entry;
|
|
266
266
|
const checked = validatedInput(tool, input.input);
|
|
267
|
+
const connections = callConnections(checked);
|
|
267
268
|
const describe = tool.loaded.module.describeAffectedResources;
|
|
268
269
|
if (!describe)
|
|
269
|
-
return { effect: tool.loaded.descriptor.effect, resources: [] };
|
|
270
|
+
return { effect: tool.loaded.descriptor.effect, resources: [], connections };
|
|
270
271
|
// The same per-plugin token memory the plugin's calls feed: its answers and errors are scanned alike.
|
|
271
272
|
const scan = openCredentialScan({ issued: required.issuedTokens.forPlugin({ pluginId: tool.loaded.pluginId }) });
|
|
272
273
|
let answer;
|
|
@@ -276,8 +277,20 @@ export function createAgentPluginToolProjection(required, _optional = {}) {
|
|
|
276
277
|
catch (error) {
|
|
277
278
|
throw scan.sanitize({ error });
|
|
278
279
|
}
|
|
279
|
-
return { effect: tool.loaded.descriptor.effect, resources: checkedResources(tool.toolId, answer, scan) };
|
|
280
|
+
return { effect: tool.loaded.descriptor.effect, resources: checkedResources(tool.toolId, answer, scan), connections };
|
|
280
281
|
},
|
|
281
282
|
};
|
|
282
283
|
}
|
|
284
|
+
async function describeAdditionalResources({ entry, input, toolId, issuedTokens }) {
|
|
285
|
+
const scan = openCredentialScan({ issued: issuedTokens.forPlugin({ pluginId: entry.pluginId }) });
|
|
286
|
+
try {
|
|
287
|
+
const resources = await entry.describeAffectedResources({ input });
|
|
288
|
+
// Host-contributed tools run on their own execution owner, never this session's tokens; that
|
|
289
|
+
// owner declares which connections it may use, so the host can pin their accounts too.
|
|
290
|
+
return { effect: entry.tool.effect ?? 'write', resources: checkedResources(toolId, resources, scan), connections: entry.connections ?? Object.freeze([]) };
|
|
291
|
+
}
|
|
292
|
+
catch (error) {
|
|
293
|
+
throw scan.sanitize({ error });
|
|
294
|
+
}
|
|
295
|
+
}
|
|
283
296
|
//# sourceMappingURL=projection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/lifecycle/tools/projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,SAAS,EAAe,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,eAAe,EACf,MAAM,mBAAmB,CAAC;AAqD9E,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,uGAAuG;AACvG,MAAM,MAAM,GAAG,GAAU,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC,CAAC,CAAC;AAChG,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IACvH,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;CACvH,CAAC,CAAC;AAEH,iGAAiG;AACjG,SAAS,aAAa,CAAC,MAAyC;IAC9D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,MAAgB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACnE,gGAAgG;QAChG,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAAC,OAAO,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IAAC,CAAC;AACvH,CAAC;AAED,iGAAiG;AACjG,SAAS,QAAQ,CAAC,MAA6B,EAAE,SAAsD;IACrG,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACtC,IAAI,UAAU,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,MAAM,CAAC,yBAAyB,KAAK,UAAU,EAAE,CAAC;QAC3F,OAAO,KAAK,UAAU,CAAC,MAAM,+CAA+C,CAAC;IAC/E,CAAC;IACD,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACxD,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACpD,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACxG,CAAC;AAED;qDACqD;AACrD,SAAS,QAAQ,CAAC,MAAwC,EAAE,QAAkB,EAAE,SAAsD;IACpI,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,UAAU,CAAC,IAAI,WAAW,KAAK,CAAC,QAAQ,qBAAqB,MAAM,EAAE,CAAC,CAAC;;YACrI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,QAAQ;QAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7H,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,MAAM,uDAAuD,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxK,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AACzE,CAAC;AAED;kCACkC;AAClC,SAAS,cAAc,CAAC,IAAkB,EAAE,KAAc;IACxD,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7C,IAAI,MAAyC,CAAC;IAC9C,wGAAwG;IACxG,IAAI,CAAC;QAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,MAAM,iEAAiE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAClI,CAAC;IACD,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IAChC,qGAAqG;IACrG,2GAA2G;IAC3G,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3H,MAAM,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,cAAc,IAAI,CAAC,MAAM,kCAAkC,KAAK,4BAA4B,EAAE,CAAC,CAAC;AACtI,CAAC;AAED,iHAAiH;AACjH,SAAS,SAAS,CAAC,QAAqC,EAAE,IAA6B,EAAE,UAAgD;IACvI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM;WACrG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3F,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAE,CAAC,MAAM,CAAC,MAAM;WACzF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAClG,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,MAAc,EAAE,KAAc,EAAE,IAA+B;IACvF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,aAAa;WAC9D,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,mBAAmB,CAAC;WACtG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,8GAA8G,CAAC,CAAC;IAClK,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AACnC,CAAC;AAED;yHACyH;AACzH,SAAS,oBAAoB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAK3E,EAAE,WAAkC,EAAE;IACrC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAClD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;YAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuC,CAAC;IAClE,KAAK,MAAM,KAAK,IAAI,eAAe,IAAI,EAAE,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;YAAM,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC;AAED;6FAC6F;AAC7F,SAAS,qBAAqB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAKxE,EAAE,WAAkC,EAAE;IACrC,iGAAiG;IACjG,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACvG,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvG,KAAK,MAAM,EAAE,IAAI,UAAU;QAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACjC,IAAI,KAAK,IAAI,CAAC;YAAE,SAAS;QACzB,0GAA0G;QAC1G,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;YAAE,SAAS;QAC/F,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,0DAA0D,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,+BAA+B,CAAC,QAAwC,EAAE,YAAmC,EAAE;IAC7H,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAC9B,IAAI,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;IACnD,IAAI,cAAc,GAAG,IAAI,GAAG,EAAqG,CAAC;IAClI,IAAI,QAAQ,GAAG,IAAI,GAAG,EAAuF,CAAC;IAE9G,2FAA2F;IAC3F,SAAS,YAAY,CAAC,IAAkB,EAAE,YAAoF;QAC5H,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;QACxC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3C,MAAM,YAAY,GAA4B;YAC5C,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM;YAC1H,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;gBAC7C,kGAAkG;gBAClG,IAAI,CAAC,MAAM,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;gBAChD,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC1E,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC/H,MAAM,OAAO,GAAG,qBAAqB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC9E,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;oBACvI,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBAAC,CAAC;YACxD,CAAC;SACF,CAAC;QACF,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IAED,8FAA8F;IAC9F,SAAS,UAAU,CAAC,QAAgB,EAAE,KAA8B,EAAE,UAAgD;QACpH,IAAI,QAA6C,CAAC;QAClD,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7D,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxG,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;oBAChI,GAAG,IAAI;oBACP,OAAO,CAAC,KAAgC;wBACtC,IAAI,CAAC,MAAM,EAAE;4BAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;wBAChD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC;iBACF,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACX,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACzC,CAAC;IAED,kGAAkG;IAClG,SAAS,KAAK,CAAC,QAAgB,EAAE,KAA8B,EAAE,UAAgD,EAAE,QAAkB;QACnI,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC;YAAE,OAAO,QAAQ,CAAC;QAC5D,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC;YAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACtF,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,qBAAqB,QAAQ,sBAAsB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3H,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO;QACL,+FAA+F;QAC/F,IAAI,CAAC,KAAmK,EAAE,WAAkC,EAAE;YAC5M,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC;gBACnD,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS;aACtG,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC;YACjC,MAAM,MAAM,GAAG,qBAAqB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACxH,MAAM,aAAa,GAAG,IAAI,GAAG,EAA2B,CAAC;YACzD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnE,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9H,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACzD,IAAI,MAAM;oBAAE,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAClD,CAAC;YACD,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YACnG,SAAS,GAAG,aAAa,CAAC;YAC1B,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAU,CAAC,CAAC,CAAC,CAAC;YACrN,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAU,CAAC,CAAC,CAAC,CAAC;YACzJ,OAAO,EAAE,QAAQ,EAAE,CAAC;QACtB,CAAC;QACD;uGAC+F;QAC/F,KAAK,CAAC,yBAAyB,CAAC,KAA2D,EAAE,WAAkC,EAAE;YAC/H,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxD,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;gBACjH,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;oBACtF,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;gBACpH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBAAC,CAAC;YACrD,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAAE,OAAO,IAAI,CAAC;YACvE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;YACvB,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC;YAC9D,IAAI,CAAC,QAAQ;gBAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;YAC/E,sGAAsG;YACtG,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;YACjH,IAAI,MAAe,CAAC;YACpB,IAAI,CAAC;gBAAC,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAAC,CAAC;YACtG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QAC3G,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/lifecycle/tools/projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,SAAS,EAAe,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,eAAe,EAAE,sBAAsB,EACvC,MAAM,mBAAmB,CAAC;AAwD9E,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,uGAAuG;AACvG,MAAM,MAAM,GAAG,GAAU,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC,CAAC,CAAC;AAChG,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IACvH,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;CACvH,CAAC,CAAC;AAEH,iGAAiG;AACjG,SAAS,aAAa,CAAC,MAAyC;IAC9D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,MAAgB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACnE,gGAAgG;QAChG,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAAC,OAAO,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IAAC,CAAC;AACvH,CAAC;AAED,iGAAiG;AACjG,SAAS,QAAQ,CAAC,MAA6B,EAAE,SAAsD;IACrG,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACtC,IAAI,UAAU,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,MAAM,CAAC,yBAAyB,KAAK,UAAU,EAAE,CAAC;QAC3F,OAAO,KAAK,UAAU,CAAC,MAAM,+CAA+C,CAAC;IAC/E,CAAC;IACD,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACxD,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACpD,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACxG,CAAC;AAED;qDACqD;AACrD,SAAS,QAAQ,CAAC,MAAwC,EAAE,QAAkB,EAAE,SAAsD;IACpI,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,UAAU,CAAC,IAAI,WAAW,KAAK,CAAC,QAAQ,qBAAqB,MAAM,EAAE,CAAC,CAAC;;YACrI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,QAAQ;QAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7H,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,MAAM,uDAAuD,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxK,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AACzE,CAAC;AAED;kCACkC;AAClC,SAAS,cAAc,CAAC,IAAkB,EAAE,KAAc;IACxD,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7C,IAAI,MAAyC,CAAC;IAC9C,wGAAwG;IACxG,IAAI,CAAC;QAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,MAAM,iEAAiE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAClI,CAAC;IACD,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IAChC,qGAAqG;IACrG,2GAA2G;IAC3G,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3H,MAAM,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,cAAc,IAAI,CAAC,MAAM,kCAAkC,KAAK,4BAA4B,EAAE,CAAC,CAAC;AACtI,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,OAA0C;IACjE,OAAO,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAChH,CAAC;AAED,iHAAiH;AACjH,SAAS,SAAS,CAAC,QAAqC,EAAE,IAA6B,EAAE,UAAgD;IACvI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM;WACrG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3F,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAE,CAAC,MAAM,CAAC,MAAM;WACzF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAClG,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,MAAc,EAAE,KAAc,EAAE,IAA+B;IACvF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,aAAa;WAC9D,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,mBAAmB,CAAC;WACtG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,8GAA8G,CAAC,CAAC;IAClK,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AACnC,CAAC;AAED;yHACyH;AACzH,SAAS,oBAAoB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAK3E,EAAE,WAAkC,EAAE;IACrC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAClD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;YAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuC,CAAC;IAClE,KAAK,MAAM,KAAK,IAAI,eAAe,IAAI,EAAE,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;YAAM,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC;AAED;6FAC6F;AAC7F,SAAS,qBAAqB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAKxE,EAAE,WAAkC,EAAE;IACrC,iGAAiG;IACjG,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACvG,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvG,KAAK,MAAM,EAAE,IAAI,UAAU;QAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACjC,IAAI,KAAK,IAAI,CAAC;YAAE,SAAS;QACzB,0GAA0G;QAC1G,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;YAAE,SAAS;QAC/F,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,0DAA0D,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,+BAA+B,CAAC,QAAwC,EAAE,YAAmC,EAAE;IAC7H,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAC9B,IAAI,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;IACnD,IAAI,cAAc,GAAG,IAAI,GAAG,EAAqG,CAAC;IAClI,IAAI,QAAQ,GAAG,IAAI,GAAG,EAAuF,CAAC;IAE9G,2FAA2F;IAC3F,SAAS,YAAY,CAAC,IAAkB,EAAE,YAAoF;QAC5H,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;QACxC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3C,MAAM,YAAY,GAA4B;YAC5C,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM;YAC1H,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;gBAC7C,kGAAkG;gBAClG,IAAI,CAAC,MAAM,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;gBAChD,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC1E,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC/H,MAAM,OAAO,GAAG,qBAAqB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC7J,OAAO,sBAAsB,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;wBACxE,KAAK,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;qBAChI,CAAC,EAAE,CAAC,CAAC;YACR,CAAC;SACF,CAAC;QACF,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IAED,8FAA8F;IAC9F,SAAS,UAAU,CAAC,QAAgB,EAAE,KAA8B,EAAE,UAAgD;QACpH,IAAI,QAA6C,CAAC;QAClD,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7D,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxG,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;oBAChI,GAAG,IAAI;oBACP,OAAO,CAAC,KAAgC;wBACtC,IAAI,CAAC,MAAM,EAAE;4BAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;wBAChD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC;iBACF,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACX,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACzC,CAAC;IAED,kGAAkG;IAClG,SAAS,KAAK,CAAC,QAAgB,EAAE,KAA8B,EAAE,UAAgD,EAAE,QAAkB;QACnI,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC;YAAE,OAAO,QAAQ,CAAC;QAC5D,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC;YAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACtF,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,qBAAqB,QAAQ,sBAAsB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3H,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO;QACL,+FAA+F;QAC/F,IAAI,CAAC,KAAmK,EAAE,WAAkC,EAAE;YAC5M,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC;gBACnD,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS;aACtG,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC;YACjC,MAAM,MAAM,GAAG,qBAAqB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACxH,MAAM,aAAa,GAAG,IAAI,GAAG,EAA2B,CAAC;YACzD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnE,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9H,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACzD,IAAI,MAAM;oBAAE,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAClD,CAAC;YACD,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YACnG,SAAS,GAAG,aAAa,CAAC;YAC1B,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAU,CAAC,CAAC,CAAC,CAAC;YACrN,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAU,CAAC,CAAC,CAAC,CAAC;YACzJ,OAAO,EAAE,QAAQ,EAAE,CAAC;QACtB,CAAC;QACD;uGAC+F;QAC/F,KAAK,CAAC,yBAAyB,CAAC,KAA2D,EAAE,WAAkC,EAAE;YAC/H,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxD,OAAO,2BAA2B,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;YAC5I,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAAE,OAAO,IAAI,CAAC;YACvE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;YACvB,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC;YAC9D,IAAI,CAAC,QAAQ;gBAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;YAC5F,sGAAsG;YACtG,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;YACjH,IAAI,MAAe,CAAC;YACpB,IAAI,CAAC;gBAAC,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAAC,CAAC;YACtG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;QACxH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAA2G;IACxL,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAClG,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACnE,6FAA6F;QAC7F,uFAAuF;QACvF,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,SAAS,EAAE,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;IAC7J,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { PluginManifestAuthor } from "../manifest.js";
|
|
2
|
+
import type { AgentPluginExportMetadata } from './exports.js';
|
|
2
3
|
/** Lifecycle value contracts shared by host ports and implementations. */
|
|
3
4
|
export type AgentPluginDeliveryMode = "inject" | "pointer";
|
|
4
5
|
export interface InstalledAgentPluginSkill {
|
|
5
6
|
readonly name: string;
|
|
6
7
|
readonly skillPath: string;
|
|
7
8
|
}
|
|
8
|
-
export interface InstalledAgentPlugin {
|
|
9
|
+
export interface InstalledAgentPlugin extends AgentPluginExportMetadata {
|
|
9
10
|
readonly id?: string | undefined;
|
|
10
11
|
readonly provides?: readonly string[] | undefined;
|
|
11
12
|
readonly requires?: readonly string[] | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lifecycle/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lifecycle/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAE9D,0EAA0E;AAC1E,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAqB,SAAQ,yBAAyB;IACrE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAExC;;;;qCAIiC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C;;;;oEAIgE;IAChE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAExC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,yBAAyB,EAAE,CAAC;CACvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/lifecycle/uninstall.ts"],"names":[],"mappings":"AAoHA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,yEAAyE;AACzE,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,EAAE,OAAO,EAAE,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,GAAE,YAAiB;CACnF;AAED;2BAC2B;AAC3B,qBAAa,gCAAiC,SAAQ,KAAK;gBAC7C,EAAE,OAAO,EAAE,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,GAAE,YAAiB;CACnF;AAED;gFACgF;AAChF,qBAAa,mCAAoC,SAAQ,KAAK;gBAChD,EAAE,OAAO,EAAE,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,GAAE,YAAiB;CACnF;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,4BAA4B;IAE3C;;wGAEoG;IACpG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,2BAA2B,CAAC,GAAG,SAAS,CAAC;IACtE,qFAAqF;IACrF,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE5C;;;wFAGoF;IACpF,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;CACjD;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;uFAEmF;IACnF,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,kGAAkG;AAClG,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,4FAA4F;IAC5F,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,qGAAqG;AACrG;iEACiE;AACjE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/lifecycle/uninstall.ts"],"names":[],"mappings":"AAoHA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,yEAAyE;AACzE,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,EAAE,OAAO,EAAE,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,GAAE,YAAiB;CACnF;AAED;2BAC2B;AAC3B,qBAAa,gCAAiC,SAAQ,KAAK;gBAC7C,EAAE,OAAO,EAAE,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,GAAE,YAAiB;CACnF;AAED;gFACgF;AAChF,qBAAa,mCAAoC,SAAQ,KAAK;gBAChD,EAAE,OAAO,EAAE,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,GAAE,YAAiB;CACnF;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,4BAA4B;IAE3C;;wGAEoG;IACpG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,2BAA2B,CAAC,GAAG,SAAS,CAAC;IACtE,qFAAqF;IACrF,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE5C;;;wFAGoF;IACpF,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;CACjD;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;uFAEmF;IACnF,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,kGAAkG;AAClG,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,4FAA4F;IAC5F,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,qGAAqG;AACrG;iEACiE;AACjE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAyTD,gFAAgF;AAChF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,yBAAyB;4CApRf,4BAA4B,KAAG,OAAO,CAAC,2BAA2B,CAAC;qCAqB1E,4BAA4B,aAAY,4BAA4B,KAAQ,OAAO,CAAC,0BAA0B,CAAC;mCA+GjH,MAAM,eAAe,MAAM,aAAY;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,KAAQ,OAAO,CAAC,UAAU,CAAC;iCAwB5F,SAAS,UAAU,EAAE,SAAS,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC;oCAwFrD,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;EAoCpE"}
|
|
@@ -376,6 +376,10 @@ function buildModule(ports) {
|
|
|
376
376
|
}
|
|
377
377
|
await chmod(dir, 0o700).catch(() => undefined);
|
|
378
378
|
for (const entry of entries) {
|
|
379
|
+
// Dirents are lstat-typed: a link is removed by `rm`, never followed, since chmod through it
|
|
380
|
+
// would change the mode of whatever it points at, even outside the package.
|
|
381
|
+
if (entry.isSymbolicLink())
|
|
382
|
+
continue;
|
|
379
383
|
const absolute = path.join(dir, entry.name);
|
|
380
384
|
if (entry.isDirectory()) {
|
|
381
385
|
await makeTreeWritable(absolute);
|