@keystrokehq/gemini 0.1.0 → 0.1.1

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 (64) hide show
  1. package/README.md +1 -1
  2. package/dist/action.cjs.map +1 -1
  3. package/dist/action.mjs.map +1 -1
  4. package/dist/actions/count-tokens.cjs +4 -4
  5. package/dist/actions/count-tokens.cjs.map +1 -1
  6. package/dist/actions/count-tokens.d.cts +21 -3
  7. package/dist/actions/count-tokens.d.cts.map +1 -1
  8. package/dist/actions/count-tokens.d.mts +21 -3
  9. package/dist/actions/count-tokens.d.mts.map +1 -1
  10. package/dist/actions/count-tokens.mjs +4 -4
  11. package/dist/actions/count-tokens.mjs.map +1 -1
  12. package/dist/actions/embed-content.cjs +1 -1
  13. package/dist/actions/embed-content.cjs.map +1 -1
  14. package/dist/actions/embed-content.d.cts +21 -3
  15. package/dist/actions/embed-content.d.cts.map +1 -1
  16. package/dist/actions/embed-content.d.mts +21 -3
  17. package/dist/actions/embed-content.d.mts.map +1 -1
  18. package/dist/actions/embed-content.mjs +1 -1
  19. package/dist/actions/embed-content.mjs.map +1 -1
  20. package/dist/actions/generate-content.cjs +7 -7
  21. package/dist/actions/generate-content.cjs.map +1 -1
  22. package/dist/actions/generate-content.d.cts +72 -3
  23. package/dist/actions/generate-content.d.cts.map +1 -1
  24. package/dist/actions/generate-content.d.mts +72 -3
  25. package/dist/actions/generate-content.d.mts.map +1 -1
  26. package/dist/actions/generate-content.mjs +7 -7
  27. package/dist/actions/generate-content.mjs.map +1 -1
  28. package/dist/actions/generate-image.cjs +4 -4
  29. package/dist/actions/generate-image.cjs.map +1 -1
  30. package/dist/actions/generate-image.d.cts +74 -3
  31. package/dist/actions/generate-image.d.cts.map +1 -1
  32. package/dist/actions/generate-image.d.mts +74 -3
  33. package/dist/actions/generate-image.d.mts.map +1 -1
  34. package/dist/actions/generate-image.mjs +4 -4
  35. package/dist/actions/generate-image.mjs.map +1 -1
  36. package/dist/actions/generate-videos.cjs +4 -4
  37. package/dist/actions/generate-videos.cjs.map +1 -1
  38. package/dist/actions/generate-videos.d.cts +52 -3
  39. package/dist/actions/generate-videos.d.cts.map +1 -1
  40. package/dist/actions/generate-videos.d.mts +52 -3
  41. package/dist/actions/generate-videos.d.mts.map +1 -1
  42. package/dist/actions/generate-videos.mjs +4 -4
  43. package/dist/actions/generate-videos.mjs.map +1 -1
  44. package/dist/actions/list-models.cjs +16 -16
  45. package/dist/actions/list-models.cjs.map +1 -1
  46. package/dist/actions/list-models.d.cts +79 -3
  47. package/dist/actions/list-models.d.cts.map +1 -1
  48. package/dist/actions/list-models.d.mts +79 -3
  49. package/dist/actions/list-models.d.mts.map +1 -1
  50. package/dist/actions/list-models.mjs +16 -16
  51. package/dist/actions/list-models.mjs.map +1 -1
  52. package/dist/actions/wait-for-video.cjs +11 -11
  53. package/dist/actions/wait-for-video.cjs.map +1 -1
  54. package/dist/actions/wait-for-video.d.cts +33 -3
  55. package/dist/actions/wait-for-video.d.cts.map +1 -1
  56. package/dist/actions/wait-for-video.d.mts +33 -3
  57. package/dist/actions/wait-for-video.d.mts.map +1 -1
  58. package/dist/actions/wait-for-video.mjs +11 -11
  59. package/dist/actions/wait-for-video.mjs.map +1 -1
  60. package/dist/execute.cjs +1 -1
  61. package/dist/execute.cjs.map +1 -1
  62. package/dist/execute.mjs +1 -1
  63. package/dist/execute.mjs.map +1 -1
  64. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"list-models.cjs","names":["z","action"],"sources":["../../src/actions/list-models.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const GeminiListModelsInput: z.ZodTypeAny = z.object({\n page_size: z.number().int().describe(\"Maximum number of models to return per page (default 50, max 1000).\").optional(),\n page_token: z.string().describe(\"Token from a previous response's nextPageToken to retrieve the next page.\").optional(),\n filter_prefix: z.string().default(\"\").describe(\"Filter models by name prefix (client-side). Leave empty to get all models.\").optional(),\n});\nconst GeminiListModels_ModelSchema: z.ZodTypeAny = z.object({\n name: z.string().describe(\"Resource identifier in format models/{model}\"),\n topK: z.number().int().describe(\"Default top-k sampling parameter\").nullable().optional(),\n topP: z.number().describe(\"Default nucleus sampling parameter\").nullable().optional(),\n version: z.string().describe(\"Major version number\"),\n thinking: z.boolean().describe(\"Whether model supports thinking capability\").nullable().optional(),\n baseModelId: z.string().describe(\"Base model name for generation requests\").nullable().optional(),\n description: z.string().describe(\"Brief model summary\").nullable().optional(),\n displayName: z.string().describe(\"Human-readable model name\").nullable().optional(),\n temperature: z.union([z.number().int(), z.number()]).nullable().optional(),\n maxTemperature: z.union([z.number().int(), z.number()]).nullable().optional(),\n inputTokenLimit: z.number().int().describe(\"Maximum input tokens allowed\").nullable().optional(),\n outputTokenLimit: z.number().int().describe(\"Maximum output tokens available\").nullable().optional(),\n supportedGenerationMethods: z.array(z.string()).describe(\"Supported methods like generateContent\").nullable().optional(),\n}).describe(\"Represents a Gemini model with its capabilities and limits.\");\nconst GeminiListModels_RawListModelsResponseSchema: z.ZodTypeAny = z.object({\n models: z.array(GeminiListModels_ModelSchema).describe(\"List of models\").nullable().optional(),\n nextPageToken: z.string().describe(\"Token for retrieving next page\").nullable().optional(),\n}).describe(\"Raw API response from the models.list endpoint.\");\nexport const GeminiListModelsOutput: z.ZodTypeAny = z.object({\n raw: GeminiListModels_RawListModelsResponseSchema.nullable(),\n models: z.array(GeminiListModels_ModelSchema).describe(\"List of available models\").nullable().optional(),\n});\n\nexport const geminiListModels = action(\"GEMINI_LIST_MODELS\", {\n slug: \"gemini-list-models\",\n name: \"List Models (Gemini API)\",\n description: \"Lists available Gemini and Veo models with their capabilities and limits. Useful for discovering supported models and their features before making generation requests. Before calling video generation tools, verify model availability here — preview Veo models (e.g., veo-3.0-generate-preview) may be unavailable or return missing video URIs; prefer stable models like veo-2.0-generate-001.\",\n input: GeminiListModelsInput,\n output: GeminiListModelsOutput,\n});\n"],"mappings":";;;AAIA,MAAa,wBAAsCA,IAAAA,EAAE,OAAO;CAC1D,WAAWA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,qEAAqE,CAAC,CAAC,SAAS;CACrH,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2EAA2E,CAAC,CAAC,SAAS;CACtH,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,4EAA4E,CAAC,CAAC,SAAS;AACxI,CAAC;AACD,MAAM,+BAA6CA,IAAAA,EAAE,OAAO;CAC1D,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8CAA8C;CACxE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACxF,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACpF,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,sBAAsB;CACnD,UAAUA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,4CAA4C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACjG,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAChG,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC5E,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2BAA2B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAClF,aAAaA,IAAAA,EAAE,MAAM,CAACA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,GAAGA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACzE,gBAAgBA,IAAAA,EAAE,MAAM,CAACA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,GAAGA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC5E,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8BAA8B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC/F,kBAAkBA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,iCAAiC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACnG,4BAA4BA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,wCAAwC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AACzH,CAAC,CAAC,CAAC,SAAS,6DAA6D;AACzE,MAAM,+CAA6DA,IAAAA,EAAE,OAAO;CAC1E,QAAQA,IAAAA,EAAE,MAAM,4BAA4B,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC7F,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AAC3F,CAAC,CAAC,CAAC,SAAS,iDAAiD;AAC7D,MAAa,yBAAuCA,IAAAA,EAAE,OAAO;CAC3D,KAAK,6CAA6C,SAAS;CAC3D,QAAQA,IAAAA,EAAE,MAAM,4BAA4B,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AACzG,CAAC;AAED,MAAa,mBAAmBC,eAAAA,OAAO,sBAAsB;CAC3D,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
1
+ {"version":3,"file":"list-models.cjs","names":["z","action"],"sources":["../../src/actions/list-models.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const GeminiListModelsInput = z.object({\n page_size: z.number().int().describe(\"Maximum number of models to return per page (default 50, max 1000).\").optional(),\n page_token: z.string().describe(\"Token from a previous response's nextPageToken to retrieve the next page.\").optional(),\n filter_prefix: z.string().default(\"\").describe(\"Filter models by name prefix (client-side). Leave empty to get all models.\").optional(),\n});\nconst GeminiListModels_ModelSchema = z.object({\n name: z.string().describe(\"Resource identifier in format models/{model}\").nullable(),\n topK: z.preprocess((value) => (value === null ? undefined : value), z.number().int().describe(\"Default top-k sampling parameter\").optional()),\n topP: z.preprocess((value) => (value === null ? undefined : value), z.number().describe(\"Default nucleus sampling parameter\").optional()),\n version: z.string().describe(\"Major version number\").nullable(),\n thinking: z.preprocess((value) => (value === null ? undefined : value), z.boolean().describe(\"Whether model supports thinking capability\").optional()),\n baseModelId: z.preprocess((value) => (value === null ? undefined : value), z.string().describe(\"Base model name for generation requests\").optional()),\n description: z.preprocess((value) => (value === null ? undefined : value), z.string().describe(\"Brief model summary\").optional()),\n displayName: z.preprocess((value) => (value === null ? undefined : value), z.string().describe(\"Human-readable model name\").optional()),\n temperature: z.preprocess((value) => (value === null ? undefined : value), z.union([z.number().int(), z.number()]).optional()),\n maxTemperature: z.preprocess((value) => (value === null ? undefined : value), z.union([z.number().int(), z.number()]).optional()),\n inputTokenLimit: z.preprocess((value) => (value === null ? undefined : value), z.number().int().describe(\"Maximum input tokens allowed\").optional()),\n outputTokenLimit: z.preprocess((value) => (value === null ? undefined : value), z.number().int().describe(\"Maximum output tokens available\").optional()),\n supportedGenerationMethods: z.preprocess((value) => (value === null ? undefined : value), z.array(z.string()).describe(\"Supported methods like generateContent\").optional()),\n}).describe(\"Represents a Gemini model with its capabilities and limits.\");\nconst GeminiListModels_RawListModelsResponseSchema = z.object({\n models: z.preprocess((value) => (value === null ? undefined : value), z.array(GeminiListModels_ModelSchema).describe(\"List of models\").optional()),\n nextPageToken: z.preprocess((value) => (value === null ? undefined : value), z.string().describe(\"Token for retrieving next page\").optional()),\n}).describe(\"Raw API response from the models.list endpoint.\");\nexport const GeminiListModelsOutput = z.object({\n raw: GeminiListModels_RawListModelsResponseSchema.nullable(),\n models: z.preprocess((value) => (value === null ? undefined : value), z.array(GeminiListModels_ModelSchema).describe(\"List of available models\").optional()),\n});\n\nexport const geminiListModels = action(\"GEMINI_LIST_MODELS\", {\n slug: \"gemini-list-models\",\n name: \"List Models (Gemini API)\",\n description: \"Lists available Gemini and Veo models with their capabilities and limits. Useful for discovering supported models and their features before making generation requests. Before calling video generation tools, verify model availability here — preview Veo models (e.g., veo-3.0-generate-preview) may be unavailable or return missing video URIs; prefer stable models like veo-2.0-generate-001.\",\n input: GeminiListModelsInput,\n output: GeminiListModelsOutput,\n});\n"],"mappings":"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"}
@@ -1,9 +1,85 @@
1
1
  import { z } from "zod";
2
2
 
3
3
  //#region src/actions/list-models.d.ts
4
- declare const GeminiListModelsInput: z.ZodTypeAny;
5
- declare const GeminiListModelsOutput: z.ZodTypeAny;
6
- declare const geminiListModels: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
4
+ declare const GeminiListModelsInput: z.ZodObject<{
5
+ page_size: z.ZodOptional<z.ZodNumber>;
6
+ page_token: z.ZodOptional<z.ZodString>;
7
+ filter_prefix: z.ZodOptional<z.ZodDefault<z.ZodString>>;
8
+ }, z.core.$strip>;
9
+ declare const GeminiListModelsOutput: z.ZodObject<{
10
+ raw: z.ZodNullable<z.ZodObject<{
11
+ models: z.ZodPreprocess<z.ZodOptional<z.ZodArray<z.ZodObject<{
12
+ name: z.ZodNullable<z.ZodString>;
13
+ topK: z.ZodPreprocess<z.ZodOptional<z.ZodNumber>>;
14
+ topP: z.ZodPreprocess<z.ZodOptional<z.ZodNumber>>;
15
+ version: z.ZodNullable<z.ZodString>;
16
+ thinking: z.ZodPreprocess<z.ZodOptional<z.ZodBoolean>>;
17
+ baseModelId: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
18
+ description: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
19
+ displayName: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
20
+ temperature: z.ZodPreprocess<z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodNumber]>>>;
21
+ maxTemperature: z.ZodPreprocess<z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodNumber]>>>;
22
+ inputTokenLimit: z.ZodPreprocess<z.ZodOptional<z.ZodNumber>>;
23
+ outputTokenLimit: z.ZodPreprocess<z.ZodOptional<z.ZodNumber>>;
24
+ supportedGenerationMethods: z.ZodPreprocess<z.ZodOptional<z.ZodArray<z.ZodString>>>;
25
+ }, z.core.$strip>>>>;
26
+ nextPageToken: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
27
+ }, z.core.$strip>>;
28
+ models: z.ZodPreprocess<z.ZodOptional<z.ZodArray<z.ZodObject<{
29
+ name: z.ZodNullable<z.ZodString>;
30
+ topK: z.ZodPreprocess<z.ZodOptional<z.ZodNumber>>;
31
+ topP: z.ZodPreprocess<z.ZodOptional<z.ZodNumber>>;
32
+ version: z.ZodNullable<z.ZodString>;
33
+ thinking: z.ZodPreprocess<z.ZodOptional<z.ZodBoolean>>;
34
+ baseModelId: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
35
+ description: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
36
+ displayName: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
37
+ temperature: z.ZodPreprocess<z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodNumber]>>>;
38
+ maxTemperature: z.ZodPreprocess<z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodNumber]>>>;
39
+ inputTokenLimit: z.ZodPreprocess<z.ZodOptional<z.ZodNumber>>;
40
+ outputTokenLimit: z.ZodPreprocess<z.ZodOptional<z.ZodNumber>>;
41
+ supportedGenerationMethods: z.ZodPreprocess<z.ZodOptional<z.ZodArray<z.ZodString>>>;
42
+ }, z.core.$strip>>>>;
43
+ }, z.core.$strip>;
44
+ declare const geminiListModels: import("@keystrokehq/action").WorkflowActionDefinition<{
45
+ page_size?: number | undefined;
46
+ page_token?: string | undefined;
47
+ filter_prefix?: string | undefined;
48
+ }, {
49
+ raw: {
50
+ models?: {
51
+ name: string | null;
52
+ version: string | null;
53
+ topK?: number | undefined;
54
+ topP?: number | undefined;
55
+ thinking?: boolean | undefined;
56
+ baseModelId?: string | undefined;
57
+ description?: string | undefined;
58
+ displayName?: string | undefined;
59
+ temperature?: number | undefined;
60
+ maxTemperature?: number | undefined;
61
+ inputTokenLimit?: number | undefined;
62
+ outputTokenLimit?: number | undefined;
63
+ supportedGenerationMethods?: string[] | undefined;
64
+ }[] | undefined;
65
+ nextPageToken?: string | undefined;
66
+ } | null;
67
+ models?: {
68
+ name: string | null;
69
+ version: string | null;
70
+ topK?: number | undefined;
71
+ topP?: number | undefined;
72
+ thinking?: boolean | undefined;
73
+ baseModelId?: string | undefined;
74
+ description?: string | undefined;
75
+ displayName?: string | undefined;
76
+ temperature?: number | undefined;
77
+ maxTemperature?: number | undefined;
78
+ inputTokenLimit?: number | undefined;
79
+ outputTokenLimit?: number | undefined;
80
+ supportedGenerationMethods?: string[] | undefined;
81
+ }[] | undefined;
82
+ }, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
7
83
  //#endregion
8
84
  export { geminiListModels };
9
85
  //# sourceMappingURL=list-models.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-models.d.cts","names":[],"sources":["../../src/actions/list-models.ts"],"mappings":";;;cAIa,qBAAA,EAAuB,CAAA,CAAE,UAIpC;AAAA,cAoBW,sBAAA,EAAwB,CAAA,CAAE,UAGrC;AAAA,cAEW,gBAAA,gCAAgB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
1
+ {"version":3,"file":"list-models.d.cts","names":[],"sources":["../../src/actions/list-models.ts"],"mappings":";;;cAIa,qBAAA,EAAqB,CAAA,CAAA,SAAA;;;;;cAwBrB,sBAAA,EAAsB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAKtB,gBAAA,gCAAgB,wBAAA"}
@@ -1,9 +1,85 @@
1
1
  import { z } from "zod";
2
2
 
3
3
  //#region src/actions/list-models.d.ts
4
- declare const GeminiListModelsInput: z.ZodTypeAny;
5
- declare const GeminiListModelsOutput: z.ZodTypeAny;
6
- declare const geminiListModels: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
4
+ declare const GeminiListModelsInput: z.ZodObject<{
5
+ page_size: z.ZodOptional<z.ZodNumber>;
6
+ page_token: z.ZodOptional<z.ZodString>;
7
+ filter_prefix: z.ZodOptional<z.ZodDefault<z.ZodString>>;
8
+ }, z.core.$strip>;
9
+ declare const GeminiListModelsOutput: z.ZodObject<{
10
+ raw: z.ZodNullable<z.ZodObject<{
11
+ models: z.ZodPreprocess<z.ZodOptional<z.ZodArray<z.ZodObject<{
12
+ name: z.ZodNullable<z.ZodString>;
13
+ topK: z.ZodPreprocess<z.ZodOptional<z.ZodNumber>>;
14
+ topP: z.ZodPreprocess<z.ZodOptional<z.ZodNumber>>;
15
+ version: z.ZodNullable<z.ZodString>;
16
+ thinking: z.ZodPreprocess<z.ZodOptional<z.ZodBoolean>>;
17
+ baseModelId: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
18
+ description: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
19
+ displayName: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
20
+ temperature: z.ZodPreprocess<z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodNumber]>>>;
21
+ maxTemperature: z.ZodPreprocess<z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodNumber]>>>;
22
+ inputTokenLimit: z.ZodPreprocess<z.ZodOptional<z.ZodNumber>>;
23
+ outputTokenLimit: z.ZodPreprocess<z.ZodOptional<z.ZodNumber>>;
24
+ supportedGenerationMethods: z.ZodPreprocess<z.ZodOptional<z.ZodArray<z.ZodString>>>;
25
+ }, z.core.$strip>>>>;
26
+ nextPageToken: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
27
+ }, z.core.$strip>>;
28
+ models: z.ZodPreprocess<z.ZodOptional<z.ZodArray<z.ZodObject<{
29
+ name: z.ZodNullable<z.ZodString>;
30
+ topK: z.ZodPreprocess<z.ZodOptional<z.ZodNumber>>;
31
+ topP: z.ZodPreprocess<z.ZodOptional<z.ZodNumber>>;
32
+ version: z.ZodNullable<z.ZodString>;
33
+ thinking: z.ZodPreprocess<z.ZodOptional<z.ZodBoolean>>;
34
+ baseModelId: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
35
+ description: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
36
+ displayName: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
37
+ temperature: z.ZodPreprocess<z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodNumber]>>>;
38
+ maxTemperature: z.ZodPreprocess<z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodNumber]>>>;
39
+ inputTokenLimit: z.ZodPreprocess<z.ZodOptional<z.ZodNumber>>;
40
+ outputTokenLimit: z.ZodPreprocess<z.ZodOptional<z.ZodNumber>>;
41
+ supportedGenerationMethods: z.ZodPreprocess<z.ZodOptional<z.ZodArray<z.ZodString>>>;
42
+ }, z.core.$strip>>>>;
43
+ }, z.core.$strip>;
44
+ declare const geminiListModels: import("@keystrokehq/action").WorkflowActionDefinition<{
45
+ page_size?: number | undefined;
46
+ page_token?: string | undefined;
47
+ filter_prefix?: string | undefined;
48
+ }, {
49
+ raw: {
50
+ models?: {
51
+ name: string | null;
52
+ version: string | null;
53
+ topK?: number | undefined;
54
+ topP?: number | undefined;
55
+ thinking?: boolean | undefined;
56
+ baseModelId?: string | undefined;
57
+ description?: string | undefined;
58
+ displayName?: string | undefined;
59
+ temperature?: number | undefined;
60
+ maxTemperature?: number | undefined;
61
+ inputTokenLimit?: number | undefined;
62
+ outputTokenLimit?: number | undefined;
63
+ supportedGenerationMethods?: string[] | undefined;
64
+ }[] | undefined;
65
+ nextPageToken?: string | undefined;
66
+ } | null;
67
+ models?: {
68
+ name: string | null;
69
+ version: string | null;
70
+ topK?: number | undefined;
71
+ topP?: number | undefined;
72
+ thinking?: boolean | undefined;
73
+ baseModelId?: string | undefined;
74
+ description?: string | undefined;
75
+ displayName?: string | undefined;
76
+ temperature?: number | undefined;
77
+ maxTemperature?: number | undefined;
78
+ inputTokenLimit?: number | undefined;
79
+ outputTokenLimit?: number | undefined;
80
+ supportedGenerationMethods?: string[] | undefined;
81
+ }[] | undefined;
82
+ }, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
7
83
  //#endregion
8
84
  export { geminiListModels };
9
85
  //# sourceMappingURL=list-models.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-models.d.mts","names":[],"sources":["../../src/actions/list-models.ts"],"mappings":";;;cAIa,qBAAA,EAAuB,CAAA,CAAE,UAIpC;AAAA,cAoBW,sBAAA,EAAwB,CAAA,CAAE,UAGrC;AAAA,cAEW,gBAAA,gCAAgB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
1
+ {"version":3,"file":"list-models.d.mts","names":[],"sources":["../../src/actions/list-models.ts"],"mappings":";;;cAIa,qBAAA,EAAqB,CAAA,CAAA,SAAA;;;;;cAwBrB,sBAAA,EAAsB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAKtB,gBAAA,gCAAgB,wBAAA"}
@@ -7,23 +7,23 @@ const GeminiListModelsInput = z.object({
7
7
  filter_prefix: z.string().default("").describe("Filter models by name prefix (client-side). Leave empty to get all models.").optional()
8
8
  });
9
9
  const GeminiListModels_ModelSchema = z.object({
10
- name: z.string().describe("Resource identifier in format models/{model}"),
11
- topK: z.number().int().describe("Default top-k sampling parameter").nullable().optional(),
12
- topP: z.number().describe("Default nucleus sampling parameter").nullable().optional(),
13
- version: z.string().describe("Major version number"),
14
- thinking: z.boolean().describe("Whether model supports thinking capability").nullable().optional(),
15
- baseModelId: z.string().describe("Base model name for generation requests").nullable().optional(),
16
- description: z.string().describe("Brief model summary").nullable().optional(),
17
- displayName: z.string().describe("Human-readable model name").nullable().optional(),
18
- temperature: z.union([z.number().int(), z.number()]).nullable().optional(),
19
- maxTemperature: z.union([z.number().int(), z.number()]).nullable().optional(),
20
- inputTokenLimit: z.number().int().describe("Maximum input tokens allowed").nullable().optional(),
21
- outputTokenLimit: z.number().int().describe("Maximum output tokens available").nullable().optional(),
22
- supportedGenerationMethods: z.array(z.string()).describe("Supported methods like generateContent").nullable().optional()
10
+ name: z.string().describe("Resource identifier in format models/{model}").nullable(),
11
+ topK: z.preprocess((value) => value === null ? void 0 : value, z.number().int().describe("Default top-k sampling parameter").optional()),
12
+ topP: z.preprocess((value) => value === null ? void 0 : value, z.number().describe("Default nucleus sampling parameter").optional()),
13
+ version: z.string().describe("Major version number").nullable(),
14
+ thinking: z.preprocess((value) => value === null ? void 0 : value, z.boolean().describe("Whether model supports thinking capability").optional()),
15
+ baseModelId: z.preprocess((value) => value === null ? void 0 : value, z.string().describe("Base model name for generation requests").optional()),
16
+ description: z.preprocess((value) => value === null ? void 0 : value, z.string().describe("Brief model summary").optional()),
17
+ displayName: z.preprocess((value) => value === null ? void 0 : value, z.string().describe("Human-readable model name").optional()),
18
+ temperature: z.preprocess((value) => value === null ? void 0 : value, z.union([z.number().int(), z.number()]).optional()),
19
+ maxTemperature: z.preprocess((value) => value === null ? void 0 : value, z.union([z.number().int(), z.number()]).optional()),
20
+ inputTokenLimit: z.preprocess((value) => value === null ? void 0 : value, z.number().int().describe("Maximum input tokens allowed").optional()),
21
+ outputTokenLimit: z.preprocess((value) => value === null ? void 0 : value, z.number().int().describe("Maximum output tokens available").optional()),
22
+ supportedGenerationMethods: z.preprocess((value) => value === null ? void 0 : value, z.array(z.string()).describe("Supported methods like generateContent").optional())
23
23
  }).describe("Represents a Gemini model with its capabilities and limits.");
24
24
  const GeminiListModels_RawListModelsResponseSchema = z.object({
25
- models: z.array(GeminiListModels_ModelSchema).describe("List of models").nullable().optional(),
26
- nextPageToken: z.string().describe("Token for retrieving next page").nullable().optional()
25
+ models: z.preprocess((value) => value === null ? void 0 : value, z.array(GeminiListModels_ModelSchema).describe("List of models").optional()),
26
+ nextPageToken: z.preprocess((value) => value === null ? void 0 : value, z.string().describe("Token for retrieving next page").optional())
27
27
  }).describe("Raw API response from the models.list endpoint.");
28
28
  const geminiListModels = action("GEMINI_LIST_MODELS", {
29
29
  slug: "gemini-list-models",
@@ -32,7 +32,7 @@ const geminiListModels = action("GEMINI_LIST_MODELS", {
32
32
  input: GeminiListModelsInput,
33
33
  output: z.object({
34
34
  raw: GeminiListModels_RawListModelsResponseSchema.nullable(),
35
- models: z.array(GeminiListModels_ModelSchema).describe("List of available models").nullable().optional()
35
+ models: z.preprocess((value) => value === null ? void 0 : value, z.array(GeminiListModels_ModelSchema).describe("List of available models").optional())
36
36
  })
37
37
  });
38
38
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"list-models.mjs","names":[],"sources":["../../src/actions/list-models.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const GeminiListModelsInput: z.ZodTypeAny = z.object({\n page_size: z.number().int().describe(\"Maximum number of models to return per page (default 50, max 1000).\").optional(),\n page_token: z.string().describe(\"Token from a previous response's nextPageToken to retrieve the next page.\").optional(),\n filter_prefix: z.string().default(\"\").describe(\"Filter models by name prefix (client-side). Leave empty to get all models.\").optional(),\n});\nconst GeminiListModels_ModelSchema: z.ZodTypeAny = z.object({\n name: z.string().describe(\"Resource identifier in format models/{model}\"),\n topK: z.number().int().describe(\"Default top-k sampling parameter\").nullable().optional(),\n topP: z.number().describe(\"Default nucleus sampling parameter\").nullable().optional(),\n version: z.string().describe(\"Major version number\"),\n thinking: z.boolean().describe(\"Whether model supports thinking capability\").nullable().optional(),\n baseModelId: z.string().describe(\"Base model name for generation requests\").nullable().optional(),\n description: z.string().describe(\"Brief model summary\").nullable().optional(),\n displayName: z.string().describe(\"Human-readable model name\").nullable().optional(),\n temperature: z.union([z.number().int(), z.number()]).nullable().optional(),\n maxTemperature: z.union([z.number().int(), z.number()]).nullable().optional(),\n inputTokenLimit: z.number().int().describe(\"Maximum input tokens allowed\").nullable().optional(),\n outputTokenLimit: z.number().int().describe(\"Maximum output tokens available\").nullable().optional(),\n supportedGenerationMethods: z.array(z.string()).describe(\"Supported methods like generateContent\").nullable().optional(),\n}).describe(\"Represents a Gemini model with its capabilities and limits.\");\nconst GeminiListModels_RawListModelsResponseSchema: z.ZodTypeAny = z.object({\n models: z.array(GeminiListModels_ModelSchema).describe(\"List of models\").nullable().optional(),\n nextPageToken: z.string().describe(\"Token for retrieving next page\").nullable().optional(),\n}).describe(\"Raw API response from the models.list endpoint.\");\nexport const GeminiListModelsOutput: z.ZodTypeAny = z.object({\n raw: GeminiListModels_RawListModelsResponseSchema.nullable(),\n models: z.array(GeminiListModels_ModelSchema).describe(\"List of available models\").nullable().optional(),\n});\n\nexport const geminiListModels = action(\"GEMINI_LIST_MODELS\", {\n slug: \"gemini-list-models\",\n name: \"List Models (Gemini API)\",\n description: \"Lists available Gemini and Veo models with their capabilities and limits. Useful for discovering supported models and their features before making generation requests. Before calling video generation tools, verify model availability here — preview Veo models (e.g., veo-3.0-generate-preview) may be unavailable or return missing video URIs; prefer stable models like veo-2.0-generate-001.\",\n input: GeminiListModelsInput,\n output: GeminiListModelsOutput,\n});\n"],"mappings":";;;AAIA,MAAa,wBAAsC,EAAE,OAAO;CAC1D,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,qEAAqE,CAAC,CAAC,SAAS;CACrH,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,2EAA2E,CAAC,CAAC,SAAS;CACtH,eAAe,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,4EAA4E,CAAC,CAAC,SAAS;AACxI,CAAC;AACD,MAAM,+BAA6C,EAAE,OAAO;CAC1D,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,8CAA8C;CACxE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACxF,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACpF,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,sBAAsB;CACnD,UAAU,EAAE,QAAQ,CAAC,CAAC,SAAS,4CAA4C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACjG,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAChG,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC5E,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,2BAA2B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAClF,aAAa,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACzE,gBAAgB,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC5E,iBAAiB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8BAA8B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC/F,kBAAkB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,iCAAiC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACnG,4BAA4B,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,wCAAwC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AACzH,CAAC,CAAC,CAAC,SAAS,6DAA6D;AACzE,MAAM,+CAA6D,EAAE,OAAO;CAC1E,QAAQ,EAAE,MAAM,4BAA4B,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC7F,eAAe,EAAE,OAAO,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AAC3F,CAAC,CAAC,CAAC,SAAS,iDAAiD;AAM7D,MAAa,mBAAmB,OAAO,sBAAsB;CAC3D,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAVkD,EAAE,OAAO;EAC3D,KAAK,6CAA6C,SAAS;EAC3D,QAAQ,EAAE,MAAM,4BAA4B,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACzG,CAOU;AACV,CAAC"}
1
+ {"version":3,"file":"list-models.mjs","names":[],"sources":["../../src/actions/list-models.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const GeminiListModelsInput = z.object({\n page_size: z.number().int().describe(\"Maximum number of models to return per page (default 50, max 1000).\").optional(),\n page_token: z.string().describe(\"Token from a previous response's nextPageToken to retrieve the next page.\").optional(),\n filter_prefix: z.string().default(\"\").describe(\"Filter models by name prefix (client-side). Leave empty to get all models.\").optional(),\n});\nconst GeminiListModels_ModelSchema = z.object({\n name: z.string().describe(\"Resource identifier in format models/{model}\").nullable(),\n topK: z.preprocess((value) => (value === null ? undefined : value), z.number().int().describe(\"Default top-k sampling parameter\").optional()),\n topP: z.preprocess((value) => (value === null ? undefined : value), z.number().describe(\"Default nucleus sampling parameter\").optional()),\n version: z.string().describe(\"Major version number\").nullable(),\n thinking: z.preprocess((value) => (value === null ? undefined : value), z.boolean().describe(\"Whether model supports thinking capability\").optional()),\n baseModelId: z.preprocess((value) => (value === null ? undefined : value), z.string().describe(\"Base model name for generation requests\").optional()),\n description: z.preprocess((value) => (value === null ? undefined : value), z.string().describe(\"Brief model summary\").optional()),\n displayName: z.preprocess((value) => (value === null ? undefined : value), z.string().describe(\"Human-readable model name\").optional()),\n temperature: z.preprocess((value) => (value === null ? undefined : value), z.union([z.number().int(), z.number()]).optional()),\n maxTemperature: z.preprocess((value) => (value === null ? undefined : value), z.union([z.number().int(), z.number()]).optional()),\n inputTokenLimit: z.preprocess((value) => (value === null ? undefined : value), z.number().int().describe(\"Maximum input tokens allowed\").optional()),\n outputTokenLimit: z.preprocess((value) => (value === null ? undefined : value), z.number().int().describe(\"Maximum output tokens available\").optional()),\n supportedGenerationMethods: z.preprocess((value) => (value === null ? undefined : value), z.array(z.string()).describe(\"Supported methods like generateContent\").optional()),\n}).describe(\"Represents a Gemini model with its capabilities and limits.\");\nconst GeminiListModels_RawListModelsResponseSchema = z.object({\n models: z.preprocess((value) => (value === null ? undefined : value), z.array(GeminiListModels_ModelSchema).describe(\"List of models\").optional()),\n nextPageToken: z.preprocess((value) => (value === null ? undefined : value), z.string().describe(\"Token for retrieving next page\").optional()),\n}).describe(\"Raw API response from the models.list endpoint.\");\nexport const GeminiListModelsOutput = z.object({\n raw: GeminiListModels_RawListModelsResponseSchema.nullable(),\n models: z.preprocess((value) => (value === null ? undefined : value), z.array(GeminiListModels_ModelSchema).describe(\"List of available models\").optional()),\n});\n\nexport const geminiListModels = action(\"GEMINI_LIST_MODELS\", {\n slug: \"gemini-list-models\",\n name: \"List Models (Gemini API)\",\n description: \"Lists available Gemini and Veo models with their capabilities and limits. Useful for discovering supported models and their features before making generation requests. Before calling video generation tools, verify model availability here — preview Veo models (e.g., veo-3.0-generate-preview) may be unavailable or return missing video URIs; prefer stable models like veo-2.0-generate-001.\",\n input: GeminiListModelsInput,\n output: GeminiListModelsOutput,\n});\n"],"mappings":"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"}
@@ -3,25 +3,25 @@ let zod = require("zod");
3
3
  //#region src/actions/wait-for-video.ts
4
4
  const GeminiWaitForVideoInput = zod.z.object({ operation_name: zod.z.string().describe("The full operation name returned by GEMINI_GENERATE_VIDEOS. Format: 'models/<model-id>/operations/<operation-id>' where <operation-id> is an alphanumeric string (e.g., 'models/veo-3.0-generate-001/operations/m8dl4dtqqzg8'). IMPORTANT: Do NOT use placeholder values like '...' - use the exact operation_name string from the generate videos response. CRITICAL: Must be from a generate-video operation (VEO_2, VEO_3, VEO_3_FAST models), NOT generate-preview operations (VEO_3_1, VEO_3_1_FAST models). Do not reuse operation_name from a failed GEMINI_GENERATE_VIDEOS job — always start a new GEMINI_GENERATE_VIDEOS call for retried requests.") });
5
5
  const GeminiWaitForVideo_FileDownloadableSchema = zod.z.object({
6
- name: zod.z.string().describe("Name of the file"),
7
- s3url: zod.z.string().describe("S3 URL of the downloaded file."),
8
- mimetype: zod.z.string().describe("Mime type of the file.")
6
+ name: zod.z.string().describe("Name of the file").nullable(),
7
+ s3url: zod.z.string().describe("S3 URL of the downloaded file.").nullable(),
8
+ mimetype: zod.z.string().describe("Mime type of the file.").nullable()
9
9
  });
10
10
  const GeminiWaitForVideo_RaiFilteringResultSchema = zod.z.object({
11
- message: zod.z.string().describe("Human-readable message explaining the filtering and suggesting next steps."),
12
- filtered: zod.z.boolean().default(true).describe("Always True when this object is present, indicating content was filtered.").nullable().optional(),
13
- filter_reasons: zod.z.array(zod.z.string()).describe("List of reasons why the content was blocked by safety filters.").nullable().optional(),
14
- filtered_count: zod.z.number().int().describe("Number of videos filtered by RAI safety policies.")
11
+ message: zod.z.string().describe("Human-readable message explaining the filtering and suggesting next steps.").nullable(),
12
+ filtered: zod.z.preprocess((value) => value === null ? void 0 : value, zod.z.boolean().default(true).describe("Always True when this object is present, indicating content was filtered.").optional()),
13
+ filter_reasons: zod.z.preprocess((value) => value === null ? void 0 : value, zod.z.array(zod.z.string()).describe("List of reasons why the content was blocked by safety filters.").optional()),
14
+ filtered_count: zod.z.number().int().describe("Number of videos filtered by RAI safety policies.").nullable()
15
15
  }).describe("Represents when video generation was blocked by Responsible AI safety filters.");
16
16
  const GeminiWaitForVideoOutput = zod.z.object({
17
- success: zod.z.boolean().describe("True if video was successfully generated and downloaded, False if it was filtered by RAI safety policies."),
18
- video_file: GeminiWaitForVideo_FileDownloadableSchema.nullable().optional(),
19
- rai_filtering: GeminiWaitForVideo_RaiFilteringResultSchema.nullable().optional()
17
+ success: zod.z.boolean().describe("True if video was successfully generated and downloaded, False if it was filtered by RAI safety policies.").nullable(),
18
+ video_file: zod.z.preprocess((value) => value === null ? void 0 : value, GeminiWaitForVideo_FileDownloadableSchema.optional()),
19
+ rai_filtering: zod.z.preprocess((value) => value === null ? void 0 : value, GeminiWaitForVideo_RaiFilteringResultSchema.optional())
20
20
  });
21
21
  const geminiWaitForVideo = require_action.action("GEMINI_WAIT_FOR_VIDEO", {
22
22
  slug: "gemini-wait-for-video",
23
23
  name: "Wait and Download Video (Veo)",
24
- description: "Polls a Veo video generation operation until completion, then downloads and returns the video as a FileDownloadable. Generation takes 30–120+ seconds (up to ~10–12 min); long waits are normal, not failures. On completion, the URL is nested at data.video_file.s3url — validate it is non-empty before downstream use. A done=true response without a valid s3url indicates safety filter rejection (check raiMediaFilteredReasons) or quota exhaustion — adjust the prompt and regenerate. On timeout, use GEMINI_GET_VIDEOS_OPERATION with incremental backoff before starting a new job. Keep parallel jobs to 3–5 to avoid 429 RESOURCE_EXHAUSTED errors.",
24
+ description: "Polls a Veo video generation operation until completion, then downloads and returns the video file. Generation takes 30–120+ seconds (up to ~10–12 min); long waits are normal, not failures. A done=true response without a video file indicates safety filter rejection (check raiMediaFilteredReasons) or quota exhaustion — adjust the prompt and regenerate. On timeout, use GEMINI_GET_VIDEOS_OPERATION with incremental backoff before starting a new job. Keep parallel jobs to 3–5 to avoid 429 RESOURCE_EXHAUSTED errors.",
25
25
  input: GeminiWaitForVideoInput,
26
26
  output: GeminiWaitForVideoOutput
27
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"wait-for-video.cjs","names":["z","action"],"sources":["../../src/actions/wait-for-video.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const GeminiWaitForVideoInput: z.ZodTypeAny = z.object({\n operation_name: z.string().describe(\"The full operation name returned by GEMINI_GENERATE_VIDEOS. Format: 'models/<model-id>/operations/<operation-id>' where <operation-id> is an alphanumeric string (e.g., 'models/veo-3.0-generate-001/operations/m8dl4dtqqzg8'). IMPORTANT: Do NOT use placeholder values like '...' - use the exact operation_name string from the generate videos response. CRITICAL: Must be from a generate-video operation (VEO_2, VEO_3, VEO_3_FAST models), NOT generate-preview operations (VEO_3_1, VEO_3_1_FAST models). Do not reuse operation_name from a failed GEMINI_GENERATE_VIDEOS job — always start a new GEMINI_GENERATE_VIDEOS call for retried requests.\"),\n});\nconst GeminiWaitForVideo_FileDownloadableSchema: z.ZodTypeAny = z.object({\n name: z.string().describe(\"Name of the file\"),\n s3url: z.string().describe(\"S3 URL of the downloaded file.\"),\n mimetype: z.string().describe(\"Mime type of the file.\"),\n});\nconst GeminiWaitForVideo_RaiFilteringResultSchema: z.ZodTypeAny = z.object({\n message: z.string().describe(\"Human-readable message explaining the filtering and suggesting next steps.\"),\n filtered: z.boolean().default(true).describe(\"Always True when this object is present, indicating content was filtered.\").nullable().optional(),\n filter_reasons: z.array(z.string()).describe(\"List of reasons why the content was blocked by safety filters.\").nullable().optional(),\n filtered_count: z.number().int().describe(\"Number of videos filtered by RAI safety policies.\"),\n}).describe(\"Represents when video generation was blocked by Responsible AI safety filters.\");\nexport const GeminiWaitForVideoOutput: z.ZodTypeAny = z.object({\n success: z.boolean().describe(\"True if video was successfully generated and downloaded, False if it was filtered by RAI safety policies.\"),\n video_file: GeminiWaitForVideo_FileDownloadableSchema.nullable().optional(),\n rai_filtering: GeminiWaitForVideo_RaiFilteringResultSchema.nullable().optional(),\n});\n\nexport const geminiWaitForVideo = action(\"GEMINI_WAIT_FOR_VIDEO\", {\n slug: \"gemini-wait-for-video\",\n name: \"Wait and Download Video (Veo)\",\n description: \"Polls a Veo video generation operation until completion, then downloads and returns the video as a FileDownloadable. Generation takes 30–120+ seconds (up to ~10–12 min); long waits are normal, not failures. On completion, the URL is nested at data.video_file.s3url — validate it is non-empty before downstream use. A done=true response without a valid s3url indicates safety filter rejection (check raiMediaFilteredReasons) or quota exhaustion — adjust the prompt and regenerate. On timeout, use GEMINI_GET_VIDEOS_OPERATION with incremental backoff before starting a new job. Keep parallel jobs to 3–5 to avoid 429 RESOURCE_EXHAUSTED errors.\",\n input: GeminiWaitForVideoInput,\n output: GeminiWaitForVideoOutput,\n});\n"],"mappings":";;;AAIA,MAAa,0BAAwCA,IAAAA,EAAE,OAAO,EAC5D,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,+nBAA+nB,EACrqB,CAAC;AACD,MAAM,4CAA0DA,IAAAA,EAAE,OAAO;CACvE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kBAAkB;CAC5C,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,gCAAgC;CAC3D,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wBAAwB;AACxD,CAAC;AACD,MAAM,8CAA4DA,IAAAA,EAAE,OAAO;CACzE,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4EAA4E;CACzG,UAAUA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,2EAA2E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC9I,gBAAgBA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,gEAAgE,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACnI,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,mDAAmD;AAC/F,CAAC,CAAC,CAAC,SAAS,gFAAgF;AAC5F,MAAa,2BAAyCA,IAAAA,EAAE,OAAO;CAC7D,SAASA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,2GAA2G;CACzI,YAAY,0CAA0C,SAAS,CAAC,CAAC,SAAS;CAC1E,eAAe,4CAA4C,SAAS,CAAC,CAAC,SAAS;AACjF,CAAC;AAED,MAAa,qBAAqBC,eAAAA,OAAO,yBAAyB;CAChE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
1
+ {"version":3,"file":"wait-for-video.cjs","names":["z","action"],"sources":["../../src/actions/wait-for-video.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const GeminiWaitForVideoInput = z.object({\n operation_name: z.string().describe(\"The full operation name returned by GEMINI_GENERATE_VIDEOS. Format: 'models/<model-id>/operations/<operation-id>' where <operation-id> is an alphanumeric string (e.g., 'models/veo-3.0-generate-001/operations/m8dl4dtqqzg8'). IMPORTANT: Do NOT use placeholder values like '...' - use the exact operation_name string from the generate videos response. CRITICAL: Must be from a generate-video operation (VEO_2, VEO_3, VEO_3_FAST models), NOT generate-preview operations (VEO_3_1, VEO_3_1_FAST models). Do not reuse operation_name from a failed GEMINI_GENERATE_VIDEOS job — always start a new GEMINI_GENERATE_VIDEOS call for retried requests.\"),\n});\nconst GeminiWaitForVideo_FileDownloadableSchema = z.object({\n name: z.string().describe(\"Name of the file\").nullable(),\n s3url: z.string().describe(\"S3 URL of the downloaded file.\").nullable(),\n mimetype: z.string().describe(\"Mime type of the file.\").nullable(),\n});\nconst GeminiWaitForVideo_RaiFilteringResultSchema = z.object({\n message: z.string().describe(\"Human-readable message explaining the filtering and suggesting next steps.\").nullable(),\n filtered: z.preprocess((value) => (value === null ? undefined : value), z.boolean().default(true).describe(\"Always True when this object is present, indicating content was filtered.\").optional()),\n filter_reasons: z.preprocess((value) => (value === null ? undefined : value), z.array(z.string()).describe(\"List of reasons why the content was blocked by safety filters.\").optional()),\n filtered_count: z.number().int().describe(\"Number of videos filtered by RAI safety policies.\").nullable(),\n}).describe(\"Represents when video generation was blocked by Responsible AI safety filters.\");\nexport const GeminiWaitForVideoOutput = z.object({\n success: z.boolean().describe(\"True if video was successfully generated and downloaded, False if it was filtered by RAI safety policies.\").nullable(),\n video_file: z.preprocess((value) => (value === null ? undefined : value), GeminiWaitForVideo_FileDownloadableSchema.optional()),\n rai_filtering: z.preprocess((value) => (value === null ? undefined : value), GeminiWaitForVideo_RaiFilteringResultSchema.optional()),\n});\n\nexport const geminiWaitForVideo = action(\"GEMINI_WAIT_FOR_VIDEO\", {\n slug: \"gemini-wait-for-video\",\n name: \"Wait and Download Video (Veo)\",\n description: \"Polls a Veo video generation operation until completion, then downloads and returns the video file. Generation takes 30–120+ seconds (up to ~10–12 min); long waits are normal, not failures. A done=true response without a video file indicates safety filter rejection (check raiMediaFilteredReasons) or quota exhaustion — adjust the prompt and regenerate. On timeout, use GEMINI_GET_VIDEOS_OPERATION with incremental backoff before starting a new job. Keep parallel jobs to 3–5 to avoid 429 RESOURCE_EXHAUSTED errors.\",\n input: GeminiWaitForVideoInput,\n output: GeminiWaitForVideoOutput,\n});\n"],"mappings":";;;AAIA,MAAa,0BAA0BA,IAAAA,EAAE,OAAO,EAC9C,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,+nBAA+nB,EACrqB,CAAC;AACD,MAAM,4CAA4CA,IAAAA,EAAE,OAAO;CACzD,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,SAAS;CACvD,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC,SAAS;CACtE,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS;AACnE,CAAC;AACD,MAAM,8CAA8CA,IAAAA,EAAE,OAAO;CAC3D,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4EAA4E,CAAC,CAAC,SAAS;CACpH,UAAUA,IAAAA,EAAE,YAAY,UAAW,UAAU,OAAO,SAAY,OAAQA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,2EAA2E,CAAC,CAAC,SAAS,CAAC;CAClM,gBAAgBA,IAAAA,EAAE,YAAY,UAAW,UAAU,OAAO,SAAY,OAAQA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,gEAAgE,CAAC,CAAC,SAAS,CAAC;CACvL,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,mDAAmD,CAAC,CAAC,SAAS;AAC1G,CAAC,CAAC,CAAC,SAAS,gFAAgF;AAC5F,MAAa,2BAA2BA,IAAAA,EAAE,OAAO;CAC/C,SAASA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,2GAA2G,CAAC,CAAC,SAAS;CACpJ,YAAYA,IAAAA,EAAE,YAAY,UAAW,UAAU,OAAO,SAAY,OAAQ,0CAA0C,SAAS,CAAC;CAC9H,eAAeA,IAAAA,EAAE,YAAY,UAAW,UAAU,OAAO,SAAY,OAAQ,4CAA4C,SAAS,CAAC;AACrI,CAAC;AAED,MAAa,qBAAqBC,eAAAA,OAAO,yBAAyB;CAChE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
@@ -1,9 +1,39 @@
1
1
  import { z } from "zod";
2
2
 
3
3
  //#region src/actions/wait-for-video.d.ts
4
- declare const GeminiWaitForVideoInput: z.ZodTypeAny;
5
- declare const GeminiWaitForVideoOutput: z.ZodTypeAny;
6
- declare const geminiWaitForVideo: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
4
+ declare const GeminiWaitForVideoInput: z.ZodObject<{
5
+ operation_name: z.ZodString;
6
+ }, z.core.$strip>;
7
+ declare const GeminiWaitForVideoOutput: z.ZodObject<{
8
+ success: z.ZodNullable<z.ZodBoolean>;
9
+ video_file: z.ZodPreprocess<z.ZodOptional<z.ZodObject<{
10
+ name: z.ZodNullable<z.ZodString>;
11
+ s3url: z.ZodNullable<z.ZodString>;
12
+ mimetype: z.ZodNullable<z.ZodString>;
13
+ }, z.core.$strip>>>;
14
+ rai_filtering: z.ZodPreprocess<z.ZodOptional<z.ZodObject<{
15
+ message: z.ZodNullable<z.ZodString>;
16
+ filtered: z.ZodPreprocess<z.ZodOptional<z.ZodDefault<z.ZodBoolean>>>;
17
+ filter_reasons: z.ZodPreprocess<z.ZodOptional<z.ZodArray<z.ZodString>>>;
18
+ filtered_count: z.ZodNullable<z.ZodNumber>;
19
+ }, z.core.$strip>>>;
20
+ }, z.core.$strip>;
21
+ declare const geminiWaitForVideo: import("@keystrokehq/action").WorkflowActionDefinition<{
22
+ operation_name: string;
23
+ }, {
24
+ success: boolean | null;
25
+ video_file?: {
26
+ name: string | null;
27
+ s3url: string | null;
28
+ mimetype: string | null;
29
+ } | undefined;
30
+ rai_filtering?: {
31
+ message: string | null;
32
+ filtered_count: number | null;
33
+ filtered?: boolean | undefined;
34
+ filter_reasons?: string[] | undefined;
35
+ } | undefined;
36
+ }, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
7
37
  //#endregion
8
38
  export { geminiWaitForVideo };
9
39
  //# sourceMappingURL=wait-for-video.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wait-for-video.d.cts","names":[],"sources":["../../src/actions/wait-for-video.ts"],"mappings":";;;cAIa,uBAAA,EAAyB,CAAA,CAAE,UAEtC;AAAA,cAYW,wBAAA,EAA0B,CAAA,CAAE,UAIvC;AAAA,cAEW,kBAAA,gCAAkB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
1
+ {"version":3,"file":"wait-for-video.d.cts","names":[],"sources":["../../src/actions/wait-for-video.ts"],"mappings":";;;cAIa,uBAAA,EAAuB,CAAA,CAAA,SAAA;;;cAcvB,wBAAA,EAAwB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;cAMxB,kBAAA,gCAAkB,wBAAA"}
@@ -1,9 +1,39 @@
1
1
  import { z } from "zod";
2
2
 
3
3
  //#region src/actions/wait-for-video.d.ts
4
- declare const GeminiWaitForVideoInput: z.ZodTypeAny;
5
- declare const GeminiWaitForVideoOutput: z.ZodTypeAny;
6
- declare const geminiWaitForVideo: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
4
+ declare const GeminiWaitForVideoInput: z.ZodObject<{
5
+ operation_name: z.ZodString;
6
+ }, z.core.$strip>;
7
+ declare const GeminiWaitForVideoOutput: z.ZodObject<{
8
+ success: z.ZodNullable<z.ZodBoolean>;
9
+ video_file: z.ZodPreprocess<z.ZodOptional<z.ZodObject<{
10
+ name: z.ZodNullable<z.ZodString>;
11
+ s3url: z.ZodNullable<z.ZodString>;
12
+ mimetype: z.ZodNullable<z.ZodString>;
13
+ }, z.core.$strip>>>;
14
+ rai_filtering: z.ZodPreprocess<z.ZodOptional<z.ZodObject<{
15
+ message: z.ZodNullable<z.ZodString>;
16
+ filtered: z.ZodPreprocess<z.ZodOptional<z.ZodDefault<z.ZodBoolean>>>;
17
+ filter_reasons: z.ZodPreprocess<z.ZodOptional<z.ZodArray<z.ZodString>>>;
18
+ filtered_count: z.ZodNullable<z.ZodNumber>;
19
+ }, z.core.$strip>>>;
20
+ }, z.core.$strip>;
21
+ declare const geminiWaitForVideo: import("@keystrokehq/action").WorkflowActionDefinition<{
22
+ operation_name: string;
23
+ }, {
24
+ success: boolean | null;
25
+ video_file?: {
26
+ name: string | null;
27
+ s3url: string | null;
28
+ mimetype: string | null;
29
+ } | undefined;
30
+ rai_filtering?: {
31
+ message: string | null;
32
+ filtered_count: number | null;
33
+ filtered?: boolean | undefined;
34
+ filter_reasons?: string[] | undefined;
35
+ } | undefined;
36
+ }, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
7
37
  //#endregion
8
38
  export { geminiWaitForVideo };
9
39
  //# sourceMappingURL=wait-for-video.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wait-for-video.d.mts","names":[],"sources":["../../src/actions/wait-for-video.ts"],"mappings":";;;cAIa,uBAAA,EAAyB,CAAA,CAAE,UAEtC;AAAA,cAYW,wBAAA,EAA0B,CAAA,CAAE,UAIvC;AAAA,cAEW,kBAAA,gCAAkB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
1
+ {"version":3,"file":"wait-for-video.d.mts","names":[],"sources":["../../src/actions/wait-for-video.ts"],"mappings":";;;cAIa,uBAAA,EAAuB,CAAA,CAAA,SAAA;;;cAcvB,wBAAA,EAAwB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;cAMxB,kBAAA,gCAAkB,wBAAA"}
@@ -3,25 +3,25 @@ import { z } from "zod";
3
3
  //#region src/actions/wait-for-video.ts
4
4
  const GeminiWaitForVideoInput = z.object({ operation_name: z.string().describe("The full operation name returned by GEMINI_GENERATE_VIDEOS. Format: 'models/<model-id>/operations/<operation-id>' where <operation-id> is an alphanumeric string (e.g., 'models/veo-3.0-generate-001/operations/m8dl4dtqqzg8'). IMPORTANT: Do NOT use placeholder values like '...' - use the exact operation_name string from the generate videos response. CRITICAL: Must be from a generate-video operation (VEO_2, VEO_3, VEO_3_FAST models), NOT generate-preview operations (VEO_3_1, VEO_3_1_FAST models). Do not reuse operation_name from a failed GEMINI_GENERATE_VIDEOS job — always start a new GEMINI_GENERATE_VIDEOS call for retried requests.") });
5
5
  const GeminiWaitForVideo_FileDownloadableSchema = z.object({
6
- name: z.string().describe("Name of the file"),
7
- s3url: z.string().describe("S3 URL of the downloaded file."),
8
- mimetype: z.string().describe("Mime type of the file.")
6
+ name: z.string().describe("Name of the file").nullable(),
7
+ s3url: z.string().describe("S3 URL of the downloaded file.").nullable(),
8
+ mimetype: z.string().describe("Mime type of the file.").nullable()
9
9
  });
10
10
  const GeminiWaitForVideo_RaiFilteringResultSchema = z.object({
11
- message: z.string().describe("Human-readable message explaining the filtering and suggesting next steps."),
12
- filtered: z.boolean().default(true).describe("Always True when this object is present, indicating content was filtered.").nullable().optional(),
13
- filter_reasons: z.array(z.string()).describe("List of reasons why the content was blocked by safety filters.").nullable().optional(),
14
- filtered_count: z.number().int().describe("Number of videos filtered by RAI safety policies.")
11
+ message: z.string().describe("Human-readable message explaining the filtering and suggesting next steps.").nullable(),
12
+ filtered: z.preprocess((value) => value === null ? void 0 : value, z.boolean().default(true).describe("Always True when this object is present, indicating content was filtered.").optional()),
13
+ filter_reasons: z.preprocess((value) => value === null ? void 0 : value, z.array(z.string()).describe("List of reasons why the content was blocked by safety filters.").optional()),
14
+ filtered_count: z.number().int().describe("Number of videos filtered by RAI safety policies.").nullable()
15
15
  }).describe("Represents when video generation was blocked by Responsible AI safety filters.");
16
16
  const geminiWaitForVideo = action("GEMINI_WAIT_FOR_VIDEO", {
17
17
  slug: "gemini-wait-for-video",
18
18
  name: "Wait and Download Video (Veo)",
19
- description: "Polls a Veo video generation operation until completion, then downloads and returns the video as a FileDownloadable. Generation takes 30–120+ seconds (up to ~10–12 min); long waits are normal, not failures. On completion, the URL is nested at data.video_file.s3url — validate it is non-empty before downstream use. A done=true response without a valid s3url indicates safety filter rejection (check raiMediaFilteredReasons) or quota exhaustion — adjust the prompt and regenerate. On timeout, use GEMINI_GET_VIDEOS_OPERATION with incremental backoff before starting a new job. Keep parallel jobs to 3–5 to avoid 429 RESOURCE_EXHAUSTED errors.",
19
+ description: "Polls a Veo video generation operation until completion, then downloads and returns the video file. Generation takes 30–120+ seconds (up to ~10–12 min); long waits are normal, not failures. A done=true response without a video file indicates safety filter rejection (check raiMediaFilteredReasons) or quota exhaustion — adjust the prompt and regenerate. On timeout, use GEMINI_GET_VIDEOS_OPERATION with incremental backoff before starting a new job. Keep parallel jobs to 3–5 to avoid 429 RESOURCE_EXHAUSTED errors.",
20
20
  input: GeminiWaitForVideoInput,
21
21
  output: z.object({
22
- success: z.boolean().describe("True if video was successfully generated and downloaded, False if it was filtered by RAI safety policies."),
23
- video_file: GeminiWaitForVideo_FileDownloadableSchema.nullable().optional(),
24
- rai_filtering: GeminiWaitForVideo_RaiFilteringResultSchema.nullable().optional()
22
+ success: z.boolean().describe("True if video was successfully generated and downloaded, False if it was filtered by RAI safety policies.").nullable(),
23
+ video_file: z.preprocess((value) => value === null ? void 0 : value, GeminiWaitForVideo_FileDownloadableSchema.optional()),
24
+ rai_filtering: z.preprocess((value) => value === null ? void 0 : value, GeminiWaitForVideo_RaiFilteringResultSchema.optional())
25
25
  })
26
26
  });
27
27
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"wait-for-video.mjs","names":[],"sources":["../../src/actions/wait-for-video.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const GeminiWaitForVideoInput: z.ZodTypeAny = z.object({\n operation_name: z.string().describe(\"The full operation name returned by GEMINI_GENERATE_VIDEOS. Format: 'models/<model-id>/operations/<operation-id>' where <operation-id> is an alphanumeric string (e.g., 'models/veo-3.0-generate-001/operations/m8dl4dtqqzg8'). IMPORTANT: Do NOT use placeholder values like '...' - use the exact operation_name string from the generate videos response. CRITICAL: Must be from a generate-video operation (VEO_2, VEO_3, VEO_3_FAST models), NOT generate-preview operations (VEO_3_1, VEO_3_1_FAST models). Do not reuse operation_name from a failed GEMINI_GENERATE_VIDEOS job — always start a new GEMINI_GENERATE_VIDEOS call for retried requests.\"),\n});\nconst GeminiWaitForVideo_FileDownloadableSchema: z.ZodTypeAny = z.object({\n name: z.string().describe(\"Name of the file\"),\n s3url: z.string().describe(\"S3 URL of the downloaded file.\"),\n mimetype: z.string().describe(\"Mime type of the file.\"),\n});\nconst GeminiWaitForVideo_RaiFilteringResultSchema: z.ZodTypeAny = z.object({\n message: z.string().describe(\"Human-readable message explaining the filtering and suggesting next steps.\"),\n filtered: z.boolean().default(true).describe(\"Always True when this object is present, indicating content was filtered.\").nullable().optional(),\n filter_reasons: z.array(z.string()).describe(\"List of reasons why the content was blocked by safety filters.\").nullable().optional(),\n filtered_count: z.number().int().describe(\"Number of videos filtered by RAI safety policies.\"),\n}).describe(\"Represents when video generation was blocked by Responsible AI safety filters.\");\nexport const GeminiWaitForVideoOutput: z.ZodTypeAny = z.object({\n success: z.boolean().describe(\"True if video was successfully generated and downloaded, False if it was filtered by RAI safety policies.\"),\n video_file: GeminiWaitForVideo_FileDownloadableSchema.nullable().optional(),\n rai_filtering: GeminiWaitForVideo_RaiFilteringResultSchema.nullable().optional(),\n});\n\nexport const geminiWaitForVideo = action(\"GEMINI_WAIT_FOR_VIDEO\", {\n slug: \"gemini-wait-for-video\",\n name: \"Wait and Download Video (Veo)\",\n description: \"Polls a Veo video generation operation until completion, then downloads and returns the video as a FileDownloadable. Generation takes 30–120+ seconds (up to ~10–12 min); long waits are normal, not failures. On completion, the URL is nested at data.video_file.s3url — validate it is non-empty before downstream use. A done=true response without a valid s3url indicates safety filter rejection (check raiMediaFilteredReasons) or quota exhaustion — adjust the prompt and regenerate. On timeout, use GEMINI_GET_VIDEOS_OPERATION with incremental backoff before starting a new job. Keep parallel jobs to 3–5 to avoid 429 RESOURCE_EXHAUSTED errors.\",\n input: GeminiWaitForVideoInput,\n output: GeminiWaitForVideoOutput,\n});\n"],"mappings":";;;AAIA,MAAa,0BAAwC,EAAE,OAAO,EAC5D,gBAAgB,EAAE,OAAO,CAAC,CAAC,SAAS,+nBAA+nB,EACrqB,CAAC;AACD,MAAM,4CAA0D,EAAE,OAAO;CACvE,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,kBAAkB;CAC5C,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,gCAAgC;CAC3D,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,wBAAwB;AACxD,CAAC;AACD,MAAM,8CAA4D,EAAE,OAAO;CACzE,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,4EAA4E;CACzG,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,2EAA2E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC9I,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,gEAAgE,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACnI,gBAAgB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,mDAAmD;AAC/F,CAAC,CAAC,CAAC,SAAS,gFAAgF;AAO5F,MAAa,qBAAqB,OAAO,yBAAyB;CAChE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAXoD,EAAE,OAAO;EAC7D,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS,2GAA2G;EACzI,YAAY,0CAA0C,SAAS,CAAC,CAAC,SAAS;EAC1E,eAAe,4CAA4C,SAAS,CAAC,CAAC,SAAS;CACjF,CAOU;AACV,CAAC"}
1
+ {"version":3,"file":"wait-for-video.mjs","names":[],"sources":["../../src/actions/wait-for-video.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const GeminiWaitForVideoInput = z.object({\n operation_name: z.string().describe(\"The full operation name returned by GEMINI_GENERATE_VIDEOS. Format: 'models/<model-id>/operations/<operation-id>' where <operation-id> is an alphanumeric string (e.g., 'models/veo-3.0-generate-001/operations/m8dl4dtqqzg8'). IMPORTANT: Do NOT use placeholder values like '...' - use the exact operation_name string from the generate videos response. CRITICAL: Must be from a generate-video operation (VEO_2, VEO_3, VEO_3_FAST models), NOT generate-preview operations (VEO_3_1, VEO_3_1_FAST models). Do not reuse operation_name from a failed GEMINI_GENERATE_VIDEOS job — always start a new GEMINI_GENERATE_VIDEOS call for retried requests.\"),\n});\nconst GeminiWaitForVideo_FileDownloadableSchema = z.object({\n name: z.string().describe(\"Name of the file\").nullable(),\n s3url: z.string().describe(\"S3 URL of the downloaded file.\").nullable(),\n mimetype: z.string().describe(\"Mime type of the file.\").nullable(),\n});\nconst GeminiWaitForVideo_RaiFilteringResultSchema = z.object({\n message: z.string().describe(\"Human-readable message explaining the filtering and suggesting next steps.\").nullable(),\n filtered: z.preprocess((value) => (value === null ? undefined : value), z.boolean().default(true).describe(\"Always True when this object is present, indicating content was filtered.\").optional()),\n filter_reasons: z.preprocess((value) => (value === null ? undefined : value), z.array(z.string()).describe(\"List of reasons why the content was blocked by safety filters.\").optional()),\n filtered_count: z.number().int().describe(\"Number of videos filtered by RAI safety policies.\").nullable(),\n}).describe(\"Represents when video generation was blocked by Responsible AI safety filters.\");\nexport const GeminiWaitForVideoOutput = z.object({\n success: z.boolean().describe(\"True if video was successfully generated and downloaded, False if it was filtered by RAI safety policies.\").nullable(),\n video_file: z.preprocess((value) => (value === null ? undefined : value), GeminiWaitForVideo_FileDownloadableSchema.optional()),\n rai_filtering: z.preprocess((value) => (value === null ? undefined : value), GeminiWaitForVideo_RaiFilteringResultSchema.optional()),\n});\n\nexport const geminiWaitForVideo = action(\"GEMINI_WAIT_FOR_VIDEO\", {\n slug: \"gemini-wait-for-video\",\n name: \"Wait and Download Video (Veo)\",\n description: \"Polls a Veo video generation operation until completion, then downloads and returns the video file. Generation takes 30–120+ seconds (up to ~10–12 min); long waits are normal, not failures. A done=true response without a video file indicates safety filter rejection (check raiMediaFilteredReasons) or quota exhaustion — adjust the prompt and regenerate. On timeout, use GEMINI_GET_VIDEOS_OPERATION with incremental backoff before starting a new job. Keep parallel jobs to 3–5 to avoid 429 RESOURCE_EXHAUSTED errors.\",\n input: GeminiWaitForVideoInput,\n output: GeminiWaitForVideoOutput,\n});\n"],"mappings":";;;AAIA,MAAa,0BAA0B,EAAE,OAAO,EAC9C,gBAAgB,EAAE,OAAO,CAAC,CAAC,SAAS,+nBAA+nB,EACrqB,CAAC;AACD,MAAM,4CAA4C,EAAE,OAAO;CACzD,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,SAAS;CACvD,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC,SAAS;CACtE,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS;AACnE,CAAC;AACD,MAAM,8CAA8C,EAAE,OAAO;CAC3D,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,4EAA4E,CAAC,CAAC,SAAS;CACpH,UAAU,EAAE,YAAY,UAAW,UAAU,OAAO,SAAY,OAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,2EAA2E,CAAC,CAAC,SAAS,CAAC;CAClM,gBAAgB,EAAE,YAAY,UAAW,UAAU,OAAO,SAAY,OAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,gEAAgE,CAAC,CAAC,SAAS,CAAC;CACvL,gBAAgB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,mDAAmD,CAAC,CAAC,SAAS;AAC1G,CAAC,CAAC,CAAC,SAAS,gFAAgF;AAO5F,MAAa,qBAAqB,OAAO,yBAAyB;CAChE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAXsC,EAAE,OAAO;EAC/C,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS,2GAA2G,CAAC,CAAC,SAAS;EACpJ,YAAY,EAAE,YAAY,UAAW,UAAU,OAAO,SAAY,OAAQ,0CAA0C,SAAS,CAAC;EAC9H,eAAe,EAAE,YAAY,UAAW,UAAU,OAAO,SAAY,OAAQ,4CAA4C,SAAS,CAAC;CACrI,CAOU;AACV,CAAC"}
package/dist/execute.cjs CHANGED
@@ -2,7 +2,7 @@ let _keystrokehq_keystroke_client = require("@keystrokehq/keystroke/client");
2
2
  //#region src/execute.ts
3
3
  const APP_SLUG = "gemini";
4
4
  /** Pinned app version — updated on regeneration. */
5
- const APP_VERSION = "20260618_00";
5
+ const APP_VERSION = "20260702_00";
6
6
  async function executeGeminiTool(tool, args) {
7
7
  const { result } = await (0, _keystrokehq_keystroke_client.createKeystrokeClient)().tools.execute({
8
8
  app: APP_SLUG,
@@ -1 +1 @@
1
- {"version":3,"file":"execute.cjs","names":[],"sources":["../src/execute.ts"],"sourcesContent":["import { createKeystrokeClient } from \"@keystrokehq/keystroke/client\";\n\nconst APP_SLUG = \"gemini\";\n/** Pinned app version — updated on regeneration. */\nconst APP_VERSION = \"20260618_00\";\n\nexport async function executeGeminiTool(\n tool: string,\n args: Record<string, unknown>,\n): Promise<unknown> {\n const { result } = await createKeystrokeClient().tools.execute({\n app: APP_SLUG,\n tool,\n arguments: args,\n version: APP_VERSION,\n });\n return result;\n}\n"],"mappings":";;AAEA,MAAM,WAAW;;AAEjB,MAAM,cAAc;AAEpB,eAAsB,kBACpB,MACA,MACkB;CAClB,MAAM,EAAE,WAAW,OAAA,GAAA,8BAAA,sBAAA,CAA4B,CAAC,CAAC,MAAM,QAAQ;EAC7D,KAAK;EACL;EACA,WAAW;EACX,SAAS;CACX,CAAC;CACD,OAAO;AACT"}
1
+ {"version":3,"file":"execute.cjs","names":[],"sources":["../src/execute.ts"],"sourcesContent":["import { createKeystrokeClient } from \"@keystrokehq/keystroke/client\";\n\nconst APP_SLUG = \"gemini\";\n/** Pinned app version — updated on regeneration. */\nconst APP_VERSION = \"20260702_00\";\n\nexport async function executeGeminiTool(\n tool: string,\n args: Record<string, unknown>,\n): Promise<unknown> {\n const { result } = await createKeystrokeClient().tools.execute({\n app: APP_SLUG,\n tool,\n arguments: args,\n version: APP_VERSION,\n });\n return result;\n}\n"],"mappings":";;AAEA,MAAM,WAAW;;AAEjB,MAAM,cAAc;AAEpB,eAAsB,kBACpB,MACA,MACkB;CAClB,MAAM,EAAE,WAAW,OAAA,GAAA,8BAAA,sBAAA,CAA4B,CAAC,CAAC,MAAM,QAAQ;EAC7D,KAAK;EACL;EACA,WAAW;EACX,SAAS;CACX,CAAC;CACD,OAAO;AACT"}
package/dist/execute.mjs CHANGED
@@ -2,7 +2,7 @@ import { createKeystrokeClient } from "@keystrokehq/keystroke/client";
2
2
  //#region src/execute.ts
3
3
  const APP_SLUG = "gemini";
4
4
  /** Pinned app version — updated on regeneration. */
5
- const APP_VERSION = "20260618_00";
5
+ const APP_VERSION = "20260702_00";
6
6
  async function executeGeminiTool(tool, args) {
7
7
  const { result } = await createKeystrokeClient().tools.execute({
8
8
  app: APP_SLUG,
@@ -1 +1 @@
1
- {"version":3,"file":"execute.mjs","names":[],"sources":["../src/execute.ts"],"sourcesContent":["import { createKeystrokeClient } from \"@keystrokehq/keystroke/client\";\n\nconst APP_SLUG = \"gemini\";\n/** Pinned app version — updated on regeneration. */\nconst APP_VERSION = \"20260618_00\";\n\nexport async function executeGeminiTool(\n tool: string,\n args: Record<string, unknown>,\n): Promise<unknown> {\n const { result } = await createKeystrokeClient().tools.execute({\n app: APP_SLUG,\n tool,\n arguments: args,\n version: APP_VERSION,\n });\n return result;\n}\n"],"mappings":";;AAEA,MAAM,WAAW;;AAEjB,MAAM,cAAc;AAEpB,eAAsB,kBACpB,MACA,MACkB;CAClB,MAAM,EAAE,WAAW,MAAM,sBAAsB,CAAC,CAAC,MAAM,QAAQ;EAC7D,KAAK;EACL;EACA,WAAW;EACX,SAAS;CACX,CAAC;CACD,OAAO;AACT"}
1
+ {"version":3,"file":"execute.mjs","names":[],"sources":["../src/execute.ts"],"sourcesContent":["import { createKeystrokeClient } from \"@keystrokehq/keystroke/client\";\n\nconst APP_SLUG = \"gemini\";\n/** Pinned app version — updated on regeneration. */\nconst APP_VERSION = \"20260702_00\";\n\nexport async function executeGeminiTool(\n tool: string,\n args: Record<string, unknown>,\n): Promise<unknown> {\n const { result } = await createKeystrokeClient().tools.execute({\n app: APP_SLUG,\n tool,\n arguments: args,\n version: APP_VERSION,\n });\n return result;\n}\n"],"mappings":";;AAEA,MAAM,WAAW;;AAEjB,MAAM,cAAc;AAEpB,eAAsB,kBACpB,MACA,MACkB;CAClB,MAAM,EAAE,WAAW,MAAM,sBAAsB,CAAC,CAAC,MAAM,QAAQ;EAC7D,KAAK;EACL;EACA,WAAW;EACX,SAAS;CACX,CAAC;CACD,OAAO;AACT"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keystrokehq/gemini",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -31,7 +31,7 @@
31
31
  }
32
32
  },
33
33
  "peerDependencies": {
34
- "@keystrokehq/keystroke": "^0.1.4",
34
+ "@keystrokehq/keystroke": ">=0.1.4",
35
35
  "zod": "^4.4.3"
36
36
  },
37
37
  "devDependencies": {