@archships/dim-plugin-plan-mode
v0.0.4
Published
Official plan-mode plugin for dim-agent-sdk.
Readme
@archships/dim-plugin-plan-mode
Official supported plan-mode plugin for dim-agent-sdk.
Requires @archships/dim-agent-sdk >= 0.0.20 and
@archships/dim-plugin-api >= 0.0.7.
What it does
- publishes
AgentModemetadata throughsetup().modes - injects a planning guardrail into the real system prompt through
prompt.resolve - restricts the visible toolset to read-only inspection tools plus
plan_read/plan_write - denies hidden or fabricated implementation tool calls through
tool.beforeExecute - keeps
execvisible, but only allows an allowlisted set of read-only inspection commands - exposes a session-scoped controller through
session.getPlugin('plan-mode') - stores session drafts under
<hostDataDir>/plans/<sessionId>/plan.md
Usage
import { createAgent, createModel } from '@archships/dim-agent-sdk'
import { createPlanModePlugin } from '@archships/dim-plugin-plan-mode'
const agent = createAgent({
model: createModel(adapter),
hostDataDir: '/tmp/dim-host-data',
plugins: [createPlanModePlugin()],
})
const session = await agent.createSession({
metadata: { planMode: true },
})
const planMode = session.getPlugin('plan-mode')
await planMode?.disable()
await planMode?.enable()
await planMode?.clearDraft()Controller behavior
getState(): returns{ active, pendingActive?, draftPath }enable(): enables plan mode for the next run; if no run is in flight, it becomes active immediatelydisable(): disables plan mode for the next run; if no run is in flight, it becomes inactive immediatelyclearDraft(): deletes the current session draft directory underhostDataDir
Options
activationMetadataKey: defaults toplanModeextraVisibleTools: extends the default visible toolset with additional read-only toolsallowedExecPatterns: extends the built-in allow / deny / ask rules forexec
Notes
- the current runtime still does not consume
AgentModedirectly; the behavior comes from the plugin hooks and session controller hostDataDiris required so plan drafts stay outside the workspacewrite,edit, andpatchstyle tools are blocked while plan mode is activeplan_writeis the only writable artifact exposed to the model in plan mode- state changes are
next run onlyfor in-flight runs - deleting the session through
agent.deleteSession(sessionId)also deletes the plan draft directory - run
pnpm run demo:plan-modein the repo for the scripted walkthrough
