@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.
- package/lib/{types/ActivityCollection.d.ts → ActivityCollection.d.ts} +7 -7
- package/lib/ActivityCollection.d.ts.map +1 -0
- package/lib/{esm/ActivityCollection.js → ActivityCollection.js} +6 -6
- package/lib/ActivityCollection.js.map +1 -0
- package/lib/{types/ContentTypesCollection.d.ts → ContentTypesCollection.d.ts} +2 -2
- package/lib/ContentTypesCollection.d.ts.map +1 -0
- package/lib/{esm/ContentTypesCollection.js → ContentTypesCollection.js} +3 -3
- package/lib/ContentTypesCollection.js.map +1 -0
- package/lib/{types/InteractionCollection.d.ts → InteractionCollection.d.ts} +2 -2
- package/lib/InteractionCollection.d.ts.map +1 -0
- package/lib/{esm/InteractionCollection.js → InteractionCollection.js} +3 -3
- package/lib/InteractionCollection.js.map +1 -0
- package/lib/{types/RenderingTemplateCollection.d.ts → RenderingTemplateCollection.d.ts} +1 -1
- package/lib/RenderingTemplateCollection.d.ts.map +1 -0
- package/lib/{esm/RenderingTemplateCollection.js → RenderingTemplateCollection.js} +3 -3
- package/lib/RenderingTemplateCollection.js.map +1 -0
- package/lib/{types/SkillCollection.d.ts → SkillCollection.d.ts} +5 -5
- package/lib/SkillCollection.d.ts.map +1 -0
- package/lib/{esm/SkillCollection.js → SkillCollection.js} +68 -51
- package/lib/SkillCollection.js.map +1 -0
- package/lib/{types/ToolCollection.d.ts → ToolCollection.d.ts} +10 -10
- package/lib/ToolCollection.d.ts.map +1 -0
- package/lib/{esm/ToolCollection.js → ToolCollection.js} +21 -18
- package/lib/ToolCollection.js.map +1 -0
- package/lib/ToolRegistry.d.ts +22 -0
- package/lib/ToolRegistry.d.ts.map +1 -0
- package/lib/{esm/ToolRegistry.js → ToolRegistry.js} +6 -36
- package/lib/ToolRegistry.js.map +1 -0
- package/lib/{types/auth.d.ts → auth.d.ts} +5 -5
- package/lib/auth.d.ts.map +1 -0
- package/lib/{esm/auth.js → auth.js} +23 -17
- package/lib/auth.js.map +1 -0
- package/lib/build/validate.d.ts.map +1 -0
- package/lib/build/validate.js.map +1 -0
- package/lib/copy-assets.d.ts.map +1 -0
- package/lib/{esm/copy-assets.js → copy-assets.js} +4 -7
- package/lib/copy-assets.js.map +1 -0
- package/lib/index.d.ts +16 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +15 -0
- package/lib/index.js.map +1 -0
- package/lib/server/activities.d.ts +4 -0
- package/lib/server/activities.d.ts.map +1 -0
- package/lib/{esm/server → server}/activities.js +12 -9
- package/lib/server/activities.js.map +1 -0
- package/lib/server/app-package.d.ts +12 -0
- package/lib/server/app-package.d.ts.map +1 -0
- package/lib/server/app-package.js +197 -0
- package/lib/server/app-package.js.map +1 -0
- package/lib/server/content-types.d.ts +4 -0
- package/lib/server/content-types.d.ts.map +1 -0
- package/lib/server/content-types.js +100 -0
- package/lib/server/content-types.js.map +1 -0
- package/lib/server/dashboards.d.ts +4 -0
- package/lib/server/dashboards.d.ts.map +1 -0
- package/lib/server/dashboards.js +25 -0
- package/lib/server/dashboards.js.map +1 -0
- package/lib/server/interactions.d.ts +4 -0
- package/lib/server/interactions.d.ts.map +1 -0
- package/lib/{esm/server → server}/interactions.js +16 -16
- package/lib/server/interactions.js.map +1 -0
- package/lib/server/mcp.d.ts +4 -0
- package/lib/server/mcp.d.ts.map +1 -0
- package/lib/{esm/server → server}/mcp.js +5 -4
- package/lib/server/mcp.js.map +1 -0
- package/lib/server/processes.d.ts +4 -0
- package/lib/server/processes.d.ts.map +1 -0
- package/lib/server/processes.js +26 -0
- package/lib/server/processes.js.map +1 -0
- package/lib/server/site.d.ts +4 -0
- package/lib/server/site.d.ts.map +1 -0
- package/lib/{esm/server → server}/site.js +4 -2
- package/lib/server/site.js.map +1 -0
- package/lib/server/skills.d.ts +4 -0
- package/lib/server/skills.d.ts.map +1 -0
- package/lib/{esm/server → server}/skills.js +14 -12
- package/lib/server/skills.js.map +1 -0
- package/lib/server/templates.d.ts +4 -0
- package/lib/server/templates.d.ts.map +1 -0
- package/lib/{esm/server → server}/templates.js +10 -10
- package/lib/server/templates.js.map +1 -0
- package/lib/server/tools.d.ts +4 -0
- package/lib/server/tools.d.ts.map +1 -0
- package/lib/{esm/server → server}/tools.js +7 -9
- package/lib/server/tools.js.map +1 -0
- package/lib/{types/server → server}/types.d.ts +21 -16
- package/lib/server/types.d.ts.map +1 -0
- package/lib/{cjs → server}/types.js.map +1 -1
- package/lib/server/widgets.d.ts +4 -0
- package/lib/server/widgets.d.ts.map +1 -0
- package/lib/server/widgets.js.map +1 -0
- package/lib/{types/server.d.ts → server.d.ts} +3 -3
- package/lib/server.d.ts.map +1 -0
- package/lib/{esm/server.js → server.js} +28 -22
- package/lib/server.js.map +1 -0
- package/lib/site/styles.d.ts.map +1 -0
- package/lib/{esm/site → site}/styles.js.map +1 -1
- package/lib/{types/site → site}/templates.d.ts +9 -9
- package/lib/site/templates.d.ts.map +1 -0
- package/lib/{esm/site → site}/templates.js +152 -98
- package/lib/site/templates.js.map +1 -0
- package/lib/{types/types.d.ts → types.d.ts} +29 -16
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js.map +1 -0
- package/lib/utils.d.ts.map +1 -0
- package/lib/{esm/utils.js → utils.js} +11 -5
- package/lib/utils.js.map +1 -0
- package/package.json +20 -22
- package/src/ActivityCollection.test.ts +60 -59
- package/src/ActivityCollection.ts +27 -20
- package/src/ContentTypesCollection.ts +6 -9
- package/src/InteractionCollection.ts +6 -8
- package/src/RenderingTemplateCollection.ts +49 -51
- package/src/SkillCollection.ts +91 -72
- package/src/ToolCollection.ts +52 -43
- package/src/ToolRegistry.ts +20 -50
- package/src/auth.ts +35 -27
- package/src/copy-assets.ts +5 -12
- package/src/index.ts +15 -15
- package/src/server/activities.test.ts +70 -67
- package/src/server/activities.ts +17 -13
- package/src/server/app-package.test.ts +140 -0
- package/src/server/app-package.ts +115 -52
- package/src/server/content-types.test.ts +64 -0
- package/src/server/content-types.ts +53 -25
- package/src/server/dashboards.ts +31 -0
- package/src/server/interactions.ts +29 -28
- package/src/server/mcp.ts +16 -16
- package/src/server/processes.ts +35 -0
- package/src/server/site.ts +7 -15
- package/src/server/skills.ts +19 -18
- package/src/server/templates.ts +82 -80
- package/src/server/tools.ts +12 -16
- package/src/server/types.ts +29 -20
- package/src/server/widgets.ts +5 -9
- package/src/server.ts +55 -47
- package/src/site/styles.ts +1 -1
- package/src/site/templates.ts +259 -157
- package/src/types.ts +55 -31
- package/src/utils.ts +11 -6
- package/lib/cjs/ActivityCollection.js +0 -93
- package/lib/cjs/ActivityCollection.js.map +0 -1
- package/lib/cjs/ContentTypesCollection.js +0 -43
- package/lib/cjs/ContentTypesCollection.js.map +0 -1
- package/lib/cjs/InteractionCollection.js +0 -43
- package/lib/cjs/InteractionCollection.js.map +0 -1
- package/lib/cjs/RenderingTemplateCollection.js +0 -43
- package/lib/cjs/RenderingTemplateCollection.js.map +0 -1
- package/lib/cjs/SkillCollection.js +0 -384
- package/lib/cjs/SkillCollection.js.map +0 -1
- package/lib/cjs/ToolCollection.js +0 -221
- package/lib/cjs/ToolCollection.js.map +0 -1
- package/lib/cjs/ToolRegistry.js +0 -95
- package/lib/cjs/ToolRegistry.js.map +0 -1
- package/lib/cjs/auth.js +0 -131
- package/lib/cjs/auth.js.map +0 -1
- package/lib/cjs/build/validate.js +0 -7
- package/lib/cjs/build/validate.js.map +0 -1
- package/lib/cjs/copy-assets.js +0 -84
- package/lib/cjs/copy-assets.js.map +0 -1
- package/lib/cjs/index.js +0 -34
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/package.json +0 -3
- package/lib/cjs/server/activities.js +0 -103
- package/lib/cjs/server/activities.js.map +0 -1
- package/lib/cjs/server/app-package.js +0 -154
- package/lib/cjs/server/app-package.js.map +0 -1
- package/lib/cjs/server/content-types.js +0 -73
- package/lib/cjs/server/content-types.js.map +0 -1
- package/lib/cjs/server/interactions.js +0 -101
- package/lib/cjs/server/interactions.js.map +0 -1
- package/lib/cjs/server/mcp.js +0 -45
- package/lib/cjs/server/mcp.js.map +0 -1
- package/lib/cjs/server/site.js +0 -48
- package/lib/cjs/server/site.js.map +0 -1
- package/lib/cjs/server/skills.js +0 -124
- package/lib/cjs/server/skills.js.map +0 -1
- package/lib/cjs/server/templates.js +0 -67
- package/lib/cjs/server/templates.js.map +0 -1
- package/lib/cjs/server/tools.js +0 -87
- package/lib/cjs/server/tools.js.map +0 -1
- package/lib/cjs/server/types.js +0 -3
- package/lib/cjs/server/types.js.map +0 -1
- package/lib/cjs/server/widgets.js +0 -27
- package/lib/cjs/server/widgets.js.map +0 -1
- package/lib/cjs/server.js +0 -142
- package/lib/cjs/server.js.map +0 -1
- package/lib/cjs/site/styles.js +0 -692
- package/lib/cjs/site/styles.js.map +0 -1
- package/lib/cjs/site/templates.js +0 -1320
- package/lib/cjs/site/templates.js.map +0 -1
- package/lib/cjs/types.js +0 -3
- package/lib/cjs/utils.js +0 -44
- package/lib/cjs/utils.js.map +0 -1
- package/lib/esm/ActivityCollection.js.map +0 -1
- package/lib/esm/ContentTypesCollection.js.map +0 -1
- package/lib/esm/InteractionCollection.js.map +0 -1
- package/lib/esm/RenderingTemplateCollection.js.map +0 -1
- package/lib/esm/SkillCollection.js.map +0 -1
- package/lib/esm/ToolCollection.js.map +0 -1
- package/lib/esm/ToolRegistry.js.map +0 -1
- package/lib/esm/auth.js.map +0 -1
- package/lib/esm/build/validate.js.map +0 -1
- package/lib/esm/copy-assets.js.map +0 -1
- package/lib/esm/index.js +0 -14
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/server/activities.js.map +0 -1
- package/lib/esm/server/app-package.js +0 -151
- package/lib/esm/server/app-package.js.map +0 -1
- package/lib/esm/server/content-types.js +0 -70
- package/lib/esm/server/content-types.js.map +0 -1
- package/lib/esm/server/interactions.js.map +0 -1
- package/lib/esm/server/mcp.js.map +0 -1
- package/lib/esm/server/site.js.map +0 -1
- package/lib/esm/server/skills.js.map +0 -1
- package/lib/esm/server/templates.js.map +0 -1
- package/lib/esm/server/tools.js.map +0 -1
- package/lib/esm/server/types.js.map +0 -1
- package/lib/esm/server/widgets.js.map +0 -1
- package/lib/esm/server.js.map +0 -1
- package/lib/esm/site/templates.js.map +0 -1
- package/lib/esm/types.js.map +0 -1
- package/lib/esm/utils.js.map +0 -1
- package/lib/types/ActivityCollection.d.ts.map +0 -1
- package/lib/types/ContentTypesCollection.d.ts.map +0 -1
- package/lib/types/InteractionCollection.d.ts.map +0 -1
- package/lib/types/RenderingTemplateCollection.d.ts.map +0 -1
- package/lib/types/SkillCollection.d.ts.map +0 -1
- package/lib/types/ToolCollection.d.ts.map +0 -1
- package/lib/types/ToolRegistry.d.ts +0 -22
- package/lib/types/ToolRegistry.d.ts.map +0 -1
- package/lib/types/auth.d.ts.map +0 -1
- package/lib/types/build/validate.d.ts.map +0 -1
- package/lib/types/copy-assets.d.ts.map +0 -1
- package/lib/types/index.d.ts +0 -14
- package/lib/types/index.d.ts.map +0 -1
- package/lib/types/server/activities.d.ts +0 -4
- package/lib/types/server/activities.d.ts.map +0 -1
- package/lib/types/server/app-package.d.ts +0 -4
- package/lib/types/server/app-package.d.ts.map +0 -1
- package/lib/types/server/content-types.d.ts +0 -4
- package/lib/types/server/content-types.d.ts.map +0 -1
- package/lib/types/server/interactions.d.ts +0 -4
- package/lib/types/server/interactions.d.ts.map +0 -1
- package/lib/types/server/mcp.d.ts +0 -4
- package/lib/types/server/mcp.d.ts.map +0 -1
- package/lib/types/server/site.d.ts +0 -4
- package/lib/types/server/site.d.ts.map +0 -1
- package/lib/types/server/skills.d.ts +0 -4
- package/lib/types/server/skills.d.ts.map +0 -1
- package/lib/types/server/templates.d.ts +0 -4
- package/lib/types/server/templates.d.ts.map +0 -1
- package/lib/types/server/tools.d.ts +0 -4
- package/lib/types/server/tools.d.ts.map +0 -1
- package/lib/types/server/types.d.ts.map +0 -1
- package/lib/types/server/widgets.d.ts +0 -4
- package/lib/types/server/widgets.d.ts.map +0 -1
- package/lib/types/server.d.ts.map +0 -1
- package/lib/types/site/styles.d.ts.map +0 -1
- package/lib/types/site/templates.d.ts.map +0 -1
- package/lib/types/types.d.ts.map +0 -1
- package/lib/types/utils.d.ts.map +0 -1
- /package/lib/{types/build → build}/validate.d.ts +0 -0
- /package/lib/{esm/build → build}/validate.js +0 -0
- /package/lib/{types/copy-assets.d.ts → copy-assets.d.ts} +0 -0
- /package/lib/{esm/server → server}/types.js +0 -0
- /package/lib/{esm/server → server}/widgets.js +0 -0
- /package/lib/{types/site → site}/styles.d.ts +0 -0
- /package/lib/{esm/site → site}/styles.js +0 -0
- /package/lib/{esm/types.js → types.js} +0 -0
- /package/lib/{types/utils.d.ts → utils.d.ts} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { RemoteActivityDefinition, RemoteActivityExecutionPayload } from
|
|
2
|
-
import { Context } from
|
|
3
|
-
import { CollectionProperties, ICollection, ToolExecutionContext } from
|
|
1
|
+
import type { RemoteActivityDefinition, RemoteActivityExecutionPayload } from '@vertesia/common';
|
|
2
|
+
import type { Context } from 'hono';
|
|
3
|
+
import type { CollectionProperties, ICollection, ToolExecutionContext } from './types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Context provided to activity handlers during execution.
|
|
6
6
|
* Same interface as ToolExecutionContext: includes token, decoded payload, and getClient().
|
|
@@ -9,11 +9,11 @@ export type ActivityExecutionContext = ToolExecutionContext;
|
|
|
9
9
|
/**
|
|
10
10
|
* Function signature for a remote activity handler.
|
|
11
11
|
*/
|
|
12
|
-
export type ActivityFn<ParamsT extends
|
|
12
|
+
export type ActivityFn<ParamsT extends object = Record<string, unknown>> = (payload: RemoteActivityExecutionPayload<ParamsT>, context: ActivityExecutionContext) => Promise<unknown>;
|
|
13
13
|
/**
|
|
14
14
|
* An activity definition within an ActivityCollection.
|
|
15
15
|
*/
|
|
16
|
-
export interface ActivityDefinition<ParamsT extends
|
|
16
|
+
export interface ActivityDefinition<ParamsT extends object = Record<string, unknown>> {
|
|
17
17
|
/** Activity name (snake_case) */
|
|
18
18
|
name: string;
|
|
19
19
|
/** Display title */
|
|
@@ -21,9 +21,9 @@ export interface ActivityDefinition<ParamsT extends Record<string, any> = Record
|
|
|
21
21
|
/** Description of what the activity does */
|
|
22
22
|
description?: string;
|
|
23
23
|
/** JSON Schema for the activity input parameters */
|
|
24
|
-
input_schema?: Record<string,
|
|
24
|
+
input_schema?: Record<string, unknown>;
|
|
25
25
|
/** JSON Schema for the activity output */
|
|
26
|
-
output_schema?: Record<string,
|
|
26
|
+
output_schema?: Record<string, unknown>;
|
|
27
27
|
/** The activity handler function */
|
|
28
28
|
run: ActivityFn<ParamsT>;
|
|
29
29
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActivityCollection.d.ts","sourceRoot":"","sources":["../src/ActivityCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,wBAAwB,EACxB,8BAA8B,EAEjC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAG1F;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CACvE,OAAO,EAAE,8BAA8B,CAAC,OAAO,CAAC,EAChD,OAAO,EAAE,wBAAwB,KAChC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAChF,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,oCAAoC;IACpC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,4BAA6B,SAAQ,oBAAoB;IACtE,UAAU,EAAE,kBAAkB,EAAE,CAAC;CACpC;AAED;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,WAAW,CAAC,kBAAkB,CAAC;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,QAAQ,CAA0C;gBAE9C,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,4BAA4B;IAUxF,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,kBAAkB,CAAC;IAajD;;OAEG;IACH,sBAAsB,IAAI,wBAAwB,EAAE;IAUpD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB;IAU7C;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,QAAQ,CAAC;CAmC1F"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { HTTPException } from
|
|
2
|
-
import { authorize } from
|
|
3
|
-
import { kebabCaseToTitle } from
|
|
1
|
+
import { HTTPException } from 'hono/http-exception';
|
|
2
|
+
import { authorize } from './auth.js';
|
|
3
|
+
import { kebabCaseToTitle } from './utils.js';
|
|
4
4
|
/**
|
|
5
5
|
* A collection of remote activities exposed by a tool server for DSL workflows.
|
|
6
6
|
* Follows the same collection pattern as ToolCollection and SkillCollection.
|
|
@@ -29,14 +29,14 @@ export class ActivityCollection {
|
|
|
29
29
|
return { value: activities[index++], done: false };
|
|
30
30
|
}
|
|
31
31
|
return { done: true, value: undefined };
|
|
32
|
-
}
|
|
32
|
+
},
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* Get activity definitions for discovery (metadata only, no run function).
|
|
37
37
|
*/
|
|
38
38
|
getActivityDefinitions() {
|
|
39
|
-
return Object.values(this.registry).map(activity => ({
|
|
39
|
+
return Object.values(this.registry).map((activity) => ({
|
|
40
40
|
name: activity.name,
|
|
41
41
|
title: activity.title,
|
|
42
42
|
description: activity.description,
|
|
@@ -48,7 +48,7 @@ export class ActivityCollection {
|
|
|
48
48
|
const activity = this.registry[name];
|
|
49
49
|
if (!activity) {
|
|
50
50
|
throw new HTTPException(404, {
|
|
51
|
-
message: `Activity not found: ${name}. Available: ${Object.keys(this.registry).join(', ')}
|
|
51
|
+
message: `Activity not found: ${name}. Available: ${Object.keys(this.registry).join(', ')}`,
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
54
|
return activity;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActivityCollection.js","sourceRoot":"","sources":["../src/ActivityCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { InCodeTypeSpec } from
|
|
2
|
-
import { CollectionProperties, ICollection } from
|
|
1
|
+
import type { InCodeTypeSpec } from '@vertesia/common';
|
|
2
|
+
import type { CollectionProperties, ICollection } from './types.js';
|
|
3
3
|
export interface ContentTypesCollectionProps extends CollectionProperties {
|
|
4
4
|
types: InCodeTypeSpec[];
|
|
5
5
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentTypesCollection.d.ts","sourceRoot":"","sources":["../src/ContentTypesCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGpE,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACrE,KAAK,EAAE,cAAc,EAAE,CAAC;CAC3B;AACD,qBAAa,sBAAuB,YAAW,WAAW,CAAC,cAAc,CAAC;IACtE,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;gBACT,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,2BAA2B;IAQlF,eAAe;IAIf,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC;IAe7C,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE;IAIjE,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;CAG1D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { kebabCaseToTitle } from
|
|
1
|
+
import { kebabCaseToTitle } from './utils.js';
|
|
2
2
|
export class ContentTypesCollection {
|
|
3
3
|
types;
|
|
4
4
|
name;
|
|
@@ -26,14 +26,14 @@ export class ContentTypesCollection {
|
|
|
26
26
|
else {
|
|
27
27
|
return { done: true, value: undefined };
|
|
28
28
|
}
|
|
29
|
-
}
|
|
29
|
+
},
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
map(callback) {
|
|
33
33
|
return this.types.map(callback);
|
|
34
34
|
}
|
|
35
35
|
getTypeByName(name) {
|
|
36
|
-
return this.types.find(type => type.name === name);
|
|
36
|
+
return this.types.find((type) => type.name === name);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
//# sourceMappingURL=ContentTypesCollection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentTypesCollection.js","sourceRoot":"","sources":["../src/ContentTypesCollection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAK9C,MAAM,OAAO,sBAAsB;IAC/B,KAAK,CAAmB;IACxB,IAAI,CAAS;IACb,KAAK,CAAU;IACf,IAAI,CAAU;IACd,WAAW,CAAU;IACrB,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAA+B;QAC9E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACb,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,OAAO;YACH,IAAI;gBACA,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;oBACvB,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBAClD,CAAC;qBAAM,CAAC;oBACJ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAC5C,CAAC;YACL,CAAC;SACJ,CAAC;IACN,CAAC;IAED,GAAG,CAAI,QAAoD;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,aAAa,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACzD,CAAC;CACJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { InteractionSpec } from
|
|
2
|
-
import { CollectionProperties, ICollection } from
|
|
1
|
+
import type { InteractionSpec } from '@vertesia/common';
|
|
2
|
+
import type { CollectionProperties, ICollection } from './types.js';
|
|
3
3
|
export interface InteractionCollectionProps extends CollectionProperties {
|
|
4
4
|
interactions: InteractionSpec[];
|
|
5
5
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InteractionCollection.d.ts","sourceRoot":"","sources":["../src/InteractionCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGpE,MAAM,WAAW,0BAA2B,SAAQ,oBAAoB;IACpE,YAAY,EAAE,eAAe,EAAE,CAAC;CACnC;AACD,qBAAa,qBAAsB,YAAW,WAAW,CAAC,eAAe,CAAC;IACtE,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;gBACT,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,0BAA0B;IAQxF,eAAe;IAIf,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,eAAe,CAAC;IAe9C,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE;IAIzE,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;CAGlE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { kebabCaseToTitle } from
|
|
1
|
+
import { kebabCaseToTitle } from './utils.js';
|
|
2
2
|
export class InteractionCollection {
|
|
3
3
|
interactions;
|
|
4
4
|
name;
|
|
@@ -26,14 +26,14 @@ export class InteractionCollection {
|
|
|
26
26
|
else {
|
|
27
27
|
return { done: true, value: undefined };
|
|
28
28
|
}
|
|
29
|
-
}
|
|
29
|
+
},
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
map(callback) {
|
|
33
33
|
return this.interactions.map(callback);
|
|
34
34
|
}
|
|
35
35
|
getInteractionByName(name) {
|
|
36
|
-
return this.interactions.find(interaction => interaction.name === name);
|
|
36
|
+
return this.interactions.find((interaction) => interaction.name === name);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
//# sourceMappingURL=InteractionCollection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InteractionCollection.js","sourceRoot":"","sources":["../src/InteractionCollection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAK9C,MAAM,OAAO,qBAAqB;IAC9B,YAAY,CAAoB;IAChC,IAAI,CAAS;IACb,KAAK,CAAU;IACf,IAAI,CAAU;IACd,WAAW,CAAU;IACrB,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAA8B;QACpF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACb,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAEvC,OAAO;YACH,IAAI;gBACA,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;oBAC9B,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACJ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAC5C,CAAC;YACL,CAAC;SACJ,CAAC;IACN,CAAC;IAED,GAAG,CAAI,QAA4D;QAC/D,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,oBAAoB,CAAC,IAAY;QAC7B,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC9E,CAAC;CACJ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CollectionProperties, ICollection, RenderingTemplateDefinition } from
|
|
1
|
+
import type { CollectionProperties, ICollection, RenderingTemplateDefinition } from './types.js';
|
|
2
2
|
export interface RenderingTemplateCollectionProps extends CollectionProperties {
|
|
3
3
|
templates: RenderingTemplateDefinition[];
|
|
4
4
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderingTemplateCollection.d.ts","sourceRoot":"","sources":["../src/RenderingTemplateCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAGjG,MAAM,WAAW,gCAAiC,SAAQ,oBAAoB;IAC1E,SAAS,EAAE,2BAA2B,EAAE,CAAC;CAC5C;AAED,qBAAa,2BAA4B,YAAW,WAAW,CAAC,2BAA2B,CAAC;IACxF,SAAS,EAAE,2BAA2B,EAAE,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;gBAET,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,gCAAgC;IAQ3F,sBAAsB;IAItB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS;IAIlE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,2BAA2B,CAAC;IAe1D,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,2BAA2B,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE;CAGrF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { kebabCaseToTitle } from
|
|
1
|
+
import { kebabCaseToTitle } from './utils.js';
|
|
2
2
|
export class RenderingTemplateCollection {
|
|
3
3
|
templates;
|
|
4
4
|
name;
|
|
@@ -16,7 +16,7 @@ export class RenderingTemplateCollection {
|
|
|
16
16
|
return this.templates;
|
|
17
17
|
}
|
|
18
18
|
getTemplate(name) {
|
|
19
|
-
return this.templates.find(t => t.name === name);
|
|
19
|
+
return this.templates.find((t) => t.name === name);
|
|
20
20
|
}
|
|
21
21
|
[Symbol.iterator]() {
|
|
22
22
|
let index = 0;
|
|
@@ -29,7 +29,7 @@ export class RenderingTemplateCollection {
|
|
|
29
29
|
else {
|
|
30
30
|
return { done: true, value: undefined };
|
|
31
31
|
}
|
|
32
|
-
}
|
|
32
|
+
},
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
map(callback) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderingTemplateCollection.js","sourceRoot":"","sources":["../src/RenderingTemplateCollection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAM9C,MAAM,OAAO,2BAA2B;IACpC,SAAS,CAAgC;IACzC,IAAI,CAAS;IACb,KAAK,CAAU;IACf,IAAI,CAAU;IACd,WAAW,CAAU;IAErB,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAoC;QACvF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,sBAAsB;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACb,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,OAAO;YACH,IAAI;gBACA,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;oBAC3B,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACJ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAC5C,CAAC;YACL,CAAC;SACJ,CAAC;IACN,CAAC;IAED,GAAG,CAAI,QAAqE;QACxE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;CACJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
3
|
-
import {
|
|
1
|
+
import type { AgentToolDefinition } from '@vertesia/common';
|
|
2
|
+
import type { Context } from 'hono';
|
|
3
|
+
import type { CollectionProperties, ICollection, SkillContentType, SkillDefinition, ToolCollectionDefinition, ToolExecutionPayload, ToolUseContext } from './types.js';
|
|
4
4
|
export interface SkillCollectionProperties extends CollectionProperties {
|
|
5
5
|
/**
|
|
6
6
|
* The skills in this collection
|
|
@@ -48,7 +48,7 @@ export declare class SkillCollection implements ICollection<SkillDefinition> {
|
|
|
48
48
|
* Get skills exposed as tool definitions.
|
|
49
49
|
* This allows skills to appear alongside regular tools.
|
|
50
50
|
* When called, they return rendered instructions.
|
|
51
|
-
* Includes
|
|
51
|
+
* Includes tools for dynamic tool discovery.
|
|
52
52
|
*/
|
|
53
53
|
getToolDefinitions(filterContext?: ToolUseContext): AgentToolDefinition[];
|
|
54
54
|
/**
|
|
@@ -66,7 +66,7 @@ export declare class SkillCollection implements ICollection<SkillDefinition> {
|
|
|
66
66
|
* @param ctx - Hono context
|
|
67
67
|
* @param preParsedPayload - Optional pre-parsed payload (used when routing from root endpoint)
|
|
68
68
|
*/
|
|
69
|
-
execute(ctx: Context, preParsedPayload?: ToolExecutionPayload
|
|
69
|
+
execute(ctx: Context, preParsedPayload?: ToolExecutionPayload): Promise<Response>;
|
|
70
70
|
/**
|
|
71
71
|
* Render skill instructions (static or dynamic)
|
|
72
72
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkillCollection.d.ts","sourceRoot":"","sources":["../src/SkillCollection.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EACR,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,eAAe,EAEf,wBAAwB,EACxB,oBAAoB,EAEpB,cAAc,EACjB,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACnE;;OAEG;IACH,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,WAAW,CAAC,eAAe,CAAC;IAChE;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,MAAM,CAA+B;gBAEjC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,yBAAyB;IAQjF,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,eAAe,CAAC;IAI9C,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE;IAInE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAInD;;OAEG;IACH,mBAAmB,IAAI,eAAe,EAAE;IAIxC;;;;;OAKG;IACH,kBAAkB,CAAC,aAAa,CAAC,EAAE,cAAc,GAAG,mBAAmB,EAAE;IAoCzE;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB;IAS9D,UAAU,IAAI;QACV,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACjB,EAAE;IAkBH;;;;;;OAMG;IACG,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgFvF;;OAEG;YACW,WAAW;CAe5B;AAkBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,GAAG,eAAe,CA2D9F;AA0DD;;GAEG;AACH,wBAAsB,iBAAiB,CACnC,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE;IAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,GACtE,OAAO,CAAC,eAAe,CAAC,CAI1B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CA0C1E"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { existsSync, readdirSync, readFileSync, statSync } from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { kebabCaseToTitle } from
|
|
1
|
+
import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { HTTPException } from 'hono/http-exception';
|
|
4
|
+
import { kebabCaseToTitle } from './utils.js';
|
|
5
5
|
/**
|
|
6
6
|
* Implements a skills collection endpoint.
|
|
7
7
|
* Skills provide contextual instructions to agents.
|
|
@@ -33,7 +33,7 @@ export class SkillCollection {
|
|
|
33
33
|
this.title = title || kebabCaseToTitle(name);
|
|
34
34
|
this.icon = icon;
|
|
35
35
|
this.description = description;
|
|
36
|
-
this.skills = new Map(skills.map(s => [s.name, s]));
|
|
36
|
+
this.skills = new Map(skills.map((s) => [s.name, s]));
|
|
37
37
|
}
|
|
38
38
|
[Symbol.iterator]() {
|
|
39
39
|
return this.skills.values();
|
|
@@ -57,36 +57,36 @@ export class SkillCollection {
|
|
|
57
57
|
* Get skills exposed as tool definitions.
|
|
58
58
|
* This allows skills to appear alongside regular tools.
|
|
59
59
|
* When called, they return rendered instructions.
|
|
60
|
-
* Includes
|
|
60
|
+
* Includes tools for dynamic tool discovery.
|
|
61
61
|
*/
|
|
62
62
|
getToolDefinitions(filterContext) {
|
|
63
63
|
const defaultSchema = {
|
|
64
64
|
type: 'object',
|
|
65
65
|
properties: {
|
|
66
66
|
context: {
|
|
67
|
-
type:
|
|
68
|
-
description:
|
|
69
|
-
}
|
|
70
|
-
}
|
|
67
|
+
type: 'string',
|
|
68
|
+
description: 'Additional context or specific requirements for this task',
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
71
|
};
|
|
72
72
|
let skills = Array.from(this.skills.values());
|
|
73
73
|
if (filterContext) {
|
|
74
|
-
skills = skills.filter(skill => {
|
|
74
|
+
skills = skills.filter((skill) => {
|
|
75
75
|
return skill.isEnabled ? skill.isEnabled(filterContext) : true;
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
|
-
return skills.map(skill => {
|
|
78
|
+
return skills.map((skill) => {
|
|
79
79
|
// Build description with related tools info if available
|
|
80
80
|
let description = `[Skill] ${skill.description}. Returns contextual instructions for this task.`;
|
|
81
|
-
if (skill.
|
|
82
|
-
description += ` Unlocks tools: ${skill.
|
|
81
|
+
if (skill.tools && skill.tools.length > 0) {
|
|
82
|
+
description += ` Unlocks tools: ${skill.tools.join(', ')}.`;
|
|
83
83
|
}
|
|
84
84
|
return {
|
|
85
85
|
url: `skills/${this.name}`,
|
|
86
86
|
name: `learn_${skill.name}`,
|
|
87
87
|
description,
|
|
88
88
|
input_schema: skill.input_schema || defaultSchema,
|
|
89
|
-
|
|
89
|
+
tools: skill.tools,
|
|
90
90
|
category: this.name,
|
|
91
91
|
};
|
|
92
92
|
});
|
|
@@ -99,7 +99,7 @@ export class SkillCollection {
|
|
|
99
99
|
title: this.title || this.name,
|
|
100
100
|
description: this.description || `Skills: ${this.name}`,
|
|
101
101
|
src: `${baseUrl}/api/skills/${this.name}`,
|
|
102
|
-
tools: this.getToolDefinitions()
|
|
102
|
+
tools: this.getToolDefinitions(),
|
|
103
103
|
};
|
|
104
104
|
}
|
|
105
105
|
getWidgets() {
|
|
@@ -125,37 +125,32 @@ export class SkillCollection {
|
|
|
125
125
|
*/
|
|
126
126
|
async execute(ctx, preParsedPayload) {
|
|
127
127
|
const toolCtx = ctx;
|
|
128
|
-
|
|
128
|
+
const payload = preParsedPayload ?? toolCtx.payload;
|
|
129
129
|
try {
|
|
130
130
|
if (!payload) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
throw new HTTPException(400, {
|
|
137
|
-
message: 'Invalid or missing skill execution payload. Expected { tool_use: { id, tool_name, tool_input? }, metadata? }'
|
|
138
|
-
});
|
|
139
|
-
}
|
|
131
|
+
throw new HTTPException(400, {
|
|
132
|
+
message: 'Invalid or missing skill execution payload. Expected { tool_use: { id, tool_name, tool_input? }, metadata? }',
|
|
133
|
+
});
|
|
140
134
|
}
|
|
141
135
|
const toolName = payload.tool_use.tool_name;
|
|
142
136
|
// Extract skill name from tool name (remove "learn_" prefix if present)
|
|
143
|
-
const skillName = toolName.startsWith('learn_')
|
|
144
|
-
? toolName.replace('learn_', '')
|
|
145
|
-
: toolName;
|
|
137
|
+
const skillName = toolName.startsWith('learn_') ? toolName.replace('learn_', '') : toolName;
|
|
146
138
|
const skill = this.skills.get(skillName);
|
|
147
139
|
if (!skill) {
|
|
148
|
-
console.warn(
|
|
140
|
+
console.warn('[SkillCollection] Skill not found', {
|
|
149
141
|
collection: this.name,
|
|
150
142
|
requestedSkill: skillName,
|
|
151
143
|
toolName,
|
|
152
144
|
availableSkills: Array.from(this.skills.keys()),
|
|
153
145
|
});
|
|
154
146
|
throw new HTTPException(404, {
|
|
155
|
-
message: `Skill not found: ${skillName}
|
|
147
|
+
message: `Skill not found: ${skillName}`,
|
|
156
148
|
});
|
|
157
149
|
}
|
|
158
|
-
const
|
|
150
|
+
const input = payload.tool_use.tool_input;
|
|
151
|
+
const data = typeof input === 'object' && input !== null && !Array.isArray(input)
|
|
152
|
+
? input
|
|
153
|
+
: {};
|
|
159
154
|
const result = await this.renderSkill(skill, data);
|
|
160
155
|
// TODO: If skill.execution is set, run via Daytona
|
|
161
156
|
// Return in tool result format
|
|
@@ -167,28 +162,30 @@ export class SkillCollection {
|
|
|
167
162
|
skill_name: skill.name,
|
|
168
163
|
content_type: skill.content_type,
|
|
169
164
|
execution: skill.execution,
|
|
170
|
-
}
|
|
165
|
+
},
|
|
171
166
|
});
|
|
172
167
|
}
|
|
173
168
|
catch (err) {
|
|
174
|
-
const status = err.status
|
|
169
|
+
const status = err instanceof HTTPException ? err.status : 500;
|
|
170
|
+
const message = err instanceof Error ? err.message : 'Error executing skill';
|
|
171
|
+
const stack = err instanceof Error ? err.stack : undefined;
|
|
175
172
|
const toolName = payload?.tool_use?.tool_name;
|
|
176
173
|
const toolUseId = payload?.tool_use?.id;
|
|
177
174
|
if (status >= 500) {
|
|
178
|
-
console.error(
|
|
175
|
+
console.error('[SkillCollection] Skill execution failed', {
|
|
179
176
|
collection: this.name,
|
|
180
177
|
skill: toolName,
|
|
181
178
|
toolUseId,
|
|
182
|
-
error:
|
|
179
|
+
error: message,
|
|
183
180
|
status,
|
|
184
181
|
toolInput: payload?.tool_use?.tool_input,
|
|
185
|
-
stack
|
|
182
|
+
stack,
|
|
186
183
|
});
|
|
187
184
|
}
|
|
188
185
|
return ctx.json({
|
|
189
|
-
tool_use_id: toolUseId ||
|
|
186
|
+
tool_use_id: toolUseId || 'unknown',
|
|
190
187
|
is_error: true,
|
|
191
|
-
content:
|
|
188
|
+
content: message,
|
|
192
189
|
}, status);
|
|
193
190
|
}
|
|
194
191
|
}
|
|
@@ -200,7 +197,7 @@ export class SkillCollection {
|
|
|
200
197
|
if (skill.content_type === 'jst') {
|
|
201
198
|
// JST templates are not currently supported
|
|
202
199
|
throw new HTTPException(501, {
|
|
203
|
-
message: `JST templates are not currently supported. Use 'md' content type instead
|
|
200
|
+
message: `JST templates are not currently supported. Use 'md' content type instead.`,
|
|
204
201
|
});
|
|
205
202
|
}
|
|
206
203
|
return {
|
|
@@ -232,7 +229,7 @@ export function parseSkillFile(content, contentType) {
|
|
|
232
229
|
// Parse YAML frontmatter
|
|
233
230
|
const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
|
|
234
231
|
if (!frontmatterMatch) {
|
|
235
|
-
throw new Error(
|
|
232
|
+
throw new Error('Invalid skill file: missing YAML frontmatter');
|
|
236
233
|
}
|
|
237
234
|
const [, yamlContent, body] = frontmatterMatch;
|
|
238
235
|
const frontmatter = parseYamlFrontmatter(yamlContent);
|
|
@@ -275,7 +272,7 @@ export function parseSkillFile(content, contentType) {
|
|
|
275
272
|
}
|
|
276
273
|
// Related tools from frontmatter
|
|
277
274
|
if (frontmatter.tools) {
|
|
278
|
-
skill.
|
|
275
|
+
skill.tools = frontmatter.tools;
|
|
279
276
|
}
|
|
280
277
|
return skill;
|
|
281
278
|
}
|
|
@@ -296,19 +293,39 @@ function parseYamlFrontmatter(yaml) {
|
|
|
296
293
|
let value = trimmed.slice(colonIndex + 1).trim();
|
|
297
294
|
// Handle array syntax: [item1, item2]
|
|
298
295
|
if (value.startsWith('[') && value.endsWith(']')) {
|
|
299
|
-
const items = value
|
|
300
|
-
|
|
296
|
+
const items = value
|
|
297
|
+
.slice(1, -1)
|
|
298
|
+
.split(',')
|
|
299
|
+
.map((s) => s.trim());
|
|
300
|
+
result[key] = items.filter((s) => s.length > 0);
|
|
301
301
|
}
|
|
302
302
|
else {
|
|
303
303
|
// Remove quotes if present
|
|
304
|
-
if ((value.startsWith('"') && value.endsWith('"')) ||
|
|
305
|
-
(value.startsWith("'") && value.endsWith("'"))) {
|
|
304
|
+
if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
|
|
306
305
|
value = value.slice(1, -1);
|
|
307
306
|
}
|
|
308
307
|
result[key] = value;
|
|
309
308
|
}
|
|
310
309
|
}
|
|
311
|
-
return
|
|
310
|
+
return {
|
|
311
|
+
name: asString(result.name),
|
|
312
|
+
title: asString(result.title),
|
|
313
|
+
description: asString(result.description),
|
|
314
|
+
keywords: asStringArray(result.keywords),
|
|
315
|
+
tools: asStringArray(result.tools),
|
|
316
|
+
data_patterns: asStringArray(result.data_patterns),
|
|
317
|
+
language: asString(result.language),
|
|
318
|
+
packages: asStringArray(result.packages),
|
|
319
|
+
system_packages: asStringArray(result.system_packages),
|
|
320
|
+
widgets: asStringArray(result.widgets),
|
|
321
|
+
scripts: asStringArray(result.scripts),
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
function asString(value) {
|
|
325
|
+
return typeof value === 'string' ? value : undefined;
|
|
326
|
+
}
|
|
327
|
+
function asStringArray(value) {
|
|
328
|
+
return Array.isArray(value) && value.every((item) => typeof item === 'string') ? value : undefined;
|
|
312
329
|
}
|
|
313
330
|
/**
|
|
314
331
|
* Helper to load skill from file path (for Node.js usage)
|
|
@@ -352,16 +369,16 @@ export function loadSkillsFromDirectory(dirPath) {
|
|
|
352
369
|
if (!stat.isDirectory())
|
|
353
370
|
continue;
|
|
354
371
|
// Look for SKILL.md or SKILL.jst
|
|
355
|
-
const mdPath = join(entryPath,
|
|
356
|
-
const jstPath = join(entryPath,
|
|
372
|
+
const mdPath = join(entryPath, 'SKILL.md');
|
|
373
|
+
const jstPath = join(entryPath, 'SKILL.jst');
|
|
357
374
|
let content;
|
|
358
375
|
let contentType = 'md';
|
|
359
376
|
if (existsSync(mdPath)) {
|
|
360
|
-
content = readFileSync(mdPath,
|
|
377
|
+
content = readFileSync(mdPath, 'utf-8');
|
|
361
378
|
contentType = 'md';
|
|
362
379
|
}
|
|
363
380
|
else if (existsSync(jstPath)) {
|
|
364
|
-
content = readFileSync(jstPath,
|
|
381
|
+
content = readFileSync(jstPath, 'utf-8');
|
|
365
382
|
contentType = 'jst';
|
|
366
383
|
}
|
|
367
384
|
if (content) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkillCollection.js","sourceRoot":"","sources":["../src/SkillCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { AgentToolDefinition } from
|
|
2
|
-
import { Context } from
|
|
3
|
-
import { ToolRegistry } from
|
|
4
|
-
import type { CollectionProperties, ICollection, Tool, ToolExecutionPayload, ToolUseContext } from
|
|
1
|
+
import type { AgentToolDefinition } from '@vertesia/common';
|
|
2
|
+
import type { Context } from 'hono';
|
|
3
|
+
import { ToolRegistry } from './ToolRegistry.js';
|
|
4
|
+
import type { CollectionProperties, ICollection, Tool, ToolExecutionPayload, ToolUseContext } from './types.js';
|
|
5
5
|
export interface ToolCollectionProperties extends CollectionProperties {
|
|
6
6
|
/**
|
|
7
7
|
* The tools
|
|
8
8
|
*/
|
|
9
|
-
tools: Tool
|
|
9
|
+
tools: Tool[];
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
12
|
* Implements a tools collection endpoint
|
|
13
13
|
*/
|
|
14
|
-
export declare class ToolCollection implements ICollection<Tool
|
|
14
|
+
export declare class ToolCollection implements ICollection<Tool> {
|
|
15
15
|
/**
|
|
16
16
|
* A kebab case collection name. Must only contains alphanumeric and dash characters,
|
|
17
17
|
* The name can be used to generate the path where the collection is exposed.
|
|
@@ -36,9 +36,9 @@ export declare class ToolCollection implements ICollection<Tool<any>> {
|
|
|
36
36
|
*/
|
|
37
37
|
tools: ToolRegistry;
|
|
38
38
|
constructor({ name, title, icon, description, tools }: ToolCollectionProperties);
|
|
39
|
-
[Symbol.iterator](): Iterator<Tool
|
|
40
|
-
map<U>(callback: (tool: Tool
|
|
41
|
-
execute(ctx: Context, preParsedPayload?: ToolExecutionPayload
|
|
39
|
+
[Symbol.iterator](): Iterator<Tool>;
|
|
40
|
+
map<U>(callback: (tool: Tool, index: number) => U): U[];
|
|
41
|
+
execute(ctx: Context, preParsedPayload?: ToolExecutionPayload): Promise<Response>;
|
|
42
42
|
/**
|
|
43
43
|
* Get tool definitions with optional filtering.
|
|
44
44
|
* @param options - context for filtering
|
|
@@ -63,5 +63,5 @@ export declare class ToolCollection implements ICollection<Tool<any>> {
|
|
|
63
63
|
* @param toolsDir - Path to the tools directory (e.g., /path/to/collection/tools)
|
|
64
64
|
* @returns Promise resolving to array of Tool objects
|
|
65
65
|
*/
|
|
66
|
-
export declare function loadToolsFromDirectory(toolsDir: string): Promise<Tool
|
|
66
|
+
export declare function loadToolsFromDirectory(toolsDir: string): Promise<Tool[]>;
|
|
67
67
|
//# sourceMappingURL=ToolCollection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolCollection.d.ts","sourceRoot":"","sources":["../src/ToolCollection.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EACR,oBAAoB,EACpB,WAAW,EACX,IAAI,EACJ,oBAAoB,EAGpB,cAAc,EACjB,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,wBAAyB,SAAQ,oBAAoB;IAClE;;OAEG;IACH,KAAK,EAAE,IAAI,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,WAAW,CAAC,IAAI,CAAC;IACpD;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;gBAER,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,wBAAwB;IAS/E,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC;IAenC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE;IAIjD,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqDvF;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,mBAAmB,EAAE;CAGtE;AAiBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CA8C9E"}
|