atabey 0.1.1-beta → 0.1.3

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 (230) hide show
  1. package/README.md +145 -79
  2. package/dist/atabey/src/cli/commands/coverage.js +17 -12
  3. package/dist/atabey/src/cli/commands/coverage.js.map +1 -1
  4. package/dist/atabey/src/cli/commands/lint.d.ts +2 -1
  5. package/dist/atabey/src/cli/commands/lint.js +20 -1
  6. package/dist/atabey/src/cli/commands/lint.js.map +1 -1
  7. package/dist/atabey/src/cli/commands/mcp.js +56 -23
  8. package/dist/atabey/src/cli/commands/mcp.js.map +1 -1
  9. package/dist/atabey/src/cli/commands/orchestrate.d.ts +6 -6
  10. package/dist/atabey/src/cli/index.js +1 -1
  11. package/dist/shared/src/agent-identity.d.ts +1 -34
  12. package/dist/shared/src/agent-identity.js +1 -76
  13. package/dist/shared/src/agent-identity.js.map +1 -1
  14. package/dist/shared/src/api-catalog.d.ts +1 -57
  15. package/dist/shared/src/api-catalog.js +1 -253
  16. package/dist/shared/src/api-catalog.js.map +1 -1
  17. package/dist/shared/src/audit-chain.d.ts +1 -80
  18. package/dist/shared/src/audit-chain.js +1 -261
  19. package/dist/shared/src/audit-chain.js.map +1 -1
  20. package/dist/shared/src/audit.d.ts +1 -121
  21. package/dist/shared/src/audit.js +1 -321
  22. package/dist/shared/src/audit.js.map +1 -1
  23. package/dist/shared/src/constants.d.ts +1 -150
  24. package/dist/shared/src/constants.js +1 -211
  25. package/dist/shared/src/constants.js.map +1 -1
  26. package/dist/shared/src/database.d.ts +1 -6
  27. package/dist/shared/src/database.js +1 -15
  28. package/dist/shared/src/database.js.map +1 -1
  29. package/dist/shared/src/errors.d.ts +1 -46
  30. package/dist/shared/src/errors.js +1 -68
  31. package/dist/shared/src/errors.js.map +1 -1
  32. package/dist/shared/src/file-lock.d.ts +1 -93
  33. package/dist/shared/src/file-lock.js +1 -239
  34. package/dist/shared/src/file-lock.js.map +1 -1
  35. package/dist/shared/src/fs.d.ts +1 -9
  36. package/dist/shared/src/fs.js +1 -53
  37. package/dist/shared/src/fs.js.map +1 -1
  38. package/dist/shared/src/index.d.ts +2 -31
  39. package/dist/shared/src/index.js +2 -31
  40. package/dist/shared/src/index.js.map +1 -1
  41. package/dist/shared/src/job-queue.d.ts +1 -76
  42. package/dist/shared/src/job-queue.js +1 -199
  43. package/dist/shared/src/job-queue.js.map +1 -1
  44. package/dist/shared/src/lock.d.ts +1 -82
  45. package/dist/shared/src/lock.js +1 -158
  46. package/dist/shared/src/lock.js.map +1 -1
  47. package/dist/shared/src/logger.d.ts +1 -31
  48. package/dist/shared/src/logger.js +1 -152
  49. package/dist/shared/src/logger.js.map +1 -1
  50. package/dist/shared/src/memory-prune.d.ts +1 -18
  51. package/dist/shared/src/memory-prune.js +1 -47
  52. package/dist/shared/src/memory-prune.js.map +1 -1
  53. package/dist/shared/src/migrations.d.ts +1 -69
  54. package/dist/shared/src/migrations.js +1 -393
  55. package/dist/shared/src/migrations.js.map +1 -1
  56. package/dist/shared/src/modules/agent/agent-identity.d.ts +34 -0
  57. package/dist/shared/src/modules/agent/agent-identity.js +77 -0
  58. package/dist/shared/src/modules/agent/agent-identity.js.map +1 -0
  59. package/dist/shared/src/modules/agent/api-catalog.d.ts +57 -0
  60. package/dist/shared/src/modules/agent/api-catalog.js +254 -0
  61. package/dist/shared/src/modules/agent/api-catalog.js.map +1 -0
  62. package/dist/shared/src/modules/agent/index.d.ts +3 -0
  63. package/dist/shared/src/modules/agent/index.js +4 -0
  64. package/dist/shared/src/modules/agent/index.js.map +1 -0
  65. package/dist/shared/src/modules/agent/tokenizer.d.ts +54 -0
  66. package/dist/shared/src/modules/agent/tokenizer.js +272 -0
  67. package/dist/shared/src/modules/agent/tokenizer.js.map +1 -0
  68. package/dist/shared/src/modules/concurrency/file-lock.d.ts +93 -0
  69. package/dist/shared/src/modules/concurrency/file-lock.js +240 -0
  70. package/dist/shared/src/modules/concurrency/file-lock.js.map +1 -0
  71. package/dist/shared/src/modules/concurrency/index.d.ts +6 -0
  72. package/dist/shared/src/modules/concurrency/index.js +7 -0
  73. package/dist/shared/src/modules/concurrency/index.js.map +1 -0
  74. package/dist/shared/src/modules/concurrency/job-queue.d.ts +76 -0
  75. package/dist/shared/src/modules/concurrency/job-queue.js +200 -0
  76. package/dist/shared/src/modules/concurrency/job-queue.js.map +1 -0
  77. package/dist/shared/src/modules/concurrency/lock.d.ts +82 -0
  78. package/dist/shared/src/modules/concurrency/lock.js +159 -0
  79. package/dist/shared/src/modules/concurrency/lock.js.map +1 -0
  80. package/dist/shared/src/modules/concurrency/resilience.d.ts +84 -0
  81. package/dist/shared/src/modules/concurrency/resilience.js +217 -0
  82. package/dist/shared/src/modules/concurrency/resilience.js.map +1 -0
  83. package/dist/shared/src/modules/concurrency/worker-pool.d.ts +52 -0
  84. package/dist/shared/src/modules/concurrency/worker-pool.js +229 -0
  85. package/dist/shared/src/modules/concurrency/worker-pool.js.map +1 -0
  86. package/dist/shared/src/modules/concurrency/worker-thread.d.ts +21 -0
  87. package/dist/shared/src/modules/concurrency/worker-thread.js +67 -0
  88. package/dist/shared/src/modules/concurrency/worker-thread.js.map +1 -0
  89. package/dist/shared/src/modules/index.d.ts +14 -0
  90. package/dist/shared/src/modules/index.js +15 -0
  91. package/dist/shared/src/modules/index.js.map +1 -0
  92. package/dist/shared/src/modules/observability/audit-chain.d.ts +80 -0
  93. package/dist/shared/src/modules/observability/audit-chain.js +262 -0
  94. package/dist/shared/src/modules/observability/audit-chain.js.map +1 -0
  95. package/dist/shared/src/modules/observability/audit.d.ts +121 -0
  96. package/dist/shared/src/modules/observability/audit.js +322 -0
  97. package/dist/shared/src/modules/observability/audit.js.map +1 -0
  98. package/dist/shared/src/modules/observability/index.d.ts +4 -0
  99. package/dist/shared/src/modules/observability/index.js +5 -0
  100. package/dist/shared/src/modules/observability/index.js.map +1 -0
  101. package/dist/shared/src/modules/observability/logger.d.ts +31 -0
  102. package/dist/shared/src/modules/observability/logger.js +153 -0
  103. package/dist/shared/src/modules/observability/logger.js.map +1 -0
  104. package/dist/shared/src/modules/observability/otel.d.ts +39 -0
  105. package/dist/shared/src/modules/observability/otel.js +93 -0
  106. package/dist/shared/src/modules/observability/otel.js.map +1 -0
  107. package/dist/shared/src/modules/primitives/constants.d.ts +150 -0
  108. package/dist/shared/src/modules/primitives/constants.js +212 -0
  109. package/dist/shared/src/modules/primitives/constants.js.map +1 -0
  110. package/dist/shared/src/modules/primitives/errors.d.ts +46 -0
  111. package/dist/shared/src/modules/primitives/errors.js +69 -0
  112. package/dist/shared/src/modules/primitives/errors.js.map +1 -0
  113. package/dist/shared/src/modules/primitives/fs.d.ts +9 -0
  114. package/dist/shared/src/modules/primitives/fs.js +54 -0
  115. package/dist/shared/src/modules/primitives/fs.js.map +1 -0
  116. package/dist/shared/src/modules/primitives/index.d.ts +7 -0
  117. package/dist/shared/src/modules/primitives/index.js +8 -0
  118. package/dist/shared/src/modules/primitives/index.js.map +1 -0
  119. package/dist/shared/src/modules/primitives/outbound-http.d.ts +32 -0
  120. package/dist/shared/src/modules/primitives/outbound-http.js +88 -0
  121. package/dist/shared/src/modules/primitives/outbound-http.js.map +1 -0
  122. package/dist/shared/src/modules/primitives/string.d.ts +1 -0
  123. package/dist/shared/src/modules/primitives/string.js +30 -0
  124. package/dist/shared/src/modules/primitives/string.js.map +1 -0
  125. package/dist/shared/src/modules/primitives/time.d.ts +5 -0
  126. package/dist/shared/src/modules/primitives/time.js +35 -0
  127. package/dist/shared/src/modules/primitives/time.js.map +1 -0
  128. package/dist/shared/src/modules/primitives/types.d.ts +27 -0
  129. package/dist/shared/src/modules/primitives/types.js +17 -0
  130. package/dist/shared/src/modules/primitives/types.js.map +1 -0
  131. package/dist/shared/src/modules/sandbox/index.d.ts +3 -0
  132. package/dist/shared/src/modules/sandbox/index.js +4 -0
  133. package/dist/shared/src/modules/sandbox/index.js.map +1 -0
  134. package/dist/shared/src/modules/sandbox/sandbox-fs.d.ts +28 -0
  135. package/dist/shared/src/modules/sandbox/sandbox-fs.js +143 -0
  136. package/dist/shared/src/modules/sandbox/sandbox-fs.js.map +1 -0
  137. package/dist/shared/src/modules/sandbox/sandbox-runtime.d.ts +78 -0
  138. package/dist/shared/src/modules/sandbox/sandbox-runtime.js +282 -0
  139. package/dist/shared/src/modules/sandbox/sandbox-runtime.js.map +1 -0
  140. package/dist/shared/src/modules/sandbox/sandbox.d.ts +54 -0
  141. package/dist/shared/src/modules/sandbox/sandbox.js +179 -0
  142. package/dist/shared/src/modules/sandbox/sandbox.js.map +1 -0
  143. package/dist/shared/src/modules/security/index.d.ts +5 -0
  144. package/dist/shared/src/modules/security/index.js +6 -0
  145. package/dist/shared/src/modules/security/index.js.map +1 -0
  146. package/dist/shared/src/modules/security/pii.d.ts +70 -0
  147. package/dist/shared/src/modules/security/pii.js +276 -0
  148. package/dist/shared/src/modules/security/pii.js.map +1 -0
  149. package/dist/shared/src/modules/security/policy-gate.d.ts +42 -0
  150. package/dist/shared/src/modules/security/policy-gate.js +172 -0
  151. package/dist/shared/src/modules/security/policy-gate.js.map +1 -0
  152. package/dist/shared/src/modules/security/retention.d.ts +68 -0
  153. package/dist/shared/src/modules/security/retention.js +218 -0
  154. package/dist/shared/src/modules/security/retention.js.map +1 -0
  155. package/dist/shared/src/modules/security/secrets.d.ts +99 -0
  156. package/dist/shared/src/modules/security/secrets.js +371 -0
  157. package/dist/shared/src/modules/security/secrets.js.map +1 -0
  158. package/dist/shared/src/modules/security/tls.d.ts +87 -0
  159. package/dist/shared/src/modules/security/tls.js +154 -0
  160. package/dist/shared/src/modules/security/tls.js.map +1 -0
  161. package/dist/shared/src/modules/storage/database.d.ts +6 -0
  162. package/dist/shared/src/modules/storage/database.js +16 -0
  163. package/dist/shared/src/modules/storage/database.js.map +1 -0
  164. package/dist/shared/src/modules/storage/index.d.ts +4 -0
  165. package/dist/shared/src/modules/storage/index.js +5 -0
  166. package/dist/shared/src/modules/storage/index.js.map +1 -0
  167. package/dist/shared/src/modules/storage/memory-prune.d.ts +18 -0
  168. package/dist/shared/src/modules/storage/memory-prune.js +48 -0
  169. package/dist/shared/src/modules/storage/memory-prune.js.map +1 -0
  170. package/dist/shared/src/modules/storage/migrations.d.ts +69 -0
  171. package/dist/shared/src/modules/storage/migrations.js +394 -0
  172. package/dist/shared/src/modules/storage/migrations.js.map +1 -0
  173. package/dist/shared/src/modules/storage/storage.d.ts +341 -0
  174. package/dist/shared/src/modules/storage/storage.js +1004 -0
  175. package/dist/shared/src/modules/storage/storage.js.map +1 -0
  176. package/dist/shared/src/otel.d.ts +1 -39
  177. package/dist/shared/src/otel.js +1 -92
  178. package/dist/shared/src/otel.js.map +1 -1
  179. package/dist/shared/src/outbound-http.d.ts +1 -32
  180. package/dist/shared/src/outbound-http.js +1 -87
  181. package/dist/shared/src/outbound-http.js.map +1 -1
  182. package/dist/shared/src/pii.d.ts +1 -70
  183. package/dist/shared/src/pii.js +1 -275
  184. package/dist/shared/src/pii.js.map +1 -1
  185. package/dist/shared/src/policy-gate.d.ts +1 -42
  186. package/dist/shared/src/policy-gate.js +1 -171
  187. package/dist/shared/src/policy-gate.js.map +1 -1
  188. package/dist/shared/src/resilience.d.ts +1 -84
  189. package/dist/shared/src/resilience.js +1 -216
  190. package/dist/shared/src/resilience.js.map +1 -1
  191. package/dist/shared/src/retention.d.ts +1 -68
  192. package/dist/shared/src/retention.js +1 -217
  193. package/dist/shared/src/retention.js.map +1 -1
  194. package/dist/shared/src/sandbox-fs.d.ts +1 -28
  195. package/dist/shared/src/sandbox-fs.js +1 -142
  196. package/dist/shared/src/sandbox-fs.js.map +1 -1
  197. package/dist/shared/src/sandbox-runtime.d.ts +1 -78
  198. package/dist/shared/src/sandbox-runtime.js +1 -281
  199. package/dist/shared/src/sandbox-runtime.js.map +1 -1
  200. package/dist/shared/src/sandbox.d.ts +1 -54
  201. package/dist/shared/src/sandbox.js +1 -178
  202. package/dist/shared/src/sandbox.js.map +1 -1
  203. package/dist/shared/src/secrets.d.ts +1 -99
  204. package/dist/shared/src/secrets.js +1 -370
  205. package/dist/shared/src/secrets.js.map +1 -1
  206. package/dist/shared/src/storage.d.ts +1 -341
  207. package/dist/shared/src/storage.js +1 -1003
  208. package/dist/shared/src/storage.js.map +1 -1
  209. package/dist/shared/src/string.d.ts +1 -1
  210. package/dist/shared/src/string.js +1 -29
  211. package/dist/shared/src/string.js.map +1 -1
  212. package/dist/shared/src/time.d.ts +1 -5
  213. package/dist/shared/src/time.js +1 -34
  214. package/dist/shared/src/time.js.map +1 -1
  215. package/dist/shared/src/tls.d.ts +1 -87
  216. package/dist/shared/src/tls.js +1 -153
  217. package/dist/shared/src/tls.js.map +1 -1
  218. package/dist/shared/src/tokenizer.d.ts +1 -54
  219. package/dist/shared/src/tokenizer.js +1 -271
  220. package/dist/shared/src/tokenizer.js.map +1 -1
  221. package/dist/shared/src/types.d.ts +1 -27
  222. package/dist/shared/src/types.js +1 -16
  223. package/dist/shared/src/types.js.map +1 -1
  224. package/dist/shared/src/worker-pool.d.ts +1 -52
  225. package/dist/shared/src/worker-pool.js +1 -228
  226. package/dist/shared/src/worker-pool.js.map +1 -1
  227. package/dist/shared/src/worker-thread.d.ts +1 -21
  228. package/dist/shared/src/worker-thread.js +1 -66
  229. package/dist/shared/src/worker-thread.js.map +1 -1
  230. package/package.json +4 -4
@@ -1,322 +1,2 @@
1
- /**
2
- * [AUDIT] Structured Audit Log Service
3
- *
4
- * Records all critical operations in structured JSON format to SQLite.
5
- * Queryable, filterable, and traceable.
6
- *
7
- * [KVKK/GDPR] GDPR and KVKK Art. 4, 5, 11, 12 compliant:
8
- * - Sensitive data automatically masked (PII masking)
9
- * - Data retention limited (TTL)
10
- * - Data subject rights supported (erasure, query)
11
- *
12
- * Usage:
13
- * Audit.log("user.create", "SUCCESS", { userId: "usr_123" });
14
- * Audit.query({ action: "user.create", status: "FAILED" });
15
- */
16
- import { AUDIT_CHAIN_GENESIS, buildStructuredAuditChainPayload, chainDigest, readChainAnchor, writeChainAnchor, clearChainAnchor, verifyHashChain, } from "./audit-chain.js";
17
- import { maskObject, maskText } from "./pii.js";
18
- import { databaseHolder } from "./database.js";
19
- import { logger } from "./logger.js";
20
- export class Audit {
21
- static TABLE = "audit_log";
22
- /** Out-of-DB anchor file name for the structured audit chain. */
23
- static ANCHOR_NAME = "structured";
24
- /** [KVKK] Default data retention period: 30 days */
25
- static DEFAULT_RETENTION_DAYS = (() => {
26
- const parsed = parseInt(process.env.ATABEY_DATA_RETENTION_DAYS || "30", 10);
27
- return Number.isFinite(parsed) && parsed > 0 ? parsed : 30;
28
- })();
29
- /** [KVKK] Maximum retention for sensitive categories: 90 days */
30
- static MAX_RETENTION_DAYS = 90;
31
- static initialize() {
32
- const db = databaseHolder.getDB();
33
- db.exec(`
34
- CREATE TABLE IF NOT EXISTS ${this.TABLE} (
35
- id INTEGER PRIMARY KEY AUTOINCREMENT,
36
- timestamp TEXT NOT NULL,
37
- action TEXT NOT NULL,
38
- status TEXT NOT NULL,
39
- agent TEXT NOT NULL,
40
- traceId TEXT,
41
- details TEXT,
42
- errorMessage TEXT,
43
- durationMs INTEGER,
44
- dataCategory TEXT DEFAULT 'OPERATIONAL',
45
- retentionDays INTEGER DEFAULT ${this.DEFAULT_RETENTION_DAYS},
46
- prev_hash TEXT,
47
- hash TEXT
48
- )
49
- `);
50
- // Migrate older DBs
51
- try {
52
- const cols = db.prepare(`PRAGMA table_info(${this.TABLE})`).all().map((c) => c.name);
53
- if (!cols.includes("prev_hash"))
54
- db.exec(`ALTER TABLE ${this.TABLE} ADD COLUMN prev_hash TEXT`);
55
- if (!cols.includes("hash"))
56
- db.exec(`ALTER TABLE ${this.TABLE} ADD COLUMN hash TEXT`);
57
- }
58
- catch {
59
- /* ignore */
60
- }
61
- // Indexes for performance
62
- db.exec(`
63
- CREATE INDEX IF NOT EXISTS idx_audit_action ON ${this.TABLE}(action);
64
- CREATE INDEX IF NOT EXISTS idx_audit_status ON ${this.TABLE}(status);
65
- CREATE INDEX IF NOT EXISTS idx_audit_trace ON ${this.TABLE}(traceId);
66
- CREATE INDEX IF NOT EXISTS idx_audit_timestamp ON ${this.TABLE}(timestamp);
67
- CREATE INDEX IF NOT EXISTS idx_audit_category ON ${this.TABLE}(dataCategory);
68
- `);
69
- }
70
- /**
71
- * Refresh the out-of-DB chain anchor after a legitimate deletion
72
- * (retention / right-to-erasure). Without this, legitimate deletions would
73
- * be indistinguishable from tampering.
74
- */
75
- static refreshAnchor() {
76
- try {
77
- const db = databaseHolder.getDB();
78
- const row = db.prepare(`SELECT hash FROM ${this.TABLE} WHERE hash IS NOT NULL ORDER BY id DESC LIMIT 1`).get();
79
- const count = db.prepare(`SELECT COUNT(*) AS c FROM ${this.TABLE} WHERE hash IS NOT NULL`).get().c;
80
- if (row?.hash && count > 0)
81
- writeChainAnchor(this.ANCHOR_NAME, row.hash, count);
82
- else
83
- clearChainAnchor(this.ANCHOR_NAME);
84
- }
85
- catch {
86
- /* ignore */
87
- }
88
- }
89
- /**
90
- * Logs a structured audit entry.
91
- * [KVKK] Sensitive data is automatically masked.
92
- */
93
- static log(action, status, options = {}) {
94
- const db = databaseHolder.getDB();
95
- const requested = options.retentionDays ?? this.DEFAULT_RETENTION_DAYS;
96
- const safeRequested = Number.isFinite(requested) && requested >= 0 ? requested : this.DEFAULT_RETENTION_DAYS;
97
- const retentionDays = Math.min(safeRequested, this.MAX_RETENTION_DAYS);
98
- // [KVKK] PII Masking — mask sensitive data in the details field
99
- const maskedDetails = options.details
100
- ? maskObject(options.details)
101
- : undefined;
102
- const maskedError = options.errorMessage
103
- ? maskText(options.errorMessage)
104
- : undefined;
105
- const timestamp = new Date().toISOString();
106
- const agent = options.agent || "@manager";
107
- const detailsJson = maskedDetails ? JSON.stringify(maskedDetails) : "";
108
- const errorMessage = maskedError || "";
109
- const traceId = options.traceId || "";
110
- const dataCategory = options.dataCategory || "OPERATIONAL";
111
- // Append-only hash chain inside a transaction (Phase 1.4)
112
- const insert = db.transaction(() => {
113
- let prevHash = AUDIT_CHAIN_GENESIS;
114
- try {
115
- const last = db.prepare(`SELECT hash FROM ${this.TABLE} WHERE hash IS NOT NULL ORDER BY id DESC LIMIT 1`).get();
116
- if (last?.hash)
117
- prevHash = last.hash;
118
- }
119
- catch {
120
- /* genesis */
121
- }
122
- const payload = buildStructuredAuditChainPayload({
123
- prevHash,
124
- agent,
125
- action,
126
- status,
127
- traceId,
128
- timestamp,
129
- detailsJson,
130
- errorMessage,
131
- });
132
- const hash = chainDigest(payload);
133
- db.prepare(`
134
- INSERT INTO ${this.TABLE}
135
- (timestamp, action, status, agent, traceId, details, errorMessage, durationMs, dataCategory, retentionDays, prev_hash, hash)
136
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
137
- `).run(timestamp, action, status, agent, options.traceId || null, detailsJson || null, errorMessage || null, options.durationMs || null, dataCategory, retentionDays, prevHash, hash);
138
- // Refresh the out-of-DB anchor so tail truncation becomes detectable.
139
- const count = db.prepare(`SELECT COUNT(*) AS c FROM ${this.TABLE} WHERE hash IS NOT NULL`).get().c;
140
- writeChainAnchor(this.ANCHOR_NAME, hash, count);
141
- });
142
- insert();
143
- }
144
- /**
145
- * Verify tamper-evident chain for structured audit_log table.
146
- */
147
- static verifyIntegrity() {
148
- const db = databaseHolder.getDB();
149
- try {
150
- const rows = db.prepare(`SELECT id, prev_hash, hash, agent, action, status, traceId, timestamp, details, errorMessage
151
- FROM ${this.TABLE} ORDER BY id ASC`).all();
152
- // Skip unhashed legacy rows at the head; start chain at first hashed row
153
- const hashed = rows.filter((r) => r.hash);
154
- if (hashed.length === 0) {
155
- return { valid: true, checked: 0, reason: "No hashed audit rows yet" };
156
- }
157
- const anchor = readChainAnchor(this.ANCHOR_NAME);
158
- return verifyHashChain(hashed, (row, prevHash) => buildStructuredAuditChainPayload({
159
- prevHash,
160
- agent: row.agent,
161
- action: row.action,
162
- status: row.status,
163
- traceId: row.traceId || "",
164
- timestamp: row.timestamp,
165
- detailsJson: row.details || "",
166
- errorMessage: row.errorMessage || "",
167
- }), {
168
- expectedTip: anchor?.tip,
169
- expectedCount: anchor?.count,
170
- });
171
- }
172
- catch (err) {
173
- return {
174
- valid: false,
175
- checked: 0,
176
- reason: `Verification error: ${err.message}`,
177
- };
178
- }
179
- }
180
- /**
181
- * Queries audit logs with filters.
182
- */
183
- static query(options = {}) {
184
- const db = databaseHolder.getDB();
185
- const conditions = [];
186
- const params = [];
187
- if (options.action) {
188
- conditions.push("action = ?");
189
- params.push(options.action);
190
- }
191
- if (options.status) {
192
- conditions.push("status = ?");
193
- params.push(options.status);
194
- }
195
- if (options.agent) {
196
- conditions.push("agent = ?");
197
- params.push(options.agent);
198
- }
199
- if (options.traceId) {
200
- conditions.push("traceId = ?");
201
- params.push(options.traceId);
202
- }
203
- if (options.dataCategory) {
204
- conditions.push("dataCategory = ?");
205
- params.push(options.dataCategory);
206
- }
207
- if (options.since) {
208
- conditions.push("timestamp >= ?");
209
- params.push(options.since);
210
- }
211
- if (options.until) {
212
- conditions.push("timestamp <= ?");
213
- params.push(options.until);
214
- }
215
- const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
216
- const limit = options.limit || 50;
217
- const offset = options.offset || 0;
218
- const rows = db.prepare(`SELECT * FROM ${this.TABLE} ${where} ORDER BY timestamp DESC LIMIT ? OFFSET ?`).all(...params, limit, offset);
219
- return rows.map(row => ({
220
- ...row,
221
- details: row.details ? JSON.parse(row.details) : undefined,
222
- }));
223
- }
224
- /**
225
- * [KVKK Art. 11] Deletes records upon data subject request.
226
- * Clears all records matching a given traceId or agent.
227
- *
228
- * @param filter Which records to delete
229
- * @returns Number of deleted records
230
- */
231
- static deleteByFilter(filter) {
232
- const db = databaseHolder.getDB();
233
- const conditions = [];
234
- const params = [];
235
- if (filter.traceId) {
236
- conditions.push("traceId = ?");
237
- params.push(filter.traceId);
238
- }
239
- if (filter.agent) {
240
- conditions.push("agent = ?");
241
- params.push(filter.agent);
242
- }
243
- if (filter.action) {
244
- conditions.push("action = ?");
245
- params.push(filter.action);
246
- }
247
- if (filter.olderThanDays) {
248
- conditions.push("timestamp < datetime('now', ? || ' days')");
249
- params.push(`-${filter.olderThanDays}`);
250
- }
251
- if (conditions.length === 0)
252
- return 0;
253
- const result = db.prepare(`DELETE FROM ${this.TABLE} WHERE ${conditions.join(" AND ")}`).run(...params);
254
- if (result.changes > 0)
255
- this.refreshAnchor();
256
- return result.changes;
257
- }
258
- /**
259
- * [KVKK/GDPR] Cleans expired records.
260
- * Operates based on each audit record's retentionDays field.
261
- * Can be auto-triggered by cron job or each Audit.log() call.
262
- *
263
- * @returns Number of cleaned records
264
- */
265
- static cleanExpired() {
266
- const db = databaseHolder.getDB();
267
- const result = db.prepare(`
268
- DELETE FROM ${this.TABLE}
269
- WHERE retentionDays IS NOT NULL
270
- AND strftime('%Y-%m-%d %H:%M:%S', timestamp) < datetime('now', '-' || retentionDays || ' days')
271
- `).run();
272
- if (result.changes > 0) {
273
- this.refreshAnchor();
274
- logger.info(`[AUDIT] Expired records cleaned: ${result.changes}`);
275
- }
276
- return result.changes;
277
- }
278
- /**
279
- * Returns audit statistics.
280
- */
281
- static getStats() {
282
- const db = databaseHolder.getDB();
283
- this.cleanExpired();
284
- const total = db.prepare(`SELECT COUNT(*) as count FROM ${this.TABLE}`).get().count;
285
- const byStatusRows = db.prepare(`SELECT status, COUNT(*) as count FROM ${this.TABLE} GROUP BY status`).all();
286
- const byActionRows = db.prepare(`SELECT action, COUNT(*) as count FROM ${this.TABLE} GROUP BY action ORDER BY count DESC LIMIT 10`).all();
287
- const byCategoryRows = db.prepare(`SELECT dataCategory, COUNT(*) as count FROM ${this.TABLE} GROUP BY dataCategory`).all();
288
- const errors = db.prepare(`SELECT * FROM ${this.TABLE} WHERE status IN ('FAILED', 'BLOCKED') ORDER BY timestamp DESC LIMIT 10`).all();
289
- const expiredCount = db.prepare(`
290
- SELECT COUNT(*) as count FROM ${this.TABLE}
291
- WHERE retentionDays IS NOT NULL
292
- AND strftime('%Y-%m-%d %H:%M:%S', timestamp) < datetime('now', '-' || retentionDays || ' days')
293
- `).get().count;
294
- return {
295
- total,
296
- byStatus: Object.fromEntries(byStatusRows.map(r => [r.status, r.count])),
297
- byAction: Object.fromEntries(byActionRows.map(r => [r.action, r.count])),
298
- byCategory: Object.fromEntries(byCategoryRows.map(r => [r.dataCategory, r.count])),
299
- recentErrors: errors.map(row => ({
300
- ...row,
301
- details: row.details ? JSON.parse(row.details) : undefined,
302
- })),
303
- expiredCount,
304
- };
305
- }
306
- /**
307
- * [KVKK Art. 7] Clears all audit records.
308
- * Used under the "Right to Erasure" provision.
309
- * Only authorized users may call this.
310
- */
311
- static clearAll(confirmationCode) {
312
- if (confirmationCode !== "KVKK-RIGHT-TO-ERASURE") {
313
- throw new Error("[AUDIT] Invalid confirmation code for data erasure");
314
- }
315
- const db = databaseHolder.getDB();
316
- const result = db.prepare(`DELETE FROM ${this.TABLE}`).run();
317
- clearChainAnchor(this.ANCHOR_NAME);
318
- logger.info(`[AUDIT] All records cleared (${result.changes} records). KVKK Article 7 compliance.`);
319
- return result.changes;
320
- }
321
- }
1
+ export * from "./modules/observability/audit.js";
322
2
  //# sourceMappingURL=audit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../../shared/src/audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../../shared/src/audit.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
@@ -1,150 +1 @@
1
- /**
2
- * Atabey — Single Source of Truth for framework constants.
3
- * Import from here instead of hardcoding paths, phases, or directory names.
4
- */
5
- export declare const FRAMEWORK: {
6
- NAME: string;
7
- CORE_DIR: string;
8
- UNIFIED_HUB_DIR: string;
9
- CONSTITUTION_FILE: string;
10
- DEFAULT_TRACE_ID: string;
11
- DEFAULT_PHASE: string;
12
- DEFAULT_MANAGER_STATE: string;
13
- };
14
- export declare const PROJECT_PHASES: readonly ["PHASE_0", "PHASE_1", "PHASE_2", "PHASE_3", "PHASE_4"];
15
- export declare const ADAPTER_DIRS: {
16
- readonly GEMINI: ".gemini";
17
- readonly CLAUDE: ".claude";
18
- readonly GROK: ".grok";
19
- readonly CURSOR: ".cursor";
20
- readonly CODEX: ".agents";
21
- readonly ANTIGRAVITY: ".agents";
22
- readonly LOCAL: ".atabey";
23
- readonly OPENCODE: ".opencode";
24
- readonly LEGACY_AGENT: ".agent";
25
- };
26
- /** Priority order for framework directory resolution (CLI + MCP).
27
- * De-duplicated: `.agents` serves both CODEX and ANTIGRAVITY, `.atabey` is also LOCAL. */
28
- export declare const FRAMEWORK_DIR_CANDIDATES: readonly [string, ".agents", ".claude", ".gemini", ".grok", ".cursor", ".opencode"];
29
- /** Slug under `.agents/{slug}/` for each adapter in unified mode. */
30
- export declare const UNIFIED_ADAPTER_SLUG: {
31
- readonly gemini: "gemini";
32
- readonly claude: "claude";
33
- readonly grok: "grok";
34
- readonly cursor: "cursor";
35
- readonly codex: "codex";
36
- readonly local: "local";
37
- readonly opencode: "opencode";
38
- readonly "antigravity-cli": "antigravity";
39
- };
40
- export type UnifiedAdapterSlug = keyof typeof UNIFIED_ADAPTER_SLUG;
41
- export declare const NATIVE_AGENT_PATHS: {
42
- readonly gemini: string;
43
- readonly claude: string;
44
- readonly grok: string;
45
- readonly cursor: string;
46
- readonly codex: string;
47
- readonly local: string;
48
- readonly opencode: string;
49
- readonly "antigravity-cli": string;
50
- };
51
- /** Legacy layout bases used by `check` and discovery (non-unified installs). */
52
- export declare const LEGACY_AGENT_LAYOUT_BASES: readonly [string, string, string, string, string, string, string, string];
53
- export declare const FRAMEWORK_SUBDIRS: {
54
- readonly AGENTS: "agents";
55
- readonly SKILLS: "skills";
56
- readonly KNOWLEDGE: "knowledge";
57
- readonly PROMPTS: "prompts";
58
- readonly MEMORY: "memory";
59
- readonly ROUTER: "router";
60
- readonly REGISTRY: "registry";
61
- readonly OBSERVABILITY: "observability";
62
- readonly RULES: "rules";
63
- readonly MESSAGES: "messages";
64
- readonly LOGS: "logs";
65
- readonly MEMORY_GRAPH: "memory-graph";
66
- };
67
- export declare const CORE_SCAFFOLD_SUBDIRS: readonly ["knowledge", "prompts", "memory", "router", "registry", "observability", "rules"];
68
- export declare const RUNTIME_SUBDIRS: readonly ["messages", "logs", "memory-graph"];
69
- export declare const MEMORY_SUBDIRS: {
70
- readonly TASKS: "tasks";
71
- readonly HISTORY: "history";
72
- };
73
- export declare const MEMORY_FILES: {
74
- readonly STATE: "state.json";
75
- readonly STATUS: "status.json";
76
- readonly PROJECT_MEMORY: "PROJECT_MEMORY.md";
77
- readonly SHARED_FACTS: "shared-facts.json";
78
- };
79
- /** Default layout scaffolded into consumer projects after `atabey init`. */
80
- export declare const DEFAULT_CONSUMER_PATHS: {
81
- readonly backend: "apps/backend";
82
- readonly frontend: "apps/web";
83
- readonly mobile: "apps/mobile";
84
- readonly docs: "docs";
85
- readonly tests: "tests";
86
- };
87
- /** Paths inside the Atabey framework source monorepo (not consumer apps/). */
88
- export declare const FRAMEWORK_MONOREPO_PATHS: {
89
- readonly backend: "packages/atabey";
90
- readonly frontend: "apps/web";
91
- readonly mobile: "apps/mobile";
92
- readonly docs: "docs";
93
- readonly tests: "packages";
94
- };
95
- /** @deprecated Use DEFAULT_CONSUMER_PATHS */
96
- export declare const DEFAULT_MONOREPO_PATHS: {
97
- readonly backend: "apps/backend";
98
- readonly frontend: "apps/web";
99
- readonly mobile: "apps/mobile";
100
- readonly docs: "docs";
101
- readonly tests: "tests";
102
- };
103
- /** Cursor rule globs per agent role (framework monorepo layout). */
104
- export declare const CURSOR_AGENT_GLOBS: Record<string, string>;
105
- export declare const MCP: {
106
- readonly SERVER_NAME: "atabey";
107
- readonly ROOT_CONFIG_FILE: "mcp.json";
108
- readonly PROJECT_ROOT_ENV: "ATABEY_PROJECT_ROOT";
109
- readonly TEST_DIR_ENV: "ATABEY_TEST_DIR";
110
- readonly TRANSPORT_ENV: "MCP_TRANSPORT";
111
- /** IDE clients (Claude, Cursor, Gemini) spawn MCP via stdio JSON-RPC. */
112
- readonly TRANSPORT_STDIO: "stdio";
113
- /** HTTP/SSE unified server for multi-session and remote clients. */
114
- readonly TRANSPORT_UNIFIED: "unified";
115
- readonly SERVER_DIST_PATH: "../atabey-mcp/dist/atabey-mcp/src/mcp/index.js";
116
- };
117
- /** Headless Hermes orchestrator (AgentLoop) — auto-starts with MCP server by default. */
118
- export declare const ORCHESTRATOR: {
119
- readonly AUTO_START_ENV: "ATABEY_AUTO_START_ORCHESTRATOR";
120
- readonly INTERVAL_MS_ENV: "ATABEY_ORCHESTRATOR_INTERVAL_MS";
121
- readonly DEFAULT_AUTO_START: true;
122
- readonly DEFAULT_INTERVAL_MS: 1000;
123
- };
124
- export declare const ROOT_CONFIG_FILES: {
125
- readonly MCP: "mcp.json";
126
- readonly DOT_MCP: ".mcp.json";
127
- readonly ENV_EXAMPLE: ".env.example";
128
- readonly VSCODE_MCP: ".vscode/mcp.json";
129
- };
130
- export declare const TEMPLATE_PLACEHOLDERS: {
131
- readonly FRAMEWORK_DIR: "{{FRAMEWORK_DIR}}";
132
- readonly ADAPTER: "{{ADAPTER}}";
133
- readonly BACKEND_DIR: "{{BACKEND_DIR}}";
134
- readonly FRONTEND_DIR: "{{FRONTEND_DIR}}";
135
- readonly DOCS_DIR: "{{DOCS_DIR}}";
136
- readonly TESTS_DIR: "{{TESTS_DIR}}";
137
- };
138
- export declare const AGENT_FILE_EXT: {
139
- readonly MARKDOWN: ".md";
140
- readonly CURSOR_RULE: ".mdc";
141
- };
142
- export declare function pathJoin(...segments: string[]): string;
143
- export declare function corePath(...segments: string[]): string;
144
- export declare function unifiedHubPath(...segments: string[]): string;
145
- export declare function unifiedAdapterPath(slug: string, ...segments: string[]): string;
146
- export declare function knowledgePath(filename: string): string;
147
- /** Backward-compatible aliases */
148
- export declare const CORE_FRAMEWORK_DIR: string;
149
- export declare const UNIFIED_HUB_DIR: string;
150
- export declare const SKILLS_HUB_PATH: string;
1
+ export * from "./modules/primitives/constants.js";