@customize-agent/server 4.60.1 → 4.60.3

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 (124) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +128 -81
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/required-server-files.json +1 -1
  5. package/.next/routes-manifest.json +22 -0
  6. package/.next/server/chunks/1243.js +1 -1
  7. package/.next/server/chunks/1936.js +2 -2
  8. package/.next/server/chunks/2328.js +1 -1
  9. package/.next/server/chunks/4683.js +142 -0
  10. package/.next/server/chunks/5304.js +1 -1
  11. package/.next/server/chunks/6321.js +1 -1
  12. package/.next/server/chunks/6822.js +1 -0
  13. package/.next/server/chunks/8204.js +1 -1
  14. package/.next/server/chunks/9399.js +1 -0
  15. package/.next/server/chunks/9666.js +59 -58
  16. package/.next/server/instrumentation.js +1 -1
  17. package/.next/server/instrumentation.js.nft.json +1 -1
  18. package/.next/server/middleware-build-manifest.js +1 -1
  19. package/.next/server/pages/404.html +1 -1
  20. package/.next/server/pages/500.html +1 -1
  21. package/.next/server/pages/api/documents/export.js +2 -2
  22. package/.next/server/pages/api/documents/export.js.nft.json +1 -1
  23. package/.next/server/pages/api/documents/generate/preview.js +1 -1
  24. package/.next/server/pages/api/documents/generate.js +1 -1
  25. package/.next/server/pages/api/health.js +1 -1
  26. package/.next/server/pages/api/kb/files/detail.js +1 -1
  27. package/.next/server/pages/api/kb/files/source-preview.js +1 -1
  28. package/.next/server/pages/canvas/[id].html +1 -1
  29. package/.next/server/pages/canvas.html +1 -1
  30. package/.next/server/pages/documents.html +1 -1
  31. package/.next/server/pages/guide.html +1 -1
  32. package/.next/server/pages/index.html +1 -1
  33. package/.next/server/pages/knowledge/file-detail.html +1 -1
  34. package/.next/server/pages/knowledge/files.html +1 -1
  35. package/.next/server/pages/knowledge/manage.html +1 -1
  36. package/.next/server/pages/knowledge/source-preview.html +1 -1
  37. package/.next/server/pages/knowledge.html +1 -1
  38. package/.next/server/pages/models.html +1 -1
  39. package/.next/server/pages/overview.html +1 -1
  40. package/.next/server/pages/prompt.html +1 -1
  41. package/.next/server/pages/settings.html +1 -1
  42. package/.next/server/pages/skills/[id]/edit.html +1 -0
  43. package/.next/server/pages/skills/[id]/edit.js.nft.json +1 -0
  44. package/.next/server/pages/skills/[id].html +1 -0
  45. package/.next/server/pages/skills/[id].js.nft.json +1 -0
  46. package/.next/server/pages/skills/new.html +1 -0
  47. package/.next/server/pages/skills/new.js.nft.json +1 -0
  48. package/.next/server/pages/skills.html +1 -1
  49. package/.next/server/pages/system/logs.html +1 -1
  50. package/.next/server/pages-manifest.json +37 -34
  51. package/.next/static/7ea0ee326182fc159e629b4cd9354c5c800c7d5e156fcd6533182444b20d26cf/_buildManifest.js +1 -0
  52. package/.next/static/chunks/{511-75b881093a3e908b.js → 127-7d37d37dab02bd10.js} +1 -1
  53. package/.next/static/chunks/162-a5be07e04aedf98a.js +8 -0
  54. package/.next/static/chunks/2-8570cd2beee4da6e.js +1 -0
  55. package/.next/static/chunks/257-3ea888b096943bc8.js +1 -0
  56. package/.next/static/chunks/280-3ce590d421b5c47d.js +16 -0
  57. package/.next/static/chunks/318-ca122b774ea4ee84.js +1 -0
  58. package/.next/static/chunks/324-650dc02536b071bf.js +4 -0
  59. package/.next/static/chunks/338-19ccbaec57a7bf9c.js +4 -0
  60. package/.next/static/chunks/425-42f2568bcdd98f4c.js +1 -0
  61. package/.next/static/chunks/499-2233cadc6d4da647.js +10 -0
  62. package/.next/static/chunks/530-a5a65dc8adb1ee11.js +1 -0
  63. package/.next/static/chunks/564-d3426eef3e3e415b.js +4 -0
  64. package/.next/static/chunks/576-6699fed6c88502fe.js +1 -0
  65. package/.next/static/chunks/579-fc0a2eb64aedb001.js +1 -0
  66. package/.next/static/chunks/665-0634aa49137defc4.js +1 -0
  67. package/.next/static/chunks/{426-22c4cedb04b0d45d.js → 711-40c1a2dbd15c2807.js} +6 -6
  68. package/.next/static/chunks/781-a6b83dbcd1a33cab.js +1 -0
  69. package/.next/static/chunks/{795-48065c56c3b80339.js → 795-1c1cb3bf1f600e99.js} +1 -1
  70. package/.next/static/chunks/{665-9607db8f8b43e52e.js → 808-0506edc7454b5c0e.js} +1 -1
  71. package/.next/static/chunks/819-96247c9054ad9683.js +1 -0
  72. package/.next/static/chunks/964-569c27befeaff602.js +78 -0
  73. package/.next/static/chunks/pages/{_app-c11b5e8072f49bcc.js → _app-10f13111671af8a4.js} +15 -15
  74. package/.next/static/chunks/pages/canvas/[id]-534b45f39f39630c.js +1 -0
  75. package/.next/static/chunks/pages/canvas-ffb08963e5cf9558.js +1 -0
  76. package/.next/static/chunks/pages/{guide-a8eecc6c02b5bb9c.js → guide-82ae330966139191.js} +1 -1
  77. package/.next/static/chunks/pages/knowledge/file-detail-4ccc50ced6382dab.js +1 -0
  78. package/.next/static/chunks/pages/knowledge/source-preview-56ce59763fa015db.js +1 -0
  79. package/.next/static/chunks/pages/knowledge-84e386d765ddd311.js +1 -0
  80. package/.next/static/chunks/pages/models-5eee2d09deb081fb.js +1 -0
  81. package/.next/static/chunks/pages/prompt-f00bf2272142bfa1.js +1 -0
  82. package/.next/static/chunks/pages/{settings-81dffd92939c1d36.js → settings-f6dfff648cf9ac0e.js} +1 -1
  83. package/.next/static/chunks/pages/skills/[id]/edit-89bbed9a3a854b04.js +1 -0
  84. package/.next/static/chunks/pages/skills/[id]-101d753aa8fbf7a9.js +1 -0
  85. package/.next/static/chunks/pages/skills/new-124599c772150a1d.js +1 -0
  86. package/.next/static/chunks/pages/skills-476714776be63ce5.js +1 -0
  87. package/.next/static/chunks/pages/system/logs-40edb648d89b0749.js +1 -0
  88. package/.next/static/css/{ad5a592c79d1448b.css → 2da1c822e3bdb4bb.css} +1 -1
  89. package/.next/static/css/e67420f8d0ea180d.css +1 -0
  90. package/messages/en-US.json +5 -1
  91. package/messages/zh-CN.json +5 -1
  92. package/package.json +1 -1
  93. package/public/apple-touch-icon.png +0 -0
  94. package/public/favicon.ico +0 -0
  95. package/public/favicon.svg +7 -0
  96. package/scripts/generate-brand-assets.cjs +109 -0
  97. package/.next/server/chunks/7848.js +0 -141
  98. package/.next/static/chunks/127-20f09f6ebe1e6c1f.js +0 -1
  99. package/.next/static/chunks/174-1bc48f295d7dd075.js +0 -10
  100. package/.next/static/chunks/189-3f4f4e237056adaf.js +0 -4
  101. package/.next/static/chunks/269-7a3502478bf67fff.js +0 -11
  102. package/.next/static/chunks/278-31fbe7e1b733a9b7.js +0 -1
  103. package/.next/static/chunks/310-6c678cb70e4ba2d6.js +0 -19
  104. package/.next/static/chunks/530-d9f0418ec7ab040f.js +0 -1
  105. package/.next/static/chunks/700-5d29b0475311f590.js +0 -1
  106. package/.next/static/chunks/709-a7c652953ccd3b4b.js +0 -1
  107. package/.next/static/chunks/823-ff35afb174f7998b.js +0 -1
  108. package/.next/static/chunks/835-d29f4cc7a3679606.js +0 -1
  109. package/.next/static/chunks/873-16d052cdd3768758.js +0 -1
  110. package/.next/static/chunks/914-292edce0ba2a212d.js +0 -1
  111. package/.next/static/chunks/964-7e9fe2d80a53aeee.js +0 -78
  112. package/.next/static/chunks/992-8032f477230baaaf.js +0 -1
  113. package/.next/static/chunks/pages/canvas/[id]-37bee3f7b816ed18.js +0 -1
  114. package/.next/static/chunks/pages/canvas-97971ae159337676.js +0 -1
  115. package/.next/static/chunks/pages/knowledge/file-detail-f89e6044f752277c.js +0 -1
  116. package/.next/static/chunks/pages/knowledge/source-preview-4a303fadb123430a.js +0 -1
  117. package/.next/static/chunks/pages/knowledge-a65ec687334ffed0.js +0 -1
  118. package/.next/static/chunks/pages/models-3e486e49cca91e5a.js +0 -1
  119. package/.next/static/chunks/pages/prompt-b8af2cef904e3e19.js +0 -1
  120. package/.next/static/chunks/pages/skills-77ba363270239bbf.js +0 -1
  121. package/.next/static/chunks/pages/system/logs-1f54b6c8791daa77.js +0 -1
  122. package/.next/static/css/1a59bfb0aa677e69.css +0 -1
  123. package/.next/static/d863db1ff37d0934ebbb671f5c8dc07e5943c77d9b554215ce9e64fd8dc26727/_buildManifest.js +0 -1
  124. /package/.next/static/{d863db1ff37d0934ebbb671f5c8dc07e5943c77d9b554215ce9e64fd8dc26727 → 7ea0ee326182fc159e629b4cd9354c5c800c7d5e156fcd6533182444b20d26cf}/_ssgManifest.js +0 -0
@@ -0,0 +1,109 @@
1
+ /**
2
+ * 站点图标生成(2026-10-13):从**品牌月亮组件**里读形状,写出
3
+ * `public/favicon.svg`、`public/favicon.ico`、`public/apple-touch-icon.png`。
4
+ *
5
+ * ## 为什么要有这个脚本(而不是手放三个文件)
6
+ * 用户口径是「我们网站的 icon 也需要使用这个图标」——同一轮月亮的**三份格式**。
7
+ * 手工放三个文件的下场是可预期的:改了侧栏的月亮,图标还是上一版的(本仓对"两处各一份"的
8
+ * 那一类漂移有过太多次教训)。故:形状只有 `src/components/BrandMoon.tsx` 一个来源,
9
+ * 本脚本从那个文件里读 `BRAND_MOON_PATH` 与 `BRAND_MOON_ROTATION`,现场渲染出全部图标。
10
+ *
11
+ * ## 跑法(改了月亮形状就跑一次,并把三个产物一起提交)
12
+ * ```
13
+ * cd apps/server && node scripts/generate-brand-assets.cjs
14
+ * ```
15
+ * 渲染用 `@napi-rs/canvas`(本身就是本包的依赖,不再引浏览器/图形工具链)。
16
+ * ICO 按 PNG 载荷直出(`favicon.ico` = 6 字节头 + 每尺寸 16 字节目录项 + PNG 数据)——
17
+ * 现代浏览器都吃这种 ICO,且不必再引一个 ico 编码库。
18
+ */
19
+
20
+ const fs = require('node:fs');
21
+ const path = require('node:path');
22
+ const { createCanvas, Path2D } = require('@napi-rs/canvas');
23
+
24
+ const SERVER_ROOT = path.resolve(__dirname, '..');
25
+ const COMPONENT = path.join(SERVER_ROOT, 'src/components/BrandMoon.tsx');
26
+ const PUBLIC_DIR = path.join(SERVER_ROOT, 'public');
27
+
28
+ /** 从组件源码里取形状常量(TS 文件带类型注解,正则取字符串字面量即可,不必上编译器) */
29
+ function readBrandShape() {
30
+ const source = fs.readFileSync(COMPONENT, 'utf8');
31
+ const d = /BRAND_MOON_PATH\s*=\s*'([^']+)'/.exec(source)?.[1];
32
+ const rotation = Number(/BRAND_MOON_ROTATION\s*=\s*(-?\d+)/.exec(source)?.[1]);
33
+ if (!d || !Number.isFinite(rotation)) {
34
+ throw new Error(`${COMPONENT} 里找不到 BRAND_MOON_PATH / BRAND_MOON_ROTATION(脚本的正则口径失效了)`);
35
+ }
36
+ return { d, rotation };
37
+ }
38
+
39
+ /**
40
+ * 画一枚图标:**深色圆角方块 + 白色细弯月**(用户选定的形态:
41
+ * 「黑底圆角方块 + 白弯月,暗色下自动反色」)。
42
+ * 深色用 `#111`(与侧栏那个方块同一个色:全局样式里是 `bg-black`,纯黑在深色屏幕上会糊边,
43
+ * 这里取近黑,观感一致且边缘干净)。
44
+ */
45
+ function renderIcon({ d, rotation }, size, { background = '#111111', moon = '#ffffff', radiusRatio = 0.24, insetRatio = 0.78 } = {}) {
46
+ const canvas = createCanvas(size, size);
47
+ const ctx = canvas.getContext('2d');
48
+ if (background) {
49
+ ctx.fillStyle = background;
50
+ ctx.beginPath();
51
+ ctx.roundRect(0, 0, size, size, size * radiusRatio);
52
+ ctx.fill();
53
+ }
54
+ const box = size * insetRatio;
55
+ const k = box / 24;
56
+ ctx.save();
57
+ ctx.translate(size / 2, size / 2);
58
+ ctx.rotate((rotation * Math.PI) / 180);
59
+ ctx.scale(k, k);
60
+ ctx.translate(-12, -12);
61
+ ctx.fillStyle = moon;
62
+ ctx.fill(new Path2D(d));
63
+ ctx.restore();
64
+ return canvas.toBuffer('image/png');
65
+ }
66
+
67
+ /** 单张 PNG 装进 ICO 容器(ICONDIR + ICONDIRENTRY + PNG 载荷) */
68
+ function buildIco(entries) {
69
+ const header = Buffer.alloc(6);
70
+ header.writeUInt16LE(0, 0); // reserved
71
+ header.writeUInt16LE(1, 2); // type: 1 = icon
72
+ header.writeUInt16LE(entries.length, 4);
73
+ const dir = Buffer.alloc(16 * entries.length);
74
+ let offset = 6 + dir.length;
75
+ entries.forEach((entry, index) => {
76
+ const at = index * 16;
77
+ dir.writeUInt8(entry.size >= 256 ? 0 : entry.size, at); // 宽(256 记 0)
78
+ dir.writeUInt8(entry.size >= 256 ? 0 : entry.size, at + 1); // 高
79
+ dir.writeUInt8(0, at + 2); // 调色板数
80
+ dir.writeUInt8(0, at + 3); // 保留
81
+ dir.writeUInt16LE(1, at + 4); // 颜色平面
82
+ dir.writeUInt16LE(32, at + 6); // 位深
83
+ dir.writeUInt32LE(entry.png.length, at + 8);
84
+ dir.writeUInt32LE(offset, at + 12);
85
+ offset += entry.png.length;
86
+ });
87
+ return Buffer.concat([header, dir, ...entries.map(entry => entry.png)]);
88
+ }
89
+
90
+ /** SVG 版图标:现代浏览器优先用它(矢量、任意缩放都锐利) */
91
+ function buildSvg({ d, rotation }, { background = '#111111', moon = '#ffffff', radiusRatio = 0.24, insetRatio = 0.78 } = {}) {
92
+ const box = 24 * insetRatio;
93
+ const scale = box / 24;
94
+ return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" role="img" aria-label="Customize Agent">
95
+ <!-- 由 scripts/generate-brand-assets.cjs 从 src/components/BrandMoon.tsx 生成,勿手改 -->
96
+ <rect width="24" height="24" rx="${(24 * radiusRatio).toFixed(2)}" fill="${background}"/>
97
+ <g transform="translate(12 12) rotate(${rotation}) scale(${scale.toFixed(4)}) translate(-12 -12)">
98
+ <path d="${d}" fill="${moon}"/>
99
+ </g>
100
+ </svg>
101
+ `;
102
+ }
103
+
104
+ const shape = readBrandShape();
105
+ fs.writeFileSync(path.join(PUBLIC_DIR, 'favicon.svg'), buildSvg(shape));
106
+ const icoSizes = [16, 32, 48];
107
+ fs.writeFileSync(path.join(PUBLIC_DIR, 'favicon.ico'), buildIco(icoSizes.map(size => ({ size, png: renderIcon(shape, size) }))));
108
+ fs.writeFileSync(path.join(PUBLIC_DIR, 'apple-touch-icon.png'), renderIcon(shape, 180, { radiusRatio: 0.22, insetRatio: 0.74 }));
109
+ console.log(`[brand] 已生成 favicon.svg / favicon.ico(${icoSizes.join(',')}) / apple-touch-icon.png(形状来自 ${path.relative(SERVER_ROOT, COMPONENT)})`);