kiokuko-dsh 0.1.50 → 0.1.51
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/README.ja.md +20 -18
- package/README.ko.md +11 -0
- package/README.md +20 -16
- package/README.zh-CN.md +11 -0
- package/dist/client.cjs +7 -4
- package/dist/client.d.ts.map +1 -1
- package/docs/continuity.ja.md +31 -0
- package/docs/continuity.md +22 -183
- package/package.json +1 -1
package/README.ja.md
CHANGED
|
@@ -2,15 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
[English](README.md) | 日本語 | [简体中文](README.zh-CN.md) | [한국어](README.ko.md)
|
|
4
4
|
|
|
5
|
-
[DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)
|
|
6
|
-
OrcaReplay でモデル・ツールの動作を記録し、内容の確認と HTML 出力もできます。
|
|
5
|
+
[DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) に、記憶・計画・検証・動作記録を追加するプラグインです。
|
|
7
6
|
|
|
7
|
+
## 機能
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
- **実行方式** — 通常実行と役小角(enno-oduno)を選べます。[詳細](docs/model-selection.ja.md)
|
|
10
|
+
- **プロジェクト記憶** — 作業で得た知識を後のタスクで検索できます。[基本概念](docs/concepts.ja.md)
|
|
11
|
+
- **Deep Planning** — 四つの役割で読み取り専用の調査・計画を行います。[使い方](docs/deep-planning.md)
|
|
12
|
+
- **Continuity** — 既定では無効です。`continuity.mode: active` にすると、最近の実行記録を短くまとめてモデルへ渡します。[設定方法](docs/continuity.ja.md)
|
|
13
|
+
- **記憶学習** — 完了した作業から再利用できる episode・教訓候補を作ります。[設定](docs/memory-evolution.md)
|
|
14
|
+
- **OrcaReplay** — モデル・ツールの動作を記録し、HTML に出力できます。[設定とコマンド](docs/orca-recording.md)
|
|
15
|
+
- **日本語出力** — 対応モデルへ自然な日本語を書く同梱 Skill を渡します。[詳細](docs/japanese-output.md)
|
|
14
16
|
|
|
15
17
|
## 導入と使い方
|
|
16
18
|
|
|
@@ -27,17 +29,6 @@ pnpm dsh web
|
|
|
27
29
|
起動後は普通に依頼を入力します。Kiokuko 専用の setup 操作は不要です。
|
|
28
30
|
GitHub・ローカルからの導入は [プラグインガイド](docs/dsh-plugin.md) を参照してください。
|
|
29
31
|
|
|
30
|
-
OrcaReplay の機能設定は自動導入され、**手動設定は不要**です。各チャットは確認なしで詳細ログを記録します。
|
|
31
|
-
記録すると、モデル応答やツール実行結果が作業プロジェクトの `.orca/runs/` に保存されます。判断はセッションごとに保持されるため、`/kioku-orca stop` したチャットは記録されないままです。毎回確認したい場合は `orca.askOnStart: true` を設定します。
|
|
32
|
-
|
|
33
|
-
- `/kioku-orca start`: 手動で記録を開始、または停止後に再開します。そのチャットを停止していなければ実行不要です。過去の動作は記録されません。
|
|
34
|
-
- `/kioku-orca status`: 記録状態・保存先・次の操作を短く表示します。診断用の詳細情報は `/kioku-orca status --json` で確認できます。
|
|
35
|
-
|
|
36
|
-
`/kioku-orca stop` でログを確定後、`list` で run ID を確認し、`show <run ID>` で内容を表示、`export <run ID>` で HTML を出力できます(いずれも `/kioku-orca` に続けて入力)。
|
|
37
|
-
無効にする場合は `orca.enabled: false` を設定して再読み込みします。詳細は [記録設定とコマンド](docs/orca-recording.md) を参照してください。
|
|
38
|
-
|
|
39
|
-
終了した作業から episode と教訓候補を生成します。初期設定の `active` では、根拠が有効な候補を次のセッションの検索・自動注入に使います。候補生成だけにする場合は `observe`、停止する場合は `off` を指定します。状態は `/kioku-evolution status`、詳細は [記憶学習の設定・検証](docs/memory-evolution.md) を参照してください。
|
|
40
|
-
|
|
41
32
|
## 更新
|
|
42
33
|
|
|
43
34
|
作業中のタスクを終えて DSH を停止してから更新します。npm 版の Kiokuko 本体の更新:
|
|
@@ -47,6 +38,17 @@ pnpm dsh plugin --profile web update kiokuko-dsh --latest
|
|
|
47
38
|
pnpm dsh web
|
|
48
39
|
```
|
|
49
40
|
|
|
41
|
+
Kiokuko は更新頻度が高く、pnpm 11 では公開後24時間未満のバージョンを
|
|
42
|
+
[`minimumReleaseAge`](https://pnpm.io/settings/dependency-resolution#minimumreleaseage)
|
|
43
|
+
により既定で選びません。`update --latest` を実行しても旧版のままになる場合は、
|
|
44
|
+
`~/.dsh/profiles/web/pnpm-workspace.yaml`(`pnpm-lock.yaml` ではありません)の
|
|
45
|
+
`minimumReleaseAgeExclude` に次を追加し、更新コマンドを再実行します。
|
|
46
|
+
|
|
47
|
+
```yaml
|
|
48
|
+
minimumReleaseAgeExclude:
|
|
49
|
+
- kiokuko-dsh
|
|
50
|
+
```
|
|
51
|
+
|
|
50
52
|
起動時に、日本語出力を含む全8 Skillと参照ファイルを `~/.agents/skills/` へ同期します。不足分を作成し、管理対象の旧版を更新します。非管理ファイルは上書きしません。他のエージェントではSkillカタログの再読み込みが必要です。
|
|
51
53
|
|
|
52
54
|
起動時には、起動ディレクトリの `AGENTS.md` にある既存の Kiokuko 管理ブロックも更新し、その外側の指示は保持します。パッケージ更新後は DSH を再起動してください。別の作業ディレクトリや配備コピーの確認・修復は[セットアップ手順](docs/dsh-plugin.md#what-setup-updates-and-when)を参照してください。`kiokuko use` は DSH のセットアップコマンドではありません。
|
package/README.ko.md
CHANGED
|
@@ -40,6 +40,17 @@ pnpm dsh plugin --profile web update kiokuko-dsh --latest
|
|
|
40
40
|
pnpm dsh web
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
+
Kiokuko는 자주 업데이트되며, pnpm 11은 기본적으로
|
|
44
|
+
[`minimumReleaseAge`](https://pnpm.io/settings/dependency-resolution#minimumreleaseage)를
|
|
45
|
+
적용해 공개 후 24시간이 지나지 않은 버전을 선택하지 않습니다. `update --latest`를 실행해도
|
|
46
|
+
이전 버전이 유지되면 `~/.dsh/profiles/web/pnpm-workspace.yaml`(`pnpm-lock.yaml`이 아님)의
|
|
47
|
+
`minimumReleaseAgeExclude`에 다음 설정을 추가한 뒤 업데이트 명령을 다시 실행하세요.
|
|
48
|
+
|
|
49
|
+
```yaml
|
|
50
|
+
minimumReleaseAgeExclude:
|
|
51
|
+
- kiokuko-dsh
|
|
52
|
+
```
|
|
53
|
+
|
|
43
54
|
시작 시 일본어 출력 Skill을 포함한 번들 Skill 8개와 참조 파일을 `~/.agents/skills/`에 동기화합니다. 누락된 파일을 만들고 관리 대상 복사본을 업데이트하며, 비관리 파일은 덮어쓰지 않습니다. 다른 에이전트에서는 Skill 카탈로그를 다시 로드해야 합니다.
|
|
44
55
|
|
|
45
56
|
시작 시 시작 디렉터리의 `AGENTS.md`에 있는 기존 Kiokuko 관리 블록도 갱신하며, 블록 밖의 지침은 보존합니다. 패키지 업데이트 후 DSH를 다시 시작하세요. 다른 작업 디렉터리나 오래된 복사본의 확인 및 복구는 [설정 절차](docs/dsh-plugin.md#what-setup-updates-and-when)를 참고하세요. `kiokuko use`는 DSH 설정 명령이 아닙니다.
|
package/README.md
CHANGED
|
@@ -2,16 +2,18 @@
|
|
|
2
2
|
# Kiokuko(記憶庫) DeepSeek Harness Plugin
|
|
3
3
|
[日本語](README.ja.md) | [简体中文](README.zh-CN.md) | [한국어](README.ko.md)
|
|
4
4
|
|
|
5
|
-
Kiokuko adds
|
|
5
|
+
Kiokuko adds memory, planning, verification, and observability to
|
|
6
6
|
[DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness).
|
|
7
|
-
OrcaReplay records model/tool activity for inspection and HTML export.
|
|
8
7
|
|
|
8
|
+
## Features
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
- **Execution modes** — Choose normal execution or 役小角(enno-oduno) for role-based planning and verification. [Details](docs/model-selection.md)
|
|
11
|
+
- **Project memory** — Retrieve useful project knowledge for later work. [Concepts](docs/concepts.md)
|
|
12
|
+
- **Deep planning** — Run bounded, read-only investigation with four roles. [Usage](docs/deep-planning.md)
|
|
13
|
+
- **Continuity** — Disabled by default. Set `continuity.mode: active` to summarize recent execution evidence for the model. [Setup](docs/continuity.md)
|
|
14
|
+
- **Memory evolution** — Turn completed work into reusable episode and lesson candidates. [Settings](docs/memory-evolution.md)
|
|
15
|
+
- **OrcaReplay** — Record model/tool activity and export it as HTML. [Settings and commands](docs/orca-recording.md)
|
|
16
|
+
- **Japanese output** — Give supported models a bundled Skill for natural Japanese. [Details](docs/japanese-output.md)
|
|
15
17
|
|
|
16
18
|
## Install and use
|
|
17
19
|
|
|
@@ -28,15 +30,6 @@ If you use a globally installed `dsh` CLI, omit `pnpm` from the commands.
|
|
|
28
30
|
Enter your task normally; no Kiokuko setup command is needed.
|
|
29
31
|
For GitHub/local installation, see the [plugin guide](docs/dsh-plugin.md).
|
|
30
32
|
|
|
31
|
-
OrcaReplay is configured automatically; **no manual setup is required**. Every chat records detailed logs without asking.
|
|
32
|
-
Recording saves model responses and tool results to `.orca/runs/` in the session workspace. A decision is remembered per session, so `/kioku-orca stop` keeps that chat unrecorded; set `orca.askOnStart: true` to ask at the start of each chat instead.
|
|
33
|
-
|
|
34
|
-
- `/kioku-orca start`: start recording manually or resume after stopping. Not needed unless this chat was stopped earlier; past activity is not captured.
|
|
35
|
-
- `/kioku-orca status`: briefly show the recording state, storage location, and next action. Use `/kioku-orca status --json` for diagnostic details.
|
|
36
|
-
|
|
37
|
-
Use `/kioku-orca stop` to finalize the log, `list` to find its run ID, `show <run ID>` to inspect it, and `export <run ID>` to create HTML (all under `/kioku-orca`).
|
|
38
|
-
To disable recording, set `orca.enabled: false` and reload. See [recording settings and commands](docs/orca-recording.md).
|
|
39
|
-
|
|
40
33
|
## Update
|
|
41
34
|
|
|
42
35
|
Finish active tasks and stop DSH before updating. Update the npm-installed plugin:
|
|
@@ -46,6 +39,17 @@ pnpm dsh plugin --profile web update kiokuko-dsh --latest
|
|
|
46
39
|
pnpm dsh web
|
|
47
40
|
```
|
|
48
41
|
|
|
42
|
+
Kiokuko releases frequently, and pnpm 11 applies a 24-hour
|
|
43
|
+
[`minimumReleaseAge`](https://pnpm.io/settings/dependency-resolution#minimumreleaseage)
|
|
44
|
+
by default. If `update --latest` keeps the previous version, add Kiokuko to
|
|
45
|
+
`minimumReleaseAgeExclude` in `~/.dsh/profiles/web/pnpm-workspace.yaml` (not
|
|
46
|
+
`pnpm-lock.yaml`), then run the update command again:
|
|
47
|
+
|
|
48
|
+
```yaml
|
|
49
|
+
minimumReleaseAgeExclude:
|
|
50
|
+
- kiokuko-dsh
|
|
51
|
+
```
|
|
52
|
+
|
|
49
53
|
At startup, all eight bundled Skills (including Japanese output) and their references are synchronized to `~/.agents/skills/`. Missing files are created and managed copies are updated; unmanaged files are preserved. Other agents must reload their Skill catalog.
|
|
50
54
|
|
|
51
55
|
Startup also refreshes an existing Kiokuko managed block in the startup directory’s `AGENTS.md`, preserving your other instructions. Restart DSH after updating the package. See [setup and verification](docs/dsh-plugin.md#what-setup-updates-and-when) for another workspace or stale copies; `kiokuko use` is not the DSH setup command.
|
package/README.zh-CN.md
CHANGED
|
@@ -40,6 +40,17 @@ pnpm dsh plugin --profile web update kiokuko-dsh --latest
|
|
|
40
40
|
pnpm dsh web
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
+
Kiokuko 更新频繁,而 pnpm 11 默认通过
|
|
44
|
+
[`minimumReleaseAge`](https://pnpm.io/settings/dependency-resolution#minimumreleaseage)
|
|
45
|
+
延迟选择发布不足24小时的版本。如果执行 `update --latest` 后仍停留在旧版本,请在
|
|
46
|
+
`~/.dsh/profiles/web/pnpm-workspace.yaml`(不是 `pnpm-lock.yaml`)的
|
|
47
|
+
`minimumReleaseAgeExclude` 中添加以下设置,然后重新执行更新命令:
|
|
48
|
+
|
|
49
|
+
```yaml
|
|
50
|
+
minimumReleaseAgeExclude:
|
|
51
|
+
- kiokuko-dsh
|
|
52
|
+
```
|
|
53
|
+
|
|
43
54
|
启动时会将包括日语输出在内的全部8个内置 Skill 及其引用文件同步到 `~/.agents/skills/`,创建缺失文件并更新受管理的副本,不覆盖非受管理文件。其他代理需要重新加载 Skill 目录。
|
|
44
55
|
|
|
45
56
|
启动时也会更新启动目录中 `AGENTS.md` 的现有 Kiokuko 管理块,保留块外的指令。更新包后请重启 DSH。其他工作目录或旧副本的检查与修复请参阅[设置步骤](docs/dsh-plugin.md#what-setup-updates-and-when)。`kiokuko use` 不是 DSH 的设置命令。
|
package/dist/client.cjs
CHANGED
|
@@ -390,7 +390,10 @@ window.__ModuleLoader__.load({
|
|
|
390
390
|
const question = pending.questions[0];
|
|
391
391
|
const inputKind = questionInputKind(question);
|
|
392
392
|
const mac = /Mac|iPhone|iPad|iPod/u.test(globalThis.navigator?.platform ?? '');
|
|
393
|
-
const
|
|
393
|
+
const userAgent = globalThis.navigator?.userAgent ?? '';
|
|
394
|
+
const safari = mac && /Safari\//u.test(userAgent) && !/(?:Chrome|Chromium|CriOS|Edg|OPR)\//u.test(userAgent);
|
|
395
|
+
const controlShortcut = !mac || safari;
|
|
396
|
+
const shortcutModifier = controlShortcut ? 'Ctrl' : 'Cmd';
|
|
394
397
|
const [draft, setDraft] = useState(() => intakeDrafts.get(pending) ?? { selected: null, custom: '' });
|
|
395
398
|
const [busy, setBusy] = useState(false);
|
|
396
399
|
const [error, setError] = useState('');
|
|
@@ -453,7 +456,7 @@ window.__ModuleLoader__.load({
|
|
|
453
456
|
const selectShortcut = (event) => {
|
|
454
457
|
if (busy || inFlight.current || event.repeat || event.isComposing || event.keyCode === 229
|
|
455
458
|
|| event.nativeEvent?.isComposing || event.nativeEvent?.keyCode === 229 || event.altKey || event.shiftKey
|
|
456
|
-
|| !(
|
|
459
|
+
|| !(controlShortcut ? event.ctrlKey && !event.metaKey : event.metaKey && !event.ctrlKey))
|
|
457
460
|
return false;
|
|
458
461
|
const digit = /^(?:Digit|Numpad)([1-9])$/u.exec(event.code ?? '')?.[1] ?? event.key;
|
|
459
462
|
if (!/^[1-9]$/u.test(digit) || Number(digit) > question.options.length)
|
|
@@ -477,7 +480,7 @@ window.__ModuleLoader__.load({
|
|
|
477
480
|
};
|
|
478
481
|
owner.addEventListener('keydown', listener, true);
|
|
479
482
|
return () => owner.removeEventListener('keydown', listener, true);
|
|
480
|
-
}, [pending, busy,
|
|
483
|
+
}, [pending, busy, controlShortcut]);
|
|
481
484
|
const keyDown = (event) => {
|
|
482
485
|
if (selectShortcut(event))
|
|
483
486
|
return;
|
|
@@ -522,7 +525,7 @@ window.__ModuleLoader__.load({
|
|
|
522
525
|
key: option.label, type: 'button', className: 'kiokuko-intake-option', disabled: busy,
|
|
523
526
|
ref: (element) => { optionElements.current[index] = element; },
|
|
524
527
|
'aria-pressed': draft.selected === index,
|
|
525
|
-
...(index < 9 ? { 'aria-keyshortcuts': `${question.options.length <= 9 ? `${index + 1} ` : ''}${
|
|
528
|
+
...(index < 9 ? { 'aria-keyshortcuts': `${question.options.length <= 9 ? `${index + 1} ` : ''}${controlShortcut ? 'Control' : 'Meta'}+${index + 1}` } : {}),
|
|
526
529
|
onClick: () => update({ selected: index, custom: '' }),
|
|
527
530
|
onKeyDown: (event) => {
|
|
528
531
|
if (event.key !== 'Enter' || event.repeat || event.shiftKey || event.ctrlKey || event.altKey || event.metaKey || event.nativeEvent?.isComposing || event.nativeEvent?.keyCode === 229 || (intakeDrafts.get(pending) ?? draft).selected !== index)
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAKA,UAAU,wBAAwB;IAChC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;QAAE,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAA;KAAE,CAAC,CAAA;IAC7G,QAAQ,EAAE;QAAE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CACxC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,wBAAwB,CAAA;CAC3C;AAYD,UAAU,gBAAgB;IACxB,QAAQ,CAAC,cAAc,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAA;SAAE,CAAA;KAAE,CAAA;IACxF,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAA;KAC3F,CAAA;IACD,QAAQ,CAAC,KAAK,EAAE;QACd,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,GAAG,OAAO,CAAA;QACtD,QAAQ,CACN,UAAU,EAAE;YACV,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;YACrB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;YACpB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;YACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;YAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;YAC7D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;YACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAChD,EACD,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,GACrD,OAAO,CAAA;KACX,CAAA;IACD,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;IAChF,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAA;CACtI;AA0ED,+EAA+E;AAC/E,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,GAAG,WAAW,CAAC,CAqBjH;AAuHD,eAAO,MAAM,MAAM,gDAAiD,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAKA,UAAU,wBAAwB;IAChC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;QAAE,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAA;KAAE,CAAC,CAAA;IAC7G,QAAQ,EAAE;QAAE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CACxC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,wBAAwB,CAAA;CAC3C;AAYD,UAAU,gBAAgB;IACxB,QAAQ,CAAC,cAAc,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAA;SAAE,CAAA;KAAE,CAAA;IACxF,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAA;KAC3F,CAAA;IACD,QAAQ,CAAC,KAAK,EAAE;QACd,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,GAAG,OAAO,CAAA;QACtD,QAAQ,CACN,UAAU,EAAE;YACV,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;YACrB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;YACpB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;YACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;YAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;YAC7D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;YACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAChD,EACD,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,GACrD,OAAO,CAAA;KACX,CAAA;IACD,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;IAChF,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAA;CACtI;AA0ED,+EAA+E;AAC/E,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,GAAG,WAAW,CAAC,CAqBjH;AAuHD,eAAO,MAAM,MAAM,gDAAiD,CAAA;AAyVpE,mEAAmE;AACnE,wBAAgB,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAgCjD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Continuity
|
|
2
|
+
|
|
3
|
+
## 機能
|
|
4
|
+
|
|
5
|
+
最近の実行記録を短くまとめ、`kiokuko:execution` に表示します。
|
|
6
|
+
|
|
7
|
+
- `off`: 無効(既定値)
|
|
8
|
+
- `shadow`: 要約を作るが、モデルへの入力は変えない
|
|
9
|
+
- `active`: 最近の証拠表示を要約に置き換える
|
|
10
|
+
|
|
11
|
+
## メリット
|
|
12
|
+
|
|
13
|
+
何を読んだか、次に何を確認すべきかをモデルが把握しやすくなります。
|
|
14
|
+
要約のサイズと件数には上限があるため、コンテキストの増加も抑えられます。
|
|
15
|
+
|
|
16
|
+
## 設定方法
|
|
17
|
+
|
|
18
|
+
`~/.dsh/profiles/web/cordis.patch.yml` に次を追加します。
|
|
19
|
+
|
|
20
|
+
```yaml
|
|
21
|
+
- id: kiokuko-dsh
|
|
22
|
+
config:
|
|
23
|
+
continuity:
|
|
24
|
+
mode: active
|
|
25
|
+
maxSupplementBytes: 4096
|
|
26
|
+
maxItems: 12
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
同じ行にほかの `config` がある場合は、その設定を残したまま `continuity` を追加してください。
|
|
30
|
+
`web` プロファイルでは自動で反映されます。設定内容は
|
|
31
|
+
`dsh --profile web --dump-config` で確認できます。
|
package/docs/continuity.md
CHANGED
|
@@ -1,193 +1,32 @@
|
|
|
1
|
-
# Continuity
|
|
1
|
+
# Continuity
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
not save model hidden state, train a model, add memory tables, issue model
|
|
5
|
-
requests, or advance a run. Deep planning keeps its existing prompts and state.
|
|
3
|
+
## What it does
|
|
6
4
|
|
|
7
|
-
|
|
5
|
+
Continuity adds a short summary of recent execution evidence to
|
|
6
|
+
`kiokuko:execution`.
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
- `off`: disabled (default)
|
|
9
|
+
- `shadow`: builds the summary without changing the model input
|
|
10
|
+
- `active`: replaces the recent-evidence section with the summary
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
continuity:
|
|
14
|
-
mode: off # off | shadow | active
|
|
15
|
-
maxSupplementBytes: 4096 # integer, 512..8192 UTF-8 bytes
|
|
16
|
-
maxItems: 12 # integer, 1..24
|
|
17
|
-
efficiency:
|
|
18
|
-
observe: true # optional bounded in-memory numeric observations
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
`off` leaves the existing evidence presentation in place and does no continuity
|
|
22
|
-
source loading or view construction. `shadow` constructs the proposed display
|
|
23
|
-
but sends the same text as `off`. `active` replaces the recent-evidence portion
|
|
24
|
-
of `kiokuko:execution`; it preserves the existing frame, constraints, exploration
|
|
25
|
-
notice, terminal notice and formal Enno directive. It does not copy memory or
|
|
26
|
-
the directive's criteria and next action into another permanent snapshot.
|
|
27
|
-
|
|
28
|
-
Whole items are selected within the configured byte and item limits; at most
|
|
29
|
-
three next-check items can be displayed. The footer always states coverage and
|
|
30
|
-
omitted item count. The byte budget applies to the supplement, not the original
|
|
31
|
-
request, mandatory conditions or directive. `complete` means that the selected
|
|
32
|
-
adapter fields were available, not that the task succeeded or a whole document
|
|
33
|
-
was read. The evidence window remains bounded to the existing 32 records; when
|
|
34
|
-
that window is full, coverage is conservatively `partial` even if all displayed
|
|
35
|
-
items fit. Its footer cannot count unknown records outside the loaded window.
|
|
36
|
-
|
|
37
|
-
## Ownership and delivery
|
|
38
|
-
|
|
39
|
-
The host resolves the native session/run binding, updates intake and the
|
|
40
|
-
execution frame, and supplies committed evidence. The adapter and renderer are
|
|
41
|
-
deterministic functions with no I/O. Source digests include the owner, frame
|
|
42
|
-
content and generation; Enno additionally includes contract/mutation revision,
|
|
43
|
-
route, directive and next action. A separate body digest describes display
|
|
44
|
-
content. Neither digest is proof of correctness or authorization.
|
|
45
|
-
|
|
46
|
-
The normal adapter ranks incomplete acquisition/presentation first, exact
|
|
47
|
-
explicit read targets second, and recent observations next. All acquisition
|
|
48
|
-
records are historical. A previous `presentation: full` is never asserted to be
|
|
49
|
-
full in the current request. The final stream seam observes actual native tool
|
|
50
|
-
results; the short supplement itself is not a full presentation of that result.
|
|
51
|
-
|
|
52
|
-
The Enno adapter accepts only the bound run, native session, workspace, contract,
|
|
53
|
-
route, role and current WorkUnit. It includes reports for that WorkUnit and its
|
|
54
|
-
declared dependencies, explicitly labeled `model-report / unknown`. It does not
|
|
55
|
-
promote `outcome: completed` into test success. Final verifier records remain
|
|
56
|
-
`unknown` with respect to current repository freshness. The existing Enno service
|
|
57
|
-
still owns the freshness and authorization checks. Raw verifier output is not
|
|
58
|
-
copied into the supplement.
|
|
59
|
-
|
|
60
|
-
The current integration needs one additional existing-service Enno snapshot read
|
|
61
|
-
per nonterminal, unpaused model request in `shadow` or `active`. It uses the
|
|
62
|
-
service's existing repository/verification checks; it does not run verifiers.
|
|
63
|
-
This cost is not claimed as an optimization. Normal execution adds no DB read.
|
|
64
|
-
Source mismatch or optional rendering failure degrades the supplement without
|
|
65
|
-
changing the existing directive, tool outcome or authorization checks.
|
|
66
|
-
|
|
67
|
-
Both native snapshot projection paths use retained surface events. An old
|
|
68
|
-
snapshot remaining only in append-only history cannot suppress re-delivery or
|
|
69
|
-
revive another plugin's compacted section. The current assembly's other sections
|
|
70
|
-
are preserved. Without a direct surface API, the existing append/replace replay
|
|
71
|
-
helper reconstructs retained events; invalid history cannot establish delivery.
|
|
72
|
-
An uncommitted projection attempt is never evidence of delivery. No extra
|
|
73
|
-
delivery cache or native session-event type is introduced.
|
|
74
|
-
|
|
75
|
-
`efficiency.observe` exposes bounded `snapshot().continuity` entries containing
|
|
76
|
-
only mode, bytes, item/omission counts, coverage and copies found in the final
|
|
77
|
-
request. No source text, paths, credentials or source digest is recorded there.
|
|
78
|
-
Observer errors leave `next()` and the original stream outcome unchanged.
|
|
79
|
-
|
|
80
|
-
## Disable and recover
|
|
81
|
-
|
|
82
|
-
Set `continuity.mode: off` and reload the plugin. The next request rebuilds the
|
|
83
|
-
existing execution section, replacing the active supplement. The original
|
|
84
|
-
conversation, conditions, evidence and Enno state remain. Resume uses the
|
|
85
|
-
existing run/session route and lease rules; it neither replays tools nor moves
|
|
86
|
-
state to a different run. No schema migration or rollback migration is needed.
|
|
87
|
-
No unsupported new cross-session resume capability is added.
|
|
88
|
-
|
|
89
|
-
## Verification and measurements
|
|
12
|
+
## Benefits
|
|
90
13
|
|
|
91
|
-
The
|
|
92
|
-
The
|
|
93
|
-
to the plan's baseline before implementation. The lockfile hashes and one
|
|
94
|
-
scripted native lifecycle per mode are recorded in
|
|
95
|
-
[`baseline.json`](../tests/fixtures/continuity/baseline.json).
|
|
14
|
+
The model can quickly see what was already read and what still needs checking.
|
|
15
|
+
The summary is limited by size and item count, so context growth stays bounded.
|
|
96
16
|
|
|
97
|
-
|
|
98
|
-
one current snapshot was required. The existing focused baseline had 16 passing
|
|
99
|
-
tests. The added tests inspect the real DSH `0.1.5-rc.1` final model request after
|
|
100
|
-
native surface replacement and same-run plugin reload, plus observer failures,
|
|
101
|
-
late refreshes, mode changes, hostile text, source ownership, byte limits,
|
|
102
|
-
dependency reports and verifier labels.
|
|
17
|
+
## Setup
|
|
103
18
|
|
|
104
|
-
|
|
105
|
-
`shadow` request byte array matched `off` exactly. `active` increased bytes;
|
|
106
|
-
this is not evidence of improved reasoning, speed or token efficiency. Mock
|
|
107
|
-
usage is not real model usage. SQL counts, DB timings, expansion counts and
|
|
108
|
-
provider tokens were not measured and remain `null`. PR-4 retrieval caching is
|
|
109
|
-
therefore not implemented. No adoption or default-enable conclusion is drawn.
|
|
19
|
+
Add the following to `~/.dsh/profiles/web/cordis.patch.yml`:
|
|
110
20
|
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
The runtime fixture is `tests/fixtures/dsh-runtime/package-lock.json`, as in CI.
|
|
120
|
-
Verification used Node `v26.7.0`, npm `11.19.0` and DSH `0.1.5-rc.1` on macOS.
|
|
121
|
-
Packaged install, Web bundle load, reload and uninstall were exercised with
|
|
122
|
-
the existing CLI lifecycle checks in an isolated profile and home directory.
|
|
123
|
-
|
|
124
|
-
Verification on 2026-09-14:
|
|
125
|
-
|
|
126
|
-
| Check | Result |
|
|
127
|
-
| --- | --- |
|
|
128
|
-
| Typecheck, build, publint, pack closure/import checks | Passed |
|
|
129
|
-
| Full suite with required pinned native runtime | 688 passed; one CLI-path-dependent test initially skipped |
|
|
130
|
-
| Initially skipped bundle-install test with explicit `DSH_BIN` | Passed, no skip |
|
|
131
|
-
| Final continuity suite (including real native requests) | 23 passed, no skips |
|
|
132
|
-
| Real Enno native resume/verification/completion with active continuity | Passed |
|
|
133
|
-
| Sample database initialization and resume | Passed |
|
|
134
|
-
| Evolution regression suite | 33 passed |
|
|
135
|
-
| Efficiency and Akinator synthetic evaluations | Completed; not model capability evidence |
|
|
136
|
-
| Packaged CLI install/Web/reload/uninstall | Passed using the existing lifecycle portion separately from native tests |
|
|
137
|
-
| Configured evaluation runner | Mock-fetch budget, privacy and output-reuse tests passed; no real provider used |
|
|
138
|
-
|
|
139
|
-
Contracts were reviewed with `code.boundary.v1`, `code.protocol.v1` and
|
|
140
|
-
`code.verification.v1`; the evaluation I/O also used `code.effects.v1`.
|
|
141
|
-
The flow checked was config → native host → committed sources → execution
|
|
142
|
-
snapshot → final request → numeric observation, including packaged activation
|
|
143
|
-
and reload. No retrieved memory claims were supplied for this implementation.
|
|
144
|
-
|
|
145
|
-
## Explicit model evaluation
|
|
146
|
-
|
|
147
|
-
```sh
|
|
148
|
-
npm run test:evaluation:continuity
|
|
149
|
-
# No configuration: unmeasured; no network or model calls.
|
|
150
|
-
npm run test:evaluation:continuity -- \
|
|
151
|
-
--config continuity-evaluation.local.json --output continuity-evaluation-results
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
Run these commands from a source checkout. The runner evaluates six fixed **context recovery probes**, not full repository
|
|
155
|
-
tasks or a new autonomous loop. The fixture digest and exact JSON grading rules
|
|
156
|
-
are fixed in `tests/fixtures/continuity/manifest.json` and `scenarios.json`.
|
|
157
|
-
Each trial gets a disposable workspace, fixed input, model/settings and budget;
|
|
158
|
-
it never opens the user's DB or sessions. A/B order is randomized by seed.
|
|
159
|
-
Pairing and bootstrap intervals use scenarios, not individual turns. Small
|
|
160
|
-
sample intervals do not establish the plan's end-to-end adoption criteria.
|
|
161
|
-
The plan's larger, real-agent pilot remains a separate evaluation.
|
|
162
|
-
|
|
163
|
-
Example configuration for a compatible chat-completions endpoint:
|
|
164
|
-
|
|
165
|
-
```json
|
|
166
|
-
{
|
|
167
|
-
"fixture": "continuity-v1",
|
|
168
|
-
"baseUrl": "http://127.0.0.1:8080/v1",
|
|
169
|
-
"model": "your-model",
|
|
170
|
-
"revision": "your-pinned-revision",
|
|
171
|
-
"temperature": 0,
|
|
172
|
-
"contextWindow": 32768,
|
|
173
|
-
"maxOutputTokens": 256,
|
|
174
|
-
"repetitions": 2,
|
|
175
|
-
"seed": 42,
|
|
176
|
-
"maxRequests": 24,
|
|
177
|
-
"maxTokens": 792576,
|
|
178
|
-
"maxDurationMs": 600000,
|
|
179
|
-
"allowRemote": false
|
|
180
|
-
}
|
|
21
|
+
```yaml
|
|
22
|
+
- id: kiokuko-dsh
|
|
23
|
+
config:
|
|
24
|
+
continuity:
|
|
25
|
+
mode: active
|
|
26
|
+
maxSupplementBytes: 4096
|
|
27
|
+
maxItems: 12
|
|
181
28
|
```
|
|
182
29
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
declared context window plus maximum output against the total token budget.
|
|
187
|
-
Reservations are conservative limits, not reported usage. Missing usage stays
|
|
188
|
-
`null`; no retry is issued for uncertain failures. Cache state is uncontrolled
|
|
189
|
-
and the declared immutable model revision is not independently verified.
|
|
190
|
-
Existing reports are rejected before making calls. Reports contain bounded
|
|
191
|
-
measurements and scores, not prompts, response text or authentication data.
|
|
192
|
-
|
|
193
|
-
Real-model results are currently **unmeasured**. `off` remains the default.
|
|
30
|
+
If the row already has other `config` values, keep them and add `continuity`
|
|
31
|
+
alongside them. The `web` profile reloads the change automatically. Check the
|
|
32
|
+
loaded configuration with `dsh --profile web --dump-config`.
|