agenthub-multiagent-mcp 1.75.0 → 1.76.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 (112) hide show
  1. package/dist/client.d.ts +19 -1
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +31 -0
  4. package/dist/client.js.map +1 -1
  5. package/dist/commands/setup-shell.js +11 -11
  6. package/dist/currentCaptureSession.d.ts +31 -0
  7. package/dist/currentCaptureSession.d.ts.map +1 -0
  8. package/dist/currentCaptureSession.js +54 -0
  9. package/dist/currentCaptureSession.js.map +1 -0
  10. package/dist/currentCaptureSession.test.d.ts +2 -0
  11. package/dist/currentCaptureSession.test.d.ts.map +1 -0
  12. package/dist/currentCaptureSession.test.js +55 -0
  13. package/dist/currentCaptureSession.test.js.map +1 -0
  14. package/dist/employee.d.ts +11 -0
  15. package/dist/employee.d.ts.map +1 -1
  16. package/dist/employee.js +64 -1
  17. package/dist/employee.js.map +1 -1
  18. package/dist/employee.test.js +88 -1
  19. package/dist/employee.test.js.map +1 -1
  20. package/dist/goshtiChannel/client.d.ts +9 -0
  21. package/dist/goshtiChannel/client.d.ts.map +1 -0
  22. package/dist/goshtiChannel/client.js +63 -0
  23. package/dist/goshtiChannel/client.js.map +1 -0
  24. package/dist/goshtiChannel/config.d.ts +42 -0
  25. package/dist/goshtiChannel/config.d.ts.map +1 -0
  26. package/dist/goshtiChannel/config.js +129 -0
  27. package/dist/goshtiChannel/config.js.map +1 -0
  28. package/dist/goshtiChannel/config.test.d.ts +2 -0
  29. package/dist/goshtiChannel/config.test.d.ts.map +1 -0
  30. package/dist/goshtiChannel/config.test.js +73 -0
  31. package/dist/goshtiChannel/config.test.js.map +1 -0
  32. package/dist/goshtiChannel/core.d.ts +63 -0
  33. package/dist/goshtiChannel/core.d.ts.map +1 -0
  34. package/dist/goshtiChannel/core.js +237 -0
  35. package/dist/goshtiChannel/core.js.map +1 -0
  36. package/dist/goshtiChannel/core.test.d.ts +2 -0
  37. package/dist/goshtiChannel/core.test.d.ts.map +1 -0
  38. package/dist/goshtiChannel/core.test.js +250 -0
  39. package/dist/goshtiChannel/core.test.js.map +1 -0
  40. package/dist/goshtiChannel/credential.d.ts +29 -0
  41. package/dist/goshtiChannel/credential.d.ts.map +1 -0
  42. package/dist/goshtiChannel/credential.js +160 -0
  43. package/dist/goshtiChannel/credential.js.map +1 -0
  44. package/dist/goshtiChannel/credential.test.d.ts +2 -0
  45. package/dist/goshtiChannel/credential.test.d.ts.map +1 -0
  46. package/dist/goshtiChannel/credential.test.js +127 -0
  47. package/dist/goshtiChannel/credential.test.js.map +1 -0
  48. package/dist/goshtiChannel/e2e.test.d.ts +2 -0
  49. package/dist/goshtiChannel/e2e.test.d.ts.map +1 -0
  50. package/dist/goshtiChannel/e2e.test.js +163 -0
  51. package/dist/goshtiChannel/e2e.test.js.map +1 -0
  52. package/dist/goshtiChannel/policy.d.ts +154 -0
  53. package/dist/goshtiChannel/policy.d.ts.map +1 -0
  54. package/dist/goshtiChannel/policy.js +240 -0
  55. package/dist/goshtiChannel/policy.js.map +1 -0
  56. package/dist/goshtiChannel/policy.test.d.ts +2 -0
  57. package/dist/goshtiChannel/policy.test.d.ts.map +1 -0
  58. package/dist/goshtiChannel/policy.test.js +263 -0
  59. package/dist/goshtiChannel/policy.test.js.map +1 -0
  60. package/dist/goshtiChannel/setup.d.ts +15 -0
  61. package/dist/goshtiChannel/setup.d.ts.map +1 -0
  62. package/dist/goshtiChannel/setup.js +125 -0
  63. package/dist/goshtiChannel/setup.js.map +1 -0
  64. package/dist/goshtiChannel/setup.test.d.ts +2 -0
  65. package/dist/goshtiChannel/setup.test.d.ts.map +1 -0
  66. package/dist/goshtiChannel/setup.test.js +96 -0
  67. package/dist/goshtiChannel/setup.test.js.map +1 -0
  68. package/dist/goshtiChannel/stream.d.ts +39 -0
  69. package/dist/goshtiChannel/stream.d.ts.map +1 -0
  70. package/dist/goshtiChannel/stream.js +174 -0
  71. package/dist/goshtiChannel/stream.js.map +1 -0
  72. package/dist/goshtiChannel/stream.test.d.ts +2 -0
  73. package/dist/goshtiChannel/stream.test.d.ts.map +1 -0
  74. package/dist/goshtiChannel/stream.test.js +164 -0
  75. package/dist/goshtiChannel/stream.test.js.map +1 -0
  76. package/dist/goshtiChannel.d.ts +22 -0
  77. package/dist/goshtiChannel.d.ts.map +1 -0
  78. package/dist/goshtiChannel.js +193 -0
  79. package/dist/goshtiChannel.js.map +1 -0
  80. package/dist/state.d.ts +2 -0
  81. package/dist/state.d.ts.map +1 -1
  82. package/dist/state.js.map +1 -1
  83. package/dist/tools/brainWriteCheck.test.d.ts +10 -0
  84. package/dist/tools/brainWriteCheck.test.d.ts.map +1 -0
  85. package/dist/tools/brainWriteCheck.test.js +67 -0
  86. package/dist/tools/brainWriteCheck.test.js.map +1 -0
  87. package/dist/tools/employeeTraining.d.ts +46 -0
  88. package/dist/tools/employeeTraining.d.ts.map +1 -0
  89. package/dist/tools/employeeTraining.js +329 -0
  90. package/dist/tools/employeeTraining.js.map +1 -0
  91. package/dist/tools/employeeTraining.test.d.ts +7 -0
  92. package/dist/tools/employeeTraining.test.d.ts.map +1 -0
  93. package/dist/tools/employeeTraining.test.js +190 -0
  94. package/dist/tools/employeeTraining.test.js.map +1 -0
  95. package/dist/tools/index.d.ts.map +1 -1
  96. package/dist/tools/index.js +155 -5
  97. package/dist/tools/index.js.map +1 -1
  98. package/dist/tools/runs.d.ts +43 -0
  99. package/dist/tools/runs.d.ts.map +1 -0
  100. package/dist/tools/runs.js +280 -0
  101. package/dist/tools/runs.js.map +1 -0
  102. package/dist/tools/runs.test.d.ts +9 -0
  103. package/dist/tools/runs.test.d.ts.map +1 -0
  104. package/dist/tools/runs.test.js +114 -0
  105. package/dist/tools/runs.test.js.map +1 -0
  106. package/dist/tools/tools.test.js +82 -2
  107. package/dist/tools/tools.test.js.map +1 -1
  108. package/package.json +79 -78
  109. package/skills/catalog.json +104 -102
  110. package/skills/commands/close-session.md +2 -2
  111. package/skills/commands/start-session.md +2 -2
  112. package/skills/manifest.json +67 -65
package/dist/state.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * brain_write_knowledge returns the server's write check
3
+ * (add-live-animated-views 2.5): `created` on a new row (201), `deduped` on a
4
+ * match (200, with canonical_id only when the match is the caller's org's own).
5
+ *
6
+ * The handler against a mocked ApiClient, and the real ApiClient with fetch
7
+ * stubbed so a 200 dedup is shown to be a success, not an error.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=brainWriteCheck.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brainWriteCheck.test.d.ts","sourceRoot":"","sources":["../../src/tools/brainWriteCheck.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * brain_write_knowledge returns the server's write check
3
+ * (add-live-animated-views 2.5): `created` on a new row (201), `deduped` on a
4
+ * match (200, with canonical_id only when the match is the caller's org's own).
5
+ *
6
+ * The handler against a mocked ApiClient, and the real ApiClient with fetch
7
+ * stubbed so a 200 dedup is shown to be a success, not an error.
8
+ */
9
+ import { afterEach, describe, expect, it, vi } from "vitest";
10
+ import { registerTools, handleToolCall } from "./index.js";
11
+ import { ApiClient } from "../client.js";
12
+ vi.mock("../state.js", () => ({
13
+ loadState: vi.fn(() => ({ project_id: "proj-1" })),
14
+ saveState: vi.fn(),
15
+ deleteState: vi.fn(),
16
+ stateExists: vi.fn(() => true),
17
+ getCurrentOwner: vi.fn(() => "test-user"),
18
+ }));
19
+ vi.mock("../hooks/sessionState.js", async (importOriginal) => {
20
+ const actual = (await importOriginal());
21
+ return { ...actual, isEnabled: vi.fn(() => false) };
22
+ });
23
+ function context() {
24
+ return {
25
+ getCurrentAgentId: () => "agent-a",
26
+ setCurrentAgentId: () => { },
27
+ stopHeartbeat: vi.fn(),
28
+ getWorkingDir: () => "/tmp/wd",
29
+ setWorkingDir: () => { },
30
+ getPushedItems: () => ({ tasks: [], messages: [] }),
31
+ };
32
+ }
33
+ describe("brain_write_knowledge", () => {
34
+ it("says in its description that it reports the check", () => {
35
+ const tool = registerTools().find((t) => t.name === "brain_write_knowledge");
36
+ expect(tool.description).toMatch(/check/);
37
+ expect(tool.description).toMatch(/deduped/);
38
+ });
39
+ it("returns the check the server decided", async () => {
40
+ const createBrainKnowledge = vi.fn().mockResolvedValue({ id: 7, check: "deduped", canonical_id: 7 });
41
+ const client = { createBrainKnowledge };
42
+ const result = (await handleToolCall("brain_write_knowledge", { category: "decision", fact: "merge on green verify" }, client, context()));
43
+ expect(result.check).toBe("deduped");
44
+ expect(result.canonical_id).toBe(7);
45
+ expect(createBrainKnowledge).toHaveBeenCalledWith(expect.objectContaining({ category: "decision", fact: "merge on green verify", source_agent: "agent-a" }));
46
+ });
47
+ });
48
+ describe("ApiClient.createBrainKnowledge wire", () => {
49
+ afterEach(() => vi.unstubAllGlobals());
50
+ function stubFetch(status, body) {
51
+ vi.stubGlobal("fetch", vi.fn().mockResolvedValue(new Response(JSON.stringify(body), { status, headers: { "Content-Type": "application/json" } })));
52
+ }
53
+ it("treats a 200 dedup as success and passes the check through", async () => {
54
+ stubFetch(200, { check: "deduped" });
55
+ const client = new ApiClient("https://hub.example", "key");
56
+ const res = await client.createBrainKnowledge({ category: "decision", fact: "x", source_agent: "a" });
57
+ expect(res.check).toBe("deduped");
58
+ expect(res.id).toBeUndefined();
59
+ });
60
+ it("returns created with the new id on 201", async () => {
61
+ stubFetch(201, { id: 12, check: "created" });
62
+ const client = new ApiClient("https://hub.example", "key");
63
+ const res = await client.createBrainKnowledge({ category: "decision", fact: "y", source_agent: "a" });
64
+ expect(res).toMatchObject({ id: 12, check: "created" });
65
+ });
66
+ });
67
+ //# sourceMappingURL=brainWriteCheck.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brainWriteCheck.test.js","sourceRoot":"","sources":["../../src/tools/brainWriteCheck.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Employee training MCP tools (add-employee-training-loops).
3
+ *
4
+ * A trainer — a `trainer` employee, or the employee's ladder manager — improves
5
+ * another employee's durable scaffolding, never its weights:
6
+ *
7
+ * employee_training_observe read the employee's recent shifts, signals and
8
+ * session reports (writes nothing)
9
+ * employee_training_run one training pass: the trainer's distilled
10
+ * lessons go to the org brain (deduplicated), the
11
+ * work is scored against the rubric, and proposed
12
+ * charter edits open a review that only a PERSON
13
+ * can approve
14
+ * employee_training_history the employee's training records, newest first
15
+ * employee_training_curriculum the practice a pass can set (curriculum and
16
+ * closed-ticket replays), with the references the
17
+ * answers are graded against (§4.1)
18
+ *
19
+ * A pass can also set practice tasks (§4: graded deterministically against a
20
+ * reference, bounded by the pass budget) and add skills (§5: a reversible skill
21
+ * pack installs at once; a destructive pack or a skill you wrote waits for a
22
+ * person who administers the org).
23
+ *
24
+ * This is the manual trigger; the scheduled pass (meta-agent cron) is not built.
25
+ * Refusals are returned, never thrown, with a sentence per server code.
26
+ */
27
+ import type { Tool } from "@modelcontextprotocol/sdk/types.js";
28
+ import type { ApiClient, SessionControlResult } from "../client.js";
29
+ export declare const EMPLOYEE_TRAINING_TOOLS: readonly ["employee_training_observe", "employee_training_run", "employee_training_history", "employee_training_curriculum"];
30
+ export type EmployeeTrainingToolName = (typeof EMPLOYEE_TRAINING_TOOLS)[number];
31
+ export declare function isEmployeeTrainingTool(name: string): name is EmployeeTrainingToolName;
32
+ /** The charter fields a training pass may propose editing (server-enforced). */
33
+ export declare const CHARTER_EDIT_FIELDS: readonly ["mission", "responsibilities", "scope", "success_metrics"];
34
+ export declare function registerEmployeeTrainingTools(): Tool[];
35
+ /** Structured refusal returned to the model instead of a thrown error. */
36
+ export interface EmployeeTrainingFailure {
37
+ ok: false;
38
+ error: string;
39
+ status: number;
40
+ message: string;
41
+ }
42
+ export declare function describeEmployeeTrainingFailure(agentId: string, result: Extract<SessionControlResult, {
43
+ ok: false;
44
+ }>): EmployeeTrainingFailure;
45
+ export declare function handleEmployeeTrainingToolCall(name: EmployeeTrainingToolName, args: Record<string, unknown>, client: ApiClient): Promise<unknown>;
46
+ //# sourceMappingURL=employeeTraining.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"employeeTraining.d.ts","sourceRoot":"","sources":["../../src/tools/employeeTraining.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpE,eAAO,MAAM,uBAAuB,8HAK1B,CAAC;AAEX,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,wBAAwB,CAErF;AAED,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,sEAAuE,CAAC;AAQxG,wBAAgB,6BAA6B,IAAI,IAAI,EAAE,CAoJtD;AAED,0EAA0E;AAC1E,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAuBD,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,CAAC,oBAAoB,EAAE;IAAE,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC,GACnD,uBAAuB,CAgCzB;AAED,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,wBAAwB,EAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,OAAO,CAAC,CAgGlB"}
@@ -0,0 +1,329 @@
1
+ /**
2
+ * Employee training MCP tools (add-employee-training-loops).
3
+ *
4
+ * A trainer — a `trainer` employee, or the employee's ladder manager — improves
5
+ * another employee's durable scaffolding, never its weights:
6
+ *
7
+ * employee_training_observe read the employee's recent shifts, signals and
8
+ * session reports (writes nothing)
9
+ * employee_training_run one training pass: the trainer's distilled
10
+ * lessons go to the org brain (deduplicated), the
11
+ * work is scored against the rubric, and proposed
12
+ * charter edits open a review that only a PERSON
13
+ * can approve
14
+ * employee_training_history the employee's training records, newest first
15
+ * employee_training_curriculum the practice a pass can set (curriculum and
16
+ * closed-ticket replays), with the references the
17
+ * answers are graded against (§4.1)
18
+ *
19
+ * A pass can also set practice tasks (§4: graded deterministically against a
20
+ * reference, bounded by the pass budget) and add skills (§5: a reversible skill
21
+ * pack installs at once; a destructive pack or a skill you wrote waits for a
22
+ * person who administers the org).
23
+ *
24
+ * This is the manual trigger; the scheduled pass (meta-agent cron) is not built.
25
+ * Refusals are returned, never thrown, with a sentence per server code.
26
+ */
27
+ export const EMPLOYEE_TRAINING_TOOLS = [
28
+ "employee_training_observe",
29
+ "employee_training_run",
30
+ "employee_training_history",
31
+ "employee_training_curriculum",
32
+ ];
33
+ export function isEmployeeTrainingTool(name) {
34
+ return EMPLOYEE_TRAINING_TOOLS.includes(name);
35
+ }
36
+ /** The charter fields a training pass may propose editing (server-enforced). */
37
+ export const CHARTER_EDIT_FIELDS = ["mission", "responsibilities", "scope", "success_metrics"];
38
+ const AGENT_ID = { type: "string", description: "The employee (agent id) being trained." };
39
+ const WINDOW_DAYS = {
40
+ type: "number",
41
+ description: "How many days of recent work to look at (default 14, at most 90).",
42
+ };
43
+ export function registerEmployeeTrainingTools() {
44
+ return [
45
+ {
46
+ name: "employee_training_observe",
47
+ description: "Read what a training pass would observe about an employee: tasks it was given in the window and " +
48
+ "whether it answered, its session reports, recorded rollbacks/stalls/incidents, and its signal " +
49
+ "snapshot. Writes nothing. Use it to distil lessons before calling employee_training_run. " +
50
+ "You must be a trainer employee (charter capability employee-training) or the employee's manager; " +
51
+ "an employee cannot train itself.",
52
+ inputSchema: {
53
+ type: "object",
54
+ properties: { agent_id: AGENT_ID, window_days: WINDOW_DAYS },
55
+ required: ["agent_id"],
56
+ },
57
+ },
58
+ {
59
+ name: "employee_training_run",
60
+ description: "Run one training pass over an employee (add-employee-training-loops). The pass observes its recent " +
61
+ "work, scores it against the rubric (and hands a strong/weak trend to the tier ladder as a proposal), " +
62
+ "writes your `lessons` to the org brain — deduplicated, already-known lessons are reported, not " +
63
+ "rewritten — and turns each of your `charter_edits` into a review. A charter edit is NOT applied by " +
64
+ "this call: nothing changes until a person approves the review, and no agent can approve it. " +
65
+ "Report what you spent distilling as `tokens_spent`; it counts against the per-pass budget. " +
66
+ "Requires AGENTHUB_EMPLOYEE_TRAINING_ENABLED on the server.",
67
+ inputSchema: {
68
+ type: "object",
69
+ properties: {
70
+ agent_id: AGENT_ID,
71
+ lessons: {
72
+ type: "array",
73
+ items: { type: "string" },
74
+ description: "Distilled, reusable lessons from the employee's recent shifts — one sentence or two each, " +
75
+ "phrased as guidance for its next shift. At most 25.",
76
+ },
77
+ charter_edits: {
78
+ type: "array",
79
+ description: "Proposed charter guidance changes, each for a person to approve. At most 5.",
80
+ items: {
81
+ type: "object",
82
+ properties: {
83
+ field: { type: "string", enum: [...CHARTER_EDIT_FIELDS] },
84
+ after: { type: "string", description: "The full new text of the field." },
85
+ rationale: { type: "string", description: "Why — the evidence from the observed shifts." },
86
+ },
87
+ required: ["field", "after"],
88
+ },
89
+ },
90
+ tokens_spent: {
91
+ type: "number",
92
+ description: "Tokens you spent preparing this pass (observing + distilling).",
93
+ },
94
+ practice: {
95
+ type: "object",
96
+ description: "Practice tasks to set (none unless asked). Each goes to the employee as a task message and is " +
97
+ "graded against its reference when it answers — by matching reference terms, not by a model. " +
98
+ "Each task is reserved against the pass budget first; one the budget cannot cover is not sent " +
99
+ "and the pass ends partial. At most 10 tasks.",
100
+ properties: {
101
+ count: { type: "number", description: "Draw this many items from `source`, gap skills first." },
102
+ source: { type: "string", enum: ["curriculum", "tickets", "mixed"] },
103
+ item_ids: {
104
+ type: "array",
105
+ items: { type: "string" },
106
+ description: "Curriculum item ids (see employee_training_curriculum).",
107
+ },
108
+ items: {
109
+ type: "array",
110
+ description: "Practice tasks you wrote, each with a reference to grade against.",
111
+ items: {
112
+ type: "object",
113
+ properties: {
114
+ title: { type: "string" },
115
+ prompt: { type: "string" },
116
+ skill: { type: "string" },
117
+ reference: {
118
+ type: "object",
119
+ properties: {
120
+ answer: { type: "string" },
121
+ must_include: {
122
+ type: "array",
123
+ items: { type: "string" },
124
+ description: "Terms a good answer contains; a|b accepts either.",
125
+ },
126
+ must_not_include: { type: "array", items: { type: "string" } },
127
+ },
128
+ },
129
+ },
130
+ required: ["prompt", "reference"],
131
+ },
132
+ },
133
+ },
134
+ },
135
+ skills: {
136
+ type: "array",
137
+ description: "Skills to add, at most 5: `pack` (a skill pack from skill_pack_list) or `name` + `content` " +
138
+ "(a SKILL.md you wrote). A reversible pack is sent to the employee to install now. A destructive " +
139
+ "pack needs its skill-pack:<name> capability in the employee's charter and a person's approval; " +
140
+ "a skill you wrote always needs a person's approval. No agent can approve either.",
141
+ items: {
142
+ type: "object",
143
+ properties: {
144
+ pack: { type: "string" },
145
+ name: { type: "string", description: "Lower-case slug for a skill you wrote." },
146
+ content: { type: "string", description: "The SKILL.md text." },
147
+ gap: { type: "string", description: "The recurring gap it addresses." },
148
+ },
149
+ },
150
+ },
151
+ window_days: WINDOW_DAYS,
152
+ },
153
+ required: ["agent_id"],
154
+ },
155
+ },
156
+ {
157
+ name: "employee_training_history",
158
+ description: "List an employee's training records, newest first: what each pass observed, the lessons it wrote, " +
159
+ "its score, the charter edits it proposed and their approval state, and what it spent.",
160
+ inputSchema: {
161
+ type: "object",
162
+ properties: {
163
+ agent_id: AGENT_ID,
164
+ limit: { type: "number", description: "How many records (default 50)." },
165
+ },
166
+ required: ["agent_id"],
167
+ },
168
+ },
169
+ {
170
+ name: "employee_training_curriculum",
171
+ description: "List the practice a training pass can set for an employee: the built-in curriculum and, with " +
172
+ "`tickets`, replays of the org's closed tickets — each with the reference its answer is graded " +
173
+ "against. Trainer-only: the employee cannot read its own references.",
174
+ inputSchema: {
175
+ type: "object",
176
+ properties: {
177
+ agent_id: AGENT_ID,
178
+ tickets: { type: "number", description: "Include up to this many closed-ticket replays (at most 10)." },
179
+ },
180
+ required: ["agent_id"],
181
+ },
182
+ },
183
+ ];
184
+ }
185
+ function record(value) {
186
+ return value && typeof value === "object" ? value : {};
187
+ }
188
+ function list(value) {
189
+ return Array.isArray(value) ? value.map(record) : [];
190
+ }
191
+ function requireString(args, key) {
192
+ const value = args[key];
193
+ if (typeof value !== "string" || value.trim() === "") {
194
+ throw new Error(`${key} is required`);
195
+ }
196
+ return value.trim();
197
+ }
198
+ function optionalNumber(args, key) {
199
+ const value = args[key];
200
+ return typeof value === "number" && Number.isFinite(value) ? value : undefined;
201
+ }
202
+ export function describeEmployeeTrainingFailure(agentId, result) {
203
+ const { status, error } = result;
204
+ let message;
205
+ switch (error) {
206
+ case "training_disabled":
207
+ message =
208
+ `UNAVAILABLE: employee training is switched off on this AgentHub server (HTTP ${status}). ` +
209
+ `An operator must set AGENTHUB_EMPLOYEE_TRAINING_ENABLED=true. Do not retry.`;
210
+ break;
211
+ case "employees_disabled":
212
+ message =
213
+ `UNAVAILABLE: AI employees are switched off on this server (HTTP ${status}); ` +
214
+ `AGENTHUB_EMPLOYEES_ENABLED must be true. Do not retry.`;
215
+ break;
216
+ case "self_training":
217
+ message = `DENIED: an employee cannot train itself. A trainer employee or ${agentId}'s manager runs the pass.`;
218
+ break;
219
+ case "trainer_required":
220
+ message =
221
+ `DENIED: only a trainer employee (charter capability employee-training) or ${agentId}'s ladder ` +
222
+ `manager may train it. Ask a person to hire a trainer.`;
223
+ break;
224
+ case "not_employee":
225
+ message = `Not found: ${agentId} is not an employee (or not one you can see).`;
226
+ break;
227
+ case "bad_request":
228
+ message = `REFUSED: ${result.message || "the server rejected the request"}. Nothing was recorded.`;
229
+ break;
230
+ default:
231
+ message = result.message || result.detail || `training call failed: ${error} (HTTP ${status}).`;
232
+ }
233
+ return { ok: false, error, status, message };
234
+ }
235
+ export async function handleEmployeeTrainingToolCall(name, args, client) {
236
+ const agentId = requireString(args, "agent_id");
237
+ switch (name) {
238
+ case "employee_training_observe": {
239
+ const result = await client.getTrainingObservations(agentId, optionalNumber(args, "window_days"));
240
+ if (!result.ok)
241
+ return describeEmployeeTrainingFailure(agentId, result);
242
+ return { ok: true, observations: result.data };
243
+ }
244
+ case "employee_training_history": {
245
+ const result = await client.listTrainingRecords(agentId, optionalNumber(args, "limit"));
246
+ if (!result.ok)
247
+ return describeEmployeeTrainingFailure(agentId, result);
248
+ return { ok: true, records: result.data.records ?? [], total: result.data.total ?? 0 };
249
+ }
250
+ case "employee_training_curriculum": {
251
+ const result = await client.getTrainingCurriculum(agentId, optionalNumber(args, "tickets"));
252
+ if (!result.ok)
253
+ return describeEmployeeTrainingFailure(agentId, result);
254
+ return { ok: true, ...result.data };
255
+ }
256
+ case "employee_training_run": {
257
+ const body = {};
258
+ if (Array.isArray(args.lessons))
259
+ body.lessons = args.lessons.filter((l) => typeof l === "string");
260
+ if (Array.isArray(args.charter_edits))
261
+ body.charter_edits = args.charter_edits;
262
+ const spent = optionalNumber(args, "tokens_spent");
263
+ if (spent !== undefined)
264
+ body.tokens_spent = spent;
265
+ const window = optionalNumber(args, "window_days");
266
+ if (window !== undefined)
267
+ body.window_days = window;
268
+ if (args.practice && typeof args.practice === "object")
269
+ body.practice = args.practice;
270
+ if (Array.isArray(args.skills))
271
+ body.skills = args.skills;
272
+ const result = await client.runTrainingPass(agentId, body);
273
+ if (!result.ok)
274
+ return describeEmployeeTrainingFailure(agentId, result);
275
+ const rec = record(result.data.record);
276
+ const lessons = list(rec.lessons);
277
+ const fresh = lessons.filter((l) => l.duplicate !== true).length;
278
+ const known = lessons.length - fresh;
279
+ const edits = list(rec.proposed_charter_edits);
280
+ const reviews = edits.map((e) => e.review_id).filter((id) => typeof id === "string");
281
+ const status = typeof rec.status === "string" ? rec.status : "unknown";
282
+ const parts = [`Training pass ${String(rec.id ?? "")} ${status}.`];
283
+ parts.push(`${fresh} new lesson(s) written to the org brain, ${known} already known.`);
284
+ if (reviews.length > 0) {
285
+ parts.push(`${reviews.length} charter edit(s) proposed — review(s) ${reviews.join(", ")}. ` +
286
+ `They change nothing until a person approves them.`);
287
+ }
288
+ const practice = list(rec.practice_scores);
289
+ if (practice.length > 0) {
290
+ const graded = practice.filter((p) => p.state === "graded");
291
+ const passed = graded.filter((p) => p.passed === true).length;
292
+ const waiting = practice.filter((p) => p.state === "assigned").length;
293
+ const skipped = practice.filter((p) => p.state === "skipped_budget").length;
294
+ parts.push(`Practice: ${graded.length} graded (${passed} passed), ${waiting} sent and awaiting an answer` +
295
+ (skipped > 0 ? `, ${skipped} not sent (budget)` : "") +
296
+ ".");
297
+ }
298
+ const skills = list(rec.skills_added);
299
+ if (skills.length > 0) {
300
+ const pending = skills.filter((s) => s.state === "pending_approval");
301
+ const sent = skills.filter((s) => s.state === "install_sent").length;
302
+ const refused = skills.filter((s) => s.state === "refused").length;
303
+ parts.push(`Skills: ${sent} install(s) sent, ${refused} refused.`);
304
+ if (pending.length > 0) {
305
+ parts.push(`${pending.length} skill install(s) await a person who administers the org — review(s) ` +
306
+ `${pending.map((s) => String(s.review_id)).join(", ")}.`);
307
+ }
308
+ }
309
+ if (typeof rec.ladder_review_id === "string" && rec.ladder_review_id) {
310
+ parts.push(`The score fed the tier ladder: proposal ${rec.ladder_review_id} awaits a person.`);
311
+ }
312
+ if (status === "partial" && rec.stop_reason === "budget_exhausted") {
313
+ parts.push("The pass stopped at its token budget; the steps it reached are recorded.");
314
+ }
315
+ else if (status === "failed") {
316
+ parts.push(`It failed at: ${String(rec.stop_reason ?? "unknown")}.`);
317
+ }
318
+ return {
319
+ ok: true,
320
+ record_id: rec.id,
321
+ status,
322
+ record: rec,
323
+ scorecard: result.data.scorecard ?? null,
324
+ message: parts.join(" "),
325
+ };
326
+ }
327
+ }
328
+ }
329
+ //# sourceMappingURL=employeeTraining.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"employeeTraining.js","sourceRoot":"","sources":["../../src/tools/employeeTraining.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Employee training MCP tools (add-employee-training-loops §1.3 manual trigger,
3
+ * §2–§3). Handlers against a mocked ApiClient for result/refusal shaping, and
4
+ * the real ApiClient with fetch stubbed for the wire contract.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=employeeTraining.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"employeeTraining.test.d.ts","sourceRoot":"","sources":["../../src/tools/employeeTraining.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}