ace-swarm 2.2.0 → 2.3.0
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 +52 -1
- package/README.md +86 -40
- package/assets/.github/hooks/ace-copilot.json +16 -16
- package/assets/agent-state/MODULES/schemas/VERICIFY_PROCESS_POST_LOG.schema.json +1 -0
- package/assets/scripts/ace-hook-dispatch.mjs +447 -0
- package/assets/scripts/copilot-hook-dispatch.mjs +1 -303
- package/assets/scripts/render-mcp-configs.sh +328 -1
- package/dist/ace-context.d.ts +29 -0
- package/dist/ace-context.d.ts.map +1 -0
- package/dist/ace-context.js +240 -0
- package/dist/ace-context.js.map +1 -0
- package/dist/ace-internal-tools.d.ts +8 -0
- package/dist/ace-internal-tools.d.ts.map +1 -0
- package/dist/ace-internal-tools.js +76 -0
- package/dist/ace-internal-tools.js.map +1 -0
- package/dist/ace-server-instructions.d.ts +12 -0
- package/dist/ace-server-instructions.d.ts.map +1 -0
- package/dist/ace-server-instructions.js +299 -0
- package/dist/ace-server-instructions.js.map +1 -0
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +90 -0
- package/dist/helpers.js.map +1 -1
- package/dist/internal-tool-runtime.d.ts +21 -0
- package/dist/internal-tool-runtime.d.ts.map +1 -0
- package/dist/internal-tool-runtime.js +136 -0
- package/dist/internal-tool-runtime.js.map +1 -0
- package/dist/local-model-runtime.d.ts +36 -0
- package/dist/local-model-runtime.d.ts.map +1 -0
- package/dist/local-model-runtime.js +161 -0
- package/dist/local-model-runtime.js.map +1 -0
- package/dist/model-bridge.d.ts +54 -0
- package/dist/model-bridge.d.ts.map +1 -0
- package/dist/model-bridge.js +587 -0
- package/dist/model-bridge.js.map +1 -0
- package/dist/orchestrator-supervisor.d.ts +100 -0
- package/dist/orchestrator-supervisor.d.ts.map +1 -0
- package/dist/orchestrator-supervisor.js +399 -0
- package/dist/orchestrator-supervisor.js.map +1 -0
- package/dist/runtime-executor.d.ts.map +1 -1
- package/dist/runtime-executor.js +5 -42
- package/dist/runtime-executor.js.map +1 -1
- package/dist/schemas.js +1 -1
- package/dist/schemas.js.map +1 -1
- package/dist/server.d.ts +5 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +9 -1
- package/dist/server.js.map +1 -1
- package/dist/shared.d.ts +3 -3
- package/dist/tools-agent.d.ts +1 -0
- package/dist/tools-agent.d.ts.map +1 -1
- package/dist/tools-agent.js +456 -1
- package/dist/tools-agent.js.map +1 -1
- package/dist/tui/agent-runner.d.ts +6 -0
- package/dist/tui/agent-runner.d.ts.map +1 -1
- package/dist/tui/agent-runner.js +15 -1
- package/dist/tui/agent-runner.js.map +1 -1
- package/dist/tui/agent-worker.d.ts +3 -1
- package/dist/tui/agent-worker.d.ts.map +1 -1
- package/dist/tui/agent-worker.js +117 -9
- package/dist/tui/agent-worker.js.map +1 -1
- package/dist/tui/chat.d.ts +19 -0
- package/dist/tui/chat.d.ts.map +1 -1
- package/dist/tui/chat.js +108 -0
- package/dist/tui/chat.js.map +1 -1
- package/dist/tui/index.d.ts +1 -0
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js +3 -0
- package/dist/tui/index.js.map +1 -1
- package/dist/vericify-bridge.d.ts +5 -1
- package/dist/vericify-bridge.d.ts.map +1 -1
- package/dist/vericify-bridge.js +10 -0
- package/dist/vericify-bridge.js.map +1 -1
- package/dist/vericify-context.d.ts +10 -0
- package/dist/vericify-context.d.ts.map +1 -0
- package/dist/vericify-context.js +72 -0
- package/dist/vericify-context.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import { ROLE_ENUM, scoreDomains } from "./shared.js";
|
|
4
|
+
import { resolveWorkspaceRoot } from "./helpers.js";
|
|
5
|
+
import { executeAceInternalTool } from "./ace-internal-tools.js";
|
|
6
|
+
import { ModelBridge } from "./model-bridge.js";
|
|
7
|
+
import { OllamaClient } from "./tui/ollama.js";
|
|
8
|
+
import { OpenAICompatibleClient, diagnoseChatRuntimeConfig, } from "./tui/openai-compatible.js";
|
|
9
|
+
import { discoverProviderContext } from "./tui/provider-discovery.js";
|
|
10
|
+
function extractTextContent(result) {
|
|
11
|
+
if (!result || typeof result !== "object")
|
|
12
|
+
return "";
|
|
13
|
+
const content = Array.isArray(result.content) ? result.content : [];
|
|
14
|
+
return content
|
|
15
|
+
.filter((entry) => Boolean(entry) &&
|
|
16
|
+
typeof entry === "object" &&
|
|
17
|
+
entry.type === "text")
|
|
18
|
+
.map((entry) => String(entry.text ?? "").trim())
|
|
19
|
+
.filter(Boolean)
|
|
20
|
+
.join("\n");
|
|
21
|
+
}
|
|
22
|
+
function normalizeRoleCandidate(input) {
|
|
23
|
+
if (!input)
|
|
24
|
+
return undefined;
|
|
25
|
+
const normalized = input.trim().toLowerCase().replace(/^ace-/, "").replace(/[^a-z0-9]+/g, "");
|
|
26
|
+
const candidate = normalized === "coder" ? "coders" : normalized;
|
|
27
|
+
return ROLE_ENUM.options.includes(candidate)
|
|
28
|
+
? candidate
|
|
29
|
+
: undefined;
|
|
30
|
+
}
|
|
31
|
+
function parseRoleFromRoutingSummary(summary) {
|
|
32
|
+
const match = summary.match(/\*\*Primary Swarm Agent\(s\):\*\*\s*([^\n]+)/i);
|
|
33
|
+
if (!match?.[1])
|
|
34
|
+
return undefined;
|
|
35
|
+
const firstAgent = match[1]
|
|
36
|
+
.split(",")
|
|
37
|
+
.map((entry) => entry.trim())
|
|
38
|
+
.find(Boolean);
|
|
39
|
+
return normalizeRoleCandidate(firstAgent);
|
|
40
|
+
}
|
|
41
|
+
function hasAlignedTaskContract(workspaceRoot) {
|
|
42
|
+
const required = [
|
|
43
|
+
"agent-state/TASK.md",
|
|
44
|
+
"agent-state/SCOPE.md",
|
|
45
|
+
"agent-state/QUALITY_GATES.md",
|
|
46
|
+
"agent-state/HANDOFF.json",
|
|
47
|
+
];
|
|
48
|
+
return required.every((relativePath) => {
|
|
49
|
+
const absolute = resolve(workspaceRoot, relativePath);
|
|
50
|
+
if (!existsSync(absolute))
|
|
51
|
+
return false;
|
|
52
|
+
return readFileSync(absolute, "utf-8").trim().length > 0;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function fallbackRoleForTask(task, workspaceRoot) {
|
|
56
|
+
if (!hasAlignedTaskContract(workspaceRoot)) {
|
|
57
|
+
return "orchestrator";
|
|
58
|
+
}
|
|
59
|
+
const { domain } = scoreDomains(task);
|
|
60
|
+
switch (domain) {
|
|
61
|
+
case "engineering":
|
|
62
|
+
return "coders";
|
|
63
|
+
case "venture":
|
|
64
|
+
return "vos";
|
|
65
|
+
case "ux":
|
|
66
|
+
return "ui";
|
|
67
|
+
default:
|
|
68
|
+
return "orchestrator";
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
async function resolveRole(task, workspaceRoot, sessionId, requestedRole) {
|
|
72
|
+
const explicitRole = normalizeRoleCandidate(requestedRole);
|
|
73
|
+
if (explicitRole) {
|
|
74
|
+
return { role: explicitRole, routingSummary: undefined };
|
|
75
|
+
}
|
|
76
|
+
const routing = await executeAceInternalTool("route_task", { description: task, domain: "unknown" }, sessionId);
|
|
77
|
+
const routingSummary = extractTextContent(routing);
|
|
78
|
+
const routedRole = parseRoleFromRoutingSummary(routingSummary);
|
|
79
|
+
const fallbackRole = fallbackRoleForTask(task, workspaceRoot);
|
|
80
|
+
return {
|
|
81
|
+
role: routedRole && !(routedRole === "orchestrator" && fallbackRole !== "orchestrator")
|
|
82
|
+
? routedRole
|
|
83
|
+
: fallbackRole,
|
|
84
|
+
routingSummary,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function resolveTier(requested, provider, model, role) {
|
|
88
|
+
if (requested && requested !== "auto")
|
|
89
|
+
return requested;
|
|
90
|
+
const normalizedProvider = provider.trim().toLowerCase();
|
|
91
|
+
const normalizedModel = model.trim().toLowerCase();
|
|
92
|
+
if (role === "orchestrator")
|
|
93
|
+
return "compressed";
|
|
94
|
+
if (normalizedProvider !== "ollama")
|
|
95
|
+
return "full";
|
|
96
|
+
if (/(70b|72b|90b|405b|claude|gpt-|codex|gemini|o[1345])/.test(normalizedModel)) {
|
|
97
|
+
return "full";
|
|
98
|
+
}
|
|
99
|
+
if (/(7b|8b|mini|small|phi|tiny)/.test(normalizedModel)) {
|
|
100
|
+
return "brief";
|
|
101
|
+
}
|
|
102
|
+
return "compressed";
|
|
103
|
+
}
|
|
104
|
+
export function createDefaultModelBridgeClients(ollamaUrl) {
|
|
105
|
+
return {
|
|
106
|
+
ollama: new OllamaClient(ollamaUrl),
|
|
107
|
+
openai: new OpenAICompatibleClient(),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
export function resolveLocalModelRuntime(input) {
|
|
111
|
+
const workspaceRoot = input.workspaceRoot
|
|
112
|
+
? resolve(input.workspaceRoot)
|
|
113
|
+
: resolveWorkspaceRoot();
|
|
114
|
+
const discovered = discoverProviderContext({
|
|
115
|
+
workspaceRoot,
|
|
116
|
+
cliProvider: input.provider,
|
|
117
|
+
cliModel: input.model,
|
|
118
|
+
cliOllamaUrl: input.ollamaUrl,
|
|
119
|
+
});
|
|
120
|
+
if (discovered.provider !== "ollama") {
|
|
121
|
+
const diagnosis = diagnoseChatRuntimeConfig(discovered.provider, discovered.model);
|
|
122
|
+
if (!diagnosis.ok) {
|
|
123
|
+
throw new Error(diagnosis.message);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
workspaceRoot,
|
|
128
|
+
provider: discovered.provider,
|
|
129
|
+
model: discovered.model,
|
|
130
|
+
ollamaUrl: discovered.ollamaUrl,
|
|
131
|
+
notes: discovered.notes,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
export async function runLocalModelTask(options) {
|
|
135
|
+
const runtime = resolveLocalModelRuntime({
|
|
136
|
+
workspaceRoot: options.workspaceRoot,
|
|
137
|
+
provider: options.provider,
|
|
138
|
+
model: options.model,
|
|
139
|
+
ollamaUrl: options.ollamaUrl,
|
|
140
|
+
});
|
|
141
|
+
const bridge = new ModelBridge(options.clients ?? createDefaultModelBridgeClients(runtime.ollamaUrl));
|
|
142
|
+
const { role, routingSummary } = await resolveRole(options.task, runtime.workspaceRoot, undefined, options.role);
|
|
143
|
+
const tier = resolveTier(options.tier, runtime.provider, runtime.model, role);
|
|
144
|
+
const result = await bridge.run({
|
|
145
|
+
task: options.task,
|
|
146
|
+
role,
|
|
147
|
+
workspace: runtime.workspaceRoot,
|
|
148
|
+
tier,
|
|
149
|
+
maxTurns: options.maxTurns ?? (role === "orchestrator" ? 6 : 4),
|
|
150
|
+
provider: runtime.provider,
|
|
151
|
+
model: runtime.model,
|
|
152
|
+
toolScope: options.toolScope,
|
|
153
|
+
});
|
|
154
|
+
return {
|
|
155
|
+
runtime,
|
|
156
|
+
role,
|
|
157
|
+
routingSummary,
|
|
158
|
+
result,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=local-model-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-model-runtime.js","sourceRoot":"","sources":["../src/local-model-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { type AceContextTier } from "./ace-context.js";
|
|
2
|
+
import type { OllamaClient } from "./tui/ollama.js";
|
|
3
|
+
import type { OpenAICompatibleClient } from "./tui/openai-compatible.js";
|
|
4
|
+
export interface BridgeToolCall {
|
|
5
|
+
tool: string;
|
|
6
|
+
input?: Record<string, unknown>;
|
|
7
|
+
}
|
|
8
|
+
export interface BridgeToolResult {
|
|
9
|
+
tool: string;
|
|
10
|
+
ok: boolean;
|
|
11
|
+
summary: string;
|
|
12
|
+
isError: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface BridgeResult {
|
|
15
|
+
bridge_id: string;
|
|
16
|
+
role: string;
|
|
17
|
+
status: "completed" | "needs_input" | "failed" | "max_turns";
|
|
18
|
+
summary: string;
|
|
19
|
+
turns: number;
|
|
20
|
+
tool_calls: BridgeToolResult[];
|
|
21
|
+
child_results: BridgeResult[];
|
|
22
|
+
}
|
|
23
|
+
export interface ModelBridgeClients {
|
|
24
|
+
ollama: Pick<OllamaClient, "chat" | "abort">;
|
|
25
|
+
openai: Pick<OpenAICompatibleClient, "chat" | "abort">;
|
|
26
|
+
}
|
|
27
|
+
export interface ModelBridgeRunOptions {
|
|
28
|
+
task: string;
|
|
29
|
+
role: string;
|
|
30
|
+
workspace: string;
|
|
31
|
+
tier?: AceContextTier;
|
|
32
|
+
numCtx?: number;
|
|
33
|
+
maxTurns: number;
|
|
34
|
+
provider: string;
|
|
35
|
+
model: string;
|
|
36
|
+
toolScope?: string[];
|
|
37
|
+
parentBridge?: string;
|
|
38
|
+
onToolCall?: (tool: string, args: Record<string, unknown>) => void;
|
|
39
|
+
onToolResult?: (tool: string, result: BridgeToolResult) => void;
|
|
40
|
+
onOutput?: (text: string) => void;
|
|
41
|
+
onThinking?: (text: string) => void;
|
|
42
|
+
}
|
|
43
|
+
export declare class ModelBridge {
|
|
44
|
+
private clients;
|
|
45
|
+
private activeProviderClient;
|
|
46
|
+
private bridgeId;
|
|
47
|
+
private currentRunChildResults;
|
|
48
|
+
constructor(clients: ModelBridgeClients);
|
|
49
|
+
interrupt(): void;
|
|
50
|
+
spawn(options: ModelBridgeRunOptions): Promise<BridgeResult>;
|
|
51
|
+
private selectToolScope;
|
|
52
|
+
run(options: ModelBridgeRunOptions): Promise<BridgeResult>;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=model-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-bridge.d.ts","sourceRoot":"","sources":["../src/model-bridge.ts"],"names":[],"mappings":"AAYA,OAAO,EAAmC,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,KAAK,EAAE,YAAY,EAA+C,MAAM,iBAAiB,CAAC;AACjG,OAAO,KAAK,EACV,sBAAsB,EAGvB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,aAAa,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IAC7C,MAAM,EAAE,IAAI,CAAC,sBAAsB,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACnE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAChE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAkWD,qBAAa,WAAW;IAKV,OAAO,CAAC,OAAO;IAJ3B,OAAO,CAAC,oBAAoB,CAA+C;IAC3E,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,sBAAsB,CAA+B;gBAEzC,OAAO,EAAE,kBAAkB;IAE/C,SAAS,IAAI,IAAI;IASX,KAAK,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC;YAyBpD,eAAe;IA4CvB,GAAG,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC;CA8QjE"}
|