@vertesia/tools-sdk 1.0.0-dev.20260203.130115Z → 1.0.0-dev.20260227.112605Z

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 (171) hide show
  1. package/lib/cjs/ContentTypesCollection.js +43 -0
  2. package/lib/cjs/ContentTypesCollection.js.map +1 -0
  3. package/lib/cjs/InteractionCollection.js +43 -0
  4. package/lib/cjs/InteractionCollection.js.map +1 -0
  5. package/lib/cjs/RenderingTemplateCollection.js +43 -0
  6. package/lib/cjs/RenderingTemplateCollection.js.map +1 -0
  7. package/lib/cjs/SkillCollection.js +384 -0
  8. package/lib/cjs/SkillCollection.js.map +1 -0
  9. package/lib/cjs/ToolCollection.js +221 -0
  10. package/lib/cjs/ToolCollection.js.map +1 -0
  11. package/lib/cjs/ToolRegistry.js +95 -0
  12. package/lib/cjs/ToolRegistry.js.map +1 -0
  13. package/lib/cjs/auth.js +131 -0
  14. package/lib/cjs/auth.js.map +1 -0
  15. package/lib/cjs/build/validate.js +7 -0
  16. package/lib/cjs/build/validate.js.map +1 -0
  17. package/lib/cjs/copy-assets.js +84 -0
  18. package/lib/cjs/copy-assets.js.map +1 -0
  19. package/lib/cjs/index.js +33 -0
  20. package/lib/cjs/index.js.map +1 -0
  21. package/lib/cjs/package.json +3 -0
  22. package/lib/cjs/server/app-package.js +141 -0
  23. package/lib/cjs/server/app-package.js.map +1 -0
  24. package/lib/cjs/server/content-types.js +73 -0
  25. package/lib/cjs/server/content-types.js.map +1 -0
  26. package/lib/cjs/server/interactions.js +89 -0
  27. package/lib/cjs/server/interactions.js.map +1 -0
  28. package/lib/cjs/server/mcp.js +45 -0
  29. package/lib/cjs/server/mcp.js.map +1 -0
  30. package/lib/cjs/server/site.js +42 -0
  31. package/lib/cjs/server/site.js.map +1 -0
  32. package/lib/cjs/server/skills.js +114 -0
  33. package/lib/cjs/server/skills.js.map +1 -0
  34. package/lib/cjs/server/templates.js +67 -0
  35. package/lib/cjs/server/templates.js.map +1 -0
  36. package/lib/cjs/server/tools.js +87 -0
  37. package/lib/cjs/server/tools.js.map +1 -0
  38. package/lib/cjs/server/types.js +3 -0
  39. package/lib/cjs/server/types.js.map +1 -0
  40. package/lib/cjs/server/widgets.js +27 -0
  41. package/lib/cjs/server/widgets.js.map +1 -0
  42. package/lib/cjs/server.js +139 -0
  43. package/lib/cjs/server.js.map +1 -0
  44. package/lib/cjs/site/styles.js +692 -0
  45. package/lib/cjs/site/styles.js.map +1 -0
  46. package/lib/cjs/site/templates.js +1185 -0
  47. package/lib/cjs/site/templates.js.map +1 -0
  48. package/lib/cjs/types.js +3 -0
  49. package/lib/cjs/types.js.map +1 -0
  50. package/lib/cjs/utils.js +44 -0
  51. package/lib/cjs/utils.js.map +1 -0
  52. package/lib/esm/ContentTypesCollection.js +39 -0
  53. package/lib/esm/ContentTypesCollection.js.map +1 -0
  54. package/lib/esm/InteractionCollection.js +39 -0
  55. package/lib/esm/InteractionCollection.js.map +1 -0
  56. package/lib/esm/RenderingTemplateCollection.js +39 -0
  57. package/lib/esm/RenderingTemplateCollection.js.map +1 -0
  58. package/lib/esm/SkillCollection.js +377 -0
  59. package/lib/esm/SkillCollection.js.map +1 -0
  60. package/lib/esm/ToolCollection.js +183 -0
  61. package/lib/esm/ToolCollection.js.map +1 -0
  62. package/lib/esm/ToolRegistry.js +90 -0
  63. package/lib/esm/ToolRegistry.js.map +1 -0
  64. package/lib/esm/auth.js +124 -0
  65. package/lib/esm/auth.js.map +1 -0
  66. package/lib/esm/build/validate.js +4 -0
  67. package/lib/esm/build/validate.js.map +1 -0
  68. package/lib/esm/copy-assets.js +81 -0
  69. package/lib/esm/copy-assets.js.map +1 -0
  70. package/lib/esm/index.js +13 -0
  71. package/lib/esm/index.js.map +1 -0
  72. package/lib/esm/server/app-package.js +138 -0
  73. package/lib/esm/server/app-package.js.map +1 -0
  74. package/lib/esm/server/content-types.js +70 -0
  75. package/lib/esm/server/content-types.js.map +1 -0
  76. package/lib/esm/server/interactions.js +86 -0
  77. package/lib/esm/server/interactions.js.map +1 -0
  78. package/lib/esm/server/mcp.js +42 -0
  79. package/lib/esm/server/mcp.js.map +1 -0
  80. package/lib/esm/server/site.js +39 -0
  81. package/lib/esm/server/site.js.map +1 -0
  82. package/lib/esm/server/skills.js +111 -0
  83. package/lib/esm/server/skills.js.map +1 -0
  84. package/lib/esm/server/templates.js +64 -0
  85. package/lib/esm/server/templates.js.map +1 -0
  86. package/lib/esm/server/tools.js +84 -0
  87. package/lib/esm/server/tools.js.map +1 -0
  88. package/lib/esm/server/types.js +2 -0
  89. package/lib/esm/server/types.js.map +1 -0
  90. package/lib/esm/server/widgets.js +24 -0
  91. package/lib/esm/server/widgets.js.map +1 -0
  92. package/lib/esm/server.js +135 -0
  93. package/lib/esm/server.js.map +1 -0
  94. package/lib/esm/site/styles.js +689 -0
  95. package/lib/esm/site/styles.js.map +1 -0
  96. package/lib/esm/site/templates.js +1170 -0
  97. package/lib/esm/site/templates.js.map +1 -0
  98. package/lib/esm/types.js +2 -0
  99. package/lib/esm/types.js.map +1 -0
  100. package/lib/esm/utils.js +38 -0
  101. package/lib/esm/utils.js.map +1 -0
  102. package/lib/types/ContentTypesCollection.d.ts +18 -0
  103. package/lib/types/ContentTypesCollection.d.ts.map +1 -0
  104. package/lib/types/InteractionCollection.d.ts +18 -0
  105. package/lib/types/InteractionCollection.d.ts.map +1 -0
  106. package/lib/types/RenderingTemplateCollection.d.ts +17 -0
  107. package/lib/types/RenderingTemplateCollection.d.ts.map +1 -0
  108. package/lib/types/SkillCollection.d.ts +119 -0
  109. package/lib/types/SkillCollection.d.ts.map +1 -0
  110. package/lib/types/ToolCollection.d.ts +67 -0
  111. package/lib/types/ToolCollection.d.ts.map +1 -0
  112. package/lib/types/ToolRegistry.d.ts +22 -0
  113. package/lib/types/ToolRegistry.d.ts.map +1 -0
  114. package/lib/types/auth.d.ts +32 -0
  115. package/lib/types/auth.d.ts.map +1 -0
  116. package/lib/types/build/validate.d.ts +2 -0
  117. package/lib/types/build/validate.d.ts.map +1 -0
  118. package/lib/types/copy-assets.d.ts +14 -0
  119. package/lib/types/copy-assets.d.ts.map +1 -0
  120. package/lib/types/index.d.ts +13 -0
  121. package/lib/types/index.d.ts.map +1 -0
  122. package/lib/types/server/app-package.d.ts +4 -0
  123. package/lib/types/server/app-package.d.ts.map +1 -0
  124. package/lib/types/server/content-types.d.ts +4 -0
  125. package/lib/types/server/content-types.d.ts.map +1 -0
  126. package/lib/types/server/interactions.d.ts +4 -0
  127. package/lib/types/server/interactions.d.ts.map +1 -0
  128. package/lib/types/server/mcp.d.ts +4 -0
  129. package/lib/types/server/mcp.d.ts.map +1 -0
  130. package/lib/types/server/site.d.ts +4 -0
  131. package/lib/types/server/site.d.ts.map +1 -0
  132. package/lib/types/server/skills.d.ts +4 -0
  133. package/lib/types/server/skills.d.ts.map +1 -0
  134. package/lib/types/server/templates.d.ts +4 -0
  135. package/lib/types/server/templates.d.ts.map +1 -0
  136. package/lib/types/server/tools.d.ts +4 -0
  137. package/lib/types/server/tools.d.ts.map +1 -0
  138. package/lib/types/server/types.d.ts +93 -0
  139. package/lib/types/server/types.d.ts.map +1 -0
  140. package/lib/types/server/widgets.d.ts +4 -0
  141. package/lib/types/server/widgets.d.ts.map +1 -0
  142. package/lib/types/server.d.ts +27 -0
  143. package/lib/types/server.d.ts.map +1 -0
  144. package/lib/types/site/styles.d.ts +5 -0
  145. package/lib/types/site/styles.d.ts.map +1 -0
  146. package/lib/types/site/templates.d.ts +71 -0
  147. package/lib/types/site/templates.d.ts.map +1 -0
  148. package/lib/types/types.d.ts +294 -0
  149. package/lib/types/types.d.ts.map +1 -0
  150. package/lib/types/utils.d.ts +10 -0
  151. package/lib/types/utils.d.ts.map +1 -0
  152. package/package.json +4 -4
  153. package/src/ContentTypesCollection.ts +8 -8
  154. package/src/RenderingTemplateCollection.ts +51 -0
  155. package/src/SkillCollection.ts +11 -2
  156. package/src/ToolCollection.ts +9 -18
  157. package/src/ToolRegistry.ts +17 -56
  158. package/src/auth.ts +27 -0
  159. package/src/index.ts +1 -0
  160. package/src/server/app-package.ts +101 -43
  161. package/src/server/{conyent-types.ts → content-types.ts} +29 -11
  162. package/src/server/interactions.ts +11 -6
  163. package/src/server/site.ts +9 -0
  164. package/src/server/templates.ts +80 -0
  165. package/src/server/tools.ts +3 -22
  166. package/src/server/types.ts +14 -1
  167. package/src/server/widgets.ts +2 -6
  168. package/src/server.ts +5 -1
  169. package/src/site/templates.ts +179 -2
  170. package/src/types.ts +38 -1
  171. package/src/utils.ts +15 -1
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createToolsRoute = createToolsRoute;
4
+ const hono_1 = require("hono");
5
+ const http_exception_1 = require("hono/http-exception");
6
+ function createToolsRoute(app, basePath, config) {
7
+ const { tools = [] } = config;
8
+ // Build a map of tool name -> collection for routing
9
+ const toolToCollection = new Map();
10
+ for (const coll of tools) {
11
+ for (const toolDef of coll.getToolDefinitions()) {
12
+ toolToCollection.set(toolDef.name, coll);
13
+ }
14
+ }
15
+ // GET /api/tools - Returns all tools from all collections
16
+ // Query params:
17
+ // - defaultOnly=true: Only return tools with default !== false
18
+ // - unlocked=tool1,tool2: Comma-separated list of unlocked tool names
19
+ app.get(basePath, (c) => {
20
+ const url = new URL(c.req.url);
21
+ const allTools = [];
22
+ for (const coll of tools) {
23
+ allTools.push(...coll.getToolDefinitions());
24
+ }
25
+ return c.json({
26
+ src: `${url.origin}${url.pathname}`,
27
+ title: 'All Tools',
28
+ description: 'All available tools across all collections',
29
+ tools: allTools,
30
+ collections: tools.map(t => ({
31
+ name: t.name,
32
+ title: t.title,
33
+ description: t.description,
34
+ })),
35
+ });
36
+ });
37
+ // POST /api/tools - Route to the correct collection based on tool_name
38
+ app.post(basePath, async (c) => {
39
+ const ctx = c;
40
+ // Payload is already parsed and validated by middleware
41
+ if (!ctx.payload) {
42
+ throw new http_exception_1.HTTPException(400, {
43
+ message: 'Invalid or missing tool execution payload. Expected { tool_use: { id, tool_name, tool_input? }, metadata? }'
44
+ });
45
+ }
46
+ const toolName = ctx.payload.tool_use.tool_name;
47
+ // Find the collection for this tool
48
+ const collection = toolToCollection.get(toolName);
49
+ if (!collection) {
50
+ throw new http_exception_1.HTTPException(404, {
51
+ message: `Tool not found: ${toolName}. Available tools: ${Array.from(toolToCollection.keys()).join(', ')}`
52
+ });
53
+ }
54
+ // Delegate to the collection's execute method with pre-parsed payload
55
+ return collection.execute(c, ctx.payload);
56
+ });
57
+ // Create tool collection endpoints
58
+ for (const coll of tools) {
59
+ app.route(`${basePath}/${coll.name}`, createToolEndpoints(coll));
60
+ }
61
+ }
62
+ function createToolEndpoints(coll) {
63
+ const endpoint = new hono_1.Hono();
64
+ endpoint.post('/', (c) => {
65
+ return coll.execute(c);
66
+ });
67
+ // GET /api/tools/{collection}
68
+ // Query params:
69
+ // - import: Return import source URL instead of API URL
70
+ // - defaultOnly=true: Only return tools with default !== false
71
+ // - unlocked=tool1,tool2: Comma-separated list of unlocked tool names
72
+ endpoint.get('/', (c) => {
73
+ const importSourceUrl = c.req.query('import') != null;
74
+ const url = new URL(c.req.url);
75
+ const response = {
76
+ src: importSourceUrl
77
+ ? `${url.origin}/libs/vertesia-tools-${coll.name}.js`
78
+ : `${url.origin}${url.pathname}`,
79
+ title: coll.title || coll.name,
80
+ description: coll.description || '',
81
+ tools: coll.getToolDefinitions()
82
+ };
83
+ return c.json(response);
84
+ });
85
+ return endpoint;
86
+ }
87
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/server/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createWidgetsRoute = createWidgetsRoute;
4
+ function createWidgetsRoute(app, basePath, config) {
5
+ const { skills = [] } = config;
6
+ // GET /api/widgets - Returns all widgets from all skill collections
7
+ app.get(basePath, (c) => {
8
+ const url = new URL(c.req.url);
9
+ const widgets = {};
10
+ for (const coll of skills) {
11
+ const collWidgets = coll.getWidgets();
12
+ for (const widget of collWidgets) {
13
+ widgets[widget.name] = {
14
+ collection: coll.name,
15
+ skill: widget.skill,
16
+ url: `${url.origin}/widgets/${widget.name}.js`,
17
+ };
18
+ }
19
+ }
20
+ return c.json({
21
+ title: 'All Widgets',
22
+ description: 'All available widgets across all skill collections',
23
+ widgets,
24
+ });
25
+ });
26
+ }
27
+ //# sourceMappingURL=widgets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widgets.js","sourceRoot":"","sources":["../../../src/server/widgets.ts"],"names":[],"mappings":";;AAKA,gDA4BC;AA5BD,SAAgB,kBAAkB,CAAC,GAAS,EAAE,QAAgB,EAAE,MAAwB;IAEpF,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAE/B,oEAAoE;IACpE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;QACpB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE/B,MAAM,OAAO,GAAkC,EAAE,CAAC;QAClD,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;gBAC/B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;oBACnB,UAAU,EAAE,IAAI,CAAC,IAAI;oBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,YAAY,MAAM,CAAC,IAAI,KAAK;iBACjD,CAAA;YACL,CAAC;QACL,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,oDAAoD;YACjE,OAAO;SACV,CAAC,CAAC;IAEP,CAAC,CAAC,CAAC;AAEP,CAAC"}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createToolServer = createToolServer;
4
+ exports.createDevServer = createDevServer;
5
+ const hono_1 = require("hono");
6
+ const cors_1 = require("hono/cors");
7
+ const http_exception_1 = require("hono/http-exception");
8
+ const zod_1 = require("zod");
9
+ const interactions_js_1 = require("./server/interactions.js");
10
+ const mcp_js_1 = require("./server/mcp.js");
11
+ const site_js_1 = require("./server/site.js");
12
+ const skills_js_1 = require("./server/skills.js");
13
+ const tools_js_1 = require("./server/tools.js");
14
+ const templates_js_1 = require("./server/templates.js");
15
+ const widgets_js_1 = require("./server/widgets.js");
16
+ const app_package_js_1 = require("./server/app-package.js");
17
+ const content_types_js_1 = require("./server/content-types.js");
18
+ // Schema for tool execution payload
19
+ const ToolExecutionPayloadSchema = zod_1.z.object({
20
+ tool_use: zod_1.z.object({
21
+ id: zod_1.z.string(),
22
+ tool_name: zod_1.z.string(),
23
+ tool_input: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).default({}),
24
+ }),
25
+ metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
26
+ });
27
+ /**
28
+ * Create a Hono server for tools, interactions, and skills.
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * import { createToolServer, ToolCollection, SkillCollection } from "@vertesia/tools-sdk";
33
+ *
34
+ * const server = createToolServer({
35
+ * tools: [myToolCollection],
36
+ * skills: [mySkillCollection],
37
+ * });
38
+ *
39
+ * export default server;
40
+ * ```
41
+ */
42
+ function createToolServer(config) {
43
+ const { prefix = '/api', tools = [], interactions = [], skills = [], templates = [], mcpProviders = [], disableHtml = false, } = config;
44
+ const app = new hono_1.Hono();
45
+ // Add CORS middleware globally
46
+ app.use('*', (0, cors_1.cors)({ origin: '*', allowMethods: ['GET', 'POST', 'OPTIONS'] }));
47
+ // Middleware to parse and validate body, store on context for reuse
48
+ app.use('*', async (c, next) => {
49
+ const ctx = c;
50
+ if (c.req.method === 'POST') {
51
+ try {
52
+ const text = await c.req.text();
53
+ const body = JSON.parse(text);
54
+ const result = ToolExecutionPayloadSchema.safeParse(body);
55
+ if (result.success) {
56
+ ctx.payload = result.data;
57
+ ctx.toolUseId = result.data.tool_use.id;
58
+ ctx.toolName = result.data.tool_use.tool_name;
59
+ }
60
+ // If validation fails, still store raw body for error reporting
61
+ // but don't set payload - handlers will return validation error
62
+ }
63
+ catch {
64
+ // Ignore parsing errors - body might not be JSON
65
+ }
66
+ }
67
+ await next();
68
+ });
69
+ // HTML pages (unless disabled)
70
+ if (!disableHtml) {
71
+ (0, site_js_1.createSiteRoute)(app, '', config);
72
+ }
73
+ // Add base API route
74
+ app.get(prefix, (c) => {
75
+ // Skills are exposed as tools, so include them in the tools list
76
+ const allToolEndpoints = [
77
+ ...tools.map(col => `${prefix}/tools/${col.name}`),
78
+ ...skills.map(col => `${prefix}/skills/${col.name}`),
79
+ ];
80
+ return c.json({
81
+ message: 'Vertesia Tools API',
82
+ version: '1.0.0',
83
+ endpoints: {
84
+ tools: allToolEndpoints,
85
+ interactions: interactions.map(col => `${prefix}/interactions/${col.name}`),
86
+ templates: templates.map(col => `${prefix}/templates/${col.name}`),
87
+ mcp: mcpProviders.map(p => `${prefix}/mcp/${p.name}`),
88
+ }
89
+ });
90
+ });
91
+ (0, app_package_js_1.createPackageRoute)(app, `${prefix}/package`, config);
92
+ (0, tools_js_1.createToolsRoute)(app, `${prefix}/tools`, config);
93
+ (0, skills_js_1.createSkillsRoute)(app, `${prefix}/skills`, config);
94
+ (0, widgets_js_1.createWidgetsRoute)(app, `${prefix}/widgets`, config);
95
+ (0, interactions_js_1.createInteractionsRoute)(app, `${prefix}/interactions`, config);
96
+ (0, templates_js_1.createTemplatesRoute)(app, `${prefix}/templates`, config);
97
+ (0, content_types_js_1.createContentTypesRoute)(app, `${prefix}/types`, config);
98
+ (0, mcp_js_1.createMcpRoute)(app, `${prefix}/mcp`, config);
99
+ // Global error handler - returns ToolExecutionResponseError format
100
+ app.onError((err, c) => {
101
+ const ctx = c;
102
+ const status = err instanceof http_exception_1.HTTPException ? err.status : 500;
103
+ const errorMessage = err instanceof http_exception_1.HTTPException ? err.message : 'Internal Server Error';
104
+ if (!(err instanceof http_exception_1.HTTPException)) {
105
+ console.error('Uncaught Error:', err);
106
+ }
107
+ return c.json({
108
+ tool_use_id: ctx.toolUseId || 'unknown',
109
+ status,
110
+ error: errorMessage,
111
+ data: ctx.toolName ? { tool_name: ctx.toolName } : undefined,
112
+ }, status);
113
+ });
114
+ // Not found handler - returns ToolExecutionResponseError format
115
+ app.notFound((c) => {
116
+ const ctx = c;
117
+ return c.json({
118
+ tool_use_id: ctx.toolUseId || 'unknown',
119
+ status: 404,
120
+ error: `Not found: ${c.req.method} ${c.req.path}`,
121
+ data: ctx.toolName ? { tool_name: ctx.toolName } : undefined,
122
+ }, 404);
123
+ });
124
+ return app;
125
+ }
126
+ // ================== Server Utilities ==================
127
+ /**
128
+ * Simple development server with static fimesale handling
129
+ *
130
+ * @deprecated Use tools server template
131
+ */
132
+ function createDevServer(config) {
133
+ const app = createToolServer(config);
134
+ if (config.staticHandler) {
135
+ app.use('*', config.staticHandler);
136
+ }
137
+ return app;
138
+ }
139
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}