Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,7 @@ describe('mergeThemeIntoSettings', () => {
'statusBar.background': '#1976D2',
};
const meta = {
brand: 'AgentKit Forge',
brand: 'Retort',
mode: 'dark',
scheme: 'dark',
tier: 'full',
Expand Down
16 changes: 8 additions & 8 deletions .agentkit/engines/node/src/__tests__/cli.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ describe('CLI', () => {
it('shows help with --help', () => {
const result = run('--help');
expect(result.exitCode).toBe(0);
expect(result.stdout).toContain('AgentKit Forge');
expect(result.stdout).toContain('Retort');
expect(result.stdout).toContain('Commands:');
expect(result.stdout).toContain('init');
expect(result.stdout).toContain('sync');
Expand All @@ -41,18 +41,18 @@ describe('CLI', () => {
it('shows help with -h', () => {
const result = run('-h');
expect(result.exitCode).toBe(0);
expect(result.stdout).toContain('AgentKit Forge');
expect(result.stdout).toContain('Retort');
});

it('shows help with no arguments', () => {
const result = run();
expect(result.exitCode).toBe(0);
expect(result.stdout).toContain('AgentKit Forge');
expect(result.stdout).toContain('Retort');
});

it('shows version from package.json', () => {
const result = run('--help');
expect(result.stdout).toContain(`AgentKit Forge v${PKG_VERSION}`);
expect(result.stdout).toContain(`Retort v${PKG_VERSION}`);
});

it('rejects unknown commands with exit code 1', () => {
Expand Down Expand Up @@ -170,14 +170,14 @@ describe('CLI', () => {
// --status is boolean for orchestrate; --help exits before running the command
const result = run('orchestrate', '--status', '--help');
expect(result.exitCode).toBe(0);
expect(result.stdout).toContain('AgentKit Forge');
expect(result.stdout).toContain('Retort');
});

it('tasks --status accepts a string value', () => {
// --status is string for tasks; --help exits before running the command
const result = run('tasks', '--status', 'submitted', '--help');
expect(result.exitCode).toBe(0);
expect(result.stdout).toContain('AgentKit Forge');
expect(result.stdout).toContain('Retort');
});

it('tasks --status without a value exits non-zero', () => {
Expand All @@ -197,14 +197,14 @@ describe('CLI', () => {
// -q is a short alias for --quiet; --help exits before running sync
const result = run('sync', '-q', '--help');
expect(result.exitCode).toBe(0);
expect(result.stdout).toContain('AgentKit Forge');
expect(result.stdout).toContain('Retort');
});

it('sync -v (short for --verbose) does not error', () => {
// -v is a short alias for --verbose; --help exits before running sync
const result = run('sync', '-v', '--help');
expect(result.exitCode).toBe(0);
expect(result.stdout).toContain('AgentKit Forge');
expect(result.stdout).toContain('Retort');
});
});
});
44 changes: 22 additions & 22 deletions .agentkit/engines/node/src/__tests__/sync-integration.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ describe('syncCopilotPrompts (via runSync --only copilot)', () => {
resolve(projectRoot, '.github', 'prompts', 'build.prompt.md'),
'utf-8'
);
expect(content).toContain('GENERATED by AgentKit Forge');
expect(content).toContain('GENERATED by Retort');
});

it('prompt files contain frontmatter', async () => {
Expand Down Expand Up @@ -331,7 +331,7 @@ describe('syncGemini (via runSync --only gemini)', () => {

it('GEMINI.md contains GENERATED header', async () => {
const content = readFileSync(resolve(projectRoot, 'GEMINI.md'), 'utf-8');
expect(content).toContain('GENERATED by AgentKit Forge');
expect(content).toContain('GENERATED by Retort');
});

it('GEMINI.md contains project template vars', async () => {
Expand Down Expand Up @@ -369,7 +369,7 @@ describe('syncCodexSkills (via runSync --only codex)', () => {
'utf-8'
);
expect(content).toContain('build');
expect(content).toContain('GENERATED by AgentKit Forge');
expect(content).toContain('GENERATED by Retort');
});

it('codex skills resolve {{stateDir}} to .agents/state', { timeout: 15000 }, async () => {
Expand Down Expand Up @@ -458,7 +458,7 @@ describe('syncCursorCommands (via runSync --only cursor)', () => {

it('cursor command files contain GENERATED header', async () => {
const content = readFileSync(resolve(projectRoot, '.cursor', 'commands', 'build.md'), 'utf-8');
expect(content).toContain('GENERATED by AgentKit Forge');
expect(content).toContain('GENERATED by Retort');
});

it('cursor commands resolve {{stateDir}} to .cursor/state', { timeout: 15000 }, async () => {
Expand Down Expand Up @@ -515,7 +515,7 @@ describe('syncWarp (via runSync --only warp)', () => {

it('WARP.md contains GENERATED header', async () => {
const content = readFileSync(resolve(projectRoot, 'WARP.md'), 'utf-8');
expect(content).toContain('GENERATED by AgentKit Forge');
expect(content).toContain('GENERATED by Retort');
});

it('WARP.md contains Warp Instructions heading', async () => {
Expand Down Expand Up @@ -577,7 +577,7 @@ describe('syncRooRules (via runSync --only roo)', () => {

it('roo rule files contain GENERATED header', async () => {
const content = readFileSync(resolve(projectRoot, '.roo', 'rules', 'typescript.md'), 'utf-8');
expect(content).toContain('GENERATED by AgentKit Forge');
expect(content).toContain('GENERATED by Retort');
});
});

Expand Down Expand Up @@ -681,7 +681,7 @@ describe('--quiet, --verbose, --no-clean, --diff flags', () => {
try {
await runSync({ agentkitRoot: AGENTKIT_ROOT, projectRoot, flags: { diff: true } });
const out = log.join('\n');
expect(out).toContain('[agentkit:sync] Diff mode');
expect(out).toContain('[retort:sync] Diff mode');
expect(out).toContain('create ');
expect(out).toContain('Diff:');
expect(existsSync(join(projectRoot, 'CONTRIBUTING.md'))).toBe(false);
Expand Down Expand Up @@ -842,7 +842,7 @@ describe('syncCopilotInstructions — testing & QA templates (via runSync --only
resolve(projectRoot, '.github', 'instructions', 'testing.md'),
'utf-8'
);
expect(content).toContain('GENERATED by AgentKit Forge');
expect(content).toContain('GENERATED by Retort');
});

it('testing.md contains AAA pattern guidance', () => {
Expand Down Expand Up @@ -918,7 +918,7 @@ describe('syncClaudeRules — testing template (via runSync --only claude)', ()

it('testing.md contains GENERATED header', () => {
const content = readFileSync(resolve(projectRoot, '.claude', 'rules', 'testing.md'), 'utf-8');
expect(content).toContain('GENERATED by AgentKit Forge');
expect(content).toContain('GENERATED by Retort');
});

it('testing.md resolves project name placeholder', () => {
Expand Down Expand Up @@ -979,7 +979,7 @@ describe('syncLanguageInstructions — generic, multi-platform dynamic generatio
'utf-8'
);
expect(content).toContain('TypeScript');
expect(content).toContain('GENERATED by AgentKit Forge');
expect(content).toContain('GENERATED by Retort');
});

it('domain-specific template is used for rust.md', () => {
Expand All @@ -988,7 +988,7 @@ describe('syncLanguageInstructions — generic, multi-platform dynamic generatio
'utf-8'
);
expect(content).toContain('Rust');
expect(content).toContain('GENERATED by AgentKit Forge');
expect(content).toContain('GENERATED by Retort');
});

it('ruleConventions from rules.yaml are injected into domain files', () => {
Expand Down Expand Up @@ -1019,7 +1019,7 @@ describe('syncLanguageInstructions — generic, multi-platform dynamic generatio
'utf-8'
);
expect(content).toMatch(/Enforcement Rules|Advisory Rules/);
expect(content).toContain('GENERATED by AgentKit Forge');
expect(content).toContain('GENERATED by Retort');
});

it('no raw Handlebars placeholders remain in generated copilot files', () => {
Expand Down Expand Up @@ -1067,7 +1067,7 @@ describe('syncLanguageInstructions — claude target output (.claude/rules/langu
resolve(projectRoot, '.claude', 'rules', 'languages', 'typescript.md'),
'utf-8'
);
expect(content).toContain('GENERATED by AgentKit Forge');
expect(content).toContain('GENERATED by Retort');
});

it('no raw Handlebars placeholders remain in generated claude files', () => {
Expand Down Expand Up @@ -1114,7 +1114,7 @@ describe('syncEditorTheme (brand-driven editor theme)', () => {
readFileSync(resolve(projectRoot, '.vscode', 'settings.json'), 'utf-8')
);
expect(settings['_agentkit_theme']).toBeDefined();
expect(settings['_agentkit_theme'].brand).toBe('AgentKit Forge');
expect(settings['_agentkit_theme'].brand).toBe('Retort');
expect(settings['_agentkit_theme'].mode).toBe('both');
expect(settings['_agentkit_theme'].version).toBe('1.0.0');
});
Expand All @@ -1133,15 +1133,15 @@ describe('syncEditorTheme (brand-driven editor theme)', () => {
expect(existsSync(settingsPath)).toBe(true);
const settings = JSON.parse(readFileSync(settingsPath, 'utf-8'));
expect(settings['workbench.colorCustomizations']).toBeDefined();
expect(settings['_agentkit_theme'].brand).toBe('AgentKit Forge');
expect(settings['_agentkit_theme'].brand).toBe('Retort');
});

it('generates .windsurf/settings.json with theme colors', () => {
const settingsPath = resolve(projectRoot, '.windsurf', 'settings.json');
expect(existsSync(settingsPath)).toBe(true);
const settings = JSON.parse(readFileSync(settingsPath, 'utf-8'));
expect(settings['workbench.colorCustomizations']).toBeDefined();
expect(settings['_agentkit_theme'].brand).toBe('AgentKit Forge');
expect(settings['_agentkit_theme'].brand).toBe('Retort');
});

it('resolved colors are valid hex values', () => {
Expand Down Expand Up @@ -1197,7 +1197,7 @@ describe('syncEditorTheme — pre-existing settings.json merge', () => {
);
expect(settings['workbench.colorCustomizations']).toBeDefined();
expect(settings['_agentkit_theme']).toBeDefined();
expect(settings['_agentkit_theme'].brand).toBe('AgentKit Forge');
expect(settings['_agentkit_theme'].brand).toBe('Retort');
});

it('preserves original user-defined keys after merge', () => {
Expand Down Expand Up @@ -1231,8 +1231,8 @@ describe('syncGitattributes (merge driver sync)', () => {
const gitattrsPath = resolve(projectRoot, '.gitattributes');
expect(existsSync(gitattrsPath)).toBe(true);
const content = readFileSync(gitattrsPath, 'utf-8');
expect(content).toContain('# >>> AgentKit Forge merge drivers');
expect(content).toContain('# <<< AgentKit Forge merge drivers');
expect(content).toContain('# >>> Retort merge drivers');
expect(content).toContain('# <<< Retort merge drivers');
expect(content).toContain('merge=agentkit-generated');
});

Expand All @@ -1259,7 +1259,7 @@ describe('syncGitattributes (merge driver sync)', () => {
expect(updated).toContain('*.pdf binary');
expect(updated).toContain('merge=agentkit-generated');
// Should have exactly one managed section (not duplicated)
const startCount = (updated.match(/# >>> AgentKit Forge merge drivers/g) || []).length;
const startCount = (updated.match(/# >>> Retort merge drivers/g) || []).length;
expect(startCount).toBe(1);
});

Expand All @@ -1269,8 +1269,8 @@ describe('syncGitattributes (merge driver sync)', () => {
await runSync({ agentkitRoot: AGENTKIT_ROOT, projectRoot, flags: { quiet: true } });

const content = readFileSync(gitattrsPath, 'utf-8');
const startCount = (content.match(/# >>> AgentKit Forge merge drivers/g) || []).length;
const endCount = (content.match(/# <<< AgentKit Forge merge drivers/g) || []).length;
const startCount = (content.match(/# >>> Retort merge drivers/g) || []).length;
const endCount = (content.match(/# <<< Retort merge drivers/g) || []).length;
expect(startCount).toBe(1);
expect(endCount).toBe(1);
});
Expand Down
10 changes: 5 additions & 5 deletions .agentkit/engines/node/src/__tests__/template-utils.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,7 @@ describe('getCommentStyle', () => {
describe('getGeneratedHeader', () => {
it('generates a markdown header', () => {
const header = getGeneratedHeader('0.1.0', 'my-repo', '.md');
expect(header).toContain('GENERATED by AgentKit Forge v0.1.0');
expect(header).toContain('GENERATED by Retort v0.1.0');
expect(header).toContain('.agentkit/overlays/my-repo');
expect(header).toContain('pnpm -C .agentkit agentkit:sync');
});
Expand All @@ -328,7 +328,7 @@ describe('getGeneratedHeader', () => {

it('generates YAML-style header for .yml', () => {
const header = getGeneratedHeader('0.1.0', 'my-repo', '.yml');
expect(header).toContain('# GENERATED by AgentKit Forge v0.1.0');
expect(header).toContain('# GENERATED by Retort v0.1.0');
});
});

Expand Down Expand Up @@ -371,12 +371,12 @@ describe('mergePermissions', () => {
describe('insertHeader', () => {
it('prepends header to plain content', () => {
const result = insertHeader('Hello world', '.yml', '0.1.0', 'test');
expect(result).toMatch(/^# GENERATED by AgentKit Forge/);
expect(result).toMatch(/^# GENERATED by Retort/);
expect(result).toContain('Hello world');
});

it('skips if header already present', () => {
const content = '# GENERATED by AgentKit Forge v0.1.0\nHello';
const content = '# GENERATED by Retort v0.1.0\nHello';
const result = insertHeader(content, '.yml', '0.1.0', 'test');
expect(result).toBe(content);
});
Expand All @@ -392,7 +392,7 @@ describe('insertHeader', () => {
const content = '---\ntitle: Test\n---\n# Content';
const result = insertHeader(content, '.md', '0.1.0', 'test');
expect(result).toContain('title: Test');
expect(result).toContain('GENERATED by AgentKit Forge');
expect(result).toContain('GENERATED by Retort');
expect(result).toContain('# Content');
});

Expand Down
4 changes: 2 additions & 2 deletions .agentkit/engines/node/src/agent-analysis.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* AgentKit Forge — Agent/Team Relationship Analysis Engine
* Retort — Agent/Team Relationship Analysis Engine
*
* Loads agent and team specs, builds a relationship graph, and renders
* 8 cross-reference matrices plus supplementary analyses (orphans,
Expand Down Expand Up @@ -808,7 +808,7 @@ export function renderAllMatrices(graph) {
const header = [
'# Agent/Team Relationship Matrix',
'',
`> Auto-generated by AgentKit Forge analysis engine.`,
`> Auto-generated by Retort analysis engine.`,
`> ${graph.agents.length} agents across ${graph.categories.length} categories, ${graph.teams.length} teams.`,
'',
'---',
Expand Down
2 changes: 1 addition & 1 deletion .agentkit/engines/node/src/agent-integration.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* AgentKit Forge — Agent Integration Engine
* Retort — Agent Integration Engine
* Cross-agent notification processing, auto-delegation, coverage tracking,
* and acceptance criteria enforcement.
*
Expand Down
4 changes: 2 additions & 2 deletions .agentkit/engines/node/src/backlog-store.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* AgentKit Forge — Backlog Store
* Retort — Backlog Store
* Reads and writes backlog data in both JSON and Markdown formats.
*/
import { existsSync, readFileSync } from 'fs';
Expand Down Expand Up @@ -235,7 +235,7 @@ ${renderTable(completed)}

---

_This backlog is maintained by AgentKit Forge. Use \`/sync-backlog\` to refresh_
_This backlog is maintained by Retort. Use \`/sync-backlog\` to refresh_
_or \`agentkit import-issues\` to import from external trackers._
`;

Expand Down
2 changes: 1 addition & 1 deletion .agentkit/engines/node/src/backlog-viewer.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* AgentKit Forge — Backlog Viewer
* Retort — Backlog Viewer
* Displays a consolidated backlog view with filtering and output format options.
*/
import yaml from 'js-yaml';
Expand Down
2 changes: 1 addition & 1 deletion .agentkit/engines/node/src/brand-resolver.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* AgentKit Forge — Brand Resolver
* Retort — Brand Resolver
* Resolves brand.yaml color references and validates brand specs.
* Pure functions — no file I/O.
*/
Expand Down
2 changes: 1 addition & 1 deletion .agentkit/engines/node/src/budget-guard.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* AgentKit Forge — Budget Guard
* Retort — Budget Guard
* Enforcement layer for cost management. Checks session-level budgets
* (duration, command count, file modifications) and triggers warnings
* or hard stops when thresholds are exceeded.
Expand Down
2 changes: 1 addition & 1 deletion .agentkit/engines/node/src/check.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* AgentKit Forge — Check Command (Quality Gate Runner)
* Retort — Check Command (Quality Gate Runner)
* Auto-detects tech stacks and runs format, lint, typecheck, test, build in sequence.
* Outputs a structured results table and logs to events.
*/
Expand Down
Loading
Loading