@crazx/dsh-api-session-controller 0.1.5-rc.2.zw.1 → 0.1.6-alpha.1.zw.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.i18n.yaml +2 -2
- package/README.md +5 -1
- package/README.zh.md +5 -1
- package/lib/client.js +4 -3
- package/lib/index.js +2 -2
- package/lib/typert.host.js +65 -41
- package/lib/typert.remote-client.js +28 -16
- package/lib/types/client/time-zone.d.ts +1 -1
- package/lib/types/client/time-zone.js +1 -1
- package/lib/types/commands.js +3 -4
- package/lib/types/history.js +1 -0
- package/lib/types/index.js +1 -0
- package/lib/types/skill-catalog.js +1 -0
- package/lib/types/types.d.ts +2 -0
- package/package.json +72 -69
package/README.i18n.yaml
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
|
3
3
|
# after editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write packages/api/session-controller/README.md
|
|
5
|
-
README.md:
|
|
6
|
-
README.zh.md:
|
|
5
|
+
README.md: 9b2cdeed600cd597ecfab076fe98a3a334533ba8
|
|
6
|
+
README.zh.md: 04ed7808dc7ea581b489921f88349479d46d8037
|
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ English | [中文](README.zh.md)
|
|
|
26
26
|
|
|
27
27
|
History pages and follow opening snapshots carry one `{ type: 'event', event: SessionWireEvent }` record per durable Session event. The Client retains each accepted record as one durable `SessionEventLikeEntry`; Assistant token boundaries remain inside the compact stream on `assistant/message` or `assistant/attempt`. Tool arguments, result content, failures, and `tool/result.data.meta` pass through unchanged; the controller does not resolve a Tool definition, run a presenter, or attach UI data.
|
|
28
28
|
|
|
29
|
-
The Client journal validates exact V3 event envelopes before publishing follow snapshots, live entries, or history pages. It reuses the browser-safe Session validators for required surface markers, exact replacement endpoints, earlier unique source seqs, embedded Assistant
|
|
29
|
+
The Client journal validates exact V3 event envelopes before publishing follow snapshots, live entries, or history pages. It reuses the browser-safe Session validators for required surface markers, exact replacement endpoints, earlier unique source seqs, embedded Assistant provider metadata, request-header omissions, and tool-error consistency. Invalid records fail without field stripping or normalization; range membership and source existence remain durable-log checks on the Host.
|
|
30
30
|
|
|
31
31
|
Each endpoint states its activation policy. List reads only stored headers and projection-cache rows: it never calls per-session stat or opens a cold Session body. A current-format cache identity may supply every list hint; a lifecycle-matching predecessor cache may supply only its version-compatible title as a stale display fact, never as an authoritative fold seed. Search, attachment, history pages, log following, skill discovery, and workspace-path opening can inspect persistence without activating an Agent; `canOpenWorkspacePath()` reports native-opening availability without addressing a Session. Queue mutation and cancellation require live state; model, rename, prompt, and file-reference operations may resolve or resume an ordinary Session. Prompt rejects content with neither non-whitespace text nor an attachment before resolving the Agent or appending Session events; queue edits accept only non-empty text content. Prompt admission consumes opaque receipts from the injected [`fileUploads`](../../client/file-upload/README.md) Host service and resolves every same-Agent receipt before sending the complete ordered content list through `ctx.attachments`. Prompt retries whose `requestId` is already queued or logged return the original acceptance without inserting another message. Create and fork are the only operations that create a new Agent directly. The service applies one preset-aware resume policy and subagent ownership fence to its own methods and to the Typert Agent and Session lookups used by other Remote namespaces. Queue mutation has one narrow exception: a live child whose current projected identity is continuable and comes from its own non-seed suffix accepts the ordinary Edit, Remove, and QueueDock Steer actions across both inbox destinations. One-shot, missing, unknown, corrupt, seed-only, or cold children remain rejected without resume. The skill catalog uses a live Agent when present or the recorded preset's standing scope when cold, so listing never starts an Agent. The authenticated delivery routes use `workspaceDesktop()` for the serving Host name and file-manager behavior. `openWorkspacePath({ path, action: "reveal" })` delegates file-manager navigation to the native adapter; omitting `action` opens the default application.
|
|
32
32
|
|
|
@@ -35,6 +35,10 @@ The Client adapter exposes `SessionEventStream`, a Gateway `RemoteJournalStream`
|
|
|
35
35
|
The Session object also carries local submission echoes: `session.beginSubmission` inserts one into `SessionSnapshot.pendingSubmissions` synchronously, before the caller serializes and prompts, so a conversation UI can show the message on the submit click's own frame. The echo stores ordered image previews and durable file references. Session derives its `transcript`, `queued`, or `steering` placement from the current running state and requested delivery mode, then retains that placement while serialization is in flight. The prompt's `requestId` is the correlation identity: the Host echoes it as the durable user source's `rpcId`, and queue occurrences project it as `SessionQueuedItem.rpcId`. An echo retires one animation frame after its durable event or queue occurrence is observed, immediately when its identified prompt fails or is abandoned, and as failed on disposal. Each retirement fires `onRetire` exactly once; an observed retirement includes the ordered durable attachment references so the composer can release successful cards while preserving failed drafts. Echoes are Client memory only; reload and reconnect rebuild the conversation from durable events alone.
|
|
36
36
|
|
|
37
37
|
|
|
38
|
+
The user-invocable `skills/list` metadata includes the winning provider’s optional instruction-file `path`. The composer can preview that file without loading every skill body or activating a cold Agent.
|
|
39
|
+
|
|
40
|
+
Fork copies history through the selected completed turn, including its `turn/end`. Events after that point, including queued input and model-setting changes, are excluded. An omitted or past-end anchor selects the last completed turn; an anchor inside an unfinished turn is rejected.
|
|
41
|
+
|
|
38
42
|
<a id="session-media-references"></a>
|
|
39
43
|
## Session media references
|
|
40
44
|
|
package/README.zh.md
CHANGED
|
@@ -26,7 +26,7 @@ kind: "package-reference"
|
|
|
26
26
|
|
|
27
27
|
历史页与 follow opening 快照为每个持久 Session 事件携带一条 `{ type: 'event', event: SessionWireEvent }` record。Client 把每条已接受 record 保留为一个持久 `SessionEventLikeEntry`;Assistant token 边界保留在 `assistant/message` 或 `assistant/attempt` 的紧凑流内。工具参数、结果内容、失败信息和 `tool/result.data.meta` 原样通过;控制器不解析工具定义、不运行展示转换器,也不附加 UI 数据。
|
|
28
28
|
|
|
29
|
-
Client journal 在发布 follow 快照、live entry 或历史页之前验证精确的 V3 事件 envelope。它复用浏览器安全的 Session validator,检查必需的 surface marker、精确的 replacement endpoint、更早且唯一的 source seq、内嵌 Assistant
|
|
29
|
+
Client journal 在发布 follow 快照、live entry 或历史页之前验证精确的 V3 事件 envelope。它复用浏览器安全的 Session validator,检查必需的 surface marker、精确的 replacement endpoint、更早且唯一的 source seq、内嵌 Assistant 提供方元数据、request header 可选字段的省略规则以及工具错误一致性。无效 record 直接失败,不删除字段或归一化;范围成员与来源存在性仍由 Host 的持久日志检查。
|
|
30
30
|
|
|
31
31
|
每个 endpoint 都声明自己的激活策略。列表只读取持久化 header 与 projection cache row,绝不调用逐 Session stat 或打开冷 Session body。当前格式 cache identity 可以提供全部列表 hint;生命周期匹配的 predecessor cache 只能提供版本兼容的 title,作为可能过时的展示事实,绝不能作为权威 fold seed。搜索、附件、历史页、日志跟随、skill 发现和工作区路径打开可以在不激活 Agent 的情况下检查 persistence;`canOpenWorkspacePath()` 无需指定 Session 即可报告原生打开能力。queue 变更与取消要求 live 状态;模型、重命名、prompt 和文件引用操作可以解析或恢复普通 Session。提示词会在解析 Agent 或追加 Session 事件前,拒绝既没有非空白文本也没有附件的 content;queue edit 只接受非空文本 content。prompt 准入从注入的 [`fileUploads`](../../client/file-upload/README.zh.md) Host 服务取得不透明凭证,在把完整有序内容列表交给 `ctx.attachments` 前解析每个属于同一 Agent 的凭证。`requestId` 已进入 queue 或日志时,prompt 重试直接返回原来的接受结果,不会重复插入消息。只有 create 与 fork 会直接创建新 Agent。该服务把同一套感知 preset 的恢复策略和 subagent ownership fence 同时用于自身方法,以及其他 Remote namespace 使用的 Typert Agent 与 Session lookup。Queue 变更只有一个狭窄例外:当前 projection identity 为 continuable 且来自自身非 seed suffix 的在线 child,可以在两个 inbox 目标上使用普通 Edit、Remove 与 QueueDock Steer action。One-shot、缺失、未知、损坏、仅含 seed identity 或冷 child 继续被拒绝,且不会恢复。skill 目录优先使用已有 live Agent,否则使用所记录 preset 的常驻 scope,因此列表查询绝不会启动 Agent。经过鉴权的文件交付路由通过 `workspaceDesktop()` 获取提供服务的 Host 名称和文件管理器行为。`openWorkspacePath({ path, action: "reveal" })` 将文件管理器导航委托给原生适配器;省略 `action` 时打开默认应用。
|
|
32
32
|
|
|
@@ -35,6 +35,10 @@ Client 适配器提供 `SessionEventStream`,即绑定到一个普通 Session
|
|
|
35
35
|
Session 对象还承载本地提交回显:`session.beginSubmission` 在调用方序列化与提示词之前,同步把一条回显写入 `SessionSnapshot.pendingSubmissions`,会话 UI 因此能在点击提交的当帧显示消息。回显按顺序存放图片预览与持久文件引用。Session 根据当前运行状态与请求的投递模式推导其 `transcript`、`queued` 或 `steering` 位置,并在序列化期间保留该位置。提示词的 `requestId` 是关联标识:Host 把它回显为 durable user source 的 `rpcId`,queue occurrence 也把它投影为 `SessionQueuedItem.rpcId`。回显在观察到其 durable event 或 queue occurrence 后延迟一个动画帧退休,带标识的提示词失败或被放弃时立即退休,销毁时按 failed 退休。每次退休恰好触发一次 `onRetire`;observed 退休还会携带有序的持久附件引用,让 composer 释放成功卡片并保留失败草稿。回显只存在于 Client 内存;刷新与重连只从持久事件重建会话。
|
|
36
36
|
|
|
37
37
|
|
|
38
|
+
面向用户调用的 `skills/list` 元数据包含胜出提供方可选的指令文件 `path`。输入框可据此预览文件,无需加载每个 skill 的正文或激活冷态 Agent。
|
|
39
|
+
|
|
40
|
+
分叉复制截至选中已结束轮次的历史,并包含其 `turn/end`。该位置之后的事件均被排除,包括排队输入和模型设置变更。省略锚点或锚点超出日志末尾时,选择最后一个已结束轮次;位于未结束轮次内的锚点会被拒绝。
|
|
41
|
+
|
|
38
42
|
<a id="session-media-references"></a>
|
|
39
43
|
## 会话媒体引用
|
|
40
44
|
|
package/lib/client.js
CHANGED
|
@@ -134,6 +134,7 @@ window.__ModuleLoader__.load({
|
|
|
134
134
|
"goal/change",
|
|
135
135
|
"hook/invoked",
|
|
136
136
|
"hook/result",
|
|
137
|
+
"image/offload",
|
|
137
138
|
"llm/retry",
|
|
138
139
|
"llm/retry-started",
|
|
139
140
|
"model/selection",
|
|
@@ -244,7 +245,7 @@ window.__ModuleLoader__.load({
|
|
|
244
245
|
return op;
|
|
245
246
|
}
|
|
246
247
|
/** Validate cited source-event seqs against prior log entries and the replacement range. */
|
|
247
|
-
function
|
|
248
|
+
function assertSourceEventReferences(event, shadowedSeqs) {
|
|
248
249
|
const raw = event.sourceEventSeqs;
|
|
249
250
|
if (event.type === "assistant/message" && raw !== void 0) throw new Error("assistant/message embeds its source stream and cannot carry sourceEventSeqs");
|
|
250
251
|
const sources = /* @__PURE__ */ new Set();
|
|
@@ -273,7 +274,7 @@ window.__ModuleLoader__.load({
|
|
|
273
274
|
function validateSurfaceMetadata(event) {
|
|
274
275
|
const op = surfaceOpOf(event);
|
|
275
276
|
if (op !== void 0 && op !== "append" && (op.startSeq >= event.seq || op.endSeq >= event.seq)) throw new Error(`surface replace at seq ${event.seq}: startSeq and endSeq must reference earlier events`);
|
|
276
|
-
if (op !== void 0)
|
|
277
|
+
if (op !== void 0) assertSourceEventReferences(event, []);
|
|
277
278
|
return op;
|
|
278
279
|
}
|
|
279
280
|
//#endregion
|
|
@@ -938,7 +939,7 @@ window.__ModuleLoader__.load({
|
|
|
938
939
|
};
|
|
939
940
|
//#endregion
|
|
940
941
|
//#region lib/types/client/time-zone.js
|
|
941
|
-
/** Browser-owned time-zone sampling for prompt RPC
|
|
942
|
+
/** Browser-owned time-zone sampling for one prompt RPC. */
|
|
942
943
|
/**
|
|
943
944
|
* Resolve the current browser IANA zone for one outbound operation.
|
|
944
945
|
* @returns The browser-provided canonical zone.
|
package/lib/index.js
CHANGED
|
@@ -698,8 +698,7 @@ var SessionCommandController = class {
|
|
|
698
698
|
const lastSeq = source.events.at(-1)?.seq ?? -1;
|
|
699
699
|
const boundary = (atSeq === void 0 ? void 0 : source.events.find((event) => event.type === "turn/end" && event.seq >= atSeq)) ?? (atSeq === void 0 || atSeq > lastSeq ? source.events.findLast((event) => event.type === "turn/end") : void 0);
|
|
700
700
|
if (boundary === void 0) throw new RemoteError("session/fork-unavailable", atSeq !== void 0 && atSeq <= lastSeq ? `session "${request.sessionId}" has not completed the turn containing event ${String(atSeq)}` : `session "${request.sessionId}" has no completed turn to fork from`, { sessionId: request.sessionId });
|
|
701
|
-
|
|
702
|
-
while (cut < source.events.length && source.events[cut]?.type !== "turn/start") cut = SessionLogOffset(cut + 1);
|
|
701
|
+
const cut = SessionLogOffset(boundary.seq + 1);
|
|
703
702
|
let workspace;
|
|
704
703
|
try {
|
|
705
704
|
workspace = await this.forkWorkspace(source.header);
|
|
@@ -2296,6 +2295,7 @@ let SessionSkillCatalog = (() => {
|
|
|
2296
2295
|
scope
|
|
2297
2296
|
})).filter(isUserInvocable).map((skill) => ({
|
|
2298
2297
|
name: skill.name,
|
|
2298
|
+
...skill.path === void 0 ? {} : { path: skill.path },
|
|
2299
2299
|
description: skill.description,
|
|
2300
2300
|
...skill.whenToUse === void 0 ? {} : { whenToUse: skill.whenToUse },
|
|
2301
2301
|
modelInvocable: skill.invocation.modelInvocable
|
package/lib/typert.host.js
CHANGED
|
@@ -25,6 +25,7 @@ const ContentBlockRemoteCodec$schema = z.union([z.object({
|
|
|
25
25
|
'height': z.number(),
|
|
26
26
|
}).optional(),
|
|
27
27
|
}),
|
|
28
|
+
'offloaded': z.literal(true).optional(),
|
|
28
29
|
}), z.object({
|
|
29
30
|
'type': z.literal("reasoning"),
|
|
30
31
|
'text': z.string(),
|
|
@@ -132,6 +133,9 @@ const _deepseek_ai_dsh_api_session_controller_session_control_result$schema = z.
|
|
|
132
133
|
'model': z.string().readonly(),
|
|
133
134
|
'reasoningEffort': z.string().readonly().optional(),
|
|
134
135
|
})]).readonly(),
|
|
136
|
+
}).optional(),
|
|
137
|
+
'permissions': z.object({
|
|
138
|
+
'currentValue': z.string(),
|
|
135
139
|
}).optional(),
|
|
136
140
|
'subagentCatalog': z.array(z.union([z.intersection(z.object({
|
|
137
141
|
'id': z.intersection(z.string(), z.unknown()).readonly(),
|
|
@@ -310,6 +314,9 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = z.u
|
|
|
310
314
|
'model': z.string().readonly(),
|
|
311
315
|
'reasoningEffort': z.string().readonly().optional(),
|
|
312
316
|
})]).readonly(),
|
|
317
|
+
}).optional(),
|
|
318
|
+
'permissions': z.object({
|
|
319
|
+
'currentValue': z.string(),
|
|
313
320
|
}).optional(),
|
|
314
321
|
'subagentCatalog': z.array(z.union([z.intersection(z.object({
|
|
315
322
|
'id': z.intersection(z.string(), z.unknown()).readonly(),
|
|
@@ -454,6 +461,9 @@ const _deepseek_ai_dsh_api_session_controller_session_list_result$schema = z.obj
|
|
|
454
461
|
'model': z.string().readonly(),
|
|
455
462
|
'reasoningEffort': z.string().readonly().optional(),
|
|
456
463
|
})]).readonly(),
|
|
464
|
+
}).optional(),
|
|
465
|
+
'permissions': z.object({
|
|
466
|
+
'currentValue': z.string(),
|
|
457
467
|
}).optional(),
|
|
458
468
|
'subagentCatalog': z.array(z.union([z.intersection(z.object({
|
|
459
469
|
'id': z.intersection(z.string(), z.unknown()).readonly(),
|
|
@@ -651,6 +661,7 @@ const _deepseek_ai_dsh_api_session_controller_session_updateQueue_parameter_0$sc
|
|
|
651
661
|
'height': z.number(),
|
|
652
662
|
}).optional(),
|
|
653
663
|
}),
|
|
664
|
+
'offloaded': z.literal(true).optional(),
|
|
654
665
|
}), z.object({
|
|
655
666
|
'type': z.literal("reasoning"),
|
|
656
667
|
'text': z.string(),
|
|
@@ -679,6 +690,7 @@ const _deepseek_ai_dsh_api_session_controller_skills_list_parameter_0$schema = z
|
|
|
679
690
|
})
|
|
680
691
|
const _deepseek_ai_dsh_api_session_controller_skills_list_result$schema = z.object({
|
|
681
692
|
'skills': z.array(z.object({
|
|
693
|
+
'path': z.string().readonly().optional(),
|
|
682
694
|
'name': z.string().readonly(),
|
|
683
695
|
'description': z.string().readonly(),
|
|
684
696
|
'whenToUse': z.string().readonly().optional(),
|
|
@@ -756,7 +768,7 @@ export const TYPERT = {
|
|
|
756
768
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionAttachmentValue',
|
|
757
769
|
schema: _deepseek_ai_dsh_api_session_controller_session_attachment_result$schema,
|
|
758
770
|
},
|
|
759
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
771
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":358,"column":3},
|
|
760
772
|
},
|
|
761
773
|
{
|
|
762
774
|
id: '@deepseek-ai/dsh-api-session-controller#session/cancel',
|
|
@@ -781,7 +793,7 @@ export const TYPERT = {
|
|
|
781
793
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionCancelValue',
|
|
782
794
|
schema: _deepseek_ai_dsh_api_session_controller_session_cancel_result$schema,
|
|
783
795
|
},
|
|
784
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
796
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":378,"column":3},
|
|
785
797
|
},
|
|
786
798
|
{
|
|
787
799
|
id: '@deepseek-ai/dsh-api-session-controller#session/canOpenWorkspacePath',
|
|
@@ -796,7 +808,7 @@ export const TYPERT = {
|
|
|
796
808
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller#session/canOpenWorkspacePath:result',
|
|
797
809
|
schema: _deepseek_ai_dsh_api_session_controller_session_canOpenWorkspacePath_result$schema,
|
|
798
810
|
},
|
|
799
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
811
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":273,"column":3},
|
|
800
812
|
},
|
|
801
813
|
{
|
|
802
814
|
id: '@deepseek-ai/dsh-api-session-controller#session/control',
|
|
@@ -813,7 +825,7 @@ export const TYPERT = {
|
|
|
813
825
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionControlFrame',
|
|
814
826
|
schema: _deepseek_ai_dsh_api_session_controller_session_control_result$schema,
|
|
815
827
|
},
|
|
816
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
828
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":411,"column":3},
|
|
817
829
|
},
|
|
818
830
|
{
|
|
819
831
|
id: '@deepseek-ai/dsh-api-session-controller#session/create',
|
|
@@ -838,7 +850,7 @@ export const TYPERT = {
|
|
|
838
850
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionCreateValue',
|
|
839
851
|
schema: _deepseek_ai_dsh_api_session_controller_session_create_result$schema,
|
|
840
852
|
},
|
|
841
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
853
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":245,"column":3},
|
|
842
854
|
},
|
|
843
855
|
{
|
|
844
856
|
id: '@deepseek-ai/dsh-api-session-controller#session/follow',
|
|
@@ -865,7 +877,7 @@ export const TYPERT = {
|
|
|
865
877
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionFollowFrame',
|
|
866
878
|
schema: _deepseek_ai_dsh_api_session_controller_session_follow_result$schema,
|
|
867
879
|
},
|
|
868
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
880
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":401,"column":3},
|
|
869
881
|
},
|
|
870
882
|
{
|
|
871
883
|
id: '@deepseek-ai/dsh-api-session-controller#session/fork',
|
|
@@ -890,7 +902,7 @@ export const TYPERT = {
|
|
|
890
902
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionForkValue',
|
|
891
903
|
schema: _deepseek_ai_dsh_api_session_controller_session_fork_result$schema,
|
|
892
904
|
},
|
|
893
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
905
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":336,"column":3},
|
|
894
906
|
},
|
|
895
907
|
{
|
|
896
908
|
id: '@deepseek-ai/dsh-api-session-controller#session/list',
|
|
@@ -916,7 +928,7 @@ export const TYPERT = {
|
|
|
916
928
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionListValue',
|
|
917
929
|
schema: _deepseek_ai_dsh_api_session_controller_session_list_result$schema,
|
|
918
930
|
},
|
|
919
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
931
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":224,"column":9},
|
|
920
932
|
},
|
|
921
933
|
{
|
|
922
934
|
id: '@deepseek-ai/dsh-api-session-controller#session/modelCatalog',
|
|
@@ -931,7 +943,7 @@ export const TYPERT = {
|
|
|
931
943
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#ModelCatalog',
|
|
932
944
|
schema: _deepseek_ai_dsh_api_session_controller_session_modelCatalog_result$schema,
|
|
933
945
|
},
|
|
934
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
946
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":264,"column":3},
|
|
935
947
|
},
|
|
936
948
|
{
|
|
937
949
|
id: '@deepseek-ai/dsh-api-session-controller#session/openWorkspacePath',
|
|
@@ -957,7 +969,7 @@ export const TYPERT = {
|
|
|
957
969
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionOpenWorkspacePathValue',
|
|
958
970
|
schema: _deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_result$schema,
|
|
959
971
|
},
|
|
960
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
972
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":294,"column":9},
|
|
961
973
|
},
|
|
962
974
|
{
|
|
963
975
|
id: '@deepseek-ai/dsh-api-session-controller#session/page',
|
|
@@ -983,7 +995,7 @@ export const TYPERT = {
|
|
|
983
995
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionPage',
|
|
984
996
|
schema: _deepseek_ai_dsh_api_session_controller_session_page_result$schema,
|
|
985
997
|
},
|
|
986
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
998
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":389,"column":3},
|
|
987
999
|
},
|
|
988
1000
|
{
|
|
989
1001
|
id: '@deepseek-ai/dsh-api-session-controller#session/prompt',
|
|
@@ -1009,7 +1021,7 @@ export const TYPERT = {
|
|
|
1009
1021
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionPromptValue',
|
|
1010
1022
|
schema: _deepseek_ai_dsh_api_session_controller_session_prompt_result$schema,
|
|
1011
1023
|
},
|
|
1012
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
1024
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":347,"column":3},
|
|
1013
1025
|
},
|
|
1014
1026
|
{
|
|
1015
1027
|
id: '@deepseek-ai/dsh-api-session-controller#session/rename',
|
|
@@ -1034,7 +1046,7 @@ export const TYPERT = {
|
|
|
1034
1046
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionRenameValue',
|
|
1035
1047
|
schema: _deepseek_ai_dsh_api_session_controller_session_rename_result$schema,
|
|
1036
1048
|
},
|
|
1037
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
1049
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":326,"column":3},
|
|
1038
1050
|
},
|
|
1039
1051
|
{
|
|
1040
1052
|
id: '@deepseek-ai/dsh-api-session-controller#session/search',
|
|
@@ -1060,7 +1072,7 @@ export const TYPERT = {
|
|
|
1060
1072
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionSearchValue',
|
|
1061
1073
|
schema: _deepseek_ai_dsh_api_session_controller_session_search_result$schema,
|
|
1062
1074
|
},
|
|
1063
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
1075
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":235,"column":3},
|
|
1064
1076
|
},
|
|
1065
1077
|
{
|
|
1066
1078
|
id: '@deepseek-ai/dsh-api-session-controller#session/selectModel',
|
|
@@ -1085,7 +1097,7 @@ export const TYPERT = {
|
|
|
1085
1097
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionSelectModelValue',
|
|
1086
1098
|
schema: _deepseek_ai_dsh_api_session_controller_session_selectModel_result$schema,
|
|
1087
1099
|
},
|
|
1088
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
1100
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":255,"column":3},
|
|
1089
1101
|
},
|
|
1090
1102
|
{
|
|
1091
1103
|
id: '@deepseek-ai/dsh-api-session-controller#session/updateQueue',
|
|
@@ -1110,7 +1122,7 @@ export const TYPERT = {
|
|
|
1110
1122
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionUpdateQueueValue',
|
|
1111
1123
|
schema: _deepseek_ai_dsh_api_session_controller_session_updateQueue_result$schema,
|
|
1112
1124
|
},
|
|
1113
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
1125
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":368,"column":3},
|
|
1114
1126
|
},
|
|
1115
1127
|
{
|
|
1116
1128
|
id: '@deepseek-ai/dsh-api-session-controller#skills/list',
|
|
@@ -1329,8 +1341,8 @@ export const TYPERT = {
|
|
|
1329
1341
|
"declaration": "export interface AssistantMessage extends Message {\n readonly role: 'assistant';\n readonly source: ModelMessageSource;\n}"
|
|
1330
1342
|
},
|
|
1331
1343
|
{
|
|
1332
|
-
"name": "
|
|
1333
|
-
"declaration": "export interface
|
|
1344
|
+
"name": "AssistantProviderMetadata",
|
|
1345
|
+
"declaration": "export interface AssistantProviderMetadata {\n provider: string;\n model: string;\n replayState?: unknown;\n}"
|
|
1334
1346
|
},
|
|
1335
1347
|
{
|
|
1336
1348
|
"name": "AssistantStreamRecord",
|
|
@@ -1474,12 +1486,16 @@ export const TYPERT = {
|
|
|
1474
1486
|
},
|
|
1475
1487
|
{
|
|
1476
1488
|
"name": "ImageBlock",
|
|
1477
|
-
"declaration": "export interface ImageBlock {\n type: 'image';\n attachment: ImageAttachmentRef;\n}"
|
|
1489
|
+
"declaration": "export interface ImageBlock {\n type: 'image';\n attachment: ImageAttachmentRef;\n offloaded?: true;\n}"
|
|
1478
1490
|
},
|
|
1479
1491
|
{
|
|
1480
1492
|
"name": "ImageMediaType",
|
|
1481
1493
|
"declaration": "export type ImageMediaType = 'image/png' | 'image/jpeg' | 'image/webp' | 'image/gif';"
|
|
1482
1494
|
},
|
|
1495
|
+
{
|
|
1496
|
+
"name": "ImageOffloadTarget",
|
|
1497
|
+
"declaration": "export interface ImageOffloadTarget {\n seq: SessionSeq;\n imageIndexes: number[];\n}"
|
|
1498
|
+
},
|
|
1483
1499
|
{
|
|
1484
1500
|
"name": "Inbox",
|
|
1485
1501
|
"declaration": "export interface Inbox {\n readonly nextTurn: readonly UserMessage[];\n readonly nextStep: readonly UserMessage[];\n clear(): void;\n append(target: InboxTarget, message: UserMessage): void;\n prepend(target: InboxTarget, message: UserMessage): void;\n replace(messageId: MessageId, newMessage: UserMessage): boolean;\n remove(messageId: MessageId): boolean;\n splice(target: InboxTarget, start: number, deleteCount: number, inserted: UserMessage[]): UserMessage[];\n}"
|
|
@@ -1514,7 +1530,7 @@ export const TYPERT = {
|
|
|
1514
1530
|
},
|
|
1515
1531
|
{
|
|
1516
1532
|
"name": "LlmFailure",
|
|
1517
|
-
"declaration": "export interface LlmFailure {\n readonly message: string;\n readonly code: string;\n readonly status?: number;\n readonly providerRetryAfterMs?: number;\n readonly requestId?: ProviderRequestId;\n}"
|
|
1533
|
+
"declaration": "export interface LlmFailure {\n readonly message: string;\n readonly code: string;\n readonly status?: number;\n readonly providerRetryAfterMs?: number;\n readonly requestId?: ProviderRequestId;\n readonly offloadImages?: number;\n}"
|
|
1518
1534
|
},
|
|
1519
1535
|
{
|
|
1520
1536
|
"name": "Message",
|
|
@@ -1566,7 +1582,7 @@ export const TYPERT = {
|
|
|
1566
1582
|
},
|
|
1567
1583
|
{
|
|
1568
1584
|
"name": "ModelMessageSource",
|
|
1569
|
-
"declaration": "export interface ModelMessageSource extends
|
|
1585
|
+
"declaration": "export interface ModelMessageSource extends AssistantProviderMetadata {\n kind: 'model';\n}"
|
|
1570
1586
|
},
|
|
1571
1587
|
{
|
|
1572
1588
|
"name": "ModelProviderGroup",
|
|
@@ -1596,6 +1612,10 @@ export const TYPERT = {
|
|
|
1596
1612
|
"name": "OptionalSessionSeq",
|
|
1597
1613
|
"declaration": "export type OptionalSessionSeq = SessionSeq | null;"
|
|
1598
1614
|
},
|
|
1615
|
+
{
|
|
1616
|
+
"name": "PermissionSelection",
|
|
1617
|
+
"declaration": "export interface PermissionSelection {\n currentValue: string;\n}"
|
|
1618
|
+
},
|
|
1599
1619
|
{
|
|
1600
1620
|
"name": "PromptContentPart",
|
|
1601
1621
|
"declaration": "export type PromptContentPart = { readonly type: 'text'; readonly text: string; } | { readonly type: 'image'; readonly mediaType: ImageMediaType; readonly data: string; readonly name?: string; } | { readonly type: 'file'; readonly receiptId: Branded<'file-upload-receipt-id'>; };"
|
|
@@ -1606,7 +1626,7 @@ export const TYPERT = {
|
|
|
1606
1626
|
},
|
|
1607
1627
|
{
|
|
1608
1628
|
"name": "PtcDispatchEventData",
|
|
1609
|
-
"declaration": "export interface PtcDispatchEventData extends PtcDispatchStartEventData {\n isError: boolean;\n content: ContentBlock[];\n}"
|
|
1629
|
+
"declaration": "export interface PtcDispatchEventData extends PtcDispatchStartEventData {\n isError: boolean;\n content: ContentBlock[];\n error?: { name: string; code: string; reason?: string; };\n}"
|
|
1610
1630
|
},
|
|
1611
1631
|
{
|
|
1612
1632
|
"name": "PtcDispatchStartEventData",
|
|
@@ -1634,7 +1654,7 @@ export const TYPERT = {
|
|
|
1634
1654
|
},
|
|
1635
1655
|
{
|
|
1636
1656
|
"name": "RemoteErrorDetailsMap",
|
|
1637
|
-
"declaration": "export interface RemoteErrorDetailsMap {\n 'gateway/bad-request': { readonly issues?: readonly object[]; };\n 'gateway/cancelled': {};\n 'gateway/internal': {};\n 'llm/model-discovery-rejected': { readonly settingsNs: string; readonly baseURL?: string; };\n 'session/not-found': { readonly sessionId: SessionId; };\n 'agent-preset/not-found': { readonly agentPreset: string; readonly available: readonly string[]; };\n 'agent-preset/invalid': { readonly agentPreset: string; readonly reason: string; };\n 'agent-preset/read-only': { readonly agentPreset: string; readonly reason: string; };\n 'agent-preset/locked': { readonly sessionId: SessionId; readonly agentPreset: string; };\n 'workspace/not-found': { readonly workspaceId: WorkspaceId; };\n 'session/model-unavailable': { readonly provider: string; readonly model: string; };\n 'session/conflict': { readonly sessionId: SessionId; readonly requestedCwd: string; readonly existingCwd?: string; };\n 'session/agent-busy': { readonly reason: string; };\n 'session/invalid-time-zone': { readonly value: string; };\n 'session/workspace-attach-failed': { readonly sessionId: SessionId; readonly workspaceId: string; };\n 'agent-preset/conflict': { readonly sessionId: SessionId; readonly requestedPreset: string; readonly existingPreset?: string; };\n 'session/attachment-invalid': { readonly reason: string; };\n 'session/queue-item-not-found': { readonly itemId: MessageId; };\n 'session/steer-unavailable': { readonly itemId: MessageId; };\n 'session/title-invalid': { readonly sessionId: SessionId; };\n 'session/fork-unavailable': { readonly sessionId: SessionId; };\n 'subagent/not-found': { readonly parentSessionId: SessionId; readonly childSessionId: SessionId; };\n 'subagent/catalog-diagnostic': { readonly parentSessionId: SessionId; readonly childSessionId: SessionId; readonly reason: 'corrupt' | 'unsupported' | 'unavailable'; };\n 'subagent/invalid-time-zone': { readonly value: string; };\n 'subagent/parent-unavailable': { readonly parentSessionId: SessionId; };\n 'subagent/not-resumable': { readonly childSessionId: SessionId; };\n 'subagent/unauthorized': { readonly childSessionId: SessionId; };\n 'subagent/attachment-invalid': { readonly reason: string; };\n 'subagent/delivery-unavailable': { readonly childSessionId: SessionId; };\n 'subagent/projections-unavailable': {};\n 'settings/rejected': { readonly ns: string; };\n 'settings/conflict': { readonly ns: string; readonly expected: number; readonly actual: number; };\n 'credential/rejected': { readonly ref: string; };\n 'workspace/invalid-path': { readonly path: string; };\n 'workspace/name-conflict': { readonly name: string; };\n 'workspace/move-invalid': { readonly workspaceId: WorkspaceId; readonly sessionId: SessionId; readonly beforeSessionId?: SessionId; };\n 'directory-picker/unavailable': { readonly capability: string; };\n 'directory-picker/unreadable': { readonly path: string; };\n 'directory-picker/exists': { readonly path: string; };\n 'directory-picker/create-failed': { readonly path: string; };\n 'workspace-file/not-found': { readonly path: string; };\n 'workspace-file/outside-workspace': { readonly path: string; };\n 'workspace-file/too-large': { readonly path: string; readonly limit: number; };\n 'workspace-file/not-text': { readonly path: string; };\n 'workspace-file/not-regular-file': { readonly path: string; readonly kind: 'directory' | 'symlink' | 'other'; };\n 'workspace-file/not-directory': { readonly path: string; readonly kind: 'file' | 'symlink' | 'other'; };\n}"
|
|
1657
|
+
"declaration": "export interface RemoteErrorDetailsMap {\n 'gateway/bad-request': { readonly issues?: readonly object[]; };\n 'gateway/cancelled': {};\n 'gateway/internal': {};\n 'llm/model-discovery-rejected': { readonly settingsNs: string; readonly baseURL?: string; };\n 'session/not-found': { readonly sessionId: SessionId; };\n 'agent-preset/not-found': { readonly agentPreset: string; readonly available: readonly string[]; };\n 'agent-preset/invalid': { readonly agentPreset: string; readonly reason: string; };\n 'agent-preset/read-only': { readonly agentPreset: string; readonly reason: string; };\n 'agent-preset/locked': { readonly sessionId: SessionId; readonly agentPreset: string; };\n 'workspace/not-found': { readonly workspaceId: WorkspaceId; };\n 'session/model-unavailable': { readonly provider: string; readonly model: string; };\n 'session/conflict': { readonly sessionId: SessionId; readonly requestedCwd: string; readonly existingCwd?: string; };\n 'session/agent-busy': { readonly reason: string; };\n 'session/invalid-time-zone': { readonly value: string; };\n 'session/workspace-attach-failed': { readonly sessionId: SessionId; readonly workspaceId: string; };\n 'agent-preset/conflict': { readonly sessionId: SessionId; readonly requestedPreset: string; readonly existingPreset?: string; };\n 'session/attachment-invalid': { readonly reason: string; };\n 'session/queue-item-not-found': { readonly itemId: MessageId; };\n 'session/steer-unavailable': { readonly itemId: MessageId; };\n 'session/title-invalid': { readonly sessionId: SessionId; };\n 'session/fork-unavailable': { readonly sessionId: SessionId; };\n 'subagent/not-found': { readonly parentSessionId: SessionId; readonly childSessionId: SessionId; };\n 'subagent/catalog-diagnostic': { readonly parentSessionId: SessionId; readonly childSessionId: SessionId; readonly reason: 'corrupt' | 'unsupported' | 'unavailable'; };\n 'subagent/invalid-time-zone': { readonly value: string; };\n 'subagent/parent-unavailable': { readonly parentSessionId: SessionId; };\n 'subagent/not-resumable': { readonly childSessionId: SessionId; };\n 'subagent/unauthorized': { readonly childSessionId: SessionId; };\n 'subagent/attachment-invalid': { readonly reason: string; };\n 'subagent/delivery-unavailable': { readonly childSessionId: SessionId; };\n 'subagent/projections-unavailable': {};\n 'settings/rejected': { readonly ns: string; };\n 'settings/conflict': { readonly ns: string; readonly expected: number; readonly actual: number; };\n 'credential/rejected': { readonly ref: string; };\n 'terminal/control-unavailable': { readonly reason: 'read-only' | 'not-running'; };\n 'terminal/limit-reached': { readonly limit: number; };\n 'workspace/invalid-path': { readonly path: string; };\n 'workspace/name-conflict': { readonly name: string; };\n 'workspace/move-invalid': { readonly workspaceId: WorkspaceId; readonly sessionId: SessionId; readonly beforeSessionId?: SessionId; };\n 'directory-picker/unavailable': { readonly capability: string; };\n 'directory-picker/unreadable': { readonly path: string; };\n 'directory-picker/exists': { readonly path: string; };\n 'directory-picker/create-failed': { readonly path: string; };\n 'workspace-file/not-found': { readonly path: string; };\n 'workspace-file/outside-workspace': { readonly path: string; };\n 'workspace-file/too-large': { readonly path: string; readonly limit: number; };\n 'workspace-file/not-text': { readonly path: string; };\n 'workspace-file/not-regular-file': { readonly path: string; readonly kind: 'directory' | 'symlink' | 'other'; };\n 'workspace-file/not-directory': { readonly path: string; readonly kind: 'file' | 'symlink' | 'other'; };\n}"
|
|
1638
1658
|
},
|
|
1639
1659
|
{
|
|
1640
1660
|
"name": "ReplayEnvelope",
|
|
@@ -1714,7 +1734,7 @@ export const TYPERT = {
|
|
|
1714
1734
|
},
|
|
1715
1735
|
{
|
|
1716
1736
|
"name": "SessionEventMap",
|
|
1717
|
-
"declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'subagent/descriptor': SubagentDescriptorData;\n '
|
|
1737
|
+
"declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; reason?: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq; };\n 'image/offload': { targets: ImageOffloadTarget[]; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'subagent/descriptor': SubagentDescriptorData;\n 'permission/preset': { preset: string; };\n 'subagent/catalog': SubagentCatalogEvent;\n 'feedback/record': FeedbackRecord;\n 'team/member': { version: 2; teamId: TeamId; member: TeamMemberSnapshot; };\n 'team/task': { version: 2; teamId: TeamId; task: TeamTaskSnapshot; };\n 'team/message/queued': { version: 2; teamId: TeamId; message: TeamMessageSnapshot; };\n 'team/message/delivered': { version: 2; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; };\n 'goal/change': GoalChangeMeta;\n 'feedback/message-put': MessageFeedbackPut;\n 'feedback/message-delete': MessageFeedbackDelete;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage; } & ({ rawOutput: ContentBlock[]; llmStreamCall: true; } | { rawOutput?: ContentBlock[]; llmStreamCall?: never; });\n 'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string; };\n 'compaction/prune': { shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; };\n}"
|
|
1718
1738
|
},
|
|
1719
1739
|
{
|
|
1720
1740
|
"name": "SessionEventType",
|
|
@@ -1798,7 +1818,7 @@ export const TYPERT = {
|
|
|
1798
1818
|
},
|
|
1799
1819
|
{
|
|
1800
1820
|
"name": "SessionProjectionMap",
|
|
1801
|
-
"declaration": "export interface SessionProjectionMap {\n inbox: InboxWireState;\n agentPreset: string | null;\n title: string | null;\n todos: TodoItem[] | null;\n sessionListMetadata: SessionListMetadata;\n imageLimits: ImageAttachmentLimits;\n modelSelection: ModelSelectionProjection;\n subagentCatalog: SubagentCatalogEntry[];\n subagentTiming: SubagentTimingProjection;\n subagent: SubagentIdentityProjection | null;\n goal: GoalProjection | null;\n}"
|
|
1821
|
+
"declaration": "export interface SessionProjectionMap {\n inbox: InboxWireState;\n agentPreset: string | null;\n title: string | null;\n todos: TodoItem[] | null;\n sessionListMetadata: SessionListMetadata;\n imageLimits: ImageAttachmentLimits;\n modelSelection: ModelSelectionProjection;\n permissions: PermissionSelection;\n subagentCatalog: SubagentCatalogEntry[];\n subagentTiming: SubagentTimingProjection;\n subagent: SubagentIdentityProjection | null;\n goal: GoalProjection | null;\n}"
|
|
1802
1822
|
},
|
|
1803
1823
|
{
|
|
1804
1824
|
"name": "SessionProjectionUpdate",
|
|
@@ -1878,15 +1898,15 @@ export const TYPERT = {
|
|
|
1878
1898
|
},
|
|
1879
1899
|
{
|
|
1880
1900
|
"name": "SessionSurface",
|
|
1881
|
-
"declaration": "export interface SessionSurface {\n readonly nodes: readonly SessionSeq[];\n readonly replaceGeneration: number;\n}"
|
|
1901
|
+
"declaration": "export interface SessionSurface {\n readonly nodes: readonly SessionSeq[];\n readonly replaceGeneration: number;\n readonly contentGeneration: number;\n}"
|
|
1882
1902
|
},
|
|
1883
1903
|
{
|
|
1884
1904
|
"name": "SessionTitleEventData",
|
|
1885
1905
|
"declaration": "export interface SessionTitleEventData {\n readonly title: string;\n readonly messageSeqs: SessionSeq[];\n readonly source: SessionTitleSource;\n}"
|
|
1886
1906
|
},
|
|
1887
1907
|
{
|
|
1888
|
-
"name": "
|
|
1889
|
-
"declaration": "export interface
|
|
1908
|
+
"name": "SessionTitleModelIdentity",
|
|
1909
|
+
"declaration": "export interface SessionTitleModelIdentity {\n readonly provider: string;\n readonly model: string;\n}"
|
|
1890
1910
|
},
|
|
1891
1911
|
{
|
|
1892
1912
|
"name": "SessionTitleProviderId",
|
|
@@ -1894,7 +1914,7 @@ export const TYPERT = {
|
|
|
1894
1914
|
},
|
|
1895
1915
|
{
|
|
1896
1916
|
"name": "SessionTitleSource",
|
|
1897
|
-
"declaration": "export type SessionTitleSource = { readonly kind: 'fallback'; } | { readonly kind: 'provider'; readonly provider: SessionTitleProviderId; readonly model?:
|
|
1917
|
+
"declaration": "export type SessionTitleSource = { readonly kind: 'fallback'; } | { readonly kind: 'provider'; readonly provider: SessionTitleProviderId; readonly model?: SessionTitleModelIdentity; } | { readonly kind: 'user'; };"
|
|
1898
1918
|
},
|
|
1899
1919
|
{
|
|
1900
1920
|
"name": "SessionUpdateQueueRequest",
|
|
@@ -2120,8 +2140,8 @@ export const TYPERT = {
|
|
|
2120
2140
|
"declaration": "export interface AssistantMessage extends Message {\n readonly role: 'assistant';\n readonly source: ModelMessageSource;\n}"
|
|
2121
2141
|
},
|
|
2122
2142
|
{
|
|
2123
|
-
"name": "
|
|
2124
|
-
"declaration": "export interface
|
|
2143
|
+
"name": "AssistantProviderMetadata",
|
|
2144
|
+
"declaration": "export interface AssistantProviderMetadata {\n provider: string;\n model: string;\n replayState?: unknown;\n}"
|
|
2125
2145
|
},
|
|
2126
2146
|
{
|
|
2127
2147
|
"name": "AssistantStreamRecord",
|
|
@@ -2261,12 +2281,16 @@ export const TYPERT = {
|
|
|
2261
2281
|
},
|
|
2262
2282
|
{
|
|
2263
2283
|
"name": "ImageBlock",
|
|
2264
|
-
"declaration": "export interface ImageBlock {\n type: 'image';\n attachment: ImageAttachmentRef;\n}"
|
|
2284
|
+
"declaration": "export interface ImageBlock {\n type: 'image';\n attachment: ImageAttachmentRef;\n offloaded?: true;\n}"
|
|
2265
2285
|
},
|
|
2266
2286
|
{
|
|
2267
2287
|
"name": "ImageMediaType",
|
|
2268
2288
|
"declaration": "export type ImageMediaType = 'image/png' | 'image/jpeg' | 'image/webp' | 'image/gif';"
|
|
2269
2289
|
},
|
|
2290
|
+
{
|
|
2291
|
+
"name": "ImageOffloadTarget",
|
|
2292
|
+
"declaration": "export interface ImageOffloadTarget {\n seq: SessionSeq;\n imageIndexes: number[];\n}"
|
|
2293
|
+
},
|
|
2270
2294
|
{
|
|
2271
2295
|
"name": "Inbox",
|
|
2272
2296
|
"declaration": "export interface Inbox {\n readonly nextTurn: readonly UserMessage[];\n readonly nextStep: readonly UserMessage[];\n clear(): void;\n append(target: InboxTarget, message: UserMessage): void;\n prepend(target: InboxTarget, message: UserMessage): void;\n replace(messageId: MessageId, newMessage: UserMessage): boolean;\n remove(messageId: MessageId): boolean;\n splice(target: InboxTarget, start: number, deleteCount: number, inserted: UserMessage[]): UserMessage[];\n}"
|
|
@@ -2289,7 +2313,7 @@ export const TYPERT = {
|
|
|
2289
2313
|
},
|
|
2290
2314
|
{
|
|
2291
2315
|
"name": "LlmFailure",
|
|
2292
|
-
"declaration": "export interface LlmFailure {\n readonly message: string;\n readonly code: string;\n readonly status?: number;\n readonly providerRetryAfterMs?: number;\n readonly requestId?: ProviderRequestId;\n}"
|
|
2316
|
+
"declaration": "export interface LlmFailure {\n readonly message: string;\n readonly code: string;\n readonly status?: number;\n readonly providerRetryAfterMs?: number;\n readonly requestId?: ProviderRequestId;\n readonly offloadImages?: number;\n}"
|
|
2293
2317
|
},
|
|
2294
2318
|
{
|
|
2295
2319
|
"name": "Message",
|
|
@@ -2329,7 +2353,7 @@ export const TYPERT = {
|
|
|
2329
2353
|
},
|
|
2330
2354
|
{
|
|
2331
2355
|
"name": "ModelMessageSource",
|
|
2332
|
-
"declaration": "export interface ModelMessageSource extends
|
|
2356
|
+
"declaration": "export interface ModelMessageSource extends AssistantProviderMetadata {\n kind: 'model';\n}"
|
|
2333
2357
|
},
|
|
2334
2358
|
{
|
|
2335
2359
|
"name": "ModelSelection",
|
|
@@ -2349,7 +2373,7 @@ export const TYPERT = {
|
|
|
2349
2373
|
},
|
|
2350
2374
|
{
|
|
2351
2375
|
"name": "PtcDispatchEventData",
|
|
2352
|
-
"declaration": "export interface PtcDispatchEventData extends PtcDispatchStartEventData {\n isError: boolean;\n content: ContentBlock[];\n}"
|
|
2376
|
+
"declaration": "export interface PtcDispatchEventData extends PtcDispatchStartEventData {\n isError: boolean;\n content: ContentBlock[];\n error?: { name: string; code: string; reason?: string; };\n}"
|
|
2353
2377
|
},
|
|
2354
2378
|
{
|
|
2355
2379
|
"name": "PtcDispatchStartEventData",
|
|
@@ -2389,7 +2413,7 @@ export const TYPERT = {
|
|
|
2389
2413
|
},
|
|
2390
2414
|
{
|
|
2391
2415
|
"name": "SessionEventMap",
|
|
2392
|
-
"declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'subagent/descriptor': SubagentDescriptorData;\n '
|
|
2416
|
+
"declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; reason?: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq; };\n 'image/offload': { targets: ImageOffloadTarget[]; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'subagent/descriptor': SubagentDescriptorData;\n 'permission/preset': { preset: string; };\n 'subagent/catalog': SubagentCatalogEvent;\n 'feedback/record': FeedbackRecord;\n 'team/member': { version: 2; teamId: TeamId; member: TeamMemberSnapshot; };\n 'team/task': { version: 2; teamId: TeamId; task: TeamTaskSnapshot; };\n 'team/message/queued': { version: 2; teamId: TeamId; message: TeamMessageSnapshot; };\n 'team/message/delivered': { version: 2; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; };\n 'goal/change': GoalChangeMeta;\n 'feedback/message-put': MessageFeedbackPut;\n 'feedback/message-delete': MessageFeedbackDelete;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage; } & ({ rawOutput: ContentBlock[]; llmStreamCall: true; } | { rawOutput?: ContentBlock[]; llmStreamCall?: never; });\n 'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string; };\n 'compaction/prune': { shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; };\n}"
|
|
2393
2417
|
},
|
|
2394
2418
|
{
|
|
2395
2419
|
"name": "SessionEventType",
|
|
@@ -2421,15 +2445,15 @@ export const TYPERT = {
|
|
|
2421
2445
|
},
|
|
2422
2446
|
{
|
|
2423
2447
|
"name": "SessionSurface",
|
|
2424
|
-
"declaration": "export interface SessionSurface {\n readonly nodes: readonly SessionSeq[];\n readonly replaceGeneration: number;\n}"
|
|
2448
|
+
"declaration": "export interface SessionSurface {\n readonly nodes: readonly SessionSeq[];\n readonly replaceGeneration: number;\n readonly contentGeneration: number;\n}"
|
|
2425
2449
|
},
|
|
2426
2450
|
{
|
|
2427
2451
|
"name": "SessionTitleEventData",
|
|
2428
2452
|
"declaration": "export interface SessionTitleEventData {\n readonly title: string;\n readonly messageSeqs: SessionSeq[];\n readonly source: SessionTitleSource;\n}"
|
|
2429
2453
|
},
|
|
2430
2454
|
{
|
|
2431
|
-
"name": "
|
|
2432
|
-
"declaration": "export interface
|
|
2455
|
+
"name": "SessionTitleModelIdentity",
|
|
2456
|
+
"declaration": "export interface SessionTitleModelIdentity {\n readonly provider: string;\n readonly model: string;\n}"
|
|
2433
2457
|
},
|
|
2434
2458
|
{
|
|
2435
2459
|
"name": "SessionTitleProviderId",
|
|
@@ -2437,7 +2461,7 @@ export const TYPERT = {
|
|
|
2437
2461
|
},
|
|
2438
2462
|
{
|
|
2439
2463
|
"name": "SessionTitleSource",
|
|
2440
|
-
"declaration": "export type SessionTitleSource = { readonly kind: 'fallback'; } | { readonly kind: 'provider'; readonly provider: SessionTitleProviderId; readonly model?:
|
|
2464
|
+
"declaration": "export type SessionTitleSource = { readonly kind: 'fallback'; } | { readonly kind: 'provider'; readonly provider: SessionTitleProviderId; readonly model?: SessionTitleModelIdentity; } | { readonly kind: 'user'; };"
|
|
2441
2465
|
},
|
|
2442
2466
|
{
|
|
2443
2467
|
"name": "SkillInvocationSource",
|
|
@@ -2604,7 +2628,7 @@ export const TYPERT = {
|
|
|
2604
2628
|
},
|
|
2605
2629
|
{
|
|
2606
2630
|
"name": "SkillEntry",
|
|
2607
|
-
"declaration": "export interface SkillEntry {\n readonly name: string;\n readonly description: string;\n readonly whenToUse?: string;\n readonly modelInvocable: boolean;\n}"
|
|
2631
|
+
"declaration": "export interface SkillEntry {\n readonly path?: string;\n readonly name: string;\n readonly description: string;\n readonly whenToUse?: string;\n readonly modelInvocable: boolean;\n}"
|
|
2608
2632
|
},
|
|
2609
2633
|
{
|
|
2610
2634
|
"name": "SkillListRequest",
|
|
@@ -25,6 +25,7 @@ const ContentBlockRemoteCodec$schema = z.union([z.object({
|
|
|
25
25
|
'height': z.number(),
|
|
26
26
|
}).optional(),
|
|
27
27
|
}),
|
|
28
|
+
'offloaded': z.literal(true).optional(),
|
|
28
29
|
}), z.object({
|
|
29
30
|
'type': z.literal("reasoning"),
|
|
30
31
|
'text': z.string(),
|
|
@@ -132,6 +133,9 @@ const _deepseek_ai_dsh_api_session_controller_session_control_result$schema = z.
|
|
|
132
133
|
'model': z.string().readonly(),
|
|
133
134
|
'reasoningEffort': z.string().readonly().optional(),
|
|
134
135
|
})]).readonly(),
|
|
136
|
+
}).optional(),
|
|
137
|
+
'permissions': z.object({
|
|
138
|
+
'currentValue': z.string(),
|
|
135
139
|
}).optional(),
|
|
136
140
|
'subagentCatalog': z.array(z.union([z.intersection(z.object({
|
|
137
141
|
'id': z.intersection(z.string(), z.unknown()).readonly(),
|
|
@@ -310,6 +314,9 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = z.u
|
|
|
310
314
|
'model': z.string().readonly(),
|
|
311
315
|
'reasoningEffort': z.string().readonly().optional(),
|
|
312
316
|
})]).readonly(),
|
|
317
|
+
}).optional(),
|
|
318
|
+
'permissions': z.object({
|
|
319
|
+
'currentValue': z.string(),
|
|
313
320
|
}).optional(),
|
|
314
321
|
'subagentCatalog': z.array(z.union([z.intersection(z.object({
|
|
315
322
|
'id': z.intersection(z.string(), z.unknown()).readonly(),
|
|
@@ -454,6 +461,9 @@ const _deepseek_ai_dsh_api_session_controller_session_list_result$schema = z.obj
|
|
|
454
461
|
'model': z.string().readonly(),
|
|
455
462
|
'reasoningEffort': z.string().readonly().optional(),
|
|
456
463
|
})]).readonly(),
|
|
464
|
+
}).optional(),
|
|
465
|
+
'permissions': z.object({
|
|
466
|
+
'currentValue': z.string(),
|
|
457
467
|
}).optional(),
|
|
458
468
|
'subagentCatalog': z.array(z.union([z.intersection(z.object({
|
|
459
469
|
'id': z.intersection(z.string(), z.unknown()).readonly(),
|
|
@@ -651,6 +661,7 @@ const _deepseek_ai_dsh_api_session_controller_session_updateQueue_parameter_0$sc
|
|
|
651
661
|
'height': z.number(),
|
|
652
662
|
}).optional(),
|
|
653
663
|
}),
|
|
664
|
+
'offloaded': z.literal(true).optional(),
|
|
654
665
|
}), z.object({
|
|
655
666
|
'type': z.literal("reasoning"),
|
|
656
667
|
'text': z.string(),
|
|
@@ -679,6 +690,7 @@ const _deepseek_ai_dsh_api_session_controller_skills_list_parameter_0$schema = z
|
|
|
679
690
|
})
|
|
680
691
|
const _deepseek_ai_dsh_api_session_controller_skills_list_result$schema = z.object({
|
|
681
692
|
'skills': z.array(z.object({
|
|
693
|
+
'path': z.string().readonly().optional(),
|
|
682
694
|
'name': z.string().readonly(),
|
|
683
695
|
'description': z.string().readonly(),
|
|
684
696
|
'whenToUse': z.string().readonly().optional(),
|
|
@@ -753,7 +765,7 @@ export const TYPERT_REMOTE = {
|
|
|
753
765
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionAttachmentValue',
|
|
754
766
|
schema: _deepseek_ai_dsh_api_session_controller_session_attachment_result$schema,
|
|
755
767
|
},
|
|
756
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
768
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":358,"column":3},
|
|
757
769
|
},
|
|
758
770
|
{
|
|
759
771
|
id: '@deepseek-ai/dsh-api-session-controller#session/cancel',
|
|
@@ -778,7 +790,7 @@ export const TYPERT_REMOTE = {
|
|
|
778
790
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionCancelValue',
|
|
779
791
|
schema: _deepseek_ai_dsh_api_session_controller_session_cancel_result$schema,
|
|
780
792
|
},
|
|
781
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
793
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":378,"column":3},
|
|
782
794
|
},
|
|
783
795
|
{
|
|
784
796
|
id: '@deepseek-ai/dsh-api-session-controller#session/canOpenWorkspacePath',
|
|
@@ -793,7 +805,7 @@ export const TYPERT_REMOTE = {
|
|
|
793
805
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller#session/canOpenWorkspacePath:result',
|
|
794
806
|
schema: _deepseek_ai_dsh_api_session_controller_session_canOpenWorkspacePath_result$schema,
|
|
795
807
|
},
|
|
796
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
808
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":273,"column":3},
|
|
797
809
|
},
|
|
798
810
|
{
|
|
799
811
|
id: '@deepseek-ai/dsh-api-session-controller#session/control',
|
|
@@ -810,7 +822,7 @@ export const TYPERT_REMOTE = {
|
|
|
810
822
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionControlFrame',
|
|
811
823
|
schema: _deepseek_ai_dsh_api_session_controller_session_control_result$schema,
|
|
812
824
|
},
|
|
813
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
825
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":411,"column":3},
|
|
814
826
|
},
|
|
815
827
|
{
|
|
816
828
|
id: '@deepseek-ai/dsh-api-session-controller#session/create',
|
|
@@ -835,7 +847,7 @@ export const TYPERT_REMOTE = {
|
|
|
835
847
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionCreateValue',
|
|
836
848
|
schema: _deepseek_ai_dsh_api_session_controller_session_create_result$schema,
|
|
837
849
|
},
|
|
838
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
850
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":245,"column":3},
|
|
839
851
|
},
|
|
840
852
|
{
|
|
841
853
|
id: '@deepseek-ai/dsh-api-session-controller#session/follow',
|
|
@@ -862,7 +874,7 @@ export const TYPERT_REMOTE = {
|
|
|
862
874
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionFollowFrame',
|
|
863
875
|
schema: _deepseek_ai_dsh_api_session_controller_session_follow_result$schema,
|
|
864
876
|
},
|
|
865
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
877
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":401,"column":3},
|
|
866
878
|
},
|
|
867
879
|
{
|
|
868
880
|
id: '@deepseek-ai/dsh-api-session-controller#session/fork',
|
|
@@ -887,7 +899,7 @@ export const TYPERT_REMOTE = {
|
|
|
887
899
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionForkValue',
|
|
888
900
|
schema: _deepseek_ai_dsh_api_session_controller_session_fork_result$schema,
|
|
889
901
|
},
|
|
890
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
902
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":336,"column":3},
|
|
891
903
|
},
|
|
892
904
|
{
|
|
893
905
|
id: '@deepseek-ai/dsh-api-session-controller#session/list',
|
|
@@ -913,7 +925,7 @@ export const TYPERT_REMOTE = {
|
|
|
913
925
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionListValue',
|
|
914
926
|
schema: _deepseek_ai_dsh_api_session_controller_session_list_result$schema,
|
|
915
927
|
},
|
|
916
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
928
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":224,"column":9},
|
|
917
929
|
},
|
|
918
930
|
{
|
|
919
931
|
id: '@deepseek-ai/dsh-api-session-controller#session/modelCatalog',
|
|
@@ -928,7 +940,7 @@ export const TYPERT_REMOTE = {
|
|
|
928
940
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#ModelCatalog',
|
|
929
941
|
schema: _deepseek_ai_dsh_api_session_controller_session_modelCatalog_result$schema,
|
|
930
942
|
},
|
|
931
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
943
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":264,"column":3},
|
|
932
944
|
},
|
|
933
945
|
{
|
|
934
946
|
id: '@deepseek-ai/dsh-api-session-controller#session/openWorkspacePath',
|
|
@@ -954,7 +966,7 @@ export const TYPERT_REMOTE = {
|
|
|
954
966
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionOpenWorkspacePathValue',
|
|
955
967
|
schema: _deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_result$schema,
|
|
956
968
|
},
|
|
957
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
969
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":294,"column":9},
|
|
958
970
|
},
|
|
959
971
|
{
|
|
960
972
|
id: '@deepseek-ai/dsh-api-session-controller#session/page',
|
|
@@ -980,7 +992,7 @@ export const TYPERT_REMOTE = {
|
|
|
980
992
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionPage',
|
|
981
993
|
schema: _deepseek_ai_dsh_api_session_controller_session_page_result$schema,
|
|
982
994
|
},
|
|
983
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
995
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":389,"column":3},
|
|
984
996
|
},
|
|
985
997
|
{
|
|
986
998
|
id: '@deepseek-ai/dsh-api-session-controller#session/prompt',
|
|
@@ -1006,7 +1018,7 @@ export const TYPERT_REMOTE = {
|
|
|
1006
1018
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionPromptValue',
|
|
1007
1019
|
schema: _deepseek_ai_dsh_api_session_controller_session_prompt_result$schema,
|
|
1008
1020
|
},
|
|
1009
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
1021
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":347,"column":3},
|
|
1010
1022
|
},
|
|
1011
1023
|
{
|
|
1012
1024
|
id: '@deepseek-ai/dsh-api-session-controller#session/rename',
|
|
@@ -1031,7 +1043,7 @@ export const TYPERT_REMOTE = {
|
|
|
1031
1043
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionRenameValue',
|
|
1032
1044
|
schema: _deepseek_ai_dsh_api_session_controller_session_rename_result$schema,
|
|
1033
1045
|
},
|
|
1034
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
1046
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":326,"column":3},
|
|
1035
1047
|
},
|
|
1036
1048
|
{
|
|
1037
1049
|
id: '@deepseek-ai/dsh-api-session-controller#session/search',
|
|
@@ -1057,7 +1069,7 @@ export const TYPERT_REMOTE = {
|
|
|
1057
1069
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionSearchValue',
|
|
1058
1070
|
schema: _deepseek_ai_dsh_api_session_controller_session_search_result$schema,
|
|
1059
1071
|
},
|
|
1060
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
1072
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":235,"column":3},
|
|
1061
1073
|
},
|
|
1062
1074
|
{
|
|
1063
1075
|
id: '@deepseek-ai/dsh-api-session-controller#session/selectModel',
|
|
@@ -1082,7 +1094,7 @@ export const TYPERT_REMOTE = {
|
|
|
1082
1094
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionSelectModelValue',
|
|
1083
1095
|
schema: _deepseek_ai_dsh_api_session_controller_session_selectModel_result$schema,
|
|
1084
1096
|
},
|
|
1085
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
1097
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":255,"column":3},
|
|
1086
1098
|
},
|
|
1087
1099
|
{
|
|
1088
1100
|
id: '@deepseek-ai/dsh-api-session-controller#session/updateQueue',
|
|
@@ -1107,7 +1119,7 @@ export const TYPERT_REMOTE = {
|
|
|
1107
1119
|
typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionUpdateQueueValue',
|
|
1108
1120
|
schema: _deepseek_ai_dsh_api_session_controller_session_updateQueue_result$schema,
|
|
1109
1121
|
},
|
|
1110
|
-
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":
|
|
1122
|
+
sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":368,"column":3},
|
|
1111
1123
|
},
|
|
1112
1124
|
{
|
|
1113
1125
|
id: '@deepseek-ai/dsh-api-session-controller#skills/list',
|
package/lib/types/commands.js
CHANGED
|
@@ -257,10 +257,7 @@ export class SessionCommandController {
|
|
|
257
257
|
? `session "${request.sessionId}" has not completed the turn containing event ${String(atSeq)}`
|
|
258
258
|
: `session "${request.sessionId}" has no completed turn to fork from`, { sessionId: request.sessionId });
|
|
259
259
|
}
|
|
260
|
-
|
|
261
|
-
while (cut < source.events.length && source.events[cut]?.type !== 'turn/start') {
|
|
262
|
-
cut = SessionLogOffset(cut + 1);
|
|
263
|
-
}
|
|
260
|
+
const cut = SessionLogOffset(boundary.seq + 1);
|
|
264
261
|
let workspace;
|
|
265
262
|
try {
|
|
266
263
|
workspace = await this.forkWorkspace(source.header);
|
|
@@ -526,6 +523,7 @@ export class SessionCommandController {
|
|
|
526
523
|
async readSessionState(sessionId) {
|
|
527
524
|
const attached = this.ctx.sessions.get(sessionId);
|
|
528
525
|
if (attached !== undefined) {
|
|
526
|
+
// oxlint-disable-next-line typescript/no-deprecated -- Existing Session history read; migration deferred.
|
|
529
527
|
return { id: attached.id, header: attached.header, events: attached.snapshotEvents() };
|
|
530
528
|
}
|
|
531
529
|
const inspected = await inspectApiSession(this.ctx, sessionId);
|
|
@@ -566,6 +564,7 @@ function hasPromptRequest(agent, requestId) {
|
|
|
566
564
|
};
|
|
567
565
|
if (agent.inbox.nextTurn.some(matches) || agent.inbox.nextStep.some(matches))
|
|
568
566
|
return true;
|
|
567
|
+
// oxlint-disable-next-line typescript/no-deprecated -- Existing Session history read; migration deferred.
|
|
569
568
|
return agent.session.snapshotEvents().some((event) => {
|
|
570
569
|
if (event.type !== 'user/message')
|
|
571
570
|
return false;
|
package/lib/types/history.js
CHANGED
|
@@ -167,6 +167,7 @@ export class SessionHistoryController {
|
|
|
167
167
|
// Constructor seed events have no session/event notification. Normally
|
|
168
168
|
// only the end-seed suffix is new; if persistence advanced after the
|
|
169
169
|
// opening observation, replay everything beyond that snapshot cursor.
|
|
170
|
+
// oxlint-disable-next-line typescript/no-deprecated -- Existing Session history read; migration deferred.
|
|
170
171
|
const suffix = session.snapshotEvents(snapshotCursor === undefined
|
|
171
172
|
? session.firstLiveSeq
|
|
172
173
|
: SessionLogOffset(snapshotCursor + 1));
|
package/lib/types/index.js
CHANGED
|
@@ -281,6 +281,7 @@ let SessionController = (() => {
|
|
|
281
281
|
return Promise.resolve({
|
|
282
282
|
meta: attached.header,
|
|
283
283
|
inheritedEventCount: attached.inheritedEventCount,
|
|
284
|
+
// oxlint-disable-next-line typescript/no-deprecated -- Existing Session history read; migration deferred.
|
|
284
285
|
events: attached.snapshotEvents(),
|
|
285
286
|
});
|
|
286
287
|
}
|
|
@@ -159,6 +159,7 @@ let SessionSkillCatalog = (() => {
|
|
|
159
159
|
return {
|
|
160
160
|
skills: skills.map(skill => ({
|
|
161
161
|
name: skill.name,
|
|
162
|
+
...skill.path === undefined ? {} : { path: skill.path },
|
|
162
163
|
description: skill.description,
|
|
163
164
|
...skill.whenToUse === undefined ? {} : { whenToUse: skill.whenToUse },
|
|
164
165
|
modelInvocable: skill.invocation.modelInvocable,
|
package/lib/types/types.d.ts
CHANGED
|
@@ -219,6 +219,8 @@ export interface SkillListRequest {
|
|
|
219
219
|
}
|
|
220
220
|
/** One skill available to the Session's human-facing composer. */
|
|
221
221
|
export interface SkillEntry {
|
|
222
|
+
/** Absolute SKILL.md path when supplied by a filesystem provider. */
|
|
223
|
+
readonly path?: string;
|
|
222
224
|
/** Kebab-case identifier referenced as `/name`. */
|
|
223
225
|
readonly name: string;
|
|
224
226
|
/** Short routing description. */
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crazx/dsh-api-session-controller",
|
|
3
3
|
"description": "Session Remote commands, cold reads, and live control transport",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.6-alpha.1.zw.2",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -47,7 +47,8 @@
|
|
|
47
47
|
"@deepseek-ai/dsh-api-gateway/client"
|
|
48
48
|
],
|
|
49
49
|
"inject": [
|
|
50
|
-
"@deepseek-ai/dsh-api-gateway"
|
|
50
|
+
"@deepseek-ai/dsh-api-gateway",
|
|
51
|
+
"@deepseek-ai/dsh-client-file-upload"
|
|
51
52
|
],
|
|
52
53
|
"platform": "web"
|
|
53
54
|
}
|
|
@@ -64,42 +65,42 @@
|
|
|
64
65
|
],
|
|
65
66
|
"license": "MIT",
|
|
66
67
|
"dependencies": {
|
|
67
|
-
"@deepseek-ai/dsh-brand": "^0.1.
|
|
68
|
-
"@deepseek-ai/dsh-deque": "^0.1.
|
|
68
|
+
"@deepseek-ai/dsh-brand": "^0.1.6-alpha.1",
|
|
69
|
+
"@deepseek-ai/dsh-deque": "^0.1.6-alpha.1",
|
|
69
70
|
"@deepseek-ai/schemastery": "^3.18.2",
|
|
70
71
|
"mime-types": "^3.0.2",
|
|
71
72
|
"zod": "^4.4.3"
|
|
72
73
|
},
|
|
73
74
|
"peerDependencies": {
|
|
74
75
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
75
|
-
"@deepseek-ai/dsh-agent": "^0.1.
|
|
76
|
-
"@deepseek-ai/dsh-agent-default-model": "0.1.
|
|
77
|
-
"@deepseek-ai/dsh-agent-presets": "^0.1.
|
|
78
|
-
"@deepseek-ai/dsh-api-gateway": "^0.1.
|
|
79
|
-
"@deepseek-ai/dsh-attachment": "^0.1.
|
|
80
|
-
"@deepseek-ai/dsh-client-connection": "^0.1.
|
|
81
|
-
"@deepseek-ai/dsh-client-file-upload": "^0.1.
|
|
82
|
-
"@deepseek-ai/dsh-commands": "^0.1.
|
|
83
|
-
"@deepseek-ai/dsh-file-reference": "^0.1.
|
|
84
|
-
"@deepseek-ai/dsh-fs": "^0.1.
|
|
85
|
-
"@deepseek-ai/dsh-jobs": "^0.1.
|
|
86
|
-
"@deepseek-ai/dsh-llm": "^0.1.
|
|
87
|
-
"@deepseek-ai/dsh-native-command": "^0.1.
|
|
88
|
-
"@deepseek-ai/dsh-scope": "^0.1.
|
|
89
|
-
"@deepseek-ai/dsh-session": "^0.1.
|
|
90
|
-
"@deepseek-ai/dsh-session-persistence": "^0.1.
|
|
91
|
-
"@deepseek-ai/dsh-session-projection": "^0.1.
|
|
92
|
-
"@deepseek-ai/dsh-session-projection-cache": "^0.1.
|
|
93
|
-
"@deepseek-ai/dsh-session-query": "^0.1.
|
|
94
|
-
"@deepseek-ai/dsh-session-title": "^0.1.
|
|
95
|
-
"@deepseek-ai/dsh-skill": "^0.1.
|
|
96
|
-
"@deepseek-ai/dsh-subagent": "^0.1.
|
|
97
|
-
"@deepseek-ai/dsh-typert-protocol": "^0.1.
|
|
98
|
-
"@deepseek-ai/dsh-typert-registry": "^0.1.
|
|
99
|
-
"@deepseek-ai/dsh-util-time": "^0.1.
|
|
100
|
-
"@deepseek-ai/dsh-util-values": "^0.1.
|
|
101
|
-
"@deepseek-ai/dsh-util-workspace-path": "^0.1.
|
|
102
|
-
"@deepseek-ai/dsh-workspace": "^0.1.
|
|
76
|
+
"@deepseek-ai/dsh-agent": "^0.1.6-alpha.1",
|
|
77
|
+
"@deepseek-ai/dsh-agent-default-model": "0.1.6-alpha.1.zw.2",
|
|
78
|
+
"@deepseek-ai/dsh-agent-presets": "^0.1.6-alpha.1",
|
|
79
|
+
"@deepseek-ai/dsh-api-gateway": "^0.1.6-alpha.1",
|
|
80
|
+
"@deepseek-ai/dsh-attachment": "^0.1.6-alpha.1",
|
|
81
|
+
"@deepseek-ai/dsh-client-connection": "^0.1.6-alpha.1",
|
|
82
|
+
"@deepseek-ai/dsh-client-file-upload": "^0.1.6-alpha.1",
|
|
83
|
+
"@deepseek-ai/dsh-commands": "^0.1.6-alpha.1",
|
|
84
|
+
"@deepseek-ai/dsh-file-reference": "^0.1.6-alpha.1",
|
|
85
|
+
"@deepseek-ai/dsh-fs": "^0.1.6-alpha.1",
|
|
86
|
+
"@deepseek-ai/dsh-jobs": "^0.1.6-alpha.1",
|
|
87
|
+
"@deepseek-ai/dsh-llm": "^0.1.6-alpha.1",
|
|
88
|
+
"@deepseek-ai/dsh-native-command": "^0.1.6-alpha.1",
|
|
89
|
+
"@deepseek-ai/dsh-scope": "^0.1.6-alpha.1",
|
|
90
|
+
"@deepseek-ai/dsh-session": "^0.1.6-alpha.1",
|
|
91
|
+
"@deepseek-ai/dsh-session-persistence": "^0.1.6-alpha.1",
|
|
92
|
+
"@deepseek-ai/dsh-session-projection": "^0.1.6-alpha.1",
|
|
93
|
+
"@deepseek-ai/dsh-session-projection-cache": "^0.1.6-alpha.1",
|
|
94
|
+
"@deepseek-ai/dsh-session-query": "^0.1.6-alpha.1",
|
|
95
|
+
"@deepseek-ai/dsh-session-title": "^0.1.6-alpha.1",
|
|
96
|
+
"@deepseek-ai/dsh-skill": "^0.1.6-alpha.1",
|
|
97
|
+
"@deepseek-ai/dsh-subagent": "^0.1.6-alpha.1",
|
|
98
|
+
"@deepseek-ai/dsh-typert-protocol": "^0.1.6-alpha.1",
|
|
99
|
+
"@deepseek-ai/dsh-typert-registry": "^0.1.6-alpha.1",
|
|
100
|
+
"@deepseek-ai/dsh-util-time": "^0.1.6-alpha.1",
|
|
101
|
+
"@deepseek-ai/dsh-util-values": "^0.1.6-alpha.1",
|
|
102
|
+
"@deepseek-ai/dsh-util-workspace-path": "^0.1.6-alpha.1",
|
|
103
|
+
"@deepseek-ai/dsh-workspace": "^0.1.6-alpha.1"
|
|
103
104
|
},
|
|
104
105
|
"peerDependenciesMeta": {
|
|
105
106
|
"@deepseek-ai/dsh-jobs": {
|
|
@@ -114,43 +115,45 @@
|
|
|
114
115
|
},
|
|
115
116
|
"devDependencies": {
|
|
116
117
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
117
|
-
"@deepseek-ai/dsh-agent": "^0.1.
|
|
118
|
-
"@deepseek-ai/dsh-agent-default-model": "npm:@crazx/dsh-agent-default-model@0.1.
|
|
119
|
-
"@deepseek-ai/dsh-agent-loop": "^0.1.
|
|
120
|
-
"@deepseek-ai/dsh-agent-loop-testkit": "^0.1.
|
|
121
|
-
"@deepseek-ai/dsh-agent-presets": "^0.1.
|
|
122
|
-
"@deepseek-ai/dsh-api-gateway": "^0.1.
|
|
123
|
-
"@deepseek-ai/dsh-attachment": "^0.1.
|
|
124
|
-
"@deepseek-ai/dsh-client-connection": "^0.1.
|
|
125
|
-
"@deepseek-ai/dsh-client-file-upload": "^0.1.
|
|
126
|
-
"@deepseek-ai/dsh-client-store": "^0.1.
|
|
127
|
-
"@deepseek-ai/dsh-
|
|
128
|
-
"@deepseek-ai/dsh-
|
|
129
|
-
"@deepseek-ai/dsh-
|
|
130
|
-
"@deepseek-ai/dsh-fs
|
|
131
|
-
"@deepseek-ai/dsh-
|
|
132
|
-
"@deepseek-ai/dsh-
|
|
133
|
-
"@deepseek-ai/dsh-
|
|
134
|
-
"@deepseek-ai/dsh-
|
|
135
|
-
"@deepseek-ai/dsh-
|
|
136
|
-
"@deepseek-ai/dsh-
|
|
137
|
-
"@deepseek-ai/dsh-
|
|
138
|
-
"@deepseek-ai/dsh-session
|
|
139
|
-
"@deepseek-ai/dsh-session-
|
|
140
|
-
"@deepseek-ai/dsh-session-
|
|
141
|
-
"@deepseek-ai/dsh-session-
|
|
142
|
-
"@deepseek-ai/dsh-
|
|
143
|
-
"@deepseek-ai/dsh-
|
|
144
|
-
"@deepseek-ai/dsh-
|
|
145
|
-
"@deepseek-ai/dsh-storage
|
|
146
|
-
"@deepseek-ai/dsh-
|
|
147
|
-
"@deepseek-ai/dsh-
|
|
148
|
-
"@deepseek-ai/dsh-
|
|
149
|
-
"@deepseek-ai/dsh-
|
|
150
|
-
"@deepseek-ai/dsh-
|
|
151
|
-
"@deepseek-ai/dsh-util-
|
|
152
|
-
"@deepseek-ai/dsh-util-
|
|
153
|
-
"@deepseek-ai/dsh-
|
|
118
|
+
"@deepseek-ai/dsh-agent": "^0.1.6-alpha.1",
|
|
119
|
+
"@deepseek-ai/dsh-agent-default-model": "npm:@crazx/dsh-agent-default-model@0.1.6-alpha.1.zw.2",
|
|
120
|
+
"@deepseek-ai/dsh-agent-loop": "^0.1.6-alpha.1",
|
|
121
|
+
"@deepseek-ai/dsh-agent-loop-testkit": "^0.1.6-alpha.1",
|
|
122
|
+
"@deepseek-ai/dsh-agent-presets": "^0.1.6-alpha.1",
|
|
123
|
+
"@deepseek-ai/dsh-api-gateway": "^0.1.6-alpha.1",
|
|
124
|
+
"@deepseek-ai/dsh-attachment": "^0.1.6-alpha.1",
|
|
125
|
+
"@deepseek-ai/dsh-client-connection": "^0.1.6-alpha.1",
|
|
126
|
+
"@deepseek-ai/dsh-client-file-upload": "^0.1.6-alpha.1",
|
|
127
|
+
"@deepseek-ai/dsh-client-store": "^0.1.6-alpha.1",
|
|
128
|
+
"@deepseek-ai/dsh-client-test-runtime": "npm:@crazx/dsh-client-test-runtime@0.1.6-alpha.1.zw.2",
|
|
129
|
+
"@deepseek-ai/dsh-commands": "^0.1.6-alpha.1",
|
|
130
|
+
"@deepseek-ai/dsh-file-reference": "^0.1.6-alpha.1",
|
|
131
|
+
"@deepseek-ai/dsh-fs": "^0.1.6-alpha.1",
|
|
132
|
+
"@deepseek-ai/dsh-fs-local": "^0.1.6-alpha.1",
|
|
133
|
+
"@deepseek-ai/dsh-jobs": "^0.1.6-alpha.1",
|
|
134
|
+
"@deepseek-ai/dsh-llm": "^0.1.6-alpha.1",
|
|
135
|
+
"@deepseek-ai/dsh-native-command": "^0.1.6-alpha.1",
|
|
136
|
+
"@deepseek-ai/dsh-permission-presets": "^0.1.6-alpha.1",
|
|
137
|
+
"@deepseek-ai/dsh-remote-mock": "^0.1.6-alpha.1",
|
|
138
|
+
"@deepseek-ai/dsh-scope": "^0.1.6-alpha.1",
|
|
139
|
+
"@deepseek-ai/dsh-session": "^0.1.6-alpha.1",
|
|
140
|
+
"@deepseek-ai/dsh-session-persistence": "^0.1.6-alpha.1",
|
|
141
|
+
"@deepseek-ai/dsh-session-projection": "^0.1.6-alpha.1",
|
|
142
|
+
"@deepseek-ai/dsh-session-projection-cache": "^0.1.6-alpha.1",
|
|
143
|
+
"@deepseek-ai/dsh-session-query": "^0.1.6-alpha.1",
|
|
144
|
+
"@deepseek-ai/dsh-session-title": "^0.1.6-alpha.1",
|
|
145
|
+
"@deepseek-ai/dsh-skill": "^0.1.6-alpha.1",
|
|
146
|
+
"@deepseek-ai/dsh-storage": "^0.1.6-alpha.1",
|
|
147
|
+
"@deepseek-ai/dsh-storage-domain": "^0.1.6-alpha.1",
|
|
148
|
+
"@deepseek-ai/dsh-storage-json": "^0.1.6-alpha.1",
|
|
149
|
+
"@deepseek-ai/dsh-subagent": "^0.1.6-alpha.1",
|
|
150
|
+
"@deepseek-ai/dsh-typert-protocol": "^0.1.6-alpha.1",
|
|
151
|
+
"@deepseek-ai/dsh-typert-registry": "^0.1.6-alpha.1",
|
|
152
|
+
"@deepseek-ai/dsh-util-crypto": "^0.1.6-alpha.1",
|
|
153
|
+
"@deepseek-ai/dsh-util-time": "^0.1.6-alpha.1",
|
|
154
|
+
"@deepseek-ai/dsh-util-values": "^0.1.6-alpha.1",
|
|
155
|
+
"@deepseek-ai/dsh-util-workspace-path": "^0.1.6-alpha.1",
|
|
156
|
+
"@deepseek-ai/dsh-workspace": "^0.1.6-alpha.1",
|
|
154
157
|
"@types/mime-types": "^3.0.1"
|
|
155
158
|
},
|
|
156
159
|
"scripts": {
|