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

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 (137) hide show
  1. package/package.json +5 -5
  2. package/src/ContentTypesCollection.ts +51 -0
  3. package/src/InteractionCollection.ts +1 -94
  4. package/src/SkillCollection.ts +3 -2
  5. package/src/ToolCollection.ts +6 -4
  6. package/src/ToolRegistry.ts +10 -4
  7. package/src/index.ts +1 -0
  8. package/src/server/app-package.ts +102 -0
  9. package/src/server/conyent-types.ts +71 -0
  10. package/src/server/interactions.ts +24 -3
  11. package/src/server/site.ts +9 -0
  12. package/src/server/types.ts +18 -0
  13. package/src/server.ts +5 -0
  14. package/src/site/styles.ts +55 -0
  15. package/src/site/templates.ts +107 -84
  16. package/src/types.ts +2 -18
  17. package/lib/cjs/InteractionCollection.js +0 -164
  18. package/lib/cjs/InteractionCollection.js.map +0 -1
  19. package/lib/cjs/SkillCollection.js +0 -376
  20. package/lib/cjs/SkillCollection.js.map +0 -1
  21. package/lib/cjs/ToolCollection.js +0 -228
  22. package/lib/cjs/ToolCollection.js.map +0 -1
  23. package/lib/cjs/ToolRegistry.js +0 -111
  24. package/lib/cjs/ToolRegistry.js.map +0 -1
  25. package/lib/cjs/auth.js +0 -104
  26. package/lib/cjs/auth.js.map +0 -1
  27. package/lib/cjs/build/validate.js +0 -7
  28. package/lib/cjs/build/validate.js.map +0 -1
  29. package/lib/cjs/copy-assets.js +0 -84
  30. package/lib/cjs/copy-assets.js.map +0 -1
  31. package/lib/cjs/index.js +0 -31
  32. package/lib/cjs/index.js.map +0 -1
  33. package/lib/cjs/package.json +0 -3
  34. package/lib/cjs/server/interactions.js +0 -66
  35. package/lib/cjs/server/interactions.js.map +0 -1
  36. package/lib/cjs/server/mcp.js +0 -45
  37. package/lib/cjs/server/mcp.js.map +0 -1
  38. package/lib/cjs/server/site.js +0 -30
  39. package/lib/cjs/server/site.js.map +0 -1
  40. package/lib/cjs/server/skills.js +0 -114
  41. package/lib/cjs/server/skills.js.map +0 -1
  42. package/lib/cjs/server/tools.js +0 -104
  43. package/lib/cjs/server/tools.js.map +0 -1
  44. package/lib/cjs/server/types.js +0 -3
  45. package/lib/cjs/server/types.js.map +0 -1
  46. package/lib/cjs/server/widgets.js +0 -27
  47. package/lib/cjs/server/widgets.js.map +0 -1
  48. package/lib/cjs/server.js +0 -132
  49. package/lib/cjs/server.js.map +0 -1
  50. package/lib/cjs/site/styles.js +0 -637
  51. package/lib/cjs/site/styles.js.map +0 -1
  52. package/lib/cjs/site/templates.js +0 -995
  53. package/lib/cjs/site/templates.js.map +0 -1
  54. package/lib/cjs/types.js +0 -3
  55. package/lib/cjs/types.js.map +0 -1
  56. package/lib/cjs/utils.js +0 -31
  57. package/lib/cjs/utils.js.map +0 -1
  58. package/lib/esm/InteractionCollection.js +0 -125
  59. package/lib/esm/InteractionCollection.js.map +0 -1
  60. package/lib/esm/SkillCollection.js +0 -369
  61. package/lib/esm/SkillCollection.js.map +0 -1
  62. package/lib/esm/ToolCollection.js +0 -190
  63. package/lib/esm/ToolCollection.js.map +0 -1
  64. package/lib/esm/ToolRegistry.js +0 -106
  65. package/lib/esm/ToolRegistry.js.map +0 -1
  66. package/lib/esm/auth.js +0 -97
  67. package/lib/esm/auth.js.map +0 -1
  68. package/lib/esm/build/validate.js +0 -4
  69. package/lib/esm/build/validate.js.map +0 -1
  70. package/lib/esm/copy-assets.js +0 -81
  71. package/lib/esm/copy-assets.js.map +0 -1
  72. package/lib/esm/index.js +0 -11
  73. package/lib/esm/index.js.map +0 -1
  74. package/lib/esm/server/interactions.js +0 -63
  75. package/lib/esm/server/interactions.js.map +0 -1
  76. package/lib/esm/server/mcp.js +0 -42
  77. package/lib/esm/server/mcp.js.map +0 -1
  78. package/lib/esm/server/site.js +0 -27
  79. package/lib/esm/server/site.js.map +0 -1
  80. package/lib/esm/server/skills.js +0 -111
  81. package/lib/esm/server/skills.js.map +0 -1
  82. package/lib/esm/server/tools.js +0 -101
  83. package/lib/esm/server/tools.js.map +0 -1
  84. package/lib/esm/server/types.js +0 -2
  85. package/lib/esm/server/types.js.map +0 -1
  86. package/lib/esm/server/widgets.js +0 -24
  87. package/lib/esm/server/widgets.js.map +0 -1
  88. package/lib/esm/server.js +0 -128
  89. package/lib/esm/server.js.map +0 -1
  90. package/lib/esm/site/styles.js +0 -634
  91. package/lib/esm/site/styles.js.map +0 -1
  92. package/lib/esm/site/templates.js +0 -983
  93. package/lib/esm/site/templates.js.map +0 -1
  94. package/lib/esm/types.js +0 -2
  95. package/lib/esm/types.js.map +0 -1
  96. package/lib/esm/utils.js +0 -26
  97. package/lib/esm/utils.js.map +0 -1
  98. package/lib/types/InteractionCollection.d.ts +0 -48
  99. package/lib/types/InteractionCollection.d.ts.map +0 -1
  100. package/lib/types/SkillCollection.d.ts +0 -118
  101. package/lib/types/SkillCollection.d.ts.map +0 -1
  102. package/lib/types/ToolCollection.d.ts +0 -72
  103. package/lib/types/ToolCollection.d.ts.map +0 -1
  104. package/lib/types/ToolRegistry.d.ts +0 -41
  105. package/lib/types/ToolRegistry.d.ts.map +0 -1
  106. package/lib/types/auth.d.ts +0 -32
  107. package/lib/types/auth.d.ts.map +0 -1
  108. package/lib/types/build/validate.d.ts +0 -2
  109. package/lib/types/build/validate.d.ts.map +0 -1
  110. package/lib/types/copy-assets.d.ts +0 -14
  111. package/lib/types/copy-assets.d.ts.map +0 -1
  112. package/lib/types/index.d.ts +0 -11
  113. package/lib/types/index.d.ts.map +0 -1
  114. package/lib/types/server/interactions.d.ts +0 -4
  115. package/lib/types/server/interactions.d.ts.map +0 -1
  116. package/lib/types/server/mcp.d.ts +0 -4
  117. package/lib/types/server/mcp.d.ts.map +0 -1
  118. package/lib/types/server/site.d.ts +0 -4
  119. package/lib/types/server/site.d.ts.map +0 -1
  120. package/lib/types/server/skills.d.ts +0 -4
  121. package/lib/types/server/skills.d.ts.map +0 -1
  122. package/lib/types/server/tools.d.ts +0 -4
  123. package/lib/types/server/tools.d.ts.map +0 -1
  124. package/lib/types/server/types.d.ts +0 -66
  125. package/lib/types/server/types.d.ts.map +0 -1
  126. package/lib/types/server/widgets.d.ts +0 -9
  127. package/lib/types/server/widgets.d.ts.map +0 -1
  128. package/lib/types/server.d.ts +0 -27
  129. package/lib/types/server.d.ts.map +0 -1
  130. package/lib/types/site/styles.d.ts +0 -5
  131. package/lib/types/site/styles.d.ts.map +0 -1
  132. package/lib/types/site/templates.d.ts +0 -55
  133. package/lib/types/site/templates.d.ts.map +0 -1
  134. package/lib/types/types.d.ts +0 -280
  135. package/lib/types/types.d.ts.map +0 -1
  136. package/lib/types/utils.d.ts +0 -4
  137. package/lib/types/utils.d.ts.map +0 -1
@@ -1,111 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ToolNotFoundError = exports.ToolRegistry = void 0;
4
- const http_exception_1 = require("hono/http-exception");
5
- class ToolRegistry {
6
- registry = {};
7
- constructor(tools = []) {
8
- for (const tool of tools) {
9
- this.registry[tool.name] = tool;
10
- }
11
- }
12
- /**
13
- * Get tool definitions with optional filtering.
14
- * @param options - Filtering options
15
- * @returns Filtered tool definitions
16
- */
17
- getDefinitions(options) {
18
- const { defaultOnly, unlockedTools = [] } = options || {};
19
- const unlockedSet = new Set(unlockedTools);
20
- return Object.values(this.registry)
21
- .filter(tool => {
22
- // If not filtering by default, include all tools
23
- if (!defaultOnly)
24
- return true;
25
- // Include if tool is default (default !== false) or is in unlocked list
26
- const isDefault = tool.default !== false;
27
- const isUnlocked = unlockedSet.has(tool.name);
28
- return isDefault || isUnlocked;
29
- })
30
- .map(tool => ({
31
- name: tool.name,
32
- description: tool.description,
33
- input_schema: tool.input_schema,
34
- default: tool.default,
35
- }));
36
- }
37
- /**
38
- * Get tools that are in reserve (default: false and not unlocked).
39
- * @param unlockedTools - List of tool names that are unlocked
40
- * @returns Tool definitions for reserve tools
41
- */
42
- getReserveTools(unlockedTools = []) {
43
- const unlockedSet = new Set(unlockedTools);
44
- return Object.values(this.registry)
45
- .filter(tool => tool.default === false && !unlockedSet.has(tool.name))
46
- .map(tool => ({
47
- name: tool.name,
48
- description: tool.description,
49
- input_schema: tool.input_schema,
50
- default: tool.default,
51
- }));
52
- }
53
- getTool(name) {
54
- const tool = this.registry[name];
55
- if (tool === undefined) {
56
- throw new ToolNotFoundError(name);
57
- }
58
- return tool;
59
- }
60
- getTools() {
61
- return Object.values(this.registry);
62
- }
63
- registerTool(tool) {
64
- this.registry[tool.name] = tool;
65
- }
66
- runTool(payload, context) {
67
- const toolName = payload.tool_use.tool_name;
68
- const toolUseId = payload.tool_use.id;
69
- const runId = payload.metadata?.run_id;
70
- console.log(`[ToolRegistry] Executing tool: ${toolName}`, {
71
- toolUseId,
72
- runId,
73
- input: sanitizeInput(payload.tool_use.tool_input),
74
- });
75
- return this.getTool(toolName).run(payload, context);
76
- }
77
- }
78
- exports.ToolRegistry = ToolRegistry;
79
- class ToolNotFoundError extends http_exception_1.HTTPException {
80
- constructor(name) {
81
- super(404, { message: "Tool function not found: " + name });
82
- this.name = "ToolNotFoundError";
83
- }
84
- }
85
- exports.ToolNotFoundError = ToolNotFoundError;
86
- const SENSITIVE_KEYS = new Set([
87
- 'apikey', 'api_key', 'token', 'secret', 'password', 'credential', 'credentials',
88
- 'authorization', 'auth', 'key', 'private_key', 'access_token', 'refresh_token'
89
- ]);
90
- function sanitizeInput(input) {
91
- if (!input)
92
- return null;
93
- const sanitized = {};
94
- for (const [key, value] of Object.entries(input)) {
95
- const lowerKey = key.toLowerCase();
96
- if (SENSITIVE_KEYS.has(lowerKey) || lowerKey.includes('key') || lowerKey.includes('token') || lowerKey.includes('secret')) {
97
- sanitized[key] = '[REDACTED]';
98
- }
99
- else if (typeof value === 'string' && value.length > 50) {
100
- sanitized[key] = value.slice(0, 50) + '...';
101
- }
102
- else if (typeof value === 'object' && value !== null) {
103
- sanitized[key] = Array.isArray(value) ? `[Array(${value.length})]` : '[Object]';
104
- }
105
- else {
106
- sanitized[key] = value;
107
- }
108
- }
109
- return sanitized;
110
- }
111
- //# sourceMappingURL=ToolRegistry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../../src/ToolRegistry.ts"],"names":[],"mappings":"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"}
package/lib/cjs/auth.js DELETED
@@ -1,104 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AuthSession = void 0;
4
- exports.getJwks = getJwks;
5
- exports.verifyToken = verifyToken;
6
- exports.authorize = authorize;
7
- const client_1 = require("@vertesia/client");
8
- const http_exception_1 = require("hono/http-exception");
9
- const jose_1 = require("jose");
10
- const cache = {};
11
- async function getJwks(url) {
12
- if (!cache.url) {
13
- console.log('JWKS cache miss for: ', url);
14
- const jwks = await fetch(url).then(r => {
15
- if (r.ok) {
16
- return r.json();
17
- }
18
- throw new Error("Fetching jwks failed with code: " + r.status);
19
- }).catch(err => {
20
- throw new Error("Failed to fetch jwks: " + err.message);
21
- });
22
- cache.url = (0, jose_1.createLocalJWKSet)(jwks);
23
- }
24
- return cache.url;
25
- }
26
- async function verifyToken(token) {
27
- const decodedJwt = (0, jose_1.decodeJwt)(token);
28
- if (!decodedJwt.iss) {
29
- throw new Error("No issuer URL found in JWT");
30
- }
31
- if (!isAllowedIssuer(decodedJwt.iss)) {
32
- throw new Error("Issuer is not allowed: " + decodedJwt.iss);
33
- }
34
- const jwks = await getJwks(`${decodedJwt.iss}/.well-known/jwks`);
35
- return await (0, jose_1.jwtVerify)(token, jwks);
36
- }
37
- async function authorize(ctx, endpointOverrides, toolContext) {
38
- const auth = ctx.req.header('Authorization');
39
- if (!auth) {
40
- throw new http_exception_1.HTTPException(401, {
41
- message: `Missing Authorization header`
42
- });
43
- }
44
- const [scheme, value] = auth.trim().split(' ');
45
- if (scheme.toLowerCase() !== 'bearer') {
46
- throw new http_exception_1.HTTPException(401, {
47
- message: `Authorization scheme ${scheme} is not supported`
48
- });
49
- }
50
- if (!value) {
51
- throw new http_exception_1.HTTPException(401, {
52
- message: `Missing bearer token value`
53
- });
54
- }
55
- try {
56
- const { payload } = await verifyToken(value);
57
- const session = new AuthSession(value, payload, endpointOverrides, toolContext);
58
- ctx.set("auth", session);
59
- return session;
60
- }
61
- catch (err) {
62
- throw new http_exception_1.HTTPException(401, {
63
- message: err.message,
64
- cause: err
65
- });
66
- }
67
- }
68
- class AuthSession {
69
- token;
70
- payload;
71
- _client;
72
- endpoints;
73
- toolContext;
74
- constructor(token, payload, endpointOverrides, toolContext) {
75
- this.token = token;
76
- this.payload = payload;
77
- const decoded = (0, client_1.decodeEndpoints)(payload.endpoints);
78
- // Use overrides from workflow config if provided, falling back to JWT endpoints
79
- this.endpoints = {
80
- studio: endpointOverrides?.studio || decoded.studio,
81
- store: endpointOverrides?.store || decoded.store,
82
- token: endpointOverrides?.token || decoded.token || payload.iss,
83
- };
84
- this.toolContext = toolContext;
85
- }
86
- async getClient() {
87
- if (!this._client) {
88
- const toolInfo = this.toolContext?.toolName ? ` for ${this.toolContext.toolName}` : '';
89
- console.log(`[VertesiaClient] Initializing client${toolInfo}`, {
90
- tool: this.toolContext?.toolName,
91
- toolUseId: this.toolContext?.toolUseId,
92
- runId: this.toolContext?.runId,
93
- endpoints: this.endpoints,
94
- });
95
- this._client = await client_1.VertesiaClient.fromAuthToken(this.token, this.payload, this.endpoints);
96
- }
97
- return this._client;
98
- }
99
- }
100
- exports.AuthSession = AuthSession;
101
- function isAllowedIssuer(iss) {
102
- return iss.endsWith(".vertesia.io") || iss.endsWith(".becomposable.com");
103
- }
104
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validate = validate;
4
- function validate() {
5
- //TODO
6
- }
7
- //# sourceMappingURL=validate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/build/validate.ts"],"names":[],"mappings":";;AAAA,4BAEC;AAFD,SAAgB,QAAQ;IACpB,MAAM;AACV,CAAC"}
@@ -1,84 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.copyRuntimeAssets = copyRuntimeAssets;
5
- /**
6
- * Copy runtime assets (skill files, prompt files, scripts) to dist folder
7
- * These files are read from disk at runtime and need to be deployed with the app
8
- *
9
- * Usage:
10
- * npx tools-sdk-copy-assets [srcDir] [distDir]
11
- *
12
- * Or import and call directly:
13
- * import { copyRuntimeAssets } from '@vertesia/tools-sdk';
14
- * copyRuntimeAssets('./src', './dist');
15
- */
16
- const fs_1 = require("fs");
17
- const path_1 = require("path");
18
- /**
19
- * Recursively copy files matching a filter
20
- */
21
- function copyFilesRecursive(src, dest, fileFilter) {
22
- if (!(0, fs_1.existsSync)(src))
23
- return;
24
- const entries = (0, fs_1.readdirSync)(src);
25
- for (const entry of entries) {
26
- const srcPath = (0, path_1.join)(src, entry);
27
- const destPath = (0, path_1.join)(dest, entry);
28
- const stat = (0, fs_1.statSync)(srcPath);
29
- if (stat.isDirectory()) {
30
- // Recurse into directories
31
- copyFilesRecursive(srcPath, destPath, fileFilter);
32
- }
33
- else if (fileFilter(entry)) {
34
- // Copy matching files
35
- (0, fs_1.mkdirSync)((0, path_1.dirname)(destPath), { recursive: true });
36
- (0, fs_1.copyFileSync)(srcPath, destPath);
37
- }
38
- }
39
- }
40
- /**
41
- * Copy runtime assets (skills, interactions) from src to dist
42
- */
43
- function copyRuntimeAssets(options = {}) {
44
- const { srcDir = './src', distDir = './dist', verbose = true } = options;
45
- if (verbose) {
46
- console.log('Copying runtime assets to dist...');
47
- }
48
- // Copy skill files (SKILL.md, SKILL.jst, *.py)
49
- const skillsSrc = (0, path_1.join)(srcDir, 'skills');
50
- const skillsDest = (0, path_1.join)(distDir, 'skills');
51
- if ((0, fs_1.existsSync)(skillsSrc)) {
52
- copyFilesRecursive(skillsSrc, skillsDest, (filename) => {
53
- return filename === 'SKILL.md' ||
54
- filename === 'SKILL.jst' ||
55
- filename.endsWith('.py');
56
- });
57
- if (verbose) {
58
- console.log(' ✓ Skills assets (SKILL.md, SKILL.jst, *.py)');
59
- }
60
- }
61
- // Copy interaction prompt files (prompt.jst, prompt.md)
62
- const interactionsSrc = (0, path_1.join)(srcDir, 'interactions');
63
- const interactionsDest = (0, path_1.join)(distDir, 'interactions');
64
- if ((0, fs_1.existsSync)(interactionsSrc)) {
65
- copyFilesRecursive(interactionsSrc, interactionsDest, (filename) => {
66
- return filename === 'prompt.jst' ||
67
- filename === 'prompt.md';
68
- });
69
- if (verbose) {
70
- console.log(' ✓ Interaction assets (prompt.jst, prompt.md)');
71
- }
72
- }
73
- if (verbose) {
74
- console.log('Runtime assets copied successfully!');
75
- }
76
- }
77
- // CLI entry point
78
- if (typeof process !== 'undefined' && process.argv[1]?.includes('copy-assets')) {
79
- const args = process.argv.slice(2);
80
- const srcDir = args[0] || './src';
81
- const distDir = args[1] || './dist';
82
- copyRuntimeAssets({ srcDir, distDir });
83
- }
84
- //# sourceMappingURL=copy-assets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"copy-assets.js","sourceRoot":"","sources":["../../src/copy-assets.ts"],"names":[],"mappings":"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"}
package/lib/cjs/index.js DELETED
@@ -1,31 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.copyRuntimeAssets = exports.AuthSession = exports.authorize = void 0;
18
- var auth_js_1 = require("./auth.js");
19
- Object.defineProperty(exports, "authorize", { enumerable: true, get: function () { return auth_js_1.authorize; } });
20
- Object.defineProperty(exports, "AuthSession", { enumerable: true, get: function () { return auth_js_1.AuthSession; } });
21
- var copy_assets_js_1 = require("./copy-assets.js");
22
- Object.defineProperty(exports, "copyRuntimeAssets", { enumerable: true, get: function () { return copy_assets_js_1.copyRuntimeAssets; } });
23
- __exportStar(require("./InteractionCollection.js"), exports);
24
- __exportStar(require("./server.js"), exports);
25
- __exportStar(require("./server/types.js"), exports);
26
- __exportStar(require("./site/templates.js"), exports);
27
- __exportStar(require("./SkillCollection.js"), exports);
28
- __exportStar(require("./ToolCollection.js"), exports);
29
- __exportStar(require("./ToolRegistry.js"), exports);
30
- __exportStar(require("./types.js"), exports);
31
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qCAAmD;AAA1C,oGAAA,SAAS,OAAA;AAAE,sGAAA,WAAW,OAAA;AAC/B,mDAAqD;AAA5C,mHAAA,iBAAiB,OAAA;AAC1B,6DAA2C;AAC3C,8CAA4B;AAC5B,oDAAkC;AAClC,sDAAoC;AACpC,uDAAqC;AACrC,sDAAoC;AACpC,oDAAkC;AAClC,6CAA2B"}
@@ -1,3 +0,0 @@
1
- {
2
- "type": "commonjs"
3
- }
@@ -1,66 +0,0 @@
1
- "use strict";
2
- // ================== Interaction Endpoints ==================
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.createInteractionsRoute = createInteractionsRoute;
5
- const hono_1 = require("hono");
6
- const http_exception_1 = require("hono/http-exception");
7
- const auth_js_1 = require("../auth.js");
8
- function createInteractionsRoute(app, basePath, config) {
9
- const { interactions = [] } = config;
10
- // GET /api/interactions - Returns all interactions from all collections
11
- app.get(basePath, (c) => {
12
- const allInteractions = [];
13
- for (const coll of interactions) {
14
- for (const inter of coll.interactions) {
15
- allInteractions.push({
16
- type: "app",
17
- id: inter.name,
18
- name: inter.name,
19
- title: inter.title || inter.name,
20
- description: inter.description,
21
- tags: inter.tags || [],
22
- });
23
- }
24
- }
25
- return c.json({
26
- title: 'All Interactions',
27
- description: 'All available interactions across all collections',
28
- interactions: allInteractions,
29
- collections: interactions.map(i => ({
30
- name: i.name,
31
- title: i.title,
32
- description: i.description,
33
- })),
34
- });
35
- });
36
- // Create interaction collection endpoints
37
- for (const coll of interactions) {
38
- app.route(`${basePath}/${coll.name}`, createInteractionEndpoints(coll));
39
- }
40
- }
41
- function createInteractionEndpoints(coll) {
42
- const endpoint = new hono_1.Hono();
43
- endpoint.get('/', (c) => {
44
- return c.json(coll.interactions.map(inter => ({
45
- type: "app",
46
- id: inter.name,
47
- name: inter.name,
48
- title: inter.title || inter.name,
49
- description: inter.description,
50
- tags: inter.tags || [],
51
- })));
52
- });
53
- endpoint.get('/:name', async (c) => {
54
- await (0, auth_js_1.authorize)(c);
55
- const name = c.req.param('name');
56
- const inter = coll.getInteractionByName(name);
57
- if (!inter) {
58
- throw new http_exception_1.HTTPException(404, {
59
- message: "No interaction found with name: " + name
60
- });
61
- }
62
- return c.json(inter);
63
- });
64
- return endpoint;
65
- }
66
- //# sourceMappingURL=interactions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interactions.js","sourceRoot":"","sources":["../../../src/server/interactions.ts"],"names":[],"mappings":"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"}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- // ================== MCP Endpoints ==================
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.createMcpRoute = createMcpRoute;
5
- const hono_1 = require("hono");
6
- const http_exception_1 = require("hono/http-exception");
7
- const auth_js_1 = require("../auth.js");
8
- function createMcpRoute(app, basePath, config) {
9
- const { mcpProviders = [] } = config;
10
- // Create MCP provider endpoints
11
- if (mcpProviders.length > 0) {
12
- app.route(basePath, createMCPEndpoints(mcpProviders));
13
- }
14
- }
15
- function createMCPEndpoints(providers) {
16
- const endpoint = new hono_1.Hono();
17
- for (const p of providers) {
18
- endpoint.post(`/${p.name}`, async (c) => {
19
- const session = await (0, auth_js_1.authorize)(c);
20
- const config = await readJsonBody(c);
21
- const info = await p.createMCPConnection(session, config);
22
- return c.json(info);
23
- });
24
- endpoint.get(`/${p.name}`, (c) => c.json({
25
- name: p.name,
26
- description: p.description,
27
- }));
28
- }
29
- return endpoint;
30
- }
31
- async function readJsonBody(ctx) {
32
- try {
33
- const text = await ctx.req.text();
34
- const jsonContent = text?.trim() || '';
35
- if (!jsonContent)
36
- return {};
37
- return JSON.parse(jsonContent);
38
- }
39
- catch (err) {
40
- throw new http_exception_1.HTTPException(400, {
41
- message: "Failed to parse JSON body: " + err.message
42
- });
43
- }
44
- }
45
- //# sourceMappingURL=mcp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/server/mcp.ts"],"names":[],"mappings":";AAAA,sDAAsD;;AAUtD,wCAOC;AAfD,+BAAqC;AACrC,wDAAoD;AACpD,wCAAuC;AAMvC,SAAgB,cAAc,CAAC,GAAS,EAAE,QAAgB,EAAE,MAAwB;IAChF,MAAM,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IACrC,gCAAgC;IAChC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC1D,CAAC;AAEL,CAAC;AAED,SAAS,kBAAkB,CAAC,SAA8B;IACtD,MAAM,QAAQ,GAAG,IAAI,WAAI,EAAE,CAAC;IAE5B,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE;YAC7C,MAAM,OAAO,GAAG,MAAM,IAAA,mBAAS,EAAC,CAAC,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC1D,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9C,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;SAC7B,CAAC,CAAC,CAAC;IACR,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAY;IACpC,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAwB,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAChB,MAAM,IAAI,8BAAa,CAAC,GAAG,EAAE;YACzB,OAAO,EAAE,6BAA6B,GAAG,GAAG,CAAC,OAAO;SACvD,CAAC,CAAC;IACP,CAAC;AACL,CAAC"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createSiteRoute = createSiteRoute;
4
- const templates_js_1 = require("../site/templates.js");
5
- function createSiteRoute(app, basePath, config) {
6
- const { tools = [], interactions = [], skills = [], } = config;
7
- // Index page
8
- app.get(`${basePath}/`, (c) => {
9
- return c.html((0, templates_js_1.indexPage)(config));
10
- });
11
- // Tool collection pages
12
- for (const coll of tools) {
13
- app.get(`${basePath}/tools/${coll.name}`, (c) => {
14
- return c.html((0, templates_js_1.toolCollectionPage)(coll));
15
- });
16
- }
17
- // Skill collection pages
18
- for (const coll of skills) {
19
- app.get(`${basePath}/skills/${coll.name}`, (c) => {
20
- return c.html((0, templates_js_1.skillCollectionPage)(coll));
21
- });
22
- }
23
- // Interaction collection pages
24
- for (const coll of interactions) {
25
- app.get(`${basePath}/interactions/${coll.name}`, (c) => {
26
- return c.html((0, templates_js_1.interactionCollectionPage)(coll));
27
- });
28
- }
29
- }
30
- //# sourceMappingURL=site.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"site.js","sourceRoot":"","sources":["../../../src/server/site.ts"],"names":[],"mappings":";;AAUA,0CAiCC;AA1CD,uDAK8B;AAI9B,SAAgB,eAAe,CAAC,GAAS,EAAE,QAAgB,EAAE,MAAwB;IACjF,MAAM,EACF,KAAK,GAAG,EAAE,EACV,YAAY,GAAG,EAAE,EACjB,MAAM,GAAG,EAAE,GACd,GAAG,MAAM,CAAC;IAEX,aAAa;IACb,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;QAC1B,OAAO,CAAC,CAAC,IAAI,CAAC,IAAA,wBAAS,EAAC,MAAM,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,UAAU,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YAC5C,OAAO,CAAC,CAAC,IAAI,CAAC,IAAA,iCAAkB,EAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,yBAAyB;IACzB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QACxB,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,WAAW,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YAC7C,OAAO,CAAC,CAAC,IAAI,CAAC,IAAA,kCAAmB,EAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,+BAA+B;IAC/B,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,iBAAiB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YACnD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAA,wCAAyB,EAAC,IAAI,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC;AAEL,CAAC"}
@@ -1,114 +0,0 @@
1
- "use strict";
2
- // ================== Skill Endpoints ==================
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.createSkillsRoute = createSkillsRoute;
5
- const hono_1 = require("hono");
6
- const http_exception_1 = require("hono/http-exception");
7
- const utils_js_1 = require("../utils.js");
8
- function createSkillsRoute(app, basePath, config) {
9
- const { skills = [] } = config;
10
- // Build a map of skill name -> collection for routing
11
- const skillToCollection = new Map();
12
- for (const coll of skills) {
13
- for (const skill of coll.getSkillDefinitions()) {
14
- skillToCollection.set(skill.name, coll);
15
- // Also map the learn_ prefixed name
16
- skillToCollection.set(`learn_${skill.name}`, coll);
17
- }
18
- }
19
- // GET /api/skills - Returns all skills from all collections
20
- app.get(basePath, (c) => {
21
- const url = new URL(c.req.url);
22
- const allSkills = [];
23
- for (const coll of skills) {
24
- allSkills.push(...coll.getToolDefinitions());
25
- }
26
- return c.json({
27
- src: `${url.origin}${url.pathname}`,
28
- title: 'All Skills',
29
- description: 'All available skills across all collections',
30
- tools: allSkills,
31
- collections: skills.map(s => ({
32
- name: s.name,
33
- title: s.title,
34
- description: s.description,
35
- })),
36
- });
37
- });
38
- // POST /api/skills - Route to the correct collection based on tool_name
39
- app.post(basePath, async (c) => {
40
- const ctx = c;
41
- // Payload is already parsed and validated by middleware
42
- if (!ctx.payload) {
43
- throw new http_exception_1.HTTPException(400, {
44
- message: 'Invalid or missing skill execution payload. Expected { tool_use: { id, tool_name, tool_input? }, metadata? }'
45
- });
46
- }
47
- const toolName = ctx.payload.tool_use.tool_name;
48
- // Find the collection for this skill
49
- const collection = skillToCollection.get(toolName);
50
- if (!collection) {
51
- // Extract skill name for better error message
52
- const skillName = toolName.startsWith('learn_') ? toolName.slice(6) : toolName;
53
- throw new http_exception_1.HTTPException(404, {
54
- message: `Skill not found: ${skillName}. Available skills: ${Array.from(skillToCollection.keys()).filter(k => !k.startsWith('learn_')).join(', ')}`
55
- });
56
- }
57
- // Delegate to the collection's execute method with pre-parsed payload
58
- return collection.execute(c, ctx.payload);
59
- });
60
- // Create skill collection endpoints (exposed as tools)
61
- for (const coll of skills) {
62
- app.route(`${basePath}/${coll.name}`, createSkillEndpoints(coll));
63
- }
64
- }
65
- function createSkillEndpoints(coll) {
66
- const endpoint = new hono_1.Hono();
67
- // List skills as tool definitions (tool collection format)
68
- // This allows skills to be used exactly like tools
69
- endpoint.get('/', (c) => {
70
- const url = new URL(c.req.url);
71
- return c.json({
72
- src: `${url.origin}${url.pathname}`,
73
- title: coll.title || coll.name,
74
- description: coll.description || '',
75
- tools: coll.getToolDefinitions()
76
- });
77
- });
78
- // Get scripts for a specific skill
79
- // Returns all scripts bundled with the skill
80
- endpoint.get('/:name/scripts', (c) => {
81
- const name = c.req.param('name');
82
- const skillName = name.startsWith('learn_') ? name.slice(6) : name;
83
- const skill = coll.getSkill(skillName);
84
- if (!skill) {
85
- throw new http_exception_1.HTTPException(404, {
86
- message: `Skill not found: ${skillName}`
87
- });
88
- }
89
- const url = new URL(c.req.url);
90
- return c.json({
91
- skill_name: skill.name,
92
- scripts: skill.scripts ? skill.scripts.map(s => (0, utils_js_1.makeScriptUrl)(url.origin, s)) : []
93
- });
94
- });
95
- // Get a specific skill by name
96
- endpoint.get('/:name', (c) => {
97
- const name = c.req.param('name');
98
- // Handle both "learn_name" and "name" formats
99
- const skillName = name.startsWith('learn_') ? name.slice(6) : name;
100
- const skill = coll.getSkill(skillName);
101
- if (!skill) {
102
- throw new http_exception_1.HTTPException(404, {
103
- message: `Skill not found: ${skillName}`
104
- });
105
- }
106
- return c.json(skill);
107
- });
108
- // Execute skill (standard tool execution format)
109
- endpoint.post('/', (c) => {
110
- return coll.execute(c);
111
- });
112
- return endpoint;
113
- }
114
- //# sourceMappingURL=skills.js.map