@thehammer/danx-dashboard-mcp 0.1.308 → 0.1.310
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 +1 -1
- package/dist/index.js +2 -2
- package/dist/plan-events-relay.js +1 -1
- package/dist/route-board-scope.generated.js +1 -0
- package/dist/tool-access.js +2 -2
- package/dist/urgent-records.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -61,7 +61,7 @@ Card and plan reads/writes go through `danxbot_api` against the issue/plan route
|
|
|
61
61
|
|
|
62
62
|
## `plan_events_wait` — a working session's plan events (DX-4233)
|
|
63
63
|
|
|
64
|
-
A program calls this, not a person: the danxbot Claude Code plugin's relay loop, inside the session, calls it over and over on the session's own danx-dashboard MCP server and hands every event it gets to the session.
|
|
64
|
+
A program calls this, not a person: the danxbot Claude Code plugin's relay loop, inside the session, calls it over and over on the session's own danx-dashboard MCP server and hands every event it gets to the session. An orchestrator dispatch (a headless session that works one plan) has no plugin relay, so it keeps ONE background waiter sub-agent that loops on this tool until events exist and returns them with the last cursor, and the orchestrator passes that cursor to the next waiter it arms (DX-4667); the `orchestrator` profile alone is granted the tool on a dispatch (it is an opt-in tool). The `bridge` subcommand is gone: no process is spawned, no `npx` cold start, and nothing outlives the session, because the stream lives in the MCP server, which ends with its session.
|
|
65
65
|
|
|
66
66
|
Input `{plan_id: number | null, cursor: string | null, timeout_ms: 1000..30000, transcript_path?: string}`. `plan_id` is `null` for a signed-in session on no plan (DX-4882): its stream still carries the pacing and resume messages of its Claude account, and it receives no plan events. A move between a plan and `null` starts clean like a move between plans: the plan-scoped records of the plan left are dropped, the session-scoped ones kept. Answer, one of:
|
|
67
67
|
|
package/dist/index.js
CHANGED
|
@@ -170,7 +170,7 @@ let permissionRequests;
|
|
|
170
170
|
// DX-4523 - late-bound with `access` and `client`; see `tool-surface.ts` and `permission-watch.ts`.
|
|
171
171
|
let toolAccessSync;
|
|
172
172
|
let permissionWatch;
|
|
173
|
-
// DX-4233 - late-bound with `access`; see `plan-events-relay.ts`. The plugin's relay loop (a person's session) and
|
|
173
|
+
// DX-4233 - late-bound with `access`; see `plan-events-relay.ts`. The plugin's relay loop (a person's session) and an orchestrator's waiter sub-agent (DX-4667) call `plan_events_wait` on it.
|
|
174
174
|
let planEventRelay;
|
|
175
175
|
/**
|
|
176
176
|
* Compose the dispatch's qualified board id (`<repo>:<slug>`) from the two env
|
|
@@ -799,7 +799,7 @@ async (args) => {
|
|
|
799
799
|
// ---------------- plan_events_wait (DX-4233) ----------------
|
|
800
800
|
strictTool("plan_events_wait",
|
|
801
801
|
// DX-4882 - `plan_id` is null for a signed-in session on no plan: its stream still carries its account's pacing and resume messages.
|
|
802
|
-
// DX-4233 - for the danxbot plugin's relay loop. DX-4667 - and for a background waiter sub-agent of
|
|
802
|
+
// DX-4233 - for the danxbot plugin's relay loop. DX-4667 - and for a background waiter sub-agent of an orchestrator, which
|
|
803
803
|
// loops on it until events exist and returns them (and the cursor) to the orchestrator it wakes. It answers `events` (each
|
|
804
804
|
// `{cursor, text, urgent}`; empty after `timeout_ms`), the cursor to send being the last delivered event's, or `stopped` with the remedy
|
|
805
805
|
// to tell the session. General-audience text (DX-4550): nothing here names our own setup.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* DX-4233 - the IN-PROCESS relay of a session's plan events: what the `plan_events_wait` tool serves.
|
|
3
3
|
*
|
|
4
4
|
* WHO CALLS IT. In a person's session, the danxbot plugin's relay loop calls `plan_events_wait` over and over on this
|
|
5
|
-
* session's own danx-dashboard MCP server and hands every record it gets to the session. In
|
|
5
|
+
* session's own danx-dashboard MCP server and hands every record it gets to the session. In an orchestrator's dispatch
|
|
6
6
|
* (DX-4667), which loads no relay, a background waiter sub-agent calls it the same way and returns the records and the last
|
|
7
7
|
* cursor to the orchestrator. This class is everything on the
|
|
8
8
|
* server side of that call: it opens the session's dashboard event stream (the mint / stream / heartbeat contract of
|
|
@@ -7,6 +7,7 @@ export const GET_ROUTE_BOARD_SCOPE = [
|
|
|
7
7
|
["/api/boards/:boardId", "refuse"],
|
|
8
8
|
["/api/boards/:boardId/context-cost", "refuse"],
|
|
9
9
|
["/api/catalog/:catalogId", "refuse"],
|
|
10
|
+
["/api/dispatch-queue", "refuse"],
|
|
10
11
|
["/api/dispatches", "refuse"],
|
|
11
12
|
["/api/dispatches/:dispatchId", "stamp"],
|
|
12
13
|
["/api/dispatches/:dispatchId/context-series", "refuse"],
|
package/dist/tool-access.js
CHANGED
|
@@ -48,9 +48,9 @@ export const TOOL_ACCESS = {
|
|
|
48
48
|
design_publish: needs("cards.edit"),
|
|
49
49
|
// DX-4233 - the plugin's relay waits on the session's plan events here: it opens the listener ticket
|
|
50
50
|
// (`POST /api/plan-sessions/me/stream-ticket`) and heartbeats (`.../me/heartbeat`), both `plans.view`.
|
|
51
|
-
// DX-4667 - not operator-session-only:
|
|
51
|
+
// DX-4667 - not operator-session-only: an orchestrator's dispatch calls it too, through a background waiter sub-agent that
|
|
52
52
|
// wakes the orchestrator when a person answers. What keeps it off every other dispatch is the opt-in (`MCP_SERVER_OPT_IN_TOOLS`,
|
|
53
|
-
// `src/tokens/tool-defs.ts`) granted to the `
|
|
53
|
+
// `src/tokens/tool-defs.ts`) granted to the `orchestrator` profile alone, not this table.
|
|
54
54
|
plan_events_wait: needs("plans.view"),
|
|
55
55
|
// DX-4632 - the plugin's session-start hook asks which plan the session this one replaced was working. A restarted session boots
|
|
56
56
|
// signed out, so it holds no permission: like `plan_connect` it is a bootstrap tool, and a person's session's only (a dispatch
|
package/dist/urgent-records.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* DX-4721 - THE ONE PLACE that decides whether a relayed plan-event record is URGENT.
|
|
3
3
|
*
|
|
4
|
-
* Background. `plan_events_wait` hands the caller (the danxbot plugin's relay, or
|
|
4
|
+
* Background. `plan_events_wait` hands the caller (the danxbot plugin's relay, or an orchestrator's waiter sub-agent) a
|
|
5
5
|
* stream of records. The caller delivers an ordinary record after the session's running turn ends, and adds an URGENT one to
|
|
6
6
|
* the running turn at once. Which record is which is decided here, by the record's KIND, and nowhere else: every site that
|
|
7
7
|
* creates a record names its source and calls `isUrgent`; none writes an `urgent` literal of its own. The flag is a required
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thehammer/danx-dashboard-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.310",
|
|
4
4
|
"description": "Stdio MCP server fronting danxbot's dashboard API for agents (operator sessions and dispatched workers alike): the generic danxbot_api/danxbot_api_list/danxbot_api_spec tools reach any route the caller's credential may call, plus dedicated agent-specific tools (plan_connect, request_permission, attach_file, and danxbot_slack_reply) (DX-3465, PLN-11 R-25).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|