@jini-ai/agent-plugins 0.6.11 → 0.6.15-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/admin-surfaces/action-schema.d.ts +2 -55
  3. package/dist/admin-surfaces/action-schema.d.ts.map +1 -1
  4. package/dist/admin-surfaces/action-schema.js +2 -166
  5. package/dist/admin-surfaces/action-schema.js.map +1 -1
  6. package/dist/admin-surfaces/action-tools.d.ts +6 -0
  7. package/dist/admin-surfaces/action-tools.d.ts.map +1 -1
  8. package/dist/admin-surfaces/action-tools.js +4 -2
  9. package/dist/admin-surfaces/action-tools.js.map +1 -1
  10. package/dist/admin-surfaces/surface-capabilities.d.ts +8 -4
  11. package/dist/admin-surfaces/surface-capabilities.d.ts.map +1 -1
  12. package/dist/admin-surfaces/surface-capabilities.js +8 -6
  13. package/dist/admin-surfaces/surface-capabilities.js.map +1 -1
  14. package/dist/admin-surfaces/surface-handlers.d.ts +6 -2
  15. package/dist/admin-surfaces/surface-handlers.d.ts.map +1 -1
  16. package/dist/admin-surfaces/surface-handlers.js +8 -16
  17. package/dist/admin-surfaces/surface-handlers.js.map +1 -1
  18. package/dist/contracts/admin-surface-action-schema.d.ts +56 -0
  19. package/dist/contracts/admin-surface-action-schema.d.ts.map +1 -0
  20. package/dist/contracts/admin-surface-action-schema.js +167 -0
  21. package/dist/contracts/admin-surface-action-schema.js.map +1 -0
  22. package/dist/lifecycle/activation.d.ts +7 -0
  23. package/dist/lifecycle/activation.d.ts.map +1 -1
  24. package/dist/lifecycle/activation.js +29 -1
  25. package/dist/lifecycle/activation.js.map +1 -1
  26. package/dist/lifecycle/automatic-use.d.ts +8 -4
  27. package/dist/lifecycle/automatic-use.d.ts.map +1 -1
  28. package/dist/lifecycle/automatic-use.js +46 -16
  29. package/dist/lifecycle/automatic-use.js.map +1 -1
  30. package/dist/lifecycle/bundled-source-archive.d.ts +25 -2
  31. package/dist/lifecycle/bundled-source-archive.d.ts.map +1 -1
  32. package/dist/lifecycle/bundled-source-archive.js +165 -15
  33. package/dist/lifecycle/bundled-source-archive.js.map +1 -1
  34. package/dist/lifecycle/exports.d.ts +51 -0
  35. package/dist/lifecycle/exports.d.ts.map +1 -0
  36. package/dist/lifecycle/exports.js +96 -0
  37. package/dist/lifecycle/exports.js.map +1 -0
  38. package/dist/lifecycle/index.d.ts +18 -11
  39. package/dist/lifecycle/index.d.ts.map +1 -1
  40. package/dist/lifecycle/index.js +4 -2
  41. package/dist/lifecycle/index.js.map +1 -1
  42. package/dist/lifecycle/installed-package-index.d.ts.map +1 -1
  43. package/dist/lifecycle/installed-package-index.js +6 -2
  44. package/dist/lifecycle/installed-package-index.js.map +1 -1
  45. package/dist/lifecycle/manifest.d.ts +3 -1
  46. package/dist/lifecycle/manifest.d.ts.map +1 -1
  47. package/dist/lifecycle/manifest.js +7 -0
  48. package/dist/lifecycle/manifest.js.map +1 -1
  49. package/dist/lifecycle/ports.d.ts +13 -3
  50. package/dist/lifecycle/ports.d.ts.map +1 -1
  51. package/dist/lifecycle/resolve-agent-plugin-refs.d.ts +11 -0
  52. package/dist/lifecycle/resolve-agent-plugin-refs.d.ts.map +1 -1
  53. package/dist/lifecycle/resolve-agent-plugin-refs.js +38 -16
  54. package/dist/lifecycle/resolve-agent-plugin-refs.js.map +1 -1
  55. package/dist/lifecycle/search-projection.d.ts +34 -0
  56. package/dist/lifecycle/search-projection.d.ts.map +1 -0
  57. package/dist/lifecycle/search-projection.js +53 -0
  58. package/dist/lifecycle/search-projection.js.map +1 -0
  59. package/dist/lifecycle/search.js.map +1 -1
  60. package/dist/lifecycle/seed-bundled.d.ts +10 -1
  61. package/dist/lifecycle/seed-bundled.d.ts.map +1 -1
  62. package/dist/lifecycle/seed-bundled.js +7 -5
  63. package/dist/lifecycle/seed-bundled.js.map +1 -1
  64. package/dist/lifecycle/set-enabled.d.ts +3 -1
  65. package/dist/lifecycle/set-enabled.d.ts.map +1 -1
  66. package/dist/lifecycle/set-enabled.js +34 -13
  67. package/dist/lifecycle/set-enabled.js.map +1 -1
  68. package/dist/lifecycle/tools/capabilities.d.ts +51 -11
  69. package/dist/lifecycle/tools/capabilities.d.ts.map +1 -1
  70. package/dist/lifecycle/tools/capabilities.js +67 -15
  71. package/dist/lifecycle/tools/capabilities.js.map +1 -1
  72. package/dist/lifecycle/tools/projection.d.ts +5 -1
  73. package/dist/lifecycle/tools/projection.d.ts.map +1 -1
  74. package/dist/lifecycle/tools/projection.js +23 -13
  75. package/dist/lifecycle/tools/projection.js.map +1 -1
  76. package/dist/lifecycle/types.d.ts +2 -1
  77. package/dist/lifecycle/types.d.ts.map +1 -1
  78. package/dist/lifecycle/uninstall.d.ts.map +1 -1
  79. package/dist/lifecycle/uninstall.js +4 -0
  80. package/dist/lifecycle/uninstall.js.map +1 -1
  81. package/package.json +6 -6
@@ -1,4 +1,5 @@
1
1
  export const DEFAULT_CHAT_AGENT_PLUGINS = 'auto';
2
+ const MAX_AUTOMATIC_GUIDANCE_BYTES = 8 * 1024;
2
3
  /** Use the same one-line metadata reason in consent and progressive disclosure. */
3
4
  function describeMatch({ plugin }, _options = {}) {
4
5
  return { id: plugin.pluginId, name: (plugin.displayName ?? plugin.pluginId).replace(/\s+/g, ' '),
@@ -9,11 +10,11 @@ function describeMatch({ plugin }, _options = {}) {
9
10
  * @returns A bounded note in relevance order, with discovery for every omitted match.
10
11
  * @complexity O(p) metadata formatting; output is bounded independently of plugin count.
11
12
  */
12
- function relevantPluginNote({ matches }, _options = {}) {
13
+ function relevantPluginNote({ matches, formatPluginToolPointer }, _options = {}) {
13
14
  if (!matches.length)
14
15
  return '';
15
16
  const header = 'Relevant agent plugins for this request:\n';
16
- const footer = '\nLoad one with load_agent_plugin({ pluginId }) before acting on that part.';
17
+ const footer = formatPluginToolPointer ? `\nLoad one with ${formatPluginToolPointer({ pluginId: '<pluginId>', file: 'SKILL.md' })} before acting on that part.` : '';
17
18
  const more = (remaining) => remaining ? `\n+${remaining} more relevant: search_agent_plugin_local({ query: <same request>, offset: 0 }); page with nextOffset` : '';
18
19
  const lines = [];
19
20
  const bytes = (text) => new TextEncoder().encode(text).length;
@@ -85,19 +86,19 @@ export function createAutomaticAgentPluginUse({ mode, state: initialState, ports
85
86
  // Consent changes only this person's preference, never a workspace default.
86
87
  return matches.filter(plugin => selected.includes(plugin.pluginId));
87
88
  }
88
- /** Resolve through the host's activation/trust owner; only real text records delivery.
89
- * Refusals and read failures remain retryable and never expose host diagnostics. O(1) bookkeeping.
89
+ /** Resolve through the host's activation/trust owner; delivery is recorded only by the caller.
90
+ * Explicit content requests retain safe resolver refusals so the model can correct its request;
91
+ * thrown host diagnostics remain private. Failures stay retryable. O(1) bookkeeping.
90
92
  */
91
- async function resolveOneGuidance({ plugin }, { signal } = {}) {
93
+ async function resolveOneGuidance({ plugin, ...request }, { signal } = {}) {
92
94
  if (signal?.aborted)
93
95
  return { status: 'cancelled', guidance: '' };
94
96
  try {
95
- const result = await ports.resolve({ pluginId: plugin.pluginId }, {});
97
+ const result = await ports.resolve({ pluginId: plugin.pluginId, ...request }, {});
96
98
  if (!result.ok)
97
- return { status: result.code ?? 'unavailable', guidance: '' };
99
+ return { status: result.code ?? 'unavailable', guidance: request.skill !== undefined || request.file !== undefined ? result.reason : '' };
98
100
  if (!result.promptPrefix.trim())
99
101
  return { status: 'unavailable', guidance: '' };
100
- delivered.set(plugin.pluginId, plugin.displayName ?? plugin.pluginId);
101
102
  return { status: 'loaded', guidance: result.promptPrefix };
102
103
  }
103
104
  catch {
@@ -105,14 +106,30 @@ export function createAutomaticAgentPluginUse({ mode, state: initialState, ports
105
106
  return { status: 'unavailable', guidance: '' };
106
107
  }
107
108
  }
109
+ /** Only complete primary guidance updates the loaded set. O(1), no host effects. */
110
+ function recordDelivery({ plugin, result }, _options = {}) {
111
+ if (result.status === 'loaded')
112
+ delivered.set(plugin.pluginId, plugin.displayName ?? plugin.pluginId);
113
+ }
114
+ /** Bound automatic attachments before recording delivery; explicit loads retain complete text.
115
+ * O(p*b) in resolved plugins and guidance bytes; a deferred plugin remains retryable.
116
+ */
108
117
  async function resolveGuidance({ matches }, { signal } = {}) {
109
118
  const guidance = [];
110
119
  for (const match of matches) {
111
120
  if (signal?.aborted)
112
121
  break;
113
122
  const result = await resolveOneGuidance({ plugin: match }, { signal });
114
- if (result.status === 'loaded')
115
- guidance.push(result.guidance);
123
+ if (result.status !== 'loaded')
124
+ continue;
125
+ if (new TextEncoder().encode(result.guidance).length > MAX_AUTOMATIC_GUIDANCE_BYTES) {
126
+ const pointer = ports.formatPluginToolPointer?.({ pluginId: match.pluginId, skill: match.pluginId, file: 'SKILL.md' });
127
+ const howToLoad = pointer === undefined ? '' : ` Load the full instructions with ${pointer}; use the same call with file '<relative path>' for supporting references.`;
128
+ guidance.push(`Agent Plugin '${match.pluginId}' guidance is deferred because it exceeds the automatic byte limit.${howToLoad}`);
129
+ continue;
130
+ }
131
+ recordDelivery({ plugin: match, result });
132
+ guidance.push(result.guidance);
116
133
  }
117
134
  return guidance;
118
135
  }
@@ -140,7 +157,7 @@ export function createAutomaticAgentPluginUse({ mode, state: initialState, ports
140
157
  /** Query preflight suggests; only a guarded capability resolves guidance here.
141
158
  * Effects serialize with loads so a suggestion never consumes a backstop's delivery.
142
159
  */
143
- async function prepare(input) {
160
+ async function prepare(input, _options = {}) {
144
161
  if (mode === 'off' || input.signal?.aborted)
145
162
  return '';
146
163
  for (const id of input.loaded ?? [])
@@ -152,7 +169,7 @@ export function createAutomaticAgentPluginUse({ mode, state: initialState, ports
152
169
  const matches = await applyConsent({ matches: relevant }, { signal: input.signal });
153
170
  // Relevance is disclosure, never evidence that the model has read any guidance.
154
171
  const shouldLoad = !!input.capabilities?.length;
155
- const result = shouldLoad ? (await resolveGuidance({ matches }, { signal: input.signal })).join('\n\n') : relevantPluginNote({ matches });
172
+ const result = shouldLoad ? (await resolveGuidance({ matches }, { signal: input.signal })).join('\n\n') : relevantPluginNote({ matches, formatPluginToolPointer: ports.formatPluginToolPointer });
156
173
  rememberAutoSelection();
157
174
  await publishUsage();
158
175
  return result;
@@ -160,7 +177,7 @@ export function createAutomaticAgentPluginUse({ mode, state: initialState, ports
160
177
  /** Admit one explicit id using the same catalog, consent, resolver and delivery state as prepare.
161
178
  * No activation writes; unavailable guidance is retryable. O(p) local catalog lookup.
162
179
  */
163
- async function load({ pluginId, signal }, _options = {}) {
180
+ async function load({ pluginId, signal, ...request }, _options = {}) {
164
181
  if (mode === 'off')
165
182
  return { status: 'off', guidance: '' };
166
183
  if (signal?.aborted)
@@ -172,14 +189,27 @@ export function createAutomaticAgentPluginUse({ mode, state: initialState, ports
172
189
  return { status: 'missing', guidance: '' };
173
190
  if (!plugin.enabled)
174
191
  return { status: 'installed-but-inactive', guidance: '' };
175
- if (delivered.has(pluginId) || alreadyLoaded.has(pluginId))
192
+ return loadPermitted({ plugin, ...request }, { signal });
193
+ }
194
+ /** The plugin's own SKILL.md, whether defaulted or named explicitly. O(1). */
195
+ function isPrimaryInstructions({ pluginId, skill, file }, _options = {}) {
196
+ return (skill === undefined || skill === pluginId) && (file === undefined || file === 'SKILL.md');
197
+ }
198
+ /** Requested content bypasses only deduplication, never consent or the resolver's trust checks.
199
+ * Only the primary SKILL.md records full plugin delivery. O(p) consent filtering plus one read.
200
+ */
201
+ async function loadPermitted({ plugin, ...request }, { signal } = {}) {
202
+ const requestedContent = request.skill !== undefined || request.file !== undefined;
203
+ if (!requestedContent && (delivered.has(plugin.pluginId) || alreadyLoaded.has(plugin.pluginId)))
176
204
  return { status: 'already-loaded', guidance: '' };
177
205
  const matches = await applyConsent({ matches: [{ ...plugin, score: 4 }] }, { signal });
178
206
  if (!matches.length) {
179
207
  await publishUsage();
180
208
  return { status: 'excluded', guidance: '' };
181
209
  }
182
- const result = await resolveOneGuidance({ plugin }, { signal });
210
+ const result = await resolveOneGuidance({ plugin, ...request }, { signal });
211
+ if (isPrimaryInstructions({ pluginId: plugin.pluginId, ...request }))
212
+ recordDelivery({ plugin, result });
183
213
  rememberAutoSelection();
184
214
  await publishUsage();
185
215
  return result;
@@ -194,7 +224,7 @@ export function createAutomaticAgentPluginUse({ mode, state: initialState, ports
194
224
  /** Suggest relevant metadata for a query; capability calls load only their providers. */
195
225
  prepare: (input, _options = {}) => enqueue({ operation: () => prepare(input) }),
196
226
  /** Resolve one active, permitted id and publish usage only after real guidance is read.
197
- * Returns a concrete status; guidance is nonempty only when freshly delivered.
227
+ * Returns a concrete status and delivered content or a safe explicit-request refusal.
198
228
  * @example await controller.load({ pluginId: 'my-plugin' });
199
229
  */
200
230
  load: (input, _options = {}) => enqueue({ operation: () => load(input) }),
@@ -1 +1 @@
1
- {"version":3,"file":"automatic-use.js","sourceRoot":"","sources":["../../src/lifecycle/automatic-use.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"automatic-use.js","sourceRoot":"","sources":["../../src/lifecycle/automatic-use.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,39 @@
1
1
  import type { AgentPluginArchiveReaderPort } from "./install.js";
2
2
  import type { AgentPluginLifecyclePorts } from "./ports.js";
3
3
  export interface PackedAgentPluginArchive {
4
+ /** Bundled archive bytes, or a 32-byte canonical token requiring the paired archiveReader. */
4
5
  readonly bytes: Uint8Array;
5
6
  /** Lowercase hex SHA-256 of {@link bytes} — passed straight to `installAgentPlugin`'s
6
7
  * `expectedSha256`, which recomputes and compares it rather than trusting it. */
7
8
  readonly sha256: string;
8
- /** Package-relative POSIX paths included, sorted — the same order they appear in `bytes`. */
9
+ /** Package-relative POSIX paths included, sorted — the bundled-v1 encoding uses this order. */
9
10
  readonly files: readonly string[];
11
+ /** Paired snapshot reader for canonical-files-v1 tokens; absent for bundled-v1. */
12
+ readonly archiveReader?: AgentPluginArchiveReaderPort;
13
+ }
14
+ /** Opt-in source selection, resource bounds and archive identity. Omission preserves bundled-v1. */
15
+ export interface PackAgentPluginDirectoryOptional {
16
+ /** Exact package-relative files or directory subtrees. Empty selects nothing; exclusions win. */
17
+ readonly allowPaths?: readonly string[];
18
+ /** Entry basenames excluded at every depth, before entering directories. */
19
+ readonly excludeNames?: readonly string[];
20
+ /** Nonnegative safe integers; root depth is zero. Supplied bounds fail rather than truncate. */
21
+ readonly limits?: {
22
+ readonly maxEntries: number;
23
+ readonly maxDepth: number;
24
+ readonly maxFiles: number;
25
+ readonly maxFileBytes: number;
26
+ readonly maxTotalBytes: number;
27
+ readonly maxArchiveBytes: number;
28
+ };
29
+ readonly symlinkPolicy?: 'skip' | 'reject';
30
+ readonly specialFilePolicy?: 'skip' | 'reject';
31
+ /** canonical-files-v1 returns a digest token and a reader bound to the captured source snapshot. */
32
+ readonly digestEncoding?: 'bundled-v1' | 'canonical-files-v1';
10
33
  }
11
34
  /** Internal composition; one state/queue instance per injected host context. */
12
35
  export declare function createBundledSourceArchiveModule(ports: AgentPluginLifecyclePorts): {
13
- packAgentPluginDirectory: (sourceDir: string) => Promise<PackedAgentPluginArchive>;
36
+ packAgentPluginDirectory: (sourceDir: string, options?: PackAgentPluginDirectoryOptional) => Promise<PackedAgentPluginArchive>;
14
37
  createBundledSourceArchiveReader: () => AgentPluginArchiveReaderPort;
15
38
  };
16
39
  //# sourceMappingURL=bundled-source-archive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundled-source-archive.d.ts","sourceRoot":"","sources":["../../src/lifecycle/bundled-source-archive.ts"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAA2B,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAE3B;sFACkF;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,6FAA6F;IAC7F,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAmID,gFAAgF;AAChF,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,yBAAyB;0CA7G5B,MAAM,KAAG,OAAO,CAAC,wBAAwB,CAAC;4CAiChD,4BAA4B;EAgF1E"}
1
+ {"version":3,"file":"bundled-source-archive.d.ts","sourceRoot":"","sources":["../../src/lifecycle/bundled-source-archive.ts"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EAA2B,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,WAAW,wBAAwB;IACvC,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAE3B;sFACkF;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,+FAA+F;IAC/F,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,mFAAmF;IACnF,QAAQ,CAAC,aAAa,CAAC,EAAE,4BAA4B,CAAC;CACvD;AAED,oGAAoG;AACpG,MAAM,WAAW,gCAAgC;IAC/C,iGAAiG;IACjG,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,gGAAgG;IAChG,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;KAClC,CAAC;IACF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC/C,oGAAoG;IACpG,QAAQ,CAAC,cAAc,CAAC,EAAE,YAAY,GAAG,oBAAoB,CAAC;CAC/D;AAsSD,gFAAgF;AAChF,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,yBAAyB;0CApQ5B,MAAM,YAAW,gCAAgC,KAAQ,OAAO,CAAC,wBAAwB,CAAC;4CA2JhG,4BAA4B;EA6G1E"}
@@ -42,42 +42,164 @@
42
42
  * comes from here. */
43
43
  /** Extracted from the host plugin lifecycle. Effects are supplied per host context. */
44
44
  import { createHash } from "node:crypto";
45
+ import { constants } from "node:fs";
45
46
  import path from "node:path";
47
+ import { createPackagePathsModule } from "./package-paths.js";
46
48
  function buildModule(ports) {
47
49
  const readdir = ports.filesystem.readdir.bind(ports.filesystem);
48
50
  const readFile = ports.filesystem.readFile.bind(ports.filesystem);
49
51
  const MAGIC = ports.bundledArchiveMagic;
50
52
  const MAX_SOURCE_FILES = 2048;
53
+ const { normalizePackageEntryPath } = createPackagePathsModule(ports);
51
54
  /**
52
- * Serialises every regular file under `sourceDir` into one deterministic archive.
55
+ * Serialises runtime regular files under `sourceDir` into one deterministic archive.
53
56
  *
54
- * Symlinks and any other non-regular entry are skipped rather than followed: a bundled package is
57
+ * By default, symlinks and any other non-regular entry are skipped rather than followed: a bundled package is
55
58
  * this repository's own tracked content, so a symlink in it would be a mistake, and following one
56
59
  * is the exact vector `install.ts` refuses on the extraction side. Skipping keeps the two sides
57
60
  * agreeing instead of producing an archive the installer would then reject.
61
+ * Optional policies can reject these entries; supplied limits bound traversal and handle reads.
58
62
  *
59
63
  * @throws {Error} If the tree holds more than {@link MAX_SOURCE_FILES} files.
60
64
  * @throws Propagates `readdir`/`readFile` errors — a bundled package that cannot be read is a build
61
65
  * defect, not a runtime condition to degrade around.
62
- * @complexity O(f) files, O(b) total bytes; both bounded by the cap above and by `install.ts`'s own
63
- * `LIMITS` on the extraction side.
66
+ * @complexity O(f log f + b) for sorting f selected files and reading b bytes, plus traversal.
67
+ * Supplied limits bound source I/O; `install.ts` independently retains its extraction ceilings.
64
68
  */
65
- async function packAgentPluginDirectory(sourceDir) {
66
- const relativePaths = (await listRegularFiles(sourceDir, "")).sort();
69
+ async function packAgentPluginDirectory(sourceDir, options = {}) {
70
+ const state = createPackingState({ options });
71
+ assertPackingLimit({ state, name: 'maxArchiveBytes', value: state.archiveBytes });
72
+ await refuseRoot({ sourceDir, state });
73
+ const relativePaths = (await listRegularFiles({ dir: sourceDir, prefix: '', depth: 0, state })).sort();
67
74
  if (relativePaths.length > MAX_SOURCE_FILES) {
68
75
  throw new Error(`bundled agent plugin at '${sourceDir}' has ${relativePaths.length} files, over the ${MAX_SOURCE_FILES}-file cap — is this the right directory?`);
69
76
  }
70
77
  const chunks = [Buffer.from(MAGIC, "utf8")];
78
+ const snapshot = [];
79
+ const canonical = options.digestEncoding === 'canonical-files-v1';
80
+ const digest = createHash('sha256');
71
81
  for (const relativePath of relativePaths) {
72
- const content = await readFile(path.join(sourceDir, relativePath));
82
+ const content = options.limits
83
+ ? await readBoundedFile({ sourceDir, relativePath, state })
84
+ : await readFile(path.join(sourceDir, relativePath));
73
85
  const pathBytes = Buffer.from(relativePath, "utf8");
74
- chunks.push(Buffer.from(`F ${pathBytes.byteLength} ${content.byteLength}\n`, "utf8"), pathBytes, content);
86
+ if (canonical) {
87
+ digest.update(JSON.stringify([relativePath, content.byteLength]), 'utf8').update(content);
88
+ snapshot.push({ entryPath: relativePath, content });
89
+ }
90
+ else {
91
+ chunks.push(Buffer.from(`F ${pathBytes.byteLength} ${content.byteLength}\n`, "utf8"), pathBytes, content);
92
+ }
93
+ state.totalBytes += content.byteLength;
94
+ if (!canonical)
95
+ state.archiveBytes += encodedFileBytes({ relativePath, fileBytes: content.byteLength });
75
96
  }
76
- const bytes = Buffer.concat(chunks);
97
+ const bytes = canonical ? digest.digest() : Buffer.concat(chunks);
77
98
  return {
78
99
  bytes: new Uint8Array(bytes),
79
100
  sha256: createHash("sha256").update(bytes).digest("hex"),
80
101
  files: relativePaths,
102
+ ...(canonical ? { archiveReader: createSnapshotReader({ token: bytes, snapshot }) } : {}),
103
+ };
104
+ }
105
+ /** Validate caller bounds before I/O and normalize selection through the package path owner. */
106
+ function createPackingState({ options }) {
107
+ if (options.limits) {
108
+ for (const name of ['maxEntries', 'maxDepth', 'maxFiles', 'maxFileBytes', 'maxTotalBytes', 'maxArchiveBytes']) {
109
+ const value = options.limits[name];
110
+ if (!Number.isSafeInteger(value) || value < 0)
111
+ throw new Error(`Invalid packing limit ${name}`);
112
+ }
113
+ }
114
+ return {
115
+ options,
116
+ // A directory written as 'dist/' selects the same subtree as 'dist' (normalize already collapsed '//').
117
+ allowPaths: options.allowPaths?.map(value => normalizePackageEntryPath(value).replace(/\/$/, '')),
118
+ excluded: new Set(options.excludeNames ?? []),
119
+ files: new Set(), entries: 0, totalBytes: 0,
120
+ archiveBytes: options.digestEncoding === 'canonical-files-v1' ? 32 : Buffer.byteLength(MAGIC),
121
+ };
122
+ }
123
+ /** Only a reject policy refuses a non-directory root. Otherwise the root is read as before:
124
+ * readdir follows a symlinked root, so any options object (even all-undefined) keeps legacy output. */
125
+ async function refuseRoot({ sourceDir, state }) {
126
+ if (state.options.symlinkPolicy !== 'reject' && state.options.specialFilePolicy !== 'reject')
127
+ return;
128
+ const stat = await ports.filesystem.lstat(sourceDir);
129
+ if (!stat.isDirectory())
130
+ refuseEntry({ state, entryPath: sourceDir, symlink: stat.isSymbolicLink() });
131
+ }
132
+ function assertPackingLimit({ state, name, value }) {
133
+ const limit = state.options.limits?.[name];
134
+ if (limit !== undefined && value > limit)
135
+ throw new Error(`bundled agent plugin exceeds packing ${name} (${limit})`);
136
+ }
137
+ function encodedFileBytes({ relativePath, fileBytes }) {
138
+ const pathBytes = Buffer.byteLength(relativePath);
139
+ return Buffer.byteLength(`F ${pathBytes} ${fileBytes}\n`) + pathBytes + fileBytes;
140
+ }
141
+ /** Check actual read bytes before retaining a chunk, including the bundled header/path overhead. */
142
+ function checkFileBudget({ state, relativePath, fileBytes }) {
143
+ assertPackingLimit({ state, name: 'maxFileBytes', value: fileBytes });
144
+ assertPackingLimit({ state, name: 'maxTotalBytes', value: state.totalBytes + fileBytes });
145
+ const archiveBytes = state.options.digestEncoding === 'canonical-files-v1'
146
+ ? state.archiveBytes : state.archiveBytes + encodedFileBytes({ relativePath, fileBytes });
147
+ assertPackingLimit({ state, name: 'maxArchiveBytes', value: archiveBytes });
148
+ }
149
+ /** Bounded handle reads also detect growing files; every success/failure closes the handle.
150
+ * @throws Propagates filesystem failures and rejects a changed file kind or any exceeded cap.
151
+ * @complexity O(b) bytes read, O(b) captured bytes within the supplied file/total/archive caps. */
152
+ async function readBoundedFile({ sourceDir, relativePath, state }) {
153
+ const { handle, stat } = await openWalkedFile({ target: path.join(sourceDir, relativePath), relativePath });
154
+ try {
155
+ checkFileBudget({ state, relativePath, fileBytes: stat.size });
156
+ const chunks = [];
157
+ let fileBytes = 0;
158
+ for (;;) {
159
+ const limits = state.options.limits;
160
+ const remaining = Math.min(limits.maxFileBytes - fileBytes, limits.maxTotalBytes - state.totalBytes - fileBytes);
161
+ const buffer = Buffer.alloc(Math.min(64 * 1024, remaining + 1));
162
+ const { bytesRead } = await handle.read(buffer, 0, buffer.byteLength, null);
163
+ if (bytesRead === 0)
164
+ return Buffer.concat(chunks, fileBytes);
165
+ fileBytes += bytesRead;
166
+ checkFileBudget({ state, relativePath, fileBytes });
167
+ chunks.push(buffer.subarray(0, bytesRead));
168
+ }
169
+ }
170
+ finally {
171
+ await handle.close();
172
+ }
173
+ }
174
+ /** O_NOFOLLOW/O_NONBLOCK do not exist on Windows, so no-follow cannot rest on open flags alone:
175
+ * the opened object must also be the regular file the walk lstat'ed (same dev/ino). A link or file
176
+ * swapped in between is refused, failing closed on every platform. Refusals close the handle. */
177
+ async function openWalkedFile({ target, relativePath }) {
178
+ const walked = await ports.filesystem.lstat(target);
179
+ const handle = await ports.filesystem.open(target, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0) | (constants.O_NONBLOCK ?? 0));
180
+ try {
181
+ const stat = await handle.stat();
182
+ if (!walked.isFile() || !stat.isFile() || stat.dev !== walked.dev || stat.ino !== walked.ino) {
183
+ throw new Error(`bundled agent plugin source is no longer a regular file: '${relativePath}'`);
184
+ }
185
+ return { handle, stat };
186
+ }
187
+ catch (error) {
188
+ await handle.close();
189
+ throw error;
190
+ }
191
+ }
192
+ /** A token identifies only this snapshot. Copy yielded bytes so a reader cannot mutate later reads. */
193
+ function createSnapshotReader({ token, snapshot }) {
194
+ return {
195
+ async *entries({ archive }) {
196
+ if (!token.equals(archive))
197
+ throw new Error('bundled agent plugin archive: snapshot token mismatch');
198
+ for (const { entryPath, content } of snapshot) {
199
+ yield { kind: 'file', entryPath, declaredSize: content.byteLength,
200
+ openReadStream: () => onceAsyncIterable(new Uint8Array(content)) };
201
+ }
202
+ },
81
203
  };
82
204
  }
83
205
  /**
@@ -136,25 +258,53 @@ function buildModule(ports) {
136
258
  yield chunk;
137
259
  }
138
260
  /**
139
- * Lists every regular file under `dir`, as POSIX-style package-relative paths.
261
+ * Lists runtime regular files under `dir`, as POSIX-style package-relative paths.
262
+ * Test directories and test/spec files are excluded so test-only edits cannot change installed
263
+ * runtime contents or their content-addressed digest.
140
264
  *
141
- * @complexity O(f) in filesystem entries under `dir`.
265
+ * @complexity O(e * a) selection checks for e enumerated entries and a allowlist paths (one when omitted).
142
266
  */
143
- async function listRegularFiles(dir, prefix) {
267
+ async function listRegularFiles({ dir, prefix, depth, state }) {
144
268
  const entries = await readdir(dir, { withFileTypes: true });
269
+ state.entries += entries.length;
270
+ assertPackingLimit({ state, name: 'maxEntries', value: state.entries });
145
271
  const files = [];
146
272
  for (const entry of entries) {
147
273
  const relative = prefix ? `${prefix}/${entry.name}` : entry.name;
274
+ if (state.excluded.has(entry.name))
275
+ continue;
276
+ if (!selectPath({ relative, directory: entry.isDirectory(), state }))
277
+ continue;
148
278
  if (entry.isDirectory()) {
149
- files.push(...(await listRegularFiles(path.join(dir, entry.name), relative)));
279
+ if (entry.name === '__tests__')
280
+ continue;
281
+ assertPackingLimit({ state, name: 'maxDepth', value: depth + 1 });
282
+ files.push(...(await listRegularFiles({ dir: path.join(dir, entry.name), prefix: relative, depth: depth + 1, state })));
150
283
  }
151
- else if (entry.isFile()) {
284
+ else if (entry.isFile() && !/\.(test|spec)\./.test(entry.name)) {
285
+ recordFile({ relative, state });
152
286
  files.push(relative);
153
287
  }
154
- // Symlinks and everything else: skipped. See this function's own doc.
288
+ else if (!entry.isFile()) {
289
+ refuseEntry({ state, entryPath: relative, symlink: entry.isSymbolicLink() });
290
+ }
291
+ // Symlinks and everything else: skipped by default. See this function's own doc.
155
292
  }
156
293
  return files;
157
294
  }
295
+ function recordFile({ relative, state }) {
296
+ state.files.add(relative);
297
+ assertPackingLimit({ state, name: 'maxFiles', value: state.files.size });
298
+ }
299
+ /** Ancestors of an allowed path must be traversed, but their unrelated siblings are pruned. */
300
+ function selectPath({ relative, directory, state }) {
301
+ return state.allowPaths === undefined || state.allowPaths.some(allowed => relative === allowed || relative.startsWith(`${allowed}/`) || (directory && allowed.startsWith(`${relative}/`)));
302
+ }
303
+ function refuseEntry({ state, entryPath, symlink }) {
304
+ const policy = symlink ? state.options.symlinkPolicy : state.options.specialFilePolicy;
305
+ if (policy === 'reject')
306
+ throw new Error(`bundled agent plugin refuses ${symlink ? 'symlink' : 'special file'} '${entryPath}'`);
307
+ }
158
308
  return { packAgentPluginDirectory, createBundledSourceArchiveReader };
159
309
  }
160
310
  const instances = new WeakMap();
@@ -1 +1 @@
1
- {"version":3,"file":"bundled-source-archive.js","sourceRoot":"","sources":["../../src/lifecycle/bundled-source-archive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,0FAA0F;AAC1F;;uBAEuB;AACvB,uFAAuF;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAe7B,SAAS,WAAW,CAAC,KAAgC;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,KAAK,CAAC,mBAAmB,CAAC;IAExC,MAAM,gBAAgB,GAAG,IAAI,CAAC;IAE9B;;;;;;;;;;;;;KAaC;IACD,KAAK,UAAU,wBAAwB,CAAC,SAAiB;QACvD,MAAM,aAAa,GAAG,CAAC,MAAM,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrE,IAAI,aAAa,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,4BAA4B,SAAS,SAAS,aAAa,CAAC,MAAM,oBAAoB,gBAAgB,0CAA0C,CACjJ,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;YACnE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5G,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO;YACL,KAAK,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC;YAC5B,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACxD,KAAK,EAAE,aAAa;SACrB,CAAC;IACJ,CAAC;IAED;;;;;;;;;KASC;IACD,SAAS,gCAAgC;QACvC,OAAO;YACL,OAAO,CAAC,EAAE,OAAO,EAAoC;gBACnD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,SAAS,CAAC,CAAC,WAAW,CAAC,OAAmB;QAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACnF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAChG,MAAM,IAAI,KAAK,CAAC,8GAA8G,CAAC,CAAC;QAClI,CAAC;QAED,IAAI,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;QAC9B,OAAO,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YAClC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAClD,IAAI,YAAY,KAAK,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAEjG,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,MAAM,GAAG,CAAC,CAAC;YAEhG,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC;YACnC,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;YAC5C,MAAM,UAAU,GAAG,YAAY,GAAG,aAAa,CAAC;YAChD,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YAE1G,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YAE1D,MAAM;gBACJ,IAAI,EAAE,MAAM;gBACZ,SAAS;gBACT,YAAY,EAAE,aAAa;gBAC3B,cAAc,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;aACjE,CAAC;YAEF,MAAM,GAAG,UAAU,CAAC;QACtB,CAAC;IACH,CAAC;IAED;2FACuF;IACvF,KAAK,SAAS,CAAC,CAAC,iBAAiB,CAAC,KAAiB;QACjD,MAAM,KAAK,CAAC;IACd,CAAC;IAED;;;;KAIC;IACD,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,MAAc;QACzD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YACjE,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YAChF,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;YACD,sEAAsE;QACxE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,EAAE,wBAAwB,EAAE,gCAAgC,EAAE,CAAC;AACxE,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,OAAO,EAA6D,CAAC;AAC3F,gFAAgF;AAChF,MAAM,UAAU,gCAAgC,CAAC,KAAgC;IAC/E,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAAC,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAAC,CAAC;IACjF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"bundled-source-archive.js","sourceRoot":"","sources":["../../src/lifecycle/bundled-source-archive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,0FAA0F;AAC1F;;uBAEuB;AACvB,uFAAuF;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAiD9D,SAAS,WAAW,CAAC,KAAgC;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,KAAK,CAAC,mBAAmB,CAAC;IAExC,MAAM,gBAAgB,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,yBAAyB,EAAE,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAEtE;;;;;;;;;;;;;;KAcC;IACD,KAAK,UAAU,wBAAwB,CAAC,SAAiB,EAAE,UAA4C,EAAE;QACvG,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9C,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;QAClF,MAAM,UAAU,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,CAAC,MAAM,gBAAgB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvG,IAAI,aAAa,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,4BAA4B,SAAS,SAAS,aAAa,CAAC,MAAM,oBAAoB,gBAAgB,0CAA0C,CACjJ,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,MAAM,QAAQ,GAA6C,EAAE,CAAC;QAC9D,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,KAAK,oBAAoB,CAAC;QAClE,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QACpC,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM;gBAC5B,CAAC,CAAC,MAAM,eAAe,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;gBAC3D,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACpD,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC5G,CAAC;YACD,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;YACvC,IAAI,CAAC,SAAS;gBAAE,KAAK,CAAC,YAAY,IAAI,gBAAgB,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1G,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO;YACL,KAAK,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC;YAC5B,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACxD,KAAK,EAAE,aAAa;YACpB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,oBAAoB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1F,CAAC;IACJ,CAAC;IAED,gGAAgG;IAChG,SAAS,kBAAkB,CAAC,EAAE,OAAO,EAAiD;QACpF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,CAAU,EAAE,CAAC;gBACvH,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;QACD,OAAO;YACL,OAAO;YACP,wGAAwG;YACxG,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjG,QAAQ,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;YAC7C,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;YAC3C,YAAY,EAAE,OAAO,CAAC,cAAc,KAAK,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;SAC9F,CAAC;IACJ,CAAC;IAED;2GACuG;IACvG,KAAK,UAAU,UAAU,CAAC,EAAE,SAAS,EAAE,KAAK,EAA8C;QACxF,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,KAAK,QAAQ;YAAE,OAAO;QACrG,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACxG,CAAC;IAED,SAAS,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAE/C;QACC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC;IACvH,CAAC;IAED,SAAS,gBAAgB,CAAC,EAAE,YAAY,EAAE,SAAS,EAA+C;QAChG,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,SAAS,IAAI,SAAS,IAAI,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC;IACpF,CAAC;IAED,oGAAoG;IACpG,SAAS,eAAe,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAoE;QAC3H,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACtE,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,SAAS,EAAE,CAAC,CAAC;QAC1F,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,KAAK,oBAAoB;YACxE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,GAAG,gBAAgB,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5F,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED;;uGAEmG;IACnG,KAAK,UAAU,eAAe,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAE9D;QACC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,cAAc,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QAC5G,IAAI,CAAC;YACH,eAAe,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,SAAS,CAAC;gBACR,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAO,CAAC;gBACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,SAAS,EAAE,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;gBACjH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;gBAChE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAC5E,IAAI,SAAS,KAAK,CAAC;oBAAE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC7D,SAAS,IAAI,SAAS,CAAC;gBACvB,eAAe,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC;gBACpD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;qGAEiG;IACjG,KAAK,UAAU,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,EAA4C;QAC9F,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;QACnI,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC;gBAC7F,MAAM,IAAI,KAAK,CAAC,6DAA6D,YAAY,GAAG,CAAC,CAAC;YAChG,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,uGAAuG;IACvG,SAAS,oBAAoB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAE9C;QACC,OAAO;YACL,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE;gBACxB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;gBACrG,KAAK,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,QAAQ,EAAE,CAAC;oBAC9C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,UAAU;wBAC/D,cAAc,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBACvE,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;KASC;IACD,SAAS,gCAAgC;QACvC,OAAO;YACL,OAAO,CAAC,EAAE,OAAO,EAAoC;gBACnD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,SAAS,CAAC,CAAC,WAAW,CAAC,OAAmB;QAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACnF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAChG,MAAM,IAAI,KAAK,CAAC,8GAA8G,CAAC,CAAC;QAClI,CAAC;QAED,IAAI,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;QAC9B,OAAO,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YAClC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAClD,IAAI,YAAY,KAAK,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAEjG,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,MAAM,GAAG,CAAC,CAAC;YAEhG,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC;YACnC,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;YAC5C,MAAM,UAAU,GAAG,YAAY,GAAG,aAAa,CAAC;YAChD,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YAE1G,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YAE1D,MAAM;gBACJ,IAAI,EAAE,MAAM;gBACZ,SAAS;gBACT,YAAY,EAAE,aAAa;gBAC3B,cAAc,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;aACjE,CAAC;YAEF,MAAM,GAAG,UAAU,CAAC;QACtB,CAAC;IACH,CAAC;IAED;2FACuF;IACvF,KAAK,SAAS,CAAC,CAAC,iBAAiB,CAAC,KAAiB;QACjD,MAAM,KAAK,CAAC;IACd,CAAC;IAED;;;;;;KAMC;IACD,KAAK,UAAU,gBAAgB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAE1D;QACC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;QAChC,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YACjE,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC7C,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC;gBAAE,SAAS;YAC/E,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;oBAAE,SAAS;gBACzC,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,gBAAgB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1H,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjE,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;iBAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC3B,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,iFAAiF;QACnF,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAA6C;QAChF,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,+FAA+F;IAC/F,SAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAiE;QAC/G,OAAO,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CACvE,QAAQ,KAAK,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;IACrH,CAAC;IAED,SAAS,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAgE;QAC9G,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC;QACvF,IAAI,MAAM,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,GAAG,CAAC,CAAC;IAClI,CAAC;IAED,OAAO,EAAE,wBAAwB,EAAE,gCAAgC,EAAE,CAAC;AACxE,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,OAAO,EAA6D,CAAC;AAC3F,gFAAgF;AAChF,MAAM,UAAU,gCAAgC,CAAC,KAAgC;IAC/E,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAAC,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAAC,CAAC;IACjF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { type AdminSurfaceActionSchema } from '../contracts/admin-surface-action-schema.js';
2
+ /** Matches the CMS consent vocabulary without introducing a dependency on CMS. */
3
+ export type AgentPluginExportConsent = 'necessary' | 'functional' | 'analytics' | 'marketing';
4
+ export type AgentPluginExportStaticMode = 'full' | 'link-only' | 'fallback-only';
5
+ export interface AgentPluginExport {
6
+ readonly template: string;
7
+ readonly props: Extract<AdminSurfaceActionSchema, {
8
+ type: 'object';
9
+ }>;
10
+ readonly consent: AgentPluginExportConsent;
11
+ readonly staticExport: AgentPluginExportStaticMode;
12
+ readonly version: number;
13
+ /** Omitted means version 1; hosts accept minVersion <= marker version <= version. */
14
+ readonly minVersion?: number;
15
+ readonly aliases?: readonly string[];
16
+ /** Slot name -> capability declared by this same plugin's provides list. */
17
+ readonly hostLinks?: Readonly<Record<string, string>>;
18
+ readonly styles?: string;
19
+ readonly assets?: Readonly<Record<string, string>>;
20
+ }
21
+ export interface AgentPluginExportMetadata {
22
+ readonly exports?: Readonly<Record<string, AgentPluginExport>>;
23
+ /** Explicit publisher-qualified old identities; admission and ambiguity are host decisions. */
24
+ readonly renamedFrom?: readonly string[];
25
+ }
26
+ export type ParseAgentPluginExportsResult = {
27
+ readonly ok: true;
28
+ readonly metadata: AgentPluginExportMetadata;
29
+ readonly warnings: readonly string[];
30
+ } | {
31
+ readonly ok: false;
32
+ readonly errors: readonly string[];
33
+ };
34
+ type Entry = Readonly<Record<string, unknown>>;
35
+ /** Parses one namespace's exports; invalid known fields refuse the contract, unknown keys warn.
36
+ * File contents, trust admission, rename ambiguity and rendering remain host responsibilities.
37
+ * @returns Validated metadata or errors, without I/O. @complexity O(e + s + a) export, schema and alias entries.
38
+ */
39
+ export declare function parseAgentPluginExports({ extension, provides }: {
40
+ readonly extension: Entry;
41
+ readonly provides: readonly string[];
42
+ }, _optional?: Record<string, never>): ParseAgentPluginExportsResult;
43
+ /** Save and render share the existing bounded schema/value policy; messages never echo prop values.
44
+ * @returns First validation reason, or null on success. No side effects. @complexity O(p) prop values.
45
+ */
46
+ export declare function validateAgentPluginExportProps({ definition, props }: {
47
+ readonly definition: AgentPluginExport;
48
+ readonly props: unknown;
49
+ }, _optional?: Record<string, never>): string | null;
50
+ export {};
51
+ //# sourceMappingURL=exports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/lifecycle/exports.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,6CAA6C,CAAC;AAErD,kFAAkF;AAClF,MAAM,MAAM,wBAAwB,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,CAAC;AAC9F,MAAM,MAAM,2BAA2B,GAAG,MAAM,GAAG,WAAW,GAAG,eAAe,CAAC;AACjF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,wBAAwB,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC;IACtE,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAC3C,QAAQ,CAAC,YAAY,EAAE,2BAA2B,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qFAAqF;IACrF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD;AACD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC/D,+FAA+F;IAC/F,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AACD,MAAM,MAAM,6BAA6B,GACrC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACzG;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAE/D,KAAK,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAgD/C;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,EAC5F,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAM,GACpC,6BAA6B,CAe/B;AAWD;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,EAC1F,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAM,GACpC,MAAM,GAAG,IAAI,CAGf"}