atabey 0.0.12 → 0.0.13

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 (232) hide show
  1. package/ATABEY.md +45 -499
  2. package/PRIVACY.md +161 -0
  3. package/README.md +353 -88
  4. package/bin/validate-al-registry.js +4 -4
  5. package/dist/framework-mcp/src/tools/definitions.js +23 -1
  6. package/dist/framework-mcp/src/tools/definitions.js.map +1 -1
  7. package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.d.ts +19 -0
  8. package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js +138 -0
  9. package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js.map +1 -0
  10. package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.d.ts +8 -0
  11. package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js +91 -0
  12. package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js.map +1 -0
  13. package/dist/framework-mcp/src/tools/index.d.ts +1 -1
  14. package/dist/framework-mcp/src/tools/index.js +35 -20
  15. package/dist/framework-mcp/src/tools/index.js.map +1 -1
  16. package/dist/framework-mcp/src/tools/quality/analyze_code_quality.d.ts +11 -0
  17. package/dist/framework-mcp/src/tools/quality/analyze_code_quality.js +166 -0
  18. package/dist/framework-mcp/src/tools/quality/analyze_code_quality.js.map +1 -0
  19. package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.d.ts +11 -0
  20. package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js +135 -0
  21. package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js.map +1 -0
  22. package/dist/framework-mcp/src/tools/schemas.d.ts +88 -8
  23. package/dist/framework-mcp/src/tools/schemas.js +29 -0
  24. package/dist/framework-mcp/src/tools/schemas.js.map +1 -1
  25. package/dist/framework-mcp/src/tools/shell/run_command.js +2 -2
  26. package/dist/framework-mcp/src/tools/shell/run_command.js.map +1 -1
  27. package/dist/src/cli/commands/check.js +2 -2
  28. package/dist/src/cli/commands/check.js.map +1 -1
  29. package/dist/src/cli/commands/dashboard.d.ts +1 -1
  30. package/dist/src/cli/commands/dashboard.js +264 -41
  31. package/dist/src/cli/commands/dashboard.js.map +1 -1
  32. package/dist/src/cli/commands/gateway.d.ts +1 -0
  33. package/dist/src/cli/commands/gateway.js +172 -0
  34. package/dist/src/cli/commands/gateway.js.map +1 -0
  35. package/dist/src/cli/commands/init/create-agent.js +3 -3
  36. package/dist/src/cli/commands/init/create-agent.js.map +1 -1
  37. package/dist/src/cli/commands/init/scaffold-core.d.ts +1 -1
  38. package/dist/src/cli/commands/init/scaffold-core.js +1 -1
  39. package/dist/src/cli/commands/init/scaffold-core.js.map +1 -1
  40. package/dist/src/cli/commands/init.d.ts +2 -0
  41. package/dist/src/cli/commands/init.js +105 -23
  42. package/dist/src/cli/commands/init.js.map +1 -1
  43. package/dist/src/cli/commands/mcp.d.ts +7 -0
  44. package/dist/src/cli/commands/mcp.js +45 -22
  45. package/dist/src/cli/commands/mcp.js.map +1 -1
  46. package/dist/src/cli/commands/orchestrate.d.ts +8 -7
  47. package/dist/src/cli/commands/orchestrate.js +2 -1
  48. package/dist/src/cli/commands/orchestrate.js.map +1 -1
  49. package/dist/src/cli/commands/quickstart.d.ts +5 -5
  50. package/dist/src/cli/commands/quickstart.js +36 -36
  51. package/dist/src/cli/commands/quickstart.js.map +1 -1
  52. package/dist/src/cli/index.js +230 -320
  53. package/dist/src/cli/index.js.map +1 -1
  54. package/dist/src/cli/platforms/core.d.ts +12 -0
  55. package/dist/src/cli/platforms/core.js +73 -0
  56. package/dist/src/cli/platforms/core.js.map +1 -0
  57. package/dist/src/cli/platforms/index.d.ts +5 -0
  58. package/dist/src/cli/platforms/index.js +6 -0
  59. package/dist/src/cli/platforms/index.js.map +1 -0
  60. package/dist/src/cli/platforms/paths.d.ts +15 -0
  61. package/dist/src/cli/platforms/paths.js +102 -0
  62. package/dist/src/cli/platforms/paths.js.map +1 -0
  63. package/dist/src/cli/platforms/scaffold.d.ts +2 -0
  64. package/dist/src/cli/platforms/scaffold.js +73 -0
  65. package/dist/src/cli/platforms/scaffold.js.map +1 -0
  66. package/dist/src/cli/platforms/utils.d.ts +4 -0
  67. package/dist/src/cli/platforms/utils.js +76 -0
  68. package/dist/src/cli/platforms/utils.js.map +1 -0
  69. package/dist/src/cli/shims.js +4 -4
  70. package/dist/src/cli/utils/fs.d.ts +1 -1
  71. package/dist/src/cli/utils/fs.js +1 -1
  72. package/dist/src/cli/utils/fs.js.map +1 -1
  73. package/dist/src/modules/agents/definitions.d.ts +2 -2
  74. package/dist/src/modules/agents/definitions.js +59 -23
  75. package/dist/src/modules/agents/definitions.js.map +1 -1
  76. package/dist/src/modules/contracts/api.d.ts +178 -0
  77. package/dist/src/modules/contracts/api.js +56 -0
  78. package/dist/src/modules/contracts/api.js.map +1 -0
  79. package/dist/src/modules/contracts/index.d.ts +5 -0
  80. package/dist/src/modules/contracts/index.js +6 -0
  81. package/dist/src/modules/contracts/index.js.map +1 -0
  82. package/dist/src/modules/engines/agent-executor.d.ts +27 -28
  83. package/dist/src/modules/engines/agent-executor.js +97 -69
  84. package/dist/src/modules/engines/agent-executor.js.map +1 -1
  85. package/dist/src/modules/engines/quality-gate.d.ts +7 -7
  86. package/dist/src/modules/engines/quality-gate.js +7 -7
  87. package/dist/src/modules/engines/routing-engine.d.ts +18 -27
  88. package/dist/src/modules/engines/routing-engine.js +70 -44
  89. package/dist/src/modules/engines/routing-engine.js.map +1 -1
  90. package/dist/src/modules/gateway/circuit-breaker.d.ts +40 -0
  91. package/dist/src/modules/gateway/circuit-breaker.js +163 -0
  92. package/dist/src/modules/gateway/circuit-breaker.js.map +1 -0
  93. package/dist/src/modules/gateway/cost-tracker.d.ts +55 -0
  94. package/dist/src/modules/gateway/cost-tracker.js +127 -0
  95. package/dist/src/modules/gateway/cost-tracker.js.map +1 -0
  96. package/dist/src/modules/gateway/gateway.d.ts +68 -0
  97. package/dist/src/modules/gateway/gateway.js +235 -0
  98. package/dist/src/modules/gateway/gateway.js.map +1 -0
  99. package/dist/src/modules/gateway/index.d.ts +19 -0
  100. package/dist/src/modules/gateway/index.js +19 -0
  101. package/dist/src/modules/gateway/index.js.map +1 -0
  102. package/dist/src/modules/gateway/load-balancer.d.ts +86 -0
  103. package/dist/src/modules/gateway/load-balancer.js +230 -0
  104. package/dist/src/modules/gateway/load-balancer.js.map +1 -0
  105. package/dist/src/modules/gateway/providers/anthropic.d.ts +14 -0
  106. package/dist/src/modules/gateway/providers/anthropic.js +169 -0
  107. package/dist/src/modules/gateway/providers/anthropic.js.map +1 -0
  108. package/dist/src/modules/gateway/providers/base.d.ts +38 -0
  109. package/dist/src/modules/gateway/providers/base.js +42 -0
  110. package/dist/src/modules/gateway/providers/base.js.map +1 -0
  111. package/dist/src/modules/gateway/providers/google.d.ts +18 -0
  112. package/dist/src/modules/gateway/providers/google.js +176 -0
  113. package/dist/src/modules/gateway/providers/google.js.map +1 -0
  114. package/dist/src/modules/gateway/providers/grok.d.ts +14 -0
  115. package/dist/src/modules/gateway/providers/grok.js +166 -0
  116. package/dist/src/modules/gateway/providers/grok.js.map +1 -0
  117. package/dist/src/modules/gateway/providers/index.d.ts +21 -0
  118. package/dist/src/modules/gateway/providers/index.js +38 -0
  119. package/dist/src/modules/gateway/providers/index.js.map +1 -0
  120. package/dist/src/modules/gateway/providers/ollama.d.ts +23 -0
  121. package/dist/src/modules/gateway/providers/ollama.js +187 -0
  122. package/dist/src/modules/gateway/providers/ollama.js.map +1 -0
  123. package/dist/src/modules/gateway/providers/openai.d.ts +14 -0
  124. package/dist/src/modules/gateway/providers/openai.js +170 -0
  125. package/dist/src/modules/gateway/providers/openai.js.map +1 -0
  126. package/dist/src/modules/gateway/rate-limiter.d.ts +41 -0
  127. package/dist/src/modules/gateway/rate-limiter.js +119 -0
  128. package/dist/src/modules/gateway/rate-limiter.js.map +1 -0
  129. package/dist/src/modules/gateway/types.d.ts +114 -0
  130. package/dist/src/modules/gateway/types.js +8 -0
  131. package/dist/src/modules/gateway/types.js.map +1 -0
  132. package/dist/src/modules/memory/core.d.ts +4 -12
  133. package/dist/src/modules/memory/core.js +10 -17
  134. package/dist/src/modules/memory/core.js.map +1 -1
  135. package/dist/src/modules/memory/embedding.d.ts +28 -0
  136. package/dist/src/modules/memory/embedding.js +131 -0
  137. package/dist/src/modules/memory/embedding.js.map +1 -0
  138. package/dist/src/modules/providers/definitions.d.ts +9 -0
  139. package/dist/src/modules/providers/definitions.js +141 -0
  140. package/dist/src/modules/providers/definitions.js.map +1 -0
  141. package/dist/src/modules/providers/registry.d.ts +12 -0
  142. package/dist/src/modules/providers/registry.js +19 -0
  143. package/dist/src/modules/providers/registry.js.map +1 -0
  144. package/dist/src/modules/providers/shared.d.ts +1 -0
  145. package/dist/src/modules/providers/shared.js +105 -0
  146. package/dist/src/modules/providers/shared.js.map +1 -0
  147. package/dist/src/modules/providers/types.d.ts +14 -0
  148. package/dist/src/modules/providers/types.js +2 -0
  149. package/dist/src/modules/providers/types.js.map +1 -0
  150. package/dist/src/modules/skills/adapter-skills.d.ts +68 -0
  151. package/dist/src/modules/skills/adapter-skills.js +450 -0
  152. package/dist/src/modules/skills/adapter-skills.js.map +1 -0
  153. package/dist/src/shared/audit.d.ts +105 -0
  154. package/dist/src/shared/audit.js +220 -0
  155. package/dist/src/shared/audit.js.map +1 -0
  156. package/dist/src/shared/fs.js +4 -2
  157. package/dist/src/shared/fs.js.map +1 -1
  158. package/dist/src/shared/lock.d.ts +82 -0
  159. package/dist/src/shared/lock.js +160 -0
  160. package/dist/src/shared/lock.js.map +1 -0
  161. package/dist/src/shared/logger.d.ts +2 -0
  162. package/dist/src/shared/logger.js +15 -5
  163. package/dist/src/shared/logger.js.map +1 -1
  164. package/dist/src/shared/pii.d.ts +37 -0
  165. package/dist/src/shared/pii.js +122 -0
  166. package/dist/src/shared/pii.js.map +1 -0
  167. package/dist/src/shared/retention.d.ts +63 -0
  168. package/dist/src/shared/retention.js +171 -0
  169. package/dist/src/shared/retention.js.map +1 -0
  170. package/dist/src/shared/storage.d.ts +3 -1
  171. package/dist/src/shared/storage.js +3 -1
  172. package/dist/src/shared/storage.js.map +1 -1
  173. package/dist/tests/adapter.test.js +1 -1
  174. package/dist/tests/adapter.test.js.map +1 -1
  175. package/dist/tests/adapters/paths.test.js +4 -4
  176. package/dist/tests/adapters/paths.test.js.map +1 -1
  177. package/dist/tests/cli/commands/dashboard-coverage.test.d.ts +1 -0
  178. package/dist/tests/cli/commands/dashboard-coverage.test.js +88 -0
  179. package/dist/tests/cli/commands/dashboard-coverage.test.js.map +1 -0
  180. package/dist/tests/cli/init/adapter_init.test.js +4 -5
  181. package/dist/tests/cli/init/adapter_init.test.js.map +1 -1
  182. package/dist/tests/cli/init/unified_init.test.js +5 -7
  183. package/dist/tests/cli/init/unified_init.test.js.map +1 -1
  184. package/dist/tests/integration/agent_flow.test.js +14 -8
  185. package/dist/tests/integration/agent_flow.test.js.map +1 -1
  186. package/dist/tests/modules/adapters/adapters.test.js +2 -2
  187. package/dist/tests/modules/adapters/adapters.test.js.map +1 -1
  188. package/dist/tests/modules/contracts/contracts.test.d.ts +1 -0
  189. package/dist/tests/modules/contracts/contracts.test.js +73 -0
  190. package/dist/tests/modules/contracts/contracts.test.js.map +1 -0
  191. package/dist/tests/modules/engines/agent-executor.test.js +30 -23
  192. package/dist/tests/modules/engines/agent-executor.test.js.map +1 -1
  193. package/dist/tests/modules/gateway/circuit-breaker.test.d.ts +1 -0
  194. package/dist/tests/modules/gateway/circuit-breaker.test.js +124 -0
  195. package/dist/tests/modules/gateway/circuit-breaker.test.js.map +1 -0
  196. package/dist/tests/modules/gateway/cost-tracker.test.d.ts +1 -0
  197. package/dist/tests/modules/gateway/cost-tracker.test.js +74 -0
  198. package/dist/tests/modules/gateway/cost-tracker.test.js.map +1 -0
  199. package/dist/tests/modules/gateway/load-balancer.test.d.ts +1 -0
  200. package/dist/tests/modules/gateway/load-balancer.test.js +70 -0
  201. package/dist/tests/modules/gateway/load-balancer.test.js.map +1 -0
  202. package/dist/tests/modules/gateway/rate-limiter.test.d.ts +1 -0
  203. package/dist/tests/modules/gateway/rate-limiter.test.js +62 -0
  204. package/dist/tests/modules/gateway/rate-limiter.test.js.map +1 -0
  205. package/dist/tests/orchestrator-dependencies.test.js +23 -6
  206. package/dist/tests/orchestrator-dependencies.test.js.map +1 -1
  207. package/dist/tests/shared/audit.test.d.ts +1 -0
  208. package/dist/tests/shared/audit.test.js +53 -0
  209. package/dist/tests/shared/audit.test.js.map +1 -0
  210. package/dist/tests/storage-operations.test.d.ts +1 -0
  211. package/dist/tests/storage-operations.test.js +116 -0
  212. package/dist/tests/storage-operations.test.js.map +1 -0
  213. package/framework-mcp/README.md +324 -77
  214. package/framework-mcp/dist/dashboard/assets/index-BAPGLiWE.js +267 -0
  215. package/framework-mcp/dist/dashboard/index.html +15 -0
  216. package/framework-mcp/dist/framework-mcp/src/tools/definitions.js +23 -1
  217. package/framework-mcp/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js +137 -0
  218. package/framework-mcp/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js +90 -0
  219. package/framework-mcp/dist/framework-mcp/src/tools/index.js +35 -20
  220. package/framework-mcp/dist/framework-mcp/src/tools/quality/analyze_code_quality.js +165 -0
  221. package/framework-mcp/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js +134 -0
  222. package/framework-mcp/dist/framework-mcp/src/tools/schemas.js +29 -0
  223. package/framework-mcp/dist/framework-mcp/src/tools/shell/run_command.js +2 -2
  224. package/framework-mcp/dist/src/modules/memory/core.js +10 -17
  225. package/framework-mcp/dist/src/modules/memory/embedding.js +130 -0
  226. package/framework-mcp/dist/src/shared/fs.js +4 -2
  227. package/framework-mcp/dist/src/shared/logger.js +15 -5
  228. package/framework-mcp/dist/src/shared/pii.js +121 -0
  229. package/framework-mcp/dist/src/shared/storage.js +3 -1
  230. package/framework-mcp/package.json +1 -1
  231. package/package.json +10 -4
  232. package/templates/full/ATABEY_FULL.md +515 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../../../src/modules/gateway/rate-limiter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * ATABEY LLM Gateway / Load Balancer — Shared Types
3
+ *
4
+ * Central type definitions for the multi-provider LLM gateway.
5
+ */
6
+ export declare const PROVIDER_IDS: readonly ["openai", "anthropic", "google", "grok", "ollama"];
7
+ export type ProviderId = (typeof PROVIDER_IDS)[number];
8
+ export interface ProviderConfig {
9
+ id: ProviderId;
10
+ name: string;
11
+ baseUrl: string;
12
+ apiKey?: string;
13
+ models: string[];
14
+ defaultModel: string;
15
+ maxRetries: number;
16
+ timeoutMs: number;
17
+ rpmLimit: number;
18
+ tpmLimit: number;
19
+ costPer1kInputTokens: number;
20
+ costPer1kOutputTokens: number;
21
+ enabled: boolean;
22
+ priority: number;
23
+ weight: number;
24
+ }
25
+ export type LoadBalanceStrategy = "round-robin" | "least-latency" | "cost-optimized" | "failover" | "priority-based" | "model-based";
26
+ export interface GatewayRequest {
27
+ model?: string;
28
+ messages: GatewayMessage[];
29
+ system?: string;
30
+ temperature?: number;
31
+ maxTokens?: number;
32
+ stream?: boolean;
33
+ provider?: ProviderId;
34
+ strategy?: LoadBalanceStrategy;
35
+ traceId?: string;
36
+ metadata?: Record<string, unknown>;
37
+ }
38
+ export interface GatewayMessage {
39
+ role: "system" | "user" | "assistant" | "tool";
40
+ content: string;
41
+ name?: string;
42
+ toolCallId?: string;
43
+ }
44
+ export interface GatewayResponse {
45
+ success: boolean;
46
+ content: string;
47
+ model: string;
48
+ provider: ProviderId;
49
+ usage: {
50
+ inputTokens: number;
51
+ outputTokens: number;
52
+ totalTokens: number;
53
+ };
54
+ latencyMs: number;
55
+ cost: number;
56
+ cached: boolean;
57
+ traceId?: string;
58
+ }
59
+ export interface ProviderHealth {
60
+ provider: ProviderId;
61
+ healthy: boolean;
62
+ lastCheck: string;
63
+ latencyMs: number;
64
+ errorRate: number;
65
+ consecutiveFailures: number;
66
+ status: "UP" | "DOWN" | "DEGRADED" | "CIRCUIT_OPEN";
67
+ }
68
+ export interface CircuitBreakerState {
69
+ provider: ProviderId;
70
+ state: "CLOSED" | "OPEN" | "HALF_OPEN";
71
+ failureCount: number;
72
+ successCount: number;
73
+ lastFailureTimestamp: string | null;
74
+ openSince: string | null;
75
+ threshold: number;
76
+ recoveryTimeoutMs: number;
77
+ }
78
+ export interface RateLimitState {
79
+ provider: ProviderId;
80
+ currentRpm: number;
81
+ currentTpm: number;
82
+ lastResetTime: number;
83
+ isLimited: boolean;
84
+ }
85
+ export interface CostEntry {
86
+ provider: ProviderId;
87
+ model: string;
88
+ inputTokens: number;
89
+ outputTokens: number;
90
+ cost: number;
91
+ timestamp: string;
92
+ traceId?: string;
93
+ }
94
+ export interface GatewayStats {
95
+ totalRequests: number;
96
+ successfulRequests: number;
97
+ failedRequests: number;
98
+ totalCost: number;
99
+ averageLatencyMs: number;
100
+ requestsByProvider: Record<ProviderId, number>;
101
+ costsByProvider: Record<ProviderId, number>;
102
+ uptime: number;
103
+ startTime: string;
104
+ }
105
+ export interface StreamChunk {
106
+ content: string;
107
+ done: boolean;
108
+ provider: ProviderId;
109
+ model: string;
110
+ usage?: {
111
+ inputTokens: number;
112
+ outputTokens: number;
113
+ };
114
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * ATABEY LLM Gateway / Load Balancer — Shared Types
3
+ *
4
+ * Central type definitions for the multi-provider LLM gateway.
5
+ */
6
+ // ─── Available Providers ──────────────────────────────────────────
7
+ export const PROVIDER_IDS = ["openai", "anthropic", "google", "grok", "ollama"];
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/modules/gateway/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qEAAqE;AACrE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC"}
@@ -3,7 +3,7 @@ import { MemoryCategory, MemorySearchResult } from "./types.js";
3
3
  /**
4
4
  * [MEMORY] Core Memory Service
5
5
  * High-level API for managing project knowledge and embeddings.
6
- * Uses TF-IDF style keyword frequency for vector generation (no external dependencies).
6
+ * Uses OpenAI Embedding API when available, falls back to TF-IDF.
7
7
  */
8
8
  export declare class CoreMemory {
9
9
  private static readonly VECTOR_DIM;
@@ -11,7 +11,7 @@ export declare class CoreMemory {
11
11
  static init(): Promise<void>;
12
12
  /**
13
13
  * Records a new piece of knowledge into the core memory.
14
- * Automatically generates a TF-IDF style vector embedding.
14
+ * Uses OpenAI Embedding API when available, falls back to TF-IDF.
15
15
  */
16
16
  static remember(params: {
17
17
  content: string;
@@ -23,6 +23,7 @@ export declare class CoreMemory {
23
23
  }): Promise<string>;
24
24
  /**
25
25
  * Searches the memory for relevant knowledge using cosine similarity.
26
+ * Uses OpenAI Embedding API when available for the query vector.
26
27
  */
27
28
  static recall(query: string, options: {
28
29
  category?: MemoryCategory;
@@ -31,16 +32,7 @@ export declare class CoreMemory {
31
32
  }): Promise<MemorySearchResult[]>;
32
33
  /**
33
34
  * Generates a TF-IDF style embedding vector from text.
34
- *
35
- * How it works:
36
- * 1. Tokenizes the text into words
37
- * 2. Removes stop words and short tokens
38
- * 3. Calculates term frequency for each word
39
- * 4. Maps each word to a deterministic position in the vector using hash
40
- * 5. Normalizes the final vector
41
- *
42
- * This produces a sparse vector where semantically similar texts
43
- * (sharing similar keywords) will have higher cosine similarity.
35
+ * Kept for backward compatibility and as fallback.
44
36
  */
45
37
  static generateEmbedding(text: string): number[];
46
38
  /**
@@ -1,9 +1,10 @@
1
1
  import crypto from "crypto";
2
+ import { generateEmbedding } from "./embedding.js";
2
3
  import { VectorStore } from "./vector-store.js";
3
4
  /**
4
5
  * [MEMORY] Core Memory Service
5
6
  * High-level API for managing project knowledge and embeddings.
6
- * Uses TF-IDF style keyword frequency for vector generation (no external dependencies).
7
+ * Uses OpenAI Embedding API when available, falls back to TF-IDF.
7
8
  */
8
9
  export class CoreMemory {
9
10
  static VECTOR_DIM = 384;
@@ -18,14 +19,16 @@ export class CoreMemory {
18
19
  }
19
20
  /**
20
21
  * Records a new piece of knowledge into the core memory.
21
- * Automatically generates a TF-IDF style vector embedding.
22
+ * Uses OpenAI Embedding API when available, falls back to TF-IDF.
22
23
  */
23
24
  static async remember(params) {
24
25
  const id = crypto.createHash("sha256").update(params.content + (params.filePath || "")).digest("hex");
26
+ // Use provided vector or generate via embedding service
27
+ const vector = params.vector || await generateEmbedding(params.content);
25
28
  const entry = {
26
29
  id,
27
30
  content: params.content,
28
- vector: params.vector || this.generateEmbedding(params.content),
31
+ vector,
29
32
  metadata: {
30
33
  category: params.category,
31
34
  traceId: params.traceId,
@@ -39,23 +42,15 @@ export class CoreMemory {
39
42
  }
40
43
  /**
41
44
  * Searches the memory for relevant knowledge using cosine similarity.
45
+ * Uses OpenAI Embedding API when available for the query vector.
42
46
  */
43
47
  static async recall(query, options) {
44
- const vector = options.queryVector || this.generateEmbedding(query);
48
+ const vector = options.queryVector || await generateEmbedding(query);
45
49
  return VectorStore.search(vector, options.limit || 5, options.category);
46
50
  }
47
51
  /**
48
52
  * Generates a TF-IDF style embedding vector from text.
49
- *
50
- * How it works:
51
- * 1. Tokenizes the text into words
52
- * 2. Removes stop words and short tokens
53
- * 3. Calculates term frequency for each word
54
- * 4. Maps each word to a deterministic position in the vector using hash
55
- * 5. Normalizes the final vector
56
- *
57
- * This produces a sparse vector where semantically similar texts
58
- * (sharing similar keywords) will have higher cosine similarity.
53
+ * Kept for backward compatibility and as fallback.
59
54
  */
60
55
  static generateEmbedding(text) {
61
56
  const vector = new Array(this.VECTOR_DIM).fill(0);
@@ -74,8 +69,6 @@ export class CoreMemory {
74
69
  tf.set(token, (tf.get(token) || 0) + 1);
75
70
  }
76
71
  // Map each unique token to vector positions using hash
77
- // A single token contributes to multiple positions (3-gram hash)
78
- // to capture partial token similarity
79
72
  for (const [token, freq] of tf) {
80
73
  for (let i = 0; i < token.length - 1; i++) {
81
74
  const ngram = token.substring(i, i + 2);
@@ -99,7 +92,7 @@ export class CoreMemory {
99
92
  let hash = 0;
100
93
  for (let i = 0; i < value.length; i++) {
101
94
  hash = ((hash << 5) - hash) + value.charCodeAt(i);
102
- hash |= 0; // Convert to 32-bit integer
95
+ hash |= 0;
103
96
  }
104
97
  return Math.abs(hash) % this.VECTOR_DIM;
105
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/modules/memory/core.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,OAAO,UAAU;IACX,MAAM,CAAU,UAAU,GAAG,GAAG,CAAC;IACjC,MAAM,CAAU,UAAU,GAAG,IAAI,GAAG,CAAC;QACzC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;QACnE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI;QAClE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;QAClE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;KACrE,CAAC,CAAC;IAEI,MAAM,CAAC,KAAK,CAAC,IAAI;QACpB,WAAW,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAO5B;QACG,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEtG,MAAM,KAAK,GAAgB;YACvB,EAAE;YACF,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC;YAC/D,QAAQ,EAAE;gBACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;gBACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC;SACJ,CAAC;QAEF,MAAM,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAIzC;QACG,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACpE,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,MAAM,CAAC,iBAAiB,CAAC,IAAY;QACxC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAElD,qBAAqB;QACrB,MAAM,MAAM,GAAG,IAAI;aACd,WAAW,EAAE;aACb,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC;aAClC,KAAK,CAAC,KAAK,CAAC;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,2BAA2B;QAC3B,MAAM,EAAE,GAAG,IAAI,GAAG,EAAkB,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,uDAAuD;QACvD,iEAAiE;QACjE,sCAAsC;QACtC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxC,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBACvC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;YACjD,CAAC;QACL,CAAC;QAED,2BAA2B;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;YAC3B,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,cAAc,CAAC,KAAa;QACvC,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAClD,IAAI,IAAI,CAAC,CAAC,CAAC,4BAA4B;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;IAC5C,CAAC"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/modules/memory/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * [MEMORY] Embedding Service
3
+ *
4
+ * Real embedding generation with OpenAI API integration.
5
+ * Falls back to TF-IDF if no API key is available.
6
+ *
7
+ * Supported methods:
8
+ * 1. OpenAI Embedding API (text-embedding-3-small) — 1536 dimensions
9
+ * 2. TF-IDF fallback (local method) — 384 dimensions
10
+ */
11
+ /**
12
+ * Generates an embedding vector for the given text.
13
+ *
14
+ * Priority:
15
+ * 1. OpenAI API (if API key is available)
16
+ * 2. TF-IDF fallback (local)
17
+ */
18
+ export declare function generateEmbedding(text: string): Promise<number[]>;
19
+ /**
20
+ * Batch embedding generation. Single API call for multiple texts.
21
+ * OpenAI supports batch requests natively.
22
+ */
23
+ export declare function generateEmbeddings(texts: string[]): Promise<number[][]>;
24
+ /**
25
+ * Checks if a vector is an OpenAI embedding (1536 dimensions)
26
+ * as opposed to TF-IDF (384 dimensions).
27
+ */
28
+ export declare function isOpenAIEmbedding(vector: number[]): boolean;
@@ -0,0 +1,131 @@
1
+ /**
2
+ * [MEMORY] Embedding Service
3
+ *
4
+ * Real embedding generation with OpenAI API integration.
5
+ * Falls back to TF-IDF if no API key is available.
6
+ *
7
+ * Supported methods:
8
+ * 1. OpenAI Embedding API (text-embedding-3-small) — 1536 dimensions
9
+ * 2. TF-IDF fallback (local method) — 384 dimensions
10
+ */
11
+ import fs from "fs";
12
+ import path from "path";
13
+ import { logger } from "../../shared/logger.js";
14
+ import { CoreMemory } from "./core.js";
15
+ const EMBEDDING_API = "https://api.openai.com/v1/embeddings";
16
+ const EMBEDDING_MODEL = "text-embedding-3-small";
17
+ const EMBEDDING_DIM = 1536;
18
+ /**
19
+ * Reads the API key from environment variable or .env file.
20
+ */
21
+ function getApiKey() {
22
+ if (process.env.OPENAI_API_KEY)
23
+ return process.env.OPENAI_API_KEY;
24
+ try {
25
+ const envPath = path.join(process.cwd(), ".env");
26
+ if (fs.existsSync(envPath)) {
27
+ const content = fs.readFileSync(envPath, "utf8");
28
+ const match = content.match(/^OPENAI_API_KEY=(.+)$/m);
29
+ if (match)
30
+ return match[1].trim();
31
+ }
32
+ }
33
+ catch {
34
+ // Silently ignore .env read errors
35
+ }
36
+ return null;
37
+ }
38
+ /**
39
+ * Generates an embedding vector for the given text.
40
+ *
41
+ * Priority:
42
+ * 1. OpenAI API (if API key is available)
43
+ * 2. TF-IDF fallback (local)
44
+ */
45
+ export async function generateEmbedding(text) {
46
+ const apiKey = getApiKey();
47
+ // Use OpenAI API if available
48
+ if (apiKey) {
49
+ try {
50
+ const response = await fetch(EMBEDDING_API, {
51
+ method: "POST",
52
+ headers: {
53
+ "Content-Type": "application/json",
54
+ "Authorization": `Bearer ${apiKey}`,
55
+ },
56
+ body: JSON.stringify({
57
+ input: text,
58
+ model: EMBEDDING_MODEL,
59
+ }),
60
+ });
61
+ if (!response.ok) {
62
+ logger.warn(`OpenAI API error: ${response.status}. Falling back to TF-IDF.`);
63
+ return fallbackEmbedding(text);
64
+ }
65
+ const data = await response.json();
66
+ if (data?.data?.[0]?.embedding) {
67
+ return data.data[0].embedding;
68
+ }
69
+ }
70
+ catch (err) {
71
+ logger.warn(`OpenAI API call failed: ${err.message}. Falling back to TF-IDF.`);
72
+ }
73
+ }
74
+ // Fallback: TF-IDF
75
+ return fallbackEmbedding(text);
76
+ }
77
+ /**
78
+ * TF-IDF fallback embedding using CoreMemory.generateEmbedding.
79
+ * OpenAI embedding is 1536 dimensions, TF-IDF is 384 dimensions.
80
+ * Pads TF-IDF output to 1536 for compatibility.
81
+ */
82
+ function fallbackEmbedding(text) {
83
+ const tfidfVector = CoreMemory.generateEmbedding(text); // 384 dimensions
84
+ // Pad 384 → 1536
85
+ const padded = new Array(EMBEDDING_DIM).fill(0);
86
+ for (let i = 0; i < tfidfVector.length; i++) {
87
+ padded[i] = tfidfVector[i];
88
+ }
89
+ return padded;
90
+ }
91
+ /**
92
+ * Batch embedding generation. Single API call for multiple texts.
93
+ * OpenAI supports batch requests natively.
94
+ */
95
+ export async function generateEmbeddings(texts) {
96
+ const apiKey = getApiKey();
97
+ if (apiKey) {
98
+ try {
99
+ const response = await fetch(EMBEDDING_API, {
100
+ method: "POST",
101
+ headers: {
102
+ "Content-Type": "application/json",
103
+ "Authorization": `Bearer ${apiKey}`,
104
+ },
105
+ body: JSON.stringify({
106
+ input: texts,
107
+ model: EMBEDDING_MODEL,
108
+ }),
109
+ });
110
+ if (response.ok) {
111
+ const data = await response.json();
112
+ if (data?.data) {
113
+ return data.data.map(d => d.embedding);
114
+ }
115
+ }
116
+ }
117
+ catch {
118
+ // fallback
119
+ }
120
+ }
121
+ // Fallback for each text
122
+ return Promise.all(texts.map(t => fallbackEmbedding(t)));
123
+ }
124
+ /**
125
+ * Checks if a vector is an OpenAI embedding (1536 dimensions)
126
+ * as opposed to TF-IDF (384 dimensions).
127
+ */
128
+ export function isOpenAIEmbedding(vector) {
129
+ return vector.length === EMBEDDING_DIM;
130
+ }
131
+ //# sourceMappingURL=embedding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../../../src/modules/memory/embedding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { AdapterConfig, AdapterId } from "./types.js";
2
+ /**
3
+ * Mapped Adapter Configurations
4
+ */
5
+ export declare const ADAPTER_CONFIGS: Record<AdapterId, AdapterConfig>;
6
+ /**
7
+ * Post-Initialization Handlers for specific adapters
8
+ */
9
+ export declare const POST_INIT_HANDLERS: Record<AdapterId, (projectRoot: string, mcpBlock: unknown) => void>;
@@ -0,0 +1,141 @@
1
+ import path from "path";
2
+ import { addMcpServerToClaude, findClaudeConfigPath } from "../../cli/utils/claude.js";
3
+ import { writeJsonFile } from "../../shared/fs.js";
4
+ import { registerGlobalAntigravityPlugins } from "./shared.js";
5
+ import { registry } from "./registry.js";
6
+ import { UI } from "../../cli/utils/ui.js";
7
+ // ─── Register Core Adapters ──────────────────────────────────────────────────
8
+ // [GEMINI] Gemini
9
+ registry.register({
10
+ id: "gemini",
11
+ frameworkDir: ".gemini",
12
+ shimFile: "GEMINI.md",
13
+ shimTemplate: "src/cli/shims/gemini.md",
14
+ role: "commander",
15
+ templateDir: ".atabey",
16
+ nestedDirs: ["agents", "rules"],
17
+ agentsDir: ".gemini/agents",
18
+ agentsExt: ".md"
19
+ }, (projectRoot, mcpBlock) => {
20
+ const frameworkDir = ".gemini";
21
+ writeJsonFile(path.join(projectRoot, frameworkDir, "mcp.json"), mcpBlock);
22
+ UI.success(`Gemini MCP registered → ${frameworkDir}/mcp.json`);
23
+ registerGlobalAntigravityPlugins(mcpBlock);
24
+ });
25
+ // [START] Claude
26
+ registry.register({
27
+ id: "claude",
28
+ frameworkDir: ".claude",
29
+ shimFile: "CLAUDE.md",
30
+ shimTemplate: "src/cli/shims/claude.md",
31
+ role: "architect",
32
+ templateDir: ".atabey",
33
+ nestedDirs: ["agents", "rules"],
34
+ agentsDir: ".claude/agents",
35
+ agentsExt: ".md"
36
+ }, (projectRoot, mcpBlock) => {
37
+ const configPath = findClaudeConfigPath();
38
+ if (configPath) {
39
+ const block = mcpBlock;
40
+ const mcpEntry = block.mcpServers["atabey"];
41
+ const ok = addMcpServerToClaude(configPath, "atabey", mcpEntry);
42
+ if (ok)
43
+ UI.success(`Claude MCP registered → ${configPath}`);
44
+ }
45
+ const frameworkDir = ".claude";
46
+ writeJsonFile(path.join(projectRoot, frameworkDir, "mcp_config.json"), mcpBlock);
47
+ writeJsonFile(path.join(projectRoot, ".mcp.json"), mcpBlock);
48
+ UI.success("Claude Code Project MCP → .mcp.json");
49
+ });
50
+ // [AI] Grok
51
+ registry.register({
52
+ id: "grok",
53
+ frameworkDir: ".grok",
54
+ shimFile: "GROK.md",
55
+ shimTemplate: "src/cli/shims/grok.md",
56
+ role: "researcher",
57
+ templateDir: ".atabey",
58
+ nestedDirs: ["agents", "rules"],
59
+ agentsDir: ".grok/agents",
60
+ agentsExt: ".md"
61
+ }, (projectRoot, mcpBlock) => {
62
+ const frameworkDir = ".grok";
63
+ writeJsonFile(path.join(projectRoot, frameworkDir, "mcp_config.json"), mcpBlock);
64
+ UI.success(`Grok MCP → ${frameworkDir}/mcp_config.json`);
65
+ });
66
+ // [CURSOR] Cursor
67
+ registry.register({
68
+ id: "cursor",
69
+ frameworkDir: ".cursor",
70
+ shimFile: "CURSOR.md",
71
+ shimTemplate: "src/cli/shims/cursor.mdc",
72
+ role: "implementer",
73
+ templateDir: ".atabey",
74
+ nestedDirs: ["rules"],
75
+ agentsDir: ".cursor/rules",
76
+ agentsExt: ".mdc"
77
+ }, (projectRoot, mcpBlock) => {
78
+ const frameworkDir = ".cursor";
79
+ writeJsonFile(path.join(projectRoot, frameworkDir, "mcp.json"), mcpBlock);
80
+ UI.success(`Cursor IDE Project MCP → ${frameworkDir}/mcp.json`);
81
+ });
82
+ // [TIP] Codex (Copilot)
83
+ registry.register({
84
+ id: "codex",
85
+ frameworkDir: ".agents",
86
+ shimFile: "copilot-instructions.md",
87
+ shimTemplate: "src/cli/shims/codex.md",
88
+ role: "implementer",
89
+ templateDir: ".atabey",
90
+ nestedDirs: ["skills", "rules", "instructions"],
91
+ agentsDir: ".agents/instructions",
92
+ agentsExt: ".md"
93
+ }, (projectRoot, mcpBlock) => {
94
+ const frameworkDir = ".agents";
95
+ writeJsonFile(path.join(projectRoot, frameworkDir, "mcp_config.json"), mcpBlock);
96
+ writeJsonFile(path.join(projectRoot, ".vscode/mcp.json"), mcpBlock);
97
+ writeJsonFile(path.join(projectRoot, ".mcp.json"), mcpBlock);
98
+ UI.success("GitHub Copilot Project MCP → .vscode/mcp.json & .mcp.json");
99
+ });
100
+ // [LOCAL] Local LLM (Ollama / Private AI)
101
+ registry.register({
102
+ id: "local",
103
+ frameworkDir: ".atabey",
104
+ shimFile: "LOCAL_AI.md",
105
+ shimTemplate: "src/cli/shims/local.md",
106
+ role: "commander",
107
+ templateDir: ".atabey",
108
+ nestedDirs: ["agents", "rules"],
109
+ agentsDir: ".atabey/agents",
110
+ agentsExt: ".md"
111
+ }, (projectRoot, mcpBlock) => {
112
+ const frameworkDir = ".atabey";
113
+ writeJsonFile(path.join(projectRoot, frameworkDir, "mcp_config.json"), mcpBlock);
114
+ UI.success(`Local LLM MCP (Ollama/Private AI) registered → ${frameworkDir}/mcp_config.json`);
115
+ });
116
+ // [ANTIGRAVITY] Antigravity
117
+ registry.register({
118
+ id: "antigravity-cli",
119
+ frameworkDir: ".agents",
120
+ shimFile: "AGENTS.md",
121
+ shimTemplate: "src/cli/shims/antigravity-cli.md",
122
+ role: "general",
123
+ templateDir: ".atabey",
124
+ nestedDirs: ["agents", "plugins", "rules"],
125
+ agentsDir: ".agents/agents",
126
+ agentsExt: ".md"
127
+ }, (projectRoot, mcpBlock) => {
128
+ const frameworkDir = ".agents";
129
+ writeJsonFile(path.join(projectRoot, frameworkDir, "mcp_config.json"), mcpBlock);
130
+ UI.success(`Antigravity CLI MCP → ${frameworkDir}/mcp_config.json`);
131
+ registerGlobalAntigravityPlugins(mcpBlock);
132
+ });
133
+ /**
134
+ * Mapped Adapter Configurations
135
+ */
136
+ export const ADAPTER_CONFIGS = registry.getConfigs();
137
+ /**
138
+ * Post-Initialization Handlers for specific adapters
139
+ */
140
+ export const POST_INIT_HANDLERS = registry.getHandlers();
141
+ //# sourceMappingURL=definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../../src/modules/providers/definitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { AdapterId, AdapterConfig } from "./types.js";
2
+ type PostInitHandler = (projectRoot: string, mcpBlock: unknown) => void;
3
+ declare class AdapterRegistry {
4
+ private configs;
5
+ private handlers;
6
+ register(config: AdapterConfig, handler: PostInitHandler): void;
7
+ getConfigs(): Record<string, AdapterConfig>;
8
+ getHandlers(): Record<string, PostInitHandler>;
9
+ getIds(): AdapterId[];
10
+ }
11
+ export declare const registry: AdapterRegistry;
12
+ export {};
@@ -0,0 +1,19 @@
1
+ class AdapterRegistry {
2
+ configs = new Map();
3
+ handlers = new Map();
4
+ register(config, handler) {
5
+ this.configs.set(config.id, config);
6
+ this.handlers.set(config.id, handler);
7
+ }
8
+ getConfigs() {
9
+ return Object.fromEntries(this.configs);
10
+ }
11
+ getHandlers() {
12
+ return Object.fromEntries(this.handlers);
13
+ }
14
+ getIds() {
15
+ return Array.from(this.configs.keys());
16
+ }
17
+ }
18
+ export const registry = new AdapterRegistry();
19
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/modules/providers/registry.ts"],"names":[],"mappings":"AAIA,MAAM,eAAe;IACT,OAAO,GAA+B,IAAI,GAAG,EAAE,CAAC;IAChD,QAAQ,GAAiC,IAAI,GAAG,EAAE,CAAC;IAE3D,QAAQ,CAAC,MAAqB,EAAE,OAAwB;QACpD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,UAAU;QACN,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,WAAW;QACP,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAgB,CAAC;IAC1D,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function registerGlobalAntigravityPlugins(mcpBlock: unknown): void;