Skip to content

Commit fbab6dd

Browse files
authored
chore(deps): upgrade dsh peers to 0.1.2-alpha.4 (#72)
1 parent abcc3ab commit fbab6dd

13 files changed

Lines changed: 605 additions & 644 deletions

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
[![npm](https://img.shields.io/npm/dt/dsh-advisor)](https://www.npmjs.com/package/dsh-advisor)
66
[![license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
77
![node](https://img.shields.io/badge/node-%5E22.19%20%7C%7C%20%3E%3D24-339933.svg)
8-
![dsh](https://img.shields.io/badge/dsh-0.1.2--alpha.3-4B32C3.svg)
8+
![dsh](https://img.shields.io/badge/dsh-0.1.2--alpha.4-4B32C3.svg)
99
![dsh tui](https://img.shields.io/badge/dsh%20tui-compatible-4B32C3.svg)
1010
[![dshfind](https://dshfind.com/api/badge/omdsh-dev/dsh-advisor)](https://dshfind.com/plugins/omdsh-dev/dsh-advisor?ref=badge)
1111

README.zh.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
[![npm](https://img.shields.io/npm/dt/dsh-advisor)](https://www.npmjs.com/package/dsh-advisor)
66
[![license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
77
![node](https://img.shields.io/badge/node-%5E22.19%20%7C%7C%20%3E%3D24-339933.svg)
8-
![dsh](https://img.shields.io/badge/dsh-0.1.2--alpha.3-4B32C3.svg)
8+
![dsh](https://img.shields.io/badge/dsh-0.1.2--alpha.4-4B32C3.svg)
99
![dsh tui](https://img.shields.io/badge/dsh%20tui-compatible-4B32C3.svg)
1010
[![dshfind](https://dshfind.com/api/badge/omdsh-dev/dsh-advisor?lang=zh)](https://dshfind.com/zh/plugins/omdsh-dev/dsh-advisor?ref=badge)
1111

package.json

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -51,26 +51,26 @@
5151
},
5252
"peerDependencies": {
5353
"@deepseek-ai/cordis": "^4.0.2",
54-
"@deepseek-ai/dsh-agent": "^0.1.2-alpha.3",
55-
"@deepseek-ai/dsh-api-gateway": "^0.1.2-alpha.3",
56-
"@deepseek-ai/dsh-api-remotes": "^0.1.2-alpha.3",
57-
"@deepseek-ai/dsh-api-settings-controller": "^0.1.2-alpha.3",
58-
"@deepseek-ai/dsh-api-session-controller": "^0.1.2-alpha.3",
59-
"@deepseek-ai/dsh-client-connection": "^0.1.2-alpha.3",
60-
"@deepseek-ai/dsh-client-locale": "^0.1.2-alpha.3",
61-
"@deepseek-ai/dsh-client-store": "^0.1.2-alpha.3",
62-
"@deepseek-ai/dsh-client-ui-settings-plugins": "^0.1.2-alpha.3",
63-
"@deepseek-ai/dsh-client-ui-primitives": "^0.1.2-alpha.3",
64-
"@deepseek-ai/dsh-client-ui-renderer": "^0.1.2-alpha.3",
65-
"@deepseek-ai/dsh-client-ui-settings": "^0.1.2-alpha.3",
66-
"@deepseek-ai/dsh-client-ui-slots": "^0.1.2-alpha.3",
67-
"@deepseek-ai/dsh-commands": "^0.1.2-alpha.3",
68-
"@deepseek-ai/dsh-llm": "^0.1.2-alpha.3",
69-
"@deepseek-ai/dsh-session": "^0.1.2-alpha.3",
70-
"@deepseek-ai/dsh-settings": "^0.1.2-alpha.3",
71-
"@deepseek-ai/dsh-timeout": "^0.1.2-alpha.3",
72-
"@deepseek-ai/dsh-typert-protocol": "^0.1.2-alpha.3",
73-
"@deepseek-ai/dsh-typert-registry": "^0.1.2-alpha.3",
54+
"@deepseek-ai/dsh-agent": "^0.1.2-alpha.4",
55+
"@deepseek-ai/dsh-api-gateway": "^0.1.2-alpha.4",
56+
"@deepseek-ai/dsh-api-remotes": "^0.1.2-alpha.4",
57+
"@deepseek-ai/dsh-api-settings-controller": "^0.1.2-alpha.4",
58+
"@deepseek-ai/dsh-api-session-controller": "^0.1.2-alpha.4",
59+
"@deepseek-ai/dsh-client-connection": "^0.1.2-alpha.4",
60+
"@deepseek-ai/dsh-client-locale": "^0.1.2-alpha.4",
61+
"@deepseek-ai/dsh-client-store": "^0.1.2-alpha.4",
62+
"@deepseek-ai/dsh-client-ui-settings-plugins": "^0.1.2-alpha.4",
63+
"@deepseek-ai/dsh-client-ui-primitives": "^0.1.2-alpha.4",
64+
"@deepseek-ai/dsh-client-ui-renderer": "^0.1.2-alpha.4",
65+
"@deepseek-ai/dsh-client-ui-settings": "^0.1.2-alpha.4",
66+
"@deepseek-ai/dsh-client-ui-slots": "^0.1.2-alpha.4",
67+
"@deepseek-ai/dsh-commands": "^0.1.2-alpha.4",
68+
"@deepseek-ai/dsh-llm": "^0.1.2-alpha.4",
69+
"@deepseek-ai/dsh-session": "^0.1.2-alpha.4",
70+
"@deepseek-ai/dsh-settings": "^0.1.2-alpha.4",
71+
"@deepseek-ai/dsh-timeout": "^0.1.2-alpha.4",
72+
"@deepseek-ai/dsh-typert-protocol": "^0.1.2-alpha.4",
73+
"@deepseek-ai/dsh-typert-registry": "^0.1.2-alpha.4",
7474
"react": "^18.2.0",
7575
"@deepseek-ai/schemastery": "^3.18.2"
7676
},

pnpm-lock.yaml

Lines changed: 490 additions & 541 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pnpm-workspace.yaml

Lines changed: 63 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -17,67 +17,67 @@ minimumReleaseAgeExclude:
1717
- '@deepseek-ai/cordis-plugin-loader@1.0.3'
1818
- '@deepseek-ai/cordis@4.0.2'
1919
- '@deepseek-ai/cosmokit@1.8.3'
20-
- '@deepseek-ai/dsh-agent-default-model@0.1.2-alpha.3'
21-
- '@deepseek-ai/dsh-agent-presets@0.1.2-alpha.3'
22-
- '@deepseek-ai/dsh-agent@0.1.2-alpha.3'
23-
- '@deepseek-ai/dsh-api-gateway@0.1.2-alpha.3'
24-
- '@deepseek-ai/dsh-api-remotes@0.1.2-alpha.3'
25-
- '@deepseek-ai/dsh-api-settings-controller@0.1.2-alpha.3'
26-
- '@deepseek-ai/dsh-api-session-controller@0.1.2-alpha.3'
27-
- '@deepseek-ai/dsh-atomic-write@0.1.2-alpha.3'
28-
- '@deepseek-ai/dsh-attachment@0.1.2-alpha.3'
29-
- '@deepseek-ai/dsh-brand@0.1.2-alpha.3'
30-
- '@deepseek-ai/dsh-client-connection@0.1.2-alpha.3'
31-
- '@deepseek-ai/dsh-client-locale@0.1.2-alpha.3'
32-
- '@deepseek-ai/dsh-client-store@0.1.2-alpha.3'
33-
- '@deepseek-ai/dsh-client-ui-primitives@0.1.2-alpha.3'
34-
- '@deepseek-ai/dsh-client-ui-renderer@0.1.2-alpha.3'
35-
- '@deepseek-ai/dsh-client-ui-settings-plugins@0.1.2-alpha.3'
36-
- '@deepseek-ai/dsh-client-ui-settings@0.1.2-alpha.3'
37-
- '@deepseek-ai/dsh-client-ui-slots@0.1.2-alpha.3'
38-
- '@deepseek-ai/dsh-code-runtime@0.1.2-alpha.3'
39-
- '@deepseek-ai/dsh-commands@0.1.2-alpha.3'
40-
- '@deepseek-ai/dsh-compaction@0.1.2-alpha.3'
41-
- '@deepseek-ai/dsh-cordis-host-runner@0.1.2-alpha.3'
42-
- '@deepseek-ai/dsh-credentials@0.1.2-alpha.3'
43-
- '@deepseek-ai/dsh-deque@0.1.2-alpha.3'
44-
- '@deepseek-ai/dsh-file-reference@0.1.2-alpha.3'
45-
- '@deepseek-ai/dsh-goal@0.1.2-alpha.3'
46-
- '@deepseek-ai/dsh-home-paths@0.1.2-alpha.3'
47-
- '@deepseek-ai/dsh-host-directory-picker@0.1.2-alpha.3'
48-
- '@deepseek-ai/dsh-host-plugin-inventory@0.1.2-alpha.3'
49-
- '@deepseek-ai/dsh-host-webserver@0.1.2-alpha.3'
50-
- '@deepseek-ai/dsh-invariants@0.1.2-alpha.3'
51-
- '@deepseek-ai/dsh-jobs@0.1.2-alpha.3'
52-
- '@deepseek-ai/dsh-llm-retry@0.1.2-alpha.3'
53-
- '@deepseek-ai/dsh-llm@0.1.2-alpha.3'
54-
- '@deepseek-ai/dsh-message-feedback@0.1.2-alpha.3'
55-
- '@deepseek-ai/dsh-native-command@0.1.2-alpha.3'
56-
- '@deepseek-ai/dsh-output-retention@0.1.2-alpha.3'
57-
- '@deepseek-ai/dsh-scope@0.1.2-alpha.3'
58-
- '@deepseek-ai/dsh-session-persistence@0.1.2-alpha.3'
59-
- '@deepseek-ai/dsh-session-projection-cache@0.1.2-alpha.3'
60-
- '@deepseek-ai/dsh-session-projection@0.1.2-alpha.3'
61-
- '@deepseek-ai/dsh-session-query@0.1.2-alpha.3'
62-
- '@deepseek-ai/dsh-session-reference@0.1.2-alpha.3'
63-
- '@deepseek-ai/dsh-session-title@0.1.2-alpha.3'
64-
- '@deepseek-ai/dsh-session@0.1.2-alpha.3'
65-
- '@deepseek-ai/dsh-settings@0.1.2-alpha.3'
66-
- '@deepseek-ai/dsh-skill@0.1.2-alpha.3'
67-
- '@deepseek-ai/dsh-storage-domain@0.1.2-alpha.3'
68-
- '@deepseek-ai/dsh-storage@0.1.2-alpha.3'
69-
- '@deepseek-ai/dsh-subagent@0.1.2-alpha.3'
70-
- '@deepseek-ai/dsh-system-prompt@0.1.2-alpha.3'
71-
- '@deepseek-ai/dsh-timeout@0.1.2-alpha.3'
72-
- '@deepseek-ai/dsh-tools@0.1.2-alpha.3'
73-
- '@deepseek-ai/dsh-typert-protocol@0.1.2-alpha.3'
74-
- '@deepseek-ai/dsh-typert-registry@0.1.2-alpha.3'
75-
- '@deepseek-ai/dsh-user-approval@0.1.2-alpha.3'
76-
- '@deepseek-ai/dsh-user-questions@0.1.2-alpha.3'
77-
- '@deepseek-ai/dsh-util-crypto@0.1.2-alpha.3'
78-
- '@deepseek-ai/dsh-util-values@0.1.2-alpha.3'
79-
- '@deepseek-ai/dsh-workspace@0.1.2-alpha.3'
20+
- '@deepseek-ai/dsh-agent-default-model@0.1.2-alpha.4'
21+
- '@deepseek-ai/dsh-agent-presets@0.1.2-alpha.4'
22+
- '@deepseek-ai/dsh-agent@0.1.2-alpha.4'
23+
- '@deepseek-ai/dsh-api-gateway@0.1.2-alpha.4'
24+
- '@deepseek-ai/dsh-api-remotes@0.1.2-alpha.4'
25+
- '@deepseek-ai/dsh-api-settings-controller@0.1.2-alpha.4'
26+
- '@deepseek-ai/dsh-api-session-controller@0.1.2-alpha.4'
27+
- '@deepseek-ai/dsh-atomic-write@0.1.2-alpha.4'
28+
- '@deepseek-ai/dsh-attachment@0.1.2-alpha.4'
29+
- '@deepseek-ai/dsh-brand@0.1.2-alpha.4'
30+
- '@deepseek-ai/dsh-client-connection@0.1.2-alpha.4'
31+
- '@deepseek-ai/dsh-client-locale@0.1.2-alpha.4'
32+
- '@deepseek-ai/dsh-client-store@0.1.2-alpha.4'
33+
- '@deepseek-ai/dsh-client-ui-primitives@0.1.2-alpha.4'
34+
- '@deepseek-ai/dsh-client-ui-renderer@0.1.2-alpha.4'
35+
- '@deepseek-ai/dsh-client-ui-settings-plugins@0.1.2-alpha.4'
36+
- '@deepseek-ai/dsh-client-ui-settings@0.1.2-alpha.4'
37+
- '@deepseek-ai/dsh-client-ui-slots@0.1.2-alpha.4'
38+
- '@deepseek-ai/dsh-code-runtime@0.1.2-alpha.4'
39+
- '@deepseek-ai/dsh-commands@0.1.2-alpha.4'
40+
- '@deepseek-ai/dsh-compaction@0.1.2-alpha.4'
41+
- '@deepseek-ai/dsh-cordis-host-runner@0.1.2-alpha.4'
42+
- '@deepseek-ai/dsh-credentials@0.1.2-alpha.4'
43+
- '@deepseek-ai/dsh-deque@0.1.2-alpha.4'
44+
- '@deepseek-ai/dsh-file-reference@0.1.2-alpha.4'
45+
- '@deepseek-ai/dsh-goal@0.1.2-alpha.4'
46+
- '@deepseek-ai/dsh-home-paths@0.1.2-alpha.4'
47+
- '@deepseek-ai/dsh-host-directory-picker@0.1.2-alpha.4'
48+
- '@deepseek-ai/dsh-host-plugin-inventory@0.1.2-alpha.4'
49+
- '@deepseek-ai/dsh-host-webserver@0.1.2-alpha.4'
50+
- '@deepseek-ai/dsh-invariants@0.1.2-alpha.4'
51+
- '@deepseek-ai/dsh-jobs@0.1.2-alpha.4'
52+
- '@deepseek-ai/dsh-llm-retry@0.1.2-alpha.4'
53+
- '@deepseek-ai/dsh-llm@0.1.2-alpha.4'
54+
- '@deepseek-ai/dsh-message-feedback@0.1.2-alpha.4'
55+
- '@deepseek-ai/dsh-native-command@0.1.2-alpha.4'
56+
- '@deepseek-ai/dsh-output-retention@0.1.2-alpha.4'
57+
- '@deepseek-ai/dsh-scope@0.1.2-alpha.4'
58+
- '@deepseek-ai/dsh-session-persistence@0.1.2-alpha.4'
59+
- '@deepseek-ai/dsh-session-projection-cache@0.1.2-alpha.4'
60+
- '@deepseek-ai/dsh-session-projection@0.1.2-alpha.4'
61+
- '@deepseek-ai/dsh-session-query@0.1.2-alpha.4'
62+
- '@deepseek-ai/dsh-session-reference@0.1.2-alpha.4'
63+
- '@deepseek-ai/dsh-session-title@0.1.2-alpha.4'
64+
- '@deepseek-ai/dsh-session@0.1.2-alpha.4'
65+
- '@deepseek-ai/dsh-settings@0.1.2-alpha.4'
66+
- '@deepseek-ai/dsh-skill@0.1.2-alpha.4'
67+
- '@deepseek-ai/dsh-storage-domain@0.1.2-alpha.4'
68+
- '@deepseek-ai/dsh-storage@0.1.2-alpha.4'
69+
- '@deepseek-ai/dsh-subagent@0.1.2-alpha.4'
70+
- '@deepseek-ai/dsh-system-prompt@0.1.2-alpha.4'
71+
- '@deepseek-ai/dsh-timeout@0.1.2-alpha.4'
72+
- '@deepseek-ai/dsh-tools@0.1.2-alpha.4'
73+
- '@deepseek-ai/dsh-typert-protocol@0.1.2-alpha.4'
74+
- '@deepseek-ai/dsh-typert-registry@0.1.2-alpha.4'
75+
- '@deepseek-ai/dsh-user-approval@0.1.2-alpha.4'
76+
- '@deepseek-ai/dsh-user-questions@0.1.2-alpha.4'
77+
- '@deepseek-ai/dsh-util-crypto@0.1.2-alpha.4'
78+
- '@deepseek-ai/dsh-util-values@0.1.2-alpha.4'
79+
- '@deepseek-ai/dsh-workspace@0.1.2-alpha.4'
8080
- '@deepseek-ai/schemastery@3.18.2'
81-
- '@deepseek-ai/dsh-tool-todo@0.1.2-alpha.3'
82-
- '@deepseek-ai/dsh-util-time@0.1.2-alpha.3'
83-
- '@deepseek-ai/dsh-util-workspace-path@0.1.2-alpha.3'
81+
- '@deepseek-ai/dsh-tool-todo@0.1.2-alpha.4'
82+
- '@deepseek-ai/dsh-util-time@0.1.2-alpha.4'
83+
- '@deepseek-ai/dsh-util-workspace-path@0.1.2-alpha.4'

src/commands.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ function createAdvisorCommandHandler(controller: AdvisorCommandController) {
309309
const before = controller.getStatus(sessionId)
310310
const next = !before.enabled
311311
// The KD-5 seed length is only meaningful when enabling.
312-
controller.setEnabled(sessionId, next, next ? invocation.agent.session.events.length : undefined)
312+
controller.setEnabled(sessionId, next, next ? invocation.agent.session.seq : undefined)
313313
if (!next) return { kind: 'success', text: 'Advisor off for this session.' }
314314
// Post-flip status: the reply carries the S4 gate caveat when the
315315
// toggle-to-on flip trips the gate (qc2 W-2 / qc3 I-2).
@@ -326,7 +326,7 @@ function createAdvisorCommandHandler(controller: AdvisorCommandController) {
326326
if (before.enabled && !needsRecovery) {
327327
return { kind: 'success', text: 'Advisor is already on for this session.' }
328328
}
329-
controller.setEnabled(sessionId, true, invocation.agent.session.events.length)
329+
controller.setEnabled(sessionId, true, invocation.agent.session.seq)
330330
// Reply from the POST-flip status: when the override flip trips the
331331
// S4 gate (config-off + missing provider/model), the reply must say
332332
// the advisor did not start and why, not a bare "Advisor on" (qc2

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ export function apply(ctx: Context, config: AdvisorConfig) {
375375
// symmetry restored; both dispose listeners are documented idempotent
376376
// (a runtime is disposed at most once, whichever signal lands first).
377377
ctx.on('session/event', (session: Session, event: SessionEvent) => {
378-
observer.handleEvent(session.id, session.events, event)
378+
observer.handleEvent(session.id, session.snapshotEvents(), event)
379379
}, { global: true })
380380
// Per-session runtime lifecycle. Spec KD-5(c) pins `agent/disposed`;
381381
// `session/disposed` is the store-level pair (both are idempotent — a

tests/advisor-runtime.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -973,7 +973,7 @@ describe('AdvisorRuntime — composed with a real LlmRuntime + registered adapte
973973

974974
// A full stepped turn would otherwise render a delta and dispatch a call.
975975
const events = buildEvents(minimalTurn())
976-
const session = { id: 's1', events } as unknown as Session
976+
const session = { id: 's1', snapshotEvents: () => events } as unknown as Session
977977
for (const event of events) {
978978
ctx.emit('session/event', session, event)
979979
}

tests/commands.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ import type {
4646
// Test doubles
4747
// ---------------------------------------------------------------------------
4848

49-
/** Minimal fake `Agent` — the handler only reads `agent.session.id`/events. */
49+
/** Minimal fake `Agent` — the handler only reads `agent.session.id`/`seq`. */
5050
function fakeAgent(sessionId = 'session-1'): Agent {
51-
return { session: { id: sessionId, events: [] } } as unknown as Agent
51+
return { session: { id: sessionId, seq: 0 } } as unknown as Agent
5252
}
5353

5454
/** Invoke one handler with the exact dsh `CommandInvocation` shape. */

tests/delivery.test.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -316,10 +316,13 @@ describe('AdvisorDelivery — contained throw through the routing seam (T4 F1)',
316316
// SessionTranscriptObserver — delivery hooks (turn counting + latch reset)
317317
// ---------------------------------------------------------------------------
318318

319+
/** Synthetic replace op — dsh brands seqs (`SessionSeq`), compile-time only here. */
320+
type ReplaceSurfaceOp = { op: 'replace'; start: number; end: number }
321+
319322
interface EventSpec {
320323
type: string
321324
data: unknown
322-
surfaceOp?: SurfaceOp
325+
surfaceOp?: SurfaceOp | ReplaceSurfaceOp
323326
sourceEventSeqs?: number[]
324327
}
325328

@@ -343,7 +346,7 @@ const text = (value: string): ContentBlock => ({ type: 'text', text: value })
343346
function userMessage(
344347
value: string,
345348
source: MessageSource = { kind: 'user' },
346-
surfaceOp: SurfaceOp = 'append',
349+
surfaceOp: SurfaceOp | ReplaceSurfaceOp = 'append',
347350
sourceEventSeqs?: number[],
348351
): EventSpec {
349352
return {

0 commit comments

Comments
 (0)