@vess-id/vess 0.16.0-alpha.3 → 0.16.0-alpha.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.
@@ -1,7 +1,7 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { ReauthRequiredExecutionInfo } from '../../core/types';
3
- export declare const CALL_TOOL_DESCRIPTION = "Execute an action on an external service or local resource on behalf of the user.\nThis is the PRIMARY tool \u2014 always use this to perform actions. Permission is handled automatically:\n- Read-type actions (low risk) are auto-approved and execute immediately.\n- Write-type actions that need approval will return an approval_required response. Re-call with the approval parameter to confirm or deny.\nDo NOT call aidentity_request_permission first; just call this tool directly.\n\nSupported tools and common actions:\n\n**os** \u2014 Read/write local secret files (.env, credentials, etc.)\n Actions: os.secret.read, os.secret.write\n Example: tool=\"os\", action=\"os.secret.read\", parameters={\"file_path\": \"~/projects/app/.env\"}\n\n**slack** \u2014 Post/read/update/delete messages, list channels, get user info.\n Common actions: slack.message.post, slack.message.read, slack.channel.read, slack.batch.read\n The \"channel\" parameter accepts channel ID (e.g. \"C0A159PP6QM\"), channel name (e.g. \"general\"), or #-prefixed name (e.g. \"#general\"). Responses are compact by default (essential fields only). Set compact=false for full Slack API response.\n Example: tool=\"slack\", action=\"slack.message.post\", parameters={\"channel\": \"C01ABCD2EFG\", \"text\": \"Hello!\"}\n Example: tool=\"slack\", action=\"slack.message.read\", parameters={\"channel\": \"C01ABCD2EFG\", \"limit\": 10}\n\n**github** \u2014 Create/read/update/list issues, pull requests, repositories, contents, labels, Actions workflows, stars, users, notifications and gists.\n Common actions: github.issue.create, github.issue.list, github.issue.read, github.issue.search, github.issue.comment.create, github.pr.create, github.pr.list, github.pr.read, github.pr.merge, github.repo.search, github.content.get, github.content.createOrUpdate, github.branch.list, github.branch.create, github.commit.list, github.code.search, github.repo.create, github.repo.fork, github.label.list, github.label.write, github.workflow.list, github.workflow.run, github.workflow.jobLogs.get, github.repo.starred.list, github.repo.star, github.user.me.get, github.org.teams.list, github.team.members.list, github.user.search, github.notification.list, github.notification.get, github.notification.markRead, github.notification.markAllRead, github.gist.create, github.gist.get, github.gist.list, github.gist.update\n Example: tool=\"github\", action=\"github.issue.create\", parameters={\"owner\": \"org\", \"repo\": \"repo\", \"title\": \"Bug report\", \"body\": \"Details...\"}\n Example: tool=\"github\", action=\"github.pr.create\", parameters={\"owner\": \"org\", \"repo\": \"repo\", \"title\": \"Fix bug\", \"head\": \"feature-branch\", \"base\": \"main\"}\n Example: tool=\"github\", action=\"github.content.get\", parameters={\"owner\": \"org\", \"repo\": \"repo\", \"path\": \"README.md\"}\n\n**jira** \u2014 Manage issues, projects, boards, sprints.\n Common actions: jira.issue.create, jira.issue.search, jira.project.read\n\n**gmail** \u2014 Search/read/send/draft/delete emails, list labels.\n Common actions: gmail.message.search, gmail.message.read, gmail.message.send, gmail.draft.create, gmail.label.read\n Example (new email): tool=\"gmail\", action=\"gmail.message.send\", parameters={\"to\": \"user@example.com\", \"subject\": \"Hello\", \"body\": \"Message content\"}\n Example (draft): tool=\"gmail\", action=\"gmail.draft.create\", parameters={\"to\": \"user@example.com\", \"subject\": \"Draft subject\", \"body\": \"Draft content\"}\n Example (search): tool=\"gmail\", action=\"gmail.message.search\", parameters={\"query\": \"from:boss subject:urgent\"}\n **Replying to emails**: When replying, you MUST include threading parameters to ensure the reply is properly threaded:\n 1. First read the original message with gmail.message.read to get its threadId and Message-ID header (look for {name: \"Message-ID\", value: \"...\"} in the payload.headers array).\n 2. Then send with: threadId (from the read response top-level field), inReplyTo (the Message-ID header value), references (space-separated Message-IDs for the full thread chain; for a first reply, just the single Message-ID).\n Example (reply): tool=\"gmail\", action=\"gmail.message.send\", parameters={\"to\": \"sender@example.com\", \"subject\": \"Re: Original Subject\", \"body\": \"Reply content\", \"threadId\": \"18e1234abcd\", \"inReplyTo\": \"<CABx...@mail.gmail.com>\", \"references\": \"<CABx...@mail.gmail.com>\"}\n\n**calendar** \u2014 List/create/update/delete Google Calendar events.\n Common actions: calendar.event.list, calendar.event.create\n IMPORTANT: start and end MUST be objects with dateTime property, not flat strings.\n Example: tool=\"calendar\", action=\"calendar.event.create\", parameters={\"summary\": \"Meeting\", \"start\": {\"dateTime\": \"2026-07-15T10:00:00\", \"timeZone\": \"Asia/Tokyo\"}, \"end\": {\"dateTime\": \"2026-07-15T11:00:00\", \"timeZone\": \"Asia/Tokyo\"}}\n Example (with Google Meet): tool=\"calendar\", action=\"calendar.event.create\", parameters={\"summary\": \"Sync\", \"start\": {\"dateTime\": \"2026-07-15T10:00:00\", \"timeZone\": \"Asia/Tokyo\"}, \"end\": {\"dateTime\": \"2026-07-15T10:30:00\", \"timeZone\": \"Asia/Tokyo\"}, \"attendees\": [{\"email\": \"them@example.com\"}], \"addMeet\": true, \"meetRequestId\": \"<stable unique id>\"}\n To add a Google Meet link, use addMeet/meetRequestId \u2014 raw conferenceData/conferenceDataVersion parameters are NOT supported and will be ignored.\n\n**hubspot** \u2014 Read/search/create CRM objects (contacts, companies, deals), properties, associations, engagements.\n Common actions: hubspot.crm.objects.search, hubspot.crm.objects.list, hubspot.crm.objects.batchCreate, hubspot.crm.properties.list, hubspot.crm.engagements.create, hubspot.crm.associations.list, hubspot.account.userDetails.get\n Most CRM actions require an \"objectType\" parameter (e.g. \"contacts\", \"companies\", \"deals\", or a custom object type ID).\n Example (search): tool=\"hubspot\", action=\"hubspot.crm.objects.search\", parameters={\"objectType\": \"contacts\", \"query\": \"acme\"}\n Example (create): tool=\"hubspot\", action=\"hubspot.crm.objects.batchCreate\", parameters={\"objectType\": \"contacts\", \"inputs\": [{\"properties\": {\"email\": \"jane@example.com\", \"firstname\": \"Jane\"}}]}\n For hubspot.crm.engagements.create use parameter key \"type\" (not \"engagementType\"); values \"NOTE\"/\"TASK\". ownerId comes from hubspot.account.userDetails.get.\n\n**scheduling / inbox** \u2014 Meeting-time negotiation and task requests between users (signed as verifiable credentials).\n Common actions: scheduling.request, inbox.check, inbox.respond, inbox.complete, inbox.send\n Scheduling routing: if the user gives a specific agreed meeting time, create the calendar\n event directly (calendar.event.create). If the time is NOT yet agreed and needs coordination\n with the other person (\"\u65E5\u7A0B\u8ABF\u6574\", \"find a time with X\"), do NOT create the event \u2014 compute\n candidate slots from calendar.event.list first, then call scheduling.request with them.\n\n There are TWO roles \u2014 act according to which side you are on:\n - Requester flow (you initiate): scheduling.request sends candidate slots. The counterpart's\n human-approved response arrives in YOUR inbox.check as an item with role: \"sent\". BRANCH ON status:\n \u2022 status \"completed\": the meeting was ALREADY auto-confirmed and booked server-side \u2014 the item\n carries a calendarEventId and htmlLink (Google Meet link). You are DONE: do NOT call\n calendar.event.create (it would create a duplicate). Just tell the user the confirmed date/time\n and the Meet link. (When the sender's delegation policy authorizes it, the server confirms and\n books automatically the moment the counterpart approves; otherwise the item stays \"processing\".)\n \u2022 status \"processing\": awaiting manual confirmation \u2014 confirm the chosen slot with the user, create\n the calendar event with calendar.event.create (add the counterpart to attendees to send the Google\n Calendar invite), then call inbox.complete. Set addMeet: true and meetRequestId to the inbox item id\n (idempotent \u2014 retries won't mint duplicate Meets) for the Meet link. A \"processing\" item can be\n auto-confirmed right after you observe it, so re-check before booking and never race ahead.\n \u2022 status \"declined\": inform the user and do not book \u2014 the negotiation is over.\n - Recipient flow (someone sent YOU a request): it appears in inbox.check with role: \"received\" \u2192\n confirm with the user \u2192 reply with inbox.respond. That is the end of your job.\n Do NOT create a calendar event when you are the recipient \u2014 the sender books it (or the server\n auto-confirms it under the sender's delegation) and you will receive a calendar invite.\n When a received scheduling request surfaces, do not just list the candidates \u2014 in the same turn,\n check the user's calendar (calendar.event.list over the candidate windows), determine which\n candidates are free, and present: the request summary, which slots are open, your recommended\n slot, and a confirmation question. Only call inbox.respond after the user confirms.\n\n inbox.check results are point-in-time \u2014 when the user asks about responses or new requests,\n ALWAYS call inbox.check again; never answer from a previous check result.\n\n Example: tool=\"scheduling\", action=\"scheduling.request\", parameters={\"to\": \"them@example.com\", \"topic\": \"sync\", \"durationMinutes\": 30, \"candidates\": [{\"start\": \"2026-06-12T10:00:00+09:00\", \"end\": \"2026-06-12T10:30:00+09:00\"}]}\n The response includes a schedulingUrl \u2014 always show it to the user so it can be shared via another channel if needed (the notification email is sent automatically but may not arrive).\n inbox.send is the low-level primitive for other task types.\n Example: tool=\"inbox\", action=\"inbox.check\", parameters={}\n Example (recipient responds to a request): tool=\"inbox\", action=\"inbox.respond\", parameters={\"id\": \"<inbox item id from inbox.check>\", \"action\": \"accept\", \"data\": {\"selectedSlot\": {\"start\": \"2026-06-18T14:00:00+09:00\", \"end\": \"2026-06-18T15:00:00+09:00\"}}}\n Example (requester completes after booking): tool=\"inbox\", action=\"inbox.complete\", parameters={\"id\": \"<inbox item id>\", \"result\": {\"calendarEventId\": \"...\", \"meetUrl\": \"...\"}}\n\nCall aidentity_list_available_tools for detailed parameter schemas of each action.";
4
- export declare const SERVER_INSTRUCTIONS = "This server provides identity-verified tool execution (VESS AIDENTITY).\nScheduling: if the user gives a specific agreed time, create the calendar event\ndirectly. If the time is not yet agreed (\"\u65E5\u7A0B\u8ABF\u6574\", \"find a time\"), compute candidate\nslots from the user's calendar and call scheduling.request, then wait for the response.\nSize candidateWindow to the user's intent: a specific named day \u2192 that day only; an open\nrequest (\"next week\", \"\u5E73\u65E5\u3067\") \u2192 a candidateWindow spanning multiple business days, so the\nserver can spread candidates across days rather than clustering them in one.\nAt session start, call inbox.check once to surface pending task requests (role \"received\") AND\nresponses to your own requests (role \"sent\"). As the requester, branch on the sent item's status:\n\"completed\" means the server already auto-confirmed and booked it (calendarEventId + Meet link\npresent) \u2014 do NOT create the event again, just tell the user the confirmed time and Meet link;\n\"processing\" means confirm with the user, then create the event (adding the counterpart to\nattendees) and call inbox.complete. As the recipient, reply with inbox.respond and stop \u2014\ndo not create the calendar event; the sender books it (or the server auto-confirms it under the\nsender's delegation) and you will receive a calendar invite.\nAs the recipient, do not just list the candidates \u2014 in the same turn check the user's calendar over\nthe candidate windows, determine which slots are free, and present the request summary, the open slots,\nyour recommended slot, and a confirmation question; only call inbox.respond after the user confirms.\ninbox.check results are point-in-time \u2014 when the user asks about responses or new requests,\nALWAYS call inbox.check again; never answer from a previous check result.\nTask requests/responses are signed as verifiable credentials.";
3
+ export declare const CALL_TOOL_DESCRIPTION = "Execute an action on an external service or local resource on behalf of the user.\nThis is the PRIMARY tool \u2014 always use this to perform actions. Permission is handled automatically:\n- Read-type actions (low risk) are auto-approved and execute immediately.\n- Write-type actions that need approval will return an approval_required response. Re-call with the approval parameter to confirm or deny.\nDo NOT call aidentity_request_permission first; just call this tool directly.\n\nSupported tools and common actions:\n\n**os** \u2014 Read/write local secret files (.env, credentials, etc.)\n Actions: os.secret.read, os.secret.write\n Example: tool=\"os\", action=\"os.secret.read\", parameters={\"file_path\": \"~/projects/app/.env\"}\n\n**slack** \u2014 Post/read/update/delete messages, list channels, get user info.\n Common actions: slack.message.post, slack.message.read, slack.channel.read, slack.batch.read\n The \"channel\" parameter accepts channel ID (e.g. \"C0A159PP6QM\"), channel name (e.g. \"general\"), or #-prefixed name (e.g. \"#general\"). Responses are compact by default (essential fields only). Set compact=false for full Slack API response.\n Example: tool=\"slack\", action=\"slack.message.post\", parameters={\"channel\": \"C01ABCD2EFG\", \"text\": \"Hello!\"}\n Example: tool=\"slack\", action=\"slack.message.read\", parameters={\"channel\": \"C01ABCD2EFG\", \"limit\": 10}\n\n**github** \u2014 Create/read/update/list issues, pull requests, repositories, contents, labels, Actions workflows, stars, users, notifications and gists.\n Common actions: github.issue.create, github.issue.list, github.issue.read, github.issue.search, github.issue.comment.create, github.pr.create, github.pr.list, github.pr.read, github.pr.merge, github.repo.search, github.content.get, github.content.createOrUpdate, github.branch.list, github.branch.create, github.commit.list, github.code.search, github.repo.create, github.repo.fork, github.label.list, github.label.write, github.workflow.list, github.workflow.run, github.workflow.jobLogs.get, github.repo.starred.list, github.repo.star, github.user.me.get, github.org.teams.list, github.team.members.list, github.user.search, github.notification.list, github.notification.get, github.notification.markRead, github.notification.markAllRead, github.gist.create, github.gist.get, github.gist.list, github.gist.update\n Example: tool=\"github\", action=\"github.issue.create\", parameters={\"owner\": \"org\", \"repo\": \"repo\", \"title\": \"Bug report\", \"body\": \"Details...\"}\n Example: tool=\"github\", action=\"github.pr.create\", parameters={\"owner\": \"org\", \"repo\": \"repo\", \"title\": \"Fix bug\", \"head\": \"feature-branch\", \"base\": \"main\"}\n Example: tool=\"github\", action=\"github.content.get\", parameters={\"owner\": \"org\", \"repo\": \"repo\", \"path\": \"README.md\"}\n\n**jira** \u2014 Manage issues, projects, boards, sprints.\n Common actions: jira.issue.create, jira.issue.search, jira.project.read\n\n**gmail** \u2014 Search/read/send/draft/delete emails, list labels.\n Common actions: gmail.message.search, gmail.message.read, gmail.message.send, gmail.draft.create, gmail.label.read\n Example (new email): tool=\"gmail\", action=\"gmail.message.send\", parameters={\"to\": \"user@example.com\", \"subject\": \"Hello\", \"body\": \"Message content\"}\n Example (draft): tool=\"gmail\", action=\"gmail.draft.create\", parameters={\"to\": \"user@example.com\", \"subject\": \"Draft subject\", \"body\": \"Draft content\"}\n Example (search): tool=\"gmail\", action=\"gmail.message.search\", parameters={\"query\": \"from:boss subject:urgent\"}\n **Replying to emails**: When replying, you MUST include threading parameters to ensure the reply is properly threaded:\n 1. First read the original message with gmail.message.read to get its threadId and Message-ID header (look for {name: \"Message-ID\", value: \"...\"} in the payload.headers array).\n 2. Then send with: threadId (from the read response top-level field), inReplyTo (the Message-ID header value), references (space-separated Message-IDs for the full thread chain; for a first reply, just the single Message-ID).\n Example (reply): tool=\"gmail\", action=\"gmail.message.send\", parameters={\"to\": \"sender@example.com\", \"subject\": \"Re: Original Subject\", \"body\": \"Reply content\", \"threadId\": \"18e1234abcd\", \"inReplyTo\": \"<CABx...@mail.gmail.com>\", \"references\": \"<CABx...@mail.gmail.com>\"}\n\n**calendar** \u2014 List/create/update/delete Google Calendar events.\n Common actions: calendar.event.list, calendar.event.create\n IMPORTANT: start and end MUST be objects with dateTime property, not flat strings.\n Example: tool=\"calendar\", action=\"calendar.event.create\", parameters={\"summary\": \"Meeting\", \"start\": {\"dateTime\": \"2026-07-15T10:00:00\", \"timeZone\": \"Asia/Tokyo\"}, \"end\": {\"dateTime\": \"2026-07-15T11:00:00\", \"timeZone\": \"Asia/Tokyo\"}}\n Example (with Google Meet): tool=\"calendar\", action=\"calendar.event.create\", parameters={\"summary\": \"Sync\", \"start\": {\"dateTime\": \"2026-07-15T10:00:00\", \"timeZone\": \"Asia/Tokyo\"}, \"end\": {\"dateTime\": \"2026-07-15T10:30:00\", \"timeZone\": \"Asia/Tokyo\"}, \"attendees\": [{\"email\": \"them@example.com\"}], \"addMeet\": true, \"meetRequestId\": \"<stable unique id>\"}\n To add a Google Meet link, use addMeet/meetRequestId \u2014 raw conferenceData/conferenceDataVersion parameters are NOT supported and will be ignored.\n\n**hubspot** \u2014 Read/search/create CRM objects (contacts, companies, deals), properties, associations, engagements.\n Common actions: hubspot.crm.objects.search, hubspot.crm.objects.list, hubspot.crm.objects.batchCreate, hubspot.crm.properties.list, hubspot.crm.engagements.create, hubspot.crm.associations.list, hubspot.account.userDetails.get\n Most CRM actions require an \"objectType\" parameter (e.g. \"contacts\", \"companies\", \"deals\", or a custom object type ID).\n Example (search): tool=\"hubspot\", action=\"hubspot.crm.objects.search\", parameters={\"objectType\": \"contacts\", \"query\": \"acme\"}\n Example (create): tool=\"hubspot\", action=\"hubspot.crm.objects.batchCreate\", parameters={\"objectType\": \"contacts\", \"inputs\": [{\"properties\": {\"email\": \"jane@example.com\", \"firstname\": \"Jane\"}}]}\n For hubspot.crm.engagements.create use parameter key \"type\" (not \"engagementType\"); values \"NOTE\"/\"TASK\". ownerId comes from hubspot.account.userDetails.get.\n\n**linear** \u2014 Linear issue tracker with full CRUD for issues, comments, projects, and more.\n Issue operations: linear.issue.list, linear.issue.read, linear.issue.search, linear.issue.create, linear.issue.update, linear.issue.archive, linear.issue.unarchive, linear.issue.delete, linear.issue.addLabel, linear.issue.removeLabel, linear.issue.subscribe\n Comment management: linear.comment.create, linear.comment.list, linear.comment.update, linear.comment.delete, linear.comment.resolve, linear.comment.unresolve\n Issue relations: linear.issueRelation.create, linear.issueRelation.list, linear.issueRelation.delete\n Cycles/Sprints: linear.cycle.list, linear.cycle.read, linear.cycle.create, linear.cycle.update\n Labels: linear.label.list, linear.label.create, linear.label.update\n Attachments: linear.attachment.create, linear.attachment.list, linear.attachment.delete\n Projects: linear.project.list, linear.project.read, linear.project.create, linear.project.update\n Other: linear.team.list, linear.workflowState.list, linear.viewer.read, linear.user.list\n Example: { \"tool\": \"linear\", \"action\": \"linear.issue.list\", \"parameters\": { \"teamId\": \"<team-id>\", \"limit\": 20 } }\n Example (create): { \"tool\": \"linear\", \"action\": \"linear.issue.create\", \"parameters\": { \"teamId\": \"<team-id>\", \"title\": \"Bug report\" } }\n Use linear.team.list to discover teamIds, and linear.workflowState.list to find valid state IDs.\n\n\n**scheduling / inbox** \u2014 Meeting-time negotiation and task requests between users (signed as verifiable credentials).\n Common actions: scheduling.request, inbox.check, inbox.respond, inbox.complete, inbox.send\n Scheduling routing: if the user gives a specific agreed meeting time, create the calendar\n event directly (calendar.event.create). If the time is NOT yet agreed and needs coordination\n with the other person (\"\u65E5\u7A0B\u8ABF\u6574\", \"find a time with X\"), do NOT create the event \u2014 compute\n candidate slots from calendar.event.list first, then call scheduling.request with them.\n\n There are TWO roles \u2014 act according to which side you are on:\n - Requester flow (you initiate): scheduling.request sends candidate slots. The counterpart's\n human-approved response arrives in YOUR inbox.check as an item with role: \"sent\". BRANCH ON status:\n \u2022 status \"completed\": the meeting was ALREADY auto-confirmed and booked server-side \u2014 the item\n carries a calendarEventId and htmlLink (Google Meet link). You are DONE: do NOT call\n calendar.event.create (it would create a duplicate). Just tell the user the confirmed date/time\n and the Meet link. (When the sender's delegation policy authorizes it, the server confirms and\n books automatically the moment the counterpart approves; otherwise the item stays \"processing\".)\n \u2022 status \"processing\": awaiting manual confirmation \u2014 confirm the chosen slot with the user, create\n the calendar event with calendar.event.create (add the counterpart to attendees to send the Google\n Calendar invite), then call inbox.complete. Set addMeet: true and meetRequestId to the inbox item id\n (idempotent \u2014 retries won't mint duplicate Meets) for the Meet link. A \"processing\" item can be\n auto-confirmed right after you observe it, so re-check before booking and never race ahead.\n \u2022 status \"declined\": inform the user and do not book \u2014 the negotiation is over.\n - Recipient flow (someone sent YOU a request): it appears in inbox.check with role: \"received\" \u2192\n confirm with the user \u2192 reply with inbox.respond. That is the end of your job.\n Do NOT create a calendar event when you are the recipient \u2014 the sender books it (or the server\n auto-confirms it under the sender's delegation) and you will receive a calendar invite.\n When a received scheduling request surfaces, do not just list the candidates \u2014 in the same turn,\n check the user's calendar (calendar.event.list over the candidate windows), determine which\n candidates are free, and present: the request summary, which slots are open, your recommended\n slot, and a confirmation question. Only call inbox.respond after the user confirms.\n\n inbox.check results are point-in-time \u2014 when the user asks about responses or new requests,\n ALWAYS call inbox.check again; never answer from a previous check result.\n\n Example: tool=\"scheduling\", action=\"scheduling.request\", parameters={\"to\": \"them@example.com\", \"topic\": \"sync\", \"durationMinutes\": 30, \"candidates\": [{\"start\": \"2026-06-12T10:00:00+09:00\", \"end\": \"2026-06-12T10:30:00+09:00\"}]}\n The response includes a schedulingUrl \u2014 always show it to the user so it can be shared via another channel if needed (the notification email is sent automatically but may not arrive).\n inbox.send is the low-level primitive for other task types.\n Example: tool=\"inbox\", action=\"inbox.check\", parameters={}\n Example (recipient responds to a request): tool=\"inbox\", action=\"inbox.respond\", parameters={\"id\": \"<inbox item id from inbox.check>\", \"action\": \"accept\", \"data\": {\"selectedSlot\": {\"start\": \"2026-06-18T14:00:00+09:00\", \"end\": \"2026-06-18T15:00:00+09:00\"}}}\n Example (requester completes after booking): tool=\"inbox\", action=\"inbox.complete\", parameters={\"id\": \"<inbox item id>\", \"result\": {\"calendarEventId\": \"...\", \"meetUrl\": \"...\"}}\n\nCall aidentity_list_available_tools for detailed parameter schemas of each action.";
4
+ export declare const SERVER_INSTRUCTIONS = "This server provides identity-verified tool execution (VESS AIDENTITY).\nScheduling: if the user gives a specific agreed time, create the calendar event\ndirectly. If the time is not yet agreed (\"\u65E5\u7A0B\u8ABF\u6574\", \"find a time\"), compute candidate\nslots from the user's calendar and call scheduling.request, then wait for the response.\nSize candidateWindow to the user's intent. candidateWindow is a { start, end } range OR an array of\nranges (max 5, total span \u2264 62 days); the server searches each range independently and spreads\ncandidates across them. A specific named day \u2192 one range for that day. A per-day time band\n(\"\u5E73\u65E5\u5348\u5F8C\") \u2192 one range PER business day ([{Mon 13-18}, {Tue 13-18}, \u2026]) so the band is honored\nevery day. Distinct bands (\"\u6708\u66DC\u5348\u524D or \u6728\u66DC\u5348\u5F8C\") \u2192 one range each. A single open stretch\n(\"next week\", \"\u5E73\u65E5\u3067\") \u2192 one wide range spanning the business days.\nAt session start, call inbox.check once to surface pending task requests (role \"received\") AND\nresponses to your own requests (role \"sent\"). As the requester, branch on the sent item's status:\n\"completed\" means the server already auto-confirmed and booked it (calendarEventId + Meet link\npresent) \u2014 do NOT create the event again, just tell the user the confirmed time and Meet link;\n\"processing\" means confirm with the user, then create the event (adding the counterpart to\nattendees) and call inbox.complete. As the recipient, reply with inbox.respond and stop \u2014\ndo not create the calendar event; the sender books it (or the server auto-confirms it under the\nsender's delegation) and you will receive a calendar invite.\nAs the recipient, do not just list the candidates \u2014 in the same turn check the user's calendar over\nthe candidate windows, determine which slots are free, and present the request summary, the open slots,\nyour recommended slot, and a confirmation question; only call inbox.respond after the user confirms.\ninbox.check results are point-in-time \u2014 when the user asks about responses or new requests,\nALWAYS call inbox.check again; never answer from a previous check result.\nTask requests/responses are signed as verifiable credentials.";
5
5
  export interface MCPToolHandler {
6
6
  callTool(args: {
7
7
  tool: string;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.factory.d.ts","sourceRoot":"","sources":["../../../src/adapter/mcp/mcp-server.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAInE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAA;AAUnE,eAAO,MAAM,qBAAqB,88UA2FiD,CAAA;AAEnF,eAAO,MAAM,mBAAmB,i5DAoB8B,CAAA;AAE9D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAChC,QAAQ,CAAC,EAAE;YACT,KAAK,EAAE,MAAM,CAAA;YACb,MAAM,EAAE,MAAM,CAAA;YACd,YAAY,CAAC,EAAE,MAAM,CAAA;YAIrB,UAAU,CAAC,EAAE,MAAM,CAAA;YACnB,UAAU,CAAC,EAAE,MAAM,CAAA;YACnB,OAAO,CAAC,EAAE,OAAO,CAAA;YACjB,UAAU,CAAC,EAAE,MAAM,CAAA;YACnB,UAAU,CAAC,EAAE,MAAM,CAAA;SACpB,CAAA;QACD,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAC1B,GAAG,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAA;QAChB,IAAI,CAAC,EAAE,GAAG,CAAA;QACV,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,gBAAgB,CAAC,EAAE,GAAG,CAAA;QACtB,kBAAkB,CAAC,EAAE,GAAG,CAAA;QACxB,cAAc,CAAC,EAAE,2BAA2B,CAAA;KAC7C,CAAC,CAAA;IACF,mBAAmB,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACzH,kBAAkB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAChF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,CAkKlE"}
1
+ {"version":3,"file":"mcp-server.factory.d.ts","sourceRoot":"","sources":["../../../src/adapter/mcp/mcp-server.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAInE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAA;AAUnE,eAAO,MAAM,qBAAqB,64XAyGiD,CAAA;AAEnF,eAAO,MAAM,mBAAmB,yvEAuB8B,CAAA;AAE9D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAChC,QAAQ,CAAC,EAAE;YACT,KAAK,EAAE,MAAM,CAAA;YACb,MAAM,EAAE,MAAM,CAAA;YACd,YAAY,CAAC,EAAE,MAAM,CAAA;YAIrB,UAAU,CAAC,EAAE,MAAM,CAAA;YACnB,UAAU,CAAC,EAAE,MAAM,CAAA;YACnB,OAAO,CAAC,EAAE,OAAO,CAAA;YACjB,UAAU,CAAC,EAAE,MAAM,CAAA;YACnB,UAAU,CAAC,EAAE,MAAM,CAAA;SACpB,CAAA;QACD,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAC1B,GAAG,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAA;QAChB,IAAI,CAAC,EAAE,GAAG,CAAA;QACV,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,gBAAgB,CAAC,EAAE,GAAG,CAAA;QACtB,kBAAkB,CAAC,EAAE,GAAG,CAAA;QACxB,cAAc,CAAC,EAAE,2BAA2B,CAAA;KAC7C,CAAC,CAAA;IACF,mBAAmB,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACzH,kBAAkB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAChF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,CAkKlE"}
@@ -62,6 +62,20 @@ Supported tools and common actions:
62
62
  Example (create): tool="hubspot", action="hubspot.crm.objects.batchCreate", parameters={"objectType": "contacts", "inputs": [{"properties": {"email": "jane@example.com", "firstname": "Jane"}}]}
63
63
  For hubspot.crm.engagements.create use parameter key "type" (not "engagementType"); values "NOTE"/"TASK". ownerId comes from hubspot.account.userDetails.get.
64
64
 
65
+ **linear** — Linear issue tracker with full CRUD for issues, comments, projects, and more.
66
+ Issue operations: linear.issue.list, linear.issue.read, linear.issue.search, linear.issue.create, linear.issue.update, linear.issue.archive, linear.issue.unarchive, linear.issue.delete, linear.issue.addLabel, linear.issue.removeLabel, linear.issue.subscribe
67
+ Comment management: linear.comment.create, linear.comment.list, linear.comment.update, linear.comment.delete, linear.comment.resolve, linear.comment.unresolve
68
+ Issue relations: linear.issueRelation.create, linear.issueRelation.list, linear.issueRelation.delete
69
+ Cycles/Sprints: linear.cycle.list, linear.cycle.read, linear.cycle.create, linear.cycle.update
70
+ Labels: linear.label.list, linear.label.create, linear.label.update
71
+ Attachments: linear.attachment.create, linear.attachment.list, linear.attachment.delete
72
+ Projects: linear.project.list, linear.project.read, linear.project.create, linear.project.update
73
+ Other: linear.team.list, linear.workflowState.list, linear.viewer.read, linear.user.list
74
+ Example: { "tool": "linear", "action": "linear.issue.list", "parameters": { "teamId": "<team-id>", "limit": 20 } }
75
+ Example (create): { "tool": "linear", "action": "linear.issue.create", "parameters": { "teamId": "<team-id>", "title": "Bug report" } }
76
+ Use linear.team.list to discover teamIds, and linear.workflowState.list to find valid state IDs.
77
+
78
+
65
79
  **scheduling / inbox** — Meeting-time negotiation and task requests between users (signed as verifiable credentials).
66
80
  Common actions: scheduling.request, inbox.check, inbox.respond, inbox.complete, inbox.send
67
81
  Scheduling routing: if the user gives a specific agreed meeting time, create the calendar
@@ -107,9 +121,12 @@ exports.SERVER_INSTRUCTIONS = `This server provides identity-verified tool execu
107
121
  Scheduling: if the user gives a specific agreed time, create the calendar event
108
122
  directly. If the time is not yet agreed ("日程調整", "find a time"), compute candidate
109
123
  slots from the user's calendar and call scheduling.request, then wait for the response.
110
- Size candidateWindow to the user's intent: a specific named day that day only; an open
111
- request ("next week", "平日で") a candidateWindow spanning multiple business days, so the
112
- server can spread candidates across days rather than clustering them in one.
124
+ Size candidateWindow to the user's intent. candidateWindow is a { start, end } range OR an array of
125
+ ranges (max 5, total span ≤ 62 days); the server searches each range independently and spreads
126
+ candidates across them. A specific named day one range for that day. A per-day time band
127
+ ("平日午後") → one range PER business day ([{Mon 13-18}, {Tue 13-18}, …]) so the band is honored
128
+ every day. Distinct bands ("月曜午前 or 木曜午後") → one range each. A single open stretch
129
+ ("next week", "平日で") → one wide range spanning the business days.
113
130
  At session start, call inbox.check once to surface pending task requests (role "received") AND
114
131
  responses to your own requests (role "sent"). As the requester, branch on the sent item's status:
115
132
  "completed" means the server already auto-confirmed and booked it (calendarEventId + Meet link
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.factory.js","sourceRoot":"","sources":["../../../src/adapter/mcp/mcp-server.factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.factory.js","sourceRoot":"","sources":["../../../src/adapter/mcp/mcp-server.factory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vess-id/vess",
3
- "version": "0.16.0-alpha.3",
3
+ "version": "0.16.0-alpha.5",
4
4
  "description": "VESS local AI agent runtime — manages agent identity, permissions, and execution boundaries",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -15,7 +15,7 @@
15
15
  "better-sqlite3": "^11.10.0",
16
16
  "commander": "^12.1.0",
17
17
  "zod": "^3.25.76",
18
- "@vess-id/ai-identity": "0.16.0-alpha.2"
18
+ "@vess-id/ai-identity": "0.16.0-alpha.5"
19
19
  },
20
20
  "optionalDependencies": {
21
21
  "node-mac-auth": "^1.1.0"