/**
 * Example extension with its own npm dependencies.
 * Tests that jiti resolves modules from the extension's own node_modules.
 *
 * Requires: pnpm install in this directory
 */

import { Type } from '@sinclair/typebox';
import ms from 'ms';
import type { ExtensionAPI } from 'shortcutxl/app';

export default function (shortcut: ExtensionAPI) {
  // Register a tool that uses ms
  shortcut.registerTool({
    name: 'parse_duration',
    label: 'Parse Duration',
    description:
      "Parse a human-readable duration string (e.g., '2 days', '1h', '5m') to milliseconds",
    parameters: Type.Object({
      duration: Type.String({ description: "Duration string like '2 days', '1h', '5m'" })
    }),
    execute: async (_toolCallId, params) => {
      const result = ms(params.duration as ms.StringValue);
      if (result === undefined) {
        return {
          content: [{ type: 'text', text: `Invalid duration: "${params.duration}"` }],
          isError: true,
          details: {}
        };
      }
      return {
        content: [{ type: 'text', text: `${params.duration} = ${result} milliseconds` }],
        details: {}
      };
    }
  });
}
