Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/harness.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,12 @@ jobs:
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
with:
node-version: 22
- run: npm ci
- run: npm run harness:check
- run: npm install --global pnpm@10.32.1
- run: node harness/scripts/install-host.mjs ${{ matrix.dsh }} /tmp/beatapi-dsh-host
- run: node harness/scripts/host-smoke.mjs /tmp/beatapi-dsh-host/node_modules/@deepseek-ai/dsh
- run: node harness/scripts/workspace-smoke.mjs /tmp/beatapi-dsh-host/node_modules/@deepseek-ai/dsh
- run: node harness/scripts/geo-smoke.mjs /tmp/beatapi-dsh-host/node_modules/@deepseek-ai/dsh
- run: node harness/scripts/geo-smoke.mjs /tmp/beatapi-dsh-host/node_modules/@deepseek-ai/dsh --full-catalog
- run: node harness/scripts/geo-smoke.mjs /tmp/beatapi-dsh-host/node_modules/@deepseek-ai/dsh --missing-key
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@ and Workspace capabilities. This plugin connects Codex, Cursor, Grok Bot, and
Grok Build to BeatAPI through a bundled Skill, local MCP server, typed client,
and locked public contract.

**DeepSeek Harness:** three independently installable bundles provide
[Social Research](packages/dsh-social), [Media Kit](packages/dsh-media), and
[BeatBrowser](packages/dsh-browser). See [setup and validation](harness/README.md).
**DeepSeek Harness:** five independently installable bundles provide
[Social Research](packages/dsh-social), [Media Kit](packages/dsh-media),
[BeatBrowser](packages/dsh-browser), [BeatDesign](packages/dsh-design), and
[BeatGEO](packages/dsh-geo). See [setup and validation](harness/README.md).

For host-independent onboarding, give an Agent this instruction:

Expand Down
6 changes: 5 additions & 1 deletion harness/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
# BeatAPI plugins for DeepSeek Harness

Three independently installable bundles with distinct tools and tasks:
Five independently installable bundles with distinct tools and tasks:

| Bundle | Task | Tools | Install |
|---|---|---|---|
| [Social Research](../packages/dsh-social) | Social discovery, approved reads, stored results and source tables | 5 native | `dsh plugin --profile web add @beatapi/dsh-social@0.1.1` |
| [Media Kit](../packages/dsh-media) | Image/video discovery, pricing previews, approved starts and task status | 4 native | `dsh plugin --profile web add @beatapi/dsh-media@0.1.1` |
| [BeatBrowser](../packages/dsh-browser) | Existing Chrome logins and owned background TaskSpaces | 24 namespaced MCP tools | `dsh plugin --profile web add @beatapi/dsh-browser@0.1.1` |
| [BeatDesign](../packages/dsh-design) | Local creative Project, Canvas, Assets and Timeline | 30 namespaced MCP tools | `dsh plugin --profile web add @beatapi/dsh-design` |
| [BeatGEO](../packages/dsh-geo) | Existing local brand, evidence and SEO/GEO workspace | Setup diagnostic plus the product’s permitted MCP tools | `dsh plugin --profile web add @beatapi/dsh-geo` |

The packages do not restrict Harness versions. Tested hosts: `0.1.0-rc.6`, `0.2.1-rc.2`, and `0.2.1-rc.5`. Future hosts are not yet tested and may introduce breaking changes. Node.js 22.12+. Community integrations by BeatAPI, not official DeepSeek products. Each bundle supplies a Skill and coexists with the others. Prebuilt JavaScript needs no install-time build script. Each package README documents GitHub installation too.

Expand All @@ -15,3 +17,5 @@ The packages do not restrict Harness versions. Tested hosts: `0.1.0-rc.6`, `0.2.
See [validation](VALIDATION.md) and [security](SECURITY.md) for evidence and limits.

For a reproducible test runtime, first run `node harness/scripts/install-host.mjs <version> /tmp/beatapi-dsh-host`. Its recorded official package versions avoid older prerelease caret ranges resolving a mixture of later RC packages. These pins affect the test host only, not the distributed plugins or the user's installation.

BeatDesign starts its pinned published runtime; port 3020 must be free. BeatGEO requires an already-running local product and a scoped workspace MCP key; it does not duplicate the product’s BeatAPI connection. SEO is accessed in the same brand dashboard, not an invented MCP query catalog. See each package README for first-use setup. `workspace-smoke.mjs` checks a real isolated BeatDesign runtime; `geo-smoke.mjs` checks authenticated proxying, read-only catalog and missing-key behavior with labeled synthetic MCP data.
10 changes: 10 additions & 0 deletions harness/VALIDATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,13 @@ The three packages declare `engines.dsh: "*"` and unrestricted optional DSH peer
- Media status returns remote task results. File upload, local file download and full timeline editing are not provided by this package.

The plugin readmes and proposed marketplace descriptions deliberately stay within these boundaries.

## BeatDesign and BeatGEO bundles — 2026-11-02

- Product prerequisite verified: BeatGEO PR #28 merged as `e18b7c4739892232fd02055d063832ab45eb4c6a`, with all four PR checks passing. The main README documents the shared connection, twelve SEO endpoints, brand SEO page and reviewed-question import. Real paid SEO calls remain a separate acceptance.
- BeatDesign uses the published 0.2.5 runtime, not its unreleased source additions. Isolated bundle installs on the three recorded Harness versions start the local production workspace and register 30 MCP tools and its Skill. Project list, temporary project creation, Canvas handoff and HTTP health checks pass. The test asserts its database is in temporary storage.
- BeatGEO bundle installs on the same three hosts. Its proxy test uses a synthetic authenticated MCP fixture: permitted read-only discovery/call and missing-key setup behavior pass. It does not certify a real user's key, browser account, product database or paid SEO queries.
- The `beatgeo-mcp-catalog.json` fixture contains 27 public tool schemas exported through BeatGEO's real MCP server without invoking product handlers. Full-catalog tests check Harness schema ingestion; returned identity is clearly synthetic. These are not fetched brand analytics.
- Two transport-boundary regressions cover loopback-only URLs, credential-file privacy, symbolic links, malformed credentials and file rotation. Existing behavior tests remain in the full check.
- The SEO dashboard is accessed through the same brand URL and shared BeatGEO connection. No SEO-specific MCP execution API is claimed or duplicated by this connector.
- Package publication, public registry installation and community review are reported separately in the delivery record.
Loading
Loading