feat(invariants): add package-owned service seam

This commit is contained in:
Tianyi Cui
2026-07-19 19:19:57 +08:00
parent 38b7275eb1
commit 9d310ecc27
83 changed files with 2225 additions and 1557 deletions

View File

@@ -54,6 +54,10 @@
"text": "ctx.fs",
"link": "/zh-CN/api/harness/fs"
},
{
"text": "ctx.invariants",
"link": "/zh-CN/api/harness/invariants"
},
{
"text": "ctx.llm",
"link": "/zh-CN/api/harness/llm"

View File

@@ -0,0 +1,32 @@
<!-- Generated by scripts/gen-website-api.ts — do not edit by hand. Run `pnpm run gen-website-api` to regenerate. -->
# ctx.invariants
`InvariantService` — provided by `@deepseek-ai/dsh-invariants`.
Package-owned invariant registry with global and regex-based selection.
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/support/invariants/src/index.ts#L94)
### ctx.invariants.register(packageName, installer)
```ts website-api
/**
* Register one package's invariant installer. The package name is reserved
* even when filtering disables its checks. Enabled installers run in a child
* fiber; failure disposes that fiber and releases the reservation.
* @param packageName - full npm package name that owns the contribution.
* @param installer - synchronous listener installer for the child context.
* @returns an effect-scoped disposer for the registration.
*/
register(packageName: string, installer: InvariantInstaller): () => void
```
Register one package's invariant installer. The package name is reserved even when filtering disables its checks. Enabled installers run in a child fiber; failure disposes that fiber and releases the reservation.
- `packageName` — full npm package name that owns the contribution.
- `installer` — synchronous listener installer for the child context.
**Returns** an effect-scoped disposer for the registration.
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/support/invariants/src/index.ts#L136)