@vertesia/tools-sdk 1.3.0 → 1.4.0-dev.20260615.051508Z

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 (271) hide show
  1. package/lib/{types/ActivityCollection.d.ts → ActivityCollection.d.ts} +7 -7
  2. package/lib/ActivityCollection.d.ts.map +1 -0
  3. package/lib/{esm/ActivityCollection.js → ActivityCollection.js} +6 -6
  4. package/lib/ActivityCollection.js.map +1 -0
  5. package/lib/{types/ContentTypesCollection.d.ts → ContentTypesCollection.d.ts} +2 -2
  6. package/lib/ContentTypesCollection.d.ts.map +1 -0
  7. package/lib/{esm/ContentTypesCollection.js → ContentTypesCollection.js} +3 -3
  8. package/lib/ContentTypesCollection.js.map +1 -0
  9. package/lib/{types/InteractionCollection.d.ts → InteractionCollection.d.ts} +2 -2
  10. package/lib/InteractionCollection.d.ts.map +1 -0
  11. package/lib/{esm/InteractionCollection.js → InteractionCollection.js} +3 -3
  12. package/lib/InteractionCollection.js.map +1 -0
  13. package/lib/{types/RenderingTemplateCollection.d.ts → RenderingTemplateCollection.d.ts} +1 -1
  14. package/lib/RenderingTemplateCollection.d.ts.map +1 -0
  15. package/lib/{esm/RenderingTemplateCollection.js → RenderingTemplateCollection.js} +3 -3
  16. package/lib/RenderingTemplateCollection.js.map +1 -0
  17. package/lib/{types/SkillCollection.d.ts → SkillCollection.d.ts} +5 -5
  18. package/lib/SkillCollection.d.ts.map +1 -0
  19. package/lib/{esm/SkillCollection.js → SkillCollection.js} +68 -51
  20. package/lib/SkillCollection.js.map +1 -0
  21. package/lib/{types/ToolCollection.d.ts → ToolCollection.d.ts} +10 -10
  22. package/lib/ToolCollection.d.ts.map +1 -0
  23. package/lib/{esm/ToolCollection.js → ToolCollection.js} +21 -18
  24. package/lib/ToolCollection.js.map +1 -0
  25. package/lib/ToolRegistry.d.ts +22 -0
  26. package/lib/ToolRegistry.d.ts.map +1 -0
  27. package/lib/{esm/ToolRegistry.js → ToolRegistry.js} +6 -36
  28. package/lib/ToolRegistry.js.map +1 -0
  29. package/lib/{types/auth.d.ts → auth.d.ts} +5 -5
  30. package/lib/auth.d.ts.map +1 -0
  31. package/lib/{esm/auth.js → auth.js} +23 -17
  32. package/lib/auth.js.map +1 -0
  33. package/lib/build/validate.d.ts.map +1 -0
  34. package/lib/build/validate.js.map +1 -0
  35. package/lib/copy-assets.d.ts.map +1 -0
  36. package/lib/{esm/copy-assets.js → copy-assets.js} +4 -7
  37. package/lib/copy-assets.js.map +1 -0
  38. package/lib/index.d.ts +16 -0
  39. package/lib/index.d.ts.map +1 -0
  40. package/lib/index.js +15 -0
  41. package/lib/index.js.map +1 -0
  42. package/lib/server/activities.d.ts +4 -0
  43. package/lib/server/activities.d.ts.map +1 -0
  44. package/lib/{esm/server → server}/activities.js +12 -9
  45. package/lib/server/activities.js.map +1 -0
  46. package/lib/server/app-package.d.ts +12 -0
  47. package/lib/server/app-package.d.ts.map +1 -0
  48. package/lib/server/app-package.js +197 -0
  49. package/lib/server/app-package.js.map +1 -0
  50. package/lib/server/content-types.d.ts +4 -0
  51. package/lib/server/content-types.d.ts.map +1 -0
  52. package/lib/server/content-types.js +100 -0
  53. package/lib/server/content-types.js.map +1 -0
  54. package/lib/server/dashboards.d.ts +4 -0
  55. package/lib/server/dashboards.d.ts.map +1 -0
  56. package/lib/server/dashboards.js +25 -0
  57. package/lib/server/dashboards.js.map +1 -0
  58. package/lib/server/interactions.d.ts +4 -0
  59. package/lib/server/interactions.d.ts.map +1 -0
  60. package/lib/{esm/server → server}/interactions.js +16 -16
  61. package/lib/server/interactions.js.map +1 -0
  62. package/lib/server/mcp.d.ts +4 -0
  63. package/lib/server/mcp.d.ts.map +1 -0
  64. package/lib/{esm/server → server}/mcp.js +5 -4
  65. package/lib/server/mcp.js.map +1 -0
  66. package/lib/server/processes.d.ts +4 -0
  67. package/lib/server/processes.d.ts.map +1 -0
  68. package/lib/server/processes.js +26 -0
  69. package/lib/server/processes.js.map +1 -0
  70. package/lib/server/site.d.ts +4 -0
  71. package/lib/server/site.d.ts.map +1 -0
  72. package/lib/{esm/server → server}/site.js +4 -2
  73. package/lib/server/site.js.map +1 -0
  74. package/lib/server/skills.d.ts +4 -0
  75. package/lib/server/skills.d.ts.map +1 -0
  76. package/lib/{esm/server → server}/skills.js +14 -12
  77. package/lib/server/skills.js.map +1 -0
  78. package/lib/server/templates.d.ts +4 -0
  79. package/lib/server/templates.d.ts.map +1 -0
  80. package/lib/{esm/server → server}/templates.js +10 -10
  81. package/lib/server/templates.js.map +1 -0
  82. package/lib/server/tools.d.ts +4 -0
  83. package/lib/server/tools.d.ts.map +1 -0
  84. package/lib/{esm/server → server}/tools.js +7 -9
  85. package/lib/server/tools.js.map +1 -0
  86. package/lib/{types/server → server}/types.d.ts +21 -16
  87. package/lib/server/types.d.ts.map +1 -0
  88. package/lib/{cjs → server}/types.js.map +1 -1
  89. package/lib/server/widgets.d.ts +4 -0
  90. package/lib/server/widgets.d.ts.map +1 -0
  91. package/lib/server/widgets.js.map +1 -0
  92. package/lib/{types/server.d.ts → server.d.ts} +3 -3
  93. package/lib/server.d.ts.map +1 -0
  94. package/lib/{esm/server.js → server.js} +28 -22
  95. package/lib/server.js.map +1 -0
  96. package/lib/site/styles.d.ts.map +1 -0
  97. package/lib/{esm/site → site}/styles.js.map +1 -1
  98. package/lib/{types/site → site}/templates.d.ts +9 -9
  99. package/lib/site/templates.d.ts.map +1 -0
  100. package/lib/{esm/site → site}/templates.js +152 -98
  101. package/lib/site/templates.js.map +1 -0
  102. package/lib/{types/types.d.ts → types.d.ts} +29 -16
  103. package/lib/types.d.ts.map +1 -0
  104. package/lib/types.js.map +1 -0
  105. package/lib/utils.d.ts.map +1 -0
  106. package/lib/{esm/utils.js → utils.js} +11 -5
  107. package/lib/utils.js.map +1 -0
  108. package/package.json +20 -22
  109. package/src/ActivityCollection.test.ts +60 -59
  110. package/src/ActivityCollection.ts +27 -20
  111. package/src/ContentTypesCollection.ts +6 -9
  112. package/src/InteractionCollection.ts +6 -8
  113. package/src/RenderingTemplateCollection.ts +49 -51
  114. package/src/SkillCollection.ts +91 -72
  115. package/src/ToolCollection.ts +52 -43
  116. package/src/ToolRegistry.ts +20 -50
  117. package/src/auth.ts +35 -27
  118. package/src/copy-assets.ts +5 -12
  119. package/src/index.ts +15 -15
  120. package/src/server/activities.test.ts +70 -67
  121. package/src/server/activities.ts +17 -13
  122. package/src/server/app-package.test.ts +140 -0
  123. package/src/server/app-package.ts +115 -52
  124. package/src/server/content-types.test.ts +64 -0
  125. package/src/server/content-types.ts +53 -25
  126. package/src/server/dashboards.ts +31 -0
  127. package/src/server/interactions.ts +29 -28
  128. package/src/server/mcp.ts +16 -16
  129. package/src/server/processes.ts +35 -0
  130. package/src/server/site.ts +7 -15
  131. package/src/server/skills.ts +19 -18
  132. package/src/server/templates.ts +82 -80
  133. package/src/server/tools.ts +12 -16
  134. package/src/server/types.ts +29 -20
  135. package/src/server/widgets.ts +5 -9
  136. package/src/server.ts +55 -47
  137. package/src/site/styles.ts +1 -1
  138. package/src/site/templates.ts +259 -157
  139. package/src/types.ts +55 -31
  140. package/src/utils.ts +11 -6
  141. package/lib/cjs/ActivityCollection.js +0 -93
  142. package/lib/cjs/ActivityCollection.js.map +0 -1
  143. package/lib/cjs/ContentTypesCollection.js +0 -43
  144. package/lib/cjs/ContentTypesCollection.js.map +0 -1
  145. package/lib/cjs/InteractionCollection.js +0 -43
  146. package/lib/cjs/InteractionCollection.js.map +0 -1
  147. package/lib/cjs/RenderingTemplateCollection.js +0 -43
  148. package/lib/cjs/RenderingTemplateCollection.js.map +0 -1
  149. package/lib/cjs/SkillCollection.js +0 -384
  150. package/lib/cjs/SkillCollection.js.map +0 -1
  151. package/lib/cjs/ToolCollection.js +0 -221
  152. package/lib/cjs/ToolCollection.js.map +0 -1
  153. package/lib/cjs/ToolRegistry.js +0 -95
  154. package/lib/cjs/ToolRegistry.js.map +0 -1
  155. package/lib/cjs/auth.js +0 -131
  156. package/lib/cjs/auth.js.map +0 -1
  157. package/lib/cjs/build/validate.js +0 -7
  158. package/lib/cjs/build/validate.js.map +0 -1
  159. package/lib/cjs/copy-assets.js +0 -84
  160. package/lib/cjs/copy-assets.js.map +0 -1
  161. package/lib/cjs/index.js +0 -34
  162. package/lib/cjs/index.js.map +0 -1
  163. package/lib/cjs/package.json +0 -3
  164. package/lib/cjs/server/activities.js +0 -103
  165. package/lib/cjs/server/activities.js.map +0 -1
  166. package/lib/cjs/server/app-package.js +0 -154
  167. package/lib/cjs/server/app-package.js.map +0 -1
  168. package/lib/cjs/server/content-types.js +0 -73
  169. package/lib/cjs/server/content-types.js.map +0 -1
  170. package/lib/cjs/server/interactions.js +0 -101
  171. package/lib/cjs/server/interactions.js.map +0 -1
  172. package/lib/cjs/server/mcp.js +0 -45
  173. package/lib/cjs/server/mcp.js.map +0 -1
  174. package/lib/cjs/server/site.js +0 -48
  175. package/lib/cjs/server/site.js.map +0 -1
  176. package/lib/cjs/server/skills.js +0 -124
  177. package/lib/cjs/server/skills.js.map +0 -1
  178. package/lib/cjs/server/templates.js +0 -67
  179. package/lib/cjs/server/templates.js.map +0 -1
  180. package/lib/cjs/server/tools.js +0 -87
  181. package/lib/cjs/server/tools.js.map +0 -1
  182. package/lib/cjs/server/types.js +0 -3
  183. package/lib/cjs/server/types.js.map +0 -1
  184. package/lib/cjs/server/widgets.js +0 -27
  185. package/lib/cjs/server/widgets.js.map +0 -1
  186. package/lib/cjs/server.js +0 -142
  187. package/lib/cjs/server.js.map +0 -1
  188. package/lib/cjs/site/styles.js +0 -692
  189. package/lib/cjs/site/styles.js.map +0 -1
  190. package/lib/cjs/site/templates.js +0 -1320
  191. package/lib/cjs/site/templates.js.map +0 -1
  192. package/lib/cjs/types.js +0 -3
  193. package/lib/cjs/utils.js +0 -44
  194. package/lib/cjs/utils.js.map +0 -1
  195. package/lib/esm/ActivityCollection.js.map +0 -1
  196. package/lib/esm/ContentTypesCollection.js.map +0 -1
  197. package/lib/esm/InteractionCollection.js.map +0 -1
  198. package/lib/esm/RenderingTemplateCollection.js.map +0 -1
  199. package/lib/esm/SkillCollection.js.map +0 -1
  200. package/lib/esm/ToolCollection.js.map +0 -1
  201. package/lib/esm/ToolRegistry.js.map +0 -1
  202. package/lib/esm/auth.js.map +0 -1
  203. package/lib/esm/build/validate.js.map +0 -1
  204. package/lib/esm/copy-assets.js.map +0 -1
  205. package/lib/esm/index.js +0 -14
  206. package/lib/esm/index.js.map +0 -1
  207. package/lib/esm/server/activities.js.map +0 -1
  208. package/lib/esm/server/app-package.js +0 -151
  209. package/lib/esm/server/app-package.js.map +0 -1
  210. package/lib/esm/server/content-types.js +0 -70
  211. package/lib/esm/server/content-types.js.map +0 -1
  212. package/lib/esm/server/interactions.js.map +0 -1
  213. package/lib/esm/server/mcp.js.map +0 -1
  214. package/lib/esm/server/site.js.map +0 -1
  215. package/lib/esm/server/skills.js.map +0 -1
  216. package/lib/esm/server/templates.js.map +0 -1
  217. package/lib/esm/server/tools.js.map +0 -1
  218. package/lib/esm/server/types.js.map +0 -1
  219. package/lib/esm/server/widgets.js.map +0 -1
  220. package/lib/esm/server.js.map +0 -1
  221. package/lib/esm/site/templates.js.map +0 -1
  222. package/lib/esm/types.js.map +0 -1
  223. package/lib/esm/utils.js.map +0 -1
  224. package/lib/types/ActivityCollection.d.ts.map +0 -1
  225. package/lib/types/ContentTypesCollection.d.ts.map +0 -1
  226. package/lib/types/InteractionCollection.d.ts.map +0 -1
  227. package/lib/types/RenderingTemplateCollection.d.ts.map +0 -1
  228. package/lib/types/SkillCollection.d.ts.map +0 -1
  229. package/lib/types/ToolCollection.d.ts.map +0 -1
  230. package/lib/types/ToolRegistry.d.ts +0 -22
  231. package/lib/types/ToolRegistry.d.ts.map +0 -1
  232. package/lib/types/auth.d.ts.map +0 -1
  233. package/lib/types/build/validate.d.ts.map +0 -1
  234. package/lib/types/copy-assets.d.ts.map +0 -1
  235. package/lib/types/index.d.ts +0 -14
  236. package/lib/types/index.d.ts.map +0 -1
  237. package/lib/types/server/activities.d.ts +0 -4
  238. package/lib/types/server/activities.d.ts.map +0 -1
  239. package/lib/types/server/app-package.d.ts +0 -4
  240. package/lib/types/server/app-package.d.ts.map +0 -1
  241. package/lib/types/server/content-types.d.ts +0 -4
  242. package/lib/types/server/content-types.d.ts.map +0 -1
  243. package/lib/types/server/interactions.d.ts +0 -4
  244. package/lib/types/server/interactions.d.ts.map +0 -1
  245. package/lib/types/server/mcp.d.ts +0 -4
  246. package/lib/types/server/mcp.d.ts.map +0 -1
  247. package/lib/types/server/site.d.ts +0 -4
  248. package/lib/types/server/site.d.ts.map +0 -1
  249. package/lib/types/server/skills.d.ts +0 -4
  250. package/lib/types/server/skills.d.ts.map +0 -1
  251. package/lib/types/server/templates.d.ts +0 -4
  252. package/lib/types/server/templates.d.ts.map +0 -1
  253. package/lib/types/server/tools.d.ts +0 -4
  254. package/lib/types/server/tools.d.ts.map +0 -1
  255. package/lib/types/server/types.d.ts.map +0 -1
  256. package/lib/types/server/widgets.d.ts +0 -4
  257. package/lib/types/server/widgets.d.ts.map +0 -1
  258. package/lib/types/server.d.ts.map +0 -1
  259. package/lib/types/site/styles.d.ts.map +0 -1
  260. package/lib/types/site/templates.d.ts.map +0 -1
  261. package/lib/types/types.d.ts.map +0 -1
  262. package/lib/types/utils.d.ts.map +0 -1
  263. /package/lib/{types/build → build}/validate.d.ts +0 -0
  264. /package/lib/{esm/build → build}/validate.js +0 -0
  265. /package/lib/{types/copy-assets.d.ts → copy-assets.d.ts} +0 -0
  266. /package/lib/{esm/server → server}/types.js +0 -0
  267. /package/lib/{esm/server → server}/widgets.js +0 -0
  268. /package/lib/{types/site → site}/styles.d.ts +0 -0
  269. /package/lib/{esm/site → site}/styles.js +0 -0
  270. /package/lib/{esm/types.js → types.js} +0 -0
  271. /package/lib/{types/utils.d.ts → utils.d.ts} +0 -0
@@ -1,10 +1,10 @@
1
- import { existsSync, readdirSync, statSync } from "fs";
2
- import { HTTPException } from "hono/http-exception";
3
- import { join } from "path";
4
- import { pathToFileURL } from "url";
5
- import { authorize } from "./auth.js";
6
- import { ToolRegistry } from "./ToolRegistry.js";
7
- import { kebabCaseToTitle } from "./utils.js";
1
+ import { existsSync, readdirSync, statSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
4
+ import { HTTPException } from 'hono/http-exception';
5
+ import { authorize } from './auth.js';
6
+ import { ToolRegistry } from './ToolRegistry.js';
7
+ import { kebabCaseToTitle } from './utils.js';
8
8
  /**
9
9
  * Implements a tools collection endpoint
10
10
  */
@@ -51,7 +51,7 @@ export class ToolCollection {
51
51
  else {
52
52
  return { done: true, value: undefined };
53
53
  }
54
- }
54
+ },
55
55
  };
56
56
  }
57
57
  map(callback) {
@@ -77,25 +77,28 @@ export class ToolCollection {
77
77
  const r = await this.tools.runTool(payload, session);
78
78
  return ctx.json({
79
79
  ...r,
80
- tool_use_id: payload.tool_use.id
80
+ tool_use_id: payload.tool_use.id,
81
81
  });
82
82
  }
83
- catch (err) { // HTTPException ?
84
- const status = err.status || 500;
83
+ catch (err) {
84
+ // HTTPException ?
85
+ const status = err instanceof HTTPException ? err.status : 500;
86
+ const message = err instanceof Error ? err.message : 'Error executing tool';
87
+ const stack = err instanceof Error ? err.stack : undefined;
85
88
  const toolName = payload?.tool_use?.tool_name;
86
89
  const toolUseId = payload?.tool_use?.id;
87
- console.error("[ToolCollection] Tool execution failed", {
90
+ console.error('[ToolCollection] Tool execution failed', {
88
91
  collection: this.name,
89
92
  tool: toolName,
90
93
  toolUseId,
91
- error: err.message,
94
+ error: message,
92
95
  status,
93
- stack: err.stack,
96
+ stack,
94
97
  });
95
98
  return ctx.json({
96
- tool_use_id: toolUseId || "undefined",
97
- error: err.message || "Error executing tool",
98
- status
99
+ tool_use_id: toolUseId || 'undefined',
100
+ error: message,
101
+ status,
99
102
  }, status);
100
103
  }
101
104
  }
@@ -116,7 +119,7 @@ function readPayload(ctx) {
116
119
  }
117
120
  // If no payload, middleware couldn't parse/validate - return error
118
121
  throw new HTTPException(400, {
119
- message: 'Invalid or missing tool execution payload. Expected { tool_use: { id, tool_name, tool_input? }, metadata? }'
122
+ message: 'Invalid or missing tool execution payload. Expected { tool_use: { id, tool_name, tool_input? }, metadata? }',
120
123
  });
121
124
  }
122
125
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolCollection.js","sourceRoot":"","sources":["../src/ToolCollection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { AgentToolDefinition } from '@vertesia/common';
2
+ import { HTTPException } from 'hono/http-exception';
3
+ import type { Tool, ToolExecutionContext, ToolExecutionPayload, ToolExecutionResult, ToolUseContext } from './types.js';
4
+ export declare class ToolRegistry {
5
+ category: string;
6
+ registry: Record<string, Tool>;
7
+ constructor(category: string, tools?: Tool[]);
8
+ /**
9
+ * Get tool definitions with optional filtering.
10
+ * @param options - Filtering options
11
+ * @returns Filtered tool definitions
12
+ */
13
+ getDefinitions(context?: ToolUseContext): AgentToolDefinition[];
14
+ getTool<ParamsT extends object>(name: string): Tool<ParamsT>;
15
+ getTools(): Tool<object>[];
16
+ registerTool<ParamsT extends object>(tool: Tool<ParamsT>): void;
17
+ runTool<ParamsT extends object>(payload: ToolExecutionPayload<ParamsT>, context: ToolExecutionContext): Promise<ToolExecutionResult>;
18
+ }
19
+ export declare class ToolNotFoundError extends HTTPException {
20
+ constructor(name: string);
21
+ }
22
+ //# sourceMappingURL=ToolRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolRegistry.d.ts","sourceRoot":"","sources":["../src/ToolRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAExH,qBAAa,YAAY;IAErB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAM;gBAExB,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,IAAI,EAAO;IAOhD;;;;OAIG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,mBAAmB,EAAE;IAoB/D,OAAO,CAAC,OAAO,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;IAQ5D,QAAQ;IAIR,YAAY,CAAC,OAAO,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI;IAI/D,OAAO,CAAC,OAAO,SAAS,MAAM,EAC1B,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,EACtC,OAAO,EAAE,oBAAoB,GAC9B,OAAO,CAAC,mBAAmB,CAAC;CAIlC;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACpC,IAAI,EAAE,MAAM;CAI3B"}
@@ -1,4 +1,4 @@
1
- import { HTTPException } from "hono/http-exception";
1
+ import { HTTPException } from 'hono/http-exception';
2
2
  export class ToolRegistry {
3
3
  // The category name usinfg this registry
4
4
  category;
@@ -22,10 +22,12 @@ export class ToolRegistry {
22
22
  input_schema: tool.input_schema,
23
23
  category: this.category,
24
24
  default: tool.default,
25
+ ...(tool.annotations ? { annotations: tool.annotations } : {}),
26
+ ...(tool.requires_user_confirmation ? { requires_user_confirmation: true } : {}),
25
27
  });
26
28
  let tools = Object.values(this.registry);
27
29
  if (context) {
28
- tools = tools.filter(tool => {
30
+ tools = tools.filter((tool) => {
29
31
  return tool.isEnabled ? tool.isEnabled(context) : true;
30
32
  });
31
33
  }
@@ -46,45 +48,13 @@ export class ToolRegistry {
46
48
  }
47
49
  runTool(payload, context) {
48
50
  const toolName = payload.tool_use.tool_name;
49
- const toolUseId = payload.tool_use.id;
50
- const runId = payload.metadata?.run_id;
51
- console.log(`[ToolRegistry] Executing tool: ${toolName}`, {
52
- toolUseId,
53
- runId,
54
- input: sanitizeInput(payload.tool_use.tool_input),
55
- });
56
51
  return this.getTool(toolName).run(payload, context);
57
52
  }
58
53
  }
59
54
  export class ToolNotFoundError extends HTTPException {
60
55
  constructor(name) {
61
- super(404, { message: "Tool function not found: " + name });
62
- this.name = "ToolNotFoundError";
63
- }
64
- }
65
- const SENSITIVE_KEYS = new Set([
66
- 'apikey', 'api_key', 'token', 'secret', 'password', 'credential', 'credentials',
67
- 'authorization', 'auth', 'key', 'private_key', 'access_token', 'refresh_token'
68
- ]);
69
- function sanitizeInput(input) {
70
- if (!input)
71
- return null;
72
- const sanitized = {};
73
- for (const [key, value] of Object.entries(input)) {
74
- const lowerKey = key.toLowerCase();
75
- if (SENSITIVE_KEYS.has(lowerKey) || lowerKey.includes('key') || lowerKey.includes('token') || lowerKey.includes('secret')) {
76
- sanitized[key] = '[REDACTED]';
77
- }
78
- else if (typeof value === 'string' && value.length > 50) {
79
- sanitized[key] = value.slice(0, 50) + '...';
80
- }
81
- else if (typeof value === 'object' && value !== null) {
82
- sanitized[key] = Array.isArray(value) ? `[Array(${value.length})]` : '[Object]';
83
- }
84
- else {
85
- sanitized[key] = value;
86
- }
56
+ super(404, { message: `Tool function not found: ${name}` });
57
+ this.name = 'ToolNotFoundError';
87
58
  }
88
- return sanitized;
89
59
  }
90
60
  //# sourceMappingURL=ToolRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../src/ToolRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,OAAO,YAAY;IACrB,yCAAyC;IACzC,QAAQ,CAAS;IACjB,QAAQ,GAAyB,EAAE,CAAC;IAEpC,YAAY,QAAgB,EAAE,QAAgB,EAAE;QAC5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACpC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,OAAwB;QACnC,MAAM,OAAO,GAAG,CAAC,IAAU,EAAuB,EAAE,CAAC,CAAC;YAClD,GAAG,EAAE,SAAS,IAAI,CAAC,QAAQ,EAAE;YAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnF,CAAC,CAAC;QACH,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,OAAO,EAAE,CAAC;YACV,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3D,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,CAAyB,IAAY;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAgC,CAAC;IAC5C,CAAC;IAED,QAAQ;QACJ,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,YAAY,CAAyB,IAAmB;QACpD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAuB,CAAC;IACvD,CAAC;IAED,OAAO,CACH,OAAsC,EACtC,OAA6B;QAE7B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;CACJ;AAED,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAChD,YAAY,IAAY;QACpB,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,4BAA4B,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IACpC,CAAC;CACJ"}
@@ -1,8 +1,8 @@
1
- import { VertesiaClient } from "@vertesia/client";
2
- import { AuthTokenPayload } from "@vertesia/common";
3
- import { Context } from "hono";
4
- import { JWTVerifyGetKey } from "jose";
5
- import { ToolExecutionContext } from "./types.js";
1
+ import { VertesiaClient } from '@vertesia/client';
2
+ import type { AuthTokenPayload } from '@vertesia/common';
3
+ import type { Context } from 'hono';
4
+ import { type JWTVerifyGetKey } from 'jose';
5
+ import type { ToolExecutionContext } from './types.js';
6
6
  export declare function getJwks(url: string): Promise<JWTVerifyGetKey>;
7
7
  export declare function verifyToken(token: string): Promise<import("jose").JWTVerifyResult<AuthTokenPayload> & import("jose").ResolvedKey>;
8
8
  export interface EndpointOverrides {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAoD,KAAK,eAAe,EAAa,MAAM,MAAM,CAAC;AACzG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAIvD,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,4BAgBxC;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,0FAU9C;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,WAAW,wBAgC7G;AAED,qBAAa,WAAY,YAAW,oBAAoB;IAUzC,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,gBAAgB;IAVpC,OAAO,EAAE,cAAc,GAAG,SAAS,CAAC;IACpC,SAAS,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,WAAW,CAAC,EAAE,WAAW,CAAC;gBAGf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,gBAAgB,EAChC,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,WAAW,CAAC,EAAE,WAAW;IAYvB,SAAS;CAalB"}
@@ -1,17 +1,19 @@
1
- import { decodeEndpoints, VertesiaClient } from "@vertesia/client";
2
- import { HTTPException } from "hono/http-exception";
3
- import { createLocalJWKSet, decodeJwt, jwtVerify } from "jose";
1
+ import { decodeEndpoints, VertesiaClient } from '@vertesia/client';
2
+ import { HTTPException } from 'hono/http-exception';
3
+ import { createLocalJWKSet, decodeJwt, jwtVerify } from 'jose';
4
4
  const cache = {};
5
5
  export async function getJwks(url) {
6
6
  if (!cache[url]) {
7
7
  console.log('JWKS cache miss for: ', url);
8
- const jwks = await fetch(url).then(r => {
8
+ const jwks = await fetch(url)
9
+ .then((r) => {
9
10
  if (r.ok) {
10
11
  return r.json();
11
12
  }
12
- throw new Error("Fetching jwks failed with code: " + r.status);
13
- }).catch(err => {
14
- throw new Error("Failed to fetch jwks: " + err.message);
13
+ throw new Error(`Fetching jwks failed with code: ${r.status}`);
14
+ })
15
+ .catch((err) => {
16
+ throw new Error(`Failed to fetch jwks: ${err.message}`);
15
17
  });
16
18
  cache[url] = createLocalJWKSet(jwks);
17
19
  }
@@ -20,10 +22,10 @@ export async function getJwks(url) {
20
22
  export async function verifyToken(token) {
21
23
  const decodedJwt = decodeJwt(token);
22
24
  if (!decodedJwt.iss) {
23
- throw new Error("No issuer URL found in JWT");
25
+ throw new Error('No issuer URL found in JWT');
24
26
  }
25
27
  if (!isAllowedIssuer(decodedJwt.iss)) {
26
- throw new Error("Issuer is not allowed: " + decodedJwt.iss);
28
+ throw new Error(`Issuer is not allowed: ${decodedJwt.iss}`);
27
29
  }
28
30
  const jwks = await getJwks(`${decodedJwt.iss}/.well-known/jwks`);
29
31
  return await jwtVerify(token, jwks);
@@ -32,33 +34,34 @@ export async function authorize(ctx, endpointOverrides, toolContext) {
32
34
  const auth = ctx.req.header('Authorization');
33
35
  if (!auth) {
34
36
  throw new HTTPException(401, {
35
- message: `Missing Authorization header`
37
+ message: `Missing Authorization header`,
36
38
  });
37
39
  }
38
40
  const [scheme, value] = auth.trim().split(' ');
39
41
  if (scheme.toLowerCase() !== 'bearer') {
40
42
  throw new HTTPException(401, {
41
- message: `Authorization scheme ${scheme} is not supported`
43
+ message: `Authorization scheme ${scheme} is not supported`,
42
44
  });
43
45
  }
44
46
  if (!value) {
45
47
  throw new HTTPException(401, {
46
- message: `Missing bearer token value`
48
+ message: `Missing bearer token value`,
47
49
  });
48
50
  }
49
51
  try {
50
52
  const { payload } = await verifyToken(value);
51
53
  assertAllowedOrg(payload);
52
54
  const session = new AuthSession(value, payload, endpointOverrides, toolContext);
53
- ctx.set("auth", session);
55
+ ctx.set('auth', session);
54
56
  return session;
55
57
  }
56
58
  catch (err) {
57
59
  if (err instanceof HTTPException)
58
60
  throw err;
61
+ const message = err instanceof Error ? err.message : String(err);
59
62
  throw new HTTPException(401, {
60
- message: err.message,
61
- cause: err
63
+ message,
64
+ cause: err,
62
65
  });
63
66
  }
64
67
  }
@@ -95,7 +98,7 @@ export class AuthSession {
95
98
  }
96
99
  }
97
100
  function isAllowedIssuer(iss) {
98
- return iss.endsWith(".vertesia.io") || iss.endsWith(".becomposable.com");
101
+ return iss.endsWith('.vertesia.io') || iss.endsWith('.becomposable.com');
99
102
  }
100
103
  /**
101
104
  * If VERTESIA_ALLOWED_ORGS is set (comma-separated org IDs), restrict access
@@ -106,7 +109,10 @@ function getAllowedOrgs() {
106
109
  if (_allowedOrgs === undefined) {
107
110
  const raw = process.env.VERTESIA_ALLOWED_ORGS;
108
111
  _allowedOrgs = raw
109
- ? new Set(raw.split(',').map(s => s.trim()).filter(Boolean))
112
+ ? new Set(raw
113
+ .split(',')
114
+ .map((s) => s.trim())
115
+ .filter(Boolean))
110
116
  : null;
111
117
  }
112
118
  return _allowedOrgs;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/build/validate.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,SAEvB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/build/validate.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ;IACpB,MAAM;AACV,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy-assets.d.ts","sourceRoot":"","sources":["../src/copy-assets.ts"],"names":[],"mappings":";AAuCA,MAAM,WAAW,iBAAiB;IAC9B,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,iBAAsB,GAAG,IAAI,CAoCvE"}
@@ -10,8 +10,8 @@
10
10
  * import { copyRuntimeAssets } from '@vertesia/tools-sdk';
11
11
  * copyRuntimeAssets('./src', './dist');
12
12
  */
13
- import { existsSync, readdirSync, statSync, mkdirSync, copyFileSync } from "fs";
14
- import { dirname, join } from "path";
13
+ import { copyFileSync, existsSync, mkdirSync, readdirSync, statSync } from 'node:fs';
14
+ import { dirname, join } from 'node:path';
15
15
  /**
16
16
  * Recursively copy files matching a filter
17
17
  */
@@ -47,9 +47,7 @@ export function copyRuntimeAssets(options = {}) {
47
47
  const skillsDest = join(distDir, 'skills');
48
48
  if (existsSync(skillsSrc)) {
49
49
  copyFilesRecursive(skillsSrc, skillsDest, (filename) => {
50
- return filename === 'SKILL.md' ||
51
- filename === 'SKILL.jst' ||
52
- filename.endsWith('.py');
50
+ return filename === 'SKILL.md' || filename === 'SKILL.jst' || filename.endsWith('.py');
53
51
  });
54
52
  if (verbose) {
55
53
  console.log(' ✓ Skills assets (SKILL.md, SKILL.jst, *.py)');
@@ -60,8 +58,7 @@ export function copyRuntimeAssets(options = {}) {
60
58
  const interactionsDest = join(distDir, 'interactions');
61
59
  if (existsSync(interactionsSrc)) {
62
60
  copyFilesRecursive(interactionsSrc, interactionsDest, (filename) => {
63
- return filename === 'prompt.jst' ||
64
- filename === 'prompt.md';
61
+ return filename === 'prompt.jst' || filename === 'prompt.md';
65
62
  });
66
63
  if (verbose) {
67
64
  console.log(' ✓ Interaction assets (prompt.jst, prompt.md)');
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy-assets.js","sourceRoot":"","sources":["../src/copy-assets.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C;;GAEG;AACH,SAAS,kBAAkB,CAAC,GAAW,EAAE,IAAY,EAAE,UAAyC;IAC5F,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO;IAE7B,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAEjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACrB,2BAA2B;YAC3B,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,sBAAsB;YACtB,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;AACL,CAAC;AAWD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAA6B,EAAE;IAC7D,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEzE,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACrD,CAAC;IAED,+CAA+C;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE3C,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACxB,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YACnD,OAAO,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QACjE,CAAC;IACL,CAAC;IAED,wDAAwD;IACxD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAEvD,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9B,kBAAkB,CAAC,eAAe,EAAE,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC/D,OAAO,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,WAAW,CAAC;QACjE,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACvD,CAAC;AACL,CAAC;AAED,kBAAkB;AAClB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;IAC7E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;IAEpC,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAC3C,CAAC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ export * from './ActivityCollection.js';
2
+ export { AuthSession, authorize } from './auth.js';
3
+ export * from './ContentTypesCollection.js';
4
+ export { copyRuntimeAssets } from './copy-assets.js';
5
+ export * from './InteractionCollection.js';
6
+ export * from './RenderingTemplateCollection.js';
7
+ export * from './SkillCollection.js';
8
+ export type { BuildAppPackageOptions } from './server/app-package.js';
9
+ export { buildAppPackage } from './server/app-package.js';
10
+ export * from './server/types.js';
11
+ export * from './server.js';
12
+ export * from './site/templates.js';
13
+ export * from './ToolCollection.js';
14
+ export * from './ToolRegistry.js';
15
+ export * from './types.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,15 @@
1
+ export * from './ActivityCollection.js';
2
+ export { AuthSession, authorize } from './auth.js';
3
+ export * from './ContentTypesCollection.js';
4
+ export { copyRuntimeAssets } from './copy-assets.js';
5
+ export * from './InteractionCollection.js';
6
+ export * from './RenderingTemplateCollection.js';
7
+ export * from './SkillCollection.js';
8
+ export { buildAppPackage } from './server/app-package.js';
9
+ export * from './server/types.js';
10
+ export * from './server.js';
11
+ export * from './site/templates.js';
12
+ export * from './ToolCollection.js';
13
+ export * from './ToolRegistry.js';
14
+ export * from './types.js';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Hono } from 'hono';
2
+ import type { ToolServerConfig } from './types.js';
3
+ export declare function createActivitiesRoute(app: Hono, basePath: string, config: ToolServerConfig): void;
4
+ //# sourceMappingURL=activities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activities.d.ts","sourceRoot":"","sources":["../../src/server/activities.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,IAAI,EAAE,MAAM,MAAM,CAAC;AAG1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA0CnD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,QAgD1F"}
@@ -1,5 +1,5 @@
1
- import { Hono } from "hono";
2
- import { HTTPException } from "hono/http-exception";
1
+ import { Hono } from 'hono';
2
+ import { HTTPException } from 'hono/http-exception';
3
3
  /**
4
4
  * Safely parse JSON from a request body. Throws HTTPException(400) on invalid JSON.
5
5
  */
@@ -9,10 +9,13 @@ async function safeParseJson(c) {
9
9
  }
10
10
  catch {
11
11
  throw new HTTPException(400, {
12
- message: 'Invalid JSON in request body.'
12
+ message: 'Invalid JSON in request body.',
13
13
  });
14
14
  }
15
15
  }
16
+ function isRecord(value) {
17
+ return !!value && typeof value === 'object';
18
+ }
16
19
  /**
17
20
  * Validates the structure of a RemoteActivityExecutionPayload.
18
21
  * Returns the parsed payload or throws HTTPException(400).
@@ -20,19 +23,19 @@ async function safeParseJson(c) {
20
23
  function parseActivityPayload(body) {
21
24
  if (!body || typeof body !== 'object') {
22
25
  throw new HTTPException(400, {
23
- message: 'Invalid or missing activity execution payload.'
26
+ message: 'Invalid or missing activity execution payload.',
24
27
  });
25
28
  }
26
29
  const obj = body;
27
30
  if (typeof obj.activity_name !== 'string' || !obj.activity_name) {
28
31
  throw new HTTPException(400, {
29
- message: 'Missing required field: activity_name'
32
+ message: 'Missing required field: activity_name',
30
33
  });
31
34
  }
32
35
  return {
33
36
  activity_name: obj.activity_name,
34
- params: obj.params || {},
35
- metadata: obj.metadata || {},
37
+ params: isRecord(obj.params) ? obj.params : {},
38
+ metadata: isRecord(obj.metadata) ? obj.metadata : {},
36
39
  };
37
40
  }
38
41
  export function createActivitiesRoute(app, basePath, config) {
@@ -54,7 +57,7 @@ export function createActivitiesRoute(app, basePath, config) {
54
57
  title: 'All Activities',
55
58
  description: 'All available remote activities across all collections',
56
59
  activities: allActivities,
57
- collections: activities.map(a => ({
60
+ collections: activities.map((a) => ({
58
61
  name: a.name,
59
62
  title: a.title,
60
63
  description: a.description,
@@ -68,7 +71,7 @@ export function createActivitiesRoute(app, basePath, config) {
68
71
  const collection = activityToCollection.get(payload.activity_name);
69
72
  if (!collection) {
70
73
  throw new HTTPException(404, {
71
- message: `Activity not found: ${payload.activity_name}. Available: ${Array.from(activityToCollection.keys()).join(', ')}`
74
+ message: `Activity not found: ${payload.activity_name}. Available: ${Array.from(activityToCollection.keys()).join(', ')}`,
72
75
  });
73
76
  }
74
77
  return collection.execute(c, payload);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activities.js","sourceRoot":"","sources":["../../src/server/activities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { AppPackage, AppPackageScope } from '@vertesia/common';
2
+ import type { Hono } from 'hono';
3
+ import type { ToolUseContext } from '../types.js';
4
+ import type { ToolServerConfig } from './types.js';
5
+ export interface BuildAppPackageOptions {
6
+ scope?: AppPackageScope | AppPackageScope[] | string;
7
+ origin?: string;
8
+ toolUseContext?: ToolUseContext;
9
+ }
10
+ export declare function buildAppPackage(config: ToolServerConfig, options?: BuildAppPackageOptions): Promise<AppPackage>;
11
+ export declare function createPackageRoute(app: Hono, basePath: string, config: ToolServerConfig): void;
12
+ //# sourceMappingURL=app-package.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-package.d.ts","sourceRoot":"","sources":["../../src/server/app-package.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,UAAU,EACV,eAAe,EAMlB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMnD,MAAM,WAAW,sBAAsB;IACnC,KAAK,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;CACnC;AA8ID,wBAAsB,eAAe,CACjC,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,sBAA2B,GACrC,OAAO,CAAC,UAAU,CAAC,CAiDrB;AAWD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,QAQvF"}