@coralai/sps-cli 0.65.71 → 0.65.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/artCommand.d.ts +4 -0
- package/dist/commands/artCommand.d.ts.map +1 -0
- package/dist/commands/artCommand.js +277 -0
- package/dist/commands/artCommand.js.map +1 -0
- package/dist/console/lib/sessionConfig.d.ts +63 -0
- package/dist/console/lib/sessionConfig.d.ts.map +1 -0
- package/dist/console/lib/sessionConfig.js +204 -0
- package/dist/console/lib/sessionConfig.js.map +1 -0
- package/dist/console/routes/cards.d.ts.map +1 -1
- package/dist/console/routes/cards.js +17 -4
- package/dist/console/routes/cards.js.map +1 -1
- package/dist/console/routes/chat.d.ts.map +1 -1
- package/dist/console/routes/chat.js +98 -11
- package/dist/console/routes/chat.js.map +1 -1
- package/dist/console/routes/projectConfig.d.ts.map +1 -1
- package/dist/console/routes/projectConfig.js +146 -0
- package/dist/console/routes/projectConfig.js.map +1 -1
- package/dist/core/agents/projectAgentConfig.d.ts +11 -0
- package/dist/core/agents/projectAgentConfig.d.ts.map +1 -1
- package/dist/core/agents/projectAgentConfig.js +29 -2
- package/dist/core/agents/projectAgentConfig.js.map +1 -1
- package/dist/core/agents/readProjectAgent.d.ts +25 -0
- package/dist/core/agents/readProjectAgent.d.ts.map +1 -0
- package/dist/core/agents/readProjectAgent.js +67 -0
- package/dist/core/agents/readProjectAgent.js.map +1 -0
- package/dist/core/agents/writeProjectPersona.d.ts +24 -0
- package/dist/core/agents/writeProjectPersona.d.ts.map +1 -0
- package/dist/core/agents/writeProjectPersona.js +44 -0
- package/dist/core/agents/writeProjectPersona.js.map +1 -0
- package/dist/core/skills/distribution.d.ts +8 -0
- package/dist/core/skills/distribution.d.ts.map +1 -1
- package/dist/core/skills/distribution.js +18 -6
- package/dist/core/skills/distribution.js.map +1 -1
- package/dist/core/skills/ownership.d.ts +46 -0
- package/dist/core/skills/ownership.d.ts.map +1 -0
- package/dist/core/skills/ownership.js +63 -0
- package/dist/core/skills/ownership.js.map +1 -0
- package/dist/core/workspacePaths.d.ts +13 -0
- package/dist/core/workspacePaths.d.ts.map +1 -1
- package/dist/core/workspacePaths.js +16 -0
- package/dist/core/workspacePaths.js.map +1 -1
- package/dist/main.js +18 -1
- package/dist/main.js.map +1 -1
- package/dist/providers/RuntimeSessionRuntime.d.ts.map +1 -1
- package/dist/providers/RuntimeSessionRuntime.js +11 -0
- package/dist/providers/RuntimeSessionRuntime.js.map +1 -1
- package/dist/providers/art/atlas.d.ts +34 -0
- package/dist/providers/art/atlas.d.ts.map +1 -0
- package/dist/providers/art/atlas.js +71 -0
- package/dist/providers/art/atlas.js.map +1 -0
- package/dist/providers/art/frames.d.ts +43 -0
- package/dist/providers/art/frames.d.ts.map +1 -0
- package/dist/providers/art/frames.js +94 -0
- package/dist/providers/art/frames.js.map +1 -0
- package/dist/providers/art/pixels.d.ts +33 -0
- package/dist/providers/art/pixels.d.ts.map +1 -0
- package/dist/providers/art/pixels.js +431 -0
- package/dist/providers/art/pixels.js.map +1 -0
- package/dist/providers/art/sheet.d.ts +70 -0
- package/dist/providers/art/sheet.d.ts.map +1 -0
- package/dist/providers/art/sheet.js +312 -0
- package/dist/providers/art/sheet.js.map +1 -0
- package/dist/providers/llm/codexAuth.d.ts.map +1 -1
- package/dist/providers/llm/codexAuth.js +3 -0
- package/dist/providers/llm/codexAuth.js.map +1 -1
- package/dist/providers/media/mediaProviders.d.ts +15 -0
- package/dist/providers/media/mediaProviders.d.ts.map +1 -1
- package/dist/providers/media/mediaProviders.js +17 -0
- package/dist/providers/media/mediaProviders.js.map +1 -1
- package/dist/services/ChatService.d.ts +31 -0
- package/dist/services/ChatService.d.ts.map +1 -1
- package/dist/services/ChatService.js +22 -3
- package/dist/services/ChatService.js.map +1 -1
- package/dist/services/SkillService.d.ts +6 -0
- package/dist/services/SkillService.d.ts.map +1 -1
- package/dist/services/SkillService.js +3 -0
- package/dist/services/SkillService.js.map +1 -1
- package/package.json +3 -1
- package/skills/art-chain/SKILL.md +242 -0
- package/skills/registry.yaml +2 -0
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
// ⚠️ 机械抽取自 src/spriteSheet.ts(整文件,未改一字)。
|
|
2
|
+
/**
|
|
3
|
+
* 图集归一化(确定性,sharp):把 AI 生成的"成套元素一张图集"修成真正均匀的网格。
|
|
4
|
+
*
|
|
5
|
+
* 痛点:AI 生成的网格几乎从不是像素级均匀(每格大小/居中/间距/外边距都有偏差),
|
|
6
|
+
* 下游按 `图宽/cols` 等分必然切歪。本模块用 **alpha 边缘检测**(透明缝隙)找出每个元素的
|
|
7
|
+
* 真实边界,裁到自身 bbox,再**等大居中重排成均匀网格**——之后 `frameWidth=图宽/cols` 等分就对了。
|
|
8
|
+
*
|
|
9
|
+
* 只在透明底图集上有效(元素间有透明缝隙);检测不到(粘连/不透明/数量不符)→ 退回等分网格。
|
|
10
|
+
* bbox 全部由本模块从 raw 像素自算(不用 sharp.trim —— 它在 extract 链里会抛 bad extract area)。
|
|
11
|
+
*/
|
|
12
|
+
import sharp from 'sharp';
|
|
13
|
+
const ALPHA_T = 16; // 透明阈值:alpha<=16 视为透明(吸收抗锯齿边缘)
|
|
14
|
+
/** 把"每格内容像素数"序列按"空格(count<minCov)"切成若干连续非空带。 */
|
|
15
|
+
function groupBands(count, n, minCov) {
|
|
16
|
+
const bands = [];
|
|
17
|
+
let s = -1;
|
|
18
|
+
for (let i = 0; i < n; i++) {
|
|
19
|
+
const filled = count[i] >= minCov;
|
|
20
|
+
if (filled && s < 0)
|
|
21
|
+
s = i;
|
|
22
|
+
else if (!filled && s >= 0) {
|
|
23
|
+
bands.push([s, i]);
|
|
24
|
+
s = -1;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (s >= 0)
|
|
28
|
+
bands.push([s, n]);
|
|
29
|
+
return bands;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* 内容感知探测:先按行投影找出 `rows` 个行带,再在每个行带内按列投影找 `cols` 个列带。
|
|
33
|
+
* 行内逐带做列投影(而非全图一次)→ 容忍行与行之间的水平错位。
|
|
34
|
+
* 缝隙判定用"真空"(count<1):ALPHA_T 已滤掉抗锯齿,真正的格间缝隙就是全透明=0;
|
|
35
|
+
* 用相对比例会把圆形/不规则元素渐细的尖端误判成空行 → 带边界切进元素里。
|
|
36
|
+
* 行带数 ≠ rows、或任一行的列带数 ≠ cols → 判为不可靠,返回 detected:false。
|
|
37
|
+
*/
|
|
38
|
+
export function detectCells(data, W, H, ch, cols, rows) {
|
|
39
|
+
if (ch < 4 || cols < 1 || rows < 1)
|
|
40
|
+
return { cells: [], detected: false }; // 无 alpha 无法按透明缝隙切
|
|
41
|
+
const rowCount = new Int32Array(H);
|
|
42
|
+
for (let y = 0; y < H; y++) {
|
|
43
|
+
const base = y * W * ch;
|
|
44
|
+
let c = 0;
|
|
45
|
+
for (let x = 0; x < W; x++)
|
|
46
|
+
if (data[base + x * ch + 3] > ALPHA_T)
|
|
47
|
+
c++;
|
|
48
|
+
rowCount[y] = c;
|
|
49
|
+
}
|
|
50
|
+
const rowBands = groupBands(rowCount, H, 1);
|
|
51
|
+
if (rowBands.length !== rows)
|
|
52
|
+
return { cells: [], detected: false };
|
|
53
|
+
const cells = [];
|
|
54
|
+
for (const [y0, y1] of rowBands) {
|
|
55
|
+
const colCount = new Int32Array(W);
|
|
56
|
+
for (let y = y0; y < y1; y++) {
|
|
57
|
+
const base = y * W * ch;
|
|
58
|
+
for (let x = 0; x < W; x++)
|
|
59
|
+
if (data[base + x * ch + 3] > ALPHA_T)
|
|
60
|
+
colCount[x]++;
|
|
61
|
+
}
|
|
62
|
+
const colBands = groupBands(colCount, W, 1);
|
|
63
|
+
if (colBands.length !== cols)
|
|
64
|
+
return { cells: [], detected: false };
|
|
65
|
+
for (const [x0, x1] of colBands)
|
|
66
|
+
cells.push({ left: x0, top: y0, width: x1 - x0, height: y1 - y0 });
|
|
67
|
+
}
|
|
68
|
+
return { cells, detected: true };
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* 连通域检测(不靠网格假设):对 alpha 前景做 8 邻域 flood-fill,每个连通色块 = 一个精灵候选。
|
|
72
|
+
* 适配 AI 把元素摆得大小不一/不规则的图集(网格 detectCells 失败的场景)。
|
|
73
|
+
* 三道清理:① 丢面积过小的噪点块(根治 1×1 误检帧);② 把"被大块 bbox 几乎包住的小碎片"
|
|
74
|
+
* (高光/眼睛反光/断开的描边点)并回母体;③ 按行序(行带→列)排列,帧序稳定。
|
|
75
|
+
* 检测不到任何够大的块 → 返回空(调用方退回等分兜底)。
|
|
76
|
+
*/
|
|
77
|
+
function detectComponents(data, W, H, ch) {
|
|
78
|
+
if (ch < 4)
|
|
79
|
+
return [];
|
|
80
|
+
const fg = (x, y) => data[(y * W + x) * ch + 3] > ALPHA_T;
|
|
81
|
+
const visited = new Uint8Array(W * H);
|
|
82
|
+
const comps = [];
|
|
83
|
+
const stack = [];
|
|
84
|
+
for (let sy = 0; sy < H; sy++) {
|
|
85
|
+
for (let sx = 0; sx < W; sx++) {
|
|
86
|
+
const sidx = sy * W + sx;
|
|
87
|
+
if (visited[sidx] || !fg(sx, sy))
|
|
88
|
+
continue;
|
|
89
|
+
let minx = sx, miny = sy, maxx = sx, maxy = sy, area = 0;
|
|
90
|
+
stack.length = 0;
|
|
91
|
+
stack.push(sidx);
|
|
92
|
+
visited[sidx] = 1;
|
|
93
|
+
while (stack.length) {
|
|
94
|
+
const p = stack.pop();
|
|
95
|
+
const py = (p / W) | 0;
|
|
96
|
+
const px = p - py * W;
|
|
97
|
+
area++;
|
|
98
|
+
if (px < minx)
|
|
99
|
+
minx = px;
|
|
100
|
+
if (px > maxx)
|
|
101
|
+
maxx = px;
|
|
102
|
+
if (py < miny)
|
|
103
|
+
miny = py;
|
|
104
|
+
if (py > maxy)
|
|
105
|
+
maxy = py;
|
|
106
|
+
for (let dy = -1; dy <= 1; dy++) {
|
|
107
|
+
for (let dx = -1; dx <= 1; dx++) {
|
|
108
|
+
if (!dx && !dy)
|
|
109
|
+
continue;
|
|
110
|
+
const nx = px + dx, ny = py + dy;
|
|
111
|
+
if (nx < 0 || ny < 0 || nx >= W || ny >= H)
|
|
112
|
+
continue;
|
|
113
|
+
const nidx = ny * W + nx;
|
|
114
|
+
if (visited[nidx] || !fg(nx, ny))
|
|
115
|
+
continue;
|
|
116
|
+
visited[nidx] = 1;
|
|
117
|
+
stack.push(nidx);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
comps.push({ minx, miny, maxx, maxy, area });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// ① 丢噪点:面积 < max(64px, 图面积 0.08%) 视为噪点/碎屑。
|
|
125
|
+
const minArea = Math.max(64, Math.round(W * H * 0.0008));
|
|
126
|
+
let kept = comps.filter((c) => c.area >= minArea).sort((a, b) => b.area - a.area);
|
|
127
|
+
// ② 合并被大块几乎包住的小碎片(高光/反光/断点):小块 bbox 面积 ≥80% 落在某更大块 bbox 内,
|
|
128
|
+
// 且自身比母体小很多(<35%)→ 并进母体。两个并排的独立精灵 bbox 不会互相包住,不会误并。
|
|
129
|
+
const merged = [];
|
|
130
|
+
for (const c of kept) {
|
|
131
|
+
const host = merged.find((h) => {
|
|
132
|
+
const ox = Math.max(0, Math.min(c.maxx, h.maxx) - Math.max(c.minx, h.minx) + 1);
|
|
133
|
+
const oy = Math.max(0, Math.min(c.maxy, h.maxy) - Math.max(c.miny, h.miny) + 1);
|
|
134
|
+
const cArea = (c.maxx - c.minx + 1) * (c.maxy - c.miny + 1);
|
|
135
|
+
return ox * oy >= cArea * 0.8 && c.area < h.area * 0.35;
|
|
136
|
+
});
|
|
137
|
+
if (host) {
|
|
138
|
+
host.minx = Math.min(host.minx, c.minx);
|
|
139
|
+
host.miny = Math.min(host.miny, c.miny);
|
|
140
|
+
host.maxx = Math.max(host.maxx, c.maxx);
|
|
141
|
+
host.maxy = Math.max(host.maxy, c.maxy);
|
|
142
|
+
host.area += c.area;
|
|
143
|
+
}
|
|
144
|
+
else
|
|
145
|
+
merged.push({ ...c });
|
|
146
|
+
}
|
|
147
|
+
kept = merged;
|
|
148
|
+
if (!kept.length)
|
|
149
|
+
return [];
|
|
150
|
+
// ③ 行序排列:按中心 y 分行带(行高阈值取中位高的 0.7 倍),行内按 x 左到右 → 帧序自然、稳定。
|
|
151
|
+
const heights = kept.map((c) => c.maxy - c.miny + 1).sort((a, b) => a - b);
|
|
152
|
+
const medH = heights[heights.length >> 1] || 1;
|
|
153
|
+
const band = Math.max(1, medH * 0.7);
|
|
154
|
+
return kept
|
|
155
|
+
.map((c) => ({ c, cy: (c.miny + c.maxy) / 2, cx: (c.minx + c.maxx) / 2 }))
|
|
156
|
+
.sort((a, b) => (Math.round(a.cy / band) - Math.round(b.cy / band)) || (a.cx - b.cx))
|
|
157
|
+
.map(({ c }) => ({ left: c.minx, top: c.miny, width: c.maxx - c.minx + 1, height: c.maxy - c.miny + 1 }));
|
|
158
|
+
}
|
|
159
|
+
/** 在给定矩形内自算 alpha 紧致包围盒(裁掉四周透明);整块全透明返回 null。 */
|
|
160
|
+
function tightBox(data, W, H, ch, region) {
|
|
161
|
+
if (ch < 4)
|
|
162
|
+
return region;
|
|
163
|
+
const x0 = Math.max(0, region.left);
|
|
164
|
+
const y0 = Math.max(0, region.top);
|
|
165
|
+
const x1 = Math.min(W, region.left + region.width);
|
|
166
|
+
const y1 = Math.min(H, region.top + region.height);
|
|
167
|
+
let minx = Infinity;
|
|
168
|
+
let miny = Infinity;
|
|
169
|
+
let maxx = -1;
|
|
170
|
+
let maxy = -1;
|
|
171
|
+
for (let y = y0; y < y1; y++) {
|
|
172
|
+
const base = y * W * ch;
|
|
173
|
+
for (let x = x0; x < x1; x++) {
|
|
174
|
+
if (data[base + x * ch + 3] > ALPHA_T) {
|
|
175
|
+
if (x < minx)
|
|
176
|
+
minx = x;
|
|
177
|
+
if (x > maxx)
|
|
178
|
+
maxx = x;
|
|
179
|
+
if (y < miny)
|
|
180
|
+
miny = y;
|
|
181
|
+
if (y > maxy)
|
|
182
|
+
maxy = y;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (maxx < 0)
|
|
187
|
+
return null;
|
|
188
|
+
return { left: minx, top: miny, width: maxx - minx + 1, height: maxy - miny + 1 };
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* 把一张图集切成单帧(内容感知 bbox;检测失败退回等分 + 逐格 bbox)。
|
|
192
|
+
* opts.grid=true:强制按 cols×rows 等分网格切(跳过连通域)——用于【规整横排/网格的序列帧】,
|
|
193
|
+
* 避免连通域把一个动作的分离部件(如波动拳能量球)误切成多帧、帧数对不上。
|
|
194
|
+
*/
|
|
195
|
+
export async function sliceSheet(buf, cols, rows, opts) {
|
|
196
|
+
const { data, info } = await sharp(buf).ensureAlpha().raw().toBuffer({ resolveWithObject: true });
|
|
197
|
+
const W = info.width;
|
|
198
|
+
const H = info.height;
|
|
199
|
+
const ch = info.channels;
|
|
200
|
+
// 切分:默认【连通域边缘检测】按实际色块切(不做网格假设)——根治"等分横穿元素/1×1 噪点帧"。
|
|
201
|
+
// grid=true 或连一个色块都检不出(不透明底/全粘连)→ 退回严格等分网格。
|
|
202
|
+
const comp = opts?.grid ? [] : detectComponents(data, W, H, ch);
|
|
203
|
+
let cells;
|
|
204
|
+
let contentAware;
|
|
205
|
+
if (comp.length >= 1) {
|
|
206
|
+
cells = comp;
|
|
207
|
+
contentAware = true;
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
const cw = Math.floor(W / cols);
|
|
211
|
+
const chh = Math.floor(H / rows);
|
|
212
|
+
cells = [];
|
|
213
|
+
for (let r = 0; r < rows; r++)
|
|
214
|
+
for (let c = 0; c < cols; c++)
|
|
215
|
+
cells.push({ left: c * cw, top: r * chh, width: cw, height: chh });
|
|
216
|
+
contentAware = false;
|
|
217
|
+
}
|
|
218
|
+
const frames = [];
|
|
219
|
+
const sizes = [];
|
|
220
|
+
for (const cell of cells) {
|
|
221
|
+
const bb = tightBox(data, W, H, ch, cell);
|
|
222
|
+
if (!bb) {
|
|
223
|
+
frames.push(await sharp({ create: { width: 1, height: 1, channels: 4, background: { r: 0, g: 0, b: 0, alpha: 0 } } }).png().toBuffer());
|
|
224
|
+
sizes.push({ w: 0, h: 0 });
|
|
225
|
+
continue;
|
|
226
|
+
}
|
|
227
|
+
frames.push(await sharp(buf).extract({ left: bb.left, top: bb.top, width: bb.width, height: bb.height }).png().toBuffer());
|
|
228
|
+
sizes.push({ w: bb.width, h: bb.height });
|
|
229
|
+
}
|
|
230
|
+
return { frames, sizes, detected: contentAware };
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* 把一张 AI 图集归一化成均匀网格:切出每个元素(紧致 bbox)→ 等大居中重拼。
|
|
234
|
+
* 检测失败时退回"等分 + 逐格 bbox 居中"(不致更糟)。返回新 PNG buffer(尺寸通常与原图不同)。
|
|
235
|
+
*/
|
|
236
|
+
export async function normalizeSheet(buf, cols, rows) {
|
|
237
|
+
const { frames, sizes, detected } = await sliceSheet(buf, cols, rows);
|
|
238
|
+
const maxW = Math.max(1, ...sizes.map((s) => s.w || 1));
|
|
239
|
+
const maxH = Math.max(1, ...sizes.map((s) => s.h || 1));
|
|
240
|
+
const pad = Math.max(2, Math.round(Math.max(maxW, maxH) * 0.06));
|
|
241
|
+
const CW = maxW + pad * 2;
|
|
242
|
+
const CH = maxH + pad * 2;
|
|
243
|
+
const composites = frames.map((b, i) => {
|
|
244
|
+
const c = i % cols;
|
|
245
|
+
const r = Math.floor(i / cols);
|
|
246
|
+
const w = sizes[i].w || 1;
|
|
247
|
+
const h = sizes[i].h || 1;
|
|
248
|
+
return { input: b, left: c * CW + Math.round((CW - w) / 2), top: r * CH + Math.round((CH - h) / 2) };
|
|
249
|
+
});
|
|
250
|
+
const out = await sharp({ create: { width: CW * cols, height: CH * rows, channels: 4, background: { r: 0, g: 0, b: 0, alpha: 0 } } })
|
|
251
|
+
.composite(composites)
|
|
252
|
+
.png()
|
|
253
|
+
.toBuffer();
|
|
254
|
+
return { buf: out, detected, frames: frames.length, cols, rows, cellWidth: CW, cellHeight: CH };
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* 把一张 AI 图集切成单帧(紧致 bbox)后,**紧凑 shelf 重排**成一张图集 + 给出每帧 rect。
|
|
258
|
+
* 不等大(省均匀网格的填充浪费)、不旋转、不用装箱器——按原顺序逐帧码放、超宽换行。
|
|
259
|
+
* 帧顺序保持行优先(索引语义不变);空格用 1×1 透明占位、rect 照常记录。
|
|
260
|
+
*/
|
|
261
|
+
export async function packSheet(buf, cols, rows, opts) {
|
|
262
|
+
const sliced = await sliceSheet(buf, cols, rows, opts);
|
|
263
|
+
let frames = sliced.frames;
|
|
264
|
+
let sizes = sliced.sizes;
|
|
265
|
+
const detected = sliced.detected;
|
|
266
|
+
// 图集压缩尺寸的正解:切分后按【单帧目标高】缩每帧,再紧凑重排 → 图集总尺寸自然合理。
|
|
267
|
+
// 不要事后对整张图集 resize(那会把"单帧上限"误当整图上限、把多帧图集缩没)。
|
|
268
|
+
if (opts?.frameMaxHeight && opts.frameMaxHeight > 0) {
|
|
269
|
+
const mh = opts.frameMaxHeight;
|
|
270
|
+
const scaled = await Promise.all(frames.map(async (b, i) => {
|
|
271
|
+
if (!sizes[i].h || sizes[i].h <= mh)
|
|
272
|
+
return { buf: b, w: sizes[i].w, h: sizes[i].h };
|
|
273
|
+
const nb = await sharp(b).resize({ height: mh, fit: 'inside', withoutEnlargement: true }).png().toBuffer();
|
|
274
|
+
const m = await sharp(nb).metadata();
|
|
275
|
+
return { buf: nb, w: m.width || 0, h: m.height || 0 };
|
|
276
|
+
}));
|
|
277
|
+
frames = scaled.map((s) => s.buf);
|
|
278
|
+
sizes = scaled.map((s) => ({ w: s.w, h: s.h }));
|
|
279
|
+
}
|
|
280
|
+
const gap = 2; // 帧间留白,防纹理采样越界串色
|
|
281
|
+
const ws = sizes.map((s) => Math.max(1, s.w));
|
|
282
|
+
const hs = sizes.map((s) => Math.max(1, s.h));
|
|
283
|
+
// 目标宽度:估个接近正方形的图集宽(按总面积开方,且不小于最宽帧)。
|
|
284
|
+
const area = ws.reduce((t, w, i) => t + (w + gap) * (hs[i] + gap), 0);
|
|
285
|
+
const targetW = Math.max(Math.max(...ws) + gap * 2, Math.ceil(Math.sqrt(area)));
|
|
286
|
+
const rects = [];
|
|
287
|
+
let x = gap;
|
|
288
|
+
let y = gap;
|
|
289
|
+
let rowH = 0;
|
|
290
|
+
let atlasW = 0;
|
|
291
|
+
for (let i = 0; i < frames.length; i++) {
|
|
292
|
+
const w = ws[i];
|
|
293
|
+
const h = hs[i];
|
|
294
|
+
if (x > gap && x + w + gap > targetW) {
|
|
295
|
+
y += rowH + gap; // 换行
|
|
296
|
+
x = gap;
|
|
297
|
+
rowH = 0;
|
|
298
|
+
}
|
|
299
|
+
rects.push({ x, y, w, h });
|
|
300
|
+
x += w + gap;
|
|
301
|
+
rowH = Math.max(rowH, h);
|
|
302
|
+
atlasW = Math.max(atlasW, x);
|
|
303
|
+
}
|
|
304
|
+
const atlasH = y + rowH + gap;
|
|
305
|
+
const composites = frames.map((b, i) => ({ input: b, left: rects[i].x, top: rects[i].y }));
|
|
306
|
+
const out = await sharp({ create: { width: atlasW, height: atlasH, channels: 4, background: { r: 0, g: 0, b: 0, alpha: 0 } } })
|
|
307
|
+
.composite(composites)
|
|
308
|
+
.png()
|
|
309
|
+
.toBuffer();
|
|
310
|
+
return { buf: out, frames: rects, width: atlasW, height: atlasH, detected };
|
|
311
|
+
}
|
|
312
|
+
//# sourceMappingURL=sheet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sheet.js","sourceRoot":"","sources":["../../../src/providers/art/sheet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexAuth.d.ts","sourceRoot":"","sources":["../../../src/providers/llm/codexAuth.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,oBAAoB,0CAA0C,CAAC;AAG5E,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"codexAuth.d.ts","sourceRoot":"","sources":["../../../src/providers/llm/codexAuth.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,oBAAoB,0CAA0C,CAAC;AAG5E,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AA2DD,kDAAkD;AAClD,wBAAsB,aAAa,CACjC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,UAAU,CAAC,CA+BrB"}
|
|
@@ -36,6 +36,9 @@ function jwtExpMs(jwt) {
|
|
|
36
36
|
function codexAuthCandidates(explicit) {
|
|
37
37
|
if (explicit)
|
|
38
38
|
return [explicit];
|
|
39
|
+
// 🔴 `CODEX_AUTH_FILE` 仅限**单账户开发环境**。不得用它让服务账户(如迁独立账户后的 sps)
|
|
40
|
+
// 指向交互用户的 auth.json —— 见上面那条"refresh token 一次性"的事故:多一个持有者
|
|
41
|
+
// 就多一条抢刷新的链。服务账户要模型能力走**宿主注入的 endpoint**,不持有人的订阅凭据。
|
|
39
42
|
if (process.env.CODEX_AUTH_FILE)
|
|
40
43
|
return [process.env.CODEX_AUTH_FILE];
|
|
41
44
|
return [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexAuth.js","sourceRoot":"","sources":["../../../src/providers/llm/codexAuth.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,SAAS,GAAG,8BAA8B,CAAC;AACjD,MAAM,SAAS,GAAG,qCAAqC,CAAC;AACxD,MAAM,CAAC,MAAM,oBAAoB,GAAG,uCAAuC,CAAC;AAC5E,MAAM,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;AAazD,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7E,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,mBAAmB,CAAC,QAAiB;IAC5C,IAAI,QAAQ;QAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;QAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACtE,OAAO;QACL,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,WAAW,CAAC;KACtE,CAAC;AACJ,CAAC;AAED,0DAA0D;AAC1D,SAAS,kBAAkB,CACzB,IAAY;IAEZ,IAAI,GAA8E,CAAC;IACnF,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC;IACtD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,IAAI,GAAG,CAAC,OAAO,CAAC;IACzD,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,GAAG,CAAC,SAAS,CAAC;IACxD,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAChE,CAAC;YACF,SAAS,GAAG,OAAO,CAAC,6BAA6B,CAAC,EAAE,kBAAkB,CAAC;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,aAAa;QACf,CAAC;IACH,CAAC;IACD,OAAO,MAAM,IAAI,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAChF,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAkC,EAAE;IAEpC,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,UAAU;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACvD,MAAM,CACL,CAAC,CAAC,EAAoF,EAAE,CACtF,CAAC,CAAC,KAAK,KAAK,IAAI,CACnB;SACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,wBAAwB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAC9D,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;IACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IAEzC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;QAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAC1C,MAAM,SAAS,GAAG,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7D,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,CAAC;IACzB,CAAC;YAAS,CAAC;QACT,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS;YAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAOD,SAAS,aAAa,CAAC,QAAgB;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAkB,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,QAAgB,EAChB,OAA+B;IAE/B,6DAA6D;IAC7D,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;IAC1C,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC;IACzC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS;QACnC,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,mCAAmC,CAAC,CAAC;IAElE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;QAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,SAAS,EAAE;QACxD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;KACpG,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACzG,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyE,CAAC;IACrG,IAAI,CAAC,CAAC,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAEjE,GAAG,CAAC,MAAM,GAAG;QACX,GAAG,GAAG,CAAC,MAAM;QACb,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,aAAa,EAAE,CAAC,CAAC,aAAa,IAAI,OAAO;QACzC,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ;QAC5C,UAAU,EAAE,SAAS;KACtB,CAAC;IACF,GAAG,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAE/B,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB,EAAE,KAAoB;IAC7D,MAAM,SAAS,GAAG,IAAI,CACpB,OAAO,CAAC,QAAQ,CAAC,EACjB,IAAI,UAAU,EAAE,gBAAgB,CACjC,CAAC;IACF,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC"}
|
|
1
|
+
{"version":3,"file":"codexAuth.js","sourceRoot":"","sources":["../../../src/providers/llm/codexAuth.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,4 +66,19 @@ export declare function resolveMediaProvider(capability: MediaCapability, cwd?:
|
|
|
66
66
|
provider: MediaProvider;
|
|
67
67
|
model?: string;
|
|
68
68
|
} | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* 写项目级 media provider 注册表(`<cwd>/.sps/media-providers.json`)—— **整体替换**。
|
|
71
|
+
*
|
|
72
|
+
* 存在的理由(服务化分层 P4·A):消费方今天**直写**这个文件,而它和 sps 的 daemon/worker
|
|
73
|
+
* 在同一个工作区里。只要双方都要写,sps 迁独立账户就得靠共享组 + setgid 那套(脆且难验);
|
|
74
|
+
* 消费方改走本函数(经 HTTP 端点)后,工作区变成 **sps 独写** —— 迁账号从权限工程
|
|
75
|
+
* 退化成改属主。
|
|
76
|
+
*
|
|
77
|
+
* 🔴 整体替换不是合并:注入方每次 provision 都给全量(per-会话 24h token 会轮换,
|
|
78
|
+
* 合并会把上一轮的死 token 留下)。
|
|
79
|
+
* 🔴 0600:内容是 per-会话临时 token(带租户 + jobId,用于余额闸与用量归因)。
|
|
80
|
+
* 🔴 写入即"宿主接管"——与严格模式 `hostManagesMedia(cwd)` 判据是同一个文件
|
|
81
|
+
* (见 docs/design/service-layering.md 附录 A.8)。
|
|
82
|
+
*/
|
|
83
|
+
export declare function writeProjectMediaProviders(cwd: string, list: MediaProvider[]): void;
|
|
69
84
|
//# sourceMappingURL=mediaProviders.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediaProviders.d.ts","sourceRoot":"","sources":["../../../src/providers/media/mediaProviders.ts"],"names":[],"mappings":"AAeA,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEpG,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAAsE,CAAC;AAEhI,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,UAAU,EAAE,eAAe,CAAC;IAC5B,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE,CAc9F;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,GAAG,IAAI,CAG/E;AAED,6BAA6B;AAC7B,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEtE;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CAYvE;AAED,cAAc;AACd,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAMvD;AAED,kCAAkC;AAClC,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAI3G;AAKD,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAcD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAI9F;AAED,8BAA8B;AAC9B,wBAAgB,eAAe,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAIpF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,eAAe,EAC3B,GAAG,CAAC,EAAE,MAAM,GACX;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAWzD"}
|
|
1
|
+
{"version":3,"file":"mediaProviders.d.ts","sourceRoot":"","sources":["../../../src/providers/media/mediaProviders.ts"],"names":[],"mappings":"AAeA,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEpG,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAAsE,CAAC;AAEhI,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,UAAU,EAAE,eAAe,CAAC;IAC5B,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE,CAc9F;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,GAAG,IAAI,CAG/E;AAED,6BAA6B;AAC7B,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEtE;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CAYvE;AAED,cAAc;AACd,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAMvD;AAED,kCAAkC;AAClC,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAI3G;AAKD,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAcD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAI9F;AAED,8BAA8B;AAC9B,wBAAgB,eAAe,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAIpF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,eAAe,EAC3B,GAAG,CAAC,EAAE,MAAM,GACX;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAWzD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,IAAI,CAEnF"}
|
|
@@ -185,4 +185,21 @@ export function resolveMediaProvider(capability, cwd) {
|
|
|
185
185
|
const model = (pinned || !def?.providerId ? def?.model : undefined) ?? provider.models[0];
|
|
186
186
|
return { provider, model };
|
|
187
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* 写项目级 media provider 注册表(`<cwd>/.sps/media-providers.json`)—— **整体替换**。
|
|
190
|
+
*
|
|
191
|
+
* 存在的理由(服务化分层 P4·A):消费方今天**直写**这个文件,而它和 sps 的 daemon/worker
|
|
192
|
+
* 在同一个工作区里。只要双方都要写,sps 迁独立账户就得靠共享组 + setgid 那套(脆且难验);
|
|
193
|
+
* 消费方改走本函数(经 HTTP 端点)后,工作区变成 **sps 独写** —— 迁账号从权限工程
|
|
194
|
+
* 退化成改属主。
|
|
195
|
+
*
|
|
196
|
+
* 🔴 整体替换不是合并:注入方每次 provision 都给全量(per-会话 24h token 会轮换,
|
|
197
|
+
* 合并会把上一轮的死 token 留下)。
|
|
198
|
+
* 🔴 0600:内容是 per-会话临时 token(带租户 + jobId,用于余额闸与用量归因)。
|
|
199
|
+
* 🔴 写入即"宿主接管"——与严格模式 `hostManagesMedia(cwd)` 判据是同一个文件
|
|
200
|
+
* (见 docs/design/service-layering.md 附录 A.8)。
|
|
201
|
+
*/
|
|
202
|
+
export function writeProjectMediaProviders(cwd, list) {
|
|
203
|
+
writeSecretFile(join(cwd, '.sps', 'media-providers.json'), `${JSON.stringify(list, null, 2)}\n`);
|
|
204
|
+
}
|
|
188
205
|
//# sourceMappingURL=mediaProviders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediaProviders.js","sourceRoot":"","sources":["../../../src/providers/media/mediaProviders.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mediaProviders.js","sourceRoot":"","sources":["../../../src/providers/media/mediaProviders.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,6 +61,15 @@ export interface ChatSession {
|
|
|
61
61
|
readonly providerId?: string;
|
|
62
62
|
/** 创建方平台标记(如 'coral-platform'/'gameforge');缺省 'sps'。旧会话缺失时列表按 cwd 派生。 */
|
|
63
63
|
readonly origin?: string;
|
|
64
|
+
/**
|
|
65
|
+
* 建会话时**经 serviceAuth 认证的 caller**(消费方进程身份,如 'coral'/'studio')。
|
|
66
|
+
*
|
|
67
|
+
* 🔴 与 `origin` 是两个概念,不可互替(附录 A.1):`origin` 是**产品归因标签**
|
|
68
|
+
* (一个 caller 对应多个 origin —— studio 一把 key 下有 gameforge/createexperiments/
|
|
69
|
+
* appforge/video 四个产品),`ownerCaller` 是**谁建的**。所有权护栏问的是后者。
|
|
70
|
+
* 缺省 undefined(console UI 建的会话、或存量会话)→ 护栏回落进程身份判据。
|
|
71
|
+
*/
|
|
72
|
+
readonly ownerCaller?: string;
|
|
64
73
|
}
|
|
65
74
|
export interface ChatSessionSummary {
|
|
66
75
|
readonly id: string;
|
|
@@ -89,6 +98,8 @@ export interface ChatSessionSummary {
|
|
|
89
98
|
readonly providerId?: string;
|
|
90
99
|
/** 创建方平台标记;持久值优先,旧会话按 cwd 派生('coral-platform'/'gameforge'),兜底 'sps'。 */
|
|
91
100
|
readonly origin?: string;
|
|
101
|
+
/** 建会话时经认证的 caller(消费方进程身份);所有权护栏据此判定。见 ChatSession.ownerCaller。 */
|
|
102
|
+
readonly ownerCaller?: string;
|
|
92
103
|
}
|
|
93
104
|
export interface CreateSessionInput {
|
|
94
105
|
title?: string;
|
|
@@ -100,6 +111,21 @@ export interface CreateSessionInput {
|
|
|
100
111
|
* 平台(coral)传自己的不透明前缀(如 `u123/coralplatform`),工作区落 <ROOT>/<namespace>/<id>。
|
|
101
112
|
*/
|
|
102
113
|
namespace?: string;
|
|
114
|
+
/**
|
|
115
|
+
* 受管工作区的**确定名**(相对 `<ROOT>/<namespace>/`,可多段,如
|
|
116
|
+
* `coralplatform/expert-a1b2-9f3c1d20e4f7`)。给了就用它当 cwd,**不存在则建、已存在则复用**。
|
|
117
|
+
*
|
|
118
|
+
* 🔴 为什么不是让调用方直接传 `cwd` 并"不存在就建":那会变成"任意位置建目录"的原语
|
|
119
|
+
* (`{cwd:'/etc/xxx'}`),而 service key 是服务间凭据不是 root 授权。
|
|
120
|
+
* **让调用方决定叫什么是命名权,让调用方决定在哪建才是越界。**
|
|
121
|
+
*
|
|
122
|
+
* 副产物同样重要:落在受管根下才使 `isManagedWorkspace()` 成立 → 删会话时
|
|
123
|
+
* `?workspace=1` 才敢连目录一起清。裸 cwd 建的目录 sps 不敢删(可能是用户真实项目),
|
|
124
|
+
* 一次性工作区会长期堆积(实测已堆 15 个专家目录)。
|
|
125
|
+
*
|
|
126
|
+
* 与 `cwd` 互斥:两个都给 → `cwd` 优先(它是"用已存在的目录"的显式表达)。
|
|
127
|
+
*/
|
|
128
|
+
workspace?: string;
|
|
103
129
|
/** agent 后端:claude(默认)或 openai。 */
|
|
104
130
|
agentKind?: 'claude' | 'openai';
|
|
105
131
|
/** 执行位置;新会话显式持久,旧会话由路由做兼容缺省。 */
|
|
@@ -117,6 +143,11 @@ export interface CreateSessionInput {
|
|
|
117
143
|
* 缺省 'sps'(sps 自己/console 建的)。格式 [A-Za-z0-9_-]{1,32}。
|
|
118
144
|
*/
|
|
119
145
|
origin?: string;
|
|
146
|
+
/**
|
|
147
|
+
* 建会话的**已认证 caller**(由 delivery 层从 serviceAuth 上下文取,**不是调用方自称的字段**)。
|
|
148
|
+
* 所有权护栏据此判"这是谁的会话"。见 ChatSession.ownerCaller。
|
|
149
|
+
*/
|
|
150
|
+
ownerCaller?: string;
|
|
120
151
|
/**
|
|
121
152
|
* P0:未显式给 cwd 时,为该对话懒创建专属工作目录 `~/.coral/chats/<id>`,
|
|
122
153
|
* 让 cwd/模型/记忆确定,不再漂移到 daemon 启动目录。首页对话默认走这条。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatService.d.ts","sourceRoot":"","sources":["../../src/services/ChatService.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAI3D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mCAAmC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACzC,sDAAsD;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACtC,oEAAoE;IACpE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAClG,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IACpC,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,wCAAwC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatService.d.ts","sourceRoot":"","sources":["../../src/services/ChatService.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ import { jsonlExists, parseJsonlMessages, summarizeJsonl, } from '../core/claude
|
|
|
19
19
|
import { domainError } from '../shared/errors.js';
|
|
20
20
|
import { err, ok } from '../shared/result.js';
|
|
21
21
|
import { chatSessionsDir, sessionsDir } from '../shared/runtimePaths.js';
|
|
22
|
-
import { DEFAULT_NAMESPACE, workspaceDir } from '../core/workspacePaths.js';
|
|
22
|
+
import { DEFAULT_NAMESPACE, managedWorkspaceDir, workspaceDir } from '../core/workspacePaths.js';
|
|
23
23
|
export class ChatService {
|
|
24
24
|
deps;
|
|
25
25
|
constructor(deps) {
|
|
@@ -121,9 +121,22 @@ export class ChatService {
|
|
|
121
121
|
// 落可配置根 <WORKSPACES_ROOT>/local/<id>(按 id 键定、互不重叠;搬出 ~/.coral,设计见
|
|
122
122
|
// workspace-tenant-unification)。显式给了 cwd(在已存在的项目/仓库里开 chat)→ 用那个,不另建。
|
|
123
123
|
if (cwd == null) {
|
|
124
|
+
// 调用方给了确定名 → 用它(受管根下,多段;不存在则建、已存在则复用 —— 幂等,
|
|
125
|
+
// 同一个 job 重试不该炸)。没给 → 按会话 id 建一个,行为与既有一致。
|
|
126
|
+
// 两条都经 managedWorkspaceDir/workspaceDir 拼路径并逐段校验,结果必落在受管根下。
|
|
127
|
+
const named = input.workspace?.trim();
|
|
128
|
+
let workspace;
|
|
129
|
+
try {
|
|
130
|
+
workspace = named
|
|
131
|
+
? managedWorkspaceDir(input.namespace ?? DEFAULT_NAMESPACE, named)
|
|
132
|
+
: workspaceDir(input.namespace ?? DEFAULT_NAMESPACE, id);
|
|
133
|
+
}
|
|
134
|
+
catch (cause) {
|
|
135
|
+
// 🔴 路径校验失败 = **调用方入参非法**(穿越/绝对路径/非法字符),不是内部错误。
|
|
136
|
+
// 归 validation → 422,消费方当场知道是自己传错了;归 internal → 500 会让人去查服务端。
|
|
137
|
+
return err(domainError('validation', 'CHAT_WORKSPACE_INVALID', 'namespace/workspace 非法(须为受管根下的相对名,禁 . / .. / 绝对路径 / 非法字符)', { cause }));
|
|
138
|
+
}
|
|
124
139
|
try {
|
|
125
|
-
// workspaceDir 会校验 namespace(非法 namespace 抛,归到 CHAT_CREATE_FAIL 的 cause)。
|
|
126
|
-
const workspace = workspaceDir(input.namespace ?? DEFAULT_NAMESPACE, id);
|
|
127
140
|
this.deps.fs.mkdir(workspace, { recursive: true });
|
|
128
141
|
cwd = workspace;
|
|
129
142
|
}
|
|
@@ -147,6 +160,7 @@ export class ChatService {
|
|
|
147
160
|
...(input.model?.trim() ? { model: input.model.trim() } : {}),
|
|
148
161
|
...(input.providerId?.trim() ? { providerId: input.providerId.trim() } : {}),
|
|
149
162
|
origin,
|
|
163
|
+
...(input.ownerCaller ? { ownerCaller: input.ownerCaller } : {}),
|
|
150
164
|
};
|
|
151
165
|
try {
|
|
152
166
|
this.deps.fs.writeFileAtomic(this.sessionPath(id), JSON.stringify(session));
|
|
@@ -397,6 +411,11 @@ export class ChatService {
|
|
|
397
411
|
...(s.model ? { model: s.model } : {}),
|
|
398
412
|
...(s.providerId ? { providerId: s.providerId } : {}),
|
|
399
413
|
origin: s.origin ?? deriveOriginFromCwd(s.cwd),
|
|
414
|
+
// 🔴 出站带上 ownerCaller:它不是密钥(就是个 caller 名,消费方本来就知道自己是谁),
|
|
415
|
+
// 而**不可见正是它的代价** —— 存量回填那次,消费方只能从 API 判断"谁没有 ownerCaller",
|
|
416
|
+
// 而 API 不回它,于是把 1 条已填的也算进了待回填面(= 用推断覆盖已认证的事实)。
|
|
417
|
+
// 列表也带:核对类操作天然批量,只给详情等于逼人 N+1 次请求去数一眼能看清的事。
|
|
418
|
+
...(s.ownerCaller ? { ownerCaller: s.ownerCaller } : {}),
|
|
400
419
|
};
|
|
401
420
|
}
|
|
402
421
|
}
|