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.
- package/ATABEY.md +45 -499
- package/PRIVACY.md +161 -0
- package/README.md +353 -88
- package/bin/validate-al-registry.js +4 -4
- package/dist/framework-mcp/src/tools/definitions.js +23 -1
- package/dist/framework-mcp/src/tools/definitions.js.map +1 -1
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.d.ts +19 -0
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js +138 -0
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js.map +1 -0
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.d.ts +8 -0
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js +91 -0
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js.map +1 -0
- package/dist/framework-mcp/src/tools/index.d.ts +1 -1
- package/dist/framework-mcp/src/tools/index.js +35 -20
- package/dist/framework-mcp/src/tools/index.js.map +1 -1
- package/dist/framework-mcp/src/tools/quality/analyze_code_quality.d.ts +11 -0
- package/dist/framework-mcp/src/tools/quality/analyze_code_quality.js +166 -0
- package/dist/framework-mcp/src/tools/quality/analyze_code_quality.js.map +1 -0
- package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.d.ts +11 -0
- package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js +135 -0
- package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js.map +1 -0
- package/dist/framework-mcp/src/tools/schemas.d.ts +88 -8
- package/dist/framework-mcp/src/tools/schemas.js +29 -0
- package/dist/framework-mcp/src/tools/schemas.js.map +1 -1
- package/dist/framework-mcp/src/tools/shell/run_command.js +2 -2
- package/dist/framework-mcp/src/tools/shell/run_command.js.map +1 -1
- package/dist/src/cli/commands/check.js +2 -2
- package/dist/src/cli/commands/check.js.map +1 -1
- package/dist/src/cli/commands/dashboard.d.ts +1 -1
- package/dist/src/cli/commands/dashboard.js +264 -41
- package/dist/src/cli/commands/dashboard.js.map +1 -1
- package/dist/src/cli/commands/gateway.d.ts +1 -0
- package/dist/src/cli/commands/gateway.js +172 -0
- package/dist/src/cli/commands/gateway.js.map +1 -0
- package/dist/src/cli/commands/init/create-agent.js +3 -3
- package/dist/src/cli/commands/init/create-agent.js.map +1 -1
- package/dist/src/cli/commands/init/scaffold-core.d.ts +1 -1
- package/dist/src/cli/commands/init/scaffold-core.js +1 -1
- package/dist/src/cli/commands/init/scaffold-core.js.map +1 -1
- package/dist/src/cli/commands/init.d.ts +2 -0
- package/dist/src/cli/commands/init.js +105 -23
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/mcp.d.ts +7 -0
- package/dist/src/cli/commands/mcp.js +45 -22
- package/dist/src/cli/commands/mcp.js.map +1 -1
- package/dist/src/cli/commands/orchestrate.d.ts +8 -7
- package/dist/src/cli/commands/orchestrate.js +2 -1
- package/dist/src/cli/commands/orchestrate.js.map +1 -1
- package/dist/src/cli/commands/quickstart.d.ts +5 -5
- package/dist/src/cli/commands/quickstart.js +36 -36
- package/dist/src/cli/commands/quickstart.js.map +1 -1
- package/dist/src/cli/index.js +230 -320
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/platforms/core.d.ts +12 -0
- package/dist/src/cli/platforms/core.js +73 -0
- package/dist/src/cli/platforms/core.js.map +1 -0
- package/dist/src/cli/platforms/index.d.ts +5 -0
- package/dist/src/cli/platforms/index.js +6 -0
- package/dist/src/cli/platforms/index.js.map +1 -0
- package/dist/src/cli/platforms/paths.d.ts +15 -0
- package/dist/src/cli/platforms/paths.js +102 -0
- package/dist/src/cli/platforms/paths.js.map +1 -0
- package/dist/src/cli/platforms/scaffold.d.ts +2 -0
- package/dist/src/cli/platforms/scaffold.js +73 -0
- package/dist/src/cli/platforms/scaffold.js.map +1 -0
- package/dist/src/cli/platforms/utils.d.ts +4 -0
- package/dist/src/cli/platforms/utils.js +76 -0
- package/dist/src/cli/platforms/utils.js.map +1 -0
- package/dist/src/cli/shims.js +4 -4
- package/dist/src/cli/utils/fs.d.ts +1 -1
- package/dist/src/cli/utils/fs.js +1 -1
- package/dist/src/cli/utils/fs.js.map +1 -1
- package/dist/src/modules/agents/definitions.d.ts +2 -2
- package/dist/src/modules/agents/definitions.js +59 -23
- package/dist/src/modules/agents/definitions.js.map +1 -1
- package/dist/src/modules/contracts/api.d.ts +178 -0
- package/dist/src/modules/contracts/api.js +56 -0
- package/dist/src/modules/contracts/api.js.map +1 -0
- package/dist/src/modules/contracts/index.d.ts +5 -0
- package/dist/src/modules/contracts/index.js +6 -0
- package/dist/src/modules/contracts/index.js.map +1 -0
- package/dist/src/modules/engines/agent-executor.d.ts +27 -28
- package/dist/src/modules/engines/agent-executor.js +97 -69
- package/dist/src/modules/engines/agent-executor.js.map +1 -1
- package/dist/src/modules/engines/quality-gate.d.ts +7 -7
- package/dist/src/modules/engines/quality-gate.js +7 -7
- package/dist/src/modules/engines/routing-engine.d.ts +18 -27
- package/dist/src/modules/engines/routing-engine.js +70 -44
- package/dist/src/modules/engines/routing-engine.js.map +1 -1
- package/dist/src/modules/gateway/circuit-breaker.d.ts +40 -0
- package/dist/src/modules/gateway/circuit-breaker.js +163 -0
- package/dist/src/modules/gateway/circuit-breaker.js.map +1 -0
- package/dist/src/modules/gateway/cost-tracker.d.ts +55 -0
- package/dist/src/modules/gateway/cost-tracker.js +127 -0
- package/dist/src/modules/gateway/cost-tracker.js.map +1 -0
- package/dist/src/modules/gateway/gateway.d.ts +68 -0
- package/dist/src/modules/gateway/gateway.js +235 -0
- package/dist/src/modules/gateway/gateway.js.map +1 -0
- package/dist/src/modules/gateway/index.d.ts +19 -0
- package/dist/src/modules/gateway/index.js +19 -0
- package/dist/src/modules/gateway/index.js.map +1 -0
- package/dist/src/modules/gateway/load-balancer.d.ts +86 -0
- package/dist/src/modules/gateway/load-balancer.js +230 -0
- package/dist/src/modules/gateway/load-balancer.js.map +1 -0
- package/dist/src/modules/gateway/providers/anthropic.d.ts +14 -0
- package/dist/src/modules/gateway/providers/anthropic.js +169 -0
- package/dist/src/modules/gateway/providers/anthropic.js.map +1 -0
- package/dist/src/modules/gateway/providers/base.d.ts +38 -0
- package/dist/src/modules/gateway/providers/base.js +42 -0
- package/dist/src/modules/gateway/providers/base.js.map +1 -0
- package/dist/src/modules/gateway/providers/google.d.ts +18 -0
- package/dist/src/modules/gateway/providers/google.js +176 -0
- package/dist/src/modules/gateway/providers/google.js.map +1 -0
- package/dist/src/modules/gateway/providers/grok.d.ts +14 -0
- package/dist/src/modules/gateway/providers/grok.js +166 -0
- package/dist/src/modules/gateway/providers/grok.js.map +1 -0
- package/dist/src/modules/gateway/providers/index.d.ts +21 -0
- package/dist/src/modules/gateway/providers/index.js +38 -0
- package/dist/src/modules/gateway/providers/index.js.map +1 -0
- package/dist/src/modules/gateway/providers/ollama.d.ts +23 -0
- package/dist/src/modules/gateway/providers/ollama.js +187 -0
- package/dist/src/modules/gateway/providers/ollama.js.map +1 -0
- package/dist/src/modules/gateway/providers/openai.d.ts +14 -0
- package/dist/src/modules/gateway/providers/openai.js +170 -0
- package/dist/src/modules/gateway/providers/openai.js.map +1 -0
- package/dist/src/modules/gateway/rate-limiter.d.ts +41 -0
- package/dist/src/modules/gateway/rate-limiter.js +119 -0
- package/dist/src/modules/gateway/rate-limiter.js.map +1 -0
- package/dist/src/modules/gateway/types.d.ts +114 -0
- package/dist/src/modules/gateway/types.js +8 -0
- package/dist/src/modules/gateway/types.js.map +1 -0
- package/dist/src/modules/memory/core.d.ts +4 -12
- package/dist/src/modules/memory/core.js +10 -17
- package/dist/src/modules/memory/core.js.map +1 -1
- package/dist/src/modules/memory/embedding.d.ts +28 -0
- package/dist/src/modules/memory/embedding.js +131 -0
- package/dist/src/modules/memory/embedding.js.map +1 -0
- package/dist/src/modules/providers/definitions.d.ts +9 -0
- package/dist/src/modules/providers/definitions.js +141 -0
- package/dist/src/modules/providers/definitions.js.map +1 -0
- package/dist/src/modules/providers/registry.d.ts +12 -0
- package/dist/src/modules/providers/registry.js +19 -0
- package/dist/src/modules/providers/registry.js.map +1 -0
- package/dist/src/modules/providers/shared.d.ts +1 -0
- package/dist/src/modules/providers/shared.js +105 -0
- package/dist/src/modules/providers/shared.js.map +1 -0
- package/dist/src/modules/providers/types.d.ts +14 -0
- package/dist/src/modules/providers/types.js +2 -0
- package/dist/src/modules/providers/types.js.map +1 -0
- package/dist/src/modules/skills/adapter-skills.d.ts +68 -0
- package/dist/src/modules/skills/adapter-skills.js +450 -0
- package/dist/src/modules/skills/adapter-skills.js.map +1 -0
- package/dist/src/shared/audit.d.ts +105 -0
- package/dist/src/shared/audit.js +220 -0
- package/dist/src/shared/audit.js.map +1 -0
- package/dist/src/shared/fs.js +4 -2
- package/dist/src/shared/fs.js.map +1 -1
- package/dist/src/shared/lock.d.ts +82 -0
- package/dist/src/shared/lock.js +160 -0
- package/dist/src/shared/lock.js.map +1 -0
- package/dist/src/shared/logger.d.ts +2 -0
- package/dist/src/shared/logger.js +15 -5
- package/dist/src/shared/logger.js.map +1 -1
- package/dist/src/shared/pii.d.ts +37 -0
- package/dist/src/shared/pii.js +122 -0
- package/dist/src/shared/pii.js.map +1 -0
- package/dist/src/shared/retention.d.ts +63 -0
- package/dist/src/shared/retention.js +171 -0
- package/dist/src/shared/retention.js.map +1 -0
- package/dist/src/shared/storage.d.ts +3 -1
- package/dist/src/shared/storage.js +3 -1
- package/dist/src/shared/storage.js.map +1 -1
- package/dist/tests/adapter.test.js +1 -1
- package/dist/tests/adapter.test.js.map +1 -1
- package/dist/tests/adapters/paths.test.js +4 -4
- package/dist/tests/adapters/paths.test.js.map +1 -1
- package/dist/tests/cli/commands/dashboard-coverage.test.d.ts +1 -0
- package/dist/tests/cli/commands/dashboard-coverage.test.js +88 -0
- package/dist/tests/cli/commands/dashboard-coverage.test.js.map +1 -0
- package/dist/tests/cli/init/adapter_init.test.js +4 -5
- package/dist/tests/cli/init/adapter_init.test.js.map +1 -1
- package/dist/tests/cli/init/unified_init.test.js +5 -7
- package/dist/tests/cli/init/unified_init.test.js.map +1 -1
- package/dist/tests/integration/agent_flow.test.js +14 -8
- package/dist/tests/integration/agent_flow.test.js.map +1 -1
- package/dist/tests/modules/adapters/adapters.test.js +2 -2
- package/dist/tests/modules/adapters/adapters.test.js.map +1 -1
- package/dist/tests/modules/contracts/contracts.test.d.ts +1 -0
- package/dist/tests/modules/contracts/contracts.test.js +73 -0
- package/dist/tests/modules/contracts/contracts.test.js.map +1 -0
- package/dist/tests/modules/engines/agent-executor.test.js +30 -23
- package/dist/tests/modules/engines/agent-executor.test.js.map +1 -1
- package/dist/tests/modules/gateway/circuit-breaker.test.d.ts +1 -0
- package/dist/tests/modules/gateway/circuit-breaker.test.js +124 -0
- package/dist/tests/modules/gateway/circuit-breaker.test.js.map +1 -0
- package/dist/tests/modules/gateway/cost-tracker.test.d.ts +1 -0
- package/dist/tests/modules/gateway/cost-tracker.test.js +74 -0
- package/dist/tests/modules/gateway/cost-tracker.test.js.map +1 -0
- package/dist/tests/modules/gateway/load-balancer.test.d.ts +1 -0
- package/dist/tests/modules/gateway/load-balancer.test.js +70 -0
- package/dist/tests/modules/gateway/load-balancer.test.js.map +1 -0
- package/dist/tests/modules/gateway/rate-limiter.test.d.ts +1 -0
- package/dist/tests/modules/gateway/rate-limiter.test.js +62 -0
- package/dist/tests/modules/gateway/rate-limiter.test.js.map +1 -0
- package/dist/tests/orchestrator-dependencies.test.js +23 -6
- package/dist/tests/orchestrator-dependencies.test.js.map +1 -1
- package/dist/tests/shared/audit.test.d.ts +1 -0
- package/dist/tests/shared/audit.test.js +53 -0
- package/dist/tests/shared/audit.test.js.map +1 -0
- package/dist/tests/storage-operations.test.d.ts +1 -0
- package/dist/tests/storage-operations.test.js +116 -0
- package/dist/tests/storage-operations.test.js.map +1 -0
- package/framework-mcp/README.md +324 -77
- package/framework-mcp/dist/dashboard/assets/index-BAPGLiWE.js +267 -0
- package/framework-mcp/dist/dashboard/index.html +15 -0
- package/framework-mcp/dist/framework-mcp/src/tools/definitions.js +23 -1
- package/framework-mcp/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js +137 -0
- package/framework-mcp/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js +90 -0
- package/framework-mcp/dist/framework-mcp/src/tools/index.js +35 -20
- package/framework-mcp/dist/framework-mcp/src/tools/quality/analyze_code_quality.js +165 -0
- package/framework-mcp/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js +134 -0
- package/framework-mcp/dist/framework-mcp/src/tools/schemas.js +29 -0
- package/framework-mcp/dist/framework-mcp/src/tools/shell/run_command.js +2 -2
- package/framework-mcp/dist/src/modules/memory/core.js +10 -17
- package/framework-mcp/dist/src/modules/memory/embedding.js +130 -0
- package/framework-mcp/dist/src/shared/fs.js +4 -2
- package/framework-mcp/dist/src/shared/logger.js +15 -5
- package/framework-mcp/dist/src/shared/pii.js +121 -0
- package/framework-mcp/dist/src/shared/storage.js +3 -1
- package/framework-mcp/package.json +1 -1
- package/package.json +10 -4
- 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
|
|
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
|
-
*
|
|
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
|
|
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
|
-
*
|
|
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
|
|
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 ||
|
|
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;
|
|
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;
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/modules/memory/core.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,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,wDAAwD;QACxD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAExE,MAAM,KAAK,GAAgB;YACvB,EAAE;YACF,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM;YACN,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;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAIzC;QACG,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,IAAI,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACrE,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED;;;OAGG;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,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;QACd,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;IAC5C,CAAC"}
|
|
@@ -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;
|