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.
Files changed (55) hide show
  1. package/README.md +60 -9
  2. package/kb/INDEX.md +1 -1
  3. package/kb/README.md +22 -11
  4. package/kb/extra/development.md +2 -0
  5. package/kb/extra/development.zh.md +2 -0
  6. package/kb/extra/event-producer-consumer.md +9 -9
  7. package/kb/extra/event-producer-consumer.zh.md +9 -9
  8. package/kb/extra/i18n/README.md +1 -1
  9. package/kb/extra/i18n/README.zh.md +1 -1
  10. package/kb/extra/module-graph.md +251 -210
  11. package/kb/extra/module-graph.zh.md +251 -210
  12. package/kb/extra/subsystems/agent-team.md +183 -0
  13. package/kb/extra/subsystems/agent-team.zh.md +183 -0
  14. package/kb/extra/subsystems/attachment.md +16 -2
  15. package/kb/extra/subsystems/attachment.zh.md +16 -2
  16. package/kb/meta/search-index.json +54 -42
  17. package/kb/meta/source.json +3 -3
  18. package/kb/meta/topics.md +1 -1
  19. package/kb/site/en/guide/providers.md +40 -1
  20. package/kb/site/en/reference/capability-seams.md +12 -0
  21. package/kb/site/en/reference/config-catalog.md +238 -72
  22. package/kb/site/en/reference/index.md +2 -0
  23. package/kb/site/en/reference/persistence-catalog.md +76 -13
  24. package/kb/site/en/reference/subsystems/client-modules.md +11 -3
  25. package/kb/site/en/reference/subsystems/commands.md +28 -5
  26. package/kb/site/en/reference/subsystems/index.md +1 -0
  27. package/kb/site/en/reference/subsystems/llm-streaming.md +11 -2
  28. package/kb/site/en/reference/subsystems/persistence.md +3 -3
  29. package/kb/site/en/reference/subsystems/plan.md +1 -1
  30. package/kb/site/en/reference/subsystems/session-reference.md +71 -5
  31. package/kb/site/en/reference/subsystems/session.md +6 -2
  32. package/kb/site/en/reference/subsystems/subagent.md +22 -3
  33. package/kb/site/en/reference/subsystems/web.md +5 -4
  34. package/kb/site/en/reference/tool-catalog.md +353 -5
  35. package/kb/site/guide/providers.md +40 -1
  36. package/kb/site/reference/capability-seams.md +12 -0
  37. package/kb/site/reference/config-catalog.md +252 -86
  38. package/kb/site/reference/index.md +2 -0
  39. package/kb/site/reference/persistence-catalog.md +76 -13
  40. package/kb/site/reference/subsystems/client-modules.md +11 -3
  41. package/kb/site/reference/subsystems/commands.md +28 -5
  42. package/kb/site/reference/subsystems/index.md +1 -0
  43. package/kb/site/reference/subsystems/llm-streaming.md +11 -2
  44. package/kb/site/reference/subsystems/persistence.md +3 -3
  45. package/kb/site/reference/subsystems/plan.md +1 -1
  46. package/kb/site/reference/subsystems/session-reference.md +71 -5
  47. package/kb/site/reference/subsystems/session.md +6 -2
  48. package/kb/site/reference/subsystems/subagent.md +22 -3
  49. package/kb/site/reference/subsystems/web.md +5 -4
  50. package/kb/site/reference/tool-catalog.md +352 -5
  51. package/lib/index.js +113 -0
  52. package/package.json +14 -2
  53. package/scripts/rebuild-index.mjs +2 -1
  54. package/scripts/selfcheck.mjs +30 -0
  55. 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": 15675
72
+ "chars": 16137
73
73
  },
74
74
  {
75
75
  "path": "kb/extra/development.zh.md",
76
76
  "url": "",
77
77
  "title": "开发指南",
78
- "chars": 8803
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": 20208
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": 19941
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": 11523
120
+ "chars": 11545
121
121
  },
122
122
  {
123
123
  "path": "kb/extra/i18n/README.zh.md",
124
124
  "url": "",
125
125
  "title": "双语文档",
126
- "chars": 5522
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": 125044
162
+ "chars": 127543
163
163
  },
164
164
  {
165
165
  "path": "kb/extra/module-graph.zh.md",
166
166
  "url": "",
167
167
  "title": "模块依赖关系图",
168
- "chars": 124977
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": 6239
258
+ "chars": 6971
247
259
  },
248
260
  {
249
261
  "path": "kb/extra/subsystems/attachment.zh.md",
250
262
  "url": "",
251
263
  "title": "持久图片附件",
252
- "chars": 5093
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": 299
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": 3248
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": 6196
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": 49859
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": 145664
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": 9563
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": 36126
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": 9218
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": 8397
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": 8589
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": 49530
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": 24764
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": 5169
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": 51662
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": 52384
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": 12306
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": 83980
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": 3174
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": 44420
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": 143005
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": 5891
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": 34988
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": 6805
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": 7531
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": 5655
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": 41458
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": 20195
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": 4534
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": 43091
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": 41549
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": 10261
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": 64523
1332
+ "chars": 73456
1321
1333
  },
1322
1334
  {
1323
1335
  "path": "kb/site/reference/tool-execution-pipeline.md",
@@ -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": "99f6f02fecdb7dff40c3fbc9470f5907c29f74ca",
7
- "fetchedAt": "2026-08-17T11:21:17.298Z",
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": 50
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`(220 个文件的 path/url/title/字符数)
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. |