mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
# Conflicts: # docs/cordis-catalog/events.md # docs/cordis-catalog/services.md # docs/event-producer-consumer.md # docs/module-graph.md # packages/context/time-context/tests/time-context.spec.ts # packages/cordis/tool-cordis/src/api-catalog.ts # packages/core/session/README.md # packages/core/session/src/types.ts # packages/core/session/tests/surface.spec.ts # packages/examples/acp-demo/tests/acp-agent.spec.ts # packages/examples/stdio-demo/tests/stdio-agent.spec.ts # packages/hooks/hooks-claude/tests/coverage.spec.ts # packages/hooks/hooks-codex/tests/coverage.spec.ts # packages/session-query/session-query/tests/session-query.spec.ts # packages/support/invariants/tests/invariants.spec.ts # packages/ui/acp/tests/harness.ts
77 lines
3.2 KiB
YAML
77 lines
3.2 KiB
YAML
# Self-referential stdio demo: the coding spine plus tools to inspect the live
|
|
# service/plugin/tool/mount/API/event state, mount a model-written plugin under
|
|
# `cordis-dynamic`, and quiescently unmount it. The app bin loads the gitignored
|
|
# root `.env` before reading the required DeepSeek key and optional base URL.
|
|
# Trust stance: the vm and context façade limit accidental global/framework
|
|
# access but are not a security boundary; mounted code can reach live capabilities
|
|
# such as `ctx.bash`. Grant this toolset like bash access. See
|
|
# ../../docs/rfc/implemented/feature/2026-07-08-self-referential-cordis-toolset.md.
|
|
|
|
# Hot-module reload for the dev/demo loop (needs `node --expose-internals`).
|
|
- id: hmr
|
|
name: '@cordisjs/plugin-hmr'
|
|
config:
|
|
root: ['.']
|
|
|
|
# The DeepSeek adapter.
|
|
- id: llm-deepseek
|
|
name: '@deepseek-ai/dsh-llm-deepseek'
|
|
config:
|
|
apiKey: !!js process.env.DEEPSEEK_API_KEY
|
|
baseURL: !!js process.env.DEEPSEEK_BASE_URL
|
|
|
|
# Local bash executor for agent-spine-demo's tool-bash schema — gives the agent an
|
|
# ordinary tool whose calls make the mounted listeners observably fire.
|
|
- id: bash
|
|
name: '@deepseek-ai/dsh-bash-local'
|
|
config:
|
|
timeoutMs: 60000
|
|
|
|
# Filesystem service for mounted plugins (ctx.fs) — the local provider only.
|
|
# The model-facing read/write/edit tools stay unmounted on purpose: this demo
|
|
# is about the agent building its own tools over the services.
|
|
- id: fs-local
|
|
name: '@deepseek-ai/dsh-fs-local'
|
|
config:
|
|
cwd: !!js process.cwd()
|
|
|
|
# Web service for mounted plugins (ctx.web): the seam plus the anonymous local
|
|
# fetch provider (keyless). No search provider is loaded — ctx.web search
|
|
# calls fail loud until a deployment adds one.
|
|
- id: web
|
|
name: '@deepseek-ai/dsh-web'
|
|
|
|
- id: web-fetch-local
|
|
name: '@deepseek-ai/dsh-web-fetch-local'
|
|
|
|
# The app bundle pre-creates the self-referential demo's `main` agent.
|
|
- id: stdio-agent
|
|
name: '@deepseek-ai/dsh-stdio-demo'
|
|
config:
|
|
provider: deepseek
|
|
model: deepseek-v4-flash
|
|
resumeSessionId: !!js process.env.RESUME_SESSION_ID
|
|
persistenceRoot: './.sessions'
|
|
workspaceContext:
|
|
maxBytes: 65536
|
|
welcome: 'cordis-agent ready. Ask it to inspect its runtime, mount a listener, or invent a tool for itself.'
|
|
persona: |
|
|
You are cordis-agent, a self-referential harness demo powered by the
|
|
{{model}} model.
|
|
|
|
You run INSIDE a cordis plugin runtime, and your cordis_* tools operate
|
|
on that live runtime: cordis_inspect to look around (its `api` and
|
|
`events` sections document the service methods, type shapes, and events
|
|
your plugin code can use), cordis_mount to add a plugin (an event
|
|
listener, a brand-new tool for yourself, or a service other mounts
|
|
inject), cordis_unmount to clean one up. In mounted code, NEVER use Node
|
|
built-ins (require/setTimeout/fetch) — use the runtime's cordis services
|
|
via inject: fs, web, bash, and timer (ctx.setTimeout). Prefer small
|
|
single-purpose plugins, prefer plain notification events over waterfall
|
|
events unless you intend to intercept, and unmount what you no longer
|
|
need. Report results briefly.
|
|
|
|
# The self-referential cordis toolset (loaded after the app so ctx.tools exists).
|
|
- id: tool-cordis
|
|
name: '@deepseek-ai/dsh-tool-cordis'
|