Back to home@ytmaps

dsh-flowtext

鱼先生模块化OB

Stars
0
Language
TypeScript
Created
Sep 1, 2026
Updated
Sep 9, 2026
GitHub repo

Introduction

dsh-flowtext

中文

dsh-flowtext registers one DeepSeek Harness route: flowtext-direct. DSH receives the user instruction, renders a sanitized compact execution trace, and records the terminal answer. FlowText exclusively owns classification, planning, discovery, reads, writes, tools, clarification, approval, and finalization.

The plugin does not register a SubagentProvider, expose subagent_flowtext, or install tool-subagent-flowtext.

Requirements

  • Node.js ^22.19.0 or >=24
  • DeepSeek Harness
  • Obsidian desktop with FlowText Agent Gateway enabled

Install

dsh plugin --profile web add github:ytmaps/dsh-flowtext

The bundled cordis.patch.yml creates only one Cordis entry:

- id: flowtext-direct
  name: dsh-flowtext

No environment variable, token copy, or manual Profile edit is needed. FlowText automatically registers every open vault. The first task sent to each vault asks for local authorization in FlowText; DSH then stores and reuses a separate credential for that vault.

When upgrading from dsh-subagent-flowtext, remove the old package before installing dsh-flowtext. Existing per-vault pairing credentials are migrated automatically, so no token needs to be copied again.

Runtime behavior

  • Every DSH Agent request is forced through flowtext-direct.
  • One open FlowText vault is selected automatically. With multiple open vaults, DSH lists each as FlowText Agent · Vault name so the target can be selected before submission.
  • Every task carries the stable vault ID maintained by Obsidian itself. FlowText validates it before execution, preventing a dynamic port change from routing work to another vault.
  • The first Gateway prefers 127.0.0.1:27124; additional simultaneously open vaults use automatically assigned free ports with no user configuration.
  • By default, safe phase, plan, and tool summaries stream into DSH as reasoning content; they never become DSH tool calls.
  • Set progressMode: off to retain final-answer-only behavior.
  • Only the latest real user message and DSH sessionId are sent.
  • DSH system prompts, tool catalogs, assistant history, and plugin context are not forwarded.
  • The same DSH sessionId reuses one persistent FlowText conversation and Agent panel.
  • Different DSH sessions receive independent FlowText Agent panels.
  • The complete trajectory is shown in FlowText; DSH receives a sanitized compact trace and the final answer.
  • FlowText clarifications use DSH's native Session-scoped question composer and return structured choices or free text to the original FlowText task.
  • Dangerous FlowText operations use DSH's native approval card. The remote route intentionally exposes only allow-once and reject, never a task-wide grant.
  • The FlowText UI keeps showing the complete run and pending request, but DSH-owned interaction controls are read-only there to prevent competing answers.
  • Human interaction time does not consume the FlowText Agent execution timeout.
  • DSH model retries are disabled to prevent duplicate write tasks.

Configuration

FieldDefaultMeaning
baseUrlunsetAutomatically discover all open vaults by default; set a loopback Gateway URL only for compatibility with older FlowText versions.
registryDir~/.flowtext/agent-gatewaysOptional advanced discovery-directory override.
autoPairtrueAsk FlowText for local authorization when no credential exists.
credentialPathDSH credential directoryOptional credential-file override.
clientNameDeepSeek HarnessName shown in the FlowText pairing prompt.
clientIddeepseek-harnessStable client identity.
modelIdunsetOptional FlowText model.
activePathunsetOptional vault-relative active note.
contextPaths[]Optional vault-relative context paths.
runOptions{}FlowText options such as thinkingEnabled.
requestTimeoutMs30000Ordinary HTTP timeout.
longPollMs25000Gateway event long-poll duration.
maxResponseBytes2097152Gateway response limit.
maxPromptBytes1048576User-instruction limit.
maxAnswerBytes1048576Terminal-answer limit.
progressModesummarysummary streams a sanitized trace; off returns only the final answer.

Security

The Gateway accepts loopback endpoints only. Vault discovery records contain only identity, display name, path, and dynamic port, use owner-only local files, and never contain tokens. Automatic pairing rejects browser origins and requires explicit authorization in Obsidian. Credentials are isolated per vault and never enter the Profile, Obsidian vault, shell history, or model context. Clarification and approval use DSH's Agent-scoped interaction services directly: they do not create another DSH model turn and their answers are not sent to the DSH model. Cancelling the parent request or disposing the DSH run cancels the matching FlowText task.

Only text instructions and text terminal answers are currently supported; images and structured output are not forwarded from DSH.