@framers/agentos 0.1.93 → 0.1.95

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/README.md +10 -0
  2. package/dist/api/AgentOS.d.ts +13 -0
  3. package/dist/api/AgentOS.d.ts.map +1 -1
  4. package/dist/api/AgentOS.js +36 -1
  5. package/dist/api/AgentOS.js.map +1 -1
  6. package/dist/api/agent.d.ts +7 -0
  7. package/dist/api/agent.d.ts.map +1 -1
  8. package/dist/api/agent.js +34 -2
  9. package/dist/api/agent.js.map +1 -1
  10. package/dist/api/generateImage.d.ts +3 -0
  11. package/dist/api/generateImage.d.ts.map +1 -1
  12. package/dist/api/generateImage.js +95 -36
  13. package/dist/api/generateImage.js.map +1 -1
  14. package/dist/api/generateText.d.ts +9 -0
  15. package/dist/api/generateText.d.ts.map +1 -1
  16. package/dist/api/generateText.js +173 -101
  17. package/dist/api/generateText.js.map +1 -1
  18. package/dist/api/observability.d.ts +16 -0
  19. package/dist/api/observability.d.ts.map +1 -0
  20. package/dist/api/observability.js +46 -0
  21. package/dist/api/observability.js.map +1 -0
  22. package/dist/api/streamText.d.ts.map +1 -1
  23. package/dist/api/streamText.js +93 -22
  24. package/dist/api/streamText.js.map +1 -1
  25. package/dist/api/usageLedger.d.ts +58 -0
  26. package/dist/api/usageLedger.d.ts.map +1 -0
  27. package/dist/api/usageLedger.js +151 -0
  28. package/dist/api/usageLedger.js.map +1 -0
  29. package/dist/core/tools/IToolOrchestrator.d.ts +38 -1
  30. package/dist/core/tools/IToolOrchestrator.d.ts.map +1 -1
  31. package/dist/core/tools/ToolOrchestrator.d.ts +58 -1
  32. package/dist/core/tools/ToolOrchestrator.d.ts.map +1 -1
  33. package/dist/core/tools/ToolOrchestrator.js +116 -1
  34. package/dist/core/tools/ToolOrchestrator.js.map +1 -1
  35. package/dist/discovery/CapabilityDiscoveryEngine.d.ts +19 -0
  36. package/dist/discovery/CapabilityDiscoveryEngine.d.ts.map +1 -1
  37. package/dist/discovery/CapabilityDiscoveryEngine.js +54 -0
  38. package/dist/discovery/CapabilityDiscoveryEngine.js.map +1 -1
  39. package/dist/discovery/types.d.ts +8 -1
  40. package/dist/discovery/types.d.ts.map +1 -1
  41. package/dist/discovery/types.js.map +1 -1
  42. package/dist/emergent/ComposableToolBuilder.d.ts +125 -0
  43. package/dist/emergent/ComposableToolBuilder.d.ts.map +1 -0
  44. package/dist/emergent/ComposableToolBuilder.js +318 -0
  45. package/dist/emergent/ComposableToolBuilder.js.map +1 -0
  46. package/dist/emergent/EmergentCapabilityEngine.d.ts +168 -0
  47. package/dist/emergent/EmergentCapabilityEngine.d.ts.map +1 -0
  48. package/dist/emergent/EmergentCapabilityEngine.js +437 -0
  49. package/dist/emergent/EmergentCapabilityEngine.js.map +1 -0
  50. package/dist/emergent/EmergentJudge.d.ts +283 -0
  51. package/dist/emergent/EmergentJudge.d.ts.map +1 -0
  52. package/dist/emergent/EmergentJudge.js +463 -0
  53. package/dist/emergent/EmergentJudge.js.map +1 -0
  54. package/dist/emergent/EmergentToolRegistry.d.ts +286 -0
  55. package/dist/emergent/EmergentToolRegistry.d.ts.map +1 -0
  56. package/dist/emergent/EmergentToolRegistry.js +546 -0
  57. package/dist/emergent/EmergentToolRegistry.js.map +1 -0
  58. package/dist/emergent/ForgeToolMetaTool.d.ts +124 -0
  59. package/dist/emergent/ForgeToolMetaTool.d.ts.map +1 -0
  60. package/dist/emergent/ForgeToolMetaTool.js +170 -0
  61. package/dist/emergent/ForgeToolMetaTool.js.map +1 -0
  62. package/dist/emergent/SandboxedToolForge.d.ts +185 -0
  63. package/dist/emergent/SandboxedToolForge.d.ts.map +1 -0
  64. package/dist/emergent/SandboxedToolForge.js +383 -0
  65. package/dist/emergent/SandboxedToolForge.js.map +1 -0
  66. package/dist/emergent/index.d.ts +25 -0
  67. package/dist/emergent/index.d.ts.map +1 -0
  68. package/dist/emergent/index.js +20 -0
  69. package/dist/emergent/index.js.map +1 -0
  70. package/dist/emergent/types.d.ts +596 -0
  71. package/dist/emergent/types.d.ts.map +1 -0
  72. package/dist/emergent/types.js +36 -0
  73. package/dist/emergent/types.js.map +1 -0
  74. package/dist/index.d.ts +8 -1
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +7 -1
  77. package/dist/index.js.map +1 -1
  78. package/dist/orchestration/runtime/GraphRuntime.d.ts.map +1 -1
  79. package/dist/orchestration/runtime/GraphRuntime.js +53 -11
  80. package/dist/orchestration/runtime/GraphRuntime.js.map +1 -1
  81. package/package.json +1 -1
@@ -8,8 +8,11 @@
8
8
  * yielded inline before the next LLM step begins.
9
9
  */
10
10
  import { resolveModelOption, resolveProvider, createProviderManager } from './model.js';
11
+ import { attachUsageAttributes, toTurnMetricUsage } from './observability.js';
11
12
  import { adaptTools } from './toolAdapter.js';
13
+ import { recordAgentOSUsage } from './usageLedger.js';
12
14
  import { StreamingReconstructor } from '../core/llm/streaming/StreamingReconstructor.js';
15
+ import { recordAgentOSTurnMetrics, startAgentOSSpan } from '../core/observability/otel.js';
13
16
  /**
14
17
  * Stateless streaming text generation with optional multi-step tool calling.
15
18
  *
@@ -38,15 +41,24 @@ export function streamText(opts) {
38
41
  const parts = [];
39
42
  const allToolCalls = [];
40
43
  async function* runStream() {
44
+ const startedAt = Date.now();
45
+ const rootSpan = startAgentOSSpan('agentos.api.stream_text');
41
46
  const usage = { promptTokens: 0, completionTokens: 0, totalTokens: 0 };
42
47
  let finalText = '';
48
+ let metricStatus = 'ok';
49
+ let recordedProviderId;
50
+ let recordedModelId;
43
51
  try {
44
52
  const { providerId, modelId } = resolveModelOption(opts, 'text');
45
53
  const resolved = resolveProvider(providerId, modelId, { apiKey: opts.apiKey, baseUrl: opts.baseUrl });
46
54
  const manager = await createProviderManager(resolved);
55
+ recordedProviderId = resolved.providerId;
56
+ recordedModelId = resolved.modelId;
47
57
  const provider = manager.getProvider(resolved.providerId);
48
58
  if (!provider)
49
59
  throw new Error(`Provider ${resolved.providerId} not available.`);
60
+ rootSpan?.setAttribute('llm.provider', resolved.providerId);
61
+ rootSpan?.setAttribute('llm.model', resolved.modelId);
50
62
  const messages = [];
51
63
  if (opts.system)
52
64
  messages.push({ role: 'system', content: opts.system });
@@ -59,6 +71,7 @@ export function streamText(opts) {
59
71
  const toolMap = new Map();
60
72
  for (const tool of tools)
61
73
  toolMap.set(tool.name, tool);
74
+ rootSpan?.setAttribute('agentos.api.tool_count', tools.length);
62
75
  const toolSchemas = tools.length > 0
63
76
  ? tools.map((tool) => ({
64
77
  type: 'function',
@@ -66,37 +79,61 @@ export function streamText(opts) {
66
79
  }))
67
80
  : undefined;
68
81
  const maxSteps = opts.maxSteps ?? 1;
82
+ rootSpan?.setAttribute('agentos.api.max_steps', maxSteps);
69
83
  for (let step = 0; step < maxSteps; step++) {
84
+ const stepSpan = startAgentOSSpan('agentos.api.stream_text.step', {
85
+ attributes: {
86
+ 'llm.provider': resolved.providerId,
87
+ 'llm.model': resolved.modelId,
88
+ 'agentos.api.step': step + 1,
89
+ 'agentos.api.tool_count': tools.length,
90
+ },
91
+ });
70
92
  const stream = provider.generateCompletionStream(resolved.modelId, messages, {
71
93
  tools: toolSchemas,
72
94
  temperature: opts.temperature,
73
95
  maxTokens: opts.maxTokens,
74
96
  });
75
97
  const reconstructor = new StreamingReconstructor();
76
- for await (const chunk of stream) {
77
- reconstructor.push(chunk);
78
- const textDelta = chunk.responseTextDelta ?? '';
79
- if (textDelta) {
80
- const part = { type: 'text', text: textDelta };
81
- parts.push(part);
82
- yield part;
83
- }
84
- if (chunk.error) {
85
- const error = new Error(chunk.error.message);
86
- const part = { type: 'error', error };
87
- parts.push(part);
88
- yield part;
89
- resolveText(finalText);
90
- resolveUsage(usage);
91
- resolveToolCalls(allToolCalls);
92
- return;
93
- }
94
- if (chunk.isFinal && chunk.usage) {
95
- usage.promptTokens += chunk.usage.promptTokens ?? 0;
96
- usage.completionTokens += chunk.usage.completionTokens ?? 0;
97
- usage.totalTokens += chunk.usage.totalTokens ?? 0;
98
+ try {
99
+ for await (const chunk of stream) {
100
+ reconstructor.push(chunk);
101
+ const textDelta = chunk.responseTextDelta ?? '';
102
+ if (textDelta) {
103
+ const part = { type: 'text', text: textDelta };
104
+ parts.push(part);
105
+ yield part;
106
+ }
107
+ if (chunk.error) {
108
+ const error = new Error(chunk.error.message);
109
+ const part = { type: 'error', error };
110
+ parts.push(part);
111
+ yield part;
112
+ metricStatus = 'error';
113
+ resolveText(finalText);
114
+ resolveUsage(usage);
115
+ resolveToolCalls(allToolCalls);
116
+ return;
117
+ }
118
+ if (chunk.isFinal && chunk.usage) {
119
+ usage.promptTokens += chunk.usage.promptTokens ?? 0;
120
+ usage.completionTokens += chunk.usage.completionTokens ?? 0;
121
+ usage.totalTokens += chunk.usage.totalTokens ?? 0;
122
+ if (typeof chunk.usage.costUSD === 'number') {
123
+ usage.costUSD = (usage.costUSD ?? 0) + chunk.usage.costUSD;
124
+ }
125
+ attachUsageAttributes(stepSpan, {
126
+ promptTokens: chunk.usage.promptTokens,
127
+ completionTokens: chunk.usage.completionTokens,
128
+ totalTokens: chunk.usage.totalTokens,
129
+ costUSD: chunk.usage.costUSD,
130
+ });
131
+ }
98
132
  }
99
133
  }
134
+ finally {
135
+ stepSpan?.end();
136
+ }
100
137
  const stepText = reconstructor.getFullText();
101
138
  const finalChunk = reconstructor.getFinalChunk();
102
139
  const streamedToolCalls = finalChunk?.choices?.[0]?.message?.tool_calls
@@ -112,6 +149,9 @@ export function streamText(opts) {
112
149
  }));
113
150
  if (!streamedToolCalls || streamedToolCalls.length === 0) {
114
151
  finalText = stepText;
152
+ rootSpan?.setAttribute('agentos.api.finish_reason', 'stop');
153
+ rootSpan?.setAttribute('agentos.api.tool_calls', allToolCalls.length);
154
+ attachUsageAttributes(rootSpan, usage);
115
155
  resolveText(finalText);
116
156
  resolveUsage(usage);
117
157
  resolveToolCalls(allToolCalls);
@@ -194,6 +234,7 @@ export function streamText(opts) {
194
234
  resolveToolCalls(allToolCalls);
195
235
  }
196
236
  catch (err) {
237
+ metricStatus = 'error';
197
238
  const error = err instanceof Error ? err : new Error(String(err));
198
239
  const part = { type: 'error', error };
199
240
  parts.push(part);
@@ -202,6 +243,36 @@ export function streamText(opts) {
202
243
  resolveUsage(usage);
203
244
  resolveToolCalls(allToolCalls);
204
245
  }
246
+ finally {
247
+ rootSpan?.setAttribute('agentos.api.tool_calls', allToolCalls.length);
248
+ if (metricStatus === 'error') {
249
+ rootSpan?.setAttribute('agentos.api.finish_reason', 'error');
250
+ }
251
+ else if (allToolCalls.length > 0 && !finalText) {
252
+ rootSpan?.setAttribute('agentos.api.finish_reason', 'tool-calls');
253
+ }
254
+ attachUsageAttributes(rootSpan, usage);
255
+ rootSpan?.end();
256
+ try {
257
+ await recordAgentOSUsage({
258
+ providerId: recordedProviderId,
259
+ modelId: recordedModelId,
260
+ usage,
261
+ options: {
262
+ ...opts.usageLedger,
263
+ source: opts.usageLedger?.source ?? 'streamText',
264
+ },
265
+ });
266
+ }
267
+ catch {
268
+ // Helper-level usage persistence is best-effort and should not break streaming.
269
+ }
270
+ recordAgentOSTurnMetrics({
271
+ durationMs: Date.now() - startedAt,
272
+ status: metricStatus,
273
+ usage: toTurnMetricUsage(usage),
274
+ });
275
+ }
205
276
  }
206
277
  const fullStreamIterable = runStream();
207
278
  const textStreamIterable = {
@@ -1 +1 @@
1
- {"version":3,"file":"streamText.js","sourceRoot":"","sources":["../../src/api/streamText.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streamText.js","sourceRoot":"","sources":["../../src/api/streamText.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ export interface AgentOSUsageLedgerOptions {
2
+ /** Enable persistence using the shared default path under `~/.framers/usage-ledger.jsonl`. */
3
+ enabled?: boolean;
4
+ /** Explicit path to the append-only JSONL ledger file. */
5
+ path?: string;
6
+ /** Session identifier used to group related helper calls. Defaults to `"global"`. */
7
+ sessionId?: string;
8
+ /** Optional persona identifier for callers layering persona-specific usage views. */
9
+ personaId?: string;
10
+ /** Optional source label such as `"generateText"` or `"agent.session.stream"`. */
11
+ source?: string;
12
+ }
13
+ export interface AgentOSUsageEvent {
14
+ recordedAt: string;
15
+ sessionId: string;
16
+ personaId?: string;
17
+ providerId?: string;
18
+ modelId?: string;
19
+ userId?: string;
20
+ tenantId?: string;
21
+ source?: string;
22
+ promptTokens: number;
23
+ completionTokens: number;
24
+ totalTokens: number;
25
+ costUSD?: number;
26
+ }
27
+ export interface AgentOSUsageAggregate {
28
+ sessionId?: string;
29
+ personaId?: string;
30
+ promptTokens: number;
31
+ completionTokens: number;
32
+ totalTokens: number;
33
+ costUSD: number;
34
+ calls: number;
35
+ }
36
+ export interface AgentOSUsageRecordInput {
37
+ providerId?: string;
38
+ modelId?: string;
39
+ userId?: string;
40
+ tenantId?: string;
41
+ usage?: {
42
+ promptTokens?: number;
43
+ completionTokens?: number;
44
+ totalTokens?: number;
45
+ costUSD?: number;
46
+ };
47
+ options?: AgentOSUsageLedgerOptions;
48
+ }
49
+ interface ReadAgentOSUsageOptions extends Pick<AgentOSUsageLedgerOptions, 'enabled' | 'path' | 'sessionId' | 'personaId'> {
50
+ }
51
+ export declare function getDefaultAgentOSUsageLedgerPath(): string;
52
+ export declare function resolveAgentOSUsageLedgerPath(options?: Pick<AgentOSUsageLedgerOptions, 'enabled' | 'path'>): string | undefined;
53
+ export declare function readRecordedAgentOSUsageEvents(options?: ReadAgentOSUsageOptions): Promise<AgentOSUsageEvent[]>;
54
+ export declare function recordAgentOSUsage(input: AgentOSUsageRecordInput): Promise<boolean>;
55
+ export declare function getRecordedAgentOSUsage(options?: ReadAgentOSUsageOptions): Promise<AgentOSUsageAggregate>;
56
+ export declare function clearRecordedAgentOSUsage(options?: Pick<AgentOSUsageLedgerOptions, 'enabled' | 'path'>): Promise<void>;
57
+ export {};
58
+ //# sourceMappingURL=usageLedger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usageLedger.d.ts","sourceRoot":"","sources":["../../src/api/usageLedger.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,yBAAyB;IACxC,8FAA8F;IAC9F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACrC;AAED,UAAU,uBAAwB,SAAQ,IAAI,CAAC,yBAAyB,EAAE,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;CAAG;AAK5H,wBAAgB,gCAAgC,IAAI,MAAM,CAEzD;AA2DD,wBAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,yBAAyB,EAAE,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,CAgB/H;AAED,wBAAsB,8BAA8B,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA0BpH;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAwBzF;AAED,wBAAsB,uBAAuB,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAS/G;AAED,wBAAsB,yBAAyB,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,yBAAyB,EAAE,SAAS,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5H"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * @file usageLedger.ts
3
+ * Optional durable usage ledger for the lightweight AgentOS helper APIs.
4
+ *
5
+ * Library consumers can enable persistence explicitly per call/session or by
6
+ * setting `AGENTOS_USAGE_LEDGER_PATH` / `WUNDERLAND_USAGE_LEDGER_PATH`. When disabled, helper APIs keep their
7
+ * current behavior and do not write to disk.
8
+ */
9
+ import * as fs from 'node:fs/promises';
10
+ import * as os from 'node:os';
11
+ import * as path from 'node:path';
12
+ import { UsageLedger } from '../core/usage/UsageLedger.js';
13
+ const DEFAULT_LEDGER_DIR = '.framers';
14
+ const DEFAULT_LEDGER_FILE = 'usage-ledger.jsonl';
15
+ export function getDefaultAgentOSUsageLedgerPath() {
16
+ return path.join(os.homedir(), DEFAULT_LEDGER_DIR, DEFAULT_LEDGER_FILE);
17
+ }
18
+ function hasMeaningfulUsage(usage) {
19
+ if (!usage)
20
+ return false;
21
+ return [
22
+ usage.promptTokens,
23
+ usage.completionTokens,
24
+ usage.totalTokens,
25
+ usage.costUSD,
26
+ ].some((value) => typeof value === 'number' && Number.isFinite(value) && value > 0);
27
+ }
28
+ function toAggregate(events, requestedSessionId, requestedPersonaId) {
29
+ const ledger = new UsageLedger();
30
+ for (const event of events) {
31
+ ledger.ingestUsage({
32
+ sessionId: event.sessionId,
33
+ personaId: event.personaId,
34
+ providerId: event.providerId,
35
+ modelId: event.modelId,
36
+ }, {
37
+ promptTokens: event.promptTokens,
38
+ completionTokens: event.completionTokens,
39
+ totalTokens: event.totalTokens,
40
+ costUSD: event.costUSD,
41
+ modelId: event.modelId,
42
+ isFinal: true,
43
+ });
44
+ }
45
+ const summaries = requestedSessionId
46
+ ? ledger.getSummariesBySession(requestedSessionId)
47
+ : ledger.listAllSummaries();
48
+ return summaries.reduce((aggregate, summary) => ({
49
+ sessionId: requestedSessionId,
50
+ personaId: requestedPersonaId,
51
+ promptTokens: aggregate.promptTokens + summary.promptTokens,
52
+ completionTokens: aggregate.completionTokens + summary.completionTokens,
53
+ totalTokens: aggregate.totalTokens + summary.totalTokens,
54
+ costUSD: aggregate.costUSD + summary.costUSD,
55
+ calls: aggregate.calls + summary.calls,
56
+ }), {
57
+ sessionId: requestedSessionId,
58
+ personaId: requestedPersonaId,
59
+ promptTokens: 0,
60
+ completionTokens: 0,
61
+ totalTokens: 0,
62
+ costUSD: 0,
63
+ calls: 0,
64
+ });
65
+ }
66
+ export function resolveAgentOSUsageLedgerPath(options) {
67
+ if (options?.path?.trim()) {
68
+ return path.resolve(options.path);
69
+ }
70
+ const envPath = process.env.AGENTOS_USAGE_LEDGER_PATH?.trim()
71
+ || process.env.WUNDERLAND_USAGE_LEDGER_PATH?.trim();
72
+ if (envPath) {
73
+ return path.resolve(envPath);
74
+ }
75
+ if (options?.enabled) {
76
+ return getDefaultAgentOSUsageLedgerPath();
77
+ }
78
+ return undefined;
79
+ }
80
+ export async function readRecordedAgentOSUsageEvents(options) {
81
+ const ledgerPath = resolveAgentOSUsageLedgerPath(options);
82
+ if (!ledgerPath)
83
+ return [];
84
+ let raw = '';
85
+ try {
86
+ raw = await fs.readFile(ledgerPath, 'utf8');
87
+ }
88
+ catch (error) {
89
+ if (error?.code === 'ENOENT') {
90
+ return [];
91
+ }
92
+ throw error;
93
+ }
94
+ return raw
95
+ .split('\n')
96
+ .map((line) => line.trim())
97
+ .filter(Boolean)
98
+ .map((line) => {
99
+ try {
100
+ return JSON.parse(line);
101
+ }
102
+ catch {
103
+ return undefined;
104
+ }
105
+ })
106
+ .filter((event) => Boolean(event));
107
+ }
108
+ export async function recordAgentOSUsage(input) {
109
+ const ledgerPath = resolveAgentOSUsageLedgerPath(input.options);
110
+ if (!ledgerPath)
111
+ return false;
112
+ if (!input.providerId && !input.modelId)
113
+ return false;
114
+ if (!hasMeaningfulUsage(input.usage))
115
+ return false;
116
+ const event = {
117
+ recordedAt: new Date().toISOString(),
118
+ sessionId: input.options?.sessionId ?? 'global',
119
+ personaId: input.options?.personaId,
120
+ providerId: input.providerId,
121
+ modelId: input.modelId,
122
+ userId: input.userId,
123
+ tenantId: input.tenantId,
124
+ source: input.options?.source,
125
+ promptTokens: input.usage?.promptTokens ?? 0,
126
+ completionTokens: input.usage?.completionTokens ?? 0,
127
+ totalTokens: input.usage?.totalTokens ?? 0,
128
+ costUSD: input.usage?.costUSD,
129
+ };
130
+ await fs.mkdir(path.dirname(ledgerPath), { recursive: true, mode: 0o700 });
131
+ await fs.appendFile(ledgerPath, `${JSON.stringify(event)}\n`, { encoding: 'utf8', mode: 0o600 });
132
+ return true;
133
+ }
134
+ export async function getRecordedAgentOSUsage(options) {
135
+ const events = await readRecordedAgentOSUsageEvents(options);
136
+ const filtered = events.filter((event) => {
137
+ if (options?.sessionId && event.sessionId !== options.sessionId)
138
+ return false;
139
+ if (options?.personaId && event.personaId !== options.personaId)
140
+ return false;
141
+ return true;
142
+ });
143
+ return toAggregate(filtered, options?.sessionId, options?.personaId);
144
+ }
145
+ export async function clearRecordedAgentOSUsage(options) {
146
+ const ledgerPath = resolveAgentOSUsageLedgerPath(options);
147
+ if (!ledgerPath)
148
+ return;
149
+ await fs.rm(ledgerPath, { force: true });
150
+ }
151
+ //# sourceMappingURL=usageLedger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usageLedger.js","sourceRoot":"","sources":["../../src/api/usageLedger.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ import { ToolOrchestratorConfig } from '../../config/ToolOrchestratorConfig';
17
17
  import { ToolCallResult, UserContext } from '../../cognitive_substrate/IGMI';
18
18
  import type { IHumanInteractionManager } from '../hitl/IHumanInteractionManager';
19
19
  import type { CapabilityDiscoveryResult } from '../../discovery/types';
20
+ import type { EmergentConfig, EmergentTool } from '../../emergent/types.js';
21
+ import type { EmergentCapabilityEngine } from '../../emergent/EmergentCapabilityEngine.js';
20
22
  /**
21
23
  * Represents the information about a tool that is suitable for an LLM
22
24
  * to understand its capabilities and how to call it.
@@ -55,7 +57,17 @@ export interface IToolOrchestrator {
55
57
  * @returns {Promise<void>}
56
58
  * @throws {GMIError | Error} If initialization fails.
57
59
  */
58
- initialize(config: ToolOrchestratorConfig | undefined, permissionManager: IToolPermissionManager, toolExecutor: ToolExecutor, initialTools?: ITool[], hitlManager?: IHumanInteractionManager): Promise<void>;
60
+ initialize(config: ToolOrchestratorConfig | undefined, permissionManager: IToolPermissionManager, toolExecutor: ToolExecutor, initialTools?: ITool[], hitlManager?: IHumanInteractionManager, emergentOptions?: {
61
+ /** Enable emergent capability creation. */
62
+ enabled: boolean;
63
+ /** Partial emergent config to merge with defaults. */
64
+ config?: Partial<EmergentConfig>;
65
+ /**
66
+ * LLM text generation callback for the EmergentJudge.
67
+ * When omitted the judge rejects all tools (safe fallback).
68
+ */
69
+ generateText?: (model: string, prompt: string) => Promise<string>;
70
+ }): Promise<void>;
59
71
  /**
60
72
  * Registers a tool, making it available for discovery and execution.
61
73
  *
@@ -126,6 +138,31 @@ export interface IToolOrchestrator {
126
138
  personaCapabilities?: string[];
127
139
  userContext?: UserContext;
128
140
  }): Promise<ToolDefinitionForLLM[]>;
141
+ /**
142
+ * Returns the underlying {@link EmergentCapabilityEngine} instance, or
143
+ * `undefined` if emergent capabilities were not enabled at initialization.
144
+ *
145
+ * @returns The engine instance, or `undefined`.
146
+ */
147
+ getEmergentEngine?(): EmergentCapabilityEngine | undefined;
148
+ /**
149
+ * Clean up all emergent session-scoped tools for a given session.
150
+ * No-op if emergent capabilities are not enabled.
151
+ *
152
+ * @param sessionId - The session identifier to clean up.
153
+ */
154
+ cleanupEmergentSession?(sessionId: string): void;
155
+ /**
156
+ * Register a dynamically forged emergent tool with the orchestrator so the
157
+ * agent can use it in subsequent turns.
158
+ *
159
+ * @param tool - An {@link ITool} instance wrapping the forged tool.
160
+ */
161
+ registerForgedTool?(tool: ITool): Promise<void>;
162
+ /**
163
+ * Provide a discovery index callback for promoted emergent tools.
164
+ */
165
+ setEmergentDiscoveryIndexer?(indexer: (tools: EmergentTool[]) => Promise<void>): void;
129
166
  /**
130
167
  * Checks the health of the ToolOrchestrator and its critical dependencies.
131
168
  *
@@ -1 +1 @@
1
- {"version":3,"file":"IToolOrchestrator.d.ts","sourceRoot":"","sources":["../../../src/core/tools/IToolOrchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAEvE;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC;;;;;;;;;;OAUG;IACH,UAAU,CACR,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,iBAAiB,EAAE,sBAAsB,EACzC,YAAY,EAAE,YAAY,EAC1B,YAAY,CAAC,EAAE,KAAK,EAAE,EACtB,WAAW,CAAC,EAAE,wBAAwB,GACrC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;OAOG;IACH,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;;;;;;OAOG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnD;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;IAEtD;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,OAAO,CAAC,EAAE;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAEpC;;;;;;;;;;OAUG;IACH,eAAe,CAAC,cAAc,EAAE,2BAA2B,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEtF;;;;;;;;;;OAUG;IACH,mBAAmB,CAAC,CAClB,eAAe,EAAE,yBAAyB,EAC1C,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,GACA,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAEnC;;;;;OAKG;IACH,WAAW,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;IAE9D;;;;;;;OAOG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B"}
1
+ {"version":3,"file":"IToolOrchestrator.d.ts","sourceRoot":"","sources":["../../../src/core/tools/IToolOrchestrator.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,9 @@ import { ToolExecutor, ToolExecutionRequestDetails } from './ToolExecutor';
33
33
  import { ToolOrchestratorConfig } from '../../config/ToolOrchestratorConfig';
34
34
  import { ToolCallResult, UserContext } from '../../cognitive_substrate/IGMI';
35
35
  import type { IHumanInteractionManager } from '../hitl/IHumanInteractionManager';
36
+ import type { EmergentConfig, EmergentTool } from '../../emergent/types.js';
37
+ import { EmergentCapabilityEngine } from '../../emergent/EmergentCapabilityEngine.js';
38
+ import type { IStorageAdapter as EmergentStorageAdapter } from '../../emergent/EmergentToolRegistry.js';
36
39
  /**
37
40
  * @class ToolOrchestrator
38
41
  * @implements {IToolOrchestrator}
@@ -70,6 +73,13 @@ export declare class ToolOrchestrator implements IToolOrchestrator {
70
73
  * Optional human-in-the-loop manager used to gate risky tool executions.
71
74
  */
72
75
  private hitlManager?;
76
+ /**
77
+ * The emergent capability engine instance, created when `emergent: true`.
78
+ * Manages runtime tool creation via the forge pipeline.
79
+ * @private
80
+ */
81
+ private emergentEngine?;
82
+ private emergentDiscoveryIndexer?;
73
83
  /**
74
84
  * A flag indicating whether the orchestrator has been successfully initialized and is ready for operation.
75
85
  * @private
@@ -94,7 +104,19 @@ export declare class ToolOrchestrator implements IToolOrchestrator {
94
104
  * @inheritdoc
95
105
  */
96
106
  initialize(config: ToolOrchestratorConfig | undefined, // Can be undefined
97
- permissionManager: IToolPermissionManager, toolExecutor: ToolExecutor, initialTools?: ITool[], hitlManager?: IHumanInteractionManager): Promise<void>;
107
+ permissionManager: IToolPermissionManager, toolExecutor: ToolExecutor, initialTools?: ITool[], hitlManager?: IHumanInteractionManager, emergentOptions?: {
108
+ /** Enable emergent capability creation. */
109
+ enabled: boolean;
110
+ /** Partial emergent config to merge with defaults. */
111
+ config?: Partial<EmergentConfig>;
112
+ /**
113
+ * LLM text generation callback for the EmergentJudge.
114
+ * When omitted the judge rejects all tools (safe fallback).
115
+ */
116
+ generateText?: (model: string, prompt: string) => Promise<string>;
117
+ /** Optional persistent storage adapter for the emergent registry. */
118
+ storageAdapter?: EmergentStorageAdapter;
119
+ }): Promise<void>;
98
120
  private registerInitialTool;
99
121
  private classifySideEffectCategory;
100
122
  /**
@@ -140,6 +162,41 @@ export declare class ToolOrchestrator implements IToolOrchestrator {
140
162
  * @inheritdoc
141
163
  */
142
164
  processToolCall(requestDetails: ToolExecutionRequestDetails): Promise<ToolCallResult>;
165
+ /**
166
+ * Returns the underlying {@link EmergentCapabilityEngine} instance, or
167
+ * `undefined` if emergent capabilities were not enabled at initialization.
168
+ *
169
+ * Callers can use this to access engine methods like `getSessionTools()`,
170
+ * `getAgentTools()`, or `checkPromotion()` that are not exposed through
171
+ * the orchestrator's own API.
172
+ *
173
+ * @returns The engine instance, or `undefined`.
174
+ */
175
+ getEmergentEngine(): EmergentCapabilityEngine | undefined;
176
+ /**
177
+ * Clean up all emergent session-scoped tools for a given session.
178
+ *
179
+ * Delegates to {@link EmergentCapabilityEngine.cleanupSession}. This should
180
+ * be called when a conversation/session ends to free session-tier tools.
181
+ *
182
+ * No-op if emergent capabilities are not enabled.
183
+ *
184
+ * @param sessionId - The session identifier to clean up.
185
+ */
186
+ cleanupEmergentSession(sessionId: string): void;
187
+ /**
188
+ * Register a dynamically forged emergent tool with the orchestrator so the
189
+ * agent can use it in subsequent turns within the same session.
190
+ *
191
+ * This is the bridge between the {@link EmergentCapabilityEngine} (which
192
+ * stores tool metadata) and the {@link ToolOrchestrator} (which the LLM
193
+ * tool-call pipeline queries). After forge_tool produces a new tool, call
194
+ * this method to make it appear in `listAvailableTools()`.
195
+ *
196
+ * @param tool - An {@link ITool} instance wrapping the emergent tool.
197
+ */
198
+ registerForgedTool(tool: ITool): Promise<void>;
199
+ setEmergentDiscoveryIndexer(indexer: (tools: EmergentTool[]) => Promise<void>): void;
143
200
  /**
144
201
  * @inheritdoc
145
202
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ToolOrchestrator.d.ts","sourceRoot":"","sources":["../../../src/core/tools/ToolOrchestrator.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAyC,MAAM,SAAS,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAiD,MAAM,sCAAsC,CAAC;AAC7H,OAAO,EAAE,YAAY,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,KAAK,EAAkB,wBAAwB,EAAiB,MAAM,kCAAkC,CAAC;AAEhH;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD;;;;;OAKG;IACH,SAAgB,cAAc,EAAE,MAAM,CAAC;IAEvC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAA8C;IAE5D;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAA0B;IAEnD;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAAgB;IAEpC;;OAEG;IACH,OAAO,CAAC,WAAW,CAAC,CAA2B;IAE/C;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAAkB;IAEvC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAmBpC;IAEF;;;;OAIG;;IAMH;;OAEG;IACU,UAAU,CACrB,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAAE,mBAAmB;IAC/D,iBAAiB,EAAE,sBAAsB,EACzC,YAAY,EAAE,YAAY,EAC1B,YAAY,CAAC,EAAE,KAAK,EAAE,EACtB,WAAW,CAAC,EAAE,wBAAwB,GACrC,OAAO,CAAC,IAAI,CAAC;YAqDF,mBAAmB;IAqBjC,OAAO,CAAC,0BAA0B;IAUlC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACU,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BrD;;OAEG;IACU,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsB/D;;OAEG;IACU,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IAKlE;;OAEG;IACU,kBAAkB,CAAC,OAAO,CAAC,EAAE;QACxC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA4DnC;;;;;;;OAOG;IACU,mBAAmB,CAC9B,eAAe,EAAE,OAAO,uBAAuB,EAAE,yBAAyB,EAC1E,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,GACA,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAwBpC;;SAEK;IACU,eAAe,CAAC,cAAc,EAAE,2BAA2B,GAAG,OAAO,CAAC,cAAc,CAAC;IAmMlG;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAgC1E;;;;;OAKG;YACW,uBAAuB;IAmBrC;;OAEG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAYvC"}
1
+ {"version":3,"file":"ToolOrchestrator.d.ts","sourceRoot":"","sources":["../../../src/core/tools/ToolOrchestrator.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAA+D,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAiD,MAAM,sCAAsC,CAAC;AAC7H,OAAO,EAAE,YAAY,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,KAAK,EAAkB,wBAAwB,EAAiB,MAAM,kCAAkC,CAAC;AAChH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAKtF,OAAO,KAAK,EAAE,eAAe,IAAI,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAGxG;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD;;;;;OAKG;IACH,SAAgB,cAAc,EAAE,MAAM,CAAC;IAEvC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAA8C;IAE5D;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAA0B;IAEnD;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAAgB;IAEpC;;OAEG;IACH,OAAO,CAAC,WAAW,CAAC,CAA2B;IAE/C;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAAC,CAA2B;IAClD,OAAO,CAAC,wBAAwB,CAAC,CAA2C;IAE5E;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAAkB;IAEvC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAmBpC;IAEF;;;;OAIG;;IAMH;;OAEG;IACU,UAAU,CACrB,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAAE,mBAAmB;IAC/D,iBAAiB,EAAE,sBAAsB,EACzC,YAAY,EAAE,YAAY,EAC1B,YAAY,CAAC,EAAE,KAAK,EAAE,EACtB,WAAW,CAAC,EAAE,wBAAwB,EACtC,eAAe,CAAC,EAAE;QAChB,2CAA2C;QAC3C,OAAO,EAAE,OAAO,CAAC;QACjB,sDAAsD;QACtD,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACjC;;;WAGG;QACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAClE,qEAAqE;QACrE,cAAc,CAAC,EAAE,sBAAsB,CAAC;KACzC,GACA,OAAO,CAAC,IAAI,CAAC;YA8HF,mBAAmB;IAqBjC,OAAO,CAAC,0BAA0B;IAUlC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACU,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BrD;;OAEG;IACU,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsB/D;;OAEG;IACU,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IAKlE;;OAEG;IACU,kBAAkB,CAAC,OAAO,CAAC,EAAE;QACxC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA4DnC;;;;;;;OAOG;IACU,mBAAmB,CAC9B,eAAe,EAAE,OAAO,uBAAuB,EAAE,yBAAyB,EAC1E,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,GACA,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAwBpC;;SAEK;IACU,eAAe,CAAC,cAAc,EAAE,2BAA2B,GAAG,OAAO,CAAC,cAAc,CAAC;IAuMlG;;;;;;;;;OASG;IACI,iBAAiB,IAAI,wBAAwB,GAAG,SAAS;IAIhE;;;;;;;;;OASG;IACI,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAYtD;;;;;;;;;;OAUG;IACU,kBAAkB,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpD,2BAA2B,CAChC,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAChD,IAAI;IAIP;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAgC1E;;;;;OAKG;YACW,uBAAuB;IAmBrC;;OAEG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAYvC"}