@jaggerxtrm/specialists 2.1.1 → 2.1.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.
- package/README.md +10 -3
- package/dist/index.js +15 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -86,15 +86,22 @@ The orchestrating agent can retrieve the `beadId` from `poll_specialist` output
|
|
|
86
86
|
|
|
87
87
|
## Installation
|
|
88
88
|
|
|
89
|
-
###
|
|
89
|
+
### Recommended
|
|
90
90
|
|
|
91
91
|
```bash
|
|
92
|
-
|
|
92
|
+
npm install -g @jaggerxtrm/specialists
|
|
93
|
+
specialists install
|
|
93
94
|
```
|
|
94
95
|
|
|
95
96
|
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
|
|
|
97
|
-
After running, **restart Claude Code** to load the MCP.
|
|
98
|
+
After running, **restart Claude Code** to load the MCP. Re-run `specialists install` at any time to update or repair the installation.
|
|
99
|
+
|
|
100
|
+
### One-time (no global install)
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
npx --package=@jaggerxtrm/specialists install
|
|
104
|
+
```
|
|
98
105
|
|
|
99
106
|
---
|
|
100
107
|
|
package/dist/index.js
CHANGED
|
@@ -13393,6 +13393,11 @@ var require_public_api = __commonJS((exports) => {
|
|
|
13393
13393
|
exports.stringify = stringify;
|
|
13394
13394
|
});
|
|
13395
13395
|
|
|
13396
|
+
// src/index.ts
|
|
13397
|
+
import { execFileSync } from "node:child_process";
|
|
13398
|
+
import { fileURLToPath } from "node:url";
|
|
13399
|
+
import { dirname as dirname2, join as join4 } from "node:path";
|
|
13400
|
+
|
|
13396
13401
|
// node_modules/zod/v3/external.js
|
|
13397
13402
|
var exports_external = {};
|
|
13398
13403
|
__export(exports_external, {
|
|
@@ -25396,7 +25401,7 @@ var useSpecialistSchema = exports_external.object({
|
|
|
25396
25401
|
function createUseSpecialistTool(runner) {
|
|
25397
25402
|
return {
|
|
25398
25403
|
name: "use_specialist",
|
|
25399
|
-
description: "
|
|
25404
|
+
description: "Run a specialist synchronously and wait for the result. " + "Full lifecycle: load → agents.md → pi session → output. " + "Response includes output, model, durationMs, and beadId (string | undefined). " + "beadId is set when the specialist's beads_integration policy triggered bead creation " + "(default: auto — creates for LOW/MEDIUM/HIGH permission, skips for READ_ONLY). " + "If beadId is present, use `bd update <beadId> --notes` to attach findings or " + "`bd remember` to persist key discoveries for future sessions.",
|
|
25400
25405
|
inputSchema: useSpecialistSchema,
|
|
25401
25406
|
async execute(input, onProgress) {
|
|
25402
25407
|
return runner.run({
|
|
@@ -25637,7 +25642,7 @@ var startSpecialistSchema = exports_external.object({
|
|
|
25637
25642
|
function createStartSpecialistTool(runner, registry2) {
|
|
25638
25643
|
return {
|
|
25639
25644
|
name: "start_specialist",
|
|
25640
|
-
description: "Start a specialist asynchronously. Returns job_id immediately
|
|
25645
|
+
description: "Start a specialist asynchronously. Returns job_id immediately. " + "Use poll_specialist to track progress, receive output delta, and retrieve beadId " + "(the beads issue auto-created for this run, if beads_integration policy applies). " + "Use stop_specialist to cancel. Enables true parallel execution of multiple specialists.",
|
|
25641
25646
|
inputSchema: startSpecialistSchema,
|
|
25642
25647
|
async execute(input) {
|
|
25643
25648
|
const jobId = await runner.startAsync({
|
|
@@ -25659,7 +25664,7 @@ var pollSpecialistSchema = exports_external.object({
|
|
|
25659
25664
|
function createPollSpecialistTool(registry2) {
|
|
25660
25665
|
return {
|
|
25661
25666
|
name: "poll_specialist",
|
|
25662
|
-
description: "Poll a running specialist job. Returns status (running|done|error), delta (new
|
|
25667
|
+
description: "Poll a running specialist job. Returns status (running|done|error|cancelled), " + "delta (new tokens since cursor), next_cursor, and full output when done. " + "Pass next_cursor back as cursor on each subsequent poll to receive only new content. " + "Response also includes beadId (string | undefined) once the specialist has started — " + "this is the beads issue tracking this run. If present after status=done, consider: " + '`bd update <beadId> --notes "<key finding>"` to attach results, or ' + '`bd remember "<insight>"` to persist discoveries across sessions.',
|
|
25663
25668
|
inputSchema: pollSpecialistSchema,
|
|
25664
25669
|
async execute(input) {
|
|
25665
25670
|
const snapshot = registry2.snapshot(input.job_id, input.cursor ?? 0);
|
|
@@ -25703,7 +25708,7 @@ function createSpecialistInitTool(loader, deps) {
|
|
|
25703
25708
|
};
|
|
25704
25709
|
return {
|
|
25705
25710
|
name: "specialist_init",
|
|
25706
|
-
description: "
|
|
25711
|
+
description: "Call this first at session start. Returns available specialists and initializes beads " + "tracking (runs `bd init` if not already set up). " + "Response includes: specialists[] (use with use_specialist/start_specialist), " + "beads.available (bool), beads.initialized (bool). " + "If beads.available is true, specialists with permission LOW/MEDIUM/HIGH will auto-create " + "a beads issue when they run — no action needed from you.",
|
|
25707
25712
|
inputSchema: specialistInitSchema,
|
|
25708
25713
|
async execute(_input) {
|
|
25709
25714
|
const available = resolved.bdAvailable();
|
|
@@ -25823,6 +25828,12 @@ class SpecialistsServer {
|
|
|
25823
25828
|
}
|
|
25824
25829
|
|
|
25825
25830
|
// src/index.ts
|
|
25831
|
+
if (process.argv[2] === "install") {
|
|
25832
|
+
const __dirname2 = dirname2(fileURLToPath(import.meta.url));
|
|
25833
|
+
const installerPath = join4(__dirname2, "..", "bin", "install.js");
|
|
25834
|
+
execFileSync(process.execPath, [installerPath], { stdio: "inherit" });
|
|
25835
|
+
process.exit(0);
|
|
25836
|
+
}
|
|
25826
25837
|
async function main() {
|
|
25827
25838
|
logger.info("Starting Specialists MCP Server...");
|
|
25828
25839
|
const server = new SpecialistsServer;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jaggerxtrm/specialists",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.2",
|
|
4
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",
|