@reminix/runtime 0.5.0 → 0.6.1

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/dist/types.d.ts CHANGED
@@ -1,104 +1,253 @@
1
1
  /**
2
- * Handler types for Reminix agents and tools
2
+ * Type definitions for the Reminix Agent Runtime.
3
+ *
4
+ * These types define the contract between AI agents and the Reminix API.
3
5
  */
6
+ import { z } from 'zod/v4';
4
7
  /**
5
- * Message in a conversation
8
+ * Tool call function details.
9
+ * @internal
6
10
  */
7
- export interface Message {
8
- role: 'user' | 'assistant' | 'system' | 'tool';
9
- content: string;
10
- metadata?: Record<string, unknown>;
11
- }
11
+ export declare const ToolCallFunctionSchema: z.ZodObject<{
12
+ name: z.ZodString;
13
+ arguments: z.ZodString;
14
+ }, z.core.$strip>;
15
+ /** @internal */
16
+ export type ToolCallFunction = z.infer<typeof ToolCallFunctionSchema>;
12
17
  /**
13
- * Tool call made by an agent
18
+ * A tool call made by the assistant.
19
+ * @internal
14
20
  */
15
- export interface ToolCall {
16
- id: string;
17
- name: string;
18
- arguments: Record<string, unknown>;
19
- }
21
+ export declare const ToolCallSchema: z.ZodObject<{
22
+ id: z.ZodString;
23
+ type: z.ZodLiteral<"function">;
24
+ function: z.ZodObject<{
25
+ name: z.ZodString;
26
+ arguments: z.ZodString;
27
+ }, z.core.$strip>;
28
+ }, z.core.$strip>;
29
+ /** @internal */
30
+ export type ToolCall = z.infer<typeof ToolCallSchema>;
31
+ /**
32
+ * Valid message roles.
33
+ * @internal
34
+ */
35
+ export declare const MessageRoleSchema: z.ZodEnum<{
36
+ system: "system";
37
+ user: "user";
38
+ assistant: "assistant";
39
+ tool: "tool";
40
+ }>;
41
+ /** @internal */
42
+ export type MessageRole = z.infer<typeof MessageRoleSchema>;
43
+ /**
44
+ * A chat message in a conversation.
45
+ * @internal
46
+ */
47
+ export declare const ChatMessageSchema: z.ZodObject<{
48
+ role: z.ZodEnum<{
49
+ system: "system";
50
+ user: "user";
51
+ assistant: "assistant";
52
+ tool: "tool";
53
+ }>;
54
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodAny>, z.ZodNull]>;
55
+ name: z.ZodOptional<z.ZodString>;
56
+ tool_calls: z.ZodOptional<z.ZodArray<z.ZodObject<{
57
+ id: z.ZodString;
58
+ type: z.ZodLiteral<"function">;
59
+ function: z.ZodObject<{
60
+ name: z.ZodString;
61
+ arguments: z.ZodString;
62
+ }, z.core.$strip>;
63
+ }, z.core.$strip>>>;
64
+ tool_call_id: z.ZodOptional<z.ZodString>;
65
+ }, z.core.$strip>;
66
+ /**
67
+ * A chat message in a conversation.
68
+ */
69
+ export type ChatMessage = z.infer<typeof ChatMessageSchema>;
70
+ /**
71
+ * An assistant message returned by chat handlers.
72
+ * @internal
73
+ */
74
+ export declare const AssistantMessageSchema: z.ZodObject<{
75
+ role: z.ZodLiteral<"assistant">;
76
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodAny>, z.ZodNull]>;
77
+ tool_calls: z.ZodOptional<z.ZodArray<z.ZodObject<{
78
+ id: z.ZodString;
79
+ type: z.ZodLiteral<"function">;
80
+ function: z.ZodObject<{
81
+ name: z.ZodString;
82
+ arguments: z.ZodString;
83
+ }, z.core.$strip>;
84
+ }, z.core.$strip>>>;
85
+ }, z.core.$strip>;
86
+ /**
87
+ * An assistant message returned by chat handlers.
88
+ */
89
+ export type AssistantMessage = z.infer<typeof AssistantMessageSchema>;
90
+ /**
91
+ * Request body for invoke endpoint.
92
+ * @internal
93
+ */
94
+ export declare const InvokeRequestSchema: z.ZodObject<{
95
+ input: z.ZodRecord<z.ZodString, z.ZodAny>;
96
+ stream: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
97
+ }, z.core.$strip>;
98
+ /** @internal */
99
+ export type InvokeRequest = z.infer<typeof InvokeRequestSchema>;
100
+ /**
101
+ * Request body for chat endpoint.
102
+ * @internal
103
+ */
104
+ export declare const ChatRequestSchema: z.ZodObject<{
105
+ messages: z.ZodArray<z.ZodObject<{
106
+ role: z.ZodEnum<{
107
+ system: "system";
108
+ user: "user";
109
+ assistant: "assistant";
110
+ tool: "tool";
111
+ }>;
112
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodAny>, z.ZodNull]>;
113
+ name: z.ZodOptional<z.ZodString>;
114
+ tool_calls: z.ZodOptional<z.ZodArray<z.ZodObject<{
115
+ id: z.ZodString;
116
+ type: z.ZodLiteral<"function">;
117
+ function: z.ZodObject<{
118
+ name: z.ZodString;
119
+ arguments: z.ZodString;
120
+ }, z.core.$strip>;
121
+ }, z.core.$strip>>>;
122
+ tool_call_id: z.ZodOptional<z.ZodString>;
123
+ }, z.core.$strip>>;
124
+ stream: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
125
+ }, z.core.$strip>;
126
+ /** @internal */
127
+ export type ChatRequest = z.infer<typeof ChatRequestSchema>;
128
+ /**
129
+ * Response from invoke handler (non-streaming).
130
+ * @internal
131
+ */
132
+ export declare const InvokeResponseSchema: z.ZodObject<{
133
+ output: z.ZodAny;
134
+ }, z.core.$strip>;
135
+ /** @internal */
136
+ export type InvokeResponse = z.infer<typeof InvokeResponseSchema>;
137
+ /**
138
+ * Response from chat handler (non-streaming).
139
+ * @internal
140
+ */
141
+ export declare const ChatResponseSchema: z.ZodObject<{
142
+ message: z.ZodObject<{
143
+ role: z.ZodLiteral<"assistant">;
144
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodAny>, z.ZodNull]>;
145
+ tool_calls: z.ZodOptional<z.ZodArray<z.ZodObject<{
146
+ id: z.ZodString;
147
+ type: z.ZodLiteral<"function">;
148
+ function: z.ZodObject<{
149
+ name: z.ZodString;
150
+ arguments: z.ZodString;
151
+ }, z.core.$strip>;
152
+ }, z.core.$strip>>>;
153
+ }, z.core.$strip>;
154
+ }, z.core.$strip>;
155
+ /** @internal */
156
+ export type ChatResponse = z.infer<typeof ChatResponseSchema>;
157
+ /**
158
+ * A streaming chunk.
159
+ * @internal
160
+ */
161
+ export declare const StreamChunkSchema: z.ZodObject<{
162
+ chunk: z.ZodString;
163
+ }, z.core.$strip>;
164
+ /** @internal */
165
+ export type StreamChunk = z.infer<typeof StreamChunkSchema>;
20
166
  /**
21
- * Context provides persistent resources to handlers
167
+ * Request context passed to handlers.
22
168
  */
23
169
  export interface Context {
24
- /** Chat/thread identifier */
25
- chatId: string;
26
- /** Thread identifier (optional) */
27
- threadId?: string;
28
- /** Memory store for persistent memory */
29
- memory: MemoryStore;
30
- /** Knowledge base for RAG/retrieval */
31
- knowledgeBase: KnowledgeBase;
32
- /** Available tools registry */
33
- tools?: ToolRegistry;
34
- /** User identifier */
170
+ conversationId?: string;
35
171
  userId?: string;
36
- /** Session identifier */
37
- sessionId?: string;
38
- /** Additional metadata */
39
- metadata?: Record<string, unknown>;
40
- /** Extensible for future additions */
41
- [key: string]: unknown;
172
+ custom?: Record<string, unknown>;
42
173
  }
43
174
  /**
44
- * Request represents the current invocation
175
+ * Input data passed to invoke handlers.
176
+ * @internal
45
177
  */
46
- export interface Request {
47
- /** Conversation messages */
48
- messages: Message[];
49
- /** Additional metadata for this request */
50
- metadata?: Record<string, unknown>;
51
- }
178
+ export type InvokeInput = Record<string, unknown>;
52
179
  /**
53
- * Response from a handler
54
- */
55
- export interface Response {
56
- /** Response messages */
57
- messages: Message[];
58
- /** Optional metadata (tokens, model, latency, etc.) */
59
- metadata?: {
60
- tokensUsed?: number;
61
- model?: string;
62
- latency?: number;
63
- [key: string]: unknown;
64
- };
65
- /** Tool calls made by the agent */
66
- toolCalls?: ToolCall[];
67
- /** State updates */
68
- stateUpdates?: Record<string, unknown>;
69
- /** Extensible for future additions */
70
- [key: string]: unknown;
180
+ * Result from an invoke handler - either a response or an async generator for streaming.
181
+ * @internal
182
+ */
183
+ export type InvokeResult = InvokeResponse | AsyncGenerator<StreamChunk, void, unknown>;
184
+ /**
185
+ * Result from a chat handler - either a response or an async generator for streaming.
186
+ * @internal
187
+ */
188
+ export type ChatResult = ChatResponse | AsyncGenerator<StreamChunk, void, unknown>;
189
+ /**
190
+ * Handler function for invoke requests (with optional context).
191
+ * @internal
192
+ */
193
+ export type InvokeHandler = (input: InvokeInput, ctx?: Context) => InvokeResult | Promise<InvokeResult>;
194
+ /**
195
+ * Handler function for chat requests (with optional context).
196
+ * @internal
197
+ */
198
+ export type ChatHandler = (messages: ChatMessage[], ctx?: Context) => ChatResult | Promise<ChatResult>;
199
+ /**
200
+ * Individual agent health status.
201
+ * @internal
202
+ */
203
+ export interface AgentHealth {
204
+ name: string;
205
+ invoke: boolean;
206
+ chat: boolean;
71
207
  }
72
208
  /**
73
- * Memory store interface
209
+ * Overall health response for the runtime.
210
+ * @internal
74
211
  */
75
- export interface MemoryStore {
76
- get(key: string): Promise<unknown>;
77
- set(key: string, value: unknown): Promise<void>;
78
- delete(key: string): Promise<void>;
79
- clear(): Promise<void>;
212
+ export interface HealthResponse {
213
+ status: 'healthy';
214
+ agents: string[];
80
215
  }
81
216
  /**
82
- * Knowledge base interface
217
+ * User-defined metadata for an agent.
218
+ * @internal
83
219
  */
84
- export interface KnowledgeBase {
85
- search(query: string, options?: Record<string, unknown>): Promise<unknown[]>;
86
- add(content: string, metadata?: Record<string, unknown>): Promise<void>;
87
- delete(id: string): Promise<void>;
220
+ export interface AgentMetadata {
221
+ framework?: string;
222
+ model?: string;
223
+ description?: string;
224
+ [key: string]: unknown;
88
225
  }
89
226
  /**
90
- * Tool registry interface
227
+ * Agent information returned by the discovery endpoint.
228
+ * @internal
91
229
  */
92
- export interface ToolRegistry {
93
- get(name: string): ToolHandler | undefined;
94
- list(): string[];
230
+ export interface AgentInfo {
231
+ name: string;
232
+ invoke: boolean;
233
+ chat: boolean;
234
+ metadata: Record<string, unknown>;
95
235
  }
96
236
  /**
97
- * Tool handler function signature
237
+ * Runtime information returned by the discovery endpoint.
238
+ * @internal
98
239
  */
99
- export type ToolHandler = (context: Context, request: Request) => Promise<Response>;
240
+ export interface RuntimeInfo {
241
+ version: string;
242
+ language: 'typescript';
243
+ framework: 'hono';
244
+ }
100
245
  /**
101
- * Agent handler function signature
246
+ * Response from the /_discover endpoint.
247
+ * @internal
102
248
  */
103
- export type AgentHandler = (context: Context, request: Request) => Promise<Response>;
249
+ export interface DiscoverResponse {
250
+ runtime: RuntimeInfo;
251
+ agents: AgentInfo[];
252
+ }
104
253
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,5 +1,95 @@
1
1
  /**
2
- * Handler types for Reminix agents and tools
2
+ * Type definitions for the Reminix Agent Runtime.
3
+ *
4
+ * These types define the contract between AI agents and the Reminix API.
3
5
  */
4
- export {};
6
+ import { z } from 'zod/v4';
7
+ // =============================================================================
8
+ // Message Types
9
+ // =============================================================================
10
+ /**
11
+ * Tool call function details.
12
+ * @internal
13
+ */
14
+ export const ToolCallFunctionSchema = z.object({
15
+ name: z.string(),
16
+ arguments: z.string(),
17
+ });
18
+ /**
19
+ * A tool call made by the assistant.
20
+ * @internal
21
+ */
22
+ export const ToolCallSchema = z.object({
23
+ id: z.string(),
24
+ type: z.literal('function'),
25
+ function: ToolCallFunctionSchema,
26
+ });
27
+ /**
28
+ * Valid message roles.
29
+ * @internal
30
+ */
31
+ export const MessageRoleSchema = z.enum(['system', 'user', 'assistant', 'tool']);
32
+ /**
33
+ * A chat message in a conversation.
34
+ * @internal
35
+ */
36
+ export const ChatMessageSchema = z.object({
37
+ role: MessageRoleSchema,
38
+ content: z.union([z.string(), z.array(z.any()), z.null()]),
39
+ name: z.string().optional(),
40
+ tool_calls: z.array(ToolCallSchema).optional(),
41
+ tool_call_id: z.string().optional(),
42
+ });
43
+ /**
44
+ * An assistant message returned by chat handlers.
45
+ * @internal
46
+ */
47
+ export const AssistantMessageSchema = z.object({
48
+ role: z.literal('assistant'),
49
+ content: z.union([z.string(), z.array(z.any()), z.null()]),
50
+ tool_calls: z.array(ToolCallSchema).optional(),
51
+ });
52
+ // =============================================================================
53
+ // Request Types
54
+ // =============================================================================
55
+ /**
56
+ * Request body for invoke endpoint.
57
+ * @internal
58
+ */
59
+ export const InvokeRequestSchema = z.object({
60
+ input: z.record(z.string(), z.any()),
61
+ stream: z.boolean().optional().default(false),
62
+ });
63
+ /**
64
+ * Request body for chat endpoint.
65
+ * @internal
66
+ */
67
+ export const ChatRequestSchema = z.object({
68
+ messages: z.array(ChatMessageSchema).nonempty(),
69
+ stream: z.boolean().optional().default(false),
70
+ });
71
+ // =============================================================================
72
+ // Response Types
73
+ // =============================================================================
74
+ /**
75
+ * Response from invoke handler (non-streaming).
76
+ * @internal
77
+ */
78
+ export const InvokeResponseSchema = z.object({
79
+ output: z.any(),
80
+ });
81
+ /**
82
+ * Response from chat handler (non-streaming).
83
+ * @internal
84
+ */
85
+ export const ChatResponseSchema = z.object({
86
+ message: AssistantMessageSchema,
87
+ });
88
+ /**
89
+ * A streaming chunk.
90
+ * @internal
91
+ */
92
+ export const StreamChunkSchema = z.object({
93
+ chunk: z.string(),
94
+ });
5
95
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Runtime version - auto-generated by bump-version script.
3
+ * Do not edit manually.
4
+ */
5
+ export declare const VERSION = "0.6.1";
6
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,OAAO,UAAU,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Runtime version - auto-generated by bump-version script.
3
+ * Do not edit manually.
4
+ */
5
+ export const VERSION = '0.6.1';
6
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@reminix/runtime",
3
- "version": "0.5.0",
3
+ "version": "0.6.1",
4
4
  "type": "module",
5
- "description": "Reminix runtime for building handlers",
5
+ "description": "Reminix Agent Runtime - Build AI agents that integrate with Reminix",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "exports": {
@@ -18,8 +18,8 @@
18
18
  "keywords": [
19
19
  "reminix",
20
20
  "runtime",
21
- "types",
22
- "handler",
21
+ "agent",
22
+ "ai",
23
23
  "typescript"
24
24
  ],
25
25
  "author": "Reminix <support@reminix.com>",
@@ -30,11 +30,14 @@
30
30
  "directory": "packages/runtime"
31
31
  },
32
32
  "homepage": "https://github.com/reminix-ai/reminix-typescript",
33
- "dependencies": {},
33
+ "dependencies": {
34
+ "@hono/node-server": "^1.19.7",
35
+ "hono": "^4.11.3",
36
+ "zod": "^4.3.5"
37
+ },
34
38
  "devDependencies": {
35
- "@types/jest": "^29.5.0",
36
- "vitest": "^4.0.16",
37
- "tsd": "^0.33.0"
39
+ "@types/node": "^22.0.0",
40
+ "vitest": "^4.0.16"
38
41
  },
39
42
  "engines": {
40
43
  "node": ">=18.0.0"
@@ -1,17 +0,0 @@
1
- /**
2
- * Core handler execution logic
3
- */
4
- import type { AgentHandler, ToolHandler, Context, Request, Response } from './types';
5
- /**
6
- * Execute an agent handler
7
- */
8
- export declare function executeAgent(handler: AgentHandler, context: Context, request: Request): Promise<Response>;
9
- /**
10
- * Execute a tool handler
11
- */
12
- export declare function executeTool(handler: ToolHandler, context: Context, request: Request): Promise<Response>;
13
- /**
14
- * Execute a handler (agent or tool)
15
- */
16
- export declare function executeHandler(handler: AgentHandler | ToolHandler, context: Context, request: Request): Promise<Response>;
17
- //# sourceMappingURL=executor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAErF;;GAEG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,QAAQ,CAAC,CAEnB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,QAAQ,CAAC,CAEnB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,YAAY,GAAG,WAAW,EACnC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,QAAQ,CAAC,CAEnB"}
package/dist/executor.js DELETED
@@ -1,22 +0,0 @@
1
- /**
2
- * Core handler execution logic
3
- */
4
- /**
5
- * Execute an agent handler
6
- */
7
- export async function executeAgent(handler, context, request) {
8
- return await handler(context, request);
9
- }
10
- /**
11
- * Execute a tool handler
12
- */
13
- export async function executeTool(handler, context, request) {
14
- return await handler(context, request);
15
- }
16
- /**
17
- * Execute a handler (agent or tool)
18
- */
19
- export async function executeHandler(handler, context, request) {
20
- return await handler(context, request);
21
- }
22
- //# sourceMappingURL=executor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAqB,EACrB,OAAgB,EAChB,OAAgB;IAEhB,OAAO,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAoB,EACpB,OAAgB,EAChB,OAAgB;IAEhB,OAAO,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAmC,EACnC,OAAgB,EAChB,OAAgB;IAEhB,OAAO,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC"}
package/dist/loader.d.ts DELETED
@@ -1,19 +0,0 @@
1
- /**
2
- * Load handler from file
3
- */
4
- import type { AgentHandler, ToolHandler } from './types';
5
- export interface LoadedHandler {
6
- agents?: Record<string, AgentHandler>;
7
- tools?: Record<string, ToolHandler>;
8
- prompts?: Record<string, unknown>;
9
- }
10
- /**
11
- * Load handler from a file path
12
- * Supports both TypeScript (.ts) and JavaScript (.js) files
13
- */
14
- export declare function loadHandler(handlerPath: string): Promise<LoadedHandler>;
15
- /**
16
- * Check if a path is a file (not a directory)
17
- */
18
- export declare function isFile(path: string): boolean;
19
- //# sourceMappingURL=loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAqC7E;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAO5C"}
package/dist/loader.js DELETED
@@ -1,52 +0,0 @@
1
- /**
2
- * Load handler from file
3
- */
4
- import { pathToFileURL } from 'url';
5
- import { statSync } from 'fs';
6
- /**
7
- * Load handler from a file path
8
- * Supports both TypeScript (.ts) and JavaScript (.js) files
9
- */
10
- export async function loadHandler(handlerPath) {
11
- try {
12
- // Convert file path to file URL for ES modules
13
- const fileUrl = pathToFileURL(handlerPath).href;
14
- // Dynamic import of the handler module
15
- const module = await import(fileUrl);
16
- // Extract agents, tools, and prompts
17
- const loaded = {};
18
- if (module.agents) {
19
- loaded.agents = module.agents;
20
- }
21
- if (module.tools) {
22
- loaded.tools = module.tools;
23
- }
24
- if (module.prompts) {
25
- loaded.prompts = module.prompts;
26
- }
27
- // Validate that at least one export exists
28
- if (!loaded.agents && !loaded.tools && !loaded.prompts) {
29
- throw new Error(`Handler file "${handlerPath}" must export at least one of: agents, tools, or prompts`);
30
- }
31
- return loaded;
32
- }
33
- catch (error) {
34
- if (error instanceof Error) {
35
- throw new Error(`Failed to load handler from "${handlerPath}": ${error.message}`);
36
- }
37
- throw error;
38
- }
39
- }
40
- /**
41
- * Check if a path is a file (not a directory)
42
- */
43
- export function isFile(path) {
44
- try {
45
- const stats = statSync(path);
46
- return stats.isFile();
47
- }
48
- catch {
49
- return false;
50
- }
51
- }
52
- //# sourceMappingURL=loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAS9B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,WAAmB;IACnD,IAAI,CAAC;QACH,+CAA+C;QAC/C,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;QAEhD,uCAAuC;QACvC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QAErC,qCAAqC;QACrC,MAAM,MAAM,GAAkB,EAAE,CAAC;QAEjC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAChC,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC9B,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAClC,CAAC;QAED,2CAA2C;QAC3C,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CACb,iBAAiB,WAAW,0DAA0D,CACvF,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}