ace-swarm 1.1.4 → 2.0.1

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 (75) hide show
  1. package/README.md +40 -5
  2. package/assets/instructions/ACE.instructions.md +10 -0
  3. package/assets/tasks/README.md +3 -0
  4. package/assets/tasks/role_tasks.md +2 -0
  5. package/dist/agent-runtime/role-adapters.d.ts +29 -0
  6. package/dist/agent-runtime/role-adapters.d.ts.map +1 -0
  7. package/dist/agent-runtime/role-adapters.js +532 -0
  8. package/dist/agent-runtime/role-adapters.js.map +1 -0
  9. package/dist/cli.js +19 -10
  10. package/dist/cli.js.map +1 -1
  11. package/dist/helpers.d.ts.map +1 -1
  12. package/dist/helpers.js +21 -0
  13. package/dist/helpers.js.map +1 -1
  14. package/dist/job-scheduler.d.ts +184 -0
  15. package/dist/job-scheduler.d.ts.map +1 -0
  16. package/dist/job-scheduler.js +1271 -0
  17. package/dist/job-scheduler.js.map +1 -0
  18. package/dist/resources.d.ts.map +1 -1
  19. package/dist/resources.js +37 -0
  20. package/dist/resources.js.map +1 -1
  21. package/dist/tools-framework.d.ts.map +1 -1
  22. package/dist/tools-framework.js +40 -0
  23. package/dist/tools-framework.js.map +1 -1
  24. package/dist/tools-handoff.d.ts +13 -0
  25. package/dist/tools-handoff.d.ts.map +1 -1
  26. package/dist/tools-handoff.js +113 -2
  27. package/dist/tools-handoff.js.map +1 -1
  28. package/dist/tools-scheduler.d.ts +6 -0
  29. package/dist/tools-scheduler.d.ts.map +1 -0
  30. package/dist/tools-scheduler.js +232 -0
  31. package/dist/tools-scheduler.js.map +1 -0
  32. package/dist/tools.d.ts.map +1 -1
  33. package/dist/tools.js +2 -0
  34. package/dist/tools.js.map +1 -1
  35. package/dist/tui/agent-runner.d.ts +18 -1
  36. package/dist/tui/agent-runner.d.ts.map +1 -1
  37. package/dist/tui/agent-runner.js +267 -45
  38. package/dist/tui/agent-runner.js.map +1 -1
  39. package/dist/tui/agent-worker.d.ts +8 -0
  40. package/dist/tui/agent-worker.d.ts.map +1 -0
  41. package/dist/tui/agent-worker.js +217 -0
  42. package/dist/tui/agent-worker.js.map +1 -0
  43. package/dist/tui/chat.d.ts +19 -4
  44. package/dist/tui/chat.d.ts.map +1 -1
  45. package/dist/tui/chat.js +100 -29
  46. package/dist/tui/chat.js.map +1 -1
  47. package/dist/tui/commands.d.ts +5 -1
  48. package/dist/tui/commands.d.ts.map +1 -1
  49. package/dist/tui/commands.js +52 -15
  50. package/dist/tui/commands.js.map +1 -1
  51. package/dist/tui/dashboard.d.ts +1 -1
  52. package/dist/tui/dashboard.d.ts.map +1 -1
  53. package/dist/tui/dashboard.js +2 -1
  54. package/dist/tui/dashboard.js.map +1 -1
  55. package/dist/tui/index.d.ts +31 -0
  56. package/dist/tui/index.d.ts.map +1 -1
  57. package/dist/tui/index.js +366 -43
  58. package/dist/tui/index.js.map +1 -1
  59. package/dist/tui/input.d.ts +2 -0
  60. package/dist/tui/input.d.ts.map +1 -1
  61. package/dist/tui/input.js +22 -5
  62. package/dist/tui/input.js.map +1 -1
  63. package/dist/tui/layout.d.ts +15 -1
  64. package/dist/tui/layout.d.ts.map +1 -1
  65. package/dist/tui/layout.js +85 -23
  66. package/dist/tui/layout.js.map +1 -1
  67. package/dist/tui/openai-compatible.d.ts +46 -0
  68. package/dist/tui/openai-compatible.d.ts.map +1 -0
  69. package/dist/tui/openai-compatible.js +241 -0
  70. package/dist/tui/openai-compatible.js.map +1 -0
  71. package/dist/tui/provider-discovery.d.ts +29 -0
  72. package/dist/tui/provider-discovery.d.ts.map +1 -0
  73. package/dist/tui/provider-discovery.js +343 -0
  74. package/dist/tui/provider-discovery.js.map +1 -0
  75. package/package.json +1 -1
package/README.md CHANGED
@@ -4,6 +4,8 @@ ACE Swarm packages the ACE framework (agents, skills, schemas, prompts, tasks, h
4
4
 
5
5
  Swarm agents (`orchestrator`, `vos`, `ui`, `coders`) and composable agents (`skeptic`, `ops`, `research`, `spec`, `builder`, `qa`, `docs`) are treated as one unified agent system, with composable agents available as subagents for every swarm workflow.
6
6
 
7
+ Suggestions and collaborations: `voybio.fundr@gmail.com`.
8
+
7
9
  ## Install
8
10
 
9
11
  ```bash
@@ -122,23 +124,30 @@ ace paths # show resolved package/workspace paths
122
124
 
123
125
  ### Interactive TUI
124
126
 
125
- Launch a full-screen terminal dashboard with Ollama model chat, agent tabs, telemetry, and task tracking:
127
+ Launch a full-screen terminal dashboard with provider-aware model chat, agent tabs, telemetry, and task tracking:
126
128
 
127
129
  ```bash
128
130
  ace tui
129
131
  ace tui --model llama3.1:8b --ollama-url http://127.0.0.1:11434
130
132
  ```
131
133
 
132
- The TUI starts regardless of whether Ollama is running. Use `/ollama` inside the TUI to check status, or `/pull <model>` to download models.
134
+ The TUI starts regardless of whether Ollama is running. Use `/ollama` inside the TUI to check status, or `/pull <model>` to download Ollama models.
135
+
136
+ For non-ollama providers, configure an OpenAI-compatible endpoint before chatting:
137
+
138
+ - `OPENAI_API_KEY` (required) and optional `OPENAI_BASE_URL`
139
+ - or provider-specific vars `${PROVIDER}_API_KEY` and `${PROVIDER}_BASE_URL` (example: `CODEX_API_KEY`, `CODEX_BASE_URL`)
133
140
 
134
141
  Key commands inside TUI:
135
142
 
136
143
  | Command | Description |
137
144
  |---------|-------------|
138
- | `/models` | List available Ollama models |
145
+ | `/provider [name]` | Show or switch active provider |
146
+ | `/providers` | List discovered providers |
147
+ | `/models` | List available models for active provider |
139
148
  | `/model <name>` | Switch active model |
140
- | `/pull <name>` | Download a model |
141
- | `/ollama` | Check Ollama connection status |
149
+ | `/pull <name>` | Download an Ollama model |
150
+ | `/ollama` | Check Ollama connection status and hints |
142
151
  | `/agent <role>` | Start a subagent in a new tab |
143
152
  | `/agents` | List all agent roles and status |
144
153
  | `/status` | Show orchestrator status |
@@ -206,6 +215,25 @@ Resources:
206
215
  - `ace://kanban` (JSON)
207
216
  - `ace://kanban/html` (HTML)
208
217
 
218
+ ## Scheduler Queue (Runtime)
219
+
220
+ ACE Swarm now supports a lease-owned, rolling-horizon scheduler for handoff/job execution:
221
+
222
+ - `agent-state/job-queue.json`
223
+ - `agent-state/job-reservations.json`
224
+ - `agent-state/scheduler-lease.json`
225
+
226
+ Priority and planning model:
227
+
228
+ - Priority-aware (`P0 > P1 > P2 > P3`) with FIFO ordering inside each band.
229
+ - Collision-free reservations over shared resources/time slices.
230
+ - Rolling-horizon replanning on each scheduler tick.
231
+
232
+ Handoff integration:
233
+
234
+ - `create_handoff` and `ack_handoff` automatically sync lifecycle updates into scheduler jobs.
235
+ - Scheduler replanning is triggered automatically during these handoff transitions.
236
+
209
237
  ## New Runtime State Stores
210
238
 
211
239
  ACE Swarm now persists additional orchestration stores:
@@ -214,6 +242,9 @@ ACE Swarm now persists additional orchestration stores:
214
242
  - `agent-state/todo-state.json` (explicit TODO statuses, dependencies, transition gates)
215
243
  - `agent-state/index.json` (workspace delta scan index)
216
244
  - `agent-state/handoff-registry.json` (handoff lifecycle: `open|accepted|blocked|completed`)
245
+ - `agent-state/job-queue.json` (scheduler jobs with dependency/priority metadata)
246
+ - `agent-state/job-reservations.json` (resource/time reservation table)
247
+ - `agent-state/scheduler-lease.json` (active scheduler owner/heartbeat)
217
248
 
218
249
  New/extended tools:
219
250
 
@@ -221,12 +252,16 @@ New/extended tools:
221
252
  - `scan_workspace_delta` writes indexed changed/unchanged/deleted diffs
222
253
  - `ack_handoff` updates handoff lifecycle status
223
254
  - `get_run_ledger`, `get_todo_state`, `get_handoff_status` expose persisted store state
255
+ - Scheduler: `enqueue_job`, `list_jobs`, `ack_job`, `run_scheduler_tick`, `start_reserved_job`, `complete_job`, `get_reservation_table`, `get_scheduler_lease`
224
256
 
225
257
  New resources:
226
258
 
227
259
  - `ace://run-ledger`
228
260
  - `ace://index`
229
261
  - `ace://handoffs/status`
262
+ - `ace://scheduler/queue`
263
+ - `ace://scheduler/reservations`
264
+ - `ace://scheduler/lease`
230
265
  - `ace://kernel/directive_kernel`
231
266
  - `ace://kernel/agent_registry`
232
267
 
@@ -37,6 +37,16 @@ applyTo: 'ACE_Orchestrator'
37
37
 
38
38
  **SYNCHRONIZE:** Update `MASTER_PLAN.md` with the new reality.
39
39
 
40
+ ### 0.5 Directive: SCHEDULER-AWARE ORCHESTRATION
41
+
42
+ **COMMAND:** Treat handoffs as schedulable jobs, not only static payloads.
43
+
44
+ **SCHEDULE:** When work is deferred, gated, or waiting on release windows, rely on ACE scheduler state (`job-queue`, `job-reservations`, `scheduler-lease`) to track dispatch readiness.
45
+
46
+ **VERIFY:** After `create_handoff` and `ack_handoff`, verify scheduler sync (`list_jobs`, `get_scheduler_lease`) and ensure rolling-horizon replanning is active.
47
+
48
+ **ESCALATE:** If scheduler lease ownership blocks dispatch, record the blocker and reroute through ACE-Ops instead of bypassing scheduler contracts.
49
+
40
50
  ### 0.4 Directive: THE CLARITY PROTOCOL (The Manager's Mind)
41
51
 
42
52
  **COMMAND:** You must think before you route. Execute this Socratic loop for every request.
@@ -10,6 +10,9 @@ This directory contains shared execution artifacts consumed by ACE prompts, tool
10
10
  - `cli_work_split.md`: Codex CLI vs Gemini CLI routing contract.
11
11
  - `SWARM_HANDOFF.template.json`: canonical inter-agent handoff schema.
12
12
  - `SWARM_HANDOFF.example*.json`: concrete routing examples.
13
+ - `agent-state/job-queue.json`: scheduler job queue for deferred/gated dispatch.
14
+ - `agent-state/job-reservations.json`: collision-free scheduler reservations.
15
+ - `agent-state/scheduler-lease.json`: active scheduler lease ownership.
13
16
 
14
17
  ## Operating Rules
15
18
 
@@ -64,12 +64,14 @@
64
64
  - Maintain dependency order and blocker/circuit-breaker state.
65
65
  - Publish truthful `STATUS.md` and schema-valid handoffs.
66
66
  - Route work to the next role with bounded scope.
67
+ - Keep scheduler flow healthy for deferred/gated work (`enqueue_job`, `run_scheduler_tick`, lease ownership checks).
67
68
 
68
69
  **Required evidence**
69
70
 
70
71
  - Updated `STATUS.md` with active phase, blockers, and next action.
71
72
  - Updated `HANDOFF.json` (or SWARM handoff payload) with evidence anchors.
72
73
  - Blocker transitions captured in `EVIDENCE_LOG.md`.
74
+ - Scheduler evidence when applicable (`agent-state/job-queue.json`, `agent-state/job-reservations.json`, `agent-state/scheduler-lease.json`).
73
75
 
74
76
  ## ACE-Research Task Pack
75
77
 
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Shared role adapter engine for worker implementations.
3
+ *
4
+ * This module is transport-agnostic so both TUI and non-TUI workers can reuse
5
+ * the same role-intent planning behavior.
6
+ */
7
+ export type AdapterDomain = "venture" | "ux" | "engineering" | "mixed" | "research";
8
+ export interface ToolIntent {
9
+ tool: string;
10
+ args: Record<string, unknown>;
11
+ }
12
+ export interface HandoffIntent {
13
+ from: string;
14
+ to: string;
15
+ payload: Record<string, unknown>;
16
+ }
17
+ export interface AdapterDecision {
18
+ toolCalls: ToolIntent[];
19
+ handoffs: HandoffIntent[];
20
+ notes: string[];
21
+ domain: AdapterDomain;
22
+ confidence: number;
23
+ confidenceLevel: "low" | "medium" | "high";
24
+ }
25
+ export declare function inferDomain(input: string): AdapterDomain;
26
+ export declare function parseManualHandoffCommand(input: string): HandoffIntent | undefined;
27
+ export declare function parseManualToolCommand(input: string): ToolIntent | undefined;
28
+ export declare function planRoleExecution(roleValue: string, input: string): AdapterDecision;
29
+ //# sourceMappingURL=role-adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-adapters.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/role-adapters.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,IAAI,GAAG,aAAa,GAAG,OAAO,GAAG,UAAU,CAAC;AAIpF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC5C;AA0FD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAGxD;AA2GD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAclF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAiB5E;AA2DD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAwRnF"}