@tbox.cn/app-template-agent 0.2.0 → 0.7.4

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 (81) hide show
  1. package/.gitignore +6 -0
  2. package/.tbox/app.json +12 -3
  3. package/AGENTS.md +17 -6
  4. package/ENV.md +36 -5
  5. package/README.md +23 -7
  6. package/apps/client/package.json +3 -2
  7. package/apps/client/src/app.tsx +28 -0
  8. package/apps/client/src/cards/CardRenderer.tsx +4 -5
  9. package/apps/client/src/components/ActionBar/DebugButton.tsx +5 -1
  10. package/apps/client/src/components/ActionBar/index.tsx +7 -1
  11. package/apps/client/src/components/ChatInput/index.less +54 -0
  12. package/apps/client/src/components/ChatInput/index.tsx +33 -9
  13. package/apps/client/src/components/ChatInput/voice/useVoicePress.ts +20 -1
  14. package/apps/client/src/components/MessageBubble/index.less +12 -1
  15. package/apps/client/src/components/MessageBubble/index.tsx +16 -8
  16. package/apps/client/src/components/PullDownIndicator/index.less +1 -1
  17. package/apps/client/src/components/PullDownIndicator/index.tsx +3 -4
  18. package/apps/client/src/components/ToolCallBlock/index.less +29 -0
  19. package/apps/client/src/components/ToolCallBlock/index.tsx +58 -24
  20. package/apps/client/src/hooks/useMediaUpload.ts +7 -2
  21. package/apps/client/src/main.tsx +4 -1
  22. package/apps/client/src/pages/index/index.tsx +35 -13
  23. package/apps/client/src/platform/AgentChatApp.tsx +5 -1
  24. package/apps/client/src/store/chat-config.ts +12 -1
  25. package/apps/client/src/store/chat.ts +62 -92
  26. package/apps/client/vite.config.ts +46 -26
  27. package/apps/server/package.json +5 -11
  28. package/apps/server/src/app.ts +452 -0
  29. package/apps/server/src/cli/collect-registry.ts +7 -6
  30. package/apps/server/src/config/deployment.ts +36 -70
  31. package/apps/server/src/config/integration.ts +81 -0
  32. package/apps/server/src/dev.ts +81 -0
  33. package/apps/server/src/index.ts +23 -376
  34. package/apps/server/src/intent-routes.ts +11 -4
  35. package/apps/server/src/modules.ts +3 -0
  36. package/apps/server/tests/cards-registry.test.ts +9 -17
  37. package/apps/server/tests/deployment-loader.test.ts +140 -0
  38. package/apps/server/tests/intent-dispatcher.test.ts +58 -0
  39. package/apps/server/tests/tool-runtime.test.ts +97 -23
  40. package/apps/server/tsup.config.ts +15 -2
  41. package/config/chat.json +4 -1
  42. package/config/llm_provider.json +3 -1
  43. package/package.json +19 -11
  44. package/packages/contracts-mall/package.json +30 -0
  45. package/packages/contracts-mall/src/index.ts +1 -0
  46. package/packages/contracts-mall/src/runtime.ts +1 -0
  47. package/packages/contracts-mall/src/server/index.ts +1 -0
  48. package/packages/contracts-mall/tsconfig.json +7 -0
  49. package/packages/module-weather/package.json +4 -4
  50. package/packages/module-weather/skills/weather-guide/SKILL.md +3 -0
  51. package/packages/module-weather/src/server/cards/weather/meta.ts +0 -1
  52. package/packages/module-weather/src/server/index.ts +1 -0
  53. package/packages/module-weather/src/server/tool.ts +24 -24
  54. package/packages/provider-custom/AGENTS.md +33 -0
  55. package/packages/provider-custom/LICENSE +21 -0
  56. package/packages/provider-custom/README.md +8 -0
  57. package/packages/provider-custom/package.json +62 -0
  58. package/packages/provider-custom/src/index.ts +5 -0
  59. package/packages/provider-custom/src/server/index.ts +40 -0
  60. package/packages/provider-custom/tbox.module.json +29 -0
  61. package/packages/provider-custom/tests/provider-custom.test.ts +17 -0
  62. package/packages/provider-custom/tsconfig.json +7 -0
  63. package/packages/provider-custom/tsup.config.ts +18 -0
  64. package/pnpm-lock.template.yaml +6297 -0
  65. package/pnpm-workspace.template.yaml +45 -46
  66. package/scripts/build.sh +6 -12
  67. package/scripts/check-workspace.mjs +11 -10
  68. package/scripts/stop.sh +48 -14
  69. package/scripts/verify-generated.mjs +4 -4
  70. package/tsconfig.base.json +1 -0
  71. package/apps/client/babel-plugins/code-inspect.cjs +0 -110
  72. package/apps/client/src/hooks/usePullDownHistory.ts +0 -97
  73. package/apps/server/skills/shopping-guide-demo/SKILL.md +0 -21
  74. package/apps/server/skills/shopping-guide-demo/references/guide/parking.md +0 -11
  75. package/apps/server/skills/shopping-guide-demo/references/mall-directory.md +0 -17
  76. package/apps/server/skills/shopping-guide-demo/references/promotion.md +0 -10
  77. package/apps/server/src/config/feature-gate.ts +0 -17
  78. package/apps/server/tests/feature-gate.test.ts +0 -30
  79. package/config/deployments/development.json +0 -27
  80. package/scripts/check-inspector.sh +0 -91
  81. /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] 平台基础设施校验通过"