diff --git a/README.md b/README.md index 9f43864..2db3a0d 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Use the Ace Data Cloud Fish Audio APIs in Dify workflows. Maintained by Ace Data ## Setup 1. Activate the service at [Ace Data Cloud](https://platform.acedata.cloud/console/applications), check [current pricing](https://platform.acedata.cloud/models), and create an API token with the required service access. -2. Install from the official Dify Marketplace once the submission is approved and published. During review, use Dify's documented package/debug installation in a test workspace. A GitHub PR does not establish Marketplace availability or default installation. +2. Install from [Dify Marketplace](https://marketplace.dify.ai/plugin/acedatacloud/fish). This version is published and was installed through the official Marketplace flow in Dify CE 1.17.1 with signature verification enabled. Installation is optional; this does not mean Dify preinstalls the plugin. 3. In Dify's **Plugins / Tools** page, authorize this provider with **Bearer Token** (`acedata_bearer_token`). Do not include credentials in prompts or exported workflows. Credential validation never generates media. Authorization performs a read-only task query. ## Tools @@ -60,3 +60,9 @@ Source contracts, MCP mappings, brand provenance and offline cases are in `tests - Contact: dev@acedata.cloud - License: MIT - [Simplified Chinese](readme/README_zh_Hans.md) + +## Official Marketplace verification + +[Install from Dify Marketplace](https://marketplace.dify.ai/plugin/acedatacloud/fish). Version 0.0.1 was downloaded and installed through the official Marketplace flow on October 8, 2026, with signature verification enabled and no remote-debug process. The installed plugin then completed the recorded real Dify workflow. [Verification data](tests/marketplace-acceptance.json) and [original Dify screenshot](tests/evidence/marketplace-20261008.png) document the exact scope. This proves optional Marketplace availability, not default installation or featured placement. + +The installed tool queried a previously generated, completed task and returned its final media. The generation itself was not repeated; earlier generation evidence remains separate. diff --git a/readme/README_zh_Hans.md b/readme/README_zh_Hans.md index e8e3270..90fc737 100644 --- a/readme/README_zh_Hans.md +++ b/readme/README_zh_Hans.md @@ -5,7 +5,7 @@ ## 安装与授权 1. 在 [Ace Data Cloud](https://platform.acedata.cloud/console/applications) 开通服务并创建 API Token;使用前核对[当前模型与价格](https://platform.acedata.cloud/models)。 -2. 官方审核并上架后,可从 Dify Marketplace 安装。审核期间可以在测试环境使用 Dify 官方的包安装或远程调试流程。PR 已提交不表示市场已发布,也不表示默认预装。 +2. 可从 [Dify 官方 Marketplace](https://marketplace.dify.ai/plugin/acedatacloud/fish) 安装。0.0.1 已上架,并通过开启签名校验的 Dify CE 1.17.1 安装验证;这属于可选安装,不代表默认预装。 3. 在 Dify 的插件或工具页填写 Bearer Token(`acedata_bearer_token`)。凭据检查不会生成内容。授权使用只读任务查询。 ## 工具与工作流 @@ -43,3 +43,7 @@ - 联系:dev@acedata.cloud 需要 Python 3.12。运行 `python -m pytest tests -q`、`ruff check .`、`ruff format --check .` 和 `dify plugin package .`。真实 Dify 截图与结果、未覆盖项见 tests 目录;单元测试通过不等于所有模型真实调用通过,市场上架和安装另行验收。 + +## 官方市场安装验收 + +2026-10-08 已从[官方市场](https://marketplace.dify.ai/plugin/acedatacloud/fish)安装签名包,并完成记录中的真实 Dify 工作流。未使用 remote-debug。[验收数据](../tests/marketplace-acceptance.json)与[原始截图](../tests/evidence/marketplace-20261008.png)记录了准确范围;此前主流程和高级功能证据继续保留。本次复用已有成功任务验证查询与媒体输出,没有重复生成。 diff --git a/tests/evidence/marketplace-20261008-workflow.json b/tests/evidence/marketplace-20261008-workflow.json new file mode 100644 index 0000000..af95325 --- /dev/null +++ b/tests/evidence/marketplace-20261008-workflow.json @@ -0,0 +1,188 @@ +{ + "nodes": [ + { + "id": "start", + "type": "custom", + "data": { + "type": "start", + "title": "Start", + "desc": "", + "variables": [], + "selected": false + }, + "position": { + "x": 0, + "y": 100 + }, + "width": 242, + "height": 73, + "sourcePosition": "right", + "targetPosition": "left", + "zIndex": 0, + "positionAbsolute": { + "x": 0, + "y": 100 + } + }, + { + "id": "generate", + "type": "custom", + "data": { + "type": "tool", + "title": "Fish Audio", + "desc": "", + "provider_id": "acedatacloud/fish/fish", + "provider_name": "acedatacloud/fish/fish", + "provider_type": "builtin", + "tool_name": "fish_tasks_retrieve_batch", + "tool_label": "Fish Audio Retrieve Tasks", + "tool_configurations": { + "ids": { + "type": "constant", + "value": "[\"b24ec7c3-5007-4d10-94ec-10b0b48377d0\"]" + } + }, + "tool_parameters": {}, + "tool_node_version": "2", + "plugin_unique_identifier": "acedatacloud/fish:0.0.1@e1ffe40618032d92adda6d585306ad5ea6148933c406bae03c7b22cd644f5d99", + "retry_config": { + "retry_enabled": false, + "max_retries": 0, + "retry_interval": 1000 + }, + "selected": false + }, + "position": { + "x": 300, + "y": 100 + }, + "width": 242, + "height": 88, + "sourcePosition": "right", + "targetPosition": "left", + "zIndex": 0, + "positionAbsolute": { + "x": 300, + "y": 100 + } + }, + { + "id": "end", + "type": "custom", + "data": { + "type": "end", + "title": "Output", + "desc": "", + "outputs": [ + { + "variable": "status", + "value_selector": [ + "generate", + "status" + ] + }, + { + "variable": "success", + "value_selector": [ + "generate", + "success" + ] + }, + { + "variable": "task_id", + "value_selector": [ + "generate", + "task_id" + ] + }, + { + "variable": "trace_id", + "value_selector": [ + "generate", + "trace_id" + ] + }, + { + "variable": "media_urls", + "value_selector": [ + "generate", + "media_urls" + ] + }, + { + "variable": "data", + "value_selector": [ + "generate", + "data" + ] + }, + { + "variable": "result", + "value_selector": [ + "generate", + "result" + ] + }, + { + "variable": "files", + "value_selector": [ + "generate", + "files" + ] + } + ], + "selected": false + }, + "position": { + "x": 600, + "y": 100 + }, + "width": 242, + "height": 270, + "sourcePosition": "right", + "targetPosition": "left", + "zIndex": 0, + "positionAbsolute": { + "x": 600, + "y": 100 + } + } + ], + "edges": [ + { + "id": "start-generate", + "source": "start", + "target": "generate", + "sourceHandle": "source", + "targetHandle": "target", + "type": "custom", + "data": { + "sourceType": "start", + "targetType": "tool", + "isInIteration": false, + "isInLoop": false + }, + "zIndex": 0 + }, + { + "id": "generate-end", + "source": "generate", + "target": "end", + "sourceHandle": "source", + "targetHandle": "target", + "type": "custom", + "data": { + "sourceType": "tool", + "targetType": "end", + "isInIteration": false, + "isInLoop": false + }, + "zIndex": 0 + } + ], + "viewport": { + "x": 60, + "y": 160, + "zoom": 0.8 + } +} \ No newline at end of file diff --git a/tests/evidence/marketplace-20261008.png b/tests/evidence/marketplace-20261008.png new file mode 100644 index 0000000..cfec911 Binary files /dev/null and b/tests/evidence/marketplace-20261008.png differ diff --git a/tests/marketplace-acceptance.json b/tests/marketplace-acceptance.json new file mode 100644 index 0000000..205bb65 --- /dev/null +++ b/tests/marketplace-acceptance.json @@ -0,0 +1,31 @@ +{ + "repo": "FishAudioDify", + "marketplace_url": "https://marketplace.dify.ai/plugin/acedatacloud/fish", + "identifier": "acedatacloud/fish:0.0.1@e1ffe40618032d92adda6d585306ad5ea6148933c406bae03c7b22cd644f5d99", + "installation_source": "marketplace", + "workflow_id": "69b3dbfa-2759-4a87-b09f-6b407ecd2301", + "workflow_status": "succeeded", + "service_status": "succeeded", + "case": "Fish Audio Marketplace Installed", + "media_urls": [ + "https://platform2.cdn.acedata.cloud/fish/b24ec7c3-5007-4d10-94ec-10b0b48377d0.mp3" + ], + "outputs": { + "status": "succeeded", + "success": true, + "task_id": "", + "trace_id": "" + }, + "icon_matches_source": true, + "paid_generation_reused": true, + "prior_media_decode_evidence": true, + "media_readback_status": "completed existing task output; generation not repeated", + "tested_at": "2026-10-08T01:26:57.567309+00:00", + "environment": "Dify CE 1.17.1 / plugin daemon 0.6.10-local", + "signature_verification_enabled": true, + "remote_debug_used": false, + "marketplace_install_tested": true, + "cloud_tested": false, + "screenshot": "evidence/marketplace-20261008.png", + "workflow": "evidence/marketplace-20261008-workflow.json" +}