Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
00cd57b
docs(mcp): adaptive tool retrieval design spec
electron-rare Jun 1, 2026
61d08ad
fix(tools): sharper corrective on missing/empty required param
electron-rare Jun 1, 2026
5b292ac
docs(mcp): adaptive tool retrieval implementation plan
electron-rare Jun 1, 2026
8a46eba
feat(mcp): cosine similarity + top-K selection
electron-rare Jun 1, 2026
ef8d58b
feat(mcp): retrieval config with env overrides
electron-rare Jun 1, 2026
b80edd3
build(mcp): pin transformers.js for tool embedding
electron-rare Jun 1, 2026
df423a7
feat(mcp): lazy injectable local embedder
electron-rare Jun 1, 2026
a7fe5d0
feat(mcp): tool-vector index with hash-keyed cache
electron-rare Jun 1, 2026
dcf72c1
feat(mcp): session active-tool set seed + expand
electron-rare Jun 1, 2026
2386013
feat(mcp): session active set + context field
electron-rare Jun 1, 2026
14e6c7b
feat(mcp): gate MCP specs by active set
electron-rare Jun 1, 2026
9f3e89c
feat(mcp): add find_tools native tool spec
electron-rare Jun 1, 2026
12ee764
feat(mcp): find_tools handler wired to active set
electron-rare Jun 1, 2026
8651230
test(mcp): update tool snapshots for find_tools
electron-rare Jun 1, 2026
53c159b
feat(mcp): build tool index + publish active set at bootstrap
electron-rare Jun 1, 2026
0582098
feat(mcp): seed active set + inject into prompt context
electron-rare Jun 1, 2026
b19a505
feat(cli): mcp-top-k and mcp-threshold tuning flags
electron-rare Jun 1, 2026
e90fa75
fix(mcp): guard tool index against partial embed
electron-rare Jun 1, 2026
f719690
fix(mcp): seed active set on task resume
electron-rare Jun 1, 2026
2801aa0
chore(mcp): clear retrieval set on teardown + add logs
electron-rare Jun 2, 2026
0ffdf5d
style(mcp): biome formatting
electron-rare Jun 2, 2026
1e98344
feat(mcp): make embed model + offline mode configurable
electron-rare Jun 2, 2026
34aefbe
docs(mcp): supply-chain mirror runbook
electron-rare Jun 2, 2026
b0117e7
docs(mcp): record supply-chain mirror execution
electron-rare Jun 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions cli/esbuild.mts
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,12 @@ const sharedOptions: Partial<esbuild.BuildOptions> = {
"pino",
"pino-roll",
"@vscode/ripgrep", // Uses __dirname to locate the binary
// Adaptive MCP retrieval embedder: lazily imported ONNX runtime + model.
// Native .node binaries cannot be bundled by esbuild; keep them external
// so they resolve from node_modules at runtime (only loaded when MCP
// retrieval is active — guarded by --no-mcp).
"@huggingface/transformers",
"onnxruntime-node",
],
supported: { "top-level-await": true },
}
Expand Down
16 changes: 16 additions & 0 deletions cli/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ program
"Comma-separated allowlist of plugin MCP servers to load (e.g. github,context7); only these load this run",
)
.option("--no-mcp", "Disable all plugin MCP servers for this run (smaller prompt, faster on big-context backends)")
.option("--mcp-top-k <n>", "Max MCP tools to preload by relevance (default 8)")
.option("--mcp-threshold <t>", "Min cosine similarity to preload an MCP tool (default 0.3)")
.action(async (prompt, options) => {
// Per-run MCP control. Commander sets options.mcp = false for --no-mcp,
// or the string list for --mcp <servers>. Surfaced to the core MCP
Expand All @@ -75,6 +77,12 @@ program
} else if (typeof options.mcp === "string") {
process.env.AILIANCE_MCP_SERVERS = options.mcp
}
if (typeof options.mcpTopK === "string") {
process.env.AILIANCE_MCP_TOP_K = options.mcpTopK
}
if (typeof options.mcpThreshold === "string") {
process.env.AILIANCE_MCP_THRESHOLD = options.mcpThreshold
}
const { runTask } = await import("./commands/task")
const { resumeTask } = await import("./commands/resume")
if (options.taskId) {
Expand Down Expand Up @@ -288,6 +296,8 @@ program
"Comma-separated allowlist of plugin MCP servers to load (e.g. github,context7); only these load this run",
)
.option("--no-mcp", "Disable all plugin MCP servers for this run (smaller prompt, faster on big-context backends)")
.option("--mcp-top-k <n>", "Max MCP tools to preload by relevance (default 8)")
.option("--mcp-threshold <t>", "Min cosine similarity to preload an MCP tool (default 0.3)")
.action(async (prompt, options) => {
// Per-run MCP control (mirrors the `task` command): surfaced to the core
// MCP bootstrap via env so no global config is touched.
Expand All @@ -296,6 +306,12 @@ program
} else if (typeof options.mcp === "string") {
process.env.AILIANCE_MCP_SERVERS = options.mcp
}
if (typeof options.mcpTopK === "string") {
process.env.AILIANCE_MCP_TOP_K = options.mcpTopK
}
if (typeof options.mcpThreshold === "string") {
process.env.AILIANCE_MCP_THRESHOLD = options.mcpThreshold
}
// ailiance-agent fork: kanban path removed.
const { printWarning } = await import("./utils/display")
// Check for ACP mode first - this takes precedence over everything else
Expand Down
Loading
Loading