@deepseek-ai/dsh-subagent 0.1.3-alpha.2 → 0.1.5-alpha.1
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 +1 -1
- package/README.zh.md +1 -1
- package/lib/index.js +4 -3
- package/lib/typert.host.js +15 -7
- package/lib/types/continuation-activation.js +3 -2
- package/lib/types/inbox.js +1 -1
- package/package.json +46 -45
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/subagent/subagent/README.md
|
|
5
|
-
README.md:
|
|
6
|
-
README.zh.md:
|
|
5
|
+
README.md: 6b58f36fcd4d6e8a198ddc86e80ccc28491a0a34
|
|
6
|
+
README.zh.md: be99e7c91f13c6d83a6375047ec5f21d55b21053
|
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ English | [中文](README.zh.md)
|
|
|
9
9
|
|
|
10
10
|
## Summary
|
|
11
11
|
|
|
12
|
-
`dsh-subagent`
|
|
12
|
+
Use `dsh-subagent` to delegate work to named child agents, collect their results, and continue supported child conversations across turns. A composition can offer in-process, ACP, SDK, Codex, or Claude Code children side by side. Choose one-shot children for a single result or continuable children for later messages and interruption. You can also inspect available children, their mode, activity, and lineage without loading or resuming them. Enable at least one supported child backend and a delegation tool.
|
|
13
13
|
|
|
14
14
|
## Table of Contents
|
|
15
15
|
|
package/README.zh.md
CHANGED
|
@@ -9,7 +9,7 @@ kind: "package-reference"
|
|
|
9
9
|
|
|
10
10
|
## 概述
|
|
11
11
|
|
|
12
|
-
`dsh-subagent`
|
|
12
|
+
使用 `dsh-subagent` 把工作委派给具名子 agent、收集结果,并跨轮次继续受支持的子级对话。一个组合可以并排提供进程内、ACP、SDK、Codex 或 Claude Code 子级。需要单个结果时选择一次性子级;需要后续消息与中断能力时选择可继续子级。你还可以检查可用子级及其模式、活动状态与血缘,而无需加载或恢复它们。启用时需要至少一个受支持的子级后端和一个委派工具。
|
|
13
13
|
|
|
14
14
|
## 目录
|
|
15
15
|
|
package/lib/index.js
CHANGED
|
@@ -708,7 +708,7 @@ var SubagentInbox = class {
|
|
|
708
708
|
* @returns whether either Agent inbox destination is non-empty.
|
|
709
709
|
*/
|
|
710
710
|
get hasPending() {
|
|
711
|
-
return this.agent.inbox.
|
|
711
|
+
return this.agent.inbox.nextTurn.length > 0 || this.agent.inbox.nextStep.length > 0;
|
|
712
712
|
}
|
|
713
713
|
/**
|
|
714
714
|
* Submit through the Agent only while its Activation remains resident.
|
|
@@ -1060,8 +1060,7 @@ var ContinuableActivationRegistry = class {
|
|
|
1060
1060
|
async materializeTracked(inputs, parentLineage) {
|
|
1061
1061
|
const { childId, provider, parent, create } = inputs;
|
|
1062
1062
|
inputs.signal.throwIfAborted();
|
|
1063
|
-
const setup = (childCtx) => {
|
|
1064
|
-
const child = childCtx.agent;
|
|
1063
|
+
const setup = (childCtx, child) => {
|
|
1065
1064
|
if (create !== void 0) {
|
|
1066
1065
|
child.session.append("subagent/descriptor", create.descriptor);
|
|
1067
1066
|
appendDelegatedPolicyOverrides(child.session, create.delegatedPolicies);
|
|
@@ -1071,11 +1070,13 @@ var ContinuableActivationRegistry = class {
|
|
|
1071
1070
|
const observer = this.observeActivation(provider, childId, parent);
|
|
1072
1071
|
const handle = create === void 0 ? await this.ownerCtx.agents.resume({
|
|
1073
1072
|
resumeSessionId: childId,
|
|
1073
|
+
parentAgent: parent,
|
|
1074
1074
|
agentOptions: inputs.agentOptions,
|
|
1075
1075
|
signal: inputs.signal,
|
|
1076
1076
|
setup
|
|
1077
1077
|
}) : await this.ownerCtx.agents.create({
|
|
1078
1078
|
sessionId: childId,
|
|
1079
|
+
parentAgent: parent,
|
|
1079
1080
|
meta: create.meta,
|
|
1080
1081
|
...create.seed === void 0 ? {} : { seed: create.seed },
|
|
1081
1082
|
inheritedEventCount: create.inheritedEventCount,
|
package/lib/typert.host.js
CHANGED
|
@@ -386,7 +386,7 @@ export const TYPERT = {
|
|
|
386
386
|
},
|
|
387
387
|
{
|
|
388
388
|
"name": "EpochHeader",
|
|
389
|
-
"declaration": "export interface EpochHeader {\n config: LlmCallConfig;\n adapterDefaults?: LlmCallConfigAdapterDefaults;\n
|
|
389
|
+
"declaration": "export interface EpochHeader {\n config: LlmCallConfig;\n adapterDefaults?: LlmCallConfigAdapterDefaults;\n tools?: ToolSchema[];\n}"
|
|
390
390
|
},
|
|
391
391
|
{
|
|
392
392
|
"name": "FileAttachmentRef",
|
|
@@ -458,7 +458,7 @@ export const TYPERT = {
|
|
|
458
458
|
},
|
|
459
459
|
{
|
|
460
460
|
"name": "Inbox",
|
|
461
|
-
"declaration": "export
|
|
461
|
+
"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}"
|
|
462
462
|
},
|
|
463
463
|
{
|
|
464
464
|
"name": "InboxTarget",
|
|
@@ -578,7 +578,7 @@ export const TYPERT = {
|
|
|
578
578
|
},
|
|
579
579
|
{
|
|
580
580
|
"name": "RequestContext",
|
|
581
|
-
"declaration": "export interface RequestContext {\n provider: string;\n model: string;\n contextWindow?: number;\n}"
|
|
581
|
+
"declaration": "export interface RequestContext {\n provider: string;\n model: string;\n contextWindow?: number;\n systemPromptUpdate?: SystemPromptUpdate;\n}"
|
|
582
582
|
},
|
|
583
583
|
{
|
|
584
584
|
"name": "RequestHeaderReason",
|
|
@@ -598,11 +598,11 @@ export const TYPERT = {
|
|
|
598
598
|
},
|
|
599
599
|
{
|
|
600
600
|
"name": "SessionEvent",
|
|
601
|
-
"declaration": "export type SessionEvent<T extends SessionEventType = SessionEventType> = { [K in SessionEventType]: { type: K; seq: SessionSeq; time: number; data: SessionEventMap[K]; ignorable?: true; } & (K extends SurfaceEventType ? {
|
|
601
|
+
"declaration": "export type SessionEvent<T extends SessionEventType = SessionEventType> = { [K in SessionEventType]: { type: K; seq: SessionSeq; time: number; data: SessionEventMap[K]; ignorable?: true; } & (K extends SurfaceEventType ? SurfaceIntent<K> : { surfaceOp?: never; sourceEventSeqs?: never; }) }[T];"
|
|
602
602
|
},
|
|
603
603
|
{
|
|
604
604
|
"name": "SessionEventMap",
|
|
605
|
-
"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 '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/
|
|
605
|
+
"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 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\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}"
|
|
606
606
|
},
|
|
607
607
|
{
|
|
608
608
|
"name": "SessionEventType",
|
|
@@ -738,7 +738,7 @@ export const TYPERT = {
|
|
|
738
738
|
},
|
|
739
739
|
{
|
|
740
740
|
"name": "SurfaceEventType",
|
|
741
|
-
"declaration": "export type SurfaceEventType = 'user/message' | 'assistant/message' | 'tool/result';"
|
|
741
|
+
"declaration": "export type SurfaceEventType = 'system/message' | 'user/message' | 'assistant/message' | 'tool/result';"
|
|
742
742
|
},
|
|
743
743
|
{
|
|
744
744
|
"name": "SurfaceIntent",
|
|
@@ -746,7 +746,15 @@ export const TYPERT = {
|
|
|
746
746
|
},
|
|
747
747
|
{
|
|
748
748
|
"name": "SurfaceOp",
|
|
749
|
-
"declaration": "export type SurfaceOp = 'append' | { op: 'replace';
|
|
749
|
+
"declaration": "export type SurfaceOp = 'append' | { op: 'replace'; startSeq: SessionSeq; endSeq: SessionSeq; };"
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
"name": "SystemMessage",
|
|
753
|
+
"declaration": "export interface SystemMessage extends Message {\n readonly role: 'system';\n readonly source: MessageSourceMap['plugin'];\n}"
|
|
754
|
+
},
|
|
755
|
+
{
|
|
756
|
+
"name": "SystemPromptUpdate",
|
|
757
|
+
"declaration": "export type SystemPromptUpdate = 'in-history';"
|
|
750
758
|
},
|
|
751
759
|
{
|
|
752
760
|
"name": "TeamId",
|
|
@@ -405,8 +405,7 @@ export class ContinuableActivationRegistry {
|
|
|
405
405
|
async materializeTracked(inputs, parentLineage) {
|
|
406
406
|
const { childId, provider, parent, create } = inputs;
|
|
407
407
|
inputs.signal.throwIfAborted();
|
|
408
|
-
const setup = (childCtx) => {
|
|
409
|
-
const child = childCtx.agent;
|
|
408
|
+
const setup = (childCtx, child) => {
|
|
410
409
|
// Only fresh creation appends the descriptor and delegated policy after
|
|
411
410
|
// the inherited marker; a cold resume replays those persisted events.
|
|
412
411
|
if (create !== undefined) {
|
|
@@ -419,12 +418,14 @@ export class ContinuableActivationRegistry {
|
|
|
419
418
|
const handle = create === undefined
|
|
420
419
|
? await this.ownerCtx.agents.resume({
|
|
421
420
|
resumeSessionId: childId,
|
|
421
|
+
parentAgent: parent,
|
|
422
422
|
agentOptions: inputs.agentOptions,
|
|
423
423
|
signal: inputs.signal,
|
|
424
424
|
setup,
|
|
425
425
|
})
|
|
426
426
|
: await this.ownerCtx.agents.create({
|
|
427
427
|
sessionId: childId,
|
|
428
|
+
parentAgent: parent,
|
|
428
429
|
meta: create.meta,
|
|
429
430
|
...(create.seed === undefined ? {} : { seed: create.seed }),
|
|
430
431
|
inheritedEventCount: create.inheritedEventCount,
|
package/lib/types/inbox.js
CHANGED
|
@@ -27,7 +27,7 @@ export class SubagentInbox {
|
|
|
27
27
|
* @returns whether either Agent inbox destination is non-empty.
|
|
28
28
|
*/
|
|
29
29
|
get hasPending() {
|
|
30
|
-
return this.agent.inbox.
|
|
30
|
+
return this.agent.inbox.nextTurn.length > 0 || this.agent.inbox.nextStep.length > 0;
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
33
|
* Submit through the Agent only while its Activation remains resident.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepseek-ai/dsh-subagent",
|
|
3
3
|
"description": "Abstract subagent seam (ctx.subagents): named-provider registry for delegating to child agents",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.5-alpha.1",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -54,30 +54,30 @@
|
|
|
54
54
|
"license": "MIT",
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"zod": "^4.4.3",
|
|
57
|
-
"@deepseek-ai/dsh-
|
|
58
|
-
"@deepseek-ai/dsh-
|
|
57
|
+
"@deepseek-ai/dsh-util-values": "^0.1.5-alpha.1",
|
|
58
|
+
"@deepseek-ai/dsh-brand": "^0.1.5-alpha.1"
|
|
59
59
|
},
|
|
60
60
|
"peerDependencies": {
|
|
61
|
-
"@deepseek-ai/
|
|
62
|
-
"@deepseek-ai/dsh-
|
|
63
|
-
"@deepseek-ai/dsh-
|
|
64
|
-
"@deepseek-ai/dsh-
|
|
65
|
-
"@deepseek-ai/dsh-
|
|
66
|
-
"@deepseek-ai/dsh-
|
|
67
|
-
"@deepseek-ai/dsh-
|
|
68
|
-
"@deepseek-ai/dsh-
|
|
69
|
-
"@deepseek-ai/dsh-
|
|
70
|
-
"@deepseek-ai/dsh-session": "^0.1.
|
|
71
|
-
"@deepseek-ai/dsh-session-
|
|
72
|
-
"@deepseek-ai/dsh-
|
|
73
|
-
"@deepseek-ai/dsh-
|
|
74
|
-
"@deepseek-ai/dsh-session
|
|
75
|
-
"@deepseek-ai/dsh-
|
|
76
|
-
"@deepseek-ai/dsh-typert-protocol": "^0.1.
|
|
77
|
-
"@deepseek-ai/dsh-
|
|
78
|
-
"@deepseek-ai/dsh-
|
|
79
|
-
"@deepseek-ai/dsh-
|
|
80
|
-
"@deepseek-ai/
|
|
61
|
+
"@deepseek-ai/dsh-attachment": "^0.1.5-alpha.1",
|
|
62
|
+
"@deepseek-ai/dsh-invariants": "^0.1.5-alpha.1",
|
|
63
|
+
"@deepseek-ai/dsh-jobs": "^0.1.5-alpha.1",
|
|
64
|
+
"@deepseek-ai/dsh-llm": "^0.1.5-alpha.1",
|
|
65
|
+
"@deepseek-ai/dsh-sandbox": "^0.1.5-alpha.1",
|
|
66
|
+
"@deepseek-ai/dsh-scope": "^0.1.5-alpha.1",
|
|
67
|
+
"@deepseek-ai/dsh-sandbox-policy": "^0.1.5-alpha.1",
|
|
68
|
+
"@deepseek-ai/dsh-session-persistence": "^0.1.5-alpha.1",
|
|
69
|
+
"@deepseek-ai/dsh-session-projection": "^0.1.5-alpha.1",
|
|
70
|
+
"@deepseek-ai/dsh-session-projection-cache": "^0.1.5-alpha.1",
|
|
71
|
+
"@deepseek-ai/dsh-session-query": "^0.1.5-alpha.1",
|
|
72
|
+
"@deepseek-ai/dsh-system-prompt": "^0.1.5-alpha.1",
|
|
73
|
+
"@deepseek-ai/dsh-tools": "^0.1.5-alpha.1",
|
|
74
|
+
"@deepseek-ai/dsh-session": "^0.1.5-alpha.1",
|
|
75
|
+
"@deepseek-ai/dsh-agent": "^0.1.5-alpha.1",
|
|
76
|
+
"@deepseek-ai/dsh-typert-protocol": "^0.1.5-alpha.1",
|
|
77
|
+
"@deepseek-ai/dsh-user-approval": "^0.1.5-alpha.1",
|
|
78
|
+
"@deepseek-ai/dsh-util-time": "^0.1.5-alpha.1",
|
|
79
|
+
"@deepseek-ai/dsh-agent-presets": "^0.1.5-alpha.1",
|
|
80
|
+
"@deepseek-ai/cordis": "^4.0.2"
|
|
81
81
|
},
|
|
82
82
|
"peerDependenciesMeta": {
|
|
83
83
|
"@deepseek-ai/dsh-agent-presets": {
|
|
@@ -110,27 +110,28 @@
|
|
|
110
110
|
},
|
|
111
111
|
"devDependencies": {
|
|
112
112
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
113
|
-
"@deepseek-ai/dsh-agent": "^0.1.
|
|
114
|
-
"@deepseek-ai/dsh-
|
|
115
|
-
"@deepseek-ai/dsh-
|
|
116
|
-
"@deepseek-ai/dsh-
|
|
117
|
-
"@deepseek-ai/dsh-jobs": "^0.1.
|
|
118
|
-
"@deepseek-ai/dsh-llm": "^0.1.
|
|
119
|
-
"@deepseek-ai/dsh-sandbox-policy": "^0.1.
|
|
120
|
-
"@deepseek-ai/dsh-sandbox": "^0.1.
|
|
121
|
-
"@deepseek-ai/dsh-
|
|
122
|
-
"@deepseek-ai/dsh-
|
|
123
|
-
"@deepseek-ai/dsh-session
|
|
124
|
-
"@deepseek-ai/dsh-session-
|
|
125
|
-
"@deepseek-ai/dsh-session-
|
|
126
|
-
"@deepseek-ai/dsh-
|
|
127
|
-
"@deepseek-ai/dsh-session-
|
|
128
|
-
"@deepseek-ai/dsh-storage
|
|
129
|
-
"@deepseek-ai/dsh-
|
|
130
|
-
"@deepseek-ai/dsh-
|
|
131
|
-
"@deepseek-ai/dsh-typert-protocol": "^0.1.
|
|
132
|
-
"@deepseek-ai/dsh-user-approval": "^0.1.
|
|
133
|
-
"@deepseek-ai/dsh-
|
|
134
|
-
"@deepseek-ai/dsh-
|
|
113
|
+
"@deepseek-ai/dsh-agent": "^0.1.5-alpha.1",
|
|
114
|
+
"@deepseek-ai/dsh-attachment": "^0.1.5-alpha.1",
|
|
115
|
+
"@deepseek-ai/dsh-invariants": "^0.1.5-alpha.1",
|
|
116
|
+
"@deepseek-ai/dsh-agent-presets": "^0.1.5-alpha.1",
|
|
117
|
+
"@deepseek-ai/dsh-jobs": "^0.1.5-alpha.1",
|
|
118
|
+
"@deepseek-ai/dsh-llm": "^0.1.5-alpha.1",
|
|
119
|
+
"@deepseek-ai/dsh-sandbox-policy": "^0.1.5-alpha.1",
|
|
120
|
+
"@deepseek-ai/dsh-sandbox": "^0.1.5-alpha.1",
|
|
121
|
+
"@deepseek-ai/dsh-schedule": "^0.1.5-alpha.1",
|
|
122
|
+
"@deepseek-ai/dsh-scope": "^0.1.5-alpha.1",
|
|
123
|
+
"@deepseek-ai/dsh-session": "^0.1.5-alpha.1",
|
|
124
|
+
"@deepseek-ai/dsh-session-persistence": "^0.1.5-alpha.1",
|
|
125
|
+
"@deepseek-ai/dsh-session-projection": "^0.1.5-alpha.1",
|
|
126
|
+
"@deepseek-ai/dsh-session-projection-cache": "^0.1.5-alpha.1",
|
|
127
|
+
"@deepseek-ai/dsh-session-query": "^0.1.5-alpha.1",
|
|
128
|
+
"@deepseek-ai/dsh-storage": "^0.1.5-alpha.1",
|
|
129
|
+
"@deepseek-ai/dsh-storage-domain": "^0.1.5-alpha.1",
|
|
130
|
+
"@deepseek-ai/dsh-system-prompt": "^0.1.5-alpha.1",
|
|
131
|
+
"@deepseek-ai/dsh-typert-protocol": "^0.1.5-alpha.1",
|
|
132
|
+
"@deepseek-ai/dsh-user-approval": "^0.1.5-alpha.1",
|
|
133
|
+
"@deepseek-ai/dsh-util-time": "^0.1.5-alpha.1",
|
|
134
|
+
"@deepseek-ai/dsh-tools": "^0.1.5-alpha.1",
|
|
135
|
+
"@deepseek-ai/dsh-storage-json": "^0.1.5-alpha.1"
|
|
135
136
|
}
|
|
136
137
|
}
|