cardbuddy 0.22.0 → 0.24.0
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/README.md +11 -11
- package/dist/cli.js +2 -2
- package/dist/config.js +3 -3
- package/dist/init.js +13 -13
- package/dist/mcp.js +1 -1
- package/dist/preview-editor/assets/{index-CPpLZZyi.js → index-BumNBo-n.js} +81 -80
- package/dist/preview-editor/assets/{index-CU8zVA2P.css → index-MWKPP9nd.css} +1 -1
- package/dist/preview-editor/index.html +2 -2
- package/dist/skills-upgrade.js +1 -1
- package/dist/standalone.js +2 -2
- package/dist/vendored/card-editor/runtime/adapter.js +10 -11
- package/dist/vendored/mcp/client.mjs +50 -13
- package/dist/vendored/mcp/tools.mjs +13 -7
- package/dist/vendored/server/core/ai-chat.js +540 -183
- package/dist/vendored/server/core/assetProxy.js +1 -1
- package/dist/vendored/server/core/browser.js +1 -1
- package/dist/vendored/server/core/cardCompile.js +202 -0
- package/dist/vendored/server/core/cardDigest.js +324 -0
- package/dist/vendored/server/core/cardExport.js +5 -5
- package/dist/vendored/server/core/cardFiles.js +1 -1
- package/dist/vendored/server/core/cardHistoryRemote.js +1 -1
- package/dist/vendored/server/core/cardImportMeta.js +1 -1
- package/dist/vendored/server/core/cardListCache.js +92 -10
- package/dist/vendored/server/core/cardPublish.js +11 -6
- package/dist/vendored/server/core/cardPublishVersions.js +8 -8
- package/dist/vendored/server/core/cardSave.js +14 -10
- package/dist/vendored/server/core/cardSidecar.js +3 -3
- package/dist/vendored/server/core/cardSync.js +35 -23
- package/dist/vendored/server/core/cardVersion.js +1 -1
- package/dist/vendored/server/core/flameCompile/client.js +466 -0
- package/dist/vendored/server/core/flameCompile/clientElements.js +372 -0
- package/dist/vendored/server/core/flameCompile/common.js +253 -0
- package/dist/vendored/server/core/flameCompile/h5.js +326 -0
- package/dist/vendored/server/core/flameCompile/index.js +126 -0
- package/dist/vendored/server/core/flameCompile/model.js +162 -0
- package/dist/vendored/server/core/index.js +12 -6
- package/dist/vendored/server/core/logger.js +1 -1
- package/dist/vendored/server/core/remoteCard.js +5 -5
- package/dist/vendored/server/core/skillPaths.js +1 -1
- package/dist/vendored/server/core/sliceUpload.js +4 -4
- package/dist/vendored/skills/README.md +13 -13
- package/dist/vendored/skills/card-doctor/SKILL.md +2 -2
- package/dist/vendored/skills/dsl-card-ai/SKILL.md +4 -4
- package/dist/vendored/skills/dsl-card-generator/SKILL.md +2 -2
- package/dist/vendored/skills/dsl-card-generator/references/amount_formatting.md +1 -1
- package/dist/vendored/skills/dsl-card-generator/references/build_protocol.md +54 -0
- package/dist/vendored/skills/dsl-card-generator/references/component_rules.md +2 -2
- package/dist/vendored/skills/dsl-card-generator/references/converge_protocol.md +36 -0
- package/dist/vendored/skills/dsl-card-generator/references/event_patterns.md +1 -1
- package/dist/vendored/skills/dsl-card-generator/references/generation_pitfalls.md +1 -1
- package/dist/vendored/skills/dsl-card-generator/references/image_to_card.md +1 -1
- package/dist/vendored/skills/dsl-card-generator/references/quickref.md +1 -1
- package/dist/vendored/skills/dsl-card-generator/references/recipes.md +4 -4
- package/dist/vendored/skills/dsl-card-generator/references/rules.md +1 -1
- package/dist/vendored/skills/dsl-card-generator/references/slices_convention.md +6 -6
- package/dist/vendored/skills/dsl-card-generator/scripts/inventory_schemas.py +1 -1
- package/dist/vendored/skills/dsl-card-generator/scripts/lib/scaffold.mjs +1 -1
- package/dist/vendored/skills/dsl-card-generator/scripts/lib/slice_dedupe.mjs +2 -2
- package/dist/vendored/skills/dsl-card-generator/vendor/preview/assets/standalone-CeVX_y-M.js +137 -0
- package/dist/vendored/skills/dsl-card-generator/vendor/preview/assets/standalone-DiEiY59H.css +1 -0
- package/dist/vendored/skills/dsl-card-generator/vendor/preview/standalone.html +2 -2
- package/dist/vendored/skills/{finmall-card-sync → platform-card-sync}/SKILL.md +26 -26
- package/dist/vendored/skills/{finmall-card-sync → platform-card-sync}/scripts/api_batch_sync.mjs +184 -162
- package/dist/vendored/skills/{finmall-card-sync → platform-card-sync}/scripts/slice_upload.mjs +48 -29
- package/dist/vendored/skills/{finmall-session-navigator → platform-session-navigator}/SKILL.md +13 -13
- package/dist/vendored/skills/{finmall-session-navigator → platform-session-navigator}/scripts/package-lock.json +2 -2
- package/dist/vendored/skills/{finmall-session-navigator → platform-session-navigator}/scripts/package.json +2 -2
- package/dist/vendored/skills/{finmall-session-navigator/scripts/finmall_login.mjs → platform-session-navigator/scripts/platform_login.mjs} +41 -31
- package/dist/vendored/skills/{finmall-session-navigator → platform-session-navigator}/scripts/session-manager.mjs +17 -17
- package/dist/vendored/skills/shared/README.md +21 -21
- package/dist/vendored/skills/shared/auth-model.md +8 -10
- package/dist/vendored/skills/shared/{finmall-config.mjs → platform-config.mjs} +10 -10
- package/dist/vendored/tools/{finmall-env.mjs → platform-env.mjs} +13 -13
- package/package.json +1 -1
- package/dist/vendored/skills/dsl-card-generator/vendor/preview/assets/standalone-BCLshIzC.css +0 -1
- package/dist/vendored/skills/dsl-card-generator/vendor/preview/assets/standalone-pP5kTKiI.js +0 -88
package/README.md
CHANGED
|
@@ -49,7 +49,7 @@ npm run preview # 本地服务(8787) + 内置编辑器前端 +
|
|
|
49
49
|
| `src/cards/helloCard/` | 示例卡(`schema.json` + `data.json`,构建期已过校验)——起服务即有卡可看可改 |
|
|
50
50
|
| `skills/` | 随包发布的全量技能库:校验 / 同步 / 保存 / 切图上传 / 建卡管线脚本与工作流文档 |
|
|
51
51
|
| `tools/link-skills.mjs` | `npm run link:skills`:把 `skills/` 链到 Codex / Claude / WorkBuddy 等 AI 工具的项目级技能目录 |
|
|
52
|
-
| `.env.cb` |
|
|
52
|
+
| `.env.cb` | 共享配置模板(端口、远端基址、AI 网关占位;密钥请写 `.env.cb.local`) |
|
|
53
53
|
| `package.json` | 声明 `cardbuddy` 依赖 + `dev` / `start` / `preview` / `link:skills` 脚本 |
|
|
54
54
|
| `.gitignore` | 只追加缺失条目:`node_modules/`、`.env.cb.local`、`.cache/`、`skills/*/.local/` 等 |
|
|
55
55
|
| `README.md` | 上手说明 |
|
|
@@ -173,7 +173,7 @@ agent 侧配置(`cwd` 必须是卡片工程根,读写才落在 `src/cards/`
|
|
|
173
173
|
| 优先服务,连不上自动降级为直接读写盘(`validate` 跑 Python 校验器) | `card_list` `card_read` `card_write` `card_validate` `card_history` `card_rollback` |
|
|
174
174
|
| 优先服务,降级到包内独立离线渲染器 | `card_screenshot` |
|
|
175
175
|
| **必须**另起一个 `cardbuddy` | `card_render_status` `card_node_models` `card_import_meta` |
|
|
176
|
-
| **必须**另起服务
|
|
176
|
+
| **必须**另起服务 **且**已登录远端 | `card_sync` `card_save` `card_slice_upload` |
|
|
177
177
|
|
|
178
178
|
> **别直接跑包内 `dist/vendored/mcp/server.mjs`。** `mcp/client.mjs` 在**模块顶层**就 resolve
|
|
179
179
|
> `CARD_ROOT` / `CARD_API_BASE`(不是每次调用时读),绕过 CLI 包装层时前者会落到包内快照目录
|
|
@@ -241,9 +241,9 @@ DSL_DEV_HTTPS=1 cardbuddy
|
|
|
241
241
|
| --- | --- | --- |
|
|
242
242
|
| `GET /__cards` | 自包含 | 卡片列表 |
|
|
243
243
|
| `GET /__card/:id` | 自包含 | 单卡 schema/data 读取 |
|
|
244
|
-
| `POST /__sync` | 本地服务代理 |
|
|
245
|
-
| `POST /__save` | 本地服务代理 |
|
|
246
|
-
| `GET /__preview` | 本地服务代理 | 远端取卡(IDC10015,依赖 `
|
|
244
|
+
| `POST /__sync` | 本地服务代理 | 同步远端(依赖 `platform-card-sync` skill) |
|
|
245
|
+
| `POST /__save` | 本地服务代理 | 保存到远端(依赖 `platform-card-sync` skill);成功后自动截图并上传远端预览图(IDC10014) |
|
|
246
|
+
| `GET /__preview` | 本地服务代理 | 远端取卡(IDC10015,依赖 `platform-card-sync` skill) |
|
|
247
247
|
| `POST /__validate` | 本地服务代理 | 契约校验(依赖 `dsl-card-generator` skill) |
|
|
248
248
|
| `GET /__render-status/:id` | 自包含 + 内嵌 Vite SSR | 渲染自检 |
|
|
249
249
|
| `GET /__node-models/:id` | 自包含 + 内嵌 Vite SSR | 节点 Property 树模型 |
|
|
@@ -256,7 +256,7 @@ DSL_DEV_HTTPS=1 cardbuddy
|
|
|
256
256
|
| `POST /__code-bridge/:id/heartbeat` | 自包含 | 代码桥:会话心跳(前端 5s 一次) |
|
|
257
257
|
| `DELETE /__code-bridge/:id` | 自包含 | 代码桥:结束会话并删除临时文件 |
|
|
258
258
|
|
|
259
|
-
>
|
|
259
|
+
> **远端凭据只在本机**:`/__sync` `/__save` `/__preview` 由本地服务代理远端,凭据存于本机 `skills/platform-card-sync` 与 `.env.cb`,公网前端永不接触。
|
|
260
260
|
|
|
261
261
|
### VSCode 代码桥(事件面板代码编辑区)
|
|
262
262
|
|
|
@@ -281,9 +281,9 @@ DSL_DEV_HTTPS=1 cardbuddy
|
|
|
281
281
|
远端读写与校验类端点(`/__sync` `/__save` `/__preview` `/__validate`)以及 AI 助手的
|
|
282
282
|
`skill_read` / `skill_exec`,都通过动态 `import` / 子进程调用技能脚本:
|
|
283
283
|
|
|
284
|
-
- `
|
|
284
|
+
- `platform-card-sync`(sync / save / preview / 切图上传)
|
|
285
285
|
- `dsl-card-generator`(validate / autofix / 建卡管线)
|
|
286
|
-
- `
|
|
286
|
+
- `platform-session-navigator`(远端登录会话;凭据落 `skills/platform-session-navigator/.local/credentials.json`)
|
|
287
287
|
|
|
288
288
|
**解析顺序**(见 `server/core/skillPaths.js`,全后端统一):
|
|
289
289
|
|
|
@@ -291,8 +291,8 @@ DSL_DEV_HTTPS=1 cardbuddy
|
|
|
291
291
|
2. 项目根 `skills/` —— 跑过 `cardbuddy init` 即有,**推荐**:可写(凭据、审计、缓存都落在项目内)、随项目走;
|
|
292
292
|
3. 包内快照 `dist/vendored/skills/` —— 随 npm 包发布的全量技能库,没跑 `init` 也能只读兜底。
|
|
293
293
|
|
|
294
|
-
> 远端能力(同步 / 保存 / 切图上传)还需要 `.env.cb` 里的 `
|
|
295
|
-
> 以及 `playwright`(本包 optionalDependency
|
|
294
|
+
> 远端能力(同步 / 保存 / 切图上传)还需要 `.env.cb` 里的 `PLATFORM_BASE_URL` 等配置,
|
|
295
|
+
> 以及 `playwright`(本包 optionalDependency,默认会装)与一次远端登录。
|
|
296
296
|
> 写入类文件(凭据等)**永远落项目根**,不会写进 `node_modules`。
|
|
297
297
|
|
|
298
298
|
---
|
|
@@ -369,7 +369,7 @@ npm run dev:prod
|
|
|
369
369
|
|
|
370
370
|
### 前置条件
|
|
371
371
|
|
|
372
|
-
- `.env.cb` 已存在(含 `
|
|
372
|
+
- `.env.cb` 已存在(含 `PLATFORM_BASE_URL` 远端基址、`CARDBUDDY_DEV_PORT`)。缺它编辑器仍能起,只是远端资源代理会告警。
|
|
373
373
|
- 首次跑前先 `npm install`(仓库根)。
|
|
374
374
|
|
|
375
375
|
### 服务侧单独起(调试 8787 本身)
|
package/dist/cli.js
CHANGED
|
@@ -51,7 +51,7 @@ function guardProcessAlive() {
|
|
|
51
51
|
guardProcessAlive()
|
|
52
52
|
|
|
53
53
|
// 加载环境(与 skills 同套约定:.env.cb 为共享配置,.env.cb.local 为个人覆盖层)。
|
|
54
|
-
// dotenv 默认不覆盖已存在变量,故主仓库由启动器注入的 DSL_DEV_PORT /
|
|
54
|
+
// dotenv 默认不覆盖已存在变量,故主仓库由启动器注入的 DSL_DEV_PORT / PLATFORM_BASE_URL 仍优先。
|
|
55
55
|
// 同时登记「dotenv 注入值」:server/core/ai-chat.js 据此区分「启动时灌进 process.env 的文件值」
|
|
56
56
|
// 与「真实环境变量覆盖」,否则磁盘上改了 .env.cb.local 也会被启动快照遮挡。
|
|
57
57
|
for (const p of ['.env', '.env.cb', '.env.cb.local']) {
|
|
@@ -117,7 +117,7 @@ if (args.includes('--help') || args.includes('-h')) {
|
|
|
117
117
|
本命令自身不起服务,工具按依赖分档:route_input / scaffold / add_component 纯本地;
|
|
118
118
|
list / read / write / validate / history / rollback 降级为直接读写盘;screenshot
|
|
119
119
|
降级到包内离线渲染器;render_status / node_models / import_meta 必须另起一个
|
|
120
|
-
cardbuddy;sync / save / slice_upload
|
|
120
|
+
cardbuddy;sync / save / slice_upload 还必须已登录远端。
|
|
121
121
|
--version, -v 打印版本号后退出(只输出版本号,便于脚本取值)
|
|
122
122
|
--help, -h 显示帮助
|
|
123
123
|
|
package/dist/config.js
CHANGED
|
@@ -59,10 +59,10 @@ export function loadConfig(env = process.env) {
|
|
|
59
59
|
// 退回原生 EADDRINUSE 行为。
|
|
60
60
|
const takeover = String(env.DSL_DEV_PORT_TAKEOVER || 'auto').toLowerCase()
|
|
61
61
|
const portTakeover = ['auto', 'force', 'off'].includes(takeover) ? takeover : 'auto'
|
|
62
|
-
//
|
|
63
|
-
// 由 .env.cb 的
|
|
62
|
+
// 远端站点基址:资源代理(createAssetProxyMiddleware)回源用。
|
|
63
|
+
// 由 .env.cb 的 PLATFORM_BASE_URL 经启动器(tools/dev.mjs / prod-preview.mjs)
|
|
64
64
|
// 注入到本进程 env;缺省空串表示不回源(/minio 等只走占位图兜底)。
|
|
65
|
-
const upstream = env.
|
|
65
|
+
const upstream = env.PLATFORM_BASE_URL || ''
|
|
66
66
|
|
|
67
67
|
// 包内「迷你仓库快照」根:build.mjs 把 SSR 运行时、server/core、tools、mcp、全量 skills
|
|
68
68
|
// 按仓库原布局内联到 dist/vendored/ 下,使快照内的相对 import(如 ai-chat.js 的
|
package/dist/init.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* src/cards/helloCard/ 示例卡(schema.json + data.json,构建期已过校验)—— 起服务即有卡可看
|
|
7
7
|
* skills/ 随包发布的技能库全量释放:/__validate、/__sync、/__save、切图上传
|
|
8
8
|
* 与 AI 的 skill_read / skill_exec 都按「项目根 skills/ 优先」解析,
|
|
9
|
-
*
|
|
9
|
+
* 释放后既跑得快也写得了(远端凭据落在项目内,不进 node_modules)
|
|
10
10
|
* tools/link-skills.mjs 把 skills/ 链到 Codex / Claude / WorkBuddy 等 AI 工具的项目级技能目录
|
|
11
11
|
* .env.cb 共享配置模板(端口 / 远端基址 / AI 网关占位;密钥写 .env.cb.local)
|
|
12
12
|
* package.json 声明 cardbuddy 依赖与 dev / preview / mcp / link:skills 脚本
|
|
@@ -30,16 +30,16 @@ const SAMPLE_CARD_ID = 'helloCard'
|
|
|
30
30
|
|
|
31
31
|
/** 模板 .env.cb:只放非机密的共享配置,密钥类一律注释占位(个人覆盖写 .env.cb.local) */
|
|
32
32
|
const ENV_TEMPLATE = `# CardBuddy 本地开发服务配置(共享层,可入库)
|
|
33
|
-
# 个人机密(AI_API_KEY /
|
|
33
|
+
# 个人机密(AI_API_KEY / 远端凭据等)请写 .env.cb.local,它覆盖本文件且不入库。
|
|
34
34
|
|
|
35
35
|
# cardbuddy 本地服务端口(单一真值;编辑器前端也读它)
|
|
36
36
|
CARDBUDDY_CARD_PORT=8787
|
|
37
37
|
|
|
38
|
-
#
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
# Chrome
|
|
38
|
+
# 远端站点基址(资源代理回源 / 同步 / 保存 / 切图上传用)
|
|
39
|
+
PLATFORM_BASE_URL=https://uat-pkg.finmall.com
|
|
40
|
+
PLATFORM_APP_ID=100001
|
|
41
|
+
PLATFORM_WORKSPACE_ID=dev
|
|
42
|
+
# Chrome 远程调试端口(复用已登录的远端会话)
|
|
43
43
|
CARDBUDDY_CDP_PORT=9222
|
|
44
44
|
|
|
45
45
|
# ---- AI 开发助手(自带网关,OpenAI 兼容 /chat/completions)----
|
|
@@ -70,7 +70,7 @@ const GITIGNORE_ENTRIES = [
|
|
|
70
70
|
'node_modules/',
|
|
71
71
|
'.env.cb.local',
|
|
72
72
|
'.env.local',
|
|
73
|
-
'.env.
|
|
73
|
+
'.env.platform.local',
|
|
74
74
|
'.cache/',
|
|
75
75
|
'.local/',
|
|
76
76
|
'skills/*/.local/',
|
|
@@ -210,7 +210,7 @@ npx cardbuddy skills upgrade --dry-run # 先看会动哪些文件(四类:
|
|
|
210
210
|
\`\`\`
|
|
211
211
|
|
|
212
212
|
该命令**只动 \`skills/\`**,绝不碰 \`.env.cb\` / \`package.json\` / \`README.md\`
|
|
213
|
-
(那得用 \`init --force\`,有冲掉端口 /
|
|
213
|
+
(那得用 \`init --force\`,有冲掉端口 / 远端配置 / AI 网关占位的风险)。
|
|
214
214
|
|
|
215
215
|
## 把卡片工具挂给外部 AI agent(MCP,可选)
|
|
216
216
|
|
|
@@ -241,7 +241,7 @@ npx cardbuddy skills upgrade --dry-run # 先看会动哪些文件(四类:
|
|
|
241
241
|
| 优先服务,连不上自动降级为直接读写盘(\`validate\` 跑 Python 校验器) | \`card_list\` \`card_read\` \`card_write\` \`card_validate\` \`card_history\` \`card_rollback\` |
|
|
242
242
|
| 优先服务,降级到包内独立离线渲染器 | \`card_screenshot\` |
|
|
243
243
|
| **必须**另起一个 \`npm run dev\` | \`card_render_status\` \`card_node_models\` \`card_import_meta\` |
|
|
244
|
-
| **必须**另起服务
|
|
244
|
+
| **必须**另起服务 **且**已登录远端 | \`card_sync\` \`card_save\` \`card_slice_upload\` |
|
|
245
245
|
|
|
246
246
|
\`--mcp\` 会自动把 \`CARD_ROOT\` 指到本工程根、\`CARD_API_BASE\` 指到 \`.env.cb\` 的
|
|
247
247
|
\`CARDBUDDY_CARD_PORT\`(默认 8787)。**别直接跑包内 \`vendored/mcp/server.mjs\`**:那样
|
|
@@ -249,11 +249,11 @@ npx cardbuddy skills upgrade --dry-run # 先看会动哪些文件(四类:
|
|
|
249
249
|
5180(\`card_render_status\` 直接报 \`dev-server-required\`)。排查时可设
|
|
250
250
|
\`CARDBUDDY_MCP_VERBOSE=1\` 让启动信息打到 stderr。
|
|
251
251
|
|
|
252
|
-
##
|
|
252
|
+
## 远端能力(可选)
|
|
253
253
|
|
|
254
|
-
同步 / 保存 /
|
|
254
|
+
同步 / 保存 / 切图上传需要已登录的远端会话与 \`playwright\`
|
|
255
255
|
(cardbuddy 的 optionalDependency,装包时默认会装)。凭据只落在本机
|
|
256
|
-
\`skills/
|
|
256
|
+
\`skills/platform-session-navigator/.local/credentials.json\`,已被 .gitignore 忽略。
|
|
257
257
|
`
|
|
258
258
|
}
|
|
259
259
|
|
package/dist/mcp.js
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* 本地服务没起也能用大部分:route_input / scaffold / add_component 纯本地;list / read / write /
|
|
25
25
|
* validate / history / rollback 降级为直接读写盘(validate 跑 Python 校验器);screenshot 降级到
|
|
26
26
|
* 包内独立离线渲染器。只有上述 6 个必须另起一个 cardbuddy(sync / save / slice_upload 还需已登录
|
|
27
|
-
*
|
|
27
|
+
* 远端)。完整分档表见 README「MCP:把 card_* 工具挂给外部 AI agent」一节。
|
|
28
28
|
*/
|
|
29
29
|
import fs from 'node:fs'
|
|
30
30
|
import { pathToFileURL } from 'node:url'
|