Files
deepseek-harness/website/zh-CN/api/harness/permission.md
2026-07-19 14:14:02 +08:00

3.6 KiB

ctx.permission

PermissionService — provided by @deepseek-ai/dsh-permission.

Owns the deployment's permission presets and their write path. Requires a confining ctx.bash executor and ctx.approval; unmatched knob values are reported as CUSTOM_PRESET, not an error.

Source

ctx.permission.names

/**
 * The advertised preset names, in the preset table's declaration order.
 * @returns every switchable preset name.
 */
get names(): readonly string[]

The advertised preset names, in the preset table's declaration order.

Source

ctx.permission.current(events)

/**
 * Resolve the preset matching the effective knob values. A still-matching
 * last selection wins shared-bundle ties; otherwise the first table match
 * wins, or {@link CUSTOM_PRESET} when no entry matches.
 * @param events - the session's events in log order.
 * @returns the effective preset name, or `custom` when nothing matches.
 */
current(events: readonly SessionEvent[]): string

Resolve the preset matching the effective knob values. A still-matching last selection wins shared-bundle ties; otherwise the first table match wins, or CUSTOM_PRESET when no entry matches.

  • events — the session's events in log order.

Returns the effective preset name, or custom when nothing matches.

Source

ctx.permission.resolve(name)

/**
 * Resolve a preset's knob bundle.
 * @param name - the preset name to resolve.
 * @returns the configured bundle.
 * @throws when `name` is not in the table.
 */
resolve(name: string): PresetSpec

Resolve a preset's knob bundle.

  • name — the preset name to resolve.

Returns the configured bundle.

Source

ctx.permission.optionOf(name)

/**
 * Build the client option for a table entry or {@link CUSTOM_PRESET}. A
 * missing label falls back to the table key.
 * @param name - a table key, or `custom`.
 * @returns the option a client renders.
 * @throws when `name` is neither a table key nor `custom`.
 */
optionOf(name: string): PresetOption

Build the client option for a table entry or CUSTOM_PRESET. A missing label falls back to the table key.

  • name — a table key, or custom.

Returns the option a client renders.

Source

ctx.permission.set(session, name)

/**
 * Record a changed preset, then update each changed knob through its own
 * setter. Selecting the effective preset again appends nothing.
 * @param session - the session the switch belongs to.
 * @param name - the preset to switch to; unknown names throw.
 */
set(session: Session, name: string): void

Record a changed preset, then update each changed knob through its own setter. Selecting the effective preset again appends nothing.

  • session — the session the switch belongs to.
  • name — the preset to switch to; unknown names throw.

Source