agent-orcha 0.0.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 (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +917 -0
  3. package/bin/cli.js +2 -0
  4. package/dist/lib/agents/agent-executor.d.ts +13 -0
  5. package/dist/lib/agents/agent-executor.d.ts.map +1 -0
  6. package/dist/lib/agents/agent-executor.js +158 -0
  7. package/dist/lib/agents/agent-executor.js.map +1 -0
  8. package/dist/lib/agents/agent-loader.d.ts +13 -0
  9. package/dist/lib/agents/agent-loader.d.ts.map +1 -0
  10. package/dist/lib/agents/agent-loader.js +39 -0
  11. package/dist/lib/agents/agent-loader.js.map +1 -0
  12. package/dist/lib/agents/index.d.ts +5 -0
  13. package/dist/lib/agents/index.d.ts.map +1 -0
  14. package/dist/lib/agents/index.js +4 -0
  15. package/dist/lib/agents/index.js.map +1 -0
  16. package/dist/lib/agents/types.d.ts +140 -0
  17. package/dist/lib/agents/types.d.ts.map +1 -0
  18. package/dist/lib/agents/types.js +28 -0
  19. package/dist/lib/agents/types.js.map +1 -0
  20. package/dist/lib/functions/function-loader.d.ts +30 -0
  21. package/dist/lib/functions/function-loader.d.ts.map +1 -0
  22. package/dist/lib/functions/function-loader.js +107 -0
  23. package/dist/lib/functions/function-loader.js.map +1 -0
  24. package/dist/lib/functions/index.d.ts +3 -0
  25. package/dist/lib/functions/index.d.ts.map +1 -0
  26. package/dist/lib/functions/index.js +2 -0
  27. package/dist/lib/functions/index.js.map +1 -0
  28. package/dist/lib/functions/simple-function-wrapper.d.ts +33 -0
  29. package/dist/lib/functions/simple-function-wrapper.d.ts.map +1 -0
  30. package/dist/lib/functions/simple-function-wrapper.js +66 -0
  31. package/dist/lib/functions/simple-function-wrapper.js.map +1 -0
  32. package/dist/lib/index.d.ts +16 -0
  33. package/dist/lib/index.d.ts.map +1 -0
  34. package/dist/lib/index.js +17 -0
  35. package/dist/lib/index.js.map +1 -0
  36. package/dist/lib/llm/index.d.ts +6 -0
  37. package/dist/lib/llm/index.d.ts.map +1 -0
  38. package/dist/lib/llm/index.js +4 -0
  39. package/dist/lib/llm/index.js.map +1 -0
  40. package/dist/lib/llm/llm-config.d.ts +138 -0
  41. package/dist/lib/llm/llm-config.d.ts.map +1 -0
  42. package/dist/lib/llm/llm-config.js +75 -0
  43. package/dist/lib/llm/llm-config.js.map +1 -0
  44. package/dist/lib/llm/llm-factory.d.ts +30 -0
  45. package/dist/lib/llm/llm-factory.d.ts.map +1 -0
  46. package/dist/lib/llm/llm-factory.js +103 -0
  47. package/dist/lib/llm/llm-factory.js.map +1 -0
  48. package/dist/lib/llm/provider-detector.d.ts +12 -0
  49. package/dist/lib/llm/provider-detector.d.ts.map +1 -0
  50. package/dist/lib/llm/provider-detector.js +46 -0
  51. package/dist/lib/llm/provider-detector.js.map +1 -0
  52. package/dist/lib/llm/types.d.ts +19 -0
  53. package/dist/lib/llm/types.d.ts.map +1 -0
  54. package/dist/lib/llm/types.js +18 -0
  55. package/dist/lib/llm/types.js.map +1 -0
  56. package/dist/lib/logger.d.ts +43 -0
  57. package/dist/lib/logger.d.ts.map +1 -0
  58. package/dist/lib/logger.js +113 -0
  59. package/dist/lib/logger.js.map +1 -0
  60. package/dist/lib/mcp/index.d.ts +4 -0
  61. package/dist/lib/mcp/index.d.ts.map +1 -0
  62. package/dist/lib/mcp/index.js +3 -0
  63. package/dist/lib/mcp/index.js.map +1 -0
  64. package/dist/lib/mcp/mcp-client.d.ts +17 -0
  65. package/dist/lib/mcp/mcp-client.d.ts.map +1 -0
  66. package/dist/lib/mcp/mcp-client.js +166 -0
  67. package/dist/lib/mcp/mcp-client.js.map +1 -0
  68. package/dist/lib/mcp/types.d.ts +146 -0
  69. package/dist/lib/mcp/types.d.ts.map +1 -0
  70. package/dist/lib/mcp/types.js +24 -0
  71. package/dist/lib/mcp/types.js.map +1 -0
  72. package/dist/lib/orchestrator.d.ts +64 -0
  73. package/dist/lib/orchestrator.d.ts.map +1 -0
  74. package/dist/lib/orchestrator.js +201 -0
  75. package/dist/lib/orchestrator.js.map +1 -0
  76. package/dist/lib/tools/built-in/index.d.ts +2 -0
  77. package/dist/lib/tools/built-in/index.d.ts.map +1 -0
  78. package/dist/lib/tools/built-in/index.js +2 -0
  79. package/dist/lib/tools/built-in/index.js.map +1 -0
  80. package/dist/lib/tools/built-in/vector-search.tool.d.ts +4 -0
  81. package/dist/lib/tools/built-in/vector-search.tool.d.ts.map +1 -0
  82. package/dist/lib/tools/built-in/vector-search.tool.js +26 -0
  83. package/dist/lib/tools/built-in/vector-search.tool.js.map +1 -0
  84. package/dist/lib/tools/index.d.ts +3 -0
  85. package/dist/lib/tools/index.d.ts.map +1 -0
  86. package/dist/lib/tools/index.js +3 -0
  87. package/dist/lib/tools/index.js.map +1 -0
  88. package/dist/lib/tools/tool-registry.d.ts +20 -0
  89. package/dist/lib/tools/tool-registry.d.ts.map +1 -0
  90. package/dist/lib/tools/tool-registry.js +76 -0
  91. package/dist/lib/tools/tool-registry.js.map +1 -0
  92. package/dist/lib/vectors/index.d.ts +5 -0
  93. package/dist/lib/vectors/index.d.ts.map +1 -0
  94. package/dist/lib/vectors/index.js +4 -0
  95. package/dist/lib/vectors/index.js.map +1 -0
  96. package/dist/lib/vectors/types.d.ts +212 -0
  97. package/dist/lib/vectors/types.d.ts.map +1 -0
  98. package/dist/lib/vectors/types.js +39 -0
  99. package/dist/lib/vectors/types.js.map +1 -0
  100. package/dist/lib/vectors/vector-store-factory.d.ts +14 -0
  101. package/dist/lib/vectors/vector-store-factory.d.ts.map +1 -0
  102. package/dist/lib/vectors/vector-store-factory.js +350 -0
  103. package/dist/lib/vectors/vector-store-factory.js.map +1 -0
  104. package/dist/lib/vectors/vector-store-manager.d.ts +18 -0
  105. package/dist/lib/vectors/vector-store-manager.d.ts.map +1 -0
  106. package/dist/lib/vectors/vector-store-manager.js +79 -0
  107. package/dist/lib/vectors/vector-store-manager.js.map +1 -0
  108. package/dist/lib/workflows/index.d.ts +5 -0
  109. package/dist/lib/workflows/index.d.ts.map +1 -0
  110. package/dist/lib/workflows/index.js +4 -0
  111. package/dist/lib/workflows/index.js.map +1 -0
  112. package/dist/lib/workflows/types.d.ts +630 -0
  113. package/dist/lib/workflows/types.d.ts.map +1 -0
  114. package/dist/lib/workflows/types.js +51 -0
  115. package/dist/lib/workflows/types.js.map +1 -0
  116. package/dist/lib/workflows/workflow-executor.d.ts +22 -0
  117. package/dist/lib/workflows/workflow-executor.d.ts.map +1 -0
  118. package/dist/lib/workflows/workflow-executor.js +276 -0
  119. package/dist/lib/workflows/workflow-executor.js.map +1 -0
  120. package/dist/lib/workflows/workflow-loader.d.ts +13 -0
  121. package/dist/lib/workflows/workflow-loader.d.ts.map +1 -0
  122. package/dist/lib/workflows/workflow-loader.js +39 -0
  123. package/dist/lib/workflows/workflow-loader.js.map +1 -0
  124. package/dist/public/index.html +762 -0
  125. package/dist/src/cli/commands/init.d.ts +2 -0
  126. package/dist/src/cli/commands/init.d.ts.map +1 -0
  127. package/dist/src/cli/commands/init.js +108 -0
  128. package/dist/src/cli/commands/init.js.map +1 -0
  129. package/dist/src/cli/commands/start.d.ts +3 -0
  130. package/dist/src/cli/commands/start.d.ts.map +1 -0
  131. package/dist/src/cli/commands/start.js +114 -0
  132. package/dist/src/cli/commands/start.js.map +1 -0
  133. package/dist/src/cli/index.d.ts +3 -0
  134. package/dist/src/cli/index.d.ts.map +1 -0
  135. package/dist/src/cli/index.js +59 -0
  136. package/dist/src/cli/index.js.map +1 -0
  137. package/dist/src/index.d.ts +2 -0
  138. package/dist/src/index.d.ts.map +1 -0
  139. package/dist/src/index.js +62 -0
  140. package/dist/src/index.js.map +1 -0
  141. package/dist/src/routes/agents.route.d.ts +3 -0
  142. package/dist/src/routes/agents.route.d.ts.map +1 -0
  143. package/dist/src/routes/agents.route.js +58 -0
  144. package/dist/src/routes/agents.route.js.map +1 -0
  145. package/dist/src/routes/llm.route.d.ts +3 -0
  146. package/dist/src/routes/llm.route.d.ts.map +1 -0
  147. package/dist/src/routes/llm.route.js +97 -0
  148. package/dist/src/routes/llm.route.js.map +1 -0
  149. package/dist/src/routes/vectors.route.d.ts +3 -0
  150. package/dist/src/routes/vectors.route.d.ts.map +1 -0
  151. package/dist/src/routes/vectors.route.js +74 -0
  152. package/dist/src/routes/vectors.route.js.map +1 -0
  153. package/dist/src/routes/workflows.route.d.ts +3 -0
  154. package/dist/src/routes/workflows.route.d.ts.map +1 -0
  155. package/dist/src/routes/workflows.route.js +58 -0
  156. package/dist/src/routes/workflows.route.js.map +1 -0
  157. package/dist/src/server.d.ts +9 -0
  158. package/dist/src/server.d.ts.map +1 -0
  159. package/dist/src/server.js +34 -0
  160. package/dist/src/server.js.map +1 -0
  161. package/dist/templates/.env.example +6 -0
  162. package/dist/templates/README.md +234 -0
  163. package/dist/templates/agents/example.agent.yaml +32 -0
  164. package/dist/templates/agents/knowledge.agent.yaml +36 -0
  165. package/dist/templates/agents/math.agent.yaml +38 -0
  166. package/dist/templates/agents/time.agent.yaml +42 -0
  167. package/dist/templates/functions/README.md +195 -0
  168. package/dist/templates/functions/fibonacci.function.js +55 -0
  169. package/dist/templates/llm.json +44 -0
  170. package/dist/templates/mcp.json +18 -0
  171. package/dist/templates/vectors/example-chroma.vector.yaml +43 -0
  172. package/dist/templates/vectors/example.vector.yaml +28 -0
  173. package/dist/templates/vectors/sample-data/example-document.txt +15 -0
  174. package/dist/templates/workflows/example.workflow.yaml +79 -0
  175. package/package.json +77 -0
@@ -0,0 +1,74 @@
1
+ export const vectorsRoutes = async (fastify) => {
2
+ fastify.get('/', async () => {
3
+ const configs = fastify.orchestrator.vectors.listConfigs();
4
+ return configs.map((config) => ({
5
+ name: config.name,
6
+ description: config.description,
7
+ source: config.source,
8
+ store: config.store.type,
9
+ }));
10
+ });
11
+ fastify.get('/:name', async (request, reply) => {
12
+ const config = fastify.orchestrator.vectors.getConfig(request.params.name);
13
+ if (!config) {
14
+ return reply.status(404).send({
15
+ error: 'Vector store not found',
16
+ name: request.params.name,
17
+ });
18
+ }
19
+ return config;
20
+ });
21
+ fastify.post('/:name/search', async (request, reply) => {
22
+ const { name } = request.params;
23
+ const { query, k } = request.body;
24
+ try {
25
+ const results = await fastify.orchestrator.searchVectors(name, query, k);
26
+ return { results };
27
+ }
28
+ catch (error) {
29
+ const message = error instanceof Error ? error.message : String(error);
30
+ if (message.includes('not found')) {
31
+ return reply.status(404).send({ error: message });
32
+ }
33
+ return reply.status(500).send({ error: message });
34
+ }
35
+ });
36
+ fastify.post('/:name/refresh', async (request, reply) => {
37
+ const { name } = request.params;
38
+ try {
39
+ await fastify.orchestrator.vectors.refresh(name);
40
+ return { success: true };
41
+ }
42
+ catch (error) {
43
+ const message = error instanceof Error ? error.message : String(error);
44
+ return reply.status(500).send({ error: message });
45
+ }
46
+ });
47
+ fastify.post('/:name/add', async (request, reply) => {
48
+ const { name } = request.params;
49
+ const { documents } = request.body;
50
+ try {
51
+ const store = fastify.orchestrator.vectors.get(name);
52
+ if (!store) {
53
+ await fastify.orchestrator.vectors.initialize(name);
54
+ const initializedStore = fastify.orchestrator.vectors.get(name);
55
+ if (!initializedStore) {
56
+ return reply.status(404).send({
57
+ error: 'Vector store not found',
58
+ name,
59
+ });
60
+ }
61
+ await initializedStore.addDocuments(documents);
62
+ }
63
+ else {
64
+ await store.addDocuments(documents);
65
+ }
66
+ return { success: true, added: documents.length };
67
+ }
68
+ catch (error) {
69
+ const message = error instanceof Error ? error.message : String(error);
70
+ return reply.status(500).send({ error: message });
71
+ }
72
+ });
73
+ };
74
+ //# sourceMappingURL=vectors.route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vectors.route.js","sourceRoot":"","sources":["../../../src/routes/vectors.route.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { FastifyPluginAsync } from 'fastify';
2
+ export declare const workflowsRoutes: FastifyPluginAsync;
3
+ //# sourceMappingURL=workflows.route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows.route.d.ts","sourceRoot":"","sources":["../../../src/routes/workflows.route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAUlD,eAAO,MAAM,eAAe,EAAE,kBAwE7B,CAAC"}
@@ -0,0 +1,58 @@
1
+ export const workflowsRoutes = async (fastify) => {
2
+ fastify.get('/', async () => {
3
+ const workflows = fastify.orchestrator.workflows.list();
4
+ return workflows.map((workflow) => ({
5
+ name: workflow.name,
6
+ description: workflow.description,
7
+ version: workflow.version,
8
+ steps: workflow.steps.length,
9
+ inputSchema: workflow.input.schema,
10
+ }));
11
+ });
12
+ fastify.get('/:name', async (request, reply) => {
13
+ const workflow = fastify.orchestrator.workflows.get(request.params.name);
14
+ if (!workflow) {
15
+ return reply.status(404).send({
16
+ error: 'Workflow not found',
17
+ name: request.params.name,
18
+ });
19
+ }
20
+ return workflow;
21
+ });
22
+ fastify.post('/:name/run', async (request, reply) => {
23
+ const { name } = request.params;
24
+ const { input } = request.body;
25
+ try {
26
+ const result = await fastify.orchestrator.runWorkflow(name, input);
27
+ return result;
28
+ }
29
+ catch (error) {
30
+ const message = error instanceof Error ? error.message : String(error);
31
+ if (message.includes('not found')) {
32
+ return reply.status(404).send({ error: message });
33
+ }
34
+ return reply.status(500).send({ error: message });
35
+ }
36
+ });
37
+ fastify.post('/:name/stream', async (request, reply) => {
38
+ const { name } = request.params;
39
+ const { input } = request.body;
40
+ reply.raw.setHeader('Content-Type', 'text/event-stream');
41
+ reply.raw.setHeader('Cache-Control', 'no-cache');
42
+ reply.raw.setHeader('Connection', 'keep-alive');
43
+ try {
44
+ const stream = fastify.orchestrator.streamWorkflow(name, input);
45
+ for await (const update of stream) {
46
+ reply.raw.write(`data: ${JSON.stringify(update)}\n\n`);
47
+ }
48
+ reply.raw.write('data: [DONE]\n\n');
49
+ reply.raw.end();
50
+ }
51
+ catch (error) {
52
+ const message = error instanceof Error ? error.message : String(error);
53
+ reply.raw.write(`data: ${JSON.stringify({ type: 'error', error: message })}\n\n`);
54
+ reply.raw.end();
55
+ }
56
+ });
57
+ };
58
+ //# sourceMappingURL=workflows.route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows.route.js","sourceRoot":"","sources":["../../../src/routes/workflows.route.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type FastifyInstance } from 'fastify';
2
+ import type { Orchestrator } from '../lib/index.js';
3
+ declare module 'fastify' {
4
+ interface FastifyInstance {
5
+ orchestrator: Orchestrator;
6
+ }
7
+ }
8
+ export declare function createServer(orchestrator: Orchestrator): Promise<FastifyInstance>;
9
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAEA,OAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAGxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AASpD,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,eAAe;QACvB,YAAY,EAAE,YAAY,CAAC;KAC5B;CACF;AAED,wBAAsB,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CA2BvF"}
@@ -0,0 +1,34 @@
1
+ import * as path from 'path';
2
+ import { fileURLToPath } from 'url';
3
+ import Fastify from 'fastify';
4
+ import cors from '@fastify/cors';
5
+ import fastifyStatic from '@fastify/static';
6
+ import { agentsRoutes } from './routes/agents.route.js';
7
+ import { workflowsRoutes } from './routes/workflows.route.js';
8
+ import { vectorsRoutes } from './routes/vectors.route.js';
9
+ import { llmRoutes } from './routes/llm.route.js';
10
+ import { getPinoConfig } from '../lib/logger.js';
11
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
12
+ export async function createServer(orchestrator) {
13
+ const fastify = Fastify({
14
+ logger: getPinoConfig(),
15
+ disableRequestLogging: true,
16
+ });
17
+ await fastify.register(cors, {
18
+ origin: process.env['CORS_ORIGIN'] ?? true,
19
+ });
20
+ await fastify.register(fastifyStatic, {
21
+ root: path.join(__dirname, '..', 'public'),
22
+ prefix: '/',
23
+ });
24
+ fastify.decorate('orchestrator', orchestrator);
25
+ fastify.get('/health', async () => {
26
+ return { status: 'ok', timestamp: new Date().toISOString() };
27
+ });
28
+ await fastify.register(agentsRoutes, { prefix: '/api/agents' });
29
+ await fastify.register(workflowsRoutes, { prefix: '/api/workflows' });
30
+ await fastify.register(vectorsRoutes, { prefix: '/api/vectors' });
31
+ await fastify.register(llmRoutes, { prefix: '/api/llm' });
32
+ return fastify;
33
+ }
34
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,OAAiC,MAAM,SAAS,CAAC;AACxD,OAAO,IAAI,MAAM,eAAe,CAAC;AACjC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAQ/D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,YAA0B;IAC3D,MAAM,OAAO,GAAG,OAAO,CAAC;QACtB,MAAM,EAAE,aAAa,EAAE;QACvB,qBAAqB,EAAE,IAAI;KAC5B,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC3B,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI;KAC3C,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE;QACpC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;QAC1C,MAAM,EAAE,GAAG;KACZ,CAAC,CAAC;IAEH,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAE/C,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAChC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAChE,MAAM,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACtE,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAClE,MAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAE1D,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,6 @@
1
+ # Server Configuration
2
+ PORT=3000
3
+ HOST=0.0.0.0
4
+
5
+ # Optional: Environment-specific settings
6
+ # NODE_ENV=development
@@ -0,0 +1,234 @@
1
+ # Agent Orchestrator Project
2
+
3
+ This project was initialized with Agent Orchestrator - a TypeScript framework for building and orchestrating multi-agent AI systems.
4
+
5
+ ## Getting Started
6
+
7
+ ### 1. Configure LLM Settings
8
+
9
+ Edit `llm.json` to configure your LLM providers:
10
+
11
+ ```json
12
+ {
13
+ "version": "1.0",
14
+ "models": {
15
+ "default": {
16
+ "provider": "openai",
17
+ "baseUrl": "http://localhost:1234/v1", // For local LLMs (LM Studio, Ollama)
18
+ "apiKey": "not-needed",
19
+ "model": "your-model-name",
20
+ "temperature": 0.7
21
+ }
22
+ },
23
+ "embeddings": {
24
+ "default": {
25
+ "provider": "openai",
26
+ "baseUrl": "http://localhost:1234/v1",
27
+ "apiKey": "not-needed",
28
+ "model": "text-embedding-model"
29
+ }
30
+ }
31
+ }
32
+ ```
33
+
34
+ **Supported Providers:**
35
+ - Local: LM Studio (`http://localhost:1234/v1`), Ollama (`http://localhost:11434/v1`)
36
+ - Cloud: OpenAI, Google Gemini, Anthropic Claude
37
+
38
+ ### 2. Start the Server
39
+
40
+ ```bash
41
+ npx agent-orcha start
42
+ ```
43
+
44
+ The server will run at `http://localhost:3000`
45
+
46
+ ### 3. Test Your Agent
47
+
48
+ ```bash
49
+ curl -X POST http://localhost:3000/api/agents/example/invoke \
50
+ -H "Content-Type: application/json" \
51
+ -d '{"input": {"query": "Hello, how are you?"}}'
52
+ ```
53
+
54
+ ## Project Structure
55
+
56
+ ```
57
+ .
58
+ ├── agents/ # Agent definitions (YAML)
59
+ ├── workflows/ # Workflow definitions (YAML)
60
+ ├── vectors/ # Vector store configs and data
61
+ ├── functions/ # Custom function tools (JavaScript)
62
+ ├── llm.json # LLM and embedding configurations
63
+ ├── mcp.json # MCP server configurations (optional)
64
+ └── .env # Environment variables (optional)
65
+ ```
66
+
67
+ ## Creating Agents
68
+
69
+ Create a new file in `agents/` directory:
70
+
71
+ ```yaml
72
+ # agents/my-agent.agent.yaml
73
+
74
+ name: my-agent
75
+ description: Description of what this agent does
76
+ version: "1.0.0"
77
+
78
+ llm:
79
+ name: default
80
+ temperature: 0.7
81
+
82
+ prompt:
83
+ system: |
84
+ You are a helpful assistant that...
85
+ inputVariables:
86
+ - query
87
+
88
+ tools: []
89
+
90
+ output:
91
+ format: text
92
+ ```
93
+
94
+ ## Creating Workflows
95
+
96
+ Create a new file in `workflows/` directory:
97
+
98
+ ```yaml
99
+ # workflows/my-workflow.workflow.yaml
100
+
101
+ name: my-workflow
102
+ description: Description of the workflow
103
+ version: "1.0.0"
104
+
105
+ input:
106
+ schema:
107
+ topic:
108
+ type: string
109
+ required: true
110
+
111
+ steps:
112
+ - id: step1
113
+ agent: my-agent
114
+ input:
115
+ query: "{{input.topic}}"
116
+ output:
117
+ key: result
118
+
119
+ output:
120
+ result: "{{steps.step1.output}}"
121
+ ```
122
+
123
+ ## Using Vector Stores
124
+
125
+ 1. Add documents to `vectors/sample-data/`
126
+ 2. Configure vector store in `vectors/`:
127
+
128
+ ```yaml
129
+ # vectors/my-knowledge.vector.yaml
130
+
131
+ name: my-knowledge
132
+ description: My knowledge base
133
+
134
+ source:
135
+ type: directory
136
+ path: vectors/sample-data
137
+ pattern: "*.txt"
138
+
139
+ loader:
140
+ type: text
141
+
142
+ splitter:
143
+ type: character
144
+ chunkSize: 1000
145
+ chunkOverlap: 200
146
+
147
+ embedding: default
148
+
149
+ store:
150
+ type: memory # Use 'chroma' for persistent storage
151
+ ```
152
+
153
+ **For persistent storage with Chroma:**
154
+ ```yaml
155
+ store:
156
+ type: chroma
157
+ options:
158
+ path: .chroma # Where to store data
159
+ collectionName: my-knowledge # Collection name
160
+ url: http://localhost:8000 # Chroma server URL
161
+ ```
162
+
163
+ **Note:** To use Chroma, run the server:
164
+ ```bash
165
+ docker run -p 8000:8000 chromadb/chroma
166
+ ```
167
+
168
+ 3. Reference in agent:
169
+
170
+ ```yaml
171
+ tools:
172
+ - vector:my-knowledge
173
+ ```
174
+
175
+ ## Using MCP Servers
176
+
177
+ Configure MCP servers in `mcp.json`:
178
+
179
+ ```json
180
+ {
181
+ "servers": {
182
+ "fetch": {
183
+ "transport": "streamable-http",
184
+ "url": "https://remote.mcpservers.org/fetch/mcp",
185
+ "enabled": true
186
+ }
187
+ }
188
+ }
189
+ ```
190
+
191
+ Reference in agent:
192
+
193
+ ```yaml
194
+ tools:
195
+ - mcp:fetch
196
+ ```
197
+
198
+ ## API Endpoints
199
+
200
+ - `GET /api/agents` - List all agents
201
+ - `POST /api/agents/:name/invoke` - Invoke an agent
202
+ - `GET /api/workflows` - List all workflows
203
+ - `POST /api/workflows/:name/run` - Run a workflow
204
+ - `POST /api/vectors/:name/search` - Search vector store
205
+
206
+ ## Web UI
207
+
208
+ Open `http://localhost:3000` in your browser to access the interactive UI for testing agents and workflows.
209
+
210
+ ## Using as a Library
211
+
212
+ You can also use Agent Orchestrator programmatically:
213
+
214
+ ```javascript
215
+ import { Orchestrator } from 'agent-orcha';
216
+
217
+ const orchestrator = new Orchestrator({ projectRoot: '.' });
218
+ await orchestrator.initialize();
219
+
220
+ // Invoke an agent
221
+ const result = await orchestrator.agents.invoke('my-agent', {
222
+ query: 'Hello world'
223
+ });
224
+
225
+ console.log(result.output);
226
+ ```
227
+
228
+ ## Documentation
229
+
230
+ Full documentation: https://github.com/ddalcu/agent-orcha
231
+
232
+ ## License
233
+
234
+ MIT
@@ -0,0 +1,32 @@
1
+ name: example
2
+ description: An example agent that demonstrates the basic structure
3
+ version: "1.0.0"
4
+
5
+ llm:
6
+ name: default
7
+ temperature: 0.7
8
+
9
+ prompt:
10
+ system: |
11
+ You are a helpful AI assistant.
12
+
13
+ When responding to user queries:
14
+ 1. Be clear and concise
15
+ 2. Use tools when available to enhance your responses
16
+ 3. Provide accurate information
17
+ inputVariables:
18
+ - query
19
+
20
+ tools: []
21
+ # Add tools here, for example:
22
+ # - mcp:fetch # MCP server tools
23
+ # - vector:knowledge # Vector store search
24
+ # - function:calculator # Custom function
25
+
26
+ output:
27
+ format: text
28
+
29
+ metadata:
30
+ category: general
31
+ tags:
32
+ - example
@@ -0,0 +1,36 @@
1
+ name: knowledge
2
+ description: An agent that searches a knowledge base using vector store for semantic search
3
+ version: "1.0.0"
4
+
5
+ llm:
6
+ name: default
7
+ temperature: 0.5
8
+
9
+ prompt:
10
+ system: |
11
+ You are a knowledgeable assistant with access to a vector database.
12
+
13
+ When users ask questions:
14
+ 1. Search your knowledge base using the vector store
15
+ 2. Find relevant information based on semantic similarity
16
+ 3. Provide accurate answers based on the retrieved information
17
+ 4. Cite or reference the information you found
18
+
19
+ If you cannot find relevant information in your knowledge base,
20
+ clearly state that and provide general knowledge if appropriate.
21
+ inputVariables:
22
+ - query
23
+
24
+ tools:
25
+ - vector:example # Reference to the example vector store
26
+
27
+ output:
28
+ format: text
29
+
30
+ metadata:
31
+ category: knowledge
32
+ tags:
33
+ - rag
34
+ - vector-search
35
+ - knowledge-base
36
+ - example
@@ -0,0 +1,38 @@
1
+ name: math
2
+ description: An agent that can calculate Fibonacci numbers using the fibonacci function
3
+ version: "1.0.0"
4
+
5
+ llm:
6
+ name: default
7
+ temperature: 0.3
8
+
9
+ prompt:
10
+ system: |
11
+ You are a mathematical assistant specialized in Fibonacci numbers.
12
+
13
+ When users ask about Fibonacci numbers:
14
+ 1. Parse the index from their query (0-based indexing)
15
+ 2. Use the fibonacci function with parameter n to calculate the result
16
+ 3. Return the result in a clear, formatted way
17
+
18
+ The fibonacci function returns the nth Fibonacci number.
19
+ Examples:
20
+ - "What is the 10th Fibonacci number?" -> Use n: 10
21
+ - "Calculate Fibonacci of 7" -> Use n: 7
22
+
23
+ If the user's query is not about Fibonacci numbers, politely inform them that you specialize in Fibonacci calculations.
24
+ inputVariables:
25
+ - query
26
+
27
+ tools:
28
+ - function:fibonacci # Reference to the fibonacci function
29
+
30
+ output:
31
+ format: text
32
+
33
+ metadata:
34
+ category: mathematics
35
+ tags:
36
+ - math
37
+ - fibonacci
38
+ - example
@@ -0,0 +1,42 @@
1
+ name: time
2
+ description: An agent that fetches current time information for specific timezones using web APIs
3
+ version: "1.0.0"
4
+
5
+ llm:
6
+ name: default
7
+ temperature: 0.3
8
+
9
+ prompt:
10
+ system: |
11
+ You are a time information assistant with access to web fetch capabilities.
12
+
13
+ When users ask for time information:
14
+ 1. Use the fetch tool to get current time from worldtimeapi.org
15
+ 2. For East Coast USA, use the timezone: America/New_York
16
+ 3. Parse the JSON response and extract the datetime information
17
+ 4. Format the time in a user-friendly way
18
+
19
+ API endpoint format: http://worldtimeapi.org/api/timezone/America/New_York
20
+
21
+ The response will include:
22
+ - datetime: The current date and time
23
+ - timezone: The timezone name
24
+ - utc_offset: The UTC offset
25
+
26
+ Present the time clearly with the timezone information.
27
+ inputVariables:
28
+ - timezone
29
+
30
+ tools:
31
+ - mcp:fetch # Reference to the MCP fetch server
32
+
33
+ output:
34
+ format: text
35
+
36
+ metadata:
37
+ category: utilities
38
+ tags:
39
+ - time
40
+ - fetch
41
+ - api
42
+ - example