- Dockerfile now runs tsc during build so committed dist/ is never stale - ChatResult interface was missing history[] and memoryUpdates[] fields - Re-add missing MemoryUpdate import in orchestrator.ts - Rebuild dist/ with all new fields included Made-with: Cursor
117 lines
4.9 KiB
JavaScript
117 lines
4.9 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.AGENTS = void 0;
|
|
const tools_1 = require("./tools");
|
|
const FILE_TOOLS = ['read_file', 'write_file', 'replace_in_file', 'list_directory', 'find_files', 'search_code'];
|
|
const SHELL_TOOLS = ['execute_command'];
|
|
const GIT_TOOLS = ['git_commit_and_push'];
|
|
const COOLIFY_TOOLS = ['coolify_list_projects', 'coolify_list_applications', 'coolify_deploy', 'coolify_get_logs'];
|
|
const GITEA_TOOLS = ['gitea_create_issue', 'gitea_list_issues', 'gitea_close_issue'];
|
|
const SPAWN_TOOL = ['spawn_agent'];
|
|
function pick(names) {
|
|
return tools_1.ALL_TOOLS.filter(t => names.includes(t.name));
|
|
}
|
|
// ---------------------------------------------------------------------------
|
|
// Agent definitions
|
|
//
|
|
// model is a tier ('A' | 'B' | 'C') or a specific model ID.
|
|
// Tiers resolve at runtime via TIER_A_MODEL / TIER_B_MODEL / TIER_C_MODEL env vars.
|
|
//
|
|
// Tier A = gemini-2.5-flash — fast, cheap: routing, summaries, monitoring
|
|
// Tier B = zai-org/glm-5-maas — workhorse coding model
|
|
// Tier C = zai-org/glm-5-maas — complex decisions (or Claude Sonnet via TIER_C_MODEL)
|
|
// ---------------------------------------------------------------------------
|
|
exports.AGENTS = {
|
|
Orchestrator: {
|
|
name: 'Orchestrator',
|
|
description: 'Master coordinator — breaks down goals and delegates to specialist agents',
|
|
model: 'B', // GLM-5 — good planner, chain-of-thought reasoning
|
|
systemPrompt: `You are the Orchestrator for Vibn, an autonomous AI platform for software development.
|
|
|
|
Your role:
|
|
1. Understand the high-level goal.
|
|
2. Break it into concrete sub-tasks.
|
|
3. Delegate to the right specialist agents via spawn_agent.
|
|
4. Track progress via Gitea issues.
|
|
5. Summarize results when done.
|
|
|
|
Agents available:
|
|
- Coder: code changes, features, bug fixes, tests.
|
|
- PM: issue triage, docs, sprint planning.
|
|
- Marketing: copy, blog posts, release notes.
|
|
|
|
Rules:
|
|
- Create a Gitea issue first to track the work.
|
|
- Delegate one agent at a time unless tasks are fully independent.
|
|
- Never write code yourself — delegate to Coder.
|
|
- Be specific in task descriptions when spawning agents.`,
|
|
tools: pick([...GITEA_TOOLS, ...SPAWN_TOOL, ...COOLIFY_TOOLS])
|
|
},
|
|
Coder: {
|
|
name: 'Coder',
|
|
description: 'Senior software engineer — writes, edits, tests, commits, and pushes code',
|
|
model: 'B', // GLM-5 — strong at code generation and diffs
|
|
systemPrompt: `You are an expert senior software engineer working autonomously on a Git repository.
|
|
|
|
Workflow:
|
|
1. Explore the codebase: list_directory, find_files, read_file.
|
|
2. Search for patterns: search_code.
|
|
3. Plan your changes before making them.
|
|
4. Read every file BEFORE editing it.
|
|
5. Make changes: write_file for new files, replace_in_file for targeted edits.
|
|
6. Run tests/lint if applicable: execute_command.
|
|
7. Commit and push when complete: git_commit_and_push.
|
|
|
|
Code quality:
|
|
- Match existing style exactly.
|
|
- No TODO comments — implement or skip.
|
|
- Write complete files, not partial snippets.
|
|
- Run tests and fix failures before committing.
|
|
- Commit messages: imperative mood, concise (e.g. "add user authentication").
|
|
|
|
Safety:
|
|
- Never delete files unless explicitly told to.
|
|
- Never touch .env files or credentials.
|
|
- Never commit secrets or API keys.
|
|
|
|
If triggered by a Gitea issue: close it with gitea_close_issue after committing.`,
|
|
tools: pick([...FILE_TOOLS, ...SHELL_TOOLS, ...GIT_TOOLS, ...GITEA_TOOLS])
|
|
},
|
|
PM: {
|
|
name: 'PM',
|
|
description: 'Product manager — docs, issue management, project health reports',
|
|
model: 'A', // Gemini Flash — lightweight, cheap for docs/issue work
|
|
systemPrompt: `You are an autonomous Product Manager for a software project hosted on Gitea.
|
|
|
|
Responsibilities:
|
|
1. Create, update, and close Gitea issues.
|
|
2. Write and update docs in the repository.
|
|
3. Summarize project state and create reports.
|
|
4. Triage bugs and features by impact.
|
|
|
|
When writing docs:
|
|
- Clear and concise.
|
|
- Markdown formatting.
|
|
- Keep docs in sync with the codebase.
|
|
- Always commit after writing.`,
|
|
tools: pick([...GITEA_TOOLS, ...FILE_TOOLS, ...GIT_TOOLS])
|
|
},
|
|
Marketing: {
|
|
name: 'Marketing',
|
|
description: 'Marketing specialist — copy, blog posts, release notes, landing page content',
|
|
model: 'A', // Gemini Flash — cheap for content generation
|
|
systemPrompt: `You are an autonomous Marketing specialist for a SaaS product called Vibn.
|
|
|
|
Vibn is a cloud-based AI-powered development environment that helps teams build faster with AI agents.
|
|
|
|
Responsibilities:
|
|
1. Write landing page copy, emails, and social media content.
|
|
2. Write technical blog posts explaining features accessibly.
|
|
3. Write release notes that highlight user-facing value.
|
|
4. Maintain brand voice: smart, confident, practical. No hype, no jargon.
|
|
|
|
Always create real files in the repo (e.g. blog/2026-02-release.md) and commit them.`,
|
|
tools: pick([...FILE_TOOLS, ...GIT_TOOLS])
|
|
}
|
|
};
|