@framers/agentos 0.1.55 → 0.1.57

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 (47) hide show
  1. package/README.md +67 -16
  2. package/dist/api/types/AgentOSResponse.d.ts +7 -0
  3. package/dist/api/types/AgentOSResponse.d.ts.map +1 -1
  4. package/dist/core/guardrails/IGuardrailService.d.ts +39 -0
  5. package/dist/core/guardrails/IGuardrailService.d.ts.map +1 -1
  6. package/dist/core/guardrails/ParallelGuardrailDispatcher.d.ts +92 -0
  7. package/dist/core/guardrails/ParallelGuardrailDispatcher.d.ts.map +1 -0
  8. package/dist/core/guardrails/ParallelGuardrailDispatcher.js +463 -0
  9. package/dist/core/guardrails/ParallelGuardrailDispatcher.js.map +1 -0
  10. package/dist/core/guardrails/guardrailDispatcher.d.ts +59 -1
  11. package/dist/core/guardrails/guardrailDispatcher.d.ts.map +1 -1
  12. package/dist/core/guardrails/guardrailDispatcher.js +49 -154
  13. package/dist/core/guardrails/guardrailDispatcher.js.map +1 -1
  14. package/dist/core/guardrails/index.d.ts +1 -0
  15. package/dist/core/guardrails/index.d.ts.map +1 -1
  16. package/dist/core/guardrails/index.js +2 -0
  17. package/dist/core/guardrails/index.js.map +1 -1
  18. package/dist/core/utils/index.d.ts +13 -0
  19. package/dist/core/utils/index.d.ts.map +1 -0
  20. package/dist/core/utils/index.js +13 -0
  21. package/dist/core/utils/index.js.map +1 -0
  22. package/dist/core/utils/text-utils.d.ts +164 -0
  23. package/dist/core/utils/text-utils.d.ts.map +1 -0
  24. package/dist/core/utils/text-utils.js +254 -0
  25. package/dist/core/utils/text-utils.js.map +1 -0
  26. package/dist/extensions/ExtensionManager.d.ts +1 -0
  27. package/dist/extensions/ExtensionManager.d.ts.map +1 -1
  28. package/dist/extensions/ExtensionManager.js +8 -0
  29. package/dist/extensions/ExtensionManager.js.map +1 -1
  30. package/dist/extensions/ISharedServiceRegistry.d.ts +35 -0
  31. package/dist/extensions/ISharedServiceRegistry.d.ts.map +1 -0
  32. package/dist/extensions/ISharedServiceRegistry.js +2 -0
  33. package/dist/extensions/ISharedServiceRegistry.js.map +1 -0
  34. package/dist/extensions/SharedServiceRegistry.d.ts +15 -0
  35. package/dist/extensions/SharedServiceRegistry.d.ts.map +1 -0
  36. package/dist/extensions/SharedServiceRegistry.js +63 -0
  37. package/dist/extensions/SharedServiceRegistry.js.map +1 -0
  38. package/dist/extensions/index.d.ts +2 -0
  39. package/dist/extensions/index.d.ts.map +1 -1
  40. package/dist/extensions/index.js +2 -0
  41. package/dist/extensions/index.js.map +1 -1
  42. package/dist/extensions/manifest.d.ts +2 -0
  43. package/dist/extensions/manifest.d.ts.map +1 -1
  44. package/dist/extensions/types.d.ts +5 -0
  45. package/dist/extensions/types.d.ts.map +1 -1
  46. package/dist/extensions/types.js.map +1 -1
  47. package/package.json +6 -1
@@ -0,0 +1,254 @@
1
+ /**
2
+ * @fileoverview Shared text utility functions used across AgentOS modules.
3
+ *
4
+ * These utilities cover common text-processing operations: numeric clamping,
5
+ * safe JSON parsing (including markdown code-fence stripping), tokenisation,
6
+ * text normalisation, and a lightweight token-count estimator used wherever
7
+ * the exact subword count is not critical.
8
+ *
9
+ * All functions are pure (no side-effects) and operate synchronously so they
10
+ * can be called from any context — including hot paths and web workers.
11
+ *
12
+ * @module agentos/core/utils/text-utils
13
+ */
14
+ // ---------------------------------------------------------------------------
15
+ // Numeric helpers
16
+ // ---------------------------------------------------------------------------
17
+ /**
18
+ * Clamps a numeric `value` to the closed interval [`min`, `max`].
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * clamp(5, 0, 10); // → 5
23
+ * clamp(-3, 0, 10); // → 0
24
+ * clamp(15, 0, 10); // → 10
25
+ * ```
26
+ *
27
+ * @param value - The number to clamp.
28
+ * @param min - The inclusive lower bound.
29
+ * @param max - The inclusive upper bound.
30
+ * @returns The clamped value, guaranteed to satisfy `min <= result <= max`.
31
+ */
32
+ export function clamp(value, min, max) {
33
+ // Guard: if min > max the range is degenerate; return min as a safe fallback.
34
+ if (min > max) {
35
+ return min;
36
+ }
37
+ return Math.min(Math.max(value, min), max);
38
+ }
39
+ // ---------------------------------------------------------------------------
40
+ // JSON parsing
41
+ // ---------------------------------------------------------------------------
42
+ /**
43
+ * Safely parses a JSON string, stripping markdown code fences if present.
44
+ *
45
+ * LLMs frequently wrap JSON in triple-backtick blocks (e.g. ` ```json … ``` `
46
+ * or ` ``` … ``` `). This function strips those fences before attempting
47
+ * `JSON.parse`, so callers do not need to pre-process LLM output.
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * // Plain JSON
52
+ * parseJsonResponse<{ ok: boolean }>('{"ok":true}'); // → { ok: true }
53
+ *
54
+ * // Markdown-fenced JSON
55
+ * parseJsonResponse('```json\n{"ok":true}\n```'); // → { ok: true }
56
+ *
57
+ * // Invalid input
58
+ * parseJsonResponse('not json'); // → null
59
+ * ```
60
+ *
61
+ * @typeParam T - Expected shape of the parsed value.
62
+ * @param response - Raw string that may contain JSON, optionally wrapped in
63
+ * markdown code fences.
64
+ * @returns The parsed value cast to `T`, or `null` if parsing fails for any
65
+ * reason (syntax error, empty input, etc.).
66
+ */
67
+ export function parseJsonResponse(response) {
68
+ if (!response || typeof response !== 'string') {
69
+ return null;
70
+ }
71
+ // Strip leading/trailing whitespace first.
72
+ let raw = response.trim();
73
+ // Remove markdown code fences. Handles both:
74
+ // ```json\n…\n``` and ```\n…\n```
75
+ const fencePattern = /^```(?:json|javascript|js|ts|typescript)?\s*\n?([\s\S]*?)\n?```$/i;
76
+ const fenceMatch = fencePattern.exec(raw);
77
+ if (fenceMatch) {
78
+ // fenceMatch[1] is the content between the fences.
79
+ raw = fenceMatch[1].trim();
80
+ }
81
+ try {
82
+ return JSON.parse(raw);
83
+ }
84
+ catch {
85
+ // Parsing failed — return null rather than throwing so callers can handle
86
+ // gracefully without a try/catch at every call site.
87
+ return null;
88
+ }
89
+ }
90
+ // ---------------------------------------------------------------------------
91
+ // Tokenisation & normalisation
92
+ // ---------------------------------------------------------------------------
93
+ /**
94
+ * Splits text into lowercase word tokens, stripping punctuation.
95
+ *
96
+ * This is an intentionally simple, dependency-free tokeniser suited for tasks
97
+ * like keyword matching, vocabulary analysis, and lightweight NLP pipelines.
98
+ * It is *not* a subword tokeniser and does not respect language-specific rules.
99
+ *
100
+ * Steps performed:
101
+ * 1. Convert to lowercase.
102
+ * 2. Replace non-alphanumeric characters (except spaces) with spaces.
103
+ * 3. Split on whitespace.
104
+ * 4. Drop empty strings that can arise from consecutive separators.
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * tokenize('Hello, World!'); // → ['hello', 'world']
109
+ * tokenize('foo bar\tbaz'); // → ['foo', 'bar', 'baz']
110
+ * tokenize(''); // → []
111
+ * ```
112
+ *
113
+ * @param text - The string to tokenise.
114
+ * @returns An array of lowercase word tokens with punctuation removed.
115
+ */
116
+ export function tokenize(text) {
117
+ if (!text || typeof text !== 'string') {
118
+ return [];
119
+ }
120
+ return (text
121
+ .toLowerCase()
122
+ // Replace every run of non-alphanumeric, non-space chars with a space.
123
+ .replace(/[^a-z0-9\s]/g, ' ')
124
+ // Split on any run of whitespace.
125
+ .split(/\s+/)
126
+ // Remove empty strings produced by leading/trailing whitespace or
127
+ // consecutive separators.
128
+ .filter((token) => token.length > 0));
129
+ }
130
+ /**
131
+ * Normalises text by lowercasing, stripping punctuation, and collapsing
132
+ * internal whitespace runs to a single space.
133
+ *
134
+ * This produces a canonical form useful for fuzzy comparisons, deduplication,
135
+ * and pre-processing before embedding or classification.
136
+ *
137
+ * Steps performed:
138
+ * 1. Convert to lowercase.
139
+ * 2. Replace non-alphanumeric characters (except spaces) with spaces.
140
+ * 3. Collapse consecutive whitespace to a single space.
141
+ * 4. Trim leading and trailing whitespace.
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * normalizeText('Hello, World!'); // → 'hello world'
146
+ * normalizeText(' foo bar '); // → 'foo bar'
147
+ * normalizeText("it's a test!"); // → 'it s a test'
148
+ * ```
149
+ *
150
+ * @param text - The string to normalise.
151
+ * @returns A normalised string.
152
+ */
153
+ export function normalizeText(text) {
154
+ if (!text || typeof text !== 'string') {
155
+ return '';
156
+ }
157
+ return (text
158
+ .toLowerCase()
159
+ // Replace punctuation/symbols with spaces.
160
+ .replace(/[^a-z0-9\s]/g, ' ')
161
+ // Collapse runs of whitespace to a single space.
162
+ .replace(/\s+/g, ' ')
163
+ .trim());
164
+ }
165
+ // ---------------------------------------------------------------------------
166
+ // Token estimation
167
+ // ---------------------------------------------------------------------------
168
+ /**
169
+ * Estimates the number of LLM tokens in a string using the rough heuristic
170
+ * of **1 token ≈ 4 characters** (the widely-cited GPT-family average).
171
+ *
172
+ * This is intentionally approximate. It is suitable for budget checks,
173
+ * sliding-window sizing, and other cost-control logic where precision is not
174
+ * required. For exact subword counts, use the model's native tokeniser.
175
+ *
176
+ * @example
177
+ * ```typescript
178
+ * estimateTokens('Hello!'); // → 2 (6 chars / 4 → ceil(1.5) = 2)
179
+ * estimateTokens(''); // → 0
180
+ * estimateTokens('a'.repeat(8)); // → 2
181
+ * ```
182
+ *
183
+ * @param text - The string whose token count should be estimated.
184
+ * @returns A non-negative integer estimate of the token count.
185
+ * Returns `0` for empty or non-string input.
186
+ */
187
+ export function estimateTokens(text) {
188
+ if (!text || typeof text !== 'string') {
189
+ return 0;
190
+ }
191
+ return Math.ceil(text.length / 4);
192
+ }
193
+ // ---------------------------------------------------------------------------
194
+ // Vector similarity
195
+ // ---------------------------------------------------------------------------
196
+ /**
197
+ * Computes the cosine similarity between two numeric vectors.
198
+ *
199
+ * Cosine similarity measures the cosine of the angle between two vectors in
200
+ * an inner-product space. It ranges from **-1.0** (perfectly opposite
201
+ * directions) to **1.0** (perfectly identical directions), with **0** meaning
202
+ * the vectors are orthogonal (no linear similarity).
203
+ *
204
+ * This single implementation consolidates 6+ duplicate `cosineSimilarity`
205
+ * helpers that previously existed across the AgentOS codebase (discovery,
206
+ * social-posting, rag, etc.), providing a single well-tested source of truth.
207
+ *
208
+ * ### Edge-case behaviour
209
+ * | Condition | Return value | Reason |
210
+ * |---|---|---|
211
+ * | Empty arrays | `0` | Division by zero is undefined; 0 is the safe neutral value. |
212
+ * | Mismatched dimensions | `0` | Meaningless to compare vectors in different spaces. |
213
+ * | Either vector is the zero vector | `0` | Magnitude is 0, denominator would be 0. |
214
+ *
215
+ * @example
216
+ * ```typescript
217
+ * // Identical unit vectors → 1
218
+ * cosineSimilarity([1, 0], [1, 0]); // → 1.0
219
+ *
220
+ * // Orthogonal vectors → 0
221
+ * cosineSimilarity([1, 0], [0, 1]); // → 0
222
+ *
223
+ * // Opposite unit vectors → -1
224
+ * cosineSimilarity([1, 0], [-1, 0]); // → -1.0
225
+ *
226
+ * // Non-unit but parallel vectors → 1
227
+ * cosineSimilarity([2, 4], [1, 2]); // → 1.0
228
+ * ```
229
+ *
230
+ * @param a - First numeric vector (any dimension ≥ 1).
231
+ * @param b - Second numeric vector — must have the same length as `a`.
232
+ * @returns Cosine similarity in the range `[-1, 1]`.
233
+ * Returns `0` for mismatched dimensions, empty arrays, or zero-magnitude vectors.
234
+ */
235
+ export function cosineSimilarity(a, b) {
236
+ // Guard: vectors must be non-empty and share the same dimensionality.
237
+ if (a.length !== b.length || a.length === 0)
238
+ return 0;
239
+ // Accumulate dot product and squared norms in a single pass for efficiency.
240
+ let dot = 0;
241
+ let normA = 0;
242
+ let normB = 0;
243
+ for (let i = 0; i < a.length; i++) {
244
+ dot += a[i] * b[i]; // contribution to the dot product
245
+ normA += a[i] * a[i]; // squared magnitude of a
246
+ normB += b[i] * b[i]; // squared magnitude of b
247
+ }
248
+ // Denominator is the product of the two vector magnitudes.
249
+ const denom = Math.sqrt(normA) * Math.sqrt(normB);
250
+ // Guard: if either vector is the zero vector the denominator is 0.
251
+ // Cosine similarity is undefined in that case; return 0 as the neutral value.
252
+ return denom === 0 ? 0 : dot / denom;
253
+ }
254
+ //# sourceMappingURL=text-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-utils.js","sourceRoot":"","sources":["../../../src/core/utils/text-utils.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export declare class ExtensionManager {
17
17
  private readonly options;
18
18
  private readonly overrides?;
19
19
  private readonly secrets;
20
+ private readonly services;
20
21
  private readonly loadedPacks;
21
22
  private readonly loadedPackKeys;
22
23
  private readonly loadedPackRecords;
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionManager.d.ts","sourceRoot":"","sources":["../../src/extensions/ExtensionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExtensionManager.d.ts","sourceRoot":"","sources":["../../src/extensions/ExtensionManager.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { EventEmitter } from 'node:events';
2
2
  import * as path from 'node:path';
3
3
  import { pathToFileURL } from 'node:url';
4
4
  import { ExtensionRegistry } from './ExtensionRegistry.js';
5
+ import { SharedServiceRegistry } from './SharedServiceRegistry.js';
5
6
  import { EXTENSION_KIND_WORKFLOW_EXECUTOR, EXTENSION_KIND_PLANNING_STRATEGY, EXTENSION_KIND_HITL_HANDLER, EXTENSION_KIND_COMM_CHANNEL, EXTENSION_KIND_MEMORY_PROVIDER, EXTENSION_KIND_MESSAGING_CHANNEL, EXTENSION_KIND_PROVENANCE, EXTENSION_KIND_STT_PROVIDER, EXTENSION_KIND_TTS_PROVIDER, EXTENSION_KIND_VAD_PROVIDER, EXTENSION_KIND_WAKE_WORD_PROVIDER, } from './types.js';
6
7
  import { getSecretDefinition } from '../config/extensionSecrets.js';
7
8
  const DEFAULT_EXTENSIONS_KIND_TOOL = 'tool';
@@ -28,6 +29,7 @@ export class ExtensionManager {
28
29
  this.emitter = new EventEmitter();
29
30
  this.registries = new Map();
30
31
  this.secrets = new Map();
32
+ this.services = new SharedServiceRegistry();
31
33
  this.loadedPacks = [];
32
34
  this.loadedPackKeys = new Set();
33
35
  this.loadedPackRecords = [];
@@ -219,6 +221,9 @@ export class ExtensionManager {
219
221
  this.loadedPacks.length = 0;
220
222
  this.loadedPackKeys.clear();
221
223
  this.loadedPackRecords.length = 0;
224
+ await this.services.releaseAll().catch((err) => {
225
+ console.warn(`ExtensionManager: Failed releasing shared services during shutdown`, err);
226
+ });
222
227
  }
223
228
  ensureDefaultRegistries() {
224
229
  this.getRegistry(DEFAULT_EXTENSIONS_KIND_TOOL);
@@ -279,6 +284,7 @@ export class ExtensionManager {
279
284
  options: entry.options,
280
285
  logger: lifecycleContext.logger,
281
286
  getSecret: lifecycleContext.getSecret,
287
+ services: lifecycleContext.services,
282
288
  };
283
289
  return factory(packContext);
284
290
  }
@@ -308,6 +314,7 @@ export class ExtensionManager {
308
314
  options: entry.options,
309
315
  logger: enrichedLifecycleContext.logger,
310
316
  getSecret: enrichedLifecycleContext.getSecret,
317
+ services: enrichedLifecycleContext.services,
311
318
  };
312
319
  try {
313
320
  for (const descriptor of pack.descriptors) {
@@ -362,6 +369,7 @@ export class ExtensionManager {
362
369
  return {
363
370
  ...(context ?? {}),
364
371
  getSecret: (id) => this.resolveSecret(id),
372
+ services: context?.services ?? this.services,
365
373
  };
366
374
  }
367
375
  resolveSecret(id) {
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionManager.js","sourceRoot":"","sources":["../../src/extensions/ExtensionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAmBxD,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EAChC,2BAA2B,EAC3B,2BAA2B,EAC3B,8BAA8B,EAC9B,gCAAgC,EAChC,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,EAC3B,iCAAiC,GAClC,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAC5C,MAAM,iCAAiC,GAAG,WAAW,CAAC;AACtD,MAAM,gCAAgC,GAAG,oBAAoB,CAAC;AAC9D,MAAM,gCAAgC,GAAG,UAAU,CAAC;AACpD,MAAM,yCAAyC,GAAG,gCAAgC,CAAC;AACnF,+BAA+B;AAC/B,MAAM,gCAAgC,GAAG,gCAAgC,CAAC;AAC1E,MAAM,4BAA4B,GAAG,2BAA2B,CAAC;AACjE,MAAM,4BAA4B,GAAG,2BAA2B,CAAC;AACjE,MAAM,8BAA8B,GAAG,8BAA8B,CAAC;AACtE,MAAM,kCAAkC,GAAG,yBAAyB,CAAC;AACrE,MAAM,2BAA2B,GAAG,2BAA2B,CAAC;AAChE,MAAM,2BAA2B,GAAG,2BAA2B,CAAC;AAChE,MAAM,2BAA2B,GAAG,2BAA2B,CAAC;AAChE,MAAM,iCAAiC,GAAG,iCAAiC,CAAC;AAQ5E;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IAkB3B,YAAY,UAAmC,EAAE;QAjBhC,YAAO,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7B,eAAU,GAAmD,IAAI,GAAG,EAAE,CAAC;QAGvE,YAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QACpC,gBAAW,GAAoB,EAAE,CAAC;QAClC,mBAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,sBAAiB,GAQ7B,EAAE,CAAC;QAGN,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3D,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAChF,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED;;;;QAII;IACG,KAAK,CAAC,YAAY,CAAC,OAAmC;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;OAEG;IACI,EAAE,CAAC,QAAgC;QACxC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAEM,GAAG,CAAC,QAAgC;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,mBAAmB,CAC9B,IAAmB,EACnB,UAAmB,EACnB,OAAiC,EACjC,gBAA4C;QAE5C,MAAM,KAAK,GAA+B;YACxC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;YACzB,UAAU;YACV,OAAO;SACR,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;gBAC3D,OAAO;YACT,CAAC;YACD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,qCAAqC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YACjH,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,aAAa,CACxB,KAAiC,EACjC,gBAA4C;QAM5C,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC5B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAC9D,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QACjF,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAC7D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,IAAI,SAAS,EAAE,CAAC;YAC1F,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC;YACzE,CAAC;YAED,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAEvD,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC1B,GAAG;oBACH,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS;oBAClC,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,WAAW,EAAE,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;oBAC3D,MAAM,EAAE,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;oBACpD,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACnC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,aAAa,CAAC;gBACjB,IAAI,EAAE,aAAa;gBACnB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,MAAM,EAAE;oBACN,UAAU,EAAE,IAAI,CAAC,IAAI;oBACrB,aAAa,EAAE,IAAI,CAAC,OAAO;oBAC3B,UAAU,EAAE,KAAK,CAAC,UAAU;iBAC7B;aACF,CAAC,CAAC;YAEH,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI;gBACrB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,SAAS,EAAE;aACzG,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,GACd,SAAS,IAAI,KAAK;gBAChB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,QAAQ,IAAI,KAAK;oBACnB,CAAC,CAAC,KAAK,CAAC,MAAM;oBACd,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,aAAa,CAAC;YACxC,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,aAAa,CAAC;gBACjB,IAAI,EAAE,aAAa;gBACnB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,MAAM,EAAE;oBACN,UAAU;oBACV,UAAU,EAAE,KAAK,CAAC,UAAU;iBAC7B;gBACD,KAAK,EAAE,GAAG;aACX,CAAC,CAAC;YACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,IAAI,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;QAC/G,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,mBAAmB,CAC9B,WAAmB,EACnB,OAAiC,EACjC,UAAmB,EACnB,gBAA4C;QAM5C,MAAM,KAAK,GAA+B;YACxC,OAAO,EAAE,WAAW;YACpB,UAAU,EAAE,UAAU,IAAI,WAAW,WAAW,EAAE;YAClD,OAAO;SACR,CAAC;QACF,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,kBAAkB,CAC7B,eAAuB,EACvB,OAAiC,EACjC,UAAmB,EACnB,gBAA4C;QAM5C,MAAM,KAAK,GAA+B;YACxC,MAAM,EAAE,eAAe;YACvB,UAAU,EAAE,UAAU,IAAI,WAAW,eAAe,EAAE;YACtD,OAAO;SACR,CAAC;QACF,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACI,eAAe;QASpB,OAAO,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,WAAW,CAAW,IAAmB;QAC9C,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAA4C,CAAC;QACpF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,iBAAiB,CAAW,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,QAAsC,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,QAAQ,CAAC,OAAmC;QACvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAE9D,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YAChD,MAAM,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnD,OAAO,CAAC,IAAI,CAAC,4DAA4D,EAAE,GAAG,CAAC,CAAC;YAClF,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACnD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,gBAAgB,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,IAAI,uBAAuB,EAAE,GAAG,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,CAAC;IAEO,uBAAuB;QAC7B,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,gCAAgC,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,CAAC,gCAAgC,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAC;QAC5D,oCAAoC;QACpC,IAAI,CAAC,WAAW,CAAC,gCAAgC,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAC;QACpD,gEAAgE;QAChE,IAAI,CAAC,WAAW,CAAC,gCAAgC,CAAC,CAAC;QACnD,8BAA8B;QAC9B,IAAI,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC;IACvD,CAAC;IAEO,cAAc,CAAC,KAAiC,EAAE,IAAoB;QAC5E,IAAI,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACxD,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACjD,CAAC;QACD,IAAI,SAAS,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACpF,OAAO,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACvC,CAAC;QACD,IAAI,QAAQ,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACjF,OAAO,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,IAAI,EAAE,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACpE,OAAO,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,KAAiC,EACjC,gBAA4C;QAE5C,IAAI,SAAS,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YAC9D,OAAO,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAE1D,IAAI,SAAS,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACpF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,QAAQ,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACjF,MAAM,IAAI,GAAG,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,qBAAqB,CAC3B,GAAQ,EACR,KAAiC,EACjC,gBAA2C;QAE3C,MAAM,OAAO,GAAG,GAAG,EAAE,mBAAmB,IAAI,GAAG,EAAE,OAAO,EAAE,mBAAmB,IAAI,GAAG,EAAE,OAAO,CAAC;QAC9F,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,WAAW,GAAyB;gBACxC,aAAa,EAAE,KAAK;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,gBAAgB,CAAC,MAAM;gBAC/B,SAAS,EAAE,gBAAgB,CAAC,SAAS;aACtC,CAAC;YACF,OAAO,OAAO,CAAC,WAAW,CAAkB,CAAC;QAC/C,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,EAAE,OAAO,IAAI,GAAG,CAAC;QACtC,IACE,SAAS;YACT,OAAO,SAAS,KAAK,QAAQ;YAC7B,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ;YAClC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EACpC,CAAC;YACD,OAAO,SAA0B,CAAC;QACpC,CAAC;QAED,MAAM,MAAM,GACV,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC;QACxG,MAAM,IAAI,KAAK,CACb,iDAAiD,MAAM,sEAAsE,CAC9H,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,IAAmB,EACnB,KAAiC,EACjC,gBAA4C;QAE5C,MAAM,wBAAwB,GAAG,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAE/E,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,gFAAgF;QAChF,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,wBAAwB,CAAC,CAAC;QAClD,aAAa,GAAG,IAAI,CAAC;QAErB,MAAM,GAAG,GAAyB;YAChC,aAAa,EAAE,KAAK;YACpB,MAAM,EAAE;gBACN,UAAU,EAAE,IAAI,CAAC,IAAI;gBACrB,aAAa,EAAE,IAAI,CAAC,OAAO;gBAC3B,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B;YACD,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,wBAAwB,CAAC,MAAM;YACvC,SAAS,EAAE,wBAAwB,CAAC,SAAS;SAC9C,CAAC;QAEF,IAAI,CAAC;YACH,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC1C,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,iFAAiF;YACjF,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,wBAAwB,CAAC,CAAC;gBACtD,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,OAAO,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,IAAI,gDAAgD,EAAE,UAAU,CAAC,CAAC;gBACjH,CAAC;YACH,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,UAA+B,EAC/B,GAAyB,EACzB,gBAA4C;QAE5C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,QAAQ,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YAChC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAChB,0CAA0C,UAAU,CAAC,EAAE,MAAM,UAAU,CAAC,IAAI,mBAAmB,CAChG,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,UAAU,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACxF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,IAAI,CACV,0CAA0C,UAAU,CAAC,EAAE,MAAM,UAAU,CAAC,IAAI,2CAA2C,QAAQ;qBAC5H,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;qBACpB,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;gBACF,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,iBAAiB,GAAG;YACxB,GAAG,UAAU;YACb,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI,UAAU,CAAC,QAAQ,IAAI,GAAG,CAAC,aAAa,EAAE,QAAQ,IAAI,CAAC;YACvF,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM;SACxC,CAAC;QACF,MAAM,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,mBAAmB,CAAC;YACvB,IAAI,EAAE,sBAAsB;YAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,UAAU,EAAE,iBAAiB;SAC9B,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAC5B,OAAmC;QAEnC,OAAO;YACL,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;YAClB,SAAS,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;SAClD,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,EAAU;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,2DAA2D;QAC3D,MAAM,UAAU,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,UAAU,EAAE,MAAM,CAAC;QAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9F,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YACpD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,eAAe,CAAC,IAAmB,EAAE,EAAU;QACrD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,oFAAoF;QACpF,IAAI,IAAI,KAAK,4BAA4B,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,KAAK,iCAAiC,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,IAAI,KAAK,gCAAgC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,2BAA2B,CAAC,KAAiC;QACnE,MAAM,IAAI,GAAG,KAAK,CAAC,OAA8C,CAAC;QAClE,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACtE,OAAO;QACT,CAAC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAkC,CAAC,EAAE,CAAC;YAC9E,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,SAAS;YACxC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,wEAAwE;YACxE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,KAA+B;QACzD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAEO,aAAa,CAAC,KAAyB;QAC7C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;CACF;AAED,SAAS,cAAc,CAAC,IAAyB,EAAE,KAA0B;IAC3E,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAuB;QACjC,KAAK,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;QACjC,UAAU,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE;QAC3C,SAAS,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC,EAAE;KAC1C,CAAC;IAEF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,MAAM,CAAC,KAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,KAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IACnE,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;QACnE,MAAM,CAAC,UAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,UAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IAC7E,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;QAClE,MAAM,CAAC,SAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,SAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IAC3E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAW;IAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5C,oDAAoD;IACpD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7E,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"ExtensionManager.js","sourceRoot":"","sources":["../../src/extensions/ExtensionManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Cleanup and discovery metadata for a shared service.
3
+ */
4
+ export interface SharedServiceOptions {
5
+ /**
6
+ * Cleanup callback invoked when the service is released.
7
+ */
8
+ dispose?: (instance: unknown) => Promise<void> | void;
9
+ /**
10
+ * Optional tags describing the service for diagnostics or tooling.
11
+ */
12
+ tags?: string[];
13
+ }
14
+ /**
15
+ * Registry for sharing heavyweight service instances across extensions.
16
+ */
17
+ export interface ISharedServiceRegistry {
18
+ /**
19
+ * Return an existing service or lazily create it once.
20
+ */
21
+ getOrCreate<T>(serviceId: string, factory: () => Promise<T> | T, options?: SharedServiceOptions): Promise<T>;
22
+ /**
23
+ * Return true when a service has already been initialized.
24
+ */
25
+ has(serviceId: string): boolean;
26
+ /**
27
+ * Dispose a specific service if it exists.
28
+ */
29
+ release(serviceId: string): Promise<void>;
30
+ /**
31
+ * Dispose all registered services.
32
+ */
33
+ releaseAll(): Promise<void>;
34
+ }
35
+ //# sourceMappingURL=ISharedServiceRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ISharedServiceRegistry.d.ts","sourceRoot":"","sources":["../../src/extensions/ISharedServiceRegistry.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtD;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,WAAW,CAAC,CAAC,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAC7B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,CAAC,CAAC,CAAC;IAEd;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAEhC;;OAEG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ISharedServiceRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ISharedServiceRegistry.js","sourceRoot":"","sources":["../../src/extensions/ISharedServiceRegistry.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import type { ISharedServiceRegistry, SharedServiceOptions } from './ISharedServiceRegistry';
2
+ /**
3
+ * Thread-safe shared-service registry for extension lifecycle context.
4
+ */
5
+ export declare class SharedServiceRegistry implements ISharedServiceRegistry {
6
+ private readonly instances;
7
+ private readonly pending;
8
+ private readonly disposers;
9
+ private readonly tagMap;
10
+ getOrCreate<T>(serviceId: string, factory: () => Promise<T> | T, options?: SharedServiceOptions): Promise<T>;
11
+ has(serviceId: string): boolean;
12
+ release(serviceId: string): Promise<void>;
13
+ releaseAll(): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=SharedServiceRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharedServiceRegistry.d.ts","sourceRoot":"","sources":["../../src/extensions/SharedServiceRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAE7F;;GAEG;AACH,qBAAa,qBAAsB,YAAW,sBAAsB;IAClE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkE;IAC5F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IAEzC,WAAW,CAAC,CAAC,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAC7B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,CAAC,CAAC;IAiCN,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIzB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAIzC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Thread-safe shared-service registry for extension lifecycle context.
3
+ */
4
+ export class SharedServiceRegistry {
5
+ constructor() {
6
+ this.instances = new Map();
7
+ this.pending = new Map();
8
+ this.disposers = new Map();
9
+ this.tagMap = new Map();
10
+ }
11
+ async getOrCreate(serviceId, factory, options) {
12
+ if (this.instances.has(serviceId)) {
13
+ return this.instances.get(serviceId);
14
+ }
15
+ const existing = this.pending.get(serviceId);
16
+ if (existing) {
17
+ return existing;
18
+ }
19
+ const promise = Promise.resolve(factory())
20
+ .then((instance) => {
21
+ this.instances.set(serviceId, instance);
22
+ this.pending.delete(serviceId);
23
+ if (options?.dispose) {
24
+ this.disposers.set(serviceId, options.dispose);
25
+ }
26
+ if (options?.tags) {
27
+ this.tagMap.set(serviceId, [...options.tags]);
28
+ }
29
+ return instance;
30
+ })
31
+ .catch((error) => {
32
+ this.pending.delete(serviceId);
33
+ throw error;
34
+ });
35
+ this.pending.set(serviceId, promise);
36
+ return promise;
37
+ }
38
+ has(serviceId) {
39
+ return this.instances.has(serviceId);
40
+ }
41
+ async release(serviceId) {
42
+ const pending = this.pending.get(serviceId);
43
+ if (pending) {
44
+ await Promise.allSettled([pending]);
45
+ }
46
+ const instance = this.instances.get(serviceId);
47
+ if (instance === undefined) {
48
+ return;
49
+ }
50
+ const disposer = this.disposers.get(serviceId);
51
+ if (disposer) {
52
+ await Promise.resolve(disposer(instance));
53
+ }
54
+ this.instances.delete(serviceId);
55
+ this.disposers.delete(serviceId);
56
+ this.tagMap.delete(serviceId);
57
+ }
58
+ async releaseAll() {
59
+ await Promise.allSettled([...this.pending.values()]);
60
+ await Promise.allSettled([...this.instances.keys()].map((serviceId) => this.release(serviceId)));
61
+ }
62
+ }
63
+ //# sourceMappingURL=SharedServiceRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharedServiceRegistry.js","sourceRoot":"","sources":["../../src/extensions/SharedServiceRegistry.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,qBAAqB;IAAlC;QACmB,cAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;QACvC,YAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;QAC9C,cAAS,GAAG,IAAI,GAAG,EAAuD,CAAC;QAC3E,WAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAoExD,CAAC;IAlEQ,KAAK,CAAC,WAAW,CACtB,SAAiB,EACjB,OAA6B,EAC7B,OAA8B;QAE9B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAM,CAAC;QAC5C,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAsB,CAAC;QAChC,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aACvC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAE/B,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;gBACrB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAChD,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/B,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAA2B,CAAC,CAAC;QACzD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,GAAG,CAAC,SAAiB;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,SAAiB;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrD,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACnG,CAAC;CACF"}
@@ -1,5 +1,7 @@
1
1
  export * from './types';
2
2
  export * from './events';
3
+ export * from './ISharedServiceRegistry';
4
+ export * from './SharedServiceRegistry';
3
5
  export * from './ExtensionRegistry';
4
6
  export * from './ExtensionManager';
5
7
  export * from './manifest';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export * from './types.js';
2
2
  export * from './events.js';
3
+ export * from './ISharedServiceRegistry.js';
4
+ export * from './SharedServiceRegistry.js';
3
5
  export * from './ExtensionRegistry.js';
4
6
  export * from './ExtensionManager.js';
5
7
  export * from './manifest.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { ExtensionDescriptor, ExtensionLifecycleContext, ExtensionSourceMetadata } from './types';
2
+ import type { ISharedServiceRegistry } from './ISharedServiceRegistry';
2
3
  export type ExtensionPackResolver = {
3
4
  package: string;
4
5
  version?: string;
@@ -45,6 +46,7 @@ export interface ExtensionPackContext {
45
46
  options?: Record<string, unknown>;
46
47
  logger?: import('../logging/ILogger').ILogger;
47
48
  getSecret?: (secretId: string) => string | undefined;
49
+ services?: ISharedServiceRegistry;
48
50
  }
49
51
  export interface ExtensionPack {
50
52
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/extensions/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvG,MAAM,MAAM,qBAAqB,GAC7B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAClB;IAAE,OAAO,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,GAAG;IAC/D;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,0BAA0B,EAAE,CAAC;IACpC,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,0BAA0B,CAAC;IAC3C,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,oBAAoB,EAAE,OAAO,CAAC;IAC9C,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACtD;AAGD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3G,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;CAC9G"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/extensions/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AACvG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,MAAM,qBAAqB,GAC7B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAClB;IAAE,OAAO,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,GAAG;IAC/D;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,0BAA0B,EAAE,CAAC;IACpC,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,0BAA0B,CAAC;IAC3C,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,oBAAoB,EAAE,OAAO,CAAC;IAC9C,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3G,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;CAC9G"}
@@ -4,6 +4,7 @@ import type { ITool } from '../core/tools/ITool';
4
4
  import type { IncomingMessage, ServerResponse } from 'node:http';
5
5
  import type { WorkflowDescriptorPayload, WorkflowInstance, WorkflowTaskDefinition, WorkflowTaskStatus } from '../core/workflows/WorkflowTypes';
6
6
  import type { MessagingChannelPayload } from './MessagingChannelPayload';
7
+ import type { ISharedServiceRegistry } from './ISharedServiceRegistry';
7
8
  import type { SpeechToTextProvider, SpeechVadProvider, TextToSpeechProvider, WakeWordProvider } from '../speech/types';
8
9
  /**
9
10
  * Represents the broad category an extension descriptor belongs to.
@@ -41,6 +42,10 @@ export interface ExtensionLifecycleContext {
41
42
  * Returns `undefined` when a secret is not configured.
42
43
  */
43
44
  getSecret?: (secretId: string) => string | undefined;
45
+ /**
46
+ * Shared singleton registry for lazy-loading heavyweight extension services.
47
+ */
48
+ services?: ISharedServiceRegistry;
44
49
  }
45
50
  /**
46
51
  * Context passed to extension-pack factory helpers (e.g. `createExtensionPack()`).