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.
- package/README.md +40 -47
- package/dist/cli/commands/create.d.ts +4 -0
- package/dist/cli/commands/create.d.ts.map +1 -0
- package/dist/cli/commands/create.js +68 -0
- package/dist/cli/commands/create.js.map +1 -0
- package/dist/cli/commands/init.d.ts +3 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +98 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/install.d.ts +3 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.helpers.d.ts +15 -0
- package/dist/cli/commands/install.helpers.d.ts.map +1 -0
- package/dist/cli/commands/install.helpers.js +47 -0
- package/dist/cli/commands/install.helpers.js.map +1 -0
- package/dist/cli/commands/install.helpers.test.d.ts +2 -0
- package/dist/cli/commands/install.helpers.test.d.ts.map +1 -0
- package/dist/cli/commands/install.helpers.test.js +18 -0
- package/dist/cli/commands/install.helpers.test.js.map +1 -0
- package/dist/cli/commands/install.js +74 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/pulse.d.ts +4 -0
- package/dist/cli/commands/pulse.d.ts.map +1 -0
- package/dist/cli/commands/pulse.js +48 -0
- package/dist/cli/commands/pulse.js.map +1 -0
- package/dist/cli/commands/pulse.test.d.ts +2 -0
- package/dist/cli/commands/pulse.test.d.ts.map +1 -0
- package/dist/cli/commands/pulse.test.js +19 -0
- package/dist/cli/commands/pulse.test.js.map +1 -0
- package/dist/cli/commands/suggest.d.ts +3 -0
- package/dist/cli/commands/suggest.d.ts.map +1 -0
- package/dist/cli/commands/suggest.js +32 -0
- package/dist/cli/commands/suggest.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +20 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/research-hints.d.ts +5 -0
- package/dist/cli/research-hints.d.ts.map +1 -0
- package/dist/cli/research-hints.js +109 -0
- package/dist/cli/research-hints.js.map +1 -0
- package/dist/cli/research-hints.test.d.ts +2 -0
- package/dist/cli/research-hints.test.d.ts.map +1 -0
- package/dist/cli/research-hints.test.js +50 -0
- package/dist/cli/research-hints.test.js.map +1 -0
- package/dist/core/agcel-config.d.ts +27 -0
- package/dist/core/agcel-config.d.ts.map +1 -0
- package/dist/core/agcel-config.js +4 -0
- package/dist/core/agcel-config.js.map +1 -0
- package/dist/core/build-rag-engine.d.ts +12 -0
- package/dist/core/build-rag-engine.d.ts.map +1 -0
- package/dist/core/build-rag-engine.js +24 -0
- package/dist/core/build-rag-engine.js.map +1 -0
- package/dist/core/build-rag-engine.test.d.ts +2 -0
- package/dist/core/build-rag-engine.test.d.ts.map +1 -0
- package/dist/core/build-rag-engine.test.js +34 -0
- package/dist/core/build-rag-engine.test.js.map +1 -0
- package/dist/core/chroma-rag.d.ts +20 -0
- package/dist/core/chroma-rag.d.ts.map +1 -0
- package/dist/core/chroma-rag.js +108 -0
- package/dist/core/chroma-rag.js.map +1 -0
- package/dist/core/context-hygiene.d.ts +12 -0
- package/dist/core/context-hygiene.d.ts.map +1 -0
- package/dist/core/context-hygiene.js +43 -0
- package/dist/core/context-hygiene.js.map +1 -0
- package/dist/core/context-hygiene.test.d.ts +2 -0
- package/dist/core/context-hygiene.test.d.ts.map +1 -0
- package/dist/core/context-hygiene.test.js +18 -0
- package/dist/core/context-hygiene.test.js.map +1 -0
- package/dist/core/context.d.ts +44 -0
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js +114 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/conversation-routing.d.ts +10 -0
- package/dist/core/conversation-routing.d.ts.map +1 -0
- package/dist/core/conversation-routing.js +27 -0
- package/dist/core/conversation-routing.js.map +1 -0
- package/dist/core/conversation-routing.test.d.ts +2 -0
- package/dist/core/conversation-routing.test.d.ts.map +1 -0
- package/dist/core/conversation-routing.test.js +29 -0
- package/dist/core/conversation-routing.test.js.map +1 -0
- package/dist/core/guardrails.d.ts +26 -0
- package/dist/core/guardrails.d.ts.map +1 -0
- package/dist/core/guardrails.js +76 -0
- package/dist/core/guardrails.js.map +1 -0
- package/dist/core/guardrails.test.d.ts +2 -0
- package/dist/core/guardrails.test.d.ts.map +1 -0
- package/dist/core/guardrails.test.js +35 -0
- package/dist/core/guardrails.test.js.map +1 -0
- package/dist/core/intent.d.ts +22 -0
- package/dist/core/intent.d.ts.map +1 -0
- package/dist/core/intent.js +79 -0
- package/dist/core/intent.js.map +1 -0
- package/dist/core/intent.test.d.ts +2 -0
- package/dist/core/intent.test.d.ts.map +1 -0
- package/dist/core/intent.test.js +43 -0
- package/dist/core/intent.test.js.map +1 -0
- package/dist/core/local-rag.d.ts +17 -0
- package/dist/core/local-rag.d.ts.map +1 -0
- package/dist/core/local-rag.js +74 -0
- package/dist/core/local-rag.js.map +1 -0
- package/dist/core/local-rag.test.d.ts +2 -0
- package/dist/core/local-rag.test.d.ts.map +1 -0
- package/dist/core/local-rag.test.js +47 -0
- package/dist/core/local-rag.test.js.map +1 -0
- package/dist/core/orchestrator.d.ts +47 -0
- package/dist/core/orchestrator.d.ts.map +1 -0
- package/dist/core/orchestrator.js +138 -0
- package/dist/core/orchestrator.js.map +1 -0
- package/dist/core/orchestrator.test.d.ts +2 -0
- package/dist/core/orchestrator.test.d.ts.map +1 -0
- package/dist/core/orchestrator.test.js +118 -0
- package/dist/core/orchestrator.test.js.map +1 -0
- package/dist/core/pulse.d.ts +13 -0
- package/dist/core/pulse.d.ts.map +1 -0
- package/dist/core/pulse.js +29 -0
- package/dist/core/pulse.js.map +1 -0
- package/dist/core/pulse.test.d.ts +2 -0
- package/dist/core/pulse.test.d.ts.map +1 -0
- package/dist/core/pulse.test.js +18 -0
- package/dist/core/pulse.test.js.map +1 -0
- package/dist/core/rag-metadata.d.ts +5 -0
- package/dist/core/rag-metadata.d.ts.map +1 -0
- package/dist/core/rag-metadata.js +13 -0
- package/dist/core/rag-metadata.js.map +1 -0
- package/dist/core/rag-metadata.test.d.ts +2 -0
- package/dist/core/rag-metadata.test.d.ts.map +1 -0
- package/dist/core/rag-metadata.test.js +12 -0
- package/dist/core/rag-metadata.test.js.map +1 -0
- package/dist/core/rag-types.d.ts +18 -0
- package/dist/core/rag-types.d.ts.map +1 -0
- package/dist/core/rag-types.js +2 -0
- package/dist/core/rag-types.js.map +1 -0
- package/dist/core/read-agcel-config.d.ts +3 -0
- package/dist/core/read-agcel-config.d.ts.map +1 -0
- package/dist/core/read-agcel-config.js +13 -0
- package/dist/core/read-agcel-config.js.map +1 -0
- package/dist/core/registry.d.ts +9 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/core/registry.js +75 -0
- package/dist/core/registry.js.map +1 -0
- package/dist/core/registry.test.d.ts +2 -0
- package/dist/core/registry.test.d.ts.map +1 -0
- package/dist/core/registry.test.js +128 -0
- package/dist/core/registry.test.js.map +1 -0
- package/dist/core/schema.d.ts +51 -0
- package/dist/core/schema.d.ts.map +1 -0
- package/dist/core/schema.js +31 -0
- package/dist/core/schema.js.map +1 -0
- package/dist/core/summarizer.d.ts +23 -0
- package/dist/core/summarizer.d.ts.map +1 -0
- package/dist/core/summarizer.js +66 -0
- package/dist/core/summarizer.js.map +1 -0
- package/dist/core/text-similarity.d.ts +7 -0
- package/dist/core/text-similarity.d.ts.map +1 -0
- package/dist/core/text-similarity.js +35 -0
- package/dist/core/text-similarity.js.map +1 -0
- package/dist/core/text-similarity.test.d.ts +2 -0
- package/dist/core/text-similarity.test.d.ts.map +1 -0
- package/dist/core/text-similarity.test.js +11 -0
- package/dist/core/text-similarity.test.js.map +1 -0
- package/dist/docs-site.test.d.ts +2 -0
- package/dist/docs-site.test.d.ts.map +1 -0
- package/dist/docs-site.test.js +19 -0
- package/dist/docs-site.test.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -39
- package/dist/index.js.map +1 -0
- package/dist/providers/adapter.d.ts +23 -0
- package/dist/providers/adapter.d.ts.map +1 -0
- package/dist/providers/adapter.js +9 -0
- package/dist/providers/adapter.js.map +1 -0
- package/dist/providers/chatgpt.d.ts +13 -0
- package/dist/providers/chatgpt.d.ts.map +1 -0
- package/dist/providers/chatgpt.js +33 -0
- package/dist/providers/chatgpt.js.map +1 -0
- package/dist/providers/chatgpt.test.d.ts +2 -0
- package/dist/providers/chatgpt.test.d.ts.map +1 -0
- package/dist/providers/chatgpt.test.js +23 -0
- package/dist/providers/chatgpt.test.js.map +1 -0
- package/dist/providers/claude.d.ts +13 -0
- package/dist/providers/claude.d.ts.map +1 -0
- package/dist/providers/claude.js +48 -0
- package/dist/providers/claude.js.map +1 -0
- package/dist/providers/cursor.d.ts +14 -0
- package/dist/providers/cursor.d.ts.map +1 -0
- package/dist/providers/cursor.js +47 -0
- package/dist/providers/cursor.js.map +1 -0
- package/dist/providers/gemini.d.ts +13 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +42 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/index.d.ts +5 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +18 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +288 -154
- package/dist/server/index.js.map +1 -0
- package/package.json +62 -52
- package/.agent/workflows/api-gen.md +0 -63
- package/.agent/workflows/architect.md +0 -44
- package/.agent/workflows/brainstorm.md +0 -227
- package/.agent/workflows/build.md +0 -38
- package/.agent/workflows/changelog.md +0 -55
- package/.agent/workflows/checkpoint.md +0 -142
- package/.agent/workflows/commit.md +0 -227
- package/.agent/workflows/debug.md +0 -61
- package/.agent/workflows/deploy.md +0 -80
- package/.agent/workflows/doc.md +0 -251
- package/.agent/workflows/execute-plan.md +0 -229
- package/.agent/workflows/feature.md +0 -259
- package/.agent/workflows/fix.md +0 -327
- package/.agent/workflows/help.md +0 -67
- package/.agent/workflows/index.md +0 -152
- package/.agent/workflows/load.md +0 -116
- package/.agent/workflows/mode.md +0 -174
- package/.agent/workflows/optimize.md +0 -57
- package/.agent/workflows/plan.md +0 -341
- package/.agent/workflows/pr.md +0 -78
- package/.agent/workflows/product-plan.md +0 -36
- package/.agent/workflows/production-deploy.md +0 -39
- package/.agent/workflows/refactor.md +0 -67
- package/.agent/workflows/research.md +0 -120
- package/.agent/workflows/review.md +0 -348
- package/.agent/workflows/security-scan.md +0 -60
- package/.agent/workflows/ship.md +0 -225
- package/.agent/workflows/spawn.md +0 -181
- package/.agent/workflows/status.md +0 -63
- package/.agent/workflows/tdd.md +0 -143
- package/.agent/workflows/test.md +0 -344
- package/.agent/workflows/verify.md +0 -35
- package/LICENSE +0 -21
- package/dist/commands/init.js +0 -147
- package/dist/commands/list.js +0 -43
- package/dist/commands/uninstall.js +0 -70
- package/dist/utils/index.js +0 -28
- package/skills/api-security-best-practices/SKILL.md +0 -291
- package/skills/api-security-best-practices/references/examples.md +0 -617
- package/skills/architecture/SKILL.md +0 -59
- package/skills/architecture/context-discovery.md +0 -43
- package/skills/architecture/examples.md +0 -94
- package/skills/architecture/pattern-selection.md +0 -68
- package/skills/architecture/patterns-reference.md +0 -50
- package/skills/architecture/trade-off-analysis.md +0 -77
- package/skills/aws-serverless/SKILL.md +0 -327
- package/skills/brainstorming/SKILL.md +0 -234
- package/skills/c4-context/SKILL.md +0 -154
- package/skills/ci-cd-engineer/SKILL.md +0 -50
- package/skills/code-auditing/SKILL.md +0 -55
- package/skills/copywriting/SKILL.md +0 -248
- package/skills/database-engineer/SKILL.md +0 -47
- package/skills/doc-coauthoring/SKILL.md +0 -379
- package/skills/docker-expert/SKILL.md +0 -412
- package/skills/langgraph/SKILL.md +0 -291
- package/skills/postgresql/SKILL.md +0 -73
- package/skills/pricing-strategy/SKILL.md +0 -360
- package/skills/product-manager/SKILL.md +0 -57
- package/skills/prompt-engineer/README.md +0 -659
- package/skills/prompt-engineer/SKILL.md +0 -256
- package/skills/python-patterns/SKILL.md +0 -445
- package/skills/qa-engineer/SKILL.md +0 -42
- package/skills/rag-engineer/SKILL.md +0 -94
- package/skills/react-patterns/SKILL.md +0 -202
- package/skills/secure-refactoring/SKILL.md +0 -54
- package/skills/security-documentation/SKILL.md +0 -53
- package/skills/senior-architect/SKILL.md +0 -213
- package/skills/senior-architect/references/architecture_patterns.md +0 -103
- package/skills/senior-architect/references/system_design_workflows.md +0 -103
- package/skills/senior-architect/references/tech_decision_guide.md +0 -103
- package/skills/senior-architect/scripts/architecture_diagram_generator.py +0 -114
- package/skills/senior-architect/scripts/dependency_analyzer.py +0 -114
- package/skills/senior-architect/scripts/project_architect.py +0 -114
- package/skills/seo-audit/SKILL.md +0 -491
- package/skills/sql-injection-testing/SKILL.md +0 -452
- package/skills/test-driven-development/SKILL.md +0 -375
- package/skills/test-driven-development/testing-anti-patterns.md +0 -299
- package/skills/test-fixing/SKILL.md +0 -123
- package/skills/testing-patterns/SKILL.md +0 -263
- package/skills/typescript-expert/SKILL.md +0 -202
- package/skills/typescript-expert/references/advanced-topics.md +0 -252
- package/skills/typescript-expert/references/tsconfig-strict.json +0 -92
- package/skills/typescript-expert/references/typescript-cheatsheet.md +0 -383
- package/skills/typescript-expert/references/utility-types.ts +0 -335
- package/skills/typescript-expert/scripts/ts_diagnostic.py +0 -203
- package/skills/ui-ux-designer/SKILL.md +0 -46
- package/skills/vercel-deployment/SKILL.md +0 -83
- package/skills/vulnerability-scanner/SKILL.md +0 -280
- package/skills/vulnerability-scanner/checklists.md +0 -121
- package/skills/vulnerability-scanner/scripts/security_scan.py +0 -458
- package/skills/writing-plans/SKILL.md +0 -120
package/dist/index.d.ts
ADDED
|
@@ -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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":""}
|