@dobbyai/mcp-external 1.0.4 → 1.2.0

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 (315) hide show
  1. package/README.md +44 -14
  2. package/dist/__tests__/agent-mail-tools.test.d.ts +8 -0
  3. package/dist/__tests__/agent-mail-tools.test.d.ts.map +1 -0
  4. package/dist/__tests__/agent-mail-tools.test.js +255 -0
  5. package/dist/__tests__/agent-mail-tools.test.js.map +1 -0
  6. package/dist/__tests__/annotations.test.d.ts +8 -0
  7. package/dist/__tests__/annotations.test.d.ts.map +1 -0
  8. package/dist/__tests__/annotations.test.js +108 -0
  9. package/dist/__tests__/annotations.test.js.map +1 -0
  10. package/dist/__tests__/auth.test.d.ts +7 -0
  11. package/dist/__tests__/auth.test.d.ts.map +1 -0
  12. package/dist/__tests__/auth.test.js +161 -0
  13. package/dist/__tests__/auth.test.js.map +1 -0
  14. package/dist/__tests__/doctor.test.d.ts +16 -0
  15. package/dist/__tests__/doctor.test.d.ts.map +1 -0
  16. package/dist/__tests__/doctor.test.js +258 -0
  17. package/dist/__tests__/doctor.test.js.map +1 -0
  18. package/dist/__tests__/external-agents-tools.test.d.ts +11 -0
  19. package/dist/__tests__/external-agents-tools.test.d.ts.map +1 -0
  20. package/dist/__tests__/external-agents-tools.test.js +619 -0
  21. package/dist/__tests__/external-agents-tools.test.js.map +1 -0
  22. package/dist/__tests__/gateway-bearer.test.d.ts +12 -0
  23. package/dist/__tests__/gateway-bearer.test.d.ts.map +1 -0
  24. package/dist/__tests__/gateway-bearer.test.js +112 -0
  25. package/dist/__tests__/gateway-bearer.test.js.map +1 -0
  26. package/dist/__tests__/gateway-key-resolver.test.d.ts +10 -0
  27. package/dist/__tests__/gateway-key-resolver.test.d.ts.map +1 -0
  28. package/dist/__tests__/gateway-key-resolver.test.js +125 -0
  29. package/dist/__tests__/gateway-key-resolver.test.js.map +1 -0
  30. package/dist/__tests__/http-concurrency.test.d.ts +20 -0
  31. package/dist/__tests__/http-concurrency.test.d.ts.map +1 -0
  32. package/dist/__tests__/http-concurrency.test.js +254 -0
  33. package/dist/__tests__/http-concurrency.test.js.map +1 -0
  34. package/dist/__tests__/integration/protocol.test.d.ts +8 -0
  35. package/dist/__tests__/integration/protocol.test.d.ts.map +1 -0
  36. package/dist/__tests__/integration/protocol.test.js +110 -0
  37. package/dist/__tests__/integration/protocol.test.js.map +1 -0
  38. package/dist/__tests__/mcp-integrations.test.d.ts +8 -0
  39. package/dist/__tests__/mcp-integrations.test.d.ts.map +1 -0
  40. package/dist/__tests__/mcp-integrations.test.js +365 -0
  41. package/dist/__tests__/mcp-integrations.test.js.map +1 -0
  42. package/dist/__tests__/memory-graph-tools.test.d.ts +8 -0
  43. package/dist/__tests__/memory-graph-tools.test.d.ts.map +1 -0
  44. package/dist/__tests__/memory-graph-tools.test.js +254 -0
  45. package/dist/__tests__/memory-graph-tools.test.js.map +1 -0
  46. package/dist/__tests__/registry-dispatch.test.d.ts +11 -0
  47. package/dist/__tests__/registry-dispatch.test.d.ts.map +1 -0
  48. package/dist/__tests__/registry-dispatch.test.js +30 -0
  49. package/dist/__tests__/registry-dispatch.test.js.map +1 -0
  50. package/dist/__tests__/registry-listing-parity.test.d.ts +2 -0
  51. package/dist/__tests__/registry-listing-parity.test.d.ts.map +1 -0
  52. package/dist/__tests__/registry-listing-parity.test.js +89 -0
  53. package/dist/__tests__/registry-listing-parity.test.js.map +1 -0
  54. package/dist/__tests__/role-cap.test.d.ts +2 -0
  55. package/dist/__tests__/role-cap.test.d.ts.map +1 -0
  56. package/dist/__tests__/role-cap.test.js +113 -0
  57. package/dist/__tests__/role-cap.test.js.map +1 -0
  58. package/dist/__tests__/schedule-tools.test.d.ts +8 -0
  59. package/dist/__tests__/schedule-tools.test.d.ts.map +1 -0
  60. package/dist/__tests__/schedule-tools.test.js +285 -0
  61. package/dist/__tests__/schedule-tools.test.js.map +1 -0
  62. package/dist/__tests__/server-gateway-key.test.d.ts +18 -0
  63. package/dist/__tests__/server-gateway-key.test.d.ts.map +1 -0
  64. package/dist/__tests__/server-gateway-key.test.js +148 -0
  65. package/dist/__tests__/server-gateway-key.test.js.map +1 -0
  66. package/dist/__tests__/server-user-scoped.test.d.ts +34 -0
  67. package/dist/__tests__/server-user-scoped.test.d.ts.map +1 -0
  68. package/dist/__tests__/server-user-scoped.test.js +577 -0
  69. package/dist/__tests__/server-user-scoped.test.js.map +1 -0
  70. package/dist/__tests__/task-id-pattern.test.d.ts +12 -0
  71. package/dist/__tests__/task-id-pattern.test.d.ts.map +1 -0
  72. package/dist/__tests__/task-id-pattern.test.js +43 -0
  73. package/dist/__tests__/task-id-pattern.test.js.map +1 -0
  74. package/dist/__tests__/tiers.test.d.ts +7 -0
  75. package/dist/__tests__/tiers.test.d.ts.map +1 -0
  76. package/dist/__tests__/tiers.test.js +199 -0
  77. package/dist/__tests__/tiers.test.js.map +1 -0
  78. package/dist/__tests__/tools/hosted-agents.test.d.ts +9 -0
  79. package/dist/__tests__/tools/hosted-agents.test.d.ts.map +1 -0
  80. package/dist/__tests__/tools/hosted-agents.test.js +301 -0
  81. package/dist/__tests__/tools/hosted-agents.test.js.map +1 -0
  82. package/dist/__tests__/tools/llm-providers.test.d.ts +10 -0
  83. package/dist/__tests__/tools/llm-providers.test.d.ts.map +1 -0
  84. package/dist/__tests__/tools/llm-providers.test.js +105 -0
  85. package/dist/__tests__/tools/llm-providers.test.js.map +1 -0
  86. package/dist/__tests__/tools/services.test.js +139 -98
  87. package/dist/__tests__/tools/services.test.js.map +1 -1
  88. package/dist/__tests__/tools.test.d.ts +7 -0
  89. package/dist/__tests__/tools.test.d.ts.map +1 -0
  90. package/dist/__tests__/tools.test.js +152 -0
  91. package/dist/__tests__/tools.test.js.map +1 -0
  92. package/dist/__tests__/transport.test.d.ts +7 -0
  93. package/dist/__tests__/transport.test.d.ts.map +1 -0
  94. package/dist/__tests__/transport.test.js +397 -0
  95. package/dist/__tests__/transport.test.js.map +1 -0
  96. package/dist/__tests__/validate-credentials.test.d.ts +9 -0
  97. package/dist/__tests__/validate-credentials.test.d.ts.map +1 -0
  98. package/dist/__tests__/validate-credentials.test.js +172 -0
  99. package/dist/__tests__/validate-credentials.test.js.map +1 -0
  100. package/dist/__tests__/web-eval-tools.test.d.ts +8 -0
  101. package/dist/__tests__/web-eval-tools.test.d.ts.map +1 -0
  102. package/dist/__tests__/web-eval-tools.test.js +241 -0
  103. package/dist/__tests__/web-eval-tools.test.js.map +1 -0
  104. package/dist/__tests__/whoami.test.d.ts +11 -0
  105. package/dist/__tests__/whoami.test.d.ts.map +1 -0
  106. package/dist/__tests__/whoami.test.js +194 -0
  107. package/dist/__tests__/whoami.test.js.map +1 -0
  108. package/dist/__tests__/workflow-tools.test.d.ts +8 -0
  109. package/dist/__tests__/workflow-tools.test.d.ts.map +1 -0
  110. package/dist/__tests__/workflow-tools.test.js +261 -0
  111. package/dist/__tests__/workflow-tools.test.js.map +1 -0
  112. package/dist/__tests__/workloads.test.d.ts +9 -0
  113. package/dist/__tests__/workloads.test.d.ts.map +1 -0
  114. package/dist/__tests__/workloads.test.js +169 -0
  115. package/dist/__tests__/workloads.test.js.map +1 -0
  116. package/dist/auth/oauth-provider.d.ts +34 -0
  117. package/dist/auth/oauth-provider.d.ts.map +1 -0
  118. package/dist/auth/oauth-provider.js +75 -0
  119. package/dist/auth/oauth-provider.js.map +1 -0
  120. package/dist/auth/token-verifier.d.ts +45 -0
  121. package/dist/auth/token-verifier.d.ts.map +1 -0
  122. package/dist/auth/token-verifier.js +160 -0
  123. package/dist/auth/token-verifier.js.map +1 -0
  124. package/dist/connectors/claude-desktop.d.ts.map +1 -1
  125. package/dist/connectors/claude-desktop.js +3 -2
  126. package/dist/connectors/claude-desktop.js.map +1 -1
  127. package/dist/connectors/cursor.d.ts.map +1 -1
  128. package/dist/connectors/cursor.js +3 -2
  129. package/dist/connectors/cursor.js.map +1 -1
  130. package/dist/connectors/setup.d.ts.map +1 -1
  131. package/dist/connectors/setup.js +2 -1
  132. package/dist/connectors/setup.js.map +1 -1
  133. package/dist/connectors/vscode.d.ts.map +1 -1
  134. package/dist/connectors/vscode.js +3 -2
  135. package/dist/connectors/vscode.js.map +1 -1
  136. package/dist/connectors/windsurf.d.ts.map +1 -1
  137. package/dist/connectors/windsurf.js +3 -2
  138. package/dist/connectors/windsurf.js.map +1 -1
  139. package/dist/doctor.d.ts +34 -0
  140. package/dist/doctor.d.ts.map +1 -0
  141. package/dist/doctor.js +134 -0
  142. package/dist/doctor.js.map +1 -0
  143. package/dist/http-server.d.ts +56 -0
  144. package/dist/http-server.d.ts.map +1 -0
  145. package/dist/http-server.js +455 -0
  146. package/dist/http-server.js.map +1 -0
  147. package/dist/index.d.ts +5 -1
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +96 -171
  150. package/dist/index.js.map +1 -1
  151. package/dist/lib/consts.d.ts +21 -0
  152. package/dist/lib/consts.d.ts.map +1 -0
  153. package/dist/lib/consts.js +30 -0
  154. package/dist/lib/consts.js.map +1 -0
  155. package/dist/lib/dobby-client.d.ts +60 -3
  156. package/dist/lib/dobby-client.d.ts.map +1 -1
  157. package/dist/lib/dobby-client.js +145 -44
  158. package/dist/lib/dobby-client.js.map +1 -1
  159. package/dist/lib/gateway-key-resolver.d.ts +38 -0
  160. package/dist/lib/gateway-key-resolver.d.ts.map +1 -0
  161. package/dist/lib/gateway-key-resolver.js +59 -0
  162. package/dist/lib/gateway-key-resolver.js.map +1 -0
  163. package/dist/lib/log.d.ts +25 -0
  164. package/dist/lib/log.d.ts.map +1 -0
  165. package/dist/lib/log.js +36 -0
  166. package/dist/lib/log.js.map +1 -0
  167. package/dist/server.d.ts +175 -0
  168. package/dist/server.d.ts.map +1 -0
  169. package/dist/server.js +1017 -0
  170. package/dist/server.js.map +1 -0
  171. package/dist/tools/agent-mail.d.ts +112 -0
  172. package/dist/tools/agent-mail.d.ts.map +1 -0
  173. package/dist/tools/agent-mail.js +118 -0
  174. package/dist/tools/agent-mail.js.map +1 -0
  175. package/dist/tools/agent-versions.d.ts +93 -0
  176. package/dist/tools/agent-versions.d.ts.map +1 -0
  177. package/dist/tools/agent-versions.js +99 -0
  178. package/dist/tools/agent-versions.js.map +1 -0
  179. package/dist/tools/approvals.d.ts +24 -34
  180. package/dist/tools/approvals.d.ts.map +1 -1
  181. package/dist/tools/approvals.js +24 -81
  182. package/dist/tools/approvals.js.map +1 -1
  183. package/dist/tools/claude-code-sync.d.ts +40 -0
  184. package/dist/tools/claude-code-sync.d.ts.map +1 -0
  185. package/dist/tools/claude-code-sync.js +52 -0
  186. package/dist/tools/claude-code-sync.js.map +1 -0
  187. package/dist/tools/control-plane.d.ts +118 -0
  188. package/dist/tools/control-plane.d.ts.map +1 -0
  189. package/dist/tools/control-plane.js +135 -0
  190. package/dist/tools/control-plane.js.map +1 -0
  191. package/dist/tools/crew-builder.d.ts +24 -66
  192. package/dist/tools/crew-builder.d.ts.map +1 -1
  193. package/dist/tools/crew-builder.js +24 -185
  194. package/dist/tools/crew-builder.js.map +1 -1
  195. package/dist/tools/crewai.d.ts +24 -63
  196. package/dist/tools/crewai.d.ts.map +1 -1
  197. package/dist/tools/crewai.js +24 -145
  198. package/dist/tools/crewai.js.map +1 -1
  199. package/dist/tools/exa.d.ts +126 -0
  200. package/dist/tools/exa.d.ts.map +1 -0
  201. package/dist/tools/exa.js +125 -0
  202. package/dist/tools/exa.js.map +1 -0
  203. package/dist/tools/external-agents.d.ts +440 -0
  204. package/dist/tools/external-agents.d.ts.map +1 -0
  205. package/dist/tools/external-agents.js +386 -0
  206. package/dist/tools/external-agents.js.map +1 -0
  207. package/dist/tools/github-mcp.d.ts +228 -0
  208. package/dist/tools/github-mcp.d.ts.map +1 -0
  209. package/dist/tools/github-mcp.js +235 -0
  210. package/dist/tools/github-mcp.js.map +1 -0
  211. package/dist/tools/governance.d.ts +273 -0
  212. package/dist/tools/governance.d.ts.map +1 -0
  213. package/dist/tools/governance.js +286 -0
  214. package/dist/tools/governance.js.map +1 -0
  215. package/dist/tools/hosted-agents.d.ts +216 -0
  216. package/dist/tools/hosted-agents.d.ts.map +1 -0
  217. package/dist/tools/hosted-agents.js +214 -0
  218. package/dist/tools/hosted-agents.js.map +1 -0
  219. package/dist/tools/index.d.ts +6335 -191
  220. package/dist/tools/index.d.ts.map +1 -1
  221. package/dist/tools/index.js +441 -172
  222. package/dist/tools/index.js.map +1 -1
  223. package/dist/tools/jira.d.ts +60 -176
  224. package/dist/tools/jira.d.ts.map +1 -1
  225. package/dist/tools/jira.js +60 -365
  226. package/dist/tools/jira.js.map +1 -1
  227. package/dist/tools/llm-providers.d.ts +50 -0
  228. package/dist/tools/llm-providers.d.ts.map +1 -0
  229. package/dist/tools/llm-providers.js +41 -0
  230. package/dist/tools/llm-providers.js.map +1 -0
  231. package/dist/tools/mcp-metrics.d.ts +47 -0
  232. package/dist/tools/mcp-metrics.d.ts.map +1 -0
  233. package/dist/tools/mcp-metrics.js +53 -0
  234. package/dist/tools/mcp-metrics.js.map +1 -0
  235. package/dist/tools/mcp-tools.d.ts +12 -29
  236. package/dist/tools/mcp-tools.d.ts.map +1 -1
  237. package/dist/tools/mcp-tools.js +12 -131
  238. package/dist/tools/mcp-tools.js.map +1 -1
  239. package/dist/tools/mem0.d.ts +127 -0
  240. package/dist/tools/mem0.d.ts.map +1 -0
  241. package/dist/tools/mem0.js +155 -0
  242. package/dist/tools/mem0.js.map +1 -0
  243. package/dist/tools/memory-graph.d.ts +151 -0
  244. package/dist/tools/memory-graph.d.ts.map +1 -0
  245. package/dist/tools/memory-graph.js +159 -0
  246. package/dist/tools/memory-graph.js.map +1 -0
  247. package/dist/tools/memory-stores.d.ts +141 -0
  248. package/dist/tools/memory-stores.d.ts.map +1 -0
  249. package/dist/tools/memory-stores.js +147 -0
  250. package/dist/tools/memory-stores.js.map +1 -0
  251. package/dist/tools/messages.d.ts +12 -20
  252. package/dist/tools/messages.d.ts.map +1 -1
  253. package/dist/tools/messages.js +12 -49
  254. package/dist/tools/messages.js.map +1 -1
  255. package/dist/tools/moltbook.d.ts +328 -0
  256. package/dist/tools/moltbook.d.ts.map +1 -0
  257. package/dist/tools/moltbook.js +334 -0
  258. package/dist/tools/moltbook.js.map +1 -0
  259. package/dist/tools/monitoring-attribution.d.ts +71 -0
  260. package/dist/tools/monitoring-attribution.d.ts.map +1 -0
  261. package/dist/tools/monitoring-attribution.js +74 -0
  262. package/dist/tools/monitoring-attribution.js.map +1 -0
  263. package/dist/tools/ops.d.ts +139 -0
  264. package/dist/tools/ops.d.ts.map +1 -0
  265. package/dist/tools/ops.js +151 -0
  266. package/dist/tools/ops.js.map +1 -0
  267. package/dist/tools/orchestrations.d.ts +109 -0
  268. package/dist/tools/orchestrations.d.ts.map +1 -0
  269. package/dist/tools/orchestrations.js +115 -0
  270. package/dist/tools/orchestrations.js.map +1 -0
  271. package/dist/tools/outcomes.d.ts +138 -0
  272. package/dist/tools/outcomes.d.ts.map +1 -0
  273. package/dist/tools/outcomes.js +136 -0
  274. package/dist/tools/outcomes.js.map +1 -0
  275. package/dist/tools/schedules.d.ts +149 -0
  276. package/dist/tools/schedules.d.ts.map +1 -0
  277. package/dist/tools/schedules.js +155 -0
  278. package/dist/tools/schedules.js.map +1 -0
  279. package/dist/tools/services.d.ts +6 -16
  280. package/dist/tools/services.d.ts.map +1 -1
  281. package/dist/tools/services.js +6 -135
  282. package/dist/tools/services.js.map +1 -1
  283. package/dist/tools/sessions.d.ts +124 -0
  284. package/dist/tools/sessions.d.ts.map +1 -0
  285. package/dist/tools/sessions.js +130 -0
  286. package/dist/tools/sessions.js.map +1 -0
  287. package/dist/tools/setup-status.d.ts +29 -0
  288. package/dist/tools/setup-status.d.ts.map +1 -0
  289. package/dist/tools/setup-status.js +35 -0
  290. package/dist/tools/setup-status.js.map +1 -0
  291. package/dist/tools/tasks.d.ts +44 -56
  292. package/dist/tools/tasks.d.ts.map +1 -1
  293. package/dist/tools/tasks.js +48 -212
  294. package/dist/tools/tasks.js.map +1 -1
  295. package/dist/tools/tiers.d.ts +55 -0
  296. package/dist/tools/tiers.d.ts.map +1 -0
  297. package/dist/tools/tiers.js +239 -0
  298. package/dist/tools/tiers.js.map +1 -0
  299. package/dist/tools/unified-agents.d.ts +43 -0
  300. package/dist/tools/unified-agents.d.ts.map +1 -0
  301. package/dist/tools/unified-agents.js +46 -0
  302. package/dist/tools/unified-agents.js.map +1 -0
  303. package/dist/tools/web-eval.d.ts +129 -0
  304. package/dist/tools/web-eval.d.ts.map +1 -0
  305. package/dist/tools/web-eval.js +136 -0
  306. package/dist/tools/web-eval.js.map +1 -0
  307. package/dist/tools/workflow.d.ts +105 -0
  308. package/dist/tools/workflow.d.ts.map +1 -0
  309. package/dist/tools/workflow.js +111 -0
  310. package/dist/tools/workflow.js.map +1 -0
  311. package/dist/tools/workloads.d.ts +81 -0
  312. package/dist/tools/workloads.d.ts.map +1 -0
  313. package/dist/tools/workloads.js +81 -0
  314. package/dist/tools/workloads.js.map +1 -0
  315. package/package.json +13 -7
@@ -10,6 +10,12 @@ export const taskTools = {
10
10
  // Create a new task
11
11
  create_task: {
12
12
  name: 'create_task',
13
+ annotations: {
14
+ title: 'Create Task',
15
+ readOnlyHint: false,
16
+ destructiveHint: true,
17
+ openWorldHint: false,
18
+ },
13
19
  description: 'Create a new task in Dobby for the AI agents to work on',
14
20
  inputSchema: {
15
21
  type: 'object',
@@ -38,6 +44,12 @@ export const taskTools = {
38
44
  // List tasks
39
45
  list_tasks: {
40
46
  name: 'list_tasks',
47
+ annotations: {
48
+ title: 'List Tasks',
49
+ readOnlyHint: true,
50
+ destructiveHint: false,
51
+ openWorldHint: false,
52
+ },
41
53
  description: 'List tasks from Dobby with optional filters',
42
54
  inputSchema: {
43
55
  type: 'object',
@@ -52,6 +64,10 @@ export const taskTools = {
52
64
  enum: ['high', 'medium', 'low'],
53
65
  description: 'Filter by priority',
54
66
  },
67
+ assigned_to: {
68
+ type: 'string',
69
+ description: 'Filter tasks by assigned agent name (e.g., "dobby-backend-agent")',
70
+ },
55
71
  limit: {
56
72
  type: 'number',
57
73
  description: 'Maximum number of tasks to return (default: 20)',
@@ -62,13 +78,20 @@ export const taskTools = {
62
78
  // Get single task
63
79
  get_task: {
64
80
  name: 'get_task',
81
+ annotations: {
82
+ title: 'Get Task',
83
+ readOnlyHint: true,
84
+ destructiveHint: false,
85
+ openWorldHint: false,
86
+ },
65
87
  description: 'Get detailed information about a specific task',
66
88
  inputSchema: {
67
89
  type: 'object',
68
90
  properties: {
69
91
  task_id: {
70
92
  type: 'string',
71
- description: 'The task ID to retrieve',
93
+ description: 'The task ID to retrieve (as returned by create_task or list_tasks, e.g. task-1784122598603-abc123)',
94
+ pattern: '^[a-zA-Z0-9][a-zA-Z0-9_-]*$',
72
95
  },
73
96
  },
74
97
  required: ['task_id'],
@@ -77,13 +100,20 @@ export const taskTools = {
77
100
  // Update task
78
101
  update_task: {
79
102
  name: 'update_task',
103
+ annotations: {
104
+ title: 'Update Task',
105
+ readOnlyHint: false,
106
+ destructiveHint: true,
107
+ openWorldHint: false,
108
+ },
80
109
  description: 'Update a task status or priority',
81
110
  inputSchema: {
82
111
  type: 'object',
83
112
  properties: {
84
113
  task_id: {
85
114
  type: 'string',
86
- description: 'The task ID to update',
115
+ description: 'The task ID to update (as returned by create_task or list_tasks, e.g. task-1784122598603-abc123)',
116
+ pattern: '^[a-zA-Z0-9][a-zA-Z0-9_-]*$',
87
117
  },
88
118
  status: {
89
119
  type: 'string',
@@ -102,13 +132,20 @@ export const taskTools = {
102
132
  // Get task timeline (activity feed)
103
133
  get_task_timeline: {
104
134
  name: 'get_task_timeline',
135
+ annotations: {
136
+ title: 'Get Task Timeline',
137
+ readOnlyHint: true,
138
+ destructiveHint: false,
139
+ openWorldHint: false,
140
+ },
105
141
  description: 'Get the activity timeline for a task (agent events, status changes, approvals)',
106
142
  inputSchema: {
107
143
  type: 'object',
108
144
  properties: {
109
145
  task_id: {
110
146
  type: 'string',
111
- description: 'The task ID to get timeline for',
147
+ description: 'The task ID to get timeline for (as returned by create_task or list_tasks, e.g. task-1784122598603-abc123)',
148
+ pattern: '^[a-zA-Z0-9][a-zA-Z0-9_-]*$',
112
149
  },
113
150
  },
114
151
  required: ['task_id'],
@@ -117,13 +154,20 @@ export const taskTools = {
117
154
  // Cancel task execution
118
155
  cancel_task: {
119
156
  name: 'cancel_task',
157
+ annotations: {
158
+ title: 'Cancel Task',
159
+ readOnlyHint: false,
160
+ destructiveHint: true,
161
+ openWorldHint: false,
162
+ },
120
163
  description: 'Cancel a running task execution',
121
164
  inputSchema: {
122
165
  type: 'object',
123
166
  properties: {
124
167
  task_id: {
125
168
  type: 'string',
126
- description: 'The task ID to cancel',
169
+ description: 'The task ID to cancel (as returned by create_task or list_tasks, e.g. task-1784122598603-abc123)',
170
+ pattern: '^[a-zA-Z0-9][a-zA-Z0-9_-]*$',
127
171
  },
128
172
  },
129
173
  required: ['task_id'],
@@ -133,212 +177,4 @@ export const taskTools = {
133
177
  // ============================================
134
178
  // Tool Handlers
135
179
  // ============================================
136
- export async function handleCreateTask(client, args) {
137
- const result = await client.createTask({
138
- title: args.title,
139
- description: args.description,
140
- priority: args.priority || 'medium',
141
- link_to_task_id: args.link_to_task_id,
142
- });
143
- return {
144
- content: [
145
- {
146
- type: 'text',
147
- text: `✅ Task created successfully!\n\nTask ID: ${result.task_id}\nTitle: ${args.title}\nPriority: ${args.priority || 'medium'}\n\nThe task has been added to the queue. AI agents will start working on it soon.`,
148
- },
149
- ],
150
- };
151
- }
152
- export async function handleListTasks(client, args) {
153
- const tasks = await client.listTasks({
154
- status: args.status === 'all' ? undefined : args.status,
155
- priority: args.priority,
156
- limit: args.limit || 20,
157
- });
158
- if (tasks.length === 0) {
159
- return {
160
- content: [
161
- {
162
- type: 'text',
163
- text: 'No tasks found matching the criteria.',
164
- },
165
- ],
166
- };
167
- }
168
- const taskList = tasks
169
- .map((task, i) => {
170
- const statusEmoji = {
171
- pending: '⏳',
172
- in_progress: '🔄',
173
- completed: '✅',
174
- failed: '❌',
175
- cancelled: '🚫',
176
- }[task.status] || '❓';
177
- const priorityEmoji = {
178
- high: '🔴',
179
- medium: '🟡',
180
- low: '🟢',
181
- }[task.priority || 'medium'] || '';
182
- return `${i + 1}. ${statusEmoji} ${priorityEmoji} **${task.title}**\n ID: \`${task.task_id}\`\n Status: ${task.status}${task.pr_url ? `\n PR: ${task.pr_url}` : ''}`;
183
- })
184
- .join('\n\n');
185
- return {
186
- content: [
187
- {
188
- type: 'text',
189
- text: `Found ${tasks.length} task(s):\n\n${taskList}`,
190
- },
191
- ],
192
- };
193
- }
194
- export async function handleGetTask(client, args) {
195
- const task = await client.getTask(args.task_id);
196
- if (!task) {
197
- return {
198
- content: [
199
- {
200
- type: 'text',
201
- text: `❌ Task not found: ${args.task_id}`,
202
- },
203
- ],
204
- };
205
- }
206
- const statusEmoji = {
207
- pending: '⏳',
208
- in_progress: '🔄',
209
- completed: '✅',
210
- failed: '❌',
211
- cancelled: '🚫',
212
- }[task.status] || '❓';
213
- let details = `# ${statusEmoji} ${task.title}\n\n`;
214
- details += `**Task ID:** \`${task.task_id}\`\n`;
215
- details += `**Status:** ${task.status}\n`;
216
- details += `**Priority:** ${task.priority || 'medium'}\n`;
217
- details += `**Created:** ${task.created_at}\n`;
218
- details += `**Updated:** ${task.updated_at}\n`;
219
- if (task.description) {
220
- details += `\n## Description\n${task.description}\n`;
221
- }
222
- if (task.pr_url) {
223
- details += `\n## Pull Request\n${task.pr_url}\n`;
224
- }
225
- if (task.branch_name) {
226
- details += `**Branch:** ${task.branch_name}\n`;
227
- }
228
- if (task.result_summary) {
229
- details += `\n## Result Summary\n${task.result_summary}\n`;
230
- }
231
- return {
232
- content: [
233
- {
234
- type: 'text',
235
- text: details,
236
- },
237
- ],
238
- };
239
- }
240
- export async function handleUpdateTask(client, args) {
241
- await client.updateTask(args.task_id, {
242
- status: args.status,
243
- priority: args.priority,
244
- });
245
- const updates = [];
246
- if (args.status)
247
- updates.push(`Status → ${args.status}`);
248
- if (args.priority)
249
- updates.push(`Priority → ${args.priority}`);
250
- return {
251
- content: [
252
- {
253
- type: 'text',
254
- text: `✅ Task ${args.task_id} updated:\n${updates.join('\n')}`,
255
- },
256
- ],
257
- };
258
- }
259
- export async function handleGetTaskTimeline(client, args) {
260
- const timeline = await client.getTaskTimeline(args.task_id);
261
- if (timeline.length === 0) {
262
- return {
263
- content: [
264
- {
265
- type: 'text',
266
- text: `No timeline events found for task ${args.task_id}`,
267
- },
268
- ],
269
- };
270
- }
271
- const eventEmojis = {
272
- 'task_created': '🆕',
273
- 'status_changed': '🔄',
274
- 'plan_created': '📋',
275
- 'subtask_started': '▶️',
276
- 'subtask_completed': '✅',
277
- 'code_generated': '💻',
278
- 'frontend_code_generated': '🎨',
279
- 'tests_run': '🧪',
280
- 'pr_created': '📝',
281
- 'pr_merged': '🔀',
282
- 'approval_requested': '⏳',
283
- 'approval_approved': '✅',
284
- 'approval_rejected': '❌',
285
- 'agent_continuation_triggered': '🚀',
286
- 'continuation_after_approval_completed': '🎉',
287
- 'agent_retry_triggered': '🔁',
288
- 'retry_after_rejection_completed': '✨',
289
- 'execution_cancelled': '🛑',
290
- };
291
- const timelineText = timeline
292
- .slice(0, 20) // Limit to last 20 events
293
- .map((event) => {
294
- const emoji = eventEmojis[event.event_type] || '📌';
295
- const time = new Date(event.created_at).toLocaleString();
296
- const agent = event.agent_name ? ` (${event.agent_name})` : '';
297
- let details = '';
298
- if (event.details && typeof event.details === 'object') {
299
- const d = event.details;
300
- if (d.new_status)
301
- details = ` → ${d.new_status}`;
302
- if (d.pr_number)
303
- details = ` PR #${d.pr_number}`;
304
- if (d.error)
305
- details = ` Error: ${d.error}`;
306
- if (d.feedback)
307
- details = ` Feedback: "${d.feedback.slice(0, 50)}..."`;
308
- }
309
- return `${emoji} **${event.event_type.replace(/_/g, ' ')}**${agent}${details}\n ${time}`;
310
- })
311
- .join('\n\n');
312
- return {
313
- content: [
314
- {
315
- type: 'text',
316
- text: `# 📊 Timeline for Task ${args.task_id}\n\n${timelineText}`,
317
- },
318
- ],
319
- };
320
- }
321
- export async function handleCancelTask(client, args) {
322
- const result = await client.cancelTaskExecution(args.task_id);
323
- if (result.success) {
324
- return {
325
- content: [
326
- {
327
- type: 'text',
328
- text: `🛑 Task ${args.task_id} execution cancelled successfully.\n\nThe task status has been reverted to pending.`,
329
- },
330
- ],
331
- };
332
- }
333
- else {
334
- return {
335
- content: [
336
- {
337
- type: 'text',
338
- text: `⚠️ Could not cancel task ${args.task_id}.\n\n${result.message || 'Task may not be running or was already completed.'}`,
339
- },
340
- ],
341
- };
342
- }
343
- }
344
180
  //# sourceMappingURL=tasks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tools/tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tools/tasks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Tool Tier Filtering System
3
+ *
4
+ * Defines which tools are available at each subscription tier.
5
+ * MVP — works immediately after OAuth, no extra setup.
6
+ * Pro — adds integrations requiring customer API keys.
7
+ * Enterprise — everything, including tools absent from both allowlists below.
8
+ *
9
+ * Tier ↔ Plan mapping (Gil, 2026-07-12 — enforced end-to-end):
10
+ * Free / Trial → mvp (scope: mcp:read or mcp:execute)
11
+ * Pro / Team → pro (scope: mcp:pro)
12
+ * Enterprise → enterprise (all tools, scope: mcp:*)
13
+ *
14
+ * The org's PLAN determines the tier for every token family; the token's own
15
+ * scopes only decide read vs execute. The web introspection endpoint
16
+ * (web/app/oauth/token/introspect) derives the effective scope; this module
17
+ * resolves it back to a tier + read-only flag for ListTools/CallTool
18
+ * enforcement in HTTP mode.
19
+ *
20
+ * Exact tier counts are pinned in ONE place — src/__tests__/tiers.test.ts
21
+ * ("tier sizes") — so adding a tool here is a deliberate, test-gated decision.
22
+ */
23
+ /** MVP tier: core platform tools that work without extra integration setup */
24
+ export declare const MVP_TOOLS: readonly string[];
25
+ export declare const PRO_TOOLS: readonly string[];
26
+ export type ToolTier = "mvp" | "pro" | "enterprise";
27
+ export declare const TOOL_TIERS: Record<ToolTier, readonly string[]>;
28
+ /**
29
+ * Resolve the tool tier from an auth context.
30
+ * Checks scopes in order of precedence (enterprise > pro > mvp).
31
+ * Defaults to 'mvp' if no matching scope found.
32
+ */
33
+ export declare function resolveToolTier(authContext?: {
34
+ scope?: string;
35
+ scopes?: string[];
36
+ plan?: string;
37
+ }): ToolTier;
38
+ /**
39
+ * Read-only access: the introspection endpoint emits `mcp:read` (instead of
40
+ * `mcp:execute`) for tokens whose every scope ends in `:read`, alongside the
41
+ * plan tier scope (`mcp:pro` / `mcp:*`). Read-only tokens are limited to
42
+ * tools annotated readOnlyHint — on ListTools AND CallTool.
43
+ */
44
+ export declare function isReadOnlyScopes(scopes: string[]): boolean;
45
+ /**
46
+ * Filter tools by tier. Enterprise tier returns all tools.
47
+ * For mvp/pro, returns only tools in that tier's allowlist.
48
+ */
49
+ export declare function filterToolsByTier(allToolNames: string[], tier: ToolTier): string[];
50
+ /** Tier counts for verification */
51
+ export declare const TIER_COUNTS: {
52
+ readonly mvp: number;
53
+ readonly pro: number;
54
+ };
55
+ //# sourceMappingURL=tiers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tiers.d.ts","sourceRoot":"","sources":["../../src/tools/tiers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH,8EAA8E;AAC9E,eAAO,MAAM,SAAS,EAAE,SAAS,MAAM,EAoF7B,CAAC;AAmEX,eAAO,MAAM,SAAS,EAAE,SAAS,MAAM,EAAsC,CAAC;AAM9E,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,YAAY,CAAC;AAEpD,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAI1D,CAAC;AAaF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,WAAW,CAAC,EAAE;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,QAAQ,CAkBX;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAE1D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EAAE,EACtB,IAAI,EAAE,QAAQ,GACb,MAAM,EAAE,CAIV;AAED,mCAAmC;AACnC,eAAO,MAAM,WAAW;;;CAGd,CAAC"}
@@ -0,0 +1,239 @@
1
+ /**
2
+ * Tool Tier Filtering System
3
+ *
4
+ * Defines which tools are available at each subscription tier.
5
+ * MVP — works immediately after OAuth, no extra setup.
6
+ * Pro — adds integrations requiring customer API keys.
7
+ * Enterprise — everything, including tools absent from both allowlists below.
8
+ *
9
+ * Tier ↔ Plan mapping (Gil, 2026-07-12 — enforced end-to-end):
10
+ * Free / Trial → mvp (scope: mcp:read or mcp:execute)
11
+ * Pro / Team → pro (scope: mcp:pro)
12
+ * Enterprise → enterprise (all tools, scope: mcp:*)
13
+ *
14
+ * The org's PLAN determines the tier for every token family; the token's own
15
+ * scopes only decide read vs execute. The web introspection endpoint
16
+ * (web/app/oauth/token/introspect) derives the effective scope; this module
17
+ * resolves it back to a tier + read-only flag for ListTools/CallTool
18
+ * enforcement in HTTP mode.
19
+ *
20
+ * Exact tier counts are pinned in ONE place — src/__tests__/tiers.test.ts
21
+ * ("tier sizes") — so adding a tool here is a deliberate, test-gated decision.
22
+ */
23
+ // ============================================
24
+ // Tier Definitions
25
+ // ============================================
26
+ /** MVP tier: core platform tools that work without extra integration setup */
27
+ export const MVP_TOOLS = [
28
+ // Tasks (6)
29
+ "create_task",
30
+ "list_tasks",
31
+ "get_task",
32
+ "update_task",
33
+ "get_task_timeline",
34
+ "cancel_task",
35
+ // Messages (2)
36
+ "get_messages",
37
+ "send_message",
38
+ // Approvals — HITL (4)
39
+ "get_pending_approvals",
40
+ "approve_task",
41
+ "reject_task",
42
+ "request_changes",
43
+ // Agent Ops (4)
44
+ "list_all_agents",
45
+ "workflow_classify_task",
46
+ "workflow_auto_assign",
47
+ "workflow_agent_workload",
48
+ // Schedules (4)
49
+ "create_schedule",
50
+ "list_schedules",
51
+ "pause_schedule",
52
+ "delete_schedule",
53
+ // Sessions (4)
54
+ "session_list",
55
+ "session_detail",
56
+ "session_create",
57
+ "session_events",
58
+ // Discovery (2)
59
+ "list_services",
60
+ "mcp_connection_info",
61
+ // Workloads (3)
62
+ "list_workloads",
63
+ "create_workload",
64
+ "try_sample_workload",
65
+ // Control Plane (3)
66
+ "list_cp_reports",
67
+ "run_cp_scan",
68
+ "get_cp_config",
69
+ // Monitoring Attribution (2)
70
+ "get_run_attribution",
71
+ "get_monitoring_coverage",
72
+ // Setup Status (1)
73
+ "get_setup_status",
74
+ // Claude Code Sync (1)
75
+ "sync_claude_code_agents",
76
+ // Memory Stores — read (2)
77
+ "memory_store_list",
78
+ "memory_store_search",
79
+ // Agent Versioning — read (2)
80
+ "agent_version_list",
81
+ "agent_version_diff",
82
+ // Orchestration — read (2)
83
+ "orchestration_config_list",
84
+ "orchestration_threads",
85
+ // Outcomes — read (2)
86
+ "rubric_list",
87
+ "outcome_status",
88
+ // External Agents — read (3)
89
+ "list_external_agents",
90
+ "get_external_agent",
91
+ "get_agent_costs",
92
+ // Managed Agents — one-prompt hosted-agent flow write tools (6, Gil-decided
93
+ // mvp tier 2026-07-16: visibility for entitled design partners on free/pro
94
+ // plans — the hosted_agents allowlist stays the real gate, honest 403 +
95
+ // telemetry fallback for tenants not entitled)
96
+ "host_sample_agent",
97
+ "create_hosted_agent",
98
+ "deploy_hosted_agent",
99
+ "run_hosted_agent",
100
+ "get_agent_results",
101
+ "delete_hosted_agent",
102
+ // Governance — single-policy CRUD + dry-run (5, 2026-07-21: mvp tier, not
103
+ // enterprise like their import/export/apply_guardrail siblings — the
104
+ // underlying routes have no plan gate, so this mirrors the dashboard's
105
+ // un-gated behavior)
106
+ "create_policy",
107
+ "list_policies",
108
+ "update_policy",
109
+ "delete_policy",
110
+ "test_policy",
111
+ ];
112
+ /** Pro tier additions: Jira + GitHub + CrewAI + Knowledge + Memory write + Versioning + Orchestration + Outcomes + External Agents */
113
+ const PRO_ADDITIONAL = [
114
+ // Audit integrity (1) — tamper-evident seal verification (design §10.4)
115
+ "verify_audit_seal",
116
+ // Data handling (1) — per-tenant PII storage mode posture (design §6.2, P7)
117
+ "get_data_handling",
118
+ // Jira (10)
119
+ "jira_search_issues",
120
+ "jira_get_issue",
121
+ "jira_create_issue",
122
+ "jira_update_issue",
123
+ "jira_add_comment",
124
+ "jira_get_comments",
125
+ "jira_get_transitions",
126
+ "jira_transition_issue",
127
+ "jira_list_projects",
128
+ "jira_assign_issue",
129
+ // GitHub (7)
130
+ "github_search_code",
131
+ "github_get_file",
132
+ "github_create_pr",
133
+ "github_list_prs",
134
+ "github_list_issues",
135
+ "github_create_issue",
136
+ "github_get_workflow_runs",
137
+ // CrewAI Platform (4)
138
+ "crewai_health",
139
+ "crewai_inputs",
140
+ "crewai_kickoff",
141
+ "crewai_status",
142
+ // CrewAI Builder (4)
143
+ "crew_validate",
144
+ "crew_kickoff",
145
+ "crew_status",
146
+ "crew_list",
147
+ // Knowledge Base (3)
148
+ "mem0_search",
149
+ "mem0_list",
150
+ "exa_web_search",
151
+ // Memory Stores — write (3)
152
+ "memory_store_read",
153
+ "memory_store_write",
154
+ "memory_store_delete",
155
+ // Agent Versioning — write (1)
156
+ "agent_version_rollback",
157
+ // Orchestration — write (2)
158
+ "orchestration_start",
159
+ "orchestration_thread_message",
160
+ // Outcomes — write (2)
161
+ "rubric_create",
162
+ "outcome_define",
163
+ // External Agents — manage + trigger (9)
164
+ "register_external_agent",
165
+ "update_external_agent",
166
+ "deregister_external_agent",
167
+ "trigger_external_agent",
168
+ "retry_external_agent_trigger",
169
+ "get_agent_triggers",
170
+ "create_agent_schedule",
171
+ "update_agent_schedule",
172
+ "delete_agent_schedule",
173
+ // LLM Providers — connect (1)
174
+ "connect_llm_provider",
175
+ ];
176
+ export const PRO_TOOLS = [...MVP_TOOLS, ...PRO_ADDITIONAL];
177
+ export const TOOL_TIERS = {
178
+ mvp: MVP_TOOLS,
179
+ pro: PRO_TOOLS,
180
+ enterprise: [], // populated dynamically from allTools keys
181
+ };
182
+ // ============================================
183
+ // Scope → Tier Mapping
184
+ // ============================================
185
+ const SCOPE_TO_TIER = {
186
+ "mcp:read": "mvp",
187
+ "mcp:execute": "mvp",
188
+ "mcp:pro": "pro",
189
+ "mcp:*": "enterprise",
190
+ };
191
+ /**
192
+ * Resolve the tool tier from an auth context.
193
+ * Checks scopes in order of precedence (enterprise > pro > mvp).
194
+ * Defaults to 'mvp' if no matching scope found.
195
+ */
196
+ export function resolveToolTier(authContext) {
197
+ if (!authContext)
198
+ return "mvp";
199
+ // Check plan directly
200
+ if (authContext.plan === "enterprise")
201
+ return "enterprise";
202
+ if (authContext.plan === "pro")
203
+ return "pro";
204
+ // Check scopes
205
+ const scopes = authContext.scopes ||
206
+ (authContext.scope ? authContext.scope.split(" ") : []);
207
+ if (scopes.includes("mcp:*"))
208
+ return "enterprise";
209
+ if (scopes.includes("mcp:pro"))
210
+ return "pro";
211
+ if (scopes.includes("mcp:execute") || scopes.includes("mcp:read"))
212
+ return "mvp";
213
+ return "mvp";
214
+ }
215
+ /**
216
+ * Read-only access: the introspection endpoint emits `mcp:read` (instead of
217
+ * `mcp:execute`) for tokens whose every scope ends in `:read`, alongside the
218
+ * plan tier scope (`mcp:pro` / `mcp:*`). Read-only tokens are limited to
219
+ * tools annotated readOnlyHint — on ListTools AND CallTool.
220
+ */
221
+ export function isReadOnlyScopes(scopes) {
222
+ return scopes.includes("mcp:read") && !scopes.includes("mcp:execute");
223
+ }
224
+ /**
225
+ * Filter tools by tier. Enterprise tier returns all tools.
226
+ * For mvp/pro, returns only tools in that tier's allowlist.
227
+ */
228
+ export function filterToolsByTier(allToolNames, tier) {
229
+ if (tier === "enterprise")
230
+ return allToolNames;
231
+ const allowed = new Set(TOOL_TIERS[tier]);
232
+ return allToolNames.filter((name) => allowed.has(name));
233
+ }
234
+ /** Tier counts for verification */
235
+ export const TIER_COUNTS = {
236
+ mvp: MVP_TOOLS.length,
237
+ pro: PRO_TOOLS.length,
238
+ };
239
+ //# sourceMappingURL=tiers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tiers.js","sourceRoot":"","sources":["../../src/tools/tiers.ts"],"names":[],"mappings":"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"}