kiokuko-dsh 0.2.36 → 0.2.37

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.
package/PERMISSIONS.md CHANGED
@@ -39,8 +39,10 @@ Skill collisions before mounting its runtime; it does not rewrite `AGENTS.md`.
39
39
  the startup directory’s `AGENTS.md` with the DSH host-owned contract. Preserves
40
40
  instructions outside the markers; absent or unmanaged files stay untouched.
41
41
  Refuses linked files or ambiguous markers. The bundled `scripts/setup-dsh.mjs`
42
- provides the same repair for an explicit workspace and a read-only `--check`.
43
- It does not scan parent/global instruction files or other session workspaces.
42
+ provides the same repair for an explicit workspace, a read-only `--check`, and
43
+ explicit `--remove` retirement of byte-identical deployed files and its managed
44
+ block. It does not scan parent/global instruction files or other session
45
+ workspaces.
44
46
  - On plugin load, enumerates stored DSH session IDs and validates each history.
45
47
  When DSH rejects a v3 history containing legacy Kiokuko informational
46
48
  events, reads that exact native session file and marks the five supported
@@ -131,13 +133,17 @@ Skill collisions before mounting its runtime; it does not rewrite `AGENTS.md`.
131
133
 
132
134
  ## Installation lifecycle
133
135
 
134
- The only npm lifecycle hook is:
136
+ The source-install preparation hook is:
135
137
 
136
138
  ```text
137
- prepare = npm run build
139
+ prepare = node scripts/prepare-build.mjs
138
140
  ```
139
141
 
140
- It builds the package from the fixed source checkout. It does not modify a DSH
142
+ It normally runs the invoking package manager's `run build` from the source
143
+ checkout. Only an explicit `CI=true` plus `KIOKUKO_CI_DEFER_PREPARE=1` defers
144
+ this package's duplicate prepare build to the selected verifier's required clean
145
+ build. Dependency lifecycle scripts still run; source/build digests and tested
146
+ archive receipts remain required. It does not modify a DSH
141
147
  profile, contact an external service, or edit user configuration. A Git source
142
148
  install must pin a full commit and authorize the exact generated archive key
143
149
  with pnpm `allowBuilds`; the npm tarball already contains `dist/`.
package/README.ja.md CHANGED
@@ -128,9 +128,9 @@ DSH 更新後に Kiokuko を読み込めない場合は、[起動失敗時の復
128
128
  選択後の通常の編集・テストには追加確認を求めません。ソース・実データの削除と既存の永続DB変更は対象を確認します。各項目の最新の証拠と、通常の利用入口からの最終確認が揃った場合だけ完了します。[Goal 駆動コーディング](docs/coding-workflow.md)と[独自実行、レシート、記憶の再利用](docs/owned-execution.md)を参照してください。
129
129
  [設定、API、停止・復旧方法](docs/lisp.md)を参照してください。
130
130
 
131
- ## 型付き判定(Jev / Laya / Nimble)
131
+ ## 型付き判定(Jev / Laya / OpenAI / Nimble)
132
132
 
133
- 任意の[モデル自動選択](docs/model-selection.ja.md#通常実行のモデル自動選択)は、新しい通常タスクで検証済みの `openai-codex` モデルと推論強度を選びます。既定値は `modelAutoMode.mode: off` です。`/kioku-model-auto on | observe | off | status` は現在のセッションだけを変更します。`observe` は候補を計測し、実モデルは変えません。利用にはJevかLayaの準備完了、dsh-codex、DSHのモデル情報とtoken meterが必要です。判定不能なら現在のモデルを維持し、手動選択を優先します。
133
+ 任意の[モデル自動選択](docs/model-selection.ja.md#通常実行のモデル自動選択)は、新しい通常タスクで検証済みの `openai-codex` モデルと推論強度を選びます。既定値は `modelAutoMode.mode: off` です。`/kioku-model-auto on | observe | off | status` は現在のセッションだけを変更します。`observe` は候補を計測し、実モデルは変えません。利用にはJev・Laya・OpenAIのいずれかの準備完了、dsh-codex、DSHのモデル情報とtoken meterが必要です。判定不能なら現在のモデルを維持し、手動選択を優先します。
134
134
 
135
135
  [回答の再検討](docs/answer-review.md)は、表示済みの通常回答を評価し、指摘があれば同じ主モデルに一度だけ見直させる機能です。通常版・modular coreで既定で有効です。既定値は次のとおりです。
136
136
 
@@ -140,46 +140,74 @@ answerReview:
140
140
  budgetMs: 5000
141
141
  ```
142
142
 
143
- 無効にする場合は `answerReview.mode: off` を指定します。評価providerは `typedDecisions` のJev/Laya/Nimbleを継承します。選択したproviderが利用できない場合は評価をスキップし、元の回答で終了します。別providerへの自動切替はありません。最初の回答はそのまま表示され、評価の追加推論と、最大1回の主モデルによる再検討が発生します。Laya v1はworker内部の切り詰めを確認できないため、指摘は未確認の候補として扱います。`/kioku-decisions status` で進行状態・スキップ理由を確認できます。正しさを保証する機能ではありません。
143
+ 無効にする場合は `answerReview.mode: off` を指定します。評価providerは `typedDecisions` のJev/Laya/OpenAI/Nimbleを継承します。選択したproviderが利用できない場合は評価をスキップし、元の回答で終了します。別providerへの自動切替はありません。最初の回答はそのまま表示され、評価の追加推論と、最大1回の主モデルによる再検討が発生します。Laya v1はworker内部の切り詰めを確認できないため、指摘は未確認の候補として扱います。`/kioku-decisions status` で進行状態・スキップ理由を確認できます。正しさを保証する機能ではありません。
144
144
 
145
145
 
146
- Jevが既定です。DSHのコマンド入力欄で切り替えられます。設定編集や再起動は不要です。
146
+ 通常の作業開始時に、decision/Lisp の4通りのON/OFFを一つのカードで選べます。取消・Skipでは開始しません。選択は依頼に保存し、同じ依頼の再処理・再起動・明示的な「続けて」では再利用します。別の依頼では確認し直します。LispがONでも既存の権限・承認・Stopは維持します。ヘッドレスでは既存設定と明示的なLispセッション設定を保ち、`typedDecisions.startup: {decision: true, lisp: true}` でも明示できます。ONは利用成功の証明ではなく、認証不足や判断失敗は記録して主モデルへ戻します。
147
147
 
148
- ```text
149
- /kioku-decisions use jev
150
- /kioku-decisions use laya
151
- /kioku-decisions use openai
152
- /kioku-decisions use nimble
153
- /kioku-decisions use default
154
- ```
148
+ <a id="openai-decisions-setup"></a>
149
+ ### OpenAI Decisions の設定
155
150
 
156
- Layaは`start-laya`で起動済みのworkerへ直接接続します。workerの差し替えやfingerprint設定は不要です。JevにはTypeSafeキー、Nimbleには接続先・モデルの事前設定が必要です。probeが成功してから選択をプロジェクト単位で保存し、次のリクエストへ適用します。再起動後も保持し、進行中のリクエストは変更しません。`use default`でプラグイン設定へ戻せます。
151
+ 既定はJevで、OpenAI・ローカルのLaya・Nimbleも選べます。OpenAIは公式 [Decisions API](https://developers.openai.com/api/docs/guides/decisions) の `POST /v1/decisions` を使い、このソースの既定判定モデルは `gpt-6-luna` です。主モデルの認証とは別です。ChatGPT/CodexのOAuthログインから `OPENAI_API_KEY` は供給されず、TypeSafe/Jevのキーも代用できません。
157
152
 
158
- OpenAIは公式 Decisions API (`POST /v1/decisions`、既定モデル `gpt-6-luna`) を使います。DSH credentials の `OPENAI_API_KEY`、credentialsサービスがない構成では同名環境変数が必要です。Jevのキーは使いません。切替時のprobeはAPI呼出しを伴い、失敗・取消時は切替を保存しません。
153
+ 以下は現行ソースの手順で、公開済みnpmの `latest` にOpenAI対応が含まれることを示すものではありません。`use openai` がない場合は、まず導入済みbuildのコマンド対応を確認してください。
159
154
 
160
- 通常の作業開始時に、decision/Lisp の4通りのON/OFFを一つのカードで選べます。取消・Skipでは開始しません。選択は依頼に保存し、同じ依頼の再処理・再起動・明示的な「続けて」では再利用します。別の依頼では確認し直します。LispがONでも既存の権限・承認・Stopは維持します。ヘッドレスでは既存設定と明示的なLispセッション設定を保ち、`typedDecisions.startup: {decision: true, lisp: true}` でも明示できます。ONは利用成功の証明ではなく、認証不足や判断失敗は記録して主モデルへ戻します。
155
+ 1. OpenAI APIプロジェクトのAPIキーを作り、稼働中DSHが使う保存先へ追加します。標準の `credentials-local` では次のように決まります。
161
156
 
162
- APIキーは DSH の `~/.dsh/.credentials.yaml`(`DSH_HOME` を設定している場合は `$DSH_HOME/.credentials.yaml`)に書くか、`/kioku-typesafe-key YOUR_KEY` で保存します。既存の項目は残してください。
157
+ | 設定 | credentialsファイル |
158
+ |---|---|
159
+ | 既定のharness home | `~/.dsh/.credentials.yaml` |
160
+ | `DSH_HOME` を指定 | `$DSH_HOME/.credentials.yaml` |
161
+ | `credentials.path` を明示(providerの `config.path`) | homeの既定値より優先される指定先 |
163
162
 
164
- ```yaml
165
- version: 1
166
- refs:
167
- TYPESAFE_API_KEY: YOUR_KEY
163
+ `--profile web` のパッケージ・patchは `$DSH_HOME/profiles/web` にありますが、指定だけでcredentialsの保存先は移動しません。profileで `credentials.path` を変えた場合や、launcherが別の `DSH_HOME` を使う場合は、その実際の保存先を編集します。`profiles/web/.credentials.yaml` と推測しないでください。
164
+
165
+ 2. 既存ファイルでは `refs` に `OPENAI_API_KEY` だけを追加し、ほかの `refs` と `records` はすべて残します。次は無効な例示キーを使った**新規ファイル用の最小例**です。
166
+
167
+ ```yaml
168
+ version: 1
169
+ refs:
170
+ OPENAI_API_KEY: "OPENAI_API_KEY_EXAMPLE_ONLY"
171
+ records: {}
172
+ ```
173
+
174
+ 例示値を手元で実際のキーへ置き換えます。macOS/Linuxでは実際の保存先を権限600にします。既定パスの場合:
175
+
176
+ ```sh
177
+ chmod 600 "$HOME/.dsh/.credentials.yaml"
178
+ ```
179
+
180
+ 保存先を変更している場合はコマンドのパスも変更します。既定の `watch: true` なら、有効なファイル編集は自動再読され、次の要求から使われます。DSH再起動は不要です。キーを会話・スクリーンショット・Gitへ貼らないでください。
181
+
182
+ 3. DSHのコマンド入力欄で切り替え、状態を確認します。
183
+
184
+ ```text
185
+ /kioku-decisions use openai
186
+ /kioku-decisions status
187
+ ```
188
+
189
+ `use openai` のprobeは実API呼出しで、利用料金が発生する場合があります。probeと保存の成功後だけ、このプロジェクトの新しい要求へ選択を保存します。失敗・取消時は元の選択を保持し、進行中の要求のbindingも変えません。`status` は推論を呼びません。任意の `/kioku-decisions probe` は追加の実probeを行います。
190
+
191
+ 標準providerの優先順位は **保存ファイル > 起動時環境変数 > projectの `.env` > harness homeの `.env`** です。credentialsサービスがある構成でも、保存値で上書きされていなければ環境変数を使えます。環境変数だけで設定する場合は、同じシェルからDSHを起動する**前**に設定します。
192
+
193
+ ```sh
194
+ export OPENAI_API_KEY='OPENAI_API_KEY_EXAMPLE_ONLY'
168
195
  ```
169
196
 
170
- YAMLファイルを手動で作る場合は `chmod 600 ~/.dsh/.credentials.yaml` を実行してください(`DSH_HOME` を設定している場合はそのパスを使用)。
197
+ この値は使用できない例示値です。DSH起動後に別シェルでexportしても起動時snapshotは変わりません。稼働中の更新にはwatch対象のファイルを使います。キーを書いた `.env` もGitへ追加しないでください。
171
198
 
172
- DSHのコマンド入力欄で利用可能な状態を確認します。
199
+ ほかの選択肢も維持しています。
173
200
 
174
201
  ```text
175
- /kioku-typesafe-key status
176
- /kioku-decisions probe
177
- /kioku-decisions status
202
+ /kioku-decisions use jev
203
+ /kioku-decisions use laya
204
+ /kioku-decisions use nimble
205
+ /kioku-decisions use default
178
206
  ```
179
207
 
180
- `probe` は検査用のAPIリクエストを送ります。`status` は送信しません。保存したキーは `/kioku-typesafe-key clear` で削除できます。`/kioku-typesafe-key YOUR_KEY` の入力中はキーが画面に表示されます。詳しくは[型付き判定](docs/typed-decisions.md)と[Lispからの明示的な呼び出し](docs/typesafe.md)を参照してください。
208
+ Jevは `TYPESAFE_API_KEY` を使います。`/kioku-typesafe-key` が管理するのはこのキーだけで、OpenAIのキーは保存しません。Layaは `start-laya` で起動済みのworkerへ `~/Library/Caches/laya-coreml/worker.sock` のv1 `health`/`predict` で接続します。`install-laya` はworkerを再利用するか導入手順を案内します。Nimbleは接続先とモデルの事前設定が必要です。`use default` はプラグイン設定に戻します。
181
209
 
182
- Jevが既定です。Nimbleとローカルの[Laya-CoreML](docs/Laya-CoreML-ja.md)も選べます。Layaは`~/Library/Caches/laya-coreml/worker.sock`へ直接接続し、既存のv1 `health`/`predict`を使います。`/kioku-decisions install-laya`でも起動済みworkerを利用でき、接続できなければ導入手順を案内します。
210
+ 詳しくは[優先順位・設定・トラブル対処](docs/typed-decisions.md#openai-credentials)、[公式credentials仕様](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/credentials/credentials-local/README.md)、[TypeSafeのLisp API](docs/typesafe.md)を参照してください。
183
211
 
184
212
  英語を含め、どの言語でも `aac6fef/laya-multilingual-coreml` を使います。入力上限は質問・選択肢・判定対象を合わせて1,024 tokensで、`-ane` 版は96 tokensのみです。[開発元のモデル仕様](https://github.com/mizorewww/laya-coreml#available-checkpoints)を参照してください。[初期導入](docs/Laya-CoreML-ja.md)を済ませてから、次のコマンドを実行します。起動中のLaya workerがあれば停止してから新しいモデルで起動してください。`LAYA_MODEL` の指定は、既存workerスクリプトの古い既定値も上書きします。
185
213
 
package/README.ko.md CHANGED
@@ -13,7 +13,7 @@ DSH 표준 agent preset은 `subagent`와 `subagent_fork`를 제공합니다. 일
13
13
 
14
14
  새 변경 작업에서는 일반 실행 또는 役小角(enno-oduno)를 선택할 수 있습니다. 역할별 모델은 추천 템플릿이나 DSH에 설정된 모델에서 선택합니다. [모델 선택과 연결 제한](docs/model-selection.md).
15
15
 
16
- 선택 기능인 [자동 모델 선택](docs/model-selection.md#automatic-model-selection)은 기본적으로 꺼져 있습니다(`modelAutoMode.mode: off`). `/kioku-model-auto on | observe | off | status`는 현재 세션만 바꿉니다. `observe`는 제안만 기록하고 실제 모델은 유지합니다. 일반 작업에서 준비된 Jev 또는 Laya, dsh-codex, DSH 모델 메타데이터와 token meter가 필요합니다. 판정에 실패하면 현재 모델을 유지하고 수동 선택을 우선합니다.
16
+ 선택 기능인 [자동 모델 선택](docs/model-selection.md#automatic-model-selection)은 기본적으로 꺼져 있습니다(`modelAutoMode.mode: off`). `/kioku-model-auto on | observe | off | status`는 현재 세션만 바꿉니다. `observe`는 제안만 기록하고 실제 모델은 유지합니다. 일반 작업에서 준비된 Jev, Laya 또는 OpenAI, dsh-codex, DSH 모델 메타데이터와 token meter가 필요합니다. 판정에 실패하면 현재 모델을 유지하고 수동 선택을 우선합니다.
17
17
 
18
18
  메모리는 선택 기능입니다. 작업이 끝나면 Kiokuko가 기록된 경험을 정리할지 묻고 임시 미리보기를 보여 주며, 사용자가 승인한 정확한 수정본만 저장합니다. 자동 메모리 쓰기는 더 이상 사용하지 않습니다. [검토, 회상 및 잊기](docs/replay-memory-review.md).
19
19
 
@@ -115,11 +115,11 @@ DSH 업데이트 후 Kiokuko를 불러오지 못하면 [시작 오류 복구 절
115
115
 
116
116
  [문서](docs/README.md) · [권한](PERMISSIONS.md) · [MIT 라이선스](LICENSE)
117
117
 
118
- ## 타입 기반 판정(Jev / Laya / Nimble)
118
+ ## 타입 기반 판정(Jev / Laya / OpenAI / Nimble)
119
119
 
120
- 선택 기능인 [자동 모델 선택](docs/model-selection.md#automatic-model-selection)은 새 일반 작업에 사용할 검증된 `openai-codex` 모델과 추론 강도를 선택합니다. 기본값은 `modelAutoMode.mode: off`이며, `/kioku-model-auto on | observe | off | status`는 현재 세션만 변경합니다. `observe`는 제안을 평가하지만 모델은 변경하지 않습니다. 준비된 Jev 또는 Laya 백엔드, dsh-codex, 기본 모델 메타데이터와 token meter가 필요합니다. 분류에 실패하거나 사용할 수 없으면 현재 모델을 유지하며, 수동 모델 선택을 우선합니다.
120
+ 선택 기능인 [자동 모델 선택](docs/model-selection.md#automatic-model-selection)은 새 일반 작업에 사용할 검증된 `openai-codex` 모델과 추론 강도를 선택합니다. 기본값은 `modelAutoMode.mode: off`이며, `/kioku-model-auto on | observe | off | status`는 현재 세션만 변경합니다. `observe`는 제안을 평가하지만 모델은 변경하지 않습니다. 준비된 Jev, Laya 또는 OpenAI 백엔드, dsh-codex, 기본 모델 메타데이터와 token meter가 필요합니다. 분류에 실패하거나 사용할 수 없으면 현재 모델을 유지하며, 수동 모델 선택을 우선합니다.
121
121
 
122
- [답변 검토](docs/answer-review.md)는 전체 플러그인과 모듈형 코어에서 기본으로 활성화됩니다. 설정된 Jev, Laya 또는 Nimble provider로 이미 표시된 일반 답변을 평가하고, 같은 주 모델에 한 번 재검토를 요청할 수 있습니다. 기본 설정은 다음과 같습니다.
122
+ [답변 검토](docs/answer-review.md)는 전체 플러그인과 모듈형 코어에서 기본으로 활성화됩니다. 설정된 Jev, Laya, OpenAI 또는 Nimble provider로 이미 표시된 일반 답변을 평가하고, 같은 주 모델에 한 번 재검토를 요청할 수 있습니다. 기본 설정은 다음과 같습니다.
123
123
 
124
124
  ```yaml
125
125
  answerReview:
@@ -129,38 +129,69 @@ answerReview:
129
129
 
130
130
  끄려면 `answerReview.mode: off`를 설정하세요. `typedDecisions` 설정을 이어받으며, 평가 추론과 최대 한 턴의 주 모델 호출이 추가되지만 첫 답변을 지연시키지는 않습니다. 선택한 provider를 사용할 수 없으면 검토를 건너뛰고 원래 답변을 유지하며, 다른 provider로 대체하지 않습니다. Laya v1의 결과는 worker 내부의 잘림을 확인할 수 없어 검증되지 않은 제안으로 취급합니다. `/kioku-decisions status`는 진행 상황과 건너뛴 이유를 보여 줄 뿐, 정확성을 보증하지 않습니다.
131
131
 
132
- 기본값은 Jev입니다. 설정 파일을 수정하거나 DSH를 다시 시작하지 않고 DSH 명령 입력란에서 전환할 수 있습니다.
132
+ <a id="openai-decisions-setup"></a>
133
+ ### OpenAI Decisions 설정
133
134
 
134
- ```text
135
- /kioku-decisions use jev
136
- /kioku-decisions use laya
137
- /kioku-decisions use nimble
138
- /kioku-decisions use default
139
- ```
135
+ 기본값은 Jev이며 OpenAI, 로컬 Laya, Nimble도 선택할 수 있습니다. OpenAI는 공식 [Decisions API](https://developers.openai.com/api/docs/guides/decisions)의 `POST /v1/decisions`를 사용하며, 이 소스의 기본 판정 모델은 `gpt-6-luna`입니다. 주 채팅 모델의 인증과는 별개입니다. ChatGPT/Codex OAuth 로그인은 `OPENAI_API_KEY`를 제공하지 않으며 TypeSafe/Jev 키로 대체할 수도 없습니다.
140
136
 
141
- Laya는 `start-laya`로 시작한 기존 worker에 직접 연결하므로 worker 교체나 fingerprint 설정이 필요하지 않습니다. Jev에는 TypeSafe 키가 필요하고, Nimble은 엔드포인트와 모델을 먼저 설정해야 합니다. 연결 검사가 성공하면 선택을 프로젝트별로 저장하고 새 요청에 적용합니다. 재시작 후에도 유지되며 진행 중인 요청의 provider 연결은 바뀌지 않습니다. `use default`는 플러그인 설정으로 되돌립니다.
137
+ 아래 내용은 현재 소스를 기준으로 하며, 공개된 npm `latest`에 OpenAI 지원이 이미 포함되었다는 뜻은 아닙니다. `use openai`가 없다면 먼저 설치된 build의 명령 지원을 확인하세요.
142
138
 
143
- DSH의 `~/.dsh/.credentials.yaml`(`DSH_HOME`을 설정했다면 `$DSH_HOME/.credentials.yaml`)에 API 키를 설정하거나 `/kioku-typesafe-key YOUR_KEY`를 사용하세요. 기존 항목은 유지하세요.
139
+ 1. OpenAI API 프로젝트의 API 키를 만들고 실행 중인 DSH의 저장소에 추가하세요. 표준 `credentials-local`에서는 다음 경로를 사용합니다.
144
140
 
145
- ```yaml
146
- version: 1
147
- refs:
148
- TYPESAFE_API_KEY: YOUR_KEY
141
+ | 설정 | 자격 증명 파일 |
142
+ |---|---|
143
+ | 기본 harness home | `~/.dsh/.credentials.yaml` |
144
+ | 사용자 지정 `DSH_HOME` | `$DSH_HOME/.credentials.yaml` |
145
+ | 명시적인 `credentials.path` (provider의 `config.path`) | home 기본값보다 우선하는 지정 경로 |
146
+
147
+ `--profile web`의 패키지와 patch는 `$DSH_HOME/profiles/web`에 있지만, 이 옵션만으로 자격 증명 경로가 바뀌지는 않습니다. profile의 `credentials.path`나 launcher의 `DSH_HOME`이 다르면 실제 경로를 사용하세요. `profiles/web/.credentials.yaml`로 추측하지 마세요.
148
+
149
+ 2. 기존 파일에서는 `refs` 아래에 `OPENAI_API_KEY`만 추가하고 나머지 `refs`와 `records`를 모두 유지하세요. 다음은 실제로 작동하지 않는 예시 키를 넣은 **새 파일용 최소 예제**입니다.
150
+
151
+ ```yaml
152
+ version: 1
153
+ refs:
154
+ OPENAI_API_KEY: "OPENAI_API_KEY_EXAMPLE_ONLY"
155
+ records: {}
156
+ ```
157
+
158
+ 예시 값은 본인의 환경에서 실제 키로 바꾸세요. macOS/Linux에서는 실제 파일의 권한을 600으로 설정하세요. 기본 경로라면:
159
+
160
+ ```sh
161
+ chmod 600 "$HOME/.dsh/.credentials.yaml"
162
+ ```
163
+
164
+ 경로를 변경했다면 명령에도 해당 경로를 사용하세요. 기본 `watch: true`는 유효한 파일 수정을 자동으로 다시 읽어 다음 요청부터 사용하므로 DSH 재시작이 필요 없습니다. 키를 대화, 스크린샷 또는 Git에 올리지 마세요.
165
+
166
+ 3. DSH 명령 입력란에서 OpenAI로 전환하고 결과를 확인하세요.
167
+
168
+ ```text
169
+ /kioku-decisions use openai
170
+ /kioku-decisions status
171
+ ```
172
+
173
+ `use openai`의 probe는 실제 API 호출이며 사용 요금이 발생할 수 있습니다. probe와 저장이 성공해야 프로젝트의 새 요청에 선택이 저장됩니다. 실패하거나 취소하면 이전 선택을 유지하며 진행 중인 요청의 binding은 바꾸지 않습니다. `status`는 추론을 호출하지 않습니다. 선택 사항인 `/kioku-decisions probe`는 실제 probe를 한 번 더 보냅니다.
174
+
175
+ 표준 provider의 우선순위는 **저장 파일 > 시작 시 환경 변수 > 프로젝트 `.env` > harness home `.env`**입니다. credentials 서비스가 있어도 저장 값이 우선하지 않는 경우 환경 변수를 사용할 수 있습니다. 환경 변수만 사용하려면 같은 셸에서 DSH를 시작하기 **전에** 설정하세요.
176
+
177
+ ```sh
178
+ export OPENAI_API_KEY='OPENAI_API_KEY_EXAMPLE_ONLY'
149
179
  ```
150
180
 
151
- YAML 파일을 직접 만들었다면 `chmod 600 ~/.dsh/.credentials.yaml`을 실행하세요(`DSH_HOME`을 설정했다면 해당 경로 사용).
181
+ 이 값은 사용할 수 없는 예시입니다. DSH 시작 후 다른 셸에서 export해도 시작 시 snapshot은 갱신되지 않습니다. 실행 중인 인스턴스에는 watch 대상 파일을 수정하세요. 키가 들어 있는 `.env`도 Git에 추가하지 마세요.
152
182
 
153
- DSH 명령 UI에서 키를 확인하고 연결을 검사하세요.
183
+ 다른 선택도 계속 사용할 수 있습니다.
154
184
 
155
185
  ```text
156
- /kioku-typesafe-key status
157
- /kioku-decisions probe
158
- /kioku-decisions status
186
+ /kioku-decisions use jev
187
+ /kioku-decisions use laya
188
+ /kioku-decisions use nimble
189
+ /kioku-decisions use default
159
190
  ```
160
191
 
161
- `probe`는 합성 API 테스트 요청을 보내지만 `status`는 보내지 않습니다. `/kioku-typesafe-key clear`는 저장된 키를 삭제합니다. `/kioku-typesafe-key YOUR_KEY`를 사용할 때 입력한 키가 화면에 표시됩니다. 자세한 내용은 [타입 기반 판정](docs/typed-decisions.md)과 [명시적 Lisp API](docs/typesafe.md)를 참고하세요.
192
+ Jev는 `TYPESAFE_API_KEY`를 사용합니다. `/kioku-typesafe-key`는 이 키만 관리하며 OpenAI 키를 저장하지 않습니다. Laya는 `start-laya`로 실행한 기존 worker에 `~/Library/Caches/laya-coreml/worker.sock`의 v1 `health`/`predict`로 연결합니다. `install-laya`는 worker를 재사용하거나 설치 방법을 안내합니다. Nimble은 엔드포인트와 모델을 미리 설정해야 합니다. `use default`는 플러그인 설정으로 되돌립니다.
162
193
 
163
- Jev가 기본값이며 Nimble과 로컬 [Laya-CoreML](docs/laya-coreml.md)을 대안으로 선택할 수 있습니다. Laya는 기존 v1 `health`/`predict` 프로토콜로 `~/Library/Caches/laya-coreml/worker.sock`에 직접 연결합니다. `/kioku-decisions install-laya`는 실행 중인 worker를 재사용하거나 설정 안내를 표시합니다.
194
+ [우선순위·설정·문제 해결](docs/typed-decisions.md#openai-credentials), [공식 자격 증명 저장소 문서](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/credentials/credentials-local/README.md), [TypeSafe Lisp API](docs/typesafe.md)를 참고하세요.
164
195
 
165
196
  영어 및 다른 언어에는 `aac6fef/laya-multilingual-coreml`을 사용하세요. 1,024-token 입력 한도에는 질문, 선택지, 상태가 모두 포함되며, `-ane` 변형은 96 tokens만 허용합니다. [원본 모델 사양](https://github.com/mizorewww/laya-coreml#available-checkpoints)을 참고하세요. [초기 설정](docs/Laya-CoreML-ja.md)을 마친 뒤 아래 명령을 사용하세요. 실행 중인 Laya worker를 종료한 후 새 모델로 시작해야 합니다. `LAYA_MODEL`은 기존 worker 스크립트의 이전 기본값도 덮어씁니다.
166
197
 
package/README.md CHANGED
@@ -129,11 +129,11 @@ Choose “使う” to use Lisp, “使わない” to use ordinary tools, or
129
129
  Ordinary edits and tests run without further confirmation after that choice. Source/data deletion and existing durable user database mutation require a concrete review. Lisp and ordinary tools coexist. Completion requires current item evidence and a fresh final check through the user’s entry point. See [Goal-driven coding](docs/coding-workflow.md) and [owned execution, receipts and memory reuse](docs/owned-execution.md).
130
130
  See [setup, APIs, limits and recovery](docs/lisp.md).
131
131
 
132
- ## Typed decisions (Jev / Laya / Nimble)
132
+ ## Typed decisions (Jev / Laya / OpenAI / Nimble)
133
133
 
134
- Optional [automatic model selection](docs/model-selection.md#automatic-model-selection) chooses a validated `openai-codex` model and reasoning effort for a new normal task. It defaults to `modelAutoMode.mode: off`; `/kioku-model-auto on | observe | off | status` changes only the current session. `observe` measures a proposal without changing the model. It requires a ready Jev or Laya backend, dsh-codex, native model metadata and a token meter. Failed or unavailable classification keeps the current model; manual model selection takes priority.
134
+ Optional [automatic model selection](docs/model-selection.md#automatic-model-selection) chooses a validated `openai-codex` model and reasoning effort for a new normal task. It defaults to `modelAutoMode.mode: off`; `/kioku-model-auto on | observe | off | status` changes only the current session. `observe` measures a proposal without changing the model. It requires a ready Jev, Laya or OpenAI backend, dsh-codex, native model metadata and a token meter. Failed or unavailable classification keeps the current model; manual model selection takes priority.
135
135
 
136
- [Answer review](docs/answer-review.md) is enabled by default on the full plugin and modular core. It evaluates an already displayed normal answer using the configured Jev, Laya or Nimble provider and may ask the same main model to reconsider once. The defaults are:
136
+ [Answer review](docs/answer-review.md) is enabled by default on the full plugin and modular core. It evaluates an already displayed normal answer using the configured Jev, Laya, OpenAI or Nimble provider and may ask the same main model to reconsider once. The defaults are:
137
137
 
138
138
  ```yaml
139
139
  answerReview:
@@ -144,38 +144,69 @@ answerReview:
144
144
  Set `answerReview.mode: off` to disable it. It inherits `typedDecisions`, adds evaluation inference (and at most one main-model turn), and does not delay the first answer. If the selected provider is unavailable, review is skipped and the original answer is preserved; no other provider is substituted. Laya v1 findings are unverified suggestions because worker-side truncation cannot be checked. `/kioku-decisions status` reports progress and skip reasons; it does not certify correctness.
145
145
 
146
146
 
147
- Jev is the default. Switch in DSH's command input without editing configuration or restarting DSH:
147
+ <a id="openai-decisions-setup"></a>
148
+ ### Set up OpenAI Decisions
148
149
 
149
- ```text
150
- /kioku-decisions use jev
151
- /kioku-decisions use laya
152
- /kioku-decisions use nimble
153
- /kioku-decisions use default
154
- ```
150
+ Jev remains the default; OpenAI, local Laya and Nimble are alternatives. OpenAI uses the official [Decisions API](https://developers.openai.com/api/docs/guides/decisions), `POST /v1/decisions`, with `gpt-6-luna` as this checkout's default decision model. This is separate from the main chat model: ChatGPT/Codex OAuth login does not supply `OPENAI_API_KEY`, and a TypeSafe/Jev key cannot replace it.
155
151
 
156
- Laya connects directly to the existing worker started by `start-laya`; no worker replacement or fingerprint setup is needed. Jev needs a TypeSafe key; Nimble needs an endpoint and model configured first. A successful probe saves the selection for this project and applies it to new requests. It survives restarts and preserves in-flight request bindings. `use default` restores the plugin configuration.
152
+ These instructions describe the current source. They do not assert that the published npm `latest` already includes OpenAI support. If `use openai` is unavailable, check the installed build's command support first.
157
153
 
158
- Set the API key in DSH's `~/.dsh/.credentials.yaml` (`$DSH_HOME/.credentials.yaml` if set), or use `/kioku-typesafe-key YOUR_KEY`. Keep any existing entries:
154
+ 1. Create an API key for your OpenAI API project and add it to the credential store used by the running DSH. With the standard `credentials-local` provider, choose the path as follows:
159
155
 
160
- ```yaml
161
- version: 1
162
- refs:
163
- TYPESAFE_API_KEY: YOUR_KEY
156
+ | Configuration | Credential file |
157
+ |---|---|
158
+ | Default harness home | `~/.dsh/.credentials.yaml` |
159
+ | Custom `DSH_HOME` | `$DSH_HOME/.credentials.yaml` |
160
+ | Explicit `credentials.path` (the provider's `config.path`) | The configured path, overriding the home default |
161
+
162
+ `--profile web` keeps profile packages and patches under `$DSH_HOME/profiles/web`; it does **not** by itself move credentials there. A profile can override `credentials.path`, or its launcher can use another `DSH_HOME`. Use that effective file, not a guessed `profiles/web/.credentials.yaml`.
163
+
164
+ 2. In an existing file, add only `OPENAI_API_KEY` under `refs` and preserve all other `refs` and `records`. This is a minimal **new-file example**, with a nonfunctional placeholder:
165
+
166
+ ```yaml
167
+ version: 1
168
+ refs:
169
+ OPENAI_API_KEY: "OPENAI_API_KEY_EXAMPLE_ONLY"
170
+ records: {}
171
+ ```
172
+
173
+ Replace the placeholder privately with your key. On macOS/Linux, protect the actual file; for the default path:
174
+
175
+ ```sh
176
+ chmod 600 "$HOME/.dsh/.credentials.yaml"
177
+ ```
178
+
179
+ Use your configured path instead when it differs. The default `watch: true` reloads valid file edits automatically for subsequent requests; restarting DSH is unnecessary. Do not paste keys into chat, screenshots or Git.
180
+
181
+ 3. In DSH's command input, select OpenAI and inspect the result:
182
+
183
+ ```text
184
+ /kioku-decisions use openai
185
+ /kioku-decisions status
186
+ ```
187
+
188
+ `use openai` makes a real API probe, which may incur usage charges. Only a successful probe and save persist the choice for this project and new requests; failure or cancellation keeps the prior choice. Existing requests keep their binding. `status` makes no inference call. Optional `/kioku-decisions probe` makes another real probe.
189
+
190
+ The standard provider resolves **saved file > launch environment > project `.env` > harness-home `.env`**. Environment variables still work when the credentials service is present, unless a saved value overrides them. For an environment-only setup, export the key **before** launching DSH from that shell:
191
+
192
+ ```sh
193
+ export OPENAI_API_KEY='OPENAI_API_KEY_EXAMPLE_ONLY'
164
194
  ```
165
195
 
166
- If creating the YAML file yourself, run `chmod 600 ~/.dsh/.credentials.yaml` (use `$DSH_HOME` if set).
196
+ This is a placeholder, not a usable key. An export in another shell after DSH has started does not update its launch snapshot; use the watched file to update an already running instance. Keep credential-bearing `.env` files out of Git.
167
197
 
168
- In the DSH command UI, check the key and test the connection:
198
+ Other selections remain available:
169
199
 
170
200
  ```text
171
- /kioku-typesafe-key status
172
- /kioku-decisions probe
173
- /kioku-decisions status
201
+ /kioku-decisions use jev
202
+ /kioku-decisions use laya
203
+ /kioku-decisions use nimble
204
+ /kioku-decisions use default
174
205
  ```
175
206
 
176
- `probe` sends a synthetic API request; `status` does not. `/kioku-typesafe-key clear` removes the stored key. Key input is visible when using `/kioku-typesafe-key YOUR_KEY`. See [typed decisions](docs/typed-decisions.md) and the [explicit Lisp API](docs/typesafe.md) for more.
207
+ Jev uses `TYPESAFE_API_KEY`; `/kioku-typesafe-key` manages only that key, never the OpenAI key. Laya connects to the existing `start-laya` worker at `~/Library/Caches/laya-coreml/worker.sock` using v1 `health`/`predict`. `install-laya` reuses a worker or shows setup instructions. Nimble requires its configured endpoint and model. `use default` restores the plugin configuration.
177
208
 
178
- Jev remains the default. Nimble and local [Laya-CoreML](docs/laya-coreml.md) are optional alternatives; Laya connects directly to `~/Library/Caches/laya-coreml/worker.sock` using the existing v1 `health`/`predict` protocol. `/kioku-decisions install-laya` reuses a running worker or shows setup instructions.
209
+ See [credential precedence, troubleshooting and configuration](docs/typed-decisions.md#openai-credentials), the [official credential-store reference](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/credentials/credentials-local/README.md), and the [TypeSafe Lisp API](docs/typesafe.md).
179
210
 
180
211
  Use `aac6fef/laya-multilingual-coreml` for English and other languages. Its 1,024-token input capacity includes the question, options and state; the `-ane` variant allows only 96 tokens. See the [upstream model specifications](https://github.com/mizorewww/laya-coreml#available-checkpoints). After the [initial setup](docs/Laya-CoreML-ja.md), use the following commands. Stop any running Laya worker before starting it with the new model; `LAYA_MODEL` also overrides the old default in an existing worker script.
181
212
 
package/README.zh-CN.md CHANGED
@@ -13,7 +13,7 @@ AgenticReplay 可记录模型和工具活动,查看记录并导出 HTML。
13
13
 
14
14
  新的修改任务可以选择普通执行或役小角(enno-oduno)。役小角支持推荐模板,也可从DSH已配置的模型中为各角色选择模型。[模型选择与连接限制](docs/model-selection.md)。
15
15
 
16
- 可选的[自动模型选择](docs/model-selection.md#automatic-model-selection)默认关闭(`modelAutoMode.mode: off`)。`/kioku-model-auto on | observe | off | status` 仅更改当前会话;`observe` 只记录建议,不更换模型。普通任务需要已就绪的 Jev 或 Laya、dsh-codex,以及 DSH 的模型元数据和 token meter。判定失败时保留当前模型,手动选择优先。
16
+ 可选的[自动模型选择](docs/model-selection.md#automatic-model-selection)默认关闭(`modelAutoMode.mode: off`)。`/kioku-model-auto on | observe | off | status` 仅更改当前会话;`observe` 只记录建议,不更换模型。普通任务需要已就绪的 Jev、Laya 或 OpenAI、dsh-codex,以及 DSH 的模型元数据和 token meter。判定失败时保留当前模型,手动选择优先。
17
17
 
18
18
  记忆功能是可选的。任务结束后,Kiokuko 会询问是否整理记录的经验,显示临时预览,并且只保存用户批准的确切修订版本。自动记忆写入已停用。[审查、回忆与遗忘](docs/replay-memory-review.md)。
19
19
 
@@ -114,11 +114,11 @@ DSH 更新后若无法加载 Kiokuko,请参阅[启动恢复步骤](docs/dsh-pl
114
114
 
115
115
  [文档](docs/README.md) · [权限](PERMISSIONS.md) · [MIT 许可证](LICENSE)
116
116
 
117
- ## 类型化判定(Jev / Laya / Nimble)
117
+ ## 类型化判定(Jev / Laya / OpenAI / Nimble)
118
118
 
119
- 可选的[自动模型选择](docs/model-selection.md#automatic-model-selection)会为新的普通任务选择经过验证的 `openai-codex` 模型和推理强度。默认值为 `modelAutoMode.mode: off`;`/kioku-model-auto on | observe | off | status` 仅更改当前会话。`observe` 评估建议,但不更换模型。此功能需要已就绪的 Jev 或 Laya 后端、dsh-codex、原生模型元数据和 token meter。分类失败或不可用时保留当前模型;手动选择优先。
119
+ 可选的[自动模型选择](docs/model-selection.md#automatic-model-selection)会为新的普通任务选择经过验证的 `openai-codex` 模型和推理强度。默认值为 `modelAutoMode.mode: off`;`/kioku-model-auto on | observe | off | status` 仅更改当前会话。`observe` 评估建议,但不更换模型。此功能需要已就绪的 Jev、Laya 或 OpenAI 后端、dsh-codex、原生模型元数据和 token meter。分类失败或不可用时保留当前模型;手动选择优先。
120
120
 
121
- [回答复核](docs/answer-review.md)在完整插件和模块化核心中默认启用。它通过配置的 Jev、Laya 或 Nimble provider 评估已经显示的普通回答,并可能让同一个主模型重新考虑一次。默认配置为:
121
+ [回答复核](docs/answer-review.md)在完整插件和模块化核心中默认启用。它通过配置的 Jev、Laya、OpenAI 或 Nimble provider 评估已经显示的普通回答,并可能让同一个主模型重新考虑一次。默认配置为:
122
122
 
123
123
  ```yaml
124
124
  answerReview:
@@ -128,38 +128,69 @@ answerReview:
128
128
 
129
129
  设置 `answerReview.mode: off` 可禁用此功能。它沿用 `typedDecisions` 配置,会增加评估推理(以及最多一轮主模型调用),但不会延迟首次回答。所选 provider 不可用时会跳过复核并保留原回答,不会替换为其他 provider。由于无法检查 worker 内部的截断,Laya v1 的评估结果仅作为未经验证的建议。`/kioku-decisions status` 显示进度与跳过原因,并不证明回答正确。
130
130
 
131
- Jev 是默认选项。在 DSH 命令输入框中即可切换,无需编辑配置或重启 DSH:
131
+ <a id="openai-decisions-setup"></a>
132
+ ### 设置 OpenAI Decisions
132
133
 
133
- ```text
134
- /kioku-decisions use jev
135
- /kioku-decisions use laya
136
- /kioku-decisions use nimble
137
- /kioku-decisions use default
138
- ```
134
+ 默认仍为 Jev,也可选择 OpenAI、本地 Laya 或 Nimble。OpenAI 使用官方 [Decisions API](https://developers.openai.com/api/docs/guides/decisions) 的 `POST /v1/decisions`;此源码中的默认判定模型为 `gpt-6-luna`。它与主聊天模型的认证分开:ChatGPT/Codex OAuth 登录不会提供 `OPENAI_API_KEY`,TypeSafe/Jev 密钥也不能替代它。
139
135
 
140
- Laya 直接连接由 `start-laya` 启动的现有 worker,无需替换 worker 或配置 fingerprint。Jev 需要 TypeSafe 密钥;Nimble 需要先配置端点和模型。探测成功后,所选项会按项目保存并应用于新的请求。重启后仍会保留,正在处理的请求所绑定的 provider 不变。`use default` 恢复插件配置。
136
+ 以下步骤对应当前源码,并不表示已发布的 npm `latest` 已包含 OpenAI 支持。如果没有 `use openai`,请先确认已安装 build 支持的命令。
141
137
 
142
- 在 DSH 的 `~/.dsh/.credentials.yaml`(设置了 `DSH_HOME` 时为 `$DSH_HOME/.credentials.yaml`)中设置 API 密钥,或使用 `/kioku-typesafe-key YOUR_KEY`。请保留已有条目:
138
+ 1. 为 OpenAI API 项目创建 API 密钥,添加到运行中的 DSH 使用的凭据存储中。标准 `credentials-local` 按以下规则选择文件:
143
139
 
144
- ```yaml
145
- version: 1
146
- refs:
147
- TYPESAFE_API_KEY: YOUR_KEY
140
+ | 配置 | 凭据文件 |
141
+ |---|---|
142
+ | 默认 harness home | `~/.dsh/.credentials.yaml` |
143
+ | 自定义 `DSH_HOME` | `$DSH_HOME/.credentials.yaml` |
144
+ | 显式 `credentials.path`(provider 的 `config.path`) | 指定路径,优先于 home 默认值 |
145
+
146
+ `--profile web` 的软件包和 patch 位于 `$DSH_HOME/profiles/web`,但该选项本身不会移动凭据文件。如果 profile 设置了 `credentials.path`,或 launcher 使用另一个 `DSH_HOME`,请编辑实际路径,不要猜测为 `profiles/web/.credentials.yaml`。
147
+
148
+ 2. 对于已有文件,只在 `refs` 下添加 `OPENAI_API_KEY`,保留其他所有 `refs` 和 `records`。以下是带有无效示例密钥的**新文件最小示例**:
149
+
150
+ ```yaml
151
+ version: 1
152
+ refs:
153
+ OPENAI_API_KEY: "OPENAI_API_KEY_EXAMPLE_ONLY"
154
+ records: {}
155
+ ```
156
+
157
+ 请在本机私下将示例值替换为真实密钥。macOS/Linux 上将实际文件权限设为600。默认路径的命令为:
158
+
159
+ ```sh
160
+ chmod 600 "$HOME/.dsh/.credentials.yaml"
161
+ ```
162
+
163
+ 如果更改了路径,也请修改命令中的路径。默认 `watch: true` 会自动重新读取有效的文件修改,供后续请求使用,无需重启 DSH。不要把密钥贴到对话、截图或 Git 中。
164
+
165
+ 3. 在 DSH 命令输入框中选择 OpenAI 并查看结果:
166
+
167
+ ```text
168
+ /kioku-decisions use openai
169
+ /kioku-decisions status
170
+ ```
171
+
172
+ `use openai` 的 probe 会调用真实 API,可能产生使用费用。只有 probe 和保存均成功后,才会为本项目的新请求保存选择;失败或取消时保留原选择,进行中的请求仍使用原 binding。`status` 不调用推理。可选的 `/kioku-decisions probe` 会再发送一次真实 probe。
173
+
174
+ 标准 provider 的优先级为 **保存文件 > 启动时环境变量 > 项目 `.env` > harness home `.env`**。即使 credentials 服务存在,只要没有更高优先级的保存值,环境变量仍可使用。若只使用环境变量,请在同一 shell 中启动 DSH **之前**设置:
175
+
176
+ ```sh
177
+ export OPENAI_API_KEY='OPENAI_API_KEY_EXAMPLE_ONLY'
148
178
  ```
149
179
 
150
- 如果手动创建 YAML 文件,请运行 `chmod 600 ~/.dsh/.credentials.yaml`(设置了 `DSH_HOME` 时使用对应路径)。
180
+ 此值只是不可用的示例。DSH 启动后在其他 shell 中 export 不会更新启动时 snapshot;更新运行中的实例应编辑 watch 监视的文件。含密钥的 `.env` 也不要提交到 Git。
151
181
 
152
- 在 DSH 命令界面中检查密钥并测试连接:
182
+ 其他选项仍可使用:
153
183
 
154
184
  ```text
155
- /kioku-typesafe-key status
156
- /kioku-decisions probe
157
- /kioku-decisions status
185
+ /kioku-decisions use jev
186
+ /kioku-decisions use laya
187
+ /kioku-decisions use nimble
188
+ /kioku-decisions use default
158
189
  ```
159
190
 
160
- `probe` 会发送合成的 API 测试请求,`status` 不会。`/kioku-typesafe-key clear` 可删除保存的密钥。使用 `/kioku-typesafe-key YOUR_KEY` 时,输入的密钥会显示在界面上。更多信息请参阅[类型化判定](docs/typed-decisions.md)和[显式 Lisp API](docs/typesafe.md)。
191
+ Jev 使用 `TYPESAFE_API_KEY`;`/kioku-typesafe-key` 只管理该密钥,不会保存 OpenAI 密钥。Laya 通过 `~/Library/Caches/laya-coreml/worker.sock` 的 v1 `health`/`predict` 连接 `start-laya` 启动的现有 worker。`install-laya` 会复用 worker 或显示设置说明。Nimble 需要预先配置端点和模型。`use default` 恢复插件配置。
161
192
 
162
- Jev 仍为默认选项。Nimble 和本地 [Laya-CoreML](docs/laya-coreml.md)是可选替代方案;Laya 使用现有 v1 `health`/`predict` 协议,直接连接 `~/Library/Caches/laya-coreml/worker.sock`。`/kioku-decisions install-laya` 会复用运行中的 worker,或显示设置说明。
193
+ 详情请参阅[优先级、设置与故障排查](docs/typed-decisions.md#openai-credentials)、[官方凭据存储说明](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/credentials/credentials-local/README.md)及 [TypeSafe Lisp API](docs/typesafe.md)。
163
194
 
164
195
  英语及其他语言请使用 `aac6fef/laya-multilingual-coreml`。其 1,024-token 输入容量包括问题、选项和状态;`-ane` 变体仅允许 96 tokens。请参阅[上游模型规格](https://github.com/mizorewww/laya-coreml#available-checkpoints)。完成[初始设置](docs/Laya-CoreML-ja.md)后,使用以下命令。请先停止正在运行的 Laya worker,再使用新模型启动;`LAYA_MODEL` 也会覆盖现有 worker 脚本中的旧默认值。
165
196
 
@@ -1,6 +1,14 @@
1
1
  export declare const DSH_MANAGED_BLOCK = "<!-- BEGIN KIOKUKO-DSH MANAGED BLOCK -->\n<!-- kiokuko-dsh-template-version: 3 -->\n<!-- Managed by kiokuko-dsh setup on plugin load. Edit outside the markers. -->\n\n## Kiokuko DSH\n\nApply this entire block only when the current host is DSH and kiokuko-dsh is enabled for this session.\nOtherwise ignore every instruction in this block, including Skill routing, tools, planning, memory and completion rules.\nThe presence of this block, repository files or installed packages does not activate it.\nOnly kiokuko-dsh may update this block; other plugins and agents must preserve it verbatim.\nDo not apply kiokuko or kiokuko-ai instruction blocks as kiokuko-dsh configuration.\n\nBefore any non-trivial Kiokuko-governed DSH work, read and apply the complete bundled `kiokuko-soul` Skill before any other Kiokuko Skill. The DSH host performs Akinator intake, binds the native session and complete capability catalog, and resolves actionable intake. Optional enrichment failures are degraded guidance. For new build, debug, review and devops tasks the host separately asks for normal execution or Enno and, when selected, a template or custom model configuration. Unanswered execution choices stay pending. Normal execution never creates an Enno contract or WorkUnit; preserve memory, Skills, native permissions and focused verification. Model routing and child delegation are host-owned. `task_prepare` and `task_answer` are host operations, not model tools. DSH intake belongs to the kiokuko-dsh host. Never substitute same-named task_prepare/task_answer MCP tools from kiokuko or kiokuko-ai. A failed external MCP call does not prove DSH intake failed; preserve the admitted host state and follow its current directive. Follow the admitted state and current directive, then route to `kiokuko-enno-oduno`, `kiokuko-simple-work`, `kiokuko-single-purpose-functions`, and `kiokuko-ui-design-soul` only when applicable. For changes spanning setup, delivery, persisted state, or runtime handoffs, apply `veteran-programmer-skill` before and after implementation. When writing or changing code, also apply `one-shot-software-completion` and `coding-ideal-routine-skill` through the SOUL route. Read every applicable specialist `SKILL.md` index, then only the expert fragments selected by the current WorkUnit or concrete risk. Never substitute, install, or execute fetched external Skill content.\n\nThe host owns request identity, session binding, memory delivery and finalization.\nUse its admitted workspace and directive; do not read or modify the SQLite file directly.\n\nUse kioku_read, kioku_write, kioku_edit, kioku_remove, kioku_exec and kioku_result for host-observed development. Project edits, external investigation, PATH commands, bash/zsh and builds/tests need no extra approval. Source/data deletion and durable user database mutations require concrete review; declare destructiveTargets for commands. Generated/temp/disposable artifacts are ordinary development. Lisp and normal tools coexist. Plan, goal, cancellation and execution ownership remain authoritative. Explicit human implementation instructions request Plan exit at the next accepted step; presenting a plan alone does not exit. Bind task_completion checks and relevant source/test/config paths before execution. Collect asynchronous final results. Host receipts distinguish work outcome, verification and saving; model fields such as passed cannot supply proof. Apply recalled candidates only after comparing conditions, provenance and source versions; old verification is not current success. After task completion ask permission to organize memories, show the exact proposal, and save only the approved revision. Comments require revision and another preview; decline saves nothing. Saving failures do not stop coding. Reconcile uncertain saves by the original approval key; never blindly create a new save identity or replay edits or commands.\n\nDiscover unfamiliar repository filenames with native glob/grep before read; use an exact returned path. Never infer a test filename from a source basename or treat remembered/example paths as current filesystem evidence. Explicit user targets may be read directly; if missing, report that fact and discover relevant alternatives without silently changing the requested target. After a not-found error, do not repeat the unchanged read or assume a sandbox/configuration fault; check current path evidence. Do not create placeholder files or silently substitute another target to hide a missing-file error.\n\n### Engineering changes\n\nFor generated artifacts, update the owning schema, template or generator, then use the repository's documented regeneration path and inspect the resulting diff; do not patch only the output.\n\n### UI design\n\nChoose design tokens by semantic role, not by current appearance. If a role is missing, extend the design system instead of repurposing an unrelated token; when changing theme contracts, verify supported light, dark and custom-theme fallback behavior.\n\n<!-- END KIOKUKO-DSH MANAGED BLOCK -->";
2
+ interface DshBlockLocation {
3
+ readonly start: number;
4
+ readonly end: number;
5
+ }
6
+ /** Locate one complete DSH-owned block and reject ambiguous ownership markers. */
7
+ export declare function locateDshBlock(existing: string): DshBlockLocation | undefined;
2
8
  /** Replace only a DSH-owned block, preserving every other product's instructions. */
3
9
  export declare function renderDshInstructions(existing: string): string;
10
+ /** Remove only a DSH-owned block and its following setup separator newline. */
11
+ export declare function renderDshRemoval(existing: string): string;
4
12
  /** Preflight both destinations before writing. A read-only check reports the same plan. */
5
13
  export declare function setupDsh(options?: {
6
14
  homeDirectory?: string;
@@ -19,5 +27,19 @@ export declare function setupDsh(options?: {
19
27
  status: string;
20
28
  };
21
29
  }>;
30
+ /** Explicitly retire matching deployed Skills and remove this product's AGENTS.md block. */
31
+ export declare function removeDshSetup(options?: {
32
+ homeDirectory?: string;
33
+ cwd?: string;
34
+ check?: boolean;
35
+ }): Promise<{
36
+ current: boolean;
37
+ skills: import("./standard-skill-deployment.js").StandardSkillRetirement;
38
+ instructions: {
39
+ path: string;
40
+ status: string;
41
+ };
42
+ }>;
22
43
  export declare function setupDshOnLoad(): Promise<void>;
44
+ export {};
23
45
  //# sourceMappingURL=setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/dsh/setup.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,iBAAiB,88JA6BvB,CAAA;AAEP,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAqB9D;AAYD,2FAA2F;AAC3F,wBAAsB,QAAQ,CAAC,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO;;;;;;;;;;;;GAoBrG;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAUpD"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/dsh/setup.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,iBAAiB,88JA6BvB,CAAA;AAEP,UAAU,gBAAgB;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAoB7E;AAED,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOzD;AAYD,2FAA2F;AAC3F,wBAAsB,QAAQ,CAAC,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO;;;;;;;;;;;;GAoBrG;AAYD,4FAA4F;AAC5F,wBAAsB,cAAc,CAAC,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO;;;;;;;GAa3G;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAUpD"}