@keystrokehq/openrouter 0.1.4 → 0.1.6

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.
Files changed (117) hide show
  1. package/dist/action.cjs.map +1 -1
  2. package/dist/action.mjs.map +1 -1
  3. package/dist/actions/create-chat-completion.cjs +1 -0
  4. package/dist/actions/create-chat-completion.cjs.map +1 -1
  5. package/dist/actions/create-chat-completion.d.cts +3 -25
  6. package/dist/actions/create-chat-completion.d.cts.map +1 -1
  7. package/dist/actions/create-chat-completion.d.mts +3 -25
  8. package/dist/actions/create-chat-completion.d.mts.map +1 -1
  9. package/dist/actions/create-chat-completion.mjs +1 -0
  10. package/dist/actions/create-chat-completion.mjs.map +1 -1
  11. package/dist/actions/create-coinbase-charge.cjs +1 -0
  12. package/dist/actions/create-coinbase-charge.cjs.map +1 -1
  13. package/dist/actions/create-coinbase-charge.d.cts +3 -7
  14. package/dist/actions/create-coinbase-charge.d.cts.map +1 -1
  15. package/dist/actions/create-coinbase-charge.d.mts +3 -7
  16. package/dist/actions/create-coinbase-charge.d.mts.map +1 -1
  17. package/dist/actions/create-coinbase-charge.mjs +1 -0
  18. package/dist/actions/create-coinbase-charge.mjs.map +1 -1
  19. package/dist/actions/create-message.cjs +1 -0
  20. package/dist/actions/create-message.cjs.map +1 -1
  21. package/dist/actions/create-message.d.cts +3 -60
  22. package/dist/actions/create-message.d.cts.map +1 -1
  23. package/dist/actions/create-message.d.mts +3 -60
  24. package/dist/actions/create-message.d.mts.map +1 -1
  25. package/dist/actions/create-message.mjs +1 -0
  26. package/dist/actions/create-message.mjs.map +1 -1
  27. package/dist/actions/get-credits.cjs +1 -0
  28. package/dist/actions/get-credits.cjs.map +1 -1
  29. package/dist/actions/get-credits.d.cts +3 -1
  30. package/dist/actions/get-credits.d.cts.map +1 -1
  31. package/dist/actions/get-credits.d.mts +3 -1
  32. package/dist/actions/get-credits.d.mts.map +1 -1
  33. package/dist/actions/get-credits.mjs +1 -0
  34. package/dist/actions/get-credits.mjs.map +1 -1
  35. package/dist/actions/get-current-key.cjs +1 -0
  36. package/dist/actions/get-current-key.cjs.map +1 -1
  37. package/dist/actions/get-current-key.d.cts +3 -4
  38. package/dist/actions/get-current-key.d.cts.map +1 -1
  39. package/dist/actions/get-current-key.d.mts +3 -4
  40. package/dist/actions/get-current-key.d.mts.map +1 -1
  41. package/dist/actions/get-current-key.mjs +1 -0
  42. package/dist/actions/get-current-key.mjs.map +1 -1
  43. package/dist/actions/get-generation.cjs +1 -0
  44. package/dist/actions/get-generation.cjs.map +1 -1
  45. package/dist/actions/get-generation.d.cts +3 -3
  46. package/dist/actions/get-generation.d.cts.map +1 -1
  47. package/dist/actions/get-generation.d.mts +3 -3
  48. package/dist/actions/get-generation.d.mts.map +1 -1
  49. package/dist/actions/get-generation.mjs +1 -0
  50. package/dist/actions/get-generation.mjs.map +1 -1
  51. package/dist/actions/get-models-count.cjs +1 -0
  52. package/dist/actions/get-models-count.cjs.map +1 -1
  53. package/dist/actions/get-models-count.d.cts +3 -4
  54. package/dist/actions/get-models-count.d.cts.map +1 -1
  55. package/dist/actions/get-models-count.d.mts +3 -4
  56. package/dist/actions/get-models-count.d.mts.map +1 -1
  57. package/dist/actions/get-models-count.mjs +1 -0
  58. package/dist/actions/get-models-count.mjs.map +1 -1
  59. package/dist/actions/list-available-models.cjs +1 -0
  60. package/dist/actions/list-available-models.cjs.map +1 -1
  61. package/dist/actions/list-available-models.d.cts +3 -5
  62. package/dist/actions/list-available-models.d.cts.map +1 -1
  63. package/dist/actions/list-available-models.d.mts +3 -5
  64. package/dist/actions/list-available-models.d.mts.map +1 -1
  65. package/dist/actions/list-available-models.mjs +1 -0
  66. package/dist/actions/list-available-models.mjs.map +1 -1
  67. package/dist/actions/list-embedding-models.cjs +1 -0
  68. package/dist/actions/list-embedding-models.cjs.map +1 -1
  69. package/dist/actions/list-embedding-models.d.cts +3 -4
  70. package/dist/actions/list-embedding-models.d.cts.map +1 -1
  71. package/dist/actions/list-embedding-models.d.mts +3 -4
  72. package/dist/actions/list-embedding-models.d.mts.map +1 -1
  73. package/dist/actions/list-embedding-models.mjs +1 -0
  74. package/dist/actions/list-embedding-models.mjs.map +1 -1
  75. package/dist/actions/list-model-endpoints.cjs +1 -0
  76. package/dist/actions/list-model-endpoints.cjs.map +1 -1
  77. package/dist/actions/list-model-endpoints.d.cts +3 -4
  78. package/dist/actions/list-model-endpoints.d.cts.map +1 -1
  79. package/dist/actions/list-model-endpoints.d.mts +3 -4
  80. package/dist/actions/list-model-endpoints.d.mts.map +1 -1
  81. package/dist/actions/list-model-endpoints.mjs +1 -0
  82. package/dist/actions/list-model-endpoints.mjs.map +1 -1
  83. package/dist/actions/list-providers.cjs +1 -0
  84. package/dist/actions/list-providers.cjs.map +1 -1
  85. package/dist/actions/list-providers.d.cts +3 -1
  86. package/dist/actions/list-providers.d.cts.map +1 -1
  87. package/dist/actions/list-providers.d.mts +3 -1
  88. package/dist/actions/list-providers.d.mts.map +1 -1
  89. package/dist/actions/list-providers.mjs +1 -0
  90. package/dist/actions/list-providers.mjs.map +1 -1
  91. package/dist/actions/list-user-models.cjs +1 -0
  92. package/dist/actions/list-user-models.cjs.map +1 -1
  93. package/dist/actions/list-user-models.d.cts +3 -4
  94. package/dist/actions/list-user-models.d.cts.map +1 -1
  95. package/dist/actions/list-user-models.d.mts +3 -4
  96. package/dist/actions/list-user-models.d.mts.map +1 -1
  97. package/dist/actions/list-user-models.mjs +1 -0
  98. package/dist/actions/list-user-models.mjs.map +1 -1
  99. package/dist/actions/list-zdr-endpoints.cjs +1 -0
  100. package/dist/actions/list-zdr-endpoints.cjs.map +1 -1
  101. package/dist/actions/list-zdr-endpoints.d.cts +3 -4
  102. package/dist/actions/list-zdr-endpoints.d.cts.map +1 -1
  103. package/dist/actions/list-zdr-endpoints.d.mts +3 -4
  104. package/dist/actions/list-zdr-endpoints.d.mts.map +1 -1
  105. package/dist/actions/list-zdr-endpoints.mjs +1 -0
  106. package/dist/actions/list-zdr-endpoints.mjs.map +1 -1
  107. package/dist/app.cjs +5 -2
  108. package/dist/app.cjs.map +1 -1
  109. package/dist/app.d.cts +7 -1
  110. package/dist/app.d.cts.map +1 -1
  111. package/dist/app.d.mts +7 -1
  112. package/dist/app.d.mts.map +1 -1
  113. package/dist/app.mjs +3 -2
  114. package/dist/app.mjs.map +1 -1
  115. package/dist/index.d.cts +1 -1
  116. package/dist/index.d.mts +1 -1
  117. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"create-message.mjs","names":[],"sources":["../../src/actions/create-message.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const OpenrouterCreateMessageInput = z.object({\n user: z.string().describe(\"Unique identifier for the end-user (max 128 characters).\").optional(),\n model: z.string().describe(\"Model identifier to use for generation. Example: 'anthropic/claude-4.5-sonnet-20250929'.\"),\n tools: z.array(z.object({\n name: z.string().describe(\"Name of the tool.\"),\n type: z.string().describe(\"Type of tool (default: 'function').\").optional(),\n description: z.string().describe(\"Description of the tool.\").optional(),\n input_schema: z.record(z.string(), z.unknown()).describe(\"JSON schema describing the tool's input parameters.\").optional(),\n}).passthrough().describe(\"Tool definition for function calling.\")).describe(\"List of tools available for the model to call.\").optional(),\n top_k: z.number().int().describe(\"Top-k sampling parameter.\").optional(),\n top_p: z.number().describe(\"Nucleus sampling probability between 0 and 1.\").optional(),\n models: z.array(z.string()).describe(\"List of fallback models to use if primary model fails.\").optional(),\n stream: z.boolean().describe(\"Whether to stream the response. Default false.\").optional(),\n system: z.union([z.string(), z.array(z.record(z.string(), z.unknown()))]).optional(),\n plugins: z.array(z.object({\n id: z.string().describe(\"Plugin identifier.\"),\n enabled: z.boolean().describe(\"Whether the plugin is enabled.\").optional(),\n}).passthrough().describe(\"Plugin configuration.\")).describe(\"Plugins to enable for this request.\").optional(),\n x_title: z.string().describe(\"App display name for OpenRouter dashboard.\").optional(),\n messages: z.array(z.object({\n role: z.enum([\"user\", \"assistant\"]).describe(\"Role of the message sender.\"),\n content: z.union([z.string(), z.array(z.object({\n text: z.string().nullable().optional(),\n type: z.string().describe(\"Type of content block (e.g., 'text', 'image').\"),\n source: z.record(z.string(), z.unknown()).nullable().optional(),\n}).passthrough().describe(\"Content block in a message.\"))]),\n}).passthrough().describe(\"Message in the conversation.\")).describe(\"List of conversation messages. Each message has a role ('user' or 'assistant') and content.\"),\n metadata: z.object({\n user_id: z.string().describe(\"Unique identifier for the user making the request.\").optional(),\n}).describe(\"Metadata for the request.\").optional(),\n provider: z.object({\n zdr: z.boolean().describe(\"Whether to restrict routing to only ZDR (Zero Data Retention) endpoints.\").optional(),\n allow_fallbacks: z.boolean().describe(\"Whether to allow backup providers when primary is unavailable. Default true.\").optional(),\n data_collection: z.enum([\"allow\", \"deny\"]).describe(\"Data collection preference for provider routing.\").optional(),\n require_parameters: z.boolean().describe(\"Whether to filter providers to only those that support all provided parameters.\").optional(),\n enforce_distillable_text: z.boolean().describe(\"Whether to restrict routing to only models that allow text distillation.\").optional(),\n}).describe(\"Provider routing preferences.\").optional(),\n thinking: z.object({\n type: z.string().describe(\"Type of thinking configuration.\"),\n budget_tokens: z.number().int().describe(\"Budget for thinking tokens.\").optional(),\n}).describe(\"Configuration for extended thinking.\").optional(),\n max_tokens: z.number().int().describe(\"Maximum number of tokens to generate in the response.\"),\n session_id: z.string().describe(\"Unique identifier for grouping related requests (max 128 characters).\").optional(),\n temperature: z.number().describe(\"Sampling temperature between 0 and 2.\").optional(),\n tool_choice: z.object({\n name: z.string().describe(\"Name of specific tool to use (when type is 'tool').\").optional(),\n type: z.string().describe(\"Type of tool choice: 'auto', 'any', 'tool', etc.\"),\n disable_parallel_tool_use: z.boolean().describe(\"Whether to disable parallel tool use.\").optional(),\n}).describe(\"Tool choice configuration.\").optional(),\n http_referer: z.string().describe(\"App URL identifier used for tracking API usage per application.\").optional(),\n service_tier: z.enum([\"auto\", \"standard_only\"]).describe(\"Service tier for the request.\").optional(),\n output_config: z.object({\n effort: z.enum([\"low\", \"medium\", \"high\", \"max\"]).describe(\"Effort level for output generation.\").optional(),\n}).describe(\"Configuration for controlling output behavior.\").optional(),\n stop_sequences: z.array(z.string()).describe(\"Sequences where generation should stop.\").optional(),\n}).describe(\"Request to create a message using Anthropic Messages API format.\");\nconst OpenrouterCreateMessage_ResponseUsageSchema = z.object({\n input_tokens: z.number().int().describe(\"Number of input tokens.\").nullable(),\n output_tokens: z.number().int().describe(\"Number of output tokens.\").nullable(),\n cache_read_input_tokens: z.number().int().describe(\"Number of tokens read from cache.\").nullable().optional(),\n cache_creation_input_tokens: z.number().int().describe(\"Number of tokens used for cache creation.\").nullable().optional(),\n}).passthrough().describe(\"Token usage information.\");\nconst OpenrouterCreateMessage_ContentBlockSchema = z.object({\n text: z.string().describe(\"Text content if applicable.\").nullable().optional(),\n type: z.string().describe(\"Type of content block.\").nullable(),\n}).passthrough().describe(\"Content block in the response.\");\nexport const OpenrouterCreateMessageOutput = z.object({\n id: z.string().describe(\"Unique identifier for this message.\").nullable(),\n role: z.string().describe(\"Role of the response, typically 'assistant'.\").nullable(),\n type: z.string().describe(\"Object type, typically 'message'.\").nullable(),\n model: z.string().describe(\"Model that generated the response.\").nullable(),\n usage: OpenrouterCreateMessage_ResponseUsageSchema.nullable(),\n content: z.array(OpenrouterCreateMessage_ContentBlockSchema).describe(\"List of content blocks in the response.\"),\n stop_reason: z.string().describe(\"Reason why generation stopped.\").nullable().optional(),\n stop_sequence: z.string().describe(\"Stop sequence that triggered generation to stop.\").nullable().optional(),\n}).passthrough().describe(\"Response from creating a message.\");\n\nexport const openrouterCreateMessage = action(\"OPENROUTER_CREATE_MESSAGE\", {\n slug: \"openrouter-create-message\",\n name: \"Create Message (Anthropic Format)\",\n description: \"Tool to create a message using Anthropic Messages API format via OpenRouter. Use when you need Claude-compatible chat completion with support for text, images, PDFs, tools, and extended thinking.\",\n input: OpenrouterCreateMessageInput,\n output: OpenrouterCreateMessageOutput,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"create-message.mjs","names":[],"sources":["../../src/actions/create-message.ts"],"sourcesContent":["import type { AppAction } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nimport { action } from \"../action\";\nimport { openrouter } from \"../app\";\n\nexport const OpenrouterCreateMessageInput = z.object({\n user: z.string().describe(\"Unique identifier for the end-user (max 128 characters).\").optional(),\n model: z.string().describe(\"Model identifier to use for generation. Example: 'anthropic/claude-4.5-sonnet-20250929'.\"),\n tools: z.array(z.object({\n name: z.string().describe(\"Name of the tool.\"),\n type: z.string().describe(\"Type of tool (default: 'function').\").optional(),\n description: z.string().describe(\"Description of the tool.\").optional(),\n input_schema: z.record(z.string(), z.unknown()).describe(\"JSON schema describing the tool's input parameters.\").optional(),\n}).passthrough().describe(\"Tool definition for function calling.\")).describe(\"List of tools available for the model to call.\").optional(),\n top_k: z.number().int().describe(\"Top-k sampling parameter.\").optional(),\n top_p: z.number().describe(\"Nucleus sampling probability between 0 and 1.\").optional(),\n models: z.array(z.string()).describe(\"List of fallback models to use if primary model fails.\").optional(),\n stream: z.boolean().describe(\"Whether to stream the response. Default false.\").optional(),\n system: z.union([z.string(), z.array(z.record(z.string(), z.unknown()))]).optional(),\n plugins: z.array(z.object({\n id: z.string().describe(\"Plugin identifier.\"),\n enabled: z.boolean().describe(\"Whether the plugin is enabled.\").optional(),\n}).passthrough().describe(\"Plugin configuration.\")).describe(\"Plugins to enable for this request.\").optional(),\n x_title: z.string().describe(\"App display name for OpenRouter dashboard.\").optional(),\n messages: z.array(z.object({\n role: z.enum([\"user\", \"assistant\"]).describe(\"Role of the message sender.\"),\n content: z.union([z.string(), z.array(z.object({\n text: z.string().nullable().optional(),\n type: z.string().describe(\"Type of content block (e.g., 'text', 'image').\"),\n source: z.record(z.string(), z.unknown()).nullable().optional(),\n}).passthrough().describe(\"Content block in a message.\"))]),\n}).passthrough().describe(\"Message in the conversation.\")).describe(\"List of conversation messages. Each message has a role ('user' or 'assistant') and content.\"),\n metadata: z.object({\n user_id: z.string().describe(\"Unique identifier for the user making the request.\").optional(),\n}).describe(\"Metadata for the request.\").optional(),\n provider: z.object({\n zdr: z.boolean().describe(\"Whether to restrict routing to only ZDR (Zero Data Retention) endpoints.\").optional(),\n allow_fallbacks: z.boolean().describe(\"Whether to allow backup providers when primary is unavailable. Default true.\").optional(),\n data_collection: z.enum([\"allow\", \"deny\"]).describe(\"Data collection preference for provider routing.\").optional(),\n require_parameters: z.boolean().describe(\"Whether to filter providers to only those that support all provided parameters.\").optional(),\n enforce_distillable_text: z.boolean().describe(\"Whether to restrict routing to only models that allow text distillation.\").optional(),\n}).describe(\"Provider routing preferences.\").optional(),\n thinking: z.object({\n type: z.string().describe(\"Type of thinking configuration.\"),\n budget_tokens: z.number().int().describe(\"Budget for thinking tokens.\").optional(),\n}).describe(\"Configuration for extended thinking.\").optional(),\n max_tokens: z.number().int().describe(\"Maximum number of tokens to generate in the response.\"),\n session_id: z.string().describe(\"Unique identifier for grouping related requests (max 128 characters).\").optional(),\n temperature: z.number().describe(\"Sampling temperature between 0 and 2.\").optional(),\n tool_choice: z.object({\n name: z.string().describe(\"Name of specific tool to use (when type is 'tool').\").optional(),\n type: z.string().describe(\"Type of tool choice: 'auto', 'any', 'tool', etc.\"),\n disable_parallel_tool_use: z.boolean().describe(\"Whether to disable parallel tool use.\").optional(),\n}).describe(\"Tool choice configuration.\").optional(),\n http_referer: z.string().describe(\"App URL identifier used for tracking API usage per application.\").optional(),\n service_tier: z.enum([\"auto\", \"standard_only\"]).describe(\"Service tier for the request.\").optional(),\n output_config: z.object({\n effort: z.enum([\"low\", \"medium\", \"high\", \"max\"]).describe(\"Effort level for output generation.\").optional(),\n}).describe(\"Configuration for controlling output behavior.\").optional(),\n stop_sequences: z.array(z.string()).describe(\"Sequences where generation should stop.\").optional(),\n}).describe(\"Request to create a message using Anthropic Messages API format.\");\nconst OpenrouterCreateMessage_ResponseUsageSchema = z.object({\n input_tokens: z.number().int().describe(\"Number of input tokens.\").nullable(),\n output_tokens: z.number().int().describe(\"Number of output tokens.\").nullable(),\n cache_read_input_tokens: z.number().int().describe(\"Number of tokens read from cache.\").nullable().optional(),\n cache_creation_input_tokens: z.number().int().describe(\"Number of tokens used for cache creation.\").nullable().optional(),\n}).passthrough().describe(\"Token usage information.\");\nconst OpenrouterCreateMessage_ContentBlockSchema = z.object({\n text: z.string().describe(\"Text content if applicable.\").nullable().optional(),\n type: z.string().describe(\"Type of content block.\").nullable(),\n}).passthrough().describe(\"Content block in the response.\");\nexport const OpenrouterCreateMessageOutput = z.object({\n id: z.string().describe(\"Unique identifier for this message.\").nullable(),\n role: z.string().describe(\"Role of the response, typically 'assistant'.\").nullable(),\n type: z.string().describe(\"Object type, typically 'message'.\").nullable(),\n model: z.string().describe(\"Model that generated the response.\").nullable(),\n usage: OpenrouterCreateMessage_ResponseUsageSchema.nullable(),\n content: z.array(OpenrouterCreateMessage_ContentBlockSchema).describe(\"List of content blocks in the response.\"),\n stop_reason: z.string().describe(\"Reason why generation stopped.\").nullable().optional(),\n stop_sequence: z.string().describe(\"Stop sequence that triggered generation to stop.\").nullable().optional(),\n}).passthrough().describe(\"Response from creating a message.\");\n\nexport const openrouterCreateMessage: AppAction<\n typeof OpenrouterCreateMessageInput,\n typeof OpenrouterCreateMessageOutput,\n typeof openrouter.credential\n> = action(\"OPENROUTER_CREATE_MESSAGE\", {\n slug: \"openrouter-create-message\",\n name: \"Create Message (Anthropic Format)\",\n description: \"Tool to create a message using Anthropic Messages API format via OpenRouter. Use when you need Claude-compatible chat completion with support for text, images, PDFs, tools, and extended thinking.\",\n input: OpenrouterCreateMessageInput,\n output: OpenrouterCreateMessageOutput,\n});\n"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ require("../app.cjs");
1
2
  const require_action = require("../action.cjs");
2
3
  let zod = require("zod");
3
4
  //#region src/actions/get-credits.ts
@@ -1 +1 @@
1
- {"version":3,"file":"get-credits.cjs","names":["z","action"],"sources":["../../src/actions/get-credits.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const OpenrouterGetCreditsInput = z.object({}).describe(\"No parameters for retrieving credit balance.\");\nconst OpenrouterGetCredits_CreditsDataSchema = z.object({\n total_usage: z.number().describe(\"Total credits used by the authenticated user\").nullable(),\n total_credits: z.number().describe(\"Total credits purchased by the authenticated user\").nullable(),\n}).passthrough();\nexport const OpenrouterGetCreditsOutput = z.object({\n data: OpenrouterGetCredits_CreditsDataSchema.nullable(),\n}).passthrough();\n\nexport const openrouterGetCredits = action(\"OPENROUTER_GET_CREDITS\", {\n slug: \"openrouter-get-credits\",\n name: \"Get Credits\",\n description: \"Tool to get the current API credit balance for the authenticated user. Use before large or batch jobs to verify sufficient balance. A successful response may return total_credits=0, which confirms authentication but will cause all paid model generations to fail. Avoid polling this endpoint; call only as needed.\",\n input: OpenrouterGetCreditsInput,\n output: OpenrouterGetCreditsOutput,\n});\n"],"mappings":";;;AAIA,MAAa,4BAA4BA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,8CAA8C;AAC7G,MAAM,yCAAyCA,IAAAA,EAAE,OAAO;CACtD,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;CAC1F,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,mDAAmD,CAAC,CAAC,SAAS;AACnG,CAAC,CAAC,CAAC,YAAY;AACf,MAAa,6BAA6BA,IAAAA,EAAE,OAAO,EACjD,MAAM,uCAAuC,SAAS,EACxD,CAAC,CAAC,CAAC,YAAY;AAEf,MAAa,uBAAuBC,eAAAA,OAAO,0BAA0B;CACnE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
1
+ {"version":3,"file":"get-credits.cjs","names":["z","action"],"sources":["../../src/actions/get-credits.ts"],"sourcesContent":["import type { AppAction } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nimport { action } from \"../action\";\nimport { openrouter } from \"../app\";\n\nexport const OpenrouterGetCreditsInput = z.object({}).describe(\"No parameters for retrieving credit balance.\");\nconst OpenrouterGetCredits_CreditsDataSchema = z.object({\n total_usage: z.number().describe(\"Total credits used by the authenticated user\").nullable(),\n total_credits: z.number().describe(\"Total credits purchased by the authenticated user\").nullable(),\n}).passthrough();\nexport const OpenrouterGetCreditsOutput = z.object({\n data: OpenrouterGetCredits_CreditsDataSchema.nullable(),\n}).passthrough();\n\nexport const openrouterGetCredits: AppAction<\n typeof OpenrouterGetCreditsInput,\n typeof OpenrouterGetCreditsOutput,\n typeof openrouter.credential\n> = action(\"OPENROUTER_GET_CREDITS\", {\n slug: \"openrouter-get-credits\",\n name: \"Get Credits\",\n description: \"Tool to get the current API credit balance for the authenticated user. Use before large or batch jobs to verify sufficient balance. A successful response may return total_credits=0, which confirms authentication but will cause all paid model generations to fail. Avoid polling this endpoint; call only as needed.\",\n input: OpenrouterGetCreditsInput,\n output: OpenrouterGetCreditsOutput,\n});\n"],"mappings":";;;;AAMA,MAAa,4BAA4BA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,8CAA8C;AAC7G,MAAM,yCAAyCA,IAAAA,EAAE,OAAO;CACtD,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;CAC1F,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,mDAAmD,CAAC,CAAC,SAAS;AACnG,CAAC,CAAC,CAAC,YAAY;AACf,MAAa,6BAA6BA,IAAAA,EAAE,OAAO,EACjD,MAAM,uCAAuC,SAAS,EACxD,CAAC,CAAC,CAAC,YAAY;AAEf,MAAa,uBAITC,eAAAA,OAAO,0BAA0B;CACnC,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
@@ -1,3 +1,5 @@
1
+ import { openrouter } from "../app.cjs";
2
+ import { AppAction } from "@keystrokehq/keystroke/app";
1
3
  import { z } from "zod";
2
4
 
3
5
  //#region src/actions/get-credits.d.ts
@@ -8,7 +10,7 @@ declare const OpenrouterGetCreditsOutput: z.ZodObject<{
8
10
  total_credits: z.ZodNullable<z.ZodNumber>;
9
11
  }, z.core.$loose>>;
10
12
  }, z.core.$loose>;
11
- declare const openrouterGetCredits: import("@keystrokehq/action").WorkflowActionDefinition<Record<string, never>, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
13
+ declare const openrouterGetCredits: AppAction<typeof OpenrouterGetCreditsInput, typeof OpenrouterGetCreditsOutput, typeof openrouter.credential>;
12
14
  //#endregion
13
15
  export { openrouterGetCredits };
14
16
  //# sourceMappingURL=get-credits.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-credits.d.cts","names":[],"sources":["../../src/actions/get-credits.ts"],"mappings":";;;cAIa,yBAAA,EAAyB,CAAA,CAAA,SAAA,KAAA,CAAA,CAAA,IAAA,CAAA,MAAA;AAAA,cAKzB,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;;;cAI1B,oBAAA,gCAAoB,wBAAA,CAAA,MAAA,wDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
1
+ {"version":3,"file":"get-credits.d.cts","names":[],"sources":["../../src/actions/get-credits.ts"],"mappings":";;;;;cAMa,yBAAA,EAAyB,CAAA,CAAA,SAAA,KAAA,CAAA,CAAA,IAAA,CAAA,MAAA;AAAA,cAKzB,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;;;cAI1B,oBAAA,EAAsB,SAAA,QAC1B,yBAAA,SACA,0BAAA,SACA,UAAA,CAAW,UAAA"}
@@ -1,3 +1,5 @@
1
+ import { openrouter } from "../app.mjs";
2
+ import { AppAction } from "@keystrokehq/keystroke/app";
1
3
  import { z } from "zod";
2
4
 
3
5
  //#region src/actions/get-credits.d.ts
@@ -8,7 +10,7 @@ declare const OpenrouterGetCreditsOutput: z.ZodObject<{
8
10
  total_credits: z.ZodNullable<z.ZodNumber>;
9
11
  }, z.core.$loose>>;
10
12
  }, z.core.$loose>;
11
- declare const openrouterGetCredits: import("@keystrokehq/action").WorkflowActionDefinition<Record<string, never>, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
13
+ declare const openrouterGetCredits: AppAction<typeof OpenrouterGetCreditsInput, typeof OpenrouterGetCreditsOutput, typeof openrouter.credential>;
12
14
  //#endregion
13
15
  export { openrouterGetCredits };
14
16
  //# sourceMappingURL=get-credits.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-credits.d.mts","names":[],"sources":["../../src/actions/get-credits.ts"],"mappings":";;;cAIa,yBAAA,EAAyB,CAAA,CAAA,SAAA,KAAA,CAAA,CAAA,IAAA,CAAA,MAAA;AAAA,cAKzB,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;;;cAI1B,oBAAA,gCAAoB,wBAAA,CAAA,MAAA,wDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
1
+ {"version":3,"file":"get-credits.d.mts","names":[],"sources":["../../src/actions/get-credits.ts"],"mappings":";;;;;cAMa,yBAAA,EAAyB,CAAA,CAAA,SAAA,KAAA,CAAA,CAAA,IAAA,CAAA,MAAA;AAAA,cAKzB,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;;;cAI1B,oBAAA,EAAsB,SAAA,QAC1B,yBAAA,SACA,0BAAA,SACA,UAAA,CAAW,UAAA"}
@@ -1,3 +1,4 @@
1
+ import "../app.mjs";
1
2
  import { action } from "../action.mjs";
2
3
  import { z } from "zod";
3
4
  //#region src/actions/get-credits.ts
@@ -1 +1 @@
1
- {"version":3,"file":"get-credits.mjs","names":[],"sources":["../../src/actions/get-credits.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const OpenrouterGetCreditsInput = z.object({}).describe(\"No parameters for retrieving credit balance.\");\nconst OpenrouterGetCredits_CreditsDataSchema = z.object({\n total_usage: z.number().describe(\"Total credits used by the authenticated user\").nullable(),\n total_credits: z.number().describe(\"Total credits purchased by the authenticated user\").nullable(),\n}).passthrough();\nexport const OpenrouterGetCreditsOutput = z.object({\n data: OpenrouterGetCredits_CreditsDataSchema.nullable(),\n}).passthrough();\n\nexport const openrouterGetCredits = action(\"OPENROUTER_GET_CREDITS\", {\n slug: \"openrouter-get-credits\",\n name: \"Get Credits\",\n description: \"Tool to get the current API credit balance for the authenticated user. Use before large or batch jobs to verify sufficient balance. A successful response may return total_credits=0, which confirms authentication but will cause all paid model generations to fail. Avoid polling this endpoint; call only as needed.\",\n input: OpenrouterGetCreditsInput,\n output: OpenrouterGetCreditsOutput,\n});\n"],"mappings":";;;AAIA,MAAa,4BAA4B,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,8CAA8C;AAC7G,MAAM,yCAAyC,EAAE,OAAO;CACtD,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;CAC1F,eAAe,EAAE,OAAO,CAAC,CAAC,SAAS,mDAAmD,CAAC,CAAC,SAAS;AACnG,CAAC,CAAC,CAAC,YAAY;AAKf,MAAa,uBAAuB,OAAO,0BAA0B;CACnE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QATwC,EAAE,OAAO,EACjD,MAAM,uCAAuC,SAAS,EACxD,CAAC,CAAC,CAAC,YAOO;AACV,CAAC"}
1
+ {"version":3,"file":"get-credits.mjs","names":[],"sources":["../../src/actions/get-credits.ts"],"sourcesContent":["import type { AppAction } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nimport { action } from \"../action\";\nimport { openrouter } from \"../app\";\n\nexport const OpenrouterGetCreditsInput = z.object({}).describe(\"No parameters for retrieving credit balance.\");\nconst OpenrouterGetCredits_CreditsDataSchema = z.object({\n total_usage: z.number().describe(\"Total credits used by the authenticated user\").nullable(),\n total_credits: z.number().describe(\"Total credits purchased by the authenticated user\").nullable(),\n}).passthrough();\nexport const OpenrouterGetCreditsOutput = z.object({\n data: OpenrouterGetCredits_CreditsDataSchema.nullable(),\n}).passthrough();\n\nexport const openrouterGetCredits: AppAction<\n typeof OpenrouterGetCreditsInput,\n typeof OpenrouterGetCreditsOutput,\n typeof openrouter.credential\n> = action(\"OPENROUTER_GET_CREDITS\", {\n slug: \"openrouter-get-credits\",\n name: \"Get Credits\",\n description: \"Tool to get the current API credit balance for the authenticated user. Use before large or batch jobs to verify sufficient balance. A successful response may return total_credits=0, which confirms authentication but will cause all paid model generations to fail. Avoid polling this endpoint; call only as needed.\",\n input: OpenrouterGetCreditsInput,\n output: OpenrouterGetCreditsOutput,\n});\n"],"mappings":";;;;AAMA,MAAa,4BAA4B,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,8CAA8C;AAC7G,MAAM,yCAAyC,EAAE,OAAO;CACtD,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;CAC1F,eAAe,EAAE,OAAO,CAAC,CAAC,SAAS,mDAAmD,CAAC,CAAC,SAAS;AACnG,CAAC,CAAC,CAAC,YAAY;AAKf,MAAa,uBAIT,OAAO,0BAA0B;CACnC,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAbwC,EAAE,OAAO,EACjD,MAAM,uCAAuC,SAAS,EACxD,CAAC,CAAC,CAAC,YAWO;AACV,CAAC"}
@@ -1,3 +1,4 @@
1
+ require("../app.cjs");
1
2
  const require_action = require("../action.cjs");
2
3
  let zod = require("zod");
3
4
  //#region src/actions/get-current-key.ts
@@ -1 +1 @@
1
- {"version":3,"file":"get-current-key.cjs","names":["z","action"],"sources":["../../src/actions/get-current-key.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const OpenrouterGetCurrentKeyInput = z.object({\n x_title: z.string().describe(\"The app display name allows you to customize how your app appears in OpenRouter's dashboard.\").optional(),\n http_referer: z.string().describe(\"The app identifier should be your app's URL and is used as the primary identifier for rankings. This is used to track API usage per application.\").optional(),\n}).describe(\"Request for retrieving current API key information.\");\nconst OpenrouterGetCurrentKey_RateLimitSchema = z.object({\n note: z.string().describe(\"Deprecation note.\").nullable(),\n interval: z.string().describe(\"Time interval for rate limit.\").nullable(),\n requests: z.number().describe(\"Number of requests allowed.\").nullable(),\n}).passthrough().describe(\"Legacy rate limit information (deprecated).\");\nconst OpenrouterGetCurrentKey_KeyDataSchema = z.object({\n label: z.string().describe(\"Human-readable label for the API key.\").nullable(),\n limit: z.number().describe(\"Spending limit for the API key in USD.\").nullable().optional(),\n usage: z.number().describe(\"Total OpenRouter credit usage (in USD) for the API key.\").nullable(),\n byok_usage: z.number().describe(\"Total external BYOK usage (in USD) for the API key.\").nullable(),\n expires_at: z.string().describe(\"ISO 8601 UTC timestamp when the API key expires, or null if no expiration.\").nullable().optional(),\n rate_limit: OpenrouterGetCurrentKey_RateLimitSchema.nullable(),\n limit_reset: z.string().describe(\"Type of limit reset for the API key.\").nullable().optional(),\n usage_daily: z.number().describe(\"OpenRouter credit usage (in USD) for the current UTC day.\").nullable(),\n is_free_tier: z.boolean().describe(\"Whether this is a free tier API key.\").nullable(),\n usage_weekly: z.number().describe(\"OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday).\").nullable(),\n usage_monthly: z.number().describe(\"OpenRouter credit usage (in USD) for the current UTC month.\").nullable(),\n limit_remaining: z.number().describe(\"Remaining spending limit in USD.\").nullable().optional(),\n byok_usage_daily: z.number().describe(\"External BYOK usage (in USD) for the current UTC day.\").nullable(),\n byok_usage_weekly: z.number().describe(\"External BYOK usage (in USD) for the current UTC week (Monday-Sunday).\").nullable(),\n is_management_key: z.boolean().describe(\"Whether this is a management key.\").nullable(),\n byok_usage_monthly: z.number().describe(\"External BYOK usage (in USD) for current UTC month.\").nullable(),\n is_provisioning_key: z.boolean().describe(\"Whether this is a provisioning key.\").nullable(),\n include_byok_in_limit: z.boolean().describe(\"Whether to include external BYOK usage in the credit limit.\").nullable(),\n}).passthrough().describe(\"API key information.\");\nexport const OpenrouterGetCurrentKeyOutput = z.object({\n data: OpenrouterGetCurrentKey_KeyDataSchema.nullable(),\n}).passthrough().describe(\"Response containing current API key information.\");\n\nexport const openrouterGetCurrentKey = action(\"OPENROUTER_GET_CURRENT_KEY\", {\n slug: \"openrouter-get-current-key\",\n name: \"Get Current Key\",\n description: \"Tool to get information about the currently authenticated API key. Use to check usage limits, spending, and key metadata.\",\n input: OpenrouterGetCurrentKeyInput,\n output: OpenrouterGetCurrentKeyOutput,\n});\n"],"mappings":";;;AAIA,MAAa,+BAA+BA,IAAAA,EAAE,OAAO;CACnD,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8FAA8F,CAAC,CAAC,SAAS;CACtI,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kJAAkJ,CAAC,CAAC,SAAS;AACjM,CAAC,CAAC,CAAC,SAAS,qDAAqD;AACjE,MAAM,0CAA0CA,IAAAA,EAAE,OAAO;CACvD,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,SAAS;CACxD,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;CACxE,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS;AACxE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,6CAA6C;AACvE,MAAM,wCAAwCA,IAAAA,EAAE,OAAO;CACrD,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;CAC7E,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wCAAwC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACzF,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yDAAyD,CAAC,CAAC,SAAS;CAC/F,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;CAChG,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4EAA4E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAClI,YAAY,wCAAwC,SAAS;CAC7D,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC7F,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2DAA2D,CAAC,CAAC,SAAS;CACvG,cAAcA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;CACpF,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4EAA4E,CAAC,CAAC,SAAS;CACzH,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;CAC3G,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC7F,kBAAkBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uDAAuD,CAAC,CAAC,SAAS;CACxG,mBAAmBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wEAAwE,CAAC,CAAC,SAAS;CAC1H,mBAAmBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,mCAAmC,CAAC,CAAC,SAAS;CACtF,oBAAoBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;CACxG,qBAAqBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,qCAAqC,CAAC,CAAC,SAAS;CAC1F,uBAAuBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;AACtH,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,sBAAsB;AAChD,MAAa,gCAAgCA,IAAAA,EAAE,OAAO,EACpD,MAAM,sCAAsC,SAAS,EACvD,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,kDAAkD;AAE5E,MAAa,0BAA0BC,eAAAA,OAAO,8BAA8B;CAC1E,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
1
+ {"version":3,"file":"get-current-key.cjs","names":["z","action"],"sources":["../../src/actions/get-current-key.ts"],"sourcesContent":["import type { AppAction } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nimport { action } from \"../action\";\nimport { openrouter } from \"../app\";\n\nexport const OpenrouterGetCurrentKeyInput = z.object({\n x_title: z.string().describe(\"The app display name allows you to customize how your app appears in OpenRouter's dashboard.\").optional(),\n http_referer: z.string().describe(\"The app identifier should be your app's URL and is used as the primary identifier for rankings. This is used to track API usage per application.\").optional(),\n}).describe(\"Request for retrieving current API key information.\");\nconst OpenrouterGetCurrentKey_RateLimitSchema = z.object({\n note: z.string().describe(\"Deprecation note.\").nullable(),\n interval: z.string().describe(\"Time interval for rate limit.\").nullable(),\n requests: z.number().describe(\"Number of requests allowed.\").nullable(),\n}).passthrough().describe(\"Legacy rate limit information (deprecated).\");\nconst OpenrouterGetCurrentKey_KeyDataSchema = z.object({\n label: z.string().describe(\"Human-readable label for the API key.\").nullable(),\n limit: z.number().describe(\"Spending limit for the API key in USD.\").nullable().optional(),\n usage: z.number().describe(\"Total OpenRouter credit usage (in USD) for the API key.\").nullable(),\n byok_usage: z.number().describe(\"Total external BYOK usage (in USD) for the API key.\").nullable(),\n expires_at: z.string().describe(\"ISO 8601 UTC timestamp when the API key expires, or null if no expiration.\").nullable().optional(),\n rate_limit: OpenrouterGetCurrentKey_RateLimitSchema.nullable(),\n limit_reset: z.string().describe(\"Type of limit reset for the API key.\").nullable().optional(),\n usage_daily: z.number().describe(\"OpenRouter credit usage (in USD) for the current UTC day.\").nullable(),\n is_free_tier: z.boolean().describe(\"Whether this is a free tier API key.\").nullable(),\n usage_weekly: z.number().describe(\"OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday).\").nullable(),\n usage_monthly: z.number().describe(\"OpenRouter credit usage (in USD) for the current UTC month.\").nullable(),\n limit_remaining: z.number().describe(\"Remaining spending limit in USD.\").nullable().optional(),\n byok_usage_daily: z.number().describe(\"External BYOK usage (in USD) for the current UTC day.\").nullable(),\n byok_usage_weekly: z.number().describe(\"External BYOK usage (in USD) for the current UTC week (Monday-Sunday).\").nullable(),\n is_management_key: z.boolean().describe(\"Whether this is a management key.\").nullable(),\n byok_usage_monthly: z.number().describe(\"External BYOK usage (in USD) for current UTC month.\").nullable(),\n is_provisioning_key: z.boolean().describe(\"Whether this is a provisioning key.\").nullable(),\n include_byok_in_limit: z.boolean().describe(\"Whether to include external BYOK usage in the credit limit.\").nullable(),\n}).passthrough().describe(\"API key information.\");\nexport const OpenrouterGetCurrentKeyOutput = z.object({\n data: OpenrouterGetCurrentKey_KeyDataSchema.nullable(),\n}).passthrough().describe(\"Response containing current API key information.\");\n\nexport const openrouterGetCurrentKey: AppAction<\n typeof OpenrouterGetCurrentKeyInput,\n typeof OpenrouterGetCurrentKeyOutput,\n typeof openrouter.credential\n> = action(\"OPENROUTER_GET_CURRENT_KEY\", {\n slug: \"openrouter-get-current-key\",\n name: \"Get Current Key\",\n description: \"Tool to get information about the currently authenticated API key. Use to check usage limits, spending, and key metadata.\",\n input: OpenrouterGetCurrentKeyInput,\n output: OpenrouterGetCurrentKeyOutput,\n});\n"],"mappings":";;;;AAMA,MAAa,+BAA+BA,IAAAA,EAAE,OAAO;CACnD,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8FAA8F,CAAC,CAAC,SAAS;CACtI,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kJAAkJ,CAAC,CAAC,SAAS;AACjM,CAAC,CAAC,CAAC,SAAS,qDAAqD;AACjE,MAAM,0CAA0CA,IAAAA,EAAE,OAAO;CACvD,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,SAAS;CACxD,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;CACxE,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS;AACxE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,6CAA6C;AACvE,MAAM,wCAAwCA,IAAAA,EAAE,OAAO;CACrD,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;CAC7E,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wCAAwC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACzF,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yDAAyD,CAAC,CAAC,SAAS;CAC/F,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;CAChG,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4EAA4E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAClI,YAAY,wCAAwC,SAAS;CAC7D,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC7F,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2DAA2D,CAAC,CAAC,SAAS;CACvG,cAAcA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;CACpF,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4EAA4E,CAAC,CAAC,SAAS;CACzH,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;CAC3G,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC7F,kBAAkBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uDAAuD,CAAC,CAAC,SAAS;CACxG,mBAAmBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wEAAwE,CAAC,CAAC,SAAS;CAC1H,mBAAmBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,mCAAmC,CAAC,CAAC,SAAS;CACtF,oBAAoBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;CACxG,qBAAqBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,qCAAqC,CAAC,CAAC,SAAS;CAC1F,uBAAuBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;AACtH,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,sBAAsB;AAChD,MAAa,gCAAgCA,IAAAA,EAAE,OAAO,EACpD,MAAM,sCAAsC,SAAS,EACvD,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,kDAAkD;AAE5E,MAAa,0BAITC,eAAAA,OAAO,8BAA8B;CACvC,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
@@ -1,3 +1,5 @@
1
+ import { openrouter } from "../app.cjs";
2
+ import { AppAction } from "@keystrokehq/keystroke/app";
1
3
  import { z } from "zod";
2
4
 
3
5
  //#region src/actions/get-current-key.d.ts
@@ -31,10 +33,7 @@ declare const OpenrouterGetCurrentKeyOutput: z.ZodObject<{
31
33
  include_byok_in_limit: z.ZodNullable<z.ZodBoolean>;
32
34
  }, z.core.$loose>>;
33
35
  }, z.core.$loose>;
34
- declare const openrouterGetCurrentKey: import("@keystrokehq/action").WorkflowActionDefinition<{
35
- x_title?: string | undefined;
36
- http_referer?: string | undefined;
37
- }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
36
+ declare const openrouterGetCurrentKey: AppAction<typeof OpenrouterGetCurrentKeyInput, typeof OpenrouterGetCurrentKeyOutput, typeof openrouter.credential>;
38
37
  //#endregion
39
38
  export { openrouterGetCurrentKey };
40
39
  //# sourceMappingURL=get-current-key.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-current-key.d.cts","names":[],"sources":["../../src/actions/get-current-key.ts"],"mappings":";;;cAIa,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;;cA6B5B,6BAAA,EAA6B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;cAI7B,uBAAA,gCAAuB,wBAAA"}
1
+ {"version":3,"file":"get-current-key.d.cts","names":[],"sources":["../../src/actions/get-current-key.ts"],"mappings":";;;;;cAMa,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;;cA6B5B,6BAAA,EAA6B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;cAI7B,uBAAA,EAAyB,SAAA,QAC7B,4BAAA,SACA,6BAAA,SACA,UAAA,CAAW,UAAA"}
@@ -1,3 +1,5 @@
1
+ import { openrouter } from "../app.mjs";
2
+ import { AppAction } from "@keystrokehq/keystroke/app";
1
3
  import { z } from "zod";
2
4
 
3
5
  //#region src/actions/get-current-key.d.ts
@@ -31,10 +33,7 @@ declare const OpenrouterGetCurrentKeyOutput: z.ZodObject<{
31
33
  include_byok_in_limit: z.ZodNullable<z.ZodBoolean>;
32
34
  }, z.core.$loose>>;
33
35
  }, z.core.$loose>;
34
- declare const openrouterGetCurrentKey: import("@keystrokehq/action").WorkflowActionDefinition<{
35
- x_title?: string | undefined;
36
- http_referer?: string | undefined;
37
- }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
36
+ declare const openrouterGetCurrentKey: AppAction<typeof OpenrouterGetCurrentKeyInput, typeof OpenrouterGetCurrentKeyOutput, typeof openrouter.credential>;
38
37
  //#endregion
39
38
  export { openrouterGetCurrentKey };
40
39
  //# sourceMappingURL=get-current-key.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-current-key.d.mts","names":[],"sources":["../../src/actions/get-current-key.ts"],"mappings":";;;cAIa,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;;cA6B5B,6BAAA,EAA6B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;cAI7B,uBAAA,gCAAuB,wBAAA"}
1
+ {"version":3,"file":"get-current-key.d.mts","names":[],"sources":["../../src/actions/get-current-key.ts"],"mappings":";;;;;cAMa,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;;cA6B5B,6BAAA,EAA6B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;cAI7B,uBAAA,EAAyB,SAAA,QAC7B,4BAAA,SACA,6BAAA,SACA,UAAA,CAAW,UAAA"}
@@ -1,3 +1,4 @@
1
+ import "../app.mjs";
1
2
  import { action } from "../action.mjs";
2
3
  import { z } from "zod";
3
4
  //#region src/actions/get-current-key.ts
@@ -1 +1 @@
1
- {"version":3,"file":"get-current-key.mjs","names":[],"sources":["../../src/actions/get-current-key.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const OpenrouterGetCurrentKeyInput = z.object({\n x_title: z.string().describe(\"The app display name allows you to customize how your app appears in OpenRouter's dashboard.\").optional(),\n http_referer: z.string().describe(\"The app identifier should be your app's URL and is used as the primary identifier for rankings. This is used to track API usage per application.\").optional(),\n}).describe(\"Request for retrieving current API key information.\");\nconst OpenrouterGetCurrentKey_RateLimitSchema = z.object({\n note: z.string().describe(\"Deprecation note.\").nullable(),\n interval: z.string().describe(\"Time interval for rate limit.\").nullable(),\n requests: z.number().describe(\"Number of requests allowed.\").nullable(),\n}).passthrough().describe(\"Legacy rate limit information (deprecated).\");\nconst OpenrouterGetCurrentKey_KeyDataSchema = z.object({\n label: z.string().describe(\"Human-readable label for the API key.\").nullable(),\n limit: z.number().describe(\"Spending limit for the API key in USD.\").nullable().optional(),\n usage: z.number().describe(\"Total OpenRouter credit usage (in USD) for the API key.\").nullable(),\n byok_usage: z.number().describe(\"Total external BYOK usage (in USD) for the API key.\").nullable(),\n expires_at: z.string().describe(\"ISO 8601 UTC timestamp when the API key expires, or null if no expiration.\").nullable().optional(),\n rate_limit: OpenrouterGetCurrentKey_RateLimitSchema.nullable(),\n limit_reset: z.string().describe(\"Type of limit reset for the API key.\").nullable().optional(),\n usage_daily: z.number().describe(\"OpenRouter credit usage (in USD) for the current UTC day.\").nullable(),\n is_free_tier: z.boolean().describe(\"Whether this is a free tier API key.\").nullable(),\n usage_weekly: z.number().describe(\"OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday).\").nullable(),\n usage_monthly: z.number().describe(\"OpenRouter credit usage (in USD) for the current UTC month.\").nullable(),\n limit_remaining: z.number().describe(\"Remaining spending limit in USD.\").nullable().optional(),\n byok_usage_daily: z.number().describe(\"External BYOK usage (in USD) for the current UTC day.\").nullable(),\n byok_usage_weekly: z.number().describe(\"External BYOK usage (in USD) for the current UTC week (Monday-Sunday).\").nullable(),\n is_management_key: z.boolean().describe(\"Whether this is a management key.\").nullable(),\n byok_usage_monthly: z.number().describe(\"External BYOK usage (in USD) for current UTC month.\").nullable(),\n is_provisioning_key: z.boolean().describe(\"Whether this is a provisioning key.\").nullable(),\n include_byok_in_limit: z.boolean().describe(\"Whether to include external BYOK usage in the credit limit.\").nullable(),\n}).passthrough().describe(\"API key information.\");\nexport const OpenrouterGetCurrentKeyOutput = z.object({\n data: OpenrouterGetCurrentKey_KeyDataSchema.nullable(),\n}).passthrough().describe(\"Response containing current API key information.\");\n\nexport const openrouterGetCurrentKey = action(\"OPENROUTER_GET_CURRENT_KEY\", {\n slug: \"openrouter-get-current-key\",\n name: \"Get Current Key\",\n description: \"Tool to get information about the currently authenticated API key. Use to check usage limits, spending, and key metadata.\",\n input: OpenrouterGetCurrentKeyInput,\n output: OpenrouterGetCurrentKeyOutput,\n});\n"],"mappings":";;;AAIA,MAAa,+BAA+B,EAAE,OAAO;CACnD,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,8FAA8F,CAAC,CAAC,SAAS;CACtI,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,kJAAkJ,CAAC,CAAC,SAAS;AACjM,CAAC,CAAC,CAAC,SAAS,qDAAqD;AACjE,MAAM,0CAA0C,EAAE,OAAO;CACvD,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,SAAS;CACxD,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;CACxE,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS;AACxE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,6CAA6C;AACvE,MAAM,wCAAwC,EAAE,OAAO;CACrD,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;CAC7E,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,wCAAwC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACzF,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,yDAAyD,CAAC,CAAC,SAAS;CAC/F,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;CAChG,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,4EAA4E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAClI,YAAY,wCAAwC,SAAS;CAC7D,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC7F,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,2DAA2D,CAAC,CAAC,SAAS;CACvG,cAAc,EAAE,QAAQ,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;CACpF,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,4EAA4E,CAAC,CAAC,SAAS;CACzH,eAAe,EAAE,OAAO,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;CAC3G,iBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC7F,kBAAkB,EAAE,OAAO,CAAC,CAAC,SAAS,uDAAuD,CAAC,CAAC,SAAS;CACxG,mBAAmB,EAAE,OAAO,CAAC,CAAC,SAAS,wEAAwE,CAAC,CAAC,SAAS;CAC1H,mBAAmB,EAAE,QAAQ,CAAC,CAAC,SAAS,mCAAmC,CAAC,CAAC,SAAS;CACtF,oBAAoB,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;CACxG,qBAAqB,EAAE,QAAQ,CAAC,CAAC,SAAS,qCAAqC,CAAC,CAAC,SAAS;CAC1F,uBAAuB,EAAE,QAAQ,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;AACtH,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,sBAAsB;AAKhD,MAAa,0BAA0B,OAAO,8BAA8B;CAC1E,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAT2C,EAAE,OAAO,EACpD,MAAM,sCAAsC,SAAS,EACvD,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,kDAOhB;AACV,CAAC"}
1
+ {"version":3,"file":"get-current-key.mjs","names":[],"sources":["../../src/actions/get-current-key.ts"],"sourcesContent":["import type { AppAction } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nimport { action } from \"../action\";\nimport { openrouter } from \"../app\";\n\nexport const OpenrouterGetCurrentKeyInput = z.object({\n x_title: z.string().describe(\"The app display name allows you to customize how your app appears in OpenRouter's dashboard.\").optional(),\n http_referer: z.string().describe(\"The app identifier should be your app's URL and is used as the primary identifier for rankings. This is used to track API usage per application.\").optional(),\n}).describe(\"Request for retrieving current API key information.\");\nconst OpenrouterGetCurrentKey_RateLimitSchema = z.object({\n note: z.string().describe(\"Deprecation note.\").nullable(),\n interval: z.string().describe(\"Time interval for rate limit.\").nullable(),\n requests: z.number().describe(\"Number of requests allowed.\").nullable(),\n}).passthrough().describe(\"Legacy rate limit information (deprecated).\");\nconst OpenrouterGetCurrentKey_KeyDataSchema = z.object({\n label: z.string().describe(\"Human-readable label for the API key.\").nullable(),\n limit: z.number().describe(\"Spending limit for the API key in USD.\").nullable().optional(),\n usage: z.number().describe(\"Total OpenRouter credit usage (in USD) for the API key.\").nullable(),\n byok_usage: z.number().describe(\"Total external BYOK usage (in USD) for the API key.\").nullable(),\n expires_at: z.string().describe(\"ISO 8601 UTC timestamp when the API key expires, or null if no expiration.\").nullable().optional(),\n rate_limit: OpenrouterGetCurrentKey_RateLimitSchema.nullable(),\n limit_reset: z.string().describe(\"Type of limit reset for the API key.\").nullable().optional(),\n usage_daily: z.number().describe(\"OpenRouter credit usage (in USD) for the current UTC day.\").nullable(),\n is_free_tier: z.boolean().describe(\"Whether this is a free tier API key.\").nullable(),\n usage_weekly: z.number().describe(\"OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday).\").nullable(),\n usage_monthly: z.number().describe(\"OpenRouter credit usage (in USD) for the current UTC month.\").nullable(),\n limit_remaining: z.number().describe(\"Remaining spending limit in USD.\").nullable().optional(),\n byok_usage_daily: z.number().describe(\"External BYOK usage (in USD) for the current UTC day.\").nullable(),\n byok_usage_weekly: z.number().describe(\"External BYOK usage (in USD) for the current UTC week (Monday-Sunday).\").nullable(),\n is_management_key: z.boolean().describe(\"Whether this is a management key.\").nullable(),\n byok_usage_monthly: z.number().describe(\"External BYOK usage (in USD) for current UTC month.\").nullable(),\n is_provisioning_key: z.boolean().describe(\"Whether this is a provisioning key.\").nullable(),\n include_byok_in_limit: z.boolean().describe(\"Whether to include external BYOK usage in the credit limit.\").nullable(),\n}).passthrough().describe(\"API key information.\");\nexport const OpenrouterGetCurrentKeyOutput = z.object({\n data: OpenrouterGetCurrentKey_KeyDataSchema.nullable(),\n}).passthrough().describe(\"Response containing current API key information.\");\n\nexport const openrouterGetCurrentKey: AppAction<\n typeof OpenrouterGetCurrentKeyInput,\n typeof OpenrouterGetCurrentKeyOutput,\n typeof openrouter.credential\n> = action(\"OPENROUTER_GET_CURRENT_KEY\", {\n slug: \"openrouter-get-current-key\",\n name: \"Get Current Key\",\n description: \"Tool to get information about the currently authenticated API key. Use to check usage limits, spending, and key metadata.\",\n input: OpenrouterGetCurrentKeyInput,\n output: OpenrouterGetCurrentKeyOutput,\n});\n"],"mappings":";;;;AAMA,MAAa,+BAA+B,EAAE,OAAO;CACnD,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,8FAA8F,CAAC,CAAC,SAAS;CACtI,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,kJAAkJ,CAAC,CAAC,SAAS;AACjM,CAAC,CAAC,CAAC,SAAS,qDAAqD;AACjE,MAAM,0CAA0C,EAAE,OAAO;CACvD,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,SAAS;CACxD,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;CACxE,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS;AACxE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,6CAA6C;AACvE,MAAM,wCAAwC,EAAE,OAAO;CACrD,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;CAC7E,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,wCAAwC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACzF,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,yDAAyD,CAAC,CAAC,SAAS;CAC/F,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;CAChG,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,4EAA4E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAClI,YAAY,wCAAwC,SAAS;CAC7D,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC7F,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,2DAA2D,CAAC,CAAC,SAAS;CACvG,cAAc,EAAE,QAAQ,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;CACpF,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,4EAA4E,CAAC,CAAC,SAAS;CACzH,eAAe,EAAE,OAAO,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;CAC3G,iBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC7F,kBAAkB,EAAE,OAAO,CAAC,CAAC,SAAS,uDAAuD,CAAC,CAAC,SAAS;CACxG,mBAAmB,EAAE,OAAO,CAAC,CAAC,SAAS,wEAAwE,CAAC,CAAC,SAAS;CAC1H,mBAAmB,EAAE,QAAQ,CAAC,CAAC,SAAS,mCAAmC,CAAC,CAAC,SAAS;CACtF,oBAAoB,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;CACxG,qBAAqB,EAAE,QAAQ,CAAC,CAAC,SAAS,qCAAqC,CAAC,CAAC,SAAS;CAC1F,uBAAuB,EAAE,QAAQ,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;AACtH,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,sBAAsB;AAKhD,MAAa,0BAIT,OAAO,8BAA8B;CACvC,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAb2C,EAAE,OAAO,EACpD,MAAM,sCAAsC,SAAS,EACvD,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,kDAWhB;AACV,CAAC"}
@@ -1,3 +1,4 @@
1
+ require("../app.cjs");
1
2
  const require_action = require("../action.cjs");
2
3
  let zod = require("zod");
3
4
  //#region src/actions/get-generation.ts
@@ -1 +1 @@
1
- {"version":3,"file":"get-generation.cjs","names":["z","action"],"sources":["../../src/actions/get-generation.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const OpenrouterGetGenerationInput = z.object({\n id: z.string().describe(\"Unique identifier of the generation to retrieve.\"),\n}).describe(\"Request model for retrieving a generation by its unique ID.\");\nconst OpenrouterGetGeneration_GenerationDataSchema = z.object({\n id: z.string().describe(\"Unique identifier of the generation.\").nullable(),\n model: z.string().describe(\"Model used to generate the response.\").nullable(),\n usage: z.number().describe(\"Normalized token usage (sum of prompt and completion tokens).\").nullable(),\n app_id: z.number().int().describe(\"Application identifier associated with this generation.\").nullable().optional(),\n origin: z.string().describe(\"Source/origin of the request.\").nullable(),\n is_byok: z.boolean().describe(\"Indicates if a BYOK key was used.\").nullable(),\n latency: z.number().int().describe(\"Total latency in milliseconds for response generation.\").nullable(),\n streamed: z.boolean().describe(\"Whether this generation was streamed.\").nullable(),\n cancelled: z.boolean().describe(\"Whether this generation was cancelled before completion.\").nullable(),\n created_at: z.string().describe(\"Timestamp when the generation was created.\").nullable(),\n total_cost: z.number().describe(\"Total cost incurred for this generation.\").nullable(),\n upstream_id: z.string().describe(\"Upstream provider's generation ID, if any.\").nullable().optional(),\n finish_reason: z.string().describe(\"Normalized finish reason (e.g., 'stop', 'length').\").nullable(),\n provider_name: z.string().describe(\"Name of the upstream provider used.\").nullable(),\n tokens_prompt: z.number().int().describe(\"Number of tokens in the prompt.\").nullable(),\n cache_discount: z.number().describe(\"Discount applied from cache hits, if any.\").nullable().optional(),\n generation_time: z.number().int().describe(\"Time in milliseconds taken by the model to generate the content.\").nullable(),\n num_media_prompt: z.number().int().describe(\"Number of media items in the prompt.\").nullable().optional(),\n tokens_completion: z.number().int().describe(\"Number of tokens in the completion.\").nullable(),\n moderation_latency: z.number().int().describe(\"Latency in milliseconds spent on moderation, if any.\").nullable().optional(),\n num_search_results: z.number().int().describe(\"Number of search results used, if any.\").nullable().optional(),\n native_finish_reason: z.string().describe(\"Raw finish reason returned by the model.\").nullable(),\n native_tokens_prompt: z.number().int().describe(\"Prompt tokens counted by the provider's tokenizer.\").nullable(),\n num_media_completion: z.number().int().describe(\"Number of media items in the completion.\").nullable().optional(),\n native_tokens_reasoning: z.number().int().describe(\"Tokens used for internal reasoning by the model.\").nullable(),\n upstream_inference_cost: z.number().describe(\"Cost charged by the upstream provider.\").nullable().optional(),\n native_tokens_completion: z.number().int().describe(\"Completion tokens counted by the provider's tokenizer.\").nullable(),\n}).passthrough().describe(\"Detailed metadata for a specific generation request.\");\nexport const OpenrouterGetGenerationOutput = z.object({\n data: OpenrouterGetGeneration_GenerationDataSchema.nullable(),\n}).passthrough().describe(\"Response model containing the data for a retrieved generation.\");\n\nexport const openrouterGetGeneration = action(\"OPENROUTER_GET_GENERATION\", {\n slug: \"openrouter-get-generation\",\n name: \"Get Generation\",\n description: \"Tool to retrieve a generation result by its unique ID. Use after a generation completes to fetch metadata like token counts, cost, and latency.\",\n input: OpenrouterGetGenerationInput,\n output: OpenrouterGetGenerationOutput,\n});\n"],"mappings":";;;AAIA,MAAa,+BAA+BA,IAAAA,EAAE,OAAO,EACnD,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kDAAkD,EAC5E,CAAC,CAAC,CAAC,SAAS,6DAA6D;AACzE,MAAM,+CAA+CA,IAAAA,EAAE,OAAO;CAC5D,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;CACzE,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;CAC5E,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,+DAA+D,CAAC,CAAC,SAAS;CACrG,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,yDAAyD,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACjH,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS;CACtE,SAASA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,mCAAmC,CAAC,CAAC,SAAS;CAC5E,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,wDAAwD,CAAC,CAAC,SAAS;CACtG,UAAUA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;CACjF,WAAWA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,0DAA0D,CAAC,CAAC,SAAS;CACrG,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4CAA4C,CAAC,CAAC,SAAS;CACvF,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0CAA0C,CAAC,CAAC,SAAS;CACrF,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4CAA4C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACnG,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oDAAoD,CAAC,CAAC,SAAS;CAClG,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qCAAqC,CAAC,CAAC,SAAS;CACnF,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,iCAAiC,CAAC,CAAC,SAAS;CACrF,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2CAA2C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACrG,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kEAAkE,CAAC,CAAC,SAAS;CACxH,kBAAkBA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACxG,mBAAmBA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,qCAAqC,CAAC,CAAC,SAAS;CAC7F,oBAAoBA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,sDAAsD,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC1H,oBAAoBA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,wCAAwC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC5G,sBAAsBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0CAA0C,CAAC,CAAC,SAAS;CAC/F,sBAAsBA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,oDAAoD,CAAC,CAAC,SAAS;CAC/G,sBAAsBA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,0CAA0C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAChH,yBAAyBA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kDAAkD,CAAC,CAAC,SAAS;CAChH,yBAAyBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wCAAwC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC3G,0BAA0BA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,wDAAwD,CAAC,CAAC,SAAS;AACzH,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,sDAAsD;AAChF,MAAa,gCAAgCA,IAAAA,EAAE,OAAO,EACpD,MAAM,6CAA6C,SAAS,EAC9D,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,gEAAgE;AAE1F,MAAa,0BAA0BC,eAAAA,OAAO,6BAA6B;CACzE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
1
+ {"version":3,"file":"get-generation.cjs","names":["z","action"],"sources":["../../src/actions/get-generation.ts"],"sourcesContent":["import type { AppAction } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nimport { action } from \"../action\";\nimport { openrouter } from \"../app\";\n\nexport const OpenrouterGetGenerationInput = z.object({\n id: z.string().describe(\"Unique identifier of the generation to retrieve.\"),\n}).describe(\"Request model for retrieving a generation by its unique ID.\");\nconst OpenrouterGetGeneration_GenerationDataSchema = z.object({\n id: z.string().describe(\"Unique identifier of the generation.\").nullable(),\n model: z.string().describe(\"Model used to generate the response.\").nullable(),\n usage: z.number().describe(\"Normalized token usage (sum of prompt and completion tokens).\").nullable(),\n app_id: z.number().int().describe(\"Application identifier associated with this generation.\").nullable().optional(),\n origin: z.string().describe(\"Source/origin of the request.\").nullable(),\n is_byok: z.boolean().describe(\"Indicates if a BYOK key was used.\").nullable(),\n latency: z.number().int().describe(\"Total latency in milliseconds for response generation.\").nullable(),\n streamed: z.boolean().describe(\"Whether this generation was streamed.\").nullable(),\n cancelled: z.boolean().describe(\"Whether this generation was cancelled before completion.\").nullable(),\n created_at: z.string().describe(\"Timestamp when the generation was created.\").nullable(),\n total_cost: z.number().describe(\"Total cost incurred for this generation.\").nullable(),\n upstream_id: z.string().describe(\"Upstream provider's generation ID, if any.\").nullable().optional(),\n finish_reason: z.string().describe(\"Normalized finish reason (e.g., 'stop', 'length').\").nullable(),\n provider_name: z.string().describe(\"Name of the upstream provider used.\").nullable(),\n tokens_prompt: z.number().int().describe(\"Number of tokens in the prompt.\").nullable(),\n cache_discount: z.number().describe(\"Discount applied from cache hits, if any.\").nullable().optional(),\n generation_time: z.number().int().describe(\"Time in milliseconds taken by the model to generate the content.\").nullable(),\n num_media_prompt: z.number().int().describe(\"Number of media items in the prompt.\").nullable().optional(),\n tokens_completion: z.number().int().describe(\"Number of tokens in the completion.\").nullable(),\n moderation_latency: z.number().int().describe(\"Latency in milliseconds spent on moderation, if any.\").nullable().optional(),\n num_search_results: z.number().int().describe(\"Number of search results used, if any.\").nullable().optional(),\n native_finish_reason: z.string().describe(\"Raw finish reason returned by the model.\").nullable(),\n native_tokens_prompt: z.number().int().describe(\"Prompt tokens counted by the provider's tokenizer.\").nullable(),\n num_media_completion: z.number().int().describe(\"Number of media items in the completion.\").nullable().optional(),\n native_tokens_reasoning: z.number().int().describe(\"Tokens used for internal reasoning by the model.\").nullable(),\n upstream_inference_cost: z.number().describe(\"Cost charged by the upstream provider.\").nullable().optional(),\n native_tokens_completion: z.number().int().describe(\"Completion tokens counted by the provider's tokenizer.\").nullable(),\n}).passthrough().describe(\"Detailed metadata for a specific generation request.\");\nexport const OpenrouterGetGenerationOutput = z.object({\n data: OpenrouterGetGeneration_GenerationDataSchema.nullable(),\n}).passthrough().describe(\"Response model containing the data for a retrieved generation.\");\n\nexport const openrouterGetGeneration: AppAction<\n typeof OpenrouterGetGenerationInput,\n typeof OpenrouterGetGenerationOutput,\n typeof openrouter.credential\n> = action(\"OPENROUTER_GET_GENERATION\", {\n slug: \"openrouter-get-generation\",\n name: \"Get Generation\",\n description: \"Tool to retrieve a generation result by its unique ID. Use after a generation completes to fetch metadata like token counts, cost, and latency.\",\n input: OpenrouterGetGenerationInput,\n output: OpenrouterGetGenerationOutput,\n});\n"],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { openrouter } from "../app.cjs";
2
+ import { AppAction } from "@keystrokehq/keystroke/app";
1
3
  import { z } from "zod";
2
4
 
3
5
  //#region src/actions/get-generation.d.ts
@@ -35,9 +37,7 @@ declare const OpenrouterGetGenerationOutput: z.ZodObject<{
35
37
  native_tokens_completion: z.ZodNullable<z.ZodNumber>;
36
38
  }, z.core.$loose>>;
37
39
  }, z.core.$loose>;
38
- declare const openrouterGetGeneration: import("@keystrokehq/action").WorkflowActionDefinition<{
39
- id: string;
40
- }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
40
+ declare const openrouterGetGeneration: AppAction<typeof OpenrouterGetGenerationInput, typeof OpenrouterGetGenerationOutput, typeof openrouter.credential>;
41
41
  //#endregion
42
42
  export { openrouterGetGeneration };
43
43
  //# sourceMappingURL=get-generation.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-generation.d.cts","names":[],"sources":["../../src/actions/get-generation.ts"],"mappings":";;;cAIa,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;cAgC5B,6BAAA,EAA6B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAI7B,uBAAA,gCAAuB,wBAAA"}
1
+ {"version":3,"file":"get-generation.d.cts","names":[],"sources":["../../src/actions/get-generation.ts"],"mappings":";;;;;cAMa,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;cAgC5B,6BAAA,EAA6B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAI7B,uBAAA,EAAyB,SAAA,QAC7B,4BAAA,SACA,6BAAA,SACA,UAAA,CAAW,UAAA"}
@@ -1,3 +1,5 @@
1
+ import { openrouter } from "../app.mjs";
2
+ import { AppAction } from "@keystrokehq/keystroke/app";
1
3
  import { z } from "zod";
2
4
 
3
5
  //#region src/actions/get-generation.d.ts
@@ -35,9 +37,7 @@ declare const OpenrouterGetGenerationOutput: z.ZodObject<{
35
37
  native_tokens_completion: z.ZodNullable<z.ZodNumber>;
36
38
  }, z.core.$loose>>;
37
39
  }, z.core.$loose>;
38
- declare const openrouterGetGeneration: import("@keystrokehq/action").WorkflowActionDefinition<{
39
- id: string;
40
- }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
40
+ declare const openrouterGetGeneration: AppAction<typeof OpenrouterGetGenerationInput, typeof OpenrouterGetGenerationOutput, typeof openrouter.credential>;
41
41
  //#endregion
42
42
  export { openrouterGetGeneration };
43
43
  //# sourceMappingURL=get-generation.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-generation.d.mts","names":[],"sources":["../../src/actions/get-generation.ts"],"mappings":";;;cAIa,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;cAgC5B,6BAAA,EAA6B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAI7B,uBAAA,gCAAuB,wBAAA"}
1
+ {"version":3,"file":"get-generation.d.mts","names":[],"sources":["../../src/actions/get-generation.ts"],"mappings":";;;;;cAMa,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;cAgC5B,6BAAA,EAA6B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAI7B,uBAAA,EAAyB,SAAA,QAC7B,4BAAA,SACA,6BAAA,SACA,UAAA,CAAW,UAAA"}
@@ -1,3 +1,4 @@
1
+ import "../app.mjs";
1
2
  import { action } from "../action.mjs";
2
3
  import { z } from "zod";
3
4
  //#region src/actions/get-generation.ts
@@ -1 +1 @@
1
- {"version":3,"file":"get-generation.mjs","names":[],"sources":["../../src/actions/get-generation.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const OpenrouterGetGenerationInput = z.object({\n id: z.string().describe(\"Unique identifier of the generation to retrieve.\"),\n}).describe(\"Request model for retrieving a generation by its unique ID.\");\nconst OpenrouterGetGeneration_GenerationDataSchema = z.object({\n id: z.string().describe(\"Unique identifier of the generation.\").nullable(),\n model: z.string().describe(\"Model used to generate the response.\").nullable(),\n usage: z.number().describe(\"Normalized token usage (sum of prompt and completion tokens).\").nullable(),\n app_id: z.number().int().describe(\"Application identifier associated with this generation.\").nullable().optional(),\n origin: z.string().describe(\"Source/origin of the request.\").nullable(),\n is_byok: z.boolean().describe(\"Indicates if a BYOK key was used.\").nullable(),\n latency: z.number().int().describe(\"Total latency in milliseconds for response generation.\").nullable(),\n streamed: z.boolean().describe(\"Whether this generation was streamed.\").nullable(),\n cancelled: z.boolean().describe(\"Whether this generation was cancelled before completion.\").nullable(),\n created_at: z.string().describe(\"Timestamp when the generation was created.\").nullable(),\n total_cost: z.number().describe(\"Total cost incurred for this generation.\").nullable(),\n upstream_id: z.string().describe(\"Upstream provider's generation ID, if any.\").nullable().optional(),\n finish_reason: z.string().describe(\"Normalized finish reason (e.g., 'stop', 'length').\").nullable(),\n provider_name: z.string().describe(\"Name of the upstream provider used.\").nullable(),\n tokens_prompt: z.number().int().describe(\"Number of tokens in the prompt.\").nullable(),\n cache_discount: z.number().describe(\"Discount applied from cache hits, if any.\").nullable().optional(),\n generation_time: z.number().int().describe(\"Time in milliseconds taken by the model to generate the content.\").nullable(),\n num_media_prompt: z.number().int().describe(\"Number of media items in the prompt.\").nullable().optional(),\n tokens_completion: z.number().int().describe(\"Number of tokens in the completion.\").nullable(),\n moderation_latency: z.number().int().describe(\"Latency in milliseconds spent on moderation, if any.\").nullable().optional(),\n num_search_results: z.number().int().describe(\"Number of search results used, if any.\").nullable().optional(),\n native_finish_reason: z.string().describe(\"Raw finish reason returned by the model.\").nullable(),\n native_tokens_prompt: z.number().int().describe(\"Prompt tokens counted by the provider's tokenizer.\").nullable(),\n num_media_completion: z.number().int().describe(\"Number of media items in the completion.\").nullable().optional(),\n native_tokens_reasoning: z.number().int().describe(\"Tokens used for internal reasoning by the model.\").nullable(),\n upstream_inference_cost: z.number().describe(\"Cost charged by the upstream provider.\").nullable().optional(),\n native_tokens_completion: z.number().int().describe(\"Completion tokens counted by the provider's tokenizer.\").nullable(),\n}).passthrough().describe(\"Detailed metadata for a specific generation request.\");\nexport const OpenrouterGetGenerationOutput = z.object({\n data: OpenrouterGetGeneration_GenerationDataSchema.nullable(),\n}).passthrough().describe(\"Response model containing the data for a retrieved generation.\");\n\nexport const openrouterGetGeneration = action(\"OPENROUTER_GET_GENERATION\", {\n slug: \"openrouter-get-generation\",\n name: \"Get Generation\",\n description: \"Tool to retrieve a generation result by its unique ID. Use after a generation completes to fetch metadata like token counts, cost, and latency.\",\n input: OpenrouterGetGenerationInput,\n output: OpenrouterGetGenerationOutput,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"get-generation.mjs","names":[],"sources":["../../src/actions/get-generation.ts"],"sourcesContent":["import type { AppAction } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nimport { action } from \"../action\";\nimport { openrouter } from \"../app\";\n\nexport const OpenrouterGetGenerationInput = z.object({\n id: z.string().describe(\"Unique identifier of the generation to retrieve.\"),\n}).describe(\"Request model for retrieving a generation by its unique ID.\");\nconst OpenrouterGetGeneration_GenerationDataSchema = z.object({\n id: z.string().describe(\"Unique identifier of the generation.\").nullable(),\n model: z.string().describe(\"Model used to generate the response.\").nullable(),\n usage: z.number().describe(\"Normalized token usage (sum of prompt and completion tokens).\").nullable(),\n app_id: z.number().int().describe(\"Application identifier associated with this generation.\").nullable().optional(),\n origin: z.string().describe(\"Source/origin of the request.\").nullable(),\n is_byok: z.boolean().describe(\"Indicates if a BYOK key was used.\").nullable(),\n latency: z.number().int().describe(\"Total latency in milliseconds for response generation.\").nullable(),\n streamed: z.boolean().describe(\"Whether this generation was streamed.\").nullable(),\n cancelled: z.boolean().describe(\"Whether this generation was cancelled before completion.\").nullable(),\n created_at: z.string().describe(\"Timestamp when the generation was created.\").nullable(),\n total_cost: z.number().describe(\"Total cost incurred for this generation.\").nullable(),\n upstream_id: z.string().describe(\"Upstream provider's generation ID, if any.\").nullable().optional(),\n finish_reason: z.string().describe(\"Normalized finish reason (e.g., 'stop', 'length').\").nullable(),\n provider_name: z.string().describe(\"Name of the upstream provider used.\").nullable(),\n tokens_prompt: z.number().int().describe(\"Number of tokens in the prompt.\").nullable(),\n cache_discount: z.number().describe(\"Discount applied from cache hits, if any.\").nullable().optional(),\n generation_time: z.number().int().describe(\"Time in milliseconds taken by the model to generate the content.\").nullable(),\n num_media_prompt: z.number().int().describe(\"Number of media items in the prompt.\").nullable().optional(),\n tokens_completion: z.number().int().describe(\"Number of tokens in the completion.\").nullable(),\n moderation_latency: z.number().int().describe(\"Latency in milliseconds spent on moderation, if any.\").nullable().optional(),\n num_search_results: z.number().int().describe(\"Number of search results used, if any.\").nullable().optional(),\n native_finish_reason: z.string().describe(\"Raw finish reason returned by the model.\").nullable(),\n native_tokens_prompt: z.number().int().describe(\"Prompt tokens counted by the provider's tokenizer.\").nullable(),\n num_media_completion: z.number().int().describe(\"Number of media items in the completion.\").nullable().optional(),\n native_tokens_reasoning: z.number().int().describe(\"Tokens used for internal reasoning by the model.\").nullable(),\n upstream_inference_cost: z.number().describe(\"Cost charged by the upstream provider.\").nullable().optional(),\n native_tokens_completion: z.number().int().describe(\"Completion tokens counted by the provider's tokenizer.\").nullable(),\n}).passthrough().describe(\"Detailed metadata for a specific generation request.\");\nexport const OpenrouterGetGenerationOutput = z.object({\n data: OpenrouterGetGeneration_GenerationDataSchema.nullable(),\n}).passthrough().describe(\"Response model containing the data for a retrieved generation.\");\n\nexport const openrouterGetGeneration: AppAction<\n typeof OpenrouterGetGenerationInput,\n typeof OpenrouterGetGenerationOutput,\n typeof openrouter.credential\n> = action(\"OPENROUTER_GET_GENERATION\", {\n slug: \"openrouter-get-generation\",\n name: \"Get Generation\",\n description: \"Tool to retrieve a generation result by its unique ID. Use after a generation completes to fetch metadata like token counts, cost, and latency.\",\n input: OpenrouterGetGenerationInput,\n output: OpenrouterGetGenerationOutput,\n});\n"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ require("../app.cjs");
1
2
  const require_action = require("../action.cjs");
2
3
  let zod = require("zod");
3
4
  //#region src/actions/get-models-count.ts
@@ -1 +1 @@
1
- {"version":3,"file":"get-models-count.cjs","names":["z","action"],"sources":["../../src/actions/get-models-count.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const OpenrouterGetModelsCountInput = z.object({\n x_title: z.string().describe(\"The app display name allows you to customize how your app appears in OpenRouter's dashboard.\").optional(),\n http_referer: z.string().describe(\"The app identifier should be your app's URL and is used as the primary identifier for rankings. This is used to track API usage per application.\").optional(),\n}).describe(\"Request model for getting the total count of available models.\");\nconst OpenrouterGetModelsCount_ModelsCountDataSchema = z.object({\n count: z.number().int().describe(\"Total number of available models\").nullable(),\n}).passthrough().describe(\"Container for the model count.\");\nexport const OpenrouterGetModelsCountOutput = z.object({\n data: OpenrouterGetModelsCount_ModelsCountDataSchema.nullable(),\n}).passthrough().describe(\"Response model containing the total count of available models.\");\n\nexport const openrouterGetModelsCount = action(\"OPENROUTER_GET_MODELS_COUNT\", {\n slug: \"openrouter-get-models-count\",\n name: \"Get Models Count\",\n description: \"Tool to get the total count of available models on OpenRouter. Use when you need to know how many models are available without fetching the full list.\",\n input: OpenrouterGetModelsCountInput,\n output: OpenrouterGetModelsCountOutput,\n});\n"],"mappings":";;;AAIA,MAAa,gCAAgCA,IAAAA,EAAE,OAAO;CACpD,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8FAA8F,CAAC,CAAC,SAAS;CACtI,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kJAAkJ,CAAC,CAAC,SAAS;AACjM,CAAC,CAAC,CAAC,SAAS,gEAAgE;AAC5E,MAAM,iDAAiDA,IAAAA,EAAE,OAAO,EAC9D,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,SAAS,EAChF,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,gCAAgC;AAC1D,MAAa,iCAAiCA,IAAAA,EAAE,OAAO,EACrD,MAAM,+CAA+C,SAAS,EAChE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,gEAAgE;AAE1F,MAAa,2BAA2BC,eAAAA,OAAO,+BAA+B;CAC5E,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
1
+ {"version":3,"file":"get-models-count.cjs","names":["z","action"],"sources":["../../src/actions/get-models-count.ts"],"sourcesContent":["import type { AppAction } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nimport { action } from \"../action\";\nimport { openrouter } from \"../app\";\n\nexport const OpenrouterGetModelsCountInput = z.object({\n x_title: z.string().describe(\"The app display name allows you to customize how your app appears in OpenRouter's dashboard.\").optional(),\n http_referer: z.string().describe(\"The app identifier should be your app's URL and is used as the primary identifier for rankings. This is used to track API usage per application.\").optional(),\n}).describe(\"Request model for getting the total count of available models.\");\nconst OpenrouterGetModelsCount_ModelsCountDataSchema = z.object({\n count: z.number().int().describe(\"Total number of available models\").nullable(),\n}).passthrough().describe(\"Container for the model count.\");\nexport const OpenrouterGetModelsCountOutput = z.object({\n data: OpenrouterGetModelsCount_ModelsCountDataSchema.nullable(),\n}).passthrough().describe(\"Response model containing the total count of available models.\");\n\nexport const openrouterGetModelsCount: AppAction<\n typeof OpenrouterGetModelsCountInput,\n typeof OpenrouterGetModelsCountOutput,\n typeof openrouter.credential\n> = action(\"OPENROUTER_GET_MODELS_COUNT\", {\n slug: \"openrouter-get-models-count\",\n name: \"Get Models Count\",\n description: \"Tool to get the total count of available models on OpenRouter. Use when you need to know how many models are available without fetching the full list.\",\n input: OpenrouterGetModelsCountInput,\n output: OpenrouterGetModelsCountOutput,\n});\n"],"mappings":";;;;AAMA,MAAa,gCAAgCA,IAAAA,EAAE,OAAO;CACpD,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8FAA8F,CAAC,CAAC,SAAS;CACtI,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kJAAkJ,CAAC,CAAC,SAAS;AACjM,CAAC,CAAC,CAAC,SAAS,gEAAgE;AAC5E,MAAM,iDAAiDA,IAAAA,EAAE,OAAO,EAC9D,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,SAAS,EAChF,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,gCAAgC;AAC1D,MAAa,iCAAiCA,IAAAA,EAAE,OAAO,EACrD,MAAM,+CAA+C,SAAS,EAChE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,gEAAgE;AAE1F,MAAa,2BAITC,eAAAA,OAAO,+BAA+B;CACxC,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
@@ -1,3 +1,5 @@
1
+ import { openrouter } from "../app.cjs";
2
+ import { AppAction } from "@keystrokehq/keystroke/app";
1
3
  import { z } from "zod";
2
4
 
3
5
  //#region src/actions/get-models-count.d.ts
@@ -10,10 +12,7 @@ declare const OpenrouterGetModelsCountOutput: z.ZodObject<{
10
12
  count: z.ZodNullable<z.ZodNumber>;
11
13
  }, z.core.$loose>>;
12
14
  }, z.core.$loose>;
13
- declare const openrouterGetModelsCount: import("@keystrokehq/action").WorkflowActionDefinition<{
14
- x_title?: string | undefined;
15
- http_referer?: string | undefined;
16
- }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
15
+ declare const openrouterGetModelsCount: AppAction<typeof OpenrouterGetModelsCountInput, typeof OpenrouterGetModelsCountOutput, typeof openrouter.credential>;
17
16
  //#endregion
18
17
  export { openrouterGetModelsCount };
19
18
  //# sourceMappingURL=get-models-count.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-models-count.d.cts","names":[],"sources":["../../src/actions/get-models-count.ts"],"mappings":";;;cAIa,6BAAA,EAA6B,CAAA,CAAA,SAAA;;;;cAO7B,8BAAA,EAA8B,CAAA,CAAA,SAAA;;;;;cAI9B,wBAAA,gCAAwB,wBAAA"}
1
+ {"version":3,"file":"get-models-count.d.cts","names":[],"sources":["../../src/actions/get-models-count.ts"],"mappings":";;;;;cAMa,6BAAA,EAA6B,CAAA,CAAA,SAAA;;;;cAO7B,8BAAA,EAA8B,CAAA,CAAA,SAAA;;;;;cAI9B,wBAAA,EAA0B,SAAA,QAC9B,6BAAA,SACA,8BAAA,SACA,UAAA,CAAW,UAAA"}
@@ -1,3 +1,5 @@
1
+ import { openrouter } from "../app.mjs";
2
+ import { AppAction } from "@keystrokehq/keystroke/app";
1
3
  import { z } from "zod";
2
4
 
3
5
  //#region src/actions/get-models-count.d.ts
@@ -10,10 +12,7 @@ declare const OpenrouterGetModelsCountOutput: z.ZodObject<{
10
12
  count: z.ZodNullable<z.ZodNumber>;
11
13
  }, z.core.$loose>>;
12
14
  }, z.core.$loose>;
13
- declare const openrouterGetModelsCount: import("@keystrokehq/action").WorkflowActionDefinition<{
14
- x_title?: string | undefined;
15
- http_referer?: string | undefined;
16
- }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
15
+ declare const openrouterGetModelsCount: AppAction<typeof OpenrouterGetModelsCountInput, typeof OpenrouterGetModelsCountOutput, typeof openrouter.credential>;
17
16
  //#endregion
18
17
  export { openrouterGetModelsCount };
19
18
  //# sourceMappingURL=get-models-count.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-models-count.d.mts","names":[],"sources":["../../src/actions/get-models-count.ts"],"mappings":";;;cAIa,6BAAA,EAA6B,CAAA,CAAA,SAAA;;;;cAO7B,8BAAA,EAA8B,CAAA,CAAA,SAAA;;;;;cAI9B,wBAAA,gCAAwB,wBAAA"}
1
+ {"version":3,"file":"get-models-count.d.mts","names":[],"sources":["../../src/actions/get-models-count.ts"],"mappings":";;;;;cAMa,6BAAA,EAA6B,CAAA,CAAA,SAAA;;;;cAO7B,8BAAA,EAA8B,CAAA,CAAA,SAAA;;;;;cAI9B,wBAAA,EAA0B,SAAA,QAC9B,6BAAA,SACA,8BAAA,SACA,UAAA,CAAW,UAAA"}
@@ -1,3 +1,4 @@
1
+ import "../app.mjs";
1
2
  import { action } from "../action.mjs";
2
3
  import { z } from "zod";
3
4
  //#region src/actions/get-models-count.ts
@@ -1 +1 @@
1
- {"version":3,"file":"get-models-count.mjs","names":[],"sources":["../../src/actions/get-models-count.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const OpenrouterGetModelsCountInput = z.object({\n x_title: z.string().describe(\"The app display name allows you to customize how your app appears in OpenRouter's dashboard.\").optional(),\n http_referer: z.string().describe(\"The app identifier should be your app's URL and is used as the primary identifier for rankings. This is used to track API usage per application.\").optional(),\n}).describe(\"Request model for getting the total count of available models.\");\nconst OpenrouterGetModelsCount_ModelsCountDataSchema = z.object({\n count: z.number().int().describe(\"Total number of available models\").nullable(),\n}).passthrough().describe(\"Container for the model count.\");\nexport const OpenrouterGetModelsCountOutput = z.object({\n data: OpenrouterGetModelsCount_ModelsCountDataSchema.nullable(),\n}).passthrough().describe(\"Response model containing the total count of available models.\");\n\nexport const openrouterGetModelsCount = action(\"OPENROUTER_GET_MODELS_COUNT\", {\n slug: \"openrouter-get-models-count\",\n name: \"Get Models Count\",\n description: \"Tool to get the total count of available models on OpenRouter. Use when you need to know how many models are available without fetching the full list.\",\n input: OpenrouterGetModelsCountInput,\n output: OpenrouterGetModelsCountOutput,\n});\n"],"mappings":";;;AAIA,MAAa,gCAAgC,EAAE,OAAO;CACpD,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,8FAA8F,CAAC,CAAC,SAAS;CACtI,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,kJAAkJ,CAAC,CAAC,SAAS;AACjM,CAAC,CAAC,CAAC,SAAS,gEAAgE;AAC5E,MAAM,iDAAiD,EAAE,OAAO,EAC9D,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,SAAS,EAChF,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,gCAAgC;AAK1D,MAAa,2BAA2B,OAAO,+BAA+B;CAC5E,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAT4C,EAAE,OAAO,EACrD,MAAM,+CAA+C,SAAS,EAChE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,gEAOhB;AACV,CAAC"}
1
+ {"version":3,"file":"get-models-count.mjs","names":[],"sources":["../../src/actions/get-models-count.ts"],"sourcesContent":["import type { AppAction } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nimport { action } from \"../action\";\nimport { openrouter } from \"../app\";\n\nexport const OpenrouterGetModelsCountInput = z.object({\n x_title: z.string().describe(\"The app display name allows you to customize how your app appears in OpenRouter's dashboard.\").optional(),\n http_referer: z.string().describe(\"The app identifier should be your app's URL and is used as the primary identifier for rankings. This is used to track API usage per application.\").optional(),\n}).describe(\"Request model for getting the total count of available models.\");\nconst OpenrouterGetModelsCount_ModelsCountDataSchema = z.object({\n count: z.number().int().describe(\"Total number of available models\").nullable(),\n}).passthrough().describe(\"Container for the model count.\");\nexport const OpenrouterGetModelsCountOutput = z.object({\n data: OpenrouterGetModelsCount_ModelsCountDataSchema.nullable(),\n}).passthrough().describe(\"Response model containing the total count of available models.\");\n\nexport const openrouterGetModelsCount: AppAction<\n typeof OpenrouterGetModelsCountInput,\n typeof OpenrouterGetModelsCountOutput,\n typeof openrouter.credential\n> = action(\"OPENROUTER_GET_MODELS_COUNT\", {\n slug: \"openrouter-get-models-count\",\n name: \"Get Models Count\",\n description: \"Tool to get the total count of available models on OpenRouter. Use when you need to know how many models are available without fetching the full list.\",\n input: OpenrouterGetModelsCountInput,\n output: OpenrouterGetModelsCountOutput,\n});\n"],"mappings":";;;;AAMA,MAAa,gCAAgC,EAAE,OAAO;CACpD,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,8FAA8F,CAAC,CAAC,SAAS;CACtI,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,kJAAkJ,CAAC,CAAC,SAAS;AACjM,CAAC,CAAC,CAAC,SAAS,gEAAgE;AAC5E,MAAM,iDAAiD,EAAE,OAAO,EAC9D,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,SAAS,EAChF,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,gCAAgC;AAK1D,MAAa,2BAIT,OAAO,+BAA+B;CACxC,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAb4C,EAAE,OAAO,EACrD,MAAM,+CAA+C,SAAS,EAChE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,gEAWhB;AACV,CAAC"}
@@ -1,3 +1,4 @@
1
+ require("../app.cjs");
1
2
  const require_action = require("../action.cjs");
2
3
  let zod = require("zod");
3
4
  //#region src/actions/list-available-models.ts
@@ -1 +1 @@
1
- {"version":3,"file":"list-available-models.cjs","names":["z","action"],"sources":["../../src/actions/list-available-models.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const OpenrouterListAvailableModelsInput = z.object({\n use_rss: z.boolean().default(false).describe(\"Return RSS XML feed instead of JSON (BETA).\").optional(),\n category: z.enum([\"programming\", \"roleplay\", \"marketing\", \"marketing/seo\", \"technology\", \"science\", \"translation\", \"legal\", \"finance\", \"health\", \"trivia\", \"academia\"]).describe(\"Valid categories for filtering models.\").optional(),\n use_rss_chat_links: z.boolean().default(false).describe(\"Use chat URLs instead of model page URLs in RSS items (only applies when use_rss=true) (BETA).\").optional(),\n});\nconst OpenrouterListAvailableModels_PricingSchema = z.object({\n audio: z.string().describe(\"Price per audio unit.\").nullable().optional(),\n image: z.string().describe(\"Price per image.\").nullable().optional(),\n prompt: z.string().describe(\"Price per prompt token.\").nullable(),\n request: z.string().describe(\"Price per request.\").nullable().optional(),\n completion: z.string().describe(\"Price per completion token.\").nullable(),\n web_search: z.string().describe(\"Price per web search.\").nullable().optional(),\n input_cache_read: z.string().describe(\"Price per input cache read.\").nullable().optional(),\n input_cache_write: z.string().describe(\"Price per input cache write.\").nullable().optional(),\n internal_reasoning: z.string().describe(\"Price per internal reasoning.\").nullable().optional(),\n}).passthrough();\nconst OpenrouterListAvailableModels_ArchitectureSchema = z.object({\n modality: z.string().describe(\"Combined modality string (e.g., 'text+image->text').\").nullable().optional(),\n tokenizer: z.string().describe(\"Tokenization method used.\").nullable(),\n instruct_type: z.string().describe(\"Instruction tuning type for the model.\").nullable().optional(),\n input_modalities: z.array(z.string()).describe(\"Supported input types (e.g., 'text', 'image').\"),\n output_modalities: z.array(z.string()).describe(\"Supported output types (e.g., 'text').\"),\n}).passthrough();\nconst OpenrouterListAvailableModels_TopProviderSchema = z.object({\n is_moderated: z.boolean().describe(\"Indicates if the content is moderated.\").nullable(),\n context_length: z.number().int().describe(\"Context window size provided by this provider.\").nullable().optional(),\n max_completion_tokens: z.number().int().describe(\"Maximum tokens that can be generated in the completion.\").nullable().optional(),\n}).passthrough();\nconst OpenrouterListAvailableModels_DefaultParametersSchema = z.object({\n top_p: z.number().describe(\"Default top_p setting.\").nullable().optional(),\n temperature: z.number().describe(\"Default temperature setting.\").nullable().optional(),\n frequency_penalty: z.number().describe(\"Default frequency penalty setting.\").nullable().optional(),\n}).passthrough().describe(\"Default parameter values for the model.\");\nconst OpenrouterListAvailableModels_PerRequestLimitsSchema = z.object({\n prompt_tokens: z.number().describe(\"Maximum prompt tokens allowed per request.\").nullable(),\n completion_tokens: z.number().describe(\"Maximum completion tokens allowed per request.\").nullable(),\n}).passthrough().describe(\"Rate limiting information for the model.\");\nconst OpenrouterListAvailableModels_ModelInfoSchema = z.object({\n id: z.string().describe(\"Unique model identifier.\").nullable(),\n name: z.string().describe(\"Human-readable display name for the model.\").nullable(),\n created: z.number().describe(\"Unix timestamp when the model was added.\").nullable(),\n pricing: OpenrouterListAvailableModels_PricingSchema.nullable(),\n description: z.string().describe(\"Detailed description of the model's capabilities.\").nullable(),\n architecture: OpenrouterListAvailableModels_ArchitectureSchema.nullable(),\n top_provider: OpenrouterListAvailableModels_TopProviderSchema.nullable(),\n canonical_slug: z.string().describe(\"Permanent slug for the model (immutable).\").nullable(),\n context_length: z.number().int().describe(\"Maximum context window size in tokens.\").nullable(),\n expiration_date: z.string().describe(\"ISO 8601 date when the model will be deprecated.\").nullable().optional(),\n hugging_face_id: z.string().describe(\"Identifier for the model on Hugging Face.\").nullable().optional(),\n default_parameters: OpenrouterListAvailableModels_DefaultParametersSchema.nullable(),\n per_request_limits: OpenrouterListAvailableModels_PerRequestLimitsSchema.nullable().optional(),\n supported_parameters: z.array(z.string()).describe(\"Supported API parameters for this model.\"),\n}).passthrough();\nexport const OpenrouterListAvailableModelsOutput = z.object({\n data: z.array(OpenrouterListAvailableModels_ModelInfoSchema).describe(\"List of available models.\"),\n}).passthrough();\n\nexport const openrouterListAvailableModels = action(\"OPENROUTER_LIST_AVAILABLE_MODELS\", {\n slug: \"openrouter-list-available-models\",\n name: \"List Available Models\",\n description: \"Tool to list available models via OpenRouter API. Use after confirming authentication to fetch the model catalog. Use exact model IDs returned here in OPENROUTER_CREATE_CHAT_COMPLETION or OPENROUTER_CREATE_COMPLETION calls — hard-coded IDs may break when the catalog changes. Use exact author and slug values from this response as inputs to OPENROUTER_LIST_MODEL_ENDPOINTS. Models have varying capabilities (e.g., tools, reasoning); verify individual model capabilities before downstream use. Pricing and latency metadata may be null or approximate — handle missing values in routing logic.\",\n input: OpenrouterListAvailableModelsInput,\n output: OpenrouterListAvailableModelsOutput,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"list-available-models.cjs","names":["z","action"],"sources":["../../src/actions/list-available-models.ts"],"sourcesContent":["import type { AppAction } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nimport { action } from \"../action\";\nimport { openrouter } from \"../app\";\n\nexport const OpenrouterListAvailableModelsInput = z.object({\n use_rss: z.boolean().default(false).describe(\"Return RSS XML feed instead of JSON (BETA).\").optional(),\n category: z.enum([\"programming\", \"roleplay\", \"marketing\", \"marketing/seo\", \"technology\", \"science\", \"translation\", \"legal\", \"finance\", \"health\", \"trivia\", \"academia\"]).describe(\"Valid categories for filtering models.\").optional(),\n use_rss_chat_links: z.boolean().default(false).describe(\"Use chat URLs instead of model page URLs in RSS items (only applies when use_rss=true) (BETA).\").optional(),\n});\nconst OpenrouterListAvailableModels_PricingSchema = z.object({\n audio: z.string().describe(\"Price per audio unit.\").nullable().optional(),\n image: z.string().describe(\"Price per image.\").nullable().optional(),\n prompt: z.string().describe(\"Price per prompt token.\").nullable(),\n request: z.string().describe(\"Price per request.\").nullable().optional(),\n completion: z.string().describe(\"Price per completion token.\").nullable(),\n web_search: z.string().describe(\"Price per web search.\").nullable().optional(),\n input_cache_read: z.string().describe(\"Price per input cache read.\").nullable().optional(),\n input_cache_write: z.string().describe(\"Price per input cache write.\").nullable().optional(),\n internal_reasoning: z.string().describe(\"Price per internal reasoning.\").nullable().optional(),\n}).passthrough();\nconst OpenrouterListAvailableModels_ArchitectureSchema = z.object({\n modality: z.string().describe(\"Combined modality string (e.g., 'text+image->text').\").nullable().optional(),\n tokenizer: z.string().describe(\"Tokenization method used.\").nullable(),\n instruct_type: z.string().describe(\"Instruction tuning type for the model.\").nullable().optional(),\n input_modalities: z.array(z.string()).describe(\"Supported input types (e.g., 'text', 'image').\"),\n output_modalities: z.array(z.string()).describe(\"Supported output types (e.g., 'text').\"),\n}).passthrough();\nconst OpenrouterListAvailableModels_TopProviderSchema = z.object({\n is_moderated: z.boolean().describe(\"Indicates if the content is moderated.\").nullable(),\n context_length: z.number().int().describe(\"Context window size provided by this provider.\").nullable().optional(),\n max_completion_tokens: z.number().int().describe(\"Maximum tokens that can be generated in the completion.\").nullable().optional(),\n}).passthrough();\nconst OpenrouterListAvailableModels_DefaultParametersSchema = z.object({\n top_p: z.number().describe(\"Default top_p setting.\").nullable().optional(),\n temperature: z.number().describe(\"Default temperature setting.\").nullable().optional(),\n frequency_penalty: z.number().describe(\"Default frequency penalty setting.\").nullable().optional(),\n}).passthrough().describe(\"Default parameter values for the model.\");\nconst OpenrouterListAvailableModels_PerRequestLimitsSchema = z.object({\n prompt_tokens: z.number().describe(\"Maximum prompt tokens allowed per request.\").nullable(),\n completion_tokens: z.number().describe(\"Maximum completion tokens allowed per request.\").nullable(),\n}).passthrough().describe(\"Rate limiting information for the model.\");\nconst OpenrouterListAvailableModels_ModelInfoSchema = z.object({\n id: z.string().describe(\"Unique model identifier.\").nullable(),\n name: z.string().describe(\"Human-readable display name for the model.\").nullable(),\n created: z.number().describe(\"Unix timestamp when the model was added.\").nullable(),\n pricing: OpenrouterListAvailableModels_PricingSchema.nullable(),\n description: z.string().describe(\"Detailed description of the model's capabilities.\").nullable(),\n architecture: OpenrouterListAvailableModels_ArchitectureSchema.nullable(),\n top_provider: OpenrouterListAvailableModels_TopProviderSchema.nullable(),\n canonical_slug: z.string().describe(\"Permanent slug for the model (immutable).\").nullable(),\n context_length: z.number().int().describe(\"Maximum context window size in tokens.\").nullable(),\n expiration_date: z.string().describe(\"ISO 8601 date when the model will be deprecated.\").nullable().optional(),\n hugging_face_id: z.string().describe(\"Identifier for the model on Hugging Face.\").nullable().optional(),\n default_parameters: OpenrouterListAvailableModels_DefaultParametersSchema.nullable(),\n per_request_limits: OpenrouterListAvailableModels_PerRequestLimitsSchema.nullable().optional(),\n supported_parameters: z.array(z.string()).describe(\"Supported API parameters for this model.\"),\n}).passthrough();\nexport const OpenrouterListAvailableModelsOutput = z.object({\n data: z.array(OpenrouterListAvailableModels_ModelInfoSchema).describe(\"List of available models.\"),\n}).passthrough();\n\nexport const openrouterListAvailableModels: AppAction<\n typeof OpenrouterListAvailableModelsInput,\n typeof OpenrouterListAvailableModelsOutput,\n typeof openrouter.credential\n> = action(\"OPENROUTER_LIST_AVAILABLE_MODELS\", {\n slug: \"openrouter-list-available-models\",\n name: \"List Available Models\",\n description: \"Tool to list available models via OpenRouter API. Use after confirming authentication to fetch the model catalog. Use exact model IDs returned here in OPENROUTER_CREATE_CHAT_COMPLETION or OPENROUTER_CREATE_COMPLETION calls — hard-coded IDs may break when the catalog changes. Use exact author and slug values from this response as inputs to OPENROUTER_LIST_MODEL_ENDPOINTS. Models have varying capabilities (e.g., tools, reasoning); verify individual model capabilities before downstream use. Pricing and latency metadata may be null or approximate — handle missing values in routing logic.\",\n input: OpenrouterListAvailableModelsInput,\n output: OpenrouterListAvailableModelsOutput,\n});\n"],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { openrouter } from "../app.cjs";
2
+ import { AppAction } from "@keystrokehq/keystroke/app";
1
3
  import { z } from "zod";
2
4
 
3
5
  //#region src/actions/list-available-models.d.ts
@@ -64,11 +66,7 @@ declare const OpenrouterListAvailableModelsOutput: z.ZodObject<{
64
66
  supported_parameters: z.ZodArray<z.ZodString>;
65
67
  }, z.core.$loose>>;
66
68
  }, z.core.$loose>;
67
- declare const openrouterListAvailableModels: import("@keystrokehq/action").WorkflowActionDefinition<{
68
- use_rss?: boolean | undefined;
69
- category?: "programming" | "roleplay" | "marketing" | "marketing/seo" | "technology" | "science" | "translation" | "legal" | "finance" | "health" | "trivia" | "academia" | undefined;
70
- use_rss_chat_links?: boolean | undefined;
71
- }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
69
+ declare const openrouterListAvailableModels: AppAction<typeof OpenrouterListAvailableModelsInput, typeof OpenrouterListAvailableModelsOutput, typeof openrouter.credential>;
72
70
  //#endregion
73
71
  export { openrouterListAvailableModels };
74
72
  //# sourceMappingURL=list-available-models.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-available-models.d.cts","names":[],"sources":["../../src/actions/list-available-models.ts"],"mappings":";;;cAIa,kCAAA,EAAkC,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;cAqDlC,mCAAA,EAAmC,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAInC,6BAAA,gCAA6B,wBAAA"}
1
+ {"version":3,"file":"list-available-models.d.cts","names":[],"sources":["../../src/actions/list-available-models.ts"],"mappings":";;;;;cAMa,kCAAA,EAAkC,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;cAqDlC,mCAAA,EAAmC,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAInC,6BAAA,EAA+B,SAAA,QACnC,kCAAA,SACA,mCAAA,SACA,UAAA,CAAW,UAAA"}
@@ -1,3 +1,5 @@
1
+ import { openrouter } from "../app.mjs";
2
+ import { AppAction } from "@keystrokehq/keystroke/app";
1
3
  import { z } from "zod";
2
4
 
3
5
  //#region src/actions/list-available-models.d.ts
@@ -64,11 +66,7 @@ declare const OpenrouterListAvailableModelsOutput: z.ZodObject<{
64
66
  supported_parameters: z.ZodArray<z.ZodString>;
65
67
  }, z.core.$loose>>;
66
68
  }, z.core.$loose>;
67
- declare const openrouterListAvailableModels: import("@keystrokehq/action").WorkflowActionDefinition<{
68
- use_rss?: boolean | undefined;
69
- category?: "programming" | "roleplay" | "marketing" | "marketing/seo" | "technology" | "science" | "translation" | "legal" | "finance" | "health" | "trivia" | "academia" | undefined;
70
- use_rss_chat_links?: boolean | undefined;
71
- }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
69
+ declare const openrouterListAvailableModels: AppAction<typeof OpenrouterListAvailableModelsInput, typeof OpenrouterListAvailableModelsOutput, typeof openrouter.credential>;
72
70
  //#endregion
73
71
  export { openrouterListAvailableModels };
74
72
  //# sourceMappingURL=list-available-models.d.mts.map