ai-first-cli 1.1.1 → 1.1.2
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/CHANGELOG.md +78 -0
- package/README.es.md +137 -1
- package/README.md +136 -4
- package/ai/ai_context.md +2 -2
- package/ai/architecture.md +3 -3
- package/ai/cache.json +85 -57
- package/ai/ccp/jira-123/context.json +7 -0
- package/ai/context/repo.json +56 -0
- package/ai/context/utils.json +7 -0
- package/ai/dependencies.json +51 -1026
- package/ai/files.json +195 -3
- package/ai/git/commit-activity.json +8646 -0
- package/ai/git/recent-features.json +1 -0
- package/ai/git/recent-files.json +52 -0
- package/ai/git/recent-flows.json +1 -0
- package/ai/graph/knowledge-graph.json +43643 -0
- package/ai/graph/module-graph.json +4 -0
- package/ai/graph/symbol-graph.json +3307 -879
- package/ai/graph/symbol-references.json +119 -32
- package/ai/index-state.json +843 -188
- package/ai/index.db +0 -0
- package/ai/modules.json +4 -0
- package/ai/repo-map.json +81 -17
- package/ai/repo_map.json +81 -17
- package/ai/repo_map.md +21 -7
- package/ai/summary.md +5 -5
- package/ai/symbols.json +1 -20287
- package/dist/analyzers/androidResources.d.ts +23 -0
- package/dist/analyzers/androidResources.d.ts.map +1 -0
- package/dist/analyzers/androidResources.js +93 -0
- package/dist/analyzers/androidResources.js.map +1 -0
- package/dist/analyzers/dependencies.d.ts.map +1 -1
- package/dist/analyzers/dependencies.js +37 -0
- package/dist/analyzers/dependencies.js.map +1 -1
- package/dist/analyzers/entrypoints.d.ts.map +1 -1
- package/dist/analyzers/entrypoints.js +71 -1
- package/dist/analyzers/entrypoints.js.map +1 -1
- package/dist/analyzers/gradleModules.d.ts +22 -0
- package/dist/analyzers/gradleModules.d.ts.map +1 -0
- package/dist/analyzers/gradleModules.js +75 -0
- package/dist/analyzers/gradleModules.js.map +1 -0
- package/dist/analyzers/techStack.d.ts +7 -0
- package/dist/analyzers/techStack.d.ts.map +1 -1
- package/dist/analyzers/techStack.js +44 -1
- package/dist/analyzers/techStack.js.map +1 -1
- package/dist/commands/ai-first.d.ts.map +1 -1
- package/dist/commands/ai-first.js +311 -1
- package/dist/commands/ai-first.js.map +1 -1
- package/dist/core/adapters/adapterRegistry.d.ts +39 -0
- package/dist/core/adapters/adapterRegistry.d.ts.map +1 -0
- package/dist/core/adapters/adapterRegistry.js +155 -0
- package/dist/core/adapters/adapterRegistry.js.map +1 -0
- package/dist/core/adapters/baseAdapter.d.ts +49 -0
- package/dist/core/adapters/baseAdapter.d.ts.map +1 -0
- package/dist/core/adapters/baseAdapter.js +28 -0
- package/dist/core/adapters/baseAdapter.js.map +1 -0
- package/dist/core/adapters/community/fastapiAdapter.d.ts +7 -0
- package/dist/core/adapters/community/fastapiAdapter.d.ts.map +1 -0
- package/dist/core/adapters/community/fastapiAdapter.js +40 -0
- package/dist/core/adapters/community/fastapiAdapter.js.map +1 -0
- package/dist/core/adapters/community/index.d.ts +11 -0
- package/dist/core/adapters/community/index.d.ts.map +1 -0
- package/dist/core/adapters/community/index.js +11 -0
- package/dist/core/adapters/community/index.js.map +1 -0
- package/dist/core/adapters/community/laravelAdapter.d.ts +7 -0
- package/dist/core/adapters/community/laravelAdapter.d.ts.map +1 -0
- package/dist/core/adapters/community/laravelAdapter.js +47 -0
- package/dist/core/adapters/community/laravelAdapter.js.map +1 -0
- package/dist/core/adapters/community/nestjsAdapter.d.ts +7 -0
- package/dist/core/adapters/community/nestjsAdapter.d.ts.map +1 -0
- package/dist/core/adapters/community/nestjsAdapter.js +48 -0
- package/dist/core/adapters/community/nestjsAdapter.js.map +1 -0
- package/dist/core/adapters/community/phoenixAdapter.d.ts +7 -0
- package/dist/core/adapters/community/phoenixAdapter.d.ts.map +1 -0
- package/dist/core/adapters/community/phoenixAdapter.js +45 -0
- package/dist/core/adapters/community/phoenixAdapter.js.map +1 -0
- package/dist/core/adapters/community/springBootAdapter.d.ts +7 -0
- package/dist/core/adapters/community/springBootAdapter.d.ts.map +1 -0
- package/dist/core/adapters/community/springBootAdapter.js +44 -0
- package/dist/core/adapters/community/springBootAdapter.js.map +1 -0
- package/dist/core/adapters/dotnetAdapter.d.ts +20 -0
- package/dist/core/adapters/dotnetAdapter.d.ts.map +1 -0
- package/dist/core/adapters/dotnetAdapter.js +86 -0
- package/dist/core/adapters/dotnetAdapter.js.map +1 -0
- package/dist/core/adapters/index.d.ts +18 -0
- package/dist/core/adapters/index.d.ts.map +1 -0
- package/dist/core/adapters/index.js +19 -0
- package/dist/core/adapters/index.js.map +1 -0
- package/dist/core/adapters/javascriptAdapter.d.ts +11 -0
- package/dist/core/adapters/javascriptAdapter.d.ts.map +1 -0
- package/dist/core/adapters/javascriptAdapter.js +47 -0
- package/dist/core/adapters/javascriptAdapter.js.map +1 -0
- package/dist/core/adapters/pythonAdapter.d.ts +20 -0
- package/dist/core/adapters/pythonAdapter.d.ts.map +1 -0
- package/dist/core/adapters/pythonAdapter.js +99 -0
- package/dist/core/adapters/pythonAdapter.js.map +1 -0
- package/dist/core/adapters/railsAdapter.d.ts +10 -0
- package/dist/core/adapters/railsAdapter.d.ts.map +1 -0
- package/dist/core/adapters/railsAdapter.js +52 -0
- package/dist/core/adapters/railsAdapter.js.map +1 -0
- package/dist/core/adapters/salesforceAdapter.d.ts +16 -0
- package/dist/core/adapters/salesforceAdapter.d.ts.map +1 -0
- package/dist/core/adapters/salesforceAdapter.js +64 -0
- package/dist/core/adapters/salesforceAdapter.js.map +1 -0
- package/dist/core/adapters/sdk.d.ts +83 -0
- package/dist/core/adapters/sdk.d.ts.map +1 -0
- package/dist/core/adapters/sdk.js +114 -0
- package/dist/core/adapters/sdk.js.map +1 -0
- package/dist/core/ccp.d.ts +37 -0
- package/dist/core/ccp.d.ts.map +1 -0
- package/dist/core/ccp.js +184 -0
- package/dist/core/ccp.js.map +1 -0
- package/dist/core/gitAnalyzer.d.ts +74 -0
- package/dist/core/gitAnalyzer.d.ts.map +1 -0
- package/dist/core/gitAnalyzer.js +298 -0
- package/dist/core/gitAnalyzer.js.map +1 -0
- package/dist/core/incrementalAnalyzer.d.ts +28 -0
- package/dist/core/incrementalAnalyzer.d.ts.map +1 -0
- package/dist/core/incrementalAnalyzer.js +343 -0
- package/dist/core/incrementalAnalyzer.js.map +1 -0
- package/dist/core/knowledgeGraphBuilder.d.ts +31 -0
- package/dist/core/knowledgeGraphBuilder.d.ts.map +1 -0
- package/dist/core/knowledgeGraphBuilder.js +197 -0
- package/dist/core/knowledgeGraphBuilder.js.map +1 -0
- package/dist/core/lazyAnalyzer.d.ts +57 -0
- package/dist/core/lazyAnalyzer.d.ts.map +1 -0
- package/dist/core/lazyAnalyzer.js +204 -0
- package/dist/core/lazyAnalyzer.js.map +1 -0
- package/dist/core/schema.d.ts +57 -0
- package/dist/core/schema.d.ts.map +1 -0
- package/dist/core/schema.js +131 -0
- package/dist/core/schema.js.map +1 -0
- package/dist/core/semanticContexts.d.ts +40 -0
- package/dist/core/semanticContexts.d.ts.map +1 -0
- package/dist/core/semanticContexts.js +454 -0
- package/dist/core/semanticContexts.js.map +1 -0
- package/docs/es/guide/adapters.md +143 -0
- package/docs/es/guide/ai-repository-schema.md +119 -0
- package/docs/es/guide/features.md +67 -0
- package/docs/es/guide/flows.md +134 -0
- package/docs/es/guide/git-intelligence.md +170 -0
- package/docs/es/guide/incremental-analysis.md +131 -0
- package/docs/es/guide/knowledge-graph.md +135 -0
- package/docs/es/guide/lazy-indexing.md +144 -0
- package/docs/es/guide/performance.md +125 -0
- package/docs/guide/adapters.md +225 -0
- package/docs/guide/ai-repository-schema.md +119 -0
- package/docs/guide/architecture.md +69 -1
- package/docs/guide/flows.md +134 -0
- package/docs/guide/git-intelligence.md +170 -0
- package/docs/guide/incremental-analysis.md +131 -0
- package/docs/guide/knowledge-graph.md +135 -0
- package/docs/guide/lazy-indexing.md +144 -0
- package/docs/guide/performance.md +125 -0
- package/package.json +5 -2
- package/src/analyzers/androidResources.ts +113 -0
- package/src/analyzers/dependencies.ts +41 -0
- package/src/analyzers/entrypoints.ts +80 -1
- package/src/analyzers/gradleModules.ts +100 -0
- package/src/analyzers/techStack.ts +56 -0
- package/src/commands/ai-first.ts +342 -1
- package/src/core/adapters/adapterRegistry.ts +187 -0
- package/src/core/adapters/baseAdapter.ts +82 -0
- package/src/core/adapters/community/fastapiAdapter.ts +50 -0
- package/src/core/adapters/community/index.ts +11 -0
- package/src/core/adapters/community/laravelAdapter.ts +56 -0
- package/src/core/adapters/community/nestjsAdapter.ts +57 -0
- package/src/core/adapters/community/phoenixAdapter.ts +54 -0
- package/src/core/adapters/community/springBootAdapter.ts +53 -0
- package/src/core/adapters/dotnetAdapter.ts +104 -0
- package/src/core/adapters/index.ts +24 -0
- package/src/core/adapters/javascriptAdapter.ts +56 -0
- package/src/core/adapters/pythonAdapter.ts +118 -0
- package/src/core/adapters/railsAdapter.ts +65 -0
- package/src/core/adapters/salesforceAdapter.ts +76 -0
- package/src/core/adapters/sdk.ts +172 -0
- package/src/core/ccp.ts +240 -0
- package/src/core/gitAnalyzer.ts +391 -0
- package/src/core/incrementalAnalyzer.ts +382 -0
- package/src/core/knowledgeGraphBuilder.ts +181 -0
- package/src/core/lazyAnalyzer.ts +261 -0
- package/src/core/schema.ts +157 -0
- package/src/core/semanticContexts.ts +575 -0
- package/tests/adapters.test.ts +159 -0
- package/tests/gitAnalyzer.test.ts +133 -0
- package/tests/incrementalAnalyzer.test.ts +83 -0
- package/tests/knowledgeGraph.test.ts +146 -0
- package/tests/lazyAnalyzer.test.ts +230 -0
- package/tests/schema.test.ts +203 -0
- package/tests/semanticContexts.test.ts +435 -0
- package/ai/context/analyzers.Symbol.json +0 -19
- package/ai/context/analyzers.extractSymbols.json +0 -19
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incrementalAnalyzer.js","sourceRoot":"","sources":["../../src/core/incrementalAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type NodeType = "feature" | "flow" | "file" | "symbol" | "commit";
|
|
2
|
+
export type EdgeType = "contains" | "implements" | "declares" | "references" | "modifies";
|
|
3
|
+
export interface KnowledgeNode {
|
|
4
|
+
id: string;
|
|
5
|
+
type: NodeType;
|
|
6
|
+
label?: string;
|
|
7
|
+
metadata?: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
export interface KnowledgeEdge {
|
|
10
|
+
from: string;
|
|
11
|
+
to: string;
|
|
12
|
+
type: EdgeType;
|
|
13
|
+
}
|
|
14
|
+
export interface KnowledgeGraph {
|
|
15
|
+
nodes: KnowledgeNode[];
|
|
16
|
+
edges: KnowledgeEdge[];
|
|
17
|
+
metadata: {
|
|
18
|
+
generated: string;
|
|
19
|
+
sources: string[];
|
|
20
|
+
nodeCount: number;
|
|
21
|
+
edgeCount: number;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export declare function createNodes(aiDir: string): KnowledgeNode[];
|
|
25
|
+
export declare function createEdges(aiDir: string): KnowledgeEdge[];
|
|
26
|
+
export declare function buildKnowledgeGraph(rootDir: string, aiDir?: string): KnowledgeGraph;
|
|
27
|
+
export declare function loadKnowledgeGraph(aiDir: string): KnowledgeGraph | null;
|
|
28
|
+
export declare function getNodesByType(graph: KnowledgeGraph, type: NodeType): KnowledgeNode[];
|
|
29
|
+
export declare function getEdgesByType(graph: KnowledgeGraph, type: EdgeType): KnowledgeEdge[];
|
|
30
|
+
export declare function getNeighbors(graph: KnowledgeGraph, nodeId: string): KnowledgeNode[];
|
|
31
|
+
//# sourceMappingURL=knowledgeGraphBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledgeGraphBuilder.d.ts","sourceRoot":"","sources":["../../src/core/knowledgeGraphBuilder.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACzE,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;AAE1F,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAyED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAmB1D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAuB1D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc,CAenF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAIvE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,GAAG,aAAa,EAAE,CAAqD;AAC3I,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,GAAG,aAAa,EAAE,CAAqD;AAC3I,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,CAOnF"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { ensureDir, writeFile, readJsonFile } from "../utils/fileUtils.js";
|
|
4
|
+
function loadFeatures(aiDir) {
|
|
5
|
+
const featuresPath = path.join(aiDir, "context", "features");
|
|
6
|
+
if (!fs.existsSync(featuresPath))
|
|
7
|
+
return [];
|
|
8
|
+
const features = [];
|
|
9
|
+
try {
|
|
10
|
+
for (const file of fs.readdirSync(featuresPath)) {
|
|
11
|
+
if (!file.endsWith(".json"))
|
|
12
|
+
continue;
|
|
13
|
+
const data = readJsonFile(path.join(featuresPath, file));
|
|
14
|
+
if (data?.name && Array.isArray(data.files)) {
|
|
15
|
+
features.push({ name: String(data.name), path: String(data.path || ""), files: data.files.map(String) });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
return features;
|
|
23
|
+
}
|
|
24
|
+
function loadFlows(aiDir) {
|
|
25
|
+
const flowsPath = path.join(aiDir, "context", "flows");
|
|
26
|
+
if (!fs.existsSync(flowsPath))
|
|
27
|
+
return [];
|
|
28
|
+
const flows = [];
|
|
29
|
+
try {
|
|
30
|
+
for (const file of fs.readdirSync(flowsPath)) {
|
|
31
|
+
if (!file.endsWith(".json"))
|
|
32
|
+
continue;
|
|
33
|
+
const data = readJsonFile(path.join(flowsPath, file));
|
|
34
|
+
if (data?.name && Array.isArray(data.files)) {
|
|
35
|
+
flows.push({ name: String(data.name), entrypoint: String(data.entrypoint || ""), files: data.files.map(String) });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
return flows;
|
|
43
|
+
}
|
|
44
|
+
function loadGitActivity(aiDir) {
|
|
45
|
+
const gitPath = path.join(aiDir, "git", "commit-activity.json");
|
|
46
|
+
if (!fs.existsSync(gitPath))
|
|
47
|
+
return null;
|
|
48
|
+
try {
|
|
49
|
+
const data = readJsonFile(gitPath);
|
|
50
|
+
if (typeof data?.totalCommits === "number" && typeof data?.files === "object") {
|
|
51
|
+
return { totalCommits: data.totalCommits, files: data.files };
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
function loadSymbols(aiDir) {
|
|
60
|
+
const symbolsPath = path.join(aiDir, "symbols.json");
|
|
61
|
+
if (!fs.existsSync(symbolsPath))
|
|
62
|
+
return [];
|
|
63
|
+
try {
|
|
64
|
+
const data = readJsonFile(symbolsPath);
|
|
65
|
+
if (Array.isArray(data)) {
|
|
66
|
+
return data.slice(0, 1000).map((s) => {
|
|
67
|
+
const sym = s;
|
|
68
|
+
return { name: String(sym.name || ""), file: String(sym.file || ""), type: sym.type ? String(sym.type) : undefined, references: Array.isArray(sym.references) ? sym.references.map(String) : undefined };
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
return [];
|
|
74
|
+
}
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
function loadFiles(aiDir) {
|
|
78
|
+
const filesPath = path.join(aiDir, "files.json");
|
|
79
|
+
if (!fs.existsSync(filesPath))
|
|
80
|
+
return [];
|
|
81
|
+
try {
|
|
82
|
+
const data = readJsonFile(filesPath);
|
|
83
|
+
if (Array.isArray(data)) {
|
|
84
|
+
return data.slice(0, 500).map((f) => typeof f === "string" ? f : f?.path ? String(f.path) : String(f));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return [];
|
|
89
|
+
}
|
|
90
|
+
return [];
|
|
91
|
+
}
|
|
92
|
+
export function createNodes(aiDir) {
|
|
93
|
+
const nodes = [];
|
|
94
|
+
const nodeIds = new Set();
|
|
95
|
+
const addNode = (id, type, label, metadata) => {
|
|
96
|
+
if (nodeIds.has(id))
|
|
97
|
+
return;
|
|
98
|
+
nodeIds.add(id);
|
|
99
|
+
nodes.push({ id, type, label: label || id, metadata });
|
|
100
|
+
};
|
|
101
|
+
for (const f of loadFeatures(aiDir))
|
|
102
|
+
addNode(f.name, "feature", f.name, { path: f.path, fileCount: f.files.length });
|
|
103
|
+
for (const f of loadFlows(aiDir))
|
|
104
|
+
addNode(f.name, "flow", f.name, { entrypoint: f.entrypoint, fileCount: f.files.length });
|
|
105
|
+
for (const f of loadFiles(aiDir))
|
|
106
|
+
addNode(f, "file", path.basename(f));
|
|
107
|
+
for (const s of loadSymbols(aiDir))
|
|
108
|
+
if (s.file && s.name)
|
|
109
|
+
addNode(`${s.file}#${s.name}`, "symbol", s.name, { file: s.file, symbolType: s.type });
|
|
110
|
+
const git = loadGitActivity(aiDir);
|
|
111
|
+
if (git) {
|
|
112
|
+
for (const file of Object.entries(git.files).sort((a, b) => b[1] - a[1]).slice(0, 50).map(x => x[0])) {
|
|
113
|
+
addNode(`commit:${file}`, "commit", path.basename(file), { file, commitCount: git.files[file] });
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return nodes;
|
|
117
|
+
}
|
|
118
|
+
export function createEdges(aiDir) {
|
|
119
|
+
const edges = [];
|
|
120
|
+
const edgeKeys = new Set();
|
|
121
|
+
const addEdge = (from, to, type) => {
|
|
122
|
+
const key = `${from}|${to}|${type}`;
|
|
123
|
+
if (edgeKeys.has(key))
|
|
124
|
+
return;
|
|
125
|
+
edgeKeys.add(key);
|
|
126
|
+
edges.push({ from, to, type });
|
|
127
|
+
};
|
|
128
|
+
const features = loadFeatures(aiDir);
|
|
129
|
+
const flows = loadFlows(aiDir);
|
|
130
|
+
for (const flow of flows) {
|
|
131
|
+
for (const feature of features) {
|
|
132
|
+
const intersection = flow.files.filter(f => feature.files.includes(f));
|
|
133
|
+
if (intersection.length > 0)
|
|
134
|
+
addEdge(feature.name, flow.name, "contains");
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
for (const flow of flows)
|
|
138
|
+
for (const file of flow.files)
|
|
139
|
+
addEdge(flow.name, file, "implements");
|
|
140
|
+
for (const s of loadSymbols(aiDir))
|
|
141
|
+
if (s.file && s.name)
|
|
142
|
+
addEdge(s.file, `${s.file}#${s.name}`, "declares");
|
|
143
|
+
for (const s of loadSymbols(aiDir))
|
|
144
|
+
if (s.file && s.references)
|
|
145
|
+
for (const ref of s.references)
|
|
146
|
+
addEdge(`${s.file}#${s.name}`, ref, "references");
|
|
147
|
+
const git = loadGitActivity(aiDir);
|
|
148
|
+
if (git)
|
|
149
|
+
for (const file of Object.keys(git.files))
|
|
150
|
+
addEdge(`commit:${file}`, file, "modifies");
|
|
151
|
+
return edges;
|
|
152
|
+
}
|
|
153
|
+
export function buildKnowledgeGraph(rootDir, aiDir) {
|
|
154
|
+
const targetAiDir = aiDir || path.join(rootDir, "ai");
|
|
155
|
+
const graphDir = path.join(targetAiDir, "graph");
|
|
156
|
+
ensureDir(graphDir);
|
|
157
|
+
const nodes = createNodes(targetAiDir);
|
|
158
|
+
const edges = createEdges(targetAiDir);
|
|
159
|
+
const sources = [];
|
|
160
|
+
if (fs.existsSync(path.join(targetAiDir, "context", "features")))
|
|
161
|
+
sources.push("features");
|
|
162
|
+
if (fs.existsSync(path.join(targetAiDir, "context", "flows")))
|
|
163
|
+
sources.push("flows");
|
|
164
|
+
if (fs.existsSync(path.join(targetAiDir, "git")))
|
|
165
|
+
sources.push("git");
|
|
166
|
+
if (fs.existsSync(path.join(targetAiDir, "symbols.json")))
|
|
167
|
+
sources.push("symbols");
|
|
168
|
+
if (fs.existsSync(path.join(targetAiDir, "dependencies.json")))
|
|
169
|
+
sources.push("dependencies");
|
|
170
|
+
const graph = { nodes, edges, metadata: { generated: new Date().toISOString(), sources, nodeCount: nodes.length, edgeCount: edges.length } };
|
|
171
|
+
writeFile(path.join(graphDir, "knowledge-graph.json"), JSON.stringify(graph, null, 2));
|
|
172
|
+
return graph;
|
|
173
|
+
}
|
|
174
|
+
export function loadKnowledgeGraph(aiDir) {
|
|
175
|
+
const graphPath = path.join(aiDir, "graph", "knowledge-graph.json");
|
|
176
|
+
if (!fs.existsSync(graphPath))
|
|
177
|
+
return null;
|
|
178
|
+
try {
|
|
179
|
+
return readJsonFile(graphPath);
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
return null;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
export function getNodesByType(graph, type) { return graph.nodes.filter(n => n.type === type); }
|
|
186
|
+
export function getEdgesByType(graph, type) { return graph.edges.filter(e => e.type === type); }
|
|
187
|
+
export function getNeighbors(graph, nodeId) {
|
|
188
|
+
const neighborIds = new Set();
|
|
189
|
+
for (const edge of graph.edges) {
|
|
190
|
+
if (edge.from === nodeId)
|
|
191
|
+
neighborIds.add(edge.to);
|
|
192
|
+
if (edge.to === nodeId)
|
|
193
|
+
neighborIds.add(edge.from);
|
|
194
|
+
}
|
|
195
|
+
return graph.nodes.filter(n => neighborIds.has(n.id));
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=knowledgeGraphBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledgeGraphBuilder.js","sourceRoot":"","sources":["../../src/core/knowledgeGraphBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export interface MinimalIndex {
|
|
2
|
+
repoMap: string;
|
|
3
|
+
languages: string[];
|
|
4
|
+
frameworks: string[];
|
|
5
|
+
entrypoints: string[];
|
|
6
|
+
generatedAt: string;
|
|
7
|
+
}
|
|
8
|
+
export interface LazyIndexState {
|
|
9
|
+
stage1Complete: boolean;
|
|
10
|
+
stage2Complete: boolean;
|
|
11
|
+
featuresExpanded: string[];
|
|
12
|
+
flowsExpanded: string[];
|
|
13
|
+
lastUpdated: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Build minimal index (Stage 1) - fast startup
|
|
17
|
+
* Generates only essential metadata needed for basic context
|
|
18
|
+
*/
|
|
19
|
+
export declare function buildMinimalIndex(rootDir: string, aiDir: string): MinimalIndex;
|
|
20
|
+
/**
|
|
21
|
+
* Expand context for a specific feature (Stage 2 - on demand)
|
|
22
|
+
*/
|
|
23
|
+
export declare function expandFeatureContext(rootDir: string, aiDir: string, featureName: string): {
|
|
24
|
+
success: boolean;
|
|
25
|
+
files?: string[];
|
|
26
|
+
error?: string;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Expand context for a specific flow (Stage 2 - on demand)
|
|
30
|
+
*/
|
|
31
|
+
export declare function expandFlowContext(rootDir: string, aiDir: string, flowName: string): {
|
|
32
|
+
success: boolean;
|
|
33
|
+
files?: string[];
|
|
34
|
+
error?: string;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Expand full context (Stage 2) - when needed
|
|
38
|
+
*/
|
|
39
|
+
export declare function expandFullContext(rootDir: string, aiDir: string): {
|
|
40
|
+
symbols: number;
|
|
41
|
+
dependencies: number;
|
|
42
|
+
features: number;
|
|
43
|
+
flows: number;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Get lazy index state
|
|
47
|
+
*/
|
|
48
|
+
export declare function getLazyIndexState(aiDir: string): LazyIndexState | null;
|
|
49
|
+
/**
|
|
50
|
+
* Check if minimal index exists
|
|
51
|
+
*/
|
|
52
|
+
export declare function hasMinimalIndex(aiDir: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Load minimal index
|
|
55
|
+
*/
|
|
56
|
+
export declare function loadMinimalIndex(aiDir: string): MinimalIndex | null;
|
|
57
|
+
//# sourceMappingURL=lazyAnalyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazyAnalyzer.d.ts","sourceRoot":"","sources":["../../src/core/lazyAnalyzer.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,CAiC9E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAiDxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAiDxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAoCA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAQtE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAQnE"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { writeFile, ensureDir } from "../utils/fileUtils.js";
|
|
4
|
+
import { scanRepo } from "./repoScanner.js";
|
|
5
|
+
import { generateRepoMap } from "./repoMapper.js";
|
|
6
|
+
import { detectTechStack } from "../analyzers/techStack.js";
|
|
7
|
+
import { discoverEntrypoints } from "../analyzers/entrypoints.js";
|
|
8
|
+
import { extractSymbols } from "../analyzers/symbols.js";
|
|
9
|
+
import { analyzeDependencies } from "../analyzers/dependencies.js";
|
|
10
|
+
import { generateSemanticContexts } from "./semanticContexts.js";
|
|
11
|
+
import { buildKnowledgeGraph } from "./knowledgeGraphBuilder.js";
|
|
12
|
+
/**
|
|
13
|
+
* Build minimal index (Stage 1) - fast startup
|
|
14
|
+
* Generates only essential metadata needed for basic context
|
|
15
|
+
*/
|
|
16
|
+
export function buildMinimalIndex(rootDir, aiDir) {
|
|
17
|
+
const scanResult = scanRepo(rootDir);
|
|
18
|
+
const techStack = detectTechStack(scanResult.files, rootDir);
|
|
19
|
+
const entrypoints = discoverEntrypoints(scanResult.files, rootDir);
|
|
20
|
+
// Generate minimal repo map
|
|
21
|
+
const repoMap = generateRepoMap(scanResult.files, { sortBy: "directory" });
|
|
22
|
+
// Write minimal index files
|
|
23
|
+
const minimalIndex = {
|
|
24
|
+
repoMap,
|
|
25
|
+
languages: techStack.languages,
|
|
26
|
+
frameworks: techStack.frameworks,
|
|
27
|
+
entrypoints: entrypoints.map(e => e.path),
|
|
28
|
+
generatedAt: new Date().toISOString()
|
|
29
|
+
};
|
|
30
|
+
// Save minimal index state
|
|
31
|
+
const state = {
|
|
32
|
+
stage1Complete: true,
|
|
33
|
+
stage2Complete: false,
|
|
34
|
+
featuresExpanded: [],
|
|
35
|
+
flowsExpanded: [],
|
|
36
|
+
lastUpdated: new Date().toISOString()
|
|
37
|
+
};
|
|
38
|
+
const statePath = path.join(aiDir, "lazy-index-state.json");
|
|
39
|
+
writeFile(statePath, JSON.stringify(state, null, 2));
|
|
40
|
+
// Save minimal data
|
|
41
|
+
writeFile(path.join(aiDir, "minimal-index.json"), JSON.stringify(minimalIndex, null, 2));
|
|
42
|
+
return minimalIndex;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Expand context for a specific feature (Stage 2 - on demand)
|
|
46
|
+
*/
|
|
47
|
+
export function expandFeatureContext(rootDir, aiDir, featureName) {
|
|
48
|
+
try {
|
|
49
|
+
const scanResult = scanRepo(rootDir);
|
|
50
|
+
const symbols = extractSymbols(scanResult.files);
|
|
51
|
+
// Filter symbols related to this feature
|
|
52
|
+
const featureSymbols = symbols.symbols.filter((s) => s.file.includes(featureName) || s.name.toLowerCase().includes(featureName.toLowerCase()));
|
|
53
|
+
// Load existing state
|
|
54
|
+
const statePath = path.join(aiDir, "lazy-index-state.json");
|
|
55
|
+
let state = {
|
|
56
|
+
stage1Complete: true,
|
|
57
|
+
stage2Complete: false,
|
|
58
|
+
featuresExpanded: [],
|
|
59
|
+
flowsExpanded: [],
|
|
60
|
+
lastUpdated: new Date().toISOString()
|
|
61
|
+
};
|
|
62
|
+
if (fs.existsSync(statePath)) {
|
|
63
|
+
state = JSON.parse(fs.readFileSync(statePath, "utf-8"));
|
|
64
|
+
}
|
|
65
|
+
// Mark feature as expanded
|
|
66
|
+
if (!state.featuresExpanded.includes(featureName)) {
|
|
67
|
+
state.featuresExpanded.push(featureName);
|
|
68
|
+
state.lastUpdated = new Date().toISOString();
|
|
69
|
+
writeFile(statePath, JSON.stringify(state, null, 2));
|
|
70
|
+
}
|
|
71
|
+
// Generate feature context file
|
|
72
|
+
const featureContextPath = path.join(aiDir, "context", "features", `${featureName}.json`);
|
|
73
|
+
const featureContext = {
|
|
74
|
+
feature: featureName,
|
|
75
|
+
symbols: featureSymbols,
|
|
76
|
+
generatedAt: new Date().toISOString()
|
|
77
|
+
};
|
|
78
|
+
ensureDir(path.dirname(featureContextPath));
|
|
79
|
+
writeFile(featureContextPath, JSON.stringify(featureContext, null, 2));
|
|
80
|
+
return { success: true, files: featureSymbols.map((s) => s.file) };
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
return {
|
|
84
|
+
success: false,
|
|
85
|
+
error: error instanceof Error ? error.message : String(error)
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Expand context for a specific flow (Stage 2 - on demand)
|
|
91
|
+
*/
|
|
92
|
+
export function expandFlowContext(rootDir, aiDir, flowName) {
|
|
93
|
+
try {
|
|
94
|
+
const scanResult = scanRepo(rootDir);
|
|
95
|
+
const dependencies = analyzeDependencies(scanResult.files);
|
|
96
|
+
// Find files related to this flow
|
|
97
|
+
const flowFiles = dependencies.dependencies
|
|
98
|
+
.filter((d) => d.source.includes(flowName) || d.target.includes(flowName))
|
|
99
|
+
.flatMap((d) => [d.source, d.target]);
|
|
100
|
+
// Load existing state
|
|
101
|
+
const statePath = path.join(aiDir, "lazy-index-state.json");
|
|
102
|
+
let state = {
|
|
103
|
+
stage1Complete: true,
|
|
104
|
+
stage2Complete: false,
|
|
105
|
+
featuresExpanded: [],
|
|
106
|
+
flowsExpanded: [],
|
|
107
|
+
lastUpdated: new Date().toISOString()
|
|
108
|
+
};
|
|
109
|
+
if (fs.existsSync(statePath)) {
|
|
110
|
+
state = JSON.parse(fs.readFileSync(statePath, "utf-8"));
|
|
111
|
+
}
|
|
112
|
+
// Mark flow as expanded
|
|
113
|
+
if (!state.flowsExpanded.includes(flowName)) {
|
|
114
|
+
state.flowsExpanded.push(flowName);
|
|
115
|
+
state.lastUpdated = new Date().toISOString();
|
|
116
|
+
writeFile(statePath, JSON.stringify(state, null, 2));
|
|
117
|
+
}
|
|
118
|
+
// Generate flow context file
|
|
119
|
+
const flowContextPath = path.join(aiDir, "context", "flows", `${flowName}.json`);
|
|
120
|
+
const flowContext = {
|
|
121
|
+
name: flowName,
|
|
122
|
+
files: [...new Set(flowFiles)],
|
|
123
|
+
generatedAt: new Date().toISOString()
|
|
124
|
+
};
|
|
125
|
+
ensureDir(path.dirname(flowContextPath));
|
|
126
|
+
writeFile(flowContextPath, JSON.stringify(flowContext, null, 2));
|
|
127
|
+
return { success: true, files: [...new Set(flowFiles)] };
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
return {
|
|
131
|
+
success: false,
|
|
132
|
+
error: error instanceof Error ? error.message : String(error)
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Expand full context (Stage 2) - when needed
|
|
138
|
+
*/
|
|
139
|
+
export function expandFullContext(rootDir, aiDir) {
|
|
140
|
+
const scanResult = scanRepo(rootDir);
|
|
141
|
+
// Extract symbols
|
|
142
|
+
const symbols = extractSymbols(scanResult.files);
|
|
143
|
+
const symbolsPath = path.join(aiDir, "symbols.json");
|
|
144
|
+
writeFile(symbolsPath, JSON.stringify(symbols, null, 2));
|
|
145
|
+
// Analyze dependencies
|
|
146
|
+
const dependencies = analyzeDependencies(scanResult.files);
|
|
147
|
+
const depsPath = path.join(aiDir, "dependencies.json");
|
|
148
|
+
writeFile(depsPath, JSON.stringify(dependencies, null, 2));
|
|
149
|
+
// Generate semantic contexts
|
|
150
|
+
const { features, flows } = generateSemanticContexts(aiDir);
|
|
151
|
+
// Build knowledge graph
|
|
152
|
+
buildKnowledgeGraph(rootDir, aiDir);
|
|
153
|
+
// Update state
|
|
154
|
+
const statePath = path.join(aiDir, "lazy-index-state.json");
|
|
155
|
+
const state = {
|
|
156
|
+
stage1Complete: true,
|
|
157
|
+
stage2Complete: true,
|
|
158
|
+
featuresExpanded: Array.isArray(features) ? features.map((f) => f.name || f.feature || String(f)) : [],
|
|
159
|
+
flowsExpanded: Array.isArray(flows) ? flows.map((f) => f.name || f.flow || String(f)) : [],
|
|
160
|
+
lastUpdated: new Date().toISOString()
|
|
161
|
+
};
|
|
162
|
+
writeFile(statePath, JSON.stringify(state, null, 2));
|
|
163
|
+
return {
|
|
164
|
+
symbols: symbols.symbols?.length || 0,
|
|
165
|
+
dependencies: dependencies.dependencies?.length || 0,
|
|
166
|
+
features: features.length,
|
|
167
|
+
flows: flows.length
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Get lazy index state
|
|
172
|
+
*/
|
|
173
|
+
export function getLazyIndexState(aiDir) {
|
|
174
|
+
const statePath = path.join(aiDir, "lazy-index-state.json");
|
|
175
|
+
if (!fs.existsSync(statePath))
|
|
176
|
+
return null;
|
|
177
|
+
try {
|
|
178
|
+
return JSON.parse(fs.readFileSync(statePath, "utf-8"));
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Check if minimal index exists
|
|
186
|
+
*/
|
|
187
|
+
export function hasMinimalIndex(aiDir) {
|
|
188
|
+
return fs.existsSync(path.join(aiDir, "minimal-index.json"));
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Load minimal index
|
|
192
|
+
*/
|
|
193
|
+
export function loadMinimalIndex(aiDir) {
|
|
194
|
+
const indexPath = path.join(aiDir, "minimal-index.json");
|
|
195
|
+
if (!fs.existsSync(indexPath))
|
|
196
|
+
return null;
|
|
197
|
+
try {
|
|
198
|
+
return JSON.parse(fs.readFileSync(indexPath, "utf-8"));
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
return null;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=lazyAnalyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazyAnalyzer.js","sourceRoot":"","sources":["../../src/core/lazyAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Repository Schema System
|
|
3
|
+
*
|
|
4
|
+
* Defines the standard schema for AI-First repository metadata.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SCHEMA_VERSION = "1.0";
|
|
7
|
+
export declare const GENERATED_BY = "ai-first";
|
|
8
|
+
export interface SchemaInfo {
|
|
9
|
+
schemaVersion: string;
|
|
10
|
+
generatedBy: string;
|
|
11
|
+
generatedAt: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ProjectInfo {
|
|
14
|
+
name: string;
|
|
15
|
+
rootDir: string;
|
|
16
|
+
features: string[];
|
|
17
|
+
flows: string[];
|
|
18
|
+
languages: string[];
|
|
19
|
+
frameworks: string[];
|
|
20
|
+
generatedAt: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ToolsInfo {
|
|
23
|
+
compatibleAgents: string[];
|
|
24
|
+
schemaVersion: string;
|
|
25
|
+
}
|
|
26
|
+
export interface AISchema {
|
|
27
|
+
schema: SchemaInfo;
|
|
28
|
+
project: ProjectInfo;
|
|
29
|
+
tools: ToolsInfo;
|
|
30
|
+
}
|
|
31
|
+
export declare function generateSchema(aiDir: string): SchemaInfo;
|
|
32
|
+
export declare function generateProject(rootDir: string, aiDir: string, options?: {
|
|
33
|
+
name?: string;
|
|
34
|
+
features?: string[];
|
|
35
|
+
flows?: string[];
|
|
36
|
+
languages?: string[];
|
|
37
|
+
frameworks?: string[];
|
|
38
|
+
}): ProjectInfo;
|
|
39
|
+
export declare function generateTools(aiDir: string): ToolsInfo;
|
|
40
|
+
export declare function generateAllSchema(rootDir: string, aiDir: string, options?: {
|
|
41
|
+
projectName?: string;
|
|
42
|
+
features?: string[];
|
|
43
|
+
flows?: string[];
|
|
44
|
+
languages?: string[];
|
|
45
|
+
frameworks?: string[];
|
|
46
|
+
}): AISchema;
|
|
47
|
+
export declare function loadSchema(aiDir: string): SchemaInfo | null;
|
|
48
|
+
export declare function loadProject(aiDir: string): ProjectInfo | null;
|
|
49
|
+
export declare function loadTools(aiDir: string): ToolsInfo | null;
|
|
50
|
+
export declare function loadFullSchema(aiDir: string): AISchema | null;
|
|
51
|
+
export declare function isCompatible(targetVersion: string): boolean;
|
|
52
|
+
export declare function validateSchema(aiDir: string): {
|
|
53
|
+
valid: boolean;
|
|
54
|
+
version?: string;
|
|
55
|
+
errors: string[];
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,YAAY,aAAa,CAAC;AAEvC,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAQxD;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB,GAAG,WAAW,CAmCnB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAOtD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB,GAAG,QAAQ,CAMhB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAI3D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAI7D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAIzD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAM7D;AAED,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAI3D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAQpG"}
|