@kirkchinese/dsh-citeciter 0.3.1 → 0.4.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.
@@ -141,6 +141,12 @@ export declare const TYPERT: {
141
141
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
142
142
  role: import("zod").ZodLiteral<"error">;
143
143
  text: import("zod").ZodString;
144
+ bodyRetained: import("zod").ZodBoolean;
145
+ attempt: import("zod").ZodNumber;
146
+ status: import("zod").ZodEnum<{
147
+ failed: "failed";
148
+ stopped: "stopped";
149
+ }>;
144
150
  id: import("zod").ZodString;
145
151
  seq: import("zod").ZodNumber;
146
152
  }, import("zod/v4/core").$strict>], "role">>;
@@ -161,8 +167,9 @@ export declare const TYPERT: {
161
167
  }, import("zod/v4/core").$strict>;
162
168
  }, {
163
169
  readonly name: "CiteCiterRequest";
164
- readonly schema: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
170
+ readonly schema: import("zod").ZodUnion<readonly [import("zod").ZodUnion<readonly [import("zod").ZodObject<{
165
171
  action: import("zod").ZodLiteral<"create">;
172
+ requestId: import("zod").ZodString;
166
173
  citation: import("zod").ZodObject<{
167
174
  sourceSessionId: import("zod").ZodString;
168
175
  anchorSeq: import("zod").ZodNumber;
@@ -181,6 +188,23 @@ export declare const TYPERT: {
181
188
  "exact-when-available": "exact-when-available";
182
189
  }>;
183
190
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
191
+ action: import("zod").ZodLiteral<"create">;
192
+ requestId: import("zod").ZodString;
193
+ selectionClaim: import("zod").ZodObject<{
194
+ sourceSessionId: import("zod").ZodString;
195
+ anchorSeq: import("zod").ZodNumber;
196
+ displayText: import("zod").ZodString;
197
+ sourceHintText: import("zod").ZodOptional<import("zod").ZodString>;
198
+ prefixText: import("zod").ZodString;
199
+ suffixText: import("zod").ZodString;
200
+ }, import("zod/v4/core").$strict>;
201
+ question: import("zod").ZodString;
202
+ mode: import("zod").ZodEnum<{
203
+ observer: "observer";
204
+ "exact-fork": "exact-fork";
205
+ "exact-when-available": "exact-when-available";
206
+ }>;
207
+ }, import("zod/v4/core").$strict>]>, import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
184
208
  action: import("zod").ZodLiteral<"list">;
185
209
  sourceSessionId: import("zod").ZodString;
186
210
  includeArchived: import("zod").ZodOptional<import("zod").ZodBoolean>;
@@ -223,13 +247,22 @@ export declare const TYPERT: {
223
247
  confirmSessionId: import("zod").ZodString;
224
248
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
225
249
  action: import("zod").ZodLiteral<"models">;
250
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
251
+ action: import("zod").ZodLiteral<"set-model-route">;
252
+ topicSessionId: import("zod").ZodString;
253
+ provider: import("zod").ZodString;
254
+ model: import("zod").ZodString;
255
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
256
+ action: import("zod").ZodLiteral<"set-reasoning-effort">;
257
+ topicSessionId: import("zod").ZodString;
258
+ reasoningEffort: import("zod").ZodNullable<import("zod").ZodString>;
226
259
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
227
260
  action: import("zod").ZodLiteral<"select-model">;
228
261
  topicSessionId: import("zod").ZodString;
229
262
  provider: import("zod").ZodString;
230
263
  model: import("zod").ZodString;
231
264
  reasoningEffort: import("zod").ZodNullable<import("zod").ZodString>;
232
- }, import("zod/v4/core").$strict>], "action">;
265
+ }, import("zod/v4/core").$strict>], "action">]>;
233
266
  }, {
234
267
  readonly name: "CiteCiterResponse";
235
268
  readonly schema: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
@@ -303,6 +336,12 @@ export declare const TYPERT: {
303
336
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
304
337
  role: import("zod").ZodLiteral<"error">;
305
338
  text: import("zod").ZodString;
339
+ bodyRetained: import("zod").ZodBoolean;
340
+ attempt: import("zod").ZodNumber;
341
+ status: import("zod").ZodEnum<{
342
+ failed: "failed";
343
+ stopped: "stopped";
344
+ }>;
306
345
  id: import("zod").ZodString;
307
346
  seq: import("zod").ZodNumber;
308
347
  }, import("zod/v4/core").$strict>], "role">>;
@@ -401,8 +440,9 @@ export declare const TYPERT: {
401
440
  readonly codec: {
402
441
  readonly mode: "strict";
403
442
  readonly typeSymbol: "@kirkchinese/dsh-citeciter#CiteCiterRequest";
404
- readonly schema: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
443
+ readonly schema: import("zod").ZodUnion<readonly [import("zod").ZodUnion<readonly [import("zod").ZodObject<{
405
444
  action: import("zod").ZodLiteral<"create">;
445
+ requestId: import("zod").ZodString;
406
446
  citation: import("zod").ZodObject<{
407
447
  sourceSessionId: import("zod").ZodString;
408
448
  anchorSeq: import("zod").ZodNumber;
@@ -421,6 +461,23 @@ export declare const TYPERT: {
421
461
  "exact-when-available": "exact-when-available";
422
462
  }>;
423
463
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
464
+ action: import("zod").ZodLiteral<"create">;
465
+ requestId: import("zod").ZodString;
466
+ selectionClaim: import("zod").ZodObject<{
467
+ sourceSessionId: import("zod").ZodString;
468
+ anchorSeq: import("zod").ZodNumber;
469
+ displayText: import("zod").ZodString;
470
+ sourceHintText: import("zod").ZodOptional<import("zod").ZodString>;
471
+ prefixText: import("zod").ZodString;
472
+ suffixText: import("zod").ZodString;
473
+ }, import("zod/v4/core").$strict>;
474
+ question: import("zod").ZodString;
475
+ mode: import("zod").ZodEnum<{
476
+ observer: "observer";
477
+ "exact-fork": "exact-fork";
478
+ "exact-when-available": "exact-when-available";
479
+ }>;
480
+ }, import("zod/v4/core").$strict>]>, import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
424
481
  action: import("zod").ZodLiteral<"list">;
425
482
  sourceSessionId: import("zod").ZodString;
426
483
  includeArchived: import("zod").ZodOptional<import("zod").ZodBoolean>;
@@ -463,13 +520,22 @@ export declare const TYPERT: {
463
520
  confirmSessionId: import("zod").ZodString;
464
521
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
465
522
  action: import("zod").ZodLiteral<"models">;
523
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
524
+ action: import("zod").ZodLiteral<"set-model-route">;
525
+ topicSessionId: import("zod").ZodString;
526
+ provider: import("zod").ZodString;
527
+ model: import("zod").ZodString;
528
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
529
+ action: import("zod").ZodLiteral<"set-reasoning-effort">;
530
+ topicSessionId: import("zod").ZodString;
531
+ reasoningEffort: import("zod").ZodNullable<import("zod").ZodString>;
466
532
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
467
533
  action: import("zod").ZodLiteral<"select-model">;
468
534
  topicSessionId: import("zod").ZodString;
469
535
  provider: import("zod").ZodString;
470
536
  model: import("zod").ZodString;
471
537
  reasoningEffort: import("zod").ZodNullable<import("zod").ZodString>;
472
- }, import("zod/v4/core").$strict>], "action">;
538
+ }, import("zod/v4/core").$strict>], "action">]>;
473
539
  };
474
540
  }];
475
541
  readonly result: {
@@ -546,6 +612,12 @@ export declare const TYPERT: {
546
612
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
547
613
  role: import("zod").ZodLiteral<"error">;
548
614
  text: import("zod").ZodString;
615
+ bodyRetained: import("zod").ZodBoolean;
616
+ attempt: import("zod").ZodNumber;
617
+ status: import("zod").ZodEnum<{
618
+ failed: "failed";
619
+ stopped: "stopped";
620
+ }>;
549
621
  id: import("zod").ZodString;
550
622
  seq: import("zod").ZodNumber;
551
623
  }, import("zod/v4/core").$strict>], "role">>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kirkchinese/dsh-citeciter",
3
- "version": "0.3.1",
4
- "description": "Private Observer-topic learning companion for live DeepSeek Harness conversations",
3
+ "version": "0.4.0",
4
+ "description": "Private, source-bound, read-only learning side threads for DeepSeek Harness",
5
5
  "keywords": [
6
6
  "deepseek-harness",
7
7
  "dsh",
@@ -9,7 +9,10 @@
9
9
  "cordis",
10
10
  "citation",
11
11
  "learning-companion",
12
- "conversation-context",
12
+ "side-chat",
13
+ "conversation-branching",
14
+ "context-management",
15
+ "read-only",
13
16
  "explanation",
14
17
  "observer",
15
18
  "topic"
@@ -76,84 +79,70 @@
76
79
  "cordis.patch.yml",
77
80
  "README.zh.md"
78
81
  ],
79
- "scripts": {
80
- "build": "npm run build:lib && npm run build:bundle",
81
- "prebuild:lib": "node scripts/clean-types.mjs",
82
- "build:lib": "tsc -p tsconfig.json",
83
- "prebuild:bundle": "node scripts/clean-bundle.mjs",
84
- "build:bundle": "tsdown --env.DSH_BUILD_FACE client",
85
- "postbuild:bundle": "node scripts/normalize-bundle.mjs",
86
- "prepack": "npm run build",
87
- "dev": "npm run build && node dev/watch.mjs",
88
- "smoke:seed": "node dev/seed-smoke-session.mjs",
89
- "smoke:hmr": "node dev/hmr-smoke.mjs",
90
- "typecheck": "tsc -p tsconfig.json --noEmit",
91
- "test": "npm run build:lib && node --test tests/*.test.mjs"
92
- },
93
82
  "peerDependencies": {
94
83
  "@deepseek-ai/cordis": "^4.0.1",
95
- "@deepseek-ai/dsh-agent": ">=0.1.0-rc.7 <0.1.0-rc.8",
96
- "@deepseek-ai/dsh-agent-loop": ">=0.1.0-rc.7 <0.1.0-rc.8",
97
- "@deepseek-ai/dsh-api-gateway": ">=0.1.0-rc.7 <0.1.0-rc.8",
98
- "@deepseek-ai/dsh-client-runtime": ">=0.1.0-rc.7 <0.1.0-rc.8",
99
- "@deepseek-ai/dsh-client-ui-layout": ">=0.1.0-rc.7 <0.1.0-rc.8",
100
- "@deepseek-ai/dsh-client-ui-primitives": ">=0.1.0-rc.7 <0.1.0-rc.8",
101
- "@deepseek-ai/dsh-client-ui-settings": ">=0.1.0-rc.7 <0.1.0-rc.8",
102
- "@deepseek-ai/dsh-client-ui-slots": ">=0.1.0-rc.7 <0.1.0-rc.8",
103
- "@deepseek-ai/dsh-fs": ">=0.1.0-rc.7 <0.1.0-rc.8",
104
- "@deepseek-ai/dsh-home-paths": ">=0.1.0-rc.7 <0.1.0-rc.8",
105
- "@deepseek-ai/dsh-llm": ">=0.1.0-rc.7 <0.1.0-rc.8",
106
- "@deepseek-ai/dsh-output-retention": ">=0.1.0-rc.7 <0.1.0-rc.8",
107
- "@deepseek-ai/dsh-sandbox-policy": ">=0.1.0-rc.7 <0.1.0-rc.8",
108
- "@deepseek-ai/dsh-session": ">=0.1.0-rc.7 <0.1.0-rc.8",
109
- "@deepseek-ai/dsh-session-persistence-jsonl": ">=0.1.0-rc.7 <0.1.0-rc.8",
110
- "@deepseek-ai/dsh-session-query": ">=0.1.0-rc.7 <0.1.0-rc.8",
111
- "@deepseek-ai/dsh-session-title": ">=0.1.0-rc.7 <0.1.0-rc.8",
112
- "@deepseek-ai/dsh-session-title-first-prompt-llm": ">=0.1.0-rc.7 <0.1.0-rc.8",
113
- "@deepseek-ai/dsh-settings": ">=0.1.0-rc.7 <0.1.0-rc.8",
114
- "@deepseek-ai/dsh-subprocess": ">=0.1.0-rc.7 <0.1.0-rc.8",
115
- "@deepseek-ai/dsh-spill": ">=0.1.0-rc.7 <0.1.0-rc.8",
116
- "@deepseek-ai/dsh-system-prompt": ">=0.1.0-rc.7 <0.1.0-rc.8",
117
- "@deepseek-ai/dsh-tool-ask-user": ">=0.1.0-rc.7 <0.1.0-rc.8",
118
- "@deepseek-ai/dsh-tool-fs": ">=0.1.0-rc.7 <0.1.0-rc.8",
119
- "@deepseek-ai/dsh-tool-fs-search": ">=0.1.0-rc.7 <0.1.0-rc.8",
120
- "@deepseek-ai/dsh-tools": ">=0.1.0-rc.7 <0.1.0-rc.8",
121
- "@deepseek-ai/dsh-typert-protocol": ">=0.1.0-rc.7 <0.1.0-rc.8",
122
- "@deepseek-ai/dsh-user-questions": ">=0.1.0-rc.7 <0.1.0-rc.8",
84
+ "@deepseek-ai/dsh-agent": ">=0.1.1-rc.1 <0.1.1-rc.3",
85
+ "@deepseek-ai/dsh-agent-loop": ">=0.1.1-rc.1 <0.1.1-rc.3",
86
+ "@deepseek-ai/dsh-api-gateway": ">=0.1.1-rc.1 <0.1.1-rc.3",
87
+ "@deepseek-ai/dsh-client-runtime": ">=0.1.1-rc.1 <0.1.1-rc.3",
88
+ "@deepseek-ai/dsh-client-ui-layout": ">=0.1.1-rc.1 <0.1.1-rc.3",
89
+ "@deepseek-ai/dsh-client-ui-primitives": ">=0.1.1-rc.1 <0.1.1-rc.3",
90
+ "@deepseek-ai/dsh-client-ui-settings": ">=0.1.1-rc.1 <0.1.1-rc.3",
91
+ "@deepseek-ai/dsh-client-ui-slots": ">=0.1.1-rc.1 <0.1.1-rc.3",
92
+ "@deepseek-ai/dsh-fs": ">=0.1.1-rc.1 <0.1.1-rc.3",
93
+ "@deepseek-ai/dsh-home-paths": ">=0.1.1-rc.1 <0.1.1-rc.3",
94
+ "@deepseek-ai/dsh-llm": ">=0.1.1-rc.1 <0.1.1-rc.3",
95
+ "@deepseek-ai/dsh-output-retention": ">=0.1.1-rc.1 <0.1.1-rc.3",
96
+ "@deepseek-ai/dsh-sandbox-policy": ">=0.1.1-rc.1 <0.1.1-rc.3",
97
+ "@deepseek-ai/dsh-session": ">=0.1.1-rc.1 <0.1.1-rc.3",
98
+ "@deepseek-ai/dsh-session-persistence-jsonl": ">=0.1.1-rc.1 <0.1.1-rc.3",
99
+ "@deepseek-ai/dsh-session-query": ">=0.1.1-rc.1 <0.1.1-rc.3",
100
+ "@deepseek-ai/dsh-session-title": ">=0.1.1-rc.1 <0.1.1-rc.3",
101
+ "@deepseek-ai/dsh-session-title-llm": ">=0.1.1-rc.1 <0.1.1-rc.3",
102
+ "@deepseek-ai/dsh-settings": ">=0.1.1-rc.1 <0.1.1-rc.3",
103
+ "@deepseek-ai/dsh-subprocess": ">=0.1.1-rc.1 <0.1.1-rc.3",
104
+ "@deepseek-ai/dsh-spill": ">=0.1.1-rc.1 <0.1.1-rc.3",
105
+ "@deepseek-ai/dsh-system-prompt": ">=0.1.1-rc.1 <0.1.1-rc.3",
106
+ "@deepseek-ai/dsh-tool-ask-user": ">=0.1.1-rc.1 <0.1.1-rc.3",
107
+ "@deepseek-ai/dsh-tool-fs": ">=0.1.1-rc.1 <0.1.1-rc.3",
108
+ "@deepseek-ai/dsh-tool-fs-search": ">=0.1.1-rc.1 <0.1.1-rc.3",
109
+ "@deepseek-ai/dsh-tools": ">=0.1.1-rc.1 <0.1.1-rc.3",
110
+ "@deepseek-ai/dsh-typert-protocol": ">=0.1.1-rc.1 <0.1.1-rc.3",
111
+ "@deepseek-ai/dsh-user-questions": ">=0.1.1-rc.1 <0.1.1-rc.3",
123
112
  "@deepseek-ai/schemastery": "^3.18.1",
124
113
  "react": "^18.2.0",
125
114
  "zod": "^4.4.3"
126
115
  },
127
116
  "devDependencies": {
128
117
  "@deepseek-ai/cordis": "^4.0.1",
129
- "@deepseek-ai/dsh-agent": "0.1.0-rc.7",
130
- "@deepseek-ai/dsh-agent-loop": "0.1.0-rc.7",
131
- "@deepseek-ai/dsh-api-gateway": "0.1.0-rc.7",
132
- "@deepseek-ai/dsh-client-runtime": "0.1.0-rc.7",
133
- "@deepseek-ai/dsh-client-ui-layout": "0.1.0-rc.7",
134
- "@deepseek-ai/dsh-client-ui-primitives": "0.1.0-rc.7",
135
- "@deepseek-ai/dsh-client-ui-settings": "0.1.0-rc.7",
136
- "@deepseek-ai/dsh-client-ui-slots": "0.1.0-rc.7",
137
- "@deepseek-ai/dsh-fs": "0.1.0-rc.7",
138
- "@deepseek-ai/dsh-home-paths": "0.1.0-rc.7",
139
- "@deepseek-ai/dsh-llm": "0.1.0-rc.7",
140
- "@deepseek-ai/dsh-output-retention": "0.1.0-rc.7",
141
- "@deepseek-ai/dsh-sandbox-policy": "0.1.0-rc.7",
142
- "@deepseek-ai/dsh-session": "0.1.0-rc.7",
143
- "@deepseek-ai/dsh-session-persistence-jsonl": "0.1.0-rc.7",
144
- "@deepseek-ai/dsh-session-query": "0.1.0-rc.7",
145
- "@deepseek-ai/dsh-session-title": "0.1.0-rc.7",
146
- "@deepseek-ai/dsh-session-title-first-prompt-llm": "0.1.0-rc.7",
147
- "@deepseek-ai/dsh-settings": "0.1.0-rc.7",
148
- "@deepseek-ai/dsh-subprocess": "0.1.0-rc.7",
149
- "@deepseek-ai/dsh-spill": "0.1.0-rc.7",
150
- "@deepseek-ai/dsh-system-prompt": "0.1.0-rc.7",
151
- "@deepseek-ai/dsh-tool-ask-user": "0.1.0-rc.7",
152
- "@deepseek-ai/dsh-tool-fs": "0.1.0-rc.7",
153
- "@deepseek-ai/dsh-tool-fs-search": "0.1.0-rc.7",
154
- "@deepseek-ai/dsh-tools": "0.1.0-rc.7",
155
- "@deepseek-ai/dsh-typert-protocol": "0.1.0-rc.7",
156
- "@deepseek-ai/dsh-user-questions": "0.1.0-rc.7",
118
+ "@deepseek-ai/dsh-agent": "0.1.1-rc.2",
119
+ "@deepseek-ai/dsh-agent-loop": "0.1.1-rc.2",
120
+ "@deepseek-ai/dsh-api-gateway": "0.1.1-rc.2",
121
+ "@deepseek-ai/dsh-client-runtime": "0.1.1-rc.2",
122
+ "@deepseek-ai/dsh-client-ui-layout": "0.1.1-rc.2",
123
+ "@deepseek-ai/dsh-client-ui-primitives": "0.1.1-rc.2",
124
+ "@deepseek-ai/dsh-client-ui-settings": "0.1.1-rc.2",
125
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.1-rc.2",
126
+ "@deepseek-ai/dsh-fs": "0.1.1-rc.2",
127
+ "@deepseek-ai/dsh-home-paths": "0.1.1-rc.2",
128
+ "@deepseek-ai/dsh-llm": "0.1.1-rc.2",
129
+ "@deepseek-ai/dsh-output-retention": "0.1.1-rc.2",
130
+ "@deepseek-ai/dsh-sandbox-policy": "0.1.1-rc.2",
131
+ "@deepseek-ai/dsh-session": "0.1.1-rc.2",
132
+ "@deepseek-ai/dsh-session-persistence-jsonl": "0.1.1-rc.2",
133
+ "@deepseek-ai/dsh-session-query": "0.1.1-rc.2",
134
+ "@deepseek-ai/dsh-session-title": "0.1.1-rc.2",
135
+ "@deepseek-ai/dsh-session-title-llm": "0.1.1-rc.2",
136
+ "@deepseek-ai/dsh-settings": "0.1.1-rc.2",
137
+ "@deepseek-ai/dsh-subprocess": "0.1.1-rc.2",
138
+ "@deepseek-ai/dsh-spill": "0.1.1-rc.2",
139
+ "@deepseek-ai/dsh-system-prompt": "0.1.1-rc.2",
140
+ "@deepseek-ai/dsh-tool-ask-user": "0.1.1-rc.2",
141
+ "@deepseek-ai/dsh-tool-fs": "0.1.1-rc.2",
142
+ "@deepseek-ai/dsh-tool-fs-search": "0.1.1-rc.2",
143
+ "@deepseek-ai/dsh-tools": "0.1.1-rc.2",
144
+ "@deepseek-ai/dsh-typert-protocol": "0.1.1-rc.2",
145
+ "@deepseek-ai/dsh-user-questions": "0.1.1-rc.2",
157
146
  "@deepseek-ai/schemastery": "^3.18.1",
158
147
  "@types/mdast": "^4.0.4",
159
148
  "@types/node": "^24.10.0",
@@ -168,5 +157,18 @@
168
157
  "tsdown": "^0.22.2",
169
158
  "typescript": "^6.0.3",
170
159
  "zod": "^4.4.3"
160
+ },
161
+ "scripts": {
162
+ "build": "npm run build:lib && npm run build:bundle",
163
+ "prebuild:lib": "node scripts/clean-types.mjs",
164
+ "build:lib": "tsc -p tsconfig.json",
165
+ "prebuild:bundle": "node scripts/clean-bundle.mjs",
166
+ "build:bundle": "tsdown --env.DSH_BUILD_FACE client",
167
+ "postbuild:bundle": "node scripts/normalize-bundle.mjs",
168
+ "dev": "npm run build && node dev/watch.mjs",
169
+ "smoke:seed": "node dev/seed-smoke-session.mjs",
170
+ "smoke:hmr": "node dev/hmr-smoke.mjs",
171
+ "typecheck": "tsc -p tsconfig.json --noEmit",
172
+ "test": "npm run build:lib && node --test tests/*.test.mjs"
171
173
  }
172
- }
174
+ }