@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.
Files changed (80) hide show
  1. package/dist/commands/artCommand.d.ts +4 -0
  2. package/dist/commands/artCommand.d.ts.map +1 -0
  3. package/dist/commands/artCommand.js +277 -0
  4. package/dist/commands/artCommand.js.map +1 -0
  5. package/dist/console/lib/sessionConfig.d.ts +63 -0
  6. package/dist/console/lib/sessionConfig.d.ts.map +1 -0
  7. package/dist/console/lib/sessionConfig.js +204 -0
  8. package/dist/console/lib/sessionConfig.js.map +1 -0
  9. package/dist/console/routes/cards.d.ts.map +1 -1
  10. package/dist/console/routes/cards.js +17 -4
  11. package/dist/console/routes/cards.js.map +1 -1
  12. package/dist/console/routes/chat.d.ts.map +1 -1
  13. package/dist/console/routes/chat.js +98 -11
  14. package/dist/console/routes/chat.js.map +1 -1
  15. package/dist/console/routes/projectConfig.d.ts.map +1 -1
  16. package/dist/console/routes/projectConfig.js +146 -0
  17. package/dist/console/routes/projectConfig.js.map +1 -1
  18. package/dist/core/agents/projectAgentConfig.d.ts +11 -0
  19. package/dist/core/agents/projectAgentConfig.d.ts.map +1 -1
  20. package/dist/core/agents/projectAgentConfig.js +29 -2
  21. package/dist/core/agents/projectAgentConfig.js.map +1 -1
  22. package/dist/core/agents/readProjectAgent.d.ts +25 -0
  23. package/dist/core/agents/readProjectAgent.d.ts.map +1 -0
  24. package/dist/core/agents/readProjectAgent.js +67 -0
  25. package/dist/core/agents/readProjectAgent.js.map +1 -0
  26. package/dist/core/agents/writeProjectPersona.d.ts +24 -0
  27. package/dist/core/agents/writeProjectPersona.d.ts.map +1 -0
  28. package/dist/core/agents/writeProjectPersona.js +44 -0
  29. package/dist/core/agents/writeProjectPersona.js.map +1 -0
  30. package/dist/core/skills/distribution.d.ts +8 -0
  31. package/dist/core/skills/distribution.d.ts.map +1 -1
  32. package/dist/core/skills/distribution.js +18 -6
  33. package/dist/core/skills/distribution.js.map +1 -1
  34. package/dist/core/skills/ownership.d.ts +46 -0
  35. package/dist/core/skills/ownership.d.ts.map +1 -0
  36. package/dist/core/skills/ownership.js +63 -0
  37. package/dist/core/skills/ownership.js.map +1 -0
  38. package/dist/core/workspacePaths.d.ts +13 -0
  39. package/dist/core/workspacePaths.d.ts.map +1 -1
  40. package/dist/core/workspacePaths.js +16 -0
  41. package/dist/core/workspacePaths.js.map +1 -1
  42. package/dist/main.js +18 -1
  43. package/dist/main.js.map +1 -1
  44. package/dist/providers/RuntimeSessionRuntime.d.ts.map +1 -1
  45. package/dist/providers/RuntimeSessionRuntime.js +11 -0
  46. package/dist/providers/RuntimeSessionRuntime.js.map +1 -1
  47. package/dist/providers/art/atlas.d.ts +34 -0
  48. package/dist/providers/art/atlas.d.ts.map +1 -0
  49. package/dist/providers/art/atlas.js +71 -0
  50. package/dist/providers/art/atlas.js.map +1 -0
  51. package/dist/providers/art/frames.d.ts +43 -0
  52. package/dist/providers/art/frames.d.ts.map +1 -0
  53. package/dist/providers/art/frames.js +94 -0
  54. package/dist/providers/art/frames.js.map +1 -0
  55. package/dist/providers/art/pixels.d.ts +33 -0
  56. package/dist/providers/art/pixels.d.ts.map +1 -0
  57. package/dist/providers/art/pixels.js +431 -0
  58. package/dist/providers/art/pixels.js.map +1 -0
  59. package/dist/providers/art/sheet.d.ts +70 -0
  60. package/dist/providers/art/sheet.d.ts.map +1 -0
  61. package/dist/providers/art/sheet.js +312 -0
  62. package/dist/providers/art/sheet.js.map +1 -0
  63. package/dist/providers/llm/codexAuth.d.ts.map +1 -1
  64. package/dist/providers/llm/codexAuth.js +3 -0
  65. package/dist/providers/llm/codexAuth.js.map +1 -1
  66. package/dist/providers/media/mediaProviders.d.ts +15 -0
  67. package/dist/providers/media/mediaProviders.d.ts.map +1 -1
  68. package/dist/providers/media/mediaProviders.js +17 -0
  69. package/dist/providers/media/mediaProviders.js.map +1 -1
  70. package/dist/services/ChatService.d.ts +31 -0
  71. package/dist/services/ChatService.d.ts.map +1 -1
  72. package/dist/services/ChatService.js +22 -3
  73. package/dist/services/ChatService.js.map +1 -1
  74. package/dist/services/SkillService.d.ts +6 -0
  75. package/dist/services/SkillService.d.ts.map +1 -1
  76. package/dist/services/SkillService.js +3 -0
  77. package/dist/services/SkillService.js.map +1 -1
  78. package/package.json +3 -1
  79. package/skills/art-chain/SKILL.md +242 -0
  80. 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":"AAAA,yCAAyC;AACzC;;;;;;;;;GASG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,+BAA+B;AASnD,gDAAgD;AAChD,SAAS,UAAU,CAAC,KAAiB,EAAE,CAAS,EAAE,MAAc;IAC9D,MAAM,KAAK,GAAuB,EAAE,CAAC;IACrC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;QAClC,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC;YAAE,CAAC,GAAG,CAAC,CAAC;aACtB,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC,GAAG,CAAC,CAAC,CAAC;QACT,CAAC;IACH,CAAC;IACD,IAAI,CAAC,IAAI,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,IAAY,EAAE,IAAY;IACpG,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,mBAAmB;IAC9F,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAAE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,OAAO;gBAAE,CAAC,EAAE,CAAC;QACvE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAEpE,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,OAAO;oBAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,CAAC;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACpE,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtG,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,IAAY,EAAE,CAAS,EAAE,CAAS,EAAE,EAAU;IACtE,IAAI,EAAE,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;IAC1E,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEtC,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;QAC9B,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YACzB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;gBAAE,SAAS;YAC3C,IAAI,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC;YACzD,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtD,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;gBACvB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvB,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACtB,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE,GAAG,IAAI;oBAAE,IAAI,GAAG,EAAE,CAAC;gBAAC,IAAI,EAAE,GAAG,IAAI;oBAAE,IAAI,GAAG,EAAE,CAAC;gBACnD,IAAI,EAAE,GAAG,IAAI;oBAAE,IAAI,GAAG,EAAE,CAAC;gBAAC,IAAI,EAAE,GAAG,IAAI;oBAAE,IAAI,GAAG,EAAE,CAAC;gBACnD,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;oBAChC,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;wBAChC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE;4BAAE,SAAS;wBACzB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;wBACjC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;4BAAE,SAAS;wBACrD,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;wBACzB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;4BAAE,SAAS;wBAC3C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,2CAA2C;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IACzD,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAClF,2DAA2D;IAC3D,uDAAuD;IACvD,MAAM,MAAM,GAAW,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAChF,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAC5D,OAAO,EAAE,GAAG,EAAE,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACjF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACjF,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;QACtB,CAAC;;YAAM,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,GAAG,MAAM,CAAC;IACd,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC5B,yDAAyD;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;IACrC,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACzE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;SACpF,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9G,CAAC;AAED,iDAAiD;AACjD,SAAS,QAAQ,CAAC,IAAY,EAAE,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,MAAY;IAC5E,IAAI,EAAE,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;IACd,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC;gBACtC,IAAI,CAAC,GAAG,IAAI;oBAAE,IAAI,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,GAAG,IAAI;oBAAE,IAAI,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,GAAG,IAAI;oBAAE,IAAI,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,GAAG,IAAI;oBAAE,IAAI,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;AACpF,CAAC;AAQD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,IAAY,EAAE,IAAY,EAAE,IAAyB;IACjG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;IAClG,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IACrB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEzB,oDAAoD;IACpD,8CAA8C;IAC9C,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAChE,IAAI,KAAa,CAAC;IAClB,IAAI,YAAqB,CAAC;IAC1B,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACrB,KAAK,GAAG,IAAI,CAAC;QACb,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACjC,KAAK,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;YAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACjI,YAAY,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAA+B,EAAE,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3H,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AACnD,CAAC;AAYD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,IAAY,EAAE,IAAY;IAC1E,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAEtE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACjE,MAAM,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;IAE1B,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;IACvG,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;SAClI,SAAS,CAAC,UAAU,CAAC;SACrB,GAAG,EAAE;SACL,QAAQ,EAAE,CAAC;IAEd,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAClG,CAAC;AAgBD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,IAAY,EAAE,IAAY,EAAE,IAAkD;IACzH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACvD,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,8CAA8C;IAC9C,+CAA+C;IAC/C,IAAI,IAAI,EAAE,cAAc,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC3G,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;YACrC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACxD,CAAC,CAAC,CACH,CAAC;QACF,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,iBAAiB;IAChC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,oCAAoC;IACpC,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhF,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,IAAI,CAAC,GAAG,GAAG,CAAC;IACZ,IAAI,CAAC,GAAG,GAAG,CAAC;IACZ,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,EAAE,CAAC;YACrC,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,KAAK;YACtB,CAAC,GAAG,GAAG,CAAC;YACR,IAAI,GAAG,CAAC,CAAC;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACb,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;IAE9B,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3F,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;SAC5H,SAAS,CAAC,UAAU,CAAC;SACrB,GAAG,EAAE;SACL,QAAQ,EAAE,CAAC;IAEd,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9E,CAAC"}
@@ -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;AAwDD,kDAAkD;AAClD,wBAAsB,aAAa,CACjC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,UAAU,CAAC,CA+BrB"}
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":"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"}
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":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC,MAAM,CAAC,MAAM,kBAAkB,GAA+B,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AAoBhI,mCAAmC;AACnC,SAAS,IAAI;IACX,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,sBAAsB,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS;IACzB,2CAA2C;IAC3C,yCAAyC;IACzC,wDAAwD;IACxD,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,OAAO;IACd,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,GAAW;IACvC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,GAAW;IACnC,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB;IACzB,OAAO,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,GAAG,CAAC;AACtD,CAAC;AAED,SAAS,QAAQ,CAAC,IAAqB;IACrC,eAAe,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAA4B,EAAE,GAAY;IAC3E,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,gDAAgD;IAChD,oDAAoD;IACpD,IAAI,GAAG,IAAI,kBAAkB,EAAE,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QACzD,OAAO,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACnF,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACjF,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACpF,OAAO,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACjF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,GAAW;IACnD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,gBAAgB,CAAC,EAAU;IACzC,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,mBAAmB,CAAC,KAAoB;IACtD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,MAAM,GAAkB;QAC5B,GAAG,KAAK;QACR,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;KAC/G,CAAC;IACF,IAAI,GAAG,IAAI,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;;QAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,cAAc;AACd,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC5C,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC9C,QAAQ,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,mBAAmB,CAAC,CAAgB;IAClD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,OAAO,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC;AAUD,SAAS,YAAY;IACnB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,cAAc,CAAC,CAAS;IAC/B,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAoD,CAAC,CAAC,CAAC,EAAE,CAAC;IACvH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO,MAAM,CAAC;IACxB,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC;AACpF,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,eAAe,CAAC,UAA2B,EAAE,GAAiB;IAC5E,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;IAChC,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;IACtB,eAAe,CAAC,YAAY,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAA2B,EAC3B,GAAY;IAEZ,MAAM,IAAI,GAAG,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,MAAM,QAAQ,GAAG,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,+CAA+C;IAC/C,mDAAmD;IACnD,yCAAyC;IACzC,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1F,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC"}
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":"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"}
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
  }