arkna 1.3.2 → 2.0.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/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +276 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +2 -5
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +47 -116
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +87 -114
- package/dist/commands/verify.js.map +1 -1
- package/dist/index.js +6 -14
- package/dist/index.js.map +1 -1
- package/dist/lib/arkna-dir.d.ts +4 -86
- package/dist/lib/arkna-dir.d.ts.map +1 -1
- package/dist/lib/arkna-dir.js +6 -110
- package/dist/lib/arkna-dir.js.map +1 -1
- package/dist/lib/connectivity.d.ts +7 -50
- package/dist/lib/connectivity.d.ts.map +1 -1
- package/dist/lib/connectivity.js +39 -255
- package/dist/lib/connectivity.js.map +1 -1
- package/dist/lib/detect.d.ts +35 -0
- package/dist/lib/detect.d.ts.map +1 -0
- package/dist/lib/detect.js +335 -0
- package/dist/lib/detect.js.map +1 -0
- package/dist/lib/ui.js +2 -2
- package/dist/lib/ui.js.map +1 -1
- package/package.json +8 -7
- package/dist/commands/connect.d.ts +0 -3
- package/dist/commands/connect.d.ts.map +0 -1
- package/dist/commands/connect.js +0 -582
- package/dist/commands/connect.js.map +0 -1
- package/dist/commands/pull-governance.d.ts +0 -3
- package/dist/commands/pull-governance.d.ts.map +0 -1
- package/dist/commands/pull-governance.js +0 -116
- package/dist/commands/pull-governance.js.map +0 -1
- package/dist/commands/push-manifest.d.ts +0 -3
- package/dist/commands/push-manifest.d.ts.map +0 -1
- package/dist/commands/push-manifest.js +0 -138
- package/dist/commands/push-manifest.js.map +0 -1
- package/dist/commands/sync.d.ts +0 -3
- package/dist/commands/sync.d.ts.map +0 -1
- package/dist/commands/sync.js +0 -65
- package/dist/commands/sync.js.map +0 -1
- package/dist/commands/test.d.ts +0 -3
- package/dist/commands/test.d.ts.map +0 -1
- package/dist/commands/test.js +0 -142
- package/dist/commands/test.js.map +0 -1
- package/dist/lib/platforms.d.ts +0 -45
- package/dist/lib/platforms.d.ts.map +0 -1
- package/dist/lib/platforms.js +0 -638
- package/dist/lib/platforms.js.map +0 -1
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.pullGovernanceCommand = void 0;
|
|
37
|
-
const commander_1 = require("commander");
|
|
38
|
-
const fs = __importStar(require("fs"));
|
|
39
|
-
const path = __importStar(require("path"));
|
|
40
|
-
const ui_1 = require("../lib/ui");
|
|
41
|
-
const connectivity_1 = require("../lib/connectivity");
|
|
42
|
-
const arkna_dir_1 = require("../lib/arkna-dir");
|
|
43
|
-
exports.pullGovernanceCommand = new commander_1.Command('pull-governance')
|
|
44
|
-
.description('Pull governance profile from the ARKNA gateway')
|
|
45
|
-
.option('-d, --dir <dir>', 'Base directory containing .arkna/ (default: current directory)')
|
|
46
|
-
.action(async (options) => {
|
|
47
|
-
const baseDir = options.dir || process.cwd();
|
|
48
|
-
(0, ui_1.miniBanner)('Pull Governance');
|
|
49
|
-
// Read existing enrollment
|
|
50
|
-
const config = (0, arkna_dir_1.readArknaConfig)(baseDir);
|
|
51
|
-
if (!config) {
|
|
52
|
-
(0, ui_1.errorBox)('Not enrolled', [
|
|
53
|
-
(0, ui_1.dim)('No .arkna/config.json found.'),
|
|
54
|
-
(0, ui_1.dim)('Run `arkna connect` to enroll your agent first.'),
|
|
55
|
-
]);
|
|
56
|
-
process.exit(1);
|
|
57
|
-
}
|
|
58
|
-
const env = (0, arkna_dir_1.readArknaEnv)(baseDir);
|
|
59
|
-
if (!env) {
|
|
60
|
-
(0, ui_1.errorBox)('Missing credentials', [
|
|
61
|
-
(0, ui_1.dim)('No .arkna/.env found or missing ARKNA_TOKEN/ARKNA_URL.'),
|
|
62
|
-
(0, ui_1.dim)('Run `arkna connect` to re-enroll.'),
|
|
63
|
-
]);
|
|
64
|
-
process.exit(1);
|
|
65
|
-
}
|
|
66
|
-
(0, ui_1.kvLine)('Agent', `${config.agent_name} (${config.agent_id.substring(0, 8)}...)`);
|
|
67
|
-
(0, ui_1.kvLine)('Gateway', config.gateway_url);
|
|
68
|
-
(0, ui_1.kvLine)('Current version', config.config_version);
|
|
69
|
-
console.log('');
|
|
70
|
-
// Pull governance profile
|
|
71
|
-
const spinner = (0, ui_1.startSpinner)('Pulling governance profile...');
|
|
72
|
-
const result = await (0, connectivity_1.pullGovernance)(env.url, env.token);
|
|
73
|
-
spinner.stop();
|
|
74
|
-
if (!result.success) {
|
|
75
|
-
(0, ui_1.errorBox)('Governance pull failed', [
|
|
76
|
-
result.error || 'Unknown error',
|
|
77
|
-
(0, ui_1.dim)('Check your connection and token.'),
|
|
78
|
-
]);
|
|
79
|
-
process.exit(1);
|
|
80
|
-
}
|
|
81
|
-
const data = result.data;
|
|
82
|
-
// Write governance.json
|
|
83
|
-
const arknaDir = path.join(baseDir, '.arkna');
|
|
84
|
-
fs.mkdirSync(arknaDir, { recursive: true });
|
|
85
|
-
const governance = {
|
|
86
|
-
risk_tier: data.agent?.risk_tier,
|
|
87
|
-
constitution: data.constitution,
|
|
88
|
-
overlay: data.overlay || {},
|
|
89
|
-
permissions: data.permissions,
|
|
90
|
-
policies: data.policies,
|
|
91
|
-
kill_switch: data.kill_switch,
|
|
92
|
-
config_version: data.config_version,
|
|
93
|
-
pulled_at: new Date().toISOString(),
|
|
94
|
-
};
|
|
95
|
-
fs.writeFileSync(path.join(arknaDir, 'governance.json'), JSON.stringify(governance, null, 2) + '\n');
|
|
96
|
-
// Also update tools.json + policy.json for compatibility (using the envelope shape)
|
|
97
|
-
const envelope = data;
|
|
98
|
-
const { updated, previousVersion, newVersion } = (0, arkna_dir_1.updateArknaDir)(envelope, baseDir);
|
|
99
|
-
const files = ['governance.json'];
|
|
100
|
-
if (updated) {
|
|
101
|
-
files.push('tools.json', 'policy.json');
|
|
102
|
-
(0, connectivity_1.resultLine)(true, 'Config updated', `${previousVersion} → ${newVersion}`);
|
|
103
|
-
}
|
|
104
|
-
const overlayKeys = Object.keys(data.overlay || {}).filter(k => data.overlay[k] !== undefined && data.overlay[k] !== null);
|
|
105
|
-
const policyCount = Array.isArray(data.policies) ? data.policies.length : 0;
|
|
106
|
-
const constitutionCount = Array.isArray(data.constitution) ? data.constitution.length : 0;
|
|
107
|
-
(0, ui_1.fileTree)('.arkna', files);
|
|
108
|
-
(0, ui_1.successBox)('Governance profile pulled', [
|
|
109
|
-
`${(0, ui_1.dim)('Version:')} ${data.config_version || '?'}`,
|
|
110
|
-
`${(0, ui_1.dim)('Risk tier:')} ${data.agent?.risk_tier || '?'}`,
|
|
111
|
-
`${(0, ui_1.dim)('Policies:')} ${policyCount}`,
|
|
112
|
-
`${(0, ui_1.dim)('Constitution:')} ${constitutionCount} rules`,
|
|
113
|
-
`${(0, ui_1.dim)('Overlay keys:')} ${overlayKeys.length > 0 ? overlayKeys.join(', ') : 'none'}`,
|
|
114
|
-
]);
|
|
115
|
-
});
|
|
116
|
-
//# sourceMappingURL=pull-governance.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pull-governance.js","sourceRoot":"","sources":["../../src/commands/pull-governance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"push-manifest.d.ts","sourceRoot":"","sources":["../../src/commands/push-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,eAAO,MAAM,mBAAmB,SAsE5B,CAAC"}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.pushManifestCommand = void 0;
|
|
37
|
-
const commander_1 = require("commander");
|
|
38
|
-
const fs = __importStar(require("fs"));
|
|
39
|
-
const path = __importStar(require("path"));
|
|
40
|
-
const os = __importStar(require("os"));
|
|
41
|
-
const child_process_1 = require("child_process");
|
|
42
|
-
const ui_1 = require("../lib/ui");
|
|
43
|
-
const arkna_dir_1 = require("../lib/arkna-dir");
|
|
44
|
-
const connectivity_1 = require("../lib/connectivity");
|
|
45
|
-
exports.pushManifestCommand = new commander_1.Command('push-manifest')
|
|
46
|
-
.description('Push agent manifest to the ARKNA gateway')
|
|
47
|
-
.option('-f, --file <path>', 'Path to arkna.manifest.json (auto-generates if not provided)')
|
|
48
|
-
.option('-d, --dir <dir>', 'Base directory containing .arkna/ (default: current directory)')
|
|
49
|
-
.action(async (options) => {
|
|
50
|
-
const baseDir = options.dir || process.cwd();
|
|
51
|
-
(0, ui_1.miniBanner)('Push Manifest');
|
|
52
|
-
// Read credentials
|
|
53
|
-
const env = (0, arkna_dir_1.readArknaEnv)(baseDir);
|
|
54
|
-
if (!env) {
|
|
55
|
-
(0, ui_1.errorBox)('Missing credentials', [
|
|
56
|
-
(0, ui_1.dim)('No .arkna/.env found or missing ARKNA_TOKEN/ARKNA_URL.'),
|
|
57
|
-
(0, ui_1.dim)('Run `arkna connect` to enroll your agent first.'),
|
|
58
|
-
]);
|
|
59
|
-
process.exit(1);
|
|
60
|
-
}
|
|
61
|
-
const config = (0, arkna_dir_1.readArknaConfig)(baseDir);
|
|
62
|
-
if (config) {
|
|
63
|
-
(0, ui_1.kvLine)('Agent', `${config.agent_name} (${config.agent_id.substring(0, 8)}...)`);
|
|
64
|
-
(0, ui_1.kvLine)('Gateway', config.gateway_url);
|
|
65
|
-
}
|
|
66
|
-
// Build manifest
|
|
67
|
-
let manifest;
|
|
68
|
-
if (options.file) {
|
|
69
|
-
// Read from file
|
|
70
|
-
const filePath = path.resolve(baseDir, options.file);
|
|
71
|
-
if (!fs.existsSync(filePath)) {
|
|
72
|
-
(0, ui_1.errorBox)('File not found', [filePath]);
|
|
73
|
-
process.exit(1);
|
|
74
|
-
}
|
|
75
|
-
manifest = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
|
|
76
|
-
(0, ui_1.kvLine)('Source', filePath);
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
// Try arkna.manifest.json in current dir
|
|
80
|
-
const defaultPath = path.join(baseDir, 'arkna.manifest.json');
|
|
81
|
-
if (fs.existsSync(defaultPath)) {
|
|
82
|
-
manifest = JSON.parse(fs.readFileSync(defaultPath, 'utf-8'));
|
|
83
|
-
(0, ui_1.kvLine)('Source', 'arkna.manifest.json');
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
// Auto-generate from environment
|
|
87
|
-
manifest = autoGenerateManifest(baseDir);
|
|
88
|
-
(0, ui_1.kvLine)('Source', (0, ui_1.dim)('auto-generated'));
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
console.log('');
|
|
92
|
-
// Push manifest
|
|
93
|
-
const spinner = (0, ui_1.startSpinner)('Pushing manifest...');
|
|
94
|
-
const result = await (0, connectivity_1.pushManifest)(env.url, env.token, manifest);
|
|
95
|
-
spinner.stop();
|
|
96
|
-
if (!result.success) {
|
|
97
|
-
(0, ui_1.errorBox)('Push failed', [
|
|
98
|
-
result.error || 'Unknown error',
|
|
99
|
-
(0, ui_1.dim)('Check your connection and token.'),
|
|
100
|
-
]);
|
|
101
|
-
process.exit(1);
|
|
102
|
-
}
|
|
103
|
-
(0, ui_1.successBox)('Manifest pushed', [
|
|
104
|
-
`${(0, ui_1.dim)('Agent:')} ${result.agentId || config?.agent_id || '?'}`,
|
|
105
|
-
`${(0, ui_1.dim)('Pushed:')} ${result.pushedAt || new Date().toISOString()}`,
|
|
106
|
-
`${(0, ui_1.dim)('Version:')} ${manifest.version || 'unversioned'}`,
|
|
107
|
-
]);
|
|
108
|
-
});
|
|
109
|
-
function autoGenerateManifest(baseDir) {
|
|
110
|
-
const manifest = {};
|
|
111
|
-
// Try to get git commit
|
|
112
|
-
try {
|
|
113
|
-
const commit = (0, child_process_1.execSync)('git rev-parse --short HEAD', { cwd: baseDir, encoding: 'utf-8' }).trim();
|
|
114
|
-
manifest.git_commit = commit;
|
|
115
|
-
}
|
|
116
|
-
catch {
|
|
117
|
-
// Not a git repo — skip
|
|
118
|
-
}
|
|
119
|
-
// Try to get version from package.json
|
|
120
|
-
const pkgPath = path.join(baseDir, 'package.json');
|
|
121
|
-
if (fs.existsSync(pkgPath)) {
|
|
122
|
-
try {
|
|
123
|
-
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
|
|
124
|
-
if (pkg.version)
|
|
125
|
-
manifest.version = pkg.version;
|
|
126
|
-
}
|
|
127
|
-
catch {
|
|
128
|
-
// Invalid JSON — skip
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
// Runtime info
|
|
132
|
-
manifest.runtime = {
|
|
133
|
-
platform: process.platform,
|
|
134
|
-
hostname: os.hostname(),
|
|
135
|
-
};
|
|
136
|
-
return manifest;
|
|
137
|
-
}
|
|
138
|
-
//# sourceMappingURL=push-manifest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"push-manifest.js","sourceRoot":"","sources":["../../src/commands/push-manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/sync.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,WAAW,SAgEpB,CAAC"}
|
package/dist/commands/sync.js
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.syncCommand = void 0;
|
|
4
|
-
const commander_1 = require("commander");
|
|
5
|
-
const ui_1 = require("../lib/ui");
|
|
6
|
-
const connectivity_1 = require("../lib/connectivity");
|
|
7
|
-
const arkna_dir_1 = require("../lib/arkna-dir");
|
|
8
|
-
exports.syncCommand = new commander_1.Command('sync')
|
|
9
|
-
.description('Re-pull config from the ARKNA gateway')
|
|
10
|
-
.option('-d, --dir <dir>', 'Base directory containing .arkna/ (default: current directory)')
|
|
11
|
-
.action(async (options) => {
|
|
12
|
-
const baseDir = options.dir || process.cwd();
|
|
13
|
-
(0, ui_1.miniBanner)('Sync Config');
|
|
14
|
-
// Read existing enrollment
|
|
15
|
-
const config = (0, arkna_dir_1.readArknaConfig)(baseDir);
|
|
16
|
-
if (!config) {
|
|
17
|
-
(0, ui_1.errorBox)('Not enrolled', [
|
|
18
|
-
(0, ui_1.dim)('No .arkna/config.json found.'),
|
|
19
|
-
(0, ui_1.dim)('Run `arkna connect` to enroll your agent first.'),
|
|
20
|
-
]);
|
|
21
|
-
process.exit(1);
|
|
22
|
-
}
|
|
23
|
-
const env = (0, arkna_dir_1.readArknaEnv)(baseDir);
|
|
24
|
-
if (!env) {
|
|
25
|
-
(0, ui_1.errorBox)('Missing credentials', [
|
|
26
|
-
(0, ui_1.dim)('No .arkna/.env found or missing ARKNA_TOKEN/ARKNA_URL.'),
|
|
27
|
-
(0, ui_1.dim)('Run `arkna connect` to re-enroll.'),
|
|
28
|
-
]);
|
|
29
|
-
process.exit(1);
|
|
30
|
-
}
|
|
31
|
-
(0, ui_1.kvLine)('Agent', `${config.agent_name} (${config.agent_id.substring(0, 8)}...)`);
|
|
32
|
-
(0, ui_1.kvLine)('Gateway', config.gateway_url);
|
|
33
|
-
(0, ui_1.kvLine)('Current version', config.config_version);
|
|
34
|
-
console.log('');
|
|
35
|
-
// Pull latest config
|
|
36
|
-
const spinner = (0, ui_1.startSpinner)('Pulling config...');
|
|
37
|
-
const result = await (0, connectivity_1.pullConfig)(env.url, env.token);
|
|
38
|
-
spinner.stop();
|
|
39
|
-
if (!result.success) {
|
|
40
|
-
(0, ui_1.errorBox)('Config pull failed', [
|
|
41
|
-
result.error || 'Unknown error',
|
|
42
|
-
(0, ui_1.dim)('Check your connection and token.'),
|
|
43
|
-
]);
|
|
44
|
-
process.exit(1);
|
|
45
|
-
}
|
|
46
|
-
const envelope = result.data;
|
|
47
|
-
// Update local files
|
|
48
|
-
const { updated, previousVersion, newVersion } = (0, arkna_dir_1.updateArknaDir)(envelope, baseDir);
|
|
49
|
-
if (updated) {
|
|
50
|
-
(0, connectivity_1.resultLine)(true, 'Config updated', `${previousVersion} → ${newVersion}`);
|
|
51
|
-
const toolCount = envelope.tools?.length || 0;
|
|
52
|
-
const policyCount = envelope.policies?.length || 0;
|
|
53
|
-
(0, ui_1.successBox)('Sync complete', [
|
|
54
|
-
`${(0, ui_1.dim)('Version:')} ${newVersion}`,
|
|
55
|
-
`${(0, ui_1.dim)('Tools:')} ${toolCount}`,
|
|
56
|
-
`${(0, ui_1.dim)('Policies:')} ${policyCount}`,
|
|
57
|
-
`${(0, ui_1.dim)('Files:')} tools.json, policy.json updated`,
|
|
58
|
-
]);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
(0, connectivity_1.resultLine)(true, 'Already up to date', `v${newVersion}`);
|
|
62
|
-
console.log('');
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
//# sourceMappingURL=sync.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,eAAO,MAAM,WAAW,SAgGpB,CAAC"}
|
package/dist/commands/test.js
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.testCommand = void 0;
|
|
37
|
-
const commander_1 = require("commander");
|
|
38
|
-
const fs = __importStar(require("fs"));
|
|
39
|
-
const path = __importStar(require("path"));
|
|
40
|
-
const connectivity_1 = require("../lib/connectivity");
|
|
41
|
-
const ui_1 = require("../lib/ui");
|
|
42
|
-
const arkna_dir_1 = require("../lib/arkna-dir");
|
|
43
|
-
function loadEnvFile(envPath) {
|
|
44
|
-
const vars = {};
|
|
45
|
-
if (fs.existsSync(envPath)) {
|
|
46
|
-
const lines = fs.readFileSync(envPath, 'utf-8').split('\n');
|
|
47
|
-
for (const line of lines) {
|
|
48
|
-
const match = line.match(/^([^#][^=]+)=(.+)$/);
|
|
49
|
-
if (match) {
|
|
50
|
-
vars[match[1].trim()] = match[2].trim();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return vars;
|
|
55
|
-
}
|
|
56
|
-
exports.testCommand = new commander_1.Command('test')
|
|
57
|
-
.description('Test connectivity to the ARKNA gateway')
|
|
58
|
-
.option('-u, --url <url>', 'ARKNA URL (default: from env or .env)')
|
|
59
|
-
.option('-t, --token <token>', 'Integration token (default: from env or .env)')
|
|
60
|
-
.action(async (options) => {
|
|
61
|
-
// Load from .arkna/.env first, then .env, then env vars
|
|
62
|
-
const arknaEnv = (0, arkna_dir_1.readArknaEnv)();
|
|
63
|
-
const dotEnvVars = loadEnvFile(path.join(process.cwd(), '.env'));
|
|
64
|
-
const url = options.url
|
|
65
|
-
|| process.env.ARKNA_URL
|
|
66
|
-
|| arknaEnv?.url
|
|
67
|
-
|| dotEnvVars.ARKNA_URL
|
|
68
|
-
|| 'https://api.arkna.com.au';
|
|
69
|
-
const token = options.token
|
|
70
|
-
|| process.env.ARKNA_TOKEN
|
|
71
|
-
|| arknaEnv?.token
|
|
72
|
-
|| dotEnvVars.ARKNA_TOKEN;
|
|
73
|
-
// Determine source for display
|
|
74
|
-
let source = (0, ui_1.dim)('default');
|
|
75
|
-
if (options.token)
|
|
76
|
-
source = 'CLI flag';
|
|
77
|
-
else if (process.env.ARKNA_TOKEN)
|
|
78
|
-
source = 'env var';
|
|
79
|
-
else if (arknaEnv?.token)
|
|
80
|
-
source = '.arkna/.env';
|
|
81
|
-
else if (dotEnvVars.ARKNA_TOKEN)
|
|
82
|
-
source = '.env file';
|
|
83
|
-
(0, ui_1.miniBanner)('Connectivity Test');
|
|
84
|
-
(0, ui_1.kvLine)('Gateway', url);
|
|
85
|
-
(0, ui_1.kvLine)('Token', token ? `${token.substring(0, 13)}...` : (0, ui_1.dim)('(not set)'));
|
|
86
|
-
(0, ui_1.kvLine)('Source', source);
|
|
87
|
-
console.log('');
|
|
88
|
-
if (!token) {
|
|
89
|
-
(0, ui_1.errorBox)('No token found', [
|
|
90
|
-
(0, ui_1.dim)('Set ARKNA_TOKEN in one of:'),
|
|
91
|
-
'',
|
|
92
|
-
` ${(0, ui_1.dim)('1.')} arkna connect ${(0, ui_1.dim)('\u2014 enroll and auto-configure')}`,
|
|
93
|
-
` ${(0, ui_1.dim)('2.')} .arkna/.env ${(0, ui_1.dim)('\u2014 created by arkna connect')}`,
|
|
94
|
-
` ${(0, ui_1.dim)('3.')} .env file ${(0, ui_1.dim)('\u2014 ARKNA_TOKEN=intk_...')}`,
|
|
95
|
-
` ${(0, ui_1.dim)('4.')} env var ${(0, ui_1.dim)('\u2014 export ARKNA_TOKEN=intk_...')}`,
|
|
96
|
-
` ${(0, ui_1.dim)('5.')} CLI flag ${(0, ui_1.dim)('\u2014 arkna test --token intk_...')}`,
|
|
97
|
-
]);
|
|
98
|
-
console.log('');
|
|
99
|
-
process.exit(1);
|
|
100
|
-
}
|
|
101
|
-
const results = [];
|
|
102
|
-
// 1. Health check
|
|
103
|
-
const spinner1 = (0, ui_1.startSpinner)('Checking gateway...');
|
|
104
|
-
const health = await (0, connectivity_1.checkHealth)(url);
|
|
105
|
-
spinner1.stop();
|
|
106
|
-
results.push(health);
|
|
107
|
-
(0, connectivity_1.resultLine)(health.passed, health.name, health.detail);
|
|
108
|
-
if (!health.passed) {
|
|
109
|
-
(0, connectivity_1.printSummary)(results);
|
|
110
|
-
process.exit(1);
|
|
111
|
-
}
|
|
112
|
-
// 2. Token validity (using checkTokenValid for honest reporting)
|
|
113
|
-
const spinner2 = (0, ui_1.startSpinner)('Validating token...');
|
|
114
|
-
const tokenCheck = await (0, connectivity_1.checkTokenValid)(url, token);
|
|
115
|
-
spinner2.stop();
|
|
116
|
-
results.push(tokenCheck);
|
|
117
|
-
(0, connectivity_1.resultLine)(tokenCheck.passed, tokenCheck.name, tokenCheck.detail);
|
|
118
|
-
if (!tokenCheck.passed) {
|
|
119
|
-
(0, connectivity_1.printSummary)(results);
|
|
120
|
-
process.exit(1);
|
|
121
|
-
}
|
|
122
|
-
// 3. Dry run (only if agent is registered)
|
|
123
|
-
if (tokenCheck.agentRegistered) {
|
|
124
|
-
const spinner3 = (0, ui_1.startSpinner)('Testing policy pipeline...');
|
|
125
|
-
const dryRun = await (0, connectivity_1.checkDryRun)(url, token);
|
|
126
|
-
spinner3.stop();
|
|
127
|
-
results.push(dryRun);
|
|
128
|
-
(0, connectivity_1.resultLine)(dryRun.passed, dryRun.name, dryRun.detail);
|
|
129
|
-
// 4. Config pull
|
|
130
|
-
if (dryRun.passed) {
|
|
131
|
-
const spinner4 = (0, ui_1.startSpinner)('Checking config pull...');
|
|
132
|
-
const configCheck = await (0, connectivity_1.checkConfigPull)(url, token);
|
|
133
|
-
spinner4.stop();
|
|
134
|
-
results.push(configCheck);
|
|
135
|
-
(0, connectivity_1.resultLine)(configCheck.passed, configCheck.name, configCheck.detail);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
(0, connectivity_1.printSummary)(results);
|
|
139
|
-
const allPassed = results.every(r => r.passed);
|
|
140
|
-
process.exit(allPassed ? 0 : 1);
|
|
141
|
-
});
|
|
142
|
-
//# sourceMappingURL=test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,uCAAyB;AACzB,2CAA6B;AAC7B,sDAAuI;AACvI,kCAA4E;AAC5E,gDAAgD;AAEhD,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC/C,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEY,QAAA,WAAW,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,iBAAiB,EAAE,uCAAuC,CAAC;KAClE,MAAM,CAAC,qBAAqB,EAAE,+CAA+C,CAAC;KAC9E,MAAM,CAAC,KAAK,EAAE,OAAyC,EAAE,EAAE;IAC1D,wDAAwD;IACxD,MAAM,QAAQ,GAAG,IAAA,wBAAY,GAAE,CAAC;IAChC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAEjE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG;WAClB,OAAO,CAAC,GAAG,CAAC,SAAS;WACrB,QAAQ,EAAE,GAAG;WACb,UAAU,CAAC,SAAS;WACpB,0BAA0B,CAAC;IAEhC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;WACtB,OAAO,CAAC,GAAG,CAAC,WAAW;WACvB,QAAQ,EAAE,KAAK;WACf,UAAU,CAAC,WAAW,CAAC;IAE5B,+BAA+B;IAC/B,IAAI,MAAM,GAAG,IAAA,QAAG,EAAC,SAAS,CAAC,CAAC;IAC5B,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,GAAG,UAAU,CAAC;SAClC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW;QAAE,MAAM,GAAG,SAAS,CAAC;SAChD,IAAI,QAAQ,EAAE,KAAK;QAAE,MAAM,GAAG,aAAa,CAAC;SAC5C,IAAI,UAAU,CAAC,WAAW;QAAE,MAAM,GAAG,WAAW,CAAC;IAEtD,IAAA,eAAU,EAAC,mBAAmB,CAAC,CAAC;IAEhC,IAAA,WAAM,EAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACvB,IAAA,WAAM,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,QAAG,EAAC,WAAW,CAAC,CAAC,CAAC;IAC3E,IAAA,WAAM,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAA,aAAQ,EAAC,gBAAgB,EAAE;YACzB,IAAA,QAAG,EAAC,4BAA4B,CAAC;YACjC,EAAE;YACF,KAAK,IAAA,QAAG,EAAC,IAAI,CAAC,kBAAkB,IAAA,QAAG,EAAC,kCAAkC,CAAC,EAAE;YACzE,KAAK,IAAA,QAAG,EAAC,IAAI,CAAC,kBAAkB,IAAA,QAAG,EAAC,iCAAiC,CAAC,EAAE;YACxE,KAAK,IAAA,QAAG,EAAC,IAAI,CAAC,kBAAkB,IAAA,QAAG,EAAC,6BAA6B,CAAC,EAAE;YACpE,KAAK,IAAA,QAAG,EAAC,IAAI,CAAC,iBAAiB,IAAA,QAAG,EAAC,oCAAoC,CAAC,EAAE;YAC1E,KAAK,IAAA,QAAG,EAAC,IAAI,CAAC,iBAAiB,IAAA,QAAG,EAAC,oCAAoC,CAAC,EAAE;SAC3E,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,kBAAkB;IAClB,MAAM,QAAQ,GAAG,IAAA,iBAAY,EAAC,qBAAqB,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAW,EAAC,GAAG,CAAC,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,IAAA,yBAAU,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEtD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,IAAA,2BAAY,EAAC,OAAO,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iEAAiE;IACjE,MAAM,QAAQ,GAAG,IAAA,iBAAY,EAAC,qBAAqB,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,MAAM,IAAA,8BAAe,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrD,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzB,IAAA,yBAAU,EAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAElE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACvB,IAAA,2BAAY,EAAC,OAAO,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,2CAA2C;IAC3C,IAAI,UAAU,CAAC,eAAe,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAA,iBAAY,EAAC,4BAA4B,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAW,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7C,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,IAAA,yBAAU,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAEtD,iBAAiB;QACjB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,IAAA,iBAAY,EAAC,yBAAyB,CAAC,CAAC;YACzD,MAAM,WAAW,GAAG,MAAM,IAAA,8BAAe,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACtD,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1B,IAAA,yBAAU,EAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,IAAA,2BAAY,EAAC,OAAO,CAAC,CAAC;IAEtB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC"}
|
package/dist/lib/platforms.d.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
export interface DetectionResult {
|
|
2
|
-
platform: string;
|
|
3
|
-
confidence: 'certain' | 'likely' | 'guessed';
|
|
4
|
-
evidence: string;
|
|
5
|
-
configFile?: string;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Auto-detect the agent platform by scanning for marker files in `dir`.
|
|
9
|
-
* Returns null if nothing is detected.
|
|
10
|
-
*/
|
|
11
|
-
export declare function detectPlatform(dir: string): DetectionResult | null;
|
|
12
|
-
/**
|
|
13
|
-
* Find an OpenClaw config YAML in `dir`.
|
|
14
|
-
* Looks for YAML files with connectors/startup_hooks/tool_routing keys,
|
|
15
|
-
* or common names like agent.yaml, openclaw.yaml, config.yaml.
|
|
16
|
-
*/
|
|
17
|
-
export declare function findOpenClawConfig(dir: string): string | null;
|
|
18
|
-
export interface DetectedAgent {
|
|
19
|
-
name: string;
|
|
20
|
-
path: string;
|
|
21
|
-
platform: string;
|
|
22
|
-
confidence: 'certain' | 'likely' | 'guessed';
|
|
23
|
-
evidence: string;
|
|
24
|
-
configFile?: string;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Detect all agents in `dir`.
|
|
28
|
-
* - If CWD itself is an agent (certain/likely), return just that one (don't scan subdirs).
|
|
29
|
-
* - Otherwise, scan immediate subdirectories for agents (certain/likely only).
|
|
30
|
-
* Returns empty array if nothing detected.
|
|
31
|
-
*/
|
|
32
|
-
export declare function detectAgents(dir: string): DetectedAgent[];
|
|
33
|
-
export interface WireResult {
|
|
34
|
-
success: boolean;
|
|
35
|
-
alreadyConfigured?: boolean;
|
|
36
|
-
wrapperPath?: string;
|
|
37
|
-
patch?: string;
|
|
38
|
-
error?: string;
|
|
39
|
-
}
|
|
40
|
-
export declare function wireOpenClaw(configPath: string, url: string, agentName: string): WireResult;
|
|
41
|
-
export declare function getOpenClawYamlBlock(agentName: string): string;
|
|
42
|
-
export declare function wireCrewAI(outputDir: string, agentName: string): WireResult;
|
|
43
|
-
export declare function wireLangChain(outputDir: string, agentName: string): WireResult;
|
|
44
|
-
export declare function getCustomPatch(agentName: string): string;
|
|
45
|
-
//# sourceMappingURL=platforms.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platforms.d.ts","sourceRoot":"","sources":["../../src/lib/platforms.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAuDlE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuC7D;AAgDD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,EAAE,CA6CzD;AAID,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,UAAU,CAsEZ;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAwC9D;AAID,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,UAAU,CAsIZ;AAID,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,UAAU,CA8HZ;AAID,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAoCxD"}
|