ace-swarm 2.1.2 → 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 (121) hide show
  1. package/CHANGELOG.md +52 -1
  2. package/README.md +86 -40
  3. package/assets/.agents/ACE/AGENT_REGISTRY.md +7 -1
  4. package/assets/.agents/ACE/agent-eval/instructions.md +41 -1
  5. package/assets/.agents/ACE/agent-memory/instructions.md +35 -1
  6. package/assets/.agents/ACE/agent-observability/instructions.md +35 -1
  7. package/assets/.agents/ACE/agent-release/instructions.md +34 -1
  8. package/assets/.agents/ACE/agent-security/instructions.md +35 -1
  9. package/assets/.agents/ACE/agent-skeptic/instructions.md +49 -0
  10. package/assets/.agents/ACE/orchestrator/AGENTS.md +11 -0
  11. package/assets/.github/hooks/ace-copilot.json +16 -16
  12. package/assets/agent-state/ACE_WORKFLOW.md +65 -0
  13. package/assets/agent-state/INTERFACE_REGISTRY.md +1 -0
  14. package/assets/agent-state/MODULES/schemas/ACE_RUNTIME_PROFILE.schema.json +79 -0
  15. package/assets/agent-state/MODULES/schemas/VERICIFY_PROCESS_POST_LOG.schema.json +1 -0
  16. package/assets/scripts/ace-hook-dispatch.mjs +447 -0
  17. package/assets/scripts/copilot-hook-dispatch.mjs +1 -265
  18. package/assets/scripts/render-mcp-configs.sh +328 -1
  19. package/assets/tasks/README.md +26 -0
  20. package/dist/ace-autonomy.d.ts +137 -0
  21. package/dist/ace-autonomy.d.ts.map +1 -0
  22. package/dist/ace-autonomy.js +472 -0
  23. package/dist/ace-autonomy.js.map +1 -0
  24. package/dist/ace-context.d.ts +29 -0
  25. package/dist/ace-context.d.ts.map +1 -0
  26. package/dist/ace-context.js +240 -0
  27. package/dist/ace-context.js.map +1 -0
  28. package/dist/ace-internal-tools.d.ts +8 -0
  29. package/dist/ace-internal-tools.d.ts.map +1 -0
  30. package/dist/ace-internal-tools.js +76 -0
  31. package/dist/ace-internal-tools.js.map +1 -0
  32. package/dist/ace-server-instructions.d.ts +12 -0
  33. package/dist/ace-server-instructions.d.ts.map +1 -0
  34. package/dist/ace-server-instructions.js +299 -0
  35. package/dist/ace-server-instructions.js.map +1 -0
  36. package/dist/agent-runtime/role-adapters.d.ts.map +1 -1
  37. package/dist/agent-runtime/role-adapters.js +47 -6
  38. package/dist/agent-runtime/role-adapters.js.map +1 -1
  39. package/dist/helpers.d.ts.map +1 -1
  40. package/dist/helpers.js +90 -0
  41. package/dist/helpers.js.map +1 -1
  42. package/dist/internal-tool-runtime.d.ts +21 -0
  43. package/dist/internal-tool-runtime.d.ts.map +1 -0
  44. package/dist/internal-tool-runtime.js +136 -0
  45. package/dist/internal-tool-runtime.js.map +1 -0
  46. package/dist/local-model-runtime.d.ts +36 -0
  47. package/dist/local-model-runtime.d.ts.map +1 -0
  48. package/dist/local-model-runtime.js +161 -0
  49. package/dist/local-model-runtime.js.map +1 -0
  50. package/dist/model-bridge.d.ts +54 -0
  51. package/dist/model-bridge.d.ts.map +1 -0
  52. package/dist/model-bridge.js +587 -0
  53. package/dist/model-bridge.js.map +1 -0
  54. package/dist/orchestrator-supervisor.d.ts +100 -0
  55. package/dist/orchestrator-supervisor.d.ts.map +1 -0
  56. package/dist/orchestrator-supervisor.js +399 -0
  57. package/dist/orchestrator-supervisor.js.map +1 -0
  58. package/dist/prompts.d.ts.map +1 -1
  59. package/dist/prompts.js +101 -0
  60. package/dist/prompts.js.map +1 -1
  61. package/dist/public-surface.d.ts.map +1 -1
  62. package/dist/public-surface.js +6 -0
  63. package/dist/public-surface.js.map +1 -1
  64. package/dist/resources.d.ts.map +1 -1
  65. package/dist/resources.js +29 -0
  66. package/dist/resources.js.map +1 -1
  67. package/dist/runtime-executor.d.ts.map +1 -1
  68. package/dist/runtime-executor.js +121 -0
  69. package/dist/runtime-executor.js.map +1 -1
  70. package/dist/runtime-profile.d.ts +18 -0
  71. package/dist/runtime-profile.d.ts.map +1 -1
  72. package/dist/runtime-profile.js +39 -3
  73. package/dist/runtime-profile.js.map +1 -1
  74. package/dist/schemas.js +1 -1
  75. package/dist/schemas.js.map +1 -1
  76. package/dist/server.d.ts +5 -1
  77. package/dist/server.d.ts.map +1 -1
  78. package/dist/server.js +9 -1
  79. package/dist/server.js.map +1 -1
  80. package/dist/shared.d.ts +3 -3
  81. package/dist/shared.d.ts.map +1 -1
  82. package/dist/shared.js +1 -0
  83. package/dist/shared.js.map +1 -1
  84. package/dist/tools-agent.d.ts +1 -0
  85. package/dist/tools-agent.d.ts.map +1 -1
  86. package/dist/tools-agent.js +456 -1
  87. package/dist/tools-agent.js.map +1 -1
  88. package/dist/tools-framework.d.ts.map +1 -1
  89. package/dist/tools-framework.js +366 -128
  90. package/dist/tools-framework.js.map +1 -1
  91. package/dist/tools-memory.d.ts.map +1 -1
  92. package/dist/tools-memory.js +80 -0
  93. package/dist/tools-memory.js.map +1 -1
  94. package/dist/tui/agent-runner.d.ts +6 -0
  95. package/dist/tui/agent-runner.d.ts.map +1 -1
  96. package/dist/tui/agent-runner.js +15 -1
  97. package/dist/tui/agent-runner.js.map +1 -1
  98. package/dist/tui/agent-worker.d.ts +3 -1
  99. package/dist/tui/agent-worker.d.ts.map +1 -1
  100. package/dist/tui/agent-worker.js +117 -9
  101. package/dist/tui/agent-worker.js.map +1 -1
  102. package/dist/tui/chat.d.ts +19 -0
  103. package/dist/tui/chat.d.ts.map +1 -1
  104. package/dist/tui/chat.js +108 -0
  105. package/dist/tui/chat.js.map +1 -1
  106. package/dist/tui/index.d.ts +1 -0
  107. package/dist/tui/index.d.ts.map +1 -1
  108. package/dist/tui/index.js +3 -0
  109. package/dist/tui/index.js.map +1 -1
  110. package/dist/vericify-bridge.d.ts +5 -1
  111. package/dist/vericify-bridge.d.ts.map +1 -1
  112. package/dist/vericify-bridge.js +10 -0
  113. package/dist/vericify-bridge.js.map +1 -1
  114. package/dist/vericify-context.d.ts +10 -0
  115. package/dist/vericify-context.d.ts.map +1 -0
  116. package/dist/vericify-context.js +72 -0
  117. package/dist/vericify-context.js.map +1 -0
  118. package/dist/workspace-manager.d.ts.map +1 -1
  119. package/dist/workspace-manager.js +13 -2
  120. package/dist/workspace-manager.js.map +1 -1
  121. package/package.json +2 -1
@@ -0,0 +1,136 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { z } from "zod";
3
+ import { createAceServer } from "./server.js";
4
+ function isPlainObject(value) {
5
+ return !!value && typeof value === "object" && !Array.isArray(value);
6
+ }
7
+ function isZodSchema(value) {
8
+ return Boolean(value) && typeof value === "object" && "safeParseAsync" in value;
9
+ }
10
+ function buildZodObject(shape) {
11
+ if (!isPlainObject(shape))
12
+ return undefined;
13
+ const values = Object.values(shape);
14
+ if (!values.every((value) => isZodSchema(value)))
15
+ return undefined;
16
+ return z.object(shape);
17
+ }
18
+ function describeSchema(schema) {
19
+ if (isPlainObject(schema)) {
20
+ const properties = Object.fromEntries(Object.entries(schema).map(([key, value]) => [
21
+ key,
22
+ {
23
+ description: isZodSchema(value)
24
+ ? value.description ?? value._def?.typeName ?? "input"
25
+ : "input",
26
+ },
27
+ ]));
28
+ return { type: "object", properties };
29
+ }
30
+ if (isZodSchema(schema)) {
31
+ return {
32
+ type: schema._def?.typeName ?? "schema",
33
+ description: schema.description ?? "tool input",
34
+ };
35
+ }
36
+ return undefined;
37
+ }
38
+ function summarizeResult(name, result) {
39
+ const textBlocks = Array.isArray(result.content)
40
+ ? result.content
41
+ .filter((entry) => {
42
+ return isPlainObject(entry) && entry.type === "text" && typeof entry.text === "string";
43
+ })
44
+ .map((entry) => entry.text.trim())
45
+ .filter(Boolean)
46
+ : [];
47
+ const summary = textBlocks[0] ?? `${name} completed`;
48
+ return summary.length <= 240 ? summary : `${summary.slice(0, 239).trimEnd()}…`;
49
+ }
50
+ let cachedTools;
51
+ function getRegisteredTools() {
52
+ if (cachedTools)
53
+ return cachedTools;
54
+ const server = createAceServer({ toolGovernance: false });
55
+ const registry = server
56
+ ._registeredTools;
57
+ cachedTools = new Map(Object.entries(registry ?? {}).filter(([, tool]) => tool.enabled !== false));
58
+ return cachedTools;
59
+ }
60
+ export function listInternalTools(toolScope) {
61
+ const allowed = toolScope ? new Set(toolScope) : undefined;
62
+ return [...getRegisteredTools().entries()]
63
+ .filter(([name]) => !allowed || allowed.has(name))
64
+ .map(([name, tool]) => ({
65
+ name,
66
+ description: tool.description ?? tool.title ?? "ACE MCP tool",
67
+ inputSchema: describeSchema(tool.inputSchema),
68
+ outputSchema: describeSchema(tool.outputSchema),
69
+ }))
70
+ .sort((left, right) => left.name.localeCompare(right.name));
71
+ }
72
+ export async function executeInternalTool(name, args = {}, context = {}) {
73
+ const tool = getRegisteredTools().get(name);
74
+ if (!tool) {
75
+ return {
76
+ ok: false,
77
+ name,
78
+ summary: `Unknown tool: ${name}`,
79
+ error: `Unknown tool: ${name}`,
80
+ };
81
+ }
82
+ let validatedArgs = args;
83
+ try {
84
+ if (tool.inputSchema) {
85
+ const schema = isZodSchema(tool.inputSchema) ? tool.inputSchema : buildZodObject(tool.inputSchema);
86
+ if (schema) {
87
+ const parsed = await schema.safeParseAsync(args);
88
+ if (!parsed.success) {
89
+ const message = parsed.error.issues.map((issue) => issue.message).join("; ");
90
+ return {
91
+ ok: false,
92
+ name,
93
+ summary: `Input validation failed for ${name}`,
94
+ error: message,
95
+ };
96
+ }
97
+ if (isPlainObject(parsed.data)) {
98
+ validatedArgs = parsed.data;
99
+ }
100
+ }
101
+ }
102
+ const extra = {
103
+ signal: new AbortController().signal,
104
+ sessionId: context.sessionId ?? `internal-${randomUUID()}`,
105
+ requestId: `internal-${randomUUID()}`,
106
+ sendNotification: async () => undefined,
107
+ sendRequest: async () => {
108
+ throw new Error("Internal tool runtime does not support nested MCP requests.");
109
+ },
110
+ };
111
+ const raw = tool.inputSchema
112
+ ? await tool.handler(validatedArgs, extra)
113
+ : await tool.handler(extra);
114
+ const result = raw;
115
+ return {
116
+ ok: !Boolean(result?.isError),
117
+ name,
118
+ summary: summarizeResult(name, result),
119
+ result,
120
+ error: result.isError ? summarizeResult(name, result) : undefined,
121
+ };
122
+ }
123
+ catch (error) {
124
+ const message = error instanceof Error ? error.message : String(error);
125
+ return {
126
+ ok: false,
127
+ name,
128
+ summary: `${name} failed`,
129
+ error: message,
130
+ };
131
+ }
132
+ }
133
+ export function resetInternalToolRuntime() {
134
+ cachedTools = undefined;
135
+ }
136
+ //# sourceMappingURL=internal-tool-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-tool-runtime.js","sourceRoot":"","sources":["../src/internal-tool-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type BridgeResult, type ModelBridgeClients } from "./model-bridge.js";
2
+ import type { AceContextTier } from "./ace-context.js";
3
+ export interface LocalModelRuntimeConfig {
4
+ workspaceRoot: string;
5
+ provider: string;
6
+ model: string;
7
+ ollamaUrl: string;
8
+ notes: string[];
9
+ }
10
+ export interface RunLocalModelTaskOptions {
11
+ task: string;
12
+ role?: string;
13
+ workspaceRoot?: string;
14
+ provider?: string;
15
+ model?: string;
16
+ ollamaUrl?: string;
17
+ maxTurns?: number;
18
+ tier?: AceContextTier | "auto";
19
+ toolScope?: string[];
20
+ clients?: ModelBridgeClients;
21
+ }
22
+ export interface RunLocalModelTaskResult {
23
+ runtime: LocalModelRuntimeConfig;
24
+ role: string;
25
+ routingSummary?: string;
26
+ result: BridgeResult;
27
+ }
28
+ export declare function createDefaultModelBridgeClients(ollamaUrl?: string): ModelBridgeClients;
29
+ export declare function resolveLocalModelRuntime(input: {
30
+ workspaceRoot?: string;
31
+ provider?: string;
32
+ model?: string;
33
+ ollamaUrl?: string;
34
+ }): LocalModelRuntimeConfig;
35
+ export declare function runLocalModelTask(options: RunLocalModelTaskOptions): Promise<RunLocalModelTaskResult>;
36
+ //# sourceMappingURL=local-model-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-model-runtime.d.ts","sourceRoot":"","sources":["../src/local-model-runtime.ts"],"names":[],"mappings":"AAKA,OAAO,EAAe,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAQvD,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,uBAAuB,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,YAAY,CAAC;CACtB;AAqHD,wBAAgB,+BAA+B,CAC7C,SAAS,CAAC,EAAE,MAAM,GACjB,kBAAkB,CAKpB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,uBAAuB,CAyB1B;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,uBAAuB,CAAC,CAmClC"}
@@ -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"}