@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
@@ -17,6 +17,12 @@
17
17
  export const jiraTools = {
18
18
  jira_search_issues: {
19
19
  name: 'jira_search_issues',
20
+ annotations: {
21
+ title: 'Jira Search Issues',
22
+ readOnlyHint: true,
23
+ destructiveHint: false,
24
+ openWorldHint: false,
25
+ },
20
26
  description: 'Search for Jira issues using JQL (Jira Query Language). Returns matching issues with summary, status, assignee, and priority. Supports cursor-based pagination.',
21
27
  inputSchema: {
22
28
  type: 'object',
@@ -43,6 +49,12 @@ export const jiraTools = {
43
49
  },
44
50
  jira_get_issue: {
45
51
  name: 'jira_get_issue',
52
+ annotations: {
53
+ title: 'Jira Get Issue',
54
+ readOnlyHint: true,
55
+ destructiveHint: false,
56
+ openWorldHint: false,
57
+ },
46
58
  description: 'Get detailed information about a specific Jira issue by its key (e.g., PROJ-123). Returns summary, status, priority, assignee, description, and more.',
47
59
  inputSchema: {
48
60
  type: 'object',
@@ -61,6 +73,12 @@ export const jiraTools = {
61
73
  },
62
74
  jira_create_issue: {
63
75
  name: 'jira_create_issue',
76
+ annotations: {
77
+ title: 'Jira Create Issue',
78
+ readOnlyHint: false,
79
+ destructiveHint: true,
80
+ openWorldHint: false,
81
+ },
64
82
  description: 'Create a new Jira issue. Requires project key and summary. Plain text descriptions are automatically converted to Atlassian Document Format (ADF).',
65
83
  inputSchema: {
66
84
  type: 'object',
@@ -100,6 +118,12 @@ export const jiraTools = {
100
118
  },
101
119
  jira_update_issue: {
102
120
  name: 'jira_update_issue',
121
+ annotations: {
122
+ title: 'Jira Update Issue',
123
+ readOnlyHint: false,
124
+ destructiveHint: true,
125
+ openWorldHint: false,
126
+ },
103
127
  description: 'Update fields on an existing Jira issue. Only send the fields you want to change. Plain text descriptions are automatically converted to ADF.',
104
128
  inputSchema: {
105
129
  type: 'object',
@@ -135,6 +159,12 @@ export const jiraTools = {
135
159
  },
136
160
  jira_add_comment: {
137
161
  name: 'jira_add_comment',
162
+ annotations: {
163
+ title: 'Jira Add Comment',
164
+ readOnlyHint: false,
165
+ destructiveHint: true,
166
+ openWorldHint: false,
167
+ },
138
168
  description: 'Add a comment to a Jira issue. Plain text is automatically converted to Atlassian Document Format (ADF).',
139
169
  inputSchema: {
140
170
  type: 'object',
@@ -157,6 +187,12 @@ export const jiraTools = {
157
187
  },
158
188
  jira_get_comments: {
159
189
  name: 'jira_get_comments',
190
+ annotations: {
191
+ title: 'Jira Get Comments',
192
+ readOnlyHint: true,
193
+ destructiveHint: false,
194
+ openWorldHint: false,
195
+ },
160
196
  description: 'Get comments on a Jira issue. Returns comment author, body, and timestamps.',
161
197
  inputSchema: {
162
198
  type: 'object',
@@ -179,6 +215,12 @@ export const jiraTools = {
179
215
  },
180
216
  jira_get_transitions: {
181
217
  name: 'jira_get_transitions',
218
+ annotations: {
219
+ title: 'Jira Get Transitions',
220
+ readOnlyHint: true,
221
+ destructiveHint: false,
222
+ openWorldHint: false,
223
+ },
182
224
  description: 'List available workflow transitions for a Jira issue. Use this to find the transition ID before calling jira_transition_issue.',
183
225
  inputSchema: {
184
226
  type: 'object',
@@ -197,6 +239,12 @@ export const jiraTools = {
197
239
  },
198
240
  jira_transition_issue: {
199
241
  name: 'jira_transition_issue',
242
+ annotations: {
243
+ title: 'Jira Transition Issue',
244
+ readOnlyHint: false,
245
+ destructiveHint: true,
246
+ openWorldHint: false,
247
+ },
200
248
  description: 'Transition a Jira issue to a new workflow status (e.g., "To Do" → "In Progress" → "Done"). Use jira_get_transitions first to find valid transition IDs.',
201
249
  inputSchema: {
202
250
  type: 'object',
@@ -219,6 +267,12 @@ export const jiraTools = {
219
267
  },
220
268
  jira_list_projects: {
221
269
  name: 'jira_list_projects',
270
+ annotations: {
271
+ title: 'Jira List Projects',
272
+ readOnlyHint: true,
273
+ destructiveHint: false,
274
+ openWorldHint: false,
275
+ },
222
276
  description: 'List Jira projects accessible to the authenticated user. Returns project key, name, and type.',
223
277
  inputSchema: {
224
278
  type: 'object',
@@ -236,6 +290,12 @@ export const jiraTools = {
236
290
  },
237
291
  jira_assign_issue: {
238
292
  name: 'jira_assign_issue',
293
+ annotations: {
294
+ title: 'Jira Assign Issue',
295
+ readOnlyHint: false,
296
+ destructiveHint: true,
297
+ openWorldHint: false,
298
+ },
239
299
  description: 'Assign or unassign a Jira issue. Provide the accountId of the assignee, or null to unassign.',
240
300
  inputSchema: {
241
301
  type: 'object',
@@ -257,372 +317,7 @@ export const jiraTools = {
257
317
  },
258
318
  },
259
319
  };
260
- async function callJiraGatewayProxy(client, payload) {
261
- const url = `${client.apiUrl}/api/v1/gateway/agents/proxy`;
262
- const response = await fetch(url, {
263
- method: 'POST',
264
- headers: {
265
- 'Content-Type': 'application/json',
266
- Authorization: `Bearer ${client.apiKey}`,
267
- ...(client.tenantId ? { 'X-Tenant-Id': client.tenantId } : {}),
268
- },
269
- body: JSON.stringify(payload),
270
- });
271
- if (!response.ok) {
272
- const errBody = await response.json().catch(() => ({
273
- error: `Gateway proxy returned ${response.status}`,
274
- }));
275
- throw new Error(errBody.error ||
276
- `Gateway proxy error: HTTP ${response.status}`);
277
- }
278
- return response.json();
279
- }
280
320
  // ============================================
281
321
  // Tool Handlers
282
322
  // ============================================
283
- export async function handleJiraSearchIssues(client, args) {
284
- try {
285
- const data = await callJiraGatewayProxy(client, {
286
- action: 'search_issues',
287
- provider_id: 'jira',
288
- jql: args.jql,
289
- max_results: args.max_results,
290
- next_page_token: args.next_page_token,
291
- connection_id: args.connection_id,
292
- });
293
- const issues = data.response?.issues || [];
294
- const total = data.response?.total || 0;
295
- const nextPageToken = data.response?.nextPageToken;
296
- let text = `# Jira Search Results\n\n`;
297
- text += `**JQL:** \`${args.jql}\`\n`;
298
- text += `**Total:** ${total} | **Showing:** ${issues.length}\n`;
299
- text += `**Latency:** ${data.latency_ms}ms\n\n`;
300
- if (issues.length > 0) {
301
- text += `| Key | Summary | Status | Assignee | Priority |\n`;
302
- text += `|-----|---------|--------|----------|----------|\n`;
303
- for (const issue of issues) {
304
- const f = issue.fields || {};
305
- text += `| ${issue.key} | ${f.summary || 'N/A'} | ${f.status?.name || 'N/A'} | ${f.assignee?.displayName || 'Unassigned'} | ${f.priority?.name || 'N/A'} |\n`;
306
- }
307
- }
308
- else {
309
- text += `No issues found matching the query.\n`;
310
- }
311
- if (nextPageToken) {
312
- text += `\n**Next page:** pass \`next_page_token: "${nextPageToken}"\` to get more results.`;
313
- }
314
- return { content: [{ type: 'text', text }] };
315
- }
316
- catch (error) {
317
- return {
318
- content: [{ type: 'text', text: `Jira search failed: ${error.message}` }],
319
- isError: true,
320
- };
321
- }
322
- }
323
- export async function handleJiraGetIssue(client, args) {
324
- try {
325
- const data = await callJiraGatewayProxy(client, {
326
- action: 'get_issue',
327
- provider_id: 'jira',
328
- issue_key: args.issue_key,
329
- connection_id: args.connection_id,
330
- });
331
- const issue = data.response || {};
332
- const f = issue.fields || {};
333
- let text = `# ${args.issue_key}: ${f.summary || 'N/A'}\n\n`;
334
- text += `- **Status:** ${f.status?.name || 'N/A'}\n`;
335
- text += `- **Type:** ${f.issuetype?.name || 'N/A'}\n`;
336
- text += `- **Priority:** ${f.priority?.name || 'N/A'}\n`;
337
- text += `- **Assignee:** ${f.assignee?.displayName || 'Unassigned'}\n`;
338
- text += `- **Reporter:** ${f.reporter?.displayName || 'N/A'}\n`;
339
- text += `- **Labels:** ${(f.labels || []).join(', ') || 'None'}\n`;
340
- text += `- **Created:** ${f.created || 'N/A'}\n`;
341
- text += `- **Updated:** ${f.updated || 'N/A'}\n`;
342
- text += `- **Latency:** ${data.latency_ms}ms\n`;
343
- // Extract plain text from ADF description if possible
344
- if (f.description) {
345
- text += `\n## Description\n\n`;
346
- if (typeof f.description === 'string') {
347
- text += f.description;
348
- }
349
- else if (f.description?.content) {
350
- // Simplified ADF-to-text extraction
351
- for (const block of f.description.content) {
352
- if (block.type === 'paragraph' && block.content) {
353
- for (const inline of block.content) {
354
- if (inline.type === 'text')
355
- text += inline.text;
356
- if (inline.type === 'hardBreak')
357
- text += '\n';
358
- }
359
- text += '\n';
360
- }
361
- }
362
- }
363
- }
364
- return { content: [{ type: 'text', text }] };
365
- }
366
- catch (error) {
367
- return {
368
- content: [{ type: 'text', text: `Failed to get Jira issue: ${error.message}` }],
369
- isError: true,
370
- };
371
- }
372
- }
373
- export async function handleJiraCreateIssue(client, args) {
374
- try {
375
- const issueFields = {
376
- summary: args.summary,
377
- };
378
- if (args.description)
379
- issueFields.description = args.description;
380
- if (args.priority)
381
- issueFields.priority = { name: args.priority };
382
- if (args.labels)
383
- issueFields.labels = args.labels;
384
- const data = await callJiraGatewayProxy(client, {
385
- action: 'create_issue',
386
- provider_id: 'jira',
387
- project_key: args.project_key,
388
- issue_type: args.issue_type || 'Task',
389
- issue_fields: issueFields,
390
- connection_id: args.connection_id,
391
- });
392
- const issue = data.response || {};
393
- let text = `# Jira Issue Created\n\n`;
394
- text += `- **Key:** \`${issue.key}\`\n`;
395
- text += `- **ID:** ${issue.id}\n`;
396
- text += `- **Project:** ${args.project_key}\n`;
397
- text += `- **Summary:** ${args.summary}\n`;
398
- text += `- **Type:** ${args.issue_type || 'Task'}\n`;
399
- text += `- **Latency:** ${data.latency_ms}ms\n`;
400
- if (issue.self) {
401
- text += `\n**API URL:** ${issue.self}`;
402
- }
403
- return { content: [{ type: 'text', text }] };
404
- }
405
- catch (error) {
406
- return {
407
- content: [{ type: 'text', text: `Failed to create Jira issue: ${error.message}` }],
408
- isError: true,
409
- };
410
- }
411
- }
412
- export async function handleJiraUpdateIssue(client, args) {
413
- try {
414
- const issueFields = {};
415
- if (args.summary)
416
- issueFields.summary = args.summary;
417
- if (args.description)
418
- issueFields.description = args.description;
419
- if (args.priority)
420
- issueFields.priority = { name: args.priority };
421
- if (args.labels)
422
- issueFields.labels = args.labels;
423
- const data = await callJiraGatewayProxy(client, {
424
- action: 'update_issue',
425
- provider_id: 'jira',
426
- issue_key: args.issue_key,
427
- issue_fields: issueFields,
428
- connection_id: args.connection_id,
429
- });
430
- let text = `# Jira Issue Updated\n\n`;
431
- text += `- **Issue:** \`${args.issue_key}\`\n`;
432
- text += `- **Updated fields:** ${Object.keys(issueFields).join(', ')}\n`;
433
- text += `- **Latency:** ${data.latency_ms}ms\n`;
434
- return { content: [{ type: 'text', text }] };
435
- }
436
- catch (error) {
437
- return {
438
- content: [{ type: 'text', text: `Failed to update Jira issue: ${error.message}` }],
439
- isError: true,
440
- };
441
- }
442
- }
443
- export async function handleJiraAddComment(client, args) {
444
- try {
445
- const data = await callJiraGatewayProxy(client, {
446
- action: 'add_comment',
447
- provider_id: 'jira',
448
- issue_key: args.issue_key,
449
- comment_body: args.comment_body,
450
- connection_id: args.connection_id,
451
- });
452
- const comment = data.response || {};
453
- let text = `# Comment Added\n\n`;
454
- text += `- **Issue:** \`${args.issue_key}\`\n`;
455
- text += `- **Comment ID:** ${comment.id || 'N/A'}\n`;
456
- text += `- **Author:** ${comment.author?.displayName || 'N/A'}\n`;
457
- text += `- **Latency:** ${data.latency_ms}ms\n`;
458
- return { content: [{ type: 'text', text }] };
459
- }
460
- catch (error) {
461
- return {
462
- content: [{ type: 'text', text: `Failed to add comment: ${error.message}` }],
463
- isError: true,
464
- };
465
- }
466
- }
467
- export async function handleJiraGetComments(client, args) {
468
- try {
469
- const data = await callJiraGatewayProxy(client, {
470
- action: 'get_comments',
471
- provider_id: 'jira',
472
- issue_key: args.issue_key,
473
- max_results: args.max_results,
474
- connection_id: args.connection_id,
475
- });
476
- const comments = data.response?.comments || [];
477
- const total = data.response?.total || 0;
478
- let text = `# Comments on ${args.issue_key}\n\n`;
479
- text += `**Total:** ${total} | **Showing:** ${comments.length}\n`;
480
- text += `**Latency:** ${data.latency_ms}ms\n\n`;
481
- if (comments.length > 0) {
482
- for (const comment of comments) {
483
- const author = comment.author?.displayName || 'Unknown';
484
- const created = comment.created || 'N/A';
485
- text += `### ${author} — ${created}\n`;
486
- // Simplified ADF-to-text extraction for comment body
487
- if (comment.body?.content) {
488
- for (const block of comment.body.content) {
489
- if (block.type === 'paragraph' && block.content) {
490
- for (const inline of block.content) {
491
- if (inline.type === 'text')
492
- text += inline.text;
493
- if (inline.type === 'hardBreak')
494
- text += '\n';
495
- }
496
- text += '\n';
497
- }
498
- }
499
- }
500
- text += '\n';
501
- }
502
- }
503
- else {
504
- text += `No comments found.\n`;
505
- }
506
- return { content: [{ type: 'text', text }] };
507
- }
508
- catch (error) {
509
- return {
510
- content: [{ type: 'text', text: `Failed to get comments: ${error.message}` }],
511
- isError: true,
512
- };
513
- }
514
- }
515
- export async function handleJiraGetTransitions(client, args) {
516
- try {
517
- const data = await callJiraGatewayProxy(client, {
518
- action: 'get_transitions',
519
- provider_id: 'jira',
520
- issue_key: args.issue_key,
521
- connection_id: args.connection_id,
522
- });
523
- const transitions = data.response?.transitions || [];
524
- let text = `# Available Transitions for ${args.issue_key}\n\n`;
525
- text += `**Latency:** ${data.latency_ms}ms\n\n`;
526
- if (transitions.length > 0) {
527
- text += `| ID | Name | To Status |\n`;
528
- text += `|----|------|-----------|\n`;
529
- for (const t of transitions) {
530
- text += `| ${t.id} | ${t.name} | ${t.to?.name || 'N/A'} |\n`;
531
- }
532
- text += `\nUse \`jira_transition_issue\` with the desired transition ID to change the issue status.`;
533
- }
534
- else {
535
- text += `No transitions available (the issue may already be in its final status).\n`;
536
- }
537
- return { content: [{ type: 'text', text }] };
538
- }
539
- catch (error) {
540
- return {
541
- content: [{ type: 'text', text: `Failed to get transitions: ${error.message}` }],
542
- isError: true,
543
- };
544
- }
545
- }
546
- export async function handleJiraTransitionIssue(client, args) {
547
- try {
548
- const data = await callJiraGatewayProxy(client, {
549
- action: 'transition_issue',
550
- provider_id: 'jira',
551
- issue_key: args.issue_key,
552
- transition_id: args.transition_id,
553
- connection_id: args.connection_id,
554
- });
555
- let text = `# Issue Transitioned\n\n`;
556
- text += `- **Issue:** \`${args.issue_key}\`\n`;
557
- text += `- **Transition ID:** ${args.transition_id}\n`;
558
- text += `- **Success:** ${data.success}\n`;
559
- text += `- **Latency:** ${data.latency_ms}ms\n`;
560
- return { content: [{ type: 'text', text }] };
561
- }
562
- catch (error) {
563
- return {
564
- content: [{ type: 'text', text: `Failed to transition issue: ${error.message}` }],
565
- isError: true,
566
- };
567
- }
568
- }
569
- export async function handleJiraListProjects(client, args) {
570
- try {
571
- const data = await callJiraGatewayProxy(client, {
572
- action: 'list_projects',
573
- provider_id: 'jira',
574
- max_results: args.max_results,
575
- connection_id: args.connection_id,
576
- });
577
- const projects = Array.isArray(data.response) ? data.response : [];
578
- let text = `# Jira Projects\n\n`;
579
- text += `**Projects Found:** ${projects.length}\n`;
580
- text += `**Latency:** ${data.latency_ms}ms\n\n`;
581
- if (projects.length > 0) {
582
- text += `| Key | Name | Type | Style |\n`;
583
- text += `|-----|------|------|-------|\n`;
584
- for (const p of projects) {
585
- text += `| ${p.key} | ${p.name} | ${p.projectTypeKey || 'N/A'} | ${p.style || 'N/A'} |\n`;
586
- }
587
- }
588
- else {
589
- text += `No projects found.\n`;
590
- }
591
- return { content: [{ type: 'text', text }] };
592
- }
593
- catch (error) {
594
- return {
595
- content: [{ type: 'text', text: `Failed to list projects: ${error.message}` }],
596
- isError: true,
597
- };
598
- }
599
- }
600
- export async function handleJiraAssignIssue(client, args) {
601
- try {
602
- const data = await callJiraGatewayProxy(client, {
603
- action: 'assign_issue',
604
- provider_id: 'jira',
605
- issue_key: args.issue_key,
606
- assignee_account_id: args.assignee_account_id ?? null,
607
- connection_id: args.connection_id,
608
- });
609
- const action = args.assignee_account_id ? 'Assigned' : 'Unassigned';
610
- let text = `# Issue ${action}\n\n`;
611
- text += `- **Issue:** \`${args.issue_key}\`\n`;
612
- if (args.assignee_account_id) {
613
- text += `- **Assignee Account ID:** ${args.assignee_account_id}\n`;
614
- }
615
- else {
616
- text += `- **Assignee:** Unassigned\n`;
617
- }
618
- text += `- **Latency:** ${data.latency_ms}ms\n`;
619
- return { content: [{ type: 'text', text }] };
620
- }
621
- catch (error) {
622
- return {
623
- content: [{ type: 'text', text: `Failed to assign issue: ${error.message}` }],
624
- isError: true,
625
- };
626
- }
627
- }
628
323
  //# sourceMappingURL=jira.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jira.js","sourceRoot":"","sources":["../../src/tools/jira.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jira.js","sourceRoot":"","sources":["../../src/tools/jira.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * LLM Provider Connection Tools
3
+ *
4
+ * Tool definitions only — dispatch goes through the @dobbyai/capability-core
5
+ * registry (ADR-019). Handler: packages/capability-core/src/capabilities/llm-providers.ts.
6
+ */
7
+ export declare const llmProviderTools: {
8
+ connect_llm_provider: {
9
+ name: string;
10
+ annotations: {
11
+ title: string;
12
+ readOnlyHint: boolean;
13
+ destructiveHint: boolean;
14
+ openWorldHint: boolean;
15
+ };
16
+ description: string;
17
+ inputSchema: {
18
+ type: "object";
19
+ properties: {
20
+ provider: {
21
+ type: string;
22
+ enum: string[];
23
+ description: string;
24
+ };
25
+ api_key: {
26
+ type: string;
27
+ description: string;
28
+ };
29
+ display_name: {
30
+ type: string;
31
+ description: string;
32
+ };
33
+ default_model: {
34
+ type: string;
35
+ description: string;
36
+ };
37
+ base_url: {
38
+ type: string;
39
+ description: string;
40
+ };
41
+ is_default: {
42
+ type: string;
43
+ description: string;
44
+ };
45
+ };
46
+ required: string[];
47
+ };
48
+ };
49
+ };
50
+ //# sourceMappingURL=llm-providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-providers.d.ts","sourceRoot":"","sources":["../../src/tools/llm-providers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmC5B,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * LLM Provider Connection Tools
3
+ *
4
+ * Tool definitions only — dispatch goes through the @dobbyai/capability-core
5
+ * registry (ADR-019). Handler: packages/capability-core/src/capabilities/llm-providers.ts.
6
+ */
7
+ export const llmProviderTools = {
8
+ connect_llm_provider: {
9
+ name: 'connect_llm_provider',
10
+ annotations: {
11
+ title: 'Connect LLM Provider',
12
+ readOnlyHint: false,
13
+ destructiveHint: false,
14
+ openWorldHint: false,
15
+ },
16
+ description: "Connect an LLM provider for this tenant by supplying its API key. Run list_services first to see which providers are 'available to connect'. The key is encrypted at rest (AES-256-GCM, per-tenant key) and never returned by any tool — but it IS sent as a plain argument here, so it passes through this conversation's context; prefer a scoped/rotatable key over your primary provider key. Requires tenant_admin.",
17
+ inputSchema: {
18
+ type: 'object',
19
+ properties: {
20
+ provider: {
21
+ type: 'string',
22
+ enum: ['claude', 'openai', 'gemini', 'grok', 'bedrock', 'llama', 'perplexity', 'deepseek', 'mistral'],
23
+ description: 'Provider to connect.',
24
+ },
25
+ api_key: {
26
+ type: 'string',
27
+ description: 'The provider API key. Never stored in plaintext or echoed back — but it does pass through this conversation, so prefer a scoped/rotatable key.',
28
+ },
29
+ display_name: { type: 'string', description: "Optional display name (defaults to the provider's name)." },
30
+ default_model: {
31
+ type: 'string',
32
+ description: "Optional default model id (defaults to the provider's first model).",
33
+ },
34
+ base_url: { type: 'string', description: 'Optional custom base URL (self-hosted/proxy endpoints).' },
35
+ is_default: { type: 'boolean', description: "Make this the tenant's default provider for gateway routing." },
36
+ },
37
+ required: ['provider', 'api_key'],
38
+ },
39
+ },
40
+ };
41
+ //# sourceMappingURL=llm-providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-providers.js","sourceRoot":"","sources":["../../src/tools/llm-providers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,oBAAoB,EAAE;QACpB,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE;YACX,KAAK,EAAE,sBAAsB;YAC7B,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EACT,0ZAA0Z;QAC5Z,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC;oBACrG,WAAW,EAAE,sBAAsB;iBACpC;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,gJAAgJ;iBACnJ;gBACD,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0DAA0D,EAAE;gBACzG,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qEAAqE;iBACnF;gBACD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yDAAyD,EAAE;gBACpG,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,8DAA8D,EAAE;aAC7G;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;SAClC;KACF;CACF,CAAC"}