dsh-plugin-dev-kb 1.8.0 → 1.8.1

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 (229) hide show
  1. package/CHANGELOG.md +186 -178
  2. package/README.en.md +172 -172
  3. package/README.md +183 -183
  4. package/kb/INDEX.md +236 -234
  5. package/kb/README.md +88 -88
  6. package/kb/extra/AGENTS.md +77 -77
  7. package/kb/extra/deepseek-llm-api-wire-extensions.md +162 -162
  8. package/kb/extra/deepseek-llm-api-wire-extensions.zh.md +162 -162
  9. package/kb/extra/defensive-patterns/package-surface.md +233 -232
  10. package/kb/extra/defensive-patterns/package-surface.zh.md +233 -232
  11. package/kb/extra/defensive-patterns/remote-and-api.md +117 -117
  12. package/kb/extra/defensive-patterns/remote-and-api.zh.md +117 -117
  13. package/kb/extra/development.md +221 -221
  14. package/kb/extra/development.zh.md +228 -228
  15. package/kb/extra/event-producer-consumer.md +133 -123
  16. package/kb/extra/event-producer-consumer.zh.md +135 -125
  17. package/kb/extra/module-graph.md +1961 -1888
  18. package/kb/extra/module-graph.zh.md +1963 -1890
  19. package/kb/extra/persistence-changes/2026-11-05-timeline-priority-notice.md +60 -0
  20. package/kb/extra/persistence-changes/2026-11-05-timeline-priority-notice.zh.md +60 -0
  21. package/kb/extra/persistence-changes/README.md +92 -92
  22. package/kb/extra/persistence-changes/README.zh.md +92 -92
  23. package/kb/extra/persistence-changes/historical-formats/README.md +75 -75
  24. package/kb/extra/persistence-changes/historical-formats/README.zh.md +75 -75
  25. package/kb/extra/persistence-changes/releases/README.md +103 -103
  26. package/kb/extra/persistence-changes/releases/README.zh.md +103 -103
  27. package/kb/extra/rescope.md +55 -55
  28. package/kb/extra/rescope.zh.md +55 -55
  29. package/kb/extra/subsystems/boot.md +631 -621
  30. package/kb/extra/subsystems/boot.zh.md +631 -621
  31. package/kb/extra/subsystems/computer-use.md +179 -137
  32. package/kb/extra/subsystems/computer-use.zh.md +179 -137
  33. package/kb/extra/subsystems/extensions.md +387 -384
  34. package/kb/extra/subsystems/extensions.zh.md +387 -384
  35. package/kb/extra/subsystems/feedback.md +418 -400
  36. package/kb/extra/subsystems/feedback.zh.md +418 -400
  37. package/kb/extra/subsystems/forge.md +2169 -1226
  38. package/kb/extra/subsystems/forge.zh.md +2171 -1226
  39. package/kb/extra/subsystems/liveshare.md +167 -158
  40. package/kb/extra/subsystems/liveshare.zh.md +167 -158
  41. package/kb/extra/subsystems/mcp.md +237 -234
  42. package/kb/extra/subsystems/mcp.zh.md +237 -234
  43. package/kb/extra/subsystems/office-kit.md +122 -0
  44. package/kb/extra/subsystems/office-kit.zh.md +122 -0
  45. package/kb/extra/subsystems/working-directory.md +95 -64
  46. package/kb/extra/subsystems/working-directory.zh.md +95 -64
  47. package/kb/extra/subsystems/worktrees.md +187 -127
  48. package/kb/extra/subsystems/worktrees.zh.md +187 -127
  49. package/kb/extra/upgrade-guide/v0.2.1-alpha.1/python-ptc-sandbox/guide.md +21 -21
  50. package/kb/extra/upgrade-guide/v0.2.1-alpha.1/python-ptc-sandbox/guide.zh.md +21 -21
  51. package/kb/extra/upgrade-guide/v0.2.1-rc.4/sandbox-unsupported-policy-error/guide.md +18 -0
  52. package/kb/extra/upgrade-guide/v0.2.1-rc.4/sandbox-unsupported-policy-error/guide.zh.md +18 -0
  53. package/kb/extra/upgrade-guide/v0.2.2-alpha.2/llm-error-builtin-codes/guide.md +18 -0
  54. package/kb/extra/upgrade-guide/v0.2.2-alpha.2/llm-error-builtin-codes/guide.zh.md +18 -0
  55. package/kb/extra/upgrade-guide/v0.2.2-alpha.3/office-kit-package/guide.md +34 -0
  56. package/kb/extra/upgrade-guide/v0.2.2-alpha.3/office-kit-package/guide.zh.md +34 -0
  57. package/kb/extra/upgrade-guide/v0.2.2-alpha.3/office-operation-tools/guide.md +49 -0
  58. package/kb/extra/upgrade-guide/v0.2.2-alpha.3/office-operation-tools/guide.zh.md +49 -0
  59. package/kb/extra/upgrade-guide/v0.2.2-alpha.3/office-skill-resources/guide.md +36 -0
  60. package/kb/extra/upgrade-guide/v0.2.2-alpha.3/office-skill-resources/guide.zh.md +36 -0
  61. package/kb/extra/upgrade-guide/v0.2.2-rc.1/account-notification-fields/guide.md +26 -0
  62. package/kb/extra/upgrade-guide/v0.2.2-rc.1/account-notification-fields/guide.zh.md +26 -0
  63. package/kb/extra/upgrade-guide/v0.2.2-rc.1/account-remote-provider/guide.md +22 -0
  64. package/kb/extra/upgrade-guide/v0.2.2-rc.1/account-remote-provider/guide.zh.md +22 -0
  65. package/kb/extra/upgrade-guide/v0.2.2-rc.1/archive-worktrees/guide.md +21 -0
  66. package/kb/extra/upgrade-guide/v0.2.2-rc.1/archive-worktrees/guide.zh.md +21 -0
  67. package/kb/extra/upgrade-guide/v0.2.2-rc.1/attachment-error-codes/guide.md +23 -0
  68. package/kb/extra/upgrade-guide/v0.2.2-rc.1/attachment-error-codes/guide.zh.md +23 -0
  69. package/kb/extra/upgrade-guide/v0.2.2-rc.1/cua-ax-read-limits/guide.md +20 -0
  70. package/kb/extra/upgrade-guide/v0.2.2-rc.1/cua-ax-read-limits/guide.zh.md +20 -0
  71. package/kb/extra/upgrade-guide/v0.2.2-rc.1/cua-hover-ax-only/guide.md +18 -0
  72. package/kb/extra/upgrade-guide/v0.2.2-rc.1/cua-hover-ax-only/guide.zh.md +18 -0
  73. package/kb/extra/upgrade-guide/v0.2.2-rc.1/cua-native-platform/guide.md +23 -0
  74. package/kb/extra/upgrade-guide/v0.2.2-rc.1/cua-native-platform/guide.zh.md +23 -0
  75. package/kb/extra/upgrade-guide/v0.2.2-rc.1/dsh-doc-skill/guide.md +35 -0
  76. package/kb/extra/upgrade-guide/v0.2.2-rc.1/dsh-doc-skill/guide.zh.md +35 -0
  77. package/kb/extra/upgrade-guide/v0.2.2-rc.1/forge-change-request-overview/guide.md +26 -0
  78. package/kb/extra/upgrade-guide/v0.2.2-rc.1/forge-change-request-overview/guide.zh.md +26 -0
  79. package/kb/extra/upgrade-guide/v0.2.2-rc.1/forge-pinned-diff/guide.md +26 -0
  80. package/kb/extra/upgrade-guide/v0.2.2-rc.1/forge-pinned-diff/guide.zh.md +26 -0
  81. package/kb/extra/upgrade-guide/v0.2.2-rc.1/forge-review-reads/guide.md +19 -0
  82. package/kb/extra/upgrade-guide/v0.2.2-rc.1/forge-review-reads/guide.zh.md +19 -0
  83. package/kb/extra/upgrade-guide/v0.2.2-rc.1/package-export-cleanup/guide.md +26 -0
  84. package/kb/extra/upgrade-guide/v0.2.2-rc.1/package-export-cleanup/guide.zh.md +26 -0
  85. package/kb/extra/upgrade-guide/v0.2.2-rc.1/plugin-update-method/guide.md +22 -0
  86. package/kb/extra/upgrade-guide/v0.2.2-rc.1/plugin-update-method/guide.zh.md +22 -0
  87. package/kb/extra/upgrade-guide/v0.2.2-rc.1/ptc-bootstrap-protocol/guide.md +25 -0
  88. package/kb/extra/upgrade-guide/v0.2.2-rc.1/ptc-bootstrap-protocol/guide.zh.md +25 -0
  89. package/kb/extra/upgrade-guide/v0.2.2-rc.1/ptc-inspect-output/guide.md +48 -0
  90. package/kb/extra/upgrade-guide/v0.2.2-rc.1/ptc-inspect-output/guide.zh.md +48 -0
  91. package/kb/extra/upgrade-guide/v0.2.2-rc.1/ptc-scoped-repl-default/guide.md +45 -0
  92. package/kb/extra/upgrade-guide/v0.2.2-rc.1/ptc-scoped-repl-default/guide.zh.md +45 -0
  93. package/kb/extra/upgrade-guide/v0.2.2-rc.1/runtime-context-reminders/guide.md +19 -0
  94. package/kb/extra/upgrade-guide/v0.2.2-rc.1/runtime-context-reminders/guide.zh.md +19 -0
  95. package/kb/extra/upgrade-guide/v0.2.2-rc.1/session-append-overloads/guide.md +17 -0
  96. package/kb/extra/upgrade-guide/v0.2.2-rc.1/session-append-overloads/guide.zh.md +17 -0
  97. package/kb/extra/upgrade-guide/v0.2.2-rc.1/subagent-interrupt-default/guide.md +27 -0
  98. package/kb/extra/upgrade-guide/v0.2.2-rc.1/subagent-interrupt-default/guide.zh.md +27 -0
  99. package/kb/extra/upgrade-guide/v0.2.2-rc.1/terminal-backend-cleanup-error/guide.md +20 -0
  100. package/kb/extra/upgrade-guide/v0.2.2-rc.1/terminal-backend-cleanup-error/guide.zh.md +20 -0
  101. package/kb/extra/upgrade-guide/v0.2.2-rc.1/terminal-bundle-sidebar-backend/guide.md +19 -0
  102. package/kb/extra/upgrade-guide/v0.2.2-rc.1/terminal-bundle-sidebar-backend/guide.zh.md +19 -0
  103. package/kb/extra/upgrade-guide/v0.2.2-rc.1/web-fetch-transport-error-codes/guide.md +18 -0
  104. package/kb/extra/upgrade-guide/v0.2.2-rc.1/web-fetch-transport-error-codes/guide.zh.md +18 -0
  105. package/kb/extra/upgrade-guide/v0.2.2-rc.1/web-search-billing/guide.md +41 -0
  106. package/kb/extra/upgrade-guide/v0.2.2-rc.1/web-search-billing/guide.zh.md +41 -0
  107. package/kb/extra/upgrade-guide/v0.2.2-rc.1/window-drag-regions/guide.md +21 -0
  108. package/kb/extra/upgrade-guide/v0.2.2-rc.1/window-drag-regions/guide.zh.md +21 -0
  109. package/kb/extra/upgrade-guide/v0.2.2-rc.2/client-module-metadata/guide.md +29 -0
  110. package/kb/extra/upgrade-guide/v0.2.2-rc.2/client-module-metadata/guide.zh.md +29 -0
  111. package/kb/extra/upgrade-guide/v0.2.2-rc.2/connection-page-peer/guide.md +25 -0
  112. package/kb/extra/upgrade-guide/v0.2.2-rc.2/connection-page-peer/guide.zh.md +25 -0
  113. package/kb/extra/upgrade-guide/v0.2.2-rc.2/cordis-root-and-intercept-metadata/guide.md +31 -0
  114. package/kb/extra/upgrade-guide/v0.2.2-rc.2/cordis-root-and-intercept-metadata/guide.zh.md +31 -0
  115. package/kb/extra/upgrade-guide/v0.2.2-rc.2/cua-agents-without-preset/guide.md +24 -0
  116. package/kb/extra/upgrade-guide/v0.2.2-rc.2/cua-agents-without-preset/guide.zh.md +24 -0
  117. package/kb/extra/upgrade-guide/v0.2.2-rc.2/cua-macos-provider/guide.md +24 -0
  118. package/kb/extra/upgrade-guide/v0.2.2-rc.2/cua-macos-provider/guide.zh.md +24 -0
  119. package/kb/extra/upgrade-guide/v0.2.2-rc.2/cua-partial-observations/guide.md +19 -0
  120. package/kb/extra/upgrade-guide/v0.2.2-rc.2/cua-partial-observations/guide.zh.md +19 -0
  121. package/kb/extra/upgrade-guide/v0.2.2-rc.2/deepseek-files-timeout/guide.md +15 -0
  122. package/kb/extra/upgrade-guide/v0.2.2-rc.2/deepseek-files-timeout/guide.zh.md +15 -0
  123. package/kb/extra/upgrade-guide/v0.2.2-rc.2/experimental-tool-error-codes/guide.md +28 -0
  124. package/kb/extra/upgrade-guide/v0.2.2-rc.2/experimental-tool-error-codes/guide.zh.md +28 -0
  125. package/kb/extra/upgrade-guide/v0.2.2-rc.2/package-export-cleanup/guide.md +36 -0
  126. package/kb/extra/upgrade-guide/v0.2.2-rc.2/package-export-cleanup/guide.zh.md +36 -0
  127. package/kb/extra/upgrade-guide/v0.2.2-rc.2/python-ptc-removal/guide.md +22 -0
  128. package/kb/extra/upgrade-guide/v0.2.2-rc.2/python-ptc-removal/guide.zh.md +22 -0
  129. package/kb/extra/upgrade-guide/v0.2.2-rc.2/session-status-package/guide.md +31 -0
  130. package/kb/extra/upgrade-guide/v0.2.2-rc.2/session-status-package/guide.zh.md +31 -0
  131. package/kb/extra/upgrade-guide/v0.2.2-rc.2/shared-search-filter/guide.md +18 -0
  132. package/kb/extra/upgrade-guide/v0.2.2-rc.2/shared-search-filter/guide.zh.md +18 -0
  133. package/kb/extra/upgrade-guide/v0.2.2-rc.2/shell-fs-tool-error-codes/guide.md +30 -0
  134. package/kb/extra/upgrade-guide/v0.2.2-rc.2/shell-fs-tool-error-codes/guide.zh.md +30 -0
  135. package/kb/extra/web-styling.md +57 -57
  136. package/kb/extra/web-styling.zh.md +57 -57
  137. package/kb/meta/search-index.json +4508 -3980
  138. package/kb/meta/source.json +18 -18
  139. package/kb/site/develop/practice/llm-adapter.md +192 -192
  140. package/kb/site/en/develop/practice/llm-adapter.md +192 -192
  141. package/kb/site/en/guide/desktop-uninstall-cleanup.md +63 -0
  142. package/kb/site/en/guide/plugin-market.md +153 -151
  143. package/kb/site/en/guide/providers.md +234 -234
  144. package/kb/site/en/guide/quickstart.md +35 -34
  145. package/kb/site/en/reference/capability-seams.md +789 -767
  146. package/kb/site/en/reference/config-catalog.md +5432 -5128
  147. package/kb/site/en/reference/cookbook/adding-a-package.md +175 -175
  148. package/kb/site/en/reference/cookbook/adding-a-tool.md +105 -104
  149. package/kb/site/en/reference/cookbook/extension-cookbook.md +178 -135
  150. package/kb/site/en/reference/cordis-api/context.md +373 -369
  151. package/kb/site/en/reference/cordis-api/fiber.md +457 -433
  152. package/kb/site/en/reference/cordis-api/inherited.md +44 -44
  153. package/kb/site/en/reference/cordis-api/service.md +118 -107
  154. package/kb/site/en/reference/experimental-persistence-catalog.md +36 -23
  155. package/kb/site/en/reference/index.md +174 -174
  156. package/kb/site/en/reference/persistence-catalog.md +9453 -9432
  157. package/kb/site/en/reference/subsystems/compaction.md +288 -288
  158. package/kb/site/en/reference/subsystems/core.md +1172 -1171
  159. package/kb/site/en/reference/subsystems/credentials.md +526 -497
  160. package/kb/site/en/reference/subsystems/filesystem.md +708 -708
  161. package/kb/site/en/reference/subsystems/index.md +82 -82
  162. package/kb/site/en/reference/subsystems/llm-streaming.md +1290 -1288
  163. package/kb/site/en/reference/subsystems/lsp.md +230 -206
  164. package/kb/site/en/reference/subsystems/persistence.md +451 -432
  165. package/kb/site/en/reference/subsystems/plan.md +91 -91
  166. package/kb/site/en/reference/subsystems/ptc-runtime.md +295 -261
  167. package/kb/site/en/reference/subsystems/sandbox.md +250 -232
  168. package/kb/site/en/reference/subsystems/session-query.md +525 -515
  169. package/kb/site/en/reference/subsystems/session-reference.md +231 -229
  170. package/kb/site/en/reference/subsystems/session.md +1478 -1431
  171. package/kb/site/en/reference/subsystems/sidebar-right.md +165 -165
  172. package/kb/site/en/reference/subsystems/skills.md +356 -356
  173. package/kb/site/en/reference/subsystems/slots.md +235 -231
  174. package/kb/site/en/reference/subsystems/terminal.md +188 -188
  175. package/kb/site/en/reference/subsystems/tools.md +902 -891
  176. package/kb/site/en/reference/subsystems/user-questions.md +330 -327
  177. package/kb/site/en/reference/subsystems/web-client.md +161 -104
  178. package/kb/site/en/reference/subsystems/web-server.md +434 -351
  179. package/kb/site/en/reference/subsystems/web.md +268 -268
  180. package/kb/site/en/reference/subsystems/workflow.md +287 -282
  181. package/kb/site/en/reference/subsystems/workspace.md +743 -651
  182. package/kb/site/en/reference/tool-catalog.md +2867 -2704
  183. package/kb/site/guide/desktop-uninstall-cleanup.md +63 -0
  184. package/kb/site/guide/plugin-market.md +153 -151
  185. package/kb/site/guide/providers.md +234 -234
  186. package/kb/site/guide/quickstart.md +35 -34
  187. package/kb/site/reference/capability-seams.md +789 -767
  188. package/kb/site/reference/config-catalog.md +5432 -5128
  189. package/kb/site/reference/cookbook/adding-a-package.md +175 -175
  190. package/kb/site/reference/cookbook/adding-a-tool.md +107 -106
  191. package/kb/site/reference/cookbook/extension-cookbook.md +182 -139
  192. package/kb/site/reference/cordis-api/context.md +373 -369
  193. package/kb/site/reference/cordis-api/fiber.md +459 -435
  194. package/kb/site/reference/cordis-api/inherited.md +44 -44
  195. package/kb/site/reference/cordis-api/service.md +118 -107
  196. package/kb/site/reference/experimental-persistence-catalog.md +36 -23
  197. package/kb/site/reference/index.md +178 -178
  198. package/kb/site/reference/persistence-catalog.md +9453 -9432
  199. package/kb/site/reference/subsystems/compaction.md +288 -288
  200. package/kb/site/reference/subsystems/core.md +1184 -1183
  201. package/kb/site/reference/subsystems/credentials.md +526 -497
  202. package/kb/site/reference/subsystems/filesystem.md +708 -708
  203. package/kb/site/reference/subsystems/index.md +82 -82
  204. package/kb/site/reference/subsystems/llm-streaming.md +1296 -1294
  205. package/kb/site/reference/subsystems/lsp.md +230 -206
  206. package/kb/site/reference/subsystems/persistence.md +451 -432
  207. package/kb/site/reference/subsystems/plan.md +91 -91
  208. package/kb/site/reference/subsystems/ptc-runtime.md +295 -261
  209. package/kb/site/reference/subsystems/sandbox.md +250 -232
  210. package/kb/site/reference/subsystems/session-query.md +525 -515
  211. package/kb/site/reference/subsystems/session-reference.md +231 -229
  212. package/kb/site/reference/subsystems/session.md +1482 -1435
  213. package/kb/site/reference/subsystems/sidebar-right.md +165 -165
  214. package/kb/site/reference/subsystems/skills.md +356 -356
  215. package/kb/site/reference/subsystems/slots.md +239 -235
  216. package/kb/site/reference/subsystems/terminal.md +188 -188
  217. package/kb/site/reference/subsystems/tools.md +902 -891
  218. package/kb/site/reference/subsystems/user-questions.md +330 -327
  219. package/kb/site/reference/subsystems/web-client.md +161 -104
  220. package/kb/site/reference/subsystems/web-server.md +434 -351
  221. package/kb/site/reference/subsystems/web.md +268 -268
  222. package/kb/site/reference/subsystems/workflow.md +287 -282
  223. package/kb/site/reference/subsystems/workspace.md +743 -651
  224. package/kb/site/reference/tool-catalog.md +2872 -2709
  225. package/lib/index.js +359 -359
  226. package/package.json +68 -68
  227. package/skills/dsh-plugin-dev-kb.md +71 -70
  228. package/kb/extra/subsystems/office-to-pdf.md +0 -87
  229. package/kb/extra/subsystems/office-to-pdf.zh.md +0 -87
@@ -1,433 +1,457 @@
1
- ---
2
- editSource: "docs/cordis-api/fiber.md"
3
- rawMarkdownPath: "en/reference/cordis-api/fiber.md"
4
- ---
5
-
6
- <!-- Generated by scripts/gen-cordis-catalog.ts — do not edit by hand.
7
- Run `pnpm run gen-cordis-catalog` to regenerate. -->
8
-
9
- # Fiber
10
-
11
- 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.
12
-
13
- ### ctx.effect(execute, label?)
14
-
15
- ```ts cordis-catalog
16
- /**
17
- * Register a cleanup-aware effect on this fiber.
18
- *
19
- * `execute` runs immediately; the disposers it produces are collected and
20
- * run (in reverse order) either when the returned disposer is called or
21
- * when the fiber unloads, whichever comes first. Calling the disposer twice
22
- * is a no-op. Throws `CordisError('INACTIVE_EFFECT')` if the fiber is
23
- * already disposed, and `TypeError` if `execute` returns an invalid shape.
24
- *
25
- * @param execute — the effect body; see {@link Effect} for accepted shapes.
26
- * @param label — effect label shown in `getEffects()` diagnostics.
27
- * @returns a disposer that tears the effect down and settles once done.
28
- */
29
- effect(execute: () => SyncEffect, label?: string): Disposable<Promise<void>>
30
- effect(execute: () => Effect, label?: string): AsyncDisposable<Promise<void>>
31
- ```
32
-
33
- Register a cleanup-aware effect on this fiber.
34
-
35
- `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.
36
-
37
- - `execute` — the effect body; see `Effect` for accepted shapes.
38
- - `label` — effect label shown in `getEffects()` diagnostics.
39
-
40
- **Returns** a disposer that tears the effect down and settles once done.
41
-
42
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L421)
43
-
44
- ### ctx.fiber
45
-
46
- ```ts cordis-catalog
47
- /** The fiber (plugin runtime instance) that owns this context. */
48
- fiber: Fiber
49
- ```
50
-
51
- The fiber (plugin runtime instance) that owns this context.
52
-
53
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L12)
54
-
55
- ## The Fiber class
56
-
57
- Runtime instance of one plugin application.
58
-
59
- A fiber tracks dependency state, raw and effective config, lifecycle effects, and cleanup for the plugin context returned by `ctx.plugin()`.
60
-
61
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L184)
62
-
63
- ### fiber.uid
64
-
65
- ```ts cordis-catalog
66
- /** Unique id within the registry; 0 for the root fiber, `null` once disposed. */
67
- public uid: number | null
68
- ```
69
-
70
- Unique id within the registry; 0 for the root fiber, `null` once disposed.
71
-
72
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L186)
73
-
74
- ### fiber.ctx
75
-
76
- ```ts cordis-catalog
77
- /** The context this fiber's plugin runs in (extends the parent context). */
78
- public readonly ctx: Context
79
- ```
80
-
81
- The context this fiber's plugin runs in (extends the parent context).
82
-
83
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L188)
84
-
85
- ### fiber.config
86
-
87
- ```ts cordis-catalog
88
- /** Raw plugin input retained for the next activation. */
89
- public config: any
90
- ```
91
-
92
- Raw plugin input retained for the next activation.
93
-
94
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L190)
95
-
96
- ### fiber.state
97
-
98
- ```ts cordis-catalog
99
- /** Current lifecycle state; transitions emit `internal/status`. */
100
- public state
101
- ```
102
-
103
- Current lifecycle state; transitions emit `internal/status`.
104
-
105
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L192)
106
-
107
- ### fiber.dispose
108
-
109
- ```ts cordis-catalog
110
- /** Dispose this fiber: unload the plugin, then settle once cleanup finished. */
111
- public readonly dispose: () => Promise<void>
112
- ```
113
-
114
- Dispose this fiber: unload the plugin, then settle once cleanup finished.
115
-
116
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L194)
117
-
118
- ### fiber.committed
119
-
120
- ```ts cordis-catalog
121
- /** Required implementations retained through dependent teardown. */
122
- public committed: Readonly<Dict<Impl>> | undefined
123
- ```
124
-
125
- Required implementations retained through dependent teardown.
126
-
127
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L196)
128
-
129
- ### fiber.provisions
130
-
131
- ```ts cordis-catalog
132
- /** Service implementations owned by this fiber, including isolated provisions. */
133
- public readonly provisions: Set<Impl>
134
- ```
135
-
136
- Service implementations owned by this fiber, including isolated provisions.
137
-
138
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L198)
139
-
140
- ### fiber.inertia
141
-
142
- ```ts cordis-catalog
143
- /** The in-flight load/unload transition, if one is currently running. */
144
- public inertia: Promise<void> | undefined
145
- ```
146
-
147
- The in-flight load/unload transition, if one is currently running.
148
-
149
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L200)
150
-
151
- ### fiber.name
152
-
153
- ```ts cordis-catalog
154
- /** The plugin's display name, inherited from the nearest named ancestor, else `'root'`. */
155
- get name()
156
- ```
157
-
158
- The plugin's display name, inherited from the nearest named ancestor, else `'root'`.
159
-
160
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L342)
161
-
162
- ### fiber.assertActive()
163
-
164
- ```ts cordis-catalog
165
- /**
166
- * Throw if the fiber has already been disposed.
167
- *
168
- * @returns nothing when the fiber is still active.
169
- * @throws {CordisError} `INACTIVE_EFFECT` when the fiber's uid has been cleared.
170
- */
171
- assertActive()
172
- ```
173
-
174
- Throw if the fiber has already been disposed.
175
-
176
- **Returns** nothing when the fiber is still active.
177
-
178
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L357)
179
-
180
- ### fiber.effect(execute, label?)
181
-
182
- ```ts cordis-catalog
183
- /**
184
- * Register a cleanup-aware effect on this fiber.
185
- *
186
- * `execute` runs immediately; the disposers it produces are collected and
187
- * run (in reverse order) either when the returned disposer is called or
188
- * when the fiber unloads, whichever comes first. Calling the disposer twice
189
- * is a no-op. Throws `CordisError('INACTIVE_EFFECT')` if the fiber is
190
- * already disposed, and `TypeError` if `execute` returns an invalid shape.
191
- *
192
- * @param execute — the effect body; see {@link Effect} for accepted shapes.
193
- * @param label — effect label shown in `getEffects()` diagnostics.
194
- * @returns a disposer that tears the effect down and settles once done.
195
- */
196
- effect(execute: () => SyncEffect, label?: string): Disposable<Promise<void>>
197
- effect(execute: () => Effect, label?: string): AsyncDisposable<Promise<void>>
198
- ```
199
-
200
- Register a cleanup-aware effect on this fiber.
201
-
202
- `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.
203
-
204
- - `execute` — the effect body; see `Effect` for accepted shapes.
205
- - `label` — effect label shown in `getEffects()` diagnostics.
206
-
207
- **Returns** a disposer that tears the effect down and settles once done.
208
-
209
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L421)
210
-
211
- ### fiber.getEffects()
212
-
213
- ```ts cordis-catalog
214
- /**
215
- * Return metadata for currently registered effects.
216
- *
217
- * @returns one {@link EffectMeta} tree per labeled live effect.
218
- */
219
- getEffects()
220
- ```
221
-
222
- Return metadata for currently registered effects.
223
-
224
- **Returns** one `EffectMeta` tree per labeled live effect.
225
-
226
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L574)
227
-
228
- ### fiber.rawConfig
229
-
230
- ```ts cordis-catalog
231
- /** Raw input retained for the next activation, without evaluating expressions or validating it. */
232
- get rawConfig(): unknown
233
- ```
234
-
235
- Raw input retained for the next activation, without evaluating expressions or validating it.
236
-
237
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L649)
238
-
239
- ### fiber.effectiveConfig
240
-
241
- ```ts cordis-catalog
242
- /**
243
- * The object passed to plugin activation or the latest successful update that retained the instance.
244
- * Candidate resolution does not publish it; volatile updates retain its references.
245
- * Undefined before activation and readable after unload; callers requiring a live instance check `state`.
246
- */
247
- get effectiveConfig(): unknown
248
- ```
249
-
250
- The object passed to plugin activation or the latest successful update that retained the instance. Candidate resolution does not publish it; volatile updates retain its references. Undefined before activation and readable after unload; callers requiring a live instance check `state`.
251
-
252
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L664)
253
-
254
- ### fiber.resolveConfig(config)
255
-
256
- ```ts cordis-catalog
257
- /**
258
- * Evaluate and validate a candidate using this fiber's `internal/config` hooks and runtime schema.
259
- * Does not publish the result, replace raw input, or commit running volatile references.
260
- * Required injections must be available when a hook uses them.
261
- * @param config Raw candidate input.
262
- * @returns The candidate's resolved config, retaining the schema's result identity.
263
- * @throws {ValidationError} when the runtime schema rejects the candidate; hook errors propagate.
264
- */
265
- resolveConfig(config: unknown): unknown
266
- ```
267
-
268
- Evaluate and validate a candidate using this fiber's `internal/config` hooks and runtime schema. Does not publish the result, replace raw input, or commit running volatile references. Required injections must be available when a hook uses them.
269
-
270
- - `config` — Raw candidate input.
271
-
272
- **Returns** The candidate's resolved config, retaining the schema's result identity.
273
-
274
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L676)
275
-
276
- ### fiber.await()
277
-
278
- ```ts cordis-catalog
279
- /**
280
- * Wait for current lifecycle work and rethrow startup errors.
281
- *
282
- * @returns this fiber, once it has settled into a stable state.
283
- * @throws the config-validation or plugin-startup error, if any.
284
- */
285
- async await()
286
- ```
287
-
288
- Wait for current lifecycle work and rethrow startup errors.
289
-
290
- **Returns** this fiber, once it has settled into a stable state.
291
-
292
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L754)
293
-
294
- ### fiber.restart()
295
-
296
- ```ts cordis-catalog
297
- /**
298
- * Dispose and immediately reload this plugin with its current config.
299
- *
300
- * @returns a promise resolving once the reload settled.
301
- * @throws {CordisError} `INACTIVE_EFFECT` when the fiber is already disposed.
302
- */
303
- async restart()
304
- ```
305
-
306
- Dispose and immediately reload this plugin with its current config.
307
-
308
- **Returns** a promise resolving once the reload settled.
309
-
310
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L768)
311
-
312
- ### fiber.update(config, noSave?)
313
-
314
- ```ts cordis-catalog
315
- /**
316
- * Resolve a candidate, retain its raw config and apply it through the update waterfall.
317
- * @param config Raw config; pending fibers defer resolution until activation.
318
- * @param noSave Suppress the persistence notification when true.
319
- * @returns The awaited update/restart result, or undefined when a synchronous listener handles it.
320
- * @throws {ValidationError} when an active fiber's candidate is invalid.
321
- */
322
- update(config: any, noSave = false): Awaitable<void>
323
- ```
324
-
325
- Resolve a candidate, retain its raw config and apply it through the update waterfall.
326
-
327
- - `config` — Raw config; pending fibers defer resolution until activation.
328
- - `noSave` — Suppress the persistence notification when true.
329
-
330
- **Returns** The awaited update/restart result, or undefined when a synchronous listener handles it.
331
-
332
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L783)
333
-
334
- ## Effect
335
-
336
- Effect body result accepted by `ctx.effect()` and plugin startup.
337
-
338
- 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.
339
-
340
- ```ts cordis-catalog
341
- /**
342
- * Effect body result accepted by `ctx.effect()` and plugin startup.
343
- *
344
- * Either a single disposer, a promise of one, or a (possibly async) iterable
345
- * yielding several — generator effects register each yielded disposer as it
346
- * is produced.
347
- */
348
- type Effect<T = any> =
349
- | SyncEffect<T>
350
- | AsyncEffect<T>
351
- ```
352
-
353
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L83)
354
-
355
- ## Disposable
356
-
357
- Function returned by an effect to release resources during disposal.
358
-
359
- Disposers run in reverse registration order when the owning fiber unloads; they may be async, in which case unloading awaits them.
360
-
361
- ```ts cordis-catalog
362
- /**
363
- * Function returned by an effect to release resources during disposal.
364
- *
365
- * Disposers run in reverse registration order when the owning fiber unloads;
366
- * they may be async, in which case unloading awaits them.
367
- */
368
- type Disposable<T = any> = () => T
369
- ```
370
-
371
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L74)
372
-
373
- ## EffectMeta
374
-
375
- Tree node used to expose nested effect labels for diagnostics.
376
-
377
- ```ts cordis-catalog
378
- /** Tree node used to expose nested effect labels for diagnostics. */
379
- interface EffectMeta {
380
- /** Human-readable effect label, e.g. `ctx.on("event")` or `ctx.provide("name")`. */
381
- label: string
382
- /** Metadata of nested effects registered while this effect ran. */
383
- children: EffectMeta[]
384
- }
385
- ```
386
-
387
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L96)
388
-
389
- ## CordisError
390
-
391
- Framework error with a stable machine-readable code.
392
-
393
- ```ts cordis-catalog
394
- /** Framework error with a stable machine-readable code. */
395
- class CordisError extends Error {
396
- /**
397
- * @param code — the stable error code; also the default message.
398
- * @param message — optional human-readable override.
399
- */
400
- constructor(public code: CordisError.Code, message?: string)
401
- }
402
-
403
- /** Cordis error code definitions. */
404
- namespace CordisError {
405
- export type Code = keyof typeof Code
406
-
407
- export const Code = {
408
- INACTIVE_EFFECT: 'cannot create effect on inactive context',
409
- } as const
410
- }
411
- ```
412
-
413
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L157)
414
-
415
- ## ValidationError
416
-
417
- Error raised when plugin configuration fails standard-schema validation.
418
-
419
- ```ts cordis-catalog
420
- /** Error raised when plugin configuration fails standard-schema validation. */
421
- class ValidationError extends TypeError {
422
- name = 'ValidationError'
423
-
424
- /**
425
- * Build the aggregated message from schema issues.
426
- *
427
- * @param issues — the standard-schema issues, one message line each.
428
- */
429
- constructor(issues: readonly StandardSchemaV1.Issue[])
430
- }
431
- ```
432
-
433
- [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L19)
1
+ ---
2
+ editSource: "docs/cordis-api/fiber.md"
3
+ rawMarkdownPath: "en/reference/cordis-api/fiber.md"
4
+ ---
5
+
6
+ <!-- Generated by scripts/gen-cordis-catalog.ts — do not edit by hand.
7
+ Run `pnpm run gen-cordis-catalog` to regenerate. -->
8
+
9
+ # Fiber
10
+
11
+ 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.
12
+
13
+ ### ctx.effect(execute, label?)
14
+
15
+ ```ts cordis-catalog
16
+ /**
17
+ * Register a cleanup-aware effect on this fiber.
18
+ *
19
+ * `execute` runs immediately; the disposers it produces are collected and
20
+ * run (in reverse order) either when the returned disposer is called or
21
+ * when the fiber unloads, whichever comes first. Calling the disposer twice
22
+ * is a no-op. Throws `CordisError('INACTIVE_EFFECT')` if the fiber is
23
+ * already disposed, and `TypeError` if `execute` returns an invalid shape.
24
+ *
25
+ * @param execute — the effect body; see {@link Effect} for accepted shapes.
26
+ * @param label — effect label shown in `getEffects()` diagnostics.
27
+ * @returns a disposer that tears the effect down and settles once done.
28
+ */
29
+ effect(execute: () => SyncEffect, label?: string): Disposable<Promise<void>>
30
+ effect(execute: () => Effect, label?: string): AsyncDisposable<Promise<void>>
31
+ ```
32
+
33
+ Register a cleanup-aware effect on this fiber.
34
+
35
+ `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.
36
+
37
+ - `execute` — the effect body; see `Effect` for accepted shapes.
38
+ - `label` — effect label shown in `getEffects()` diagnostics.
39
+
40
+ **Returns** a disposer that tears the effect down and settles once done.
41
+
42
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L443)
43
+
44
+ ### ctx.fiber
45
+
46
+ ```ts cordis-catalog
47
+ /** The fiber (plugin runtime instance) that owns this context. */
48
+ fiber: Fiber
49
+ ```
50
+
51
+ The fiber (plugin runtime instance) that owns this context.
52
+
53
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L12)
54
+
55
+ ## The Fiber class
56
+
57
+ Runtime instance of one plugin application.
58
+
59
+ A fiber tracks dependency state, raw and effective config, lifecycle effects, and cleanup for the plugin context returned by `ctx.plugin()`.
60
+
61
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L214)
62
+
63
+ ### fiber.uid
64
+
65
+ ```ts cordis-catalog
66
+ /** Unique id within the registry; 0 for the root fiber, `null` once disposed. */
67
+ public uid: number | null
68
+ ```
69
+
70
+ Unique id within the registry; 0 for the root fiber, `null` once disposed.
71
+
72
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L216)
73
+
74
+ ### fiber.ctx
75
+
76
+ ```ts cordis-catalog
77
+ /** The context this fiber's plugin runs in (extends the parent context). */
78
+ public readonly ctx: Context
79
+ ```
80
+
81
+ The context this fiber's plugin runs in (extends the parent context).
82
+
83
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L218)
84
+
85
+ ### fiber.config
86
+
87
+ ```ts cordis-catalog
88
+ /** Raw plugin input retained for the next activation. */
89
+ public config: any
90
+ ```
91
+
92
+ Raw plugin input retained for the next activation.
93
+
94
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L220)
95
+
96
+ ### fiber.state
97
+
98
+ ```ts cordis-catalog
99
+ /** Current lifecycle state; transitions emit `internal/status`. */
100
+ public state
101
+ ```
102
+
103
+ Current lifecycle state; transitions emit `internal/status`.
104
+
105
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L222)
106
+
107
+ ### fiber.dispose
108
+
109
+ ```ts cordis-catalog
110
+ /** Dispose this fiber: unload the plugin, then settle once cleanup finished. */
111
+ public readonly dispose: () => Promise<void>
112
+ ```
113
+
114
+ Dispose this fiber: unload the plugin, then settle once cleanup finished.
115
+
116
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L224)
117
+
118
+ ### fiber.committed
119
+
120
+ ```ts cordis-catalog
121
+ /** Required implementations retained through dependent teardown. */
122
+ public committed: Readonly<Dict<Impl>> | undefined
123
+ ```
124
+
125
+ Required implementations retained through dependent teardown.
126
+
127
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L226)
128
+
129
+ ### fiber.provisions
130
+
131
+ ```ts cordis-catalog
132
+ /** Service implementations owned by this fiber, including isolated provisions. */
133
+ public readonly provisions: Set<Impl>
134
+ ```
135
+
136
+ Service implementations owned by this fiber, including isolated provisions.
137
+
138
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L228)
139
+
140
+ ### fiber.inertia
141
+
142
+ ```ts cordis-catalog
143
+ /** The in-flight load/unload transition, if one is currently running. */
144
+ public inertia: Promise<void> | undefined
145
+ ```
146
+
147
+ The in-flight load/unload transition, if one is currently running.
148
+
149
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L230)
150
+
151
+ ### fiber.name
152
+
153
+ ```ts cordis-catalog
154
+ /** The plugin's display name, inherited from the nearest named ancestor, else `'root'`. */
155
+ get name()
156
+ ```
157
+
158
+ The plugin's display name, inherited from the nearest named ancestor, else `'root'`.
159
+
160
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L364)
161
+
162
+ ### fiber.assertActive()
163
+
164
+ ```ts cordis-catalog
165
+ /**
166
+ * Throw if the fiber has already been disposed.
167
+ *
168
+ * @returns nothing when the fiber is still active.
169
+ * @throws {CordisError} `INACTIVE_EFFECT` when the fiber's uid has been cleared.
170
+ */
171
+ assertActive()
172
+ ```
173
+
174
+ Throw if the fiber has already been disposed.
175
+
176
+ **Returns** nothing when the fiber is still active.
177
+
178
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L379)
179
+
180
+ ### fiber.effect(execute, label?)
181
+
182
+ ```ts cordis-catalog
183
+ /**
184
+ * Register a cleanup-aware effect on this fiber.
185
+ *
186
+ * `execute` runs immediately; the disposers it produces are collected and
187
+ * run (in reverse order) either when the returned disposer is called or
188
+ * when the fiber unloads, whichever comes first. Calling the disposer twice
189
+ * is a no-op. Throws `CordisError('INACTIVE_EFFECT')` if the fiber is
190
+ * already disposed, and `TypeError` if `execute` returns an invalid shape.
191
+ *
192
+ * @param execute — the effect body; see {@link Effect} for accepted shapes.
193
+ * @param label — effect label shown in `getEffects()` diagnostics.
194
+ * @returns a disposer that tears the effect down and settles once done.
195
+ */
196
+ effect(execute: () => SyncEffect, label?: string): Disposable<Promise<void>>
197
+ effect(execute: () => Effect, label?: string): AsyncDisposable<Promise<void>>
198
+ ```
199
+
200
+ Register a cleanup-aware effect on this fiber.
201
+
202
+ `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.
203
+
204
+ - `execute` — the effect body; see `Effect` for accepted shapes.
205
+ - `label` — effect label shown in `getEffects()` diagnostics.
206
+
207
+ **Returns** a disposer that tears the effect down and settles once done.
208
+
209
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L443)
210
+
211
+ ### fiber.getEffects()
212
+
213
+ ```ts cordis-catalog
214
+ /**
215
+ * Return metadata for currently registered effects.
216
+ *
217
+ * @returns one {@link EffectMeta} tree per labeled live effect.
218
+ */
219
+ getEffects()
220
+ ```
221
+
222
+ Return metadata for currently registered effects.
223
+
224
+ **Returns** one `EffectMeta` tree per labeled live effect.
225
+
226
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L596)
227
+
228
+ ### fiber.rawConfig
229
+
230
+ ```ts cordis-catalog
231
+ /** Raw input retained for the next activation, without evaluating expressions or validating it. */
232
+ get rawConfig(): unknown
233
+ ```
234
+
235
+ Raw input retained for the next activation, without evaluating expressions or validating it.
236
+
237
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L671)
238
+
239
+ ### fiber.effectiveConfig
240
+
241
+ ```ts cordis-catalog
242
+ /**
243
+ * The object passed to plugin activation or the latest successful update that retained the instance.
244
+ * Candidate resolution does not publish it; volatile updates retain its references.
245
+ * Undefined before activation and readable after unload; callers requiring a live instance check `state`.
246
+ */
247
+ get effectiveConfig(): unknown
248
+ ```
249
+
250
+ The object passed to plugin activation or the latest successful update that retained the instance. Candidate resolution does not publish it; volatile updates retain its references. Undefined before activation and readable after unload; callers requiring a live instance check `state`.
251
+
252
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L686)
253
+
254
+ ### fiber.resolveConfig(config)
255
+
256
+ ```ts cordis-catalog
257
+ /**
258
+ * Evaluate and validate a candidate using this fiber's `internal/config` hooks and runtime schema.
259
+ * Does not publish the result, replace raw input, or commit running volatile references.
260
+ * Required injections must be available when a hook uses them.
261
+ * @param config Raw candidate input.
262
+ * @returns The candidate's resolved config, retaining the schema's result identity.
263
+ * @throws {ValidationError} when the runtime schema rejects the candidate; hook errors propagate.
264
+ */
265
+ resolveConfig(config: unknown): unknown
266
+ ```
267
+
268
+ Evaluate and validate a candidate using this fiber's `internal/config` hooks and runtime schema. Does not publish the result, replace raw input, or commit running volatile references. Required injections must be available when a hook uses them.
269
+
270
+ - `config` — Raw candidate input.
271
+
272
+ **Returns** The candidate's resolved config, retaining the schema's result identity.
273
+
274
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L698)
275
+
276
+ ### fiber.await()
277
+
278
+ ```ts cordis-catalog
279
+ /**
280
+ * Wait for current lifecycle work and rethrow startup errors.
281
+ *
282
+ * @returns this fiber, once it has settled into a stable state.
283
+ * @throws the config-validation or plugin-startup error, if any.
284
+ */
285
+ async await()
286
+ ```
287
+
288
+ Wait for current lifecycle work and rethrow startup errors.
289
+
290
+ **Returns** this fiber, once it has settled into a stable state.
291
+
292
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L776)
293
+
294
+ ### fiber.restart()
295
+
296
+ ```ts cordis-catalog
297
+ /**
298
+ * Dispose and immediately reload this plugin with its current config.
299
+ *
300
+ * @returns a promise resolving once the reload settled.
301
+ * @throws {CordisError} `INACTIVE_EFFECT` when the fiber is already disposed.
302
+ */
303
+ async restart()
304
+ ```
305
+
306
+ Dispose and immediately reload this plugin with its current config.
307
+
308
+ **Returns** a promise resolving once the reload settled.
309
+
310
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L790)
311
+
312
+ ### fiber.update(config, noSave?)
313
+
314
+ ```ts cordis-catalog
315
+ /**
316
+ * Resolve a candidate, retain its raw config and apply it through the update waterfall.
317
+ * @param config Raw config; pending fibers defer resolution until activation.
318
+ * @param noSave Suppress the persistence notification when true.
319
+ * @returns The awaited update/restart result, or undefined when a synchronous listener handles it.
320
+ * @throws {ValidationError} when an active fiber's candidate is invalid.
321
+ */
322
+ update(config: any, noSave = false): Awaitable<void>
323
+ ```
324
+
325
+ Resolve a candidate, retain its raw config and apply it through the update waterfall.
326
+
327
+ - `config` — Raw config; pending fibers defer resolution until activation.
328
+ - `noSave` — Suppress the persistence notification when true.
329
+
330
+ **Returns** The awaited update/restart result, or undefined when a synchronous listener handles it.
331
+
332
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L805)
333
+
334
+ ## Effect
335
+
336
+ Effect body result accepted by `ctx.effect()` and plugin startup.
337
+
338
+ 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.
339
+
340
+ ```ts cordis-catalog
341
+ /**
342
+ * Effect body result accepted by `ctx.effect()` and plugin startup.
343
+ *
344
+ * Either a single disposer, a promise of one, or a (possibly async) iterable
345
+ * yielding several — generator effects register each yielded disposer as it
346
+ * is produced.
347
+ */
348
+ type Effect<T = any> =
349
+ | SyncEffect<T>
350
+ | AsyncEffect<T>
351
+ ```
352
+
353
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L113)
354
+
355
+ ## Disposable
356
+
357
+ Function returned by an effect to release resources during disposal.
358
+
359
+ Disposers run in reverse registration order when the owning fiber unloads; they may be async, in which case unloading awaits them.
360
+
361
+ ```ts cordis-catalog
362
+ /**
363
+ * Function returned by an effect to release resources during disposal.
364
+ *
365
+ * Disposers run in reverse registration order when the owning fiber unloads;
366
+ * they may be async, in which case unloading awaits them.
367
+ */
368
+ type Disposable<T = any> = () => T
369
+ ```
370
+
371
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L104)
372
+
373
+ ## EffectMeta
374
+
375
+ Tree node used to expose nested effect labels for diagnostics.
376
+
377
+ ```ts cordis-catalog
378
+ /** Tree node used to expose nested effect labels for diagnostics. */
379
+ interface EffectMeta {
380
+ /** Human-readable effect label, e.g. `ctx.on("event")` or `ctx.provide("name")`. */
381
+ label: string
382
+ /** Metadata of nested effects registered while this effect ran. */
383
+ children: EffectMeta[]
384
+ }
385
+ ```
386
+
387
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L126)
388
+
389
+ ## CordisError
390
+
391
+ Framework error with a stable machine-readable code.
392
+
393
+ ```ts cordis-catalog
394
+ /** Framework error with a stable machine-readable code. */
395
+ class CordisError extends Error {
396
+ /**
397
+ * @param code — the stable error code; also the default message.
398
+ * @param message — optional human-readable override.
399
+ */
400
+ constructor(public code: CordisError.Code, message?: string)
401
+ }
402
+
403
+ /** Cordis error code definitions. */
404
+ namespace CordisError {
405
+ export type Code = keyof typeof Code
406
+
407
+ export const Code = {
408
+ INACTIVE_EFFECT: 'cannot create effect on inactive context',
409
+ } as const
410
+ }
411
+ ```
412
+
413
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L187)
414
+
415
+ ## ValidationError
416
+
417
+ Error raised when plugin configuration fails standard-schema validation.
418
+
419
+ ```ts cordis-catalog
420
+ /** Error raised when plugin configuration fails standard-schema validation. */
421
+ class ValidationError extends TypeError {
422
+ name = 'ValidationError'
423
+
424
+ /**
425
+ * Build the aggregated message from schema issues.
426
+ *
427
+ * @param issues — the standard-schema issues, one message line each.
428
+ */
429
+ constructor(public issues: readonly StandardSchemaV1.Issue[])
430
+
431
+ /**
432
+ * Test whether a value is a config `ValidationError`, including one from another copy of Cordis.
433
+ *
434
+ * @param error — the value to test.
435
+ * @returns `true` if `error` carries the global validation-error brand.
436
+ */
437
+ static is(error: unknown): error is ValidationError
438
+
439
+ /**
440
+ * Convert an issue path to plain property keys.
441
+ *
442
+ * @param path — the standard-schema issue path; segments may be `{ key }` objects.
443
+ * @returns the property keys, or an empty array when the issue has no path.
444
+ */
445
+ static normalizePath(path: StandardSchemaV1.Issue['path'] = [])
446
+
447
+ /**
448
+ * Format an issue path as a dotted string.
449
+ *
450
+ * @param path — the standard-schema issue path.
451
+ * @returns the keys joined with `.`.
452
+ */
453
+ static formatPath(path: StandardSchemaV1.Issue['path'])
454
+ }
455
+ ```
456
+
457
+ [Source](https://github.com/deepseek-ai/deepseek-harness/blob/master/vendor/cordis/src/fiber.ts#L19)