mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
docs: enforce canonical website projection
This commit is contained in:
13
website/AGENTS.md
Normal file
13
website/AGENTS.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# AGENTS.md — Documentation website adapter
|
||||
|
||||
Follow the [root instructions](../AGENTS.md), the [documentation standard](../docs/AGENTS.md), and the [documentation-site sync workflow](../.agents/skills/dsh-doc-site-sync/SKILL.md).
|
||||
|
||||
## Keep documentation content out of this tree
|
||||
|
||||
`website/` owns only VitePress configuration, presentation assets, and the publication manifest. This file is the only maintained Markdown file in this subtree.
|
||||
|
||||
Keep canonical prose and generated catalogs in their owning `docs/` tier, then expose selected pages through [docs.ts](docs.ts). Never add locale, route, API, or copied documentation trees such as `website/zh-CN/`, `website/en/`, or `website/api/`.
|
||||
|
||||
The projector writes disposable Markdown to the ignored `website/.generated/` directory. Never edit or commit `.generated/`, `.cache/`, or `.dist/`.
|
||||
|
||||
Run `pnpm docs:check` after changing this subtree; the gate rejects additional non-ignored Markdown under `website/`.
|
||||
@@ -256,6 +256,7 @@ const reference = mirroredPages([
|
||||
['core.md', '核心数据结构', 'Core data structures'],
|
||||
['scope.md', '作用域', 'Scopes'],
|
||||
['session.md', '会话', 'Sessions'],
|
||||
['goal.md', '目标', 'Goals'],
|
||||
['system-prompt.md', '系统提示词', 'System prompts'],
|
||||
['tools.md', '工具', 'Tools'],
|
||||
['llm-streaming.md', 'LLM 流式响应', 'LLM streaming'],
|
||||
@@ -268,6 +269,7 @@ const reference = mirroredPages([
|
||||
['skills.md', '技能', 'Skills'],
|
||||
['approval.md', '审批', 'Approvals'],
|
||||
['user-interaction.md', '用户交互', 'User interaction'],
|
||||
['commands.md', '命令', 'Human commands'],
|
||||
['sandbox.md', '沙箱', 'Sandboxing'],
|
||||
['web.md', 'Web 访问', 'Web access'],
|
||||
['persistence.md', '会话持久化', 'Session persistence'],
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
<!-- Generated by scripts/gen-website-api.ts — do not edit by hand. Run `pnpm run gen-website-api` to regenerate. -->
|
||||
|
||||
# ctx.commands
|
||||
|
||||
`CommandService` — provided by `@deepseek-ai/dsh-commands`.
|
||||
|
||||
Human-command registry. Plain-context definitions are global; definitions registered through a command-injected child of an agent context shadow globals for that agent.
|
||||
|
||||
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/ui/commands/src/index.ts#L207)
|
||||
|
||||
### ctx.commands.register(definition)
|
||||
|
||||
```ts website-api
|
||||
/**
|
||||
* Register a global or calling-agent-scoped command.
|
||||
* @param definition - discovery metadata and direct UI handler.
|
||||
* @returns the exact effect disposer that unregisters this definition.
|
||||
*/
|
||||
register(definition: CommandDefinition): () => void
|
||||
```
|
||||
|
||||
Register a global or calling-agent-scoped command.
|
||||
|
||||
- `definition` — discovery metadata and direct UI handler.
|
||||
|
||||
**Returns** the exact effect disposer that unregisters this definition.
|
||||
|
||||
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/ui/commands/src/index.ts#L220)
|
||||
|
||||
### ctx.commands.list(agent)
|
||||
|
||||
```ts website-api
|
||||
/**
|
||||
* List the effective immutable command descriptors for one agent.
|
||||
* @param agent - exact receiving agent and scoped-layer key.
|
||||
* @returns name-sorted descriptors after scoped shadowing.
|
||||
*/
|
||||
list(agent: Agent): readonly CommandDescriptor[]
|
||||
```
|
||||
|
||||
List the effective immutable command descriptors for one agent.
|
||||
|
||||
- `agent` — exact receiving agent and scoped-layer key.
|
||||
|
||||
**Returns** name-sorted descriptors after scoped shadowing.
|
||||
|
||||
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/ui/commands/src/index.ts#L247)
|
||||
|
||||
### ctx.commands.find(agent, name)
|
||||
|
||||
```ts website-api
|
||||
/**
|
||||
* Resolve one effective command definition.
|
||||
* @param agent - exact receiving agent and scoped-layer key.
|
||||
* @param name - command name without a slash.
|
||||
* @returns the scoped shadow or global definition.
|
||||
*/
|
||||
find(agent: Agent, name: string): CommandDefinition | undefined
|
||||
```
|
||||
|
||||
Resolve one effective command definition.
|
||||
|
||||
- `agent` — exact receiving agent and scoped-layer key.
|
||||
- `name` — command name without a slash.
|
||||
|
||||
**Returns** the scoped shadow or global definition.
|
||||
|
||||
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/ui/commands/src/index.ts#L260)
|
||||
|
||||
### ctx.commands.execute(agent, line, signal)
|
||||
|
||||
```ts website-api
|
||||
/**
|
||||
* Parse and execute a known command without sending it to the model.
|
||||
* @param agent - exact receiving agent.
|
||||
* @param line - complete slash-command line.
|
||||
* @param signal - cancellation signal owned by the UI request.
|
||||
* @returns a detached result, or `undefined` when syntax or name does not resolve.
|
||||
*/
|
||||
async execute( agent: Agent, line: string, signal: AbortSignal, ): Promise<CommandResult | undefined>
|
||||
```
|
||||
|
||||
Parse and execute a known command without sending it to the model.
|
||||
|
||||
- `agent` — exact receiving agent.
|
||||
- `line` — complete slash-command line.
|
||||
- `signal` — cancellation signal owned by the UI request.
|
||||
|
||||
**Returns** a detached result, or `undefined` when syntax or name does not resolve.
|
||||
|
||||
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/ui/commands/src/index.ts#L271)
|
||||
@@ -1,203 +0,0 @@
|
||||
<!-- Generated by scripts/gen-website-api.ts — do not edit by hand. Run `pnpm run gen-website-api` to regenerate. -->
|
||||
|
||||
# ctx.goals
|
||||
|
||||
`GoalService` — provided by `@deepseek-ai/dsh-goal`.
|
||||
|
||||
Goal service (`ctx.goals`) backed exclusively by the owning session log.
|
||||
|
||||
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/goal/goal/src/index.ts#L135)
|
||||
|
||||
### ctx.goals.get(agent)
|
||||
|
||||
```ts website-api
|
||||
/**
|
||||
* Read the current goal for one exact live agent.
|
||||
* @param agent - owning live agent.
|
||||
* @returns a fresh view or `undefined` when no goal is current.
|
||||
* @throws {@link GoalError} when the agent is not the registry's live instance.
|
||||
*/
|
||||
get(agent: Agent): GoalView | undefined
|
||||
```
|
||||
|
||||
Read the current goal for one exact live agent.
|
||||
|
||||
- `agent` — owning live agent.
|
||||
|
||||
**Returns** a fresh view or `undefined` when no goal is current.
|
||||
|
||||
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/goal/goal/src/index.ts#L161)
|
||||
|
||||
### ctx.goals.disarm(agent)
|
||||
|
||||
```ts website-api
|
||||
/**
|
||||
* Remove process-local continuation authority without changing durable goal
|
||||
* phase or revision. Lifecycle owners use this before unloading a driver;
|
||||
* a later human-authorized {@link resume} records the new activation edge.
|
||||
* @param agent - owning live agent.
|
||||
* @returns a fresh disarmed view, or `undefined` when no goal is current.
|
||||
*/
|
||||
disarm(agent: Agent): GoalView | undefined
|
||||
```
|
||||
|
||||
Remove process-local continuation authority without changing durable goal phase or revision. Lifecycle owners use this before unloading a driver; a later human-authorized resume records the new activation edge.
|
||||
|
||||
- `agent` — owning live agent.
|
||||
|
||||
**Returns** a fresh disarmed view, or `undefined` when no goal is current.
|
||||
|
||||
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/goal/goal/src/index.ts#L175)
|
||||
|
||||
### ctx.goals.create(agent, request)
|
||||
|
||||
```ts website-api
|
||||
/**
|
||||
* Create and arm a goal. A completed goal may be replaced; every other
|
||||
* current phase must be cleared or resumed instead.
|
||||
* @param agent - owning live agent.
|
||||
* @param request - objective and optional round cap.
|
||||
* @returns the created live view.
|
||||
*/
|
||||
create(agent: Agent, request: CreateGoalRequest): GoalView
|
||||
```
|
||||
|
||||
Create and arm a goal. A completed goal may be replaced; every other current phase must be cleared or resumed instead.
|
||||
|
||||
- `agent` — owning live agent.
|
||||
- `request` — objective and optional round cap.
|
||||
|
||||
**Returns** the created live view.
|
||||
|
||||
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/goal/goal/src/index.ts#L190)
|
||||
|
||||
### ctx.goals.edit(agent, ref, request)
|
||||
|
||||
```ts website-api
|
||||
/**
|
||||
* Edit objective and/or round cap without changing phase.
|
||||
* @param agent - owning live agent.
|
||||
* @param ref - expected current revision.
|
||||
* @param request - at least one replacement field.
|
||||
* @returns the edited view.
|
||||
*/
|
||||
edit(agent: Agent, ref: GoalRef, request: EditGoalRequest): GoalView
|
||||
```
|
||||
|
||||
Edit objective and/or round cap without changing phase.
|
||||
|
||||
- `agent` — owning live agent.
|
||||
- `ref` — expected current revision.
|
||||
- `request` — at least one replacement field.
|
||||
|
||||
**Returns** the edited view.
|
||||
|
||||
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/goal/goal/src/index.ts#L215)
|
||||
|
||||
### ctx.goals.pause(agent, ref)
|
||||
|
||||
```ts website-api
|
||||
/**
|
||||
* Pause an active goal and disarm automatic continuation.
|
||||
* @param agent - owning live agent.
|
||||
* @param ref - expected current revision.
|
||||
* @returns the paused view.
|
||||
*/
|
||||
pause(agent: Agent, ref: GoalRef): GoalView
|
||||
```
|
||||
|
||||
Pause an active goal and disarm automatic continuation.
|
||||
|
||||
- `agent` — owning live agent.
|
||||
- `ref` — expected current revision.
|
||||
|
||||
**Returns** the paused view.
|
||||
|
||||
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/goal/goal/src/index.ts#L236)
|
||||
|
||||
### ctx.goals.resume(agent, ref)
|
||||
|
||||
```ts website-api
|
||||
/**
|
||||
* Resume and arm a stopped goal, or rearm an active goal after a
|
||||
* session-start edge, while its round budget still has capacity.
|
||||
* @param agent - owning live agent.
|
||||
* @param ref - expected current revision.
|
||||
* @returns the active view.
|
||||
*/
|
||||
resume(agent: Agent, ref: GoalRef): GoalView
|
||||
```
|
||||
|
||||
Resume and arm a stopped goal, or rearm an active goal after a session-start edge, while its round budget still has capacity.
|
||||
|
||||
- `agent` — owning live agent.
|
||||
- `ref` — expected current revision.
|
||||
|
||||
**Returns** the active view.
|
||||
|
||||
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/goal/goal/src/index.ts#L247)
|
||||
|
||||
### ctx.goals.complete(agent, ref)
|
||||
|
||||
```ts website-api
|
||||
/**
|
||||
* Mark a current non-complete goal complete and disarm it.
|
||||
* @param agent - owning live agent.
|
||||
* @param ref - expected current revision.
|
||||
* @returns the completed view.
|
||||
*/
|
||||
complete(agent: Agent, ref: GoalRef): GoalView
|
||||
```
|
||||
|
||||
Mark a current non-complete goal complete and disarm it.
|
||||
|
||||
- `agent` — owning live agent.
|
||||
- `ref` — expected current revision.
|
||||
|
||||
**Returns** the completed view.
|
||||
|
||||
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/goal/goal/src/index.ts#L272)
|
||||
|
||||
### ctx.goals.block(agent, ref, reason)
|
||||
|
||||
```ts website-api
|
||||
/**
|
||||
* Mark an active goal blocked and disarm it.
|
||||
* @param agent - owning live agent.
|
||||
* @param ref - expected current revision.
|
||||
* @param reason - policy-owned stable code and human-readable explanation.
|
||||
* @returns the blocked view with its durable reason.
|
||||
*/
|
||||
block(agent: Agent, ref: GoalRef, reason: GoalBlockReason): GoalView
|
||||
```
|
||||
|
||||
Mark an active goal blocked and disarm it.
|
||||
|
||||
- `agent` — owning live agent.
|
||||
- `ref` — expected current revision.
|
||||
- `reason` — policy-owned stable code and human-readable explanation.
|
||||
|
||||
**Returns** the blocked view with its durable reason.
|
||||
|
||||
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/goal/goal/src/index.ts#L290)
|
||||
|
||||
### ctx.goals.clear(agent, ref)
|
||||
|
||||
```ts website-api
|
||||
/**
|
||||
* Clear the current goal while retaining a durable tombstone and history.
|
||||
* @param agent - owning live agent.
|
||||
* @param ref - expected current revision.
|
||||
* @returns the tombstone ref whose revision is one past the cleared snapshot.
|
||||
*/
|
||||
clear(agent: Agent, ref: GoalRef): GoalRef
|
||||
```
|
||||
|
||||
Clear the current goal while retaining a durable tombstone and history.
|
||||
|
||||
- `agent` — owning live agent.
|
||||
- `ref` — expected current revision.
|
||||
|
||||
**Returns** the tombstone ref whose revision is one past the cleared snapshot.
|
||||
|
||||
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/goal/goal/src/index.ts#L311)
|
||||
@@ -1,32 +0,0 @@
|
||||
<!-- 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#L388)
|
||||
|
||||
### 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 - listener or startup-check 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` — listener or startup-check 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#L430)
|
||||
Reference in New Issue
Block a user