REFERENCE
SDK 範例
@asgard-js/core 與 @asgard-js/react 的用法與可以直接操作的範例。
cwd:// 下載動作
當訊息中 ATTACHMENT 的 defaultAction / downloadAction 使用 cwd://<相對路徑>
形式的 URI 時,SDK 會攔截 cwd://,改打 <botProviderEndpoint>/cwd/download
取回檔案並觸發瀏覽器下載,而不是用 window.open(window.open 無法開啟 cwd://)。
常見於 sandbox / code-server 類 bot:Agent 在工作目錄產生檔案後,用 cwd:// 連結讓使用者下載。
重點
cwd://的downloadAction(type: "uri")就足以讓附件顯示下載圖示,不再需要 EMITdownload_file。- 點卡片或下載圖示時,SDK 會送出
GET <base>/cwd/download?custom_channel_id=...&relative_path=...。
程式範例(附件 template)
template: {
type: MessageTemplateType.ATTACHMENT,
attachments: [
{
title: "業務員業績排行.json",
defaultAction: { type: "uri", uri: "cwd://業務員業績排行.json" },
downloadAction: { type: "uri", uri: "cwd://業務員業績排行.json" },
},
],
quickReplies: [],
}上方範例為預覽模式(
botProviderEndpoint: "skip"),用來展示附件的下載 UI;實際要下載檔案,需要一個會回傳cwd://動作且支援/cwd/download的 Bot Provider。