@seawork/server 1.0.2 → 1.0.7

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 (88) hide show
  1. package/dist/scripts/supervisor-entrypoint.js +1 -1
  2. package/dist/scripts/supervisor-entrypoint.js.map +1 -1
  3. package/dist/server/server/agent/provider-manifest.js +5 -5
  4. package/dist/server/server/agent/provider-manifest.js.map +1 -1
  5. package/dist/server/server/agent/providers/claude/claude-models.d.ts +1 -1
  6. package/dist/server/server/agent/providers/claude/claude-models.d.ts.map +1 -1
  7. package/dist/server/server/agent/providers/claude/claude-models.js +3 -41
  8. package/dist/server/server/agent/providers/claude/claude-models.js.map +1 -1
  9. package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
  10. package/dist/server/server/agent/providers/claude-agent.js +10 -26
  11. package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
  12. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  13. package/dist/server/server/agent/providers/codex-app-server-agent.js +24 -71
  14. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  15. package/dist/server/server/agent/providers/seawork-models.d.ts +4 -0
  16. package/dist/server/server/agent/providers/seawork-models.d.ts.map +1 -0
  17. package/dist/server/server/agent/providers/seawork-models.js +119 -0
  18. package/dist/server/server/agent/providers/seawork-models.js.map +1 -0
  19. package/dist/server/server/bootstrap.d.ts.map +1 -1
  20. package/dist/server/server/bootstrap.js +35 -1
  21. package/dist/server/server/bootstrap.js.map +1 -1
  22. package/dist/server/server/config.d.ts.map +1 -1
  23. package/dist/server/server/config.js +6 -1
  24. package/dist/server/server/config.js.map +1 -1
  25. package/dist/server/server/index.js +7 -0
  26. package/dist/server/server/index.js.map +1 -1
  27. package/dist/server/server/pid-lock.d.ts.map +1 -1
  28. package/dist/server/server/pid-lock.js +35 -2
  29. package/dist/server/server/pid-lock.js.map +1 -1
  30. package/dist/server/server/sac/auth.d.ts +41 -0
  31. package/dist/server/server/sac/auth.d.ts.map +1 -0
  32. package/dist/server/server/sac/auth.js +103 -0
  33. package/dist/server/server/sac/auth.js.map +1 -0
  34. package/dist/server/server/sac/client.d.ts +15 -0
  35. package/dist/server/server/sac/client.d.ts.map +1 -0
  36. package/dist/server/server/sac/client.js +70 -0
  37. package/dist/server/server/sac/client.js.map +1 -0
  38. package/dist/server/server/sac/download.d.ts +10 -0
  39. package/dist/server/server/sac/download.d.ts.map +1 -0
  40. package/dist/server/server/sac/download.js +67 -0
  41. package/dist/server/server/sac/download.js.map +1 -0
  42. package/dist/server/server/sac/endpoints.d.ts +13 -0
  43. package/dist/server/server/sac/endpoints.d.ts.map +1 -0
  44. package/dist/server/server/sac/endpoints.js +16 -0
  45. package/dist/server/server/sac/endpoints.js.map +1 -0
  46. package/dist/server/server/sac/errors.d.ts +39 -0
  47. package/dist/server/server/sac/errors.d.ts.map +1 -0
  48. package/dist/server/server/sac/errors.js +46 -0
  49. package/dist/server/server/sac/errors.js.map +1 -0
  50. package/dist/server/server/sac/generate.d.ts +35 -0
  51. package/dist/server/server/sac/generate.d.ts.map +1 -0
  52. package/dist/server/server/sac/generate.js +111 -0
  53. package/dist/server/server/sac/generate.js.map +1 -0
  54. package/dist/server/server/sac/index.d.ts +24 -0
  55. package/dist/server/server/sac/index.d.ts.map +1 -0
  56. package/dist/server/server/sac/index.js +26 -0
  57. package/dist/server/server/sac/index.js.map +1 -0
  58. package/dist/server/server/sac/output.d.ts +22 -0
  59. package/dist/server/server/sac/output.d.ts.map +1 -0
  60. package/dist/server/server/sac/output.js +142 -0
  61. package/dist/server/server/sac/output.js.map +1 -0
  62. package/dist/server/server/sac/poll.d.ts +12 -0
  63. package/dist/server/server/sac/poll.d.ts.map +1 -0
  64. package/dist/server/server/sac/poll.js +67 -0
  65. package/dist/server/server/sac/poll.js.map +1 -0
  66. package/dist/server/server/sac/providers/index.d.ts +19 -0
  67. package/dist/server/server/sac/providers/index.d.ts.map +1 -0
  68. package/dist/server/server/sac/providers/index.js +32 -0
  69. package/dist/server/server/sac/providers/index.js.map +1 -0
  70. package/dist/server/server/sac/providers/seaart.d.ts +7 -0
  71. package/dist/server/server/sac/providers/seaart.d.ts.map +1 -0
  72. package/dist/server/server/sac/providers/seaart.js +67 -0
  73. package/dist/server/server/sac/providers/seaart.js.map +1 -0
  74. package/dist/server/server/sac/providers/store.d.ts +8 -0
  75. package/dist/server/server/sac/providers/store.d.ts.map +1 -0
  76. package/dist/server/server/sac/providers/store.js +10 -0
  77. package/dist/server/server/sac/providers/store.js.map +1 -0
  78. package/dist/server/server/sac/providers/volces.d.ts +5 -0
  79. package/dist/server/server/sac/providers/volces.d.ts.map +1 -0
  80. package/dist/server/server/sac/providers/volces.js +88 -0
  81. package/dist/server/server/sac/providers/volces.js.map +1 -0
  82. package/dist/server/server/sac/types.d.ts +76 -0
  83. package/dist/server/server/sac/types.d.ts.map +1 -0
  84. package/dist/server/server/sac/types.js +5 -0
  85. package/dist/server/server/sac/types.js.map +1 -0
  86. package/dist/src/server/pid-lock.js +35 -2
  87. package/dist/src/server/pid-lock.js.map +1 -1
  88. package/package.json +10 -3
@@ -0,0 +1,142 @@
1
+ /**
2
+ * SAC output formatting
3
+ */
4
+ const SPINNER_FRAMES = [
5
+ "\u280B",
6
+ "\u2819",
7
+ "\u2839",
8
+ "\u2838",
9
+ "\u283C",
10
+ "\u2834",
11
+ "\u2826",
12
+ "\u2827",
13
+ "\u2807",
14
+ "\u280F",
15
+ ];
16
+ export function createSpinner(label) {
17
+ const isTTY = process.stderr.isTTY;
18
+ let frame = 0;
19
+ let interval = null;
20
+ let currentLabel = label;
21
+ return {
22
+ start() {
23
+ if (!isTTY)
24
+ return;
25
+ interval = setInterval(() => {
26
+ process.stderr.write(`\r${SPINNER_FRAMES[frame % SPINNER_FRAMES.length]} ${currentLabel}`);
27
+ frame++;
28
+ }, 80);
29
+ },
30
+ update(text) {
31
+ currentLabel = text;
32
+ },
33
+ stop(finalText) {
34
+ if (interval) {
35
+ clearInterval(interval);
36
+ interval = null;
37
+ }
38
+ if (isTTY) {
39
+ process.stderr.write("\r\x1b[K");
40
+ if (finalText) {
41
+ process.stderr.write(`${finalText}\n`);
42
+ }
43
+ }
44
+ },
45
+ };
46
+ }
47
+ export function createProgressBar(total, label = "") {
48
+ const isTTY = process.stderr.isTTY;
49
+ const width = 30;
50
+ return {
51
+ update(current) {
52
+ if (!isTTY)
53
+ return;
54
+ const pct = Math.min(1, current / total);
55
+ const filled = Math.round(width * pct);
56
+ const empty = width - filled;
57
+ const bar = "\u2588".repeat(filled) + "\u2591".repeat(empty);
58
+ const pctStr = `${Math.round(pct * 100)}%`;
59
+ process.stderr.write(`\r${label} ${bar} ${pctStr}`);
60
+ },
61
+ finish() {
62
+ if (isTTY)
63
+ process.stderr.write("\n");
64
+ },
65
+ };
66
+ }
67
+ export function detectOutputFormat(flagValue) {
68
+ if (flagValue === "json" || flagValue === "text")
69
+ return flagValue;
70
+ if (!process.stdout.isTTY)
71
+ return "json";
72
+ return "text";
73
+ }
74
+ export function formatJson(data) {
75
+ return JSON.stringify(data, null, 2);
76
+ }
77
+ export function formatKeyValue(obj, indent = 0) {
78
+ const prefix = " ".repeat(indent);
79
+ const lines = [];
80
+ for (const [key, value] of Object.entries(obj)) {
81
+ if (value === null || value === undefined)
82
+ continue;
83
+ if (Array.isArray(value)) {
84
+ lines.push(`${prefix}${key}:`);
85
+ for (const item of value) {
86
+ if (typeof item === "object" && item !== null) {
87
+ lines.push(`${prefix} - ${formatKeyValue(item, indent + 4).trimStart()}`);
88
+ }
89
+ else {
90
+ lines.push(`${prefix} - ${String(item)}`);
91
+ }
92
+ }
93
+ }
94
+ else if (typeof value === "object") {
95
+ lines.push(`${prefix}${key}:`);
96
+ lines.push(formatKeyValue(value, indent + 2));
97
+ }
98
+ else {
99
+ lines.push(`${prefix}${key}: ${String(value)}`);
100
+ }
101
+ }
102
+ return lines.join("\n");
103
+ }
104
+ export function formatText(data) {
105
+ if (data === null || data === undefined)
106
+ return "";
107
+ if (typeof data === "string")
108
+ return data;
109
+ if (typeof data === "number" || typeof data === "boolean")
110
+ return String(data);
111
+ if (Array.isArray(data)) {
112
+ if (data.length === 0)
113
+ return "(empty)";
114
+ if (typeof data[0] === "object" && data[0] !== null) {
115
+ return formatTable(data);
116
+ }
117
+ return data.map(String).join("\n");
118
+ }
119
+ if (typeof data === "object") {
120
+ return formatKeyValue(data);
121
+ }
122
+ return String(data);
123
+ }
124
+ export function formatTable(rows) {
125
+ if (rows.length === 0)
126
+ return "(empty)";
127
+ const keys = Object.keys(rows[0]);
128
+ const widths = keys.map((k) => Math.max(k.length, ...rows.map((r) => String(r[k] ?? "").length)));
129
+ const header = keys.map((k, i) => k.toUpperCase().padEnd(widths[i])).join(" ");
130
+ const separator = widths.map((w) => "-".repeat(w)).join(" ");
131
+ const body = rows.map((r) => keys.map((k, i) => String(r[k] ?? "").padEnd(widths[i])).join(" "));
132
+ return [header, separator, ...body].join("\n");
133
+ }
134
+ export function formatOutput(data, format) {
135
+ switch (format) {
136
+ case "json":
137
+ return formatJson(data);
138
+ case "text":
139
+ return formatText(data);
140
+ }
141
+ }
142
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../../src/server/sac/output.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,cAAc,GAAG;IACrB,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;CACT,CAAC;AAQF,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IACnC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAA0C,IAAI,CAAC;IAC3D,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,OAAO;QACL,KAAK;YACH,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;gBAC3F,KAAK,EAAE,CAAC;YACV,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,CAAC;QACD,MAAM,CAAC,IAAY;YACjB,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,SAAkB;YACrB,IAAI,QAAQ,EAAE,CAAC;gBACb,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACjC,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAOD,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,KAAK,GAAG,EAAE;IACzD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IACnC,MAAM,KAAK,GAAG,EAAE,CAAC;IAEjB,OAAO;QACL,MAAM,CAAC,OAAe;YACpB,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;YAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;YAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,MAAM;YACJ,IAAI,KAAK;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAkB;IACnD,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IACnE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAA4B,EAAE,MAAM,GAAG,CAAC;IACrE,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QACpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;YAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC9C,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,OAAO,cAAc,CAAC,IAA+B,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAC1F,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,KAAgC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/E,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACxC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACpD,OAAO,WAAW,CAAC,IAAiC,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,cAAc,CAAC,IAA+B,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAA+B;IACzD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAExC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAElG,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjF,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACrE,CAAC;IAEF,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAa,EAAE,MAAoB;IAC9D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,KAAK,MAAM;YACT,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * SAC task polling
3
+ */
4
+ import type { SACConfig, TaskResponse } from "./types.js";
5
+ export interface PollOptions {
6
+ taskId: string;
7
+ intervalSec?: number;
8
+ timeoutSec?: number;
9
+ apiKey?: string;
10
+ }
11
+ export declare function pollTask(config: SACConfig, opts: PollOptions): Promise<TaskResponse>;
12
+ //# sourceMappingURL=poll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll.d.ts","sourceRoot":"","sources":["../../../../src/server/sac/poll.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM1D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,wBAAsB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAsE1F"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * SAC task polling
3
+ */
4
+ import { requestJson } from "./client.js";
5
+ import { taskEndpoint } from "./endpoints.js";
6
+ import { SACError, ExitCode } from "./errors.js";
7
+ import { createSpinner } from "./output.js";
8
+ const NETWORK_RETRY_LIMIT = 3;
9
+ export async function pollTask(config, opts) {
10
+ const intervalSec = opts.intervalSec ?? 3;
11
+ const timeoutSec = opts.timeoutSec ?? config.timeout;
12
+ const deadline = Date.now() + timeoutSec * 1000;
13
+ const spinner = createSpinner("Waiting for task...");
14
+ if (!config.quiet)
15
+ spinner.start();
16
+ let networkErrors = 0;
17
+ try {
18
+ while (Date.now() < deadline) {
19
+ let data;
20
+ try {
21
+ data = await requestJson(config, {
22
+ url: taskEndpoint(config, opts.taskId),
23
+ method: "GET",
24
+ }, opts.apiKey);
25
+ networkErrors = 0; // reset on success
26
+ }
27
+ catch (err) {
28
+ const isNetwork = err instanceof SACError && err.exitCode === ExitCode.NETWORK;
29
+ if (isNetwork && networkErrors < NETWORK_RETRY_LIMIT) {
30
+ networkErrors++;
31
+ if (!config.quiet)
32
+ spinner.update(`Network error, retrying (${networkErrors}/${NETWORK_RETRY_LIMIT})...`);
33
+ await new Promise((r) => setTimeout(r, intervalSec * 1000));
34
+ continue;
35
+ }
36
+ // Network exhausted - attach task_id so the caller can surface it
37
+ if (err instanceof SACError)
38
+ err.taskId = opts.taskId;
39
+ throw err;
40
+ }
41
+ const status = data.status?.toLowerCase() ?? "";
42
+ if (!config.quiet) {
43
+ const pct = data.progress != null ? ` ${Math.round(data.progress * 100)}%` : "";
44
+ spinner.update(`Status: ${status}${pct}`);
45
+ }
46
+ if (status === "completed") {
47
+ spinner.stop("Done.");
48
+ return data;
49
+ }
50
+ if (status === "failed") {
51
+ spinner.stop("Failed.");
52
+ const apiErr = data.error;
53
+ const detail = apiErr?.error_message ?? (apiErr ? JSON.stringify(apiErr) : undefined);
54
+ const msg = detail ? `Task failed: ${detail}` : "Task failed.";
55
+ throw new SACError(msg, ExitCode.GENERAL);
56
+ }
57
+ await new Promise((r) => setTimeout(r, intervalSec * 1000));
58
+ }
59
+ }
60
+ finally {
61
+ spinner.stop();
62
+ }
63
+ const timeoutErr = new SACError("Task timed out.", ExitCode.TIMEOUT, `Task is still running. Resume with: seawork sac task ${opts.taskId} --wait`);
64
+ timeoutErr.taskId = opts.taskId;
65
+ throw timeoutErr;
66
+ }
67
+ //# sourceMappingURL=poll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll.js","sourceRoot":"","sources":["../../../../src/server/sac/poll.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAS5C,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAiB,EAAE,IAAiB;IACjE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC;IAChD,MAAM,OAAO,GAAG,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAErD,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IAEnC,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,IAAI,IAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,WAAW,CACtB,MAAM,EACN;oBACE,GAAG,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;oBACtC,MAAM,EAAE,KAAK;iBACd,EACD,IAAI,CAAC,MAAM,CACZ,CAAC;gBACF,aAAa,GAAG,CAAC,CAAC,CAAC,mBAAmB;YACxC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,SAAS,GAAG,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,OAAO,CAAC;gBAC/E,IAAI,SAAS,IAAI,aAAa,GAAG,mBAAmB,EAAE,CAAC;oBACrD,aAAa,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,CAAC,KAAK;wBACf,OAAO,CAAC,MAAM,CAAC,4BAA4B,aAAa,IAAI,mBAAmB,MAAM,CAAC,CAAC;oBACzF,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC;oBAC5D,SAAS;gBACX,CAAC;gBACD,kEAAkE;gBAClE,IAAI,GAAG,YAAY,QAAQ;oBAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBACtD,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YAEhD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,OAAO,CAAC,MAAM,CAAC,WAAW,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAqE,CAAC;gBAC1F,MAAM,MAAM,GAAG,MAAM,EAAE,aAAa,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBACtF,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,gBAAgB,MAAM,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;gBAC/D,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,QAAQ,CAC7B,iBAAiB,EACjB,QAAQ,CAAC,OAAO,EAChB,wDAAwD,IAAI,CAAC,MAAM,SAAS,CAC7E,CAAC;IACF,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAChC,MAAM,UAAU,CAAC;AACnB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Provider registry for image generation models.
3
+ *
4
+ * To add a new provider:
5
+ * 1. Create src/server/sac/providers/<provider>.ts
6
+ * 2. Import { registerProvider } from './store' and call it
7
+ * 3. Add an import for your file in this file
8
+ */
9
+ import "./seaart.js";
10
+ import "./volces.js";
11
+ export type { ProviderDef } from "./store.js";
12
+ export { registerProvider } from "./store.js";
13
+ /** Look up the provider for a given model ID. Returns undefined if unknown. */
14
+ export declare function getProvider(model: string): import("./store.js").ProviderDef | undefined;
15
+ /** All registered model IDs in registration order */
16
+ export declare function allModels(): string[];
17
+ /** All registered model IDs grouped by provider name */
18
+ export declare function modelsByProvider(): Map<string, string[]>;
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/sac/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC;AAErB,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,gDAExC;AAED,qDAAqD;AACrD,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAEpC;AAED,wDAAwD;AACxD,wBAAgB,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAQxD"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Provider registry for image generation models.
3
+ *
4
+ * To add a new provider:
5
+ * 1. Create src/server/sac/providers/<provider>.ts
6
+ * 2. Import { registerProvider } from './store' and call it
7
+ * 3. Add an import for your file in this file
8
+ */
9
+ // Providers must be imported before any registry query.
10
+ import "./seaart.js";
11
+ import "./volces.js";
12
+ export { registerProvider } from "./store.js";
13
+ import { _registry } from "./store.js";
14
+ /** Look up the provider for a given model ID. Returns undefined if unknown. */
15
+ export function getProvider(model) {
16
+ return _registry.get(model);
17
+ }
18
+ /** All registered model IDs in registration order */
19
+ export function allModels() {
20
+ return Array.from(_registry.keys());
21
+ }
22
+ /** All registered model IDs grouped by provider name */
23
+ export function modelsByProvider() {
24
+ const out = new Map();
25
+ for (const [model, def] of _registry) {
26
+ const list = out.get(def.provider) ?? [];
27
+ list.push(model);
28
+ out.set(def.provider, list);
29
+ }
30
+ return out;
31
+ }
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/server/sac/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,wDAAwD;AACxD,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC;AAGrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,+EAA+E;AAC/E,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,SAAS;IACvB,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;IACxC,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * SeaArt provider for image generation
3
+ */
4
+ export declare const SEAART_MODELS: readonly ["flux", "flux2", "flux2_klein", "sdxl", "sd3.5", "sd15", "z_image", "z_image_turbo", "anima", "chroma", "kontext"];
5
+ /** Default model_ver_no per model. Override with --model-ver-no. */
6
+ export declare const DEFAULT_MODEL_VER: Partial<Record<string, string>>;
7
+ //# sourceMappingURL=seaart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seaart.d.ts","sourceRoot":"","sources":["../../../../../src/server/sac/providers/seaart.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,eAAO,MAAM,aAAa,8HAYhB,CAAC;AAIX,oEAAoE;AACpE,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAI7D,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * SeaArt provider for image generation
3
+ */
4
+ import { registerProvider } from "./store.js";
5
+ export const SEAART_MODELS = [
6
+ "flux",
7
+ "flux2",
8
+ "flux2_klein",
9
+ "sdxl",
10
+ "sd3.5",
11
+ "sd15",
12
+ "z_image",
13
+ "z_image_turbo",
14
+ "anima",
15
+ "chroma",
16
+ "kontext",
17
+ ];
18
+ const SDXL_VER = "c9090ffbe5649de2f34cfe5b865d50fe";
19
+ /** Default model_ver_no per model. Override with --model-ver-no. */
20
+ export const DEFAULT_MODEL_VER = {
21
+ sdxl: SDXL_VER,
22
+ z_image: SDXL_VER,
23
+ z_image_turbo: SDXL_VER,
24
+ };
25
+ /** Models that require a `denoise` field (z_image family). */
26
+ const DENOISE_MODELS = new Set(["z_image", "z_image_turbo"]);
27
+ registerProvider({
28
+ provider: "seaart",
29
+ models: SEAART_MODELS,
30
+ buildBody(model, prompt, flags) {
31
+ const action = flags.action ?? (flags.imageUrl ? 1 : 0);
32
+ const params = {
33
+ prompt,
34
+ n_iter: flags.n ?? 1,
35
+ action,
36
+ };
37
+ const modelVerNo = flags.modelVerNo ?? DEFAULT_MODEL_VER[model];
38
+ if (modelVerNo)
39
+ params.model_ver_no = modelVerNo;
40
+ if (flags.width)
41
+ params.width = flags.width;
42
+ if (flags.height)
43
+ params.height = flags.height;
44
+ if (flags.steps)
45
+ params.steps = flags.steps;
46
+ if (flags.seed !== undefined)
47
+ params.seed = flags.seed;
48
+ if (flags.cfgScale !== undefined)
49
+ params.cfg_scale = flags.cfgScale;
50
+ if (flags.negativePrompt)
51
+ params.negative_prompt = flags.negativePrompt;
52
+ if (DENOISE_MODELS.has(model))
53
+ params.denoise = flags.denoise ?? 0.7;
54
+ const inputItem = { params };
55
+ if (flags.imageUrl) {
56
+ inputItem.content = [{ type: "image", url: flags.imageUrl }];
57
+ }
58
+ return {
59
+ model,
60
+ dash_scope: true,
61
+ moderation: true,
62
+ input: [inputItem],
63
+ metadata: {},
64
+ };
65
+ },
66
+ });
67
+ //# sourceMappingURL=seaart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seaart.js","sourceRoot":"","sources":["../../../../../src/server/sac/providers/seaart.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,MAAM;IACN,OAAO;IACP,aAAa;IACb,MAAM;IACN,OAAO;IACP,MAAM;IACN,SAAS;IACT,eAAe;IACf,OAAO;IACP,QAAQ;IACR,SAAS;CACD,CAAC;AAEX,MAAM,QAAQ,GAAG,kCAAkC,CAAC;AAEpD,oEAAoE;AACpE,MAAM,CAAC,MAAM,iBAAiB,GAAoC;IAChE,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,QAAQ;IACjB,aAAa,EAAE,QAAQ;CACxB,CAAC;AAEF,8DAA8D;AAC9D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;AAE7D,gBAAgB,CAAC;IACf,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,aAAa;IACrB,SAAS,CAAC,KAAa,EAAE,MAAc,EAAE,KAAkB;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAExD,MAAM,MAAM,GAA4B;YACtC,MAAM;YACN,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC;YACpB,MAAM;SACP,CAAC;QAEF,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAChE,IAAI,UAAU;YAAE,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC;QACjD,IAAI,KAAK,CAAC,KAAK;YAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5C,IAAI,KAAK,CAAC,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC/C,IAAI,KAAK,CAAC,KAAK;YAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;QACpE,IAAI,KAAK,CAAC,cAAc;YAAE,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC;QACxE,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC;QAErE,MAAM,SAAS,GAA4B,EAAE,MAAM,EAAE,CAAC;QACtD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,SAAS,CAAC,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO;YACL,KAAK;YACL,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,CAAC,SAAS,CAAC;YAClB,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Provider registry store
3
+ */
4
+ import type { ProviderDef } from "../types.js";
5
+ export type { ProviderDef };
6
+ export declare const _registry: Map<string, ProviderDef>;
7
+ export declare function registerProvider(def: ProviderDef): void;
8
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../../src/server/sac/providers/store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,eAAO,MAAM,SAAS,0BAAiC,CAAC;AAExD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAIvD"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Provider registry store
3
+ */
4
+ export const _registry = new Map();
5
+ export function registerProvider(def) {
6
+ for (const model of def.models) {
7
+ _registry.set(model, def);
8
+ }
9
+ }
10
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../../src/server/sac/providers/store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;AAExD,MAAM,UAAU,gBAAgB,CAAC,GAAgB;IAC/C,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC/B,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Volces provider for image generation
3
+ */
4
+ export declare const VOLCES_MODELS: readonly ["volces_seedream_5", "volces_seedream_4_5", "volces_jimeng_3_1", "volces_jimeng_3_0", "volces_seededit_3_0", "volces_seededit_3_0_i2i", "volces_jimeng_i2i_3_0"];
5
+ //# sourceMappingURL=volces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"volces.d.ts","sourceRoot":"","sources":["../../../../../src/server/sac/providers/volces.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqBH,eAAO,MAAM,aAAa,4KAA0C,CAAC"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Volces provider for image generation
3
+ */
4
+ import { SACError, ExitCode } from "../errors.js";
5
+ import { registerProvider } from "./store.js";
6
+ // Text-to-image Volces models
7
+ const T2I_MODELS = [
8
+ "volces_seedream_5",
9
+ "volces_seedream_4_5",
10
+ "volces_jimeng_3_1",
11
+ "volces_jimeng_3_0",
12
+ ];
13
+ // Image editing Volces models
14
+ const I2I_MODELS = [
15
+ "volces_seededit_3_0",
16
+ "volces_seededit_3_0_i2i",
17
+ "volces_jimeng_i2i_3_0",
18
+ ];
19
+ export const VOLCES_MODELS = [...T2I_MODELS, ...I2I_MODELS];
20
+ const I2I_SET = new Set(I2I_MODELS);
21
+ function buildT2IParams(model, prompt, flags) {
22
+ const params = { prompt };
23
+ if (flags.seed !== undefined)
24
+ params.seed = flags.seed;
25
+ if (model.includes("seedream")) {
26
+ // seedream uses a `size` string (e.g. "2048x2048", "2K") or WxH from flags
27
+ if (flags.size) {
28
+ params.size = flags.size;
29
+ }
30
+ else if (flags.width && flags.height) {
31
+ params.size = `${flags.width}x${flags.height}`;
32
+ }
33
+ // optional reference image
34
+ if (flags.imageUrl)
35
+ params.image = flags.imageUrl;
36
+ }
37
+ if (model.includes("jimeng")) {
38
+ // jimeng uses separate width/height integers
39
+ if (flags.width)
40
+ params.width = flags.width;
41
+ if (flags.height)
42
+ params.height = flags.height;
43
+ }
44
+ return params;
45
+ }
46
+ function buildI2IParams(model, prompt, flags) {
47
+ const imageUrl = flags.imageUrl;
48
+ if (!imageUrl) {
49
+ throw new SACError(`Model "${model}" requires --image-url (image editing model).`, ExitCode.USAGE);
50
+ }
51
+ const params = { prompt };
52
+ if (model === "volces_seededit_3_0_i2i") {
53
+ // single `image` string field
54
+ params.image = imageUrl;
55
+ if (flags.size)
56
+ params.size = flags.size;
57
+ }
58
+ else {
59
+ // seededit_3_0 and jimeng_i2i_3_0 use image_urls array
60
+ params.image_urls = [imageUrl];
61
+ if (flags.width)
62
+ params.width = flags.width;
63
+ if (flags.height)
64
+ params.height = flags.height;
65
+ }
66
+ if (flags.scale !== undefined)
67
+ params.scale = flags.scale;
68
+ if (flags.seed !== undefined)
69
+ params.seed = flags.seed;
70
+ return params;
71
+ }
72
+ registerProvider({
73
+ provider: "volces",
74
+ models: VOLCES_MODELS,
75
+ buildBody(model, prompt, flags) {
76
+ const params = I2I_SET.has(model)
77
+ ? buildI2IParams(model, prompt, flags)
78
+ : buildT2IParams(model, prompt, flags);
79
+ return {
80
+ model,
81
+ dash_scope: true,
82
+ moderation: true,
83
+ input: [{ params }],
84
+ metadata: {},
85
+ };
86
+ },
87
+ });
88
+ //# sourceMappingURL=volces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"volces.js","sourceRoot":"","sources":["../../../../../src/server/sac/providers/volces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * SAC type definitions
3
+ */
4
+ export interface SACConfig {
5
+ apiKey?: string;
6
+ multimodalBaseUrl: string;
7
+ timeout: number;
8
+ verbose: boolean;
9
+ quiet: boolean;
10
+ dryRun: boolean;
11
+ async: boolean;
12
+ defaultImageModel?: string;
13
+ }
14
+ export interface GlobalFlags {
15
+ prompt?: string;
16
+ model?: string;
17
+ modelVerNo?: string;
18
+ n?: number;
19
+ width?: number;
20
+ height?: number;
21
+ size?: string;
22
+ steps?: number;
23
+ seed?: number;
24
+ cfgScale?: number;
25
+ denoise?: number;
26
+ negativePrompt?: string;
27
+ imageUrl?: string;
28
+ scale?: number;
29
+ action?: number;
30
+ outDir?: string;
31
+ outPrefix?: string;
32
+ async?: boolean;
33
+ listModels?: boolean;
34
+ provider?: string;
35
+ wait?: boolean;
36
+ interval?: number;
37
+ timeout?: number;
38
+ outputOnlyUrl?: boolean;
39
+ taskId?: string;
40
+ _positional?: string[];
41
+ }
42
+ export interface TaskResponse {
43
+ id: string;
44
+ status: string;
45
+ progress?: number;
46
+ model?: string;
47
+ output?: Array<{
48
+ content?: Array<{
49
+ jobId?: string;
50
+ type?: string;
51
+ url?: string;
52
+ }>;
53
+ }>;
54
+ usage?: {
55
+ cost?: number;
56
+ discount?: number;
57
+ };
58
+ metadata?: {
59
+ completed_at?: number;
60
+ in_queue_at?: number;
61
+ };
62
+ error?: unknown;
63
+ }
64
+ export interface GenerationCreateResponse {
65
+ id: string;
66
+ status: string;
67
+ created_at?: number;
68
+ error?: unknown;
69
+ }
70
+ export interface ProviderDef {
71
+ provider: string;
72
+ models: readonly string[];
73
+ buildBody(model: string, prompt: string, flags: GlobalFlags): Record<string, unknown>;
74
+ }
75
+ export type OutputFormat = "text" | "json";
76
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/server/sac/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * SAC type definitions
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/server/sac/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}