@jaggerxtrm/specialists 2.0.0 → 2.0.2

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 (3) hide show
  1. package/README.md +60 -12
  2. package/dist/index.js +0 -1
  3. package/package.json +3 -4
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # OmniSpecialist
1
+ # Specialists
2
2
 
3
3
  **One MCP Server. Many Specialists. Real AI Agents.**
4
4
 
@@ -6,7 +6,7 @@
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
7
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue.svg)](https://www.typescriptlang.org/)
8
8
 
9
- OmniSpecialist is a **Model Context Protocol (MCP) server** that lets Claude (and other AI agents) discover and run specialist agents — each a full autonomous coding agent powered by [pi](https://github.com/mariozechner/pi), scoped to a specific task.
9
+ **Specialists** is a **Model Context Protocol (MCP) server** that lets Claude (and other AI agents) discover and run specialist agents — each a full autonomous coding agent powered by [pi](https://github.com/mariozechner/pi), scoped to a specific task.
10
10
 
11
11
  **Designed for agents, not just users.** Claude can autonomously route heavy tasks (code review, bug hunting, deep reasoning, session init) to the right specialist without user intervention. Specialists run in the background while Claude continues working.
12
12
 
@@ -14,26 +14,27 @@ OmniSpecialist is a **Model Context Protocol (MCP) server** that lets Claude (an
14
14
 
15
15
  ## How it works
16
16
 
17
- Specialists are `.specialist.yaml` files that define an autonomous agent: its model, system prompt, task template, and permission tier. OmniSpecialist discovers them across three scopes:
17
+ Specialists are `.specialist.yaml` files that define an autonomous agent: its model, system prompt, task template, and permission tier. The server discovers them across three scopes:
18
18
 
19
19
  | Scope | Location | Purpose |
20
20
  |-------|----------|---------|
21
21
  | **project** | `./specialists/` | Per-project specialists |
22
22
  | **user** | `~/.agents/specialists/` | Personal specialists |
23
- | **system** | bundled with OmniSpecialist | Built-in defaults |
23
+ | **system** | bundled with the package | Built-in defaults |
24
24
 
25
- When a specialist runs, OmniSpecialist spawns a `pi` subprocess with the right model, tools, and system prompt injected. Output streams back in real time via cursor-based polling.
25
+ When a specialist runs, the server spawns a `pi` subprocess with the right model, tools, and system prompt injected. Output streams back in real time via cursor-based polling.
26
26
 
27
27
  ---
28
28
 
29
- ## MCP Tools (7)
29
+ ## MCP Tools (8)
30
30
 
31
31
  | Tool | Description |
32
32
  |------|-------------|
33
+ | `specialist_init` | Session bootstrap: init beads if needed, return available specialists |
33
34
  | `list_specialists` | Discover all available specialists across scopes |
34
35
  | `use_specialist` | Run a specialist synchronously and return the result |
35
36
  | `start_specialist` | Fire-and-forget: start a specialist job, returns `job_id` |
36
- | `poll_specialist` | Poll a running job; returns delta since last cursor |
37
+ | `poll_specialist` | Poll a running job; returns delta since last cursor + `beadId` |
37
38
  | `stop_specialist` | Cancel a running job |
38
39
  | `run_parallel` | Run multiple specialists concurrently or as a pipeline |
39
40
  | `specialist_status` | Circuit breaker health + job status |
@@ -58,7 +59,7 @@ When a specialist runs, OmniSpecialist spawns a `pi` subprocess with the right m
58
59
 
59
60
  ## Permission Tiers
60
61
 
61
- Specialists declare their required permission level. OmniSpecialist enforces this at spawn time via `pi --tools`:
62
+ Specialists declare their required permission level, enforced at spawn time via `pi --tools`:
62
63
 
63
64
  | Tier | Allowed tools | Use case |
64
65
  |------|--------------|----------|
@@ -69,13 +70,60 @@ Specialists declare their required permission level. OmniSpecialist enforces thi
69
70
 
70
71
  ---
71
72
 
73
+ ## Beads Integration
74
+
75
+ Specialists with write permissions (`LOW`/`MEDIUM`/`HIGH`) automatically create a [beads](https://github.com/beads/bd) issue when they run and close it on completion. Control this per-specialist with `beads_integration`:
76
+
77
+ ```yaml
78
+ beads_integration: auto # default — create for LOW/MEDIUM/HIGH, skip for READ_ONLY
79
+ beads_integration: always # always create, regardless of permission tier
80
+ beads_integration: never # never create
81
+ ```
82
+
83
+ The orchestrating agent can retrieve the `beadId` from `poll_specialist` output to link the issue for follow-up (`bd remember`, `bd update --notes`, etc.).
84
+
85
+ ---
86
+
72
87
  ## Installation
73
88
 
89
+ ### One-line installer (recommended)
90
+
74
91
  ```bash
75
- node <(curl -fsSL https://raw.githubusercontent.com/Jaggerxtrm/unit.ai-specialists/master/bin/install.js)
92
+ npx --package=@jaggerxtrm/specialists install
76
93
  ```
77
94
 
78
- Clones the repo to `~/.agents/omnispecialist/`, installs dependencies (bun if available, else npm), registers the MCP as a direct `node` call no npx overhead on every startup. Also installs **pi** and **beads** if missing.
95
+ Installs: **pi** (`@mariozechner/pi-coding-agent`), **beads** (`@beads/bd`), **dolt** (interactive sudo on Linux / brew on macOS), registers the `specialists` MCP at user scope, scaffolds `~/.agents/specialists/`.
96
+
97
+ After running, **restart Claude Code** to load the MCP.
98
+
99
+ ---
100
+
101
+ ### Manual installation
102
+
103
+ **1. pi** — coding agent runtime:
104
+ ```bash
105
+ npm install -g @mariozechner/pi-coding-agent
106
+ ```
107
+ Run `pi` once, then `pi config` to enable your model providers (Anthropic, Google, etc.).
108
+
109
+ **2. beads** — issue tracker:
110
+ ```bash
111
+ npm install -g @beads/bd
112
+ ```
113
+
114
+ **3. dolt** — beads sync backend:
115
+ ```bash
116
+ # Linux
117
+ sudo bash -c 'curl -L https://github.com/dolthub/dolt/releases/latest/download/install.sh | bash'
118
+ # macOS
119
+ brew install dolt
120
+ ```
121
+
122
+ **4. specialists + MCP:**
123
+ ```bash
124
+ npm install -g @jaggerxtrm/specialists
125
+ claude mcp add --scope user specialists -- specialists
126
+ ```
79
127
 
80
128
  Then **restart Claude Code**.
81
129
 
@@ -93,7 +141,7 @@ specialist:
93
141
  description: "What this specialist does."
94
142
  category: analysis
95
143
  tags: [analysis, example]
96
- updated: "2026-03-07"
144
+ updated: "2026-03-09"
97
145
 
98
146
  execution:
99
147
  mode: tool
@@ -132,7 +180,7 @@ bun test
132
180
  ```
133
181
 
134
182
  - **Build**: `bun build src/index.ts --target=node --outfile=dist/index.js`
135
- - **Test**: `bun --bun vitest run` (40 unit tests)
183
+ - **Test**: `bun --bun vitest run` (67 unit tests)
136
184
  - **Lint**: `tsc --noEmit`
137
185
 
138
186
  See [CLAUDE.md](CLAUDE.md) for the full architecture guide and [ROADMAP.md](ROADMAP.md) for planned features.
package/dist/index.js CHANGED
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env node
2
- #!/usr/bin/env node
3
2
  import { createRequire } from "node:module";
4
3
  var __create = Object.create;
5
4
  var __getProtoOf = Object.getPrototypeOf;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jaggerxtrm/specialists",
3
- "version": "2.0.0",
4
- "description": "OmniSpecialist \u2014 7-tool MCP orchestration layer powered by the Specialist System. Discover and execute .specialist.yaml files across project/user/system scopes via pi.",
3
+ "version": "2.0.2",
4
+ "description": "OmniSpecialist 7-tool MCP orchestration layer powered by the Specialist System. Discover and execute .specialist.yaml files across project/user/system scopes via pi.",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
7
7
  "files": [
@@ -14,7 +14,7 @@
14
14
  "install": "bin/install.js"
15
15
  },
16
16
  "scripts": {
17
- "build": "bun build src/index.ts --target=node --outfile=dist/index.js && printf '#!/usr/bin/env node\\n' | cat - dist/index.js > dist/index.js.tmp && mv dist/index.js.tmp dist/index.js && chmod +x dist/index.js",
17
+ "build": "bun build src/index.ts --target=node --outfile=dist/index.js && chmod +x dist/index.js",
18
18
  "dev": "bun run src/index.ts",
19
19
  "start": "node dist/index.js",
20
20
  "lint": "tsc --noEmit",
@@ -43,7 +43,6 @@
43
43
  "zod-to-json-schema": "^3.24.6"
44
44
  },
45
45
  "devDependencies": {
46
- "@types/bun": "1.3.10",
47
46
  "@types/bun": "1.3.10",
48
47
  "@types/node": "^24.0.0",
49
48
  "@vitest/coverage-v8": "^2.1.8",