/**
 * Bash Spawn Hook Example
 *
 * Adjusts command, cwd, and env before execution.
 *
 * Usage:
 *   shortcut -e ./bash-spawn-hook.ts
 */

import type { ExtensionAPI } from 'shortcutxl/app';
import { createBashTool } from 'shortcutxl/app';

export default function (shortcut: ExtensionAPI) {
  const cwd = process.cwd();

  const bashTool = createBashTool(cwd, {
    spawnHook: ({ command, cwd, env }) => ({
      command: `source ~/.profile\n${command}`,
      cwd,
      env: { ...env, SHORTCUT_SPAWN_HOOK: '1' }
    })
  });

  shortcut.registerTool({
    ...bashTool,
    execute: async (id, params, signal, onUpdate, _ctx) => {
      return bashTool.execute(id, params, signal, onUpdate);
    }
  });
}
