agenticpool 1.0.3 → 1.0.5
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/LICENSE +1 -0
- package/dist/api/ApiClient.d.ts +24 -0
- package/dist/api/ApiClient.js +126 -0
- package/dist/api/index.d.ts +1 -0
- package/dist/api/index.js +6 -0
- package/dist/commands/identities.js +2 -2
- package/dist/commands/networks.js +4 -2
- package/dist/config/ConfigManager.d.ts +1 -0
- package/dist/config/ConfigManager.js +36 -15
- package/dist/datamodel/index.d.ts +3 -0
- package/dist/datamodel/index.js +20 -0
- package/dist/datamodel/models/humans.d.ts +81 -0
- package/dist/datamodel/models/humans.js +3 -0
- package/dist/datamodel/models/index.d.ts +109 -0
- package/dist/datamodel/models/index.js +3 -0
- package/dist/datamodel/toon/index.d.ts +5 -0
- package/dist/datamodel/toon/index.js +39 -0
- package/dist/index.js +3 -2
- package/package.json +6 -2
- package/AGENTS.md +0 -56
- package/agenticpool-cli-1.0.0.tgz +0 -0
- package/jest.config.js +0 -23
- package/src/auth/AuthHelper.ts +0 -138
- package/src/commands/auth.ts +0 -186
- package/src/commands/config.ts +0 -51
- package/src/commands/connections.ts +0 -261
- package/src/commands/contacts.ts +0 -221
- package/src/commands/conversations.ts +0 -218
- package/src/commands/humans.ts +0 -124
- package/src/commands/identities.ts +0 -143
- package/src/commands/index.ts +0 -10
- package/src/commands/messages.ts +0 -72
- package/src/commands/networks.ts +0 -320
- package/src/commands/profile.ts +0 -184
- package/src/config/ConfigManager.ts +0 -171
- package/src/config/index.ts +0 -1
- package/src/index.ts +0 -35
- package/src/limits/LimitsManager.ts +0 -76
- package/tests/ApiClient.test.ts +0 -99
- package/tests/ConfigManager.test.ts +0 -41
- package/tests/LimitsManager.test.ts +0 -169
- package/tests/__mocks__/@toon-format/toon.ts +0 -27
- package/tests/integration/cleanup.ts +0 -187
- package/tests/integration/e2e-cli.test.ts +0 -465
- package/tests/integration/e2e.test.ts +0 -480
- package/tests/integration/run-e2e.sh +0 -44
- package/tests/integration/setup.ts +0 -188
- package/tsconfig.json +0 -28
|
@@ -32,11 +32,15 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
35
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
39
|
exports.configManager = exports.ConfigManager = void 0;
|
|
37
40
|
const path = __importStar(require("path"));
|
|
38
41
|
const os = __importStar(require("os"));
|
|
39
42
|
const fs = __importStar(require("fs-extra"));
|
|
43
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
40
44
|
const CONFIG_DIR = path.join(os.homedir(), '.agenticpool');
|
|
41
45
|
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');
|
|
42
46
|
const CREDENTIALS_DIR = path.join(CONFIG_DIR, 'credentials');
|
|
@@ -46,24 +50,41 @@ const NETWORKS_FILE = path.join(CONFIG_DIR, 'networks.md');
|
|
|
46
50
|
class ConfigManager {
|
|
47
51
|
constructor() {
|
|
48
52
|
this.initialized = false;
|
|
53
|
+
this.initializing = false;
|
|
49
54
|
}
|
|
50
55
|
async init() {
|
|
51
|
-
if (this.initialized)
|
|
56
|
+
if (this.initialized || this.initializing)
|
|
52
57
|
return;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
await
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
58
|
+
this.initializing = true;
|
|
59
|
+
console.log(chalk_1.default.gray(`[DEBUG] Initializing ConfigManager. Path: ${CONFIG_DIR}`));
|
|
60
|
+
try {
|
|
61
|
+
await fs.ensureDir(CONFIG_DIR);
|
|
62
|
+
await fs.ensureDir(CREDENTIALS_DIR);
|
|
63
|
+
await fs.ensureDir(PROFILES_DIR);
|
|
64
|
+
await fs.ensureDir(CACHE_DIR);
|
|
65
|
+
if (!(await fs.pathExists(CONFIG_FILE))) {
|
|
66
|
+
console.log(chalk_1.default.gray('[DEBUG] Creating default config file'));
|
|
67
|
+
const defaultConfig = {
|
|
68
|
+
apiUrl: 'https://api.agenticpool.net',
|
|
69
|
+
defaultFormat: 'toon'
|
|
70
|
+
};
|
|
71
|
+
// Use fs directly to avoid recursion
|
|
72
|
+
await fs.writeJson(CONFIG_FILE, defaultConfig, { spaces: 2 });
|
|
73
|
+
}
|
|
74
|
+
if (!(await fs.pathExists(NETWORKS_FILE))) {
|
|
75
|
+
console.log(chalk_1.default.gray('[DEBUG] Creating default networks file'));
|
|
76
|
+
await fs.writeFile(NETWORKS_FILE, '# Registered AgenticPool Networks\n\n');
|
|
77
|
+
}
|
|
78
|
+
this.initialized = true;
|
|
79
|
+
console.log(chalk_1.default.gray('[DEBUG] ConfigManager initialized'));
|
|
62
80
|
}
|
|
63
|
-
|
|
64
|
-
|
|
81
|
+
catch (e) {
|
|
82
|
+
console.log(chalk_1.default.red(`[DEBUG] ConfigManager init failed: ${e instanceof Error ? e.message : 'Unknown'}`));
|
|
83
|
+
throw e;
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
this.initializing = false;
|
|
65
87
|
}
|
|
66
|
-
this.initialized = true;
|
|
67
88
|
}
|
|
68
89
|
async getGlobalConfig() {
|
|
69
90
|
await this.init();
|
|
@@ -71,6 +92,7 @@ class ConfigManager {
|
|
|
71
92
|
}
|
|
72
93
|
async saveGlobalConfig(config) {
|
|
73
94
|
await this.init();
|
|
95
|
+
console.log(chalk_1.default.gray('[DEBUG] Saving global config'));
|
|
74
96
|
await fs.writeJson(CONFIG_FILE, config, { spaces: 2 });
|
|
75
97
|
}
|
|
76
98
|
async setApiUrl(url) {
|
|
@@ -101,7 +123,6 @@ class ConfigManager {
|
|
|
101
123
|
const lines = content.split('\n');
|
|
102
124
|
const entryPrefix = `- ${networkId}`;
|
|
103
125
|
const fullEntry = `- ${networkId}${reason ? ` | Reason: ${reason}` : ''}`;
|
|
104
|
-
// Check if network already exists, if so update the line
|
|
105
126
|
const existingIndex = lines.findIndex(line => line.trim().startsWith(entryPrefix));
|
|
106
127
|
if (existingIndex !== -1) {
|
|
107
128
|
lines[existingIndex] = fullEntry;
|
|
@@ -160,4 +181,4 @@ class ConfigManager {
|
|
|
160
181
|
}
|
|
161
182
|
exports.ConfigManager = ConfigManager;
|
|
162
183
|
exports.configManager = new ConfigManager();
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvQ29uZmlnTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0IsdUNBQXlCO0FBQ3pCLDZDQUErQjtBQUcvQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQztBQUMzRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUN6RCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUM3RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN2RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNqRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztBQWtCM0QsTUFBYSxhQUFhO0lBQTFCO1FBQ1UsZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUEySTlCLENBQUM7SUF6SUMsS0FBSyxDQUFDLElBQUk7UUFDUixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUU3QixNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0IsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNqQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FB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QztRQUVELE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBSSxHQUFXLEVBQUUsSUFBTztRQUNwQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDdEQsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZCxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUE1SUQsc0NBNElDO0FBRVksUUFBQSxhQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBBdXRoVG9rZW5zIH0gZnJvbSAnQGFnZW50aWNwb29sL2RhdGFtb2RlbCc7XG5cbmNvbnN0IENPTkZJR19ESVIgPSBwYXRoLmpvaW4ob3MuaG9tZWRpcigpLCAnLmFnZW50aWNwb29sJyk7XG5jb25zdCBDT05GSUdfRklMRSA9IHBhdGguam9pbihDT05GSUdfRElSLCAnY29uZmlnLmpzb24nKTtcbmNvbnN0IENSRURFTlRJQUxTX0RJUiA9IHBhdGguam9pbihDT05GSUdfRElSLCAnY3JlZGVudGlhbHMnKTtcbmNvbnN0IFBST0ZJTEVTX0RJUiA9IHBhdGguam9pbihDT05GSUdfRElSLCAncHJvZmlsZXMnKTtcbmNvbnN0IENBQ0hFX0RJUiA9IHBhdGguam9pbihDT05GSUdfRElSLCAnY2FjaGUnKTtcbmNvbnN0IE5FVFdPUktTX0ZJTEUgPSBwYXRoLmpvaW4oQ09ORklHX0RJUiwgJ25ldHdvcmtzLm1kJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2xvYmFsQ29uZmlnIHtcbiAgYXBpVXJsOiBzdHJpbmc7XG4gIGRlZmF1bHRGb3JtYXQ6ICd0b29uJyB8ICdqc29uJztcbiAgaHVtYW5zQXBpVXJsPzogc3RyaW5nO1xuICBodW1hblVpZD86IHN0cmluZztcbiAgaHVtYW5Kd3Q/OiBzdHJpbmc7XG4gIGh1bWFuSnd0RXhwaXJlc0F0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtDcmVkZW50aWFscyB7XG4gIHB1YmxpY1Rva2VuOiBzdHJpbmc7XG4gIHByaXZhdGVLZXk6IHN0cmluZztcbiAgand0Pzogc3RyaW5nO1xuICBleHBpcmVzQXQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBDb25maWdNYW5hZ2VyIHtcbiAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIGFzeW5jIGluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgICBcbiAgICBhd2FpdCBmcy5lbnN1cmVEaXIoQ09ORklHX0RJUik7XG4gICAgYXdhaXQgZnMuZW5zdXJlRGlyKENSRURFTlRJQUxTX0RJUik7XG4gICAgYXdhaXQgZnMuZW5zdXJlRGlyKFBST0ZJTEVTX0RJUik7XG4gICAgYXdhaXQgZnMuZW5zdXJlRGlyKENBQ0hFX0RJUik7XG4gICAgXG4gICAgaWYgKCEoYXdhaXQgZnMucGF0aEV4aXN0cyhDT05GSUdfRklMRSkpKSB7XG4gICAgICBhd2FpdCB0aGlzLnNhdmVHbG9iYWxDb25maWcoe1xuICAgICAgICBhcGlVcmw6ICdodHRwczovL2FwaS5hZ2VudGljcG9vbC5uZXQnLFxuICAgICAgICBkZWZhdWx0Rm9ybWF0OiAndG9vbidcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghKGF3YWl0IGZzLnBhdGhFeGlzdHMoTkVUV09SS1NfRklMRSkpKSB7XG4gICAgICBhd2FpdCBmcy53cml0ZUZpbGUoTkVUV09SS1NfRklMRSwgJyMgUmVnaXN0ZXJlZCBBZ2VudGljUG9vbCBOZXR3b3Jrc1xcblxcbicpO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIGdldEdsb2JhbENvbmZpZygpOiBQcm9taXNlPEdsb2JhbENvbmZpZz4ge1xuICAgIGF3YWl0IHRoaXMuaW5pdCgpO1xuICAgIHJldHVybiBmcy5yZWFkSnNvbihDT05GSUdfRklMRSk7XG4gIH1cblxuICBhc3luYyBzYXZlR2xvYmFsQ29uZmlnKGNvbmZpZzogR2xvYmFsQ29uZmlnKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5pbml0KCk7XG4gICAgYXdhaXQgZnMud3JpdGVKc29uKENPTkZJR19GSUxFLCBjb25maWcsIHsgc3BhY2VzOiAyIH0pO1xuICB9XG5cbiAgYXN5bmMgc2V0QXBpVXJsKHVybDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29uZmlnID0gYXdhaXQgdGhpcy5nZXRHbG9iYWxDb25maWcoKTtcbiAgICBjb25maWcuYXBpVXJsID0gdXJsO1xuICAgIGF3YWl0IHRoaXMuc2F2ZUdsb2JhbENvbmZpZyhjb25maWcpO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q3JlZGVudGlhbHMobmV0d29ya0lkOiBzdHJpbmcpOiBQcm9taXNlPE5ldHdvcmtDcmVkZW50aWFscyB8IG51bGw+IHtcbiAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICBjb25zdCBjcmVkRmlsZSA9IHBhdGguam9pbihDUkVERU5USUFMU19ESVIsIGAke25ldHdvcmtJZH0uanNvbmApO1xuICAgIFxuICAgIGlmICghKGF3YWl0IGZzLnBhdGhFeGlzdHMoY3JlZEZpbGUpKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGNyZWRzID0gYXdhaXQgZnMucmVhZEpzb24oY3JlZEZpbGUpO1xuICAgIFxuICAgIGlmIChjcmVkcy5leHBpcmVzQXQgJiYgRGF0ZS5ub3coKSA+IGNyZWRzLmV4cGlyZXNBdCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBjcmVkcztcbiAgfVxuXG4gIGFzeW5jIHNhdmVDcmVkZW50aWFscyhuZXR3b3JrSWQ6IHN0cmluZywgY3JlZGVudGlhbHM6IE5ldHdvcmtDcmVkZW50aWFscyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuaW5pdCgpO1xuICAgIGNvbnN0IGNyZWRGaWxlID0gcGF0aC5qb2luKENSRURFTlRJQUxTX0RJUiwgYCR7bmV0d29ya0lkfS5qc29uYCk7XG4gICAgYXdhaXQgZnMud3JpdGVKc29uKGNyZWRGaWxlLCBjcmVkZW50aWFscywgeyBzcGFjZXM6IDIgfSk7XG4gIH1cblxuICBhc3luYyBhZGRSZWdpc3RlcmVkTmV0d29yayhuZXR3b3JrSWQ6IHN0cmluZywgcmVhc29uPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5pbml0KCk7XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IGZzLnJlYWRGaWxlKE5FVFdPUktTX0ZJTEUsICd1dGYtOCcpO1xuICAgIGNvbnN0IGxpbmVzID0gY29udGVudC5zcGxpdCgnXFxuJyk7XG4gICAgXG4gICAgY29uc3QgZW50cnlQcmVmaXggPSBgLSAke25ldHdvcmtJZH1gO1xuICAgIGNvbnN0IGZ1bGxFbnRyeSA9IGAtICR7bmV0d29ya0lkfSR7cmVhc29uID8gYCB8IFJlYXNvbjogJHtyZWFzb259YCA6ICcnfWA7XG4gICAgXG4gICAgLy8gQ2hlY2sgaWYgbmV0d29yayBhbHJlYWR5IGV4aXN0cywgaWYgc28gdXBkYXRlIHRoZSBsaW5lXG4gICAgY29uc3QgZXhpc3RpbmdJbmRleCA9IGxpbmVzLmZpbmRJbmRleChsaW5lID0+IGxpbmUudHJpbSgpLnN0YXJ0c1dpdGgoZW50cnlQcmVmaXgpKTtcbiAgICBcbiAgICBpZiAoZXhpc3RpbmdJbmRleCAhPT0gLTEpIHtcbiAgICAgIGxpbmVzW2V4aXN0aW5nSW5kZXhdID0gZnVsbEVudHJ5O1xuICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKE5FVFdPUktTX0ZJTEUsIGxpbmVzLmpvaW4oJ1xcbicpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgZnMuYXBwZW5kRmlsZShORVRXT1JLU19GSUxFLCBgJHtmdWxsRW50cnl9XFxuYCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0UmVnaXN0ZXJlZE5ldHdvcmtzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgZnMucmVhZEZpbGUoTkVUV09SS1NfRklMRSwgJ3V0Zi04Jyk7XG4gICAgcmV0dXJuIGNvbnRlbnRcbiAgICAgIC5zcGxpdCgnXFxuJylcbiAgICAgIC5maWx0ZXIobGluZSA9PiBsaW5lLnN0YXJ0c1dpdGgoJy0gJykpXG4gICAgICAubWFwKGxpbmUgPT4gbGluZS5yZXBsYWNlKCctICcsICcnKS50cmltKCkpO1xuICB9XG5cbiAgYXN5bmMgY2xlYXJDcmVkZW50aWFscyhuZXR3b3JrSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuaW5pdCgpO1xuICAgIGNvbnN0IGNyZWRGaWxlID0gcGF0aC5qb2luKENSRURFTlRJQUxTX0RJUiwgYCR7bmV0d29ya0lkfS5qc29uYCk7XG4gICAgYXdhaXQgZnMucmVtb3ZlKGNyZWRGaWxlKTtcbiAgfVxuXG4gIGFzeW5jIGdldFByb2ZpbGUobmV0d29ya0lkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICBjb25zdCBwcm9maWxlRmlsZSA9IHBhdGguam9pbihQUk9GSUxFU19ESVIsIGAke25ldHdvcmtJZH0ubWRgKTtcbiAgICBcbiAgICBpZiAoIShhd2FpdCBmcy5wYXRoRXhpc3RzKHByb2ZpbGVGaWxlKSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gZnMucmVhZEZpbGUocHJvZmlsZUZpbGUsICd1dGYtOCcpO1xuICB9XG5cbiAgYXN5bmMgc2F2ZVByb2ZpbGUobmV0d29ya0lkOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuaW5pdCgpO1xuICAgIGNvbnN0IHByb2ZpbGVGaWxlID0gcGF0aC5qb2luKFBST0ZJTEVTX0RJUiwgYCR7bmV0d29ya0lkfS5tZGApO1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZShwcm9maWxlRmlsZSwgY29udGVudCk7XG4gIH1cblxuICBhc3luYyBnZXRDYWNoZTxUPihrZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IG51bGw+IHtcbiAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICBjb25zdCBjYWNoZUZpbGUgPSBwYXRoLmpvaW4oQ0FDSEVfRElSLCBgJHtrZXl9Lmpzb25gKTtcbiAgICBcbiAgICBpZiAoIShhd2FpdCBmcy5wYXRoRXhpc3RzKGNhY2hlRmlsZSkpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIGZzLnJlYWRKc29uKGNhY2hlRmlsZSk7XG4gIH1cblxuICBhc3luYyBzZXRDYWNoZTxUPihrZXk6IHN0cmluZywgZGF0YTogVCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuaW5pdCgpO1xuICAgIGNvbnN0IGNhY2hlRmlsZSA9IHBhdGguam9pbihDQUNIRV9ESVIsIGAke2tleX0uanNvbmApO1xuICAgIGF3YWl0IGZzLndyaXRlSnNvbihjYWNoZUZpbGUsIGRhdGEsIHsgc3BhY2VzOiAyIH0pO1xuICB9XG5cbiAgYXN5bmMgY2xlYXJDYWNoZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICBhd2FpdCBmcy5lbXB0eURpcihDQUNIRV9ESVIpO1xuICB9XG5cbiAgZ2V0Q29uZmlnUGF0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBDT05GSUdfRElSO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBjb25maWdNYW5hZ2VyID0gbmV3IENvbmZpZ01hbmFnZXIoKTtcbiJdfQ==
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvQ29uZmlnTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0IsdUNBQXlCO0FBQ3pCLDZDQUErQjtBQUUvQixrREFBMEI7QUFFMUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDM0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDekQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDN0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDdkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDakQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFrQjNELE1BQWEsYUFBYTtJQUExQjtRQUNVLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0lBMEovQixDQUFDO0lBeEpDLEtBQUssQ0FBQyxJQUFJO1FBQ1IsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTztRQUVsRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQUssQ0FBQyxJQUFJLENBQUMsNkNBQTZDLFVBQVUsRUFBRSxDQUFDLENBQUMs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QUNwQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDdEQsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZCxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUE1SkQsc0NBNEpDO0FBRVksUUFBQSxhQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBBdXRoVG9rZW5zIH0gZnJvbSAnLi4vZGF0YW1vZGVsJztcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5cbmNvbnN0IENPTkZJR19ESVIgPSBwYXRoLmpvaW4ob3MuaG9tZWRpcigpLCAnLmFnZW50aWNwb29sJyk7XG5jb25zdCBDT05GSUdfRklMRSA9IHBhdGguam9pbihDT05GSUdfRElSLCAnY29uZmlnLmpzb24nKTtcbmNvbnN0IENSRURFTlRJQUxTX0RJUiA9IHBhdGguam9pbihDT05GSUdfRElSLCAnY3JlZGVudGlhbHMnKTtcbmNvbnN0IFBST0ZJTEVTX0RJUiA9IHBhdGguam9pbihDT05GSUdfRElSLCAncHJvZmlsZXMnKTtcbmNvbnN0IENBQ0hFX0RJUiA9IHBhdGguam9pbihDT05GSUdfRElSLCAnY2FjaGUnKTtcbmNvbnN0IE5FVFdPUktTX0ZJTEUgPSBwYXRoLmpvaW4oQ09ORklHX0RJUiwgJ25ldHdvcmtzLm1kJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2xvYmFsQ29uZmlnIHtcbiAgYXBpVXJsOiBzdHJpbmc7XG4gIGRlZmF1bHRGb3JtYXQ6ICd0b29uJyB8ICdqc29uJztcbiAgaHVtYW5zQXBpVXJsPzogc3RyaW5nO1xuICBodW1hblVpZD86IHN0cmluZztcbiAgaHVtYW5Kd3Q/OiBzdHJpbmc7XG4gIGh1bWFuSnd0RXhwaXJlc0F0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtDcmVkZW50aWFscyB7XG4gIHB1YmxpY1Rva2VuOiBzdHJpbmc7XG4gIHByaXZhdGVLZXk6IHN0cmluZztcbiAgand0Pzogc3RyaW5nO1xuICBleHBpcmVzQXQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBDb25maWdNYW5hZ2VyIHtcbiAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuICBwcml2YXRlIGluaXRpYWxpemluZyA9IGZhbHNlO1xuXG4gIGFzeW5jIGluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQgfHwgdGhpcy5pbml0aWFsaXppbmcpIHJldHVybjtcbiAgICBcbiAgICB0aGlzLmluaXRpYWxpemluZyA9IHRydWU7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JheShgW0RFQlVHXSBJbml0aWFsaXppbmcgQ29uZmlnTWFuYWdlci4gUGF0aDogJHtDT05GSUdfRElSfWApKTtcbiAgICBcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZnMuZW5zdXJlRGlyKENPTkZJR19ESVIpO1xuICAgICAgYXdhaXQgZnMuZW5zdXJlRGlyKENSRURFTlRJQUxTX0RJUik7XG4gICAgICBhd2FpdCBmcy5lbnN1cmVEaXIoUFJPRklMRVNfRElSKTtcbiAgICAgIGF3YWl0IGZzLmVuc3VyZURpcihDQUNIRV9ESVIpO1xuICAgICAgXG4gICAgICBpZiAoIShhd2FpdCBmcy5wYXRoRXhpc3RzKENPTkZJR19GSUxFKSkpIHtcbiAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnW0RFQlVHXSBDcmVhdGluZyBkZWZhdWx0IGNvbmZpZyBmaWxlJykpO1xuICAgICAgICBjb25zdCBkZWZhdWx0Q29uZmlnOiBHbG9iYWxDb25maWcgPSB7XG4gICAgICAgICAgYXBpVXJsOiAnaHR0cHM6Ly9hcGkuYWdlbnRpY3Bvb2wubmV0JyxcbiAgICAgICAgICBkZWZhdWx0Rm9ybWF0OiAndG9vbidcbiAgICAgICAgfTtcbiAgICAgICAgLy8gVXNlIGZzIGRpcmVjdGx5IHRvIGF2b2lkIHJlY3Vyc2lvblxuICAgICAgICBhd2FpdCBmcy53cml0ZUpzb24oQ09ORklHX0ZJTEUsIGRlZmF1bHRDb25maWcsIHsgc3BhY2VzOiAyIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoIShhd2FpdCBmcy5wYXRoRXhpc3RzKE5FVFdPUktTX0ZJTEUpKSkge1xuICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdbREVCVUddIENyZWF0aW5nIGRlZmF1bHQgbmV0d29ya3MgZmlsZScpKTtcbiAgICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKE5FVFdPUktTX0ZJTEUsICcjIFJlZ2lzdGVyZWQgQWdlbnRpY1Bvb2wgTmV0d29ya3NcXG5cXG4nKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdbREVCVUddIENvbmZpZ01hbmFnZXIgaW5pdGlhbGl6ZWQnKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2coY2hhbGsucmVkKGBbREVCVUddIENvbmZpZ01hbmFnZXIgaW5pdCBmYWlsZWQ6ICR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogJ1Vua25vd24nfWApKTtcbiAgICAgIHRocm93IGU7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6aW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0R2xvYmFsQ29uZmlnKCk6IFByb21pc2U8R2xvYmFsQ29uZmlnPiB7XG4gICAgYXdhaXQgdGhpcy5pbml0KCk7XG4gICAgcmV0dXJuIGZzLnJlYWRKc29uKENPTkZJR19GSUxFKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVHbG9iYWxDb25maWcoY29uZmlnOiBHbG9iYWxDb25maWcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdbREVCVUddIFNhdmluZyBnbG9iYWwgY29uZmlnJykpO1xuICAgIGF3YWl0IGZzLndyaXRlSnNvbihDT05GSUdfRklMRSwgY29uZmlnLCB7IHNwYWNlczogMiB9KTtcbiAgfVxuXG4gIGFzeW5jIHNldEFwaVVybCh1cmw6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZ2V0R2xvYmFsQ29uZmlnKCk7XG4gICAgY29uZmlnLmFwaVVybCA9IHVybDtcbiAgICBhd2FpdCB0aGlzLnNhdmVHbG9iYWxDb25maWcoY29uZmlnKTtcbiAgfVxuXG4gIGFzeW5jIGdldENyZWRlbnRpYWxzKG5ldHdvcmtJZDogc3RyaW5nKTogUHJvbWlzZTxOZXR3b3JrQ3JlZGVudGlhbHMgfCBudWxsPiB7XG4gICAgYXdhaXQgdGhpcy5pbml0KCk7XG4gICAgY29uc3QgY3JlZEZpbGUgPSBwYXRoLmpvaW4oQ1JFREVOVElBTFNfRElSLCBgJHtuZXR3b3JrSWR9Lmpzb25gKTtcbiAgICBcbiAgICBpZiAoIShhd2FpdCBmcy5wYXRoRXhpc3RzKGNyZWRGaWxlKSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBjcmVkcyA9IGF3YWl0IGZzLnJlYWRKc29uKGNyZWRGaWxlKTtcbiAgICBcbiAgICBpZiAoY3JlZHMuZXhwaXJlc0F0ICYmIERhdGUubm93KCkgPiBjcmVkcy5leHBpcmVzQXQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gY3JlZHM7XG4gIH1cblxuICBhc3luYyBzYXZlQ3JlZGVudGlhbHMobmV0d29ya0lkOiBzdHJpbmcsIGNyZWRlbnRpYWxzOiBOZXR3b3JrQ3JlZGVudGlhbHMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICBjb25zdCBjcmVkRmlsZSA9IHBhdGguam9pbihDUkVERU5USUFMU19ESVIsIGAke25ldHdvcmtJZH0uanNvbmApO1xuICAgIGF3YWl0IGZzLndyaXRlSnNvbihjcmVkRmlsZSwgY3JlZGVudGlhbHMsIHsgc3BhY2VzOiAyIH0pO1xuICB9XG5cbiAgYXN5bmMgYWRkUmVnaXN0ZXJlZE5ldHdvcmsobmV0d29ya0lkOiBzdHJpbmcsIHJlYXNvbj86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuaW5pdCgpO1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShORVRXT1JLU19GSUxFLCAndXRmLTgnKTtcbiAgICBjb25zdCBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoJ1xcbicpO1xuICAgIFxuICAgIGNvbnN0IGVudHJ5UHJlZml4ID0gYC0gJHtuZXR3b3JrSWR9YDtcbiAgICBjb25zdCBmdWxsRW50cnkgPSBgLSAke25ldHdvcmtJZH0ke3JlYXNvbiA/IGAgfCBSZWFzb246ICR7cmVhc29ufWAgOiAnJ31gO1xuICAgIFxuICAgIGNvbnN0IGV4aXN0aW5nSW5kZXggPSBsaW5lcy5maW5kSW5kZXgobGluZSA9PiBsaW5lLnRyaW0oKS5zdGFydHNXaXRoKGVudHJ5UHJlZml4KSk7XG4gICAgXG4gICAgaWYgKGV4aXN0aW5nSW5kZXggIT09IC0xKSB7XG4gICAgICBsaW5lc1tleGlzdGluZ0luZGV4XSA9IGZ1bGxFbnRyeTtcbiAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShORVRXT1JLU19GSUxFLCBsaW5lcy5qb2luKCdcXG4nKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IGZzLmFwcGVuZEZpbGUoTkVUV09SS1NfRklMRSwgYCR7ZnVsbEVudHJ5fVxcbmApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldFJlZ2lzdGVyZWROZXR3b3JrcygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgYXdhaXQgdGhpcy5pbml0KCk7XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IGZzLnJlYWRGaWxlKE5FVFdPUktTX0ZJTEUsICd1dGYtOCcpO1xuICAgIHJldHVybiBjb250ZW50XG4gICAgICAuc3BsaXQoJ1xcbicpXG4gICAgICAuZmlsdGVyKGxpbmUgPT4gbGluZS5zdGFydHNXaXRoKCctICcpKVxuICAgICAgLm1hcChsaW5lID0+IGxpbmUucmVwbGFjZSgnLSAnLCAnJykudHJpbSgpKTtcbiAgfVxuXG4gIGFzeW5jIGNsZWFyQ3JlZGVudGlhbHMobmV0d29ya0lkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICBjb25zdCBjcmVkRmlsZSA9IHBhdGguam9pbihDUkVERU5USUFMU19ESVIsIGAke25ldHdvcmtJZH0uanNvbmApO1xuICAgIGF3YWl0IGZzLnJlbW92ZShjcmVkRmlsZSk7XG4gIH1cblxuICBhc3luYyBnZXRQcm9maWxlKG5ldHdvcmtJZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgYXdhaXQgdGhpcy5pbml0KCk7XG4gICAgY29uc3QgcHJvZmlsZUZpbGUgPSBwYXRoLmpvaW4oUFJPRklMRVNfRElSLCBgJHtuZXR3b3JrSWR9Lm1kYCk7XG4gICAgXG4gICAgaWYgKCEoYXdhaXQgZnMucGF0aEV4aXN0cyhwcm9maWxlRmlsZSkpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIGZzLnJlYWRGaWxlKHByb2ZpbGVGaWxlLCAndXRmLTgnKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVQcm9maWxlKG5ldHdvcmtJZDogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICBjb25zdCBwcm9maWxlRmlsZSA9IHBhdGguam9pbihQUk9GSUxFU19ESVIsIGAke25ldHdvcmtJZH0ubWRgKTtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUocHJvZmlsZUZpbGUsIGNvbnRlbnQpO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q2FjaGU8VD4oa2V5OiBzdHJpbmcpOiBQcm9taXNlPFQgfCBudWxsPiB7XG4gICAgYXdhaXQgdGhpcy5pbml0KCk7XG4gICAgY29uc3QgY2FjaGVGaWxlID0gcGF0aC5qb2luKENBQ0hFX0RJUiwgYCR7a2V5fS5qc29uYCk7XG4gICAgXG4gICAgaWYgKCEoYXdhaXQgZnMucGF0aEV4aXN0cyhjYWNoZUZpbGUpKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBmcy5yZWFkSnNvbihjYWNoZUZpbGUpO1xuICB9XG5cbiAgYXN5bmMgc2V0Q2FjaGU8VD4oa2V5OiBzdHJpbmcsIGRhdGE6IFQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICBjb25zdCBjYWNoZUZpbGUgPSBwYXRoLmpvaW4oQ0FDSEVfRElSLCBgJHtrZXl9Lmpzb25gKTtcbiAgICBhd2FpdCBmcy53cml0ZUpzb24oY2FjaGVGaWxlLCBkYXRhLCB7IHNwYWNlczogMiB9KTtcbiAgfVxuXG4gIGFzeW5jIGNsZWFyQ2FjaGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5pbml0KCk7XG4gICAgYXdhaXQgZnMuZW1wdHlEaXIoQ0FDSEVfRElSKTtcbiAgfVxuXG4gIGdldENvbmZpZ1BhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQ09ORklHX0RJUjtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgY29uZmlnTWFuYWdlciA9IG5ldyBDb25maWdNYW5hZ2VyKCk7XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./models"), exports);
|
|
18
|
+
__exportStar(require("./models/humans"), exports);
|
|
19
|
+
__exportStar(require("./toon"), exports);
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YW1vZGVsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBeUI7QUFDekIsa0RBQWdDO0FBQ2hDLHlDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2h1bWFucyc7XG5leHBvcnQgKiBmcm9tICcuL3Rvb24nO1xuIl19
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { Timestamp } from './index';
|
|
2
|
+
export type ConnectionStatus = 'proposed' | 'agent_accepted' | 'human_pending' | 'connected' | 'rejected' | 'revoked';
|
|
3
|
+
export interface HumanProfile {
|
|
4
|
+
uid?: string;
|
|
5
|
+
displayName: string;
|
|
6
|
+
phone: string;
|
|
7
|
+
email: string;
|
|
8
|
+
telegram: string;
|
|
9
|
+
photoUrl: string;
|
|
10
|
+
notes: string;
|
|
11
|
+
createdAt?: Timestamp;
|
|
12
|
+
updatedAt?: Timestamp;
|
|
13
|
+
}
|
|
14
|
+
export interface NetworkIdentity {
|
|
15
|
+
id?: string;
|
|
16
|
+
humanUid: string;
|
|
17
|
+
networkId: string;
|
|
18
|
+
publicToken: string;
|
|
19
|
+
agentDescription: string;
|
|
20
|
+
addedAt?: Timestamp;
|
|
21
|
+
}
|
|
22
|
+
export interface ConnectionProposal {
|
|
23
|
+
id?: string;
|
|
24
|
+
fromHumanUid: string;
|
|
25
|
+
toHumanUid: string;
|
|
26
|
+
fromAgentToken: string;
|
|
27
|
+
toAgentToken: string;
|
|
28
|
+
networkId: string;
|
|
29
|
+
fromExplanation: string;
|
|
30
|
+
toExplanation: string;
|
|
31
|
+
status: ConnectionStatus;
|
|
32
|
+
proposedAt?: Timestamp;
|
|
33
|
+
agentAcceptedAt?: Timestamp;
|
|
34
|
+
humanAcceptedAt?: Timestamp;
|
|
35
|
+
revokedAt?: Timestamp;
|
|
36
|
+
revokedBy?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface Contact {
|
|
39
|
+
id?: string;
|
|
40
|
+
ownerUid: string;
|
|
41
|
+
contactUid: string;
|
|
42
|
+
contactDisplayName: string;
|
|
43
|
+
contactPhone: string;
|
|
44
|
+
contactEmail: string;
|
|
45
|
+
contactTelegram: string;
|
|
46
|
+
contactPhotoUrl: string;
|
|
47
|
+
notes: string;
|
|
48
|
+
linkedIdentities: ContactIdentity[];
|
|
49
|
+
connectionId: string;
|
|
50
|
+
status: 'active' | 'blocked';
|
|
51
|
+
createdAt?: Timestamp;
|
|
52
|
+
updatedAt?: Timestamp;
|
|
53
|
+
}
|
|
54
|
+
export interface ContactIdentity {
|
|
55
|
+
networkId: string;
|
|
56
|
+
publicToken: string;
|
|
57
|
+
agentDescription: string;
|
|
58
|
+
}
|
|
59
|
+
export interface HumanAuthCredentials {
|
|
60
|
+
humanUid: string;
|
|
61
|
+
email: string;
|
|
62
|
+
jwt?: string;
|
|
63
|
+
expiresAt?: number;
|
|
64
|
+
}
|
|
65
|
+
export interface ConnectionProposalInput {
|
|
66
|
+
toAgentToken: string;
|
|
67
|
+
networkId: string;
|
|
68
|
+
fromExplanation: string;
|
|
69
|
+
}
|
|
70
|
+
export interface ConnectionAcceptInput {
|
|
71
|
+
toExplanation: string;
|
|
72
|
+
}
|
|
73
|
+
export interface IdentityRegisterInput {
|
|
74
|
+
networkId: string;
|
|
75
|
+
publicToken: string;
|
|
76
|
+
agentDescription: string;
|
|
77
|
+
}
|
|
78
|
+
export interface ContactUpdateInput {
|
|
79
|
+
notes?: string;
|
|
80
|
+
linkIdentity?: ContactIdentity;
|
|
81
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVtYW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGFtb2RlbC9tb2RlbHMvaHVtYW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRpbWVzdGFtcCB9IGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQgdHlwZSBDb25uZWN0aW9uU3RhdHVzID1cbiAgfCAncHJvcG9zZWQnXG4gIHwgJ2FnZW50X2FjY2VwdGVkJ1xuICB8ICdodW1hbl9wZW5kaW5nJ1xuICB8ICdjb25uZWN0ZWQnXG4gIHwgJ3JlamVjdGVkJ1xuICB8ICdyZXZva2VkJztcblxuZXhwb3J0IGludGVyZmFjZSBIdW1hblByb2ZpbGUge1xuICB1aWQ/OiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIHBob25lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHRlbGVncmFtOiBzdHJpbmc7XG4gIHBob3RvVXJsOiBzdHJpbmc7XG4gIG5vdGVzOiBzdHJpbmc7XG4gIGNyZWF0ZWRBdD86IFRpbWVzdGFtcDtcbiAgdXBkYXRlZEF0PzogVGltZXN0YW1wO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtJZGVudGl0eSB7XG4gIGlkPzogc3RyaW5nO1xuICBodW1hblVpZDogc3RyaW5nO1xuICBuZXR3b3JrSWQ6IHN0cmluZztcbiAgcHVibGljVG9rZW46IHN0cmluZztcbiAgYWdlbnREZXNjcmlwdGlvbjogc3RyaW5nO1xuICBhZGRlZEF0PzogVGltZXN0YW1wO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25Qcm9wb3NhbCB7XG4gIGlkPzogc3RyaW5nO1xuICBmcm9tSHVtYW5VaWQ6IHN0cmluZztcbiAgdG9IdW1hblVpZDogc3RyaW5nO1xuICBmcm9tQWdlbnRUb2tlbjogc3RyaW5nO1xuICB0b0FnZW50VG9rZW46IHN0cmluZztcbiAgbmV0d29ya0lkOiBzdHJpbmc7XG4gIGZyb21FeHBsYW5hdGlvbjogc3RyaW5nO1xuICB0b0V4cGxhbmF0aW9uOiBzdHJpbmc7XG4gIHN0YXR1czogQ29ubmVjdGlvblN0YXR1cztcbiAgcHJvcG9zZWRBdD86IFRpbWVzdGFtcDtcbiAgYWdlbnRBY2NlcHRlZEF0PzogVGltZXN0YW1wO1xuICBodW1hbkFjY2VwdGVkQXQ/OiBUaW1lc3RhbXA7XG4gIHJldm9rZWRBdD86IFRpbWVzdGFtcDtcbiAgcmV2b2tlZEJ5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhY3Qge1xuICBpZD86IHN0cmluZztcbiAgb3duZXJVaWQ6IHN0cmluZztcbiAgY29udGFjdFVpZDogc3RyaW5nO1xuICBjb250YWN0RGlzcGxheU5hbWU6IHN0cmluZztcbiAgY29udGFjdFBob25lOiBzdHJpbmc7XG4gIGNvbnRhY3RFbWFpbDogc3RyaW5nO1xuICBjb250YWN0VGVsZWdyYW06IHN0cmluZztcbiAgY29udGFjdFBob3RvVXJsOiBzdHJpbmc7XG4gIG5vdGVzOiBzdHJpbmc7XG4gIGxpbmtlZElkZW50aXRpZXM6IENvbnRhY3RJZGVudGl0eVtdO1xuICBjb25uZWN0aW9uSWQ6IHN0cmluZztcbiAgc3RhdHVzOiAnYWN0aXZlJyB8ICdibG9ja2VkJztcbiAgY3JlYXRlZEF0PzogVGltZXN0YW1wO1xuICB1cGRhdGVkQXQ/OiBUaW1lc3RhbXA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdElkZW50aXR5IHtcbiAgbmV0d29ya0lkOiBzdHJpbmc7XG4gIHB1YmxpY1Rva2VuOiBzdHJpbmc7XG4gIGFnZW50RGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdW1hbkF1dGhDcmVkZW50aWFscyB7XG4gIGh1bWFuVWlkOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGp3dD86IHN0cmluZztcbiAgZXhwaXJlc0F0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25Qcm9wb3NhbElucHV0IHtcbiAgdG9BZ2VudFRva2VuOiBzdHJpbmc7XG4gIG5ldHdvcmtJZDogc3RyaW5nO1xuICBmcm9tRXhwbGFuYXRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0aW9uQWNjZXB0SW5wdXQge1xuICB0b0V4cGxhbmF0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpdHlSZWdpc3RlcklucHV0IHtcbiAgbmV0d29ya0lkOiBzdHJpbmc7XG4gIHB1YmxpY1Rva2VuOiBzdHJpbmc7XG4gIGFnZW50RGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0VXBkYXRlSW5wdXQge1xuICBub3Rlcz86IHN0cmluZztcbiAgbGlua0lkZW50aXR5PzogQ29udGFjdElkZW50aXR5O1xufVxuIl19
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
export type NetworkStatus = 'live' | 'testing';
|
|
2
|
+
export type MemberRole = 'member' | 'admin';
|
|
3
|
+
export type ConversationType = 'topic' | 'direct' | 'group';
|
|
4
|
+
export type InvitationStatus = 'pending' | 'accepted' | 'rejected';
|
|
5
|
+
export interface FirestoreTimestamp {
|
|
6
|
+
_seconds: number;
|
|
7
|
+
_nanoseconds: number;
|
|
8
|
+
toDate(): Date;
|
|
9
|
+
}
|
|
10
|
+
export type Timestamp = Date | FirestoreTimestamp;
|
|
11
|
+
export interface Network {
|
|
12
|
+
id?: string;
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
longDescription: string;
|
|
16
|
+
logoUrl: string;
|
|
17
|
+
status: NetworkStatus;
|
|
18
|
+
isPublic: boolean;
|
|
19
|
+
users: number;
|
|
20
|
+
createdBy: string;
|
|
21
|
+
createdAt?: Timestamp;
|
|
22
|
+
}
|
|
23
|
+
export interface Member {
|
|
24
|
+
id?: string;
|
|
25
|
+
networkId: string;
|
|
26
|
+
publicToken: string;
|
|
27
|
+
privateKeyHash: string;
|
|
28
|
+
shortDescription: string;
|
|
29
|
+
longDescription: string;
|
|
30
|
+
joinedAt?: Timestamp;
|
|
31
|
+
lastAccessReason?: string;
|
|
32
|
+
role: MemberRole;
|
|
33
|
+
}
|
|
34
|
+
export interface Invitation {
|
|
35
|
+
id?: string;
|
|
36
|
+
networkId: string;
|
|
37
|
+
fromUserId: string;
|
|
38
|
+
toPublicToken?: string;
|
|
39
|
+
status: InvitationStatus;
|
|
40
|
+
createdAt?: Timestamp;
|
|
41
|
+
}
|
|
42
|
+
export interface ProfileQuestion {
|
|
43
|
+
id?: string;
|
|
44
|
+
networkId: string;
|
|
45
|
+
question: string;
|
|
46
|
+
order: number;
|
|
47
|
+
required: boolean;
|
|
48
|
+
}
|
|
49
|
+
export interface Conversation {
|
|
50
|
+
id?: string;
|
|
51
|
+
networkId: string;
|
|
52
|
+
title: string;
|
|
53
|
+
type: ConversationType;
|
|
54
|
+
maxMembers: number;
|
|
55
|
+
createdBy: string;
|
|
56
|
+
createdAt?: Timestamp;
|
|
57
|
+
}
|
|
58
|
+
export interface Participant {
|
|
59
|
+
id?: string;
|
|
60
|
+
conversationId: string;
|
|
61
|
+
userId: string;
|
|
62
|
+
joinedAt?: Timestamp;
|
|
63
|
+
}
|
|
64
|
+
export interface Message {
|
|
65
|
+
id?: string;
|
|
66
|
+
conversationId: string;
|
|
67
|
+
senderId: string;
|
|
68
|
+
receiverId: string | null;
|
|
69
|
+
content: string;
|
|
70
|
+
createdAt?: Timestamp;
|
|
71
|
+
}
|
|
72
|
+
export interface NetworkShort {
|
|
73
|
+
id: string;
|
|
74
|
+
name: string;
|
|
75
|
+
description: string;
|
|
76
|
+
logoUrl: string;
|
|
77
|
+
status: NetworkStatus;
|
|
78
|
+
users: number;
|
|
79
|
+
}
|
|
80
|
+
export interface MemberShort {
|
|
81
|
+
publicToken: string;
|
|
82
|
+
shortDescription: string;
|
|
83
|
+
role: MemberRole;
|
|
84
|
+
}
|
|
85
|
+
export interface ConversationShort {
|
|
86
|
+
id: string;
|
|
87
|
+
title: string;
|
|
88
|
+
type: ConversationType;
|
|
89
|
+
maxMembers: number;
|
|
90
|
+
}
|
|
91
|
+
export interface AuthCredentials {
|
|
92
|
+
publicToken: string;
|
|
93
|
+
privateKey: string;
|
|
94
|
+
}
|
|
95
|
+
export interface AuthTokens {
|
|
96
|
+
jwt: string;
|
|
97
|
+
expiresAt: number;
|
|
98
|
+
publicToken: string;
|
|
99
|
+
}
|
|
100
|
+
export interface ApiError {
|
|
101
|
+
code: string;
|
|
102
|
+
message: string;
|
|
103
|
+
details?: Record<string, unknown>;
|
|
104
|
+
}
|
|
105
|
+
export interface ApiResponse<T> {
|
|
106
|
+
success: boolean;
|
|
107
|
+
data?: T;
|
|
108
|
+
error?: ApiError;
|
|
109
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YW1vZGVsL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgTmV0d29ya1N0YXR1cyA9ICdsaXZlJyB8ICd0ZXN0aW5nJztcbmV4cG9ydCB0eXBlIE1lbWJlclJvbGUgPSAnbWVtYmVyJyB8ICdhZG1pbic7XG5leHBvcnQgdHlwZSBDb252ZXJzYXRpb25UeXBlID0gJ3RvcGljJyB8ICdkaXJlY3QnIHwgJ2dyb3VwJztcbmV4cG9ydCB0eXBlIEludml0YXRpb25TdGF0dXMgPSAncGVuZGluZycgfCAnYWNjZXB0ZWQnIHwgJ3JlamVjdGVkJztcblxuZXhwb3J0IGludGVyZmFjZSBGaXJlc3RvcmVUaW1lc3RhbXAge1xuICBfc2Vjb25kczogbnVtYmVyO1xuICBfbmFub3NlY29uZHM6IG51bWJlcjtcbiAgdG9EYXRlKCk6IERhdGU7XG59XG5cbmV4cG9ydCB0eXBlIFRpbWVzdGFtcCA9IERhdGUgfCBGaXJlc3RvcmVUaW1lc3RhbXA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29yayB7XG4gIGlkPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGxvbmdEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBsb2dvVXJsOiBzdHJpbmc7XG4gIHN0YXR1czogTmV0d29ya1N0YXR1cztcbiAgaXNQdWJsaWM6IGJvb2xlYW47XG4gIHVzZXJzOiBudW1iZXI7XG4gIGNyZWF0ZWRCeTogc3RyaW5nO1xuICBjcmVhdGVkQXQ/OiBUaW1lc3RhbXA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVtYmVyIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG5ldHdvcmtJZDogc3RyaW5nO1xuICBwdWJsaWNUb2tlbjogc3RyaW5nO1xuICBwcml2YXRlS2V5SGFzaDogc3RyaW5nO1xuICBzaG9ydERlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGxvbmdEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBqb2luZWRBdD86IFRpbWVzdGFtcDtcbiAgbGFzdEFjY2Vzc1JlYXNvbj86IHN0cmluZztcbiAgcm9sZTogTWVtYmVyUm9sZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnZpdGF0aW9uIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG5ldHdvcmtJZDogc3RyaW5nO1xuICBmcm9tVXNlcklkOiBzdHJpbmc7XG4gIHRvUHVibGljVG9rZW4/OiBzdHJpbmc7XG4gIHN0YXR1czogSW52aXRhdGlvblN0YXR1cztcbiAgY3JlYXRlZEF0PzogVGltZXN0YW1wO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVRdWVzdGlvbiB7XG4gIGlkPzogc3RyaW5nO1xuICBuZXR3b3JrSWQ6IHN0cmluZztcbiAgcXVlc3Rpb246IHN0cmluZztcbiAgb3JkZXI6IG51bWJlcjtcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udmVyc2F0aW9uIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG5ldHdvcmtJZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB0eXBlOiBDb252ZXJzYXRpb25UeXBlO1xuICBtYXhNZW1iZXJzOiBudW1iZXI7XG4gIGNyZWF0ZWRCeTogc3RyaW5nO1xuICBjcmVhdGVkQXQ/OiBUaW1lc3RhbXA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGljaXBhbnQge1xuICBpZD86IHN0cmluZztcbiAgY29udmVyc2F0aW9uSWQ6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIGpvaW5lZEF0PzogVGltZXN0YW1wO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2Uge1xuICBpZD86IHN0cmluZztcbiAgY29udmVyc2F0aW9uSWQ6IHN0cmluZztcbiAgc2VuZGVySWQ6IHN0cmluZztcbiAgcmVjZWl2ZXJJZDogc3RyaW5nIHwgbnVsbDtcbiAgY29udGVudDogc3RyaW5nO1xuICBjcmVhdGVkQXQ/OiBUaW1lc3RhbXA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya1Nob3J0IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBsb2dvVXJsOiBzdHJpbmc7XG4gIHN0YXR1czogTmV0d29ya1N0YXR1cztcbiAgdXNlcnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZW1iZXJTaG9ydCB7XG4gIHB1YmxpY1Rva2VuOiBzdHJpbmc7XG4gIHNob3J0RGVzY3JpcHRpb246IHN0cmluZztcbiAgcm9sZTogTWVtYmVyUm9sZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb252ZXJzYXRpb25TaG9ydCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHR5cGU6IENvbnZlcnNhdGlvblR5cGU7XG4gIG1heE1lbWJlcnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRoQ3JlZGVudGlhbHMge1xuICBwdWJsaWNUb2tlbjogc3RyaW5nO1xuICBwcml2YXRlS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aFRva2VucyB7XG4gIGp3dDogc3RyaW5nO1xuICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgcHVibGljVG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlFcnJvciB7XG4gIGNvZGU6IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBkZXRhaWxzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpUmVzcG9uc2U8VD4ge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBkYXRhPzogVDtcbiAgZXJyb3I/OiBBcGlFcnJvcjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function encode(data: unknown): string;
|
|
2
|
+
export declare function decode<T = unknown>(str: string): T;
|
|
3
|
+
export declare function isToonFormat(content: string): boolean;
|
|
4
|
+
export declare function safeEncode(data: unknown): string | null;
|
|
5
|
+
export declare function safeDecode<T = unknown>(str: string): T | null;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encode = encode;
|
|
4
|
+
exports.decode = decode;
|
|
5
|
+
exports.isToonFormat = isToonFormat;
|
|
6
|
+
exports.safeEncode = safeEncode;
|
|
7
|
+
exports.safeDecode = safeDecode;
|
|
8
|
+
function encode(data) {
|
|
9
|
+
return JSON.stringify(data);
|
|
10
|
+
}
|
|
11
|
+
function decode(str) {
|
|
12
|
+
return JSON.parse(str);
|
|
13
|
+
}
|
|
14
|
+
function isToonFormat(content) {
|
|
15
|
+
try {
|
|
16
|
+
JSON.parse(content);
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function safeEncode(data) {
|
|
24
|
+
try {
|
|
25
|
+
return encode(data);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function safeDecode(str) {
|
|
32
|
+
try {
|
|
33
|
+
return decode(str);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YW1vZGVsL3Rvb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx3QkFFQztBQUVELHdCQUVDO0FBRUQsb0NBT0M7QUFFRCxnQ0FNQztBQUVELGdDQU1DO0FBL0JELFNBQWdCLE1BQU0sQ0FBQyxJQUFhO0lBQ2xDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQsU0FBZ0IsTUFBTSxDQUFjLEdBQVc7SUFDN0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBTSxDQUFDO0FBQzlCLENBQUM7QUFFRCxTQUFnQixZQUFZLENBQUMsT0FBZTtJQUMxQyxJQUFJLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFnQixVQUFVLENBQUMsSUFBYTtJQUN0QyxJQUFJLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLFVBQVUsQ0FBYyxHQUFXO0lBQ2pELElBQUksQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGVuY29kZShkYXRhOiB1bmtub3duKTogc3RyaW5nIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGRhdGEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlPFQgPSB1bmtub3duPihzdHI6IHN0cmluZyk6IFQge1xuICByZXR1cm4gSlNPTi5wYXJzZShzdHIpIGFzIFQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Rvb25Gb3JtYXQoY29udGVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgSlNPTi5wYXJzZShjb250ZW50KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYWZlRW5jb2RlKGRhdGE6IHVua25vd24pOiBzdHJpbmcgfCBudWxsIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZW5jb2RlKGRhdGEpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2FmZURlY29kZTxUID0gdW5rbm93bj4oc3RyOiBzdHJpbmcpOiBUIHwgbnVsbCB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGRlY29kZTxUPihzdHIpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19
|
package/dist/index.js
CHANGED
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
const commander_1 = require("commander");
|
|
5
5
|
const commands_1 = require("./commands");
|
|
6
|
+
const packageJson = require('../package.json');
|
|
6
7
|
const program = new commander_1.Command();
|
|
7
8
|
program
|
|
8
9
|
.name('agenticpool')
|
|
9
10
|
.description('CLI for AgenticPool - Social Network for Agents')
|
|
10
|
-
.version(
|
|
11
|
+
.version(packageJson.version);
|
|
11
12
|
(0, commands_1.registerAuthCommands)(program);
|
|
12
13
|
(0, commands_1.registerNetworkCommands)(program);
|
|
13
14
|
(0, commands_1.registerProfileCommands)(program);
|
|
@@ -19,4 +20,4 @@ program
|
|
|
19
20
|
(0, commands_1.registerContactCommands)(program);
|
|
20
21
|
(0, commands_1.registerHumansCommands)(program);
|
|
21
22
|
program.parse();
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEseUNBQW9DO0FBQ3BDLHlDQVdvQjtBQUVwQixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUUvQyxNQUFNLE9BQU8sR0FBRyxJQUFJLG1CQUFPLEVBQUUsQ0FBQztBQUU5QixPQUFPO0tBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQztLQUNuQixXQUFXLENBQUMsaURBQWlELENBQUM7S0FDOUQsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVoQyxJQUFBLCtCQUFvQixFQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzlCLElBQUEsa0NBQXVCLEVBQUMsT0FBTyxDQUFDLENBQUM7QUFDakMsSUFBQSxrQ0FBdUIsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUNqQyxJQUFBLHVDQUE0QixFQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3RDLElBQUEsa0NBQXVCLEVBQUMsT0FBTyxDQUFDLENBQUM7QUFDakMsSUFBQSxpQ0FBc0IsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUNoQyxJQUFBLHFDQUEwQixFQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3BDLElBQUEsbUNBQXdCLEVBQUMsT0FBTyxDQUFDLENBQUM7QUFDbEMsSUFBQSxrQ0FBdUIsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUNqQyxJQUFBLGlDQUFzQixFQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRWhDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcblxuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQge1xuICByZWdpc3RlckF1dGhDb21tYW5kcyxcbiAgcmVnaXN0ZXJOZXR3b3JrQ29tbWFuZHMsXG4gIHJlZ2lzdGVyUHJvZmlsZUNvbW1hbmRzLFxuICByZWdpc3RlckNvbnZlcnNhdGlvbkNvbW1hbmRzLFxuICByZWdpc3Rlck1lc3NhZ2VDb21tYW5kcyxcbiAgcmVnaXN0ZXJDb25maWdDb21tYW5kcyxcbiAgcmVnaXN0ZXJDb25uZWN0aW9uQ29tbWFuZHMsXG4gIHJlZ2lzdGVySWRlbnRpdHlDb21tYW5kcyxcbiAgcmVnaXN0ZXJDb250YWN0Q29tbWFuZHMsXG4gIHJlZ2lzdGVySHVtYW5zQ29tbWFuZHNcbn0gZnJvbSAnLi9jb21tYW5kcyc7XG5cbmNvbnN0IHBhY2thZ2VKc29uID0gcmVxdWlyZSgnLi4vcGFja2FnZS5qc29uJyk7XG5cbmNvbnN0IHByb2dyYW0gPSBuZXcgQ29tbWFuZCgpO1xuXG5wcm9ncmFtXG4gIC5uYW1lKCdhZ2VudGljcG9vbCcpXG4gIC5kZXNjcmlwdGlvbignQ0xJIGZvciBBZ2VudGljUG9vbCAtIFNvY2lhbCBOZXR3b3JrIGZvciBBZ2VudHMnKVxuICAudmVyc2lvbihwYWNrYWdlSnNvbi52ZXJzaW9uKTtcblxucmVnaXN0ZXJBdXRoQ29tbWFuZHMocHJvZ3JhbSk7XG5yZWdpc3Rlck5ldHdvcmtDb21tYW5kcyhwcm9ncmFtKTtcbnJlZ2lzdGVyUHJvZmlsZUNvbW1hbmRzKHByb2dyYW0pO1xucmVnaXN0ZXJDb252ZXJzYXRpb25Db21tYW5kcyhwcm9ncmFtKTtcbnJlZ2lzdGVyTWVzc2FnZUNvbW1hbmRzKHByb2dyYW0pO1xucmVnaXN0ZXJDb25maWdDb21tYW5kcyhwcm9ncmFtKTtcbnJlZ2lzdGVyQ29ubmVjdGlvbkNvbW1hbmRzKHByb2dyYW0pO1xucmVnaXN0ZXJJZGVudGl0eUNvbW1hbmRzKHByb2dyYW0pO1xucmVnaXN0ZXJDb250YWN0Q29tbWFuZHMocHJvZ3JhbSk7XG5yZWdpc3Rlckh1bWFuc0NvbW1hbmRzKHByb2dyYW0pO1xuXG5wcm9ncmFtLnBhcnNlKCk7XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agenticpool",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "CLI for AgenticPool - Social Network for Agents",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"bin": {
|
|
8
8
|
"agenticpool": "./dist/index.js"
|
|
9
9
|
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist/",
|
|
12
|
+
"README.md",
|
|
13
|
+
"LICENSE"
|
|
14
|
+
],
|
|
10
15
|
"scripts": {
|
|
11
16
|
"build": "tsc",
|
|
12
17
|
"start": "node dist/index.js",
|
|
@@ -29,7 +34,6 @@
|
|
|
29
34
|
"author": "AgenticPool",
|
|
30
35
|
"license": "MIT",
|
|
31
36
|
"dependencies": {
|
|
32
|
-
"@agenticpool/datamodel": "file:../datamodel",
|
|
33
37
|
"@toon-format/toon": "^1.0.0",
|
|
34
38
|
"axios": "^1.6.5",
|
|
35
39
|
"chalk": "^4.1.2",
|
package/AGENTS.md
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
# AGENTS.md - agenticpool CLI
|
|
2
|
-
|
|
3
|
-
## Propósito
|
|
4
|
-
|
|
5
|
-
CLI para interactuar con la API de AgenticPool.
|
|
6
|
-
|
|
7
|
-
## Estructura
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
src/
|
|
11
|
-
├── index.ts # Entry point (commander)
|
|
12
|
-
├── commands/ # Comandos CLI
|
|
13
|
-
│ ├── auth.ts # auth generate-keys, register, login, logout
|
|
14
|
-
│ ├── networks.ts # networks list, create, mine, show, members
|
|
15
|
-
│ ├── profile.ts # profile questions, set, get
|
|
16
|
-
│ ├── conversations.ts # conversations list, mine, create, join
|
|
17
|
-
│ ├── messages.ts # messages send, list
|
|
18
|
-
│ └── config.ts # config set-url, set-format, show, clear-cache
|
|
19
|
-
├── api/
|
|
20
|
-
│ └── ApiClient.ts # Cliente HTTP con TOON
|
|
21
|
-
├── config/
|
|
22
|
-
│ └── ConfigManager.ts # Gestión ~/.agenticpool
|
|
23
|
-
└── utils/
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Convenciones
|
|
27
|
-
|
|
28
|
-
### Comandos
|
|
29
|
-
- Usar commander para definir comandos
|
|
30
|
-
- Opciones con `-` cortas y `--` largas
|
|
31
|
-
- Mostrar errores con chalk.red
|
|
32
|
-
- Éxitos con chalk.green
|
|
33
|
-
- Información con chalk.cyan/gray
|
|
34
|
-
|
|
35
|
-
### API Client
|
|
36
|
-
- Usar TOON por defecto
|
|
37
|
-
- Manejar JWT en header Authorization
|
|
38
|
-
- Parsear respuestas TOON/JSON
|
|
39
|
-
|
|
40
|
-
### Config
|
|
41
|
-
- Persistir en ~/.agenticpool
|
|
42
|
-
- Credenciales por red separadas
|
|
43
|
-
- Expirar tokens automáticamente
|
|
44
|
-
|
|
45
|
-
## Añadir Nuevo Comando
|
|
46
|
-
|
|
47
|
-
1. Crear archivo en `src/commands/`
|
|
48
|
-
2. Exportar función `registerXxxCommands(program: Command)`
|
|
49
|
-
3. Importar y llamar en `src/index.ts`
|
|
50
|
-
4. Añadir tests en `tests/`
|
|
51
|
-
|
|
52
|
-
## Testing
|
|
53
|
-
|
|
54
|
-
- Mockear ApiClient
|
|
55
|
-
- Mockear ConfigManager
|
|
56
|
-
- Tests de integración con servidor mock
|
|
Binary file
|
package/jest.config.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
preset: 'ts-jest',
|
|
3
|
-
testEnvironment: 'node',
|
|
4
|
-
roots: ['<rootDir>/tests'],
|
|
5
|
-
testMatch: ['**/*.test.ts'],
|
|
6
|
-
testTimeout: 60000,
|
|
7
|
-
collectCoverageFrom: [
|
|
8
|
-
'src/**/*.ts',
|
|
9
|
-
'!src/index.ts'
|
|
10
|
-
],
|
|
11
|
-
coverageThreshold: {
|
|
12
|
-
global: {
|
|
13
|
-
branches: 80,
|
|
14
|
-
functions: 80,
|
|
15
|
-
lines: 80,
|
|
16
|
-
statements: 80
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
moduleNameMapper: {
|
|
20
|
-
'^@agenticpool/datamodel$': '<rootDir>/../datamodel/src',
|
|
21
|
-
'^@toon-format/toon$': '<rootDir>/tests/__mocks__/@toon-format/toon.ts'
|
|
22
|
-
}
|
|
23
|
-
};
|