@agentistics/mcp 2.132.4 → 2.132.5

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.
@@ -1009,12 +1009,24 @@ var AGENT_TOOL_POLICY = {
1009
1009
  routes: ["POST /api/session-message"],
1010
1010
  reason: "types a message into another session through the composer path; additive, rate-limited, sender verified"
1011
1011
  },
1012
+ agentistics_checkin_report: {
1013
+ ...GROUPS,
1014
+ risk: "W",
1015
+ routes: ["POST /api/checkin/report"],
1016
+ reason: "records the calling leader's own check-in round; additive, sender verified"
1017
+ },
1012
1018
  agentistics_session_role: {
1013
1019
  ...GROUPS,
1014
1020
  risk: "W",
1015
1021
  routes: ["POST /api/session-roles"],
1016
1022
  reason: "sets a session label (role + title prefix) and types a one-line note; reversible by setting auto; a session may only touch itself or the sessions it started"
1017
1023
  },
1024
+ agentistics_session_away: {
1025
+ ...GROUPS,
1026
+ risk: "W",
1027
+ routes: ["GET /api/away", "PUT /api/away", "POST /api/away/notice"],
1028
+ reason: "reads or switches away mode (what newly started sessions are told about the owner being out) and lets a leader raise a notice in the owner's bell; reversible by switching it off; the server accepts writes only from a verified LEADER session"
1029
+ },
1018
1030
  agentistics_summary: { ...DATA, capability: "localTranscripts", host: true, risk: "R", routes: ["GET /api/data", "GET /api/runtime/metrics"], reason: "reads computed metrics" },
1019
1031
  agentistics_harnesses: { ...DATA, capability: "localTranscripts", host: true, risk: "R", routes: ["GET /api/data", "GET /api/runtime/metrics"], reason: "reads computed metrics per harness" },
1020
1032
  agentistics_plan_limits: { ...DATA, capability: "localTranscripts", host: true, risk: "R", routes: ["GET /api/plan-limits"], reason: "reads subscription windows and routing guidance; does not start work" },
@@ -2308,6 +2320,37 @@ var TOOLS = [
2308
2320
  required: []
2309
2321
  }
2310
2322
  },
2323
+ {
2324
+ name: "agentistics_session_away",
2325
+ description: "Read or switch AWAY MODE, or send the owner a notice while away — the owner is out (asleep, travelling) and the fleet carries on without asking them. With no `on` it reports the state (`active`, `until`, what is pre-authorised). With `on: true` it switches it on: `until` is an ISO instant (omit = until the owner says they are back), `authorised` lists what the owner pre-approved (releases = publish releases the leader approved; workers = open worker sessions within the plan limits; merges = merge PRs the leader reviewed), `note` is free text. `on: false` switches it off. Every session started while it is active is told in its briefing. Only a LEADER session may switch it; use it when the owner tells you they are leaving or are back.",
2326
+ inputSchema: {
2327
+ type: "object",
2328
+ properties: {
2329
+ on: { type: "boolean", description: "true = owner away, false = owner back. Omit to read." },
2330
+ until: { type: "string", description: "ISO instant the away period ends. Omit for 'until I'm back'." },
2331
+ authorised: { type: "array", items: { type: "string", enum: ["releases", "workers", "merges"] } },
2332
+ note: { type: "string", description: "Free text from the owner (max 500 chars)." },
2333
+ maxWorkers: { type: "number", description: "Ceiling of worker sessions at once while away (default 6)." },
2334
+ maxOpus: { type: "number", description: "Ceiling of those on Opus at once (default 2)." },
2335
+ notice: { type: "string", description: "While away: a warning or decision that cannot wait, sent to the owner's bell/Nay as a notice (max 500 chars) instead of a question that blocks your turn. Leaders only; ignores the other fields." }
2336
+ },
2337
+ required: []
2338
+ }
2339
+ },
2340
+ {
2341
+ name: "agentistics_checkin_report",
2342
+ description: "Report the leadership check-in round. The server records the round, updates the agenda, and adds a checkin activity event to the filed task.",
2343
+ inputSchema: {
2344
+ type: "object",
2345
+ properties: {
2346
+ state: { type: "string", enum: ["ok", "resolved", "needs_you"] },
2347
+ summary: { type: "string" },
2348
+ actions: { type: "array", items: { type: "object", properties: { text: { type: "string" }, link: { type: "object" } }, required: ["text"] } },
2349
+ needs: { type: "array", items: { type: "object", properties: { subject: { type: "string" }, text: { type: "string" }, critical: { type: "boolean" }, link: { type: "object" } }, required: ["subject", "text"] } }
2350
+ },
2351
+ required: ["state", "summary"]
2352
+ }
2353
+ },
2311
2354
  {
2312
2355
  name: "agentistics_summary",
2313
2356
  description: "Get an overview of AI coding usage metrics (across all tracked harnesses — Claude Code, Codex, Gemini, Copilot, Antigravity — or scoped to one): total tokens, estimated cost, sessions, streak, most used model, and top project. Good starting point for any metrics question.",
@@ -2748,6 +2791,27 @@ async function callTool(req) {
2748
2791
  });
2749
2792
  return { content: [{ type: "text", text: JSON.stringify(body, null, 2) }] };
2750
2793
  }
2794
+ case "agentistics_session_away": {
2795
+ const a = args;
2796
+ if (typeof a?.notice === "string") {
2797
+ const body = await apiSend("POST", "/api/away/notice", { text: a.notice, session: sessionProof(process.env) });
2798
+ return { content: [{ type: "text", text: JSON.stringify(body, null, 2) }] };
2799
+ }
2800
+ if (typeof a?.on !== "boolean") {
2801
+ const body = await apiGet("/api/away");
2802
+ return { content: [{ type: "text", text: JSON.stringify(body, null, 2) }] };
2803
+ }
2804
+ const body = await apiSend("PUT", "/api/away", {
2805
+ on: a.on,
2806
+ ...a.until !== undefined ? { until: a.until } : {},
2807
+ ...a.authorised !== undefined ? { authorised: a.authorised } : {},
2808
+ ...a.note !== undefined ? { note: a.note } : {},
2809
+ ...a.maxWorkers !== undefined ? { maxWorkers: a.maxWorkers } : {},
2810
+ ...a.maxOpus !== undefined ? { maxOpus: a.maxOpus } : {},
2811
+ session: sessionProof(process.env)
2812
+ });
2813
+ return { content: [{ type: "text", text: JSON.stringify(body, null, 2) }] };
2814
+ }
2751
2815
  case "agentistics_session_message": {
2752
2816
  const a = args;
2753
2817
  const body = await apiSend("POST", "/api/session-message", {
@@ -2758,6 +2822,17 @@ async function callTool(req) {
2758
2822
  });
2759
2823
  return { content: [{ type: "text", text: JSON.stringify(body, null, 2) }] };
2760
2824
  }
2825
+ case "agentistics_checkin_report": {
2826
+ const a = args;
2827
+ const body = await apiSend("POST", "/api/checkin/report", {
2828
+ state: a?.state,
2829
+ summary: a?.summary,
2830
+ actions: a?.actions,
2831
+ needs: a?.needs,
2832
+ session: sessionProof(process.env)
2833
+ });
2834
+ return { content: [{ type: "text", text: JSON.stringify(body, null, 2) }] };
2835
+ }
2761
2836
  case "agentistics_summary": {
2762
2837
  const harness = args?.harness;
2763
2838
  return text(await analytics("agentistics_summary", harness, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentistics/mcp",
3
- "version": "2.132.4",
3
+ "version": "2.132.5",
4
4
  "description": "Agentistics MCP server — Claude Code analytics for Claude Desktop and Claude Code",
5
5
  "type": "module",
6
6
  "main": "./dist/agentistics-mcp.js",