@cogitator-ai/fastify 0.1.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.
Files changed (75) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +380 -0
  3. package/dist/hooks/auth.d.ts +4 -0
  4. package/dist/hooks/auth.d.ts.map +1 -0
  5. package/dist/hooks/auth.js +23 -0
  6. package/dist/hooks/auth.js.map +1 -0
  7. package/dist/hooks/error-handler.d.ts +3 -0
  8. package/dist/hooks/error-handler.d.ts.map +1 -0
  9. package/dist/hooks/error-handler.js +24 -0
  10. package/dist/hooks/error-handler.js.map +1 -0
  11. package/dist/hooks/index.d.ts +3 -0
  12. package/dist/hooks/index.d.ts.map +1 -0
  13. package/dist/hooks/index.js +3 -0
  14. package/dist/hooks/index.js.map +1 -0
  15. package/dist/index.d.ts +8 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +6 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/plugin.d.ts +4 -0
  20. package/dist/plugin.d.ts.map +1 -0
  21. package/dist/plugin.js +90 -0
  22. package/dist/plugin.js.map +1 -0
  23. package/dist/routes/agents.d.ts +3 -0
  24. package/dist/routes/agents.d.ts.map +1 -0
  25. package/dist/routes/agents.js +125 -0
  26. package/dist/routes/agents.js.map +1 -0
  27. package/dist/routes/health.d.ts +3 -0
  28. package/dist/routes/health.d.ts.map +1 -0
  29. package/dist/routes/health.js +15 -0
  30. package/dist/routes/health.js.map +1 -0
  31. package/dist/routes/index.d.ts +7 -0
  32. package/dist/routes/index.d.ts.map +1 -0
  33. package/dist/routes/index.js +7 -0
  34. package/dist/routes/index.js.map +1 -0
  35. package/dist/routes/swarms.d.ts +3 -0
  36. package/dist/routes/swarms.d.ts.map +1 -0
  37. package/dist/routes/swarms.js +193 -0
  38. package/dist/routes/swarms.js.map +1 -0
  39. package/dist/routes/threads.d.ts +3 -0
  40. package/dist/routes/threads.d.ts.map +1 -0
  41. package/dist/routes/threads.js +122 -0
  42. package/dist/routes/threads.js.map +1 -0
  43. package/dist/routes/tools.d.ts +3 -0
  44. package/dist/routes/tools.d.ts.map +1 -0
  45. package/dist/routes/tools.js +26 -0
  46. package/dist/routes/tools.js.map +1 -0
  47. package/dist/routes/workflows.d.ts +3 -0
  48. package/dist/routes/workflows.d.ts.map +1 -0
  49. package/dist/routes/workflows.js +120 -0
  50. package/dist/routes/workflows.js.map +1 -0
  51. package/dist/streaming/fastify-stream-writer.d.ts +24 -0
  52. package/dist/streaming/fastify-stream-writer.d.ts.map +1 -0
  53. package/dist/streaming/fastify-stream-writer.js +75 -0
  54. package/dist/streaming/fastify-stream-writer.js.map +1 -0
  55. package/dist/streaming/helpers.d.ts +2 -0
  56. package/dist/streaming/helpers.d.ts.map +1 -0
  57. package/dist/streaming/helpers.js +2 -0
  58. package/dist/streaming/helpers.js.map +1 -0
  59. package/dist/streaming/index.d.ts +4 -0
  60. package/dist/streaming/index.d.ts.map +1 -0
  61. package/dist/streaming/index.js +4 -0
  62. package/dist/streaming/index.js.map +1 -0
  63. package/dist/streaming/protocol.d.ts +3 -0
  64. package/dist/streaming/protocol.d.ts.map +1 -0
  65. package/dist/streaming/protocol.js +2 -0
  66. package/dist/streaming/protocol.js.map +1 -0
  67. package/dist/types.d.ts +344 -0
  68. package/dist/types.d.ts.map +1 -0
  69. package/dist/types.js +59 -0
  70. package/dist/types.js.map +1 -0
  71. package/dist/websocket/handler.d.ts +7 -0
  72. package/dist/websocket/handler.d.ts.map +1 -0
  73. package/dist/websocket/handler.js +132 -0
  74. package/dist/websocket/handler.js.map +1 -0
  75. package/package.json +70 -0
@@ -0,0 +1,125 @@
1
+ import { AgentRunRequestSchema } from '../types.js';
2
+ import { FastifyStreamWriter, generateId } from '../streaming/index.js';
3
+ export const agentRoutes = async (fastify) => {
4
+ fastify.get('/agents', async () => {
5
+ const agentList = Object.entries(fastify.cogitator.agents).map(([name, agent]) => ({
6
+ name,
7
+ description: agent.config.instructions?.slice(0, 100),
8
+ tools: agent.config.tools?.map((t) => t.name) || [],
9
+ }));
10
+ const response = { agents: agentList };
11
+ return response;
12
+ });
13
+ fastify.post('/agents/:name/run', {
14
+ schema: {
15
+ params: {
16
+ type: 'object',
17
+ properties: { name: { type: 'string' } },
18
+ required: ['name'],
19
+ },
20
+ body: AgentRunRequestSchema,
21
+ },
22
+ }, async (request, reply) => {
23
+ const { name } = request.params;
24
+ const agent = fastify.cogitator.agents[name];
25
+ if (!agent) {
26
+ return reply.status(404).send({
27
+ error: { message: `Agent '${name}' not found`, code: 'NOT_FOUND' },
28
+ });
29
+ }
30
+ if (!request.body?.input) {
31
+ return reply.status(400).send({
32
+ error: { message: 'Missing required field: input', code: 'INVALID_INPUT' },
33
+ });
34
+ }
35
+ try {
36
+ const result = await fastify.cogitator.runtime.run(agent, {
37
+ input: request.body.input,
38
+ context: request.body.context,
39
+ threadId: request.body.threadId,
40
+ });
41
+ const response = {
42
+ output: result.output,
43
+ threadId: result.threadId,
44
+ usage: {
45
+ inputTokens: result.usage.inputTokens,
46
+ outputTokens: result.usage.outputTokens,
47
+ totalTokens: result.usage.totalTokens,
48
+ },
49
+ toolCalls: [...result.toolCalls],
50
+ };
51
+ return response;
52
+ }
53
+ catch (error) {
54
+ const message = error instanceof Error ? error.message : 'Unknown error';
55
+ return reply.status(500).send({
56
+ error: { message, code: 'INTERNAL' },
57
+ });
58
+ }
59
+ });
60
+ fastify.post('/agents/:name/stream', {
61
+ schema: {
62
+ params: {
63
+ type: 'object',
64
+ properties: { name: { type: 'string' } },
65
+ required: ['name'],
66
+ },
67
+ body: AgentRunRequestSchema,
68
+ },
69
+ }, async (request, reply) => {
70
+ const { name } = request.params;
71
+ const agent = fastify.cogitator.agents[name];
72
+ if (!agent) {
73
+ return reply.status(404).send({
74
+ error: { message: `Agent '${name}' not found`, code: 'NOT_FOUND' },
75
+ });
76
+ }
77
+ if (!request.body?.input) {
78
+ return reply.status(400).send({
79
+ error: { message: 'Missing required field: input', code: 'INVALID_INPUT' },
80
+ });
81
+ }
82
+ const writer = new FastifyStreamWriter(reply);
83
+ const messageId = generateId('msg');
84
+ request.raw.on('close', () => {
85
+ writer.close();
86
+ });
87
+ try {
88
+ writer.start(messageId);
89
+ const textId = generateId('txt');
90
+ writer.textStart(textId);
91
+ const result = await fastify.cogitator.runtime.run(agent, {
92
+ input: request.body.input,
93
+ context: request.body.context,
94
+ threadId: request.body.threadId,
95
+ stream: true,
96
+ onToken: (token) => {
97
+ writer.textDelta(textId, token);
98
+ },
99
+ onToolCall: (toolCall) => {
100
+ const toolId = generateId('tool');
101
+ writer.toolCallStart(toolId, toolCall.name);
102
+ writer.toolCallEnd(toolId);
103
+ },
104
+ onToolResult: (toolResult) => {
105
+ const resultId = generateId('res');
106
+ writer.toolResult(resultId, toolResult.callId, toolResult.result);
107
+ },
108
+ });
109
+ writer.textEnd(textId);
110
+ writer.finish(messageId, {
111
+ inputTokens: result.usage.inputTokens,
112
+ outputTokens: result.usage.outputTokens,
113
+ totalTokens: result.usage.totalTokens,
114
+ });
115
+ }
116
+ catch (error) {
117
+ const message = error instanceof Error ? error.message : 'Unknown error';
118
+ writer.error(message, 'INTERNAL');
119
+ }
120
+ finally {
121
+ writer.close();
122
+ }
123
+ });
124
+ };
125
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/routes/agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { FastifyPluginAsync } from 'fastify';
2
+ export declare const healthRoutes: FastifyPluginAsync;
3
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/routes/health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAKlD,eAAO,MAAM,YAAY,EAAE,kBAa1B,CAAC"}
@@ -0,0 +1,15 @@
1
+ const startTime = Date.now();
2
+ export const healthRoutes = async (fastify) => {
3
+ fastify.get('/health', async () => {
4
+ const response = {
5
+ status: 'ok',
6
+ uptime: Date.now() - startTime,
7
+ timestamp: Date.now(),
8
+ };
9
+ return response;
10
+ });
11
+ fastify.get('/ready', async () => {
12
+ return { status: 'ok' };
13
+ });
14
+ };
15
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/routes/health.ts"],"names":[],"mappings":"AAGA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAE7B,MAAM,CAAC,MAAM,YAAY,GAAuB,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,QAAQ,GAAmB;YAC/B,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAC9B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC/B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { healthRoutes } from './health.js';
2
+ export { agentRoutes } from './agents.js';
3
+ export { threadRoutes } from './threads.js';
4
+ export { toolRoutes } from './tools.js';
5
+ export { workflowRoutes } from './workflows.js';
6
+ export { swarmRoutes } from './swarms.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { healthRoutes } from './health.js';
2
+ export { agentRoutes } from './agents.js';
3
+ export { threadRoutes } from './threads.js';
4
+ export { toolRoutes } from './tools.js';
5
+ export { workflowRoutes } from './workflows.js';
6
+ export { swarmRoutes } from './swarms.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FastifyPluginAsync } from 'fastify';
2
+ export declare const swarmRoutes: FastifyPluginAsync;
3
+ //# sourceMappingURL=swarms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarms.d.ts","sourceRoot":"","sources":["../../src/routes/swarms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAelD,eAAO,MAAM,WAAW,EAAE,kBA2NzB,CAAC"}
@@ -0,0 +1,193 @@
1
+ import { SwarmRunRequestSchema } from '../types.js';
2
+ import { FastifyStreamWriter, generateId } from '../streaming/index.js';
3
+ export const swarmRoutes = async (fastify) => {
4
+ fastify.get('/swarms', async () => {
5
+ const swarmList = Object.entries(fastify.cogitator.swarms).map(([name, config]) => {
6
+ const agents = [];
7
+ if (config.supervisor)
8
+ agents.push(config.supervisor.name);
9
+ if (config.workers)
10
+ agents.push(...config.workers.map((w) => w.name));
11
+ if (config.agents)
12
+ agents.push(...config.agents.map((a) => a.name));
13
+ if (config.moderator)
14
+ agents.push(config.moderator.name);
15
+ return {
16
+ name,
17
+ strategy: config.strategy,
18
+ agents,
19
+ };
20
+ });
21
+ const response = { swarms: swarmList };
22
+ return response;
23
+ });
24
+ fastify.post('/swarms/:name/run', {
25
+ schema: {
26
+ params: {
27
+ type: 'object',
28
+ properties: { name: { type: 'string' } },
29
+ required: ['name'],
30
+ },
31
+ body: SwarmRunRequestSchema,
32
+ },
33
+ }, async (request, reply) => {
34
+ const { name } = request.params;
35
+ const swarmConfig = fastify.cogitator.swarms[name];
36
+ if (!swarmConfig) {
37
+ return reply.status(404).send({
38
+ error: { message: `Swarm '${name}' not found`, code: 'NOT_FOUND' },
39
+ });
40
+ }
41
+ if (!request.body?.input) {
42
+ return reply.status(400).send({
43
+ error: { message: 'Missing required field: input', code: 'INVALID_INPUT' },
44
+ });
45
+ }
46
+ try {
47
+ const { Swarm } = await import('@cogitator-ai/swarms');
48
+ const swarm = new Swarm(fastify.cogitator.runtime, swarmConfig);
49
+ const result = await swarm.run({
50
+ input: request.body.input,
51
+ context: request.body.context,
52
+ threadId: request.body.threadId,
53
+ timeout: request.body.timeout,
54
+ });
55
+ const agentResults = {};
56
+ for (const [agentName, agentResult] of result.agentResults.entries()) {
57
+ agentResults[agentName] = {
58
+ output: agentResult.output,
59
+ usage: agentResult.usage,
60
+ };
61
+ }
62
+ const resourceUsage = swarm.getResourceUsage();
63
+ const response = {
64
+ swarmId: swarm.id,
65
+ swarmName: swarm.name,
66
+ strategy: swarm.strategyType,
67
+ output: result.output,
68
+ agentResults,
69
+ usage: {
70
+ totalTokens: resourceUsage.totalTokens,
71
+ totalCost: resourceUsage.totalCost,
72
+ elapsedTime: resourceUsage.elapsedTime,
73
+ },
74
+ };
75
+ return response;
76
+ }
77
+ catch (error) {
78
+ if (error instanceof Error && error.message.includes('Cannot find module')) {
79
+ return reply.status(501).send({
80
+ error: { message: 'Swarms package not installed', code: 'UNIMPLEMENTED' },
81
+ });
82
+ }
83
+ const message = error instanceof Error ? error.message : 'Unknown error';
84
+ return reply.status(500).send({
85
+ error: { message, code: 'INTERNAL' },
86
+ });
87
+ }
88
+ });
89
+ fastify.post('/swarms/:name/stream', {
90
+ schema: {
91
+ params: {
92
+ type: 'object',
93
+ properties: { name: { type: 'string' } },
94
+ required: ['name'],
95
+ },
96
+ body: SwarmRunRequestSchema,
97
+ },
98
+ }, async (request, reply) => {
99
+ const { name } = request.params;
100
+ const swarmConfig = fastify.cogitator.swarms[name];
101
+ if (!swarmConfig) {
102
+ return reply.status(404).send({
103
+ error: { message: `Swarm '${name}' not found`, code: 'NOT_FOUND' },
104
+ });
105
+ }
106
+ if (!request.body?.input) {
107
+ return reply.status(400).send({
108
+ error: { message: 'Missing required field: input', code: 'INVALID_INPUT' },
109
+ });
110
+ }
111
+ const writer = new FastifyStreamWriter(reply);
112
+ const messageId = generateId('swarm');
113
+ request.raw.on('close', () => {
114
+ writer.close();
115
+ });
116
+ try {
117
+ const { Swarm } = await import('@cogitator-ai/swarms');
118
+ const swarm = new Swarm(fastify.cogitator.runtime, swarmConfig);
119
+ writer.start(messageId);
120
+ const result = await swarm.run({
121
+ input: request.body.input,
122
+ context: request.body.context,
123
+ threadId: request.body.threadId,
124
+ timeout: request.body.timeout,
125
+ onAgentStart: (agentName) => {
126
+ writer.swarmEvent('agent_start', { agentName, timestamp: Date.now() });
127
+ },
128
+ onAgentComplete: (agentName, agentResult) => {
129
+ writer.swarmEvent('agent_complete', {
130
+ agentName,
131
+ output: agentResult.output,
132
+ timestamp: Date.now(),
133
+ });
134
+ },
135
+ onAgentError: (agentName, error) => {
136
+ writer.swarmEvent('agent_error', { agentName, error: error.message });
137
+ },
138
+ onMessage: (message) => {
139
+ writer.swarmEvent('message', message);
140
+ },
141
+ onEvent: (event) => {
142
+ writer.swarmEvent(event.type, event.data);
143
+ },
144
+ });
145
+ const resourceUsage = swarm.getResourceUsage();
146
+ writer.swarmEvent('swarm_completed', {
147
+ swarmId: swarm.id,
148
+ output: result.output,
149
+ usage: resourceUsage,
150
+ });
151
+ writer.finish(messageId);
152
+ }
153
+ catch (error) {
154
+ if (error instanceof Error && error.message.includes('Cannot find module')) {
155
+ writer.error('Swarms package not installed', 'UNIMPLEMENTED');
156
+ }
157
+ else {
158
+ const message = error instanceof Error ? error.message : 'Unknown error';
159
+ writer.error(message, 'INTERNAL');
160
+ }
161
+ }
162
+ finally {
163
+ writer.close();
164
+ }
165
+ });
166
+ fastify.get('/swarms/:name/blackboard', {
167
+ schema: {
168
+ params: {
169
+ type: 'object',
170
+ properties: { name: { type: 'string' } },
171
+ required: ['name'],
172
+ },
173
+ },
174
+ }, async (request, reply) => {
175
+ const { name } = request.params;
176
+ const swarmConfig = fastify.cogitator.swarms[name];
177
+ if (!swarmConfig) {
178
+ return reply.status(404).send({
179
+ error: { message: `Swarm '${name}' not found`, code: 'NOT_FOUND' },
180
+ });
181
+ }
182
+ if (!swarmConfig.blackboard?.enabled) {
183
+ return reply.status(400).send({
184
+ error: { message: 'Blackboard not enabled for this swarm', code: 'INVALID_INPUT' },
185
+ });
186
+ }
187
+ const response = {
188
+ sections: swarmConfig.blackboard.sections || {},
189
+ };
190
+ return response;
191
+ });
192
+ };
193
+ //# sourceMappingURL=swarms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarms.js","sourceRoot":"","sources":["../../src/routes/swarms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { FastifyPluginAsync } from 'fastify';
2
+ export declare const threadRoutes: FastifyPluginAsync;
3
+ //# sourceMappingURL=threads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../src/routes/threads.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAQlD,eAAO,MAAM,YAAY,EAAE,kBA6I1B,CAAC"}
@@ -0,0 +1,122 @@
1
+ import { AddMessageRequestSchema } from '../types.js';
2
+ export const threadRoutes = async (fastify) => {
3
+ const getMemory = () => fastify.cogitator.runtime.memory;
4
+ fastify.get('/threads/:id', {
5
+ schema: {
6
+ params: {
7
+ type: 'object',
8
+ properties: { id: { type: 'string' } },
9
+ required: ['id'],
10
+ },
11
+ },
12
+ }, async (request, reply) => {
13
+ const memory = getMemory();
14
+ if (!memory) {
15
+ return reply.status(503).send({
16
+ error: { message: 'Memory not configured', code: 'UNAVAILABLE' },
17
+ });
18
+ }
19
+ const { id } = request.params;
20
+ try {
21
+ const result = await memory.getEntries({ threadId: id });
22
+ if (!result.success) {
23
+ return reply.status(500).send({
24
+ error: { message: result.error, code: 'INTERNAL' },
25
+ });
26
+ }
27
+ const messages = result.data.map((entry) => entry.message);
28
+ const response = {
29
+ id,
30
+ messages,
31
+ createdAt: Date.now(),
32
+ updatedAt: Date.now(),
33
+ };
34
+ return response;
35
+ }
36
+ catch (error) {
37
+ const message = error instanceof Error ? error.message : 'Unknown error';
38
+ return reply.status(500).send({
39
+ error: { message, code: 'INTERNAL' },
40
+ });
41
+ }
42
+ });
43
+ fastify.post('/threads/:id/messages', {
44
+ schema: {
45
+ params: {
46
+ type: 'object',
47
+ properties: { id: { type: 'string' } },
48
+ required: ['id'],
49
+ },
50
+ body: AddMessageRequestSchema,
51
+ },
52
+ }, async (request, reply) => {
53
+ const memory = getMemory();
54
+ if (!memory) {
55
+ return reply.status(503).send({
56
+ error: { message: 'Memory not configured', code: 'UNAVAILABLE' },
57
+ });
58
+ }
59
+ const { id } = request.params;
60
+ const body = request.body;
61
+ if (!body?.role || !body?.content) {
62
+ return reply.status(400).send({
63
+ error: { message: 'Missing required fields: role, content', code: 'INVALID_INPUT' },
64
+ });
65
+ }
66
+ try {
67
+ const result = await memory.addEntry({
68
+ threadId: id,
69
+ message: {
70
+ role: body.role,
71
+ content: body.content,
72
+ },
73
+ tokenCount: 0,
74
+ });
75
+ if (!result.success) {
76
+ return reply.status(500).send({
77
+ error: { message: result.error, code: 'INTERNAL' },
78
+ });
79
+ }
80
+ return reply.status(201).send({ success: true });
81
+ }
82
+ catch (error) {
83
+ const message = error instanceof Error ? error.message : 'Unknown error';
84
+ return reply.status(500).send({
85
+ error: { message, code: 'INTERNAL' },
86
+ });
87
+ }
88
+ });
89
+ fastify.delete('/threads/:id', {
90
+ schema: {
91
+ params: {
92
+ type: 'object',
93
+ properties: { id: { type: 'string' } },
94
+ required: ['id'],
95
+ },
96
+ },
97
+ }, async (request, reply) => {
98
+ const memory = getMemory();
99
+ if (!memory) {
100
+ return reply.status(503).send({
101
+ error: { message: 'Memory not configured', code: 'UNAVAILABLE' },
102
+ });
103
+ }
104
+ const { id } = request.params;
105
+ try {
106
+ const result = await memory.clearThread(id);
107
+ if (!result.success) {
108
+ return reply.status(500).send({
109
+ error: { message: result.error, code: 'INTERNAL' },
110
+ });
111
+ }
112
+ return reply.status(204).send();
113
+ }
114
+ catch (error) {
115
+ const message = error instanceof Error ? error.message : 'Unknown error';
116
+ return reply.status(500).send({
117
+ error: { message, code: 'INTERNAL' },
118
+ });
119
+ }
120
+ });
121
+ };
122
+ //# sourceMappingURL=threads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threads.js","sourceRoot":"","sources":["../../src/routes/threads.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAMtD,MAAM,CAAC,MAAM,YAAY,GAAuB,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;IAEzD,OAAO,CAAC,GAAG,CACT,cAAc,EACd;QACE,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACtC,QAAQ,EAAE,CAAC,IAAI,CAAC;aACjB;SACF;KACF,EACD,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC5B,KAAK,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,IAAI,EAAE,aAAa,EAAE;aACjE,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAE9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC5B,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;iBACnD,CAAC,CAAC;YACL,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAmB;gBAC/B,EAAE;gBACF,QAAQ;gBACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YACF,OAAO,QAAQ,CAAC;QAClB,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,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC5B,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;aACrC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,CAAC,IAAI,CACV,uBAAuB,EACvB;QACE,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACtC,QAAQ,EAAE,CAAC,IAAI,CAAC;aACjB;YACD,IAAI,EAAE,uBAAuB;SAC9B;KACF,EACD,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC5B,KAAK,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,IAAI,EAAE,aAAa,EAAE;aACjE,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAE1B,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC5B,KAAK,EAAE,EAAE,OAAO,EAAE,wCAAwC,EAAE,IAAI,EAAE,eAAe,EAAE;aACpF,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;gBACnC,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB;gBACD,UAAU,EAAE,CAAC;aACd,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC5B,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;iBACnD,CAAC,CAAC;YACL,CAAC;YAED,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,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,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC5B,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;aACrC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,CAAC,MAAM,CACZ,cAAc,EACd;QACE,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACtC,QAAQ,EAAE,CAAC,IAAI,CAAC;aACjB;SACF;KACF,EACD,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC5B,KAAK,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,IAAI,EAAE,aAAa,EAAE;aACjE,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAE9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC5B,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;iBACnD,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,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,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC5B,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;aACrC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FastifyPluginAsync } from 'fastify';
2
+ export declare const toolRoutes: FastifyPluginAsync;
3
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/routes/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,eAAO,MAAM,UAAU,EAAE,kBA2BxB,CAAC"}
@@ -0,0 +1,26 @@
1
+ export const toolRoutes = async (fastify) => {
2
+ fastify.get('/tools', async () => {
3
+ const toolsSet = new Map();
4
+ for (const agent of Object.values(fastify.cogitator.agents)) {
5
+ const tools = agent.config.tools || [];
6
+ for (const tool of tools) {
7
+ if (!toolsSet.has(tool.name)) {
8
+ toolsSet.set(tool.name, {
9
+ name: tool.name,
10
+ description: tool.description,
11
+ parameters: tool.parameters,
12
+ });
13
+ }
14
+ }
15
+ }
16
+ const response = {
17
+ tools: Array.from(toolsSet.values()).map((t) => ({
18
+ name: t.name,
19
+ description: t.description,
20
+ parameters: t.parameters,
21
+ })),
22
+ };
23
+ return response;
24
+ });
25
+ };
26
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/routes/tools.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,UAAU,GAAuB,KAAK,EAAE,OAAO,EAAE,EAAE;IAC9D,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuE,CAAC;QAEhG,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;wBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;qBAC5B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAqB;YACjC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/C,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,UAAU,EAAE,CAAC,CAAC,UAAqC;aACpD,CAAC,CAAC;SACJ,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FastifyPluginAsync } from 'fastify';
2
+ export declare const workflowRoutes: FastifyPluginAsync;
3
+ //# sourceMappingURL=workflows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/routes/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AASlD,eAAO,MAAM,cAAc,EAAE,kBA0I5B,CAAC"}