Skip to main content

Example Tools

Complete reference implementations demonstrating CTP patterns.

Available Examples

Pattern Summary

ExamplePatternKey Concept
JSON FormatterSync toolMultiple parameters, validation
Base64 EncoderBidirectionalMode selection, conditional params
Hash GeneratorAsync toolWeb Crypto, warnings in metadata

Quick Reference

Sync Tool (JSON Formatter)

export const jsonFormatterFn: ToolFunction<Result> = (params) => {
  // Synchronous processing
  const formatted = JSON.stringify(parsed, null, indent);
  return { success: true, data: { formatted } };
};

Async Tool (Hash Generator)

export const hashGeneratorFn: ToolFunction<Result> = async (params) => {
  // Asynchronous - uses Web Crypto
  const hash = await crypto.subtle.digest('SHA-256', data);
  return { success: true, data: { hash } };
};

Bidirectional Tool (Base64)

export const base64Fn: ToolFunction<Result> = (params) => {
  const mode = params.mode as 'encode' | 'decode';
  const output = mode === 'encode' ? encode(input) : decode(input);
  return { success: true, data: { output, mode } };
};

Running Examples

Clone Repository

git clone https://github.com/titan-alpha/convenience-pro
cd convenience-pro/packages/ctp-examples
npm install

Run Tests

npm test

Try Interactively

npm run dev
# Opens interactive tool runner

Creating Your Own

Use examples as templates:
// Copy a similar example
cp src/tools/json-formatter.ts src/tools/my-tool.ts

// Modify definition and function
// Register in src/registry.ts
// Add tests in src/__tests__/