@tbox.cn/app-template-agent 0.2.0 → 0.7.5
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/.gitignore +6 -0
- package/.tbox/app.json +12 -3
- package/AGENTS.md +17 -6
- package/ENV.md +36 -5
- package/README.md +23 -7
- package/apps/client/package.json +3 -2
- package/apps/client/src/app.tsx +28 -0
- package/apps/client/src/cards/CardRenderer.tsx +4 -5
- package/apps/client/src/components/ActionBar/DebugButton.tsx +5 -1
- package/apps/client/src/components/ActionBar/index.tsx +7 -1
- package/apps/client/src/components/ChatInput/index.less +54 -0
- package/apps/client/src/components/ChatInput/index.tsx +33 -9
- package/apps/client/src/components/ChatInput/voice/useVoicePress.ts +20 -1
- package/apps/client/src/components/MessageBubble/index.less +12 -1
- package/apps/client/src/components/MessageBubble/index.tsx +16 -8
- package/apps/client/src/components/PullDownIndicator/index.less +1 -1
- package/apps/client/src/components/PullDownIndicator/index.tsx +3 -4
- package/apps/client/src/components/ToolCallBlock/index.less +29 -0
- package/apps/client/src/components/ToolCallBlock/index.tsx +58 -24
- package/apps/client/src/hooks/useMediaUpload.ts +7 -2
- package/apps/client/src/main.tsx +4 -1
- package/apps/client/src/pages/index/index.tsx +35 -13
- package/apps/client/src/platform/AgentChatApp.tsx +5 -1
- package/apps/client/src/store/chat-config.ts +12 -1
- package/apps/client/src/store/chat.ts +62 -92
- package/apps/client/vite.config.ts +46 -26
- package/apps/server/package.json +5 -11
- package/apps/server/src/app.ts +452 -0
- package/apps/server/src/cli/collect-registry.ts +7 -6
- package/apps/server/src/config/deployment.ts +36 -70
- package/apps/server/src/config/integration.ts +81 -0
- package/apps/server/src/dev.ts +81 -0
- package/apps/server/src/index.ts +23 -376
- package/apps/server/src/intent-routes.ts +11 -4
- package/apps/server/src/modules.ts +3 -0
- package/apps/server/tests/cards-registry.test.ts +9 -17
- package/apps/server/tests/deployment-loader.test.ts +140 -0
- package/apps/server/tests/intent-dispatcher.test.ts +58 -0
- package/apps/server/tests/tool-runtime.test.ts +97 -23
- package/apps/server/tsup.config.ts +15 -2
- package/config/chat.json +4 -1
- package/config/llm_provider.json +3 -1
- package/package.json +19 -11
- package/packages/contracts-mall/package.json +30 -0
- package/packages/contracts-mall/src/index.ts +1 -0
- package/packages/contracts-mall/src/runtime.ts +1 -0
- package/packages/contracts-mall/src/server/index.ts +1 -0
- package/packages/contracts-mall/tsconfig.json +7 -0
- package/packages/module-weather/package.json +4 -4
- package/packages/module-weather/skills/weather-guide/SKILL.md +3 -0
- package/packages/module-weather/src/server/cards/weather/meta.ts +0 -1
- package/packages/module-weather/src/server/index.ts +1 -0
- package/packages/module-weather/src/server/tool.ts +24 -24
- package/packages/provider-custom/AGENTS.md +33 -0
- package/packages/provider-custom/LICENSE +21 -0
- package/packages/provider-custom/README.md +8 -0
- package/packages/provider-custom/package.json +62 -0
- package/packages/provider-custom/src/index.ts +5 -0
- package/packages/provider-custom/src/server/index.ts +40 -0
- package/packages/provider-custom/tbox.module.json +29 -0
- package/packages/provider-custom/tests/provider-custom.test.ts +17 -0
- package/packages/provider-custom/tsconfig.json +7 -0
- package/packages/provider-custom/tsup.config.ts +18 -0
- package/pnpm-lock.template.yaml +6297 -0
- package/pnpm-workspace.template.yaml +45 -46
- package/scripts/build.sh +6 -12
- package/scripts/check-workspace.mjs +11 -10
- package/scripts/stop.sh +48 -14
- package/scripts/verify-generated.mjs +4 -4
- package/tsconfig.base.json +1 -0
- package/apps/client/babel-plugins/code-inspect.cjs +0 -110
- package/apps/client/src/hooks/usePullDownHistory.ts +0 -97
- package/apps/server/skills/shopping-guide-demo/SKILL.md +0 -21
- package/apps/server/skills/shopping-guide-demo/references/guide/parking.md +0 -11
- package/apps/server/skills/shopping-guide-demo/references/mall-directory.md +0 -17
- package/apps/server/skills/shopping-guide-demo/references/promotion.md +0 -10
- package/apps/server/src/config/feature-gate.ts +0 -17
- package/apps/server/tests/feature-gate.test.ts +0 -30
- package/config/deployments/development.json +0 -27
- package/scripts/check-inspector.sh +0 -91
- /package/packages/module-weather/{tbox.component.json → tbox.module.json} +0 -0
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"deployment": {
|
|
3
|
-
"miniAppId": "wx-demo-mall-app",
|
|
4
|
-
"agentId": "mall-guide-agent",
|
|
5
|
-
"components": [
|
|
6
|
-
{ "componentId": "shopping-guide", "optional": true, "enabledFeatures": ["merchant-discovery", "product-search", "recommendation", "mall-directory", "customer-service", "navigation"] },
|
|
7
|
-
{ "componentId": "member", "optional": true, "enabledFeatures": ["member-profile", "member-card", "member-benefits", "member-points", "member-coupons", "member-enrollment"] }
|
|
8
|
-
]
|
|
9
|
-
},
|
|
10
|
-
"malls": [
|
|
11
|
-
{ "mallId": "mall-demo", "name": "示例大悦城" }
|
|
12
|
-
],
|
|
13
|
-
"providerTemplates": [
|
|
14
|
-
{ "providerTemplateId": "joycity-commercial@1", "credentialType": "joycity-c-signed-v1" }
|
|
15
|
-
],
|
|
16
|
-
"providerInstances": [
|
|
17
|
-
{
|
|
18
|
-
"providerInstanceId": "joycity-demo",
|
|
19
|
-
"providerTemplateId": "joycity-commercial@1",
|
|
20
|
-
"scope": { "mallId": "mall-demo" },
|
|
21
|
-
"config": { "baseUrl": "https://openapi-crm-t.joycity.mobi" },
|
|
22
|
-
"credentialRef": "secret://JOYCITY_CREDENTIALS",
|
|
23
|
-
"credentialVersion": "v1",
|
|
24
|
-
"enabled": true
|
|
25
|
-
}
|
|
26
|
-
]
|
|
27
|
-
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# ============================================================================
|
|
3
|
-
# 平台基础设施守卫 — 校验 tbox 微调(Inspector)注入未被破坏。
|
|
4
|
-
# Inspector 已下沉 @tbox.cn/app-sdk/platform(003 §3.1),本脚本断言同步更新。
|
|
5
|
-
# 支持两种上下文:
|
|
6
|
-
# 1. 根 workspace 成员形态(模板子树):向上探测 pnpm-workspace.yaml 取 SDK 真源
|
|
7
|
-
# 2. 生成应用发布态:app-sdk 经 node_modules 解析(检查包存在 + exports 含 ./platform)
|
|
8
|
-
# ============================================================================
|
|
9
|
-
set -e
|
|
10
|
-
|
|
11
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
12
|
-
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
|
13
|
-
|
|
14
|
-
INDEX_FILE="$PROJECT_DIR/apps/server/src/index.ts"
|
|
15
|
-
AGENT_HTML="$PROJECT_DIR/apps/client/index.html"
|
|
16
|
-
VITE_CFG="$PROJECT_DIR/apps/client/vite.config.ts"
|
|
17
|
-
|
|
18
|
-
fail() {
|
|
19
|
-
echo ""
|
|
20
|
-
echo "❌ [check-inspector] 平台基础设施校验失败:$1"
|
|
21
|
-
echo ""
|
|
22
|
-
echo " tbox 平台微调能力(点选元素 → 写入聊天框)是平台基础设施,AI agent 不得删除。"
|
|
23
|
-
echo " 必须保留:"
|
|
24
|
-
echo " 1. @tbox.cn/app-sdk/platform 存在并导出 installInspector(RUNTIME_PATH 约定不变)"
|
|
25
|
-
echo " 2. apps/server/src/index.ts 从 @tbox.cn/app-sdk/platform import 并调用 installInspector(app)"
|
|
26
|
-
echo " 3. apps/client/index.html 含 inspector 脚本标签"
|
|
27
|
-
echo " 4. apps/client/vite.config.ts 接入 code-inspect plugin"
|
|
28
|
-
echo ""
|
|
29
|
-
exit 1
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
# 定位 app-sdk 源码路径:模板内 → workspace 根 → node_modules(发布态)
|
|
33
|
-
SDK_SRC=""
|
|
34
|
-
for candidate in \
|
|
35
|
-
"$PROJECT_DIR/packages/app-sdk" \
|
|
36
|
-
"$PROJECT_DIR/../packages/app-sdk" \
|
|
37
|
-
"$PROJECT_DIR/../../packages/app-sdk"; do
|
|
38
|
-
if [ -f "$candidate/src/platform/inspector.ts" ]; then
|
|
39
|
-
SDK_SRC="$candidate"
|
|
40
|
-
break
|
|
41
|
-
fi
|
|
42
|
-
done
|
|
43
|
-
|
|
44
|
-
if [ -n "$SDK_SRC" ]; then
|
|
45
|
-
# 1. inspector.ts 存在 + 导出 installInspector + RUNTIME_PATH(RUNTIME_PATH 约定不变)
|
|
46
|
-
INSPECTOR_FILE="$SDK_SRC/src/platform/inspector.ts"
|
|
47
|
-
grep -qE "export\s+(async\s+)?function\s+installInspector" "$INSPECTOR_FILE" \
|
|
48
|
-
|| fail "inspector.ts 未导出 installInspector"
|
|
49
|
-
grep -qE "RUNTIME_PATH\s*=\s*['\"]/__vs_inspector__\.js['\"]" "$INSPECTOR_FILE" \
|
|
50
|
-
|| fail "inspector.ts 中 RUNTIME_PATH 被改动"
|
|
51
|
-
else
|
|
52
|
-
# 发布态:@tbox.cn/app-sdk 经 node_modules 解析
|
|
53
|
-
SDK_PKG=""
|
|
54
|
-
for base in "$PROJECT_DIR" "$PROJECT_DIR/../.."; do
|
|
55
|
-
if [ -d "$base/node_modules/@tbox.cn/app-sdk" ]; then
|
|
56
|
-
SDK_PKG="$base/node_modules/@tbox.cn/app-sdk"
|
|
57
|
-
break
|
|
58
|
-
fi
|
|
59
|
-
done
|
|
60
|
-
[ -n "$SDK_PKG" ] || fail "未找到 @tbox.cn/app-sdk(源码形态或 node_modules 发布态)"
|
|
61
|
-
node -e "
|
|
62
|
-
const fs = require('fs');
|
|
63
|
-
const pkg = JSON.parse(fs.readFileSync('$SDK_PKG/package.json', 'utf8'));
|
|
64
|
-
const ex = pkg.exports || {};
|
|
65
|
-
if (!ex['./platform']) { console.error('platform export missing'); process.exit(1); }
|
|
66
|
-
" || fail "@tbox.cn/app-sdk 的 package.json 未导出 ./platform"
|
|
67
|
-
fi
|
|
68
|
-
|
|
69
|
-
# 2. index.ts 从 @tbox.cn/app-sdk/platform import 并调用 installInspector(app)
|
|
70
|
-
grep -qE "from\s+['\"]@tbox\.cn/app-sdk/platform['\"]" "$INDEX_FILE" \
|
|
71
|
-
|| fail "index.ts 未从 @tbox.cn/app-sdk/platform import"
|
|
72
|
-
grep -qE "installInspector\s*\(\s*app\s*[,)]" "$INDEX_FILE" \
|
|
73
|
-
|| fail "index.ts 未调用 installInspector(app)"
|
|
74
|
-
|
|
75
|
-
# 3. client/index.html 内置 inspector 脚本标签
|
|
76
|
-
[ -f "$AGENT_HTML" ] || fail "缺失文件 apps/client/index.html"
|
|
77
|
-
grep -qE "/__vs_inspector__\.js" "$AGENT_HTML" \
|
|
78
|
-
|| fail "apps/client/index.html 缺少 inspector 脚本标签"
|
|
79
|
-
|
|
80
|
-
# 4. vite.config 接入 code-inspect plugin
|
|
81
|
-
[ -f "$VITE_CFG" ] || fail "缺失文件 apps/client/vite.config.ts"
|
|
82
|
-
grep -qE "codeInspectPlugin" "$VITE_CFG" \
|
|
83
|
-
|| fail "apps/client/vite.config.ts 未接入 code-inspect plugin"
|
|
84
|
-
|
|
85
|
-
# 5. 源码标注:code-inspect babel plugin 存在
|
|
86
|
-
CODE_INSPECT="$PROJECT_DIR/apps/client/babel-plugins/code-inspect.cjs"
|
|
87
|
-
[ -f "$CODE_INSPECT" ] || fail "缺失文件 apps/client/babel-plugins/code-inspect.cjs"
|
|
88
|
-
grep -qE "data-code-inspect-loc-filepath" "$CODE_INSPECT" \
|
|
89
|
-
|| fail "code-inspect.cjs 未注入 data-code-inspect-* 属性"
|
|
90
|
-
|
|
91
|
-
echo "✅ [check-inspector] 平台基础设施校验通过"
|
|
File without changes
|