@roarpeng/graphflow 0.6.15 → 1.0.4
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/AGENTS.md +1 -1
- package/CHANGELOG.md +54 -1
- package/README.md +149 -44
- package/dist/agents/insight.d.ts +83 -0
- package/dist/agents/insight.d.ts.map +1 -0
- package/dist/agents/insight.js +381 -0
- package/dist/agents/insight.js.map +1 -0
- package/dist/agents/validator.d.ts.map +1 -1
- package/dist/agents/validator.js +19 -8
- package/dist/agents/validator.js.map +1 -1
- package/dist/agents/worker.d.ts.map +1 -1
- package/dist/agents/worker.js +3 -2
- package/dist/agents/worker.js.map +1 -1
- package/dist/config/defaults.js +1 -1
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/discover-workspace.d.ts +16 -0
- package/dist/config/discover-workspace.d.ts.map +1 -0
- package/dist/config/discover-workspace.js +112 -0
- package/dist/config/discover-workspace.js.map +1 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +22 -8
- package/dist/config/resolve.js.map +1 -1
- package/dist/config/scaffold.d.ts.map +1 -1
- package/dist/config/scaffold.js +2 -1
- package/dist/config/scaffold.js.map +1 -1
- package/dist/config/schema.d.ts +31 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/workspace-root.d.ts +24 -0
- package/dist/config/workspace-root.d.ts.map +1 -0
- package/dist/config/workspace-root.js +59 -0
- package/dist/config/workspace-root.js.map +1 -0
- package/dist/core/orchestrator.d.ts +7 -0
- package/dist/core/orchestrator.d.ts.map +1 -1
- package/dist/core/orchestrator.js +54 -3
- package/dist/core/orchestrator.js.map +1 -1
- package/dist/core/state-machine.d.ts +1 -0
- package/dist/core/state-machine.d.ts.map +1 -1
- package/dist/core/state-machine.js +20 -0
- package/dist/core/state-machine.js.map +1 -1
- package/dist/core/types.d.ts +9 -3
- package/dist/core/types.d.ts.map +1 -1
- package/dist/graph/adaptive-budget.d.ts +18 -0
- package/dist/graph/adaptive-budget.d.ts.map +1 -0
- package/dist/graph/adaptive-budget.js +50 -0
- package/dist/graph/adaptive-budget.js.map +1 -0
- package/dist/graph/artifact-manager.d.ts +72 -0
- package/dist/graph/artifact-manager.d.ts.map +1 -0
- package/dist/graph/artifact-manager.js +215 -0
- package/dist/graph/artifact-manager.js.map +1 -0
- package/dist/graph/compression-model.d.ts +52 -0
- package/dist/graph/compression-model.d.ts.map +1 -0
- package/dist/graph/compression-model.js +125 -0
- package/dist/graph/compression-model.js.map +1 -0
- package/dist/graph/context-slicer.d.ts +32 -0
- package/dist/graph/context-slicer.d.ts.map +1 -1
- package/dist/graph/context-slicer.js +159 -1
- package/dist/graph/context-slicer.js.map +1 -1
- package/dist/graph/file-indexer.d.ts +31 -0
- package/dist/graph/file-indexer.d.ts.map +1 -1
- package/dist/graph/file-indexer.js +332 -3
- package/dist/graph/file-indexer.js.map +1 -1
- package/dist/graph/graph-compression.d.ts +44 -0
- package/dist/graph/graph-compression.d.ts.map +1 -0
- package/dist/graph/graph-compression.js +155 -0
- package/dist/graph/graph-compression.js.map +1 -0
- package/dist/graph/graph-utils.d.ts +4 -1
- package/dist/graph/graph-utils.d.ts.map +1 -1
- package/dist/graph/graph-utils.js +62 -0
- package/dist/graph/graph-utils.js.map +1 -1
- package/dist/graph/graphify-file-client.d.ts.map +1 -1
- package/dist/graph/graphify-file-client.js +30 -8
- package/dist/graph/graphify-file-client.js.map +1 -1
- package/dist/graph/language-indexers/c-cpp.d.ts +9 -1
- package/dist/graph/language-indexers/c-cpp.d.ts.map +1 -1
- package/dist/graph/language-indexers/c-cpp.js +328 -103
- package/dist/graph/language-indexers/c-cpp.js.map +1 -1
- package/dist/graph/language-indexers/index.d.ts +20 -0
- package/dist/graph/language-indexers/index.d.ts.map +1 -1
- package/dist/graph/language-indexers/index.js +4 -0
- package/dist/graph/language-indexers/index.js.map +1 -1
- package/dist/graph/language-indexers/java.d.ts +12 -0
- package/dist/graph/language-indexers/java.d.ts.map +1 -0
- package/dist/graph/language-indexers/java.js +273 -0
- package/dist/graph/language-indexers/java.js.map +1 -0
- package/dist/graph/language-indexers/python.d.ts.map +1 -1
- package/dist/graph/language-indexers/python.js +47 -4
- package/dist/graph/language-indexers/python.js.map +1 -1
- package/dist/graph/language-indexers/ruby.d.ts +14 -0
- package/dist/graph/language-indexers/ruby.d.ts.map +1 -0
- package/dist/graph/language-indexers/ruby.js +245 -0
- package/dist/graph/language-indexers/ruby.js.map +1 -0
- package/dist/graph/language-indexers/rust.d.ts +10 -1
- package/dist/graph/language-indexers/rust.d.ts.map +1 -1
- package/dist/graph/language-indexers/rust.js +254 -80
- package/dist/graph/language-indexers/rust.js.map +1 -1
- package/dist/graph/language-indexers/tree-sitter-loader.d.ts +8 -1
- package/dist/graph/language-indexers/tree-sitter-loader.d.ts.map +1 -1
- package/dist/graph/language-indexers/tree-sitter-loader.js +64 -13
- package/dist/graph/language-indexers/tree-sitter-loader.js.map +1 -1
- package/dist/graph/language-indexers/typescript.d.ts.map +1 -1
- package/dist/graph/language-indexers/typescript.js +72 -8
- package/dist/graph/language-indexers/typescript.js.map +1 -1
- package/dist/graph/metrics.d.ts +33 -0
- package/dist/graph/metrics.d.ts.map +1 -0
- package/dist/graph/metrics.js +117 -0
- package/dist/graph/metrics.js.map +1 -0
- package/dist/graph/repo-map.d.ts +25 -0
- package/dist/graph/repo-map.d.ts.map +1 -0
- package/dist/graph/repo-map.js +80 -0
- package/dist/graph/repo-map.js.map +1 -0
- package/dist/graph/semantic-compression.d.ts +65 -0
- package/dist/graph/semantic-compression.d.ts.map +1 -0
- package/dist/graph/semantic-compression.js +173 -0
- package/dist/graph/semantic-compression.js.map +1 -0
- package/dist/graph/token-savings.d.ts +52 -0
- package/dist/graph/token-savings.d.ts.map +1 -0
- package/dist/graph/token-savings.js +113 -0
- package/dist/graph/token-savings.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/agent-mcp-installer.d.ts +13 -0
- package/dist/integrations/agent-mcp-installer.d.ts.map +1 -1
- package/dist/integrations/agent-mcp-installer.js +287 -29
- package/dist/integrations/agent-mcp-installer.js.map +1 -1
- package/dist/learning/episodic-memory.d.ts +8 -1
- package/dist/learning/episodic-memory.d.ts.map +1 -1
- package/dist/learning/episodic-memory.js +33 -0
- package/dist/learning/episodic-memory.js.map +1 -1
- package/dist/learning/hnsw-index.d.ts +46 -0
- package/dist/learning/hnsw-index.d.ts.map +1 -0
- package/dist/learning/hnsw-index.js +138 -0
- package/dist/learning/hnsw-index.js.map +1 -0
- package/dist/routing/model-router.d.ts +7 -0
- package/dist/routing/model-router.d.ts.map +1 -1
- package/dist/routing/model-router.js +36 -0
- package/dist/routing/model-router.js.map +1 -1
- package/dist/skills/index.d.ts +157 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +157 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/surfaces/cli/index.js +119 -0
- package/dist/surfaces/cli/index.js.map +1 -1
- package/dist/surfaces/cli/output.d.ts.map +1 -1
- package/dist/surfaces/cli/output.js +7 -0
- package/dist/surfaces/cli/output.js.map +1 -1
- package/dist/surfaces/cli/runtime/graph.d.ts +77 -3
- package/dist/surfaces/cli/runtime/graph.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/graph.js +170 -10
- package/dist/surfaces/cli/runtime/graph.js.map +1 -1
- package/dist/surfaces/cli/runtime/panel.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/panel.js +2 -0
- package/dist/surfaces/cli/runtime/panel.js.map +1 -1
- package/dist/surfaces/cli/runtime/routing.d.ts +24 -1
- package/dist/surfaces/cli/runtime/routing.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/routing.js +72 -0
- package/dist/surfaces/cli/runtime/routing.js.map +1 -1
- package/dist/surfaces/cli/runtime/settings.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/settings.js +4 -1
- package/dist/surfaces/cli/runtime/settings.js.map +1 -1
- package/dist/surfaces/cli/runtime/types.d.ts +36 -0
- package/dist/surfaces/cli/runtime/types.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime.d.ts +2 -2
- package/dist/surfaces/cli/runtime.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime.js +11 -1
- package/dist/surfaces/cli/runtime.js.map +1 -1
- package/dist/surfaces/mcp/server.d.ts.map +1 -1
- package/dist/surfaces/mcp/server.js +145 -4
- package/dist/surfaces/mcp/server.js.map +1 -1
- package/dist/utils/logger.js +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/package.json +6 -2
- package/scripts/safe-postinstall.cjs +167 -12
- package/src/surfaces/trae-skill/graphflow/SKILL.md +535 -0
- package/wasm/tree-sitter-c.wasm +0 -0
- package/wasm/tree-sitter-go.wasm +0 -0
- package/wasm/tree-sitter-java.wasm +0 -0
- package/wasm/tree-sitter-python.wasm +0 -0
- package/wasm/tree-sitter-ruby.wasm +0 -0
- package/wasm/tree-sitter-rust.wasm +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"episodic-memory.js","sourceRoot":"","sources":["../../src/learning/episodic-memory.ts"],"names":[],"mappings":";;AAuBA,8CAOC;AAED,sCA6BC;AAED,kDA0BC;AAED,0CAGC;AAED,8DAcC;AAwBD,sCAcC;AAsDD,oDA4DC;
|
|
1
|
+
{"version":3,"file":"episodic-memory.js","sourceRoot":"","sources":["../../src/learning/episodic-memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { GraphNode } from "../core/types";
|
|
2
|
+
/**
|
|
3
|
+
* HNSW (Hierarchical Navigable Small World) vector index with graceful fallback.
|
|
4
|
+
*
|
|
5
|
+
* For large repos (1000+ nodes), linear cosine scan becomes a bottleneck.
|
|
6
|
+
* This module uses hnswlib-node when available (10-100x faster ANN search),
|
|
7
|
+
* and transparently falls back to brute-force scan otherwise.
|
|
8
|
+
*
|
|
9
|
+
* Design: the index is built lazily and cached. Adding/removing nodes marks
|
|
10
|
+
* the index dirty so it rebuilds on next search.
|
|
11
|
+
*/
|
|
12
|
+
export interface VectorSearchResult {
|
|
13
|
+
node: GraphNode;
|
|
14
|
+
similarity: number;
|
|
15
|
+
}
|
|
16
|
+
export interface HnswVectorIndexOptions {
|
|
17
|
+
/** Cosine space recommended for normalized embeddings. */
|
|
18
|
+
space?: "cosine" | "l2" | "ip";
|
|
19
|
+
/** Force linear scan even if hnswlib is available (for testing). */
|
|
20
|
+
forceLinear?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* A vector index over graph nodes that have embeddings attached.
|
|
24
|
+
* Uses HNSW when available, otherwise brute-force cosine similarity.
|
|
25
|
+
*/
|
|
26
|
+
export declare class HnswVectorIndex {
|
|
27
|
+
private nodes;
|
|
28
|
+
private embeddings;
|
|
29
|
+
private dim;
|
|
30
|
+
private hnswIndex;
|
|
31
|
+
private dirty;
|
|
32
|
+
private readonly space;
|
|
33
|
+
private readonly forceLinear;
|
|
34
|
+
private backendResolved;
|
|
35
|
+
constructor(options?: HnswVectorIndexOptions);
|
|
36
|
+
/** Loads nodes with embeddings into the index. */
|
|
37
|
+
load(nodes: GraphNode[]): void;
|
|
38
|
+
get size(): number;
|
|
39
|
+
get backend(): "hnsw" | "linear" | "pending";
|
|
40
|
+
private ensureIndex;
|
|
41
|
+
/** Returns top-K nodes by similarity to the query embedding. */
|
|
42
|
+
search(queryEmbedding: number[], topK: number, minSimilarity?: number): Promise<VectorSearchResult[]>;
|
|
43
|
+
private searchHnsw;
|
|
44
|
+
private searchLinear;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=hnsw-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hnsw-index.d.ts","sourceRoot":"","sources":["../../src/learning/hnsw-index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C;;;;;;;;;GASG;AAEH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAgCD,MAAM,WAAW,sBAAsB;IACrC,0DAA0D;IAC1D,KAAK,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;IAC/B,oEAAoE;IACpE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,eAAe,CAA4C;gBAEvD,OAAO,CAAC,EAAE,sBAAsB;IAK5C,kDAAkD;IAClD,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI;IAc9B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,OAAO,IAAI,MAAM,GAAG,QAAQ,GAAG,SAAS,CAE3C;YAEa,WAAW;IAiCzB,gEAAgE;IAC1D,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,SAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAatG,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,YAAY;CAWrB"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HnswVectorIndex = void 0;
|
|
4
|
+
const logger_1 = require("../utils/logger");
|
|
5
|
+
const embeddings_1 = require("./embeddings");
|
|
6
|
+
let hnswModulePromise = null;
|
|
7
|
+
async function loadHnswlib() {
|
|
8
|
+
if (hnswModulePromise)
|
|
9
|
+
return hnswModulePromise;
|
|
10
|
+
hnswModulePromise = (async () => {
|
|
11
|
+
try {
|
|
12
|
+
const mod = (await import("hnswlib-node"));
|
|
13
|
+
if (mod && typeof mod.HierarchicalNSW === "function") {
|
|
14
|
+
return mod;
|
|
15
|
+
}
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
// Optional dependency not installed; fall back to linear scan.
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
})();
|
|
23
|
+
return hnswModulePromise;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A vector index over graph nodes that have embeddings attached.
|
|
27
|
+
* Uses HNSW when available, otherwise brute-force cosine similarity.
|
|
28
|
+
*/
|
|
29
|
+
class HnswVectorIndex {
|
|
30
|
+
nodes = [];
|
|
31
|
+
embeddings = [];
|
|
32
|
+
dim = 0;
|
|
33
|
+
hnswIndex = null;
|
|
34
|
+
dirty = true;
|
|
35
|
+
space;
|
|
36
|
+
forceLinear;
|
|
37
|
+
backendResolved = "pending";
|
|
38
|
+
constructor(options) {
|
|
39
|
+
this.space = options?.space ?? "cosine";
|
|
40
|
+
this.forceLinear = options?.forceLinear ?? false;
|
|
41
|
+
}
|
|
42
|
+
/** Loads nodes with embeddings into the index. */
|
|
43
|
+
load(nodes) {
|
|
44
|
+
this.nodes = [];
|
|
45
|
+
this.embeddings = [];
|
|
46
|
+
for (const node of nodes) {
|
|
47
|
+
const emb = (0, embeddings_1.extractEmbedding)(node);
|
|
48
|
+
if (!emb)
|
|
49
|
+
continue;
|
|
50
|
+
if (this.dim === 0)
|
|
51
|
+
this.dim = emb.length;
|
|
52
|
+
if (emb.length !== this.dim)
|
|
53
|
+
continue; // skip mismatched dims
|
|
54
|
+
this.nodes.push(node);
|
|
55
|
+
this.embeddings.push(emb);
|
|
56
|
+
}
|
|
57
|
+
this.dirty = true;
|
|
58
|
+
}
|
|
59
|
+
get size() {
|
|
60
|
+
return this.nodes.length;
|
|
61
|
+
}
|
|
62
|
+
get backend() {
|
|
63
|
+
return this.backendResolved;
|
|
64
|
+
}
|
|
65
|
+
async ensureIndex() {
|
|
66
|
+
if (!this.dirty)
|
|
67
|
+
return;
|
|
68
|
+
if (this.forceLinear || this.nodes.length === 0) {
|
|
69
|
+
this.backendResolved = "linear";
|
|
70
|
+
this.hnswIndex = null;
|
|
71
|
+
this.dirty = false;
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const mod = await loadHnswlib();
|
|
75
|
+
if (!mod) {
|
|
76
|
+
this.backendResolved = "linear";
|
|
77
|
+
this.hnswIndex = null;
|
|
78
|
+
this.dirty = false;
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
try {
|
|
82
|
+
const index = new mod.HierarchicalNSW(this.space, this.dim);
|
|
83
|
+
index.initIndex(this.nodes.length);
|
|
84
|
+
for (let i = 0; i < this.embeddings.length; i += 1) {
|
|
85
|
+
index.addPoint(this.embeddings[i], i);
|
|
86
|
+
}
|
|
87
|
+
this.hnswIndex = index;
|
|
88
|
+
this.backendResolved = "hnsw";
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
logger_1.logger.warn({ error }, "HNSW index build failed; using linear scan");
|
|
92
|
+
this.hnswIndex = null;
|
|
93
|
+
this.backendResolved = "linear";
|
|
94
|
+
}
|
|
95
|
+
this.dirty = false;
|
|
96
|
+
}
|
|
97
|
+
/** Returns top-K nodes by similarity to the query embedding. */
|
|
98
|
+
async search(queryEmbedding, topK, minSimilarity = 0) {
|
|
99
|
+
if (this.nodes.length === 0 || !queryEmbedding || queryEmbedding.length === 0) {
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
await this.ensureIndex();
|
|
103
|
+
if (this.hnswIndex && this.backendResolved === "hnsw") {
|
|
104
|
+
return this.searchHnsw(queryEmbedding, topK, minSimilarity);
|
|
105
|
+
}
|
|
106
|
+
return this.searchLinear(queryEmbedding, topK, minSimilarity);
|
|
107
|
+
}
|
|
108
|
+
searchHnsw(queryEmbedding, topK, minSimilarity) {
|
|
109
|
+
const k = Math.min(topK, this.nodes.length);
|
|
110
|
+
const result = this.hnswIndex.searchKnn(queryEmbedding, k);
|
|
111
|
+
const out = [];
|
|
112
|
+
for (let i = 0; i < result.neighbors.length; i += 1) {
|
|
113
|
+
const label = result.neighbors[i];
|
|
114
|
+
const node = this.nodes[label];
|
|
115
|
+
if (!node)
|
|
116
|
+
continue;
|
|
117
|
+
// For cosine space, hnswlib distance = 1 - cosine_similarity.
|
|
118
|
+
const similarity = this.space === "cosine" ? 1 - result.distances[i] : result.distances[i];
|
|
119
|
+
if (similarity >= minSimilarity) {
|
|
120
|
+
out.push({ node, similarity });
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return out;
|
|
124
|
+
}
|
|
125
|
+
searchLinear(queryEmbedding, topK, minSimilarity) {
|
|
126
|
+
const scored = [];
|
|
127
|
+
for (let i = 0; i < this.nodes.length; i += 1) {
|
|
128
|
+
const sim = (0, embeddings_1.cosineSimilarity)(queryEmbedding, this.embeddings[i]);
|
|
129
|
+
if (sim >= minSimilarity) {
|
|
130
|
+
scored.push({ node: this.nodes[i], similarity: sim });
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
scored.sort((a, b) => b.similarity - a.similarity);
|
|
134
|
+
return scored.slice(0, topK);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
exports.HnswVectorIndex = HnswVectorIndex;
|
|
138
|
+
//# sourceMappingURL=hnsw-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hnsw-index.js","sourceRoot":"","sources":["../../src/learning/hnsw-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AgentRole } from "../core/types";
|
|
2
|
+
import type { GraphFlowConfig } from "../config/schema";
|
|
2
3
|
export type ModelTier = "smart" | "economy";
|
|
3
4
|
export type ProviderName = "openai" | "anthropic" | "bailian" | "doubao" | "openbmb";
|
|
4
5
|
export type ProviderHealthMap = Record<ProviderName, boolean>;
|
|
@@ -8,6 +9,12 @@ export interface ModelSelection {
|
|
|
8
9
|
tier: ModelTier;
|
|
9
10
|
fallbackApplied: boolean;
|
|
10
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Resolves the compression model selection from an in-memory config object
|
|
14
|
+
* (no disk re-read). Shared by resolveModelForRole and describeCompressionBackend
|
|
15
|
+
* so config and selection always come from the same source.
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveCompressorSelection(config: GraphFlowConfig): ModelSelection;
|
|
11
18
|
export declare function resolveModelForRole(role: AgentRole, configPath?: string): ModelSelection;
|
|
12
19
|
export declare function resolveModelWithFallback(role: AgentRole, providerHealth: ProviderHealthMap, fallbackChain?: ProviderName[], configPath?: string): ModelSelection;
|
|
13
20
|
//# sourceMappingURL=model-router.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-router.d.ts","sourceRoot":"","sources":["../../src/routing/model-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"model-router.d.ts","sourceRoot":"","sources":["../../src/routing/model-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAC5C,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAErF,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAkCD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,CA8BlF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,cAAc,CAuExF;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,SAAS,EACf,cAAc,EAAE,iBAAiB,EACjC,aAAa,CAAC,EAAE,YAAY,EAAE,EAC9B,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CAuBhB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveCompressorSelection = resolveCompressorSelection;
|
|
3
4
|
exports.resolveModelForRole = resolveModelForRole;
|
|
4
5
|
exports.resolveModelWithFallback = resolveModelWithFallback;
|
|
5
6
|
const resolve_1 = require("../config/resolve");
|
|
@@ -9,6 +10,7 @@ const roleTierMap = {
|
|
|
9
10
|
worker: "economy",
|
|
10
11
|
enricher: "economy",
|
|
11
12
|
evolver: "economy",
|
|
13
|
+
compressor: "economy",
|
|
12
14
|
};
|
|
13
15
|
const DEFAULT_MODELS = {
|
|
14
16
|
openai: {
|
|
@@ -32,6 +34,37 @@ const DEFAULT_MODELS = {
|
|
|
32
34
|
economy: "minicpm5-1b",
|
|
33
35
|
},
|
|
34
36
|
};
|
|
37
|
+
/**
|
|
38
|
+
* Resolves the compression model selection from an in-memory config object
|
|
39
|
+
* (no disk re-read). Shared by resolveModelForRole and describeCompressionBackend
|
|
40
|
+
* so config and selection always come from the same source.
|
|
41
|
+
*/
|
|
42
|
+
function resolveCompressorSelection(config) {
|
|
43
|
+
const tier = "economy";
|
|
44
|
+
const compressionPolicy = config.graphPolicy.compression;
|
|
45
|
+
const backend = compressionPolicy?.backend ?? "inherit";
|
|
46
|
+
// local backend → force embedded minicpm
|
|
47
|
+
if (backend === "local" || compressionPolicy?.provider === "openbmb") {
|
|
48
|
+
return {
|
|
49
|
+
provider: "openbmb",
|
|
50
|
+
model: compressionPolicy?.model ?? DEFAULT_MODELS.openbmb.economy,
|
|
51
|
+
tier,
|
|
52
|
+
fallbackApplied: false,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
// network backend with explicit provider override, else inherit economy tier
|
|
56
|
+
const provider = (backend === "network" && compressionPolicy?.provider
|
|
57
|
+
? compressionPolicy.provider
|
|
58
|
+
: compressionPolicy?.provider ?? config.tiers.economy.provider);
|
|
59
|
+
return {
|
|
60
|
+
provider,
|
|
61
|
+
model: compressionPolicy?.model ??
|
|
62
|
+
config.tiers.economy.model ??
|
|
63
|
+
DEFAULT_MODELS[provider].economy,
|
|
64
|
+
tier,
|
|
65
|
+
fallbackApplied: false,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
35
68
|
function resolveModelForRole(role, configPath) {
|
|
36
69
|
const tier = roleTierMap[role];
|
|
37
70
|
try {
|
|
@@ -72,6 +105,9 @@ function resolveModelForRole(role, configPath) {
|
|
|
72
105
|
fallbackApplied: false,
|
|
73
106
|
};
|
|
74
107
|
}
|
|
108
|
+
if (role === "compressor") {
|
|
109
|
+
return resolveCompressorSelection(config);
|
|
110
|
+
}
|
|
75
111
|
const tierConfig = config.tiers[tier];
|
|
76
112
|
const provider = tierConfig.provider;
|
|
77
113
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-router.js","sourceRoot":"","sources":["../../src/routing/model-router.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"model-router.js","sourceRoot":"","sources":["../../src/routing/model-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import type { ContextPreviewResult, GraphSnapshotResult } from "../surfaces/cli/runtime/types";
|
|
2
|
+
import type { SixHatsInsight } from "../agents/insight";
|
|
3
|
+
export interface SkillInvocationOptions {
|
|
4
|
+
rootDir?: string;
|
|
5
|
+
configPath?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface CompressContextInput extends SkillInvocationOptions {
|
|
8
|
+
query: string;
|
|
9
|
+
maxTokens?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface CompressContextOutput {
|
|
12
|
+
success: boolean;
|
|
13
|
+
compressed: string[];
|
|
14
|
+
anchors: Array<{
|
|
15
|
+
id: string;
|
|
16
|
+
type: string;
|
|
17
|
+
layer: "L1" | "L2" | "L3";
|
|
18
|
+
}>;
|
|
19
|
+
tokenBudget: {
|
|
20
|
+
maxContextTokens: number;
|
|
21
|
+
estimatedRawTokens: number;
|
|
22
|
+
compressedTokens: number;
|
|
23
|
+
estimatedSavingsPercent: number;
|
|
24
|
+
};
|
|
25
|
+
detail?: ContextPreviewResult;
|
|
26
|
+
}
|
|
27
|
+
export interface PlanTaskInput extends SkillInvocationOptions {
|
|
28
|
+
task: string;
|
|
29
|
+
mode?: "simple" | "complex";
|
|
30
|
+
}
|
|
31
|
+
export interface PlanTaskOutput {
|
|
32
|
+
success: boolean;
|
|
33
|
+
mode: "simple" | "complex";
|
|
34
|
+
ideas: string[];
|
|
35
|
+
nodes: Array<{
|
|
36
|
+
id: string;
|
|
37
|
+
description: string;
|
|
38
|
+
dependencies: string[];
|
|
39
|
+
}>;
|
|
40
|
+
}
|
|
41
|
+
export interface PlanInsightInput extends SkillInvocationOptions {
|
|
42
|
+
task: string;
|
|
43
|
+
}
|
|
44
|
+
export interface PlanInsightOutput {
|
|
45
|
+
success: boolean;
|
|
46
|
+
insight?: SixHatsInsight;
|
|
47
|
+
}
|
|
48
|
+
export interface IndexGraphInput extends SkillInvocationOptions {
|
|
49
|
+
includeExtensions?: string[];
|
|
50
|
+
}
|
|
51
|
+
export interface IndexGraphOutput {
|
|
52
|
+
success: boolean;
|
|
53
|
+
indexedFiles: number;
|
|
54
|
+
indexedSymbols: number;
|
|
55
|
+
indexedReferences: number;
|
|
56
|
+
}
|
|
57
|
+
export interface InspectGraphInput extends SkillInvocationOptions {
|
|
58
|
+
nodeLimit?: number;
|
|
59
|
+
edgeLimit?: number;
|
|
60
|
+
}
|
|
61
|
+
export interface InspectGraphOutput {
|
|
62
|
+
success: boolean;
|
|
63
|
+
nodeCount: number;
|
|
64
|
+
edgeCount: number;
|
|
65
|
+
nodeTypeCount: Record<string, number>;
|
|
66
|
+
topRelations: Array<{
|
|
67
|
+
relation: string;
|
|
68
|
+
count: number;
|
|
69
|
+
}>;
|
|
70
|
+
sampleNodes: Array<{
|
|
71
|
+
id: string;
|
|
72
|
+
type: string;
|
|
73
|
+
label: string;
|
|
74
|
+
}>;
|
|
75
|
+
detail?: GraphSnapshotResult;
|
|
76
|
+
}
|
|
77
|
+
export interface ExpandAnchorInput extends SkillInvocationOptions {
|
|
78
|
+
anchorId: string;
|
|
79
|
+
}
|
|
80
|
+
export interface ExpandAnchorOutput {
|
|
81
|
+
success: boolean;
|
|
82
|
+
anchorId: string;
|
|
83
|
+
type?: string;
|
|
84
|
+
content?: string;
|
|
85
|
+
sourcePath?: string;
|
|
86
|
+
sourceLine?: number;
|
|
87
|
+
sourceSnippet?: string;
|
|
88
|
+
}
|
|
89
|
+
export interface RunTaskInput extends SkillInvocationOptions {
|
|
90
|
+
task: string;
|
|
91
|
+
}
|
|
92
|
+
export interface RunTaskOutput {
|
|
93
|
+
success: boolean;
|
|
94
|
+
status: string;
|
|
95
|
+
attempts: number;
|
|
96
|
+
feedback: string;
|
|
97
|
+
executionDescriptor?: {
|
|
98
|
+
action: string;
|
|
99
|
+
task: string;
|
|
100
|
+
context: string;
|
|
101
|
+
retryHints: string[];
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
export declare const graphflowSkills: {
|
|
105
|
+
readonly "graphflow.compress": {
|
|
106
|
+
readonly name: "graphflow.compress";
|
|
107
|
+
readonly description: "Compress codebase context using graph-based retrieval and token-efficient packaging.";
|
|
108
|
+
readonly version: "1.0.0";
|
|
109
|
+
readonly invoke: (input: CompressContextInput) => Promise<CompressContextOutput>;
|
|
110
|
+
};
|
|
111
|
+
readonly "graphflow.plan": {
|
|
112
|
+
readonly name: "graphflow.plan";
|
|
113
|
+
readonly description: "Plan a coding task with graph context, producing structured task nodes with dependencies.";
|
|
114
|
+
readonly version: "1.0.0";
|
|
115
|
+
readonly invoke: (input: PlanTaskInput) => Promise<PlanTaskOutput>;
|
|
116
|
+
};
|
|
117
|
+
readonly "graphflow.planInsight": {
|
|
118
|
+
readonly name: "graphflow.planInsight";
|
|
119
|
+
readonly description: "Analyze a task using Six Thinking Hats + 5 Whys structured thinking framework.";
|
|
120
|
+
readonly version: "1.0.0";
|
|
121
|
+
readonly invoke: (input: PlanInsightInput) => Promise<PlanInsightOutput>;
|
|
122
|
+
};
|
|
123
|
+
readonly "graphflow.index": {
|
|
124
|
+
readonly name: "graphflow.index";
|
|
125
|
+
readonly description: "Index a codebase into the knowledge graph for context-aware retrieval.";
|
|
126
|
+
readonly version: "1.0.0";
|
|
127
|
+
readonly invoke: (input?: IndexGraphInput) => Promise<IndexGraphOutput>;
|
|
128
|
+
};
|
|
129
|
+
readonly "graphflow.inspect": {
|
|
130
|
+
readonly name: "graphflow.inspect";
|
|
131
|
+
readonly description: "Inspect the current knowledge graph structure and statistics.";
|
|
132
|
+
readonly version: "1.0.0";
|
|
133
|
+
readonly invoke: (input?: InspectGraphInput) => Promise<InspectGraphOutput>;
|
|
134
|
+
};
|
|
135
|
+
readonly "graphflow.expandAnchor": {
|
|
136
|
+
readonly name: "graphflow.expandAnchor";
|
|
137
|
+
readonly description: "Expand a graph anchor node to get full content and source location.";
|
|
138
|
+
readonly version: "1.0.0";
|
|
139
|
+
readonly invoke: (input: ExpandAnchorInput) => Promise<ExpandAnchorOutput>;
|
|
140
|
+
};
|
|
141
|
+
readonly "graphflow.run": {
|
|
142
|
+
readonly name: "graphflow.run";
|
|
143
|
+
readonly description: "Run a full task: plan + compress context + return execution descriptor (bridge mode).";
|
|
144
|
+
readonly version: "1.0.0";
|
|
145
|
+
readonly invoke: (input: RunTaskInput) => Promise<RunTaskOutput>;
|
|
146
|
+
};
|
|
147
|
+
};
|
|
148
|
+
export type GraphFlowSkillName = keyof typeof graphflowSkills;
|
|
149
|
+
export type SkillInputByName<K extends GraphFlowSkillName> = K extends "graphflow.compress" ? CompressContextInput : K extends "graphflow.plan" ? PlanTaskInput : K extends "graphflow.planInsight" ? PlanInsightInput : K extends "graphflow.index" ? IndexGraphInput : K extends "graphflow.inspect" ? InspectGraphInput : K extends "graphflow.expandAnchor" ? ExpandAnchorInput : K extends "graphflow.run" ? RunTaskInput : never;
|
|
150
|
+
export type SkillOutputByName<K extends GraphFlowSkillName> = K extends "graphflow.compress" ? CompressContextOutput : K extends "graphflow.plan" ? PlanTaskOutput : K extends "graphflow.planInsight" ? PlanInsightOutput : K extends "graphflow.index" ? IndexGraphOutput : K extends "graphflow.inspect" ? InspectGraphOutput : K extends "graphflow.expandAnchor" ? ExpandAnchorOutput : K extends "graphflow.run" ? RunTaskOutput : never;
|
|
151
|
+
export declare function invokeSkill<K extends GraphFlowSkillName>(skillName: K, input: SkillInputByName<K>): Promise<SkillOutputByName<K>>;
|
|
152
|
+
export declare function listSkills(): Array<{
|
|
153
|
+
name: string;
|
|
154
|
+
description: string;
|
|
155
|
+
version: string;
|
|
156
|
+
}>;
|
|
157
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"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"}
|