| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- const TURNKEY_SUBCOMMANDS = [
- 'start',
- 'onboard',
- 'clarify',
- 'design',
- 'spec',
- 'tdd',
- 'develop',
- 'test',
- 'review',
- 'ship',
- ];
- function buildUsageMarkdown() {
- return [
- '# Turnkey Slash',
- '',
- 'Usage:',
- '- `/turnkey start <ticket text>`',
- '- `/turnkey onboard`',
- '- `/turnkey clarify`',
- '- `/turnkey design`',
- '- `/turnkey spec`',
- '- `/turnkey tdd`',
- '- `/turnkey develop`',
- '- `/turnkey test`',
- '- `/turnkey review`',
- '- `/turnkey ship`',
- '- `/turnkey help`',
- ].join('\n');
- }
- function buildHelpResponse(content) {
- return {
- type: 'builtin',
- action: 'help',
- data: {
- content,
- format: 'markdown',
- },
- };
- }
- export function parseTurnkeySlashArgs(args = []) {
- const [subcommandRaw, ...rest] = Array.isArray(args) ? args : [];
- const subcommand = String(subcommandRaw || '').trim().toLowerCase();
- if (!subcommand || subcommand === 'help') {
- return { action: 'help' };
- }
- if (!TURNKEY_SUBCOMMANDS.includes(subcommand)) {
- return {
- action: 'help',
- error: `Unknown /turnkey action: \`${subcommand}\``,
- };
- }
- return {
- action: 'forward',
- subcommand,
- args: rest,
- };
- }
- export async function executeTurnkeySlashCommand(args = []) {
- const parsed = parseTurnkeySlashArgs(args);
- if (parsed.action === 'help') {
- const content = parsed.error
- ? `${parsed.error}\n\n${buildUsageMarkdown()}`
- : buildUsageMarkdown();
- return buildHelpResponse(content);
- }
- const forwarded = [`/turnkey:${parsed.subcommand}`, ...parsed.args]
- .join(' ')
- .trim();
- return {
- type: 'custom',
- content: forwarded,
- hasFileIncludes: false,
- hasBashCommands: false,
- };
- }
- export { buildUsageMarkdown as getTurnkeySlashUsage };
|