@reminix/runtime 0.0.13 → 0.0.15

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/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  export { serve, createApp } from './server.js';
2
2
  export type { ServeOptions, CreateAppOptions, FullServeOptions } from './server.js';
3
3
  export { VERSION } from './version.js';
4
- export type { Role, ExecuteRequest, ExecuteResponse, Message, ToolSchema, ToolExecuteRequest, ToolExecuteResponse, } from './types.js';
4
+ export type { Role, Message, InvokeRequest, InvokeResponse, AgentInvokeRequest, AgentInvokeResponse, ToolCallRequest, ToolCallResponse, JSONSchema, Capabilities, RuntimeError, RuntimeErrorResponse, } from './types.js';
5
5
  export { AgentBase, Agent, agent, chatAgent } from './agent.js';
6
- export type { AgentMetadata, ExecuteHandler, ExecuteStreamHandler, FetchHandler, AgentOptions, ChatAgentOptions, } from './agent.js';
6
+ export type { AgentMetadata, InvokeHandler, InvokeStreamHandler, FetchHandler, AgentOptions, ChatAgentOptions, } from './agent.js';
7
7
  export { AgentAdapter } from './agent-adapter.js';
8
8
  export { ToolBase, Tool, tool } from './tool.js';
9
- export type { ToolMetadata, ToolOptions, ExecuteHandler as ToolExecuteHandler } from './tool.js';
9
+ export type { ToolMetadata, ToolOptions, ToolHandler } from './tool.js';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EACV,IAAI,EACJ,cAAc,EACd,eAAe,EACf,OAAO,EAEP,UAAU,EACV,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAChE,YAAY,EACV,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EACV,IAAI,EACJ,OAAO,EACP,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAChE,YAAY,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAWvC,gBAAgB;AAChB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAShE,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,eAAe;AACf,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAevC,gBAAgB;AAChB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAShE,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,eAAe;AACf,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAI1C,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CA+GzD;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY,EAAE,gBAAgB;CAAG;AAE3E;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,gBAAqB,GAAG,IAAI,CAgB1D"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAkC1C,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAkJzD;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY,EAAE,gBAAgB;CAAG;AAE3E;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,gBAAqB,GAAG,IAAI,CAgB1D"}
package/dist/server.js CHANGED
@@ -5,6 +5,27 @@ import { Hono } from 'hono';
5
5
  import { streamSSE } from 'hono/streaming';
6
6
  import { serve as honoServe } from '@hono/node-server';
7
7
  import { VERSION } from './version.js';
8
+ /**
9
+ * Enable debug mode via environment variable to include stack traces in error responses
10
+ */
11
+ const REMINIX_CLOUD = ['true', '1', 'yes'].includes((process.env.REMINIX_CLOUD || '').toLowerCase());
12
+ /**
13
+ * Create a structured error response
14
+ */
15
+ function createErrorResponse(error, errorType = 'ExecutionError') {
16
+ const message = error instanceof Error ? error.message : String(error);
17
+ const response = {
18
+ error: {
19
+ type: errorType,
20
+ message,
21
+ },
22
+ };
23
+ // Include stack trace in debug mode
24
+ if (REMINIX_CLOUD && error instanceof Error && error.stack) {
25
+ response.error.stack = error.stack;
26
+ }
27
+ return response;
28
+ }
8
29
  /**
9
30
  * Create a Hono application with agent and tool endpoints.
10
31
  *
@@ -44,7 +65,6 @@ export function createApp(options) {
44
65
  agents: agents.map((agent) => ({
45
66
  name: agent.name,
46
67
  ...agent.metadata,
47
- streaming: agent.streaming,
48
68
  })),
49
69
  tools: tools.map((tool) => ({
50
70
  name: tool.name,
@@ -57,21 +77,11 @@ export function createApp(options) {
57
77
  const agentName = c.req.param('agentName');
58
78
  const agent = agentMap.get(agentName);
59
79
  if (!agent) {
60
- return c.json({ error: `Agent '${agentName}' not found` }, 404);
80
+ return c.json(createErrorResponse(new Error(`Agent '${agentName}' not found`), 'NotFoundError'), 404);
61
81
  }
62
82
  const body = await c.req.json();
63
- // Get requestKeys from agent metadata (all agents have defaults)
64
- const requestKeys = agent.metadata.requestKeys ?? [];
65
- // Extract declared keys from body into input object
66
- // e.g., requestKeys: ['prompt'] with body { prompt: '...' } -> input = { prompt: '...' }
67
- const input = {};
68
- for (const key of requestKeys) {
69
- if (key in body) {
70
- input[key] = body[key];
71
- }
72
- }
73
83
  const request = {
74
- input,
84
+ input: body.input ?? {},
75
85
  stream: body.stream === true,
76
86
  context: body.context,
77
87
  };
@@ -79,30 +89,67 @@ export function createApp(options) {
79
89
  if (request.stream) {
80
90
  return streamSSE(c, async (stream) => {
81
91
  try {
82
- for await (const chunk of agent.executeStream(request)) {
83
- await stream.writeSSE({ data: chunk });
92
+ for await (const chunk of agent.invokeStream(request)) {
93
+ await stream.writeSSE({ data: JSON.stringify({ delta: chunk }) });
84
94
  }
85
- await stream.writeSSE({ data: '[DONE]' });
95
+ await stream.writeSSE({ data: JSON.stringify({ done: true }) });
86
96
  }
87
97
  catch (error) {
88
- const message = error instanceof Error ? error.message : 'Unknown error';
89
- await stream.writeSSE({ data: JSON.stringify({ error: message }) });
98
+ const errorResponse = createErrorResponse(error, error instanceof Error ? error.constructor.name : 'ExecutionError');
99
+ await stream.writeSSE({ data: JSON.stringify(errorResponse) });
90
100
  }
91
101
  });
92
102
  }
93
- const response = await agent.execute(request);
94
- return c.json(response);
103
+ // Non-streaming: catch errors and return structured response
104
+ try {
105
+ const response = await agent.invoke(request);
106
+ return c.json(response);
107
+ }
108
+ catch (error) {
109
+ // Determine error type and status code
110
+ let statusCode = 500;
111
+ let errorType = error instanceof Error ? error.constructor.name : 'ExecutionError';
112
+ if (error instanceof Error) {
113
+ if (error.message.includes('not implemented') || error.name === 'NotImplementedError') {
114
+ statusCode = 501;
115
+ errorType = 'NotImplementedError';
116
+ }
117
+ else if (error.name === 'ValidationError' || error.message.includes('validation')) {
118
+ statusCode = 400;
119
+ errorType = 'ValidationError';
120
+ }
121
+ }
122
+ return c.json(createErrorResponse(error, errorType), statusCode);
123
+ }
95
124
  });
96
125
  // Tool call endpoint
97
126
  app.post('/tools/:toolName/call', async (c) => {
98
127
  const toolName = c.req.param('toolName');
99
128
  const tool = toolMap.get(toolName);
100
129
  if (!tool) {
101
- return c.json({ error: `Tool '${toolName}' not found` }, 404);
130
+ return c.json(createErrorResponse(new Error(`Tool '${toolName}' not found`), 'NotFoundError'), 404);
102
131
  }
103
132
  const body = await c.req.json();
104
- const response = await tool.execute(body);
105
- return c.json(response);
133
+ const request = {
134
+ input: body.input ?? {},
135
+ context: body.context,
136
+ };
137
+ try {
138
+ const result = await tool.call(request);
139
+ return c.json(result);
140
+ }
141
+ catch (error) {
142
+ // Determine error type and status code
143
+ let statusCode = 500;
144
+ let errorType = error instanceof Error ? error.constructor.name : 'ExecutionError';
145
+ if (error instanceof Error) {
146
+ if (error.name === 'ValidationError' || error.message.includes('validation')) {
147
+ statusCode = 400;
148
+ errorType = 'ValidationError';
149
+ }
150
+ }
151
+ return c.json(createErrorResponse(error, errorType), statusCode);
152
+ }
106
153
  });
107
154
  return app;
108
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/tool.d.ts CHANGED
@@ -1,16 +1,16 @@
1
1
  /**
2
2
  * Reminix Runtime Tool definitions
3
3
  */
4
- import type { ToolSchema, ToolExecuteRequest, ToolExecuteResponse } from './types.js';
4
+ import type { ToolCallRequest, ToolCallResponse, JSONSchema, Capabilities } from './types.js';
5
5
  /** Metadata for a tool */
6
6
  export interface ToolMetadata {
7
- type: 'tool';
8
7
  description: string;
9
- parameters: ToolSchema;
10
- output?: ToolSchema;
8
+ capabilities?: Capabilities;
9
+ input: JSONSchema;
10
+ output?: JSONSchema;
11
11
  }
12
- /** Execute handler function type */
13
- export type ExecuteHandler = (input: Record<string, unknown>, context?: Record<string, unknown>) => Promise<unknown> | unknown;
12
+ /** Handler function type */
13
+ export type ToolHandler = (input: Record<string, unknown>, context?: Record<string, unknown>) => Promise<unknown> | unknown;
14
14
  /**
15
15
  * Abstract base class for all tools.
16
16
  */
@@ -19,25 +19,25 @@ export declare abstract class ToolBase {
19
19
  abstract get name(): string;
20
20
  /** Human-readable description */
21
21
  abstract get description(): string;
22
- /** JSON Schema for input parameters */
23
- abstract get parameters(): ToolSchema;
22
+ /** JSON Schema for input */
23
+ abstract get input(): JSONSchema;
24
24
  /** Optional JSON Schema for output */
25
- get output(): ToolSchema | undefined;
25
+ get output(): JSONSchema | undefined;
26
26
  /** Metadata for runtime discovery */
27
27
  get metadata(): ToolMetadata;
28
- /** Execute the tool with the given input */
29
- abstract execute(request: ToolExecuteRequest): Promise<ToolExecuteResponse>;
28
+ /** Call the tool with the given request */
29
+ abstract call(request: ToolCallRequest): Promise<ToolCallResponse>;
30
30
  }
31
31
  /** Options for creating a tool */
32
32
  export interface ToolOptions {
33
33
  /** Human-readable description of what the tool does */
34
34
  description: string;
35
- /** JSON Schema for input parameters */
36
- parameters: ToolSchema;
37
- /** Optional JSON Schema for output (for documentation and type inference) */
38
- output?: ToolSchema;
35
+ /** JSON Schema for input */
36
+ input: JSONSchema;
37
+ /** Optional JSON Schema for output (defaults to string) */
38
+ output?: JSONSchema;
39
39
  /** Handler function to execute when the tool is called */
40
- handler: ExecuteHandler;
40
+ handler: ToolHandler;
41
41
  }
42
42
  /**
43
43
  * A tool created using the tool() factory function.
@@ -45,15 +45,21 @@ export interface ToolOptions {
45
45
  export declare class Tool extends ToolBase {
46
46
  private _name;
47
47
  private _description;
48
- private _parameters;
48
+ private _input;
49
49
  private _output?;
50
- private _executeHandler;
50
+ private _handler;
51
51
  constructor(name: string, options: ToolOptions);
52
52
  get name(): string;
53
53
  get description(): string;
54
- get parameters(): ToolSchema;
55
- get output(): ToolSchema | undefined;
56
- execute(request: ToolExecuteRequest): Promise<ToolExecuteResponse>;
54
+ get input(): JSONSchema;
55
+ get output(): JSONSchema | undefined;
56
+ /**
57
+ * Call the tool by invoking the handler function.
58
+ *
59
+ * Exceptions are not caught here - they propagate to the server
60
+ * which returns appropriate HTTP error codes.
61
+ */
62
+ call(request: ToolCallRequest): Promise<ToolCallResponse>;
57
63
  }
58
64
  /**
59
65
  * Factory function to create a tool.
@@ -64,7 +70,7 @@ export declare class Tool extends ToolBase {
64
70
  *
65
71
  * const getWeather = tool('get_weather', {
66
72
  * description: 'Get current weather for a location',
67
- * parameters: {
73
+ * input: {
68
74
  * type: 'object',
69
75
  * properties: {
70
76
  * location: { type: 'string', description: 'City name' },
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtF,0BAA0B;AAC1B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED,oCAAoC;AACpC,MAAM,MAAM,cAAc,GAAG,CAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAEhC;;GAEG;AACH,8BAAsB,QAAQ;IAC5B,6BAA6B;IAC7B,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;IAE5B,iCAAiC;IACjC,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC;IAEnC,uCAAuC;IACvC,QAAQ,KAAK,UAAU,IAAI,UAAU,CAAC;IAEtC,sCAAsC;IACtC,IAAI,MAAM,IAAI,UAAU,GAAG,SAAS,CAEnC;IAED,qCAAqC;IACrC,IAAI,QAAQ,IAAI,YAAY,CAU3B;IAED,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAC5E;AAED,kCAAkC;AAClC,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,UAAU,EAAE,UAAU,CAAC;IACvB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,0DAA0D;IAC1D,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,IAAK,SAAQ,QAAQ;IAChC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,OAAO,CAAC,CAAa;IAC7B,OAAO,CAAC,eAAe,CAAiB;gBAE5B,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW;IAS9C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,IAAI,MAAM,IAAI,UAAU,GAAG,SAAS,CAEnC;IAEK,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CASzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAE7D"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU9F,0BAA0B;AAC1B,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED,4BAA4B;AAC5B,MAAM,MAAM,WAAW,GAAG,CACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAEhC;;GAEG;AACH,8BAAsB,QAAQ;IAC5B,6BAA6B;IAC7B,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;IAE5B,iCAAiC;IACjC,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC;IAEnC,4BAA4B;IAC5B,QAAQ,KAAK,KAAK,IAAI,UAAU,CAAC;IAEjC,sCAAsC;IACtC,IAAI,MAAM,IAAI,UAAU,GAAG,SAAS,CAEnC;IAED,qCAAqC;IACrC,IAAI,QAAQ,IAAI,YAAY,CAS3B;IAED,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;CACnE;AAED,kCAAkC;AAClC,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,0DAA0D;IAC1D,OAAO,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,IAAK,SAAQ,QAAQ;IAChC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAAC,CAAa;IAC7B,OAAO,CAAC,QAAQ,CAAc;gBAElB,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW;IAS9C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,KAAK,IAAI,UAAU,CAEtB;IAED,IAAI,MAAM,IAAI,UAAU,GAAG,SAAS,CAEnC;IAED;;;;;OAKG;IACG,IAAI,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAIhE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAE7D"}
package/dist/tool.js CHANGED
@@ -1,6 +1,13 @@
1
1
  /**
2
2
  * Reminix Runtime Tool definitions
3
3
  */
4
+ /**
5
+ * Default output schema for tools.
6
+ * Response: { output: '...' }
7
+ */
8
+ const DEFAULT_TOOL_OUTPUT = {
9
+ type: 'string',
10
+ };
4
11
  /**
5
12
  * Abstract base class for all tools.
6
13
  */
@@ -12,9 +19,8 @@ export class ToolBase {
12
19
  /** Metadata for runtime discovery */
13
20
  get metadata() {
14
21
  const meta = {
15
- type: 'tool',
16
22
  description: this.description,
17
- parameters: this.parameters,
23
+ input: this.input,
18
24
  };
19
25
  if (this.output) {
20
26
  meta.output = this.output;
@@ -28,16 +34,16 @@ export class ToolBase {
28
34
  export class Tool extends ToolBase {
29
35
  _name;
30
36
  _description;
31
- _parameters;
37
+ _input;
32
38
  _output;
33
- _executeHandler;
39
+ _handler;
34
40
  constructor(name, options) {
35
41
  super();
36
42
  this._name = name;
37
43
  this._description = options.description;
38
- this._parameters = options.parameters;
44
+ this._input = options.input;
39
45
  this._output = options.output;
40
- this._executeHandler = options.handler;
46
+ this._handler = options.handler;
41
47
  }
42
48
  get name() {
43
49
  return this._name;
@@ -45,21 +51,21 @@ export class Tool extends ToolBase {
45
51
  get description() {
46
52
  return this._description;
47
53
  }
48
- get parameters() {
49
- return this._parameters;
54
+ get input() {
55
+ return this._input;
50
56
  }
51
57
  get output() {
52
- return this._output;
58
+ return this._output ?? DEFAULT_TOOL_OUTPUT;
53
59
  }
54
- async execute(request) {
55
- try {
56
- const result = await this._executeHandler(request.input, request.context);
57
- return { output: result };
58
- }
59
- catch (error) {
60
- const message = error instanceof Error ? error.message : 'Unknown error';
61
- return { output: null, error: message };
62
- }
60
+ /**
61
+ * Call the tool by invoking the handler function.
62
+ *
63
+ * Exceptions are not caught here - they propagate to the server
64
+ * which returns appropriate HTTP error codes.
65
+ */
66
+ async call(request) {
67
+ const result = await this._handler(request.input, request.context);
68
+ return { output: result };
63
69
  }
64
70
  }
65
71
  /**
@@ -71,7 +77,7 @@ export class Tool extends ToolBase {
71
77
  *
72
78
  * const getWeather = tool('get_weather', {
73
79
  * description: 'Get current weather for a location',
74
- * parameters: {
80
+ * input: {
75
81
  * type: 'object',
76
82
  * properties: {
77
83
  * location: { type: 'string', description: 'City name' },
package/dist/tool.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH;;GAEG;AACH,MAAM,OAAgB,QAAQ;IAU5B,sCAAsC;IACtC,IAAI,MAAM;QACR,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,qCAAqC;IACrC,IAAI,QAAQ;QACV,MAAM,IAAI,GAAiB;YACzB,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CAIF;AAcD;;GAEG;AACH,MAAM,OAAO,IAAK,SAAQ,QAAQ;IACxB,KAAK,CAAS;IACd,YAAY,CAAS;IACrB,WAAW,CAAa;IACxB,OAAO,CAAc;IACrB,eAAe,CAAiB;IAExC,YAAY,IAAY,EAAE,OAAoB;QAC5C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IACzC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA2B;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,IAAI,CAAC,IAAY,EAAE,OAAoB;IACrD,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;GAGG;AACH,MAAM,mBAAmB,GAAe;IACtC,IAAI,EAAE,QAAQ;CACf,CAAC;AAgBF;;GAEG;AACH,MAAM,OAAgB,QAAQ;IAU5B,sCAAsC;IACtC,IAAI,MAAM;QACR,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,qCAAqC;IACrC,IAAI,QAAQ;QACV,MAAM,IAAI,GAAiB;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CAIF;AAcD;;GAEG;AACH,MAAM,OAAO,IAAK,SAAQ,QAAQ;IACxB,KAAK,CAAS;IACd,YAAY,CAAS;IACrB,MAAM,CAAa;IACnB,OAAO,CAAc;IACrB,QAAQ,CAAc;IAE9B,YAAY,IAAY,EAAE,OAAoB;QAC5C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,IAAI,mBAAmB,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,OAAwB;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACnE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,IAAI,CAAC,IAAY,EAAE,OAAoB;IACrD,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -18,29 +18,53 @@ export interface Message {
18
18
  tool_call_id?: string;
19
19
  name?: string;
20
20
  }
21
- export interface ExecuteRequest {
21
+ /** Base request type for invoke/call operations */
22
+ export interface InvokeRequest {
22
23
  input: Record<string, unknown>;
23
24
  stream?: boolean;
24
25
  context?: Record<string, unknown>;
25
26
  }
26
- /**
27
- * Response from agent execute.
28
- * The shape depends on the agent's responseKeys.
29
- * - Regular agents: { output: unknown }
30
- * - Chat agents: { messages: Message[] }
31
- */
32
- export type ExecuteResponse = Record<string, unknown>;
33
- export interface ToolSchema {
34
- type: 'object';
35
- properties: Record<string, unknown>;
27
+ /** Request type for agent invoke operations */
28
+ export type AgentInvokeRequest = InvokeRequest;
29
+ /** Request type for tool call operations */
30
+ export type ToolCallRequest = InvokeRequest;
31
+ /** Base response type for invoke/call operations */
32
+ export interface InvokeResponse {
33
+ output: unknown;
34
+ metadata?: Record<string, unknown>;
35
+ }
36
+ /** Response type for agent invoke operations */
37
+ export type AgentInvokeResponse = InvokeResponse;
38
+ /** Response type for tool call operations */
39
+ export type ToolCallResponse = InvokeResponse;
40
+ export interface JSONSchema {
41
+ type: 'object' | 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'null';
42
+ properties?: Record<string, unknown>;
36
43
  required?: string[];
44
+ items?: unknown;
45
+ description?: string;
46
+ default?: unknown;
47
+ [key: string]: unknown;
37
48
  }
38
- export interface ToolExecuteRequest {
39
- input: Record<string, unknown>;
40
- context?: Record<string, unknown>;
49
+ export interface Capabilities {
50
+ streaming?: boolean;
51
+ [key: string]: unknown;
41
52
  }
42
- export interface ToolExecuteResponse {
43
- output: unknown;
44
- error?: string | null;
53
+ /**
54
+ * Structured runtime error information
55
+ */
56
+ export interface RuntimeError {
57
+ /** Error type/category (e.g., 'ValidationError', 'ExecutionError') */
58
+ type: string;
59
+ /** Human-readable error message */
60
+ message: string;
61
+ /** Stack trace (only included when REMINIX_CLOUD is enabled) */
62
+ stack?: string;
63
+ }
64
+ /**
65
+ * Error response from runtime endpoints
66
+ */
67
+ export interface RuntimeErrorResponse {
68
+ error: RuntimeError;
45
69
  }
46
70
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,0BAA0B;AAC1B,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAItD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,0BAA0B;AAC1B,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAID,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,+CAA+C;AAC/C,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAE/C,4CAA4C;AAC5C,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC;AAI5C,oDAAoD;AACpD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,gDAAgD;AAChD,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAEjD,6CAA6C;AAC7C,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAI9C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IAIpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,YAAY,CAAC;CACrB"}
package/dist/version.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Runtime version.
3
3
  */
4
- export declare const VERSION = "0.0.13";
4
+ export declare const VERSION = "0.0.15";
5
5
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Runtime version.
3
3
  */
4
- export const VERSION = '0.0.13';
4
+ export const VERSION = '0.0.15';
5
5
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reminix/runtime",
3
- "version": "0.0.13",
3
+ "version": "0.0.15",
4
4
  "description": "Reminix Runtime - Serve AI agents as REST APIs with streaming support",
5
5
  "license": "Apache-2.0",
6
6
  "author": {