atabey-shared 0.1.4 → 0.1.6

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 (179) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +4 -1
  3. package/dist/modules/index.d.ts +2 -0
  4. package/dist/modules/index.js +2 -0
  5. package/dist/modules/index.js.map +1 -1
  6. package/dist/modules/lifecycle/index.d.ts +1 -0
  7. package/dist/modules/lifecycle/index.js +2 -0
  8. package/dist/modules/lifecycle/index.js.map +1 -0
  9. package/dist/modules/lifecycle/task-lifecycle.d.ts +63 -0
  10. package/dist/modules/lifecycle/task-lifecycle.js +135 -0
  11. package/dist/modules/lifecycle/task-lifecycle.js.map +1 -0
  12. package/dist/modules/primitives/constants.d.ts +6 -10
  13. package/dist/modules/primitives/constants.js +3 -9
  14. package/dist/modules/primitives/constants.js.map +1 -1
  15. package/dist/modules/primitives/fs.js +1 -3
  16. package/dist/modules/primitives/fs.js.map +1 -1
  17. package/dist/modules/primitives/outbound-http.d.ts +2 -0
  18. package/dist/modules/primitives/outbound-http.js +5 -1
  19. package/dist/modules/primitives/outbound-http.js.map +1 -1
  20. package/dist/modules/sandbox/sandbox-runtime.js +1 -2
  21. package/dist/modules/sandbox/sandbox-runtime.js.map +1 -1
  22. package/dist/modules/security/policy-gate.js +27 -0
  23. package/dist/modules/security/policy-gate.js.map +1 -1
  24. package/dist/modules/security/secrets.d.ts +1 -0
  25. package/dist/modules/security/secrets.js +55 -27
  26. package/dist/modules/security/secrets.js.map +1 -1
  27. package/dist/modules/storage/agents.d.ts +15 -0
  28. package/dist/modules/storage/agents.js +59 -0
  29. package/dist/modules/storage/agents.js.map +1 -0
  30. package/dist/modules/storage/api-catalog.d.ts +24 -0
  31. package/dist/modules/storage/api-catalog.js +96 -0
  32. package/dist/modules/storage/api-catalog.js.map +1 -0
  33. package/dist/modules/storage/approvals.d.ts +63 -0
  34. package/dist/modules/storage/approvals.js +80 -0
  35. package/dist/modules/storage/approvals.js.map +1 -0
  36. package/dist/modules/storage/base.d.ts +13 -0
  37. package/dist/modules/storage/base.js +186 -0
  38. package/dist/modules/storage/base.js.map +1 -0
  39. package/dist/modules/storage/code-graph.d.ts +37 -0
  40. package/dist/modules/storage/code-graph.js +109 -0
  41. package/dist/modules/storage/code-graph.js.map +1 -0
  42. package/dist/modules/storage/cooldowns.d.ts +25 -0
  43. package/dist/modules/storage/cooldowns.js +81 -0
  44. package/dist/modules/storage/cooldowns.js.map +1 -0
  45. package/dist/modules/storage/costs.d.ts +27 -0
  46. package/dist/modules/storage/costs.js +30 -0
  47. package/dist/modules/storage/costs.js.map +1 -0
  48. package/dist/modules/storage/discipline.d.ts +38 -0
  49. package/dist/modules/storage/discipline.js +108 -0
  50. package/dist/modules/storage/discipline.js.map +1 -0
  51. package/dist/modules/storage/framework-dir.d.ts +9 -0
  52. package/dist/modules/storage/framework-dir.js +54 -0
  53. package/dist/modules/storage/framework-dir.js.map +1 -0
  54. package/dist/modules/storage/integrity.d.ts +29 -0
  55. package/dist/modules/storage/integrity.js +41 -0
  56. package/dist/modules/storage/integrity.js.map +1 -0
  57. package/dist/modules/storage/knowledge.d.ts +20 -0
  58. package/dist/modules/storage/knowledge.js +40 -0
  59. package/dist/modules/storage/knowledge.js.map +1 -0
  60. package/dist/modules/storage/logs.d.ts +26 -0
  61. package/dist/modules/storage/logs.js +97 -0
  62. package/dist/modules/storage/logs.js.map +1 -0
  63. package/dist/modules/storage/messages.d.ts +18 -0
  64. package/dist/modules/storage/messages.js +60 -0
  65. package/dist/modules/storage/messages.js.map +1 -0
  66. package/dist/modules/storage/metadata.d.ts +11 -0
  67. package/dist/modules/storage/metadata.js +20 -0
  68. package/dist/modules/storage/metadata.js.map +1 -0
  69. package/dist/modules/storage/migrations.js +19 -5
  70. package/dist/modules/storage/migrations.js.map +1 -1
  71. package/dist/modules/storage/storage.d.ts +11 -334
  72. package/dist/modules/storage/storage.js +11 -996
  73. package/dist/modules/storage/storage.js.map +1 -1
  74. package/dist/modules/storage/tasks.d.ts +13 -0
  75. package/dist/modules/storage/tasks.js +54 -0
  76. package/dist/modules/storage/tasks.js.map +1 -0
  77. package/dist/modules/storage/types.d.ts +91 -0
  78. package/dist/modules/storage/types.js +6 -0
  79. package/dist/modules/storage/types.js.map +1 -0
  80. package/dist/modules/storage/users.d.ts +21 -0
  81. package/dist/modules/storage/users.js +46 -0
  82. package/dist/modules/storage/users.js.map +1 -0
  83. package/package.json +5 -3
  84. package/dist/agent-identity.d.ts +0 -1
  85. package/dist/agent-identity.js +0 -2
  86. package/dist/agent-identity.js.map +0 -1
  87. package/dist/api-catalog.d.ts +0 -1
  88. package/dist/api-catalog.js +0 -2
  89. package/dist/api-catalog.js.map +0 -1
  90. package/dist/audit-chain.d.ts +0 -1
  91. package/dist/audit-chain.js +0 -2
  92. package/dist/audit-chain.js.map +0 -1
  93. package/dist/audit.d.ts +0 -1
  94. package/dist/audit.js +0 -2
  95. package/dist/audit.js.map +0 -1
  96. package/dist/constants.d.ts +0 -1
  97. package/dist/constants.js +0 -2
  98. package/dist/constants.js.map +0 -1
  99. package/dist/database.d.ts +0 -1
  100. package/dist/database.js +0 -2
  101. package/dist/database.js.map +0 -1
  102. package/dist/errors.d.ts +0 -1
  103. package/dist/errors.js +0 -2
  104. package/dist/errors.js.map +0 -1
  105. package/dist/file-lock.d.ts +0 -1
  106. package/dist/file-lock.js +0 -2
  107. package/dist/file-lock.js.map +0 -1
  108. package/dist/fs.d.ts +0 -1
  109. package/dist/fs.js +0 -2
  110. package/dist/fs.js.map +0 -1
  111. package/dist/job-queue.d.ts +0 -1
  112. package/dist/job-queue.js +0 -2
  113. package/dist/job-queue.js.map +0 -1
  114. package/dist/lock.d.ts +0 -1
  115. package/dist/lock.js +0 -2
  116. package/dist/lock.js.map +0 -1
  117. package/dist/logger.d.ts +0 -1
  118. package/dist/logger.js +0 -2
  119. package/dist/logger.js.map +0 -1
  120. package/dist/memory-prune.d.ts +0 -1
  121. package/dist/memory-prune.js +0 -2
  122. package/dist/memory-prune.js.map +0 -1
  123. package/dist/migrations.d.ts +0 -1
  124. package/dist/migrations.js +0 -2
  125. package/dist/migrations.js.map +0 -1
  126. package/dist/otel.d.ts +0 -1
  127. package/dist/otel.js +0 -2
  128. package/dist/otel.js.map +0 -1
  129. package/dist/outbound-http.d.ts +0 -1
  130. package/dist/outbound-http.js +0 -2
  131. package/dist/outbound-http.js.map +0 -1
  132. package/dist/pii.d.ts +0 -1
  133. package/dist/pii.js +0 -2
  134. package/dist/pii.js.map +0 -1
  135. package/dist/policy-gate.d.ts +0 -1
  136. package/dist/policy-gate.js +0 -2
  137. package/dist/policy-gate.js.map +0 -1
  138. package/dist/resilience.d.ts +0 -1
  139. package/dist/resilience.js +0 -2
  140. package/dist/resilience.js.map +0 -1
  141. package/dist/retention.d.ts +0 -1
  142. package/dist/retention.js +0 -2
  143. package/dist/retention.js.map +0 -1
  144. package/dist/sandbox-fs.d.ts +0 -1
  145. package/dist/sandbox-fs.js +0 -2
  146. package/dist/sandbox-fs.js.map +0 -1
  147. package/dist/sandbox-runtime.d.ts +0 -1
  148. package/dist/sandbox-runtime.js +0 -2
  149. package/dist/sandbox-runtime.js.map +0 -1
  150. package/dist/sandbox.d.ts +0 -1
  151. package/dist/sandbox.js +0 -2
  152. package/dist/sandbox.js.map +0 -1
  153. package/dist/secrets.d.ts +0 -1
  154. package/dist/secrets.js +0 -2
  155. package/dist/secrets.js.map +0 -1
  156. package/dist/storage.d.ts +0 -1
  157. package/dist/storage.js +0 -2
  158. package/dist/storage.js.map +0 -1
  159. package/dist/string.d.ts +0 -1
  160. package/dist/string.js +0 -2
  161. package/dist/string.js.map +0 -1
  162. package/dist/time.d.ts +0 -1
  163. package/dist/time.js +0 -2
  164. package/dist/time.js.map +0 -1
  165. package/dist/tls.d.ts +0 -1
  166. package/dist/tls.js +0 -2
  167. package/dist/tls.js.map +0 -1
  168. package/dist/tokenizer.d.ts +0 -1
  169. package/dist/tokenizer.js +0 -2
  170. package/dist/tokenizer.js.map +0 -1
  171. package/dist/types.d.ts +0 -1
  172. package/dist/types.js +0 -2
  173. package/dist/types.js.map +0 -1
  174. package/dist/worker-pool.d.ts +0 -1
  175. package/dist/worker-pool.js +0 -2
  176. package/dist/worker-pool.js.map +0 -1
  177. package/dist/worker-thread.d.ts +0 -1
  178. package/dist/worker-thread.js +0 -2
  179. package/dist/worker-thread.js.map +0 -1
@@ -11,6 +11,7 @@ import crypto from "crypto";
11
11
  import fs from "fs";
12
12
  import path from "path";
13
13
  import { resolveFrameworkDir } from "../storage/storage.js";
14
+ import { AtomicFileLock } from "../concurrency/file-lock.js";
14
15
  /** Env var names or patterns that must never leak into untrusted subprocesses. */
15
16
  const SENSITIVE_ENV_PATTERNS = [
16
17
  /_KEY$/i,
@@ -141,6 +142,29 @@ export class SecretManager {
141
142
  fs.writeFileSync(tmpPath, JSON.stringify(vault, null, 2), { mode: 0o600 });
142
143
  fs.renameSync(tmpPath, filePath);
143
144
  }
145
+ static withVaultLock(vaultDir, fn) {
146
+ const lock = new AtomicFileLock({ locksDir: path.join(vaultDir, "locks"), timeoutMs: 5000 });
147
+ let acquired = false;
148
+ const owner = `vault-${process.pid}-${Date.now()}`;
149
+ const start = Date.now();
150
+ while (!acquired && Date.now() - start < 5000) {
151
+ const attempt = lock.tryAcquire("secrets.vault.json", owner, "vault-mutation");
152
+ if (attempt.acquired) {
153
+ acquired = true;
154
+ break;
155
+ }
156
+ const waitUntil = Date.now() + 50;
157
+ while (Date.now() < waitUntil) { /* spin */ }
158
+ }
159
+ try {
160
+ return fn();
161
+ }
162
+ finally {
163
+ if (acquired) {
164
+ lock.release("secrets.vault.json", owner);
165
+ }
166
+ }
167
+ }
144
168
  /**
145
169
  * Encrypt and store a secret in the local AES-256-GCM vault.
146
170
  */
@@ -150,27 +174,29 @@ export class SecretManager {
150
174
  throw new Error(`Invalid secret name "${name}". Use alphanumeric, '_', '.', or '-' characters.`);
151
175
  }
152
176
  const vaultDir = this.resolveVaultDir(options.vaultDir);
153
- const masterKey = this.resolveMasterKey(vaultDir);
154
- const salt = crypto.randomBytes(16);
155
- const iv = crypto.randomBytes(12);
156
- const subkey = deriveSubkey(masterKey, salt);
157
- const cipher = crypto.createCipheriv("aes-256-gcm", subkey, iv);
158
- cipher.setAAD(Buffer.from(keyName, "utf8"));
159
- const encrypted = Buffer.concat([cipher.update(value, "utf8"), cipher.final()]);
160
- const tag = cipher.getAuthTag();
161
- const vault = this.readVault(vaultDir);
162
- const now = new Date().toISOString();
163
- const existing = vault.entries[keyName];
164
- vault.entries[keyName] = {
165
- salt: salt.toString("base64"),
166
- iv: iv.toString("base64"),
167
- tag: tag.toString("base64"),
168
- ciphertext: encrypted.toString("base64"),
169
- createdAt: existing?.createdAt ?? now,
170
- updatedAt: now,
171
- description: options.description ?? existing?.description,
172
- };
173
- this.writeVault(vaultDir, vault);
177
+ this.withVaultLock(vaultDir, () => {
178
+ const masterKey = this.resolveMasterKey(vaultDir);
179
+ const salt = crypto.randomBytes(16);
180
+ const iv = crypto.randomBytes(12);
181
+ const subkey = deriveSubkey(masterKey, salt);
182
+ const cipher = crypto.createCipheriv("aes-256-gcm", subkey, iv);
183
+ cipher.setAAD(Buffer.from(keyName, "utf8"));
184
+ const encrypted = Buffer.concat([cipher.update(value, "utf8"), cipher.final()]);
185
+ const tag = cipher.getAuthTag();
186
+ const vault = this.readVault(vaultDir);
187
+ const now = new Date().toISOString();
188
+ const existing = vault.entries[keyName];
189
+ vault.entries[keyName] = {
190
+ salt: salt.toString("base64"),
191
+ iv: iv.toString("base64"),
192
+ tag: tag.toString("base64"),
193
+ ciphertext: encrypted.toString("base64"),
194
+ createdAt: existing?.createdAt ?? now,
195
+ updatedAt: now,
196
+ description: options.description ?? existing?.description,
197
+ };
198
+ this.writeVault(vaultDir, vault);
199
+ });
174
200
  }
175
201
  /**
176
202
  * Retrieve and decrypt a secret by name.
@@ -205,12 +231,14 @@ export class SecretManager {
205
231
  static deleteSecret(name, options = {}) {
206
232
  const keyName = name.trim();
207
233
  const vaultDir = this.resolveVaultDir(options.vaultDir);
208
- const vault = this.readVault(vaultDir);
209
- if (!(keyName in vault.entries))
210
- return false;
211
- delete vault.entries[keyName];
212
- this.writeVault(vaultDir, vault);
213
- return true;
234
+ return this.withVaultLock(vaultDir, () => {
235
+ const vault = this.readVault(vaultDir);
236
+ if (!(keyName in vault.entries))
237
+ return false;
238
+ delete vault.entries[keyName];
239
+ this.writeVault(vaultDir, vault);
240
+ return true;
241
+ });
214
242
  }
215
243
  /**
216
244
  * List stored secret metadata without exposing plaintext values.
@@ -1 +1 @@
1
- {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../../src/modules/security/secrets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAsC5D,kFAAkF;AAClF,MAAM,sBAAsB,GAAa;IACrC,QAAQ;IACR,SAAS;IACT,UAAU;IACV,UAAU;IACV,aAAa;IACb,WAAW;IACX,YAAY;IACZ,eAAe;IACf,cAAc;IACd,WAAW;IACX,eAAe;IACf,aAAa;IACb,WAAW;IACX,QAAQ;IACR,aAAa;IACb,SAAS;IACT,iBAAiB;IACjB,0BAA0B;IAC1B,sBAAsB;IACtB,mBAAmB;IACnB,mBAAmB;IACnB,iBAAiB;IACjB,cAAc;IACd,mBAAmB;IACnB,sBAAsB;IACtB,mBAAmB;IACnB,mBAAmB;IACnB,0BAA0B;IAC1B,sBAAsB;IACtB,iBAAiB;IACjB,aAAa;IACb,iBAAiB;IACjB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;CACzB,CAAC;AAQF,MAAM,oBAAoB,GAAwB;IAC9C;QACI,EAAE,EAAE,gBAAgB;QACpB,WAAW,EAAE,mBAAmB;QAChC,KAAK,EAAE,0CAA0C;KACpD;IACD;QACI,EAAE,EAAE,YAAY;QAChB,WAAW,EAAE,8BAA8B;QAC3C,KAAK,EAAE,sFAAsF;KAChG;IACD;QACI,EAAE,EAAE,sBAAsB;QAC1B,WAAW,EAAE,4BAA4B;QACzC,KAAK,EAAE,mEAAmE;KAC7E;IACD;QACI,EAAE,EAAE,gBAAgB;QACpB,WAAW,EAAE,+BAA+B;QAC5C,KAAK,EAAE,4BAA4B;KACtC;IACD;QACI,EAAE,EAAE,aAAa;QACjB,WAAW,EAAE,iBAAiB;QAC9B,KAAK,EAAE,wDAAwD;KAClE;IACD;QACI,EAAE,EAAE,iBAAiB;QACrB,WAAW,EAAE,uBAAuB;QACpC,KAAK,EAAE,oEAAoE;KAC9E;IACD;QACI,EAAE,EAAE,eAAe;QACnB,WAAW,EAAE,6BAA6B;QAC1C,KAAK,EAAE,iDAAiD;KAC3D;CACJ,CAAC;AAEF,SAAS,YAAY,CAAC,SAAiB,EAAE,IAAY;IACjD,OAAO,MAAM,CAAC,IAAI,CACd,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CACzF,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAChC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,OAAO,aAAa;IACd,MAAM,CAAC,eAAe,CAAC,SAAkB;QAC7C,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;QAChC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAC/E,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;QAClD,OAAO,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,QAAgB;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC;QACrD,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;QACvE,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAClD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE;gBAAE,OAAO,GAAG,CAAC;YAClC,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5D,CAAC;QACD,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACzC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,QAAgB;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IACrD,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,QAAgB;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACvC,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAc,CAAC;QACvE,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACvF,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,QAAgB,EAAE,KAAgB;QACxD,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,GAAG,QAAQ,QAAQ,OAAO,CAAC,GAAG,EAAE,CAAC;QACjD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3E,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,SAAS,CACnB,IAAY,EACZ,KAAa,EACb,UAAuD,EAAE;QAEzD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,mDAAmD,CAAC,CAAC;QACrG,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE7C,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAChF,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG;YACrB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC7B,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACzB,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3B,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACxC,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,GAAG;YACrC,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,QAAQ,EAAE,WAAW;SAC5D,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,SAAS,CACnB,IAAY,EACZ,UAA6D,EAAE;QAE/D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,IAAI,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjE,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;YACxC,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACpE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9C,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACjF,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,YAAY,CAAC,IAAY,EAAE,UAAiC,EAAE;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9C,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,WAAW,CAAC,UAAiC,EAAE;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACzD,IAAI;YACJ,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;SACjC,CAAC,CAAC,CAAC;IACR,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,eAAe,CAAC,cAA+B,EAAE,UAAiC,EAAE;QAC9F,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACX,+FAA+F;gBAC/F,2FAA2F,CAC9F,CAAC;QACN,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAEjC,8DAA8D;QAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACjD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,wBAAwB,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO;gBACH,IAAI;gBACJ,KAAK;gBACL,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW;gBAC5C,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS;aAC3C,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GACd,OAAO,cAAc,KAAK,QAAQ;YAC9B,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE;YACrE,CAAC,CAAC,cAAc,CAAC,MAAM,KAAK,EAAE;gBAC5B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;gBAC7B,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC;QAExE,gEAAgE;QAChE,MAAM,UAAU,GAA+B,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACpC,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACrF,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACpB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC7B,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACzB,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC3C,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACxC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,GAAG;gBACd,WAAW,EAAE,IAAI,CAAC,WAAW;aAChC,CAAC;QACN,CAAC;QAED,2DAA2D;QAC3D,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,GAAG,OAAO,MAAM,CAAC;QACpC,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAExD,IAAI,CAAC;YACD,IAAI,MAAM;gBAAE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAClE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gBAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,wEAAwE;YACxE,IAAI,CAAC;gBACD,IAAI,MAAM;oBAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;qBAC1D,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;oBAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBACxD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;oBAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACL,0BAA0B;YAC9B,CAAC;YACD,MAAM,GAAG,CAAC;QACd,CAAC;QAED,OAAO,SAAS,CAAC,MAAM,CAAC;IAC5B,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACjC,MAAyB,OAAO,CAAC,GAAG,EACpC,mBAA6B,EAAE;IAE/B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACtE,MAAM,KAAK,GAAsB,EAAE,CAAC;IAEpC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACnB,SAAS;QACb,CAAC;QACD,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACvB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,KAAK,MAAM,OAAO,IAAI,oBAAoB,EAAE,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QAC5B,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,OAAO,CAAC,EAAE;gBAClB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,YAAY,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrC,KAAK,EAAE,KAAK,CAAC,KAAK;aACrB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,KAAK,MAAM,OAAO,IAAI,oBAAoB,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC;QAClG,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,aAAa,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../../src/modules/security/secrets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Agent registry rows (state, task, description, skills).
3
+ *
4
+ * Split from the original AtabeyStorage god-class (2026-10-20 audit, S7).
5
+ * Part of the storage inheritance chain; AtabeyStorage (storage.ts) is the facade.
6
+ */
7
+ import type { AgentRow } from "./types.js";
8
+ import { StorageUsers } from "./users.js";
9
+ export declare class StorageAgents extends StorageUsers {
10
+ static createAgent(name: string, description: string, skills: string): void;
11
+ static deleteAgent(name: string): boolean;
12
+ static updateAgentDetails(name: string, description: string, state: string, task: string, skills: string): void;
13
+ static updateAgentStatus(name: string, state: string, task: string, lastUpdated?: string): void;
14
+ static getAllAgents(): AgentRow[];
15
+ }
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Agent registry rows (state, task, description, skills).
3
+ *
4
+ * Split from the original AtabeyStorage god-class (2026-10-20 audit, S7).
5
+ * Part of the storage inheritance chain; AtabeyStorage (storage.ts) is the facade.
6
+ */
7
+ import { asAgentID } from "../primitives/types.js";
8
+ import { StorageUsers } from "./users.js";
9
+ export class StorageAgents extends StorageUsers {
10
+ static createAgent(name, description, skills) {
11
+ const cleanName = name.replace("@", "");
12
+ this.getDB().prepare(`
13
+ INSERT INTO agents (name, state, task, description, skills, last_updated)
14
+ VALUES (?, 'READY', 'Idle', ?, ?, datetime('now'))
15
+ ON CONFLICT(name) DO UPDATE SET description = excluded.description, skills = excluded.skills
16
+ `).run(cleanName, description, skills);
17
+ }
18
+ static deleteAgent(name) {
19
+ const cleanName = name.replace("@", "");
20
+ const info = this.getDB().prepare("DELETE FROM agents WHERE name = ?").run(cleanName);
21
+ return info.changes > 0;
22
+ }
23
+ static updateAgentDetails(name, description, state, task, skills) {
24
+ const cleanName = name.replace("@", "");
25
+ this.getDB().prepare(`
26
+ INSERT INTO agents (name, state, task, description, skills, last_updated)
27
+ VALUES (?, ?, ?, ?, ?, datetime('now'))
28
+ ON CONFLICT(name) DO UPDATE SET
29
+ description = excluded.description,
30
+ state = excluded.state,
31
+ task = excluded.task,
32
+ skills = excluded.skills,
33
+ last_updated = datetime('now')
34
+ `).run(cleanName, state, task, description, skills);
35
+ }
36
+ static updateAgentStatus(name, state, task, lastUpdated) {
37
+ const cleanName = name.replace("@", "");
38
+ const timestamp = lastUpdated || new Date().toISOString();
39
+ this.getDB().prepare(`
40
+ INSERT INTO agents (name, state, task, last_updated)
41
+ VALUES (?, ?, ?, ?)
42
+ ON CONFLICT(name) DO UPDATE SET
43
+ state = excluded.state,
44
+ task = excluded.task,
45
+ last_updated = excluded.last_updated
46
+ `).run(cleanName, state, task, timestamp);
47
+ }
48
+ static getAllAgents() {
49
+ const db = this.getDB();
50
+ const rows = db.prepare("SELECT * FROM agents").all();
51
+ return rows.map(r => ({
52
+ name: asAgentID(r.name),
53
+ state: r.state,
54
+ task: r.task,
55
+ last_updated: r.last_updated
56
+ }));
57
+ }
58
+ }
59
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../src/modules/storage/agents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,OAAO,aAAc,SAAQ,YAAY;IACpC,MAAM,CAAC,WAAW,CAAC,IAAY,EAAE,WAAmB,EAAE,MAAc;QACvE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC;;;;SAIpB,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,IAAY;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,IAAY,EAAE,WAAmB,EAAE,KAAa,EAAE,IAAY,EAAE,MAAc;QAC3G,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC;;;;;;;;;SASpB,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,WAAoB;QAC3F,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC1D,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC;;;;;;;SAOpB,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IAEM,MAAM,CAAC,YAAY;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAKjD,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAClB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YACvB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,YAAY,EAAE,CAAC,CAAC,YAAY;SAC/B,CAAC,CAAC,CAAC;IACR,CAAC;CACJ"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * API endpoint registry (contract drift detection source).
3
+ *
4
+ * Split from the original AtabeyStorage god-class (2026-10-20 audit, S7).
5
+ * Part of the storage inheritance chain; AtabeyStorage (storage.ts) is the facade.
6
+ */
7
+ import type { ApiEndpoint } from "../agent/api-catalog.js";
8
+ import { StorageIntegrity } from "./integrity.js";
9
+ export declare class StorageApiCatalog extends StorageIntegrity {
10
+ static saveApiEndpoint(endpoint: ApiEndpoint): void;
11
+ static getApiEndpoints(filter?: {
12
+ tag?: string;
13
+ method?: string;
14
+ search?: string;
15
+ }): ApiEndpoint[];
16
+ static findApiEndpoint(pathQuery: string, method?: string): ApiEndpoint[];
17
+ static deleteApiEndpoint(method: string, path: string): boolean;
18
+ /** Replace the whole catalog with a fresh scan; returns upserted/deleted counts. */
19
+ static replaceApiCatalog(endpoints: ApiEndpoint[]): {
20
+ upserted: number;
21
+ deleted: number;
22
+ };
23
+ private static rowToApiEndpoint;
24
+ }
@@ -0,0 +1,96 @@
1
+ /**
2
+ * API endpoint registry (contract drift detection source).
3
+ *
4
+ * Split from the original AtabeyStorage god-class (2026-10-20 audit, S7).
5
+ * Part of the storage inheritance chain; AtabeyStorage (storage.ts) is the facade.
6
+ */
7
+ import { StorageIntegrity } from "./integrity.js";
8
+ export class StorageApiCatalog extends StorageIntegrity {
9
+ static saveApiEndpoint(endpoint) {
10
+ this.getDB().prepare(`
11
+ INSERT INTO api_endpoints (method, path, tag, summary, auth_required, request_schema, response_schema, source, updated_at)
12
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
13
+ ON CONFLICT(method, path) DO UPDATE SET
14
+ tag = excluded.tag,
15
+ summary = excluded.summary,
16
+ auth_required = excluded.auth_required,
17
+ request_schema = excluded.request_schema,
18
+ response_schema = excluded.response_schema,
19
+ source = excluded.source,
20
+ updated_at = excluded.updated_at
21
+ `).run(endpoint.method.toUpperCase(), endpoint.path, endpoint.tag ?? null, endpoint.summary ?? null, endpoint.authRequired ? 1 : 0, endpoint.requestSchema ?? null, endpoint.responseSchema ?? null, endpoint.source ?? null, endpoint.updatedAt || new Date().toISOString());
22
+ }
23
+ static getApiEndpoints(filter = {}) {
24
+ const conditions = [];
25
+ const params = [];
26
+ if (filter.tag) {
27
+ conditions.push("tag = ?");
28
+ params.push(filter.tag);
29
+ }
30
+ if (filter.method) {
31
+ conditions.push("method = ?");
32
+ params.push(filter.method.toUpperCase());
33
+ }
34
+ if (filter.search) {
35
+ conditions.push("(LOWER(path) LIKE ? OR LOWER(request_schema) LIKE ? OR LOWER(response_schema) LIKE ? OR LOWER(summary) LIKE ?)");
36
+ const like = `%${filter.search.toLowerCase()}%`;
37
+ params.push(like, like, like, like);
38
+ }
39
+ const where = conditions.length ? `WHERE ${conditions.join(" AND ")}` : "";
40
+ const rows = this.getDB().prepare(`SELECT method, path, tag, summary, auth_required, request_schema, response_schema, source, updated_at
41
+ FROM api_endpoints ${where} ORDER BY path ASC, method ASC`).all(...params);
42
+ return rows.map((r) => this.rowToApiEndpoint(r));
43
+ }
44
+ static findApiEndpoint(pathQuery, method) {
45
+ const conditions = ["path = ?"];
46
+ const params = [pathQuery];
47
+ if (method) {
48
+ conditions.push("method = ?");
49
+ params.push(method.toUpperCase());
50
+ }
51
+ let rows = this.getDB().prepare(`SELECT method, path, tag, summary, auth_required, request_schema, response_schema, source, updated_at
52
+ FROM api_endpoints WHERE ${conditions.join(" AND ")}`).all(...params);
53
+ if (rows.length === 0) {
54
+ // Fallback: substring match when exact path not found.
55
+ rows = this.getDB().prepare(`SELECT method, path, tag, summary, auth_required, request_schema, response_schema, source, updated_at
56
+ FROM api_endpoints WHERE path LIKE ?${method ? " AND method = ?" : ""}`).all(`%${pathQuery}%`, ...(method ? [method.toUpperCase()] : []));
57
+ }
58
+ return rows.map((r) => this.rowToApiEndpoint(r));
59
+ }
60
+ static deleteApiEndpoint(method, path) {
61
+ return this.getDB().prepare("DELETE FROM api_endpoints WHERE method = ? AND path = ?")
62
+ .run(method.toUpperCase(), path).changes > 0;
63
+ }
64
+ /** Replace the whole catalog with a fresh scan; returns upserted/deleted counts. */
65
+ static replaceApiCatalog(endpoints) {
66
+ const db = this.getDB();
67
+ const tx = db.transaction(() => {
68
+ const keys = new Set(endpoints.map((e) => `${e.method.toUpperCase()} ${e.path}`));
69
+ const existing = db.prepare("SELECT method, path FROM api_endpoints").all();
70
+ let deleted = 0;
71
+ for (const row of existing) {
72
+ if (!keys.has(`${row.method} ${row.path}`)) {
73
+ deleted += db.prepare("DELETE FROM api_endpoints WHERE method = ? AND path = ?").run(row.method, row.path).changes;
74
+ }
75
+ }
76
+ for (const e of endpoints)
77
+ this.saveApiEndpoint(e);
78
+ return { upserted: endpoints.length, deleted };
79
+ });
80
+ return tx();
81
+ }
82
+ static rowToApiEndpoint(r) {
83
+ return {
84
+ method: String(r.method),
85
+ path: String(r.path),
86
+ tag: r.tag ?? undefined,
87
+ summary: r.summary ?? undefined,
88
+ authRequired: Number(r.auth_required) === 1,
89
+ requestSchema: r.request_schema ?? undefined,
90
+ responseSchema: r.response_schema ?? undefined,
91
+ source: r.source ?? undefined,
92
+ updatedAt: String(r.updated_at),
93
+ };
94
+ }
95
+ }
96
+ //# sourceMappingURL=api-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-catalog.js","sourceRoot":"","sources":["../../../src/modules/storage/api-catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Human-in-the-Loop approval requests and decisions.
3
+ *
4
+ * Split from the original AtabeyStorage god-class (2026-10-20 audit, S7).
5
+ * Part of the storage inheritance chain; AtabeyStorage (storage.ts) is the facade.
6
+ */
7
+ import { StorageCooldowns } from "./cooldowns.js";
8
+ export declare class StorageApprovals extends StorageCooldowns {
9
+ static saveApproval(app: {
10
+ traceId: string;
11
+ toolName: string;
12
+ agent: string;
13
+ riskScore: number;
14
+ riskLevel: string;
15
+ reason: string;
16
+ args: Record<string, unknown>;
17
+ createdAt: number;
18
+ expiresAt: number;
19
+ status?: "PENDING" | "APPROVED" | "REJECTED" | "EXPIRED";
20
+ passcode?: string;
21
+ }): void;
22
+ static saveApprovalRequest(request: {
23
+ traceId: string;
24
+ toolName: string;
25
+ agent: string;
26
+ riskScore: number;
27
+ riskLevel: string;
28
+ reason: string;
29
+ args: Record<string, unknown>;
30
+ createdAt: number;
31
+ expiresAt: number;
32
+ status?: "PENDING" | "APPROVED" | "REJECTED" | "EXPIRED";
33
+ passcode?: string;
34
+ }): void;
35
+ static getApproval(traceId: string): {
36
+ traceId: string;
37
+ toolName: string;
38
+ agent: string;
39
+ riskScore: number;
40
+ riskLevel: string;
41
+ reason: string;
42
+ args: Record<string, unknown>;
43
+ createdAt: number;
44
+ expiresAt: number;
45
+ status: "PENDING" | "APPROVED" | "REJECTED" | "EXPIRED";
46
+ passcode?: string;
47
+ } | null;
48
+ static getPendingApprovals(): Array<{
49
+ traceId: string;
50
+ toolName: string;
51
+ agent: string;
52
+ riskScore: number;
53
+ riskLevel: string;
54
+ reason: string;
55
+ args: Record<string, unknown>;
56
+ createdAt: number;
57
+ expiresAt: number;
58
+ status: "PENDING" | "APPROVED" | "REJECTED" | "EXPIRED";
59
+ passcode?: string;
60
+ }>;
61
+ static updateApprovalStatus(traceId: string, status: string): void;
62
+ static clearAllApprovals(): void;
63
+ }
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Human-in-the-Loop approval requests and decisions.
3
+ *
4
+ * Split from the original AtabeyStorage god-class (2026-10-20 audit, S7).
5
+ * Part of the storage inheritance chain; AtabeyStorage (storage.ts) is the facade.
6
+ */
7
+ import { logger } from "../observability/logger.js";
8
+ import { StorageCooldowns } from "./cooldowns.js";
9
+ export class StorageApprovals extends StorageCooldowns {
10
+ static saveApproval(app) {
11
+ this.saveApprovalRequest(app);
12
+ }
13
+ static saveApprovalRequest(request) {
14
+ const db = this.getDB();
15
+ db.prepare(`
16
+ INSERT OR REPLACE INTO approvals (
17
+ trace_id, tool_name, agent, risk_score, risk_level, reason, args,
18
+ created_at, expires_at, status, passcode
19
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
20
+ `).run(request.traceId, request.toolName, request.agent, request.riskScore, request.riskLevel, request.reason, JSON.stringify(request.args), request.createdAt, request.expiresAt, request.status || "PENDING", request.passcode || null);
21
+ }
22
+ static getApproval(traceId) {
23
+ try {
24
+ const row = this.getDB().prepare("SELECT * FROM approvals WHERE trace_id = ?").get(traceId);
25
+ if (!row)
26
+ return null;
27
+ return {
28
+ traceId: row.trace_id,
29
+ toolName: row.tool_name,
30
+ agent: row.agent,
31
+ riskScore: row.risk_score,
32
+ riskLevel: row.risk_level,
33
+ reason: row.reason,
34
+ args: JSON.parse(row.args || "{}"),
35
+ createdAt: row.created_at,
36
+ expiresAt: row.expires_at,
37
+ status: row.status,
38
+ passcode: row.passcode || undefined
39
+ };
40
+ }
41
+ catch (err) {
42
+ logger.debug(`Failed to get approval: ${err.message}`);
43
+ return null;
44
+ }
45
+ }
46
+ static getPendingApprovals() {
47
+ try {
48
+ const rows = this.getDB().prepare("SELECT * FROM approvals WHERE status = 'PENDING'").all();
49
+ return rows.map(row => ({
50
+ traceId: row.trace_id,
51
+ toolName: row.tool_name,
52
+ agent: row.agent,
53
+ riskScore: row.risk_score,
54
+ riskLevel: row.risk_level,
55
+ reason: row.reason,
56
+ args: JSON.parse(row.args || "{}"),
57
+ createdAt: row.created_at,
58
+ expiresAt: row.expires_at,
59
+ status: row.status,
60
+ passcode: row.passcode || undefined
61
+ }));
62
+ }
63
+ catch (err) {
64
+ logger.debug(`Failed to get pending approvals: ${err.message}`);
65
+ return [];
66
+ }
67
+ }
68
+ static updateApprovalStatus(traceId, status) {
69
+ this.getDB().prepare("UPDATE approvals SET status = ? WHERE trace_id = ?").run(status, traceId);
70
+ }
71
+ static clearAllApprovals() {
72
+ try {
73
+ this.getDB().prepare("DELETE FROM approvals").run();
74
+ }
75
+ catch (err) {
76
+ logger.debug(`Failed to clear approvals: ${err.message}`);
77
+ }
78
+ }
79
+ }
80
+ //# sourceMappingURL=approvals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../../src/modules/storage/approvals.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * SQLite connection bootstrap, schema creation, migrations and reset.
3
+ *
4
+ * Split from the original AtabeyStorage god-class (2026-10-20 audit, S7).
5
+ * Part of the storage inheritance chain; AtabeyStorage (storage.ts) is the facade.
6
+ */
7
+ import Database from "better-sqlite3";
8
+ export declare class StorageBase {
9
+ private static db;
10
+ static getDB(): Database.Database;
11
+ private static initializeSchema;
12
+ static reset(): void;
13
+ }