Add the agent-creation factory seam on ctx.agents (AgentRegistry):
setFactory/create/resume plus the AgentFactory interface and
CreateAgentOptions/ResumeAgentOptions. AgentLoop implements AgentFactory
and registers itself via ctx.agents.setFactory(this), so plugins
create/resume agents through the interface without depending on the
concrete loop package.
- create({ agentId, sessionId, meta?, agentOptions? }) — programmatic
create on a caller-supplied session id (e.g. an ACP-generated id).
- resume({ agentId, resumeSessionId, agentOptions? }) — load a persisted
session via ctx.sessionPersistence (RFC 009) and resume an agent on it;
the live session id is the resumed id, turn numbering and derived
history continue from the loaded log. sessionPersistence is NOT
hard-injected (non-persistent demos still work); resume rejects with a
typed error when it is absent. assertAgentIdFree runs before any
session is created (and again after the load await) so a duplicate id
never leaves an orphaned live session.
Adds the runtime dsh-session-persistence dependency to agent-loop.
20 lines
472 B
JSON
20 lines
472 B
JSON
{
|
|
"extends": "../../tsconfig.base.json",
|
|
"compilerOptions": {
|
|
"rootDir": "src",
|
|
"outDir": "lib"
|
|
},
|
|
"include": ["src"],
|
|
"references": [
|
|
{ "path": "../../vendor/cosmokit" },
|
|
{ "path": "../../vendor/cordis" },
|
|
{ "path": "../../vendor/schemastery" },
|
|
{ "path": "../llm" },
|
|
{ "path": "../session" },
|
|
{ "path": "../session-persistence" },
|
|
{ "path": "../system-prompt" },
|
|
{ "path": "../tools" },
|
|
{ "path": "../agent" }
|
|
]
|
|
}
|