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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discipline.js","sourceRoot":"","sources":["../../../src/modules/storage/discipline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Framework directory (.atabey) resolution shared by the storage domain modules.
3
+ * Split from the original storage.ts (2026-10-20 audit, S7).
4
+ */
5
+ /**
6
+ * Resolves the framework directory (.atabey) intelligently by ascending the directory tree,
7
+ * preventing subpackages and test runners from spraying databases in random subfolders.
8
+ */
9
+ export declare function resolveFrameworkDir(): string;
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Framework directory (.atabey) resolution shared by the storage domain modules.
3
+ * Split from the original storage.ts (2026-10-20 audit, S7).
4
+ */
5
+ import fs from "fs";
6
+ import os from "os";
7
+ import path from "path";
8
+ let vitestWorkerFrameworkDir = null;
9
+ function getVitestWorkerFrameworkDir() {
10
+ if (!vitestWorkerFrameworkDir) {
11
+ vitestWorkerFrameworkDir = path.join(os.tmpdir(), `atabey-vitest-worker-${process.pid}`, ".atabey");
12
+ }
13
+ return vitestWorkerFrameworkDir;
14
+ }
15
+ /**
16
+ * Resolves the framework directory (.atabey) intelligently by ascending the directory tree,
17
+ * preventing subpackages and test runners from spraying databases in random subfolders.
18
+ */
19
+ export function resolveFrameworkDir() {
20
+ const testDir = process.env.ATABEY_TEST_DIR || process.env.ATABEY_FRAMEWORK_DIR;
21
+ if (testDir)
22
+ return testDir;
23
+ if (process.env.VITEST) {
24
+ return getVitestWorkerFrameworkDir();
25
+ }
26
+ if (process.env.ATABEY_PROJECT_ROOT) {
27
+ return path.join(process.env.ATABEY_PROJECT_ROOT, ".atabey");
28
+ }
29
+ let cur = process.cwd();
30
+ let firstFoundCandidate = null;
31
+ while (cur !== path.parse(cur).root) {
32
+ const pkgJson = path.join(cur, "package.json");
33
+ let isMonorepoRoot = false;
34
+ if (fs.existsSync(pkgJson)) {
35
+ try {
36
+ const pkg = JSON.parse(fs.readFileSync(pkgJson, "utf8"));
37
+ if (pkg.name === "atabey-monorepo" || pkg.frameworkRepo === true || (pkg.workspaces && Array.isArray(pkg.workspaces))) {
38
+ isMonorepoRoot = true;
39
+ }
40
+ }
41
+ catch { /* ignore */ }
42
+ }
43
+ const candidate = path.join(cur, ".atabey");
44
+ if (isMonorepoRoot) {
45
+ return candidate;
46
+ }
47
+ if (fs.existsSync(candidate) && !firstFoundCandidate) {
48
+ firstFoundCandidate = candidate;
49
+ }
50
+ cur = path.dirname(cur);
51
+ }
52
+ return firstFoundCandidate || path.join(process.cwd(), ".atabey");
53
+ }
54
+ //# sourceMappingURL=framework-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework-dir.js","sourceRoot":"","sources":["../../../src/modules/storage/framework-dir.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,IAAI,wBAAwB,GAAkB,IAAI,CAAC;AAEnD,SAAS,2BAA2B;IAChC,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC5B,wBAAwB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,wBAAwB,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;IACxG,CAAC;IACD,OAAO,wBAAwB,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAChF,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,2BAA2B,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACxB,IAAI,mBAAmB,GAAkB,IAAI,CAAC;IAE9C,OAAO,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC/C,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;gBACzD,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,IAAI,GAAG,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;oBACpH,cAAc,GAAG,IAAI,CAAC;gBAC1B,CAAC;YACL,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,IAAI,cAAc,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACnD,mBAAmB,GAAG,SAAS,CAAC;QACpC,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,mBAAmB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;AACtE,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Database integrity checks, migration status, backup/restore.
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 { BackupResult, IntegrityCheckResult } from "./migrations.js";
8
+ import { StorageCodeGraph } from "./code-graph.js";
9
+ export declare class StorageIntegrity extends StorageCodeGraph {
10
+ static checkIntegrity(): {
11
+ ok: boolean;
12
+ message: string;
13
+ };
14
+ static verifyDatabaseIntegrity(mode?: "quick" | "full"): IntegrityCheckResult;
15
+ static getMigrationStatus(): {
16
+ currentVersion: number;
17
+ applied: import("./migrations.js").AppliedMigration[];
18
+ pending: Array<{
19
+ version: number;
20
+ name: string;
21
+ }>;
22
+ };
23
+ static backup(destinationPath?: string): BackupResult;
24
+ static restore(backupPath: string, targetDbPath?: string): {
25
+ restoredPath: string;
26
+ sha256: string;
27
+ schemaVersion: number;
28
+ };
29
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Database integrity checks, migration status, backup/restore.
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 path from "path";
8
+ import { backupDatabase, getMigrationStatus, restoreDatabase, verifyDatabaseIntegrity } from "./migrations.js";
9
+ import { resolveFrameworkDir } from "./framework-dir.js";
10
+ import { StorageCodeGraph } from "./code-graph.js";
11
+ export class StorageIntegrity extends StorageCodeGraph {
12
+ static checkIntegrity() {
13
+ try {
14
+ const db = this.getDB();
15
+ const res = verifyDatabaseIntegrity(db, "quick");
16
+ return { ok: res.ok, message: res.messages.join("; ") || "unknown" };
17
+ }
18
+ catch (err) {
19
+ return { ok: false, message: err.message };
20
+ }
21
+ }
22
+ static verifyDatabaseIntegrity(mode = "full") {
23
+ return verifyDatabaseIntegrity(this.getDB(), mode);
24
+ }
25
+ static getMigrationStatus() {
26
+ return getMigrationStatus(this.getDB());
27
+ }
28
+ static backup(destinationPath) {
29
+ const db = this.getDB();
30
+ const frameworkDir = resolveFrameworkDir();
31
+ const defaultDest = path.join(frameworkDir, "backups", `atabey-${new Date().toISOString().replace(/[:.]/g, "-")}.db`);
32
+ return backupDatabase(db, destinationPath || defaultDest);
33
+ }
34
+ static restore(backupPath, targetDbPath) {
35
+ const frameworkDir = resolveFrameworkDir();
36
+ const target = targetDbPath || path.join(frameworkDir, "atabey.db");
37
+ this.reset();
38
+ return restoreDatabase(backupPath, target);
39
+ }
40
+ }
41
+ //# sourceMappingURL=integrity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrity.js","sourceRoot":"","sources":["../../../src/modules/storage/integrity.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE/G,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB;IAC3C,MAAM,CAAC,cAAc;QACxB,IAAI,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,uBAAuB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACjD,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;QACzE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;QAC1D,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,uBAAuB,CAAC,OAAyB,MAAM;QACjE,OAAO,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAEM,MAAM,CAAC,kBAAkB;QAC5B,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,eAAwB;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CACzB,YAAY,EACZ,SAAS,EACT,UAAU,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAChE,CAAC;QACF,OAAO,cAAc,CAAC,EAAE,EAAE,eAAe,IAAI,WAAW,CAAC,CAAC;IAC9D,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,UAAkB,EAAE,YAAqB;QAC3D,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;CACJ"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Knowledge base file persistence (`.atabey/knowledge/*` mirror in SQLite).
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 { StorageBase } from "./base.js";
8
+ export declare class StorageKnowledge extends StorageBase {
9
+ static getKnowledgeList(): Array<{
10
+ filename: string;
11
+ updated_at: string;
12
+ }>;
13
+ static getKnowledgeFile(filename: string): {
14
+ filename: string;
15
+ content: string;
16
+ updated_at: string;
17
+ } | null;
18
+ static saveKnowledgeFile(filename: string, content: string): void;
19
+ static deleteKnowledgeFile(filename: string): boolean;
20
+ }
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Knowledge base file persistence (`.atabey/knowledge/*` mirror in SQLite).
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 { StorageBase } from "./base.js";
9
+ export class StorageKnowledge extends StorageBase {
10
+ static getKnowledgeList() {
11
+ try {
12
+ return this.getDB().prepare("SELECT filename, updated_at FROM knowledge ORDER BY updated_at DESC").all();
13
+ }
14
+ catch (err) {
15
+ logger.debug(`Failed to get knowledge list: ${err.message}`);
16
+ return [];
17
+ }
18
+ }
19
+ static getKnowledgeFile(filename) {
20
+ try {
21
+ const row = this.getDB().prepare("SELECT * FROM knowledge WHERE filename = ?").get(filename);
22
+ return row || null;
23
+ }
24
+ catch (err) {
25
+ logger.debug(`Failed to get knowledge file: ${err.message}`);
26
+ return null;
27
+ }
28
+ }
29
+ static saveKnowledgeFile(filename, content) {
30
+ this.getDB().prepare(`
31
+ INSERT INTO knowledge (filename, content, updated_at) VALUES (?, ?, datetime('now'))
32
+ ON CONFLICT(filename) DO UPDATE SET content = excluded.content, updated_at = datetime('now')
33
+ `).run(filename, content);
34
+ }
35
+ static deleteKnowledgeFile(filename) {
36
+ const info = this.getDB().prepare("DELETE FROM knowledge WHERE filename = ?").run(filename);
37
+ return info.changes > 0;
38
+ }
39
+ }
40
+ //# sourceMappingURL=knowledge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../../src/modules/storage/knowledge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IACtC,MAAM,CAAC,gBAAgB;QAC1B,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,qEAAqE,CAAC,CAAC,GAAG,EAAqD,CAAC;QAChK,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,iCAAkC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACxE,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,QAAgB;QAC3C,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAA0E,CAAC;YACtK,OAAO,GAAG,IAAI,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,iCAAkC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACxE,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,QAAgB,EAAE,OAAe;QAC7D,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC;;;SAGpB,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAAC,QAAgB;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5F,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IAC5B,CAAC;CACJ"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Hash-chained audit log persistence (KVKK/GDPR compliant, PII masked).
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 { LogRow } from "./types.js";
8
+ import { StorageTasks } from "./tasks.js";
9
+ export declare class StorageLogs extends StorageTasks {
10
+ static saveLog(log: {
11
+ agent: string;
12
+ action: string;
13
+ trace_id?: string;
14
+ status: string;
15
+ summary: string;
16
+ findings?: string;
17
+ }): number;
18
+ static verifyLogIntegrity(): {
19
+ valid: boolean;
20
+ checked?: number;
21
+ failedLogId?: number;
22
+ reason?: string;
23
+ tip?: string;
24
+ };
25
+ static getLogs(agentName?: string): LogRow[];
26
+ }
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Hash-chained audit log persistence (KVKK/GDPR compliant, PII masked).
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 { AUDIT_CHAIN_GENESIS, buildAgentLogChainPayload, chainDigest, readChainAnchor, writeChainAnchor, verifyHashChain } from "../observability/audit-chain.js";
8
+ import { maskText } from "../security/pii.js";
9
+ import { asAgentID, asLogID } from "../primitives/types.js";
10
+ import { StorageTasks } from "./tasks.js";
11
+ export class StorageLogs extends StorageTasks {
12
+ static saveLog(log) {
13
+ const db = this.getDB();
14
+ const timestamp = new Date().toISOString();
15
+ const agent = log.agent.replace("@", "");
16
+ const maskedSummary = maskText(log.summary);
17
+ const maskedFindings = log.findings ? maskText(log.findings) : null;
18
+ const traceId = log.trace_id || "";
19
+ let lastId = 0;
20
+ const insert = db.transaction(() => {
21
+ let prevHash = AUDIT_CHAIN_GENESIS;
22
+ try {
23
+ const lastRow = db.prepare("SELECT hash FROM logs WHERE hash IS NOT NULL ORDER BY id DESC LIMIT 1").get();
24
+ if (lastRow && lastRow.hash) {
25
+ prevHash = lastRow.hash;
26
+ }
27
+ }
28
+ catch { /* best-effort fallback to genesis */ }
29
+ const payload = buildAgentLogChainPayload({
30
+ prevHash,
31
+ timestamp,
32
+ agent,
33
+ action: log.action,
34
+ traceId: traceId || "",
35
+ status: log.status,
36
+ summary: maskedSummary,
37
+ });
38
+ const hash = chainDigest(payload);
39
+ const result = db.prepare(`
40
+ INSERT INTO logs (timestamp, agent, action, trace_id, status, summary, findings, prev_hash, hash)
41
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
42
+ `).run(timestamp, agent, log.action, log.trace_id || null, log.status, maskedSummary, maskedFindings, prevHash, hash);
43
+ lastId = Number(result.lastInsertRowid);
44
+ const count = db.prepare("SELECT COUNT(*) AS c FROM logs WHERE hash IS NOT NULL").get().c;
45
+ writeChainAnchor("agent-log", hash, count);
46
+ });
47
+ insert();
48
+ return lastId;
49
+ }
50
+ static verifyLogIntegrity() {
51
+ const db = this.getDB();
52
+ try {
53
+ const rows = db.prepare("SELECT * FROM logs ORDER BY id ASC").all();
54
+ const hashed = rows.filter((r) => r.hash);
55
+ if (hashed.length === 0) {
56
+ return { valid: true, checked: 0, reason: "No hashed log rows yet" };
57
+ }
58
+ const anchor = readChainAnchor("agent-log");
59
+ return verifyHashChain(hashed, (row, prevHash) => buildAgentLogChainPayload({
60
+ prevHash,
61
+ agent: row.agent,
62
+ action: row.action,
63
+ traceId: row.trace_id || "",
64
+ status: row.status,
65
+ summary: row.summary,
66
+ timestamp: row.timestamp,
67
+ }), { expectedTip: anchor?.tip, expectedCount: anchor?.count });
68
+ }
69
+ catch (err) {
70
+ return { valid: false, reason: `Verification error: ${err.message}` };
71
+ }
72
+ }
73
+ static getLogs(agentName) {
74
+ const db = this.getDB();
75
+ let rows;
76
+ const cleanName = agentName ? agentName.replace("@", "") : undefined;
77
+ if (cleanName) {
78
+ rows = db.prepare("SELECT * FROM logs WHERE agent = ? ORDER BY timestamp DESC, id DESC").all(cleanName);
79
+ }
80
+ else {
81
+ rows = db.prepare("SELECT * FROM logs ORDER BY timestamp DESC, id DESC").all();
82
+ }
83
+ return rows.map(r => ({
84
+ id: asLogID(r.id),
85
+ timestamp: r.timestamp,
86
+ agent: asAgentID(r.agent),
87
+ action: r.action,
88
+ trace_id: r.trace_id || undefined,
89
+ status: r.status,
90
+ summary: maskText(r.summary),
91
+ findings: r.findings ? maskText(r.findings) : undefined,
92
+ prev_hash: r.prev_hash || undefined,
93
+ hash: r.hash || undefined
94
+ }));
95
+ }
96
+ }
97
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/modules/storage/logs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Hermes inter-agent message queue persistence.
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 { MessageRow } from "./types.js";
8
+ import { StorageAgents } from "./agents.js";
9
+ export declare class StorageMessages extends StorageAgents {
10
+ static onMessageSaved: ((msg: {
11
+ traceId: string;
12
+ category: string;
13
+ }) => void) | null;
14
+ static onMessageStatusUpdated: ((id: number, status: string) => void) | null;
15
+ static saveMessage(msg: MessageRow): void;
16
+ static getPendingMessages(): MessageRow[];
17
+ static updateMessageStatus(id: number, status: string): void;
18
+ }
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Hermes inter-agent message queue persistence.
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 { maskText } from "../security/pii.js";
9
+ import { asAgentID, asMessageID } from "../primitives/types.js";
10
+ import { StorageAgents } from "./agents.js";
11
+ export class StorageMessages extends StorageAgents {
12
+ static onMessageSaved = null;
13
+ static onMessageStatusUpdated = null;
14
+ static saveMessage(msg) {
15
+ const from = msg.from.replace("@", "");
16
+ const to = msg.to.replace("@", "");
17
+ const cleanContent = maskText(msg.content);
18
+ this.getDB().prepare(`
19
+ INSERT INTO messages (timestamp, sender, receiver, category, content, trace_id, parent_id, status, priority, requires_approval)
20
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
21
+ `).run(msg.timestamp, from, to, msg.category, cleanContent, msg.traceId, msg.parentId || null, msg.status, msg.priority, msg.requiresApproval ? 1 : 0);
22
+ if (this.onMessageSaved) {
23
+ try {
24
+ this.onMessageSaved({ traceId: msg.traceId, category: msg.category });
25
+ }
26
+ catch (err) {
27
+ logger.debug(`onMessageSaved hook error: ${err.message}`);
28
+ }
29
+ }
30
+ }
31
+ static getPendingMessages() {
32
+ const db = this.getDB();
33
+ const rows = db.prepare("SELECT * FROM messages WHERE status = 'PENDING'").all();
34
+ return rows.map(r => ({
35
+ id: asMessageID(r.id),
36
+ timestamp: r.timestamp,
37
+ from: asAgentID(r.sender),
38
+ to: asAgentID(r.receiver),
39
+ category: r.category,
40
+ content: maskText(r.content),
41
+ traceId: r.trace_id,
42
+ parentId: r.parent_id || undefined,
43
+ status: r.status,
44
+ priority: r.priority,
45
+ requiresApproval: r.requires_approval === 1
46
+ }));
47
+ }
48
+ static updateMessageStatus(id, status) {
49
+ this.getDB().prepare("UPDATE messages SET status = ? WHERE id = ?").run(status, id);
50
+ if (this.onMessageStatusUpdated) {
51
+ try {
52
+ this.onMessageStatusUpdated(id, status);
53
+ }
54
+ catch (err) {
55
+ logger.debug(`onMessageStatusUpdated hook error: ${err.message}`);
56
+ }
57
+ }
58
+ }
59
+ }
60
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/modules/storage/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Arbitrary key/value project metadata.
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 { StorageCosts } from "./costs.js";
8
+ export declare class StorageMetadata extends StorageCosts {
9
+ static setMetadata(key: string, value: string): void;
10
+ static getMetadata(key: string): string | null;
11
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Arbitrary key/value project metadata.
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 { StorageCosts } from "./costs.js";
8
+ export class StorageMetadata extends StorageCosts {
9
+ static setMetadata(key, value) {
10
+ this.getDB().prepare(`
11
+ INSERT INTO metadata (key, value) VALUES (?, ?)
12
+ ON CONFLICT(key) DO UPDATE SET value = excluded.value
13
+ `).run(key, value);
14
+ }
15
+ static getMetadata(key) {
16
+ const row = this.getDB().prepare("SELECT value FROM metadata WHERE key = ?").get(key);
17
+ return row ? row.value : null;
18
+ }
19
+ }
20
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/modules/storage/metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,OAAO,eAAgB,SAAQ,YAAY;IACtC,MAAM,CAAC,WAAW,CAAC,GAAW,EAAE,KAAa;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC;;;SAGpB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,GAAW;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,CAAC,GAAG,CAAkC,CAAC;QACvH,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAClC,CAAC;CACJ"}
@@ -305,6 +305,21 @@ export function verifyDatabaseIntegrity(db, mode = "quick") {
305
305
  foreignKeyViolations: fkRows.length,
306
306
  };
307
307
  }
308
+ function computeFileSha256(filePath) {
309
+ const hash = crypto.createHash("sha256");
310
+ const fd = fs.openSync(filePath, "r");
311
+ const buffer = Buffer.alloc(64 * 1024);
312
+ try {
313
+ let bytesRead = 0;
314
+ while ((bytesRead = fs.readSync(fd, buffer, 0, buffer.length, null)) > 0) {
315
+ hash.update(buffer.subarray(0, bytesRead));
316
+ }
317
+ }
318
+ finally {
319
+ fs.closeSync(fd);
320
+ }
321
+ return hash.digest("hex");
322
+ }
308
323
  /**
309
324
  * Perform a consistent online backup using SQLite `VACUUM INTO` and write a `.sha256` sidecar.
310
325
  */
@@ -318,14 +333,14 @@ export function backupDatabase(db, destinationPath) {
318
333
  // Escape single quotes in path for SQLite VACUUM INTO literal
319
334
  const escapedPath = absDest.replace(/'/g, "''");
320
335
  db.exec(`VACUUM INTO '${escapedPath}'`);
321
- const bytes = fs.readFileSync(absDest);
322
- const sha256 = crypto.createHash("sha256").update(bytes).digest("hex");
336
+ const sha256 = computeFileSha256(absDest);
337
+ const sizeBytes = fs.statSync(absDest).size;
323
338
  fs.writeFileSync(`${absDest}.sha256`, `${sha256} ${path.basename(absDest)}\n`, { mode: 0o600 });
324
339
  const status = getMigrationStatus(db);
325
340
  return {
326
341
  backupPath: absDest,
327
342
  sha256,
328
- sizeBytes: bytes.length,
343
+ sizeBytes,
329
344
  createdAt: new Date().toISOString(),
330
345
  schemaVersion: status.currentVersion,
331
346
  };
@@ -339,8 +354,7 @@ export function restoreDatabase(backupPath, targetDbPath, options = {}) {
339
354
  if (!fs.existsSync(absBackup)) {
340
355
  throw new Error(`Backup file does not exist: ${absBackup}`);
341
356
  }
342
- const bytes = fs.readFileSync(absBackup);
343
- const actualSha256 = crypto.createHash("sha256").update(bytes).digest("hex");
357
+ const actualSha256 = computeFileSha256(absBackup);
344
358
  const sidecarPath = `${absBackup}.sha256`;
345
359
  if (options.verifyChecksum !== false && fs.existsSync(sidecarPath)) {
346
360
  const expected = fs.readFileSync(sidecarPath, "utf8").trim().split(/\s+/)[0];
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/modules/storage/migrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/modules/storage/migrations.ts"],"names":[],"mappings":"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"}