agenticpool 1.0.19 → 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/README.md +68 -118
- package/bin/agenticpool.js +6 -0
- package/dist/adapters/autogen.d.ts +33 -0
- package/dist/adapters/autogen.d.ts.map +1 -0
- package/dist/adapters/autogen.js +49 -0
- package/dist/adapters/autogen.js.map +1 -0
- package/dist/adapters/crewai.d.ts +30 -0
- package/dist/adapters/crewai.d.ts.map +1 -0
- package/dist/adapters/crewai.js +48 -0
- package/dist/adapters/crewai.js.map +1 -0
- package/dist/adapters/langchain.d.ts +30 -0
- package/dist/adapters/langchain.d.ts.map +1 -0
- package/dist/adapters/langchain.js +53 -0
- package/dist/adapters/langchain.js.map +1 -0
- package/dist/adapters/llamaindex.d.ts +29 -0
- package/dist/adapters/llamaindex.d.ts.map +1 -0
- package/dist/adapters/llamaindex.js +47 -0
- package/dist/adapters/llamaindex.js.map +1 -0
- package/dist/adapters/openai.d.ts +21 -0
- package/dist/adapters/openai.d.ts.map +1 -0
- package/dist/adapters/openai.js +51 -0
- package/dist/adapters/openai.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +187 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +115 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +251 -0
- package/dist/client.js.map +1 -0
- package/dist/commands/balance.d.ts +4 -0
- package/dist/commands/balance.d.ts.map +1 -0
- package/dist/commands/balance.js +34 -0
- package/dist/commands/balance.js.map +1 -0
- package/dist/commands/contract.d.ts +20 -0
- package/dist/commands/contract.d.ts.map +1 -0
- package/dist/commands/contract.js +188 -0
- package/dist/commands/contract.js.map +1 -0
- package/dist/commands/favor.d.ts +21 -0
- package/dist/commands/favor.d.ts.map +1 -0
- package/dist/commands/favor.js +144 -0
- package/dist/commands/favor.js.map +1 -0
- package/dist/commands/init.d.ts +5 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +77 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/reputation.d.ts +2 -0
- package/dist/commands/reputation.d.ts.map +1 -0
- package/dist/commands/reputation.js +38 -0
- package/dist/commands/reputation.js.map +1 -0
- package/dist/commands/serve.d.ts +7 -0
- package/dist/commands/serve.d.ts.map +1 -0
- package/dist/commands/serve.js +110 -0
- package/dist/commands/serve.js.map +1 -0
- package/dist/commands/services.d.ts +16 -0
- package/dist/commands/services.d.ts.map +1 -0
- package/dist/commands/services.js +93 -0
- package/dist/commands/services.js.map +1 -0
- package/dist/commands/trust.d.ts +2 -0
- package/dist/commands/trust.d.ts.map +1 -0
- package/dist/commands/trust.js +44 -0
- package/dist/commands/trust.js.map +1 -0
- package/dist/commands/whoami.d.ts +2 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +32 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/config.d.ts +30 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +72 -0
- package/dist/config.js.map +1 -0
- package/dist/economy/duckies.d.ts +75 -0
- package/dist/economy/duckies.d.ts.map +1 -0
- package/dist/economy/duckies.js +386 -0
- package/dist/economy/duckies.js.map +1 -0
- package/dist/index.d.ts +12 -2
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -29
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +90 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +28 -38
- package/LICENSE +0 -1
- package/dist/api/ApiClient.d.ts +0 -37
- package/dist/api/ApiClient.js +0 -160
- package/dist/api/index.d.ts +0 -1
- package/dist/api/index.js +0 -6
- package/dist/auth/AuthHelper.d.ts +0 -17
- package/dist/auth/AuthHelper.js +0 -197
- package/dist/commands/auth.d.ts +0 -2
- package/dist/commands/auth.js +0 -206
- package/dist/commands/config.d.ts +0 -2
- package/dist/commands/config.js +0 -51
- package/dist/commands/connections.d.ts +0 -2
- package/dist/commands/connections.js +0 -244
- package/dist/commands/contacts.d.ts +0 -2
- package/dist/commands/contacts.js +0 -205
- package/dist/commands/conversations.d.ts +0 -2
- package/dist/commands/conversations.js +0 -251
- package/dist/commands/errors.d.ts +0 -2
- package/dist/commands/errors.js +0 -73
- package/dist/commands/humans.d.ts +0 -2
- package/dist/commands/humans.js +0 -161
- package/dist/commands/identities.d.ts +0 -2
- package/dist/commands/identities.js +0 -141
- package/dist/commands/index.d.ts +0 -11
- package/dist/commands/index.js +0 -26
- package/dist/commands/messages.d.ts +0 -2
- package/dist/commands/messages.js +0 -216
- package/dist/commands/networks.d.ts +0 -2
- package/dist/commands/networks.js +0 -430
- package/dist/commands/profile.d.ts +0 -2
- package/dist/commands/profile.js +0 -257
- package/dist/config/ConfigManager.d.ts +0 -47
- package/dist/config/ConfigManager.js +0 -234
- package/dist/config/index.d.ts +0 -1
- package/dist/config/index.js +0 -7
- package/dist/datamodel/index.d.ts +0 -3
- package/dist/datamodel/index.js +0 -20
- package/dist/datamodel/models/humans.d.ts +0 -81
- package/dist/datamodel/models/humans.js +0 -3
- package/dist/datamodel/models/index.d.ts +0 -110
- package/dist/datamodel/models/index.js +0 -3
- package/dist/datamodel/toon/index.d.ts +0 -5
- package/dist/datamodel/toon/index.js +0 -225
- package/dist/limits/LimitsManager.d.ts +0 -23
- package/dist/limits/LimitsManager.js +0 -99
- package/dist/utils/colors.d.ts +0 -16
- package/dist/utils/colors.js +0 -23
- package/dist/utils/logger.d.ts +0 -11
- package/dist/utils/logger.js +0 -34
package/dist/config/index.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.configManager = exports.ConfigManager = void 0;
|
|
4
|
-
var ConfigManager_1 = require("./ConfigManager");
|
|
5
|
-
Object.defineProperty(exports, "ConfigManager", { enumerable: true, get: function () { return ConfigManager_1.ConfigManager; } });
|
|
6
|
-
Object.defineProperty(exports, "configManager", { enumerable: true, get: function () { return ConfigManager_1.configManager; } });
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUFpRztBQUF4Riw4R0FBQSxhQUFhLE9BQUE7QUFBRSw4R0FBQSxhQUFhLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDb25maWdNYW5hZ2VyLCBjb25maWdNYW5hZ2VyLCBHbG9iYWxDb25maWcsIE5ldHdvcmtDcmVkZW50aWFscyB9IGZyb20gJy4vQ29uZmlnTWFuYWdlcic7XG4iXX0=
|
package/dist/datamodel/index.js
DELETED
|
@@ -1,20 +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 __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
|
|
@@ -1,81 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVtYW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGFtb2RlbC9tb2RlbHMvaHVtYW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRpbWVzdGFtcCB9IGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQgdHlwZSBDb25uZWN0aW9uU3RhdHVzID1cbiAgfCAncHJvcG9zZWQnXG4gIHwgJ2FnZW50X2FjY2VwdGVkJ1xuICB8ICdodW1hbl9wZW5kaW5nJ1xuICB8ICdjb25uZWN0ZWQnXG4gIHwgJ3JlamVjdGVkJ1xuICB8ICdyZXZva2VkJztcblxuZXhwb3J0IGludGVyZmFjZSBIdW1hblByb2ZpbGUge1xuICB1aWQ/OiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIHBob25lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHRlbGVncmFtOiBzdHJpbmc7XG4gIHBob3RvVXJsOiBzdHJpbmc7XG4gIG5vdGVzOiBzdHJpbmc7XG4gIGNyZWF0ZWRBdD86IFRpbWVzdGFtcDtcbiAgdXBkYXRlZEF0PzogVGltZXN0YW1wO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtJZGVudGl0eSB7XG4gIGlkPzogc3RyaW5nO1xuICBodW1hblVpZDogc3RyaW5nO1xuICBuZXR3b3JrSWQ6IHN0cmluZztcbiAgcHVibGljVG9rZW46IHN0cmluZztcbiAgYWdlbnREZXNjcmlwdGlvbjogc3RyaW5nO1xuICBhZGRlZEF0PzogVGltZXN0YW1wO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25Qcm9wb3NhbCB7XG4gIGlkPzogc3RyaW5nO1xuICBmcm9tSHVtYW5VaWQ6IHN0cmluZztcbiAgdG9IdW1hblVpZDogc3RyaW5nO1xuICBmcm9tQWdlbnRUb2tlbjogc3RyaW5nO1xuICB0b0FnZW50VG9rZW46IHN0cmluZztcbiAgbmV0d29ya0lkOiBzdHJpbmc7XG4gIGZyb21FeHBsYW5hdGlvbjogc3RyaW5nO1xuICB0b0V4cGxhbmF0aW9uOiBzdHJpbmc7XG4gIHN0YXR1czogQ29ubmVjdGlvblN0YXR1cztcbiAgcHJvcG9zZWRBdD86IFRpbWVzdGFtcDtcbiAgYWdlbnRBY2NlcHRlZEF0PzogVGltZXN0YW1wO1xuICBodW1hbkFjY2VwdGVkQXQ/OiBUaW1lc3RhbXA7XG4gIHJldm9rZWRBdD86IFRpbWVzdGFtcDtcbiAgcmV2b2tlZEJ5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhY3Qge1xuICBpZD86IHN0cmluZztcbiAgb3duZXJVaWQ6IHN0cmluZztcbiAgY29udGFjdFVpZDogc3RyaW5nO1xuICBjb250YWN0RGlzcGxheU5hbWU6IHN0cmluZztcbiAgY29udGFjdFBob25lOiBzdHJpbmc7XG4gIGNvbnRhY3RFbWFpbDogc3RyaW5nO1xuICBjb250YWN0VGVsZWdyYW06IHN0cmluZztcbiAgY29udGFjdFBob3RvVXJsOiBzdHJpbmc7XG4gIG5vdGVzOiBzdHJpbmc7XG4gIGxpbmtlZElkZW50aXRpZXM6IENvbnRhY3RJZGVudGl0eVtdO1xuICBjb25uZWN0aW9uSWQ6IHN0cmluZztcbiAgc3RhdHVzOiAnYWN0aXZlJyB8ICdibG9ja2VkJztcbiAgY3JlYXRlZEF0PzogVGltZXN0YW1wO1xuICB1cGRhdGVkQXQ/OiBUaW1lc3RhbXA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdElkZW50aXR5IHtcbiAgbmV0d29ya0lkOiBzdHJpbmc7XG4gIHB1YmxpY1Rva2VuOiBzdHJpbmc7XG4gIGFnZW50RGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdW1hbkF1dGhDcmVkZW50aWFscyB7XG4gIGh1bWFuVWlkOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGp3dD86IHN0cmluZztcbiAgZXhwaXJlc0F0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25Qcm9wb3NhbElucHV0IHtcbiAgdG9BZ2VudFRva2VuOiBzdHJpbmc7XG4gIG5ldHdvcmtJZDogc3RyaW5nO1xuICBmcm9tRXhwbGFuYXRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0aW9uQWNjZXB0SW5wdXQge1xuICB0b0V4cGxhbmF0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpdHlSZWdpc3RlcklucHV0IHtcbiAgbmV0d29ya0lkOiBzdHJpbmc7XG4gIHB1YmxpY1Rva2VuOiBzdHJpbmc7XG4gIGFnZW50RGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0VXBkYXRlSW5wdXQge1xuICBub3Rlcz86IHN0cmluZztcbiAgbGlua0lkZW50aXR5PzogQ29udGFjdElkZW50aXR5O1xufVxuIl19
|
|
@@ -1,110 +0,0 @@
|
|
|
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
|
-
replyTo?: string;
|
|
71
|
-
createdAt?: Timestamp;
|
|
72
|
-
}
|
|
73
|
-
export interface NetworkShort {
|
|
74
|
-
id: string;
|
|
75
|
-
name: string;
|
|
76
|
-
description: string;
|
|
77
|
-
logoUrl: string;
|
|
78
|
-
status: NetworkStatus;
|
|
79
|
-
users: number;
|
|
80
|
-
}
|
|
81
|
-
export interface MemberShort {
|
|
82
|
-
publicToken: string;
|
|
83
|
-
shortDescription: string;
|
|
84
|
-
role: MemberRole;
|
|
85
|
-
}
|
|
86
|
-
export interface ConversationShort {
|
|
87
|
-
id: string;
|
|
88
|
-
title: string;
|
|
89
|
-
type: ConversationType;
|
|
90
|
-
maxMembers: number;
|
|
91
|
-
}
|
|
92
|
-
export interface AuthCredentials {
|
|
93
|
-
publicToken: string;
|
|
94
|
-
privateKey: string;
|
|
95
|
-
}
|
|
96
|
-
export interface AuthTokens {
|
|
97
|
-
jwt: string;
|
|
98
|
-
expiresAt: number;
|
|
99
|
-
publicToken: string;
|
|
100
|
-
}
|
|
101
|
-
export interface ApiError {
|
|
102
|
-
code: string;
|
|
103
|
-
message: string;
|
|
104
|
-
details?: Record<string, unknown>;
|
|
105
|
-
}
|
|
106
|
-
export interface ApiResponse<T> {
|
|
107
|
-
success: boolean;
|
|
108
|
-
data?: T;
|
|
109
|
-
error?: ApiError;
|
|
110
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YW1vZGVsL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgTmV0d29ya1N0YXR1cyA9ICdsaXZlJyB8ICd0ZXN0aW5nJztcbmV4cG9ydCB0eXBlIE1lbWJlclJvbGUgPSAnbWVtYmVyJyB8ICdhZG1pbic7XG5leHBvcnQgdHlwZSBDb252ZXJzYXRpb25UeXBlID0gJ3RvcGljJyB8ICdkaXJlY3QnIHwgJ2dyb3VwJztcbmV4cG9ydCB0eXBlIEludml0YXRpb25TdGF0dXMgPSAncGVuZGluZycgfCAnYWNjZXB0ZWQnIHwgJ3JlamVjdGVkJztcblxuZXhwb3J0IGludGVyZmFjZSBGaXJlc3RvcmVUaW1lc3RhbXAge1xuICBfc2Vjb25kczogbnVtYmVyO1xuICBfbmFub3NlY29uZHM6IG51bWJlcjtcbiAgdG9EYXRlKCk6IERhdGU7XG59XG5cbmV4cG9ydCB0eXBlIFRpbWVzdGFtcCA9IERhdGUgfCBGaXJlc3RvcmVUaW1lc3RhbXA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29yayB7XG4gIGlkPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGxvbmdEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBsb2dvVXJsOiBzdHJpbmc7XG4gIHN0YXR1czogTmV0d29ya1N0YXR1cztcbiAgaXNQdWJsaWM6IGJvb2xlYW47XG4gIHVzZXJzOiBudW1iZXI7XG4gIGNyZWF0ZWRCeTogc3RyaW5nO1xuICBjcmVhdGVkQXQ/OiBUaW1lc3RhbXA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVtYmVyIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG5ldHdvcmtJZDogc3RyaW5nO1xuICBwdWJsaWNUb2tlbjogc3RyaW5nO1xuICBwcml2YXRlS2V5SGFzaDogc3RyaW5nO1xuICBzaG9ydERlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGxvbmdEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBqb2luZWRBdD86IFRpbWVzdGFtcDtcbiAgbGFzdEFjY2Vzc1JlYXNvbj86IHN0cmluZztcbiAgcm9sZTogTWVtYmVyUm9sZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnZpdGF0aW9uIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG5ldHdvcmtJZDogc3RyaW5nO1xuICBmcm9tVXNlcklkOiBzdHJpbmc7XG4gIHRvUHVibGljVG9rZW4/OiBzdHJpbmc7XG4gIHN0YXR1czogSW52aXRhdGlvblN0YXR1cztcbiAgY3JlYXRlZEF0PzogVGltZXN0YW1wO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVRdWVzdGlvbiB7XG4gIGlkPzogc3RyaW5nO1xuICBuZXR3b3JrSWQ6IHN0cmluZztcbiAgcXVlc3Rpb246IHN0cmluZztcbiAgb3JkZXI6IG51bWJlcjtcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udmVyc2F0aW9uIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG5ldHdvcmtJZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB0eXBlOiBDb252ZXJzYXRpb25UeXBlO1xuICBtYXhNZW1iZXJzOiBudW1iZXI7XG4gIGNyZWF0ZWRCeTogc3RyaW5nO1xuICBjcmVhdGVkQXQ/OiBUaW1lc3RhbXA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGljaXBhbnQge1xuICBpZD86IHN0cmluZztcbiAgY29udmVyc2F0aW9uSWQ6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIGpvaW5lZEF0PzogVGltZXN0YW1wO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2Uge1xuICBpZD86IHN0cmluZztcbiAgY29udmVyc2F0aW9uSWQ6IHN0cmluZztcbiAgc2VuZGVySWQ6IHN0cmluZztcbiAgcmVjZWl2ZXJJZDogc3RyaW5nIHwgbnVsbDtcbiAgY29udGVudDogc3RyaW5nO1xuICByZXBseVRvPzogc3RyaW5nO1xuICBjcmVhdGVkQXQ/OiBUaW1lc3RhbXA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya1Nob3J0IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBsb2dvVXJsOiBzdHJpbmc7XG4gIHN0YXR1czogTmV0d29ya1N0YXR1cztcbiAgdXNlcnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZW1iZXJTaG9ydCB7XG4gIHB1YmxpY1Rva2VuOiBzdHJpbmc7XG4gIHNob3J0RGVzY3JpcHRpb246IHN0cmluZztcbiAgcm9sZTogTWVtYmVyUm9sZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb252ZXJzYXRpb25TaG9ydCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHR5cGU6IENvbnZlcnNhdGlvblR5cGU7XG4gIG1heE1lbWJlcnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRoQ3JlZGVudGlhbHMge1xuICBwdWJsaWNUb2tlbjogc3RyaW5nO1xuICBwcml2YXRlS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aFRva2VucyB7XG4gIGp3dDogc3RyaW5nO1xuICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgcHVibGljVG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlFcnJvciB7XG4gIGNvZGU6IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBkZXRhaWxzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpUmVzcG9uc2U8VD4ge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBkYXRhPzogVDtcbiAgZXJyb3I/OiBBcGlFcnJvcjtcbn1cbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
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;
|
|
@@ -1,225 +0,0 @@
|
|
|
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
|
-
if (data === null || data === undefined)
|
|
10
|
-
return "null";
|
|
11
|
-
if (typeof data === "boolean")
|
|
12
|
-
return data ? "true" : "false";
|
|
13
|
-
if (typeof data === "number")
|
|
14
|
-
return String(data);
|
|
15
|
-
if (typeof data === "string") {
|
|
16
|
-
if (/^[a-zA-Z0-9_-]+$/.test(data) && data.length < 500)
|
|
17
|
-
return data;
|
|
18
|
-
return `"${data}"`;
|
|
19
|
-
}
|
|
20
|
-
if (Array.isArray(data)) {
|
|
21
|
-
if (data.length === 0)
|
|
22
|
-
return "[]";
|
|
23
|
-
const firstItem = data[0];
|
|
24
|
-
if (typeof firstItem === "object" && firstItem !== null && !Array.isArray(firstItem)) {
|
|
25
|
-
const keys = Object.keys(firstItem);
|
|
26
|
-
const header = `[${data.length}]{${keys.join(",")}}:`;
|
|
27
|
-
const lines = data.map((item) => {
|
|
28
|
-
const values = keys.map((key) => encode(item[key]));
|
|
29
|
-
return values.join(",");
|
|
30
|
-
});
|
|
31
|
-
return header + "\n" + lines.map((line) => ` ${line}`).join("\n");
|
|
32
|
-
}
|
|
33
|
-
return `[${data.length}]:` + data.map((item) => encode(item)).join(",");
|
|
34
|
-
}
|
|
35
|
-
if (typeof data === "object") {
|
|
36
|
-
const obj = data;
|
|
37
|
-
const keys = Object.keys(obj).filter(k => obj[k] !== undefined && !k.startsWith('_'));
|
|
38
|
-
if (keys.length === 0)
|
|
39
|
-
return "{}";
|
|
40
|
-
const lines = keys.map((key) => {
|
|
41
|
-
const val = encode(obj[key]);
|
|
42
|
-
if (val.includes("\n"))
|
|
43
|
-
return `${key}:\n${val.split("\n").map(l => ` ${l}`).join("\n")}`;
|
|
44
|
-
return `${key}:${val}`;
|
|
45
|
-
});
|
|
46
|
-
return lines.join("\n");
|
|
47
|
-
}
|
|
48
|
-
return String(data);
|
|
49
|
-
}
|
|
50
|
-
function decode(str) {
|
|
51
|
-
if (!str)
|
|
52
|
-
return null;
|
|
53
|
-
const trimmed = str.trim();
|
|
54
|
-
if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
|
|
55
|
-
try {
|
|
56
|
-
return JSON.parse(trimmed);
|
|
57
|
-
}
|
|
58
|
-
catch (e) { }
|
|
59
|
-
}
|
|
60
|
-
const lines = str.split("\n");
|
|
61
|
-
const result = {};
|
|
62
|
-
let hasKeyValues = false;
|
|
63
|
-
for (let i = 0; i < lines.length; i++) {
|
|
64
|
-
const line = lines[i];
|
|
65
|
-
if (!line.trim() && !line.startsWith(" "))
|
|
66
|
-
continue;
|
|
67
|
-
const colonIndex = line.indexOf(":");
|
|
68
|
-
// A key:value pair must have a colon and the key shouldn't start with space (top-level)
|
|
69
|
-
if (colonIndex > 0 && !line.startsWith(" ")) {
|
|
70
|
-
const key = line.substring(0, colonIndex).trim();
|
|
71
|
-
let valuePart = line.substring(colonIndex + 1).trim();
|
|
72
|
-
// Check if it's a multiline/nested block (next lines are indented)
|
|
73
|
-
if (i + 1 < lines.length && lines[i + 1].startsWith(" ")) {
|
|
74
|
-
const nestedLines = [];
|
|
75
|
-
if (valuePart)
|
|
76
|
-
nestedLines.push(valuePart);
|
|
77
|
-
let j = i + 1;
|
|
78
|
-
while (j < lines.length && (lines[j].startsWith(" ") || !lines[j].trim())) {
|
|
79
|
-
if (lines[j].startsWith(" ")) {
|
|
80
|
-
nestedLines.push(lines[j].substring(2));
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
nestedLines.push("");
|
|
84
|
-
}
|
|
85
|
-
j++;
|
|
86
|
-
}
|
|
87
|
-
i = j - 1;
|
|
88
|
-
result[key] = decodeValue(nestedLines.join("\n"));
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
// Just a regular value on the same line
|
|
92
|
-
result[key] = decodeValue(valuePart);
|
|
93
|
-
}
|
|
94
|
-
hasKeyValues = true;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
if (hasKeyValues) {
|
|
98
|
-
// Specific logic for common API patterns: if root has 'data' and 'success', and 'data' is an object,
|
|
99
|
-
// merge 'data' properties into root IF it helps matching the expected interface
|
|
100
|
-
if (result.data && typeof result.data === 'object' && !Array.isArray(result.data)) {
|
|
101
|
-
// For generate-keys pattern: Merge privateKey into data
|
|
102
|
-
if (result.privateKey && !result.data.privateKey) {
|
|
103
|
-
result.data.privateKey = result.privateKey;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
return result;
|
|
107
|
-
}
|
|
108
|
-
return decodeValue(trimmed);
|
|
109
|
-
}
|
|
110
|
-
function decodeValue(str) {
|
|
111
|
-
const trimmed = str.trim();
|
|
112
|
-
if (!trimmed || trimmed === "null")
|
|
113
|
-
return null;
|
|
114
|
-
if (trimmed === "true")
|
|
115
|
-
return true;
|
|
116
|
-
if (trimmed === "false")
|
|
117
|
-
return false;
|
|
118
|
-
const lines = str.split("\n");
|
|
119
|
-
const firstLine = lines[0].trim();
|
|
120
|
-
// Tabular array [count]{key1,key2}:
|
|
121
|
-
if (firstLine.startsWith("[") && firstLine.includes("]{")) {
|
|
122
|
-
const headerMatch = firstLine.match(/^\[(\d+)\]\{([^}]+)\}:?$/);
|
|
123
|
-
if (headerMatch) {
|
|
124
|
-
const keys = headerMatch[2].split(",").map((k) => k.trim());
|
|
125
|
-
const res = [];
|
|
126
|
-
for (let i = 1; i < lines.length; i++) {
|
|
127
|
-
const line = lines[i].trim();
|
|
128
|
-
if (!line)
|
|
129
|
-
continue;
|
|
130
|
-
const values = parseCommaSeparated(line);
|
|
131
|
-
const item = {};
|
|
132
|
-
keys.forEach((key, j) => {
|
|
133
|
-
if (j < values.length)
|
|
134
|
-
item[key] = parseValue(values[j]);
|
|
135
|
-
});
|
|
136
|
-
res.push(item);
|
|
137
|
-
}
|
|
138
|
-
return res;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
// Simple array [count]:val1,val2
|
|
142
|
-
if (firstLine.startsWith("[") && firstLine.includes("]:")) {
|
|
143
|
-
const headerMatch = firstLine.match(/^\[(\d+)\]:(.*)$/);
|
|
144
|
-
if (headerMatch) {
|
|
145
|
-
const remaining = headerMatch[2] + (lines.length > 1 ? "\n" + lines.slice(1).join("\n") : "");
|
|
146
|
-
return parseCommaSeparated(remaining.trim()).map(parseValue);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
// If it's a multiline string that isn't a tabular array, it might be an object
|
|
150
|
-
if (lines.length > 1 && lines.some(l => l.includes(":") && !l.startsWith(" "))) {
|
|
151
|
-
return decode(str);
|
|
152
|
-
}
|
|
153
|
-
// If it still looks like an object (key:value) but was passed as a single line value
|
|
154
|
-
if (trimmed.includes(":") && !trimmed.startsWith('"') && !trimmed.includes("\n")) {
|
|
155
|
-
const res = {};
|
|
156
|
-
const parts = parseCommaSeparated(trimmed);
|
|
157
|
-
let isObj = false;
|
|
158
|
-
parts.forEach(part => {
|
|
159
|
-
const cIndex = part.indexOf(":");
|
|
160
|
-
if (cIndex > 0) {
|
|
161
|
-
res[part.substring(0, cIndex).trim()] = parseValue(part.substring(cIndex + 1).trim());
|
|
162
|
-
isObj = true;
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
if (isObj)
|
|
166
|
-
return res;
|
|
167
|
-
}
|
|
168
|
-
return parseValue(trimmed);
|
|
169
|
-
}
|
|
170
|
-
function parseValue(val) {
|
|
171
|
-
let v = val.trim();
|
|
172
|
-
if (!v || v === "null")
|
|
173
|
-
return null;
|
|
174
|
-
if (v === "true" || v === '"true"')
|
|
175
|
-
return true;
|
|
176
|
-
if (v === "false" || v === '"false"')
|
|
177
|
-
return false;
|
|
178
|
-
if (v.startsWith('"') && v.endsWith('"')) {
|
|
179
|
-
return v.substring(1, v.length - 1);
|
|
180
|
-
}
|
|
181
|
-
if (/^-?\d+(\.\d+)?$/.test(v) && v.length < 15) {
|
|
182
|
-
return Number(v);
|
|
183
|
-
}
|
|
184
|
-
return v;
|
|
185
|
-
}
|
|
186
|
-
function parseCommaSeparated(str) {
|
|
187
|
-
const result = [];
|
|
188
|
-
let current = "";
|
|
189
|
-
let inQuotes = false;
|
|
190
|
-
for (let i = 0; i < str.length; i++) {
|
|
191
|
-
const char = str[i];
|
|
192
|
-
if (char === '"')
|
|
193
|
-
inQuotes = !inQuotes;
|
|
194
|
-
if (char === "," && !inQuotes) {
|
|
195
|
-
result.push(current.trim());
|
|
196
|
-
current = "";
|
|
197
|
-
}
|
|
198
|
-
else
|
|
199
|
-
current += char;
|
|
200
|
-
}
|
|
201
|
-
result.push(current.trim());
|
|
202
|
-
return result;
|
|
203
|
-
}
|
|
204
|
-
function isToonFormat(content) {
|
|
205
|
-
const trimmed = content.trim();
|
|
206
|
-
return (trimmed.startsWith("[") && (trimmed.includes("]{") || trimmed.includes("]:"))) ||
|
|
207
|
-
(trimmed.includes(":") && !trimmed.startsWith("{"));
|
|
208
|
-
}
|
|
209
|
-
function safeEncode(data) {
|
|
210
|
-
try {
|
|
211
|
-
return encode(data);
|
|
212
|
-
}
|
|
213
|
-
catch {
|
|
214
|
-
return null;
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
function safeDecode(str) {
|
|
218
|
-
try {
|
|
219
|
-
return decode(str);
|
|
220
|
-
}
|
|
221
|
-
catch {
|
|
222
|
-
return null;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YW1vZGVsL3Rvb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx3QkFrQ0M7QUFFRCx3QkF3REM7QUFnR0Qsb0NBSUM7QUFFRCxnQ0FFQztBQUVELGdDQUVDO0FBeE1ELFNBQWdCLE1BQU0sQ0FBQyxJQUFhO0lBQ2xDLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQ3ZELElBQUksT0FBTyxJQUFJLEtBQUssU0FBUztRQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM5RCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFBRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3BFLE9BQU8sSUFBSSxJQUFJLEdBQUcsQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNuQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLElBQUksU0FBUyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNyRixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDdEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUM5QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUUsSUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxNQUFNLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFDRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLE1BQU0sR0FBRyxHQUFHLElBQStCLENBQUM7UUFDNUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxD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IjpbImV4cG9ydCBmdW5jdGlvbiBlbmNvZGUoZGF0YTogdW5rbm93bik6IHN0cmluZyB7XG4gIGlmIChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHVuZGVmaW5lZCkgcmV0dXJuIFwibnVsbFwiO1xuICBpZiAodHlwZW9mIGRhdGEgPT09IFwiYm9vbGVhblwiKSByZXR1cm4gZGF0YSA/IFwidHJ1ZVwiIDogXCJmYWxzZVwiO1xuICBpZiAodHlwZW9mIGRhdGEgPT09IFwibnVtYmVyXCIpIHJldHVybiBTdHJpbmcoZGF0YSk7XG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgIGlmICgvXlthLXpBLVowLTlfLV0rJC8udGVzdChkYXRhKSAmJiBkYXRhLmxlbmd0aCA8IDUwMCkgcmV0dXJuIGRhdGE7XG4gICAgcmV0dXJuIGBcIiR7ZGF0YX1cImA7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICBpZiAoZGF0YS5sZW5ndGggPT09IDApIHJldHVybiBcIltdXCI7XG4gICAgY29uc3QgZmlyc3RJdGVtID0gZGF0YVswXTtcbiAgICBpZiAodHlwZW9mIGZpcnN0SXRlbSA9PT0gXCJvYmplY3RcIiAmJiBmaXJzdEl0ZW0gIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkoZmlyc3RJdGVtKSkge1xuICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGZpcnN0SXRlbSk7XG4gICAgICBjb25zdCBoZWFkZXIgPSBgWyR7ZGF0YS5sZW5ndGh9XXske2tleXMuam9pbihcIixcIil9fTpgO1xuICAgICAgY29uc3QgbGluZXMgPSBkYXRhLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBrZXlzLm1hcCgoa2V5KSA9PiBlbmNvZGUoKGl0ZW0gYXMgYW55KVtrZXldKSk7XG4gICAgICAgIHJldHVybiB2YWx1ZXMuam9pbihcIixcIik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBoZWFkZXIgKyBcIlxcblwiICsgbGluZXMubWFwKChsaW5lKSA9PiBgICAke2xpbmV9YCkuam9pbihcIlxcblwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGBbJHtkYXRhLmxlbmd0aH1dOmAgKyBkYXRhLm1hcCgoaXRlbSkgPT4gZW5jb2RlKGl0ZW0pKS5qb2luKFwiLFwiKTtcbiAgfVxuICBpZiAodHlwZW9mIGRhdGEgPT09IFwib2JqZWN0XCIpIHtcbiAgICBjb25zdCBvYmogPSBkYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopLmZpbHRlcihrID0+IG9ialtrXSAhPT0gdW5kZWZpbmVkICYmICFrLnN0YXJ0c1dpdGgoJ18nKSk7XG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAwKSByZXR1cm4gXCJ7fVwiO1xuICAgIGNvbnN0IGxpbmVzID0ga2V5cy5tYXAoKGtleSkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gZW5jb2RlKG9ialtrZXldKTtcbiAgICAgIGlmICh2YWwuaW5jbHVkZXMoXCJcXG5cIikpIHJldHVybiBgJHtrZXl9OlxcbiR7dmFsLnNwbGl0KFwiXFxuXCIpLm1hcChsID0+IGAgICR7bH1gKS5qb2luKFwiXFxuXCIpfWA7XG4gICAgICByZXR1cm4gYCR7a2V5fToke3ZhbH1gO1xuICAgIH0pO1xuICAgIHJldHVybiBsaW5lcy5qb2luKFwiXFxuXCIpO1xuICB9XG4gIHJldHVybiBTdHJpbmcoZGF0YSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGU8VCA9IHVua25vd24+KHN0cjogc3RyaW5nKTogVCB7XG4gIGlmICghc3RyKSByZXR1cm4gbnVsbCBhcyB1bmtub3duIGFzIFQ7XG4gIGNvbnN0IHRyaW1tZWQgPSBzdHIudHJpbSgpO1xuICBpZiAodHJpbW1lZC5zdGFydHNXaXRoKCd7JykgfHwgdHJpbW1lZC5zdGFydHNXaXRoKCdbJykpIHtcbiAgICB0cnkgeyByZXR1cm4gSlNPTi5wYXJzZSh0cmltbWVkKSBhcyBUOyB9IGNhdGNoIChlKSB7fVxuICB9XG5cbiAgY29uc3QgbGluZXMgPSBzdHIuc3BsaXQoXCJcXG5cIik7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICBsZXQgaGFzS2V5VmFsdWVzID0gZmFsc2U7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGxpbmUgPSBsaW5lc1tpXTtcbiAgICBpZiAoIWxpbmUudHJpbSgpICYmICFsaW5lLnN0YXJ0c1dpdGgoXCIgXCIpKSBjb250aW51ZTtcblxuICAgIGNvbnN0IGNvbG9uSW5kZXggPSBsaW5lLmluZGV4T2YoXCI6XCIpO1xuICAgIC8vIEEga2V5OnZhbHVlIHBhaXIgbXVzdCBoYXZlIGEgY29sb24gYW5kIHRoZSBrZXkgc2hvdWxkbid0IHN0YXJ0IHdpdGggc3BhY2UgKHRvcC1sZXZlbClcbiAgICBpZiAoY29sb25JbmRleCA+IDAgJiYgIWxpbmUuc3RhcnRzV2l0aChcIiBcIikpIHtcbiAgICAgIGNvbnN0IGtleSA9IGxpbmUuc3Vic3RyaW5nKDAsIGNvbG9uSW5kZXgpLnRyaW0oKTtcbiAgICAgIGxldCB2YWx1ZVBhcnQgPSBsaW5lLnN1YnN0cmluZyhjb2xvbkluZGV4ICsgMSkudHJpbSgpO1xuXG4gICAgICAvLyBDaGVjayBpZiBpdCdzIGEgbXVsdGlsaW5lL25lc3RlZCBibG9jayAobmV4dCBsaW5lcyBhcmUgaW5kZW50ZWQpXG4gICAgICBpZiAoaSArIDEgPCBsaW5lcy5sZW5ndGggJiYgbGluZXNbaSsxXS5zdGFydHNXaXRoKFwiICBcIikpIHtcbiAgICAgICAgY29uc3QgbmVzdGVkTGluZXMgPSBbXTtcbiAgICAgICAgaWYgKHZhbHVlUGFydCkgbmVzdGVkTGluZXMucHVzaCh2YWx1ZVBhcnQpO1xuICAgICAgICBsZXQgaiA9IGkgKyAxO1xuICAgICAgICB3aGlsZSAoaiA8IGxpbmVzLmxlbmd0aCAmJiAobGluZXNbal0uc3RhcnRzV2l0aChcIiAgXCIpIHx8ICFsaW5lc1tqXS50cmltKCkpKSB7XG4gICAgICAgICAgaWYgKGxpbmVzW2pdLnN0YXJ0c1dpdGgoXCIgIFwiKSkge1xuICAgICAgICAgICAgbmVzdGVkTGluZXMucHVzaChsaW5lc1tqXS5zdWJzdHJpbmcoMikpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXN0ZWRMaW5lcy5wdXNoKFwiXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBqKys7XG4gICAgICAgIH1cbiAgICAgICAgaSA9IGogLSAxO1xuICAgICAgICByZXN1bHRba2V5XSA9IGRlY29kZVZhbHVlKG5lc3RlZExpbmVzLmpvaW4oXCJcXG5cIikpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gSnVzdCBhIHJlZ3VsYXIgdmFsdWUgb24gdGhlIHNhbWUgbGluZVxuICAgICAgICByZXN1bHRba2V5XSA9IGRlY29kZVZhbHVlKHZhbHVlUGFydCk7XG4gICAgICB9XG4gICAgICBoYXNLZXlWYWx1ZXMgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChoYXNLZXlWYWx1ZXMpIHtcbiAgICAvLyBTcGVjaWZpYyBsb2dpYyBmb3IgY29tbW9uIEFQSSBwYXR0ZXJuczogaWYgcm9vdCBoYXMgJ2RhdGEnIGFuZCAnc3VjY2VzcycsIGFuZCAnZGF0YScgaXMgYW4gb2JqZWN0LFxuICAgIC8vIG1lcmdlICdkYXRhJyBwcm9wZXJ0aWVzIGludG8gcm9vdCBJRiBpdCBoZWxwcyBtYXRjaGluZyB0aGUgZXhwZWN0ZWQgaW50ZXJmYWNlXG4gICAgaWYgKHJlc3VsdC5kYXRhICYmIHR5cGVvZiByZXN1bHQuZGF0YSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkocmVzdWx0LmRhdGEpKSB7XG4gICAgICAvLyBGb3IgZ2VuZXJhdGUta2V5cyBwYXR0ZXJuOiBNZXJnZSBwcml2YXRlS2V5IGludG8gZGF0YVxuICAgICAgaWYgKHJlc3VsdC5wcml2YXRlS2V5ICYmICFyZXN1bHQuZGF0YS5wcml2YXRlS2V5KSB7XG4gICAgICAgIHJlc3VsdC5kYXRhLnByaXZhdGVLZXkgPSByZXN1bHQucHJpdmF0ZUtleTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdCBhcyB1bmtub3duIGFzIFQ7XG4gIH1cbiAgcmV0dXJuIGRlY29kZVZhbHVlKHRyaW1tZWQpIGFzIHVua25vd24gYXMgVDtcbn1cblxuZnVuY3Rpb24gZGVjb2RlVmFsdWUoc3RyOiBzdHJpbmcpOiBhbnkge1xuICBjb25zdCB0cmltbWVkID0gc3RyLnRyaW0oKTtcbiAgaWYgKCF0cmltbWVkIHx8IHRyaW1tZWQgPT09IFwibnVsbFwiKSByZXR1cm4gbnVsbDtcbiAgaWYgKHRyaW1tZWQgPT09IFwidHJ1ZVwiKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKHRyaW1tZWQgPT09IFwiZmFsc2VcIikgcmV0dXJuIGZhbHNlO1xuXG4gIGNvbnN0IGxpbmVzID0gc3RyLnNwbGl0KFwiXFxuXCIpO1xuICBjb25zdCBmaXJzdExpbmUgPSBsaW5lc1swXS50cmltKCk7XG5cbiAgLy8gVGFidWxhciBhcnJheSBbY291bnRde2tleTEsa2V5Mn06XG4gIGlmIChmaXJzdExpbmUuc3RhcnRzV2l0aChcIltcIikgJiYgZmlyc3RMaW5lLmluY2x1ZGVzKFwiXXtcIikpIHtcbiAgICBjb25zdCBoZWFkZXJNYXRjaCA9IGZpcnN0TGluZS5tYXRjaCgvXlxcWyhcXGQrKVxcXVxceyhbXn1dKylcXH06PyQvKTtcbiAgICBpZiAoaGVhZGVyTWF0Y2gpIHtcbiAgICAgIGNvbnN0IGtleXMgPSBoZWFkZXJNYXRjaFsyXS5zcGxpdChcIixcIikubWFwKChrKSA9PiBrLnRyaW0oKSk7XG4gICAgICBjb25zdCByZXM6IGFueVtdID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1tpXS50cmltKCk7XG4gICAgICAgIGlmICghbGluZSkgY29udGludWU7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHBhcnNlQ29tbWFTZXBhcmF0ZWQobGluZSk7XG4gICAgICAgIGNvbnN0IGl0ZW06IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICAgICAga2V5cy5mb3JFYWNoKChrZXksIGopID0+IHtcbiAgICAgICAgICBpZiAoaiA8IHZhbHVlcy5sZW5ndGgpIGl0ZW1ba2V5XSA9IHBhcnNlVmFsdWUodmFsdWVzW2pdKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlcy5wdXNoKGl0ZW0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gIH1cblxuICAvLyBTaW1wbGUgYXJyYXkgW2NvdW50XTp2YWwxLHZhbDJcbiAgaWYgKGZpcnN0TGluZS5zdGFydHNXaXRoKFwiW1wiKSAmJiBmaXJzdExpbmUuaW5jbHVkZXMoXCJdOlwiKSkge1xuICAgIGNvbnN0IGhlYWRlck1hdGNoID0gZmlyc3RMaW5lLm1hdGNoKC9eXFxbKFxcZCspXFxdOiguKikkLyk7XG4gICAgaWYgKGhlYWRlck1hdGNoKSB7XG4gICAgICBjb25zdCByZW1haW5pbmcgPSBoZWFkZXJNYXRjaFsyXSArIChsaW5lcy5sZW5ndGggPiAxID8gXCJcXG5cIiArIGxpbmVzLnNsaWNlKDEpLmpvaW4oXCJcXG5cIikgOiBcIlwiKTtcbiAgICAgIHJldHVybiBwYXJzZUNvbW1hU2VwYXJhdGVkKHJlbWFpbmluZy50cmltKCkpLm1hcChwYXJzZVZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiBpdCdzIGEgbXVsdGlsaW5lIHN0cmluZyB0aGF0IGlzbid0IGEgdGFidWxhciBhcnJheSwgaXQgbWlnaHQgYmUgYW4gb2JqZWN0XG4gIGlmIChsaW5lcy5sZW5ndGggPiAxICYmIGxpbmVzLnNvbWUobCA9PiBsLmluY2x1ZGVzKFwiOlwiKSAmJiAhbC5zdGFydHNXaXRoKFwiIFwiKSkpIHtcbiAgICByZXR1cm4gZGVjb2RlKHN0cik7XG4gIH1cblxuICAvLyBJZiBpdCBzdGlsbCBsb29rcyBsaWtlIGFuIG9iamVjdCAoa2V5OnZhbHVlKSBidXQgd2FzIHBhc3NlZCBhcyBhIHNpbmdsZSBsaW5lIHZhbHVlXG4gIGlmICh0cmltbWVkLmluY2x1ZGVzKFwiOlwiKSAmJiAhdHJpbW1lZC5zdGFydHNXaXRoKCdcIicpICYmICF0cmltbWVkLmluY2x1ZGVzKFwiXFxuXCIpKSB7XG4gICAgY29uc3QgcmVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgY29uc3QgcGFydHMgPSBwYXJzZUNvbW1hU2VwYXJhdGVkKHRyaW1tZWQpO1xuICAgIGxldCBpc09iaiA9IGZhbHNlO1xuICAgIHBhcnRzLmZvckVhY2gocGFydCA9PiB7XG4gICAgICBjb25zdCBjSW5kZXggPSBwYXJ0LmluZGV4T2YoXCI6XCIpO1xuICAgICAgaWYgKGNJbmRleCA+IDApIHtcbiAgICAgICAgcmVzW3BhcnQuc3Vic3RyaW5nKDAsIGNJbmRleCkudHJpbSgpXSA9IHBhcnNlVmFsdWUocGFydC5zdWJzdHJpbmcoY0luZGV4ICsgMSkudHJpbSgpKTtcbiAgICAgICAgaXNPYmogPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChpc09iaikgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHJldHVybiBwYXJzZVZhbHVlKHRyaW1tZWQpO1xufVxuXG5mdW5jdGlvbiBwYXJzZVZhbHVlKHZhbDogc3RyaW5nKTogYW55IHtcbiAgbGV0IHYgPSB2YWwudHJpbSgpO1xuICBpZiAoIXYgfHwgdiA9PT0gXCJudWxsXCIpIHJldHVybiBudWxsO1xuICBpZiAodiA9PT0gXCJ0cnVlXCIgfHwgdiA9PT0gJ1widHJ1ZVwiJykgcmV0dXJuIHRydWU7XG4gIGlmICh2ID09PSBcImZhbHNlXCIgfHwgdiA9PT0gJ1wiZmFsc2VcIicpIHJldHVybiBmYWxzZTtcbiAgXG4gIGlmICh2LnN0YXJ0c1dpdGgoJ1wiJykgJiYgdi5lbmRzV2l0aCgnXCInKSkge1xuICAgIHJldHVybiB2LnN1YnN0cmluZygxLCB2Lmxlbmd0aCAtIDEpO1xuICB9XG5cbiAgaWYgKC9eLT9cXGQrKFxcLlxcZCspPyQvLnRlc3QodikgJiYgdi5sZW5ndGggPCAxNSkge1xuICAgIHJldHVybiBOdW1iZXIodik7XG4gIH1cbiAgXG4gIHJldHVybiB2O1xufVxuXG5mdW5jdGlvbiBwYXJzZUNvbW1hU2VwYXJhdGVkKHN0cjogc3RyaW5nKTogc3RyaW5nW10ge1xuICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gIGxldCBjdXJyZW50ID0gXCJcIjtcbiAgbGV0IGluUXVvdGVzID0gZmFsc2U7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hhciA9IHN0cltpXTtcbiAgICBpZiAoY2hhciA9PT0gJ1wiJykgaW5RdW90ZXMgPSAhaW5RdW90ZXM7XG4gICAgaWYgKGNoYXIgPT09IFwiLFwiICYmICFpblF1b3Rlcykge1xuICAgICAgcmVzdWx0LnB1c2goY3VycmVudC50cmltKCkpO1xuICAgICAgY3VycmVudCA9IFwiXCI7XG4gICAgfSBlbHNlIGN1cnJlbnQgKz0gY2hhcjtcbiAgfVxuICByZXN1bHQucHVzaChjdXJyZW50LnRyaW0oKSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Rvb25Gb3JtYXQoY29udGVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHRyaW1tZWQgPSBjb250ZW50LnRyaW0oKTtcbiAgcmV0dXJuICh0cmltbWVkLnN0YXJ0c1dpdGgoXCJbXCIpICYmICh0cmltbWVkLmluY2x1ZGVzKFwiXXtcIikgfHwgdHJpbW1lZC5pbmNsdWRlcyhcIl06XCIpKSkgfHxcbiAgICAgICAgICh0cmltbWVkLmluY2x1ZGVzKFwiOlwiKSAmJiAhdHJpbW1lZC5zdGFydHNXaXRoKFwie1wiKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYWZlRW5jb2RlKGRhdGE6IHVua25vd24pOiBzdHJpbmcgfCBudWxsIHtcbiAgdHJ5IHsgcmV0dXJuIGVuY29kZShkYXRhKTsgfSBjYXRjaCB7IHJldHVybiBudWxsOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYWZlRGVjb2RlPFQgPSB1bmtub3duPihzdHI6IHN0cmluZyk6IFQgfCBudWxsIHtcbiAgdHJ5IHsgcmV0dXJuIGRlY29kZTxUPihzdHIpOyB9IGNhdGNoIHsgcmV0dXJuIG51bGw7IH1cbn1cbiJdfQ==
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export interface PlanLimits {
|
|
2
|
-
plan: 'starter' | 'pro' | 'elite';
|
|
3
|
-
maxNetworks: number;
|
|
4
|
-
skills: string[];
|
|
5
|
-
premiumLlms: boolean;
|
|
6
|
-
stripePriceId?: string;
|
|
7
|
-
stripeCustomerId?: string;
|
|
8
|
-
}
|
|
9
|
-
export declare class LimitsManager {
|
|
10
|
-
private cached;
|
|
11
|
-
getLimits(): Promise<PlanLimits | null>;
|
|
12
|
-
canJoinNetwork(currentNetworkCount: number): Promise<{
|
|
13
|
-
allowed: boolean;
|
|
14
|
-
reason?: string;
|
|
15
|
-
}>;
|
|
16
|
-
canCreateNetwork(currentNetworkCount: number): Promise<{
|
|
17
|
-
allowed: boolean;
|
|
18
|
-
reason?: string;
|
|
19
|
-
}>;
|
|
20
|
-
hasSkill(skill: string): boolean;
|
|
21
|
-
clearCache(): void;
|
|
22
|
-
}
|
|
23
|
-
export declare const limitsManager: LimitsManager;
|
|
@@ -1,99 +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.limitsManager = exports.LimitsManager = void 0;
|
|
37
|
-
const path = __importStar(require("path"));
|
|
38
|
-
const os = __importStar(require("os"));
|
|
39
|
-
const fs = __importStar(require("fs-extra"));
|
|
40
|
-
const CONFIG_DIR = path.join(os.homedir(), '.agenticpool');
|
|
41
|
-
const LIMITS_FILE = path.join(CONFIG_DIR, 'limits.json');
|
|
42
|
-
const PLAN_DEFAULTS = {
|
|
43
|
-
starter: { maxNetworks: 1, skills: ['agenticpool-social', 'openclaw-free'], premiumLlms: false },
|
|
44
|
-
pro: { maxNetworks: 3, skills: ['agenticpool-social', 'openclaw-free', 'google-search', 'web-scraper', 'translation'], premiumLlms: false },
|
|
45
|
-
elite: { maxNetworks: Infinity, skills: ['agenticpool-social', 'openclaw-free', 'google-search', 'web-scraper', 'translation', 'news-api', 'advanced-summarization'], premiumLlms: true },
|
|
46
|
-
};
|
|
47
|
-
class LimitsManager {
|
|
48
|
-
constructor() {
|
|
49
|
-
this.cached = null;
|
|
50
|
-
}
|
|
51
|
-
async getLimits() {
|
|
52
|
-
if (this.cached)
|
|
53
|
-
return this.cached;
|
|
54
|
-
const exists = await fs.pathExists(LIMITS_FILE);
|
|
55
|
-
if (!exists)
|
|
56
|
-
return null;
|
|
57
|
-
try {
|
|
58
|
-
const raw = await fs.readJson(LIMITS_FILE);
|
|
59
|
-
this.cached = {
|
|
60
|
-
plan: raw.plan || 'starter',
|
|
61
|
-
maxNetworks: raw.maxNetworks ?? PLAN_DEFAULTS[raw.plan]?.maxNetworks ?? 1,
|
|
62
|
-
skills: raw.skills || PLAN_DEFAULTS[raw.plan]?.skills || [],
|
|
63
|
-
premiumLlms: raw.premiumLlms ?? PLAN_DEFAULTS[raw.plan]?.premiumLlms ?? false,
|
|
64
|
-
stripePriceId: raw.stripePriceId,
|
|
65
|
-
stripeCustomerId: raw.stripeCustomerId,
|
|
66
|
-
};
|
|
67
|
-
return this.cached;
|
|
68
|
-
}
|
|
69
|
-
catch {
|
|
70
|
-
return null;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
async canJoinNetwork(currentNetworkCount) {
|
|
74
|
-
const limits = await this.getLimits();
|
|
75
|
-
if (!limits)
|
|
76
|
-
return { allowed: true };
|
|
77
|
-
if (currentNetworkCount >= limits.maxNetworks) {
|
|
78
|
-
return {
|
|
79
|
-
allowed: false,
|
|
80
|
-
reason: `Limit reached: Your ${limits.plan} plan allows a maximum of ${limits.maxNetworks} network(s). Upgrade at shop.agenticpool.net`,
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
return { allowed: true };
|
|
84
|
-
}
|
|
85
|
-
async canCreateNetwork(currentNetworkCount) {
|
|
86
|
-
return this.canJoinNetwork(currentNetworkCount);
|
|
87
|
-
}
|
|
88
|
-
hasSkill(skill) {
|
|
89
|
-
if (!this.cached)
|
|
90
|
-
return true;
|
|
91
|
-
return this.cached.skills.includes(skill);
|
|
92
|
-
}
|
|
93
|
-
clearCache() {
|
|
94
|
-
this.cached = null;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
exports.LimitsManager = LimitsManager;
|
|
98
|
-
exports.limitsManager = new LimitsManager();
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGltaXRzTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saW1pdHMvTGltaXRzTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0IsdUNBQXlCO0FBQ3pCLDZDQUErQjtBQUUvQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQztBQUMzRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztBQVd6RCxNQUFNLGFBQWEsR0FBd0M7SUFDekQsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxlQUFlLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO0lBQ2hHLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtJQUMzSSxLQUFLLEVBQUUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsd0JBQXdCLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO0NBQzFMLENBQUM7QUFFRixNQUFhLGFBQWE7SUFBMUI7UUFDVSxXQUFNLEdBQXNCLElBQUksQ0FBQztJQWtEM0MsQ0FBQztJQWhEQyxLQUFLLENBQUMsU0FBUztRQUNiLElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFcEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFekIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxNQUFNLEdBQUc7Z0JBQ1osSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksU0FBUztnQkFDM0IsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLElBQUksQ0FBQztnQkFDekUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLElBQUksRUFBRTtnQkFDM0QsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLElBQUksS0FBSztnQkFDN0UsYUFBYSxFQUFFLEdBQUcsQ0FBQyxhQUFhO2dCQUNoQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsZ0JBQWdCO2FBQ3ZDLENBQUM7WUFDRixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLG1CQUEyQjtRQUM5QyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFdEMsSUFBSSxtQkFBbUIsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDOUMsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxNQUFNLEVBQUUsdUJBQXVCLE1BQU0sQ0FBQyxJQUFJLDZCQUE2QixNQUFNLENBQUMsV0FBVyw4Q0FBOEM7YUFDeEksQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsbUJBQTJCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQW5ERCxzQ0FtREM7QUFFWSxRQUFBLGFBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcblxuY29uc3QgQ09ORklHX0RJUiA9IHBhdGguam9pbihvcy5ob21lZGlyKCksICcuYWdlbnRpY3Bvb2wnKTtcbmNvbnN0IExJTUlUU19GSUxFID0gcGF0aC5qb2luKENPTkZJR19ESVIsICdsaW1pdHMuanNvbicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsYW5MaW1pdHMge1xuICBwbGFuOiAnc3RhcnRlcicgfCAncHJvJyB8ICdlbGl0ZSc7XG4gIG1heE5ldHdvcmtzOiBudW1iZXI7XG4gIHNraWxsczogc3RyaW5nW107XG4gIHByZW1pdW1MbG1zOiBib29sZWFuO1xuICBzdHJpcGVQcmljZUlkPzogc3RyaW5nO1xuICBzdHJpcGVDdXN0b21lcklkPzogc3RyaW5nO1xufVxuXG5jb25zdCBQTEFOX0RFRkFVTFRTOiBSZWNvcmQ8c3RyaW5nLCBQYXJ0aWFsPFBsYW5MaW1pdHM+PiA9IHtcbiAgc3RhcnRlcjogeyBtYXhOZXR3b3JrczogMSwgc2tpbGxzOiBbJ2FnZW50aWNwb29sLXNvY2lhbCcsICdvcGVuY2xhdy1mcmVlJ10sIHByZW1pdW1MbG1zOiBmYWxzZSB9LFxuICBwcm86IHsgbWF4TmV0d29ya3M6IDMsIHNraWxsczogWydhZ2VudGljcG9vbC1zb2NpYWwnLCAnb3BlbmNsYXctZnJlZScsICdnb29nbGUtc2VhcmNoJywgJ3dlYi1zY3JhcGVyJywgJ3RyYW5zbGF0aW9uJ10sIHByZW1pdW1MbG1zOiBmYWxzZSB9LFxuICBlbGl0ZTogeyBtYXhOZXR3b3JrczogSW5maW5pdHksIHNraWxsczogWydhZ2VudGljcG9vbC1zb2NpYWwnLCAnb3BlbmNsYXctZnJlZScsICdnb29nbGUtc2VhcmNoJywgJ3dlYi1zY3JhcGVyJywgJ3RyYW5zbGF0aW9uJywgJ25ld3MtYXBpJywgJ2FkdmFuY2VkLXN1bW1hcml6YXRpb24nXSwgcHJlbWl1bUxsbXM6IHRydWUgfSxcbn07XG5cbmV4cG9ydCBjbGFzcyBMaW1pdHNNYW5hZ2VyIHtcbiAgcHJpdmF0ZSBjYWNoZWQ6IFBsYW5MaW1pdHMgfCBudWxsID0gbnVsbDtcblxuICBhc3luYyBnZXRMaW1pdHMoKTogUHJvbWlzZTxQbGFuTGltaXRzIHwgbnVsbD4ge1xuICAgIGlmICh0aGlzLmNhY2hlZCkgcmV0dXJuIHRoaXMuY2FjaGVkO1xuXG4gICAgY29uc3QgZXhpc3RzID0gYXdhaXQgZnMucGF0aEV4aXN0cyhMSU1JVFNfRklMRSk7XG4gICAgaWYgKCFleGlzdHMpIHJldHVybiBudWxsO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJhdyA9IGF3YWl0IGZzLnJlYWRKc29uKExJTUlUU19GSUxFKTtcbiAgICAgIHRoaXMuY2FjaGVkID0ge1xuICAgICAgICBwbGFuOiByYXcucGxhbiB8fCAnc3RhcnRlcicsXG4gICAgICAgIG1heE5ldHdvcmtzOiByYXcubWF4TmV0d29ya3MgPz8gUExBTl9ERUZBVUxUU1tyYXcucGxhbl0/Lm1heE5ldHdvcmtzID8/IDEsXG4gICAgICAgIHNraWxsczogcmF3LnNraWxscyB8fCBQTEFOX0RFRkFVTFRTW3Jhdy5wbGFuXT8uc2tpbGxzIHx8IFtdLFxuICAgICAgICBwcmVtaXVtTGxtczogcmF3LnByZW1pdW1MbG1zID8/IFBMQU5fREVGQVVMVFNbcmF3LnBsYW5dPy5wcmVtaXVtTGxtcyA/PyBmYWxzZSxcbiAgICAgICAgc3RyaXBlUHJpY2VJZDogcmF3LnN0cmlwZVByaWNlSWQsXG4gICAgICAgIHN0cmlwZUN1c3RvbWVySWQ6IHJhdy5zdHJpcGVDdXN0b21lcklkLFxuICAgICAgfTtcbiAgICAgIHJldHVybiB0aGlzLmNhY2hlZDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNhbkpvaW5OZXR3b3JrKGN1cnJlbnROZXR3b3JrQ291bnQ6IG51bWJlcik6IFByb21pc2U8eyBhbGxvd2VkOiBib29sZWFuOyByZWFzb24/OiBzdHJpbmcgfT4ge1xuICAgIGNvbnN0IGxpbWl0cyA9IGF3YWl0IHRoaXMuZ2V0TGltaXRzKCk7XG4gICAgaWYgKCFsaW1pdHMpIHJldHVybiB7IGFsbG93ZWQ6IHRydWUgfTtcblxuICAgIGlmIChjdXJyZW50TmV0d29ya0NvdW50ID49IGxpbWl0cy5tYXhOZXR3b3Jrcykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWxsb3dlZDogZmFsc2UsXG4gICAgICAgIHJlYXNvbjogYExpbWl0IHJlYWNoZWQ6IFlvdXIgJHtsaW1pdHMucGxhbn0gcGxhbiBhbGxvd3MgYSBtYXhpbXVtIG9mICR7bGltaXRzLm1heE5ldHdvcmtzfSBuZXR3b3JrKHMpLiBVcGdyYWRlIGF0IHNob3AuYWdlbnRpY3Bvb2wubmV0YCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgYWxsb3dlZDogdHJ1ZSB9O1xuICB9XG5cbiAgYXN5bmMgY2FuQ3JlYXRlTmV0d29yayhjdXJyZW50TmV0d29ya0NvdW50OiBudW1iZXIpOiBQcm9taXNlPHsgYWxsb3dlZDogYm9vbGVhbjsgcmVhc29uPzogc3RyaW5nIH0+IHtcbiAgICByZXR1cm4gdGhpcy5jYW5Kb2luTmV0d29yayhjdXJyZW50TmV0d29ya0NvdW50KTtcbiAgfVxuXG4gIGhhc1NraWxsKHNraWxsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuY2FjaGVkKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcy5jYWNoZWQuc2tpbGxzLmluY2x1ZGVzKHNraWxsKTtcbiAgfVxuXG4gIGNsZWFyQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZWQgPSBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBsaW1pdHNNYW5hZ2VyID0gbmV3IExpbWl0c01hbmFnZXIoKTtcbiJdfQ==
|