@deepseekharness-mobile/protocol 0.0.0-stage → 0.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,253 @@
1
+ import { z } from 'zod';
2
+ import { envelopeFields } from './envelope.js';
3
+ import { ErrorCode } from './errors.js';
4
+ import { Capabilities, CommandInfo, CommandResult, DeviceInfo, HostInfo, ModelCatalog, ModelSelection, ProviderConnection, ProviderTestResult, ProviderView, QuestionAnswerItem, QuestionBatch, SessionActivity, SessionId, SessionState, SessionSummary, Workspace, TranscriptEvent, } from './domain.js';
5
+ function message(type, shape) {
6
+ return z.object({ ...envelopeFields, type: z.literal(type), ...shape });
7
+ }
8
+ export const HistoryEntry = z.object({
9
+ seq: z.number().int().nonnegative(),
10
+ at: z.number().int().nonnegative(),
11
+ event: TranscriptEvent,
12
+ });
13
+ export const HelloMessage = message('hello', {
14
+ proto: z.number().int().positive(),
15
+ deviceToken: z.string().min(1).optional(),
16
+ clientName: z.string().optional(),
17
+ });
18
+ export const PairRedeemMessage = message('pair.redeem', {
19
+ code: z.string().min(1),
20
+ deviceName: z.string().min(1).max(64),
21
+ platform: z.string().max(64),
22
+ });
23
+ export const SessionsListMessage = message('sessions.list', {
24
+ includeArchived: z.boolean().optional(),
25
+ });
26
+ export const WorkspaceListMessage = message('workspace.list', {});
27
+ export const SessionSubscribeMessage = message('session.subscribe', {
28
+ sessionId: SessionId,
29
+ since: z.number().int().nonnegative().optional(),
30
+ });
31
+ export const SessionHistoryMessage = message('session.history', {
32
+ sessionId: SessionId,
33
+ before: z.number().int().nonnegative().optional(),
34
+ limit: z.number().int().positive().max(200).optional(),
35
+ });
36
+ export const ReplySendMessage = message('reply.send', {
37
+ sessionId: SessionId,
38
+ text: z.string().min(1).max(32_000),
39
+ });
40
+ export const QuestionAnswerMessage = message('question.answer', {
41
+ callId: z.string().min(1),
42
+ sessionId: SessionId,
43
+ answers: z.array(QuestionAnswerItem).min(1),
44
+ });
45
+ export const CommandsListMessage = message('commands.list', {
46
+ sessionId: SessionId,
47
+ });
48
+ export const CommandRunMessage = message('command.run', {
49
+ sessionId: SessionId,
50
+ line: z.string().min(2).max(4_000),
51
+ });
52
+ export const SessionActivityMessage = message('session.activity', {
53
+ sessionId: SessionId,
54
+ });
55
+ export const DevicesListMessage = message('devices.list', {});
56
+ export const DeviceRevokeMessage = message('devices.revoke', {
57
+ deviceId: z.string().min(1),
58
+ });
59
+ export const ProvidersListMessage = message('providers.list', {});
60
+ export const ProviderTestMessage = message('provider.test', {
61
+ provider: z.string().min(1),
62
+ apiKey: z.string().min(1).max(8_192),
63
+ });
64
+ export const ProviderConnectMessage = message('provider.connect', {
65
+ provider: z.string().min(1),
66
+ apiKey: z.string().min(1).max(8_192),
67
+ });
68
+ export const ProviderDisconnectMessage = message('provider.disconnect', {
69
+ provider: z.string().min(1),
70
+ });
71
+ export const RunStartMessage = message('run.start', {
72
+ sessionId: SessionId,
73
+ prompt: z.string().min(1).max(32_000),
74
+ });
75
+ export const RunCancelMessage = message('run.cancel', {
76
+ sessionId: SessionId,
77
+ });
78
+ export const ModelListMessage = message('models.list', {});
79
+ export const ModelSelectMessage = message('model.select', {
80
+ sessionId: SessionId,
81
+ provider: z.string().min(1),
82
+ model: z.string().min(1),
83
+ reasoningEffort: z.string().min(1).optional(),
84
+ });
85
+ export const PingMessage = message('ping', {});
86
+ export const SessionCreateMessage = message('session.create', {
87
+ workspaceId: z.string().min(1),
88
+ });
89
+ export const WorkspaceArchiveMessage = message('workspace.archive', {
90
+ sessionId: SessionId,
91
+ stopActivity: z.boolean().optional(),
92
+ });
93
+ export const WorkspaceUnarchiveMessage = message('workspace.unarchive', {
94
+ sessionId: SessionId,
95
+ });
96
+ export const ClientMessage = z.discriminatedUnion('type', [
97
+ HelloMessage,
98
+ PairRedeemMessage,
99
+ SessionsListMessage,
100
+ SessionCreateMessage,
101
+ WorkspaceArchiveMessage,
102
+ WorkspaceUnarchiveMessage,
103
+ WorkspaceListMessage,
104
+ ModelListMessage,
105
+ ModelSelectMessage,
106
+ SessionSubscribeMessage,
107
+ SessionHistoryMessage,
108
+ ReplySendMessage,
109
+ QuestionAnswerMessage,
110
+ CommandsListMessage,
111
+ CommandRunMessage,
112
+ SessionActivityMessage,
113
+ DevicesListMessage,
114
+ DeviceRevokeMessage,
115
+ ProvidersListMessage,
116
+ ProviderTestMessage,
117
+ ProviderConnectMessage,
118
+ ProviderDisconnectMessage,
119
+ RunStartMessage,
120
+ RunCancelMessage,
121
+ PingMessage,
122
+ ]);
123
+ export const PongMessage = message('pong', {});
124
+ export const HelloOkMessage = message('hello.ok', {
125
+ host: HostInfo,
126
+ device: DeviceInfo.optional(),
127
+ });
128
+ export const PairOkMessage = message('pair.ok', {
129
+ deviceToken: z.string().min(1),
130
+ host: HostInfo,
131
+ device: DeviceInfo,
132
+ });
133
+ export const SessionCreatedMessage = message('session.created', {
134
+ sessionId: SessionId,
135
+ });
136
+ export const WorkspaceArchivedMessage = message('workspace.archived', {
137
+ sessionId: SessionId,
138
+ });
139
+ export const WorkspaceUnarchivedMessage = message('workspace.unarchived', {
140
+ sessionId: SessionId,
141
+ });
142
+ export const SessionsOkMessage = message('sessions.ok', {
143
+ sessions: z.array(SessionSummary),
144
+ });
145
+ export const WorkspaceOkMessage = message('workspace.ok', {
146
+ workspaces: z.array(Workspace),
147
+ });
148
+ export const ModelsOkMessage = message('models.ok', {
149
+ catalog: ModelCatalog,
150
+ });
151
+ export const ModelSelectedMessage = message('model.selected', {
152
+ sessionId: SessionId,
153
+ selection: ModelSelection,
154
+ });
155
+ export const SessionOkMessage = message('session.ok', {
156
+ sessionId: SessionId,
157
+ seq: z.number().int().nonnegative(),
158
+ });
159
+ export const HistoryOkMessage = message('history.ok', {
160
+ sessionId: SessionId,
161
+ entries: z.array(HistoryEntry),
162
+ hasMore: z.boolean(),
163
+ });
164
+ export const ReplyOkMessage = message('reply.ok', {
165
+ sessionId: SessionId,
166
+ seq: z.number().int().nonnegative().optional(),
167
+ });
168
+ export const AnswerOkMessage = message('answer.ok', {
169
+ callId: z.string().min(1),
170
+ });
171
+ export const CommandsOkMessage = message('commands.ok', {
172
+ commands: z.array(CommandInfo),
173
+ });
174
+ export const CommandOkMessage = message('command.ok', CommandResult.shape);
175
+ export const ActivityOkMessage = message('activity.ok', {
176
+ sessionId: SessionId,
177
+ activity: SessionActivity,
178
+ });
179
+ export const RunOkMessage = message('run.ok', {
180
+ sessionId: SessionId,
181
+ state: SessionState,
182
+ });
183
+ export const SessionEventMessage = message('session.event', {
184
+ sessionId: SessionId,
185
+ seq: z.number().int().nonnegative(),
186
+ event: TranscriptEvent,
187
+ });
188
+ export const SessionStateMessage = message('session.state', {
189
+ sessionId: SessionId,
190
+ state: SessionState,
191
+ seq: z.number().int().nonnegative(),
192
+ });
193
+ export const QuestionPendingMessage = message('question.pending', {
194
+ question: QuestionBatch,
195
+ });
196
+ export const QuestionSettledMessage = message('question.settled', {
197
+ callId: z.string().min(1),
198
+ sessionId: SessionId,
199
+ answers: z.array(QuestionAnswerItem).optional(),
200
+ });
201
+ export const DevicesChangedMessage = message('devices.changed', {
202
+ devices: z.array(DeviceInfo),
203
+ });
204
+ export const DevicesOkMessage = message('devices.ok', {
205
+ devices: z.array(DeviceInfo),
206
+ });
207
+ export const DeviceRevokedMessage = message('devices.revoked', {
208
+ deviceId: z.string().min(1),
209
+ });
210
+ export const ProvidersOkMessage = message('providers.ok', {
211
+ providers: z.array(ProviderView),
212
+ });
213
+ export const ProviderTestedMessage = message('provider.tested', ProviderTestResult.shape);
214
+ export const ProviderConnectedMessage = message('provider.connected', ProviderConnection.shape);
215
+ export const ProviderDisconnectedMessage = message('provider.disconnected', ProviderConnection.shape);
216
+ export const ErrorMessage = message('error', {
217
+ code: ErrorCode,
218
+ message: z.string(),
219
+ capabilities: Capabilities.optional(),
220
+ });
221
+ export const ServerMessage = z.discriminatedUnion('type', [
222
+ PongMessage,
223
+ HelloOkMessage,
224
+ PairOkMessage,
225
+ SessionsOkMessage,
226
+ WorkspaceOkMessage,
227
+ SessionOkMessage,
228
+ SessionCreatedMessage,
229
+ WorkspaceArchivedMessage,
230
+ WorkspaceUnarchivedMessage,
231
+ ModelsOkMessage,
232
+ ModelSelectedMessage,
233
+ HistoryOkMessage,
234
+ ReplyOkMessage,
235
+ AnswerOkMessage,
236
+ CommandsOkMessage,
237
+ CommandOkMessage,
238
+ ActivityOkMessage,
239
+ RunOkMessage,
240
+ SessionEventMessage,
241
+ SessionStateMessage,
242
+ QuestionPendingMessage,
243
+ QuestionSettledMessage,
244
+ DevicesOkMessage,
245
+ DeviceRevokedMessage,
246
+ ProvidersOkMessage,
247
+ ProviderTestedMessage,
248
+ ProviderConnectedMessage,
249
+ ProviderDisconnectedMessage,
250
+ DevicesChangedMessage,
251
+ ErrorMessage,
252
+ ]);
253
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ export declare const PairingParams: z.ZodObject<{
3
+ v: z.ZodNumber;
4
+ c: z.ZodString;
5
+ e: z.ZodOptional<z.ZodString>;
6
+ }, z.core.$strip>;
7
+ export type PairingParams = z.infer<typeof PairingParams>;
8
+ export declare const PAIRING_HASH_PREFIX = "#/pair";
9
+ export declare function buildPairingUrl(baseUrl: string, code: string, endpoint?: string): string;
10
+ export declare function parsePairingUrl(raw: string): PairingParams | undefined;
11
+ //# sourceMappingURL=pairing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pairing.d.ts","sourceRoot":"","sources":["../src/pairing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,aAAa;;;;iBAIxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAE5C,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAWxF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAsBtE"}
@@ -0,0 +1,44 @@
1
+ import { z } from 'zod';
2
+ import { PROTOCOL_VERSION } from './version.js';
3
+ export const PairingParams = z.object({
4
+ v: z.number().int().positive(),
5
+ c: z.string().min(1),
6
+ e: z.string().min(1).optional(),
7
+ });
8
+ export const PAIRING_HASH_PREFIX = '#/pair';
9
+ export function buildPairingUrl(baseUrl, code, endpoint) {
10
+ const url = new URL(baseUrl);
11
+ url.hash = '';
12
+ const params = new URLSearchParams();
13
+ params.set('v', String(PROTOCOL_VERSION));
14
+ params.set('c', code);
15
+ if (endpoint)
16
+ params.set('e', endpoint);
17
+ url.hash = `${PAIRING_HASH_PREFIX}?${params.toString()}`;
18
+ return url.toString();
19
+ }
20
+ export function parsePairingUrl(raw) {
21
+ let url;
22
+ try {
23
+ url = new URL(raw);
24
+ }
25
+ catch {
26
+ return undefined;
27
+ }
28
+ const hash = url.hash.replace(/^#/, '');
29
+ const questionMark = hash.indexOf('?');
30
+ if (questionMark < 0)
31
+ return undefined;
32
+ if (!hash.slice(0, questionMark).startsWith('/pair'))
33
+ return undefined;
34
+ const params = new URLSearchParams(hash.slice(questionMark + 1));
35
+ const v = Number(params.get('v'));
36
+ const c = params.get('c');
37
+ if (!c)
38
+ return undefined;
39
+ const candidate = { v: Number.isInteger(v) ? v : PROTOCOL_VERSION, c };
40
+ const endpoint = params.get('e');
41
+ const result = PairingParams.safeParse(endpoint ? { ...candidate, e: endpoint } : candidate);
42
+ return result.success ? result.data : undefined;
43
+ }
44
+ //# sourceMappingURL=pairing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pairing.js","sourceRoot":"","sources":["../src/pairing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC9B,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACpB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AAE5C,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,IAAY,EAAE,QAAiB;IAC9E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IAEd,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtB,IAAI,QAAQ;QAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAExC,GAAG,CAAC,IAAI,GAAG,GAAG,mBAAmB,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;IACzD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,YAAY,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAEvE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAEzB,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC;IACvE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7F,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare const PROTOCOL_NAME = "dsh-mobile";
2
+ export declare const PROTOCOL_VERSION: 1;
3
+ export declare const SUPPORTED_PROTOCOL_VERSIONS: readonly number[];
4
+ export declare const WEBSOCKET_PATH = "/ws";
5
+ export declare const MAX_FRAME_BYTES: number;
6
+ export declare const HEARTBEAT_INTERVAL_MS = 20000;
7
+ export declare const PAIRING_CODE_TTL_MS: number;
8
+ export declare const MAX_FRAMES_PER_MINUTE = 600;
9
+ export declare function isSupportedVersion(version: number): boolean;
10
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,eAAe,CAAC;AAE1C,eAAO,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAE3C,eAAO,MAAM,2BAA2B,EAAE,SAAS,MAAM,EAAQ,CAAC;AAElE,eAAO,MAAM,cAAc,QAAQ,CAAC;AAEpC,eAAO,MAAM,eAAe,QAAY,CAAC;AAEzC,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C,eAAO,MAAM,mBAAmB,QAAiB,CAAC;AAElD,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D"}
@@ -0,0 +1,12 @@
1
+ export const PROTOCOL_NAME = 'dsh-mobile';
2
+ export const PROTOCOL_VERSION = 1;
3
+ export const SUPPORTED_PROTOCOL_VERSIONS = [1];
4
+ export const WEBSOCKET_PATH = '/ws';
5
+ export const MAX_FRAME_BYTES = 64 * 1024;
6
+ export const HEARTBEAT_INTERVAL_MS = 20_000;
7
+ export const PAIRING_CODE_TTL_MS = 10 * 60 * 1000;
8
+ export const MAX_FRAMES_PER_MINUTE = 600;
9
+ export function isSupportedVersion(version) {
10
+ return SUPPORTED_PROTOCOL_VERSIONS.includes(version);
11
+ }
12
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC;AAE1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAU,CAAC;AAE3C,MAAM,CAAC,MAAM,2BAA2B,GAAsB,CAAC,CAAC,CAAC,CAAC;AAElE,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC;AAEpC,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC;AAEzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAElD,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAEzC,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,2BAA2B,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACvD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,48 @@
1
1
  {
2
2
  "name": "@deepseekharness-mobile/protocol",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.1.0",
4
+ "description": "Versioned wire contract shared by the DSH Mobile host plugin and PWA",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/joseph12n/dsh-mobile.git",
11
+ "directory": "packages/protocol"
12
+ },
13
+ "homepage": "https://github.com/joseph12n/dsh-mobile/tree/main/packages/protocol#readme",
14
+ "bugs": {
15
+ "url": "https://github.com/joseph12n/dsh-mobile/issues"
16
+ },
17
+ "engines": {
18
+ "node": ">=24"
19
+ },
20
+ "publishConfig": {
21
+ "access": "public"
22
+ },
23
+ "keywords": [
24
+ "dsh",
25
+ "deepseek-harness",
26
+ "protocol",
27
+ "zod",
28
+ "dsh-mobile"
29
+ ],
30
+ "types": "./dist/index.d.ts",
31
+ "exports": {
32
+ ".": {
33
+ "types": "./dist/index.d.ts",
34
+ "default": "./dist/index.js"
35
+ }
36
+ },
37
+ "files": [
38
+ "dist"
39
+ ],
40
+ "dependencies": {
41
+ "zod": "^4.6.7"
42
+ },
43
+ "scripts": {
44
+ "build": "tsc -p tsconfig.json",
45
+ "typecheck": "tsc -p tsconfig.json --noEmit",
46
+ "clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\""
47
+ }
6
48
  }