agenticpool 1.0.18 → 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.
Files changed (132) hide show
  1. package/README.md +68 -118
  2. package/bin/agenticpool.js +6 -0
  3. package/dist/adapters/autogen.d.ts +33 -0
  4. package/dist/adapters/autogen.d.ts.map +1 -0
  5. package/dist/adapters/autogen.js +49 -0
  6. package/dist/adapters/autogen.js.map +1 -0
  7. package/dist/adapters/crewai.d.ts +30 -0
  8. package/dist/adapters/crewai.d.ts.map +1 -0
  9. package/dist/adapters/crewai.js +48 -0
  10. package/dist/adapters/crewai.js.map +1 -0
  11. package/dist/adapters/langchain.d.ts +30 -0
  12. package/dist/adapters/langchain.d.ts.map +1 -0
  13. package/dist/adapters/langchain.js +53 -0
  14. package/dist/adapters/langchain.js.map +1 -0
  15. package/dist/adapters/llamaindex.d.ts +29 -0
  16. package/dist/adapters/llamaindex.d.ts.map +1 -0
  17. package/dist/adapters/llamaindex.js +47 -0
  18. package/dist/adapters/llamaindex.js.map +1 -0
  19. package/dist/adapters/openai.d.ts +21 -0
  20. package/dist/adapters/openai.d.ts.map +1 -0
  21. package/dist/adapters/openai.js +51 -0
  22. package/dist/adapters/openai.js.map +1 -0
  23. package/dist/cli.d.ts +3 -0
  24. package/dist/cli.d.ts.map +1 -0
  25. package/dist/cli.js +187 -0
  26. package/dist/cli.js.map +1 -0
  27. package/dist/client.d.ts +115 -0
  28. package/dist/client.d.ts.map +1 -0
  29. package/dist/client.js +251 -0
  30. package/dist/client.js.map +1 -0
  31. package/dist/commands/balance.d.ts +4 -0
  32. package/dist/commands/balance.d.ts.map +1 -0
  33. package/dist/commands/balance.js +34 -0
  34. package/dist/commands/balance.js.map +1 -0
  35. package/dist/commands/contract.d.ts +20 -0
  36. package/dist/commands/contract.d.ts.map +1 -0
  37. package/dist/commands/contract.js +188 -0
  38. package/dist/commands/contract.js.map +1 -0
  39. package/dist/commands/favor.d.ts +21 -0
  40. package/dist/commands/favor.d.ts.map +1 -0
  41. package/dist/commands/favor.js +144 -0
  42. package/dist/commands/favor.js.map +1 -0
  43. package/dist/commands/init.d.ts +5 -0
  44. package/dist/commands/init.d.ts.map +1 -0
  45. package/dist/commands/init.js +77 -0
  46. package/dist/commands/init.js.map +1 -0
  47. package/dist/commands/reputation.d.ts +2 -0
  48. package/dist/commands/reputation.d.ts.map +1 -0
  49. package/dist/commands/reputation.js +38 -0
  50. package/dist/commands/reputation.js.map +1 -0
  51. package/dist/commands/serve.d.ts +7 -0
  52. package/dist/commands/serve.d.ts.map +1 -0
  53. package/dist/commands/serve.js +110 -0
  54. package/dist/commands/serve.js.map +1 -0
  55. package/dist/commands/services.d.ts +16 -0
  56. package/dist/commands/services.d.ts.map +1 -0
  57. package/dist/commands/services.js +93 -0
  58. package/dist/commands/services.js.map +1 -0
  59. package/dist/commands/trust.d.ts +2 -0
  60. package/dist/commands/trust.d.ts.map +1 -0
  61. package/dist/commands/trust.js +44 -0
  62. package/dist/commands/trust.js.map +1 -0
  63. package/dist/commands/whoami.d.ts +2 -0
  64. package/dist/commands/whoami.d.ts.map +1 -0
  65. package/dist/commands/whoami.js +32 -0
  66. package/dist/commands/whoami.js.map +1 -0
  67. package/dist/config.d.ts +30 -0
  68. package/dist/config.d.ts.map +1 -0
  69. package/dist/config.js +72 -0
  70. package/dist/config.js.map +1 -0
  71. package/dist/economy/duckies.d.ts +75 -0
  72. package/dist/economy/duckies.d.ts.map +1 -0
  73. package/dist/economy/duckies.js +386 -0
  74. package/dist/economy/duckies.js.map +1 -0
  75. package/dist/index.d.ts +12 -2
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +12 -29
  78. package/dist/index.js.map +1 -0
  79. package/dist/types.d.ts +90 -0
  80. package/dist/types.d.ts.map +1 -0
  81. package/dist/types.js +5 -0
  82. package/dist/types.js.map +1 -0
  83. package/package.json +28 -38
  84. package/LICENSE +0 -1
  85. package/dist/api/ApiClient.d.ts +0 -37
  86. package/dist/api/ApiClient.js +0 -160
  87. package/dist/api/index.d.ts +0 -1
  88. package/dist/api/index.js +0 -6
  89. package/dist/auth/AuthHelper.d.ts +0 -17
  90. package/dist/auth/AuthHelper.js +0 -197
  91. package/dist/commands/auth.d.ts +0 -2
  92. package/dist/commands/auth.js +0 -206
  93. package/dist/commands/config.d.ts +0 -2
  94. package/dist/commands/config.js +0 -51
  95. package/dist/commands/connections.d.ts +0 -2
  96. package/dist/commands/connections.js +0 -244
  97. package/dist/commands/contacts.d.ts +0 -2
  98. package/dist/commands/contacts.js +0 -205
  99. package/dist/commands/conversations.d.ts +0 -2
  100. package/dist/commands/conversations.js +0 -251
  101. package/dist/commands/errors.d.ts +0 -2
  102. package/dist/commands/errors.js +0 -73
  103. package/dist/commands/humans.d.ts +0 -2
  104. package/dist/commands/humans.js +0 -161
  105. package/dist/commands/identities.d.ts +0 -2
  106. package/dist/commands/identities.js +0 -141
  107. package/dist/commands/index.d.ts +0 -11
  108. package/dist/commands/index.js +0 -26
  109. package/dist/commands/messages.d.ts +0 -2
  110. package/dist/commands/messages.js +0 -154
  111. package/dist/commands/networks.d.ts +0 -2
  112. package/dist/commands/networks.js +0 -430
  113. package/dist/commands/profile.d.ts +0 -2
  114. package/dist/commands/profile.js +0 -225
  115. package/dist/config/ConfigManager.d.ts +0 -47
  116. package/dist/config/ConfigManager.js +0 -234
  117. package/dist/config/index.d.ts +0 -1
  118. package/dist/config/index.js +0 -7
  119. package/dist/datamodel/index.d.ts +0 -3
  120. package/dist/datamodel/index.js +0 -20
  121. package/dist/datamodel/models/humans.d.ts +0 -81
  122. package/dist/datamodel/models/humans.js +0 -3
  123. package/dist/datamodel/models/index.d.ts +0 -110
  124. package/dist/datamodel/models/index.js +0 -3
  125. package/dist/datamodel/toon/index.d.ts +0 -5
  126. package/dist/datamodel/toon/index.js +0 -211
  127. package/dist/limits/LimitsManager.d.ts +0 -23
  128. package/dist/limits/LimitsManager.js +0 -99
  129. package/dist/utils/colors.d.ts +0 -16
  130. package/dist/utils/colors.js +0 -23
  131. package/dist/utils/logger.d.ts +0 -11
  132. package/dist/utils/logger.js +0 -34
@@ -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,211 +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);
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())
66
- continue;
67
- const colonIndex = line.indexOf(":");
68
- if (colonIndex > 0 && !line.startsWith(" ")) {
69
- const key = line.substring(0, colonIndex).trim();
70
- let valuePart = line.substring(colonIndex + 1).trim();
71
- if (i + 1 < lines.length && lines[i + 1].startsWith(" ")) {
72
- const nestedLines = [];
73
- if (valuePart)
74
- nestedLines.push(valuePart);
75
- let j = i + 1;
76
- while (j < lines.length && (lines[j].startsWith(" ") || !lines[j].trim())) {
77
- if (lines[j].trim())
78
- nestedLines.push(lines[j].substring(2));
79
- else
80
- nestedLines.push("");
81
- j++;
82
- }
83
- i = j - 1;
84
- result[key] = decodeValue(nestedLines.join("\n"));
85
- }
86
- else {
87
- result[key] = decodeValue(valuePart);
88
- }
89
- hasKeyValues = true;
90
- }
91
- }
92
- if (hasKeyValues) {
93
- // Flatten logic for common API patterns like data:publicToken:xyz
94
- if (result.data && typeof result.data === 'object' && !Array.isArray(result.data)) {
95
- // Merge properties from 'data' into top level if they don't collide
96
- // OR specifically for generate-keys pattern:
97
- if (result.privateKey && !result.data.privateKey) {
98
- result.data.privateKey = result.privateKey;
99
- }
100
- }
101
- return result;
102
- }
103
- return decodeValue(trimmed);
104
- }
105
- function decodeValue(str) {
106
- const trimmed = str.trim();
107
- if (!trimmed || trimmed === "null")
108
- return null;
109
- if (trimmed === "true")
110
- return true;
111
- if (trimmed === "false")
112
- return false;
113
- const lines = trimmed.split("\n");
114
- const firstLine = lines[0].trim();
115
- if (firstLine.startsWith("[") && firstLine.includes("]{")) {
116
- const headerMatch = firstLine.match(/^\[(\d+)\]\{([^}]+)\}:?$/);
117
- if (headerMatch) {
118
- const keys = headerMatch[2].split(",").map((k) => k.trim());
119
- const res = [];
120
- for (let i = 1; i < lines.length; i++) {
121
- const line = lines[i].trim();
122
- if (!line)
123
- continue;
124
- const values = parseCommaSeparated(line);
125
- const item = {};
126
- keys.forEach((key, j) => {
127
- if (j < values.length)
128
- item[key] = parseValue(values[j]);
129
- });
130
- res.push(item);
131
- }
132
- return res;
133
- }
134
- }
135
- if (firstLine.startsWith("[") && firstLine.includes("]:")) {
136
- const headerMatch = firstLine.match(/^\[(\d+)\]:(.*)$/);
137
- if (headerMatch) {
138
- const remaining = headerMatch[2] + (lines.length > 1 ? "\n" + lines.slice(1).join("\n") : "");
139
- return parseCommaSeparated(remaining.trim()).map(parseValue);
140
- }
141
- }
142
- if (trimmed.includes(":") && !trimmed.startsWith('"') && !trimmed.includes("\n")) {
143
- const res = {};
144
- const parts = parseCommaSeparated(trimmed);
145
- let isObj = false;
146
- parts.forEach(part => {
147
- const cIndex = part.indexOf(":");
148
- if (cIndex > 0) {
149
- res[part.substring(0, cIndex).trim()] = parseValue(part.substring(cIndex + 1).trim());
150
- isObj = true;
151
- }
152
- });
153
- if (isObj)
154
- return res;
155
- }
156
- return parseValue(trimmed);
157
- }
158
- function parseValue(val) {
159
- const v = val.trim();
160
- if (!v || v === "null")
161
- return null;
162
- if (v === "true" || v === '"true"')
163
- return true;
164
- if (v === "false" || v === '"false"')
165
- return false;
166
- if (v.startsWith('"') && v.endsWith('"'))
167
- return v.substring(1, v.length - 1);
168
- if (/^-?\d+(\.\d+)?$/.test(v) && v.length < 15)
169
- return Number(v);
170
- return v;
171
- }
172
- function parseCommaSeparated(str) {
173
- const result = [];
174
- let current = "";
175
- let inQuotes = false;
176
- for (let i = 0; i < str.length; i++) {
177
- const char = str[i];
178
- if (char === '"')
179
- inQuotes = !inQuotes;
180
- if (char === "," && !inQuotes) {
181
- result.push(current.trim());
182
- current = "";
183
- }
184
- else
185
- current += char;
186
- }
187
- result.push(current.trim());
188
- return result;
189
- }
190
- function isToonFormat(content) {
191
- const trimmed = content.trim();
192
- return (trimmed.startsWith("[") && (trimmed.includes("]{") || trimmed.includes("]:"))) ||
193
- (trimmed.includes(":") && !trimmed.startsWith("{"));
194
- }
195
- function safeEncode(data) {
196
- try {
197
- return encode(data);
198
- }
199
- catch {
200
- return null;
201
- }
202
- }
203
- function safeDecode(str) {
204
- try {
205
- return decode(str);
206
- }
207
- catch {
208
- return null;
209
- }
210
- }
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YW1vZGVsL3Rvb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx3QkFrQ0M7QUFFRCx3QkFnREM7QUFpRkQsb0NBSUM7QUFFRCxnQ0FFQztBQUVELGdDQUVDO0FBakxELFNBQWdCLE1BQU0sQ0FBQyxJQUFhO0lBQ2xDLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQ3ZELElBQUksT0FBTyxJQUFJLEtBQUssU0FBUztRQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM5RCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFBRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3BFLE9BQU8sSUFBSSxJQUFJLEdBQUcsQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNuQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLElBQUksU0FBUyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNyRixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFD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QUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDdEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQUUsU0FBUztRQUMzQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqRCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN4RCxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksU0FBUztvQkFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNkLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDM0UsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMs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SSxDQUFDLENBQUMsQ0FBQztRQUMvRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxJQUFhO0lBQ3RDLElBQUksQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUFDLE9BQU8sSUFBSSxDQUFDO0lBQUMsQ0FBQztBQUNyRCxDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUFjLEdBQVc7SUFDakQsSUFBSSxDQUFDO1FBQUMsT0FBTyxNQUFNLENBQUksR0FBRyxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQUMsT0FBTyxJQUFJLENBQUM7SUFBQyxDQUFDO0FBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZW5jb2RlKGRhdGE6IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB1bmRlZmluZWQpIHJldHVybiBcIm51bGxcIjtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSBcImJvb2xlYW5cIikgcmV0dXJuIGRhdGEgPyBcInRydWVcIiA6IFwiZmFsc2VcIjtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSBcIm51bWJlclwiKSByZXR1cm4gU3RyaW5nKGRhdGEpO1xuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICBpZiAoL15bYS16QS1aMC05Xy1dKyQvLnRlc3QoZGF0YSkgJiYgZGF0YS5sZW5ndGggPCA1MDApIHJldHVybiBkYXRhO1xuICAgIHJldHVybiBgXCIke2RhdGF9XCJgO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgaWYgKGRhdGEubGVuZ3RoID09PSAwKSByZXR1cm4gXCJbXVwiO1xuICAgIGNvbnN0IGZpcnN0SXRlbSA9IGRhdGFbMF07XG4gICAgaWYgKHR5cGVvZiBmaXJzdEl0ZW0gPT09IFwib2JqZWN0XCIgJiYgZmlyc3RJdGVtICE9PSBudWxsICYmICFBcnJheS5pc0FycmF5KGZpcnN0SXRlbSkpIHtcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhmaXJzdEl0ZW0pO1xuICAgICAgY29uc3QgaGVhZGVyID0gYFske2RhdGEubGVuZ3RofV17JHtrZXlzLmpvaW4oXCIsXCIpfX06YDtcbiAgICAgIGNvbnN0IGxpbmVzID0gZGF0YS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0ga2V5cy5tYXAoKGtleSkgPT4gZW5jb2RlKGl0ZW1ba2V5XSkpO1xuICAgICAgICByZXR1cm4gdmFsdWVzLmpvaW4oXCIsXCIpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gaGVhZGVyICsgXCJcXG5cIiArIGxpbmVzLm1hcCgobGluZSkgPT4gYCAgJHtsaW5lfWApLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuICAgIHJldHVybiBgWyR7ZGF0YS5sZW5ndGh9XTpgICsgZGF0YS5tYXAoKGl0ZW0pID0+IGVuY29kZShpdGVtKSkuam9pbihcIixcIik7XG4gIH1cbiAgaWYgKHR5cGVvZiBkYXRhID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3Qgb2JqID0gZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqKS5maWx0ZXIoayA9PiBvYmpba10gIT09IHVuZGVmaW5lZCk7XG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAwKSByZXR1cm4gXCJ7fVwiO1xuICAgIGNvbnN0IGxpbmVzID0ga2V5cy5tYXAoKGtleSkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gZW5jb2RlKG9ialtrZXldKTtcbiAgICAgIGlmICh2YWwuaW5jbHVkZXMoXCJcXG5cIikpIHJldHVybiBgJHtrZXl9OlxcbiR7dmFsLnNwbGl0KFwiXFxuXCIpLm1hcChsID0+IGAgICR7bH1gKS5qb2luKFwiXFxuXCIpfWA7XG4gICAgICByZXR1cm4gYCR7a2V5fToke3ZhbH1gO1xuICAgIH0pO1xuICAgIHJldHVybiBsaW5lcy5qb2luKFwiXFxuXCIpO1xuICB9XG4gIHJldHVybiBTdHJpbmcoZGF0YSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGU8VCA9IHVua25vd24+KHN0cjogc3RyaW5nKTogVCB7XG4gIGlmICghc3RyKSByZXR1cm4gbnVsbCBhcyB1bmtub3duIGFzIFQ7XG4gIGNvbnN0IHRyaW1tZWQgPSBzdHIudHJpbSgpO1xuICBpZiAodHJpbW1lZC5zdGFydHNXaXRoKCd7JykgfHwgdHJpbW1lZC5zdGFydHNXaXRoKCdbJykpIHtcbiAgICB0cnkgeyByZXR1cm4gSlNPTi5wYXJzZSh0cmltbWVkKSBhcyBUOyB9IGNhdGNoIChlKSB7fVxuICB9XG5cbiAgY29uc3QgbGluZXMgPSBzdHIuc3BsaXQoXCJcXG5cIik7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICBsZXQgaGFzS2V5VmFsdWVzID0gZmFsc2U7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGxpbmUgPSBsaW5lc1tpXTtcbiAgICBpZiAoIWxpbmUudHJpbSgpKSBjb250aW51ZTtcbiAgICBjb25zdCBjb2xvbkluZGV4ID0gbGluZS5pbmRleE9mKFwiOlwiKTtcbiAgICBpZiAoY29sb25JbmRleCA+IDAgJiYgIWxpbmUuc3RhcnRzV2l0aChcIiBcIikpIHtcbiAgICAgIGNvbnN0IGtleSA9IGxpbmUuc3Vic3RyaW5nKDAsIGNvbG9uSW5kZXgpLnRyaW0oKTtcbiAgICAgIGxldCB2YWx1ZVBhcnQgPSBsaW5lLnN1YnN0cmluZyhjb2xvbkluZGV4ICsgMSkudHJpbSgpO1xuICAgICAgaWYgKGkgKyAxIDwgbGluZXMubGVuZ3RoICYmIGxpbmVzW2krMV0uc3RhcnRzV2l0aChcIiAgXCIpKSB7XG4gICAgICAgIGNvbnN0IG5lc3RlZExpbmVzID0gW107XG4gICAgICAgIGlmICh2YWx1ZVBhcnQpIG5lc3RlZExpbmVzLnB1c2godmFsdWVQYXJ0KTtcbiAgICAgICAgbGV0IGogPSBpICsgMTtcbiAgICAgICAgd2hpbGUgKGogPCBsaW5lcy5sZW5ndGggJiYgKGxpbmVzW2pdLnN0YXJ0c1dpdGgoXCIgIFwiKSB8fCAhbGluZXNbal0udHJpbSgpKSkge1xuICAgICAgICAgIGlmIChsaW5lc1tqXS50cmltKCkpIG5lc3RlZExpbmVzLnB1c2gobGluZXNbal0uc3Vic3RyaW5nKDIpKTtcbiAgICAgICAgICBlbHNlIG5lc3RlZExpbmVzLnB1c2goXCJcIik7XG4gICAgICAgICAgaisrO1xuICAgICAgICB9XG4gICAgICAgIGkgPSBqIC0gMTtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBkZWNvZGVWYWx1ZShuZXN0ZWRMaW5lcy5qb2luKFwiXFxuXCIpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gZGVjb2RlVmFsdWUodmFsdWVQYXJ0KTtcbiAgICAgIH1cbiAgICAgIGhhc0tleVZhbHVlcyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKGhhc0tleVZhbHVlcykge1xuICAgIC8vIEZsYXR0ZW4gbG9naWMgZm9yIGNvbW1vbiBBUEkgcGF0dGVybnMgbGlrZSBkYXRhOnB1YmxpY1Rva2VuOnh5elxuICAgIGlmIChyZXN1bHQuZGF0YSAmJiB0eXBlb2YgcmVzdWx0LmRhdGEgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHJlc3VsdC5kYXRhKSkge1xuICAgICAgLy8gTWVyZ2UgcHJvcGVydGllcyBmcm9tICdkYXRhJyBpbnRvIHRvcCBsZXZlbCBpZiB0aGV5IGRvbid0IGNvbGxpZGVcbiAgICAgIC8vIE9SIHNwZWNpZmljYWxseSBmb3IgZ2VuZXJhdGUta2V5cyBwYXR0ZXJuOlxuICAgICAgaWYgKHJlc3VsdC5wcml2YXRlS2V5ICYmICFyZXN1bHQuZGF0YS5wcml2YXRlS2V5KSB7XG4gICAgICAgIHJlc3VsdC5kYXRhLnByaXZhdGVLZXkgPSByZXN1bHQucHJpdmF0ZUtleTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdCBhcyB1bmtub3duIGFzIFQ7XG4gIH1cbiAgcmV0dXJuIGRlY29kZVZhbHVlKHRyaW1tZWQpIGFzIHVua25vd24gYXMgVDtcbn1cblxuZnVuY3Rpb24gZGVjb2RlVmFsdWUoc3RyOiBzdHJpbmcpOiBhbnkge1xuICBjb25zdCB0cmltbWVkID0gc3RyLnRyaW0oKTtcbiAgaWYgKCF0cmltbWVkIHx8IHRyaW1tZWQgPT09IFwibnVsbFwiKSByZXR1cm4gbnVsbDtcbiAgaWYgKHRyaW1tZWQgPT09IFwidHJ1ZVwiKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKHRyaW1tZWQgPT09IFwiZmFsc2VcIikgcmV0dXJuIGZhbHNlO1xuXG4gIGNvbnN0IGxpbmVzID0gdHJpbW1lZC5zcGxpdChcIlxcblwiKTtcbiAgY29uc3QgZmlyc3RMaW5lID0gbGluZXNbMF0udHJpbSgpO1xuXG4gIGlmIChmaXJzdExpbmUuc3RhcnRzV2l0aChcIltcIikgJiYgZmlyc3RMaW5lLmluY2x1ZGVzKFwiXXtcIikpIHtcbiAgICBjb25zdCBoZWFkZXJNYXRjaCA9IGZpcnN0TGluZS5tYXRjaCgvXlxcWyhcXGQrKVxcXVxceyhbXn1dKylcXH06PyQvKTtcbiAgICBpZiAoaGVhZGVyTWF0Y2gpIHtcbiAgICAgIGNvbnN0IGtleXMgPSBoZWFkZXJNYXRjaFsyXS5zcGxpdChcIixcIikubWFwKChrKSA9PiBrLnRyaW0oKSk7XG4gICAgICBjb25zdCByZXM6IGFueVtdID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1tpXS50cmltKCk7XG4gICAgICAgIGlmICghbGluZSkgY29udGludWU7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHBhcnNlQ29tbWFTZXBhcmF0ZWQobGluZSk7XG4gICAgICAgIGNvbnN0IGl0ZW06IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICAgICAga2V5cy5mb3JFYWNoKChrZXksIGopID0+IHtcbiAgICAgICAgICBpZiAoaiA8IHZhbHVlcy5sZW5ndGgpIGl0ZW1ba2V5XSA9IHBhcnNlVmFsdWUodmFsdWVzW2pdKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlcy5wdXNoKGl0ZW0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gIH1cblxuICBpZiAoZmlyc3RMaW5lLnN0YXJ0c1dpdGgoXCJbXCIpICYmIGZpcnN0TGluZS5pbmNsdWRlcyhcIl06XCIpKSB7XG4gICAgY29uc3QgaGVhZGVyTWF0Y2ggPSBmaXJzdExpbmUubWF0Y2goL15cXFsoXFxkKylcXF06KC4qKSQvKTtcbiAgICBpZiAoaGVhZGVyTWF0Y2gpIHtcbiAgICAgIGNvbnN0IHJlbWFpbmluZyA9IGhlYWRlck1hdGNoWzJdICsgKGxpbmVzLmxlbmd0aCA+IDEgPyBcIlxcblwiICsgbGluZXMuc2xpY2UoMSkuam9pbihcIlxcblwiKSA6IFwiXCIpO1xuICAgICAgcmV0dXJuIHBhcnNlQ29tbWFTZXBhcmF0ZWQocmVtYWluaW5nLnRyaW0oKSkubWFwKHBhcnNlVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0cmltbWVkLmluY2x1ZGVzKFwiOlwiKSAmJiAhdHJpbW1lZC5zdGFydHNXaXRoKCdcIicpICYmICF0cmltbWVkLmluY2x1ZGVzKFwiXFxuXCIpKSB7XG4gICAgY29uc3QgcmVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgY29uc3QgcGFydHMgPSBwYXJzZUNvbW1hU2VwYXJhdGVkKHRyaW1tZWQpO1xuICAgIGxldCBpc09iaiA9IGZhbHNlO1xuICAgIHBhcnRzLmZvckVhY2gocGFydCA9PiB7XG4gICAgICBjb25zdCBjSW5kZXggPSBwYXJ0LmluZGV4T2YoXCI6XCIpO1xuICAgICAgaWYgKGNJbmRleCA+IDApIHtcbiAgICAgICAgcmVzW3BhcnQuc3Vic3RyaW5nKDAsIGNJbmRleCkudHJpbSgpXSA9IHBhcnNlVmFsdWUocGFydC5zdWJzdHJpbmcoY0luZGV4ICsgMSkudHJpbSgpKTtcbiAgICAgICAgaXNPYmogPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChpc09iaikgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHJldHVybiBwYXJzZVZhbHVlKHRyaW1tZWQpO1xufVxuXG5mdW5jdGlvbiBwYXJzZVZhbHVlKHZhbDogc3RyaW5nKTogYW55IHtcbiAgY29uc3QgdiA9IHZhbC50cmltKCk7XG4gIGlmICghdiB8fCB2ID09PSBcIm51bGxcIikgcmV0dXJuIG51bGw7XG4gIGlmICh2ID09PSBcInRydWVcIiB8fCB2ID09PSAnXCJ0cnVlXCInKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKHYgPT09IFwiZmFsc2VcIiB8fCB2ID09PSAnXCJmYWxzZVwiJykgcmV0dXJuIGZhbHNlO1xuICBpZiAodi5zdGFydHNXaXRoKCdcIicpICYmIHYuZW5kc1dpdGgoJ1wiJykpIHJldHVybiB2LnN1YnN0cmluZygxLCB2Lmxlbmd0aCAtIDEpO1xuICBpZiAoL14tP1xcZCsoXFwuXFxkKyk/JC8udGVzdCh2KSAmJiB2Lmxlbmd0aCA8IDE1KSByZXR1cm4gTnVtYmVyKHYpO1xuICByZXR1cm4gdjtcbn1cblxuZnVuY3Rpb24gcGFyc2VDb21tYVNlcGFyYXRlZChzdHI6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgY3VycmVudCA9IFwiXCI7XG4gIGxldCBpblF1b3RlcyA9IGZhbHNlO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNoYXIgPSBzdHJbaV07XG4gICAgaWYgKGNoYXIgPT09ICdcIicpIGluUXVvdGVzID0gIWluUXVvdGVzO1xuICAgIGlmIChjaGFyID09PSBcIixcIiAmJiAhaW5RdW90ZXMpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGN1cnJlbnQudHJpbSgpKTtcbiAgICAgIGN1cnJlbnQgPSBcIlwiO1xuICAgIH0gZWxzZSBjdXJyZW50ICs9IGNoYXI7XG4gIH1cbiAgcmVzdWx0LnB1c2goY3VycmVudC50cmltKCkpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUb29uRm9ybWF0KGNvbnRlbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCB0cmltbWVkID0gY29udGVudC50cmltKCk7XG4gIHJldHVybiAodHJpbW1lZC5zdGFydHNXaXRoKFwiW1wiKSAmJiAodHJpbW1lZC5pbmNsdWRlcyhcIl17XCIpIHx8IHRyaW1tZWQuaW5jbHVkZXMoXCJdOlwiKSkpIHx8XG4gICAgICAgICAodHJpbW1lZC5pbmNsdWRlcyhcIjpcIikgJiYgIXRyaW1tZWQuc3RhcnRzV2l0aChcIntcIikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2FmZUVuY29kZShkYXRhOiB1bmtub3duKTogc3RyaW5nIHwgbnVsbCB7XG4gIHRyeSB7IHJldHVybiBlbmNvZGUoZGF0YSk7IH0gY2F0Y2ggeyByZXR1cm4gbnVsbDsgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2FmZURlY29kZTxUID0gdW5rbm93bj4oc3RyOiBzdHJpbmcpOiBUIHwgbnVsbCB7XG4gIHRyeSB7IHJldHVybiBkZWNvZGU8VD4oc3RyKTsgfSBjYXRjaCB7IHJldHVybiBudWxsOyB9XG59XG4iXX0=
@@ -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==
@@ -1,16 +0,0 @@
1
- type ColorFn = (s: string) => string;
2
- type ColorWithBold = ColorFn & {
3
- bold: ColorFn;
4
- };
5
- export declare const colors: {
6
- red: ColorWithBold;
7
- green: ColorWithBold;
8
- yellow: ColorWithBold;
9
- blue: ColorWithBold;
10
- magenta: ColorWithBold;
11
- cyan: ColorWithBold;
12
- white: ColorWithBold;
13
- gray: ColorWithBold;
14
- bold: (s: string) => string;
15
- };
16
- export default colors;
@@ -1,23 +0,0 @@
1
- "use strict";
2
- // Simple color helper to avoid ESM/CommonJS issues with chalk
3
- // Supports chaining .bold (e.g., colors.cyan.bold('text'))
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.colors = void 0;
6
- const createColor = (code) => {
7
- const fn = (s) => `\x1b[${code}m${s}\x1b[0m`;
8
- fn.bold = (s) => `\x1b[${code}m\x1b[1m${s}\x1b[22m\x1b[0m`;
9
- return fn;
10
- };
11
- exports.colors = {
12
- red: createColor('31'),
13
- green: createColor('32'),
14
- yellow: createColor('33'),
15
- blue: createColor('34'),
16
- magenta: createColor('35'),
17
- cyan: createColor('36'),
18
- white: createColor('37'),
19
- gray: createColor('90'),
20
- bold: (s) => `\x1b[1m${s}\x1b[22m`,
21
- };
22
- exports.default = exports.colors;
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvbG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsOERBQThEO0FBQzlELDJEQUEyRDs7O0FBSzNELE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBWSxFQUFpQixFQUFFO0lBQ2xELE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNyRCxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxRQUFRLElBQUksV0FBVyxDQUFDLGlCQUFpQixDQUFDO0lBQ25FLE9BQU8sRUFBbUIsQ0FBQztBQUM3QixDQUFDLENBQUM7QUFFVyxRQUFBLE1BQU0sR0FBRztJQUNwQixHQUFHLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztJQUN0QixLQUFLLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztJQUN4QixNQUFNLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztJQUN6QixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztJQUN2QixPQUFPLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztJQUMxQixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztJQUN2QixLQUFLLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztJQUN4QixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztJQUN2QixJQUFJLEVBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVO0NBQzNDLENBQUM7QUFFRixrQkFBZSxjQUFNLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTaW1wbGUgY29sb3IgaGVscGVyIHRvIGF2b2lkIEVTTS9Db21tb25KUyBpc3N1ZXMgd2l0aCBjaGFsa1xuLy8gU3VwcG9ydHMgY2hhaW5pbmcgLmJvbGQgKGUuZy4sIGNvbG9ycy5jeWFuLmJvbGQoJ3RleHQnKSlcblxudHlwZSBDb2xvckZuID0gKHM6IHN0cmluZykgPT4gc3RyaW5nO1xudHlwZSBDb2xvcldpdGhCb2xkID0gQ29sb3JGbiAmIHsgYm9sZDogQ29sb3JGbiB9O1xuXG5jb25zdCBjcmVhdGVDb2xvciA9IChjb2RlOiBzdHJpbmcpOiBDb2xvcldpdGhCb2xkID0+IHtcbiAgY29uc3QgZm4gPSAoczogc3RyaW5nKSA9PiBgXFx4MWJbJHtjb2RlfW0ke3N9XFx4MWJbMG1gO1xuICBmbi5ib2xkID0gKHM6IHN0cmluZykgPT4gYFxceDFiWyR7Y29kZX1tXFx4MWJbMW0ke3N9XFx4MWJbMjJtXFx4MWJbMG1gO1xuICByZXR1cm4gZm4gYXMgQ29sb3JXaXRoQm9sZDtcbn07XG5cbmV4cG9ydCBjb25zdCBjb2xvcnMgPSB7XG4gIHJlZDogY3JlYXRlQ29sb3IoJzMxJyksXG4gIGdyZWVuOiBjcmVhdGVDb2xvcignMzInKSxcbiAgeWVsbG93OiBjcmVhdGVDb2xvcignMzMnKSxcbiAgYmx1ZTogY3JlYXRlQ29sb3IoJzM0JyksXG4gIG1hZ2VudGE6IGNyZWF0ZUNvbG9yKCczNScpLFxuICBjeWFuOiBjcmVhdGVDb2xvcignMzYnKSxcbiAgd2hpdGU6IGNyZWF0ZUNvbG9yKCczNycpLFxuICBncmF5OiBjcmVhdGVDb2xvcignOTAnKSxcbiAgYm9sZDogKHM6IHN0cmluZykgPT4gYFxceDFiWzFtJHtzfVxceDFiWzIybWAsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb2xvcnM7XG4iXX0=
@@ -1,11 +0,0 @@
1
- declare class Logger {
2
- private debugEnabled;
3
- setDebug(enabled: boolean): void;
4
- debug(message: string, ...args: any[]): void;
5
- error(message: string, ...args: any[]): void;
6
- success(message: string, ...args: any[]): void;
7
- info(message: string, ...args: any[]): void;
8
- warn(message: string, ...args: any[]): void;
9
- }
10
- export declare const logger: Logger;
11
- export {};