aui-agent-builder 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.
- package/README.md +311 -0
- package/bin/aui.js +2 -0
- package/dist/api-client/index.d.ts +208 -0
- package/dist/api-client/index.d.ts.map +1 -0
- package/dist/api-client/index.js +219 -0
- package/dist/api-client/index.js.map +1 -0
- package/dist/commands/add-integration.d.ts +26 -0
- package/dist/commands/add-integration.d.ts.map +1 -0
- package/dist/commands/add-integration.js +484 -0
- package/dist/commands/add-integration.js.map +1 -0
- package/dist/commands/add-param.d.ts +13 -0
- package/dist/commands/add-param.d.ts.map +1 -0
- package/dist/commands/add-param.js +140 -0
- package/dist/commands/add-param.js.map +1 -0
- package/dist/commands/add-tool.d.ts +17 -0
- package/dist/commands/add-tool.d.ts.map +1 -0
- package/dist/commands/add-tool.js +239 -0
- package/dist/commands/add-tool.js.map +1 -0
- package/dist/commands/connect.d.ts +20 -0
- package/dist/commands/connect.d.ts.map +1 -0
- package/dist/commands/connect.js +203 -0
- package/dist/commands/connect.js.map +1 -0
- package/dist/commands/create-agent.d.ts +25 -0
- package/dist/commands/create-agent.d.ts.map +1 -0
- package/dist/commands/create-agent.js +199 -0
- package/dist/commands/create-agent.js.map +1 -0
- package/dist/commands/diff.d.ts +17 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +261 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/import-agent.d.ts +21 -0
- package/dist/commands/import-agent.d.ts.map +1 -0
- package/dist/commands/import-agent.js +274 -0
- package/dist/commands/import-agent.js.map +1 -0
- package/dist/commands/index.d.ts +15 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +27 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +18 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +173 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list-agents.d.ts +12 -0
- package/dist/commands/list-agents.d.ts.map +1 -0
- package/dist/commands/list-agents.js +68 -0
- package/dist/commands/list-agents.js.map +1 -0
- package/dist/commands/login.d.ts +26 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +200 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/pull.d.ts +17 -0
- package/dist/commands/pull.d.ts.map +1 -0
- package/dist/commands/pull.js +65 -0
- package/dist/commands/pull.js.map +1 -0
- package/dist/commands/push.d.ts +24 -0
- package/dist/commands/push.d.ts.map +1 -0
- package/dist/commands/push.js +160 -0
- package/dist/commands/push.js.map +1 -0
- package/dist/commands/status.d.ts +10 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +155 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/sync.d.ts +19 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +114 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/validate.d.ts +20 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +199 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/config/index.d.ts +102 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +205 -0
- package/dist/config/index.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +163 -0
- package/dist/index.js.map +1 -0
- package/dist/mock-data/entities.aui.json +38 -0
- package/dist/mock-data/general_settings.aui.json +11 -0
- package/dist/mock-data/integrations.aui.json +806 -0
- package/dist/mock-data/parameters.aui.json +586 -0
- package/dist/mock-data/rules.aui.json +506 -0
- package/dist/mock-data/tools/conversation_forwarding.aui.json +32 -0
- package/dist/mock-data/tools/create_fraud_dispute.aui.json +112 -0
- package/dist/mock-data/tools/generative_ai.aui.json +29 -0
- package/dist/mock-data/tools/policies.aui.json +45 -0
- package/dist/mock-data/tools/transaction_and_card_details.aui.json +87 -0
- package/dist/mock-data/tools/transaction_search.aui.json +76 -0
- package/dist/mock-data/tools/update_credit_card_status.aui.json +45 -0
- package/dist/mock-data/tools/user_details.aui.json +57 -0
- package/dist/mock-data/tools/web_search.aui.json +54 -0
- package/dist/schema/aui.schema.json +418 -0
- package/dist/types/agent.d.ts +91 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +9 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/base.d.ts +15 -0
- package/dist/types/base.d.ts.map +1 -0
- package/dist/types/base.js +7 -0
- package/dist/types/base.js.map +1 -0
- package/dist/types/entity.d.ts +25 -0
- package/dist/types/entity.d.ts.map +1 -0
- package/dist/types/entity.js +9 -0
- package/dist/types/entity.js.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +27 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/integration.d.ts +151 -0
- package/dist/types/integration.d.ts.map +1 -0
- package/dist/types/integration.js +9 -0
- package/dist/types/integration.js.map +1 -0
- package/dist/types/parameter.d.ts +38 -0
- package/dist/types/parameter.d.ts.map +1 -0
- package/dist/types/parameter.js +10 -0
- package/dist/types/parameter.js.map +1 -0
- package/dist/types/rule.d.ts +125 -0
- package/dist/types/rule.d.ts.map +1 -0
- package/dist/types/rule.js +10 -0
- package/dist/types/rule.js.map +1 -0
- package/dist/types/tool.d.ts +95 -0
- package/dist/types/tool.d.ts.map +1 -0
- package/dist/types/tool.js +12 -0
- package/dist/types/tool.js.map +1 -0
- package/dist/utils/index.d.ts +47 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +267 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* status command - Show current session, linked agent, and project file summary
|
|
4
|
+
*
|
|
5
|
+
* Usage: aui status
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
41
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
42
|
+
};
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
exports.status = status;
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
47
|
+
const config_1 = require("../config");
|
|
48
|
+
const utils_1 = require("../utils");
|
|
49
|
+
/**
|
|
50
|
+
* Show status of current session and project
|
|
51
|
+
*/
|
|
52
|
+
async function status() {
|
|
53
|
+
console.log(chalk_1.default.blue('\n AUI Agent Builder - Status\n'));
|
|
54
|
+
// ─── Session ───
|
|
55
|
+
const session = (0, config_1.loadSession)();
|
|
56
|
+
if (session) {
|
|
57
|
+
const expired = session.expires_at && new Date(session.expires_at).getTime() < Date.now();
|
|
58
|
+
const expLabel = expired
|
|
59
|
+
? chalk_1.default.red('EXPIRED')
|
|
60
|
+
: session.expires_at
|
|
61
|
+
? chalk_1.default.green(new Date(session.expires_at).toLocaleString())
|
|
62
|
+
: chalk_1.default.gray('unknown');
|
|
63
|
+
console.log(chalk_1.default.white(' Session'));
|
|
64
|
+
console.log(` Email: ${chalk_1.default.cyan(session.email)}`);
|
|
65
|
+
console.log(` Account: ${chalk_1.default.cyan(session.account_name || session.account_id || '-')}`);
|
|
66
|
+
console.log(` Organization: ${chalk_1.default.gray(session.organization_id || '-')}`);
|
|
67
|
+
console.log(` Environment: ${chalk_1.default.gray(session.environment)}`);
|
|
68
|
+
console.log(` Expires: ${expLabel}`);
|
|
69
|
+
if (expired) {
|
|
70
|
+
console.log(chalk_1.default.red('\n ⚠ Session expired. Run `aui login` to refresh.\n'));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
console.log(chalk_1.default.yellow(' Not logged in. Run `aui login` to authenticate.\n'));
|
|
75
|
+
}
|
|
76
|
+
// ─── Project ───
|
|
77
|
+
const projectRoot = (0, config_1.findProjectRoot)();
|
|
78
|
+
if (!projectRoot) {
|
|
79
|
+
console.log(chalk_1.default.gray('\n No AUI project found in current directory.\n'));
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const projectConfig = (0, config_1.loadProjectConfig)(projectRoot);
|
|
83
|
+
console.log(chalk_1.default.white('\n Project'));
|
|
84
|
+
console.log(` Directory: ${chalk_1.default.cyan(projectRoot)}`);
|
|
85
|
+
console.log(` Agent Code: ${chalk_1.default.cyan(projectConfig?.agent_code || '-')}`);
|
|
86
|
+
console.log(` Agent ID: ${chalk_1.default.gray(projectConfig?.agent_id || '-')}`);
|
|
87
|
+
console.log(` Environment: ${chalk_1.default.gray(projectConfig?.environment || '-')}`);
|
|
88
|
+
// ─── Files ───
|
|
89
|
+
const files = await (0, utils_1.findAuiFiles)(projectRoot);
|
|
90
|
+
let paramCount = 0;
|
|
91
|
+
let entityCount = 0;
|
|
92
|
+
let toolCount = 0;
|
|
93
|
+
let integrationCount = 0;
|
|
94
|
+
let ruleCount = 0;
|
|
95
|
+
let hasGeneralSettings = false;
|
|
96
|
+
const fileDetails = [];
|
|
97
|
+
for (const file of files) {
|
|
98
|
+
const relativePath = path.relative(projectRoot, file);
|
|
99
|
+
const parsed = (0, utils_1.parseAuiFile)(file);
|
|
100
|
+
if (!parsed) {
|
|
101
|
+
fileDetails.push({ name: relativePath, type: 'error', detail: 'invalid JSON' });
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
if (parsed.general_settings) {
|
|
105
|
+
hasGeneralSettings = true;
|
|
106
|
+
const gs = parsed.general_settings;
|
|
107
|
+
fileDetails.push({
|
|
108
|
+
name: relativePath,
|
|
109
|
+
type: 'general_settings',
|
|
110
|
+
detail: gs.name || ''
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
else if (parsed.parameters && Array.isArray(parsed.parameters)) {
|
|
114
|
+
paramCount = parsed.parameters.length;
|
|
115
|
+
fileDetails.push({ name: relativePath, type: 'parameters', detail: `${paramCount} params` });
|
|
116
|
+
}
|
|
117
|
+
else if (parsed.entities && Array.isArray(parsed.entities)) {
|
|
118
|
+
entityCount = parsed.entities.length;
|
|
119
|
+
fileDetails.push({ name: relativePath, type: 'entities', detail: `${entityCount} entities` });
|
|
120
|
+
}
|
|
121
|
+
else if (parsed.integrations && Array.isArray(parsed.integrations)) {
|
|
122
|
+
integrationCount = parsed.integrations.length;
|
|
123
|
+
fileDetails.push({ name: relativePath, type: 'integrations', detail: `${integrationCount} integrations` });
|
|
124
|
+
}
|
|
125
|
+
else if (parsed.rules && Array.isArray(parsed.rules)) {
|
|
126
|
+
ruleCount = parsed.rules.length;
|
|
127
|
+
fileDetails.push({ name: relativePath, type: 'rules', detail: `${ruleCount} rules` });
|
|
128
|
+
}
|
|
129
|
+
else if (parsed.tool) {
|
|
130
|
+
toolCount++;
|
|
131
|
+
const tool = parsed.tool;
|
|
132
|
+
fileDetails.push({ name: relativePath, type: 'tool', detail: tool.code || '' });
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
fileDetails.push({ name: relativePath, type: 'unknown', detail: '' });
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
console.log(chalk_1.default.white('\n Files'));
|
|
139
|
+
for (const f of fileDetails) {
|
|
140
|
+
const icon = f.type === 'error' ? chalk_1.default.red('✗') : chalk_1.default.green('•');
|
|
141
|
+
const detail = f.detail ? chalk_1.default.gray(` (${f.detail})`) : '';
|
|
142
|
+
console.log(` ${icon} ${f.name}${detail}`);
|
|
143
|
+
}
|
|
144
|
+
// ─── Summary ───
|
|
145
|
+
console.log(chalk_1.default.white('\n Summary'));
|
|
146
|
+
console.log(` General Settings: ${hasGeneralSettings ? chalk_1.default.green('✓') : chalk_1.default.yellow('missing')}`);
|
|
147
|
+
console.log(` Parameters: ${paramCount}`);
|
|
148
|
+
console.log(` Entities: ${entityCount}`);
|
|
149
|
+
console.log(` Integrations: ${integrationCount}`);
|
|
150
|
+
console.log(` Tools: ${toolCount}`);
|
|
151
|
+
console.log(` Rules: ${ruleCount}`);
|
|
152
|
+
console.log(` Total files: ${files.length}`);
|
|
153
|
+
console.log('');
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* sync command - Two-way sync with conflict resolution
|
|
3
|
+
*
|
|
4
|
+
* Requires login. Compares local configuration with the backend.
|
|
5
|
+
*
|
|
6
|
+
* Usage: aui sync
|
|
7
|
+
* Options:
|
|
8
|
+
* --force Force local changes (no conflict resolution)
|
|
9
|
+
* --dry-run Show what would change without applying
|
|
10
|
+
*/
|
|
11
|
+
export interface SyncOptions {
|
|
12
|
+
force?: boolean;
|
|
13
|
+
dryRun?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Two-way sync with backend
|
|
17
|
+
*/
|
|
18
|
+
export declare function sync(options?: SyncOptions): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoGnE"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* sync command - Two-way sync with conflict resolution
|
|
4
|
+
*
|
|
5
|
+
* Requires login. Compares local configuration with the backend.
|
|
6
|
+
*
|
|
7
|
+
* Usage: aui sync
|
|
8
|
+
* Options:
|
|
9
|
+
* --force Force local changes (no conflict resolution)
|
|
10
|
+
* --dry-run Show what would change without applying
|
|
11
|
+
*/
|
|
12
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
+
};
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.sync = sync;
|
|
17
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
18
|
+
const ora_1 = __importDefault(require("ora"));
|
|
19
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
20
|
+
const api_client_1 = require("../api-client");
|
|
21
|
+
const config_1 = require("../config");
|
|
22
|
+
const utils_1 = require("../utils");
|
|
23
|
+
/**
|
|
24
|
+
* Two-way sync with backend
|
|
25
|
+
*/
|
|
26
|
+
async function sync(options = {}) {
|
|
27
|
+
const config = (0, config_1.getConfig)();
|
|
28
|
+
const projectRoot = config.projectRoot || process.cwd();
|
|
29
|
+
if (!config.isAuthenticated) {
|
|
30
|
+
console.log(chalk_1.default.red(' Error: Not logged in. Run: aui login'));
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (!config.agentCode) {
|
|
34
|
+
console.log(chalk_1.default.red(' Error: No agent code configured. Run: aui connect'));
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
console.log(chalk_1.default.blue(`\n Syncing agent "${config.agentCode}"...\n`));
|
|
38
|
+
const spinner = (0, ora_1.default)('Reading local files...').start();
|
|
39
|
+
try {
|
|
40
|
+
const localData = await (0, utils_1.readAgentFiles)(projectRoot);
|
|
41
|
+
spinner.succeed('Read local files');
|
|
42
|
+
const client = new api_client_1.AUIClient({
|
|
43
|
+
baseUrl: config.apiUrl,
|
|
44
|
+
authToken: config.authToken,
|
|
45
|
+
accountId: config.accountId,
|
|
46
|
+
organizationId: config.organizationId,
|
|
47
|
+
environment: config.environment
|
|
48
|
+
});
|
|
49
|
+
// Pull remote data for comparison
|
|
50
|
+
spinner.start('Fetching remote data...');
|
|
51
|
+
const remoteResponse = await client.agents.get(config.agentCode);
|
|
52
|
+
spinner.succeed('Fetched remote data');
|
|
53
|
+
// Compare
|
|
54
|
+
const localTools = localData.tools?.length || 0;
|
|
55
|
+
const localParams = localData.parameters?.length || 0;
|
|
56
|
+
const localIntegrations = localData.integrations?.length || 0;
|
|
57
|
+
console.log(chalk_1.default.blue('\n Local vs Remote:\n'));
|
|
58
|
+
console.log(` Parameters: ${localParams}`);
|
|
59
|
+
console.log(` Tools: ${localTools}`);
|
|
60
|
+
console.log(` Integrations: ${localIntegrations}`);
|
|
61
|
+
if (options.dryRun) {
|
|
62
|
+
console.log(chalk_1.default.gray('\n Dry run - no changes applied.\n'));
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
// Ask for sync direction
|
|
66
|
+
const { direction } = await inquirer_1.default.prompt([{
|
|
67
|
+
type: 'list',
|
|
68
|
+
name: 'direction',
|
|
69
|
+
message: 'Sync direction:',
|
|
70
|
+
choices: [
|
|
71
|
+
{ name: 'Push local → remote', value: 'push' },
|
|
72
|
+
{ name: 'Pull remote → local', value: 'pull' },
|
|
73
|
+
{ name: 'Cancel', value: 'cancel' }
|
|
74
|
+
]
|
|
75
|
+
}]);
|
|
76
|
+
if (direction === 'cancel') {
|
|
77
|
+
console.log(chalk_1.default.gray('\n Sync cancelled.\n'));
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (direction === 'pull') {
|
|
81
|
+
spinner.start('Downloading remote data...');
|
|
82
|
+
if (remoteResponse.data) {
|
|
83
|
+
await (0, utils_1.writeAgentFiles)(projectRoot, remoteResponse.data);
|
|
84
|
+
}
|
|
85
|
+
spinner.succeed('Updated local files from remote');
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
spinner.start('Pushing local changes...');
|
|
89
|
+
if (localData.parameters?.length) {
|
|
90
|
+
await client.params.create({ parameters: localData.parameters });
|
|
91
|
+
}
|
|
92
|
+
if (localData.entities?.length) {
|
|
93
|
+
await client.entities.create({ entities: localData.entities });
|
|
94
|
+
}
|
|
95
|
+
if (localData.integrations?.length) {
|
|
96
|
+
await client.integrations.create({ integrations: localData.integrations });
|
|
97
|
+
}
|
|
98
|
+
if (localData.tools?.length) {
|
|
99
|
+
for (const tool of localData.tools) {
|
|
100
|
+
await client.tools.create({ tool });
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
spinner.succeed('Pushed local changes');
|
|
104
|
+
}
|
|
105
|
+
console.log(chalk_1.default.green('\n ✓ Sync complete!\n'));
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
spinner.fail('Sync failed');
|
|
109
|
+
if (error instanceof Error) {
|
|
110
|
+
console.log(chalk_1.default.red(` Error: ${error.message}`));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* validate command - Validate AUI configuration files
|
|
3
|
+
*
|
|
4
|
+
* Checks:
|
|
5
|
+
* 1. JSON syntax validity
|
|
6
|
+
* 2. Schema compliance
|
|
7
|
+
* 3. Cross-file reference integrity (params in entities, tools, etc.)
|
|
8
|
+
*
|
|
9
|
+
* Usage: aui validate [path]
|
|
10
|
+
* Options:
|
|
11
|
+
* --verbose Show detailed output
|
|
12
|
+
*/
|
|
13
|
+
export interface ValidateOptions {
|
|
14
|
+
verbose?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Validate AUI configuration files
|
|
18
|
+
*/
|
|
19
|
+
export declare function validate(targetPath?: string, options?: ValidateOptions): Promise<boolean>;
|
|
20
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAkKnG"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* validate command - Validate AUI configuration files
|
|
4
|
+
*
|
|
5
|
+
* Checks:
|
|
6
|
+
* 1. JSON syntax validity
|
|
7
|
+
* 2. Schema compliance
|
|
8
|
+
* 3. Cross-file reference integrity (params in entities, tools, etc.)
|
|
9
|
+
*
|
|
10
|
+
* Usage: aui validate [path]
|
|
11
|
+
* Options:
|
|
12
|
+
* --verbose Show detailed output
|
|
13
|
+
*/
|
|
14
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
+
var ownKeys = function(o) {
|
|
32
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
+
var ar = [];
|
|
34
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
+
return ar;
|
|
36
|
+
};
|
|
37
|
+
return ownKeys(o);
|
|
38
|
+
};
|
|
39
|
+
return function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
})();
|
|
47
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
48
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
49
|
+
};
|
|
50
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
+
exports.validate = validate;
|
|
52
|
+
const path = __importStar(require("path"));
|
|
53
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
54
|
+
const config_1 = require("../config");
|
|
55
|
+
const utils_1 = require("../utils");
|
|
56
|
+
/**
|
|
57
|
+
* Validate AUI configuration files
|
|
58
|
+
*/
|
|
59
|
+
async function validate(targetPath, options = {}) {
|
|
60
|
+
const projectRoot = targetPath || (0, config_1.findProjectRoot)() || process.cwd();
|
|
61
|
+
console.log(chalk_1.default.blue(` Validating AUI configuration in ${projectRoot}...\n`));
|
|
62
|
+
// Find all .aui.json files
|
|
63
|
+
const files = await (0, utils_1.findAuiFiles)(projectRoot);
|
|
64
|
+
if (files.length === 0) {
|
|
65
|
+
console.log(chalk_1.default.yellow(' No .aui.json files found'));
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
console.log(` Found ${files.length} configuration file(s)\n`);
|
|
69
|
+
const issues = [];
|
|
70
|
+
let parseErrors = 0;
|
|
71
|
+
// Step 1: Parse all files and check JSON syntax
|
|
72
|
+
for (const file of files) {
|
|
73
|
+
const relativePath = path.relative(projectRoot, file);
|
|
74
|
+
if (options.verbose) {
|
|
75
|
+
console.log(chalk_1.default.gray(` Parsing ${relativePath}...`));
|
|
76
|
+
}
|
|
77
|
+
const parsed = (0, utils_1.parseAuiFile)(file);
|
|
78
|
+
if (!parsed) {
|
|
79
|
+
issues.push({
|
|
80
|
+
type: 'error',
|
|
81
|
+
file: relativePath,
|
|
82
|
+
message: 'Invalid JSON syntax'
|
|
83
|
+
});
|
|
84
|
+
parseErrors++;
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
// Check for required top-level keys
|
|
88
|
+
const hasKnownKey = ['agent', 'general_settings', 'parameters', 'entities', 'integrations', 'tool', 'rules']
|
|
89
|
+
.some(key => key in parsed);
|
|
90
|
+
if (!hasKnownKey) {
|
|
91
|
+
issues.push({
|
|
92
|
+
type: 'warning',
|
|
93
|
+
file: relativePath,
|
|
94
|
+
message: 'No recognized AUI configuration key found (expected: general_settings, parameters, entities, integrations, tool, or rules)'
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
// Validate general_settings file (v2 format)
|
|
98
|
+
if (parsed.general_settings) {
|
|
99
|
+
const gs = parsed.general_settings;
|
|
100
|
+
if (!gs.name) {
|
|
101
|
+
issues.push({ type: 'warning', file: relativePath, path: 'general_settings.name', message: 'Agent name is empty' });
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// Validate agent file (v1 format - backwards compatible)
|
|
105
|
+
if (parsed.agent) {
|
|
106
|
+
const agent = parsed.agent;
|
|
107
|
+
if (!agent.code) {
|
|
108
|
+
issues.push({ type: 'error', file: relativePath, path: 'agent.code', message: 'Agent code is required' });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Validate parameters
|
|
112
|
+
if (parsed.parameters && Array.isArray(parsed.parameters)) {
|
|
113
|
+
for (const param of parsed.parameters) {
|
|
114
|
+
if (!param.code) {
|
|
115
|
+
issues.push({ type: 'error', file: relativePath, message: 'Parameter missing required "code" field' });
|
|
116
|
+
}
|
|
117
|
+
if (!param.type) {
|
|
118
|
+
issues.push({ type: 'error', file: relativePath, path: `parameters[${param.code}]`, message: 'Parameter missing required "type" field' });
|
|
119
|
+
}
|
|
120
|
+
if (!param.description && param.description !== '') {
|
|
121
|
+
issues.push({ type: 'warning', file: relativePath, path: `parameters[${param.code}]`, message: 'Parameter missing "description" field' });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Validate tool
|
|
126
|
+
if (parsed.tool) {
|
|
127
|
+
const tool = parsed.tool;
|
|
128
|
+
if (!tool.code) {
|
|
129
|
+
issues.push({ type: 'error', file: relativePath, path: 'tool.code', message: 'Tool code is required' });
|
|
130
|
+
}
|
|
131
|
+
if (!tool.objective) {
|
|
132
|
+
issues.push({ type: 'error', file: relativePath, path: 'tool.objective', message: 'Tool objective is required' });
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// Validate integrations
|
|
136
|
+
if (parsed.integrations && Array.isArray(parsed.integrations)) {
|
|
137
|
+
for (const integration of parsed.integrations) {
|
|
138
|
+
if (!integration.code) {
|
|
139
|
+
issues.push({ type: 'error', file: relativePath, message: 'Integration missing required "code" field' });
|
|
140
|
+
}
|
|
141
|
+
if (!integration.type) {
|
|
142
|
+
issues.push({ type: 'error', file: relativePath, path: `integrations[${integration.code}]`, message: 'Integration missing required "type" field' });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// Validate entities
|
|
147
|
+
if (parsed.entities && Array.isArray(parsed.entities)) {
|
|
148
|
+
for (const entity of parsed.entities) {
|
|
149
|
+
if (!entity.name && !entity.code) {
|
|
150
|
+
issues.push({ type: 'error', file: relativePath, message: 'Entity missing "name" field' });
|
|
151
|
+
}
|
|
152
|
+
const entityParams = entity.parameters || entity.params;
|
|
153
|
+
if (!entityParams || !Array.isArray(entityParams)) {
|
|
154
|
+
issues.push({ type: 'warning', file: relativePath, path: `entities[${entity.name || entity.code}]`, message: 'Entity has no "parameters" array' });
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Step 2: Cross-reference validation
|
|
160
|
+
const agentData = await (0, utils_1.readAgentFiles)(projectRoot);
|
|
161
|
+
const refIssues = (0, utils_1.validateReferences)(agentData);
|
|
162
|
+
issues.push(...refIssues);
|
|
163
|
+
// ─── Report Results ───
|
|
164
|
+
const errors = issues.filter(i => i.type === 'error');
|
|
165
|
+
const warnings = issues.filter(i => i.type === 'warning');
|
|
166
|
+
if (errors.length > 0) {
|
|
167
|
+
console.log(chalk_1.default.red(' Errors:'));
|
|
168
|
+
for (const error of errors) {
|
|
169
|
+
console.log(` ${chalk_1.default.red('✗')} ${error.file || ''}${error.path ? ` → ${error.path}` : ''}`);
|
|
170
|
+
console.log(` ${error.message}`);
|
|
171
|
+
}
|
|
172
|
+
console.log('');
|
|
173
|
+
}
|
|
174
|
+
if (warnings.length > 0) {
|
|
175
|
+
console.log(chalk_1.default.yellow(' Warnings:'));
|
|
176
|
+
for (const warning of warnings) {
|
|
177
|
+
console.log(` ${chalk_1.default.yellow('!')} ${warning.file || ''}${warning.path ? ` → ${warning.path}` : ''}`);
|
|
178
|
+
console.log(` ${warning.message}`);
|
|
179
|
+
}
|
|
180
|
+
console.log('');
|
|
181
|
+
}
|
|
182
|
+
// Summary
|
|
183
|
+
console.log(' Summary:');
|
|
184
|
+
console.log(` Parameters: ${agentData.parameters?.length || 0}`);
|
|
185
|
+
console.log(` Entities: ${agentData.entities?.length || 0}`);
|
|
186
|
+
console.log(` Tools: ${agentData.tools?.length || 0}`);
|
|
187
|
+
console.log(` Integrations: ${agentData.integrations?.length || 0}`);
|
|
188
|
+
console.log(` Errors: ${errors.length}`);
|
|
189
|
+
console.log(` Warnings: ${warnings.length}`);
|
|
190
|
+
if (errors.length === 0) {
|
|
191
|
+
console.log(chalk_1.default.green('\n ✓ Validation passed!'));
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
console.log(chalk_1.default.red(`\n ✗ Validation failed with ${errors.length} error(s)`));
|
|
195
|
+
}
|
|
196
|
+
console.log('');
|
|
197
|
+
return errors.length === 0;
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration management for AUI Agent Builder
|
|
3
|
+
*
|
|
4
|
+
* Configuration is layered (highest priority first):
|
|
5
|
+
* 1. Environment variables (AUI_AUTH_TOKEN, AUI_API_URL, etc.)
|
|
6
|
+
* 2. Project config (.auirc in project root)
|
|
7
|
+
* 3. User session (~/.aui/session.json - auth tokens from login)
|
|
8
|
+
* 4. Defaults
|
|
9
|
+
*/
|
|
10
|
+
export type AUIEnvironment = 'staging' | 'production';
|
|
11
|
+
export declare const API_URLS: Record<AUIEnvironment, string>;
|
|
12
|
+
export interface ProjectConfig {
|
|
13
|
+
/** Agent code for this project */
|
|
14
|
+
agent_code?: string;
|
|
15
|
+
/** Agent ID (backend identifier) */
|
|
16
|
+
agent_id?: string;
|
|
17
|
+
/** Backend environment */
|
|
18
|
+
environment?: AUIEnvironment;
|
|
19
|
+
/** Account ID */
|
|
20
|
+
account_id?: string;
|
|
21
|
+
/** Organization ID */
|
|
22
|
+
organization_id?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface UserSession {
|
|
25
|
+
/** JWT auth token from login */
|
|
26
|
+
auth_token: string;
|
|
27
|
+
/** User ID */
|
|
28
|
+
user_id: string;
|
|
29
|
+
/** User email */
|
|
30
|
+
email: string;
|
|
31
|
+
/** User display name */
|
|
32
|
+
name?: string;
|
|
33
|
+
/** Organization ID */
|
|
34
|
+
organization_id?: string;
|
|
35
|
+
/** Account ID (selected project) */
|
|
36
|
+
account_id?: string;
|
|
37
|
+
/** Account display name */
|
|
38
|
+
account_name?: string;
|
|
39
|
+
/** Environment */
|
|
40
|
+
environment: AUIEnvironment;
|
|
41
|
+
/** API base URL */
|
|
42
|
+
api_url: string;
|
|
43
|
+
/** When the session was created */
|
|
44
|
+
created_at: string;
|
|
45
|
+
/** When the token expires (from JWT exp claim) */
|
|
46
|
+
expires_at?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface ResolvedConfig {
|
|
49
|
+
/** JWT auth token */
|
|
50
|
+
authToken?: string;
|
|
51
|
+
/** API base URL */
|
|
52
|
+
apiUrl: string;
|
|
53
|
+
/** Environment (staging/production) */
|
|
54
|
+
environment: AUIEnvironment;
|
|
55
|
+
/** Agent code for this project */
|
|
56
|
+
agentCode?: string;
|
|
57
|
+
/** Agent ID */
|
|
58
|
+
agentId?: string;
|
|
59
|
+
/** Project root directory */
|
|
60
|
+
projectRoot?: string;
|
|
61
|
+
/** Account ID */
|
|
62
|
+
accountId?: string;
|
|
63
|
+
/** Organization ID */
|
|
64
|
+
organizationId?: string;
|
|
65
|
+
/** User email */
|
|
66
|
+
userEmail?: string;
|
|
67
|
+
/** Whether user is authenticated */
|
|
68
|
+
isAuthenticated: boolean;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Find the nearest project root by looking for .auirc or agent.aui.json
|
|
72
|
+
*/
|
|
73
|
+
export declare function findProjectRoot(startDir?: string): string | null;
|
|
74
|
+
/**
|
|
75
|
+
* Load project configuration from .auirc
|
|
76
|
+
*/
|
|
77
|
+
export declare function loadProjectConfig(projectRoot?: string): ProjectConfig | null;
|
|
78
|
+
/**
|
|
79
|
+
* Save project configuration to .auirc
|
|
80
|
+
*/
|
|
81
|
+
export declare function saveProjectConfig(config: ProjectConfig, targetDir?: string): void;
|
|
82
|
+
/**
|
|
83
|
+
* Load user session from ~/.aui/session.json
|
|
84
|
+
*/
|
|
85
|
+
export declare function loadSession(): UserSession | null;
|
|
86
|
+
/**
|
|
87
|
+
* Save user session to ~/.aui/session.json
|
|
88
|
+
*/
|
|
89
|
+
export declare function saveSession(session: UserSession): void;
|
|
90
|
+
/**
|
|
91
|
+
* Clear user session (logout)
|
|
92
|
+
*/
|
|
93
|
+
export declare function clearSession(): void;
|
|
94
|
+
/**
|
|
95
|
+
* Decode JWT to extract claims (without verification - just for reading expiry/user info)
|
|
96
|
+
*/
|
|
97
|
+
export declare function decodeJwt(token: string): Record<string, unknown> | null;
|
|
98
|
+
/**
|
|
99
|
+
* Get fully resolved configuration from all sources
|
|
100
|
+
*/
|
|
101
|
+
export declare function getConfig(projectRoot?: string): ResolvedConfig;
|
|
102
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,YAAY,CAAC;AAEtD,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAGnD,CAAC;AAIF,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,iBAAiB;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAID,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,WAAW,EAAE,cAAc,CAAC;IAC5B,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,WAAW,EAAE,cAAc,CAAC;IAC5B,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,eAAe,EAAE,OAAO,CAAC;CAC1B;AAkBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAchE;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAa5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAIjF;AAID;;GAEG;AACH,wBAAgB,WAAW,IAAI,WAAW,GAAG,IAAI,CAmBhD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAGtD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAInC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CASvE;AAID;;GAEG;AACH,wBAAgB,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,cAAc,CAgD9D"}
|