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
@@ -0,0 +1,8 @@
1
+ export { Registry } from './core/registry.js';
2
+ export { IntentEngine } from './core/intent.js';
3
+ export { ContextManager } from './core/context.js';
4
+ export { GuardrailValidator } from './core/guardrails.js';
5
+ export { type Agent, type Skill, type Guardrail, AgentSchema, SkillSchema, GuardrailSchema } from './core/schema.js';
6
+ export { getAdapter, getAllAdapters } from './providers/index.js';
7
+ export { type ProviderAdapter, type ProviderFile } from './providers/index.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EACL,KAAK,KAAK,EACV,KAAK,KAAK,EACV,KAAK,SAAS,EACd,WAAW,EACX,WAAW,EACX,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -1,39 +1,8 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- const commander_1 = require("commander");
8
- const fs_1 = __importDefault(require("fs"));
9
- const path_1 = __importDefault(require("path"));
10
- const init_js_1 = require("./commands/init.js");
11
- const uninstall_js_1 = require("./commands/uninstall.js");
12
- const list_js_1 = require("./commands/list.js");
13
- const pkg = JSON.parse(fs_1.default.readFileSync(path_1.default.resolve(__dirname, '..', 'package.json'), 'utf-8'));
14
- const program = new commander_1.Command();
15
- program
16
- .name('agc')
17
- .description('AgCel MCP Skills Server CLI')
18
- .version(pkg.version);
19
- program
20
- .command('init')
21
- .description('Initialize AgCel in the current directory')
22
- .action(init_js_1.initCommand);
23
- program
24
- .command('uninstall')
25
- .description('Clean up AgCel configuration and data')
26
- .action(uninstall_js_1.uninstallCommand);
27
- const skillsCommand = new commander_1.Command('skills');
28
- skillsCommand
29
- .command('list')
30
- .description('List available skills')
31
- .action(() => (0, list_js_1.listCommand)('skills'));
32
- const workflowsCommand = new commander_1.Command('workflows');
33
- workflowsCommand
34
- .command('list')
35
- .description('List available workflows')
36
- .action(() => (0, list_js_1.listCommand)('workflows'));
37
- program.addCommand(skillsCommand);
38
- program.addCommand(workflowsCommand);
39
- program.parse(process.argv);
1
+ export { Registry } from './core/registry.js';
2
+ export { IntentEngine } from './core/intent.js';
3
+ export { ContextManager } from './core/context.js';
4
+ export { GuardrailValidator } from './core/guardrails.js';
5
+ export { AgentSchema, SkillSchema, GuardrailSchema } from './core/schema.js';
6
+ export { getAdapter, getAllAdapters } from './providers/index.js';
7
+ export {} from './providers/index.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAIL,WAAW,EACX,WAAW,EACX,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAA2C,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { Agent, Skill } from '../core/schema.js';
2
+ /**
3
+ * Provider adapter interface.
4
+ * Each provider (Claude, Gemini, Cursor) implements this to translate
5
+ * generic AgCEL agent/skill definitions into its native format.
6
+ */
7
+ export interface ProviderAdapter {
8
+ /** Provider identifier */
9
+ readonly name: string;
10
+ /** Generate all provider-specific config files from agent + skills */
11
+ generateConfig(agent: Agent, skills: Skill[]): ProviderFile[];
12
+ }
13
+ export interface ProviderFile {
14
+ /** Path relative to project root (no '..' segments) */
15
+ pathFromProjectRoot: string;
16
+ /** File content */
17
+ content: string;
18
+ }
19
+ /**
20
+ * Resolve the skills referenced by an agent from a full skill list.
21
+ */
22
+ export declare function resolveSkills(agent: Agent, allSkills: Skill[]): Skill[];
23
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/providers/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;CAC/D;AAED,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAIvE"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Resolve the skills referenced by an agent from a full skill list.
3
+ */
4
+ export function resolveSkills(agent, allSkills) {
5
+ return agent.skills
6
+ .map((name) => allSkills.find(s => s.name === name))
7
+ .filter((s) => s !== undefined);
8
+ }
9
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/providers/adapter.ts"],"names":[],"mappings":"AAqBA;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAY,EAAE,SAAkB;IAC5D,OAAO,KAAK,CAAC,MAAM;SAChB,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;SAC3D,MAAM,CAAC,CAAC,CAAC,EAAc,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Agent, Skill } from '../core/schema.js';
2
+ import type { ProviderAdapter, ProviderFile } from './adapter.js';
3
+ /**
4
+ * ChatGPT provider adapter.
5
+ * Generates:
6
+ * - .chatgpt/AGENT.md: consolidated agent instructions
7
+ * - .chatgpt/settings.json: basic metadata for tooling
8
+ */
9
+ export declare class ChatgptAdapter implements ProviderAdapter {
10
+ readonly name = "chatgpt";
11
+ generateConfig(agent: Agent, skills: Skill[]): ProviderFile[];
12
+ }
13
+ //# sourceMappingURL=chatgpt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatgpt.d.ts","sourceRoot":"","sources":["../../src/providers/chatgpt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAElE;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,eAAe;IACpD,QAAQ,CAAC,IAAI,aAAa;IAE1B,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE;CA0B9D"}
@@ -0,0 +1,33 @@
1
+ import { resolveSkills } from './adapter.js';
2
+ /**
3
+ * ChatGPT provider adapter.
4
+ * Generates:
5
+ * - .chatgpt/AGENT.md: consolidated agent instructions
6
+ * - .chatgpt/settings.json: basic metadata for tooling
7
+ */
8
+ export class ChatgptAdapter {
9
+ name = 'chatgpt';
10
+ generateConfig(agent, skills) {
11
+ const resolved = resolveSkills(agent, skills);
12
+ let agentMd = `# ${agent.name}\n\n`;
13
+ agentMd += `> ${agent.description}\n\n`;
14
+ agentMd += `## Role\n\n${agent.role}\n\n`;
15
+ if (resolved.length > 0) {
16
+ agentMd += `## Skills\n\n`;
17
+ for (const skill of resolved) {
18
+ agentMd += `### ${skill.name}\n\n`;
19
+ agentMd += `${skill.description}\n\n`;
20
+ agentMd += `#### Instructions\n\n${skill.systemPrompt}\n\n`;
21
+ }
22
+ }
23
+ const settings = {
24
+ agent: agent.name,
25
+ skills: resolved.map(s => s.name)
26
+ };
27
+ return [
28
+ { pathFromProjectRoot: '.chatgpt/AGENT.md', content: agentMd },
29
+ { pathFromProjectRoot: '.chatgpt/settings.json', content: JSON.stringify(settings, null, 2) }
30
+ ];
31
+ }
32
+ }
33
+ //# sourceMappingURL=chatgpt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatgpt.js","sourceRoot":"","sources":["../../src/providers/chatgpt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C;;;;;GAKG;AACH,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,SAAS,CAAC;IAE1B,cAAc,CAAC,KAAY,EAAE,MAAe;QAC1C,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE9C,IAAI,OAAO,GAAG,KAAK,KAAK,CAAC,IAAI,MAAM,CAAC;QACpC,OAAO,IAAI,KAAK,KAAK,CAAC,WAAW,MAAM,CAAC;QACxC,OAAO,IAAI,cAAc,KAAK,CAAC,IAAI,MAAM,CAAC;QAE1C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,eAAe,CAAC;YAC3B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC7B,OAAO,IAAI,OAAO,KAAK,CAAC,IAAI,MAAM,CAAC;gBACnC,OAAO,IAAI,GAAG,KAAK,CAAC,WAAW,MAAM,CAAC;gBACtC,OAAO,IAAI,wBAAwB,KAAK,CAAC,YAAY,MAAM,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG;YACf,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClC,CAAC;QAEF,OAAO;YACL,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE;YAC9D,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;SAC9F,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chatgpt.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatgpt.test.d.ts","sourceRoot":"","sources":["../../src/providers/chatgpt.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { ChatgptAdapter } from './chatgpt.js';
3
+ describe('ChatgptAdapter', () => {
4
+ it('Given agent and skills when generating config then emits project-root-relative paths', () => {
5
+ const adapter = new ChatgptAdapter();
6
+ const agent = {
7
+ name: 'backend-developer',
8
+ description: 'Backend dev',
9
+ role: 'Be a backend dev',
10
+ skills: ['python']
11
+ };
12
+ const skills = [
13
+ { name: 'python', description: 'Python', systemPrompt: 'Use Python.', tools: [] }
14
+ ];
15
+ const files = adapter.generateConfig(agent, skills);
16
+ expect(files.length).toBeGreaterThan(0);
17
+ for (const f of files) {
18
+ expect(f.pathFromProjectRoot).not.toContain('..');
19
+ expect(f.pathFromProjectRoot.startsWith('.chatgpt/')).toBe(true);
20
+ }
21
+ });
22
+ });
23
+ //# sourceMappingURL=chatgpt.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatgpt.test.js","sourceRoot":"","sources":["../../src/providers/chatgpt.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,sFAAsF,EAAE,GAAG,EAAE;QAC9F,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;QACrC,MAAM,KAAK,GAAU;YACnB,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,aAAa;YAC1B,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,CAAC,QAAQ,CAAC;SACnB,CAAC;QACF,MAAM,MAAM,GAAY;YACtB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE;SAClF,CAAC;QAEF,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEpD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Agent, Skill } from '../core/schema.js';
2
+ import type { ProviderAdapter, ProviderFile } from './adapter.js';
3
+ /**
4
+ * Claude provider adapter.
5
+ * Generates:
6
+ * - CLAUDE.md: The main system prompt / project instructions file
7
+ * - settings.json: Claude Code settings with permissions
8
+ */
9
+ export declare class ClaudeAdapter implements ProviderAdapter {
10
+ readonly name = "claude";
11
+ generateConfig(agent: Agent, skills: Skill[]): ProviderFile[];
12
+ }
13
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAElE;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,eAAe;IACnD,QAAQ,CAAC,IAAI,YAAY;IAEzB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE;CA2C9D"}
@@ -0,0 +1,48 @@
1
+ import { resolveSkills } from './adapter.js';
2
+ /**
3
+ * Claude provider adapter.
4
+ * Generates:
5
+ * - CLAUDE.md: The main system prompt / project instructions file
6
+ * - settings.json: Claude Code settings with permissions
7
+ */
8
+ export class ClaudeAdapter {
9
+ name = 'claude';
10
+ generateConfig(agent, skills) {
11
+ const resolved = resolveSkills(agent, skills);
12
+ const files = [];
13
+ // --- CLAUDE.md ---
14
+ let claudeMd = `# ${agent.name}\n\n`;
15
+ claudeMd += `> ${agent.description}\n\n`;
16
+ claudeMd += `## Role\n\n${agent.role}\n\n`;
17
+ if (resolved.length > 0) {
18
+ claudeMd += `## Skills\n\n`;
19
+ for (const skill of resolved) {
20
+ claudeMd += `### ${skill.name}\n\n`;
21
+ claudeMd += `${skill.description}\n\n`;
22
+ claudeMd += `#### Instructions\n\n${skill.systemPrompt}\n\n`;
23
+ if (skill.tools && skill.tools.length > 0) {
24
+ claudeMd += `#### Tools\n\n`;
25
+ claudeMd += skill.tools.map((t) => `- \`${t}\``).join('\n') + '\n\n';
26
+ }
27
+ }
28
+ }
29
+ claudeMd += `## Guardrails\n\n`;
30
+ claudeMd += `- Always clarify ambiguous requirements before proceeding.\n`;
31
+ claudeMd += `- Never assume missing context — ask the user.\n`;
32
+ claudeMd += `- Validate all outputs against the active skill instructions.\n`;
33
+ files.push({ pathFromProjectRoot: '.claude/CLAUDE.md', content: claudeMd });
34
+ // --- settings.json ---
35
+ const settings = {
36
+ permissions: {
37
+ allow: [
38
+ "Read", "Edit", "MultiEdit",
39
+ "Bash(npm run *)", "Bash(npx *)",
40
+ "Bash(cat *)", "Bash(ls *)"
41
+ ]
42
+ }
43
+ };
44
+ files.push({ pathFromProjectRoot: '.claude/settings.json', content: JSON.stringify(settings, null, 2) });
45
+ return files;
46
+ }
47
+ }
48
+ //# sourceMappingURL=claude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACf,IAAI,GAAG,QAAQ,CAAC;IAEzB,cAAc,CAAC,KAAY,EAAE,MAAe;QAC1C,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAmB,EAAE,CAAC;QAEjC,oBAAoB;QACpB,IAAI,QAAQ,GAAG,KAAK,KAAK,CAAC,IAAI,MAAM,CAAC;QACrC,QAAQ,IAAI,KAAK,KAAK,CAAC,WAAW,MAAM,CAAC;QACzC,QAAQ,IAAI,cAAc,KAAK,CAAC,IAAI,MAAM,CAAC;QAE3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,QAAQ,IAAI,eAAe,CAAC;YAC5B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC7B,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,MAAM,CAAC;gBACpC,QAAQ,IAAI,GAAG,KAAK,CAAC,WAAW,MAAM,CAAC;gBACvC,QAAQ,IAAI,wBAAwB,KAAK,CAAC,YAAY,MAAM,CAAC;gBAC7D,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1C,QAAQ,IAAI,gBAAgB,CAAC;oBAC7B,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;QAED,QAAQ,IAAI,mBAAmB,CAAC;QAChC,QAAQ,IAAI,8DAA8D,CAAC;QAC3E,QAAQ,IAAI,kDAAkD,CAAC;QAC/D,QAAQ,IAAI,iEAAiE,CAAC;QAE9E,KAAK,CAAC,IAAI,CAAC,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE5E,wBAAwB;QACxB,MAAM,QAAQ,GAAG;YACf,WAAW,EAAE;gBACX,KAAK,EAAE;oBACL,MAAM,EAAE,MAAM,EAAE,WAAW;oBAC3B,iBAAiB,EAAE,aAAa;oBAChC,aAAa,EAAE,YAAY;iBAC5B;aACF;SACF,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAEzG,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import type { Agent, Skill } from '../core/schema.js';
2
+ import type { ProviderAdapter, ProviderFile } from './adapter.js';
3
+ /**
4
+ * Cursor provider adapter.
5
+ * Generates:
6
+ * - .cursorrules: The Cursor IDE rules file (plaintext system prompt)
7
+ * - .cursor/agcel-agent.md: Same instructions under `.cursor/` for provider layout parity
8
+ * - .cursor/settings.json: Optional Cursor workspace settings
9
+ */
10
+ export declare class CursorAdapter implements ProviderAdapter {
11
+ readonly name = "cursor";
12
+ generateConfig(agent: Agent, skills: Skill[]): ProviderFile[];
13
+ }
14
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/providers/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAElE;;;;;;GAMG;AACH,qBAAa,aAAc,YAAW,eAAe;IACnD,QAAQ,CAAC,IAAI,YAAY;IAEzB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE;CAyC9D"}
@@ -0,0 +1,47 @@
1
+ import { resolveSkills } from './adapter.js';
2
+ /**
3
+ * Cursor provider adapter.
4
+ * Generates:
5
+ * - .cursorrules: The Cursor IDE rules file (plaintext system prompt)
6
+ * - .cursor/agcel-agent.md: Same instructions under `.cursor/` for provider layout parity
7
+ * - .cursor/settings.json: Optional Cursor workspace settings
8
+ */
9
+ export class CursorAdapter {
10
+ name = 'cursor';
11
+ generateConfig(agent, skills) {
12
+ const resolved = resolveSkills(agent, skills);
13
+ const files = [];
14
+ let rules = `# Cursor Rules — ${agent.name}\n\n`;
15
+ rules += `## Identity\n\n`;
16
+ rules += `You are ${agent.name}. ${agent.description}\n\n`;
17
+ rules += `## Directive\n\n${agent.role}\n\n`;
18
+ if (resolved.length > 0) {
19
+ rules += `## Skills & Knowledge\n\n`;
20
+ for (const skill of resolved) {
21
+ rules += `### ${skill.name}\n\n`;
22
+ rules += `${skill.systemPrompt}\n\n`;
23
+ if (skill.tools && skill.tools.length > 0) {
24
+ rules += `**Preferred tools:** ${skill.tools.join(', ')}\n\n`;
25
+ }
26
+ }
27
+ }
28
+ rules += `## Rules\n\n`;
29
+ rules += `- Always read existing code before making changes.\n`;
30
+ rules += `- Prefer editing existing files over creating new ones when possible.\n`;
31
+ rules += `- Explain your reasoning before writing code.\n`;
32
+ rules += `- Ask clarifying questions rather than making assumptions.\n`;
33
+ files.push({ pathFromProjectRoot: '.cursorrules', content: rules });
34
+ files.push({ pathFromProjectRoot: '.cursor/agcel-agent.md', content: rules });
35
+ const settings = {
36
+ agent: agent.name,
37
+ skills: resolved.map(s => s.name),
38
+ behavior: {
39
+ auto_apply: false,
40
+ prefer_edit_over_create: true
41
+ }
42
+ };
43
+ files.push({ pathFromProjectRoot: '.cursor/settings.json', content: JSON.stringify(settings, null, 2) });
44
+ return files;
45
+ }
46
+ }
47
+ //# sourceMappingURL=cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/providers/cursor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IACf,IAAI,GAAG,QAAQ,CAAC;IAEzB,cAAc,CAAC,KAAY,EAAE,MAAe;QAC1C,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAmB,EAAE,CAAC;QAEjC,IAAI,KAAK,GAAG,oBAAoB,KAAK,CAAC,IAAI,MAAM,CAAC;QACjD,KAAK,IAAI,iBAAiB,CAAC;QAC3B,KAAK,IAAI,WAAW,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,MAAM,CAAC;QAC3D,KAAK,IAAI,mBAAmB,KAAK,CAAC,IAAI,MAAM,CAAC;QAE7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,IAAI,2BAA2B,CAAC;YACrC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC7B,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,MAAM,CAAC;gBACjC,KAAK,IAAI,GAAG,KAAK,CAAC,YAAY,MAAM,CAAC;gBACrC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1C,KAAK,IAAI,wBAAwB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAChE,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,IAAI,cAAc,CAAC;QACxB,KAAK,IAAI,sDAAsD,CAAC;QAChE,KAAK,IAAI,yEAAyE,CAAC;QACnF,KAAK,IAAI,iDAAiD,CAAC;QAC3D,KAAK,IAAI,8DAA8D,CAAC;QAExE,KAAK,CAAC,IAAI,CAAC,EAAE,mBAAmB,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAE9E,MAAM,QAAQ,GAAG;YACf,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACjC,QAAQ,EAAE;gBACR,UAAU,EAAE,KAAK;gBACjB,uBAAuB,EAAE,IAAI;aAC9B;SACF,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAEzG,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import type { Agent, Skill } from '../core/schema.js';
2
+ import type { ProviderAdapter, ProviderFile } from './adapter.js';
3
+ /**
4
+ * Gemini provider adapter.
5
+ * Generates:
6
+ * - .gemini/styleguide.md: System instructions for Gemini
7
+ * - .gemini/settings.json: Gemini-specific settings
8
+ */
9
+ export declare class GeminiAdapter implements ProviderAdapter {
10
+ readonly name = "gemini";
11
+ generateConfig(agent: Agent, skills: Skill[]): ProviderFile[];
12
+ }
13
+ //# sourceMappingURL=gemini.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAElE;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,eAAe;IACnD,QAAQ,CAAC,IAAI,YAAY;IAEzB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE;CAqC9D"}
@@ -0,0 +1,42 @@
1
+ import { resolveSkills } from './adapter.js';
2
+ /**
3
+ * Gemini provider adapter.
4
+ * Generates:
5
+ * - .gemini/styleguide.md: System instructions for Gemini
6
+ * - .gemini/settings.json: Gemini-specific settings
7
+ */
8
+ export class GeminiAdapter {
9
+ name = 'gemini';
10
+ generateConfig(agent, skills) {
11
+ const resolved = resolveSkills(agent, skills);
12
+ const files = [];
13
+ // --- styleguide.md (Gemini System Instructions) ---
14
+ let guide = `# System Instructions: ${agent.name}\n\n`;
15
+ guide += `You are **${agent.name}** — ${agent.description}\n\n`;
16
+ guide += `## Core Directive\n\n${agent.role}\n\n`;
17
+ if (resolved.length > 0) {
18
+ guide += `## Capabilities\n\n`;
19
+ for (const skill of resolved) {
20
+ guide += `### ${skill.name}\n\n`;
21
+ guide += `${skill.systemPrompt}\n\n`;
22
+ }
23
+ }
24
+ guide += `## Constraints\n\n`;
25
+ guide += `- Leverage Gemini's large context window efficiently.\n`;
26
+ guide += `- Prefer providing complete, comprehensive answers in a single response.\n`;
27
+ guide += `- When context is ambiguous, enumerate possible interpretations and ask.\n`;
28
+ files.push({ pathFromProjectRoot: '.gemini/styleguide.md', content: guide });
29
+ // --- settings.json ---
30
+ const settings = {
31
+ agent: agent.name,
32
+ model_hints: {
33
+ prefer_large_context: true,
34
+ response_style: "comprehensive"
35
+ },
36
+ skills: resolved.map(s => s.name)
37
+ };
38
+ files.push({ pathFromProjectRoot: '.gemini/settings.json', content: JSON.stringify(settings, null, 2) });
39
+ return files;
40
+ }
41
+ }
42
+ //# sourceMappingURL=gemini.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACf,IAAI,GAAG,QAAQ,CAAC;IAEzB,cAAc,CAAC,KAAY,EAAE,MAAe;QAC1C,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAmB,EAAE,CAAC;QAEjC,qDAAqD;QACrD,IAAI,KAAK,GAAG,0BAA0B,KAAK,CAAC,IAAI,MAAM,CAAC;QACvD,KAAK,IAAI,aAAa,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,WAAW,MAAM,CAAC;QAChE,KAAK,IAAI,wBAAwB,KAAK,CAAC,IAAI,MAAM,CAAC;QAElD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,IAAI,qBAAqB,CAAC;YAC/B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC7B,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,MAAM,CAAC;gBACjC,KAAK,IAAI,GAAG,KAAK,CAAC,YAAY,MAAM,CAAC;YACvC,CAAC;QACH,CAAC;QAED,KAAK,IAAI,oBAAoB,CAAC;QAC9B,KAAK,IAAI,yDAAyD,CAAC;QACnE,KAAK,IAAI,4EAA4E,CAAC;QACtF,KAAK,IAAI,4EAA4E,CAAC;QAEtF,KAAK,CAAC,IAAI,CAAC,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAE7E,wBAAwB;QACxB,MAAM,QAAQ,GAAG;YACf,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,WAAW,EAAE;gBACX,oBAAoB,EAAE,IAAI;gBAC1B,cAAc,EAAE,eAAe;aAChC;YACD,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClC,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAEzG,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import type { ProviderAdapter } from './adapter.js';
2
+ export declare function getAdapter(provider: string): ProviderAdapter | undefined;
3
+ export declare function getAllAdapters(): ProviderAdapter[];
4
+ export { type ProviderAdapter, type ProviderFile } from './adapter.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAapD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAExE;AAED,wBAAgB,cAAc,IAAI,eAAe,EAAE,CAElD;AAED,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { ClaudeAdapter } from './claude.js';
2
+ import { GeminiAdapter } from './gemini.js';
3
+ import { CursorAdapter } from './cursor.js';
4
+ import { ChatgptAdapter } from './chatgpt.js';
5
+ const adapters = {
6
+ claude: new ClaudeAdapter(),
7
+ gemini: new GeminiAdapter(),
8
+ cursor: new CursorAdapter(),
9
+ chatgpt: new ChatgptAdapter()
10
+ };
11
+ export function getAdapter(provider) {
12
+ return adapters[provider];
13
+ }
14
+ export function getAllAdapters() {
15
+ return Object.values(adapters);
16
+ }
17
+ export {} from './adapter.js';
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,QAAQ,GAAoC;IAChD,MAAM,EAAE,IAAI,aAAa,EAAE;IAC3B,MAAM,EAAE,IAAI,aAAa,EAAE;IAC3B,MAAM,EAAE,IAAI,aAAa,EAAE;IAC3B,OAAO,EAAE,IAAI,cAAc,EAAE;CAC9B,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,OAAO,EAA2C,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":""}