Files
deepseek-harness/packages/cordis
imccyu f1e54d737b fix(tool-cordis): pass primitive provided service values through the façade
cordis provide() accepts any value and cross-mount composition advertises
ctx.provide('name', value), but the façade's readService unconditionally
proxied every declared service — new Proxy('42') throws "Cannot create proxy
with a non-object as target or handler", so a consumer of a primitive-valued
service crashed on first read with an error naming neither the service nor
the fix. A primitive or null value now passes through unwrapped (after the
denyContext check); only object- and function-valued services are proxied —
a primitive has no method that could hand back a Context, so nothing is lost.
New cross-mount spec pins both read paths (ctx.<name> and ctx.get) for a
number and a null provided value.
2026-07-09 19:30:49 +08:00
..

packages/cordis — the self-referential runtime toolset

Model-facing tools over the live cordis runtime the agent itself runs inside: inspect the loaded plugins and service surface, mount model-written plugins, and dispose them again. Design home: the toolset RFC.

Package Role ctx key
tool-cordis/ The cordis_inspect / cordis_mount / cordis_unmount tools: read the runtime, evaluate model-written plugin code in a node:vm sandbox, and manage the dynamic mounts under one group fiber registers on ctx.tools