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.
Files changed (234) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +56 -0
  3. package/cordis.patch.yml +12 -0
  4. package/kb/INDEX.md +210 -0
  5. package/kb/README.md +69 -0
  6. package/kb/extra/AGENTS.md +75 -0
  7. package/kb/extra/api-gateway.md +164 -0
  8. package/kb/extra/api-gateway.zh.md +164 -0
  9. package/kb/extra/cookbook/adding-a-vendored-package.md +59 -0
  10. package/kb/extra/cookbook/adding-a-vendored-package.zh.md +59 -0
  11. package/kb/extra/cookbook/maintaining-dsh-code-review.md +64 -0
  12. package/kb/extra/cookbook/maintaining-dsh-code-review.zh.md +64 -0
  13. package/kb/extra/cookbook/responding-to-pr-review-on-a-stack.md +32 -0
  14. package/kb/extra/cookbook/responding-to-pr-review-on-a-stack.zh.md +32 -0
  15. package/kb/extra/defensive-patterns.md +33 -0
  16. package/kb/extra/defensive-patterns.zh.md +33 -0
  17. package/kb/extra/development.md +171 -0
  18. package/kb/extra/development.zh.md +171 -0
  19. package/kb/extra/event-producer-consumer.md +76 -0
  20. package/kb/extra/event-producer-consumer.zh.md +78 -0
  21. package/kb/extra/glossary.md +45 -0
  22. package/kb/extra/glossary.zh.md +45 -0
  23. package/kb/extra/graph-atlas.md +24 -0
  24. package/kb/extra/graph-atlas.zh.md +26 -0
  25. package/kb/extra/i18n/README.md +60 -0
  26. package/kb/extra/i18n/README.zh.md +60 -0
  27. package/kb/extra/i18n/style-samples.md +87 -0
  28. package/kb/extra/i18n/terminology.md +214 -0
  29. package/kb/extra/i18n/translation-prompt.md +263 -0
  30. package/kb/extra/i18n/translation-rules.md +69 -0
  31. package/kb/extra/i18n/translation-rules.zh.md +69 -0
  32. package/kb/extra/module-graph.md +1641 -0
  33. package/kb/extra/module-graph.zh.md +1643 -0
  34. package/kb/extra/postmortem/0001-acp-default-export-drops-inject.md +113 -0
  35. package/kb/extra/postmortem/0001-acp-default-export-drops-inject.zh.md +113 -0
  36. package/kb/extra/postmortem/0002-js-expression-disabled-filesystem-tools.md +47 -0
  37. package/kb/extra/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +47 -0
  38. package/kb/extra/postmortem/0003-web-agent-gui-feedback-loop.md +53 -0
  39. package/kb/extra/postmortem/0003-web-agent-gui-feedback-loop.zh.md +53 -0
  40. package/kb/extra/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +55 -0
  41. package/kb/extra/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +55 -0
  42. package/kb/extra/postmortem/README.md +18 -0
  43. package/kb/extra/postmortem/README.zh.md +18 -0
  44. package/kb/extra/rescope.md +53 -0
  45. package/kb/extra/rescope.zh.md +53 -0
  46. package/kb/extra/subsystems/attachment.md +125 -0
  47. package/kb/extra/subsystems/attachment.zh.md +125 -0
  48. package/kb/extra/subsystems/extensions.md +364 -0
  49. package/kb/extra/subsystems/extensions.zh.md +364 -0
  50. package/kb/extra/subsystems/feedback.md +266 -0
  51. package/kb/extra/subsystems/feedback.zh.md +266 -0
  52. package/kb/extra/testing.md +49 -0
  53. package/kb/extra/testing.zh.md +49 -0
  54. package/kb/extra/web-styling.md +25 -0
  55. package/kb/extra/web-styling.zh.md +25 -0
  56. package/kb/meta/search-index.json +1328 -0
  57. package/kb/meta/site-pages.txt +168 -0
  58. package/kb/meta/source.json +13 -0
  59. package/kb/meta/topics.md +75 -0
  60. package/kb/site/develop/basic/config.md +108 -0
  61. package/kb/site/develop/basic/index.md +146 -0
  62. package/kb/site/develop/basic/publish.md +185 -0
  63. package/kb/site/develop/basic/tool.md +54 -0
  64. package/kb/site/develop/cordis-tutorial/01-first-plugin.md +95 -0
  65. package/kb/site/develop/cordis-tutorial/02-lifecycle-and-effects.md +98 -0
  66. package/kb/site/develop/cordis-tutorial/03-services.md +98 -0
  67. package/kb/site/develop/cordis-tutorial/04-events.md +144 -0
  68. package/kb/site/develop/cordis-tutorial/05-config.md +84 -0
  69. package/kb/site/develop/cordis-tutorial/06-composition-and-hmr.md +113 -0
  70. package/kb/site/develop/cordis-tutorial/07-into-the-harness.md +107 -0
  71. package/kb/site/develop/cordis-tutorial/index.md +62 -0
  72. package/kb/site/develop/framework/events.md +145 -0
  73. package/kb/site/develop/framework/index.md +139 -0
  74. package/kb/site/develop/framework/service.md +152 -0
  75. package/kb/site/develop/practice/index.md +157 -0
  76. package/kb/site/develop/practice/llm-adapter.md +190 -0
  77. package/kb/site/en/develop/basic/config.md +108 -0
  78. package/kb/site/en/develop/basic/index.md +146 -0
  79. package/kb/site/en/develop/basic/publish.md +185 -0
  80. package/kb/site/en/develop/basic/tool.md +54 -0
  81. package/kb/site/en/develop/cordis-tutorial/01-first-plugin.md +95 -0
  82. package/kb/site/en/develop/cordis-tutorial/02-lifecycle-and-effects.md +98 -0
  83. package/kb/site/en/develop/cordis-tutorial/03-services.md +98 -0
  84. package/kb/site/en/develop/cordis-tutorial/04-events.md +144 -0
  85. package/kb/site/en/develop/cordis-tutorial/05-config.md +84 -0
  86. package/kb/site/en/develop/cordis-tutorial/06-composition-and-hmr.md +113 -0
  87. package/kb/site/en/develop/cordis-tutorial/07-into-the-harness.md +107 -0
  88. package/kb/site/en/develop/cordis-tutorial/index.md +60 -0
  89. package/kb/site/en/develop/framework/events.md +145 -0
  90. package/kb/site/en/develop/framework/index.md +139 -0
  91. package/kb/site/en/develop/framework/service.md +150 -0
  92. package/kb/site/en/develop/practice/index.md +157 -0
  93. package/kb/site/en/develop/practice/llm-adapter.md +190 -0
  94. package/kb/site/en/guide/providers-custom-form.png +0 -0
  95. package/kb/site/en/guide/providers-models-page.png +0 -0
  96. package/kb/site/en/guide/providers.md +100 -0
  97. package/kb/site/en/guide/python-sdk.md +106 -0
  98. package/kb/site/en/guide/quickstart.md +32 -0
  99. package/kb/site/en/index.md +8 -0
  100. package/kb/site/en/reference/agent-lifecycle.md +86 -0
  101. package/kb/site/en/reference/capability-seams.md +475 -0
  102. package/kb/site/en/reference/config-catalog.md +3155 -0
  103. package/kb/site/en/reference/cookbook/adding-a-conversation-node.md +235 -0
  104. package/kb/site/en/reference/cookbook/adding-a-package.md +120 -0
  105. package/kb/site/en/reference/cookbook/adding-a-settings-card.md +102 -0
  106. package/kb/site/en/reference/cookbook/adding-a-tool.md +96 -0
  107. package/kb/site/en/reference/cookbook/adding-an-llm-adapter.md +45 -0
  108. package/kb/site/en/reference/cookbook/extension-cookbook.md +131 -0
  109. package/kb/site/en/reference/cordis-api/context.md +368 -0
  110. package/kb/site/en/reference/cordis-api/events.md +211 -0
  111. package/kb/site/en/reference/cordis-api/fiber.md +379 -0
  112. package/kb/site/en/reference/cordis-api/inherited.md +43 -0
  113. package/kb/site/en/reference/cordis-api/registry.md +156 -0
  114. package/kb/site/en/reference/cordis-api/service.md +106 -0
  115. package/kb/site/en/reference/cordis-primer.md +46 -0
  116. package/kb/site/en/reference/index.md +131 -0
  117. package/kb/site/en/reference/persistence-catalog.md +949 -0
  118. package/kb/site/en/reference/subsystems/approval.md +173 -0
  119. package/kb/site/en/reference/subsystems/client-modules.md +121 -0
  120. package/kb/site/en/reference/subsystems/code-runtime.md +194 -0
  121. package/kb/site/en/reference/subsystems/commands.md +190 -0
  122. package/kb/site/en/reference/subsystems/compaction.md +241 -0
  123. package/kb/site/en/reference/subsystems/core.md +1073 -0
  124. package/kb/site/en/reference/subsystems/credentials.md +136 -0
  125. package/kb/site/en/reference/subsystems/filesystem.md +498 -0
  126. package/kb/site/en/reference/subsystems/goal.md +280 -0
  127. package/kb/site/en/reference/subsystems/index.md +58 -0
  128. package/kb/site/en/reference/subsystems/invariants.md +91 -0
  129. package/kb/site/en/reference/subsystems/jobs.md +293 -0
  130. package/kb/site/en/reference/subsystems/llm-streaming.md +920 -0
  131. package/kb/site/en/reference/subsystems/lsp.md +205 -0
  132. package/kb/site/en/reference/subsystems/permission-presets.md +134 -0
  133. package/kb/site/en/reference/subsystems/persistence.md +388 -0
  134. package/kb/site/en/reference/subsystems/plan.md +90 -0
  135. package/kb/site/en/reference/subsystems/sandbox.md +221 -0
  136. package/kb/site/en/reference/subsystems/schedule.md +189 -0
  137. package/kb/site/en/reference/subsystems/scope.md +62 -0
  138. package/kb/site/en/reference/subsystems/session-projection.md +265 -0
  139. package/kb/site/en/reference/subsystems/session-query.md +498 -0
  140. package/kb/site/en/reference/subsystems/session-reference.md +111 -0
  141. package/kb/site/en/reference/subsystems/session-telemetry.md +197 -0
  142. package/kb/site/en/reference/subsystems/session-title.md +207 -0
  143. package/kb/site/en/reference/subsystems/session.md +852 -0
  144. package/kb/site/en/reference/subsystems/settings.md +313 -0
  145. package/kb/site/en/reference/subsystems/shell.md +306 -0
  146. package/kb/site/en/reference/subsystems/skills.md +334 -0
  147. package/kb/site/en/reference/subsystems/spill.md +120 -0
  148. package/kb/site/en/reference/subsystems/storage.md +232 -0
  149. package/kb/site/en/reference/subsystems/subagent.md +737 -0
  150. package/kb/site/en/reference/subsystems/subprocess.md +327 -0
  151. package/kb/site/en/reference/subsystems/system-prompt.md +210 -0
  152. package/kb/site/en/reference/subsystems/terminal.md +187 -0
  153. package/kb/site/en/reference/subsystems/token-meter.md +93 -0
  154. package/kb/site/en/reference/subsystems/tools.md +723 -0
  155. package/kb/site/en/reference/subsystems/typert.md +339 -0
  156. package/kb/site/en/reference/subsystems/user-questions.md +181 -0
  157. package/kb/site/en/reference/subsystems/web-server.md +111 -0
  158. package/kb/site/en/reference/subsystems/web.md +202 -0
  159. package/kb/site/en/reference/subsystems/workflow.md +281 -0
  160. package/kb/site/en/reference/subsystems/workspace.md +231 -0
  161. package/kb/site/en/reference/tool-catalog.md +1877 -0
  162. package/kb/site/en/reference/tool-execution-pipeline.md +66 -0
  163. package/kb/site/guide/providers-custom-form.zh.png +0 -0
  164. package/kb/site/guide/providers-models-page.zh.png +0 -0
  165. package/kb/site/guide/providers.md +100 -0
  166. package/kb/site/guide/python-sdk.md +106 -0
  167. package/kb/site/guide/quickstart.md +32 -0
  168. package/kb/site/index.md +8 -0
  169. package/kb/site/reference/agent-lifecycle.md +86 -0
  170. package/kb/site/reference/capability-seams.md +475 -0
  171. package/kb/site/reference/config-catalog.md +3154 -0
  172. package/kb/site/reference/cookbook/adding-a-conversation-node.md +235 -0
  173. package/kb/site/reference/cookbook/adding-a-package.md +120 -0
  174. package/kb/site/reference/cookbook/adding-a-settings-card.md +102 -0
  175. package/kb/site/reference/cookbook/adding-a-tool.md +98 -0
  176. package/kb/site/reference/cookbook/adding-an-llm-adapter.md +45 -0
  177. package/kb/site/reference/cookbook/extension-cookbook.md +133 -0
  178. package/kb/site/reference/cordis-api/context.md +368 -0
  179. package/kb/site/reference/cordis-api/events.md +211 -0
  180. package/kb/site/reference/cordis-api/fiber.md +379 -0
  181. package/kb/site/reference/cordis-api/inherited.md +43 -0
  182. package/kb/site/reference/cordis-api/registry.md +156 -0
  183. package/kb/site/reference/cordis-api/service.md +106 -0
  184. package/kb/site/reference/cordis-primer.md +52 -0
  185. package/kb/site/reference/index.md +135 -0
  186. package/kb/site/reference/persistence-catalog.md +949 -0
  187. package/kb/site/reference/subsystems/approval.md +173 -0
  188. package/kb/site/reference/subsystems/client-modules.md +121 -0
  189. package/kb/site/reference/subsystems/code-runtime.md +194 -0
  190. package/kb/site/reference/subsystems/commands.md +190 -0
  191. package/kb/site/reference/subsystems/compaction.md +241 -0
  192. package/kb/site/reference/subsystems/core.md +1081 -0
  193. package/kb/site/reference/subsystems/credentials.md +136 -0
  194. package/kb/site/reference/subsystems/filesystem.md +498 -0
  195. package/kb/site/reference/subsystems/goal.md +280 -0
  196. package/kb/site/reference/subsystems/index.md +58 -0
  197. package/kb/site/reference/subsystems/invariants.md +91 -0
  198. package/kb/site/reference/subsystems/jobs.md +293 -0
  199. package/kb/site/reference/subsystems/llm-streaming.md +926 -0
  200. package/kb/site/reference/subsystems/lsp.md +205 -0
  201. package/kb/site/reference/subsystems/permission-presets.md +134 -0
  202. package/kb/site/reference/subsystems/persistence.md +388 -0
  203. package/kb/site/reference/subsystems/plan.md +90 -0
  204. package/kb/site/reference/subsystems/sandbox.md +221 -0
  205. package/kb/site/reference/subsystems/schedule.md +189 -0
  206. package/kb/site/reference/subsystems/scope.md +62 -0
  207. package/kb/site/reference/subsystems/session-projection.md +265 -0
  208. package/kb/site/reference/subsystems/session-query.md +498 -0
  209. package/kb/site/reference/subsystems/session-reference.md +111 -0
  210. package/kb/site/reference/subsystems/session-telemetry.md +197 -0
  211. package/kb/site/reference/subsystems/session-title.md +207 -0
  212. package/kb/site/reference/subsystems/session.md +854 -0
  213. package/kb/site/reference/subsystems/settings.md +313 -0
  214. package/kb/site/reference/subsystems/shell.md +306 -0
  215. package/kb/site/reference/subsystems/skills.md +334 -0
  216. package/kb/site/reference/subsystems/spill.md +120 -0
  217. package/kb/site/reference/subsystems/storage.md +232 -0
  218. package/kb/site/reference/subsystems/subagent.md +739 -0
  219. package/kb/site/reference/subsystems/subprocess.md +327 -0
  220. package/kb/site/reference/subsystems/system-prompt.md +210 -0
  221. package/kb/site/reference/subsystems/terminal.md +187 -0
  222. package/kb/site/reference/subsystems/token-meter.md +93 -0
  223. package/kb/site/reference/subsystems/tools.md +723 -0
  224. package/kb/site/reference/subsystems/typert.md +339 -0
  225. package/kb/site/reference/subsystems/user-questions.md +181 -0
  226. package/kb/site/reference/subsystems/web-server.md +111 -0
  227. package/kb/site/reference/subsystems/web.md +202 -0
  228. package/kb/site/reference/subsystems/workflow.md +281 -0
  229. package/kb/site/reference/subsystems/workspace.md +231 -0
  230. package/kb/site/reference/tool-catalog.md +1880 -0
  231. package/kb/site/reference/tool-execution-pipeline.md +66 -0
  232. package/package.json +40 -0
  233. package/scripts/rebuild-index.mjs +88 -0
  234. package/skills/dsh-plugin-dev-kb.md +66 -0
@@ -0,0 +1,211 @@
1
+ ---
2
+ editSource: "docs/cordis-api/events.md"
3
+ ---
4
+
5
+ <!-- Generated by scripts/gen-cordis-catalog.ts — do not edit by hand.
6
+ Run `pnpm run gen-cordis-catalog` to regenerate. -->
7
+
8
+ # Events
9
+
10
+ The event-dispatch API mixed into every context. Harness event declarations and their dispatch modes are generated into each owning [subsystem page](../subsystems/core.md).
11
+
12
+ ### ctx.parallel(name, ...args)
13
+
14
+ ```ts cordis-catalog
15
+ /**
16
+ * Dispatch an event, running all listeners concurrently.
17
+ *
18
+ * @param name — the event name.
19
+ * @param args — arguments passed to every listener.
20
+ * @returns a promise resolving once every listener has settled.
21
+ */
22
+ parallel<K extends keyof Events>(name: K, ...args: Parameters<Events[K]>): Promise<void>
23
+ parallel<K extends keyof Events>(thisArg: NoInfer<ThisType<Events[K]>>, name: K, ...args: Parameters<Events[K]>): Promise<void>
24
+ ```
25
+
26
+ Dispatch an event, running all listeners concurrently.
27
+
28
+ - `name` — the event name.
29
+ - `args` — arguments passed to every listener.
30
+
31
+ **Returns** a promise resolving once every listener has settled.
32
+
33
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts#L44)
34
+
35
+ ### ctx.emit(name, ...args)
36
+
37
+ ```ts cordis-catalog
38
+ /**
39
+ * Dispatch an event synchronously, ignoring listener return values.
40
+ *
41
+ * @param name — the event name.
42
+ * @param args — arguments passed to every listener.
43
+ */
44
+ emit<K extends keyof Events>(name: K, ...args: Parameters<Events[K]>): void
45
+ emit<K extends keyof Events>(thisArg: NoInfer<ThisType<Events[K]>>, name: K, ...args: Parameters<Events[K]>): void
46
+ ```
47
+
48
+ Dispatch an event synchronously, ignoring listener return values.
49
+
50
+ - `name` — the event name.
51
+ - `args` — arguments passed to every listener.
52
+
53
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts#L53)
54
+
55
+ ### ctx.serial(name, ...args)
56
+
57
+ ```ts cordis-catalog
58
+ /**
59
+ * Dispatch an event, awaiting listeners in order until one bails.
60
+ *
61
+ * @param name — the event name.
62
+ * @param args — arguments passed to each listener.
63
+ * @returns the first bail value (non-null, non-false, non-undefined), if any.
64
+ */
65
+ serial<K extends keyof Events>(name: K, ...args: Parameters<Events[K]>): Promisify<ReturnType<Events[K]>>
66
+ serial<K extends keyof Events>(thisArg: NoInfer<ThisType<Events[K]>>, name: K, ...args: Parameters<Events[K]>): Promisify<ReturnType<Events[K]>>
67
+ ```
68
+
69
+ Dispatch an event, awaiting listeners in order until one bails.
70
+
71
+ - `name` — the event name.
72
+ - `args` — arguments passed to each listener.
73
+
74
+ **Returns** the first bail value (non-null, non-false, non-undefined), if any.
75
+
76
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts#L63)
77
+
78
+ ### ctx.bail(name, ...args)
79
+
80
+ ```ts cordis-catalog
81
+ /**
82
+ * Dispatch an event, calling listeners in order until one bails.
83
+ *
84
+ * @param name — the event name.
85
+ * @param args — arguments passed to each listener.
86
+ * @returns the first bail value (non-null, non-false, non-undefined), if any.
87
+ */
88
+ bail<K extends keyof Events>(name: K, ...args: Parameters<Events[K]>): ReturnType<Events[K]>
89
+ bail<K extends keyof Events>(thisArg: NoInfer<ThisType<Events[K]>>, name: K, ...args: Parameters<Events[K]>): ReturnType<Events[K]>
90
+ ```
91
+
92
+ Dispatch an event, calling listeners in order until one bails.
93
+
94
+ - `name` — the event name.
95
+ - `args` — arguments passed to each listener.
96
+
97
+ **Returns** the first bail value (non-null, non-false, non-undefined), if any.
98
+
99
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts#L73)
100
+
101
+ ### ctx.waterfall(name, ...args)
102
+
103
+ ```ts cordis-catalog
104
+ /**
105
+ * Dispatch an event whose last argument is a `next` continuation.
106
+ *
107
+ * Each listener wraps the rest of the chain: calling `next()` invokes the
108
+ * next listener (finally the built-in behavior); not calling it vetoes.
109
+ *
110
+ * @param name — the event name.
111
+ * @param args — listener arguments; the final one is the innermost `next`.
112
+ * @returns the outermost listener's return value.
113
+ */
114
+ waterfall<K extends keyof Events>(name: K, ...args: Parameters<Events[K]>): ReturnType<Events[K]>
115
+ waterfall<K extends keyof Events>(thisArg: NoInfer<ThisType<Events[K]>>, name: K, ...args: Parameters<Events[K]>): ReturnType<Events[K]>
116
+ ```
117
+
118
+ Dispatch an event whose last argument is a `next` continuation.
119
+
120
+ Each listener wraps the rest of the chain: calling `next()` invokes the next listener (finally the built-in behavior); not calling it vetoes.
121
+
122
+ - `name` — the event name.
123
+ - `args` — listener arguments; the final one is the innermost `next`.
124
+
125
+ **Returns** the outermost listener's return value.
126
+
127
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts#L86)
128
+
129
+ ### ctx.on(name, listener, options?)
130
+
131
+ ```ts cordis-catalog
132
+ /**
133
+ * Register an event listener owned by the current fiber.
134
+ *
135
+ * @param name — the event name to listen for.
136
+ * @param listener — called with the dispatch arguments.
137
+ * @param options — listener options; a boolean is shorthand for `prepend`.
138
+ * @returns a disposer removing the listener; `true` if it was still registered.
139
+ */
140
+ on<K extends keyof Events>(name: K, listener: Events[K], options?: boolean | EventOptions): () => boolean
141
+ ```
142
+
143
+ Register an event listener owned by the current fiber.
144
+
145
+ - `name` — the event name to listen for.
146
+ - `listener` — called with the dispatch arguments.
147
+ - `options` — listener options; a boolean is shorthand for `prepend`.
148
+
149
+ **Returns** a disposer removing the listener; `true` if it was still registered.
150
+
151
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts#L97)
152
+
153
+ ### ctx.once(name, listener, options?)
154
+
155
+ ```ts cordis-catalog
156
+ /**
157
+ * Same as `on()`, but the listener disposes itself after its first call.
158
+ *
159
+ * @param name — the event name to listen for.
160
+ * @param listener — called at most once with the dispatch arguments.
161
+ * @param options — listener options; a boolean is shorthand for `prepend`.
162
+ * @returns a disposer removing the listener; `true` if it was still registered.
163
+ */
164
+ once<K extends keyof Events>(name: K, listener: Events[K], options?: boolean | EventOptions): () => boolean
165
+ ```
166
+
167
+ Same as `on()`, but the listener disposes itself after its first call.
168
+
169
+ - `name` — the event name to listen for.
170
+ - `listener` — called at most once with the dispatch arguments.
171
+ - `options` — listener options; a boolean is shorthand for `prepend`.
172
+
173
+ **Returns** a disposer removing the listener; `true` if it was still registered.
174
+
175
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts#L106)
176
+
177
+ ## EventOptions
178
+
179
+ Options accepted by `ctx.on()` and `ctx.once()`.
180
+
181
+ ```ts cordis-catalog
182
+ /** Options accepted by `ctx.on()` and `ctx.once()`. */
183
+ interface EventOptions {
184
+ /** Add the listener before existing listeners for the same event. */
185
+ prepend?: boolean
186
+ /** Receive the event regardless of context filter checks. */
187
+ global?: boolean
188
+ }
189
+ ```
190
+
191
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts#L112)
192
+
193
+ ## DispatchMode
194
+
195
+ Event dispatch strategy used by the event service.
196
+
197
+ `emit` runs synchronous listeners without awaiting them, `parallel` awaits all listeners together, `serial` awaits them in order until one bails, `bail` stops on the first synchronous bail value, and `waterfall` composes listeners around a final `next` callback.
198
+
199
+ ```ts cordis-catalog
200
+ /**
201
+ * Event dispatch strategy used by the event service.
202
+ *
203
+ * `emit` runs synchronous listeners without awaiting them, `parallel` awaits
204
+ * all listeners together, `serial` awaits them in order until one bails,
205
+ * `bail` stops on the first synchronous bail value, and `waterfall` composes
206
+ * listeners around a final `next` callback.
207
+ */
208
+ type DispatchMode = 'emit' | 'parallel' | 'serial' | 'bail' | 'waterfall'
209
+ ```
210
+
211
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts#L32)
@@ -0,0 +1,379 @@
1
+ ---
2
+ editSource: "docs/cordis-api/fiber.md"
3
+ ---
4
+
5
+ <!-- Generated by scripts/gen-cordis-catalog.ts — do not edit by hand.
6
+ Run `pnpm run gen-cordis-catalog` to regenerate. -->
7
+
8
+ # Fiber
9
+
10
+ A fiber is one loaded plugin instance: its lifecycle state, validated config, and registered effects. `ctx.fiber` is the current fiber, and `ctx.effect()` delegates to it.
11
+
12
+ ### ctx.effect(execute, label?)
13
+
14
+ ```ts cordis-catalog
15
+ /**
16
+ * Register a cleanup-aware effect on this fiber.
17
+ *
18
+ * `execute` runs immediately; the disposers it produces are collected and
19
+ * run (in reverse order) either when the returned disposer is called or
20
+ * when the fiber unloads, whichever comes first. Calling the disposer twice
21
+ * is a no-op. Throws `CordisError('INACTIVE_EFFECT')` if the fiber is
22
+ * already disposed, and `TypeError` if `execute` returns an invalid shape.
23
+ *
24
+ * @param execute — the effect body; see {@link Effect} for accepted shapes.
25
+ * @param label — effect label shown in `getEffects()` diagnostics.
26
+ * @returns a disposer that tears the effect down and settles once done.
27
+ */
28
+ effect(execute: () => SyncEffect, label?: string): Disposable<Promise<void>>
29
+ effect(execute: () => Effect, label?: string): AsyncDisposable<Promise<void>>
30
+ ```
31
+
32
+ Register a cleanup-aware effect on this fiber.
33
+
34
+ `execute` runs immediately; the disposers it produces are collected and run (in reverse order) either when the returned disposer is called or when the fiber unloads, whichever comes first. Calling the disposer twice is a no-op. Throws `CordisError('INACTIVE_EFFECT')` if the fiber is already disposed, and `TypeError` if `execute` returns an invalid shape.
35
+
36
+ - `execute` — the effect body; see `Effect` for accepted shapes.
37
+ - `label` — effect label shown in `getEffects()` diagnostics.
38
+
39
+ **Returns** a disposer that tears the effect down and settles once done.
40
+
41
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L415)
42
+
43
+ ### ctx.fiber
44
+
45
+ ```ts cordis-catalog
46
+ /** The fiber (plugin runtime instance) that owns this context. */
47
+ fiber: Fiber
48
+ ```
49
+
50
+ The fiber (plugin runtime instance) that owns this context.
51
+
52
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L12)
53
+
54
+ ## The Fiber class
55
+
56
+ Runtime instance of one plugin application.
57
+
58
+ A fiber tracks dependency state, validated config, lifecycle effects, and cleanup for the plugin context returned by `ctx.plugin()`.
59
+
60
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L184)
61
+
62
+ ### fiber.uid
63
+
64
+ ```ts cordis-catalog
65
+ /** Unique id within the registry; 0 for the root fiber, `null` once disposed. */
66
+ public uid: number | null
67
+ ```
68
+
69
+ Unique id within the registry; 0 for the root fiber, `null` once disposed.
70
+
71
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L186)
72
+
73
+ ### fiber.ctx
74
+
75
+ ```ts cordis-catalog
76
+ /** The context this fiber's plugin runs in (extends the parent context). */
77
+ public readonly ctx: Context
78
+ ```
79
+
80
+ The context this fiber's plugin runs in (extends the parent context).
81
+
82
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L188)
83
+
84
+ ### fiber.config
85
+
86
+ ```ts cordis-catalog
87
+ /** The validated plugin config (updated by `update()`). */
88
+ public config: any
89
+ ```
90
+
91
+ The validated plugin config (updated by `update()`).
92
+
93
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L190)
94
+
95
+ ### fiber.state
96
+
97
+ ```ts cordis-catalog
98
+ /** Current lifecycle state; transitions emit `internal/status`. */
99
+ public state
100
+ ```
101
+
102
+ Current lifecycle state; transitions emit `internal/status`.
103
+
104
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L194)
105
+
106
+ ### fiber.dispose
107
+
108
+ ```ts cordis-catalog
109
+ /** Dispose this fiber: unload the plugin, then settle once cleanup finished. */
110
+ public readonly dispose: () => Promise<void>
111
+ ```
112
+
113
+ Dispose this fiber: unload the plugin, then settle once cleanup finished.
114
+
115
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L196)
116
+
117
+ ### fiber.store
118
+
119
+ ```ts cordis-catalog
120
+ /** Snapshot of required service implementations while loaded; `undefined` otherwise. */
121
+ public store: Dict<Impl> | undefined
122
+ ```
123
+
124
+ Snapshot of required service implementations while loaded; `undefined` otherwise.
125
+
126
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L198)
127
+
128
+ ### fiber.inertia
129
+
130
+ ```ts cordis-catalog
131
+ /** The in-flight load/unload transition, if one is currently running. */
132
+ public inertia: Promise<void> | undefined
133
+ ```
134
+
135
+ The in-flight load/unload transition, if one is currently running.
136
+
137
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L200)
138
+
139
+ ### fiber.name
140
+
141
+ ```ts cordis-catalog
142
+ /** The plugin's display name, inherited from the nearest named ancestor, else `'root'`. */
143
+ get name()
144
+ ```
145
+
146
+ The plugin's display name, inherited from the nearest named ancestor, else `'root'`.
147
+
148
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L336)
149
+
150
+ ### fiber.assertActive()
151
+
152
+ ```ts cordis-catalog
153
+ /**
154
+ * Throw if the fiber has already been disposed.
155
+ *
156
+ * @returns nothing when the fiber is still active.
157
+ * @throws {CordisError} `INACTIVE_EFFECT` when the fiber's uid has been cleared.
158
+ */
159
+ assertActive()
160
+ ```
161
+
162
+ Throw if the fiber has already been disposed.
163
+
164
+ **Returns** nothing when the fiber is still active.
165
+
166
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L351)
167
+
168
+ ### fiber.effect(execute, label?)
169
+
170
+ ```ts cordis-catalog
171
+ /**
172
+ * Register a cleanup-aware effect on this fiber.
173
+ *
174
+ * `execute` runs immediately; the disposers it produces are collected and
175
+ * run (in reverse order) either when the returned disposer is called or
176
+ * when the fiber unloads, whichever comes first. Calling the disposer twice
177
+ * is a no-op. Throws `CordisError('INACTIVE_EFFECT')` if the fiber is
178
+ * already disposed, and `TypeError` if `execute` returns an invalid shape.
179
+ *
180
+ * @param execute — the effect body; see {@link Effect} for accepted shapes.
181
+ * @param label — effect label shown in `getEffects()` diagnostics.
182
+ * @returns a disposer that tears the effect down and settles once done.
183
+ */
184
+ effect(execute: () => SyncEffect, label?: string): Disposable<Promise<void>>
185
+ effect(execute: () => Effect, label?: string): AsyncDisposable<Promise<void>>
186
+ ```
187
+
188
+ Register a cleanup-aware effect on this fiber.
189
+
190
+ `execute` runs immediately; the disposers it produces are collected and run (in reverse order) either when the returned disposer is called or when the fiber unloads, whichever comes first. Calling the disposer twice is a no-op. Throws `CordisError('INACTIVE_EFFECT')` if the fiber is already disposed, and `TypeError` if `execute` returns an invalid shape.
191
+
192
+ - `execute` — the effect body; see `Effect` for accepted shapes.
193
+ - `label` — effect label shown in `getEffects()` diagnostics.
194
+
195
+ **Returns** a disposer that tears the effect down and settles once done.
196
+
197
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L415)
198
+
199
+ ### fiber.getEffects()
200
+
201
+ ```ts cordis-catalog
202
+ /**
203
+ * Return metadata for currently registered effects.
204
+ *
205
+ * @returns one {@link EffectMeta} tree per labeled live effect.
206
+ */
207
+ getEffects()
208
+ ```
209
+
210
+ Return metadata for currently registered effects.
211
+
212
+ **Returns** one `EffectMeta` tree per labeled live effect.
213
+
214
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L568)
215
+
216
+ ### fiber.await()
217
+
218
+ ```ts cordis-catalog
219
+ /**
220
+ * Wait for current lifecycle work and rethrow startup errors.
221
+ *
222
+ * @returns this fiber, once it has settled into a stable state.
223
+ * @throws the config-validation or plugin-startup error, if any.
224
+ */
225
+ async await()
226
+ ```
227
+
228
+ Wait for current lifecycle work and rethrow startup errors.
229
+
230
+ **Returns** this fiber, once it has settled into a stable state.
231
+
232
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L704)
233
+
234
+ ### fiber.restart()
235
+
236
+ ```ts cordis-catalog
237
+ /**
238
+ * Dispose and immediately reload this plugin with its current config.
239
+ *
240
+ * @returns a promise resolving once the reload settled.
241
+ * @throws {CordisError} `INACTIVE_EFFECT` when the fiber is already disposed.
242
+ */
243
+ async restart()
244
+ ```
245
+
246
+ Dispose and immediately reload this plugin with its current config.
247
+
248
+ **Returns** a promise resolving once the reload settled.
249
+
250
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L718)
251
+
252
+ ### fiber.update(config, noSave?)
253
+
254
+ ```ts cordis-catalog
255
+ /**
256
+ * Validate and apply new config, then restart the plugin.
257
+ *
258
+ * Runs the `internal/update` waterfall first, so update hooks (and HMR)
259
+ * can veto or replace the restart.
260
+ *
261
+ * @param config — the new raw config; validated before anything restarts.
262
+ * @param noSave — hint for persistence hooks not to write the change back.
263
+ * @returns the update waterfall result; the default restart returns a promise.
264
+ * @throws when validation, an update listener, or the restarted plugin fails.
265
+ */
266
+ update(config: any, noSave = false)
267
+ ```
268
+
269
+ Validate and apply new config, then restart the plugin.
270
+
271
+ Runs the `internal/update` waterfall first, so update hooks (and HMR) can veto or replace the restart.
272
+
273
+ - `config` — the new raw config; validated before anything restarts.
274
+ - `noSave` — hint for persistence hooks not to write the change back.
275
+
276
+ **Returns** the update waterfall result; the default restart returns a promise.
277
+
278
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L736)
279
+
280
+ ## Effect
281
+
282
+ Effect body result accepted by `ctx.effect()` and plugin startup.
283
+
284
+ Either a single disposer, a promise of one, or a (possibly async) iterable yielding several — generator effects register each yielded disposer as it is produced.
285
+
286
+ ```ts cordis-catalog
287
+ /**
288
+ * Effect body result accepted by `ctx.effect()` and plugin startup.
289
+ *
290
+ * Either a single disposer, a promise of one, or a (possibly async) iterable
291
+ * yielding several — generator effects register each yielded disposer as it
292
+ * is produced.
293
+ */
294
+ type Effect<T = any> =
295
+ | SyncEffect<T>
296
+ | AsyncEffect<T>
297
+ ```
298
+
299
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L83)
300
+
301
+ ## Disposable
302
+
303
+ Function returned by an effect to release resources during disposal.
304
+
305
+ Disposers run in reverse registration order when the owning fiber unloads; they may be async, in which case unloading awaits them.
306
+
307
+ ```ts cordis-catalog
308
+ /**
309
+ * Function returned by an effect to release resources during disposal.
310
+ *
311
+ * Disposers run in reverse registration order when the owning fiber unloads;
312
+ * they may be async, in which case unloading awaits them.
313
+ */
314
+ type Disposable<T = any> = () => T
315
+ ```
316
+
317
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L74)
318
+
319
+ ## EffectMeta
320
+
321
+ Tree node used to expose nested effect labels for diagnostics.
322
+
323
+ ```ts cordis-catalog
324
+ /** Tree node used to expose nested effect labels for diagnostics. */
325
+ interface EffectMeta {
326
+ /** Human-readable effect label, e.g. `ctx.on("event")` or `ctx.provide("name")`. */
327
+ label: string
328
+ /** Metadata of nested effects registered while this effect ran. */
329
+ children: EffectMeta[]
330
+ }
331
+ ```
332
+
333
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L96)
334
+
335
+ ## CordisError
336
+
337
+ Framework error with a stable machine-readable code.
338
+
339
+ ```ts cordis-catalog
340
+ /** Framework error with a stable machine-readable code. */
341
+ class CordisError extends Error {
342
+ /**
343
+ * @param code — the stable error code; also the default message.
344
+ * @param message — optional human-readable override.
345
+ */
346
+ constructor(public code: CordisError.Code, message?: string)
347
+ }
348
+
349
+ /** Cordis error code definitions. */
350
+ namespace CordisError {
351
+ export type Code = keyof typeof Code
352
+
353
+ export const Code = {
354
+ INACTIVE_EFFECT: 'cannot create effect on inactive context',
355
+ } as const
356
+ }
357
+ ```
358
+
359
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L157)
360
+
361
+ ## ValidationError
362
+
363
+ Error raised when plugin configuration fails standard-schema validation.
364
+
365
+ ```ts cordis-catalog
366
+ /** Error raised when plugin configuration fails standard-schema validation. */
367
+ class ValidationError extends TypeError {
368
+ name = 'ValidationError'
369
+
370
+ /**
371
+ * Build the aggregated message from schema issues.
372
+ *
373
+ * @param issues — the standard-schema issues, one message line each.
374
+ */
375
+ constructor(issues: readonly StandardSchemaV1.Issue[])
376
+ }
377
+ ```
378
+
379
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L19)
@@ -0,0 +1,43 @@
1
+ ---
2
+ editSource: "docs/cordis-api/inherited.md"
3
+ ---
4
+
5
+ <!-- Generated by scripts/gen-cordis-catalog.ts — do not edit by hand.
6
+ Run `pnpm run gen-cordis-catalog` to regenerate. -->
7
+
8
+ # Inherited Cordis API
9
+
10
+ The framework `ctx` members and events every plugin sees beyond the harness tier — pinned vendor source ([vendoring policy](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/README.md)), summarized tersely so the harness pages stay focused on repository-owned vocabulary. Detailed Context, Fiber, Registry, and Service APIs are generated in [context.md](./context.md), [fiber.md](./fiber.md), [registry.md](./registry.md), and [service.md](./service.md); the event-dispatch methods in [events.md](./events.md).
11
+
12
+ This file is GENERATED from source (`scripts/gen-cordis-catalog.ts`) and verified fresh by `pnpm run verify-cordis-catalog` (part of `doc-sync`) — do not edit it by hand. Signature blocks use a `ts cordis-catalog` fence and include the original source JSDoc immediately before each event or service method. doc-typecheck skips these bare declaration fragments; type names in a signature link to the page that documents them.
13
+
14
+ ## Inherited `ctx` members (cordis core + loader/hmr/timer)
15
+
16
+ - `ctx.on / ctx.once` — Register an event listener (disposable). ([`vendor/cordis/src/events.ts:34`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts))
17
+ - `ctx.emit / ctx.parallel / ctx.serial / ctx.bail / ctx.waterfall` — Dispatch an event (sync / awaited / first-bail / short-circuit chain). ([`vendor/cordis/src/events.ts:34`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts))
18
+ - `ctx.plugin / ctx.inject` — Load a plugin / declare required services. ([`vendor/cordis/src/registry.ts:164`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/registry.ts))
19
+ - `ctx.effect` — Register a disposable side effect tied to the fiber. ([`vendor/cordis/src/fiber.ts:9`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts))
20
+ - `ctx.get / ctx.set / ctx.provide / ctx.accessor / ctx.mixin` — Low-level service-store access and binding. ([`vendor/cordis/src/reflect.ts:7`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/reflect.ts))
21
+ - `ctx.extend / ctx.isolate / ctx.intercept` — Derive a child context (scoped services / isolation / interception). ([`vendor/cordis/src/context.ts:42`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/context.ts))
22
+ - `ctx.root / ctx.scope / ctx.fiber / ctx.registry / ctx.reflect / ctx.events / ctx.logger` — Ambient handles onto the running context graph. ([`vendor/cordis/src/context.ts:16`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/context.ts))
23
+ - `ctx.timer (+ interval / timeout / throttle / debounce)` — Disposable timer helpers. The `timer` key is provided at runtime; the four supported helpers are mixed onto ctx directly (declared via Pick). ([`vendor/timer/src/index.ts:4`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/timer/src/index.ts))
24
+ - `ctx.loader` — The config Loader that booted the app (present under the loader). ([`vendor/loader/src/index.ts:30`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/loader/src/index.ts))
25
+ - `ctx.hmr` — The hot-module-reload watcher (present under the hmr plugin). ([`vendor/hmr/src/index.ts:15`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/hmr/src/index.ts))
26
+
27
+ ## Inherited events (cordis core + loader/hmr/timer)
28
+
29
+ - `internal/plugin` — A plugin fiber was created. ([`vendor/cordis/src/events.ts:328`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts))
30
+ - `internal/status` — A fiber changed lifecycle state. ([`vendor/cordis/src/events.ts:330`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts))
31
+ - `internal/service` — Interception hook for a service binding (no core producer). ([`vendor/cordis/src/events.ts:332`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts))
32
+ - `internal/update` — Waterfall: a fiber config update is being applied. ([`vendor/cordis/src/events.ts:334`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts))
33
+ - `internal/get` — Waterfall: a service is being read from the store. ([`vendor/cordis/src/events.ts:336`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts))
34
+ - `internal/set` — Waterfall: a service is being written to the store. ([`vendor/cordis/src/events.ts:338`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts))
35
+ - `internal/listener` — A listener was registered. ([`vendor/cordis/src/events.ts:340`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts))
36
+ - `internal/dispatch` — An event is being dispatched to listeners. ([`vendor/cordis/src/events.ts:342`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/events.ts))
37
+ - `hmr/change` — A watched source file changed on disk. ([`vendor/hmr/src/index.ts:20`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/hmr/src/index.ts))
38
+ - `hmr/reload` — Plugins are being reloaded after a change. ([`vendor/hmr/src/index.ts:21`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/hmr/src/index.ts))
39
+ - `exit` — The process is exiting on a signal. ([`vendor/loader/src/index.ts:23`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/loader/src/index.ts))
40
+ - `loader/config-update` — The loader config tree changed. ([`vendor/loader/src/index.ts:24`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/loader/src/index.ts))
41
+ - `loader/entry-init` — A config entry is being initialized. ([`vendor/loader/src/index.ts:25`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/loader/src/index.ts))
42
+ - `loader/partial-dispose` — An entry is being partially disposed on reload. ([`vendor/loader/src/index.ts:26`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/loader/src/index.ts))
43
+ - `loader/patch-context` — A context is being patched during a reload. ([`vendor/loader/src/index.ts:27`](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/loader/src/index.ts))