@riotprompt/riotprompt 0.0.17 → 0.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -156,7 +156,7 @@ const analysisPrompt = await cook({
156
156
 
157
157
  ## Documentation
158
158
 
159
- Full documentation is available at [https://tobrien.github.io/riotprompt/](https://tobrien.github.io/riotprompt/).
159
+ Full documentation is available at [https://kjerneverk.github.io/riotprompt/](https://kjerneverk.github.io/riotprompt/).
160
160
 
161
161
  You can also explore the guides in the source:
162
162
  - [Core Concepts](docs/public/core-concepts.md)
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sources":["../../src/execution/anthropic.ts"],"sourcesContent":["import Anthropic from '@anthropic-ai/sdk';\nimport { Provider, ProviderResponse, ExecutionOptions } from './provider';\nimport { Request } from '../chat';\n\nexport class AnthropicProvider implements Provider {\n async execute(request: Request, options: ExecutionOptions = {}): Promise<ProviderResponse> {\n const apiKey = options.apiKey || process.env.ANTHROPIC_API_KEY;\n if (!apiKey) throw new Error('Anthropic API key is required');\n\n const client = new Anthropic({ apiKey });\n \n const model = options.model || request.model || 'claude-3-opus-20240229';\n\n // Anthropic separates system prompt from messages\n let systemPrompt = '';\n const messages: Anthropic.MessageParam[] = [];\n\n for (const msg of request.messages) {\n if (msg.role === 'system' || msg.role === 'developer') {\n systemPrompt += (typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content)) + '\\n\\n';\n } else {\n messages.push({\n role: msg.role as 'user' | 'assistant',\n content: typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content)\n });\n }\n }\n\n const response = await client.messages.create({\n model: model,\n system: systemPrompt.trim() || undefined,\n messages: messages,\n max_tokens: options.maxTokens || 4096,\n temperature: options.temperature,\n ...(request.responseFormat?.type === 'json_schema' ? {\n tools: [{\n name: request.responseFormat.json_schema.name,\n description: request.responseFormat.json_schema.description || \"Output data in this structured format\",\n input_schema: request.responseFormat.json_schema.schema\n }],\n tool_choice: { type: 'tool', name: request.responseFormat.json_schema.name }\n } : {})\n });\n\n // Handle ContentBlock\n // Check for tool_use first if we requested structured output\n let text = '';\n \n if (request.responseFormat?.type === 'json_schema') {\n const toolUseBlock = response.content.find(block => block.type === 'tool_use');\n if (toolUseBlock && toolUseBlock.type === 'tool_use') {\n // Return the structured data as a JSON string to match OpenAI behavior\n text = JSON.stringify(toolUseBlock.input, null, 2);\n }\n } else {\n const contentBlock = response.content[0];\n text = contentBlock.type === 'text' ? contentBlock.text : '';\n }\n\n return {\n content: text,\n model: response.model,\n usage: {\n inputTokens: response.usage.input_tokens,\n outputTokens: response.usage.output_tokens\n }\n };\n }\n}\n\n"],"names":["AnthropicProvider","execute","request","options","apiKey","process","env","ANTHROPIC_API_KEY","Error","client","Anthropic","model","systemPrompt","messages","msg","role","content","JSON","stringify","push","response","create","system","trim","undefined","max_tokens","maxTokens","temperature","responseFormat","type","tools","name","json_schema","description","input_schema","schema","tool_choice","text","toolUseBlock","find","block","input","contentBlock","usage","inputTokens","input_tokens","outputTokens","output_tokens"],"mappings":"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"}
1
+ {"version":3,"file":"anthropic.js","sources":["../../src/execution/anthropic.ts"],"sourcesContent":["import Anthropic from '@anthropic-ai/sdk';\nimport { Provider, ProviderResponse, ExecutionOptions } from './provider';\nimport { Request } from '../chat';\n\nexport class AnthropicProvider implements Provider {\n async execute(request: Request, options: ExecutionOptions = {}): Promise<ProviderResponse> {\n const apiKey = options.apiKey || process.env.ANTHROPIC_API_KEY;\n if (!apiKey) throw new Error('Anthropic API key is required');\n\n const client = new Anthropic({ apiKey });\n \n const model = options.model || request.model || 'claude-3-opus-20240229';\n\n // Anthropic separates system prompt from messages\n let systemPrompt = '';\n const messages: Anthropic.MessageParam[] = [];\n\n for (const msg of request.messages) {\n if (msg.role === 'system' || msg.role === 'developer') {\n systemPrompt += (typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content)) + '\\n\\n';\n } else {\n messages.push({\n role: msg.role as 'user' | 'assistant',\n content: typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content)\n });\n }\n }\n\n const response = await client.messages.create({\n model: model,\n system: systemPrompt.trim() || undefined,\n messages: messages,\n max_tokens: options.maxTokens || 4096,\n temperature: options.temperature,\n ...(request.responseFormat?.type === 'json_schema' ? {\n tools: [{\n name: request.responseFormat.json_schema.name,\n description: request.responseFormat.json_schema.description || \"Output data in this structured format\",\n input_schema: request.responseFormat.json_schema.schema\n }],\n tool_choice: { type: 'tool', name: request.responseFormat.json_schema.name }\n } : {})\n });\n\n // Handle ContentBlock\n // Check for tool_use first if we requested structured output\n let text = '';\n \n if (request.responseFormat?.type === 'json_schema') {\n const toolUseBlock = response.content.find((block: Anthropic.ContentBlock) => block.type === 'tool_use');\n if (toolUseBlock && toolUseBlock.type === 'tool_use') {\n // Return the structured data as a JSON string to match OpenAI behavior\n text = JSON.stringify(toolUseBlock.input, null, 2);\n }\n } else {\n const contentBlock = response.content[0];\n text = contentBlock.type === 'text' ? contentBlock.text : '';\n }\n\n return {\n content: text,\n model: response.model,\n usage: {\n inputTokens: response.usage.input_tokens,\n outputTokens: response.usage.output_tokens\n }\n };\n }\n}\n\n"],"names":["AnthropicProvider","execute","request","options","apiKey","process","env","ANTHROPIC_API_KEY","Error","client","Anthropic","model","systemPrompt","messages","msg","role","content","JSON","stringify","push","response","create","system","trim","undefined","max_tokens","maxTokens","temperature","responseFormat","type","tools","name","json_schema","description","input_schema","schema","tool_choice","text","toolUseBlock","find","block","input","contentBlock","usage","inputTokens","input_tokens","outputTokens","output_tokens"],"mappings":"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"}