@seawork/server 1.0.7 → 1.0.10-rc.5

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 (178) hide show
  1. package/dist/server/client/daemon-client.d.ts +32 -1
  2. package/dist/server/client/daemon-client.d.ts.map +1 -1
  3. package/dist/server/client/daemon-client.js +69 -0
  4. package/dist/server/client/daemon-client.js.map +1 -1
  5. package/dist/server/server/agent/agent-management-mcp.d.ts.map +1 -1
  6. package/dist/server/server/agent/agent-management-mcp.js +6 -5
  7. package/dist/server/server/agent/agent-management-mcp.js.map +1 -1
  8. package/dist/server/server/agent/agent-response-loop.d.ts.map +1 -1
  9. package/dist/server/server/agent/agent-response-loop.js +0 -1
  10. package/dist/server/server/agent/agent-response-loop.js.map +1 -1
  11. package/dist/server/server/agent/agent-storage.d.ts +68 -68
  12. package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
  13. package/dist/server/server/agent/mcp-server.js +6 -5
  14. package/dist/server/server/agent/mcp-server.js.map +1 -1
  15. package/dist/server/server/agent/mcp-shared.d.ts +30 -30
  16. package/dist/server/server/agent/provider-manifest.d.ts +2 -1
  17. package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
  18. package/dist/server/server/agent/provider-manifest.js +3 -64
  19. package/dist/server/server/agent/provider-manifest.js.map +1 -1
  20. package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
  21. package/dist/server/server/agent/provider-registry.js +2 -10
  22. package/dist/server/server/agent/provider-registry.js.map +1 -1
  23. package/dist/server/server/agent/providers/claude/claude-models.d.ts.map +1 -1
  24. package/dist/server/server/agent/providers/claude/claude-models.js +3 -0
  25. package/dist/server/server/agent/providers/claude/claude-models.js.map +1 -1
  26. package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts +2 -2
  27. package/dist/server/server/agent/providers/claude-agent.d.ts +2 -1
  28. package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
  29. package/dist/server/server/agent/providers/claude-agent.js +167 -22
  30. package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
  31. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  32. package/dist/server/server/agent/providers/codex-app-server-agent.js +106 -3
  33. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  34. package/dist/server/server/agent/providers/codex-rollout-timeline.d.ts.map +1 -1
  35. package/dist/server/server/agent/providers/codex-rollout-timeline.js +76 -0
  36. package/dist/server/server/agent/providers/codex-rollout-timeline.js.map +1 -1
  37. package/dist/server/server/agent/providers/seawork-models.d.ts.map +1 -1
  38. package/dist/server/server/agent/providers/seawork-models.js +9 -0
  39. package/dist/server/server/agent/providers/seawork-models.js.map +1 -1
  40. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +16 -16
  41. package/dist/server/server/bug-report-handler.d.ts +9 -0
  42. package/dist/server/server/bug-report-handler.d.ts.map +1 -0
  43. package/dist/server/server/bug-report-handler.js +111 -0
  44. package/dist/server/server/bug-report-handler.js.map +1 -0
  45. package/dist/server/server/bug-report-redact.d.ts +12 -0
  46. package/dist/server/server/bug-report-redact.d.ts.map +1 -0
  47. package/dist/server/server/bug-report-redact.js +63 -0
  48. package/dist/server/server/bug-report-redact.js.map +1 -0
  49. package/dist/server/server/chat/chat-rpc-schemas.d.ts +26 -26
  50. package/dist/server/server/chat/chat-types.d.ts +2 -2
  51. package/dist/server/server/exports.d.ts +4 -2
  52. package/dist/server/server/exports.d.ts.map +1 -1
  53. package/dist/server/server/exports.js +3 -0
  54. package/dist/server/server/exports.js.map +1 -1
  55. package/dist/server/server/index.js +47 -0
  56. package/dist/server/server/index.js.map +1 -1
  57. package/dist/server/server/loop/rpc-schemas.d.ts +775 -775
  58. package/dist/server/server/loop-service.d.ts +108 -108
  59. package/dist/server/server/persisted-config.d.ts +121 -121
  60. package/dist/server/server/sac/errors.d.ts +1 -0
  61. package/dist/server/server/sac/errors.d.ts.map +1 -1
  62. package/dist/server/server/sac/errors.js +2 -1
  63. package/dist/server/server/sac/errors.js.map +1 -1
  64. package/dist/server/server/sac/generate.d.ts +19 -11
  65. package/dist/server/server/sac/generate.d.ts.map +1 -1
  66. package/dist/server/server/sac/generate.js +131 -36
  67. package/dist/server/server/sac/generate.js.map +1 -1
  68. package/dist/server/server/sac/index.d.ts +8 -10
  69. package/dist/server/server/sac/index.d.ts.map +1 -1
  70. package/dist/server/server/sac/index.js +5 -17
  71. package/dist/server/server/sac/index.js.map +1 -1
  72. package/dist/server/server/sac/providers/alibaba.d.ts +2 -0
  73. package/dist/server/server/sac/providers/alibaba.d.ts.map +1 -0
  74. package/dist/server/server/sac/providers/alibaba.js +506 -0
  75. package/dist/server/server/sac/providers/alibaba.js.map +1 -0
  76. package/dist/server/server/sac/providers/audio.d.ts +2 -0
  77. package/dist/server/server/sac/providers/audio.d.ts.map +1 -0
  78. package/dist/server/server/sac/providers/audio.js +57 -0
  79. package/dist/server/server/sac/providers/audio.js.map +1 -0
  80. package/dist/server/server/sac/providers/kling.d.ts +2 -0
  81. package/dist/server/server/sac/providers/kling.d.ts.map +1 -0
  82. package/dist/server/server/sac/providers/kling.js +589 -0
  83. package/dist/server/server/sac/providers/kling.js.map +1 -0
  84. package/dist/server/server/sac/providers/nano.d.ts +2 -0
  85. package/dist/server/server/sac/providers/nano.d.ts.map +1 -0
  86. package/dist/server/server/sac/providers/nano.js +37 -0
  87. package/dist/server/server/sac/providers/nano.js.map +1 -0
  88. package/dist/server/server/sac/providers/pixverse.d.ts +2 -0
  89. package/dist/server/server/sac/providers/pixverse.d.ts.map +1 -0
  90. package/dist/server/server/sac/providers/pixverse.js +1017 -0
  91. package/dist/server/server/sac/providers/pixverse.js.map +1 -0
  92. package/dist/server/server/sac/providers/registry.d.ts +34 -0
  93. package/dist/server/server/sac/providers/registry.d.ts.map +1 -0
  94. package/dist/server/server/sac/providers/registry.js +57 -0
  95. package/dist/server/server/sac/providers/registry.js.map +1 -0
  96. package/dist/server/server/sac/providers/seaart.d.ts +1 -4
  97. package/dist/server/server/sac/providers/seaart.d.ts.map +1 -1
  98. package/dist/server/server/sac/providers/seaart.js +8 -18
  99. package/dist/server/server/sac/providers/seaart.js.map +1 -1
  100. package/dist/server/server/sac/providers/store.d.ts +9 -5
  101. package/dist/server/server/sac/providers/store.d.ts.map +1 -1
  102. package/dist/server/server/sac/providers/store.js +0 -3
  103. package/dist/server/server/sac/providers/store.js.map +1 -1
  104. package/dist/server/server/sac/providers/tencent-3d.d.ts +2 -0
  105. package/dist/server/server/sac/providers/tencent-3d.d.ts.map +1 -0
  106. package/dist/server/server/sac/providers/tencent-3d.js +210 -0
  107. package/dist/server/server/sac/providers/tencent-3d.js.map +1 -0
  108. package/dist/server/server/sac/providers/tencent-image.d.ts +2 -0
  109. package/dist/server/server/sac/providers/tencent-image.d.ts.map +1 -0
  110. package/dist/server/server/sac/providers/tencent-image.js +90 -0
  111. package/dist/server/server/sac/providers/tencent-image.js.map +1 -0
  112. package/dist/server/server/sac/providers/tencent-video.d.ts +2 -0
  113. package/dist/server/server/sac/providers/tencent-video.d.ts.map +1 -0
  114. package/dist/server/server/sac/providers/tencent-video.js +103 -0
  115. package/dist/server/server/sac/providers/tencent-video.js.map +1 -0
  116. package/dist/server/server/sac/providers/tripo3d.d.ts +2 -0
  117. package/dist/server/server/sac/providers/tripo3d.d.ts.map +1 -0
  118. package/dist/server/server/sac/providers/tripo3d.js +302 -0
  119. package/dist/server/server/sac/providers/tripo3d.js.map +1 -0
  120. package/dist/server/server/sac/providers/vidu.d.ts +2 -0
  121. package/dist/server/server/sac/providers/vidu.d.ts.map +1 -0
  122. package/dist/server/server/sac/providers/vidu.js +965 -0
  123. package/dist/server/server/sac/providers/vidu.js.map +1 -0
  124. package/dist/server/server/sac/providers/volces-3d.d.ts +2 -0
  125. package/dist/server/server/sac/providers/volces-3d.d.ts.map +1 -0
  126. package/dist/server/server/sac/providers/volces-3d.js +77 -0
  127. package/dist/server/server/sac/providers/volces-3d.js.map +1 -0
  128. package/dist/server/server/sac/providers/volces-video.d.ts +2 -0
  129. package/dist/server/server/sac/providers/volces-video.d.ts.map +1 -0
  130. package/dist/server/server/sac/providers/volces-video.js +392 -0
  131. package/dist/server/server/sac/providers/volces-video.js.map +1 -0
  132. package/dist/server/server/sac/providers/volces.d.ts +1 -4
  133. package/dist/server/server/sac/providers/volces.d.ts.map +1 -1
  134. package/dist/server/server/sac/providers/volces.js +279 -66
  135. package/dist/server/server/sac/providers/volces.js.map +1 -1
  136. package/dist/server/server/sac/types.d.ts +13 -30
  137. package/dist/server/server/sac/types.d.ts.map +1 -1
  138. package/dist/server/server/schedule/rpc-schemas.d.ts +493 -493
  139. package/dist/server/server/schedule/types.d.ts +140 -140
  140. package/dist/server/server/session.d.ts +9 -2
  141. package/dist/server/server/session.d.ts.map +1 -1
  142. package/dist/server/server/session.js +137 -19
  143. package/dist/server/server/session.js.map +1 -1
  144. package/dist/server/server/speech/speech-types.d.ts +2 -2
  145. package/dist/server/server/workspace-registry.d.ts +4 -4
  146. package/dist/server/shared/messages.d.ts +17455 -15917
  147. package/dist/server/shared/messages.d.ts.map +1 -1
  148. package/dist/server/shared/messages.js +83 -0
  149. package/dist/server/shared/messages.js.map +1 -1
  150. package/dist/server/utils/spawn.d.ts.map +1 -1
  151. package/dist/server/utils/spawn.js +8 -3
  152. package/dist/server/utils/spawn.js.map +1 -1
  153. package/dist/server/utils/worktree-metadata.d.ts +4 -4
  154. package/package.json +7 -9
  155. package/dist/server/server/agent/providers/acp-agent.d.ts +0 -202
  156. package/dist/server/server/agent/providers/acp-agent.d.ts.map +0 -1
  157. package/dist/server/server/agent/providers/acp-agent.js +0 -1650
  158. package/dist/server/server/agent/providers/acp-agent.js.map +0 -1
  159. package/dist/server/server/agent/providers/copilot-acp-agent.d.ts +0 -16
  160. package/dist/server/server/agent/providers/copilot-acp-agent.d.ts.map +0 -1
  161. package/dist/server/server/agent/providers/copilot-acp-agent.js +0 -95
  162. package/dist/server/server/agent/providers/copilot-acp-agent.js.map +0 -1
  163. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts +0 -3
  164. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts.map +0 -1
  165. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js +0 -39
  166. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js.map +0 -1
  167. package/dist/server/server/agent/providers/opencode/tool-call-mapper.d.ts +0 -13
  168. package/dist/server/server/agent/providers/opencode/tool-call-mapper.d.ts.map +0 -1
  169. package/dist/server/server/agent/providers/opencode/tool-call-mapper.js +0 -144
  170. package/dist/server/server/agent/providers/opencode/tool-call-mapper.js.map +0 -1
  171. package/dist/server/server/agent/providers/opencode-agent.d.ts +0 -121
  172. package/dist/server/server/agent/providers/opencode-agent.d.ts.map +0 -1
  173. package/dist/server/server/agent/providers/opencode-agent.js +0 -1649
  174. package/dist/server/server/agent/providers/opencode-agent.js.map +0 -1
  175. package/dist/server/server/agent/providers/pi-acp-agent.d.ts +0 -28
  176. package/dist/server/server/agent/providers/pi-acp-agent.d.ts.map +0 -1
  177. package/dist/server/server/agent/providers/pi-acp-agent.js +0 -302
  178. package/dist/server/server/agent/providers/pi-acp-agent.js.map +0 -1
@@ -0,0 +1,589 @@
1
+ import { SACError as CLIError, ExitCode } from "../errors.js";
2
+ import { registerProvider } from "./store.js";
3
+ // ── Model lists ──────────────────────────────────────────────────────────────
4
+ const T2V_MODELS = [
5
+ 'kling_v1',
6
+ 'kling_v1_5',
7
+ 'kling_v1_6',
8
+ 'kling_v2_master',
9
+ 'kling_v2_1_master',
10
+ 'kling_v2_5_turbo',
11
+ 'kling_v2_6',
12
+ 'kling_v3',
13
+ ];
14
+ const I2V_MODELS = [
15
+ 'kling_v1_i2v',
16
+ 'kling_v1_5_i2v',
17
+ 'kling_v1_6_i2v',
18
+ 'kling_v2_1_i2v',
19
+ 'kling_v2_master_i2v',
20
+ 'kling_v2_1_master_i2v',
21
+ 'kling_v2_5_turbo_i2v',
22
+ 'kling_v2_6_i2v',
23
+ 'kling_v3_i2v',
24
+ ];
25
+ const IMAGE_V3_MODELS = [
26
+ 'kling_v3_image',
27
+ ];
28
+ const OMNI_IMAGE_MODELS = [
29
+ 'kling_omni_image',
30
+ 'kling_v3_omni_image',
31
+ ];
32
+ const AVATAR_MODELS = [
33
+ 'kling_avatar',
34
+ ];
35
+ const EFFECTS_SINGLE_MODELS = [
36
+ 'kling_effects_single',
37
+ ];
38
+ const EFFECTS_MULTI_MODELS = [
39
+ 'kling_effects_multi_v1',
40
+ 'kling_effects_multi_v15',
41
+ 'kling_effects_multi_v16',
42
+ ];
43
+ const MOTION_CONTROL_MODELS = [
44
+ 'kling_motion_control',
45
+ 'kling_v3_motion_control',
46
+ ];
47
+ const DURATION_EXTENSION_MODELS = [
48
+ 'kling_duration_extension',
49
+ ];
50
+ const LIPSYNC_MODELS = [
51
+ 'kling_lipsync',
52
+ ];
53
+ const OMNI_VIDEO_MODELS = [
54
+ 'kling_omni_video',
55
+ 'kling_v3_omni_video',
56
+ ];
57
+ const VIDEO_TO_AUDIO_MODELS = [
58
+ 'kling_video_to_audio',
59
+ ];
60
+ const TENCENT_KLING_I2V_MODELS = [
61
+ 'tencent_kling_v3',
62
+ ];
63
+ const TENCENT_KLING_OMNI_VIDEO_MODELS = [
64
+ 'tencent_kling_v3_omni',
65
+ ];
66
+ const T2V_SET = new Set(T2V_MODELS);
67
+ const VIDEO_REFER_TYPES = new Set(['feature', 'base']);
68
+ function buildEnvelope(model, params) {
69
+ return {
70
+ model,
71
+ dash_scope: true,
72
+ moderation: true,
73
+ input: [{ params }],
74
+ metadata: {},
75
+ };
76
+ }
77
+ function requireStringFlag(value, message) {
78
+ if (typeof value !== 'string' || value.length === 0) {
79
+ throw new CLIError(message, ExitCode.USAGE);
80
+ }
81
+ return value;
82
+ }
83
+ function requireNumberFlag(value, message) {
84
+ if (typeof value !== 'number' || Number.isNaN(value)) {
85
+ throw new CLIError(message, ExitCode.USAGE);
86
+ }
87
+ return value;
88
+ }
89
+ function parseEnum(model, value, flagName, allowed) {
90
+ if (value === undefined)
91
+ return undefined;
92
+ if (typeof value !== 'string' || !allowed.has(value)) {
93
+ throw new CLIError(`Model "${model}" requires --${flagName} to be one of: ${Array.from(allowed).join(', ')}.`, ExitCode.USAGE);
94
+ }
95
+ return value;
96
+ }
97
+ function maybeStringArray(value) {
98
+ if (Array.isArray(value))
99
+ return value.filter((item) => typeof item === 'string' && item.length > 0);
100
+ if (typeof value === 'string' && value.length > 0)
101
+ return [value];
102
+ return [];
103
+ }
104
+ function collectImageInputs(flags) {
105
+ const images = maybeStringArray(flags.imageUrls);
106
+ if (typeof flags.imageUrl === 'string' && flags.imageUrl.length > 0) {
107
+ return [flags.imageUrl, ...images];
108
+ }
109
+ return images;
110
+ }
111
+ function collectElementIds(flags) {
112
+ return maybeStringArray(flags.elementIds);
113
+ }
114
+ function buildElementList(flags) {
115
+ return collectElementIds(flags).map((elementId) => ({ element_id: elementId }));
116
+ }
117
+ function requireVideoSource(model, flags, options = {}) {
118
+ const videoId = typeof flags.videoId === 'string' && flags.videoId.length > 0 ? flags.videoId : undefined;
119
+ const videoUrl = typeof flags.videoUrl === 'string' && flags.videoUrl.length > 0 ? flags.videoUrl : undefined;
120
+ if (!options.allowBoth && videoId && videoUrl) {
121
+ throw new CLIError(`Model "${model}" accepts either --video-id or --video-url, not both.`, ExitCode.USAGE);
122
+ }
123
+ if (videoId)
124
+ return { key: 'video_id', value: videoId };
125
+ if (videoUrl)
126
+ return { key: 'video_url', value: videoUrl };
127
+ throw new CLIError(`Model "${model}" requires --video-id or --video-url.`, ExitCode.USAGE);
128
+ }
129
+ function buildOmniImageList(flags) {
130
+ return collectImageInputs(flags).map((image) => ({ image }));
131
+ }
132
+ function buildOmniVideoImageList(model, flags) {
133
+ const imageUrl = typeof flags.imageUrl === 'string' && flags.imageUrl.length > 0 ? flags.imageUrl : undefined;
134
+ const imageTailUrl = typeof flags.imageTailUrl === 'string' && flags.imageTailUrl.length > 0 ? flags.imageTailUrl : undefined;
135
+ const imageUrls = maybeStringArray(flags.imageUrls);
136
+ if (imageTailUrl && !imageUrl) {
137
+ throw new CLIError(`Model "${model}" requires --image-url when using --image-tail-url.`, ExitCode.USAGE);
138
+ }
139
+ if (imageTailUrl && imageUrls.length > 0) {
140
+ throw new CLIError(`Model "${model}" does not allow --image-tail-url together with additional --image-urls.`, ExitCode.USAGE);
141
+ }
142
+ const list = [];
143
+ if (imageUrl)
144
+ list.push({ image_url: imageUrl, type: 'first_frame' });
145
+ if (imageTailUrl)
146
+ list.push({ image_url: imageTailUrl, type: 'end_frame' });
147
+ for (const image of imageUrls)
148
+ list.push({ image_url: image });
149
+ return list;
150
+ }
151
+ function applyCommonParams(params, flags) {
152
+ if (flags.duration !== undefined)
153
+ params['duration'] = String(flags.duration);
154
+ if (flags.aspectRatio)
155
+ params['aspect_ratio'] = flags.aspectRatio;
156
+ if (flags.mode)
157
+ params['mode'] = flags.mode;
158
+ if (flags.negativePrompt)
159
+ params['negative_prompt'] = flags.negativePrompt;
160
+ if (flags.cfgScale !== undefined)
161
+ params['cfg_scale'] = flags.cfgScale;
162
+ if (flags.sound)
163
+ params['sound'] = flags.sound;
164
+ if (flags.multiShot !== undefined)
165
+ params['multi_shot'] = flags.multiShot;
166
+ if (flags.shotType)
167
+ params['shot_type'] = flags.shotType;
168
+ if (flags.watermark !== undefined) {
169
+ params['watermark_info'] = { enabled: flags.watermark };
170
+ }
171
+ if (flags.externalTaskId)
172
+ params['external_task_id'] = flags.externalTaskId;
173
+ }
174
+ function buildOmniVideoParams(model, prompt, flags) {
175
+ const imageList = buildOmniVideoImageList(model, flags);
176
+ const elementList = buildElementList(flags);
177
+ const hasTypedFrameImages = typeof flags.imageUrl === 'string' || typeof flags.imageTailUrl === 'string';
178
+ const videoUrl = typeof flags.videoUrl === 'string' && flags.videoUrl.length > 0 ? flags.videoUrl : undefined;
179
+ const videoReferType = parseEnum(model, flags.videoReferType, 'video-refer-type', VIDEO_REFER_TYPES) ?? 'base';
180
+ if (videoUrl && videoReferType !== 'feature' && hasTypedFrameImages) {
181
+ throw new CLIError(`Model "${model}" does not allow --image-url/--image-tail-url when --video-refer-type is base.`, ExitCode.USAGE);
182
+ }
183
+ if (!videoUrl && !hasTypedFrameImages && !flags.aspectRatio) {
184
+ throw new CLIError(`Model "${model}" requires --aspect-ratio when no first-frame image or base video input is provided.`, ExitCode.USAGE);
185
+ }
186
+ const params = { prompt };
187
+ if (imageList.length > 0)
188
+ params['image_list'] = imageList;
189
+ if (videoUrl) {
190
+ const videoItem = {
191
+ video_url: videoUrl,
192
+ refer_type: videoReferType,
193
+ };
194
+ if (flags.keepOriginalSound)
195
+ videoItem['keep_original_sound'] = flags.keepOriginalSound;
196
+ params['video_list'] = [videoItem];
197
+ }
198
+ if (elementList.length > 0)
199
+ params['element_list'] = elementList;
200
+ if (flags.mode)
201
+ params['mode'] = flags.mode;
202
+ if (flags.aspectRatio)
203
+ params['aspect_ratio'] = flags.aspectRatio;
204
+ if (flags.duration !== undefined)
205
+ params['duration'] = String(flags.duration);
206
+ if (flags.externalTaskId)
207
+ params['external_task_id'] = flags.externalTaskId;
208
+ return params;
209
+ }
210
+ // ── Image generation ─────────────────────────────────────────────────────────
211
+ registerProvider({
212
+ provider: 'kling',
213
+ category: 'image',
214
+ models: IMAGE_V3_MODELS,
215
+ buildBody(model, prompt, flags) {
216
+ if (flags.imageUrls) {
217
+ throw new CLIError(`Model "${model}" supports a single reference image via --image-url, not --image-urls.`, ExitCode.USAGE);
218
+ }
219
+ if (flags.imageUrl && flags.negativePrompt) {
220
+ throw new CLIError(`Model "${model}" does not support --negative-prompt together with --image-url.`, ExitCode.USAGE);
221
+ }
222
+ const params = { prompt };
223
+ if (flags.negativePrompt)
224
+ params['negative_prompt'] = flags.negativePrompt;
225
+ if (flags.imageUrl)
226
+ params['image'] = flags.imageUrl;
227
+ const elementList = buildElementList(flags);
228
+ if (elementList.length > 0)
229
+ params['element_list'] = elementList;
230
+ if (flags.resolution)
231
+ params['resolution'] = flags.resolution;
232
+ if (flags.n !== undefined)
233
+ params['n'] = flags.n;
234
+ if (flags.aspectRatio)
235
+ params['aspect_ratio'] = flags.aspectRatio;
236
+ if (flags.watermark !== undefined)
237
+ params['watermark_info'] = { enabled: flags.watermark };
238
+ if (flags.externalTaskId)
239
+ params['external_task_id'] = flags.externalTaskId;
240
+ return buildEnvelope(model, params);
241
+ },
242
+ });
243
+ registerProvider({
244
+ provider: 'kling',
245
+ category: 'image',
246
+ models: OMNI_IMAGE_MODELS,
247
+ buildBody(model, prompt, flags) {
248
+ if (flags.negativePrompt) {
249
+ throw new CLIError(`Model "${model}" does not support --negative-prompt.`, ExitCode.USAGE);
250
+ }
251
+ if (flags.seriesAmount !== undefined && flags.resultType !== 'series') {
252
+ throw new CLIError(`Model "${model}" requires --result-type series when using --series-amount.`, ExitCode.USAGE);
253
+ }
254
+ if (flags.resultType === 'series' && flags.n !== undefined) {
255
+ throw new CLIError(`Model "${model}" does not allow --n when --result-type series is selected.`, ExitCode.USAGE);
256
+ }
257
+ const params = { prompt };
258
+ const imageList = buildOmniImageList(flags);
259
+ if (imageList.length > 0)
260
+ params['image_list'] = imageList;
261
+ if (flags.resolution)
262
+ params['resolution'] = flags.resolution;
263
+ if (flags.n !== undefined)
264
+ params['n'] = flags.n;
265
+ if (flags.aspectRatio)
266
+ params['aspect_ratio'] = flags.aspectRatio;
267
+ if (flags.externalTaskId)
268
+ params['external_task_id'] = flags.externalTaskId;
269
+ if (model === 'kling_v3_omni_image') {
270
+ if (flags.resultType)
271
+ params['result_type'] = flags.resultType;
272
+ if (flags.seriesAmount !== undefined)
273
+ params['series_amount'] = flags.seriesAmount;
274
+ }
275
+ return buildEnvelope(model, params);
276
+ },
277
+ });
278
+ // ── Text-to-video ─────────────────────────────────────────────────────────────
279
+ registerProvider({
280
+ provider: 'kling',
281
+ category: 'video',
282
+ models: T2V_MODELS,
283
+ requiresPrompt(model) {
284
+ return T2V_SET.has(model);
285
+ },
286
+ buildBody(model, prompt, flags) {
287
+ const params = { prompt };
288
+ applyCommonParams(params, flags);
289
+ return buildEnvelope(model, params);
290
+ },
291
+ });
292
+ // ── Image-to-video ────────────────────────────────────────────────────────────
293
+ registerProvider({
294
+ provider: 'kling',
295
+ category: 'video',
296
+ models: I2V_MODELS,
297
+ requiresPrompt() {
298
+ return false;
299
+ },
300
+ buildBody(model, prompt, flags) {
301
+ const image = flags.imageUrl;
302
+ const imageTail = flags.imageTailUrl;
303
+ if (!image && !imageTail) {
304
+ throw new CLIError(`Model "${model}" requires --image-url (first frame) or --image-tail-url (last frame).`, ExitCode.USAGE);
305
+ }
306
+ const params = {};
307
+ if (prompt)
308
+ params['prompt'] = prompt;
309
+ if (image)
310
+ params['image'] = image;
311
+ if (imageTail)
312
+ params['image_tail'] = imageTail;
313
+ applyCommonParams(params, flags);
314
+ return buildEnvelope(model, params);
315
+ },
316
+ });
317
+ // ── Avatar video ──────────────────────────────────────────────────────────────
318
+ registerProvider({
319
+ provider: 'kling',
320
+ category: 'video',
321
+ models: AVATAR_MODELS,
322
+ requiresPrompt() {
323
+ return false;
324
+ },
325
+ buildBody(model, prompt, flags) {
326
+ const image = requireStringFlag(flags.imageUrl, `Model "${model}" requires --image-url.`);
327
+ const audioId = typeof flags.audioId === 'string' && flags.audioId.length > 0
328
+ ? flags.audioId
329
+ : undefined;
330
+ const soundFile = typeof flags.audioUrl === 'string' && flags.audioUrl.length > 0
331
+ ? flags.audioUrl
332
+ : undefined;
333
+ if (audioId && soundFile) {
334
+ throw new CLIError(`Model "${model}" accepts either --audio-id or --audio-url, not both.`, ExitCode.USAGE);
335
+ }
336
+ if (!audioId && !soundFile) {
337
+ throw new CLIError(`Model "${model}" requires --audio-id or --audio-url.`, ExitCode.USAGE);
338
+ }
339
+ const params = { image };
340
+ if (audioId)
341
+ params['audio_id'] = audioId;
342
+ if (soundFile)
343
+ params['sound_file'] = soundFile;
344
+ if (prompt)
345
+ params['prompt'] = prompt;
346
+ if (flags.mode)
347
+ params['mode'] = flags.mode;
348
+ if (flags.externalTaskId)
349
+ params['external_task_id'] = flags.externalTaskId;
350
+ return buildEnvelope(model, params);
351
+ },
352
+ });
353
+ // ── Video effects ─────────────────────────────────────────────────────────────
354
+ function buildEffectsBody(model, flags, expectedImages) {
355
+ const images = collectImageInputs(flags);
356
+ if (images.length === 0) {
357
+ throw new CLIError(`Model "${model}" requires --image-url or --image-urls.`, ExitCode.USAGE);
358
+ }
359
+ if (expectedImages !== undefined && images.length !== expectedImages) {
360
+ throw new CLIError(`Model "${model}" requires exactly ${expectedImages} input image${expectedImages === 1 ? '' : 's'}.`, ExitCode.USAGE);
361
+ }
362
+ const effectScene = requireStringFlag(flags.effectScene, `Model "${model}" requires --effect-scene.`);
363
+ const duration = requireNumberFlag(flags.duration, `Model "${model}" requires --duration.`);
364
+ const params = {
365
+ input: {
366
+ images,
367
+ duration,
368
+ },
369
+ effect_scene: effectScene,
370
+ };
371
+ if (flags.externalTaskId)
372
+ params['external_task_id'] = flags.externalTaskId;
373
+ return buildEnvelope(model, params);
374
+ }
375
+ registerProvider({
376
+ provider: 'kling',
377
+ category: 'video',
378
+ models: EFFECTS_SINGLE_MODELS,
379
+ requiresPrompt() {
380
+ return false;
381
+ },
382
+ buildBody(model, _prompt, flags) {
383
+ return buildEffectsBody(model, flags, 1);
384
+ },
385
+ });
386
+ registerProvider({
387
+ provider: 'kling',
388
+ category: 'video',
389
+ models: EFFECTS_MULTI_MODELS,
390
+ requiresPrompt() {
391
+ return false;
392
+ },
393
+ buildBody(model, _prompt, flags) {
394
+ return buildEffectsBody(model, flags, 2);
395
+ },
396
+ });
397
+ // ── Motion control ────────────────────────────────────────────────────────────
398
+ registerProvider({
399
+ provider: 'kling',
400
+ category: 'video',
401
+ models: MOTION_CONTROL_MODELS,
402
+ requiresPrompt() {
403
+ return false;
404
+ },
405
+ buildBody(model, prompt, flags) {
406
+ const imageUrl = requireStringFlag(flags.imageUrl, `Model "${model}" requires --image-url.`);
407
+ const videoUrl = requireStringFlag(flags.videoUrl, `Model "${model}" requires --video-url.`);
408
+ const characterOrientation = requireStringFlag(flags.characterOrientation, `Model "${model}" requires --character-orientation.`);
409
+ const mode = requireStringFlag(flags.mode, `Model "${model}" requires --mode.`);
410
+ const params = {
411
+ image_url: imageUrl,
412
+ video_url: videoUrl,
413
+ character_orientation: characterOrientation,
414
+ mode,
415
+ };
416
+ if (prompt)
417
+ params['prompt'] = prompt;
418
+ if (flags.keepOriginalSound)
419
+ params['keep_original_sound'] = flags.keepOriginalSound;
420
+ if (flags.externalTaskId)
421
+ params['external_task_id'] = flags.externalTaskId;
422
+ if (model === 'kling_v3_motion_control' && flags.watermark !== undefined) {
423
+ params['watermark_info'] = { enabled: flags.watermark };
424
+ }
425
+ return buildEnvelope(model, params);
426
+ },
427
+ });
428
+ // ── Duration extension ────────────────────────────────────────────────────────
429
+ registerProvider({
430
+ provider: 'kling',
431
+ category: 'video',
432
+ models: DURATION_EXTENSION_MODELS,
433
+ requiresPrompt() {
434
+ return false;
435
+ },
436
+ buildBody(model, _prompt, flags) {
437
+ const videoUrl = requireStringFlag(flags.videoUrl, `Model "${model}" requires --video-url.`);
438
+ const duration = requireNumberFlag(flags.duration, `Model "${model}" requires --duration.`);
439
+ const params = {
440
+ video_url: videoUrl,
441
+ duration: String(duration),
442
+ };
443
+ if (flags.aspectRatio)
444
+ params['aspect_ratio'] = flags.aspectRatio;
445
+ if (flags.extensionType)
446
+ params['extension_type'] = flags.extensionType;
447
+ if (flags.videoQuality)
448
+ params['quality'] = flags.videoQuality;
449
+ if (flags.seed !== undefined)
450
+ params['seed'] = flags.seed;
451
+ if (flags.externalTaskId)
452
+ params['external_task_id'] = flags.externalTaskId;
453
+ return buildEnvelope(model, params);
454
+ },
455
+ });
456
+ // ── Lipsync video ────────────────────────────────────────────────────────────
457
+ registerProvider({
458
+ provider: 'kling',
459
+ category: 'video',
460
+ models: LIPSYNC_MODELS,
461
+ requiresPrompt() {
462
+ return false;
463
+ },
464
+ buildBody(model, prompt, flags) {
465
+ const mode = requireStringFlag(flags.lipsyncMode, `Model "${model}" requires --lipsync-mode.`);
466
+ const videoSource = requireVideoSource(model, flags);
467
+ const input = {
468
+ mode,
469
+ [videoSource.key]: videoSource.value,
470
+ };
471
+ if (mode === 'text2video') {
472
+ if (!prompt) {
473
+ throw new CLIError(`Model "${model}" requires --prompt when --lipsync-mode text2video is used.`, ExitCode.USAGE);
474
+ }
475
+ input['text'] = prompt;
476
+ input['voice_id'] = requireStringFlag(flags.voiceId, `Model "${model}" requires --voice-id when --lipsync-mode text2video is used.`);
477
+ input['voice_language'] = requireStringFlag(flags.voiceLanguage, `Model "${model}" requires --voice-language when --lipsync-mode text2video is used.`);
478
+ if (flags.voiceSpeed !== undefined)
479
+ input['voice_speed'] = flags.voiceSpeed;
480
+ if (flags.audioUrl) {
481
+ throw new CLIError(`Model "${model}" does not allow --audio-url when --lipsync-mode text2video is used.`, ExitCode.USAGE);
482
+ }
483
+ }
484
+ else if (mode === 'audio2video') {
485
+ if (prompt) {
486
+ throw new CLIError(`Model "${model}" does not use --prompt when --lipsync-mode audio2video is used.`, ExitCode.USAGE);
487
+ }
488
+ input['audio_type'] = 'url';
489
+ input['audio_url'] = requireStringFlag(flags.audioUrl, `Model "${model}" requires --audio-url when --lipsync-mode audio2video is used.`);
490
+ if (flags.voiceId || flags.voiceLanguage || flags.voiceSpeed !== undefined) {
491
+ throw new CLIError(`Model "${model}" does not allow voice options when --lipsync-mode audio2video is used.`, ExitCode.USAGE);
492
+ }
493
+ }
494
+ else {
495
+ throw new CLIError(`Model "${model}" only supports --lipsync-mode text2video or audio2video.`, ExitCode.USAGE);
496
+ }
497
+ return buildEnvelope(model, { input });
498
+ },
499
+ });
500
+ // ── Omni video ───────────────────────────────────────────────────────────────
501
+ registerProvider({
502
+ provider: 'kling',
503
+ category: 'video',
504
+ models: OMNI_VIDEO_MODELS,
505
+ buildBody(model, prompt, flags) {
506
+ if (flags.multiShot === true) {
507
+ throw new CLIError(`Model "${model}" does not yet support --multi-shot from the CLI because multi-shot prompt segments are not exposed yet.`, ExitCode.USAGE);
508
+ }
509
+ if (model === 'kling_omni_video' && flags.sound) {
510
+ throw new CLIError(`Model "${model}" does not support --sound.`, ExitCode.USAGE);
511
+ }
512
+ if (flags.shotType) {
513
+ throw new CLIError(`Model "${model}" does not support --shot-type in the current CLI implementation.`, ExitCode.USAGE);
514
+ }
515
+ const params = buildOmniVideoParams(model, prompt, flags);
516
+ if (model === 'kling_v3_omni_video' && flags.sound) {
517
+ params['sound'] = flags.sound;
518
+ }
519
+ return buildEnvelope(model, params);
520
+ },
521
+ });
522
+ // ── Video to audio ───────────────────────────────────────────────────────────
523
+ registerProvider({
524
+ provider: 'kling',
525
+ category: 'audio',
526
+ models: VIDEO_TO_AUDIO_MODELS,
527
+ requiresPrompt() {
528
+ return false;
529
+ },
530
+ buildBody(model, prompt, flags) {
531
+ if (prompt) {
532
+ throw new CLIError(`Model "${model}" does not use --prompt. Use --sound-effect-prompt and/or --bgm-prompt instead.`, ExitCode.USAGE);
533
+ }
534
+ const videoSource = requireVideoSource(model, flags);
535
+ const params = {
536
+ [videoSource.key]: videoSource.value,
537
+ };
538
+ if (flags.soundEffectPrompt)
539
+ params['sound_effect_prompt'] = flags.soundEffectPrompt;
540
+ if (flags.bgmPrompt)
541
+ params['bgm_prompt'] = flags.bgmPrompt;
542
+ if (flags.asmrMode !== undefined)
543
+ params['asmr_mode'] = flags.asmrMode;
544
+ if (flags.externalTaskId)
545
+ params['external_task_id'] = flags.externalTaskId;
546
+ return buildEnvelope(model, params);
547
+ },
548
+ });
549
+ // ── Tencent Kling video ──────────────────────────────────────────────────────
550
+ registerProvider({
551
+ provider: 'tencent',
552
+ category: 'video',
553
+ models: TENCENT_KLING_I2V_MODELS,
554
+ buildBody(model, prompt, flags) {
555
+ if (flags.multiShot === true) {
556
+ throw new CLIError(`Model "${model}" does not yet support --multi-shot from the CLI.`, ExitCode.USAGE);
557
+ }
558
+ const image = flags.imageUrl;
559
+ const imageTail = flags.imageTailUrl;
560
+ if (!image && !imageTail) {
561
+ throw new CLIError(`Model "${model}" requires --image-url or --image-tail-url.`, ExitCode.USAGE);
562
+ }
563
+ const params = { prompt };
564
+ if (image)
565
+ params['image'] = image;
566
+ if (imageTail)
567
+ params['image_tail'] = imageTail;
568
+ applyCommonParams(params, flags);
569
+ return buildEnvelope(model, params);
570
+ },
571
+ });
572
+ registerProvider({
573
+ provider: 'tencent',
574
+ category: 'video',
575
+ models: TENCENT_KLING_OMNI_VIDEO_MODELS,
576
+ buildBody(model, prompt, flags) {
577
+ if (flags.multiShot === true) {
578
+ throw new CLIError(`Model "${model}" does not yet support --multi-shot from the CLI because multi-shot prompt segments are not exposed yet.`, ExitCode.USAGE);
579
+ }
580
+ if (flags.shotType) {
581
+ throw new CLIError(`Model "${model}" does not support --shot-type in the current CLI implementation.`, ExitCode.USAGE);
582
+ }
583
+ const params = buildOmniVideoParams(model, prompt, flags);
584
+ if (flags.sound)
585
+ params['sound'] = flags.sound;
586
+ return buildEnvelope(model, params);
587
+ },
588
+ });
589
+ //# sourceMappingURL=kling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kling.js","sourceRoot":"","sources":["../../../../../src/server/sac/providers/kling.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=nano.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nano.d.ts","sourceRoot":"","sources":["../../../../../src/server/sac/providers/nano.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import { SACError as CLIError, ExitCode } from "../errors.js";
2
+ import { registerProvider } from "./store.js";
3
+ // ── Model lists ──────────────────────────────────────────────────────────────
4
+ const IMAGE_MODELS = [
5
+ 'nano_banana_2',
6
+ ];
7
+ // ── Image generation ─────────────────────────────────────────────────────────
8
+ registerProvider({
9
+ provider: 'nano',
10
+ category: 'image',
11
+ models: IMAGE_MODELS,
12
+ buildBody(model, prompt, flags) {
13
+ const params = { prompt };
14
+ if (flags.aspectRatio)
15
+ params['aspect_ratio'] = flags.aspectRatio;
16
+ if (flags.resolution)
17
+ params['resolution'] = flags.resolution;
18
+ const imageUrls = flags.imageUrls;
19
+ if (imageUrls) {
20
+ params['image_urls'] = Array.isArray(imageUrls) ? imageUrls : [imageUrls];
21
+ }
22
+ else if (flags.imageUrl) {
23
+ params['image_urls'] = [flags.imageUrl];
24
+ }
25
+ return {
26
+ model,
27
+ dash_scope: true,
28
+ moderation: true,
29
+ input: [{ params }],
30
+ metadata: {},
31
+ };
32
+ },
33
+ });
34
+ // suppress unused
35
+ void CLIError;
36
+ void ExitCode;
37
+ //# sourceMappingURL=nano.js.map