@agent-native/core 0.79.11 → 0.79.15
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/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +25 -0
- package/corpus/core/docs/content/locales/zh-TW/a2a-protocol.md +68 -68
- package/corpus/core/docs/content/locales/zh-TW/actions.md +82 -82
- package/corpus/core/docs/content/locales/zh-TW/agent-mentions.md +22 -22
- package/corpus/core/docs/content/locales/zh-TW/agent-surfaces.md +82 -82
- package/corpus/core/docs/content/locales/zh-TW/agent-teams.md +29 -29
- package/corpus/core/docs/content/locales/zh-TW/agent-web-surfaces.md +11 -11
- package/corpus/core/docs/content/locales/zh-TW/audit-log.md +16 -16
- package/corpus/core/docs/content/locales/zh-TW/authentication.md +32 -32
- package/corpus/core/docs/content/locales/zh-TW/automations.md +32 -32
- package/corpus/core/docs/content/locales/zh-TW/blueprint-installer.md +19 -19
- package/corpus/core/docs/content/locales/zh-TW/cli-adapters.md +17 -17
- package/corpus/core/docs/content/locales/zh-TW/client.md +62 -62
- package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.md +32 -32
- package/corpus/core/docs/content/locales/zh-TW/code-agents-ui.md +91 -91
- package/corpus/core/docs/content/locales/zh-TW/components.md +51 -51
- package/corpus/core/docs/content/locales/zh-TW/context-awareness.md +66 -66
- package/corpus/core/docs/content/locales/zh-TW/creating-templates.md +39 -39
- package/corpus/core/docs/content/locales/zh-TW/cross-app-sso.md +29 -29
- package/corpus/core/docs/content/locales/zh-TW/database.md +21 -21
- package/corpus/core/docs/content/locales/zh-TW/deployment.md +37 -37
- package/corpus/core/docs/content/locales/zh-TW/dispatch.md +43 -43
- package/corpus/core/docs/content/locales/zh-TW/drop-in-agent.md +34 -34
- package/corpus/core/docs/content/locales/zh-TW/durable-resume.md +18 -18
- package/corpus/core/docs/content/locales/zh-TW/embedding-sdk.md +73 -73
- package/corpus/core/docs/content/locales/zh-TW/evals.md +16 -16
- package/corpus/core/docs/content/locales/zh-TW/extensions.md +81 -81
- package/corpus/core/docs/content/locales/zh-TW/external-agents.md +146 -146
- package/corpus/core/docs/content/locales/zh-TW/faq.md +43 -43
- package/corpus/core/docs/content/locales/zh-TW/file-uploads.md +11 -11
- package/corpus/core/docs/content/locales/zh-TW/frames.md +33 -33
- package/corpus/core/docs/content/locales/zh-TW/getting-started.md +28 -28
- package/corpus/core/docs/content/locales/zh-TW/harness-agents.md +78 -78
- package/corpus/core/docs/content/locales/zh-TW/human-approval.md +27 -27
- package/corpus/core/docs/content/locales/zh-TW/internationalization.md +19 -19
- package/corpus/core/docs/content/locales/zh-TW/key-concepts.md +68 -68
- package/corpus/core/docs/content/locales/zh-TW/local-file-mode.md +50 -50
- package/corpus/core/docs/content/locales/zh-TW/mcp-apps.md +38 -38
- package/corpus/core/docs/content/locales/zh-TW/mcp-clients.md +67 -67
- package/corpus/core/docs/content/locales/zh-TW/mcp-protocol.md +50 -50
- package/corpus/core/docs/content/locales/zh-TW/messaging.md +99 -99
- package/corpus/core/docs/content/locales/zh-TW/migration-workbench.md +6 -6
- package/corpus/core/docs/content/locales/zh-TW/multi-app-workspace.md +39 -39
- package/corpus/core/docs/content/locales/zh-TW/multi-tenancy.md +7 -7
- package/corpus/core/docs/content/locales/zh-TW/native-chat-ui.md +38 -38
- package/corpus/core/docs/content/locales/zh-TW/notifications.md +23 -23
- package/corpus/core/docs/content/locales/zh-TW/observability.md +49 -49
- package/corpus/core/docs/content/locales/zh-TW/observational-memory.md +23 -23
- package/corpus/core/docs/content/locales/zh-TW/onboarding.md +40 -40
- package/corpus/core/docs/content/locales/zh-TW/plan-plugin.md +37 -37
- package/corpus/core/docs/content/locales/zh-TW/pr-visual-recap.md +72 -72
- package/corpus/core/docs/content/locales/zh-TW/processors.md +17 -17
- package/corpus/core/docs/content/locales/zh-TW/progress.md +15 -15
- package/corpus/core/docs/content/locales/zh-TW/pure-agent-apps.md +10 -10
- package/corpus/core/docs/content/locales/zh-TW/real-time-collaboration.md +103 -103
- package/corpus/core/docs/content/locales/zh-TW/recurring-jobs.md +19 -19
- package/corpus/core/docs/content/locales/zh-TW/routing.md +9 -9
- package/corpus/core/docs/content/locales/zh-TW/sandbox-adapters.md +48 -48
- package/corpus/core/docs/content/locales/zh-TW/security.md +49 -49
- package/corpus/core/docs/content/locales/zh-TW/server.md +47 -47
- package/corpus/core/docs/content/locales/zh-TW/sharing.md +22 -22
- package/corpus/core/docs/content/locales/zh-TW/skills-guide.md +46 -46
- package/corpus/core/docs/content/locales/zh-TW/template-analytics.md +40 -40
- package/corpus/core/docs/content/locales/zh-TW/template-assets.md +69 -69
- package/corpus/core/docs/content/locales/zh-TW/template-brain.md +81 -81
- package/corpus/core/docs/content/locales/zh-TW/template-calendar.md +40 -40
- package/corpus/core/docs/content/locales/zh-TW/template-chat.md +27 -27
- package/corpus/core/docs/content/locales/zh-TW/template-clips.md +85 -85
- package/corpus/core/docs/content/locales/zh-TW/template-content.md +65 -66
- package/corpus/core/docs/content/locales/zh-TW/template-design.md +29 -29
- package/corpus/core/docs/content/locales/zh-TW/template-dispatch.md +51 -51
- package/corpus/core/docs/content/locales/zh-TW/template-forms.md +25 -25
- package/corpus/core/docs/content/locales/zh-TW/template-mail.md +71 -71
- package/corpus/core/docs/content/locales/zh-TW/template-plan.md +92 -92
- package/corpus/core/docs/content/locales/zh-TW/template-slides.md +52 -52
- package/corpus/core/docs/content/locales/zh-TW/template-videos.md +30 -30
- package/corpus/core/docs/content/locales/zh-TW/tracking.md +29 -29
- package/corpus/core/docs/content/locales/zh-TW/using-your-agent.md +18 -18
- package/corpus/core/docs/content/locales/zh-TW/voice-input.md +19 -19
- package/corpus/core/docs/content/locales/zh-TW/what-is-agent-native.md +61 -61
- package/corpus/core/docs/content/locales/zh-TW/workspace-connections.md +41 -41
- package/corpus/core/docs/content/locales/zh-TW/workspace-management.md +27 -27
- package/corpus/core/docs/content/locales/zh-TW/workspace.md +58 -58
- package/corpus/core/docs/content/locales/zh-TW/writing-agent-instructions.md +41 -41
- package/corpus/core/docs/content/template-clips.md +48 -2
- package/corpus/core/package.json +2 -1
- package/corpus/core/src/client/AgentPanel.tsx +27 -3
- package/corpus/core/src/deploy/build.ts +738 -57
- package/corpus/core/src/deploy/route-discovery.ts +1 -1
- package/corpus/core/src/server/edge.ts +50 -0
- package/corpus/core/src/styles/agent-native.css +93 -0
- package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +44 -44
- package/corpus/core/src/vite/client.ts +1 -0
- package/corpus/templates/analytics/app/components/layout/Layout.tsx +5 -3
- package/corpus/templates/analytics/app/i18n/zh-TW.ts +69 -70
- package/corpus/templates/analytics/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/assets/app/components/layout/Layout.tsx +3 -3
- package/corpus/templates/assets/app/i18n/zh-TW.ts +82 -82
- package/corpus/templates/assets/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/brain/app/components/layout/Layout.tsx +6 -4
- package/corpus/templates/brain/app/i18n/zh-TW.ts +90 -90
- package/corpus/templates/brain/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +1 -1
- package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +1 -1
- package/corpus/templates/calendar/app/i18n/zh-TW.ts +57 -57
- package/corpus/templates/calendar/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/calendar/server/lib/booking-og-fonts.ts +20 -6
- package/corpus/templates/calendar/server/lib/booking-og-image.ts +17 -9
- package/corpus/templates/chat/app/components/layout/Layout.tsx +5 -3
- package/corpus/templates/chat/app/i18n/zh-TW.ts +3 -3
- package/corpus/templates/chat/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/clips/AGENTS.md +6 -0
- package/corpus/templates/clips/actions/delete-recording-permanent.ts +7 -1
- package/corpus/templates/clips/actions/get-recording-player-data.ts +44 -2
- package/corpus/templates/clips/actions/navigate.ts +2 -0
- package/corpus/templates/clips/actions/save-bug-report-context.ts +173 -0
- package/corpus/templates/clips/actions/view-screen.ts +58 -7
- package/corpus/templates/clips/app/components/recorder/storage-setup-card.tsx +9 -3
- package/corpus/templates/clips/app/hooks/use-navigation-state.ts +17 -0
- package/corpus/templates/clips/app/i18n/ar-SA.ts +31 -0
- package/corpus/templates/clips/app/i18n/de-DE.ts +32 -0
- package/corpus/templates/clips/app/i18n/en-US.ts +32 -0
- package/corpus/templates/clips/app/i18n/es-ES.ts +32 -0
- package/corpus/templates/clips/app/i18n/fr-FR.ts +32 -0
- package/corpus/templates/clips/app/i18n/hi-IN.ts +32 -0
- package/corpus/templates/clips/app/i18n/ja-JP.ts +31 -0
- package/corpus/templates/clips/app/i18n/ko-KR.ts +32 -0
- package/corpus/templates/clips/app/i18n/pt-BR.ts +32 -0
- package/corpus/templates/clips/app/i18n/zh-CN.ts +30 -0
- package/corpus/templates/clips/app/i18n/zh-TW.ts +461 -451
- package/corpus/templates/clips/app/routes/bug-report.done.tsx +126 -0
- package/corpus/templates/clips/app/routes/bug-report.tsx +222 -0
- package/corpus/templates/clips/app/routes/record.tsx +104 -12
- package/corpus/templates/clips/changelog/2026-06-26-brief-network-blips-no-longer-block-recording-or-wrongly-pro.md +6 -0
- package/corpus/templates/clips/changelog/2026-06-26-bug-report-recordings-can-keep-redacted-host-app-context-wit.md +6 -0
- package/corpus/templates/clips/changelog/2026-06-26-bug-report-widgets-can-launch-clips-recordings-from-embedded.md +6 -0
- package/corpus/templates/clips/changelog/2026-06-26-desktop-recording-keeps-connected-users-out-of-the-storage-s.md +6 -0
- package/corpus/templates/clips/changelog/2026-06-26-if-a-recording-can-t-be-uploaded-the-chrome-extension-now-sa.md +6 -0
- package/corpus/templates/clips/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/clips/chrome-extension/public/manifest.json +9 -2
- package/corpus/templates/clips/chrome-extension/src/background.ts +43 -0
- package/corpus/templates/clips/chrome-extension/src/offscreen.ts +111 -6
- package/corpus/templates/clips/chrome-extension/src/popup.ts +18 -7
- package/corpus/templates/clips/desktop/src/app.tsx +53 -19
- package/corpus/templates/clips/server/db/schema.ts +26 -0
- package/corpus/templates/clips/server/lib/public-agent-context.ts +51 -0
- package/corpus/templates/clips/server/plugins/auth.ts +1 -0
- package/corpus/templates/clips/server/plugins/db.ts +28 -0
- package/corpus/templates/clips/server/routes/api/agent-context.json.get.ts +4 -1
- package/corpus/templates/clips/shared/bug-report.ts +161 -0
- package/corpus/templates/content/app/components/layout/Layout.tsx +10 -8
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +1 -1
- package/corpus/templates/content/app/i18n/zh-TW.ts +67 -66
- package/corpus/templates/content/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/design/app/components/layout/Layout.tsx +3 -3
- package/corpus/templates/design/app/i18n/zh-TW.ts +44 -44
- package/corpus/templates/design/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/dispatch/app/i18n/zh-TW.ts +5 -4
- package/corpus/templates/dispatch/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/forms/app/components/layout/Layout.tsx +4 -2
- package/corpus/templates/forms/app/components/layout/Sidebar.tsx +1 -1
- package/corpus/templates/forms/app/i18n/zh-TW.ts +48 -48
- package/corpus/templates/forms/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +3 -3
- package/corpus/templates/macros/app/i18n/zh-TW.ts +5 -5
- package/corpus/templates/macros/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/mail/app/i18n/zh-TW.ts +83 -83
- package/corpus/templates/mail/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/plan/app/components/layout/Layout.tsx +5 -3
- package/corpus/templates/plan/app/i18n/zh-TW.ts +69 -69
- package/corpus/templates/plan/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/slides/app/components/layout/Layout.tsx +3 -3
- package/corpus/templates/slides/app/i18n/zh-TW.ts +64 -64
- package/corpus/templates/slides/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/videos/app/components/layout/Layout.tsx +2 -2
- package/corpus/templates/videos/app/i18n/zh-TW.ts +54 -54
- package/corpus/templates/videos/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +14 -4
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/deploy/build.d.ts +29 -2
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +587 -51
- package/dist/deploy/build.js.map +1 -1
- package/dist/deploy/route-discovery.d.ts +1 -1
- package/dist/deploy/route-discovery.js +1 -1
- package/dist/deploy/route-discovery.js.map +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +2 -2
- package/dist/notifications/routes.d.ts +2 -2
- package/dist/observability/routes.d.ts +7 -7
- package/dist/resources/handlers.d.ts +2 -2
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/edge.d.ts +11 -0
- package/dist/server/edge.d.ts.map +1 -0
- package/dist/server/edge.js +11 -0
- package/dist/server/edge.js.map +1 -0
- package/dist/styles/agent-native.css +93 -0
- package/dist/templates/default/app/i18n/zh-TW.ts +44 -44
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +1 -0
- package/dist/vite/client.js.map +1 -1
- package/docs/content/locales/zh-TW/a2a-protocol.md +68 -68
- package/docs/content/locales/zh-TW/actions.md +82 -82
- package/docs/content/locales/zh-TW/agent-mentions.md +22 -22
- package/docs/content/locales/zh-TW/agent-surfaces.md +82 -82
- package/docs/content/locales/zh-TW/agent-teams.md +29 -29
- package/docs/content/locales/zh-TW/agent-web-surfaces.md +11 -11
- package/docs/content/locales/zh-TW/audit-log.md +16 -16
- package/docs/content/locales/zh-TW/authentication.md +32 -32
- package/docs/content/locales/zh-TW/automations.md +32 -32
- package/docs/content/locales/zh-TW/blueprint-installer.md +19 -19
- package/docs/content/locales/zh-TW/cli-adapters.md +17 -17
- package/docs/content/locales/zh-TW/client.md +62 -62
- package/docs/content/locales/zh-TW/cloneable-saas.md +32 -32
- package/docs/content/locales/zh-TW/code-agents-ui.md +91 -91
- package/docs/content/locales/zh-TW/components.md +51 -51
- package/docs/content/locales/zh-TW/context-awareness.md +66 -66
- package/docs/content/locales/zh-TW/creating-templates.md +39 -39
- package/docs/content/locales/zh-TW/cross-app-sso.md +29 -29
- package/docs/content/locales/zh-TW/database.md +21 -21
- package/docs/content/locales/zh-TW/deployment.md +37 -37
- package/docs/content/locales/zh-TW/dispatch.md +43 -43
- package/docs/content/locales/zh-TW/drop-in-agent.md +34 -34
- package/docs/content/locales/zh-TW/durable-resume.md +18 -18
- package/docs/content/locales/zh-TW/embedding-sdk.md +73 -73
- package/docs/content/locales/zh-TW/evals.md +16 -16
- package/docs/content/locales/zh-TW/extensions.md +81 -81
- package/docs/content/locales/zh-TW/external-agents.md +146 -146
- package/docs/content/locales/zh-TW/faq.md +43 -43
- package/docs/content/locales/zh-TW/file-uploads.md +11 -11
- package/docs/content/locales/zh-TW/frames.md +33 -33
- package/docs/content/locales/zh-TW/getting-started.md +28 -28
- package/docs/content/locales/zh-TW/harness-agents.md +78 -78
- package/docs/content/locales/zh-TW/human-approval.md +27 -27
- package/docs/content/locales/zh-TW/internationalization.md +19 -19
- package/docs/content/locales/zh-TW/key-concepts.md +68 -68
- package/docs/content/locales/zh-TW/local-file-mode.md +50 -50
- package/docs/content/locales/zh-TW/mcp-apps.md +38 -38
- package/docs/content/locales/zh-TW/mcp-clients.md +67 -67
- package/docs/content/locales/zh-TW/mcp-protocol.md +50 -50
- package/docs/content/locales/zh-TW/messaging.md +99 -99
- package/docs/content/locales/zh-TW/migration-workbench.md +6 -6
- package/docs/content/locales/zh-TW/multi-app-workspace.md +39 -39
- package/docs/content/locales/zh-TW/multi-tenancy.md +7 -7
- package/docs/content/locales/zh-TW/native-chat-ui.md +38 -38
- package/docs/content/locales/zh-TW/notifications.md +23 -23
- package/docs/content/locales/zh-TW/observability.md +49 -49
- package/docs/content/locales/zh-TW/observational-memory.md +23 -23
- package/docs/content/locales/zh-TW/onboarding.md +40 -40
- package/docs/content/locales/zh-TW/plan-plugin.md +37 -37
- package/docs/content/locales/zh-TW/pr-visual-recap.md +72 -72
- package/docs/content/locales/zh-TW/processors.md +17 -17
- package/docs/content/locales/zh-TW/progress.md +15 -15
- package/docs/content/locales/zh-TW/pure-agent-apps.md +10 -10
- package/docs/content/locales/zh-TW/real-time-collaboration.md +103 -103
- package/docs/content/locales/zh-TW/recurring-jobs.md +19 -19
- package/docs/content/locales/zh-TW/routing.md +9 -9
- package/docs/content/locales/zh-TW/sandbox-adapters.md +48 -48
- package/docs/content/locales/zh-TW/security.md +49 -49
- package/docs/content/locales/zh-TW/server.md +47 -47
- package/docs/content/locales/zh-TW/sharing.md +22 -22
- package/docs/content/locales/zh-TW/skills-guide.md +46 -46
- package/docs/content/locales/zh-TW/template-analytics.md +40 -40
- package/docs/content/locales/zh-TW/template-assets.md +69 -69
- package/docs/content/locales/zh-TW/template-brain.md +81 -81
- package/docs/content/locales/zh-TW/template-calendar.md +40 -40
- package/docs/content/locales/zh-TW/template-chat.md +27 -27
- package/docs/content/locales/zh-TW/template-clips.md +85 -85
- package/docs/content/locales/zh-TW/template-content.md +65 -66
- package/docs/content/locales/zh-TW/template-design.md +29 -29
- package/docs/content/locales/zh-TW/template-dispatch.md +51 -51
- package/docs/content/locales/zh-TW/template-forms.md +25 -25
- package/docs/content/locales/zh-TW/template-mail.md +71 -71
- package/docs/content/locales/zh-TW/template-plan.md +92 -92
- package/docs/content/locales/zh-TW/template-slides.md +52 -52
- package/docs/content/locales/zh-TW/template-videos.md +30 -30
- package/docs/content/locales/zh-TW/tracking.md +29 -29
- package/docs/content/locales/zh-TW/using-your-agent.md +18 -18
- package/docs/content/locales/zh-TW/voice-input.md +19 -19
- package/docs/content/locales/zh-TW/what-is-agent-native.md +61 -61
- package/docs/content/locales/zh-TW/workspace-connections.md +41 -41
- package/docs/content/locales/zh-TW/workspace-management.md +27 -27
- package/docs/content/locales/zh-TW/workspace.md +58 -58
- package/docs/content/locales/zh-TW/writing-agent-instructions.md +41 -41
- package/docs/content/template-clips.md +48 -2
- package/package.json +2 -1
- package/src/templates/default/app/i18n/zh-TW.ts +44 -44
|
@@ -1,50 +1,50 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "幻燈片"
|
|
3
|
-
description: "
|
|
3
|
+
description: "根據提示生成簡報、進行視覺化編輯並全螢幕呈現。 Google Slides、Pitch 和 PowerPoint 的開放原始碼替代品。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# 幻燈片
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
根據提示產生完整的簡報、直觀地編輯幻燈片並全螢幕示範。向代理詢問“一份包含 10 張幻燈片的咖啡訂閱服務宣傳資料”,並在幾秒鐘內觀看它一張一張幻燈片地傳輸到編輯器中。 Google Slides、Pitch 和 PowerPoint 的開放原始碼替代品。
|
|
9
9
|
|
|
10
10
|
```an-wireframe
|
|
11
11
|
{
|
|
12
12
|
"surface": "desktop",
|
|
13
|
-
"html": "<div style='display:flex;flex-direction:column;gap:12px;padding:16px;min-height:530px;box-sizing:border-box'><div style='display:flex;align-items:center;gap:10px'><h1 style='margin:0'>第三季度董事會更新</h1><span class='wf-pill accent'>標題幻燈片</span><div style='flex:1'></div><button>Preview</button><button>Present</button><button class='primary'>分享</button></div><main style='display:grid;grid-template-columns:1fr 220px;gap:12px;flex:1;min-height:0'><section class='wf-card' style='display:flex;align-items:center;justify-content:center;text-align:center;padding:36px'><div><strong style='font-size:28px'>第三季度董事會更新</strong><br/><small>Maya Chen · 首席執行官</small><div style='height:46px'></div><span class='wf-pill'>產品動能</span></div></section><section style='display:flex;flex-direction:column;gap:10px'><div class='wf-card'><strong>幻燈片大綱</strong><div class='wf-box'>1 標題</div><div class='wf-box'>2 議程</div><div class='wf-box'>3 指標</div><div class='wf-box'>4 已發布</div></div><div class='wf-card' style='flex:1'><strong
|
|
13
|
+
"html": "<div style='display:flex;flex-direction:column;gap:12px;padding:16px;min-height:530px;box-sizing:border-box'><div style='display:flex;align-items:center;gap:10px'><h1 style='margin:0'>第三季度董事會更新</h1><span class='wf-pill accent'>標題幻燈片</span><div style='flex:1'></div><button>Preview</button><button>Present</button><button class='primary'>分享</button></div><main style='display:grid;grid-template-columns:1fr 220px;gap:12px;flex:1;min-height:0'><section class='wf-card' style='display:flex;align-items:center;justify-content:center;text-align:center;padding:36px'><div><strong style='font-size:28px'>第三季度董事會更新</strong><br/><small>Maya Chen · 首席執行官</small><div style='height:46px'></div><span class='wf-pill'>產品動能</span></div></section><section style='display:flex;flex-direction:column;gap:10px'><div class='wf-card'><strong>幻燈片大綱</strong><div class='wf-box'>1 標題</div><div class='wf-box'>2 議程</div><div class='wf-box'>3 指標</div><div class='wf-box'>4 已發布</div></div><div class='wf-card' style='flex:1'><strong>演講者備註</strong><p class='wf-muted' style='margin:8px 0 0'>以發布進展和留存故事開場。</p></div></section></main><div style='display:grid;grid-template-columns:repeat(5,1fr);gap:8px'><div class='wf-box'>1 標題</div><div class='wf-box'>2 議程</div><div class='wf-box'>3 指標</div><div class='wf-box'>4 已發布</div><div class='wf-box'>5 風險</div></div></div>"
|
|
14
14
|
}
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
當您開啟幻燈片時,幻燈片畫布、大綱、註解和幻燈片保留在一個編輯器介面中,而代理仍然可以透過 actions 建立、修改和導覽幻燈片。
|
|
18
18
|
|
|
19
|
-
```an-diagram title="提示到甲板" summary="
|
|
19
|
+
```an-diagram title="提示到甲板" summary="請求一副牌,代理會透過您可以從 CLI 呼叫的相同操作一次滑入一張幻燈片。"
|
|
20
20
|
{
|
|
21
|
-
"html": "<div class=\"diagram-flow\"><div class=\"diagram-node\">提示<br><small class=\"diagram-muted\">\"10-slide pitch deck\"</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-panel center\"><span class=\"diagram-pill accent\">Agent</span><small class=\"diagram-muted\">選取布局</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-col\"><div class=\"diagram-pill\">create-deck</div><div class=\"diagram-pill\">add-slide × n</div><small class=\"diagram-muted\">並行、流式傳輸</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-box\" data-rough>decks (SQL)</div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">↻</div><div class=\"diagram-box\"
|
|
21
|
+
"html": "<div class=\"diagram-flow\"><div class=\"diagram-node\">提示<br><small class=\"diagram-muted\">\"10-slide pitch deck\"</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-panel center\"><span class=\"diagram-pill accent\">Agent</span><small class=\"diagram-muted\">選取布局</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-col\"><div class=\"diagram-pill\">create-deck</div><div class=\"diagram-pill\">add-slide × n</div><small class=\"diagram-muted\">並行、流式傳輸</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-box\" data-rough>decks (SQL)</div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">↻</div><div class=\"diagram-box\">編輯器即時渲染</div></div>",
|
|
22
22
|
"css": ".diagram-flow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.diagram-flow .diagram-col{display:flex;flex-direction:column;gap:6px;align-items:center}.diagram-flow .center{display:flex;flex-direction:column;align-items:center;gap:4px}.diagram-flow .diagram-arrow{font-size:22px;line-height:1}"
|
|
23
23
|
}
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
##
|
|
26
|
+
## 你可以用它做什麼
|
|
27
27
|
|
|
28
|
-
-
|
|
29
|
-
- **直觀地編輯幻燈片** —
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
- **從 PDF 匯入。**將 PDF
|
|
28
|
+
- **根據提示生成簡報。**“為咖啡訂閱服務生成 10 張幻燈片的宣傳簡報,受眾是投資者。”
|
|
29
|
+
- **直觀地編輯幻燈片** — 雙擊文字進行編輯,點選氣泡選單的塊,使用斜線選單的 `/` 插入塊。
|
|
30
|
+
- **使用人工智慧產生圖片。**英雄圖片、產品模型、插圖 - 最好委托給資產,Builder 管理的圖片生成準備好在部署後啟用,並直接提供者金鑰作為今天的後備。
|
|
31
|
+
- **搜尋庫存照片和公司徽標。**“尋找 stripe.com 的徽標並將其新增到幻燈片 2。”
|
|
32
|
+
- **呈現全螢幕**,帶有鍵盤導覽、自動隱藏控制項和演講者備註。
|
|
33
|
+
- **評論、協作和分享。**多人可以即時編輯同一個牌組。生成公開唯讀 URL 或與特定隊友共用。
|
|
34
|
+
- **從 PDF 匯入。**將 PDF 變成入門簡報 - 代理對其進行解析並布置內容。
|
|
35
35
|
- **從其他格式匯入。**匯入 PPTX、DOCX、Google Docs、GitHub 儲存庫或任何 URL 作為起點。匯出到 PPTX、Google 幻燈片或 HTML。
|
|
36
36
|
- **應用設計系統。**品牌標記、自訂說明和預設調色板儲存為設計系統並應用於新牌組。
|
|
37
|
-
-
|
|
37
|
+
- **恢復早期版本。**每個簡報更改都會有快照;列出或恢復任何先前版本。
|
|
38
38
|
|
|
39
39
|
## 開始使用
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
線上示範:[slides.agent-native.com](https://slides.agent-native.com)。
|
|
42
42
|
|
|
43
43
|
當您開啟應用程式時:
|
|
44
44
|
|
|
45
|
-
1.
|
|
45
|
+
1. 點選**新牌組**。
|
|
46
46
|
2. 詢問代理:“為咖啡訂閱服務生成 10 張幻燈片的推介材料,受眾是投資者。”
|
|
47
|
-
3.
|
|
47
|
+
3. 觀看幻燈片流入。點選任何幻燈片進行編輯,或不斷要求代理進行最佳化。
|
|
48
48
|
|
|
49
49
|
### 有用的提示
|
|
50
50
|
|
|
@@ -53,10 +53,10 @@ description: "根據提示生成套牌、進行可視化編輯並全屏呈現。
|
|
|
53
53
|
- “放大此幻燈片上的標題並將強調色更改為綠色。”
|
|
54
54
|
- “為目前幻燈片生成主圖片 - 黑暗、簡約、電影。”
|
|
55
55
|
- “找到 stripe.com 的徽標並將其新增到幻燈片 2 中。”
|
|
56
|
-
-
|
|
56
|
+
- “將此簡報中所有地方的‘客戶’一詞替換為‘會員’。”
|
|
57
57
|
- “將此 PDF 概括為 6 張幻燈片。” (附上PDF)
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
選取幻燈片上的文字,然後按 Cmd+I 使代理聚焦於該選取 — 它將僅對您選取的內容進行操作。
|
|
60
60
|
|
|
61
61
|
## 對於開發者
|
|
62
62
|
|
|
@@ -77,39 +77,39 @@ pnpm dev
|
|
|
77
77
|
|
|
78
78
|
**提示牌組生成。**請求牌組,代理流會滑入編輯器,使用您可以自己執行的相同建立和編輯 actions。
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
**可編輯的幻燈片畫布。**行內文字編輯、斜線插入、程式碼編輯、拖放排序、復原/重做、註解和簡報模式全部位於幻燈片表面。
|
|
81
81
|
|
|
82
82
|
**匯入和匯出。**引入 PPTX、DOCX、Google Docs、PDF、URL 和 GitHub 儲存庫;匯出到 PPTX、Google 幻燈片、HTML 或共用連結。
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
**設計系統和媒體。**儲存的品牌系統、圖片生成、庫存搜尋和徽標尋找使簡報更接近預期的視覺方向。
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
**協作和歷史紀錄。**內建即時 Yjs 編輯、對話串評論、共用角色和簡報版本快照。
|
|
87
87
|
|
|
88
88
|
### 與代理合作
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
代理聊天位於側邊欄中。它可以建立幻燈片、編輯單一幻燈片、產生圖片、搜尋徽標以及導覽 UI - 所有這些都使用您從 CLI 執行的相同 actions。
|
|
91
91
|
|
|
92
92
|
#### 代理看到的內容
|
|
93
93
|
|
|
94
94
|
當牌組開啟時,代理會自動看到:
|
|
95
95
|
|
|
96
96
|
- 目前的`deckId`和`slideIndex`。
|
|
97
|
-
-
|
|
97
|
+
- 開放式幻燈片的完整清單。
|
|
98
98
|
- 目前所選幻燈片的 HTML 內容。
|
|
99
99
|
|
|
100
100
|
這會作為 `current-screen` 塊注入到每條訊息中,因此代理永遠不必猜測“這張幻燈片”的含義。資料來自 `navigation` 應用程式狀態金鑰,UI 將其寫入每次導覽。參見`templates/slides/actions/view-screen.ts`。
|
|
101
101
|
|
|
102
|
-
####
|
|
102
|
+
#### 選取文字進行集中編輯
|
|
103
103
|
|
|
104
|
-
|
|
104
|
+
選取幻燈片上的文字,然後按 Cmd+I 以使代理聚焦於預載入的選取。代理將僅根據您選取的內容採取行動。
|
|
105
105
|
|
|
106
|
-
####
|
|
106
|
+
#### 聊天中的行內幻燈片預覽
|
|
107
107
|
|
|
108
|
-
|
|
108
|
+
代理可以使用框架的嵌入柵欄將即時幻燈片預覽直接嵌入到聊天回覆中。它透過 `app/routes/slide.tsx` 渲染無邊框 iframe,因此您無需離開對話即可看到結果。
|
|
109
109
|
|
|
110
110
|
### 資料模型
|
|
111
111
|
|
|
112
|
-
|
|
112
|
+
所有牌組資料透過 Drizzle ORM 儲存在 SQL 中。架構:`templates/slides/server/db/schema.ts`。
|
|
113
113
|
|
|
114
114
|
```an-schema title="幻燈片資料模型" summary="A deck owns its slides as JSON in decks.data; comments, versions, shares, and design systems hang off it."
|
|
115
115
|
{
|
|
@@ -186,33 +186,33 @@ pnpm dev
|
|
|
186
186
|
|
|
187
187
|
框架共用表(`deck_shares`、`design_system_shares`)將主體對應到每個資源的檢視者/編輯者/管理員角色。
|
|
188
188
|
|
|
189
|
-
####
|
|
189
|
+
#### 簡報
|
|
190
190
|
|
|
191
|
-
| 列 | 型別 |
|
|
191
|
+
| 列 | 型別 | 註解 |
|
|
192
192
|
| ------------ | ---- | --------------------------------------------------------- |
|
|
193
|
-
| `id` |
|
|
193
|
+
| `id` | 文字 | 主鍵,例如`deck-1712345-abc` |
|
|
194
194
|
| `title` | 文字 | 牌組標題 |
|
|
195
|
-
| `data` |
|
|
196
|
-
| `created_at` |
|
|
195
|
+
| `data` | 文字 | JSON 斑點:`{ title, slides: [{ id, content, layout }] }` |
|
|
196
|
+
| `created_at` | 文字 | 時間戳 |
|
|
197
197
|
| `updated_at` | 文字 | 時間戳 |
|
|
198
198
|
|
|
199
199
|
每個牌組還帶有標準的 `ownableColumns`(所有者、可見性、共用代幣),因此它可以插入框架的共用模型中。
|
|
200
200
|
|
|
201
201
|
#### 幻燈片評論
|
|
202
202
|
|
|
203
|
-
| 列 |
|
|
203
|
+
| 列 | 註解 |
|
|
204
204
|
| ----------------------------- | ---------------------- |
|
|
205
205
|
| `id` | 主鍵 |
|
|
206
206
|
| `deck_id` | 家長平台 |
|
|
207
207
|
| `slide_id` | 滑動評論生效 |
|
|
208
|
-
| `thread_id`, `parent_id` |
|
|
209
|
-
| `content`, `quoted_text` |
|
|
208
|
+
| `thread_id`, `parent_id` | 對話串 |
|
|
209
|
+
| `content`, `quoted_text` | 評論內文和可選文字摘錄 |
|
|
210
210
|
| `author_email`, `author_name` | 作者 |
|
|
211
|
-
| `resolved` |
|
|
211
|
+
| `resolved` | 布爾標誌 |
|
|
212
212
|
|
|
213
213
|
#### 甲板股
|
|
214
214
|
|
|
215
|
-
|
|
215
|
+
框架提供的共用表(透過 `createSharesTable` 建立)將主體(使用者或組織)對應到每個牌組的角色(檢視者、編輯者、管理員)。
|
|
216
216
|
|
|
217
217
|
#### 甲板版本
|
|
218
218
|
|
|
@@ -220,7 +220,7 @@ pnpm dev
|
|
|
220
220
|
|
|
221
221
|
#### 設計系統
|
|
222
222
|
|
|
223
|
-
可重複使用的品牌標記 - `data`(顏色/版式/間距)、`assets`、`custom_instructions` 和 `is_default`
|
|
223
|
+
可重複使用的品牌標記 - `data`(顏色/版式/間距)、`assets`、`custom_instructions` 和 `is_default` 標誌。使用 `ownableColumns`,因此設計系統可以按使用者或按組織共用。
|
|
224
224
|
|
|
225
225
|
#### design_system_shares
|
|
226
226
|
|
|
@@ -228,7 +228,7 @@ pnpm dev
|
|
|
228
228
|
|
|
229
229
|
#### deck_share_links
|
|
230
230
|
|
|
231
|
-
由 `token`
|
|
231
|
+
由 `token` 鍵入的持久公開共用連結快照。每行儲存一個 `title`、一個 JSON、`slides` 陣列快照、一個可選的 `aspect_ratio` 和 `created_at`。此處保留共用連結意味著它們可以在伺服器重新啟動後繼續存在並跨無伺服器執行個體工作。
|
|
232
232
|
|
|
233
233
|
#### 幻燈片結構
|
|
234
234
|
|
|
@@ -242,7 +242,7 @@ pnpm dev
|
|
|
242
242
|
}
|
|
243
243
|
```
|
|
244
244
|
|
|
245
|
-
`content` 是原始的 HTML — 渲染器 (`app/components/deck/SlideRenderer.tsx`) 提供黑色背景和固定縱橫比,而 HTML
|
|
245
|
+
`content` 是原始的 HTML — 渲染器 (`app/components/deck/SlideRenderer.tsx`) 提供黑色背景和固定縱橫比,而 HTML 提供內部的所有內容。還支援豐富的嵌入:透過 `ExcalidrawSlide.tsx` 的 Excalidraw 圖和透過 `MermaidRenderer.tsx` 的 Mermaid 圖表。
|
|
246
246
|
|
|
247
247
|
### 自訂 {#customizing}
|
|
248
248
|
|
|
@@ -250,22 +250,22 @@ pnpm dev
|
|
|
250
250
|
|
|
251
251
|
#### Actions — `templates/slides/actions/`
|
|
252
252
|
|
|
253
|
-
|
|
253
|
+
每個代理可呼叫操作都以 TypeScript 檔案形式存在於此處。您會經常接觸的一些:
|
|
254
254
|
|
|
255
255
|
- `create-deck.ts` — 從頭開始或批量替換新牌組。
|
|
256
256
|
- `add-slide.ts` — 附加一張幻燈片;更喜歡用它來進行流式生成。
|
|
257
|
-
- `update-slide.ts` —
|
|
257
|
+
- `update-slide.ts` — 外科手術式尋找/替換或全部內容交換。
|
|
258
258
|
- `view-screen.ts` — 使用者所看到內容的快照。
|
|
259
259
|
- `generate-image.ts`、`edit-image.ts`、`image-search.ts`、`logo-lookup.ts` — 圖片工具。
|
|
260
260
|
- `extract-pdf.ts` — PDF 攝取。
|
|
261
261
|
|
|
262
|
-
每個操作都會自動安裝在 `POST /_agent-native/actions/:name` 上,並且可以從 CLI 作為 `pnpm action <name>`
|
|
262
|
+
每個操作都會自動安裝在 `POST /_agent-native/actions/:name` 上,並且可以從 CLI 作為 `pnpm action <name>` 進行呼叫。在此處新增新檔案以賦予代理新功能。
|
|
263
263
|
|
|
264
|
-
####
|
|
264
|
+
#### 路由 — `templates/slides/app/routes/`
|
|
265
265
|
|
|
266
|
-
- `_index.tsx` —
|
|
266
|
+
- `_index.tsx` — 簡報清單。
|
|
267
267
|
- `deck.$id.tsx` — 編輯。
|
|
268
|
-
- `deck.$id_.present.tsx` —
|
|
268
|
+
- `deck.$id_.present.tsx` — 簡報模式。
|
|
269
269
|
- `share.$token.tsx` — 公開唯讀共用頁面。
|
|
270
270
|
- `slide.tsx` — 在聊天預覽中使用單幻燈片嵌入。
|
|
271
271
|
- `settings.tsx` — 範本設定。
|
|
@@ -280,14 +280,14 @@ pnpm dev
|
|
|
280
280
|
當代理需要修改程式碼時解釋模式的代理skills:
|
|
281
281
|
|
|
282
282
|
- `create-deck/` — 如何使用幻燈片建立新的幻燈片。
|
|
283
|
-
- `slide-editing/` —
|
|
284
|
-
- `deck-management/` —
|
|
283
|
+
- `slide-editing/` — 如何編輯單一幻燈片。
|
|
284
|
+
- `deck-management/` — 如何儲存和存取簡報。
|
|
285
285
|
- `slide-images/` - 圖片生成和搜尋工作流程。
|
|
286
286
|
|
|
287
287
|
#### AGENTS.md
|
|
288
288
|
|
|
289
289
|
`templates/slides/AGENTS.md` 是代理在每次對話中讀取的短路由器。它指向`.agents/skills/`下的skills,並列出了核心規則、應用程式狀態契約和技能指數。 `.agents/skills/create-deck/SKILL.md` 中每個布局的精確幻燈片 HTML 範本 - 每當您新增或更改幻燈片布局模式時更新該技能。
|
|
290
290
|
|
|
291
|
-
#### API
|
|
291
|
+
#### API 路由
|
|
292
292
|
|
|
293
293
|
對於 actions 不適合的情況(檔案上傳、流式傳輸),範本會公開一小組 REST 端點:`GET/POST /api/decks`、`GET/PUT/DELETE /api/decks/:id`。參見`templates/slides/server/routes/api/`。
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "影片"
|
|
3
|
-
description: "
|
|
3
|
+
description: "用於動態圖形、產品示範和動態文字的程式化影片工作室。根據提示生成動畫並在時間軸上調整它們。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# 影片
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
一個程式化影片工作室,用於製作動態圖形、產品示範和動態文字影片,這些影片很難手動設定關鍵幀。要求代理“顯示 6 秒的徽標,並在 2 秒後淡入”,它就會建置動畫。調整時間、緩動和相機在時間軸上的行動,然後渲染到 MP4 或 WebM。
|
|
9
9
|
|
|
10
10
|
```an-wireframe
|
|
11
11
|
{
|
|
@@ -14,7 +14,7 @@ description: "用於動態圖形、產品演示和動態文本的程序化影片
|
|
|
14
14
|
}
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
當您開啟工作室時,您將在主螢幕上看到作品清單。點選其中一個,您會在頂部看到一個播放器,在底部看到一個時間線,在右側看到一個屬性面板。代理始終知道您開啟了哪個組合。
|
|
18
18
|
|
|
19
19
|
```an-diagram title="動畫作為資料" summary="組合物是 React 元件;每個動畫都從軌道讀取,因此代理和時間線編輯相同的資料。"
|
|
20
20
|
{
|
|
@@ -23,20 +23,20 @@ description: "用於動態圖形、產品演示和動態文本的程序化影片
|
|
|
23
23
|
}
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
##
|
|
26
|
+
## 你可以用它做什麼
|
|
27
27
|
|
|
28
28
|
- **根據提示生成動畫。**“新增一張在 2 秒後淡入並保持到 5 秒的標題卡。”代理編輯構圖。
|
|
29
29
|
- **調整時間軸上的時間。**拖動動畫軌道並調整其大小、瀏覽幀、直觀地設定緩動曲線。
|
|
30
30
|
- **為相機設定動畫。** 使用螢幕工具進行平移、縮放和傾斜。點選該工具,在預覽中拖動,就會自動建立關鍵幀。
|
|
31
|
-
- **從空白合成或範例開始。** 該範本提供了一個程式碼內合成 (`BlankComposition`) 來開始;範例作品 -
|
|
32
|
-
- **以可視方式編輯緩動曲線。** 提供 30 多條曲線 -
|
|
33
|
-
- **以 1x、2x 或 3x
|
|
31
|
+
- **從空白合成或範例開始。** 該範本提供了一個程式碼內合成 (`BlankComposition`) 來開始;範例作品 - 動態文字、徽標顯示、粒子爆發、互動式 UI 示範、幻燈片 - 從資料庫載入,您可以新增自己的。
|
|
32
|
+
- **以可視方式編輯緩動曲線。** 提供 30 多條曲線 - 功率、後退、彈跳、迴圈、彈性、expo、正弦以及彈簧物理特性。
|
|
33
|
+
- **以 1x、2x 或 3x 超級取樣渲染到 MP4 或 WebM**,在相機變焦期間獲得清晰的文字和矢量。
|
|
34
34
|
|
|
35
|
-
與其他範本相比,這更像是一種開發人員風格的工具 - 組合是 React
|
|
35
|
+
與其他範本相比,這更像是一種開發人員風格的工具 - 組合是 React 元件,因此進階使用者(或代理)可以從頭開始編寫全新的動畫型別。但日常調整(“讓打字速度變慢”、“將粒子數降低到 12”)只是閒聊。
|
|
36
36
|
|
|
37
37
|
## 開始使用
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
線上示範:[videos.agent-native.com](https://videos.agent-native.com)。
|
|
40
40
|
|
|
41
41
|
當您開啟工作室時:
|
|
42
42
|
|
|
@@ -51,7 +51,7 @@ description: "用於動態圖形、產品演示和動態文本的程序化影片
|
|
|
51
51
|
- “讓輸入顯示速度變慢 — 時間延長 40%。”
|
|
52
52
|
- “粒子爆發太密集。將計數降至 12。”
|
|
53
53
|
- “建立一個名為 intro-loop 的新合成,1080x1080,6 秒。”
|
|
54
|
-
-
|
|
54
|
+
- “在按鈕區域新增點選動畫並將游標動畫設定到它。”
|
|
55
55
|
- “給這個軌道一個彈簧緩動而不是緩出。”
|
|
56
56
|
|
|
57
57
|
如果您在時間軸中選取一個曲目並按 Cmd+I,代理會選取該選取 - “讓這個曲目變得更快”就可以了。
|
|
@@ -81,25 +81,25 @@ pnpm dev
|
|
|
81
81
|
|
|
82
82
|
### 主要功能
|
|
83
83
|
|
|
84
|
-
**基於 React 的組合。**影片是 Remotion
|
|
84
|
+
**基於 React 的組合。**影片是 Remotion 支援的 React 元件,具有 SQL 支援的使用者組合和本機預設值的可選程式碼註冊表。
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
**時間軸優先動畫。**持續時間軌道、關鍵幀、緩動曲線、相機行動和程式化表達式軌道都編輯相同的合成資料。
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
**可調節的運動系統。**參數、游標軌跡、互動式懸停區域、範圍導覽和重複播放使產生的動畫無需程式碼即可調節。
|
|
89
89
|
|
|
90
|
-
**渲染和持久性。**合成設定、品質、fps
|
|
90
|
+
**渲染和持久性。**合成設定、品質、fps、跟蹤值和覆蓋會保留每個合成,並透過 Remotion 渲染到 MP4 或 WebM。
|
|
91
91
|
|
|
92
92
|
### 與代理合作
|
|
93
93
|
|
|
94
|
-
代理始終知道您開啟了哪個組合。導覽狀態 (`{ view, compositionId }`) 寫入框架的 `application_state` 表,`view-screen` 操作返回它以及指向 `app/remotion/registry.ts` 的提示。您不必告訴代理您正在使用哪種組合 -
|
|
94
|
+
代理始終知道您開啟了哪個組合。導覽狀態 (`{ view, compositionId }`) 寫入框架的 `application_state` 表,`view-screen` 操作返回它以及指向 `app/remotion/registry.ts` 的提示。您不必告訴代理您正在使用哪種組合 - 要求它對“這個”採取行動,它就會這樣做。
|
|
95
95
|
|
|
96
|
-
在底層,代理將 actions 稱為 `navigate`、`save-composition` 和 `generate-animated-component`。 SQL
|
|
96
|
+
在底層,代理將 actions 稱為 `navigate`、`save-composition` 和 `generate-animated-component`。 SQL 支援的合成紀錄透過`save-composition`建立或更新;程式碼支援的 Remotion 元件仍然存在於 `app/remotion/compositions/*.tsx` 中,並在 `app/remotion/registry.ts` 中註冊。
|
|
97
97
|
|
|
98
98
|
### 資料模型
|
|
99
99
|
|
|
100
100
|
伺服器端架構位於 `templates/videos/server/db/schema.ts` 中:
|
|
101
101
|
|
|
102
|
-
```an-schema title="影片資料模型" summary="SQL
|
|
102
|
+
```an-schema title="影片資料模型" summary="SQL 支援的組合以及設計系統和可嵌套資料夾,每個資料夾都有一個框架共用表。"
|
|
103
103
|
{
|
|
104
104
|
"entities": [
|
|
105
105
|
{
|
|
@@ -152,11 +152,11 @@ pnpm dev
|
|
|
152
152
|
}
|
|
153
153
|
```
|
|
154
154
|
|
|
155
|
-
每個表還有一個由 `createSharesTable()`
|
|
155
|
+
每個表還有一個由 `createSharesTable()` 產生的匹配框架份額表(`composition_shares`、`design_system_shares`、`folder_shares`)。
|
|
156
156
|
|
|
157
157
|
- `compositions` — id、標題、型別、`data`(完整組合 JSON blob)、所有權列、時間戳。
|
|
158
158
|
- `composition_shares` — `createSharesTable()` 產生的標準股票授予。
|
|
159
|
-
- `design_systems` — 可重複使用的品牌標記(顏色、排版、間距、資產、自訂指令、`is_default`
|
|
159
|
+
- `design_systems` — 可重複使用的品牌標記(顏色、排版、間距、資產、自訂指令、`is_default` 標誌)和 `ownableColumns`。
|
|
160
160
|
- `design_system_shares` — 設計系統的份額贈款。
|
|
161
161
|
- `folders` — 用於庫組織的可嵌套資料夾,帶有 `ownableColumns`。
|
|
162
162
|
- `folder_shares` — 資料夾的共用授權。
|
|
@@ -166,7 +166,7 @@ pnpm dev
|
|
|
166
166
|
|
|
167
167
|
可以將作品組織到資料夾中並使用設計系統進行樣式設定。 Actions:`create-folder`、`rename-folder`、`delete-folder`、`move-composition-to-folder`。設計系統actions:`create-design-system`、`update-design-system`、`get-design-system`、`list-design-systems`、`set-default-design-system`、`apply-design-system`、`analyze-brand-assets`。匯入actions:`import-github`、`import-from-url`、`import-document`(DOCX/PPTX/PDF)。
|
|
168
168
|
|
|
169
|
-
`app/remotion/registry.ts` 中的註冊表是範本附帶內容的真實程式碼來源。 SQL
|
|
169
|
+
`app/remotion/registry.ts` 中的註冊表是範本附帶內容的真實程式碼來源。 SQL 表儲存使用者建立的合成和覆蓋。工作室狀態(每個合成軌道編輯、道具覆蓋、合成設定)會鏡像到 `videos-tracks:<id>`、`videos-props:<id>` 和 `videos-comp-settings:<id>` 下的 `localStorage`,並在載入時深度合併回註冊表預設值。
|
|
170
170
|
|
|
171
171
|
核心TypeScript形狀(`app/types.ts`):
|
|
172
172
|
|
|
@@ -174,7 +174,7 @@ pnpm dev
|
|
|
174
174
|
- `AnimatedProp` — `property`、`from`、`to`、`unit`,以及可選的 `keyframes`、`programmatic`、`description`、`codeSnippet`、`parameters`、`parameterValues`。
|
|
175
175
|
- `CompositionEntry` — `id`, `title`, `description`, `component`, `durationInFrames`, `fps`, `width`, `height`, `defaultProps`, `tracks`.
|
|
176
176
|
|
|
177
|
-
預設情況下,作品是私人的。可見性可以是 `private`、`org` 或 `public`,共用授予賦予 `viewer`、`editor` 或 `admin` 角色 -
|
|
177
|
+
預設情況下,作品是私人的。可見性可以是 `private`、`org` 或 `public`,共用授予賦予 `viewer`、`editor` 或 `admin` 角色 - 透過框架的共用原語連線。
|
|
178
178
|
|
|
179
179
|
### 自訂它
|
|
180
180
|
|
|
@@ -183,35 +183,35 @@ pnpm dev
|
|
|
183
183
|
**Actions** — `templates/videos/actions/`
|
|
184
184
|
|
|
185
185
|
- `view-screen.ts` — 返回代理的目前導覽狀態。
|
|
186
|
-
- `navigate.ts` — 導覽到合成 (`--compositionId <id>`)
|
|
187
|
-
- `save-composition.ts` — 建立或更新 SQL
|
|
186
|
+
- `navigate.ts` — 導覽到合成 (`--compositionId <id>`) 或主檢視 (`--view home`)。
|
|
187
|
+
- `save-composition.ts` — 建立或更新 SQL 支援的合成紀錄。
|
|
188
188
|
- `generate-animated-component.ts` — 生成帶有樣板的新 Remotion 元件檔案。
|
|
189
189
|
- `validate-compositions.ts` — 檢查所有已註冊的作品是否存在結構問題。
|
|
190
|
-
- `list-compositions.ts`、`get-composition.ts`、`update-composition.ts`、`delete-composition.ts` — 讀取、更新和刪除 SQL
|
|
190
|
+
- `list-compositions.ts`、`get-composition.ts`、`update-composition.ts`、`delete-composition.ts` — 讀取、更新和刪除 SQL 支援的合成紀錄。
|
|
191
191
|
|
|
192
|
-
|
|
192
|
+
**路由** — `templates/videos/app/routes/`
|
|
193
193
|
|
|
194
|
-
- `_index.tsx` —
|
|
194
|
+
- `_index.tsx` — 工作室之家;渲染外殼和組合清單。
|
|
195
195
|
- `c.$compositionId.tsx` - 合成編輯器(時間軸、播放器、屬性面板)。
|
|
196
196
|
- `components.tsx` — 元件庫瀏覽器。
|
|
197
197
|
- `team.tsx` — 團隊管理。
|
|
198
198
|
|
|
199
199
|
**遠端內部結構** — `templates/videos/app/remotion/`
|
|
200
200
|
|
|
201
|
-
- `registry.ts` —
|
|
201
|
+
- `registry.ts` — 權威作文清單。
|
|
202
202
|
- `compositions/` — 每個組合一個 `.tsx`,加上一個 `index.ts` 槍管。
|
|
203
203
|
- `trackAnimation.ts` — `trackProgress`, `getPropValue`, `findTrack`, `getPropValueKeyframed`.
|
|
204
204
|
- `CameraHost.tsx` — 使用相機變換包裝合成內容。
|
|
205
|
-
- `hooks/`、`ui-components/`、`components/` -
|
|
205
|
+
- `hooks/`、`ui-components/`、`components/` - 互動式元素助手、游標渲染、動畫元素包裝器。
|
|
206
206
|
|
|
207
207
|
**工作室 UI** — `templates/videos/app/components/`
|
|
208
208
|
|
|
209
209
|
- `Timeline.tsx` — 完全控制的時間線(`viewStart` / `viewEnd` 內部沒有狀態)。
|
|
210
210
|
- `VideoPlayer.tsx` - 具有範圍限制播放的 Remotion `<Player>` 包裝器。
|
|
211
211
|
- `TrackPropertiesPanel.tsx`、`CompSettingsEditor.tsx`、`PropsEditor.tsx` — 右側面板。
|
|
212
|
-
- `CameraToolbar.tsx`、`CameraControls.tsx` -
|
|
212
|
+
- `CameraToolbar.tsx`、`CameraControls.tsx` - 相機工具和數字控制項。
|
|
213
213
|
|
|
214
|
-
**代理說明** — `templates/videos/AGENTS.md`
|
|
214
|
+
**代理說明** — `templates/videos/AGENTS.md` 是代理閱讀的長格式指南。它涵蓋了動畫軌道規則、相機系統、游標系統、CSS 過濾器單元、互動式元件註冊、UI 間距以及用於建立或編輯合成的清單。
|
|
215
215
|
|
|
216
216
|
**Skills** — `templates/videos/.agents/skills/`
|
|
217
217
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "跟蹤和分析"
|
|
3
|
-
description: "
|
|
3
|
+
description: "使用可插入提供者進行伺服器端分析 - PostHog、Mixpanel、Amplitude 或自訂 Webhook"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# 分析跟蹤
|
|
7
7
|
|
|
8
|
-
一個功能,多個目的地。從任何伺服器端程式碼(actions
|
|
8
|
+
一個功能,多個目的地。從任何伺服器端程式碼(actions、外掛、伺服器路由)呼叫 `track()`,事件就會分發到每個註冊的分析提供者。沒有 SDK 依賴性,沒有用戶端指令碼,沒有阻塞。相同的 `track()` 也可在 [browser/app code](#client) 中使用,並路由至相同的提供者。
|
|
9
9
|
|
|
10
|
-
這是*product*分析——您的應用程式的事件流向PostHog/Mixpanel/Amplitude
|
|
10
|
+
這是*product*分析——您的應用程式的事件流向PostHog/Mixpanel/Amplitude。有關儲存在您自己的資料庫中的*代理品質*指標(跟蹤、成本、評估、意見回饋),請參閱 [Observability](/docs/observability)。
|
|
11
11
|
|
|
12
12
|
```ts
|
|
13
13
|
import { track } from "@agent-native/core/tracking";
|
|
@@ -19,16 +19,16 @@ track(
|
|
|
19
19
|
);
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
```an-diagram title="一次 track()
|
|
22
|
+
```an-diagram title="一次 track() 呼叫,每個提供者" summary="伺服器和用戶端呼叫者存取相同的註冊表,該註冊表將每個事件並行地分發給所有活動的提供者。"
|
|
23
23
|
{
|
|
24
|
-
"html": "<div class=\"trk\"><div class=\"diagram-col\"><div class=\"diagram-node\">伺服器程式碼<br><small class=\"diagram-muted\">actions · plugins · routes</small></div><div class=\"diagram-node\">瀏覽器程式碼<br><small class=\"diagram-muted\">POST /_agent-native/track</small></div></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-panel center\"><span class=\"diagram-pill accent\">Provider registry</span><small class=\"diagram-muted\"
|
|
24
|
+
"html": "<div class=\"trk\"><div class=\"diagram-col\"><div class=\"diagram-node\">伺服器程式碼<br><small class=\"diagram-muted\">actions · plugins · routes</small></div><div class=\"diagram-node\">瀏覽器程式碼<br><small class=\"diagram-muted\">POST /_agent-native/track</small></div></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-panel center\"><span class=\"diagram-pill accent\">Provider registry</span><small class=\"diagram-muted\">扇出,傳送即忘</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-col\"><div class=\"diagram-box\">PostHog</div><div class=\"diagram-box\">Mixpanel</div><div class=\"diagram-box\">Amplitude</div><div class=\"diagram-box\">Webhook</div></div></div>",
|
|
25
25
|
"css": ".trk{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.trk .diagram-col{display:flex;flex-direction:column;gap:8px}.trk .diagram-arrow{font-size:22px;line-height:1}.trk .center{display:flex;flex-direction:column;align-items:center;gap:4px}"
|
|
26
26
|
}
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
##
|
|
29
|
+
## 內建提供者 {#built-in}
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
設定環境變數,提供者會在伺服器啟動時自動註冊。無需更改程式碼。
|
|
32
32
|
|
|
33
33
|
| 提供者 | 環境變數 |
|
|
34
34
|
| -------- | ------------------------------------------------------------------------------------ |
|
|
@@ -37,7 +37,7 @@ track(
|
|
|
37
37
|
| 振幅 | `AMPLITUDE_API_KEY` |
|
|
38
38
|
| Webhook | `TRACKING_WEBHOOK_URL`(必需)、`TRACKING_WEBHOOK_AUTH`(可選 `Authorization` 標頭) |
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
多個提供者可以同時處於活動狀態。每個事件都會發生在他們所有人身上。
|
|
41
41
|
|
|
42
42
|
## API {#api}
|
|
43
43
|
|
|
@@ -57,7 +57,7 @@ track(
|
|
|
57
57
|
|
|
58
58
|
### `identify(userId, traits?)` {#identify}
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
識別具有特徵的使用者。轉發給支援它的提供者(PostHog、Mixpanel、Amplitude、webhook)。
|
|
61
61
|
|
|
62
62
|
```ts
|
|
63
63
|
import { identify } from "@agent-native/core/tracking";
|
|
@@ -65,11 +65,11 @@ import { identify } from "@agent-native/core/tracking";
|
|
|
65
65
|
identify("steve@builder.io", { plan: "pro", company: "Builder.io" });
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
需要自訂後端、提供者註冊表 API 或批處理/單例內部元件?見最後的[Advanced: custom providers & internals](#advanced)。
|
|
69
69
|
|
|
70
70
|
## 在範本中使用 track() {#templates}
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
從操作處理常式呼叫 `track()` 以紀錄使用者或代理活動:
|
|
73
73
|
|
|
74
74
|
```ts
|
|
75
75
|
// actions/create-project.ts
|
|
@@ -96,13 +96,13 @@ export default defineAction({
|
|
|
96
96
|
});
|
|
97
97
|
```
|
|
98
98
|
|
|
99
|
-
|
|
99
|
+
跟蹤呼叫是“即發即忘”的 — 它們會立即返回並且永遠不會阻止操作回應。
|
|
100
100
|
|
|
101
101
|
## 用戶端跟蹤 {#client}
|
|
102
102
|
|
|
103
|
-
`track()`
|
|
103
|
+
`track()` 也適用於瀏覽器/應用程式的程式碼。從 `@agent-native/core/client` 匯入用戶端對應函式並以相同的方式呼叫它 - 它將事件發布到 `POST /_agent-native/track` 的框架路由,後者將其轉發到**相同**註冊的伺服器端提供者(PostHog、Mixpanel、Amplitude、webhook)。沒有分析 SDK 傳送到瀏覽器,也沒有提供者金鑰暴露在用戶端。
|
|
104
104
|
|
|
105
|
-
```an-api title="
|
|
105
|
+
```an-api title="客戶追蹤路由"
|
|
106
106
|
{
|
|
107
107
|
"method": "POST",
|
|
108
108
|
"path": "/_agent-native/track",
|
|
@@ -128,13 +128,13 @@ track("checkout.completed", { total: 49.99, items: 3 });
|
|
|
128
128
|
- **無身分參數。** 該事件在伺服器端歸因於登入使用者(以及活動組織,如 `properties` 中的 `org_id`)。瀏覽器程式碼永遠不會傳遞 `userId`。
|
|
129
129
|
- **`source: "client"`** 新增到每個事件的屬性中,以便您可以區分用戶端發起的事件和伺服器事件。
|
|
130
130
|
- **一勞永逸。**它永遠不會阻塞 UI,永遠不會拋出並吞掉網路錯誤。
|
|
131
|
-
- **經過驗證,僅限第一方。** 該路由需要工作階段和同來源/CSRF
|
|
131
|
+
- **經過驗證,僅限第一方。** 該路由需要工作階段和同來源/CSRF 標記(由幫助程式自動設定),因此它不能用作開放分析中繼。 `name` 的上限為 200 個字符,`properties` 的上限為 ~16KB;過大或格式錯誤的有效負載將被拒絕。
|
|
132
132
|
|
|
133
|
-
這與框架的內部瀏覽器遙測(`trackEvent()` /自動頁面瀏覽量 - 請參閱下面的 [Browser defaults](#browser-defaults))不同,後者為 Agent Native
|
|
133
|
+
這與框架的內部瀏覽器遙測(`trackEvent()` /自動頁面瀏覽量 - 請參閱下面的 [Browser defaults](#browser-defaults))不同,後者為 Agent Native 自己的產品分析提供支援。將 `track()` 用於您的應用自己的分析事件,這些事件應到達您設定的提供者。
|
|
134
134
|
|
|
135
|
-
##
|
|
135
|
+
## 進階:自訂提供者和內部結構 {#advanced}
|
|
136
136
|
|
|
137
|
-
大多數應用程式只需要 `track()` / `identify()`
|
|
137
|
+
大多數應用程式只需要 `track()` / `identify()` 和內建提供者。表面的其餘部分 - 註冊自訂提供者、`TrackingProvider` 介面、批處理內部結構以及框架自己的瀏覽器遙測 - 如下。
|
|
138
138
|
|
|
139
139
|
<details>
|
|
140
140
|
<summary><strong>Provider-registry API、介面、內部結構和瀏覽器預設值</strong></summary>
|
|
@@ -167,7 +167,7 @@ registerTrackingProvider({
|
|
|
167
167
|
|
|
168
168
|
### `flushTracking()` {#flush}
|
|
169
169
|
|
|
170
|
-
|
|
170
|
+
重新整理所有提供者。在行程退出之前呼叫以確保傳送待處理事件。
|
|
171
171
|
|
|
172
172
|
```ts
|
|
173
173
|
import { flushTracking } from "@agent-native/core/tracking";
|
|
@@ -204,20 +204,20 @@ interface TrackingEvent {
|
|
|
204
204
|
}
|
|
205
205
|
```
|
|
206
206
|
|
|
207
|
-
僅需要 `name` 和 `track`。 `identify` 和 `flush` 是可選的 -
|
|
207
|
+
僅需要 `name` 和 `track`。 `identify` 和 `flush` 是可選的 - 如果您的後端支援使用者身分和批量交付,請實現它們。
|
|
208
208
|
|
|
209
209
|
### 它是如何工作的 {#internals}
|
|
210
210
|
|
|
211
|
-
- **批處理 HTTP** —
|
|
212
|
-
- **無 SDK 依賴項** —
|
|
213
|
-
- **盡力交付** -
|
|
214
|
-
- **全域單例** - 註冊表在 `globalThis` 上使用 `Symbol.for` 金鑰,因此多個 ESM 圖形執行個體(開發模式 Vite + Nitro
|
|
211
|
+
- **批處理 HTTP** — 內建提供者將事件排隊並每 10 秒或累積 50 個事件時重新整理(以先到者為準)。這可以最大限度地減少出站請求,而不會丟失資料。
|
|
212
|
+
- **無 SDK 依賴項** — 所有內建提供者都使用原始 `fetch()`。沒有 PostHog SDK,沒有 Mixpanel SDK,沒有 Amplitude SDK。保持框架輕量級。
|
|
213
|
+
- **盡力交付** - 捕獲並紀錄提供者錯誤。失敗的分析整合絕不會導致呼叫者當機或阻止請求處理。
|
|
214
|
+
- **全域單例** - 註冊表在 `globalThis` 上使用 `Symbol.for` 金鑰,因此多個 ESM 圖形執行個體(開發模式 Vite + Nitro、符號連結)共用一個提供者集。
|
|
215
215
|
|
|
216
216
|
### 瀏覽器預設值 {#browser-defaults}
|
|
217
217
|
|
|
218
|
-
|
|
218
|
+
這涵蓋了框架自己的內部遙測——主要與框架貢獻者和進階範本作者相關。
|
|
219
219
|
|
|
220
|
-
|
|
220
|
+
範本根在啟動時呼叫 `configureTracking()` 一次。當應用程式可以解析它時,使用 `trackEvent()` 傳送的瀏覽器事件會自動包含應用程式/範本脈絡以及目前的 LLM 連線:
|
|
221
221
|
|
|
222
222
|
- `llm_connection` — 標準化提供者標籤,例如 `builder`、`anthropic`、`openai`、`google` 或 `none`
|
|
223
223
|
- `llm_engine` — 引擎 ID,例如 `builder` 或 `ai-sdk:openai`
|
|
@@ -225,12 +225,12 @@ interface TrackingEvent {
|
|
|
225
225
|
- `llm_connection_source` — `app_secrets`、`settings` 或 `env`
|
|
226
226
|
- `llm_connection_configured` — LLM 連線是否可用
|
|
227
227
|
|
|
228
|
-
|
|
228
|
+
此框架還跟蹤來自 Connect Builder CTA 的 `builder connect clicked`,伺服器端 Builder 連線路由跟蹤已啟動/成功/失敗的生命週期事件。 `configureTracking()`由框架自動呼叫;您不需要在自己的範本程式碼中呼叫它。
|
|
229
229
|
|
|
230
230
|
</details>
|
|
231
231
|
|
|
232
|
-
##
|
|
232
|
+
## 下一步是什麼
|
|
233
233
|
|
|
234
|
-
- [**Actions**](/docs/actions) —
|
|
234
|
+
- [**Actions**](/docs/actions) — 大多數跟蹤呼叫的發起位置
|
|
235
235
|
- [**Server Plugins**](/docs/server) - `registerBuiltinProviders()` 在啟動時在 core-routes 外掛中執行
|
|
236
236
|
- [**Secrets**](/docs/security) — 管理用於跟蹤提供者的 API 金鑰
|