dsh-plugin-dev-kb 1.0.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.
- package/LICENSE +21 -0
- package/README.md +56 -0
- package/cordis.patch.yml +12 -0
- package/kb/INDEX.md +210 -0
- package/kb/README.md +69 -0
- package/kb/extra/AGENTS.md +75 -0
- package/kb/extra/api-gateway.md +164 -0
- package/kb/extra/api-gateway.zh.md +164 -0
- package/kb/extra/cookbook/adding-a-vendored-package.md +59 -0
- package/kb/extra/cookbook/adding-a-vendored-package.zh.md +59 -0
- package/kb/extra/cookbook/maintaining-dsh-code-review.md +64 -0
- package/kb/extra/cookbook/maintaining-dsh-code-review.zh.md +64 -0
- package/kb/extra/cookbook/responding-to-pr-review-on-a-stack.md +32 -0
- package/kb/extra/cookbook/responding-to-pr-review-on-a-stack.zh.md +32 -0
- package/kb/extra/defensive-patterns.md +33 -0
- package/kb/extra/defensive-patterns.zh.md +33 -0
- package/kb/extra/development.md +171 -0
- package/kb/extra/development.zh.md +171 -0
- package/kb/extra/event-producer-consumer.md +76 -0
- package/kb/extra/event-producer-consumer.zh.md +78 -0
- package/kb/extra/glossary.md +45 -0
- package/kb/extra/glossary.zh.md +45 -0
- package/kb/extra/graph-atlas.md +24 -0
- package/kb/extra/graph-atlas.zh.md +26 -0
- package/kb/extra/i18n/README.md +60 -0
- package/kb/extra/i18n/README.zh.md +60 -0
- package/kb/extra/i18n/style-samples.md +87 -0
- package/kb/extra/i18n/terminology.md +214 -0
- package/kb/extra/i18n/translation-prompt.md +263 -0
- package/kb/extra/i18n/translation-rules.md +69 -0
- package/kb/extra/i18n/translation-rules.zh.md +69 -0
- package/kb/extra/module-graph.md +1641 -0
- package/kb/extra/module-graph.zh.md +1643 -0
- package/kb/extra/postmortem/0001-acp-default-export-drops-inject.md +113 -0
- package/kb/extra/postmortem/0001-acp-default-export-drops-inject.zh.md +113 -0
- package/kb/extra/postmortem/0002-js-expression-disabled-filesystem-tools.md +47 -0
- package/kb/extra/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +47 -0
- package/kb/extra/postmortem/0003-web-agent-gui-feedback-loop.md +53 -0
- package/kb/extra/postmortem/0003-web-agent-gui-feedback-loop.zh.md +53 -0
- package/kb/extra/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +55 -0
- package/kb/extra/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +55 -0
- package/kb/extra/postmortem/README.md +18 -0
- package/kb/extra/postmortem/README.zh.md +18 -0
- package/kb/extra/rescope.md +53 -0
- package/kb/extra/rescope.zh.md +53 -0
- package/kb/extra/subsystems/attachment.md +125 -0
- package/kb/extra/subsystems/attachment.zh.md +125 -0
- package/kb/extra/subsystems/extensions.md +364 -0
- package/kb/extra/subsystems/extensions.zh.md +364 -0
- package/kb/extra/subsystems/feedback.md +266 -0
- package/kb/extra/subsystems/feedback.zh.md +266 -0
- package/kb/extra/testing.md +49 -0
- package/kb/extra/testing.zh.md +49 -0
- package/kb/extra/web-styling.md +25 -0
- package/kb/extra/web-styling.zh.md +25 -0
- package/kb/meta/search-index.json +1328 -0
- package/kb/meta/site-pages.txt +168 -0
- package/kb/meta/source.json +13 -0
- package/kb/meta/topics.md +75 -0
- package/kb/site/develop/basic/config.md +108 -0
- package/kb/site/develop/basic/index.md +146 -0
- package/kb/site/develop/basic/publish.md +185 -0
- package/kb/site/develop/basic/tool.md +54 -0
- package/kb/site/develop/cordis-tutorial/01-first-plugin.md +95 -0
- package/kb/site/develop/cordis-tutorial/02-lifecycle-and-effects.md +98 -0
- package/kb/site/develop/cordis-tutorial/03-services.md +98 -0
- package/kb/site/develop/cordis-tutorial/04-events.md +144 -0
- package/kb/site/develop/cordis-tutorial/05-config.md +84 -0
- package/kb/site/develop/cordis-tutorial/06-composition-and-hmr.md +113 -0
- package/kb/site/develop/cordis-tutorial/07-into-the-harness.md +107 -0
- package/kb/site/develop/cordis-tutorial/index.md +62 -0
- package/kb/site/develop/framework/events.md +145 -0
- package/kb/site/develop/framework/index.md +139 -0
- package/kb/site/develop/framework/service.md +152 -0
- package/kb/site/develop/practice/index.md +157 -0
- package/kb/site/develop/practice/llm-adapter.md +190 -0
- package/kb/site/en/develop/basic/config.md +108 -0
- package/kb/site/en/develop/basic/index.md +146 -0
- package/kb/site/en/develop/basic/publish.md +185 -0
- package/kb/site/en/develop/basic/tool.md +54 -0
- package/kb/site/en/develop/cordis-tutorial/01-first-plugin.md +95 -0
- package/kb/site/en/develop/cordis-tutorial/02-lifecycle-and-effects.md +98 -0
- package/kb/site/en/develop/cordis-tutorial/03-services.md +98 -0
- package/kb/site/en/develop/cordis-tutorial/04-events.md +144 -0
- package/kb/site/en/develop/cordis-tutorial/05-config.md +84 -0
- package/kb/site/en/develop/cordis-tutorial/06-composition-and-hmr.md +113 -0
- package/kb/site/en/develop/cordis-tutorial/07-into-the-harness.md +107 -0
- package/kb/site/en/develop/cordis-tutorial/index.md +60 -0
- package/kb/site/en/develop/framework/events.md +145 -0
- package/kb/site/en/develop/framework/index.md +139 -0
- package/kb/site/en/develop/framework/service.md +150 -0
- package/kb/site/en/develop/practice/index.md +157 -0
- package/kb/site/en/develop/practice/llm-adapter.md +190 -0
- package/kb/site/en/guide/providers-custom-form.png +0 -0
- package/kb/site/en/guide/providers-models-page.png +0 -0
- package/kb/site/en/guide/providers.md +100 -0
- package/kb/site/en/guide/python-sdk.md +106 -0
- package/kb/site/en/guide/quickstart.md +32 -0
- package/kb/site/en/index.md +8 -0
- package/kb/site/en/reference/agent-lifecycle.md +86 -0
- package/kb/site/en/reference/capability-seams.md +475 -0
- package/kb/site/en/reference/config-catalog.md +3155 -0
- package/kb/site/en/reference/cookbook/adding-a-conversation-node.md +235 -0
- package/kb/site/en/reference/cookbook/adding-a-package.md +120 -0
- package/kb/site/en/reference/cookbook/adding-a-settings-card.md +102 -0
- package/kb/site/en/reference/cookbook/adding-a-tool.md +96 -0
- package/kb/site/en/reference/cookbook/adding-an-llm-adapter.md +45 -0
- package/kb/site/en/reference/cookbook/extension-cookbook.md +131 -0
- package/kb/site/en/reference/cordis-api/context.md +368 -0
- package/kb/site/en/reference/cordis-api/events.md +211 -0
- package/kb/site/en/reference/cordis-api/fiber.md +379 -0
- package/kb/site/en/reference/cordis-api/inherited.md +43 -0
- package/kb/site/en/reference/cordis-api/registry.md +156 -0
- package/kb/site/en/reference/cordis-api/service.md +106 -0
- package/kb/site/en/reference/cordis-primer.md +46 -0
- package/kb/site/en/reference/index.md +131 -0
- package/kb/site/en/reference/persistence-catalog.md +949 -0
- package/kb/site/en/reference/subsystems/approval.md +173 -0
- package/kb/site/en/reference/subsystems/client-modules.md +121 -0
- package/kb/site/en/reference/subsystems/code-runtime.md +194 -0
- package/kb/site/en/reference/subsystems/commands.md +190 -0
- package/kb/site/en/reference/subsystems/compaction.md +241 -0
- package/kb/site/en/reference/subsystems/core.md +1073 -0
- package/kb/site/en/reference/subsystems/credentials.md +136 -0
- package/kb/site/en/reference/subsystems/filesystem.md +498 -0
- package/kb/site/en/reference/subsystems/goal.md +280 -0
- package/kb/site/en/reference/subsystems/index.md +58 -0
- package/kb/site/en/reference/subsystems/invariants.md +91 -0
- package/kb/site/en/reference/subsystems/jobs.md +293 -0
- package/kb/site/en/reference/subsystems/llm-streaming.md +920 -0
- package/kb/site/en/reference/subsystems/lsp.md +205 -0
- package/kb/site/en/reference/subsystems/permission-presets.md +134 -0
- package/kb/site/en/reference/subsystems/persistence.md +388 -0
- package/kb/site/en/reference/subsystems/plan.md +90 -0
- package/kb/site/en/reference/subsystems/sandbox.md +221 -0
- package/kb/site/en/reference/subsystems/schedule.md +189 -0
- package/kb/site/en/reference/subsystems/scope.md +62 -0
- package/kb/site/en/reference/subsystems/session-projection.md +265 -0
- package/kb/site/en/reference/subsystems/session-query.md +498 -0
- package/kb/site/en/reference/subsystems/session-reference.md +111 -0
- package/kb/site/en/reference/subsystems/session-telemetry.md +197 -0
- package/kb/site/en/reference/subsystems/session-title.md +207 -0
- package/kb/site/en/reference/subsystems/session.md +852 -0
- package/kb/site/en/reference/subsystems/settings.md +313 -0
- package/kb/site/en/reference/subsystems/shell.md +306 -0
- package/kb/site/en/reference/subsystems/skills.md +334 -0
- package/kb/site/en/reference/subsystems/spill.md +120 -0
- package/kb/site/en/reference/subsystems/storage.md +232 -0
- package/kb/site/en/reference/subsystems/subagent.md +737 -0
- package/kb/site/en/reference/subsystems/subprocess.md +327 -0
- package/kb/site/en/reference/subsystems/system-prompt.md +210 -0
- package/kb/site/en/reference/subsystems/terminal.md +187 -0
- package/kb/site/en/reference/subsystems/token-meter.md +93 -0
- package/kb/site/en/reference/subsystems/tools.md +723 -0
- package/kb/site/en/reference/subsystems/typert.md +339 -0
- package/kb/site/en/reference/subsystems/user-questions.md +181 -0
- package/kb/site/en/reference/subsystems/web-server.md +111 -0
- package/kb/site/en/reference/subsystems/web.md +202 -0
- package/kb/site/en/reference/subsystems/workflow.md +281 -0
- package/kb/site/en/reference/subsystems/workspace.md +231 -0
- package/kb/site/en/reference/tool-catalog.md +1877 -0
- package/kb/site/en/reference/tool-execution-pipeline.md +66 -0
- package/kb/site/guide/providers-custom-form.zh.png +0 -0
- package/kb/site/guide/providers-models-page.zh.png +0 -0
- package/kb/site/guide/providers.md +100 -0
- package/kb/site/guide/python-sdk.md +106 -0
- package/kb/site/guide/quickstart.md +32 -0
- package/kb/site/index.md +8 -0
- package/kb/site/reference/agent-lifecycle.md +86 -0
- package/kb/site/reference/capability-seams.md +475 -0
- package/kb/site/reference/config-catalog.md +3154 -0
- package/kb/site/reference/cookbook/adding-a-conversation-node.md +235 -0
- package/kb/site/reference/cookbook/adding-a-package.md +120 -0
- package/kb/site/reference/cookbook/adding-a-settings-card.md +102 -0
- package/kb/site/reference/cookbook/adding-a-tool.md +98 -0
- package/kb/site/reference/cookbook/adding-an-llm-adapter.md +45 -0
- package/kb/site/reference/cookbook/extension-cookbook.md +133 -0
- package/kb/site/reference/cordis-api/context.md +368 -0
- package/kb/site/reference/cordis-api/events.md +211 -0
- package/kb/site/reference/cordis-api/fiber.md +379 -0
- package/kb/site/reference/cordis-api/inherited.md +43 -0
- package/kb/site/reference/cordis-api/registry.md +156 -0
- package/kb/site/reference/cordis-api/service.md +106 -0
- package/kb/site/reference/cordis-primer.md +52 -0
- package/kb/site/reference/index.md +135 -0
- package/kb/site/reference/persistence-catalog.md +949 -0
- package/kb/site/reference/subsystems/approval.md +173 -0
- package/kb/site/reference/subsystems/client-modules.md +121 -0
- package/kb/site/reference/subsystems/code-runtime.md +194 -0
- package/kb/site/reference/subsystems/commands.md +190 -0
- package/kb/site/reference/subsystems/compaction.md +241 -0
- package/kb/site/reference/subsystems/core.md +1081 -0
- package/kb/site/reference/subsystems/credentials.md +136 -0
- package/kb/site/reference/subsystems/filesystem.md +498 -0
- package/kb/site/reference/subsystems/goal.md +280 -0
- package/kb/site/reference/subsystems/index.md +58 -0
- package/kb/site/reference/subsystems/invariants.md +91 -0
- package/kb/site/reference/subsystems/jobs.md +293 -0
- package/kb/site/reference/subsystems/llm-streaming.md +926 -0
- package/kb/site/reference/subsystems/lsp.md +205 -0
- package/kb/site/reference/subsystems/permission-presets.md +134 -0
- package/kb/site/reference/subsystems/persistence.md +388 -0
- package/kb/site/reference/subsystems/plan.md +90 -0
- package/kb/site/reference/subsystems/sandbox.md +221 -0
- package/kb/site/reference/subsystems/schedule.md +189 -0
- package/kb/site/reference/subsystems/scope.md +62 -0
- package/kb/site/reference/subsystems/session-projection.md +265 -0
- package/kb/site/reference/subsystems/session-query.md +498 -0
- package/kb/site/reference/subsystems/session-reference.md +111 -0
- package/kb/site/reference/subsystems/session-telemetry.md +197 -0
- package/kb/site/reference/subsystems/session-title.md +207 -0
- package/kb/site/reference/subsystems/session.md +854 -0
- package/kb/site/reference/subsystems/settings.md +313 -0
- package/kb/site/reference/subsystems/shell.md +306 -0
- package/kb/site/reference/subsystems/skills.md +334 -0
- package/kb/site/reference/subsystems/spill.md +120 -0
- package/kb/site/reference/subsystems/storage.md +232 -0
- package/kb/site/reference/subsystems/subagent.md +739 -0
- package/kb/site/reference/subsystems/subprocess.md +327 -0
- package/kb/site/reference/subsystems/system-prompt.md +210 -0
- package/kb/site/reference/subsystems/terminal.md +187 -0
- package/kb/site/reference/subsystems/token-meter.md +93 -0
- package/kb/site/reference/subsystems/tools.md +723 -0
- package/kb/site/reference/subsystems/typert.md +339 -0
- package/kb/site/reference/subsystems/user-questions.md +181 -0
- package/kb/site/reference/subsystems/web-server.md +111 -0
- package/kb/site/reference/subsystems/web.md +202 -0
- package/kb/site/reference/subsystems/workflow.md +281 -0
- package/kb/site/reference/subsystems/workspace.md +231 -0
- package/kb/site/reference/tool-catalog.md +1880 -0
- package/kb/site/reference/tool-execution-pipeline.md +66 -0
- package/package.json +40 -0
- package/scripts/rebuild-index.mjs +88 -0
- package/skills/dsh-plugin-dev-kb.md +66 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
develop_basic_config.md
|
|
2
|
+
develop_basic_index.md
|
|
3
|
+
develop_basic_publish.md
|
|
4
|
+
develop_basic_tool.md
|
|
5
|
+
develop_cordis-tutorial_01-first-plugin.md
|
|
6
|
+
develop_cordis-tutorial_02-lifecycle-and-effects.md
|
|
7
|
+
develop_cordis-tutorial_03-services.md
|
|
8
|
+
develop_cordis-tutorial_04-events.md
|
|
9
|
+
develop_cordis-tutorial_05-config.md
|
|
10
|
+
develop_cordis-tutorial_06-composition-and-hmr.md
|
|
11
|
+
develop_cordis-tutorial_07-into-the-harness.md
|
|
12
|
+
develop_cordis-tutorial_index.md
|
|
13
|
+
develop_framework_events.md
|
|
14
|
+
develop_framework_index.md
|
|
15
|
+
develop_framework_service.md
|
|
16
|
+
develop_practice_index.md
|
|
17
|
+
develop_practice_llm-adapter.md
|
|
18
|
+
en_develop_basic_config.md
|
|
19
|
+
en_develop_basic_index.md
|
|
20
|
+
en_develop_basic_publish.md
|
|
21
|
+
en_develop_basic_tool.md
|
|
22
|
+
en_develop_cordis-tutorial_01-first-plugin.md
|
|
23
|
+
en_develop_cordis-tutorial_02-lifecycle-and-effects.md
|
|
24
|
+
en_develop_cordis-tutorial_03-services.md
|
|
25
|
+
en_develop_cordis-tutorial_04-events.md
|
|
26
|
+
en_develop_cordis-tutorial_05-config.md
|
|
27
|
+
en_develop_cordis-tutorial_06-composition-and-hmr.md
|
|
28
|
+
en_develop_cordis-tutorial_07-into-the-harness.md
|
|
29
|
+
en_develop_cordis-tutorial_index.md
|
|
30
|
+
en_develop_framework_events.md
|
|
31
|
+
en_develop_framework_index.md
|
|
32
|
+
en_develop_framework_service.md
|
|
33
|
+
en_develop_practice_index.md
|
|
34
|
+
en_develop_practice_llm-adapter.md
|
|
35
|
+
en_guide_providers.md
|
|
36
|
+
en_guide_python-sdk.md
|
|
37
|
+
en_guide_quickstart.md
|
|
38
|
+
en_index.md
|
|
39
|
+
en_reference_agent-lifecycle.md
|
|
40
|
+
en_reference_capability-seams.md
|
|
41
|
+
en_reference_config-catalog.md
|
|
42
|
+
en_reference_cookbook_adding-a-conversation-node.md
|
|
43
|
+
en_reference_cookbook_adding-an-llm-adapter.md
|
|
44
|
+
en_reference_cookbook_adding-a-package.md
|
|
45
|
+
en_reference_cookbook_adding-a-settings-card.md
|
|
46
|
+
en_reference_cookbook_adding-a-tool.md
|
|
47
|
+
en_reference_cookbook_extension-cookbook.md
|
|
48
|
+
en_reference_cordis-api_context.md
|
|
49
|
+
en_reference_cordis-api_events.md
|
|
50
|
+
en_reference_cordis-api_fiber.md
|
|
51
|
+
en_reference_cordis-api_inherited.md
|
|
52
|
+
en_reference_cordis-api_registry.md
|
|
53
|
+
en_reference_cordis-api_service.md
|
|
54
|
+
en_reference_cordis-primer.md
|
|
55
|
+
en_reference_index.md
|
|
56
|
+
en_reference_persistence-catalog.md
|
|
57
|
+
en_reference_subsystems_approval.md
|
|
58
|
+
en_reference_subsystems_client-modules.md
|
|
59
|
+
en_reference_subsystems_code-runtime.md
|
|
60
|
+
en_reference_subsystems_commands.md
|
|
61
|
+
en_reference_subsystems_compaction.md
|
|
62
|
+
en_reference_subsystems_core.md
|
|
63
|
+
en_reference_subsystems_credentials.md
|
|
64
|
+
en_reference_subsystems_filesystem.md
|
|
65
|
+
en_reference_subsystems_goal.md
|
|
66
|
+
en_reference_subsystems_index.md
|
|
67
|
+
en_reference_subsystems_invariants.md
|
|
68
|
+
en_reference_subsystems_jobs.md
|
|
69
|
+
en_reference_subsystems_llm-streaming.md
|
|
70
|
+
en_reference_subsystems_lsp.md
|
|
71
|
+
en_reference_subsystems_permission-presets.md
|
|
72
|
+
en_reference_subsystems_persistence.md
|
|
73
|
+
en_reference_subsystems_plan.md
|
|
74
|
+
en_reference_subsystems_sandbox.md
|
|
75
|
+
en_reference_subsystems_schedule.md
|
|
76
|
+
en_reference_subsystems_scope.md
|
|
77
|
+
en_reference_subsystems_session.md
|
|
78
|
+
en_reference_subsystems_session-projection.md
|
|
79
|
+
en_reference_subsystems_session-query.md
|
|
80
|
+
en_reference_subsystems_session-reference.md
|
|
81
|
+
en_reference_subsystems_session-telemetry.md
|
|
82
|
+
en_reference_subsystems_session-title.md
|
|
83
|
+
en_reference_subsystems_settings.md
|
|
84
|
+
en_reference_subsystems_shell.md
|
|
85
|
+
en_reference_subsystems_skills.md
|
|
86
|
+
en_reference_subsystems_spill.md
|
|
87
|
+
en_reference_subsystems_storage.md
|
|
88
|
+
en_reference_subsystems_subagent.md
|
|
89
|
+
en_reference_subsystems_subprocess.md
|
|
90
|
+
en_reference_subsystems_system-prompt.md
|
|
91
|
+
en_reference_subsystems_terminal.md
|
|
92
|
+
en_reference_subsystems_token-meter.md
|
|
93
|
+
en_reference_subsystems_tools.md
|
|
94
|
+
en_reference_subsystems_typert.md
|
|
95
|
+
en_reference_subsystems_user-questions.md
|
|
96
|
+
en_reference_subsystems_web.md
|
|
97
|
+
en_reference_subsystems_web-server.md
|
|
98
|
+
en_reference_subsystems_workflow.md
|
|
99
|
+
en_reference_subsystems_workspace.md
|
|
100
|
+
en_reference_tool-catalog.md
|
|
101
|
+
en_reference_tool-execution-pipeline.md
|
|
102
|
+
guide_providers.md
|
|
103
|
+
guide_python-sdk.md
|
|
104
|
+
guide_quickstart.md
|
|
105
|
+
index.md
|
|
106
|
+
reference_agent-lifecycle.md
|
|
107
|
+
reference_capability-seams.md
|
|
108
|
+
reference_config-catalog.md
|
|
109
|
+
reference_cookbook_adding-a-conversation-node.md
|
|
110
|
+
reference_cookbook_adding-an-llm-adapter.md
|
|
111
|
+
reference_cookbook_adding-a-package.md
|
|
112
|
+
reference_cookbook_adding-a-settings-card.md
|
|
113
|
+
reference_cookbook_adding-a-tool.md
|
|
114
|
+
reference_cookbook_extension-cookbook.md
|
|
115
|
+
reference_cordis-api_context.md
|
|
116
|
+
reference_cordis-api_events.md
|
|
117
|
+
reference_cordis-api_fiber.md
|
|
118
|
+
reference_cordis-api_inherited.md
|
|
119
|
+
reference_cordis-api_registry.md
|
|
120
|
+
reference_cordis-api_service.md
|
|
121
|
+
reference_cordis-primer.md
|
|
122
|
+
reference_index.md
|
|
123
|
+
reference_persistence-catalog.md
|
|
124
|
+
reference_subsystems_approval.md
|
|
125
|
+
reference_subsystems_client-modules.md
|
|
126
|
+
reference_subsystems_code-runtime.md
|
|
127
|
+
reference_subsystems_commands.md
|
|
128
|
+
reference_subsystems_compaction.md
|
|
129
|
+
reference_subsystems_core.md
|
|
130
|
+
reference_subsystems_credentials.md
|
|
131
|
+
reference_subsystems_filesystem.md
|
|
132
|
+
reference_subsystems_goal.md
|
|
133
|
+
reference_subsystems_index.md
|
|
134
|
+
reference_subsystems_invariants.md
|
|
135
|
+
reference_subsystems_jobs.md
|
|
136
|
+
reference_subsystems_llm-streaming.md
|
|
137
|
+
reference_subsystems_lsp.md
|
|
138
|
+
reference_subsystems_permission-presets.md
|
|
139
|
+
reference_subsystems_persistence.md
|
|
140
|
+
reference_subsystems_plan.md
|
|
141
|
+
reference_subsystems_sandbox.md
|
|
142
|
+
reference_subsystems_schedule.md
|
|
143
|
+
reference_subsystems_scope.md
|
|
144
|
+
reference_subsystems_session.md
|
|
145
|
+
reference_subsystems_session-projection.md
|
|
146
|
+
reference_subsystems_session-query.md
|
|
147
|
+
reference_subsystems_session-reference.md
|
|
148
|
+
reference_subsystems_session-telemetry.md
|
|
149
|
+
reference_subsystems_session-title.md
|
|
150
|
+
reference_subsystems_settings.md
|
|
151
|
+
reference_subsystems_shell.md
|
|
152
|
+
reference_subsystems_skills.md
|
|
153
|
+
reference_subsystems_spill.md
|
|
154
|
+
reference_subsystems_storage.md
|
|
155
|
+
reference_subsystems_subagent.md
|
|
156
|
+
reference_subsystems_subprocess.md
|
|
157
|
+
reference_subsystems_system-prompt.md
|
|
158
|
+
reference_subsystems_terminal.md
|
|
159
|
+
reference_subsystems_token-meter.md
|
|
160
|
+
reference_subsystems_tools.md
|
|
161
|
+
reference_subsystems_typert.md
|
|
162
|
+
reference_subsystems_user-questions.md
|
|
163
|
+
reference_subsystems_web.md
|
|
164
|
+
reference_subsystems_web-server.md
|
|
165
|
+
reference_subsystems_workflow.md
|
|
166
|
+
reference_subsystems_workspace.md
|
|
167
|
+
reference_tool-catalog.md
|
|
168
|
+
reference_tool-execution-pipeline.md
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"knowledgeBase": "DeepSeek Harness 官方文档知识库",
|
|
3
|
+
"source": "官方文档站点 https://deepseek-harness.github.io/deepseek-harness/ (VitePress)",
|
|
4
|
+
"repository": "https://github.com/deepseek-ai/deepseek-harness",
|
|
5
|
+
"branch": "master",
|
|
6
|
+
"commit": "99f6f02fecdb7dff40c3fbc9470f5907c29f74ca",
|
|
7
|
+
"fetchedAt": "2026-08-17T11:21:17.298Z",
|
|
8
|
+
"siteBase": "https://deepseek-harness.github.io/deepseek-harness",
|
|
9
|
+
"publishedMarkdownPages": 168,
|
|
10
|
+
"siteFiles": 172,
|
|
11
|
+
"images": 4,
|
|
12
|
+
"extraFiles": 50
|
|
13
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# 主题导航(Topics)
|
|
2
|
+
|
|
3
|
+
> 用途:按**任务场景**快速定位要读的文档。路径相对于知识库根 `kb/`(绝对路径:`D:\dsh\plugins\dsh-plugin-dev-kb\kb\`)。
|
|
4
|
+
> 中文优先读 `site/` 下的文件;英文原文在 `site/en/` 对应路径(如 `site/en/develop/basic/index.md`)。
|
|
5
|
+
> 每个主题:**核心** = 先读这些;**扩展** = 需要细节时再读。
|
|
6
|
+
|
|
7
|
+
## 1. 入门:第一个插件
|
|
8
|
+
- 核心:`site/develop/basic/index.md`(插件 = 导出 `apply(ctx)` 的模块;`ctx.effect()` 自动清理;三种插件形态:函数/对象/类)
|
|
9
|
+
- 扩展:`site/develop/cordis-tutorial/01-first-plugin.md`、`site/develop/framework/index.md`
|
|
10
|
+
|
|
11
|
+
## 2. 开发一个 Tool
|
|
12
|
+
- 核心:`site/develop/basic/tool.md`(工具定义 DSL)、`site/reference/cookbook/adding-a-tool.md`(完整步骤 + 验证)
|
|
13
|
+
- 扩展:`site/reference/tool-catalog.md`(全部内置工具 schema,大文件请 grep)、`site/reference/subsystems/tools.md`(注册表与执行流水线)、`site/reference/tool-execution-pipeline.md`
|
|
14
|
+
|
|
15
|
+
## 3. 插件配置
|
|
16
|
+
- 核心:`site/develop/basic/config.md`、`site/develop/cordis-tutorial/05-config.md`
|
|
17
|
+
- 扩展:`site/reference/config-catalog.md`(全量配置项,大文件请 grep)
|
|
18
|
+
|
|
19
|
+
## 4. 服务与依赖注入
|
|
20
|
+
- 核心:`site/develop/framework/service.md`、`site/develop/cordis-tutorial/03-services.md`
|
|
21
|
+
- 扩展:`site/reference/cordis-api/service.md`、`site/reference/capability-seams.md`(能力三层:Service Definition / Provider / Consumer)
|
|
22
|
+
|
|
23
|
+
## 5. 事件系统
|
|
24
|
+
- 核心:`site/develop/framework/events.md`、`site/develop/cordis-tutorial/04-events.md`
|
|
25
|
+
- 扩展:`site/reference/cordis-api/events.md`、`site/reference/persistence-catalog.md`(持久化事件目录)、`extra/event-producer-consumer.md`
|
|
26
|
+
|
|
27
|
+
## 6. 生命周期与副作用
|
|
28
|
+
- 核心:`site/develop/framework/index.md`、`site/develop/cordis-tutorial/02-lifecycle-and-effects.md`
|
|
29
|
+
- 扩展:`site/reference/agent-lifecycle.md`、`site/reference/cordis-api/context.md`、`extra/defensive-patterns.md`(生命周期/并发/子进程防御模式)
|
|
30
|
+
|
|
31
|
+
## 7. 打包与发布插件
|
|
32
|
+
- 核心:`site/develop/basic/publish.md`
|
|
33
|
+
- 扩展:`extra/cookbook/adding-a-vendored-package.md`(vendored 包)
|
|
34
|
+
|
|
35
|
+
## 8. LLM 适配器
|
|
36
|
+
- 核心:`site/develop/practice/llm-adapter.md`、`site/reference/cookbook/adding-an-llm-adapter.md`
|
|
37
|
+
- 扩展:`site/reference/subsystems/llm-streaming.md`(流式响应/Message/ContentBlock/StreamChunk)
|
|
38
|
+
|
|
39
|
+
## 9. 扩展点与能力分层
|
|
40
|
+
- 核心:`site/develop/practice/index.md`(能力三层拆分)、`site/reference/capability-seams.md`
|
|
41
|
+
- 扩展:`site/reference/cookbook/extension-cookbook.md`(扩展模式)、`site/reference/cookbook/adding-a-conversation-node.md`
|
|
42
|
+
|
|
43
|
+
## 10. 新增 Package / 设置卡片 / Conversation Node
|
|
44
|
+
- 核心:`site/reference/cookbook/adding-a-package.md`、`site/reference/cookbook/adding-a-settings-card.md`、`site/reference/cookbook/adding-a-conversation-node.md`
|
|
45
|
+
|
|
46
|
+
## 11. 子系统能力速查(按需)
|
|
47
|
+
- 总览:`site/reference/subsystems/index.md`;README 约定见 `site/reference/subsystems/README.md`
|
|
48
|
+
- 内核与作用域:`core.md`、`scope.md`、`invariants.md`(运行时不变式)
|
|
49
|
+
- 会话与持久化:`session.md`、`session-query.md`、`session-reference.md`、`session-title.md`、`session-projection.md`、`persistence.md`、`spill.md`、`session-telemetry.md`
|
|
50
|
+
- 模型与上下文:`llm-streaming.md`、`token-meter.md`、`system-prompt.md`、`compaction.md`(上下文压缩)
|
|
51
|
+
- 执行与工具:`tools.md`、`shell.md`(Bash)、`subprocess.md`、`terminal.md`(PTY)、`jobs.md`(后台任务)、`filesystem.md`、`lsp.md`、`code-runtime.md`、`web.md`、`skills.md`、`workflow.md`、`subagent.md`
|
|
52
|
+
- 策略与交互:`approval.md`(审批)、`permission-presets.md`、`sandbox.md`、`plan.md`(计划模式)、`user-questions.md`、`commands.md`、`goal.md`、`schedule.md`
|
|
53
|
+
- 平台与接入:`web-server.md`(HTTP 服务器)、`typert.md`、`client-modules.md`、`storage.md`、`workspace.md`、`settings.md`、`credentials.md`
|
|
54
|
+
- 以上均在 `site/reference/subsystems/` 下(如 `site/reference/subsystems/session.md`)
|
|
55
|
+
|
|
56
|
+
## 12. 架构与核心概念
|
|
57
|
+
- 核心:`site/reference/index.md`(架构总览:组合、核心包、循环、seam、扩展点)、`site/reference/cordis-primer.md`(Cordis 入门)
|
|
58
|
+
- 扩展:`extra/glossary.md`(术语表:capability seam 等)、`extra/module-graph.md`(模块依赖全景图,大文件请 grep)、`extra/graph-atlas.md`
|
|
59
|
+
|
|
60
|
+
## 13. 系统提示词 / Token / 上下文压缩
|
|
61
|
+
- `site/reference/subsystems/system-prompt.md`、`token-meter.md`、`compaction.md`
|
|
62
|
+
|
|
63
|
+
## 14. 测试与防御
|
|
64
|
+
- `extra/testing.md`(测试策略:快照/e2e/单测边界)、`extra/defensive-patterns.md`、`extra/postmortem/`(事故复盘 4 篇,含沙箱/进程故障模式)
|
|
65
|
+
|
|
66
|
+
## 15. 文档规范与贡献
|
|
67
|
+
- `extra/AGENTS.md`(文档分层标准:tutorial/reference、字数预算)、`extra/development.md`(开发环境与工作流)、`extra/i18n/`(双语规范与术语)
|
|
68
|
+
|
|
69
|
+
## 16. 中英对照
|
|
70
|
+
- 英文站:`site/en/`(结构与中文站一致:`guide/`、`develop/`、`reference/`);`INDEX.md` 有全部 URL ↔ 文件对照
|
|
71
|
+
|
|
72
|
+
## 检索技巧
|
|
73
|
+
- 全量索引:`meta/search-index.json`(220 个文件的 path/url/title/字符数)
|
|
74
|
+
- 大文件(config-catalog / tool-catalog / module-graph / subsystems/session 等 ≥100KB)先用 grep 定位关键行,再 read 局部,不要整读
|
|
75
|
+
- 常用检索关键词:`ctx.effect`、`ctx.on`、`ctx.tools.register`、`inject`、`Service Definition`、`cordis.yml`、`SessionEventMap`
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
editSource: "docs/user/develop/basic/config.zh.md"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# 插件配置
|
|
6
|
+
|
|
7
|
+
让你的插件接受用户在 `cordis.yml` 中传入的配置。
|
|
8
|
+
|
|
9
|
+
## 定义 Config 类型
|
|
10
|
+
|
|
11
|
+
在插件中导出一个 `Config` 类型和同名的 Schemastery schema;默认值直接写在 schema 中:
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import type { Context } from '@deepseek-ai/cordis'
|
|
15
|
+
import Schema from '@deepseek-ai/schemastery'
|
|
16
|
+
|
|
17
|
+
export const name = 'my-plugin'
|
|
18
|
+
|
|
19
|
+
export interface Config {
|
|
20
|
+
greeting: string
|
|
21
|
+
maxRetries: number
|
|
22
|
+
verbose?: boolean
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export const Config: Schema<Config> = Schema.object({
|
|
26
|
+
greeting: Schema.string().default('Hello'),
|
|
27
|
+
maxRetries: Schema.number().default(3),
|
|
28
|
+
verbose: Schema.boolean().default(false),
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
export function apply(ctx: Context, config: Config) {
|
|
32
|
+
console.log(config.greeting) // User value or schema default.
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
在 `scratch-plugin/cordis.yml` 新插入的本地插件行中添加配置:
|
|
37
|
+
|
|
38
|
+
```yaml
|
|
39
|
+
- insert:
|
|
40
|
+
- id: hello
|
|
41
|
+
name: './src/my-plugin.ts'
|
|
42
|
+
config:
|
|
43
|
+
greeting: 'Hi there'
|
|
44
|
+
maxRetries: 5
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
插件加载时,Cordis 会通过导出的 schema 校验配置,并填充未提供字段的默认值。不要导出普通对象作为 `Config`,因为它不满足 Cordis 要求的 Standard Schema 接口。
|
|
48
|
+
|
|
49
|
+
## Schema 校验
|
|
50
|
+
|
|
51
|
+
对于需要严格校验的场景,使用 Schemastery 定义 schema:
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
import type { Context } from '@deepseek-ai/cordis'
|
|
55
|
+
import Schema from '@deepseek-ai/schemastery'
|
|
56
|
+
|
|
57
|
+
export const name = 'validated-plugin'
|
|
58
|
+
|
|
59
|
+
export interface Config {
|
|
60
|
+
apiKey: string
|
|
61
|
+
timeout: number
|
|
62
|
+
mode: 'fast' | 'accurate'
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export const Config = Schema.object({
|
|
66
|
+
apiKey: Schema.string().required(),
|
|
67
|
+
timeout: Schema.number().default(30000),
|
|
68
|
+
mode: Schema.union(['fast', 'accurate']).default('fast'),
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
export function apply(ctx: Context, config: Config) {
|
|
72
|
+
// config is validated and type-safe.
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Schema 在插件加载时执行校验。如果配置不合法,插件会加载失败并给出明确错误信息。
|
|
77
|
+
|
|
78
|
+
## 设计原则
|
|
79
|
+
|
|
80
|
+
### 无硬编码可调参数
|
|
81
|
+
|
|
82
|
+
Harness 的约定:**凡是不同部署可能需要采用不同值的参数,都必须定义为配置字段**。
|
|
83
|
+
|
|
84
|
+
```ts
|
|
85
|
+
// Wrong: hardcoded timeout.
|
|
86
|
+
const TIMEOUT = 30000
|
|
87
|
+
|
|
88
|
+
// Correct: configurable.
|
|
89
|
+
export interface Config {
|
|
90
|
+
timeoutMs: number // Defaults to 30000.
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
检验标准:能否在 `cordis.yml` 中改变这个值,而不需要修改代码?
|
|
95
|
+
|
|
96
|
+
### 配置错误要响亮
|
|
97
|
+
|
|
98
|
+
在 schema 中表达自身完备的约束,使无效配置在插件加载时失败。对服务或已注册资源的引用需要依赖注入;[服务教程](../framework/service.md) 会介绍这项约定。
|
|
99
|
+
|
|
100
|
+
## 配合 HMR
|
|
101
|
+
|
|
102
|
+
配置变更会触发插件热替换:修改 `cordis.yml` 中某个插件的 `config` 后,框架会卸载旧实例并加载新实例。由于注册都属于 effect 并会自动清理,替换后不会保留旧实例的注册。
|
|
103
|
+
|
|
104
|
+
## 下一步
|
|
105
|
+
|
|
106
|
+
- [打包与安装插件](./publish.md) — 把插件以可安装包的形式交付
|
|
107
|
+
- [插件与生命周期](../framework/index.md) — 深入了解插件的完整生命周期
|
|
108
|
+
- [服务与依赖](../framework/service.md) — 让你的插件对外提供服务
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
editSource: "docs/user/develop/basic/index.zh.md"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# 第一个插件
|
|
6
|
+
|
|
7
|
+
本教程会创建一个最小的 Harness 插件,并将其加载到 Web UI 中。请从已完成[从源码运行路径](https://github.com/deepseek-ai/deepseek-harness/blob/master/README.md#run-from-source)的仓库检出开始。
|
|
8
|
+
|
|
9
|
+
## 创建本地项目
|
|
10
|
+
|
|
11
|
+
在仓库根目录创建本教程使用的临时项目:
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
mkdir -p scratch-plugin/src
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## 插件是什么
|
|
18
|
+
|
|
19
|
+
在 Harness 中,插件是一个导出 `apply` 函数的 TypeScript 模块。框架在加载时调用 `apply`,传入一个 `ctx`(上下文对象),你通过 `ctx` 注册能力:
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import type { Context } from '@deepseek-ai/cordis'
|
|
23
|
+
|
|
24
|
+
export const name = 'my-plugin'
|
|
25
|
+
|
|
26
|
+
export function apply(ctx: Context) {
|
|
27
|
+
// Register capabilities here.
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
这就是完整配置。
|
|
32
|
+
|
|
33
|
+
## 创建插件文件
|
|
34
|
+
|
|
35
|
+
创建 `scratch-plugin/src/my-plugin.ts`:
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
import type { Context } from '@deepseek-ai/cordis'
|
|
39
|
+
|
|
40
|
+
export const name = 'hello-plugin'
|
|
41
|
+
|
|
42
|
+
export function apply(ctx: Context) {
|
|
43
|
+
// Required dependencies are ready before apply runs.
|
|
44
|
+
console.log('[hello-plugin] plugin loaded!')
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## 注册到 cordis.yml
|
|
49
|
+
|
|
50
|
+
在仓库根目录运行 `pwd`,然后创建 `scratch-plugin/cordis.yml`,作为插入本地插件的 Web 覆盖层。请将下文的 `/absolute/path/to/deepseek-harness` 替换为命令打印的路径:
|
|
51
|
+
|
|
52
|
+
```yaml
|
|
53
|
+
- insert:
|
|
54
|
+
- id: hello
|
|
55
|
+
name: '/absolute/path/to/deepseek-harness/scratch-plugin/src/my-plugin.ts'
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
插件路径必须是绝对路径。patch 文件只贡献配置,不会改变 loader 解析模块路径时使用的 profile 目录。
|
|
59
|
+
|
|
60
|
+
使用该覆盖层启动 Web UI:
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
pnpm dsh web --patch ./scratch-plugin/cordis.yml
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
打开 `http://127.0.0.1:3080`。启动期间,终端会打印 `[hello-plugin] plugin loaded!`。
|
|
67
|
+
|
|
68
|
+
## 自动清理
|
|
69
|
+
|
|
70
|
+
通过 `ctx` 注册的任何东西——事件监听、工具、定时器——在插件卸载时都会被自动清理。你不需要手动 removeListener 或 clearInterval。
|
|
71
|
+
|
|
72
|
+
如果你有需要手动清理的资源(比如一个网络连接),用 `ctx.effect()` 告诉框架怎么清理:
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
import type { Context } from '@deepseek-ai/cordis'
|
|
76
|
+
|
|
77
|
+
export function apply(ctx: Context) {
|
|
78
|
+
ctx.effect(() => {
|
|
79
|
+
const timer = setInterval(() => {
|
|
80
|
+
console.log('heartbeat')
|
|
81
|
+
}, 5000)
|
|
82
|
+
|
|
83
|
+
// The returned function runs when the plugin unloads.
|
|
84
|
+
return () => clearInterval(timer)
|
|
85
|
+
})
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## 声明依赖
|
|
90
|
+
|
|
91
|
+
如果你的插件需要使用其他服务(如 `tools`、`llm`),需要声明 `inject`:
|
|
92
|
+
|
|
93
|
+
```ts ignore-check
|
|
94
|
+
import type { Context } from '@deepseek-ai/cordis'
|
|
95
|
+
|
|
96
|
+
export const name = 'my-tool-plugin'
|
|
97
|
+
export const inject = ['tools']
|
|
98
|
+
|
|
99
|
+
export function apply(ctx: Context) {
|
|
100
|
+
// ctx.tools is ready here.
|
|
101
|
+
ctx.tools.register(/* ... */)
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
框架会确保依赖的服务就绪后才加载你的插件。
|
|
106
|
+
|
|
107
|
+
## 插件的三种形态
|
|
108
|
+
|
|
109
|
+
除了函数形式,插件还支持对象形式和类形式:
|
|
110
|
+
|
|
111
|
+
### 对象形式
|
|
112
|
+
|
|
113
|
+
```ts
|
|
114
|
+
import type { Context } from '@deepseek-ai/cordis'
|
|
115
|
+
|
|
116
|
+
export default {
|
|
117
|
+
name: 'my-plugin',
|
|
118
|
+
inject: ['tools'],
|
|
119
|
+
apply(ctx: Context) {
|
|
120
|
+
// ...
|
|
121
|
+
},
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 类形式
|
|
126
|
+
|
|
127
|
+
```ts
|
|
128
|
+
import { Service, type Context } from '@deepseek-ai/cordis'
|
|
129
|
+
|
|
130
|
+
export default class MyService extends Service {
|
|
131
|
+
static inject = ['tools']
|
|
132
|
+
|
|
133
|
+
constructor(ctx: Context) {
|
|
134
|
+
super(ctx, 'myService')
|
|
135
|
+
// Perform synchronous initialization in the constructor.
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
大多数情况下,函数形式足够了。当插件需要向其他插件提供服务时,可使用类形式(见 [服务与依赖](../framework/service.md))。
|
|
141
|
+
|
|
142
|
+
## 下一步
|
|
143
|
+
|
|
144
|
+
- [开发一个工具](./tool.md) — 了解工具定义 DSL
|
|
145
|
+
- [插件配置](./config.md) — 让插件接受用户配置
|
|
146
|
+
- [Cordis 框架教程](../cordis-tutorial/index.md) — 底层的插件框架,在临时目录中动手构建,无需 API 密钥
|