watashi-db 0.0.5 → 0.0.8

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.
Files changed (192) hide show
  1. package/.claude-docs/CODEX_INTEGRATION.md +116 -0
  2. package/README.md +120 -62
  3. package/Usersj.miyamoto.watashi-dbdefault.db +0 -0
  4. package/cowork-plugin/.claude-plugin/plugin.json +1 -1
  5. package/cowork-plugin/.mcp.json +1 -1
  6. package/cowork-plugin/hooks/hooks.json +18 -0
  7. package/cowork-plugin/skills/recall/SKILL.md +36 -0
  8. package/dist/config/loader.d.ts +12 -0
  9. package/dist/config/loader.js +73 -0
  10. package/dist/config/loader.js.map +1 -0
  11. package/dist/config/schema.d.ts +406 -0
  12. package/dist/config/schema.js +78 -0
  13. package/dist/config/schema.js.map +1 -0
  14. package/dist/config/validator.d.ts +22 -0
  15. package/dist/config/validator.js +194 -0
  16. package/dist/config/validator.js.map +1 -0
  17. package/dist/constants.d.ts +15 -4
  18. package/dist/constants.js +67 -6
  19. package/dist/constants.js.map +1 -1
  20. package/dist/context-pack.d.ts +53 -0
  21. package/dist/context-pack.js +380 -0
  22. package/dist/context-pack.js.map +1 -0
  23. package/dist/database/archive.d.ts +39 -0
  24. package/dist/database/archive.js +180 -0
  25. package/dist/database/archive.js.map +1 -0
  26. package/dist/database/connection.d.ts +9 -1
  27. package/dist/database/connection.js +23 -2
  28. package/dist/database/connection.js.map +1 -1
  29. package/dist/database/groom.d.ts +39 -0
  30. package/dist/database/groom.js +246 -0
  31. package/dist/database/groom.js.map +1 -0
  32. package/dist/database/maintain.d.ts +39 -0
  33. package/dist/database/maintain.js +62 -0
  34. package/dist/database/maintain.js.map +1 -0
  35. package/dist/database/queries-core.d.ts +490 -0
  36. package/dist/database/queries-core.js +2707 -0
  37. package/dist/database/queries-core.js.map +1 -0
  38. package/dist/database/queries.d.ts +251 -105
  39. package/dist/database/queries.js +152 -663
  40. package/dist/database/queries.js.map +1 -1
  41. package/dist/database/schema.js +5056 -1
  42. package/dist/database/schema.js.map +1 -1
  43. package/dist/embedding/embed-on-write.d.ts +98 -0
  44. package/dist/embedding/embed-on-write.js +104 -0
  45. package/dist/embedding/embed-on-write.js.map +1 -0
  46. package/dist/embedding/ollama.d.ts +18 -0
  47. package/dist/embedding/ollama.js +67 -0
  48. package/dist/embedding/ollama.js.map +1 -0
  49. package/dist/embedding/openai.d.ts +17 -0
  50. package/dist/embedding/openai.js +77 -0
  51. package/dist/embedding/openai.js.map +1 -0
  52. package/dist/embedding/provider.d.ts +34 -0
  53. package/dist/embedding/provider.js +92 -0
  54. package/dist/embedding/provider.js.map +1 -0
  55. package/dist/embedding/search.d.ts +61 -0
  56. package/dist/embedding/search.js +165 -0
  57. package/dist/embedding/search.js.map +1 -0
  58. package/dist/embedding/similarity.d.ts +21 -0
  59. package/dist/embedding/similarity.js +48 -0
  60. package/dist/embedding/similarity.js.map +1 -0
  61. package/dist/embedding/transformers-local.d.ts +24 -0
  62. package/dist/embedding/transformers-local.js +65 -0
  63. package/dist/embedding/transformers-local.js.map +1 -0
  64. package/dist/embedding/types.d.ts +27 -0
  65. package/dist/embedding/types.js +6 -0
  66. package/dist/embedding/types.js.map +1 -0
  67. package/dist/hook.d.ts +60 -0
  68. package/dist/hook.js +594 -0
  69. package/dist/hook.js.map +1 -0
  70. package/dist/index.js +20 -53
  71. package/dist/index.js.map +1 -1
  72. package/dist/lint.d.ts +40 -0
  73. package/dist/lint.js +114 -0
  74. package/dist/lint.js.map +1 -0
  75. package/dist/policy.d.ts +54 -0
  76. package/dist/policy.js +205 -0
  77. package/dist/policy.js.map +1 -0
  78. package/dist/project-detect.d.ts +8 -0
  79. package/dist/project-detect.js +36 -0
  80. package/dist/project-detect.js.map +1 -0
  81. package/dist/prompts/bootstrap-prompts.js +39 -10
  82. package/dist/prompts/bootstrap-prompts.js.map +1 -1
  83. package/dist/provenance.js +1 -3
  84. package/dist/provenance.js.map +1 -1
  85. package/dist/resources/config-guide-content.d.ts +7 -0
  86. package/dist/resources/config-guide-content.js +180 -0
  87. package/dist/resources/config-guide-content.js.map +1 -0
  88. package/dist/resources/context-resources.js +32 -6
  89. package/dist/resources/context-resources.js.map +1 -1
  90. package/dist/scoring.d.ts +21 -0
  91. package/dist/scoring.js +35 -0
  92. package/dist/scoring.js.map +1 -0
  93. package/dist/server-instructions.d.ts +7 -0
  94. package/dist/server-instructions.js +90 -0
  95. package/dist/server-instructions.js.map +1 -0
  96. package/dist/server.d.ts +2 -0
  97. package/dist/server.js +103 -0
  98. package/dist/server.js.map +1 -0
  99. package/dist/setup.d.ts +19 -0
  100. package/dist/setup.js +279 -0
  101. package/dist/setup.js.map +1 -0
  102. package/dist/store/federation.d.ts +190 -0
  103. package/dist/store/federation.js +1008 -0
  104. package/dist/store/federation.js.map +1 -0
  105. package/dist/store/merge.d.ts +47 -0
  106. package/dist/store/merge.js +198 -0
  107. package/dist/store/merge.js.map +1 -0
  108. package/dist/store/session-state.d.ts +47 -0
  109. package/dist/store/session-state.js +95 -0
  110. package/dist/store/session-state.js.map +1 -0
  111. package/dist/store/store-manager.d.ts +46 -0
  112. package/dist/store/store-manager.js +108 -0
  113. package/dist/store/store-manager.js.map +1 -0
  114. package/dist/store/sync-manager.d.ts +79 -0
  115. package/dist/store/sync-manager.js +374 -0
  116. package/dist/store/sync-manager.js.map +1 -0
  117. package/dist/tools/claim-tools.d.ts +7 -1
  118. package/dist/tools/claim-tools.js +368 -138
  119. package/dist/tools/claim-tools.js.map +1 -1
  120. package/dist/tools/decision-tools.d.ts +3 -2
  121. package/dist/tools/decision-tools.js +60 -102
  122. package/dist/tools/decision-tools.js.map +1 -1
  123. package/dist/tools/episode-tools.d.ts +2 -3
  124. package/dist/tools/episode-tools.js +71 -112
  125. package/dist/tools/episode-tools.js.map +1 -1
  126. package/dist/tools/export-tools.d.ts +7 -1
  127. package/dist/tools/export-tools.js +89 -69
  128. package/dist/tools/export-tools.js.map +1 -1
  129. package/dist/tools/get-tools.d.ts +11 -0
  130. package/dist/tools/get-tools.js +282 -0
  131. package/dist/tools/get-tools.js.map +1 -0
  132. package/dist/tools/groom-tools.d.ts +13 -0
  133. package/dist/tools/groom-tools.js +197 -0
  134. package/dist/tools/groom-tools.js.map +1 -0
  135. package/dist/tools/helpers.d.ts +10 -0
  136. package/dist/tools/helpers.js +10 -0
  137. package/dist/tools/helpers.js.map +1 -0
  138. package/dist/tools/insight-tools.d.ts +11 -0
  139. package/dist/tools/insight-tools.js +167 -0
  140. package/dist/tools/insight-tools.js.map +1 -0
  141. package/dist/tools/knowledge-tools.d.ts +7 -0
  142. package/dist/tools/knowledge-tools.js +151 -0
  143. package/dist/tools/knowledge-tools.js.map +1 -0
  144. package/dist/tools/maintenance-tools.d.ts +11 -0
  145. package/dist/tools/maintenance-tools.js +1074 -0
  146. package/dist/tools/maintenance-tools.js.map +1 -0
  147. package/dist/tools/memo-tools.d.ts +15 -0
  148. package/dist/tools/memo-tools.js +370 -0
  149. package/dist/tools/memo-tools.js.map +1 -0
  150. package/dist/tools/model-tools.d.ts +11 -0
  151. package/dist/tools/model-tools.js +175 -0
  152. package/dist/tools/model-tools.js.map +1 -0
  153. package/dist/tools/profile-tools.d.ts +13 -1
  154. package/dist/tools/profile-tools.js +83 -85
  155. package/dist/tools/profile-tools.js.map +1 -1
  156. package/dist/tools/promote-tools.d.ts +10 -0
  157. package/dist/tools/promote-tools.js +376 -0
  158. package/dist/tools/promote-tools.js.map +1 -0
  159. package/dist/tools/query-tools.d.ts +13 -1
  160. package/dist/tools/query-tools.js +359 -72
  161. package/dist/tools/query-tools.js.map +1 -1
  162. package/dist/tools/store-tools.d.ts +12 -0
  163. package/dist/tools/store-tools.js +102 -0
  164. package/dist/tools/store-tools.js.map +1 -0
  165. package/dist/tools/sync-tools.d.ts +9 -0
  166. package/dist/tools/sync-tools.js +55 -0
  167. package/dist/tools/sync-tools.js.map +1 -0
  168. package/dist/tools/theory-tools.d.ts +7 -0
  169. package/dist/tools/theory-tools.js +179 -0
  170. package/dist/tools/theory-tools.js.map +1 -0
  171. package/dist/types.d.ts +730 -168
  172. package/dist/types.js +197 -92
  173. package/dist/types.js.map +1 -1
  174. package/misc/work-notes/main 20260224.txt +98 -0
  175. package/misc/work-notes/plans/20260220084456_UNKNOWN_Issue-#24-Episode/343/202/277/343/202/244/343/203/210/343/203/253/343/201/256-Qiita/346/226/271/345/274/217/343/202/254/343/202/244.md +52 -0
  176. package/misc/work-notes/plans/20260220095602_UNKNOWN_Issue-#10-/346/233/270/343/201/215/350/276/274/343/201/277/346/231/202/343/201/256/343/202/263/343/203/263/343/203/206/343/203/263/343/203/204Lint/346/251/237.md +120 -0
  177. package/misc/work-notes/plans/20260220100439_UNKNOWN_Issue-#10-/346/233/270/343/201/215/350/276/274/343/201/277/346/231/202/343/201/256/343/202/263/343/203/263/343/203/206/343/203/263/343/203/204Lint/346/251/237.md +156 -0
  178. package/misc/work-notes/plans/20260220110445_UNKNOWN_Issue-#11-/343/203/227/343/203/255/343/203/225/343/202/241/343/202/244/343/203/253/350/246/201/347/264/204/343/201/256/343/202/271/343/202/263/343/202/242/343/203/252/303/243.md +154 -0
  179. package/misc/work-notes/plans/20260220114035_UNKNOWN_Issue-#15-/343/202/263/343/203/263/343/203/206/343/202/255/343/202/271/343/203/210/344/272/210/347/256/227API/357/274/210token-budg.md +178 -0
  180. package/misc/work-notes/plans/20260220133902_UNKNOWN_Issue-#16-/343/202/257/343/203/251/343/202/244/343/202/242/343/203/263/343/203/210/345/210/245/343/203/235/343/203/252/343/202/267/343/203/274/345/261/244/357/274/210r.md +284 -0
  181. package/misc/work-notes/plans/20260220151356_UNKNOWN_Issue-#28-V9/343/203/236/343/202/244/343/202/260/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/347/265/261/345/220/210/357/274/210#23-+.md +178 -0
  182. package/misc/work-notes/plans/20260227042805_UNKNOWN_config.json-/343/202/254/343/202/244/343/203/211/346/225/264/345/202/231-+-MCP-resourceprompt-/303/250.md +90 -0
  183. package/misc/work-notes/plans/20260302113135_UNKNOWN_MCP/343/203/204/343/203/274/343/203/253/343/203/210/343/203/274/343/202/257/343/203/263/343/203/200/343/202/244/343/202/250/343/203/203/343/203/210-(~17,370-/303/242.md +152 -0
  184. package/misc/work-notes/plans/20260302151940_UNKNOWN_README.md-/347/217/276/350/241/214API/345/217/215/346/230/240/343/202/242/343/203/203/343/203/227/343/203/207/343/203/274/343/203/210.md +87 -0
  185. package/misc/work-notes/plans/20260302173113_UNKNOWN_watashi-manage-claim-/343/202/250/343/203/251/343/203/274/346/224/271/345/226/204-+-search-summ.md +70 -0
  186. package/misc/work-notes/plans/20260303091511_UNKNOWN_Issue-#60-entity-type-/347/234/201/347/225/245/345/257/276/345/277/234-/342/200/224-ID/345/206/205/351/203/250/350/247/243.md +205 -0
  187. package/misc/work-notes/plans/20260304152700_UNKNOWN_Issue-#61-setup-/343/202/263/343/203/236/343/203/263/343/203/211/343/201/247-MCP-/343/202/265/343/203/274/343/203/220/343/203/274/303/247/302/231.md +67 -0
  188. package/misc/work-notes/plans/20260304170153_UNKNOWN_Issue-#54-user-memoplanissue-/343/201/256-content-/342/206/222-l1-co.md +76 -0
  189. package/package.json +13 -2
  190. package/scripts/backfill-search-summary.mjs +219 -0
  191. package/scripts/migrate-theories.mjs +231 -0
  192. package/{watashi-db-cowork-plugin.zip → watashi-db-plugin.zip} +0 -0
@@ -0,0 +1,116 @@
1
+ # Codex CLI 連携ガイド
2
+
3
+ > codex-cli v0.98.0 / config.toml 設定済み前提
4
+
5
+ ## 概要
6
+
7
+ OpenAI Codex CLI を Claude Code セッション内からレビュー・製造に利用する。
8
+ モデルは `gpt-5.3-codex`(config.toml で設定済み)。
9
+
10
+ ---
11
+
12
+ ## サブコマンド体系
13
+
14
+ | サブコマンド | 用途 | 対話性 |
15
+ |---|---|---|
16
+ | `codex` (引数なし) | 対話セッション | 対話 |
17
+ | `codex exec` | 非対話実行(製造・調査) | 非対話 |
18
+ | `codex review` | コードレビュー | 非対話 |
19
+
20
+ ---
21
+
22
+ ## レビュー依頼
23
+
24
+ ### `codex review`(推奨)
25
+
26
+ ステージング済み差分をレビューする場合:
27
+
28
+ ```bash
29
+ codex review --uncommitted --title "レビュータイトル" \
30
+ -c 'model="gpt-5.3-codex"' \
31
+ > .codex_outputs/YYYYMMDD_HHMMSS_output.txt 2>&1
32
+ ```
33
+
34
+ **重要な制約**:
35
+ - `--uncommitted` と `[PROMPT]` 引数は **排他的** — 同時指定するとエラーになる
36
+ - カスタムプロンプトを渡したい場合は `--uncommitted` を外して `[PROMPT]` を使う
37
+ - `-m` フラグは `review` サブコマンドには存在しない — `-c 'model="..."'` で指定
38
+
39
+ #### オプション一覧
40
+
41
+ | オプション | 説明 |
42
+ |---|---|
43
+ | `--uncommitted` | staged + unstaged + untracked 全変更をレビュー |
44
+ | `--base <BRANCH>` | 指定ブランチとの差分をレビュー |
45
+ | `--commit <SHA>` | 特定コミットの差分をレビュー |
46
+ | `--title <TITLE>` | レビューサマリに表示するタイトル |
47
+ | `-c 'model="..."'` | モデル指定(config.toml のデフォルトを上書き) |
48
+
49
+ ### プロンプト付きレビュー(`codex exec`経由)
50
+
51
+ レビュー観点を指定したい場合は `exec` を使う:
52
+
53
+ ```bash
54
+ codex exec -m gpt-5.3-codex -p automation -s read-only \
55
+ "この差分をレビューしてください。観点: ... : .codex_inputs/review_input.md" \
56
+ > .codex_outputs/YYYYMMDD_HHMMSS_output.txt 2>&1
57
+ ```
58
+
59
+ ---
60
+
61
+ ## 製造依頼
62
+
63
+ ```bash
64
+ codex exec -m gpt-5.3-codex -p automation -s workspace-write \
65
+ "指示内容: .codex_inputs/task_input.md" \
66
+ -o .codex_outputs/YYYYMMDD_HHMMSS_last_message.txt \
67
+ > .codex_outputs/YYYYMMDD_HHMMSS_output.txt 2>&1
68
+ ```
69
+
70
+ ---
71
+
72
+ ## ファイル規約
73
+
74
+ | ディレクトリ | 用途 |
75
+ |---|---|
76
+ | `.codex_inputs/` | Codex への入力ファイル |
77
+ | `.codex_outputs/` | Codex からの出力ファイル |
78
+
79
+ ファイル名形式: `YYYYMMDD_HHMMSS_<目的>.md` / `_output.txt`
80
+
81
+ ---
82
+
83
+ ## config.toml プロファイル
84
+
85
+ | プロファイル | 用途 | approval_policy | sandbox_mode |
86
+ |---|---|---|---|
87
+ | `human` | ユーザー直接利用 | on-request | workspace-write |
88
+ | `automation` | Claude Code / スクリプトから呼び出し | never | workspace-write |
89
+
90
+ Claude Code から呼ぶ場合は `-p automation` を指定。
91
+
92
+ ---
93
+
94
+ ## タイムアウト目安
95
+
96
+ | 依頼種別 | 目安 |
97
+ |---|---|
98
+ | レビュー | 15分(timeout: 600000) |
99
+ | 製造 | 60分(timeout: 600000、必要に応じて分割) |
100
+
101
+ ---
102
+
103
+ ## エンコーディング注意
104
+
105
+ - 入力ファイルは **UTF-8(BOM無し)** で作成
106
+ - Windows 環境のコンソール出力は文字化けする場合があるが、ファイルリダイレクト先は正常
107
+
108
+ ---
109
+
110
+ ## よくあるエラー
111
+
112
+ | エラー | 原因 | 対処 |
113
+ |---|---|---|
114
+ | `unexpected argument '--approval-mode'` | v0.98.0 で廃止 | `-p automation` または `-c 'approval_policy="never"'` |
115
+ | `unexpected argument '-m'` (review時) | `review` に `-m` なし | `-c 'model="..."'` を使う |
116
+ | `'--uncommitted' cannot be used with '[PROMPT]'` | 排他的オプション | プロンプトを外すか `exec` を使う |
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  > [!NOTE]
7
7
  > **v0.x は開発初期段階です。** APIやデータ構造に破壊的変更が入る可能性があります。
8
- > データはすべてローカル(`~/.watashi-db/watashi.db`)に保存され、外部送信は一切ありません。
8
+ > データはすべてローカル(`~/.watashi-db/default.db`)に保存され、外部送信は一切ありません。
9
9
 
10
10
  ---
11
11
 
@@ -24,6 +24,7 @@
24
24
  - **監査ログ**: 全操作に「誰が・何を・なぜ」を自動記録
25
25
  - **Provenance自動付与**: 接続元AIの情報をサーバー側で自動記録(自己申告に依存しない)
26
26
  - **L2推論基盤**: Claim間の関係(推論グラフ)、構造化根拠参照、検証ログ
27
+ - **マルチデバイス同期**: Google Drive等を介したスナップショット同期、複数PCで同一データを共有可能
27
28
 
28
29
  ---
29
30
 
@@ -32,51 +33,56 @@
32
33
  ### 前提条件
33
34
 
34
35
  - Node.js >= 18
35
- - MCP対応のAIクライアント(Claude Code, Claude Desktop 等)
36
+ - MCP対応のAIクライアント(Claude Code, Codex CLI, Claude Desktop 等)
36
37
 
37
- ### インストール
38
+ ### ステップ 1: MCP サーバーを登録(全クライアント共通)
38
39
 
39
- ```bash
40
- npm install -g watashi-db
41
- ```
42
-
43
- ### Claude Code での設定
40
+ お使いの MCP クライアントに watashi-db を登録します:
44
41
 
45
42
  ```bash
46
- claude mcp add watashi-db -- npx watashi-db
43
+ # Claude Code
44
+ claude mcp add --scope user watashi-db -- npx -y watashi-db@latest
45
+
46
+ # Codex CLI
47
+ codex mcp add watashi-db -- npx -y watashi-db@latest
47
48
  ```
48
49
 
49
- または `~/.claude.json` に直接記述:
50
+ Claude Desktop の場合は `claude_desktop_config.json` に追加:
50
51
 
51
52
  ```json
52
53
  {
53
54
  "mcpServers": {
54
55
  "watashi-db": {
55
56
  "command": "npx",
56
- "args": ["watashi-db"]
57
+ "args": ["-y", "watashi-db@latest"]
57
58
  }
58
59
  }
59
60
  }
60
61
  ```
61
62
 
62
- ### Claude Desktop での設定
63
+ > [!TIP]
64
+ > `@latest` をつけるとクライアント起動時に常に最新版が使われます。
63
65
 
64
- `claude_desktop_config.json` に追加:
66
+ ### ステップ 2: Hook と /recall を配置(Claude Code)
65
67
 
66
- ```json
67
- {
68
- "mcpServers": {
69
- "watashi-db": {
70
- "command": "npx",
71
- "args": ["watashi-db"]
72
- }
73
- }
74
- }
68
+ ```bash
69
+ npx watashi-db setup
75
70
  ```
76
71
 
72
+ Claude Code を再起動すれば使えます。
73
+
74
+ - **Hook**: プロンプト送信時に設計判断・好み・作業の節目を自動記録するリマインダー
75
+ - **@nolog**: プロンプトの先頭に `@nolog` を付けると、そのメッセージの内容は記録されません
76
+ - **/recall**: 過去の判断・好み・経験を検索するコマンド
77
+
78
+ > [!NOTE]
79
+ > ステップ 2 は現在 Claude Code 専用です。Codex CLI は Hook と Skill に未対応のため、
80
+ > watashi-db への記録・活用は server instructions 経由の LLM 任せとなります。
81
+ > 背景: [#31](https://github.com/bareforge/watashi-db/issues/31), [#32](https://github.com/bareforge/watashi-db/issues/32)
82
+
77
83
  ### Claude Code Cowork プラグイン
78
84
 
79
- [Releases](https://github.com/bareforge/watashi-db/releases) から `watashi-db-cowork-plugin.zip` をダウンロードし、Cowork UI の「プラグインをアップロード」からインストールできます。
85
+ リポジトリの `cowork-plugin/` ディレクトリに Cowork 用プラグインが含まれています。
80
86
 
81
87
  プラグインには以下のスキルが含まれます:
82
88
 
@@ -84,8 +90,58 @@ claude mcp add watashi-db -- npx watashi-db
84
90
  |--------|------|
85
91
  | `/session-start` | セッション開始時にプロファイルとコンテキストを自動読み込み |
86
92
  | `/remember <内容>` | ユーザーの好み・スキル・知識をわたしDBに記録 |
93
+ | `/recall [トピック]` | 過去の判断・好み・経験を watashi-db から検索 |
87
94
  | `/reflect [トピック]` | エピソード・意思決定の振り返りとパターン分析 |
88
95
 
96
+ ### 開発者向け(ソースから)
97
+
98
+ ```bash
99
+ git clone https://github.com/bareforge/watashi-db.git && cd watashi-db
100
+ npm install && npm run build && npm link
101
+ claude mcp add -s user watashi-db -- watashi-db serve
102
+ ```
103
+
104
+ ### バージョンアップ
105
+
106
+ MCP 設定で `watashi-db@latest` を指定していれば、Claude の再起動で自動的に最新版が使われます。手動でグローバルインストールしている場合は:
107
+
108
+ ```bash
109
+ npm install -g watashi-db@latest
110
+ ```
111
+
112
+ ### バックアップ・同期・マルチStore(オプション)
113
+
114
+ `~/.watashi-db/config.json` を作成すると、以下の機能が使えます:
115
+
116
+ - **バックアップ**: `sync.destination` を設定すると、書き込み時に自動でスナップショットをバックアップ
117
+ - **マルチデバイス同期**: Google Drive 等のクラウドストレージを介して複数 PC でデータを共有
118
+ - **マルチStore**: プロジェクト別に DB を分離、`watashi_maintain(action="promote")` でデータを移動
119
+
120
+ ```json
121
+ {
122
+ "stores": {
123
+ "default": {
124
+ "type": "local",
125
+ "path": "~/.watashi-db/default.db",
126
+ "sync": {
127
+ "enabled": true,
128
+ "destination": "G:/マイドライブ/watashi-db",
129
+ "generations": 3
130
+ }
131
+ }
132
+ },
133
+ "contexts": {
134
+ "default": {
135
+ "stores": { "default": "read-write" },
136
+ "default_store": "default"
137
+ }
138
+ },
139
+ "default_context": "default"
140
+ }
141
+ ```
142
+
143
+ 詳細なセットアップ手順・全設定項目のリファレンスについては [config.json 設定ガイド](docs/config-guide.md) を参照してください。
144
+
89
145
  ---
90
146
 
91
147
  ## 使い方
@@ -101,24 +157,22 @@ watashi_store_claim:
101
157
  predicate: "prefers"
102
158
  object: "日本語コメント"
103
159
  category: "preference"
104
-
105
- # 好みの簡易登録
106
- watashi_store_preference:
107
- preference: "ダークモードのエディタ"
108
160
  ```
109
161
 
110
162
  ### 情報の取得
111
163
 
112
164
  ```
113
165
  # プロファイル全体像(セッション開始時に推奨)
114
- watashi_get_profile_summary
166
+ watashi_get:
167
+ entity_type: "profile"
115
168
 
116
- # トピック関連のコンテキスト検索
117
- watashi_query_context:
118
- topic: "TypeScript"
169
+ # 全エンティティ横断検索
170
+ watashi_search:
171
+ query: "TypeScript"
119
172
 
120
- # 条件検索
121
- watashi_search_claims:
173
+ # カテゴリ絞り込み検索
174
+ watashi_search:
175
+ entity_types: ["claim"]
122
176
  category: "skill"
123
177
  status: "active"
124
178
  ```
@@ -129,8 +183,8 @@ watashi_search_claims:
129
183
  watashi_log_decision:
130
184
  title: "MIT LICENSEを採用"
131
185
  description: "オープンソースライセンスの選定"
132
- reasoning: "最も自由度が高く、個人プロジェクトに適切"
133
- alternatives: ["Apache 2.0", "GPL v3"]
186
+ l2_reasoning: "最も自由度が高く、個人プロジェクトに適切"
187
+ l2_alternatives: ["Apache 2.0", "GPL v3"]
134
188
  ```
135
189
 
136
190
  ---
@@ -150,15 +204,15 @@ watashi_log_decision:
150
204
  │ (MCP Server) │
151
205
  │ │
152
206
  │ ┌─────────────────┐ │
153
- │ │ Tools (17) │ │
154
- │ │ Resources (2) │ │
155
- │ │ Prompts (1) │ │
207
+ │ │ Tools (11) │ │
208
+ │ │ Resources (5) │ │
209
+ │ │ Prompts (2) │ │
156
210
  │ └────────┬────────┘ │
157
211
  │ │ │
158
212
  │ ┌────────▼────────┐ │
159
213
  │ │ SQLite + FTS5 │ │
160
214
  │ │ (~/.watashi-db │ │
161
- │ │ /watashi.db) │ │
215
+ │ │ /default.db) │ │
162
216
  │ └─────────────────┘ │
163
217
  └───────────────────────┘
164
218
  ```
@@ -167,38 +221,39 @@ watashi_log_decision:
167
221
 
168
222
  | テーブル | 説明 |
169
223
  |---------|------|
170
- | `claims` | SPO三つ組の知識断片(主語・述語・目的語) |
171
- | `claims_fts` | FTS5全文検索インデックス |
224
+ | `claims` | SPO三つ組の知識断片 |
172
225
  | `claim_history` | Claimの変更履歴 |
173
- | `claim_relations` | Claim間の推論関係(7種: supports, contradicts, derives, ...) |
174
- | `claim_evidence` | 構造化根拠参照(7種: url, file, claim, ...) |
175
- | `claim_checks` | 検証ログ(7種 x 4結果) |
226
+ | `claim_relations` | Claim間の推論関係 |
227
+ | `claim_evidence` | 構造化根拠参照 |
228
+ | `claim_checks` | 検証ログ |
176
229
  | `decisions` | 意思決定ログ |
177
- | `episodes` | 思考パターン・意思決定エピソード(文脈→問題→欲求→決定→結果→原則) |
178
- | `episodes_fts` | Episodes用FTS5全文検索インデックス |
230
+ | `episodes` | エピソード(問題→決定→結果→教訓) |
231
+ | `theories` | 仮説・パターン認識 |
232
+ | `insights` | エピソードからの知見 |
233
+ | `models` | 運用モデル・フレームワーク |
234
+ | `user_memos` | 参照メモ |
235
+ | `user_plans` | セッション間作業計画 |
236
+ | `user_issues` | 追跡対象の課題 |
179
237
  | `audit_log` | 全操作の監査ログ |
238
+ | `store_meta` | Store メタデータ |
239
+ | `unified_search_items` | FTS5統合検索インデックス |
240
+ | `schema_version` | マイグレーションバージョン管理 |
180
241
 
181
242
  ### MCPツール一覧
182
243
 
183
244
  | ツール | 説明 |
184
245
  |--------|------|
185
246
  | `watashi_store_claim` | SPO三つ組でユーザー知識を記録 |
186
- | `watashi_update_claim` | 既存Claimを更新(履歴付き) |
187
- | `watashi_retract_claim` | Claimを撤回(削除ではない) |
188
- | `watashi_supersede_claim` | Claimを新しいClaimで置き換え |
189
- | `watashi_get_claim` | Claim詳細 + 変更履歴を取得 |
190
- | `watashi_search_claims` | 条件検索(カテゴリ・スコープ・テキスト) |
191
- | `watashi_query_context` | FTS5全文検索でコンテキスト取得 |
247
+ | `watashi_update_claim` | Claimの更新・撤回 |
248
+ | `watashi_manage_claim` | Claim高度管理(置換・検証・関係付け・Decision管理) |
249
+ | `watashi_search` | 全エンティティ横断検索(自然言語・タグ・embedding) |
250
+ | `watashi_get` | エンティティ詳細取得 + プロファイルサマリー |
192
251
  | `watashi_log_decision` | 意思決定を構造的に記録 |
193
- | `watashi_list_decisions` | 意思決定ログの検索・一覧 |
194
- | `watashi_update_decision_status` | 意思決定のステータス遷移 |
195
- | `watashi_get_profile_summary` | プロファイル全体像をMarkdownで取得 |
196
- | `watashi_store_preference` | 好みの簡易登録ショートカット |
197
- | `watashi_log_episode` | 思考パターン・意思決定エピソードを構造的に記録 |
198
- | `watashi_list_episodes` | エピソードの検索・一覧(FTS5・タグ対応) |
199
- | `watashi_get_episode` | エピソード詳細を取得 |
200
- | `watashi_backup_db` | SQLiteファイルのバックアップ |
201
- | `watashi_export_json` | 全データのJSONエクスポート |
252
+ | `watashi_log_episode` | エピソード(問題→決定→結果→教訓)を記録 |
253
+ | `watashi_store_knowledge` | Theory/Insight/Model を記録 |
254
+ | `watashi_store_user_memo` | Memo/Plan/Issue を記録 |
255
+ | `watashi_update_user_memo` | Memo/Plan/Issue を更新 |
256
+ | `watashi_maintain` | DB保守(統計・バックアップ・エクスポート・棚卸・Store管理) |
202
257
 
203
258
  ---
204
259
 
@@ -229,9 +284,12 @@ npm run dev
229
284
  ### DBファイルの場所
230
285
 
231
286
  ```
232
- ~/.watashi-db/watashi.db
287
+ ~/.watashi-db/default.db
233
288
  ```
234
289
 
290
+ > [!NOTE]
291
+ > 旧バージョンで `watashi.db` を使用していた場合、サーバー起動時に自動で `default.db` にリネームされます。
292
+
235
293
  ---
236
294
 
237
295
  ## ライセンス
File without changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "watashi-db",
3
- "version": "0.0.5",
3
+ "version": "0.0.8",
4
4
  "description": "わたしDB - パーソナルコンテキストデータベース。ユーザーの好み・スキル・価値観・意思決定をセッション横断で記憶・活用します。",
5
5
  "author": { "name": "watashi-db" },
6
6
  "repository": "https://github.com/bareforge/watashi-db",
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "watashi-db": {
4
4
  "command": "npx",
5
- "args": ["watashi-db"]
5
+ "args": ["-y", "watashi-db@latest"]
6
6
  }
7
7
  }
8
8
  }
@@ -0,0 +1,18 @@
1
+ {
2
+ "hooks": {
3
+ "UserPromptSubmit": [{
4
+ "hooks": [{
5
+ "type": "command",
6
+ "command": "npx watashi-db hook",
7
+ "timeout": 10
8
+ }]
9
+ }],
10
+ "Stop": [{
11
+ "hooks": [{
12
+ "type": "command",
13
+ "command": "npx watashi-db stop-hook",
14
+ "timeout": 10
15
+ }]
16
+ }]
17
+ }
18
+ }
@@ -0,0 +1,36 @@
1
+ ---
2
+ description: >
3
+ 過去の判断・好み・経験を watashi-db から参照する。
4
+ 以下の場面で自動的に使用すること:
5
+ ユーザーが過去の判断・方針について言及した時 /
6
+ 設計判断で類似の過去事例が参考になりそうな時 /
7
+ 「前に〜したっけ?」等の直接的な問い /
8
+ 技術選定で過去の好みや経験が影響しそうな時
9
+ ---
10
+
11
+ watashi-db から過去のコンテキストを検索・参照します。
12
+
13
+ ## 引数
14
+ - `$ARGUMENTS`: (オプション)検索トピック / キーワード
15
+
16
+ ## 手順
17
+
18
+ 1. **概要確認**: 引数なし、または初回利用時はまず `watashi_list_topics` で記録済みトピックの概要を確認する
19
+
20
+ 2. **トピック特定**: $ARGUMENTS または会話の文脈から検索キーワードを抽出
21
+
22
+ 3. **検索実行**: 以下のツールを適切に使い分ける:
23
+ - `watashi_list_topics`: 記録済みトピックの全体像(カテゴリ分布・タグ上位・最近の判断)
24
+ - `watashi_query_context`: 幅広いトピック検索(Claims + Decisions + Episodes 横断)
25
+ - `watashi_search_claims`: 特定カテゴリの好み・スキルを絞り込む場合
26
+ - `watashi_get_context_pack`: トークン予算を指定した効率的な検索
27
+
28
+ 4. **結果の活用**:
29
+ - 検索結果が0件なら何も報告しない(ユーザーの邪魔をしない)
30
+ - 関連する過去の判断・好みが見つかったら、自然に応答に組み込む
31
+ - 「以前〜と判断されています」のように出典を示す
32
+
33
+ ## 注意事項
34
+ - 控えめに: 検索したこと自体を逐一報告しない
35
+ - 結果が多すぎる場合は confidence や更新日時で上位のみ使用
36
+ - ユーザーが明示的に `/recall` で呼んだ場合は検索結果を詳細に表示
@@ -0,0 +1,12 @@
1
+ import type { ResolvedConfig } from "./schema.js";
2
+ /**
3
+ * config.json を読み込んで ResolvedConfig を返す
4
+ * ファイルが存在しない場合はデフォルト構成を返す
5
+ */
6
+ export declare function loadConfig(): ResolvedConfig;
7
+ /**
8
+ * デフォルト構成: 現行の単一DB動作を再現
9
+ * Store名 "default" / Context名 "default"
10
+ */
11
+ export declare function getDefaultConfig(): ResolvedConfig;
12
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1,73 @@
1
+ /**
2
+ * config.json ローダー
3
+ * ファイルの読み込み・パース・バリデーション、またはデフォルト構成の生成
4
+ */
5
+ import fs from "node:fs";
6
+ import { CONFIG_PATH, DB_PATH, LEGACY_DB_PATH } from "../constants.js";
7
+ import { validateAndResolveConfig, ConfigValidationError } from "./validator.js";
8
+ /**
9
+ * 旧デフォルトDB名 (watashi.db) → 新デフォルトDB名 (default.db) の自動リネーム
10
+ * WAL関連ファイル (-shm, -wal) も同時にリネームする
11
+ */
12
+ function migrateDefaultDbName() {
13
+ if (fs.existsSync(LEGACY_DB_PATH) && !fs.existsSync(DB_PATH)) {
14
+ fs.renameSync(LEGACY_DB_PATH, DB_PATH);
15
+ // WAL関連ファイルもリネーム
16
+ for (const suffix of ["-shm", "-wal"]) {
17
+ const legacyWal = LEGACY_DB_PATH + suffix;
18
+ if (fs.existsSync(legacyWal)) {
19
+ fs.renameSync(legacyWal, DB_PATH + suffix);
20
+ }
21
+ }
22
+ // groom-state.json もリネーム
23
+ const legacyGroom = LEGACY_DB_PATH + ".groom-state.json";
24
+ if (fs.existsSync(legacyGroom)) {
25
+ fs.renameSync(legacyGroom, DB_PATH + ".groom-state.json");
26
+ }
27
+ process.stderr.write(`[watashi-db] DB名を自動マイグレーション: watashi.db → default.db\n`);
28
+ }
29
+ }
30
+ /**
31
+ * config.json を読み込んで ResolvedConfig を返す
32
+ * ファイルが存在しない場合はデフォルト構成を返す
33
+ */
34
+ export function loadConfig() {
35
+ // 旧DB名の自動リネーム(config.json の有無に関わらず実行)
36
+ migrateDefaultDbName();
37
+ if (!fs.existsSync(CONFIG_PATH)) {
38
+ return getDefaultConfig();
39
+ }
40
+ const raw = fs.readFileSync(CONFIG_PATH, "utf-8");
41
+ let parsed;
42
+ try {
43
+ parsed = JSON.parse(raw);
44
+ }
45
+ catch (e) {
46
+ const message = e instanceof SyntaxError ? e.message : String(e);
47
+ throw new ConfigValidationError([`config.json のJSON構文エラー: ${message}`]);
48
+ }
49
+ return validateAndResolveConfig(parsed);
50
+ }
51
+ /**
52
+ * デフォルト構成: 現行の単一DB動作を再現
53
+ * Store名 "default" / Context名 "default"
54
+ */
55
+ export function getDefaultConfig() {
56
+ return {
57
+ stores: {
58
+ default: {
59
+ type: "local",
60
+ path: DB_PATH,
61
+ originalPath: DB_PATH,
62
+ },
63
+ },
64
+ contexts: {
65
+ default: {
66
+ stores: { default: "read-write" },
67
+ default_store: "default",
68
+ },
69
+ },
70
+ default_context: "default",
71
+ };
72
+ }
73
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGjF;;;GAGG;AACH,SAAS,oBAAoB;IAC3B,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACvC,iBAAiB;QACjB,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,cAAc,GAAG,MAAM,CAAC;YAC1C,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACD,yBAAyB;QACzB,MAAM,WAAW,GAAG,cAAc,GAAG,mBAAmB,CAAC;QACzD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,GAAG,mBAAmB,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU;IACxB,sCAAsC;IACtC,oBAAoB,EAAE,CAAC;IAEvB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,CAAC,YAAY,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,IAAI,qBAAqB,CAAC,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,MAAM,EAAE;YACN,OAAO,EAAE;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,OAAO;aACtB;SACF;QACD,QAAQ,EAAE;YACR,OAAO,EAAE;gBACP,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;gBACjC,aAAa,EAAE,SAAS;aACzB;SACF;QACD,eAAe,EAAE,SAAS;KAC3B,CAAC;AACJ,CAAC"}