@deepseek-ai/dsh-user-questions 0.2.1-alpha.2 → 0.2.1-alpha.4

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.
@@ -1,40 +1,53 @@
1
1
  /* Generated by @deepseek-ai/dsh-typert-generator from FaceModel — do not edit. */
2
2
  import { z } from 'zod'
3
3
 
4
+ import { createTypertRemoteInfo } from '@deepseek-ai/dsh-typert-protocol/remote-info'
5
+
4
6
  let _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0$schema$value
5
- const _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
7
+ const _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0$schema$value ??= z.string())
6
8
  let _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1$schema$value
7
- const _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1$schema$value ??= z.intersection(z.string(), z.unknown()))
9
+ const _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1$schema$value ??= z.string())
8
10
  let _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_2$schema$value
9
11
  const _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_2$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_2$schema$value ??= z.object({
10
12
  'answers': z.array(z.object({
11
- 'id': z.string(),
12
- 'selected': z.array(z.string()),
13
- 'custom': z.string().optional(),
14
- })),
13
+ 'id': z.string().describe('The answered question id.'),
14
+ 'selected': z.array(z.string()).describe('Selected option labels. May accompany custom text for a multi-select question.'),
15
+ 'custom': z.string().optional().describe('Optional free-text "Other" answer.'),
16
+ })).describe('Structured answers keyed by question id.'),
15
17
  }))
16
18
  let _deepseek_ai_dsh_user_questions_userQuestions_answer_result$schema$value
17
19
  const _deepseek_ai_dsh_user_questions_userQuestions_answer_result$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_result$schema$value ??= z.boolean())
18
20
  let _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0$schema$value
19
- const _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
21
+ const _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0$schema$value ??= z.string())
20
22
  let _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1$schema$value
21
- const _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1$schema$value ??= z.intersection(z.string(), z.unknown()))
23
+ const _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1$schema$value ??= z.string())
22
24
  let _deepseek_ai_dsh_user_questions_userQuestions_attachWait_result$schema$value
23
25
  const _deepseek_ai_dsh_user_questions_userQuestions_attachWait_result$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_attachWait_result$schema$value ??= z.object({
24
26
  'remainingMs': z.number(),
25
27
  }))
28
+ let _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0_strict$schema$value
29
+ const _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0_strict$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0_strict$schema$value ??= z.string())
30
+ let _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1_strict$schema$value
31
+ const _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1_strict$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1_strict$schema$value ??= z.string())
32
+ let _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_2_strict$schema$value
33
+ const _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_2_strict$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_2_strict$schema$value ??= z.strictObject({
34
+ 'answers': z.array(z.strictObject({
35
+ 'id': z.string().describe('The answered question id.'),
36
+ 'selected': z.array(z.string()).describe('Selected option labels. May accompany custom text for a multi-select question.'),
37
+ 'custom': z.string().optional().describe('Optional free-text "Other" answer.'),
38
+ })).describe('Structured answers keyed by question id.'),
39
+ }))
40
+ let _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0_strict$schema$value
41
+ const _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0_strict$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0_strict$schema$value ??= z.string())
42
+ let _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1_strict$schema$value
43
+ const _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1_strict$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1_strict$schema$value ??= z.string())
26
44
 
27
- export const TYPERT = {
45
+ const $remote = createTypertRemoteInfo({
28
46
  package: '@deepseek-ai/dsh-user-questions',
29
- face: 'host',
30
- schemas: [
31
- ],
32
- invocations: [
33
- {
34
- id: '@deepseek-ai/dsh-user-questions#userQuestions/answer',
47
+ methods: {
48
+ 'userQuestions/answer': {
35
49
  service: 'userQuestions',
36
- namespace: 'userQuestions',
37
- method: 'answer',
50
+ description: 'Answer a continued question. The reply is steered into the agent as a user message whose source names the call; that message is also the record that closes the question in the projection.',
38
51
  invocation: { kind: 'direct' },
39
52
  scope: {
40
53
  context: 'agent',
@@ -44,32 +57,54 @@ export const TYPERT = {
44
57
  {
45
58
  name: 'agent',
46
59
  wire: 'agentId',
60
+ description: 'Live root agent for the owning Session.',
47
61
  source: 'lookup',
48
62
  lookup: 'agent',
49
63
  codec: {
50
64
  mode: 'strict',
51
65
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
52
66
  create: _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0$schema,
67
+ jsonSchema: {"type":"string"},
68
+ },
69
+ strictCodec: {
70
+ mode: 'strict',
71
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
72
+ create: _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0_strict$schema,
73
+ jsonSchema: {"type":"string"},
53
74
  },
54
75
  },
55
76
  {
56
77
  name: 'callId',
57
- wire: 'callId',
78
+ description: 'Continued question identity.',
58
79
  source: 'json',
59
80
  codec: {
60
81
  mode: 'strict',
61
82
  typeSymbol: '@deepseek-ai/dsh-llm/brand#ToolCallId',
62
83
  create: _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1$schema,
84
+ jsonSchema: {"type":"string"},
85
+ },
86
+ strictCodec: {
87
+ mode: 'strict',
88
+ typeSymbol: '@deepseek-ai/dsh-llm/brand#ToolCallId',
89
+ create: _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1_strict$schema,
90
+ jsonSchema: {"type":"string"},
63
91
  },
64
92
  },
65
93
  {
66
94
  name: 'answer',
67
- wire: 'answer',
95
+ description: 'Complete structured answer batch, one item per question of the call.',
68
96
  source: 'json',
69
97
  codec: {
70
98
  mode: 'strict',
71
99
  typeSymbol: '@deepseek-ai/dsh-user-questions/types#AskUserQuestionAnswer',
72
100
  create: _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_2$schema,
101
+ jsonSchema: {"type":"object","properties":{"answers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The answered question id."},"selected":{"type":"array","items":{"type":"string"},"description":"Selected option labels. May accompany custom text for a multi-select question."},"custom":{"type":"string","description":"Optional free-text \"Other\" answer."}},"required":["id","selected"],"additionalProperties":true},"description":"Structured answers keyed by question id."}},"required":["answers"],"additionalProperties":true},
102
+ },
103
+ strictCodec: {
104
+ mode: 'strict',
105
+ typeSymbol: '@deepseek-ai/dsh-user-questions/types#AskUserQuestionAnswer',
106
+ create: _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_2_strict$schema,
107
+ jsonSchema: {"type":"object","properties":{"answers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The answered question id."},"selected":{"type":"array","items":{"type":"string"},"description":"Selected option labels. May accompany custom text for a multi-select question."},"custom":{"type":"string","description":"Optional free-text \"Other\" answer."}},"required":["id","selected"],"additionalProperties":false},"description":"Structured answers keyed by question id."}},"required":["answers"],"additionalProperties":false},
73
108
  },
74
109
  },
75
110
  ],
@@ -77,14 +112,14 @@ export const TYPERT = {
77
112
  mode: 'strict',
78
113
  typeSymbol: '@deepseek-ai/dsh-user-questions#userQuestions/answer:result',
79
114
  create: _deepseek_ai_dsh_user_questions_userQuestions_answer_result$schema,
115
+ description: 'Whether the question is still continued; an accepted reply stays queued until the agent admits its user message.',
116
+ jsonSchema: {"type":"boolean"},
80
117
  },
81
118
  sourceLocation: {"file":"packages/interaction/user-questions/src/index.ts","line":165,"column":3},
82
119
  },
83
- {
84
- id: '@deepseek-ai/dsh-user-questions#userQuestions/attachWait',
120
+ 'userQuestions/attachWait': {
85
121
  service: 'userQuestions',
86
- namespace: 'userQuestions',
87
- method: 'attachWait',
122
+ description: 'Let one answer UI hold a live timed wait. Closing the stream releases its claim.',
88
123
  mode: 'stream',
89
124
  invocation: { kind: 'direct' },
90
125
  scope: {
@@ -95,22 +130,37 @@ export const TYPERT = {
95
130
  {
96
131
  name: 'agent',
97
132
  wire: 'agentId',
133
+ description: 'Live root agent owning the question.',
98
134
  source: 'lookup',
99
135
  lookup: 'agent',
100
136
  codec: {
101
137
  mode: 'strict',
102
138
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
103
139
  create: _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0$schema,
140
+ jsonSchema: {"type":"string"},
141
+ },
142
+ strictCodec: {
143
+ mode: 'strict',
144
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
145
+ create: _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0_strict$schema,
146
+ jsonSchema: {"type":"string"},
104
147
  },
105
148
  },
106
149
  {
107
150
  name: 'callId',
108
- wire: 'callId',
151
+ description: 'Foreground tool call to attach to.',
109
152
  source: 'json',
110
153
  codec: {
111
154
  mode: 'strict',
112
155
  typeSymbol: '@deepseek-ai/dsh-llm/brand#ToolCallId',
113
156
  create: _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1$schema,
157
+ jsonSchema: {"type":"string"},
158
+ },
159
+ strictCodec: {
160
+ mode: 'strict',
161
+ typeSymbol: '@deepseek-ai/dsh-llm/brand#ToolCallId',
162
+ create: _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1_strict$schema,
163
+ jsonSchema: {"type":"string"},
114
164
  },
115
165
  },
116
166
  ],
@@ -119,10 +169,20 @@ export const TYPERT = {
119
169
  mode: 'strict',
120
170
  typeSymbol: '@deepseek-ai/dsh-user-questions#userQuestions/attachWait:result',
121
171
  create: _deepseek_ai_dsh_user_questions_userQuestions_attachWait_result$schema,
172
+ description: 'One Host-computed remaining duration, or no frames once the wait ended.',
173
+ jsonSchema: {"type":"object","properties":{"remainingMs":{"type":"number"}},"required":["remainingMs"],"additionalProperties":true},
122
174
  },
123
175
  sourceLocation: {"file":"packages/interaction/user-questions/src/index.ts","line":216,"column":10},
124
176
  },
177
+ },
178
+ }, z)
179
+
180
+ export const TYPERT = {
181
+ package: '@deepseek-ai/dsh-user-questions',
182
+ face: 'host',
183
+ schemas: [
125
184
  ],
185
+ get invocations() { return $remote.descriptors },
126
186
  model: {
127
187
  "services": [
128
188
  {
@@ -187,6 +247,10 @@ export const TYPERT = {
187
247
  "name": "AgentStatus",
188
248
  "declaration": "export type AgentStatus = 'idle' | 'running';"
189
249
  },
250
+ {
251
+ "name": "AllowedModelRoute",
252
+ "declaration": "export interface AllowedModelRoute {\n readonly provider: string;\n readonly model: string;\n}"
253
+ },
190
254
  {
191
255
  "name": "ApprovalOutcome",
192
256
  "declaration": "export type ApprovalOutcome = 'allowed-once' | 'rejected' | 'cancelled' | 'unavailable';"
@@ -407,6 +471,30 @@ export const TYPERT = {
407
471
  "name": "InboxTarget",
408
472
  "declaration": "export type InboxTarget = 'next-turn' | 'next-step';"
409
473
  },
474
+ {
475
+ "name": "JobId",
476
+ "declaration": "export type JobId = Branded<'JobId'>;"
477
+ },
478
+ {
479
+ "name": "JobOutcome",
480
+ "declaration": "export interface JobOutcome {\n status: 'completed' | 'killed' | 'failed';\n detail?: string;\n result?: string;\n}"
481
+ },
482
+ {
483
+ "name": "JobRegisteredData",
484
+ "declaration": "export interface JobRegisteredData {\n readonly jobId: JobId;\n readonly owner: SessionId;\n readonly kind: string;\n readonly label: string;\n readonly startedAt: number;\n readonly toolCall?: JobToolCall;\n}"
485
+ },
486
+ {
487
+ "name": "JobSettleCause",
488
+ "declaration": "export type JobSettleCause = 'producer' | 'kill' | 'teardown';"
489
+ },
490
+ {
491
+ "name": "JobSettledData",
492
+ "declaration": "export interface JobSettledData extends JobRegisteredData {\n readonly finishedAt: number;\n readonly status: JobOutcome['status'];\n readonly cause: JobSettleCause;\n readonly producerReported: boolean;\n readonly detail?: string;\n}"
493
+ },
494
+ {
495
+ "name": "JobToolCall",
496
+ "declaration": "export interface JobToolCall {\n readonly callId: SessionEventMap['tool/call']['callId'];\n readonly rootCallId: SessionEventMap['tool/call']['callId'];\n}"
497
+ },
410
498
  {
411
499
  "name": "JsonValue",
412
500
  "declaration": "export type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue; };"
@@ -497,7 +585,7 @@ export const TYPERT = {
497
585
  },
498
586
  {
499
587
  "name": "MessageSourceMap",
500
- "declaration": "export interface MessageSourceMap {\n user: { kind: 'user'; };\n model: ModelMessageSource;\n tool: ToolMessageSource;\n 'system-prompt': SystemPromptMessageSource;\n 'model-selection': { kind: 'model-selection'; } & ContextFormed;\n 'working-directory': { kind: 'working-directory'; };\n 'user-approval': { kind: 'user-approval'; } & ContextFormed;\n 'ptc-mode': { kind: 'ptc-mode'; };\n 'tool-registry': { kind: 'tool-registry'; };\n 'user-rpc': { kind: 'user'; rpcId: SessionRequestId; clientTimeZone?: string; };\n 'agent-message': AgentMessageSource;\n 'subagent-settled': SubagentSettledMessageSource;\n 'skill-invocation': SkillInvocationSource;\n 'cordis-host-runner': { kind: 'cordis-host-runner'; };\n 'compact-checkpoint': CompactionCheckpointSource;\n 'user-question-reply': { kind: 'user-question-reply'; callId: ToolCallId; outcome: 'answered'; };\n goal: GoalMessageSource;\n schedule: { kind: 'schedule'; } & ContextFormed;\n 'session-reference': SessionReferenceSource;\n}"
588
+ "declaration": "export interface MessageSourceMap {\n user: { kind: 'user'; };\n model: ModelMessageSource;\n tool: ToolMessageSource;\n 'system-prompt': SystemPromptMessageSource;\n 'model-selection': { kind: 'model-selection'; } & ContextFormed;\n 'runtime-context': { kind: 'runtime-context'; } & ContextFormed;\n 'working-directory': { kind: 'working-directory'; };\n 'user-approval': { kind: 'user-approval'; } & ContextFormed;\n 'ptc-mode': { kind: 'ptc-mode'; };\n 'tool-registry': { kind: 'tool-registry'; };\n 'user-rpc': { kind: 'user'; rpcId: SessionRequestId; clientTimeZone?: string; principal?: Principal; };\n 'agent-message': AgentMessageSource;\n 'subagent-settled': SubagentSettledMessageSource;\n 'skill-invocation': SkillInvocationSource;\n 'compact-checkpoint': CompactionCheckpointSource;\n 'cordis-host-runner': { kind: 'cordis-host-runner'; };\n 'team-message': TeamMessageSource;\n 'user-question-reply': { kind: 'user-question-reply'; callId: ToolCallId; outcome: 'answered'; };\n goal: GoalMessageSource;\n 'plan-mode': { kind: 'plan-mode'; } & ContextFormed;\n schedule: { kind: 'schedule'; } & ContextFormed;\n 'session-reference': SessionReferenceSource;\n webhook: { readonly kind: 'webhook'; readonly provider: string; readonly source: WebhookSourceId; readonly deliveryId: WebhookDeliveryId; readonly ruleId: WebhookRuleId; readonly form: 'notice'; readonly summary: string; };\n}"
501
589
  },
502
590
  {
503
591
  "name": "ModelMessageSource",
@@ -519,6 +607,14 @@ export const TYPERT = {
519
607
  "name": "OptionalSessionSeq",
520
608
  "declaration": "export type OptionalSessionSeq = SessionSeq | null;"
521
609
  },
610
+ {
611
+ "name": "Principal",
612
+ "declaration": "export type Principal = PrincipalMap[keyof PrincipalMap];"
613
+ },
614
+ {
615
+ "name": "PrincipalMap",
616
+ "declaration": "export interface PrincipalMap {\n owner: { readonly kind: 'owner'; };\n}"
617
+ },
522
618
  {
523
619
  "name": "ProviderRequestId",
524
620
  "declaration": "export type ProviderRequestId = Branded<'ProviderRequestId'>;"
@@ -589,7 +685,7 @@ export const TYPERT = {
589
685
  },
590
686
  {
591
687
  "name": "SessionEventMap",
592
- "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 'developer/message': { turn: number; step: number; message: DeveloperMessage; headerSeq?: SessionSeq; };\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 'working-directory/change': { cwd: string; };\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 'permission/preset': { preset: string; };\n 'subagent/descriptor': SubagentDescriptorData;\n 'subagent/catalog': SubagentCatalogEvent;\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 'feedback/record': FeedbackRecord;\n 'llm/retry': LlmRetryEventData;\n 'llm/retry-started': LlmRetryStartedEventData;\n 'goal/change': GoalChangeMeta;\n 'feedback/message-put': MessageFeedbackPut;\n 'feedback/message-delete': MessageFeedbackDelete;\n 'schedule/change': ScheduleChange;\n}"
688
+ "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 'developer/message': { turn: number; step: number; message: DeveloperMessage; headerSeq?: SessionSeq; };\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 'working-directory/change': { cwd: string; };\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 'job/registered': JobRegisteredData;\n 'job/settled': JobSettledData;\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 'permission/preset': { preset: string; };\n 'subagent/descriptor': SubagentDescriptorData;\n 'subagent/catalog': SubagentCatalogEvent;\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 'feedback/record': FeedbackRecord;\n 'llm/retry': LlmRetryEventData;\n 'llm/retry-started': LlmRetryStartedEventData;\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 'plan/mode': { active: boolean; };\n 'schedule/change': ScheduleChange;\n 'subagent/model-selection-policy': { allowedModels: AllowedModelRoute[]; };\n 'workspace/changes': { turn: number; };\n}"
593
689
  },
594
690
  {
595
691
  "name": "SessionEventType",
@@ -687,6 +783,42 @@ export const TYPERT = {
687
783
  "name": "SystemPromptUpdate",
688
784
  "declaration": "export type SystemPromptUpdate = 'in-history';"
689
785
  },
786
+ {
787
+ "name": "TeamId",
788
+ "declaration": "export type TeamId = Branded<'TeamId'>;"
789
+ },
790
+ {
791
+ "name": "TeamMemberPhase",
792
+ "declaration": "export type TeamMemberPhase = 'provisioning' | 'active' | 'failed';"
793
+ },
794
+ {
795
+ "name": "TeamMemberSnapshot",
796
+ "declaration": "export interface TeamMemberSnapshot {\n readonly id: SessionId;\n readonly name: string;\n readonly description: string;\n readonly provider: string;\n readonly context: 'fresh' | 'fork';\n readonly phase: TeamMemberPhase;\n readonly error?: string;\n}"
797
+ },
798
+ {
799
+ "name": "TeamMessageId",
800
+ "declaration": "export type TeamMessageId = Branded<'TeamMessageId'>;"
801
+ },
802
+ {
803
+ "name": "TeamMessageSnapshot",
804
+ "declaration": "export interface TeamMessageSnapshot {\n readonly id: TeamMessageId;\n readonly senderId: SessionId;\n readonly senderName: string;\n readonly targetId: SessionId;\n readonly content: ContentBlock[];\n}"
805
+ },
806
+ {
807
+ "name": "TeamMessageSource",
808
+ "declaration": "export interface TeamMessageSource {\n readonly kind: 'team-message';\n readonly teamId: TeamId;\n readonly messageId: TeamMessageId;\n readonly senderId: SessionId;\n readonly senderName: string;\n}"
809
+ },
810
+ {
811
+ "name": "TeamTaskId",
812
+ "declaration": "export type TeamTaskId = Branded<'TeamTaskId'>;"
813
+ },
814
+ {
815
+ "name": "TeamTaskSnapshot",
816
+ "declaration": "export interface TeamTaskSnapshot {\n readonly id: TeamTaskId;\n readonly revision: number;\n readonly subject: string;\n readonly description: string;\n readonly status: TeamTaskStatus;\n readonly ownerId?: SessionId;\n readonly blockedBy: TeamTaskId[];\n readonly writeScopes: string[];\n}"
817
+ },
818
+ {
819
+ "name": "TeamTaskStatus",
820
+ "declaration": "export type TeamTaskStatus = 'pending' | 'in_progress' | 'completed' | 'deleted';"
821
+ },
690
822
  {
691
823
  "name": "TextBlock",
692
824
  "declaration": "export interface TextBlock {\n type: 'text';\n text: string;\n}"
@@ -754,6 +886,18 @@ export const TYPERT = {
754
886
  {
755
887
  "name": "UserMessage",
756
888
  "declaration": "export interface UserMessage extends MessageBase {\n readonly role: 'user';\n}"
889
+ },
890
+ {
891
+ "name": "WebhookDeliveryId",
892
+ "declaration": "export type WebhookDeliveryId = Branded<'WebhookDeliveryId'>;"
893
+ },
894
+ {
895
+ "name": "WebhookRuleId",
896
+ "declaration": "export type WebhookRuleId = Branded<'WebhookRuleId'>;"
897
+ },
898
+ {
899
+ "name": "WebhookSourceId",
900
+ "declaration": "export type WebhookSourceId = Branded<'WebhookSourceId'>;"
757
901
  }
758
902
  ]
759
903
  }
@@ -2,7 +2,8 @@
2
2
  import type {
3
3
  RemoteResult,
4
4
  RemoteStreamHandle,
5
- TypertRemoteContribution,
5
+ TypertRemoteInfo,
6
+ TypertRemoteMethod,
6
7
  } from '@deepseek-ai/dsh-typert-protocol'
7
8
  import type { ToolCallId } from '@deepseek-ai/dsh-llm/brand'
8
9
  import type { SessionId } from '@deepseek-ai/dsh-session/types'
@@ -26,6 +27,9 @@ declare module '@deepseek-ai/dsh-typert-protocol' {
26
27
  }
27
28
  }
28
29
 
29
- export declare const TYPERT_REMOTE: TypertRemoteContribution
30
+ export declare const TYPERT_REMOTE: TypertRemoteInfo<{
31
+ readonly 'userQuestions/answer': TypertRemoteMethod<{ readonly 'agentId': SessionId; readonly 'callId': ToolCallId; readonly 'answer': AskUserQuestionAnswer }, boolean>
32
+ readonly 'userQuestions/attachWait': TypertRemoteMethod<{ readonly 'agentId': SessionId; readonly 'callId': ToolCallId }, { remainingMs: number; }, 'stream'>
33
+ }>
30
34
  export default TYPERT_REMOTE
31
35
  //# sourceMappingURL=typert.remote-client.d.ts.map
@@ -1,37 +1,53 @@
1
1
  /* Generated by @deepseek-ai/dsh-typert-generator from the Host FaceModel — do not edit. */
2
2
  import { z } from 'zod'
3
3
 
4
+ import { createTypertRemoteInfo } from '@deepseek-ai/dsh-typert-protocol/remote-info'
5
+
4
6
  let _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0$schema$value
5
- const _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
7
+ const _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0$schema$value ??= z.string())
6
8
  let _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1$schema$value
7
- const _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1$schema$value ??= z.intersection(z.string(), z.unknown()))
9
+ const _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1$schema$value ??= z.string())
8
10
  let _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_2$schema$value
9
11
  const _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_2$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_2$schema$value ??= z.object({
10
12
  'answers': z.array(z.object({
11
- 'id': z.string(),
12
- 'selected': z.array(z.string()),
13
- 'custom': z.string().optional(),
14
- })),
13
+ 'id': z.string().describe('The answered question id.'),
14
+ 'selected': z.array(z.string()).describe('Selected option labels. May accompany custom text for a multi-select question.'),
15
+ 'custom': z.string().optional().describe('Optional free-text "Other" answer.'),
16
+ })).describe('Structured answers keyed by question id.'),
15
17
  }))
16
18
  let _deepseek_ai_dsh_user_questions_userQuestions_answer_result$schema$value
17
19
  const _deepseek_ai_dsh_user_questions_userQuestions_answer_result$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_result$schema$value ??= z.boolean())
18
20
  let _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0$schema$value
19
- const _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
21
+ const _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0$schema$value ??= z.string())
20
22
  let _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1$schema$value
21
- const _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1$schema$value ??= z.intersection(z.string(), z.unknown()))
23
+ const _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1$schema$value ??= z.string())
22
24
  let _deepseek_ai_dsh_user_questions_userQuestions_attachWait_result$schema$value
23
25
  const _deepseek_ai_dsh_user_questions_userQuestions_attachWait_result$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_attachWait_result$schema$value ??= z.object({
24
26
  'remainingMs': z.number(),
25
27
  }))
28
+ let _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0_strict$schema$value
29
+ const _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0_strict$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0_strict$schema$value ??= z.string())
30
+ let _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1_strict$schema$value
31
+ const _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1_strict$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1_strict$schema$value ??= z.string())
32
+ let _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_2_strict$schema$value
33
+ const _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_2_strict$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_2_strict$schema$value ??= z.strictObject({
34
+ 'answers': z.array(z.strictObject({
35
+ 'id': z.string().describe('The answered question id.'),
36
+ 'selected': z.array(z.string()).describe('Selected option labels. May accompany custom text for a multi-select question.'),
37
+ 'custom': z.string().optional().describe('Optional free-text "Other" answer.'),
38
+ })).describe('Structured answers keyed by question id.'),
39
+ }))
40
+ let _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0_strict$schema$value
41
+ const _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0_strict$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0_strict$schema$value ??= z.string())
42
+ let _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1_strict$schema$value
43
+ const _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1_strict$schema = () => (_deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1_strict$schema$value ??= z.string())
26
44
 
27
- export const TYPERT_REMOTE = {
45
+ export const TYPERT_REMOTE = createTypertRemoteInfo({
28
46
  package: '@deepseek-ai/dsh-user-questions',
29
- descriptors: [
30
- {
31
- id: '@deepseek-ai/dsh-user-questions#userQuestions/answer',
47
+ methods: {
48
+ 'userQuestions/answer': {
32
49
  service: 'userQuestions',
33
- namespace: 'userQuestions',
34
- method: 'answer',
50
+ description: 'Answer a continued question. The reply is steered into the agent as a user message whose source names the call; that message is also the record that closes the question in the projection.',
35
51
  invocation: { kind: 'direct' },
36
52
  scope: {
37
53
  context: 'agent',
@@ -41,32 +57,54 @@ export const TYPERT_REMOTE = {
41
57
  {
42
58
  name: 'agent',
43
59
  wire: 'agentId',
60
+ description: 'Live root agent for the owning Session.',
44
61
  source: 'lookup',
45
62
  lookup: 'agent',
46
63
  codec: {
47
64
  mode: 'strict',
48
65
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
49
66
  create: _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0$schema,
67
+ jsonSchema: {"type":"string"},
68
+ },
69
+ strictCodec: {
70
+ mode: 'strict',
71
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
72
+ create: _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_0_strict$schema,
73
+ jsonSchema: {"type":"string"},
50
74
  },
51
75
  },
52
76
  {
53
77
  name: 'callId',
54
- wire: 'callId',
78
+ description: 'Continued question identity.',
55
79
  source: 'json',
56
80
  codec: {
57
81
  mode: 'strict',
58
82
  typeSymbol: '@deepseek-ai/dsh-llm/brand#ToolCallId',
59
83
  create: _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1$schema,
84
+ jsonSchema: {"type":"string"},
85
+ },
86
+ strictCodec: {
87
+ mode: 'strict',
88
+ typeSymbol: '@deepseek-ai/dsh-llm/brand#ToolCallId',
89
+ create: _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_1_strict$schema,
90
+ jsonSchema: {"type":"string"},
60
91
  },
61
92
  },
62
93
  {
63
94
  name: 'answer',
64
- wire: 'answer',
95
+ description: 'Complete structured answer batch, one item per question of the call.',
65
96
  source: 'json',
66
97
  codec: {
67
98
  mode: 'strict',
68
99
  typeSymbol: '@deepseek-ai/dsh-user-questions/types#AskUserQuestionAnswer',
69
100
  create: _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_2$schema,
101
+ jsonSchema: {"type":"object","properties":{"answers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The answered question id."},"selected":{"type":"array","items":{"type":"string"},"description":"Selected option labels. May accompany custom text for a multi-select question."},"custom":{"type":"string","description":"Optional free-text \"Other\" answer."}},"required":["id","selected"],"additionalProperties":true},"description":"Structured answers keyed by question id."}},"required":["answers"],"additionalProperties":true},
102
+ },
103
+ strictCodec: {
104
+ mode: 'strict',
105
+ typeSymbol: '@deepseek-ai/dsh-user-questions/types#AskUserQuestionAnswer',
106
+ create: _deepseek_ai_dsh_user_questions_userQuestions_answer_parameter_2_strict$schema,
107
+ jsonSchema: {"type":"object","properties":{"answers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The answered question id."},"selected":{"type":"array","items":{"type":"string"},"description":"Selected option labels. May accompany custom text for a multi-select question."},"custom":{"type":"string","description":"Optional free-text \"Other\" answer."}},"required":["id","selected"],"additionalProperties":false},"description":"Structured answers keyed by question id."}},"required":["answers"],"additionalProperties":false},
70
108
  },
71
109
  },
72
110
  ],
@@ -74,14 +112,14 @@ export const TYPERT_REMOTE = {
74
112
  mode: 'strict',
75
113
  typeSymbol: '@deepseek-ai/dsh-user-questions#userQuestions/answer:result',
76
114
  create: _deepseek_ai_dsh_user_questions_userQuestions_answer_result$schema,
115
+ description: 'Whether the question is still continued; an accepted reply stays queued until the agent admits its user message.',
116
+ jsonSchema: {"type":"boolean"},
77
117
  },
78
118
  sourceLocation: {"file":"packages/interaction/user-questions/src/index.ts","line":165,"column":3},
79
119
  },
80
- {
81
- id: '@deepseek-ai/dsh-user-questions#userQuestions/attachWait',
120
+ 'userQuestions/attachWait': {
82
121
  service: 'userQuestions',
83
- namespace: 'userQuestions',
84
- method: 'attachWait',
122
+ description: 'Let one answer UI hold a live timed wait. Closing the stream releases its claim.',
85
123
  mode: 'stream',
86
124
  invocation: { kind: 'direct' },
87
125
  scope: {
@@ -92,22 +130,37 @@ export const TYPERT_REMOTE = {
92
130
  {
93
131
  name: 'agent',
94
132
  wire: 'agentId',
133
+ description: 'Live root agent owning the question.',
95
134
  source: 'lookup',
96
135
  lookup: 'agent',
97
136
  codec: {
98
137
  mode: 'strict',
99
138
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
100
139
  create: _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0$schema,
140
+ jsonSchema: {"type":"string"},
141
+ },
142
+ strictCodec: {
143
+ mode: 'strict',
144
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
145
+ create: _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_0_strict$schema,
146
+ jsonSchema: {"type":"string"},
101
147
  },
102
148
  },
103
149
  {
104
150
  name: 'callId',
105
- wire: 'callId',
151
+ description: 'Foreground tool call to attach to.',
106
152
  source: 'json',
107
153
  codec: {
108
154
  mode: 'strict',
109
155
  typeSymbol: '@deepseek-ai/dsh-llm/brand#ToolCallId',
110
156
  create: _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1$schema,
157
+ jsonSchema: {"type":"string"},
158
+ },
159
+ strictCodec: {
160
+ mode: 'strict',
161
+ typeSymbol: '@deepseek-ai/dsh-llm/brand#ToolCallId',
162
+ create: _deepseek_ai_dsh_user_questions_userQuestions_attachWait_parameter_1_strict$schema,
163
+ jsonSchema: {"type":"string"},
111
164
  },
112
165
  },
113
166
  ],
@@ -116,10 +169,12 @@ export const TYPERT_REMOTE = {
116
169
  mode: 'strict',
117
170
  typeSymbol: '@deepseek-ai/dsh-user-questions#userQuestions/attachWait:result',
118
171
  create: _deepseek_ai_dsh_user_questions_userQuestions_attachWait_result$schema,
172
+ description: 'One Host-computed remaining duration, or no frames once the wait ended.',
173
+ jsonSchema: {"type":"object","properties":{"remainingMs":{"type":"number"}},"required":["remainingMs"],"additionalProperties":true},
119
174
  },
120
175
  sourceLocation: {"file":"packages/interaction/user-questions/src/index.ts","line":216,"column":10},
121
176
  },
122
- ],
123
- }
177
+ },
178
+ }, z)
124
179
 
125
180
  export default TYPERT_REMOTE
package/locale/en.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "meta": {
3
+ "title": "user-questions"
4
+ }
5
+ }
package/locale/zh.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "meta": {
3
+ "title": "用户提问服务",
4
+ "description": "让运行中的 AI 向用户提问并等待回答。"
5
+ }
6
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-user-questions",
3
3
  "description": "Abstract user-questions seam (ctx.userQuestions) for asking the human during agent runs",
4
- "version": "0.2.1-alpha.2",
4
+ "version": "0.2.1-alpha.4",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -31,9 +31,11 @@
31
31
  "./remote": {
32
32
  "types": "./lib/typert.remote-client.d.ts",
33
33
  "default": "./lib/typert.remote-client.js"
34
- }
34
+ },
35
+ "./locale/*.json": "./locale/*.json"
35
36
  },
36
37
  "files": [
38
+ "locale/*.json",
37
39
  "lib/index.js",
38
40
  "lib/types/**/*.js",
39
41
  "lib/types/**/*.d.ts",
@@ -44,27 +46,27 @@
44
46
  ],
45
47
  "license": "MIT",
46
48
  "peerDependencies": {
47
- "@deepseek-ai/dsh-agent": "0.2.1-alpha.2",
48
- "@deepseek-ai/dsh-llm": "0.2.1-alpha.2",
49
- "@deepseek-ai/dsh-scope": "0.2.1-alpha.2",
50
- "@deepseek-ai/cordis": "~4.0.5-alpha.1",
51
- "@deepseek-ai/dsh-typert-protocol": "0.2.1-alpha.2",
52
- "@deepseek-ai/dsh-session": "0.2.1-alpha.2",
53
- "@deepseek-ai/dsh-session-projection": "0.2.1-alpha.2"
49
+ "@deepseek-ai/dsh-agent": "0.2.1-alpha.4",
50
+ "@deepseek-ai/dsh-llm": "0.2.1-alpha.4",
51
+ "@deepseek-ai/dsh-scope": "0.2.1-alpha.4",
52
+ "@deepseek-ai/cordis": "~4.0.5-alpha.2",
53
+ "@deepseek-ai/dsh-typert-protocol": "0.2.1-alpha.4",
54
+ "@deepseek-ai/dsh-session": "0.2.1-alpha.4",
55
+ "@deepseek-ai/dsh-session-projection": "0.2.1-alpha.4"
54
56
  },
55
57
  "devDependencies": {
56
- "@deepseek-ai/dsh-agent": "0.2.1-alpha.2",
57
- "@deepseek-ai/dsh-llm": "0.2.1-alpha.2",
58
- "@deepseek-ai/dsh-scope": "0.2.1-alpha.2",
59
- "@deepseek-ai/cordis": "~4.0.5-alpha.1",
60
- "@deepseek-ai/dsh-typert-protocol": "0.2.1-alpha.2",
61
- "@deepseek-ai/dsh-session": "0.2.1-alpha.2",
62
- "@deepseek-ai/dsh-session-projection": "0.2.1-alpha.2",
63
- "@deepseek-ai/dsh-session-persistence-jsonl": "0.2.1-alpha.2",
64
- "@deepseek-ai/dsh-tools": "0.2.1-alpha.2"
58
+ "@deepseek-ai/dsh-agent": "0.2.1-alpha.4",
59
+ "@deepseek-ai/dsh-llm": "0.2.1-alpha.4",
60
+ "@deepseek-ai/dsh-scope": "0.2.1-alpha.4",
61
+ "@deepseek-ai/cordis": "~4.0.5-alpha.2",
62
+ "@deepseek-ai/dsh-typert-protocol": "0.2.1-alpha.4",
63
+ "@deepseek-ai/dsh-session": "0.2.1-alpha.4",
64
+ "@deepseek-ai/dsh-session-projection": "0.2.1-alpha.4",
65
+ "@deepseek-ai/dsh-session-persistence-jsonl": "0.2.1-alpha.4",
66
+ "@deepseek-ai/dsh-tools": "0.2.1-alpha.4"
65
67
  },
66
68
  "dependencies": {
67
- "zod": "^4.4.3",
68
- "@deepseek-ai/schemastery": "~3.18.5-alpha.1"
69
+ "zod": "4.4.3",
70
+ "@deepseek-ai/schemastery": "~3.18.5-alpha.2"
69
71
  }
70
72
  }