atabey-shared 0.1.1-beta → 0.1.2

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 (221) hide show
  1. package/README.md +79 -41
  2. package/dist/agent-identity.d.ts +1 -34
  3. package/dist/agent-identity.js +1 -76
  4. package/dist/agent-identity.js.map +1 -1
  5. package/dist/api-catalog.d.ts +1 -57
  6. package/dist/api-catalog.js +1 -253
  7. package/dist/api-catalog.js.map +1 -1
  8. package/dist/audit-chain.d.ts +1 -80
  9. package/dist/audit-chain.js +1 -261
  10. package/dist/audit-chain.js.map +1 -1
  11. package/dist/audit.d.ts +1 -121
  12. package/dist/audit.js +1 -321
  13. package/dist/audit.js.map +1 -1
  14. package/dist/constants.d.ts +1 -150
  15. package/dist/constants.js +1 -211
  16. package/dist/constants.js.map +1 -1
  17. package/dist/database.d.ts +1 -6
  18. package/dist/database.js +1 -15
  19. package/dist/database.js.map +1 -1
  20. package/dist/errors.d.ts +1 -46
  21. package/dist/errors.js +1 -68
  22. package/dist/errors.js.map +1 -1
  23. package/dist/file-lock.d.ts +1 -93
  24. package/dist/file-lock.js +1 -239
  25. package/dist/file-lock.js.map +1 -1
  26. package/dist/fs.d.ts +1 -9
  27. package/dist/fs.js +1 -53
  28. package/dist/fs.js.map +1 -1
  29. package/dist/index.d.ts +2 -31
  30. package/dist/index.js +2 -31
  31. package/dist/index.js.map +1 -1
  32. package/dist/job-queue.d.ts +1 -76
  33. package/dist/job-queue.js +1 -199
  34. package/dist/job-queue.js.map +1 -1
  35. package/dist/lock.d.ts +1 -82
  36. package/dist/lock.js +1 -158
  37. package/dist/lock.js.map +1 -1
  38. package/dist/logger.d.ts +1 -31
  39. package/dist/logger.js +1 -152
  40. package/dist/logger.js.map +1 -1
  41. package/dist/memory-prune.d.ts +1 -18
  42. package/dist/memory-prune.js +1 -47
  43. package/dist/memory-prune.js.map +1 -1
  44. package/dist/migrations.d.ts +1 -69
  45. package/dist/migrations.js +1 -393
  46. package/dist/migrations.js.map +1 -1
  47. package/dist/modules/agent/agent-identity.d.ts +34 -0
  48. package/dist/modules/agent/agent-identity.js +77 -0
  49. package/dist/modules/agent/agent-identity.js.map +1 -0
  50. package/dist/modules/agent/api-catalog.d.ts +57 -0
  51. package/dist/modules/agent/api-catalog.js +254 -0
  52. package/dist/modules/agent/api-catalog.js.map +1 -0
  53. package/dist/modules/agent/index.d.ts +3 -0
  54. package/dist/modules/agent/index.js +4 -0
  55. package/dist/modules/agent/index.js.map +1 -0
  56. package/dist/modules/agent/tokenizer.d.ts +54 -0
  57. package/dist/modules/agent/tokenizer.js +272 -0
  58. package/dist/modules/agent/tokenizer.js.map +1 -0
  59. package/dist/modules/concurrency/file-lock.d.ts +93 -0
  60. package/dist/modules/concurrency/file-lock.js +240 -0
  61. package/dist/modules/concurrency/file-lock.js.map +1 -0
  62. package/dist/modules/concurrency/index.d.ts +6 -0
  63. package/dist/modules/concurrency/index.js +7 -0
  64. package/dist/modules/concurrency/index.js.map +1 -0
  65. package/dist/modules/concurrency/job-queue.d.ts +76 -0
  66. package/dist/modules/concurrency/job-queue.js +200 -0
  67. package/dist/modules/concurrency/job-queue.js.map +1 -0
  68. package/dist/modules/concurrency/lock.d.ts +82 -0
  69. package/dist/modules/concurrency/lock.js +159 -0
  70. package/dist/modules/concurrency/lock.js.map +1 -0
  71. package/dist/modules/concurrency/resilience.d.ts +84 -0
  72. package/dist/modules/concurrency/resilience.js +217 -0
  73. package/dist/modules/concurrency/resilience.js.map +1 -0
  74. package/dist/modules/concurrency/worker-pool.d.ts +52 -0
  75. package/dist/modules/concurrency/worker-pool.js +229 -0
  76. package/dist/modules/concurrency/worker-pool.js.map +1 -0
  77. package/dist/modules/concurrency/worker-thread.d.ts +21 -0
  78. package/dist/modules/concurrency/worker-thread.js +67 -0
  79. package/dist/modules/concurrency/worker-thread.js.map +1 -0
  80. package/dist/modules/index.d.ts +14 -0
  81. package/dist/modules/index.js +15 -0
  82. package/dist/modules/index.js.map +1 -0
  83. package/dist/modules/observability/audit-chain.d.ts +80 -0
  84. package/dist/modules/observability/audit-chain.js +262 -0
  85. package/dist/modules/observability/audit-chain.js.map +1 -0
  86. package/dist/modules/observability/audit.d.ts +121 -0
  87. package/dist/modules/observability/audit.js +322 -0
  88. package/dist/modules/observability/audit.js.map +1 -0
  89. package/dist/modules/observability/index.d.ts +4 -0
  90. package/dist/modules/observability/index.js +5 -0
  91. package/dist/modules/observability/index.js.map +1 -0
  92. package/dist/modules/observability/logger.d.ts +31 -0
  93. package/dist/modules/observability/logger.js +153 -0
  94. package/dist/modules/observability/logger.js.map +1 -0
  95. package/dist/modules/observability/otel.d.ts +39 -0
  96. package/dist/modules/observability/otel.js +93 -0
  97. package/dist/modules/observability/otel.js.map +1 -0
  98. package/dist/modules/primitives/constants.d.ts +150 -0
  99. package/dist/modules/primitives/constants.js +212 -0
  100. package/dist/modules/primitives/constants.js.map +1 -0
  101. package/dist/modules/primitives/errors.d.ts +46 -0
  102. package/dist/modules/primitives/errors.js +69 -0
  103. package/dist/modules/primitives/errors.js.map +1 -0
  104. package/dist/modules/primitives/fs.d.ts +9 -0
  105. package/dist/modules/primitives/fs.js +54 -0
  106. package/dist/modules/primitives/fs.js.map +1 -0
  107. package/dist/modules/primitives/index.d.ts +7 -0
  108. package/dist/modules/primitives/index.js +8 -0
  109. package/dist/modules/primitives/index.js.map +1 -0
  110. package/dist/modules/primitives/outbound-http.d.ts +32 -0
  111. package/dist/modules/primitives/outbound-http.js +88 -0
  112. package/dist/modules/primitives/outbound-http.js.map +1 -0
  113. package/dist/modules/primitives/string.d.ts +1 -0
  114. package/dist/modules/primitives/string.js +30 -0
  115. package/dist/modules/primitives/string.js.map +1 -0
  116. package/dist/modules/primitives/time.d.ts +5 -0
  117. package/dist/modules/primitives/time.js +35 -0
  118. package/dist/modules/primitives/time.js.map +1 -0
  119. package/dist/modules/primitives/types.d.ts +27 -0
  120. package/dist/modules/primitives/types.js +17 -0
  121. package/dist/modules/primitives/types.js.map +1 -0
  122. package/dist/modules/sandbox/index.d.ts +3 -0
  123. package/dist/modules/sandbox/index.js +4 -0
  124. package/dist/modules/sandbox/index.js.map +1 -0
  125. package/dist/modules/sandbox/sandbox-fs.d.ts +28 -0
  126. package/dist/modules/sandbox/sandbox-fs.js +143 -0
  127. package/dist/modules/sandbox/sandbox-fs.js.map +1 -0
  128. package/dist/modules/sandbox/sandbox-runtime.d.ts +78 -0
  129. package/dist/modules/sandbox/sandbox-runtime.js +282 -0
  130. package/dist/modules/sandbox/sandbox-runtime.js.map +1 -0
  131. package/dist/modules/sandbox/sandbox.d.ts +54 -0
  132. package/dist/modules/sandbox/sandbox.js +179 -0
  133. package/dist/modules/sandbox/sandbox.js.map +1 -0
  134. package/dist/modules/security/index.d.ts +5 -0
  135. package/dist/modules/security/index.js +6 -0
  136. package/dist/modules/security/index.js.map +1 -0
  137. package/dist/modules/security/pii.d.ts +70 -0
  138. package/dist/modules/security/pii.js +276 -0
  139. package/dist/modules/security/pii.js.map +1 -0
  140. package/dist/modules/security/policy-gate.d.ts +42 -0
  141. package/dist/modules/security/policy-gate.js +172 -0
  142. package/dist/modules/security/policy-gate.js.map +1 -0
  143. package/dist/modules/security/retention.d.ts +68 -0
  144. package/dist/modules/security/retention.js +218 -0
  145. package/dist/modules/security/retention.js.map +1 -0
  146. package/dist/modules/security/secrets.d.ts +99 -0
  147. package/dist/modules/security/secrets.js +371 -0
  148. package/dist/modules/security/secrets.js.map +1 -0
  149. package/dist/modules/security/tls.d.ts +87 -0
  150. package/dist/modules/security/tls.js +154 -0
  151. package/dist/modules/security/tls.js.map +1 -0
  152. package/dist/modules/storage/database.d.ts +6 -0
  153. package/dist/modules/storage/database.js +16 -0
  154. package/dist/modules/storage/database.js.map +1 -0
  155. package/dist/modules/storage/index.d.ts +4 -0
  156. package/dist/modules/storage/index.js +5 -0
  157. package/dist/modules/storage/index.js.map +1 -0
  158. package/dist/modules/storage/memory-prune.d.ts +18 -0
  159. package/dist/modules/storage/memory-prune.js +48 -0
  160. package/dist/modules/storage/memory-prune.js.map +1 -0
  161. package/dist/modules/storage/migrations.d.ts +69 -0
  162. package/dist/modules/storage/migrations.js +394 -0
  163. package/dist/modules/storage/migrations.js.map +1 -0
  164. package/dist/modules/storage/storage.d.ts +341 -0
  165. package/dist/modules/storage/storage.js +1004 -0
  166. package/dist/modules/storage/storage.js.map +1 -0
  167. package/dist/otel.d.ts +1 -39
  168. package/dist/otel.js +1 -92
  169. package/dist/otel.js.map +1 -1
  170. package/dist/outbound-http.d.ts +1 -32
  171. package/dist/outbound-http.js +1 -87
  172. package/dist/outbound-http.js.map +1 -1
  173. package/dist/pii.d.ts +1 -70
  174. package/dist/pii.js +1 -275
  175. package/dist/pii.js.map +1 -1
  176. package/dist/policy-gate.d.ts +1 -42
  177. package/dist/policy-gate.js +1 -171
  178. package/dist/policy-gate.js.map +1 -1
  179. package/dist/resilience.d.ts +1 -84
  180. package/dist/resilience.js +1 -216
  181. package/dist/resilience.js.map +1 -1
  182. package/dist/retention.d.ts +1 -68
  183. package/dist/retention.js +1 -217
  184. package/dist/retention.js.map +1 -1
  185. package/dist/sandbox-fs.d.ts +1 -28
  186. package/dist/sandbox-fs.js +1 -142
  187. package/dist/sandbox-fs.js.map +1 -1
  188. package/dist/sandbox-runtime.d.ts +1 -78
  189. package/dist/sandbox-runtime.js +1 -281
  190. package/dist/sandbox-runtime.js.map +1 -1
  191. package/dist/sandbox.d.ts +1 -54
  192. package/dist/sandbox.js +1 -178
  193. package/dist/sandbox.js.map +1 -1
  194. package/dist/secrets.d.ts +1 -99
  195. package/dist/secrets.js +1 -370
  196. package/dist/secrets.js.map +1 -1
  197. package/dist/storage.d.ts +1 -341
  198. package/dist/storage.js +1 -1003
  199. package/dist/storage.js.map +1 -1
  200. package/dist/string.d.ts +1 -1
  201. package/dist/string.js +1 -29
  202. package/dist/string.js.map +1 -1
  203. package/dist/time.d.ts +1 -5
  204. package/dist/time.js +1 -34
  205. package/dist/time.js.map +1 -1
  206. package/dist/tls.d.ts +1 -87
  207. package/dist/tls.js +1 -153
  208. package/dist/tls.js.map +1 -1
  209. package/dist/tokenizer.d.ts +1 -54
  210. package/dist/tokenizer.js +1 -271
  211. package/dist/tokenizer.js.map +1 -1
  212. package/dist/types.d.ts +1 -27
  213. package/dist/types.js +1 -16
  214. package/dist/types.js.map +1 -1
  215. package/dist/worker-pool.d.ts +1 -52
  216. package/dist/worker-pool.js +1 -228
  217. package/dist/worker-pool.js.map +1 -1
  218. package/dist/worker-thread.d.ts +1 -21
  219. package/dist/worker-thread.js +1 -66
  220. package/dist/worker-thread.js.map +1 -1
  221. package/package.json +45 -34
@@ -0,0 +1,341 @@
1
+ import Database from "better-sqlite3";
2
+ import type { ApiEndpoint } from "../agent/api-catalog.js";
3
+ import { type BackupResult, type IntegrityCheckResult } from "./migrations.js";
4
+ import { AgentID, LogID, MessageID, TaskID, TraceID } from "../primitives/types.js";
5
+ export interface AgentRow {
6
+ name: AgentID;
7
+ state: string;
8
+ task: string;
9
+ last_updated: string;
10
+ }
11
+ export interface MessageRow {
12
+ id?: MessageID;
13
+ timestamp: string;
14
+ from: AgentID;
15
+ to: AgentID;
16
+ category: string;
17
+ content: string;
18
+ traceId: TraceID;
19
+ parentId?: TaskID;
20
+ status: string;
21
+ priority: string;
22
+ requiresApproval: boolean;
23
+ }
24
+ export interface TaskRow {
25
+ id: TaskID;
26
+ traceId: TraceID;
27
+ description: string;
28
+ agent: AgentID;
29
+ status: string;
30
+ priority: string;
31
+ dependencies: string[];
32
+ createdAt?: string;
33
+ }
34
+ export interface LogRow {
35
+ id?: LogID;
36
+ timestamp: string;
37
+ agent: AgentID;
38
+ action: string;
39
+ trace_id?: TraceID;
40
+ status: string;
41
+ summary: string;
42
+ findings?: string;
43
+ prev_hash?: string;
44
+ hash?: string;
45
+ }
46
+ export interface CostDbRow {
47
+ id: number;
48
+ provider: string;
49
+ model: string;
50
+ input_tokens: number;
51
+ output_tokens: number;
52
+ cost: number;
53
+ timestamp: string;
54
+ trace_id: string | null;
55
+ }
56
+ export interface MessageDbRow {
57
+ id: number;
58
+ timestamp: string;
59
+ sender: string;
60
+ receiver: string;
61
+ category: string;
62
+ content: string;
63
+ trace_id: string;
64
+ parent_id: string | null;
65
+ status: string;
66
+ priority: string;
67
+ requires_approval: number;
68
+ }
69
+ export interface TaskDbRow {
70
+ id: string;
71
+ trace_id: string;
72
+ description: string;
73
+ agent: string;
74
+ status: string;
75
+ priority: string;
76
+ dependencies: string;
77
+ created_at: string;
78
+ }
79
+ export interface LogDbRow {
80
+ id: number;
81
+ timestamp: string;
82
+ agent: string;
83
+ action: string;
84
+ trace_id: string | null;
85
+ status: string;
86
+ summary: string;
87
+ findings: string | null;
88
+ prev_hash: string | null;
89
+ hash: string | null;
90
+ }
91
+ /**
92
+ * Resolves the framework directory (.atabey) intelligently by ascending the directory tree,
93
+ * preventing subpackages and test runners from spraying databases in random subfolders.
94
+ */
95
+ export declare function resolveFrameworkDir(): string;
96
+ /**
97
+ * [DB] Canonical Atabey Storage Engine (Single Source of Truth)
98
+ * Central SQLite database for enterprise-scale multi-agent state management.
99
+ */
100
+ export declare class AtabeyStorage {
101
+ private static db;
102
+ static getDB(): Database.Database;
103
+ private static initializeSchema;
104
+ static getKnowledgeList(): Array<{
105
+ filename: string;
106
+ updated_at: string;
107
+ }>;
108
+ static getKnowledgeFile(filename: string): {
109
+ filename: string;
110
+ content: string;
111
+ updated_at: string;
112
+ } | null;
113
+ static saveKnowledgeFile(filename: string, content: string): void;
114
+ static deleteKnowledgeFile(filename: string): boolean;
115
+ static hasUsers(): boolean;
116
+ static getUsers(): Array<{
117
+ name: string;
118
+ token: string;
119
+ role: string;
120
+ }>;
121
+ static getUserByToken(token: string): {
122
+ name: string;
123
+ role: string;
124
+ } | null;
125
+ static createUser(name: string, token: string, role: string): void;
126
+ static deleteUser(name: string): boolean;
127
+ static createAgent(name: string, description: string, skills: string): void;
128
+ static deleteAgent(name: string): boolean;
129
+ static updateAgentDetails(name: string, description: string, state: string, task: string, skills: string): void;
130
+ static onMessageSaved: ((msg: {
131
+ traceId: string;
132
+ category: string;
133
+ }) => void) | null;
134
+ static onMessageStatusUpdated: ((id: number, status: string) => void) | null;
135
+ static saveLog(log: {
136
+ agent: string;
137
+ action: string;
138
+ trace_id?: string;
139
+ status: string;
140
+ summary: string;
141
+ findings?: string;
142
+ }): number;
143
+ static verifyLogIntegrity(): {
144
+ valid: boolean;
145
+ checked?: number;
146
+ failedLogId?: number;
147
+ reason?: string;
148
+ tip?: string;
149
+ };
150
+ static saveCost(cost: {
151
+ provider: string;
152
+ model: string;
153
+ inputTokens: number;
154
+ outputTokens: number;
155
+ cost: number;
156
+ timestamp: string;
157
+ traceId?: string;
158
+ }): void;
159
+ static getAllCosts(): Array<{
160
+ provider: string;
161
+ model: string;
162
+ inputTokens: number;
163
+ outputTokens: number;
164
+ cost: number;
165
+ timestamp: string;
166
+ traceId?: string;
167
+ }>;
168
+ static updateAgentStatus(name: string, state: string, task: string, lastUpdated?: string): void;
169
+ static getAllAgents(): AgentRow[];
170
+ static saveMessage(msg: MessageRow): void;
171
+ static getPendingMessages(): MessageRow[];
172
+ static updateMessageStatus(id: number, status: string): void;
173
+ static saveTask(task: TaskRow): void;
174
+ static getTasks(traceId?: TraceID): TaskRow[];
175
+ static getLogs(agentName?: string): LogRow[];
176
+ static setMetadata(key: string, value: string): void;
177
+ static getMetadata(key: string): string | null;
178
+ static saveLoopCooldown(agent: string, cooldownUntil: number, detail: string | null, cooldownCount?: number): void;
179
+ static getLoopCooldown(agent: string): {
180
+ agent: string;
181
+ cooldownUntil: number;
182
+ detail: string | null;
183
+ cooldownCount: number;
184
+ } | null;
185
+ static clearLoopCooldown(agent: string): boolean;
186
+ static clearAllLoopCooldowns(): void;
187
+ static listActiveLoopCooldowns(): Array<{
188
+ agent: string;
189
+ cooldownUntil: number;
190
+ detail: string | null;
191
+ cooldownCount: number;
192
+ }>;
193
+ static purgeExpiredLoopCooldowns(): number;
194
+ static saveApproval(app: {
195
+ traceId: string;
196
+ toolName: string;
197
+ agent: string;
198
+ riskScore: number;
199
+ riskLevel: string;
200
+ reason: string;
201
+ args: Record<string, unknown>;
202
+ createdAt: number;
203
+ expiresAt: number;
204
+ status?: "PENDING" | "APPROVED" | "REJECTED" | "EXPIRED";
205
+ passcode?: string;
206
+ }): void;
207
+ static saveApprovalRequest(request: {
208
+ traceId: string;
209
+ toolName: string;
210
+ agent: string;
211
+ riskScore: number;
212
+ riskLevel: string;
213
+ reason: string;
214
+ args: Record<string, unknown>;
215
+ createdAt: number;
216
+ expiresAt: number;
217
+ status?: "PENDING" | "APPROVED" | "REJECTED" | "EXPIRED";
218
+ passcode?: string;
219
+ }): void;
220
+ static getApproval(traceId: string): {
221
+ traceId: string;
222
+ toolName: string;
223
+ agent: string;
224
+ riskScore: number;
225
+ riskLevel: string;
226
+ reason: string;
227
+ args: Record<string, unknown>;
228
+ createdAt: number;
229
+ expiresAt: number;
230
+ status: "PENDING" | "APPROVED" | "REJECTED" | "EXPIRED";
231
+ passcode?: string;
232
+ } | null;
233
+ static getPendingApprovals(): Array<{
234
+ traceId: string;
235
+ toolName: string;
236
+ agent: string;
237
+ riskScore: number;
238
+ riskLevel: string;
239
+ reason: string;
240
+ args: Record<string, unknown>;
241
+ createdAt: number;
242
+ expiresAt: number;
243
+ status: "PENDING" | "APPROVED" | "REJECTED" | "EXPIRED";
244
+ passcode?: string;
245
+ }>;
246
+ static updateApprovalStatus(traceId: string, status: string): void;
247
+ static clearAllApprovals(): void;
248
+ static saveDiscipline(agent: string, stats: {
249
+ totalCalls: number;
250
+ violations: number;
251
+ lastViolation: string | null;
252
+ cooldownUntil: number;
253
+ }): void;
254
+ static getDiscipline(agent: string): {
255
+ agent: string;
256
+ totalCalls: number;
257
+ violations: number;
258
+ lastViolation: string | null;
259
+ cooldownUntil: number;
260
+ } | null;
261
+ static getAllDiscipline(): Array<{
262
+ agent: string;
263
+ totalCalls: number;
264
+ violations: number;
265
+ lastViolation: string | null;
266
+ cooldownUntil: number;
267
+ }>;
268
+ static clearAllDiscipline(): void;
269
+ static recordDisciplineCall(agent: string, tool: string, timestamp: number, argsSize: number): void;
270
+ static getRecentDisciplineCalls(agent: string, sinceTs: number): Array<{
271
+ tool: string;
272
+ timestamp: number;
273
+ argsSize: number;
274
+ }>;
275
+ static pruneDisciplineCalls(beforeTs: number): void;
276
+ static clearDisciplineCalls(agent?: string): void;
277
+ static getCodeFileHash(filePath: string): string | null;
278
+ static upsertCodeFile(filePath: string, hash: string): void;
279
+ static replaceCodeSymbols(filePath: string, symbols: Array<{
280
+ name: string;
281
+ kind: string;
282
+ startLine: number;
283
+ endLine: number;
284
+ signature: string;
285
+ exported: boolean;
286
+ }>): void;
287
+ static replaceCodeImports(filePath: string, specifiers: string[]): void;
288
+ static deleteCodeFile(filePath: string): void;
289
+ static getAllCodeFilePaths(): string[];
290
+ static searchCodeSymbols(query: string, limit?: number): Array<{
291
+ file: string;
292
+ name: string;
293
+ kind: string;
294
+ startLine: number;
295
+ endLine: number;
296
+ signature: string;
297
+ exported: boolean;
298
+ }>;
299
+ static getCodeGraphStats(): {
300
+ files: number;
301
+ symbols: number;
302
+ imports: number;
303
+ };
304
+ static clearCodeGraph(): void;
305
+ static checkIntegrity(): {
306
+ ok: boolean;
307
+ message: string;
308
+ };
309
+ static verifyDatabaseIntegrity(mode?: "quick" | "full"): IntegrityCheckResult;
310
+ static getMigrationStatus(): {
311
+ currentVersion: number;
312
+ applied: import("./migrations.js").AppliedMigration[];
313
+ pending: Array<{
314
+ version: number;
315
+ name: string;
316
+ }>;
317
+ };
318
+ static backup(destinationPath?: string): BackupResult;
319
+ static restore(backupPath: string, targetDbPath?: string): {
320
+ restoredPath: string;
321
+ sha256: string;
322
+ schemaVersion: number;
323
+ };
324
+ static saveApiEndpoint(endpoint: ApiEndpoint): void;
325
+ static getApiEndpoints(filter?: {
326
+ tag?: string;
327
+ method?: string;
328
+ search?: string;
329
+ }): ApiEndpoint[];
330
+ static findApiEndpoint(pathQuery: string, method?: string): ApiEndpoint[];
331
+ static deleteApiEndpoint(method: string, path: string): boolean;
332
+ /** Replace the whole catalog with a fresh scan; returns upserted/deleted counts. */
333
+ static replaceApiCatalog(endpoints: ApiEndpoint[]): {
334
+ upserted: number;
335
+ deleted: number;
336
+ };
337
+ private static rowToApiEndpoint;
338
+ static reset(): void;
339
+ }
340
+ /** Canonical alias */
341
+ export declare const Storage: typeof AtabeyStorage;