@brightbeamai/chap-coordinator-mcp 0.2.11 → 0.2.13

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/dist/tools.js CHANGED
@@ -1,53 +1,53 @@
1
1
  // src/tools.ts
2
2
  var TOOL_DESCRIPTIONS = {
3
3
  // Core
4
- "chap.workspace.create": "Create a new CHAP workspace where humans and agents can collaborate on tasks. Returns the workspace id.",
5
- "chap.workspace.describe": "Get the current state of a workspace: members, profiles, audit length, task and override counts.",
6
- "chap.workspace.set_profiles": "Change which CHAP profiles are enabled on a workspace.",
7
- "chap.participant.join": "Add a participant (human, agent, or service) to a workspace.",
8
- "chap.participant.leave": "Remove a participant from a workspace.",
9
- "chap.task.create": "Create a new task in a workspace. Tasks are units of work assigned to a participant. Pass routing_hints (criticality, deadline) to inform later routing decisions.",
10
- "chap.task.update": "Update a task's state (e.g. in_progress, declined, paused). Only legal transitions are accepted.",
11
- "chap.task.complete": "Mark a task as completed, attaching the output artefact. Use chap.review.request afterwards if review is required.",
12
- "chap.audit.read": "Read entries from a workspace's audit log. Supports a sequence-number range and a filter by method, sender, or task id.",
4
+ "chap.workspace.create": "Create a workspace: the container for the participants, tasks and audit log of one piece of collaborative work. Returns the workspace id, which every later call carries.",
5
+ "chap.workspace.describe": "Report the current state of a workspace: its members, enabled profiles, audit length, and task and override counts.",
6
+ "chap.workspace.set_profiles": "Replace the set of profiles enabled on a workspace. Enabling audit-scitt/1.0 on a workspace that already has entries leaves those entries outside the hash chain.",
7
+ "chap.participant.join": "Add a participant to a workspace. The type given, human, agent, service, group or workspace, decides whether they are eligible to review work that requires it.",
8
+ "chap.participant.leave": "Remove a participant from a workspace. Entries they have already written stay in the audit log.",
9
+ "chap.task.create": "Create a task: a unit of work assigned to one participant. Set review_required to make the task's completion depend on a reviewer decision rather than on the assignee.",
10
+ "chap.task.update": "Move a task to a new state. Only the transitions in the specification's lifecycle table are accepted, and a task that requires review cannot be completed here.",
11
+ "chap.task.complete": "Submit a task's output. A task that requires review does not complete: the output is held as the artefact under review, the task moves to review_requested, and a reviewer decision completes it. Any other task completes immediately.",
12
+ "chap.audit.read": "Read entries from a workspace's audit log, optionally within a sequence range and filtered by method, sender or task.",
13
13
  // review/1.0
14
- "chap.review.request": "Open a review on a completed task. Pass one or more reviewers in 'to' and the draft artefact. The reviewers then call chap.decide.approve / .reject / .override or chap.abstain.declare.",
15
- "chap.decide.approve": "Approve a task that's under review. Resolves the review and marks the task completed.",
16
- "chap.decide.reject": "Reject a task that's under review. Pass request_revision: true to send it back to in_progress instead of declined.",
17
- "chap.decide.override": "Apply an RFC 6902 JSON Patch to the artefact under review and accept the result. Carries a structured override artefact: diff + rationale + tags. This is the structured-override-as-learning-signal mechanism that distinguishes CHAP from approve/reject-only workflows.",
18
- "chap.abstain.declare": "Decline to review a task with a reason (e.g. conflict_of_interest). The task transitions to abstained.",
19
- "chap.escalate.raise": "Create a new task that supersedes the original, typically assigned to a more senior reviewer. Use when the current reviewer cannot decide.",
14
+ "chap.review.request": "Open a review on a task and address it to one or more reviewers. They then call chap.decide.approve, chap.decide.reject, chap.decide.override or chap.abstain.declare. Repeating the request with the same artefact adds reviewers to the open review.",
15
+ "chap.decide.approve": "Approve the artefact under review. The task completes once the review's rule is satisfied.",
16
+ "chap.decide.reject": "Reject the artefact under review. The task is declined, or returns to in_progress if request_revision is set.",
17
+ "chap.decide.override": "Correct the artefact under review with an RFC 6902 JSON Patch and accept the result. The patch, the rationale and any tags are recorded together, so the audit log holds what was changed and why, rather than only that the work was not accepted as written.",
18
+ "chap.abstain.declare": "Stand aside from a review, giving a reason and a category. The task moves to abstained.",
19
+ "chap.escalate.raise": "Hand a task upwards. The original moves to escalated and is linked to a new task opened for whoever takes it on. The successor starts with an empty input unless one is supplied.",
20
20
  // whisper/1.0
21
- "chap.whisper.ask": "Pose a deadline-bound question to one or more participants. Carries a default that's applied if the deadline lapses. Use for quick clarifications that shouldn't block a task indefinitely.",
22
- "chap.whisper.answer": "Answer a previously asked whisper. If the whisper had options, answer_option must be one of them.",
21
+ "chap.whisper.ask": "Put one question to one or more participants, with a deadline and a default. If the deadline passes unanswered the default applies, so a task is never blocked waiting on a reply.",
22
+ "chap.whisper.answer": "Answer an open whisper. Where the question carried options, the answer must name one of them.",
23
23
  // deliberation/1.0
24
- "chap.deliberate.open": "Open a multi-participant deliberation with a voting rule (any_one_approves, all_approve, quorum:N, weighted_vote:T, weighted_vote_with_veto:T).",
25
- "chap.deliberate.comment": "Add a comment to an open deliberation.",
26
- "chap.deliberate.vote": "Cast a vote (yea / nay / abstain) in a deliberation. Each voter votes at most once.",
27
- "chap.deliberate.close": "Close a deliberation and compute the outcome based on its voting rule.",
24
+ "chap.deliberate.open": "Open a deliberation among several participants under a stated voting rule: any_one_approves, all_approve, quorum:N, weighted_vote:T or weighted_vote_with_veto:T.",
25
+ "chap.deliberate.comment": "Record a comment on an open deliberation, so the reasoning is on the audit log alongside the votes.",
26
+ "chap.deliberate.vote": "Cast a yea, nay or abstain in an open deliberation. Each participant votes once.",
27
+ "chap.deliberate.close": "Close a deliberation and compute its outcome from the votes cast under its rule.",
28
28
  // handoff/1.0
29
- "chap.handoff.propose": "Propose handing off one or more open tasks to another participant. Recipient may be a single URI or a group:... URI.",
30
- "chap.handoff.accept": "Accept a previously proposed handoff. The accepted tasks are reassigned to the accepting participant.",
31
- "chap.handoff.decline": "Decline a previously proposed handoff. Optionally suggest a different target.",
29
+ "chap.handoff.propose": "Propose handing one or more tasks to another participant or a group, with the context needed to pick them up. Every task must currently be assigned to the proposer.",
30
+ "chap.handoff.accept": "Accept a proposed handoff. The accepted tasks are reassigned to the accepting participant.",
31
+ "chap.handoff.decline": "Decline a proposed handoff, with a reason and optionally a suggestion of who should take it instead.",
32
32
  // control/1.0
33
- "chap.control.pause": "Pause work, scoped to a single task, a participant, or the whole workspace.",
34
- "chap.control.resume": "Resume previously paused work.",
35
- "chap.control.cancel": "Cancel a task that is not yet terminal.",
36
- "chap.control.snapshot": "Capture the current workspace state as an artefact (members, open tasks, mode ceiling, etc.). Used as the rollback target.",
37
- "chap.control.rollback": "Roll the workspace back to a previously captured snapshot. Specify what_to_restore to scope the rollback.",
38
- "chap.control.supersede": "Mark a task superseded by a new successor task in one envelope. Use when a task needs to be replaced wholesale rather than re-routed.",
39
- "chap.control.set_mode_ceiling": "Set the maximum operating mode allowed in the workspace (shadow, trial, production). Tasks requesting higher modes are rejected.",
33
+ "chap.control.pause": "Pause work. Scoped to a task it moves that task to paused; to a participant it stops new tasks being assigned to them; to the workspace it refuses every method except describing, reading the audit log, joining, leaving and resuming.",
34
+ "chap.control.resume": "Resume work paused at the same scope: a task returns to in_progress, a participant can be assigned tasks again, a workspace returns to active.",
35
+ "chap.control.cancel": "Cancel a task. Cancelled is terminal, and a task that has already settled cannot be cancelled.",
36
+ "chap.control.snapshot": "Capture the workspace state as an artefact and return its id, which chap.control.rollback takes as its target.",
37
+ "chap.control.rollback": "Restore workspace state from a snapshot. The mode ceiling and member roles are restored; the rollback is appended to the audit log rather than rewriting it.",
38
+ "chap.control.supersede": "Replace a task with a successor in one call. The original moves to superseded and stays linked to its replacement.",
39
+ "chap.control.set_mode_ceiling": "Set the highest operating mode tasks in this workspace may request. A task above the ceiling is refused.",
40
40
  // routing/1.0
41
- "chap.task.route": "Pick an assignee for a task from a list of candidates. Produces a route_decision artefact recording the policy used.",
42
- "chap.review.depth": "Decide the review depth for a task (skip / spot_check / full) based on routing hints. Produces a route_decision artefact.",
43
- "chap.escalate.auto": "Evaluate whether a task should be auto-escalated based on its routing hints (criticality, confidence). Produces a route_decision artefact.",
41
+ "chap.task.route": "Choose an assignee for a task from a list of candidates and record a route_decision artefact naming the policy, the candidate chosen, and the alternatives it passed over.",
42
+ "chap.review.depth": "Decide how much review a task warrants, skip, spot_check or full, from its routing hints. Records a route_decision artefact giving the rule that produced the answer.",
43
+ "chap.escalate.auto": "Evaluate a task's routing hints against the escalation policy and report whether it should be escalated, and to whom. Records a route_decision artefact.",
44
44
  // security-signed/1.0
45
- "chap.participant.rotate_key": "Rotate a participant's signing key. The old key remains valid for verifying historical envelopes via valid_until.",
46
- "chap.participant.revoke_key": "Revoke a signing key (e.g. on suspected compromise). Envelopes signed with the revoked key after revoke time are rejected.",
45
+ "chap.participant.rotate_key": "Retire a participant's signing key and register its replacement. The old key stays in the key history with a valid_until timestamp, so envelopes it signed still verify.",
46
+ "chap.participant.revoke_key": "Revoke a signing key, for example after a device is lost. Signatures presented with it are refused from then on. Revoking another participant's key requires the admin role.",
47
47
  // audit-scitt/1.0
48
- "chap.audit.submit_to_scitt": "Build COSE_Sign1-shaped audit statements for a range of envelopes and submit them to the configured SCITT transparency service.",
49
- "chap.audit.verify_receipt": "Verify a SCITT receipt against the configured verifier.",
50
- "chap.audit.verify_chain": "Verify the local prev-hash chain across a workspace's audit log. Only status verified with ok true means the log was checked and is intact. Status not_evaluated with ok false means part of the log was never checked, so its integrity is unknown and must not be reported as verified; entries_unchecked says how much. Errors mean the chain is broken or absent."
48
+ "chap.audit.submit_to_scitt": "Build COSE_Sign1-shaped statements for a range of audit entries and submit them to the configured SCITT transparency service. Where none is configured the statements are returned for submission out of band.",
49
+ "chap.audit.verify_receipt": "Verify a SCITT receipt through the configured verifier. Verification fails closed where no verifier is configured.",
50
+ "chap.audit.verify_chain": "Replay a workspace's prev-hash chain. Only status verified with ok true means the log was checked and is intact. Status not_evaluated with ok false means part of the log was never checked, so its integrity is unknown and must not be reported as verified; entries_unchecked says how much. An error means the chain is broken or absent."
51
51
  };
52
52
  export {
53
53
  TOOL_DESCRIPTIONS
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tools.ts"],"sourcesContent":["/**\n * @brightbeamai/chap-coordinator-mcp/tools\n *\n * One-line descriptions for each CHAP method exposed as an MCP tool.\n * These show up in MCP-client UIs (Claude Desktop, Cursor, etc.) and\n * are what the LLM reads when deciding whether to call the tool.\n * Tuned for clarity over brevity.\n */\n\nexport const TOOL_DESCRIPTIONS: Record<string, string> = {\n // Core\n \"chap.workspace.create\":\n \"Create a new CHAP workspace where humans and agents can collaborate on tasks. \" +\n \"Returns the workspace id.\",\n\n \"chap.workspace.describe\":\n \"Get the current state of a workspace: members, profiles, audit length, task and override counts.\",\n\n \"chap.workspace.set_profiles\":\n \"Change which CHAP profiles are enabled on a workspace.\",\n\n \"chap.participant.join\":\n \"Add a participant (human, agent, or service) to a workspace.\",\n\n \"chap.participant.leave\":\n \"Remove a participant from a workspace.\",\n\n \"chap.task.create\":\n \"Create a new task in a workspace. Tasks are units of work assigned to a participant. \" +\n \"Pass routing_hints (criticality, deadline) to inform later routing decisions.\",\n\n \"chap.task.update\":\n \"Update a task's state (e.g. in_progress, declined, paused). Only legal transitions are accepted.\",\n\n \"chap.task.complete\":\n \"Mark a task as completed, attaching the output artefact. Use chap.review.request afterwards if review is required.\",\n\n \"chap.audit.read\":\n \"Read entries from a workspace's audit log. Supports a sequence-number range and a filter by method, sender, or task id.\",\n\n // review/1.0\n \"chap.review.request\":\n \"Open a review on a completed task. Pass one or more reviewers in 'to' and the draft artefact. \" +\n \"The reviewers then call chap.decide.approve / .reject / .override or chap.abstain.declare.\",\n\n \"chap.decide.approve\":\n \"Approve a task that's under review. Resolves the review and marks the task completed.\",\n\n \"chap.decide.reject\":\n \"Reject a task that's under review. Pass request_revision: true to send it back to in_progress instead of declined.\",\n\n \"chap.decide.override\":\n \"Apply an RFC 6902 JSON Patch to the artefact under review and accept the result. \" +\n \"Carries a structured override artefact: diff + rationale + tags. \" +\n \"This is the structured-override-as-learning-signal mechanism that distinguishes CHAP from approve/reject-only workflows.\",\n\n \"chap.abstain.declare\":\n \"Decline to review a task with a reason (e.g. conflict_of_interest). The task transitions to abstained.\",\n\n \"chap.escalate.raise\":\n \"Create a new task that supersedes the original, typically assigned to a more senior reviewer. \" +\n \"Use when the current reviewer cannot decide.\",\n\n // whisper/1.0\n \"chap.whisper.ask\":\n \"Pose a deadline-bound question to one or more participants. Carries a default that's applied if the deadline lapses. \" +\n \"Use for quick clarifications that shouldn't block a task indefinitely.\",\n\n \"chap.whisper.answer\":\n \"Answer a previously asked whisper. If the whisper had options, answer_option must be one of them.\",\n\n // deliberation/1.0\n \"chap.deliberate.open\":\n \"Open a multi-participant deliberation with a voting rule (any_one_approves, all_approve, quorum:N, weighted_vote:T, weighted_vote_with_veto:T).\",\n\n \"chap.deliberate.comment\":\n \"Add a comment to an open deliberation.\",\n\n \"chap.deliberate.vote\":\n \"Cast a vote (yea / nay / abstain) in a deliberation. Each voter votes at most once.\",\n\n \"chap.deliberate.close\":\n \"Close a deliberation and compute the outcome based on its voting rule.\",\n\n // handoff/1.0\n \"chap.handoff.propose\":\n \"Propose handing off one or more open tasks to another participant. Recipient may be a single URI or a group:... URI.\",\n\n \"chap.handoff.accept\":\n \"Accept a previously proposed handoff. The accepted tasks are reassigned to the accepting participant.\",\n\n \"chap.handoff.decline\":\n \"Decline a previously proposed handoff. Optionally suggest a different target.\",\n\n // control/1.0\n \"chap.control.pause\":\n \"Pause work, scoped to a single task, a participant, or the whole workspace.\",\n\n \"chap.control.resume\":\n \"Resume previously paused work.\",\n\n \"chap.control.cancel\":\n \"Cancel a task that is not yet terminal.\",\n\n \"chap.control.snapshot\":\n \"Capture the current workspace state as an artefact (members, open tasks, mode ceiling, etc.). Used as the rollback target.\",\n\n \"chap.control.rollback\":\n \"Roll the workspace back to a previously captured snapshot. Specify what_to_restore to scope the rollback.\",\n\n \"chap.control.supersede\":\n \"Mark a task superseded by a new successor task in one envelope. Use when a task needs to be replaced wholesale rather than re-routed.\",\n\n \"chap.control.set_mode_ceiling\":\n \"Set the maximum operating mode allowed in the workspace (shadow, trial, production). Tasks requesting higher modes are rejected.\",\n\n // routing/1.0\n \"chap.task.route\":\n \"Pick an assignee for a task from a list of candidates. Produces a route_decision artefact recording the policy used.\",\n\n \"chap.review.depth\":\n \"Decide the review depth for a task (skip / spot_check / full) based on routing hints. Produces a route_decision artefact.\",\n\n \"chap.escalate.auto\":\n \"Evaluate whether a task should be auto-escalated based on its routing hints (criticality, confidence). Produces a route_decision artefact.\",\n\n // security-signed/1.0\n \"chap.participant.rotate_key\":\n \"Rotate a participant's signing key. The old key remains valid for verifying historical envelopes via valid_until.\",\n\n \"chap.participant.revoke_key\":\n \"Revoke a signing key (e.g. on suspected compromise). Envelopes signed with the revoked key after revoke time are rejected.\",\n\n // audit-scitt/1.0\n \"chap.audit.submit_to_scitt\":\n \"Build COSE_Sign1-shaped audit statements for a range of envelopes and submit them to the configured SCITT transparency service.\",\n\n \"chap.audit.verify_receipt\":\n \"Verify a SCITT receipt against the configured verifier.\",\n\n \"chap.audit.verify_chain\":\n \"Verify the local prev-hash chain across a workspace's audit log. Only status verified with ok true means the log was checked and is intact. Status not_evaluated with ok false means part of the log was never checked, so its integrity is unknown and must not be reported as verified; entries_unchecked says how much. Errors mean the chain is broken or absent.\",\n};\n"],"mappings":";AASO,IAAM,oBAA4C;AAAA;AAAA,EAEvD,yBACE;AAAA,EAGF,2BACE;AAAA,EAEF,+BACE;AAAA,EAEF,yBACE;AAAA,EAEF,0BACE;AAAA,EAEF,oBACE;AAAA,EAGF,oBACE;AAAA,EAEF,sBACE;AAAA,EAEF,mBACE;AAAA;AAAA,EAGF,uBACE;AAAA,EAGF,uBACE;AAAA,EAEF,sBACE;AAAA,EAEF,wBACE;AAAA,EAIF,wBACE;AAAA,EAEF,uBACE;AAAA;AAAA,EAIF,oBACE;AAAA,EAGF,uBACE;AAAA;AAAA,EAGF,wBACE;AAAA,EAEF,2BACE;AAAA,EAEF,wBACE;AAAA,EAEF,yBACE;AAAA;AAAA,EAGF,wBACE;AAAA,EAEF,uBACE;AAAA,EAEF,wBACE;AAAA;AAAA,EAGF,sBACE;AAAA,EAEF,uBACE;AAAA,EAEF,uBACE;AAAA,EAEF,yBACE;AAAA,EAEF,yBACE;AAAA,EAEF,0BACE;AAAA,EAEF,iCACE;AAAA;AAAA,EAGF,mBACE;AAAA,EAEF,qBACE;AAAA,EAEF,sBACE;AAAA;AAAA,EAGF,+BACE;AAAA,EAEF,+BACE;AAAA;AAAA,EAGF,8BACE;AAAA,EAEF,6BACE;AAAA,EAEF,2BACE;AACJ;","names":[]}
1
+ {"version":3,"sources":["../src/tools.ts"],"sourcesContent":["/**\n * @brightbeamai/chap-coordinator-mcp/tools\n *\n * Tool-level descriptions for each CHAP method exposed over MCP. A\n * client shows these in its UI and reads them when choosing a tool, so\n * each states what the method does and the one consequence a caller\n * most needs to know before calling it. Parameter-level detail belongs\n * in schemas.ts.\n */\n\nexport const TOOL_DESCRIPTIONS: Record<string, string> = {\n // Core\n \"chap.workspace.create\":\n \"Create a workspace: the container for the participants, tasks and audit log of one piece of collaborative work. \" +\n \"Returns the workspace id, which every later call carries.\",\n\n \"chap.workspace.describe\":\n \"Report the current state of a workspace: its members, enabled profiles, audit length, and task and override counts.\",\n\n \"chap.workspace.set_profiles\":\n \"Replace the set of profiles enabled on a workspace. \" +\n \"Enabling audit-scitt/1.0 on a workspace that already has entries leaves those entries outside the hash chain.\",\n\n \"chap.participant.join\":\n \"Add a participant to a workspace. The type given, human, agent, service, group or workspace, \" +\n \"decides whether they are eligible to review work that requires it.\",\n\n \"chap.participant.leave\":\n \"Remove a participant from a workspace. Entries they have already written stay in the audit log.\",\n\n \"chap.task.create\":\n \"Create a task: a unit of work assigned to one participant. \" +\n \"Set review_required to make the task's completion depend on a reviewer decision rather than on the assignee.\",\n\n \"chap.task.update\":\n \"Move a task to a new state. Only the transitions in the specification's lifecycle table are accepted, \" +\n \"and a task that requires review cannot be completed here.\",\n\n \"chap.task.complete\":\n \"Submit a task's output. A task that requires review does not complete: the output is held as the artefact \" +\n \"under review, the task moves to review_requested, and a reviewer decision completes it. \" +\n \"Any other task completes immediately.\",\n\n \"chap.audit.read\":\n \"Read entries from a workspace's audit log, optionally within a sequence range and filtered by method, sender or task.\",\n\n // review/1.0\n \"chap.review.request\":\n \"Open a review on a task and address it to one or more reviewers. \" +\n \"They then call chap.decide.approve, chap.decide.reject, chap.decide.override or chap.abstain.declare. \" +\n \"Repeating the request with the same artefact adds reviewers to the open review.\",\n\n \"chap.decide.approve\":\n \"Approve the artefact under review. The task completes once the review's rule is satisfied.\",\n\n \"chap.decide.reject\":\n \"Reject the artefact under review. The task is declined, or returns to in_progress if request_revision is set.\",\n\n \"chap.decide.override\":\n \"Correct the artefact under review with an RFC 6902 JSON Patch and accept the result. \" +\n \"The patch, the rationale and any tags are recorded together, so the audit log holds what was changed and why, \" +\n \"rather than only that the work was not accepted as written.\",\n\n \"chap.abstain.declare\":\n \"Stand aside from a review, giving a reason and a category. The task moves to abstained.\",\n\n \"chap.escalate.raise\":\n \"Hand a task upwards. The original moves to escalated and is linked to a new task opened for whoever takes it on. \" +\n \"The successor starts with an empty input unless one is supplied.\",\n\n // whisper/1.0\n \"chap.whisper.ask\":\n \"Put one question to one or more participants, with a deadline and a default. \" +\n \"If the deadline passes unanswered the default applies, so a task is never blocked waiting on a reply.\",\n\n \"chap.whisper.answer\":\n \"Answer an open whisper. Where the question carried options, the answer must name one of them.\",\n\n // deliberation/1.0\n \"chap.deliberate.open\":\n \"Open a deliberation among several participants under a stated voting rule: \" +\n \"any_one_approves, all_approve, quorum:N, weighted_vote:T or weighted_vote_with_veto:T.\",\n\n \"chap.deliberate.comment\":\n \"Record a comment on an open deliberation, so the reasoning is on the audit log alongside the votes.\",\n\n \"chap.deliberate.vote\":\n \"Cast a yea, nay or abstain in an open deliberation. Each participant votes once.\",\n\n \"chap.deliberate.close\":\n \"Close a deliberation and compute its outcome from the votes cast under its rule.\",\n\n // handoff/1.0\n \"chap.handoff.propose\":\n \"Propose handing one or more tasks to another participant or a group, with the context needed to pick them up. \" +\n \"Every task must currently be assigned to the proposer.\",\n\n \"chap.handoff.accept\":\n \"Accept a proposed handoff. The accepted tasks are reassigned to the accepting participant.\",\n\n \"chap.handoff.decline\":\n \"Decline a proposed handoff, with a reason and optionally a suggestion of who should take it instead.\",\n\n // control/1.0\n \"chap.control.pause\":\n \"Pause work. Scoped to a task it moves that task to paused; to a participant it stops new tasks being assigned to them; \" +\n \"to the workspace it refuses every method except describing, reading the audit log, joining, leaving and resuming.\",\n\n \"chap.control.resume\":\n \"Resume work paused at the same scope: a task returns to in_progress, a participant can be assigned tasks again, \" +\n \"a workspace returns to active.\",\n\n \"chap.control.cancel\":\n \"Cancel a task. Cancelled is terminal, and a task that has already settled cannot be cancelled.\",\n\n \"chap.control.snapshot\":\n \"Capture the workspace state as an artefact and return its id, which chap.control.rollback takes as its target.\",\n\n \"chap.control.rollback\":\n \"Restore workspace state from a snapshot. The mode ceiling and member roles are restored; \" +\n \"the rollback is appended to the audit log rather than rewriting it.\",\n\n \"chap.control.supersede\":\n \"Replace a task with a successor in one call. The original moves to superseded and stays linked to its replacement.\",\n\n \"chap.control.set_mode_ceiling\":\n \"Set the highest operating mode tasks in this workspace may request. A task above the ceiling is refused.\",\n\n // routing/1.0\n \"chap.task.route\":\n \"Choose an assignee for a task from a list of candidates and record a route_decision artefact \" +\n \"naming the policy, the candidate chosen, and the alternatives it passed over.\",\n\n \"chap.review.depth\":\n \"Decide how much review a task warrants, skip, spot_check or full, from its routing hints. \" +\n \"Records a route_decision artefact giving the rule that produced the answer.\",\n\n \"chap.escalate.auto\":\n \"Evaluate a task's routing hints against the escalation policy and report whether it should be escalated, and to whom. \" +\n \"Records a route_decision artefact.\",\n\n // security-signed/1.0\n \"chap.participant.rotate_key\":\n \"Retire a participant's signing key and register its replacement. \" +\n \"The old key stays in the key history with a valid_until timestamp, so envelopes it signed still verify.\",\n\n \"chap.participant.revoke_key\":\n \"Revoke a signing key, for example after a device is lost. Signatures presented with it are refused from then on. \" +\n \"Revoking another participant's key requires the admin role.\",\n\n // audit-scitt/1.0\n \"chap.audit.submit_to_scitt\":\n \"Build COSE_Sign1-shaped statements for a range of audit entries and submit them to the configured SCITT transparency service. \" +\n \"Where none is configured the statements are returned for submission out of band.\",\n\n \"chap.audit.verify_receipt\":\n \"Verify a SCITT receipt through the configured verifier. Verification fails closed where no verifier is configured.\",\n\n \"chap.audit.verify_chain\":\n \"Replay a workspace's prev-hash chain. Only status verified with ok true means the log was checked and is intact. \" +\n \"Status not_evaluated with ok false means part of the log was never checked, so its integrity is unknown and must not \" +\n \"be reported as verified; entries_unchecked says how much. An error means the chain is broken or absent.\",\n};\n"],"mappings":";AAUO,IAAM,oBAA4C;AAAA;AAAA,EAEvD,yBACE;AAAA,EAGF,2BACE;AAAA,EAEF,+BACE;AAAA,EAGF,yBACE;AAAA,EAGF,0BACE;AAAA,EAEF,oBACE;AAAA,EAGF,oBACE;AAAA,EAGF,sBACE;AAAA,EAIF,mBACE;AAAA;AAAA,EAGF,uBACE;AAAA,EAIF,uBACE;AAAA,EAEF,sBACE;AAAA,EAEF,wBACE;AAAA,EAIF,wBACE;AAAA,EAEF,uBACE;AAAA;AAAA,EAIF,oBACE;AAAA,EAGF,uBACE;AAAA;AAAA,EAGF,wBACE;AAAA,EAGF,2BACE;AAAA,EAEF,wBACE;AAAA,EAEF,yBACE;AAAA;AAAA,EAGF,wBACE;AAAA,EAGF,uBACE;AAAA,EAEF,wBACE;AAAA;AAAA,EAGF,sBACE;AAAA,EAGF,uBACE;AAAA,EAGF,uBACE;AAAA,EAEF,yBACE;AAAA,EAEF,yBACE;AAAA,EAGF,0BACE;AAAA,EAEF,iCACE;AAAA;AAAA,EAGF,mBACE;AAAA,EAGF,qBACE;AAAA,EAGF,sBACE;AAAA;AAAA,EAIF,+BACE;AAAA,EAGF,+BACE;AAAA;AAAA,EAIF,8BACE;AAAA,EAGF,6BACE;AAAA,EAEF,2BACE;AAGJ;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brightbeamai/chap-coordinator-mcp",
3
- "version": "0.2.11",
3
+ "version": "0.2.13",
4
4
  "description": "MCP server adapter for the CHAP Coordinator. Exposes every CHAP method as an MCP tool.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Brightbeam AI <oss@brightbeam.com>",
@@ -65,12 +65,14 @@
65
65
  "prepublishOnly": "npm run typecheck && npm run test && npm run build"
66
66
  },
67
67
  "dependencies": {
68
- "@brightbeamai/chap-coordinator": "^0.2.10",
69
- "@modelcontextprotocol/sdk": "^1.30.0"
68
+ "@brightbeamai/chap-coordinator": "^0.2.13",
69
+ "@modelcontextprotocol/sdk": "^1.30.0",
70
+ "zod": "^3.25 || ^4.0"
70
71
  },
71
72
  "devDependencies": {
72
73
  "@brightbeamai/chap-coordinator": "file:../coordinator",
73
74
  "@modelcontextprotocol/sdk": "^1.30.0",
75
+ "zod": "^3.25 || ^4.0",
74
76
  "@types/node": "^20.11.0",
75
77
  "tsup": "^8.5.1",
76
78
  "tsx": "^4.7.0",