2026-07-10 01:38:39 +08:00
|
|
|
{
|
2026-07-22 16:57:23 +08:00
|
|
|
"name": "@deepseek-ai/dsh-plan-mode",
|
|
|
|
|
"description": "Logged per-agent plan mode with deployment guidance, a direct slash command, and a user-reviewed exit",
|
2026-07-10 01:38:39 +08:00
|
|
|
"version": "0.0.1",
|
|
|
|
|
"private": true,
|
|
|
|
|
"type": "module",
|
|
|
|
|
"main": "lib/index.js",
|
|
|
|
|
"types": "lib/types/index.d.ts",
|
|
|
|
|
"exports": {
|
|
|
|
|
".": {
|
|
|
|
|
"types": "./lib/types/index.d.ts",
|
|
|
|
|
"default": "./lib/index.js"
|
|
|
|
|
},
|
2026-07-22 02:13:39 +08:00
|
|
|
"./invariant": {
|
|
|
|
|
"types": "./lib/types/invariant.d.ts",
|
|
|
|
|
"default": "./lib/invariant.js"
|
|
|
|
|
},
|
2026-07-10 01:38:39 +08:00
|
|
|
"./src/*": "./src/*",
|
|
|
|
|
"./package.json": "./package.json"
|
|
|
|
|
},
|
|
|
|
|
"files": [
|
|
|
|
|
"lib/index.js",
|
2026-07-22 02:13:39 +08:00
|
|
|
"lib/invariant.js",
|
2026-07-10 01:38:39 +08:00
|
|
|
"lib/types/**/*.d.ts",
|
|
|
|
|
"lib/types/**/*.d.ts.map",
|
|
|
|
|
"src"
|
|
|
|
|
],
|
|
|
|
|
"license": "BSD-3-Clause",
|
|
|
|
|
"peerDependencies": {
|
|
|
|
|
"@deepseek-ai/dsh-agent": "^0.0.1",
|
2026-07-21 11:11:35 +08:00
|
|
|
"@deepseek-ai/dsh-commands": "^0.0.1",
|
2026-07-22 02:13:39 +08:00
|
|
|
"@deepseek-ai/dsh-invariants": "^0.0.1",
|
2026-07-10 01:38:39 +08:00
|
|
|
"@deepseek-ai/dsh-session": "^0.0.1",
|
|
|
|
|
"@deepseek-ai/dsh-system-prompt": "^0.0.1",
|
|
|
|
|
"@deepseek-ai/dsh-tools": "^0.0.1",
|
feat(mode): exit_plan_mode + the ACP session-mode picker + scriptable review answers
Plan mode's stage 2 (RFC 2026-07-07-plan-mode). The exit tool: one
required plan argument (the durable log artifact), execute re-checks the
folded mode, then conducts the review over the user-interaction seam —
one single-select question (Approve / Keep planning) with free text open
— so an approval appends mode/set back to default in-turn and every
other outcome (keep-planning feedback verbatim, aborted, no provider)
returns the corrective isError with the mode unchanged. presentCall is a
generic card titled by the plan's first heading carrying the plan
markdown; over ACP the review rides the ask_user elicitation flow, in
the terminal the stdio prompt queue — no approval-seam dependency.
The ACP bridge maps the picker 1:1 onto ctx.modes (opportunistic, a
type-only peer edge): session/new + session/load advertise
availableModes/currentModeId, session/set_mode validates through set()
and echoes an optimistic current_mode_update (the pending mode IS the
selection; the logged mode/set lands at the boundary and, matching, is
not re-sent), and a session/event listener re-notifies on each logged
flip that differs from the last sent — the tool-driven exit updates the
picker. The feature matrix rows move from 'not modeled' to the
picker-to-modes / knobs-to-config-options division, with the ACP v2
removal direction recorded as a mechanical-migration risk.
The snapshot harness gains the setMode/setModeExpectError ops and a
scripted elicitationAnswers FIFO (cancel on exhaustion; a stray choice
string reaches the agent verbatim as a non-consenting custom answer, so
a scenario bug fails safe). The suite factory's header-pin requirement
now applies only to model-turn scenarios — a protocol-only suite has no
header content to anchor. examples/plan-acp-agent is the live
composition; its keyless modes-advertise scenario pins the wire surface
(advertisement, both set_mode round-trips, unknown-id rejection). The
recorded plan-mode approve/reject arc awaits a with-key recording
session; its texts are pinned at the unit tier meanwhile.
examples/AGENTS.md ceiling 653 → 680: the new example's required smoke
row does not fit the old budget.
2026-07-10 02:57:40 +08:00
|
|
|
"@deepseek-ai/dsh-user-interaction": "^0.0.1",
|
2026-07-20 22:13:59 +08:00
|
|
|
"cordis": "^4.0.0-rc.7"
|
2026-07-10 01:38:39 +08:00
|
|
|
},
|
2026-07-21 11:11:35 +08:00
|
|
|
"peerDependenciesMeta": {
|
|
|
|
|
"@deepseek-ai/dsh-commands": {
|
|
|
|
|
"optional": true
|
|
|
|
|
}
|
|
|
|
|
},
|
2026-07-10 01:38:39 +08:00
|
|
|
"devDependencies": {
|
|
|
|
|
"@deepseek-ai/dsh-agent": "workspace:^",
|
|
|
|
|
"@deepseek-ai/dsh-agent-loop": "workspace:^",
|
2026-07-10 20:26:59 +08:00
|
|
|
"@deepseek-ai/dsh-code-runtime": "workspace:^",
|
2026-07-21 11:11:35 +08:00
|
|
|
"@deepseek-ai/dsh-commands": "workspace:^",
|
2026-07-22 02:13:39 +08:00
|
|
|
"@deepseek-ai/dsh-invariants": "workspace:^",
|
2026-07-10 01:38:39 +08:00
|
|
|
"@deepseek-ai/dsh-llm": "workspace:^",
|
|
|
|
|
"@deepseek-ai/dsh-session": "workspace:^",
|
|
|
|
|
"@deepseek-ai/dsh-system-prompt": "workspace:^",
|
|
|
|
|
"@deepseek-ai/dsh-tools": "workspace:^",
|
feat(mode): exit_plan_mode + the ACP session-mode picker + scriptable review answers
Plan mode's stage 2 (RFC 2026-07-07-plan-mode). The exit tool: one
required plan argument (the durable log artifact), execute re-checks the
folded mode, then conducts the review over the user-interaction seam —
one single-select question (Approve / Keep planning) with free text open
— so an approval appends mode/set back to default in-turn and every
other outcome (keep-planning feedback verbatim, aborted, no provider)
returns the corrective isError with the mode unchanged. presentCall is a
generic card titled by the plan's first heading carrying the plan
markdown; over ACP the review rides the ask_user elicitation flow, in
the terminal the stdio prompt queue — no approval-seam dependency.
The ACP bridge maps the picker 1:1 onto ctx.modes (opportunistic, a
type-only peer edge): session/new + session/load advertise
availableModes/currentModeId, session/set_mode validates through set()
and echoes an optimistic current_mode_update (the pending mode IS the
selection; the logged mode/set lands at the boundary and, matching, is
not re-sent), and a session/event listener re-notifies on each logged
flip that differs from the last sent — the tool-driven exit updates the
picker. The feature matrix rows move from 'not modeled' to the
picker-to-modes / knobs-to-config-options division, with the ACP v2
removal direction recorded as a mechanical-migration risk.
The snapshot harness gains the setMode/setModeExpectError ops and a
scripted elicitationAnswers FIFO (cancel on exhaustion; a stray choice
string reaches the agent verbatim as a non-consenting custom answer, so
a scenario bug fails safe). The suite factory's header-pin requirement
now applies only to model-turn scenarios — a protocol-only suite has no
header content to anchor. examples/plan-acp-agent is the live
composition; its keyless modes-advertise scenario pins the wire surface
(advertisement, both set_mode round-trips, unknown-id rejection). The
recorded plan-mode approve/reject arc awaits a with-key recording
session; its texts are pinned at the unit tier meanwhile.
examples/AGENTS.md ceiling 653 → 680: the new example's required smoke
row does not fit the old budget.
2026-07-10 02:57:40 +08:00
|
|
|
"@deepseek-ai/dsh-user-interaction": "workspace:^",
|
2026-07-20 22:13:59 +08:00
|
|
|
"cordis": "^4.0.0-rc.7"
|
2026-07-10 01:38:39 +08:00
|
|
|
}
|
|
|
|
|
}
|