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.
Files changed (77) hide show
  1. package/CHANGELOG.md +52 -1
  2. package/README.md +86 -40
  3. package/assets/.github/hooks/ace-copilot.json +16 -16
  4. package/assets/agent-state/MODULES/schemas/VERICIFY_PROCESS_POST_LOG.schema.json +1 -0
  5. package/assets/scripts/ace-hook-dispatch.mjs +447 -0
  6. package/assets/scripts/copilot-hook-dispatch.mjs +1 -303
  7. package/assets/scripts/render-mcp-configs.sh +328 -1
  8. package/dist/ace-context.d.ts +29 -0
  9. package/dist/ace-context.d.ts.map +1 -0
  10. package/dist/ace-context.js +240 -0
  11. package/dist/ace-context.js.map +1 -0
  12. package/dist/ace-internal-tools.d.ts +8 -0
  13. package/dist/ace-internal-tools.d.ts.map +1 -0
  14. package/dist/ace-internal-tools.js +76 -0
  15. package/dist/ace-internal-tools.js.map +1 -0
  16. package/dist/ace-server-instructions.d.ts +12 -0
  17. package/dist/ace-server-instructions.d.ts.map +1 -0
  18. package/dist/ace-server-instructions.js +299 -0
  19. package/dist/ace-server-instructions.js.map +1 -0
  20. package/dist/helpers.d.ts.map +1 -1
  21. package/dist/helpers.js +90 -0
  22. package/dist/helpers.js.map +1 -1
  23. package/dist/internal-tool-runtime.d.ts +21 -0
  24. package/dist/internal-tool-runtime.d.ts.map +1 -0
  25. package/dist/internal-tool-runtime.js +136 -0
  26. package/dist/internal-tool-runtime.js.map +1 -0
  27. package/dist/local-model-runtime.d.ts +36 -0
  28. package/dist/local-model-runtime.d.ts.map +1 -0
  29. package/dist/local-model-runtime.js +161 -0
  30. package/dist/local-model-runtime.js.map +1 -0
  31. package/dist/model-bridge.d.ts +54 -0
  32. package/dist/model-bridge.d.ts.map +1 -0
  33. package/dist/model-bridge.js +587 -0
  34. package/dist/model-bridge.js.map +1 -0
  35. package/dist/orchestrator-supervisor.d.ts +100 -0
  36. package/dist/orchestrator-supervisor.d.ts.map +1 -0
  37. package/dist/orchestrator-supervisor.js +399 -0
  38. package/dist/orchestrator-supervisor.js.map +1 -0
  39. package/dist/runtime-executor.d.ts.map +1 -1
  40. package/dist/runtime-executor.js +5 -42
  41. package/dist/runtime-executor.js.map +1 -1
  42. package/dist/schemas.js +1 -1
  43. package/dist/schemas.js.map +1 -1
  44. package/dist/server.d.ts +5 -1
  45. package/dist/server.d.ts.map +1 -1
  46. package/dist/server.js +9 -1
  47. package/dist/server.js.map +1 -1
  48. package/dist/shared.d.ts +3 -3
  49. package/dist/tools-agent.d.ts +1 -0
  50. package/dist/tools-agent.d.ts.map +1 -1
  51. package/dist/tools-agent.js +456 -1
  52. package/dist/tools-agent.js.map +1 -1
  53. package/dist/tui/agent-runner.d.ts +6 -0
  54. package/dist/tui/agent-runner.d.ts.map +1 -1
  55. package/dist/tui/agent-runner.js +15 -1
  56. package/dist/tui/agent-runner.js.map +1 -1
  57. package/dist/tui/agent-worker.d.ts +3 -1
  58. package/dist/tui/agent-worker.d.ts.map +1 -1
  59. package/dist/tui/agent-worker.js +117 -9
  60. package/dist/tui/agent-worker.js.map +1 -1
  61. package/dist/tui/chat.d.ts +19 -0
  62. package/dist/tui/chat.d.ts.map +1 -1
  63. package/dist/tui/chat.js +108 -0
  64. package/dist/tui/chat.js.map +1 -1
  65. package/dist/tui/index.d.ts +1 -0
  66. package/dist/tui/index.d.ts.map +1 -1
  67. package/dist/tui/index.js +3 -0
  68. package/dist/tui/index.js.map +1 -1
  69. package/dist/vericify-bridge.d.ts +5 -1
  70. package/dist/vericify-bridge.d.ts.map +1 -1
  71. package/dist/vericify-bridge.js +10 -0
  72. package/dist/vericify-bridge.js.map +1 -1
  73. package/dist/vericify-context.d.ts +10 -0
  74. package/dist/vericify-context.d.ts.map +1 -0
  75. package/dist/vericify-context.js +72 -0
  76. package/dist/vericify-context.js.map +1 -0
  77. 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"}