@multiplayer-app/agent 0.0.6 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/cli.js +15 -16
  2. package/dist/cli.js.map +1 -1
  3. package/dist/config.d.ts +43 -2
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +73 -11
  6. package/dist/config.js.map +1 -1
  7. package/dist/git-sync.d.ts +22 -0
  8. package/dist/git-sync.d.ts.map +1 -0
  9. package/dist/git-sync.js +107 -0
  10. package/dist/git-sync.js.map +1 -0
  11. package/dist/index.d.ts +6 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +26 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/lambda-microvm-entrypoint.js +74 -39
  16. package/dist/lambda-microvm-entrypoint.js.map +1 -1
  17. package/dist/link.d.ts +16 -0
  18. package/dist/link.d.ts.map +1 -0
  19. package/dist/link.js +76 -0
  20. package/dist/link.js.map +1 -0
  21. package/dist/loop.d.ts.map +1 -1
  22. package/dist/loop.js +8 -6
  23. package/dist/loop.js.map +1 -1
  24. package/dist/mcp/mcp-connection.js +1 -1
  25. package/dist/mcp/mcp-connection.js.map +1 -1
  26. package/dist/mcp/mcp-tools.js +1 -1
  27. package/dist/mcp/mcp-tools.js.map +1 -1
  28. package/dist/model.d.ts +4 -0
  29. package/dist/model.d.ts.map +1 -0
  30. package/dist/model.js +20 -0
  31. package/dist/model.js.map +1 -0
  32. package/dist/protocol.d.ts +174 -0
  33. package/dist/protocol.d.ts.map +1 -0
  34. package/dist/protocol.js +95 -0
  35. package/dist/protocol.js.map +1 -0
  36. package/dist/protocol.test.d.ts +2 -0
  37. package/dist/protocol.test.d.ts.map +1 -0
  38. package/dist/protocol.test.js +25 -0
  39. package/dist/protocol.test.js.map +1 -0
  40. package/dist/report.d.ts.map +1 -1
  41. package/dist/report.js +22 -44
  42. package/dist/report.js.map +1 -1
  43. package/dist/research/filingramp-client.d.ts +28 -0
  44. package/dist/research/filingramp-client.d.ts.map +1 -0
  45. package/dist/research/filingramp-client.js +124 -0
  46. package/dist/research/filingramp-client.js.map +1 -0
  47. package/dist/research/filingramp-tools.d.ts +10 -0
  48. package/dist/research/filingramp-tools.d.ts.map +1 -0
  49. package/dist/research/filingramp-tools.js +447 -0
  50. package/dist/research/filingramp-tools.js.map +1 -0
  51. package/dist/research/prompt.d.ts +13 -0
  52. package/dist/research/prompt.d.ts.map +1 -0
  53. package/dist/research/prompt.js +40 -0
  54. package/dist/research/prompt.js.map +1 -0
  55. package/dist/research/scope.d.ts +24 -0
  56. package/dist/research/scope.d.ts.map +1 -0
  57. package/dist/research/scope.js +103 -0
  58. package/dist/research/scope.js.map +1 -0
  59. package/dist/research/scope.test.d.ts +2 -0
  60. package/dist/research/scope.test.d.ts.map +1 -0
  61. package/dist/research/scope.test.js +45 -0
  62. package/dist/research/scope.test.js.map +1 -0
  63. package/dist/runtime.d.ts +10 -0
  64. package/dist/runtime.d.ts.map +1 -0
  65. package/dist/runtime.js +35 -0
  66. package/dist/runtime.js.map +1 -0
  67. package/dist/session.d.ts +38 -0
  68. package/dist/session.d.ts.map +1 -0
  69. package/dist/session.js +427 -0
  70. package/dist/session.js.map +1 -0
  71. package/dist/tools/fs-tools.js +1 -1
  72. package/dist/tools/fs-tools.js.map +1 -1
  73. package/package.json +8 -2
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSubLineCode = isSubLineCode;
4
+ exports.scopeFilingsFilters = scopeFilingsFilters;
5
+ exports.scopeDocumentFilters = scopeDocumentFilters;
6
+ exports.resolveSearchType = resolveSearchType;
7
+ exports.describeScope = describeScope;
8
+ /** Four-decimal codes ("17.0001") are sub-lines; anything else is a broad line or a name. */
9
+ function isSubLineCode(line) {
10
+ return /^\d{1,2}\.\d{4}$/.test(line.trim());
11
+ }
12
+ /**
13
+ * Filters the scope implies for the filings search / count / summary endpoints
14
+ * (FilingsFilters in the FilingRamp catalog). A field the caller already set wins — the
15
+ * caller is the model narrowing within the scope, never a way around it: when the caller's
16
+ * value falls outside the scope the scope's filter is kept and the caller's is dropped.
17
+ */
18
+ function scopeFilingsFilters(scope, requested = []) {
19
+ var _a, _b;
20
+ const filters = [];
21
+ const requestedByField = new Map(requested.map((filter) => [filter.field, filter]));
22
+ if ((_a = scope === null || scope === void 0 ? void 0 : scope.states) === null || _a === void 0 ? void 0 : _a.length) {
23
+ const wanted = new Set(scope.states.map((state) => state.toUpperCase()));
24
+ const own = requestedByField.get('states');
25
+ const narrowed = Array.isArray(own === null || own === void 0 ? void 0 : own.value)
26
+ ? own.value.filter((state) => wanted.has(String(state).toUpperCase()))
27
+ : [];
28
+ filters.push({ field: 'states', comparisonOperator: 'in', value: narrowed.length ? narrowed : [...wanted] });
29
+ requestedByField.delete('states');
30
+ }
31
+ if ((_b = scope === null || scope === void 0 ? void 0 : scope.lines) === null || _b === void 0 ? void 0 : _b.length) {
32
+ const subLines = scope.lines.filter(isSubLineCode);
33
+ const lines = scope.lines.filter((line) => !isSubLineCode(line));
34
+ if (subLines.length && !requestedByField.has('subTypeOfInsurances')) {
35
+ filters.push({ field: 'subTypeOfInsurances', comparisonOperator: 'cn', value: subLines });
36
+ }
37
+ if (lines.length && !requestedByField.has('typeOfInsurances')) {
38
+ filters.push({ field: 'typeOfInsurances', comparisonOperator: 'cn', value: lines });
39
+ }
40
+ }
41
+ if ((scope === null || scope === void 0 ? void 0 : scope.dateFrom) && !requested.some((f) => f.field === 'dateSubmitted' && ['gte', 'gt'].includes(f.comparisonOperator))) {
42
+ filters.push({ field: 'dateSubmitted', comparisonOperator: 'gte', value: scope.dateFrom });
43
+ }
44
+ if ((scope === null || scope === void 0 ? void 0 : scope.dateTo) && !requested.some((f) => f.field === 'dateSubmitted' && ['lte', 'lt'].includes(f.comparisonOperator))) {
45
+ filters.push({ field: 'dateSubmitted', comparisonOperator: 'lte', value: scope.dateTo });
46
+ }
47
+ for (const filter of requestedByField.values())
48
+ filters.push(filter);
49
+ return filters;
50
+ }
51
+ /**
52
+ * Same idea for POST /v1/search/global (OpenSearch): its filter vocabulary differs (singular
53
+ * typeOfInsurance / subTypeOfInsurance, exact "in" matches only).
54
+ */
55
+ function scopeDocumentFilters(scope, requested = []) {
56
+ var _a, _b;
57
+ const filters = [];
58
+ const has = (field) => requested.some((filter) => filter.field === field);
59
+ if (((_a = scope === null || scope === void 0 ? void 0 : scope.states) === null || _a === void 0 ? void 0 : _a.length) && !has('states')) {
60
+ filters.push({ field: 'states', comparisonOperator: 'in', value: scope.states.map((state) => state.toUpperCase()) });
61
+ }
62
+ if ((_b = scope === null || scope === void 0 ? void 0 : scope.lines) === null || _b === void 0 ? void 0 : _b.length) {
63
+ const subLines = scope.lines.filter(isSubLineCode);
64
+ const lines = scope.lines.filter((line) => !isSubLineCode(line));
65
+ if (subLines.length && !has('subTypeOfInsurance')) {
66
+ filters.push({ field: 'subTypeOfInsurance', comparisonOperator: 'in', value: subLines });
67
+ }
68
+ if (lines.length && !has('typeOfInsurance')) {
69
+ filters.push({ field: 'typeOfInsurance', comparisonOperator: 'in', value: lines });
70
+ }
71
+ }
72
+ if ((scope === null || scope === void 0 ? void 0 : scope.dateFrom) && !has('dateSubmitted')) {
73
+ filters.push({ field: 'dateSubmitted', comparisonOperator: 'gte', value: scope.dateFrom });
74
+ }
75
+ if ((scope === null || scope === void 0 ? void 0 : scope.dateTo) && !requested.some((f) => f.field === 'dateSubmitted' && ['lte', 'lt'].includes(f.comparisonOperator))) {
76
+ filters.push({ field: 'dateSubmitted', comparisonOperator: 'lte', value: scope.dateTo });
77
+ }
78
+ return [...filters, ...requested];
79
+ }
80
+ /** 'INDUSTRY' only when the session asked for it and the account is entitled; otherwise account data. */
81
+ function resolveSearchType(scope, industryData, requested) {
82
+ const wanted = requested !== null && requested !== void 0 ? requested : ((scope === null || scope === void 0 ? void 0 : scope.dataSource) === 'industry' ? 'INDUSTRY' : 'ACCOUNT');
83
+ if (wanted === 'INDUSTRY' && !industryData) {
84
+ throw new Error('Industry data is not enabled for this account; search account filings instead.');
85
+ }
86
+ return wanted;
87
+ }
88
+ function describeScope(scope) {
89
+ var _a, _b;
90
+ if (!scope)
91
+ return 'No scope was set: the whole account is in scope.';
92
+ const parts = [];
93
+ parts.push(`Data source: ${scope.dataSource === 'industry' ? 'industry (public) filings' : "this account's filings"}.`);
94
+ if ((_a = scope.states) === null || _a === void 0 ? void 0 : _a.length)
95
+ parts.push(`States: ${scope.states.join(', ')}.`);
96
+ if ((_b = scope.lines) === null || _b === void 0 ? void 0 : _b.length)
97
+ parts.push(`Lines of business: ${scope.lines.join(', ')}.`);
98
+ if (scope.dateFrom || scope.dateTo) {
99
+ parts.push(`Submitted ${scope.dateFrom ? `from ${scope.dateFrom}` : ''}${scope.dateTo ? ` to ${scope.dateTo}` : ''}.`.replace(' ', ' '));
100
+ }
101
+ return parts.join(' ');
102
+ }
103
+ //# sourceMappingURL=scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/research/scope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=scope.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.test.d.ts","sourceRoot":"","sources":["../../src/research/scope.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const strict_1 = __importDefault(require("node:assert/strict"));
7
+ const node_test_1 = require("node:test");
8
+ const scope_1 = require("./scope");
9
+ (0, node_test_1.describe)('research scope filters', () => {
10
+ (0, node_test_1.it)('adds state, line and date filters the scope implies', () => {
11
+ const filters = (0, scope_1.scopeFilingsFilters)({ states: ['tx', 'AZ'], lines: ['17.0001', 'Homeowners'], dateFrom: '2024-01-01', dateTo: '2024-12-31' });
12
+ strict_1.default.deepEqual(filters, [
13
+ { field: 'states', comparisonOperator: 'in', value: ['TX', 'AZ'] },
14
+ { field: 'subTypeOfInsurances', comparisonOperator: 'cn', value: ['17.0001'] },
15
+ { field: 'typeOfInsurances', comparisonOperator: 'cn', value: ['Homeowners'] },
16
+ { field: 'dateSubmitted', comparisonOperator: 'gte', value: '2024-01-01' },
17
+ { field: 'dateSubmitted', comparisonOperator: 'lte', value: '2024-12-31' },
18
+ ]);
19
+ });
20
+ (0, node_test_1.it)('lets the caller narrow states inside the scope but never widen past it', () => {
21
+ const narrowed = (0, scope_1.scopeFilingsFilters)({ states: ['TX', 'AZ'] }, [{ field: 'states', comparisonOperator: 'in', value: ['AZ'] }]);
22
+ strict_1.default.deepEqual(narrowed[0], { field: 'states', comparisonOperator: 'in', value: ['AZ'] });
23
+ const widened = (0, scope_1.scopeFilingsFilters)({ states: ['TX'] }, [{ field: 'states', comparisonOperator: 'in', value: ['CA'] }]);
24
+ strict_1.default.deepEqual(widened[0], { field: 'states', comparisonOperator: 'in', value: ['TX'] });
25
+ strict_1.default.equal(widened.length, 1);
26
+ });
27
+ (0, node_test_1.it)('keeps caller filters on other fields and passes through with no scope', () => {
28
+ const own = [{ field: 'filingTypes', comparisonOperator: 'in', value: ['Form'] }];
29
+ strict_1.default.deepEqual((0, scope_1.scopeFilingsFilters)(undefined, own), own);
30
+ strict_1.default.deepEqual((0, scope_1.scopeDocumentFilters)(undefined, own), own);
31
+ });
32
+ (0, node_test_1.it)('uses the singular OpenSearch vocabulary for document search', () => {
33
+ strict_1.default.deepEqual((0, scope_1.scopeDocumentFilters)({ states: ['tx'], lines: ['17.0001'] }), [
34
+ { field: 'states', comparisonOperator: 'in', value: ['TX'] },
35
+ { field: 'subTypeOfInsurance', comparisonOperator: 'in', value: ['17.0001'] },
36
+ ]);
37
+ });
38
+ (0, node_test_1.it)('refuses industry data when the account is not entitled', () => {
39
+ strict_1.default.equal((0, scope_1.resolveSearchType)({ dataSource: 'industry' }, true), 'INDUSTRY');
40
+ strict_1.default.equal((0, scope_1.resolveSearchType)(undefined, false), 'ACCOUNT');
41
+ strict_1.default.throws(() => (0, scope_1.resolveSearchType)({ dataSource: 'industry' }, false), /not enabled/);
42
+ strict_1.default.throws(() => (0, scope_1.resolveSearchType)(undefined, false, 'INDUSTRY'), /not enabled/);
43
+ });
44
+ });
45
+ //# sourceMappingURL=scope.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.test.js","sourceRoot":"","sources":["../../src/research/scope.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { type AgentRuntimeConfig } from './config';
2
+ import { type SessionAgent } from './session';
3
+ export interface RunningAgent {
4
+ config: AgentRuntimeConfig;
5
+ /** Present in session mode only. */
6
+ session?: SessionAgent;
7
+ close(): Promise<void>;
8
+ }
9
+ export declare function startAgent(env?: NodeJS.ProcessEnv): Promise<RunningAgent>;
10
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAIrE,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA;AAE9D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,kBAAkB,CAAA;IAC1B,oCAAoC;IACpC,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED,wBAAsB,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAAC,YAAY,CAAC,CAsB5F"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.startAgent = startAgent;
4
+ // Mode dispatch shared by both entrypoints (cli.ts for engines that materialize env before
5
+ // start, lambda-microvm-entrypoint.ts for the /run hook): task mode runs once and resolves;
6
+ // session mode stays up and resolves with the running agent so lifecycle hooks can reach it.
7
+ const config_1 = require("./config");
8
+ const link_1 = require("./link");
9
+ const loop_1 = require("./loop");
10
+ const report_1 = require("./report");
11
+ const session_1 = require("./session");
12
+ async function startAgent(env = process.env) {
13
+ const config = (0, config_1.loadConfigFromEnv)(env);
14
+ if (config.mode === 'session') {
15
+ const link = (0, link_1.createSessionLink)(config.sessionId, config.socketUrl, config.socketToken);
16
+ const session = await (0, session_1.runSessionAgent)(config, link);
17
+ return {
18
+ config,
19
+ session,
20
+ async close() {
21
+ await session.stop();
22
+ await link.close();
23
+ },
24
+ };
25
+ }
26
+ const reporter = (0, report_1.createReporter)(config.socketUrl, config.socketToken, config.sessionId);
27
+ try {
28
+ await (0, loop_1.runAgentLoop)(config, reporter);
29
+ }
30
+ finally {
31
+ await reporter.close();
32
+ }
33
+ return { config, async close() { } };
34
+ }
35
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":";;AAgBA,gCAsBC;AAtCD,2FAA2F;AAC3F,4FAA4F;AAC5F,6FAA6F;AAC7F,qCAAqE;AACrE,iCAA0C;AAC1C,iCAAqC;AACrC,qCAAyC;AACzC,uCAA8D;AASvD,KAAK,UAAU,UAAU,CAAC,MAAyB,OAAO,CAAC,GAAG;IACnE,MAAM,MAAM,GAAG,IAAA,0BAAiB,EAAC,GAAG,CAAC,CAAA;IACrC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAA,wBAAiB,EAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;QACtF,MAAM,OAAO,GAAG,MAAM,IAAA,yBAAe,EAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACnD,OAAO;YACL,MAAM;YACN,OAAO;YACP,KAAK,CAAC,KAAK;gBACT,MAAM,OAAO,CAAC,IAAI,EAAE,CAAA;gBACpB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;YACpB,CAAC;SACF,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,uBAAc,EAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;IACvF,IAAI,CAAC;QACH,MAAM,IAAA,mBAAY,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACtC,CAAC;YAAS,CAAC;QACT,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,KAAI,CAAC,EAAE,CAAA;AACrC,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { type ModelMessage } from 'ai';
2
+ import type { AgentRuntimeConfig } from './config';
3
+ import type { SessionLink } from './link';
4
+ /** Drops the oldest turns (user message + everything up to the next user message) past the cap, keeping the first one. */
5
+ export declare function limitConversation(messages: ModelMessage[], charBudget?: number): ModelMessage[];
6
+ export declare class SessionAgent {
7
+ private readonly config;
8
+ private readonly link;
9
+ private messages;
10
+ private usedTokens;
11
+ private budget?;
12
+ private budgetPaused;
13
+ private current?;
14
+ private readonly queue;
15
+ private readonly gitSync?;
16
+ private tools;
17
+ private systemPrompt;
18
+ private periodic?;
19
+ private stopped;
20
+ constructor(config: AgentRuntimeConfig, link: SessionLink);
21
+ private get workspaceDir();
22
+ start(): Promise<void>;
23
+ /** Lifecycle hooks (suspend / terminate) call this; it is safe to call repeatedly. */
24
+ checkpoint(reason: string): Promise<void>;
25
+ stop(): Promise<void>;
26
+ private handle;
27
+ private buildTools;
28
+ /** Bulk extraction on the cheaper model: one call per file, structured rows appended to a JSONL file. */
29
+ private extractionTool;
30
+ private recordUsage;
31
+ private budgetExceeded;
32
+ private runTurn;
33
+ private conversationPath;
34
+ private loadConversation;
35
+ private saveConversation;
36
+ }
37
+ export declare function runSessionAgent(config: AgentRuntimeConfig, link: SessionLink): Promise<SessionAgent>;
38
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAUA,OAAO,EAA+C,KAAK,YAAY,EAAa,MAAM,IAAI,CAAA;AAE9F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAoCzC,0HAA0H;AAC1H,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,UAAU,SAAsB,GAAG,YAAY,EAAE,CAa5G;AAUD,qBAAa,YAAY;IAcrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAdvB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,OAAO,CAAC,CAAY;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiD;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;IAClC,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,OAAO,CAAQ;gBAGJ,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE,WAAW;IAMpC,OAAO,KAAK,YAAY,GAEvB;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B5B,sFAAsF;IAChF,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAMb,MAAM;IAmBpB,OAAO,CAAC,UAAU;IAsFlB,yGAAyG;IACzG,OAAO,CAAC,cAAc;IA0CtB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,cAAc;YAIR,OAAO;IA0GrB,OAAO,CAAC,gBAAgB;YAIV,gBAAgB;YAehB,gBAAgB;CAM/B;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAI1G"}