dsh-plugin-dev-kb 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -9
- package/kb/INDEX.md +1 -1
- package/kb/README.md +22 -11
- package/kb/extra/development.md +2 -0
- package/kb/extra/development.zh.md +2 -0
- package/kb/extra/event-producer-consumer.md +9 -9
- package/kb/extra/event-producer-consumer.zh.md +9 -9
- package/kb/extra/i18n/README.md +1 -1
- package/kb/extra/i18n/README.zh.md +1 -1
- package/kb/extra/module-graph.md +251 -210
- package/kb/extra/module-graph.zh.md +251 -210
- package/kb/extra/subsystems/agent-team.md +183 -0
- package/kb/extra/subsystems/agent-team.zh.md +183 -0
- package/kb/extra/subsystems/attachment.md +16 -2
- package/kb/extra/subsystems/attachment.zh.md +16 -2
- package/kb/meta/search-index.json +54 -42
- package/kb/meta/source.json +3 -3
- package/kb/meta/topics.md +1 -1
- package/kb/site/en/guide/providers.md +40 -1
- package/kb/site/en/reference/capability-seams.md +12 -0
- package/kb/site/en/reference/config-catalog.md +238 -72
- package/kb/site/en/reference/index.md +2 -0
- package/kb/site/en/reference/persistence-catalog.md +76 -13
- package/kb/site/en/reference/subsystems/client-modules.md +11 -3
- package/kb/site/en/reference/subsystems/commands.md +28 -5
- package/kb/site/en/reference/subsystems/index.md +1 -0
- package/kb/site/en/reference/subsystems/llm-streaming.md +11 -2
- package/kb/site/en/reference/subsystems/persistence.md +3 -3
- package/kb/site/en/reference/subsystems/plan.md +1 -1
- package/kb/site/en/reference/subsystems/session-reference.md +71 -5
- package/kb/site/en/reference/subsystems/session.md +6 -2
- package/kb/site/en/reference/subsystems/subagent.md +22 -3
- package/kb/site/en/reference/subsystems/web.md +5 -4
- package/kb/site/en/reference/tool-catalog.md +353 -5
- package/kb/site/guide/providers.md +40 -1
- package/kb/site/reference/capability-seams.md +12 -0
- package/kb/site/reference/config-catalog.md +252 -86
- package/kb/site/reference/index.md +2 -0
- package/kb/site/reference/persistence-catalog.md +76 -13
- package/kb/site/reference/subsystems/client-modules.md +11 -3
- package/kb/site/reference/subsystems/commands.md +28 -5
- package/kb/site/reference/subsystems/index.md +1 -0
- package/kb/site/reference/subsystems/llm-streaming.md +11 -2
- package/kb/site/reference/subsystems/persistence.md +3 -3
- package/kb/site/reference/subsystems/plan.md +1 -1
- package/kb/site/reference/subsystems/session-reference.md +71 -5
- package/kb/site/reference/subsystems/session.md +6 -2
- package/kb/site/reference/subsystems/subagent.md +22 -3
- package/kb/site/reference/subsystems/web.md +5 -4
- package/kb/site/reference/tool-catalog.md +352 -5
- package/lib/index.js +113 -0
- package/package.json +14 -2
- package/scripts/rebuild-index.mjs +2 -1
- package/scripts/selfcheck.mjs +30 -0
- package/skills/dsh-plugin-dev-kb.md +2 -2
|
@@ -69,25 +69,25 @@
|
|
|
69
69
|
"path": "kb/extra/development.md",
|
|
70
70
|
"url": "",
|
|
71
71
|
"title": "Development guide",
|
|
72
|
-
"chars":
|
|
72
|
+
"chars": 16137
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
"path": "kb/extra/development.zh.md",
|
|
76
76
|
"url": "",
|
|
77
77
|
"title": "开发指南",
|
|
78
|
-
"chars":
|
|
78
|
+
"chars": 9038
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
81
|
"path": "kb/extra/event-producer-consumer.md",
|
|
82
82
|
"url": "",
|
|
83
83
|
"title": "Event Producer And Consumer Matrix",
|
|
84
|
-
"chars":
|
|
84
|
+
"chars": 20582
|
|
85
85
|
},
|
|
86
86
|
{
|
|
87
87
|
"path": "kb/extra/event-producer-consumer.zh.md",
|
|
88
88
|
"url": "",
|
|
89
89
|
"title": "事件生产方与消费方矩阵",
|
|
90
|
-
"chars":
|
|
90
|
+
"chars": 20315
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
"path": "kb/extra/glossary.md",
|
|
@@ -117,13 +117,13 @@
|
|
|
117
117
|
"path": "kb/extra/i18n/README.md",
|
|
118
118
|
"url": "",
|
|
119
119
|
"title": "Bilingual documentation",
|
|
120
|
-
"chars":
|
|
120
|
+
"chars": 11545
|
|
121
121
|
},
|
|
122
122
|
{
|
|
123
123
|
"path": "kb/extra/i18n/README.zh.md",
|
|
124
124
|
"url": "",
|
|
125
125
|
"title": "双语文档",
|
|
126
|
-
"chars":
|
|
126
|
+
"chars": 5541
|
|
127
127
|
},
|
|
128
128
|
{
|
|
129
129
|
"path": "kb/extra/i18n/style-samples.md",
|
|
@@ -159,13 +159,13 @@
|
|
|
159
159
|
"path": "kb/extra/module-graph.md",
|
|
160
160
|
"url": "",
|
|
161
161
|
"title": "Module dependency graph",
|
|
162
|
-
"chars":
|
|
162
|
+
"chars": 127543
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
165
|
"path": "kb/extra/module-graph.zh.md",
|
|
166
166
|
"url": "",
|
|
167
167
|
"title": "模块依赖关系图",
|
|
168
|
-
"chars":
|
|
168
|
+
"chars": 127476
|
|
169
169
|
},
|
|
170
170
|
{
|
|
171
171
|
"path": "kb/extra/postmortem/0001-acp-default-export-drops-inject.md",
|
|
@@ -239,17 +239,29 @@
|
|
|
239
239
|
"title": "Vendored 包改名",
|
|
240
240
|
"chars": 3304
|
|
241
241
|
},
|
|
242
|
+
{
|
|
243
|
+
"path": "kb/extra/subsystems/agent-team.md",
|
|
244
|
+
"url": "",
|
|
245
|
+
"title": "Agent Teams",
|
|
246
|
+
"chars": 8366
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"path": "kb/extra/subsystems/agent-team.zh.md",
|
|
250
|
+
"url": "",
|
|
251
|
+
"title": "Agent Teams",
|
|
252
|
+
"chars": 7324
|
|
253
|
+
},
|
|
242
254
|
{
|
|
243
255
|
"path": "kb/extra/subsystems/attachment.md",
|
|
244
256
|
"url": "",
|
|
245
257
|
"title": "Durable Image Attachments",
|
|
246
|
-
"chars":
|
|
258
|
+
"chars": 6971
|
|
247
259
|
},
|
|
248
260
|
{
|
|
249
261
|
"path": "kb/extra/subsystems/attachment.zh.md",
|
|
250
262
|
"url": "",
|
|
251
263
|
"title": "持久图片附件",
|
|
252
|
-
"chars":
|
|
264
|
+
"chars": 5711
|
|
253
265
|
},
|
|
254
266
|
{
|
|
255
267
|
"path": "kb/extra/subsystems/extensions.md",
|
|
@@ -303,7 +315,7 @@
|
|
|
303
315
|
"path": "kb/INDEX.md",
|
|
304
316
|
"url": "",
|
|
305
317
|
"title": "DeepSeek Harness 文档索引",
|
|
306
|
-
"chars":
|
|
318
|
+
"chars": 39551
|
|
307
319
|
},
|
|
308
320
|
{
|
|
309
321
|
"path": "kb/meta/topics.md",
|
|
@@ -315,7 +327,7 @@
|
|
|
315
327
|
"path": "kb/README.md",
|
|
316
328
|
"url": "",
|
|
317
329
|
"title": "DeepSeek Harness 文档知识库",
|
|
318
|
-
"chars":
|
|
330
|
+
"chars": 3816
|
|
319
331
|
},
|
|
320
332
|
{
|
|
321
333
|
"path": "kb/site/develop/basic/config.md",
|
|
@@ -525,7 +537,7 @@
|
|
|
525
537
|
"path": "kb/site/en/guide/providers.md",
|
|
526
538
|
"url": "https://deepseek-harness.github.io/deepseek-harness/en/guide/providers",
|
|
527
539
|
"title": "Configure models",
|
|
528
|
-
"chars":
|
|
540
|
+
"chars": 9304
|
|
529
541
|
},
|
|
530
542
|
{
|
|
531
543
|
"path": "kb/site/en/guide/python-sdk.md",
|
|
@@ -555,13 +567,13 @@
|
|
|
555
567
|
"path": "kb/site/en/reference/capability-seams.md",
|
|
556
568
|
"url": "https://deepseek-harness.github.io/deepseek-harness/en/reference/capability-seams",
|
|
557
569
|
"title": "Capability Seams And Core Services",
|
|
558
|
-
"chars":
|
|
570
|
+
"chars": 51057
|
|
559
571
|
},
|
|
560
572
|
{
|
|
561
573
|
"path": "kb/site/en/reference/config-catalog.md",
|
|
562
574
|
"url": "https://deepseek-harness.github.io/deepseek-harness/en/reference/config-catalog",
|
|
563
575
|
"title": "Plugin Config Catalog",
|
|
564
|
-
"chars":
|
|
576
|
+
"chars": 154008
|
|
565
577
|
},
|
|
566
578
|
{
|
|
567
579
|
"path": "kb/site/en/reference/cookbook/adding-a-conversation-node.md",
|
|
@@ -645,13 +657,13 @@
|
|
|
645
657
|
"path": "kb/site/en/reference/index.md",
|
|
646
658
|
"url": "https://deepseek-harness.github.io/deepseek-harness/en/reference",
|
|
647
659
|
"title": "DeepSeek Harness Architecture",
|
|
648
|
-
"chars":
|
|
660
|
+
"chars": 9824
|
|
649
661
|
},
|
|
650
662
|
{
|
|
651
663
|
"path": "kb/site/en/reference/persistence-catalog.md",
|
|
652
664
|
"url": "https://deepseek-harness.github.io/deepseek-harness/en/reference/persistence-catalog",
|
|
653
665
|
"title": "Session Persistence Event Catalog",
|
|
654
|
-
"chars":
|
|
666
|
+
"chars": 39089
|
|
655
667
|
},
|
|
656
668
|
{
|
|
657
669
|
"path": "kb/site/en/reference/subsystems/approval.md",
|
|
@@ -663,7 +675,7 @@
|
|
|
663
675
|
"path": "kb/site/en/reference/subsystems/client-modules.md",
|
|
664
676
|
"url": "https://deepseek-harness.github.io/deepseek-harness/en/reference/subsystems/client-modules",
|
|
665
677
|
"title": "Client Modules",
|
|
666
|
-
"chars":
|
|
678
|
+
"chars": 9616
|
|
667
679
|
},
|
|
668
680
|
{
|
|
669
681
|
"path": "kb/site/en/reference/subsystems/code-runtime.md",
|
|
@@ -675,7 +687,7 @@
|
|
|
675
687
|
"path": "kb/site/en/reference/subsystems/commands.md",
|
|
676
688
|
"url": "https://deepseek-harness.github.io/deepseek-harness/en/reference/subsystems/commands",
|
|
677
689
|
"title": "Human Commands",
|
|
678
|
-
"chars":
|
|
690
|
+
"chars": 9887
|
|
679
691
|
},
|
|
680
692
|
{
|
|
681
693
|
"path": "kb/site/en/reference/subsystems/compaction.md",
|
|
@@ -711,7 +723,7 @@
|
|
|
711
723
|
"path": "kb/site/en/reference/subsystems/index.md",
|
|
712
724
|
"url": "https://deepseek-harness.github.io/deepseek-harness/en/reference/subsystems",
|
|
713
725
|
"title": "Subsystems",
|
|
714
|
-
"chars":
|
|
726
|
+
"chars": 8810
|
|
715
727
|
},
|
|
716
728
|
{
|
|
717
729
|
"path": "kb/site/en/reference/subsystems/invariants.md",
|
|
@@ -729,7 +741,7 @@
|
|
|
729
741
|
"path": "kb/site/en/reference/subsystems/llm-streaming.md",
|
|
730
742
|
"url": "https://deepseek-harness.github.io/deepseek-harness/en/reference/subsystems/llm-streaming",
|
|
731
743
|
"title": "LLM Streaming",
|
|
732
|
-
"chars":
|
|
744
|
+
"chars": 50223
|
|
733
745
|
},
|
|
734
746
|
{
|
|
735
747
|
"path": "kb/site/en/reference/subsystems/lsp.md",
|
|
@@ -747,7 +759,7 @@
|
|
|
747
759
|
"path": "kb/site/en/reference/subsystems/persistence.md",
|
|
748
760
|
"url": "https://deepseek-harness.github.io/deepseek-harness/en/reference/subsystems/persistence",
|
|
749
761
|
"title": "Session Persistence",
|
|
750
|
-
"chars":
|
|
762
|
+
"chars": 24848
|
|
751
763
|
},
|
|
752
764
|
{
|
|
753
765
|
"path": "kb/site/en/reference/subsystems/plan.md",
|
|
@@ -789,7 +801,7 @@
|
|
|
789
801
|
"path": "kb/site/en/reference/subsystems/session-reference.md",
|
|
790
802
|
"url": "https://deepseek-harness.github.io/deepseek-harness/en/reference/subsystems/session-reference",
|
|
791
803
|
"title": "Session References",
|
|
792
|
-
"chars":
|
|
804
|
+
"chars": 8384
|
|
793
805
|
},
|
|
794
806
|
{
|
|
795
807
|
"path": "kb/site/en/reference/subsystems/session-telemetry.md",
|
|
@@ -807,7 +819,7 @@
|
|
|
807
819
|
"path": "kb/site/en/reference/subsystems/session.md",
|
|
808
820
|
"url": "https://deepseek-harness.github.io/deepseek-harness/en/reference/subsystems/session",
|
|
809
821
|
"title": "Sessions",
|
|
810
|
-
"chars":
|
|
822
|
+
"chars": 52008
|
|
811
823
|
},
|
|
812
824
|
{
|
|
813
825
|
"path": "kb/site/en/reference/subsystems/settings.md",
|
|
@@ -843,7 +855,7 @@
|
|
|
843
855
|
"path": "kb/site/en/reference/subsystems/subagent.md",
|
|
844
856
|
"url": "https://deepseek-harness.github.io/deepseek-harness/en/reference/subsystems/subagent",
|
|
845
857
|
"title": "Subagent",
|
|
846
|
-
"chars":
|
|
858
|
+
"chars": 53733
|
|
847
859
|
},
|
|
848
860
|
{
|
|
849
861
|
"path": "kb/site/en/reference/subsystems/subprocess.md",
|
|
@@ -897,7 +909,7 @@
|
|
|
897
909
|
"path": "kb/site/en/reference/subsystems/web.md",
|
|
898
910
|
"url": "https://deepseek-harness.github.io/deepseek-harness/en/reference/subsystems/web",
|
|
899
911
|
"title": "Web Access",
|
|
900
|
-
"chars":
|
|
912
|
+
"chars": 12488
|
|
901
913
|
},
|
|
902
914
|
{
|
|
903
915
|
"path": "kb/site/en/reference/subsystems/workflow.md",
|
|
@@ -915,7 +927,7 @@
|
|
|
915
927
|
"path": "kb/site/en/reference/tool-catalog.md",
|
|
916
928
|
"url": "https://deepseek-harness.github.io/deepseek-harness/en/reference/tool-catalog",
|
|
917
929
|
"title": "Tool Schema Catalog",
|
|
918
|
-
"chars":
|
|
930
|
+
"chars": 94044
|
|
919
931
|
},
|
|
920
932
|
{
|
|
921
933
|
"path": "kb/site/en/reference/tool-execution-pipeline.md",
|
|
@@ -927,7 +939,7 @@
|
|
|
927
939
|
"path": "kb/site/guide/providers.md",
|
|
928
940
|
"url": "https://deepseek-harness.github.io/deepseek-harness/guide/providers",
|
|
929
941
|
"title": "配置模型",
|
|
930
|
-
"chars":
|
|
942
|
+
"chars": 4846
|
|
931
943
|
},
|
|
932
944
|
{
|
|
933
945
|
"path": "kb/site/guide/python-sdk.md",
|
|
@@ -957,13 +969,13 @@
|
|
|
957
969
|
"path": "kb/site/reference/capability-seams.md",
|
|
958
970
|
"url": "https://deepseek-harness.github.io/deepseek-harness/reference/capability-seams",
|
|
959
971
|
"title": "能力 Seams 与核心服务",
|
|
960
|
-
"chars":
|
|
972
|
+
"chars": 45425
|
|
961
973
|
},
|
|
962
974
|
{
|
|
963
975
|
"path": "kb/site/reference/config-catalog.md",
|
|
964
976
|
"url": "https://deepseek-harness.github.io/deepseek-harness/reference/config-catalog",
|
|
965
977
|
"title": "插件配置目录",
|
|
966
|
-
"chars":
|
|
978
|
+
"chars": 151329
|
|
967
979
|
},
|
|
968
980
|
{
|
|
969
981
|
"path": "kb/site/reference/cookbook/adding-a-conversation-node.md",
|
|
@@ -1047,13 +1059,13 @@
|
|
|
1047
1059
|
"path": "kb/site/reference/index.md",
|
|
1048
1060
|
"url": "https://deepseek-harness.github.io/deepseek-harness/reference",
|
|
1049
1061
|
"title": "DeepSeek Harness 架构",
|
|
1050
|
-
"chars":
|
|
1062
|
+
"chars": 6078
|
|
1051
1063
|
},
|
|
1052
1064
|
{
|
|
1053
1065
|
"path": "kb/site/reference/persistence-catalog.md",
|
|
1054
1066
|
"url": "https://deepseek-harness.github.io/deepseek-harness/reference/persistence-catalog",
|
|
1055
1067
|
"title": "会话持久化事件目录",
|
|
1056
|
-
"chars":
|
|
1068
|
+
"chars": 37915
|
|
1057
1069
|
},
|
|
1058
1070
|
{
|
|
1059
1071
|
"path": "kb/site/reference/subsystems/approval.md",
|
|
@@ -1065,7 +1077,7 @@
|
|
|
1065
1077
|
"path": "kb/site/reference/subsystems/client-modules.md",
|
|
1066
1078
|
"url": "https://deepseek-harness.github.io/deepseek-harness/reference/subsystems/client-modules",
|
|
1067
1079
|
"title": "Client 模块",
|
|
1068
|
-
"chars":
|
|
1080
|
+
"chars": 7203
|
|
1069
1081
|
},
|
|
1070
1082
|
{
|
|
1071
1083
|
"path": "kb/site/reference/subsystems/code-runtime.md",
|
|
@@ -1077,7 +1089,7 @@
|
|
|
1077
1089
|
"path": "kb/site/reference/subsystems/commands.md",
|
|
1078
1090
|
"url": "https://deepseek-harness.github.io/deepseek-harness/reference/subsystems/commands",
|
|
1079
1091
|
"title": "用户命令",
|
|
1080
|
-
"chars":
|
|
1092
|
+
"chars": 8990
|
|
1081
1093
|
},
|
|
1082
1094
|
{
|
|
1083
1095
|
"path": "kb/site/reference/subsystems/compaction.md",
|
|
@@ -1113,7 +1125,7 @@
|
|
|
1113
1125
|
"path": "kb/site/reference/subsystems/index.md",
|
|
1114
1126
|
"url": "https://deepseek-harness.github.io/deepseek-harness/reference/subsystems",
|
|
1115
1127
|
"title": "子系统",
|
|
1116
|
-
"chars":
|
|
1128
|
+
"chars": 5841
|
|
1117
1129
|
},
|
|
1118
1130
|
{
|
|
1119
1131
|
"path": "kb/site/reference/subsystems/invariants.md",
|
|
@@ -1131,7 +1143,7 @@
|
|
|
1131
1143
|
"path": "kb/site/reference/subsystems/llm-streaming.md",
|
|
1132
1144
|
"url": "https://deepseek-harness.github.io/deepseek-harness/reference/subsystems/llm-streaming",
|
|
1133
1145
|
"title": "LLM(大语言模型)流式输出",
|
|
1134
|
-
"chars":
|
|
1146
|
+
"chars": 42080
|
|
1135
1147
|
},
|
|
1136
1148
|
{
|
|
1137
1149
|
"path": "kb/site/reference/subsystems/lsp.md",
|
|
@@ -1149,7 +1161,7 @@
|
|
|
1149
1161
|
"path": "kb/site/reference/subsystems/persistence.md",
|
|
1150
1162
|
"url": "https://deepseek-harness.github.io/deepseek-harness/reference/subsystems/persistence",
|
|
1151
1163
|
"title": "会话持久化",
|
|
1152
|
-
"chars":
|
|
1164
|
+
"chars": 20199
|
|
1153
1165
|
},
|
|
1154
1166
|
{
|
|
1155
1167
|
"path": "kb/site/reference/subsystems/plan.md",
|
|
@@ -1191,7 +1203,7 @@
|
|
|
1191
1203
|
"path": "kb/site/reference/subsystems/session-reference.md",
|
|
1192
1204
|
"url": "https://deepseek-harness.github.io/deepseek-harness/reference/subsystems/session-reference",
|
|
1193
1205
|
"title": "会话引用",
|
|
1194
|
-
"chars":
|
|
1206
|
+
"chars": 7475
|
|
1195
1207
|
},
|
|
1196
1208
|
{
|
|
1197
1209
|
"path": "kb/site/reference/subsystems/session-telemetry.md",
|
|
@@ -1209,7 +1221,7 @@
|
|
|
1209
1221
|
"path": "kb/site/reference/subsystems/session.md",
|
|
1210
1222
|
"url": "https://deepseek-harness.github.io/deepseek-harness/reference/subsystems/session",
|
|
1211
1223
|
"title": "会话",
|
|
1212
|
-
"chars":
|
|
1224
|
+
"chars": 43437
|
|
1213
1225
|
},
|
|
1214
1226
|
{
|
|
1215
1227
|
"path": "kb/site/reference/subsystems/settings.md",
|
|
@@ -1245,7 +1257,7 @@
|
|
|
1245
1257
|
"path": "kb/site/reference/subsystems/subagent.md",
|
|
1246
1258
|
"url": "https://deepseek-harness.github.io/deepseek-harness/reference/subsystems/subagent",
|
|
1247
1259
|
"title": "Subagent",
|
|
1248
|
-
"chars":
|
|
1260
|
+
"chars": 42733
|
|
1249
1261
|
},
|
|
1250
1262
|
{
|
|
1251
1263
|
"path": "kb/site/reference/subsystems/subprocess.md",
|
|
@@ -1299,7 +1311,7 @@
|
|
|
1299
1311
|
"path": "kb/site/reference/subsystems/web.md",
|
|
1300
1312
|
"url": "https://deepseek-harness.github.io/deepseek-harness/reference/subsystems/web",
|
|
1301
1313
|
"title": "Web 访问",
|
|
1302
|
-
"chars":
|
|
1314
|
+
"chars": 10371
|
|
1303
1315
|
},
|
|
1304
1316
|
{
|
|
1305
1317
|
"path": "kb/site/reference/subsystems/workflow.md",
|
|
@@ -1317,7 +1329,7 @@
|
|
|
1317
1329
|
"path": "kb/site/reference/tool-catalog.md",
|
|
1318
1330
|
"url": "https://deepseek-harness.github.io/deepseek-harness/reference/tool-catalog",
|
|
1319
1331
|
"title": "工具 Schema 目录",
|
|
1320
|
-
"chars":
|
|
1332
|
+
"chars": 73456
|
|
1321
1333
|
},
|
|
1322
1334
|
{
|
|
1323
1335
|
"path": "kb/site/reference/tool-execution-pipeline.md",
|
package/kb/meta/source.json
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
"source": "官方文档站点 https://deepseek-harness.github.io/deepseek-harness/ (VitePress)",
|
|
4
4
|
"repository": "https://github.com/deepseek-ai/deepseek-harness",
|
|
5
5
|
"branch": "master",
|
|
6
|
-
"commit": "
|
|
7
|
-
"fetchedAt": "2026-08-
|
|
6
|
+
"commit": "141eb6fef83422698aef7a981029e843e8161534",
|
|
7
|
+
"fetchedAt": "2026-08-20T06:20:00.000Z",
|
|
8
8
|
"siteBase": "https://deepseek-harness.github.io/deepseek-harness",
|
|
9
9
|
"publishedMarkdownPages": 168,
|
|
10
10
|
"siteFiles": 172,
|
|
11
11
|
"images": 4,
|
|
12
|
-
"extraFiles":
|
|
12
|
+
"extraFiles": 52
|
|
13
13
|
}
|
package/kb/meta/topics.md
CHANGED
|
@@ -70,6 +70,6 @@
|
|
|
70
70
|
- 英文站:`site/en/`(结构与中文站一致:`guide/`、`develop/`、`reference/`);`INDEX.md` 有全部 URL ↔ 文件对照
|
|
71
71
|
|
|
72
72
|
## 检索技巧
|
|
73
|
-
- 全量索引:`meta/search-index.json`(
|
|
73
|
+
- 全量索引:`meta/search-index.json`(223 个文件的 path/url/title/字符数)
|
|
74
74
|
- 大文件(config-catalog / tool-catalog / module-graph / subsystems/session 等 ≥100KB)先用 grep 定位关键行,再 read 局部,不要整读
|
|
75
75
|
- 常用检索关键词:`ctx.effect`、`ctx.on`、`ctx.tools.register`、`inject`、`Service Definition`、`cordis.yml`、`SessionEventMap`
|
|
@@ -81,6 +81,42 @@ Every list must name at least one modality except a model's own, where an empty
|
|
|
81
81
|
|
|
82
82
|
Both fields state a claim about your endpoint rather than checking it. A model that declares images its endpoint does not serve is not caught here; the provider rejects the request instead.
|
|
83
83
|
|
|
84
|
+
### Request compatibility
|
|
85
|
+
|
|
86
|
+
A gateway can hold a working key at a reachable address and still refuse every request. pi-ai decides the shape of a request — which role carries the system prompt, which field caps the output, how a thinking level travels — from the endpoint's URL, and an address it does not recognize is addressed as though it were OpenAI itself. Most OpenAI-compatible gateways refuse at least one thing OpenAI accepts.
|
|
87
|
+
|
|
88
|
+
Two account for most of it. A model that declares reasoning has its system prompt sent as `role: "developer"`, which many gateways reject outright, and the output cap is sent as `max_completion_tokens`, which a server that only knows `max_tokens` refuses. The form has no field for either; correct them on the route in `$DSH_HOME/settings.yaml`:
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
llm-pi-ai:
|
|
92
|
+
providers:
|
|
93
|
+
my-gateway:
|
|
94
|
+
apiKeyEnv: GATEWAY_API_KEY
|
|
95
|
+
api: openai-completions
|
|
96
|
+
baseURL: https://gateway.example/v1
|
|
97
|
+
compat:
|
|
98
|
+
supportsDeveloperRole: false
|
|
99
|
+
maxTokensField: max_tokens
|
|
100
|
+
models:
|
|
101
|
+
- id: my-model
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
A route's `compat` is the default for its models, and a model's own wins field by field, so one model can be corrected without restating the route:
|
|
105
|
+
|
|
106
|
+
```yaml
|
|
107
|
+
models:
|
|
108
|
+
- id: my-model
|
|
109
|
+
- id: my-reasoner
|
|
110
|
+
compat:
|
|
111
|
+
thinkingFormat: deepseek
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
What neither sets keeps the installed catalog's value for that model, and what the catalog does not describe falls to pi-ai's detection. Give every switch you name a value: a key left empty (`supportsDeveloperRole:`) is refused rather than ignored, because an empty value would erase what the catalog knows while saying nothing in its place. A name no protocol accepts is refused too, and the message lists the ones that are available.
|
|
115
|
+
|
|
116
|
+
Each switch belongs to the protocols that declare it, so a switch valid on one `api` may be refused on another — the message names what that protocol does offer. Like `input` above, a switch states a claim about your endpoint rather than checking it: setting one your gateway does not actually need simply sends a different request.
|
|
117
|
+
|
|
118
|
+
Every switch, its accepted values, and the protocols that take it are listed under `PiAiCompatProfile` in the [generated `dsh-llm-pi-ai` configuration reference](../reference/config-catalog.md#deepseek-aidsh-llm-pi-ai) — which is derived from the source, so it cannot fall behind what the adapter accepts.
|
|
119
|
+
|
|
84
120
|
## Select a model
|
|
85
121
|
|
|
86
122
|
Configured providers appear in the model picker. Selecting a model also makes it the default for new sessions. A session that has already sent a request retains the model recorded in its own log.
|
|
@@ -92,9 +128,12 @@ If a saved default names a provider that was deleted, the composer displays **Se
|
|
|
92
128
|
- **`MISSING_CREDENTIAL`** — Store the provider key through the Models page or supply the referenced environment variable.
|
|
93
129
|
- **`UNKNOWN_MODEL`** — Select a configured model or add the missing model to the custom provider.
|
|
94
130
|
- **Fetching available models returns 401** — Check the key. Model discovery calls the OpenAI-compatible `GET /models` endpoint; enter models manually for endpoints that do not provide it.
|
|
131
|
+
- **The gateway refuses every request although the key and URL are right** — Its request shape differs from OpenAI's. Start with `compat.supportsDeveloperRole: false` and `compat.maxTokensField: max_tokens` on the route.
|
|
132
|
+
- **Only reasoning models fail** — pi-ai sends their system prompt as the `developer` role, which the gateway rejects. Set `compat.supportsDeveloperRole: false`.
|
|
133
|
+
- **A compat switch is refused as having no value** — A key written with nothing after the colon. Give it a value, or remove the key to keep the installed catalog's.
|
|
95
134
|
- **An image is refused before sending** — The model declares no image modality. Give a custom provider's model `input: [text, image]`; DeepSeek's own chat-completions route is text-only and cannot be configured otherwise.
|
|
96
135
|
- **The provider rejects a request carrying an image** — The model declares images its endpoint does not actually serve. Remove `image` from whichever list granted it — the model's `input`, or the route's `defaultInput` — then start a new session: the attached image stays in the session log, so the same request repeats until the session moves off it.
|
|
97
136
|
|
|
98
137
|
## Advanced configuration
|
|
99
138
|
|
|
100
|
-
The generated [plugin configuration catalog](../reference/config-catalog.md) lists every supported field and default. The [`dsh-llm-pi-ai`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm-pi-ai/README.md) and [`dsh-llm-deepseek`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm-deepseek/README.md) references own direct `settings.yaml` configuration, catalog resolution, reasoning controls, credentials, and adapter errors.
|
|
139
|
+
The generated [plugin configuration catalog](../reference/config-catalog.md) lists every supported field and default for every plugin; [`dsh-llm-pi-ai`](../reference/config-catalog.md#deepseek-aidsh-llm-pi-ai) is the provider section this page configures. The [`dsh-llm-pi-ai`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm-pi-ai/README.md) and [`dsh-llm-deepseek`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm-deepseek/README.md) references own direct `settings.yaml` configuration, catalog resolution, reasoning controls, credentials, and adapter errors.
|
|
@@ -70,6 +70,9 @@ flowchart LR
|
|
|
70
70
|
svc_sessionQuery["ctx.sessionQuery<br/>Session reads, traces, filters, and search"]
|
|
71
71
|
pkg_session_reference["session-reference"]
|
|
72
72
|
pkg_tool_session_query["tool-session-query"]
|
|
73
|
+
pkg_file_reference["file-reference"]
|
|
74
|
+
svc_fileReferences["ctx.fileReferences<br/>File reference discovery"]
|
|
75
|
+
pkg_file_reference_local["file-reference-local"]
|
|
73
76
|
svc_sessionReferenceResolver["ctx.sessionReferenceResolver<br/>Cross-session snapshot preparation"]
|
|
74
77
|
pkg_session_title["session-title"]
|
|
75
78
|
svc_sessionTitle["ctx.sessionTitle<br/>Log-backed session titles"]
|
|
@@ -161,6 +164,9 @@ flowchart LR
|
|
|
161
164
|
pkg_subagent_dsh_sdk["subagent-dsh-sdk"]
|
|
162
165
|
pkg_tool_subagent_control["tool-subagent-control"]
|
|
163
166
|
pkg_tool_ralph["tool-ralph"]
|
|
167
|
+
pkg_agent_team["agent-team"]
|
|
168
|
+
svc_agentTeams["ctx.agentTeams<br/>Agent Teams coordination domain"]
|
|
169
|
+
pkg_tool_agent_team["tool-agent-team"]
|
|
164
170
|
pkg_jobs["jobs"]
|
|
165
171
|
svc_jobs["ctx.jobs<br/>Background job registry"]
|
|
166
172
|
pkg_jobs_local["jobs-local"]
|
|
@@ -202,6 +208,7 @@ flowchart LR
|
|
|
202
208
|
pkg_agent_default_model --> svc_agentDefaultModel
|
|
203
209
|
pkg_agent_loop --> svc_agentLoop
|
|
204
210
|
pkg_agent_presets --> svc_agentPresets
|
|
211
|
+
pkg_agent_team --> svc_agentTeams
|
|
205
212
|
pkg_api_gateway --> svc_typertGateway
|
|
206
213
|
pkg_apiproxy --> svc_apiProxy
|
|
207
214
|
pkg_approval --> svc_approval
|
|
@@ -223,6 +230,8 @@ flowchart LR
|
|
|
223
230
|
pkg_directory_picker_browse --> svc_directoryPicker
|
|
224
231
|
pkg_directory_picker_native --> svc_directoryPicker
|
|
225
232
|
pkg_e2b --> svc_e2b
|
|
233
|
+
pkg_file_reference --> svc_fileReferences
|
|
234
|
+
pkg_file_reference_local --> svc_fileReferences
|
|
226
235
|
pkg_fs --> svc_fs
|
|
227
236
|
pkg_fs_e2b --> svc_fs
|
|
228
237
|
pkg_fs_local --> svc_fs
|
|
@@ -301,6 +310,7 @@ flowchart LR
|
|
|
301
310
|
svc_agentDefaultModel --> pkg_headless
|
|
302
311
|
svc_agentDefaultModel --> pkg_host_apiproxy
|
|
303
312
|
svc_agentLoop --> pkg_agent_spine_demo
|
|
313
|
+
svc_agentTeams --> pkg_tool_agent_team
|
|
304
314
|
svc_agents --> pkg_acp
|
|
305
315
|
svc_agents --> pkg_agent_loop
|
|
306
316
|
svc_agents --> pkg_subagent_inprocess
|
|
@@ -432,6 +442,7 @@ flowchart LR
|
|
|
432
442
|
| `ctx.messageFeedback` | `core` | [`message-feedback`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/feedback/message-feedback) | - | - | - | Owns local per-assistant-message feedback, lifecycle and target validation, per-item compare-and-set, and the Host unary Remote contract without entering Session history or telemetry. |
|
|
433
443
|
| `ctx.workspaceRegistry` | `core` | [`workspace`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/workspace/workspace) | - | `apiproxy` | - | Owns WorkspaceId-branded records over the domain facility; stable sessionIds accounts drive Host RPC and GUI projections. |
|
|
434
444
|
| `ctx.sessionQuery` | `seam` | [`session-query`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session-query/session-query) | [`session-query-sqlite`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session-query/session-query-sqlite) | [`session-reference`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/context/session-reference), [`tool-session-query`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session-query/tool-session-query) | - | The interface supplies exact reads, filters, and traces; its concrete backend adds full-text reconciliation, ranking, snippets, and cursor generations, while the model consumer owns workspace authority and cursor-free rendering. |
|
|
445
|
+
| `ctx.fileReferences` | `seam` | [`file-reference`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/context/file-reference) | [`file-reference-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/context/file-reference-local) | - | - | The interface returns path-only completion candidates within the addressed Agent cwd through its unary Remote contract; providers own namespace access and ranking without reading file contents. |
|
|
435
446
|
| `ctx.sessionReferenceResolver` | `core` | [`session-reference`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/context/session-reference) | - | - | - | Projects bounded current-surface conversation snapshots into durable untrusted message context; host adapters own mention syntax. |
|
|
436
447
|
| `ctx.sessionTitle` | `seam` | [`session-title`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-title) | [`session-title-first-prompt-llm`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-title-first-prompt-llm), [`session-title-all-prompts-llm`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-title-all-prompts-llm) | - | - | Owns the deterministic fallback, latest-title fold, and sole optional asynchronous provider registration. |
|
|
437
448
|
| `ctx.systemPrompt` | `core` | [`system-prompt`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/system-prompt) | - | [`agent-loop`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent-loop), [`tools`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/tools), [`tool-fs`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/fs/tool-fs), [`tool-terminal`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/terminal/tool-terminal), [`tool-web`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/web/tool-web) | - | Collects prompt sections and model-facing tool schemas for each step. |
|
|
@@ -460,6 +471,7 @@ flowchart LR
|
|
|
460
471
|
| `ctx.fs` | `seam` | [`fs`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/fs/fs) | [`fs-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/fs/fs-local), [`fs-sandbox`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/fs/fs-sandbox), [`fs-e2b`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/e2b/fs-e2b) | [`tool-fs`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/fs/tool-fs) | [`fs-observation-policy`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/fs/fs-observation-policy) | tool-fs executes read/write/edit through ctx.fs; fs-sandbox fences mutations by the shared sandbox mode; fs-observation-policy contributes observed-state checks through the fs/* event gate. |
|
|
461
472
|
| `ctx.compaction` | `seam` | [`compaction`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/compaction/compaction) | [`compaction-basic`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/compaction/compaction-basic) | [`compaction-basic`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/compaction/compaction-basic) | - | The basic backend consumes post-step pressure and request-error recovery events; there is no model-facing compact tool. |
|
|
462
473
|
| `ctx.subagents` | `seam` | [`subagent`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/subagent) | [`subagent-spawn-in-process`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/subagent-spawn-in-process), [`subagent-fork-in-process`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/subagent-fork-in-process), [`subagent-acp`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/subagent-acp), [`subagent-codex`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/subagent-codex), [`subagent-claude-code`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/subagent-claude-code), [`subagent-dsh-sdk`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/subagent-dsh-sdk) | [`tool-subagent`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/tool-subagent), [`tool-subagent-control`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/tool-subagent-control), [`tool-ralph`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/workflow/tool-ralph) | - | Providers implement transports; the service also owns optional Activation-based continuation orchestration, tool-subagent selects one-shot or continuable delegation, tool-subagent-control delivers follow-ups, and tool-ralph requires one fresh structured-output route. |
|
|
474
|
+
| `ctx.agentTeams` | `core` | `agent-team` | - | `tool-agent-team` | - | Owns the implicit-root roster, durable peer mailbox, shared task DAG, and continuable-child lifecycle; tool-agent-team contributes the scoped model policy and controls. |
|
|
463
475
|
| `ctx.jobs` | `seam` | [`jobs`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/jobs/jobs) | [`jobs-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/jobs/jobs-local) | [`tool-bash`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/tool-bash), [`tool-terminal`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/terminal/tool-terminal), [`tool-subagent`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/tool-subagent), [`tool-jobs`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/jobs/tool-jobs) | - | Producers (background bash, PTY sends, and subagent delegations) register running work; tool-jobs is the model-facing controller that reads, lists, and kills it; jobs-local is the process-local registry. |
|
|
464
476
|
| `ctx.web` | `seam` | [`web`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/web/web) | [`web-search-exa`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/web/web-search-exa), [`web-search-perplexity`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/web/web-search-perplexity), [`web-search-deepseek`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/web/web-search-deepseek), [`web-fetch-http`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/web/web-fetch-http) | [`tool-web`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/web/tool-web) | - | Search and fetch providers register into one ctx.web seam; tool-web owns the stable model-facing names. |
|
|
465
477
|
| `ctx.spillStore` | `seam` | [`spill`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/spill/spill) | [`spill-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/spill/spill-local) | [`spill-policy`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/spill/spill-policy) | - | The backend saves oversized tool text and returns a model-facing locator plus retrieval hint; spill-policy is the tools/post-execute consumer that decides when to spill. |
|