agcel 1.0.4 → 2.0.0

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 (293) hide show
  1. package/README.md +40 -47
  2. package/dist/cli/commands/create.d.ts +4 -0
  3. package/dist/cli/commands/create.d.ts.map +1 -0
  4. package/dist/cli/commands/create.js +68 -0
  5. package/dist/cli/commands/create.js.map +1 -0
  6. package/dist/cli/commands/init.d.ts +3 -0
  7. package/dist/cli/commands/init.d.ts.map +1 -0
  8. package/dist/cli/commands/init.js +98 -0
  9. package/dist/cli/commands/init.js.map +1 -0
  10. package/dist/cli/commands/install.d.ts +3 -0
  11. package/dist/cli/commands/install.d.ts.map +1 -0
  12. package/dist/cli/commands/install.helpers.d.ts +15 -0
  13. package/dist/cli/commands/install.helpers.d.ts.map +1 -0
  14. package/dist/cli/commands/install.helpers.js +47 -0
  15. package/dist/cli/commands/install.helpers.js.map +1 -0
  16. package/dist/cli/commands/install.helpers.test.d.ts +2 -0
  17. package/dist/cli/commands/install.helpers.test.d.ts.map +1 -0
  18. package/dist/cli/commands/install.helpers.test.js +18 -0
  19. package/dist/cli/commands/install.helpers.test.js.map +1 -0
  20. package/dist/cli/commands/install.js +74 -0
  21. package/dist/cli/commands/install.js.map +1 -0
  22. package/dist/cli/commands/pulse.d.ts +4 -0
  23. package/dist/cli/commands/pulse.d.ts.map +1 -0
  24. package/dist/cli/commands/pulse.js +48 -0
  25. package/dist/cli/commands/pulse.js.map +1 -0
  26. package/dist/cli/commands/pulse.test.d.ts +2 -0
  27. package/dist/cli/commands/pulse.test.d.ts.map +1 -0
  28. package/dist/cli/commands/pulse.test.js +19 -0
  29. package/dist/cli/commands/pulse.test.js.map +1 -0
  30. package/dist/cli/commands/suggest.d.ts +3 -0
  31. package/dist/cli/commands/suggest.d.ts.map +1 -0
  32. package/dist/cli/commands/suggest.js +32 -0
  33. package/dist/cli/commands/suggest.js.map +1 -0
  34. package/dist/cli/index.d.ts +3 -0
  35. package/dist/cli/index.d.ts.map +1 -0
  36. package/dist/cli/index.js +20 -0
  37. package/dist/cli/index.js.map +1 -0
  38. package/dist/cli/research-hints.d.ts +5 -0
  39. package/dist/cli/research-hints.d.ts.map +1 -0
  40. package/dist/cli/research-hints.js +109 -0
  41. package/dist/cli/research-hints.js.map +1 -0
  42. package/dist/cli/research-hints.test.d.ts +2 -0
  43. package/dist/cli/research-hints.test.d.ts.map +1 -0
  44. package/dist/cli/research-hints.test.js +50 -0
  45. package/dist/cli/research-hints.test.js.map +1 -0
  46. package/dist/core/agcel-config.d.ts +27 -0
  47. package/dist/core/agcel-config.d.ts.map +1 -0
  48. package/dist/core/agcel-config.js +4 -0
  49. package/dist/core/agcel-config.js.map +1 -0
  50. package/dist/core/build-rag-engine.d.ts +12 -0
  51. package/dist/core/build-rag-engine.d.ts.map +1 -0
  52. package/dist/core/build-rag-engine.js +24 -0
  53. package/dist/core/build-rag-engine.js.map +1 -0
  54. package/dist/core/build-rag-engine.test.d.ts +2 -0
  55. package/dist/core/build-rag-engine.test.d.ts.map +1 -0
  56. package/dist/core/build-rag-engine.test.js +34 -0
  57. package/dist/core/build-rag-engine.test.js.map +1 -0
  58. package/dist/core/chroma-rag.d.ts +20 -0
  59. package/dist/core/chroma-rag.d.ts.map +1 -0
  60. package/dist/core/chroma-rag.js +108 -0
  61. package/dist/core/chroma-rag.js.map +1 -0
  62. package/dist/core/context-hygiene.d.ts +12 -0
  63. package/dist/core/context-hygiene.d.ts.map +1 -0
  64. package/dist/core/context-hygiene.js +43 -0
  65. package/dist/core/context-hygiene.js.map +1 -0
  66. package/dist/core/context-hygiene.test.d.ts +2 -0
  67. package/dist/core/context-hygiene.test.d.ts.map +1 -0
  68. package/dist/core/context-hygiene.test.js +18 -0
  69. package/dist/core/context-hygiene.test.js.map +1 -0
  70. package/dist/core/context.d.ts +44 -0
  71. package/dist/core/context.d.ts.map +1 -0
  72. package/dist/core/context.js +114 -0
  73. package/dist/core/context.js.map +1 -0
  74. package/dist/core/conversation-routing.d.ts +10 -0
  75. package/dist/core/conversation-routing.d.ts.map +1 -0
  76. package/dist/core/conversation-routing.js +27 -0
  77. package/dist/core/conversation-routing.js.map +1 -0
  78. package/dist/core/conversation-routing.test.d.ts +2 -0
  79. package/dist/core/conversation-routing.test.d.ts.map +1 -0
  80. package/dist/core/conversation-routing.test.js +29 -0
  81. package/dist/core/conversation-routing.test.js.map +1 -0
  82. package/dist/core/guardrails.d.ts +26 -0
  83. package/dist/core/guardrails.d.ts.map +1 -0
  84. package/dist/core/guardrails.js +76 -0
  85. package/dist/core/guardrails.js.map +1 -0
  86. package/dist/core/guardrails.test.d.ts +2 -0
  87. package/dist/core/guardrails.test.d.ts.map +1 -0
  88. package/dist/core/guardrails.test.js +35 -0
  89. package/dist/core/guardrails.test.js.map +1 -0
  90. package/dist/core/intent.d.ts +22 -0
  91. package/dist/core/intent.d.ts.map +1 -0
  92. package/dist/core/intent.js +79 -0
  93. package/dist/core/intent.js.map +1 -0
  94. package/dist/core/intent.test.d.ts +2 -0
  95. package/dist/core/intent.test.d.ts.map +1 -0
  96. package/dist/core/intent.test.js +43 -0
  97. package/dist/core/intent.test.js.map +1 -0
  98. package/dist/core/local-rag.d.ts +17 -0
  99. package/dist/core/local-rag.d.ts.map +1 -0
  100. package/dist/core/local-rag.js +74 -0
  101. package/dist/core/local-rag.js.map +1 -0
  102. package/dist/core/local-rag.test.d.ts +2 -0
  103. package/dist/core/local-rag.test.d.ts.map +1 -0
  104. package/dist/core/local-rag.test.js +47 -0
  105. package/dist/core/local-rag.test.js.map +1 -0
  106. package/dist/core/orchestrator.d.ts +47 -0
  107. package/dist/core/orchestrator.d.ts.map +1 -0
  108. package/dist/core/orchestrator.js +138 -0
  109. package/dist/core/orchestrator.js.map +1 -0
  110. package/dist/core/orchestrator.test.d.ts +2 -0
  111. package/dist/core/orchestrator.test.d.ts.map +1 -0
  112. package/dist/core/orchestrator.test.js +118 -0
  113. package/dist/core/orchestrator.test.js.map +1 -0
  114. package/dist/core/pulse.d.ts +13 -0
  115. package/dist/core/pulse.d.ts.map +1 -0
  116. package/dist/core/pulse.js +29 -0
  117. package/dist/core/pulse.js.map +1 -0
  118. package/dist/core/pulse.test.d.ts +2 -0
  119. package/dist/core/pulse.test.d.ts.map +1 -0
  120. package/dist/core/pulse.test.js +18 -0
  121. package/dist/core/pulse.test.js.map +1 -0
  122. package/dist/core/rag-metadata.d.ts +5 -0
  123. package/dist/core/rag-metadata.d.ts.map +1 -0
  124. package/dist/core/rag-metadata.js +13 -0
  125. package/dist/core/rag-metadata.js.map +1 -0
  126. package/dist/core/rag-metadata.test.d.ts +2 -0
  127. package/dist/core/rag-metadata.test.d.ts.map +1 -0
  128. package/dist/core/rag-metadata.test.js +12 -0
  129. package/dist/core/rag-metadata.test.js.map +1 -0
  130. package/dist/core/rag-types.d.ts +18 -0
  131. package/dist/core/rag-types.d.ts.map +1 -0
  132. package/dist/core/rag-types.js +2 -0
  133. package/dist/core/rag-types.js.map +1 -0
  134. package/dist/core/read-agcel-config.d.ts +3 -0
  135. package/dist/core/read-agcel-config.d.ts.map +1 -0
  136. package/dist/core/read-agcel-config.js +13 -0
  137. package/dist/core/read-agcel-config.js.map +1 -0
  138. package/dist/core/registry.d.ts +9 -0
  139. package/dist/core/registry.d.ts.map +1 -0
  140. package/dist/core/registry.js +75 -0
  141. package/dist/core/registry.js.map +1 -0
  142. package/dist/core/registry.test.d.ts +2 -0
  143. package/dist/core/registry.test.d.ts.map +1 -0
  144. package/dist/core/registry.test.js +128 -0
  145. package/dist/core/registry.test.js.map +1 -0
  146. package/dist/core/schema.d.ts +51 -0
  147. package/dist/core/schema.d.ts.map +1 -0
  148. package/dist/core/schema.js +31 -0
  149. package/dist/core/schema.js.map +1 -0
  150. package/dist/core/summarizer.d.ts +23 -0
  151. package/dist/core/summarizer.d.ts.map +1 -0
  152. package/dist/core/summarizer.js +66 -0
  153. package/dist/core/summarizer.js.map +1 -0
  154. package/dist/core/text-similarity.d.ts +7 -0
  155. package/dist/core/text-similarity.d.ts.map +1 -0
  156. package/dist/core/text-similarity.js +35 -0
  157. package/dist/core/text-similarity.js.map +1 -0
  158. package/dist/core/text-similarity.test.d.ts +2 -0
  159. package/dist/core/text-similarity.test.d.ts.map +1 -0
  160. package/dist/core/text-similarity.test.js +11 -0
  161. package/dist/core/text-similarity.test.js.map +1 -0
  162. package/dist/docs-site.test.d.ts +2 -0
  163. package/dist/docs-site.test.d.ts.map +1 -0
  164. package/dist/docs-site.test.js +19 -0
  165. package/dist/docs-site.test.js.map +1 -0
  166. package/dist/index.d.ts +8 -0
  167. package/dist/index.d.ts.map +1 -0
  168. package/dist/index.js +8 -39
  169. package/dist/index.js.map +1 -0
  170. package/dist/providers/adapter.d.ts +23 -0
  171. package/dist/providers/adapter.d.ts.map +1 -0
  172. package/dist/providers/adapter.js +9 -0
  173. package/dist/providers/adapter.js.map +1 -0
  174. package/dist/providers/chatgpt.d.ts +13 -0
  175. package/dist/providers/chatgpt.d.ts.map +1 -0
  176. package/dist/providers/chatgpt.js +33 -0
  177. package/dist/providers/chatgpt.js.map +1 -0
  178. package/dist/providers/chatgpt.test.d.ts +2 -0
  179. package/dist/providers/chatgpt.test.d.ts.map +1 -0
  180. package/dist/providers/chatgpt.test.js +23 -0
  181. package/dist/providers/chatgpt.test.js.map +1 -0
  182. package/dist/providers/claude.d.ts +13 -0
  183. package/dist/providers/claude.d.ts.map +1 -0
  184. package/dist/providers/claude.js +48 -0
  185. package/dist/providers/claude.js.map +1 -0
  186. package/dist/providers/cursor.d.ts +14 -0
  187. package/dist/providers/cursor.d.ts.map +1 -0
  188. package/dist/providers/cursor.js +47 -0
  189. package/dist/providers/cursor.js.map +1 -0
  190. package/dist/providers/gemini.d.ts +13 -0
  191. package/dist/providers/gemini.d.ts.map +1 -0
  192. package/dist/providers/gemini.js +42 -0
  193. package/dist/providers/gemini.js.map +1 -0
  194. package/dist/providers/index.d.ts +5 -0
  195. package/dist/providers/index.d.ts.map +1 -0
  196. package/dist/providers/index.js +18 -0
  197. package/dist/providers/index.js.map +1 -0
  198. package/dist/server/index.d.ts +2 -0
  199. package/dist/server/index.d.ts.map +1 -0
  200. package/dist/server/index.js +288 -154
  201. package/dist/server/index.js.map +1 -0
  202. package/package.json +62 -52
  203. package/.agent/workflows/api-gen.md +0 -63
  204. package/.agent/workflows/architect.md +0 -44
  205. package/.agent/workflows/brainstorm.md +0 -227
  206. package/.agent/workflows/build.md +0 -38
  207. package/.agent/workflows/changelog.md +0 -55
  208. package/.agent/workflows/checkpoint.md +0 -142
  209. package/.agent/workflows/commit.md +0 -227
  210. package/.agent/workflows/debug.md +0 -61
  211. package/.agent/workflows/deploy.md +0 -80
  212. package/.agent/workflows/doc.md +0 -251
  213. package/.agent/workflows/execute-plan.md +0 -229
  214. package/.agent/workflows/feature.md +0 -259
  215. package/.agent/workflows/fix.md +0 -327
  216. package/.agent/workflows/help.md +0 -67
  217. package/.agent/workflows/index.md +0 -152
  218. package/.agent/workflows/load.md +0 -116
  219. package/.agent/workflows/mode.md +0 -174
  220. package/.agent/workflows/optimize.md +0 -57
  221. package/.agent/workflows/plan.md +0 -341
  222. package/.agent/workflows/pr.md +0 -78
  223. package/.agent/workflows/product-plan.md +0 -36
  224. package/.agent/workflows/production-deploy.md +0 -39
  225. package/.agent/workflows/refactor.md +0 -67
  226. package/.agent/workflows/research.md +0 -120
  227. package/.agent/workflows/review.md +0 -348
  228. package/.agent/workflows/security-scan.md +0 -60
  229. package/.agent/workflows/ship.md +0 -225
  230. package/.agent/workflows/spawn.md +0 -181
  231. package/.agent/workflows/status.md +0 -63
  232. package/.agent/workflows/tdd.md +0 -143
  233. package/.agent/workflows/test.md +0 -344
  234. package/.agent/workflows/verify.md +0 -35
  235. package/LICENSE +0 -21
  236. package/dist/commands/init.js +0 -147
  237. package/dist/commands/list.js +0 -43
  238. package/dist/commands/uninstall.js +0 -70
  239. package/dist/utils/index.js +0 -28
  240. package/skills/api-security-best-practices/SKILL.md +0 -291
  241. package/skills/api-security-best-practices/references/examples.md +0 -617
  242. package/skills/architecture/SKILL.md +0 -59
  243. package/skills/architecture/context-discovery.md +0 -43
  244. package/skills/architecture/examples.md +0 -94
  245. package/skills/architecture/pattern-selection.md +0 -68
  246. package/skills/architecture/patterns-reference.md +0 -50
  247. package/skills/architecture/trade-off-analysis.md +0 -77
  248. package/skills/aws-serverless/SKILL.md +0 -327
  249. package/skills/brainstorming/SKILL.md +0 -234
  250. package/skills/c4-context/SKILL.md +0 -154
  251. package/skills/ci-cd-engineer/SKILL.md +0 -50
  252. package/skills/code-auditing/SKILL.md +0 -55
  253. package/skills/copywriting/SKILL.md +0 -248
  254. package/skills/database-engineer/SKILL.md +0 -47
  255. package/skills/doc-coauthoring/SKILL.md +0 -379
  256. package/skills/docker-expert/SKILL.md +0 -412
  257. package/skills/langgraph/SKILL.md +0 -291
  258. package/skills/postgresql/SKILL.md +0 -73
  259. package/skills/pricing-strategy/SKILL.md +0 -360
  260. package/skills/product-manager/SKILL.md +0 -57
  261. package/skills/prompt-engineer/README.md +0 -659
  262. package/skills/prompt-engineer/SKILL.md +0 -256
  263. package/skills/python-patterns/SKILL.md +0 -445
  264. package/skills/qa-engineer/SKILL.md +0 -42
  265. package/skills/rag-engineer/SKILL.md +0 -94
  266. package/skills/react-patterns/SKILL.md +0 -202
  267. package/skills/secure-refactoring/SKILL.md +0 -54
  268. package/skills/security-documentation/SKILL.md +0 -53
  269. package/skills/senior-architect/SKILL.md +0 -213
  270. package/skills/senior-architect/references/architecture_patterns.md +0 -103
  271. package/skills/senior-architect/references/system_design_workflows.md +0 -103
  272. package/skills/senior-architect/references/tech_decision_guide.md +0 -103
  273. package/skills/senior-architect/scripts/architecture_diagram_generator.py +0 -114
  274. package/skills/senior-architect/scripts/dependency_analyzer.py +0 -114
  275. package/skills/senior-architect/scripts/project_architect.py +0 -114
  276. package/skills/seo-audit/SKILL.md +0 -491
  277. package/skills/sql-injection-testing/SKILL.md +0 -452
  278. package/skills/test-driven-development/SKILL.md +0 -375
  279. package/skills/test-driven-development/testing-anti-patterns.md +0 -299
  280. package/skills/test-fixing/SKILL.md +0 -123
  281. package/skills/testing-patterns/SKILL.md +0 -263
  282. package/skills/typescript-expert/SKILL.md +0 -202
  283. package/skills/typescript-expert/references/advanced-topics.md +0 -252
  284. package/skills/typescript-expert/references/tsconfig-strict.json +0 -92
  285. package/skills/typescript-expert/references/typescript-cheatsheet.md +0 -383
  286. package/skills/typescript-expert/references/utility-types.ts +0 -335
  287. package/skills/typescript-expert/scripts/ts_diagnostic.py +0 -203
  288. package/skills/ui-ux-designer/SKILL.md +0 -46
  289. package/skills/vercel-deployment/SKILL.md +0 -83
  290. package/skills/vulnerability-scanner/SKILL.md +0 -280
  291. package/skills/vulnerability-scanner/checklists.md +0 -121
  292. package/skills/vulnerability-scanner/scripts/security_scan.py +0 -458
  293. package/skills/writing-plans/SKILL.md +0 -120
@@ -1,175 +1,309 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
7
- const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
8
- const sse_js_1 = require("@modelcontextprotocol/sdk/server/sse.js");
9
- const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
10
- const fs_1 = __importDefault(require("fs"));
11
- const path_1 = __importDefault(require("path"));
12
- const express_1 = __importDefault(require("express"));
13
- const cors_1 = __importDefault(require("cors"));
14
- const index_js_2 = require("../utils/index.js");
15
- const pkg = JSON.parse(fs_1.default.readFileSync(path_1.default.resolve(__dirname, '..', '..', 'package.json'), 'utf-8'));
16
- // Argument parsing for transport mode
17
- const args = process.argv.slice(2);
18
- const modeIndex = args.indexOf('--mode');
19
- const mode = modeIndex !== -1 ? args[modeIndex + 1] : 'stdio'; // Default to stdio if not specified
20
- const server = new index_js_1.Server({
21
- name: "AgCel",
22
- version: pkg.version,
1
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
+ import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema } from "@modelcontextprotocol/sdk/types.js";
4
+ import { Registry } from '../core/registry.js';
5
+ import { IntentEngine } from '../core/intent.js';
6
+ import { ContextManager } from '../core/context.js';
7
+ import { GuardrailValidator } from '../core/guardrails.js';
8
+ import { Orchestrator } from '../core/orchestrator.js';
9
+ import { getAdapter } from '../providers/index.js';
10
+ import { readAgcelConfig } from '../core/read-agcel-config.js';
11
+ const registry = new Registry();
12
+ const intentEngine = new IntentEngine();
13
+ const contextManager = new ContextManager();
14
+ const guardrailValidator = new GuardrailValidator();
15
+ const orchestrator = new Orchestrator(registry, intentEngine, contextManager);
16
+ const server = new Server({
17
+ name: "agcel-server",
18
+ version: "1.0.0"
23
19
  }, {
24
20
  capabilities: {
21
+ resources: {},
25
22
  tools: {},
26
- resources: {}
27
- },
28
- });
29
- // Helper to load skills
30
- // Helper to determine the skills directory
31
- function getSkillsDir() {
32
- const agCelDir = (0, index_js_2.getAgCelDir)();
33
- let skillsDir = path_1.default.join(agCelDir, 'skills');
34
- // Fallback for global install where skills are in project root (e.g. ~/.agc/skills)
35
- if (!fs_1.default.existsSync(skillsDir)) {
36
- skillsDir = path_1.default.join(process.cwd(), 'skills');
37
- }
38
- // Double fallback to global installation directory
39
- if (!fs_1.default.existsSync(skillsDir)) {
40
- skillsDir = path_1.default.join((0, index_js_2.getGlobalAgCelDir)(), 'skills');
23
+ prompts: {}
41
24
  }
42
- if (!fs_1.default.existsSync(skillsDir))
43
- return null;
44
- return skillsDir;
45
- }
46
- // Helper to load skills
47
- function getSkills() {
48
- const skillsDir = getSkillsDir();
49
- if (!skillsDir)
50
- return [];
51
- return fs_1.default.readdirSync(skillsDir).filter(skill => {
52
- return fs_1.default.statSync(path_1.default.join(skillsDir, skill)).isDirectory() && fs_1.default.existsSync(path_1.default.join(skillsDir, skill, 'SKILL.md'));
53
- });
54
- }
55
- // List Tools Handler
56
- server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
57
- const skills = getSkills();
58
- const tools = skills.map(skill => {
59
- return {
60
- name: skill,
61
- description: `Retrieve instructions for the ${skill} skill`,
62
- inputSchema: {
63
- type: "object",
64
- properties: {
65
- instruction: {
66
- type: "string",
67
- description: "Context or specific requirements for retrieving the skill"
68
- }
69
- },
70
- required: ["instruction"]
71
- }
72
- };
73
- });
25
+ });
26
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
74
27
  return {
75
- tools: tools
28
+ tools: [
29
+ {
30
+ name: "route_query",
31
+ description: "Detect intent, retrieve context, resolve skills, and return an assembled prompt package. Pass conversation_history (oldest first) and previous_agent_name to re-evaluate agent selection as the topic evolves.",
32
+ inputSchema: {
33
+ type: "object",
34
+ properties: {
35
+ user_query: { type: "string", description: "The prompt or query from the user" },
36
+ conversation_history: {
37
+ type: "array",
38
+ description: "Optional prior turns for topic-aware routing; each item has role (user or assistant) and content",
39
+ items: {
40
+ type: "object",
41
+ properties: {
42
+ role: { type: "string", description: "user or assistant" },
43
+ content: { type: "string" }
44
+ },
45
+ required: ["role", "content"]
46
+ }
47
+ },
48
+ previous_agent_name: {
49
+ type: "string",
50
+ description: "Name of the agent selected on the previous turn; response includes agent_switched when this differs from the new selection"
51
+ },
52
+ draft_output: {
53
+ type: "string",
54
+ description: "Optional model draft to validate against the resolved agent guardrails in the same call"
55
+ },
56
+ guardrail_strict: {
57
+ type: "boolean",
58
+ description: "When true with draft_output, sets guardrails_blocked if error-severity guardrails fail (also configurable via .agcel/config.json strictGuardrailsOnRouteQuery)"
59
+ }
60
+ },
61
+ required: ["user_query"]
62
+ }
63
+ },
64
+ {
65
+ name: "detect_intent",
66
+ description: "Analyze user intent and select the appropriate AgCEL agent persona",
67
+ inputSchema: {
68
+ type: "object",
69
+ properties: {
70
+ user_query: { type: "string", description: "The prompt or query from the user" }
71
+ },
72
+ required: ["user_query"]
73
+ }
74
+ },
75
+ {
76
+ name: "get_context",
77
+ description: "Retrieve relevant context from the AgCEL knowledge base for a query",
78
+ inputSchema: {
79
+ type: "object",
80
+ properties: {
81
+ query: { type: "string", description: "The query to search context for" }
82
+ },
83
+ required: ["query"]
84
+ }
85
+ },
86
+ {
87
+ name: "ingest_document",
88
+ description: "Ingest a document into the AgCEL knowledge base",
89
+ inputSchema: {
90
+ type: "object",
91
+ properties: {
92
+ id: { type: "string", description: "Unique identifier for the document" },
93
+ content: { type: "string", description: "The document content" },
94
+ metadata: {
95
+ type: "object",
96
+ description: "Optional string metadata (e.g. source, updatedAt ISO date for recency ranking)",
97
+ additionalProperties: { type: "string" }
98
+ }
99
+ },
100
+ required: ["id", "content"]
101
+ }
102
+ },
103
+ {
104
+ name: "generate_config",
105
+ description: "Generate provider-specific config files from an AgCEL agent definition",
106
+ inputSchema: {
107
+ type: "object",
108
+ properties: {
109
+ provider: { type: "string", description: "Target provider (claude, gemini, cursor, chatgpt)" },
110
+ agent_name: { type: "string", description: "Name of the registered agent" }
111
+ },
112
+ required: ["provider", "agent_name"]
113
+ }
114
+ },
115
+ {
116
+ name: "validate_output",
117
+ description: "Validate agent output against guardrails defined for an agent and its skills",
118
+ inputSchema: {
119
+ type: "object",
120
+ properties: {
121
+ agent_name: { type: "string", description: "Name of the agent whose guardrails to check" },
122
+ output: { type: "string", description: "The agent output text to validate" }
123
+ },
124
+ required: ["agent_name", "output"]
125
+ }
126
+ }
127
+ ]
76
128
  };
77
129
  });
78
- // Call Tool Handler
79
- server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
130
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
80
131
  const { name, arguments: args } = request.params;
81
- const skills = getSkills();
82
- const skillsDir = getSkillsDir();
83
- if (skillsDir && skills.includes(name)) {
84
- const skillPath = path_1.default.join(skillsDir, name, 'SKILL.md');
85
- if (fs_1.default.existsSync(skillPath)) {
86
- const content = fs_1.default.readFileSync(skillPath, 'utf-8');
87
- const ironRule = `
88
- ## Iron Rules
89
- 1. If there is anything unclear, ask the user instead of inventing new stuff. Unless the user explicitly tells the AI to invent or suggest ideas.
90
- `;
91
- return {
92
- content: [
93
- {
94
- type: "text",
95
- text: content + ironRule
96
- }
97
- ]
98
- };
132
+ if (name === "route_query") {
133
+ const query = args?.user_query;
134
+ const rawHistory = args?.conversation_history;
135
+ const previousAgentName = args?.previous_agent_name;
136
+ const draftRaw = args?.draft_output;
137
+ const guardrailStrict = args?.guardrail_strict === true;
138
+ const conversationHistory = rawHistory?.map((t) => ({
139
+ role: t.role,
140
+ content: t.content
141
+ }));
142
+ const cfg = await readAgcelConfig(process.cwd());
143
+ const routeOpts = {};
144
+ if (conversationHistory)
145
+ routeOpts.conversationHistory = conversationHistory;
146
+ if (previousAgentName !== undefined && previousAgentName !== '') {
147
+ routeOpts.previousAgentName = previousAgentName;
99
148
  }
149
+ const draftTrimmed = draftRaw?.trim();
150
+ if (draftTrimmed)
151
+ routeOpts.draftOutput = draftTrimmed;
152
+ if (guardrailStrict || cfg.strictGuardrailsOnRouteQuery === true) {
153
+ routeOpts.strictGuardrailsOnDraft = true;
154
+ }
155
+ const result = await orchestrator.routeQuery(query, routeOpts);
156
+ const payload = {
157
+ query,
158
+ agent: result.agent ? { name: result.agent.name, description: result.agent.description } : null,
159
+ confidence: result.confidence,
160
+ suggestion: result.suggestion,
161
+ context: result.context,
162
+ assembledPrompt: result.assembledPrompt,
163
+ guardrails: result.guardrails,
164
+ agent_switched: result.agentSwitched,
165
+ routing_query: result.routingQuery,
166
+ missing_skills: result.missingSkills,
167
+ warnings: result.warnings,
168
+ ...(result.guardrailValidation !== undefined
169
+ ? {
170
+ guardrail_validation: {
171
+ passed: result.guardrailValidation.passed,
172
+ violations: result.guardrailValidation.violations
173
+ },
174
+ guardrail_report: result.guardrailReport,
175
+ ...(result.guardrailRevisionHint !== undefined
176
+ ? { guardrail_revision_hint: result.guardrailRevisionHint }
177
+ : {}),
178
+ guardrails_blocked: result.guardrailsBlocked ?? false
179
+ }
180
+ : {})
181
+ };
182
+ return { content: [{ type: "text", text: JSON.stringify(payload, null, 2) }] };
100
183
  }
101
- throw new Error(`Tool not found: ${name}`);
102
- });
103
- // List Resources Handler
104
- server.setRequestHandler(types_js_1.ListResourcesRequestSchema, async () => {
105
- const skills = getSkills();
106
- const resources = skills.map(skill => ({
107
- uri: `agcel://skills/${skill}/SKILL.md`,
108
- name: `${skill} Documentation`,
109
- mimeType: "text/markdown"
110
- }));
111
- return { resources };
112
- });
113
- // Read Resource Handler
114
- server.setRequestHandler(types_js_1.ReadResourceRequestSchema, async (request) => {
115
- const { uri } = request.params;
116
- const match = uri.match(/^agcel:\/\/skills\/([^\/]+)\/SKILL.md$/);
117
- if (match) {
118
- const skill = match[1];
119
- const skillsDir = getSkillsDir();
120
- if (skillsDir) {
121
- const skillPath = path_1.default.join(skillsDir, skill, 'SKILL.md');
122
- if (fs_1.default.existsSync(skillPath)) {
123
- const content = fs_1.default.readFileSync(skillPath, 'utf-8');
124
- return {
125
- contents: [{ uri, mimeType: "text/markdown", text: content }]
126
- };
127
- }
184
+ if (name === "detect_intent") {
185
+ const query = args?.user_query;
186
+ const agents = await registry.loadAgents();
187
+ const result = intentEngine.detectIntent(query, agents, {
188
+ latestUserTurn: query.trim()
189
+ });
190
+ let text = `Detected intent for query: "${query}". Best Agent: ${result.bestAgent ? result.bestAgent.name : 'None'} (Confidence: ${(result.confidence * 100).toFixed(0)}%)`;
191
+ if (result.suggestion) {
192
+ text += `\n\n${result.suggestion}`;
128
193
  }
194
+ return { content: [{ type: "text", text }] };
129
195
  }
130
- throw new Error(`Resource not found: ${uri}`);
131
- });
132
- async function main() {
133
- if (mode === 'sse') {
134
- const app = (0, express_1.default)();
135
- app.use((0, cors_1.default)());
136
- const agCelDir = (0, index_js_2.getAgCelDir)();
137
- const configPath = path_1.default.join(agCelDir, 'config.json');
138
- let port = 3000;
139
- if (fs_1.default.existsSync(configPath)) {
140
- try {
141
- const config = JSON.parse(fs_1.default.readFileSync(configPath, 'utf-8'));
142
- if (config.port)
143
- port = config.port;
144
- }
145
- catch (e) {
146
- console.error("Failed to read config:", e);
147
- }
196
+ if (name === "get_context") {
197
+ const query = args?.query;
198
+ const context = await contextManager.getContext(query);
199
+ return {
200
+ content: [{
201
+ type: "text",
202
+ text: context || 'No relevant context found.'
203
+ }]
204
+ };
205
+ }
206
+ if (name === "ingest_document") {
207
+ const id = args?.id;
208
+ const content = args?.content;
209
+ const meta = args?.metadata;
210
+ await contextManager.ingest(id, content, meta ?? {});
211
+ return {
212
+ content: [{
213
+ type: "text",
214
+ text: `Document "${id}" ingested successfully.`
215
+ }]
216
+ };
217
+ }
218
+ if (name === "generate_config") {
219
+ const provider = args?.provider;
220
+ const agentName = args?.agent_name;
221
+ const adapter = getAdapter(provider);
222
+ if (!adapter) {
223
+ return { content: [{ type: "text", text: `Unknown provider: ${provider}` }] };
148
224
  }
149
- let transport;
150
- app.get('/sse', async (req, res) => {
151
- transport = new sse_js_1.SSEServerTransport('/message', res);
152
- await server.connect(transport);
153
- });
154
- app.post('/message', async (req, res) => {
155
- if (transport) {
156
- await transport.handlePostMessage(req, res);
225
+ const agents = await registry.loadAgents();
226
+ const agent = agents.find(a => a.name === agentName);
227
+ if (!agent) {
228
+ return { content: [{ type: "text", text: `Agent "${agentName}" not found in registry.` }] };
229
+ }
230
+ const skills = await registry.loadSkills();
231
+ const files = adapter.generateConfig(agent, skills);
232
+ const output = files.map(f => `--- ${f.pathFromProjectRoot} ---\n${f.content}`).join('\n\n');
233
+ return { content: [{ type: "text", text: output }] };
234
+ }
235
+ if (name === "validate_output") {
236
+ const agentName = args?.agent_name;
237
+ const output = args?.output;
238
+ const agents = await registry.loadAgents();
239
+ const agent = agents.find(a => a.name === agentName);
240
+ if (!agent) {
241
+ return { content: [{ type: "text", text: `Agent "${agentName}" not found.` }] };
242
+ }
243
+ // Collect guardrails from agent + its skills
244
+ const allGuardrails = [...(agent.guardrails || [])];
245
+ const skills = await registry.loadSkills();
246
+ for (const skillName of agent.skills) {
247
+ const skill = skills.find(s => s.name === skillName);
248
+ if (skill?.guardrails) {
249
+ allGuardrails.push(...skill.guardrails);
157
250
  }
158
- else {
159
- res.status(404).json({ error: "Session not found" });
251
+ }
252
+ if (allGuardrails.length === 0) {
253
+ return { content: [{ type: "text", text: `No guardrails defined for agent "${agentName}".` }] };
254
+ }
255
+ const result = guardrailValidator.validate(output, allGuardrails);
256
+ return { content: [{ type: "text", text: guardrailValidator.formatReport(result) }] };
257
+ }
258
+ throw new Error("Tool not found");
259
+ });
260
+ server.setRequestHandler(ListResourcesRequestSchema, async () => {
261
+ return {
262
+ resources: [
263
+ {
264
+ uri: "agcel://skills/list",
265
+ name: "Available Skills",
266
+ mimeType: "text/plain"
267
+ },
268
+ {
269
+ uri: "agcel://agents/list",
270
+ name: "Available Agents",
271
+ mimeType: "text/plain"
160
272
  }
161
- });
162
- app.listen(port, () => {
163
- console.log(`AgCel MCP Server running on SSE at http://localhost:${port}/sse`);
164
- });
273
+ ]
274
+ };
275
+ });
276
+ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
277
+ if (request.params.uri === "agcel://skills/list") {
278
+ const skills = await registry.loadSkills();
279
+ return {
280
+ contents: [{
281
+ uri: request.params.uri,
282
+ mimeType: "text/plain",
283
+ text: skills.length === 0 ? '' : skills.map(s => s.name).join('\n')
284
+ }]
285
+ };
165
286
  }
166
- else {
167
- const transport = new stdio_js_1.StdioServerTransport();
168
- await server.connect(transport);
169
- console.error("AgCel MCP Server running on stdio");
287
+ if (request.params.uri === "agcel://agents/list") {
288
+ const agents = await registry.loadAgents();
289
+ return {
290
+ contents: [{
291
+ uri: request.params.uri,
292
+ mimeType: "text/plain",
293
+ text: agents.length === 0 ? '' : agents.map(a => a.name).join('\n')
294
+ }]
295
+ };
170
296
  }
297
+ throw new Error("Resource not found");
298
+ });
299
+ async function run() {
300
+ await orchestrator.initialize();
301
+ const transport = new StdioServerTransport();
302
+ await server.connect(transport);
303
+ console.error("AgCEL MCP Server running on stdio");
171
304
  }
172
- main().catch((error) => {
305
+ run().catch((error) => {
173
306
  console.error("Server error:", error);
174
307
  process.exit(1);
175
308
  });
309
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,54 +1,64 @@
1
1
  {
2
- "name": "agcel",
3
- "version": "1.0.4",
4
- "description": "Antigravity Context Engineering Library is a local MCP (Model Context Protocol) Server containing multiple skills, rules and workflows for end to end software development",
5
- "main": "dist/index.js",
6
- "bin": {
7
- "agc": "./dist/index.js"
8
- },
9
- "files": [
10
- "dist",
11
- "skills",
12
- ".agent",
13
- "README.md",
14
- "LICENSE"
15
- ],
16
- "scripts": {
17
- "build": "tsc",
18
- "start": "node dist/server/index.js",
19
- "test": "echo \"Error: no test specified\" && exit 1"
20
- },
21
- "keywords": [
22
- "mcp",
23
- "cli",
24
- "agent",
25
- "skills"
26
- ],
27
- "author": "Bennie Ng <bennie.ng@agcel.io>",
28
- "license": "MIT",
29
- "repository": {
30
- "type": "git",
31
- "url": "https://github.com/bennie-ng/AgCel.git"
32
- },
33
- "homepage": "https://bennie-ng.github.io/AgCel",
34
- "bugs": {
35
- "url": "https://github.com/bennie-ng/AgCel/issues"
36
- },
37
- "dependencies": {
38
- "@modelcontextprotocol/sdk": "^0.6.0",
39
- "chalk": "^4.1.2",
40
- "commander": "^11.1.0",
41
- "cors": "^2.8.5",
42
- "express": "^4.18.2",
43
- "inquirer": "^8.2.6",
44
- "zod": "^3.22.4"
45
- },
46
- "devDependencies": {
47
- "@types/chalk": "^2.2.0",
48
- "@types/cors": "^2.8.17",
49
- "@types/express": "^4.17.21",
50
- "@types/inquirer": "^9.0.7",
51
- "@types/node": "^20.11.19",
52
- "typescript": "^5.3.3"
2
+ "name": "agcel",
3
+ "version": "2.0.0",
4
+ "description": "",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "scripts": {
8
+ "test": "vitest run",
9
+ "test:watch": "vitest",
10
+ "typecheck": "tsc -p tsconfig.json --noEmit",
11
+ "build": "tsc",
12
+ "cli": "tsx src/cli/index.ts",
13
+ "docs:dev": "npm run dev --prefix docs",
14
+ "docs:build": "npm run build --prefix docs"
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "skills",
19
+ ".agent",
20
+ "README.md",
21
+ "LICENSE"
22
+ ],
23
+ "keywords": [
24
+ "mcp",
25
+ "cli",
26
+ "agent",
27
+ "skills"
28
+ ],
29
+ "author": "Bennie Ng <bennie.ng@agcel.io>",
30
+ "license": "MIT",
31
+ "type": "module",
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://github.com/bennie-ng/AgCEL"
35
+ },
36
+ "homepage": "https://bennie-ng.github.io/AgCEL",
37
+ "bugs": {
38
+ "url": "https://github.com/bennie-ng/AgCEL/issues"
39
+ },
40
+ "dependencies": {
41
+ "@chroma-core/default-embed": "^0.1.9",
42
+ "@modelcontextprotocol/sdk": "^1.27.1",
43
+ "chromadb": "^3.4.0",
44
+ "commander": "^14.0.3",
45
+ "yaml": "^2.8.3",
46
+ "zod": "^4.3.6"
47
+ },
48
+ "devDependencies": {
49
+ "@types/node": "^25.5.0",
50
+ "@vitest/coverage-v8": "^4.1.2",
51
+ "tsx": "^4.21.0",
52
+ "typescript": "^6.0.2",
53
+ "vitest": "^4.1.2"
54
+ },
55
+ "bin": {
56
+ "agcel": "./dist/cli/index.js"
57
+ },
58
+ "exports": {
59
+ ".": {
60
+ "types": "./dist/index.d.ts",
61
+ "default": "./dist/index.js"
53
62
  }
54
- }
63
+ }
64
+ }