watashi-db 0.0.14 → 0.0.15
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/LICENSE +1 -1
- package/README.md +31 -0
- package/dist/auth/token.d.ts +7 -0
- package/dist/auth/token.js +14 -0
- package/dist/auth/token.js.map +1 -0
- package/dist/constants.d.ts +6 -10
- package/dist/constants.js +14 -44
- package/dist/constants.js.map +1 -1
- package/dist/database/groom.js +5 -5
- package/dist/database/groom.js.map +1 -1
- package/dist/database/queries-core.d.ts +37 -7
- package/dist/database/queries-core.js +286 -197
- package/dist/database/queries-core.js.map +1 -1
- package/dist/database/queries.d.ts +17 -7
- package/dist/database/queries.js +4 -0
- package/dist/database/queries.js.map +1 -1
- package/dist/database/schema.js +463 -271
- package/dist/database/schema.js.map +1 -1
- package/dist/hook.js +8 -3
- package/dist/hook.js.map +1 -1
- package/dist/http-server.d.ts +6 -0
- package/dist/http-server.js +235 -0
- package/dist/http-server.js.map +1 -0
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/server-core.d.ts +15 -0
- package/dist/server-core.js +113 -0
- package/dist/server-core.js.map +1 -0
- package/dist/server-instructions.js +12 -8
- package/dist/server-instructions.js.map +1 -1
- package/dist/server.js +8 -126
- package/dist/server.js.map +1 -1
- package/dist/tools/claim-tools.js +23 -10
- package/dist/tools/claim-tools.js.map +1 -1
- package/dist/tools/decision-tools.js +21 -5
- package/dist/tools/decision-tools.js.map +1 -1
- package/dist/tools/episode-tools.js +26 -5
- package/dist/tools/episode-tools.js.map +1 -1
- package/dist/tools/file-tools.js +6 -3
- package/dist/tools/file-tools.js.map +1 -1
- package/dist/tools/helpers.d.ts +40 -0
- package/dist/tools/helpers.js +69 -0
- package/dist/tools/helpers.js.map +1 -1
- package/dist/tools/knowledge-tools.js +36 -4
- package/dist/tools/knowledge-tools.js.map +1 -1
- package/dist/tools/maintenance-tools.js +57 -46
- package/dist/tools/maintenance-tools.js.map +1 -1
- package/dist/tools/memo-tools.js +17 -9
- package/dist/tools/memo-tools.js.map +1 -1
- package/dist/tools/query-tools.js +261 -260
- package/dist/tools/query-tools.js.map +1 -1
- package/dist/types.d.ts +166 -51
- package/dist/types.js +73 -29
- package/dist/types.js.map +1 -1
- package/misc/20260331_remote-transport-recipe.md +316 -0
- package/package.json +1 -1
package/LICENSE
CHANGED
|
@@ -3,7 +3,7 @@ Business Source License 1.1
|
|
|
3
3
|
Parameters
|
|
4
4
|
|
|
5
5
|
Licensor: bareforge
|
|
6
|
-
Licensed Work: watashi-db 0.0.
|
|
6
|
+
Licensed Work: watashi-db 0.0.15
|
|
7
7
|
The Licensed Work is (c) 2026 bareforge
|
|
8
8
|
Additional Use Grant: You may make use of the Licensed Work, provided that
|
|
9
9
|
you may not use the Licensed Work for a Commercial
|
package/README.md
CHANGED
|
@@ -153,6 +153,37 @@ MCP 設定で `watashi-db@latest` を指定していれば、Claude の再起動
|
|
|
153
153
|
npm install -g watashi-db@latest
|
|
154
154
|
```
|
|
155
155
|
|
|
156
|
+
### Embedding — 意味検索(オプション)
|
|
157
|
+
|
|
158
|
+
Embedding を設定すると、キーワード一致だけでなく意味の近さで検索できるようになります。
|
|
159
|
+
未設定でも FTS5(全文検索)のみで動作します。
|
|
160
|
+
|
|
161
|
+
開発時点(2026-03)では、以下の3つのプロバイダーが組み込まれています。
|
|
162
|
+
それぞれの環境と判断に基づいて使用するモデルを選択してください。
|
|
163
|
+
|
|
164
|
+
| プロバイダー | 費用 | 特徴 | 設定例 |
|
|
165
|
+
|-------------|------|------|--------|
|
|
166
|
+
| Transformers.js | 無料 | ローカル実行。初回に約 80MB のモデルダウンロードが発生し、常駐メモリが約 100〜150MB 増加する | `"provider": "transformers"`, `"model": "Xenova/all-MiniLM-L6-v2"`, `"dimensions": 384` |
|
|
167
|
+
| Ollama | 無料 | 別途 [Ollama](https://ollama.com) サーバーを起動する必要がある。より高精度なモデルも選択可能 | `"provider": "ollama"`, `"model": "nomic-embed-text"`, `"dimensions": 768`, `"base_url": "http://localhost:11434"` |
|
|
168
|
+
| OpenAI | 有料 | 高精度。環境変数 `OPENAI_API_KEY` が必要 | `"provider": "openai"`, `"model": "text-embedding-3-small"`, `"dimensions": 1536` |
|
|
169
|
+
|
|
170
|
+
`~/.watashi-db/config.json` に `embedding` セクションを追加してください:
|
|
171
|
+
|
|
172
|
+
```json
|
|
173
|
+
// Transformers.js(無料・ローカル)
|
|
174
|
+
{ "embedding": { "provider": "transformers", "model": "Xenova/all-MiniLM-L6-v2", "dimensions": 384 } }
|
|
175
|
+
|
|
176
|
+
// Ollama(無料・要サーバー)
|
|
177
|
+
{ "embedding": { "provider": "ollama", "model": "nomic-embed-text", "dimensions": 768, "base_url": "http://localhost:11434" } }
|
|
178
|
+
|
|
179
|
+
// OpenAI(有料・高精度)
|
|
180
|
+
{ "embedding": { "provider": "openai", "model": "text-embedding-3-small", "dimensions": 1536 } }
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
> [!WARNING]
|
|
184
|
+
> プロバイダーやモデルを切り替えると、既存の全レコードのベクトル値を更新する必要があります。
|
|
185
|
+
> 更新は `watashi_maintain(action="backfill_embeddings")` で行えますが、有料モデルを選択した場合はこの作業でまとまった API 課金が発生します。
|
|
186
|
+
|
|
156
187
|
### バックアップ・同期・マルチStore(オプション)
|
|
157
188
|
|
|
158
189
|
`~/.watashi-db/config.json` を作成すると、以下の機能が使えます。
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bearer Token 認証
|
|
3
|
+
* 環境変数 WATASHI_AUTH_TOKEN が設定されている場合のみ有効。
|
|
4
|
+
* 未設定時は認証なし(ローカル開発用)。
|
|
5
|
+
*/
|
|
6
|
+
export function validateRequest(authHeader) {
|
|
7
|
+
const expected = process.env.WATASHI_AUTH_TOKEN;
|
|
8
|
+
if (!expected)
|
|
9
|
+
return true; // トークン未設定 = 認証なし
|
|
10
|
+
if (!authHeader?.startsWith("Bearer "))
|
|
11
|
+
return false;
|
|
12
|
+
return authHeader.slice(7) === expected;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/auth/token.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,UAAU,eAAe,CAAC,UAA8B;IAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAChD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC,CAAC,iBAAiB;IAC7C,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AAC1C,CAAC"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -8,17 +8,13 @@ export declare const SERVER_NAME = "watashi-db";
|
|
|
8
8
|
export declare const SERVER_VERSION: string;
|
|
9
9
|
export declare const CLAIM_CATEGORIES: readonly ["preference", "identity", "skill", "value", "workflow", "knowledge", "custom"];
|
|
10
10
|
export declare const CLAIM_SCOPES: readonly ["global", "persona", "project", "tool", "temporal"];
|
|
11
|
-
export declare const
|
|
12
|
-
export declare const
|
|
13
|
-
export declare const THEORY_STATUSES: readonly ["active", "archived", "promoted"];
|
|
14
|
-
export declare const INSIGHT_STATUSES: readonly ["active", "archived", "promoted"];
|
|
15
|
-
export declare const MODEL_STATUSES: readonly ["active", "archived", "promoted"];
|
|
16
|
-
export declare const USER_MEMO_STATUSES: readonly ["active", "archived"];
|
|
11
|
+
export declare const VALIDITY_STATUSES: readonly ["active", "invalidated", "superseded"];
|
|
12
|
+
export declare const USER_MEMO_STATUSES: readonly ["active"];
|
|
17
13
|
export declare const USER_MEMO_USAGE_POLICIES: readonly ["auto", "on_request", "human_directed"];
|
|
18
|
-
export declare const USER_PLAN_STATUSES: readonly ["active", "completed"
|
|
19
|
-
export declare const USER_ISSUE_STATUSES: readonly ["open", "closed"
|
|
14
|
+
export declare const USER_PLAN_STATUSES: readonly ["active", "completed"];
|
|
15
|
+
export declare const USER_ISSUE_STATUSES: readonly ["open", "closed"];
|
|
20
16
|
export declare const USER_ISSUE_PRIORITIES: readonly ["low", "medium", "high", "critical"];
|
|
21
|
-
export declare const USER_FILE_STATUSES: readonly ["active"
|
|
22
|
-
export declare const USER_TOPIC_STATUSES: readonly ["active", "closed"
|
|
17
|
+
export declare const USER_FILE_STATUSES: readonly ["active"];
|
|
18
|
+
export declare const USER_TOPIC_STATUSES: readonly ["active", "closed"];
|
|
23
19
|
export declare const USER_TOPIC_PRIORITIES: readonly ["low", "medium", "high", "critical"];
|
|
24
20
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
|
@@ -38,47 +38,21 @@ export const CLAIM_SCOPES = [
|
|
|
38
38
|
"tool", // 特定ツールに適用(tool:<name>)
|
|
39
39
|
"temporal", // 一時的に適用
|
|
40
40
|
];
|
|
41
|
-
//
|
|
42
|
-
|
|
41
|
+
// === Status正規化 (Issue #58) ===
|
|
42
|
+
// 原則: 1 status = 1 lifecycle。直交する概念は別カラムに分離。
|
|
43
|
+
// - validity_status: 有効性ライフサイクル (Knowledge系)
|
|
44
|
+
// - xxx_status: ドメイン固有ライフサイクル (User系)
|
|
45
|
+
// - is_archived: 可視性 (全テーブル共通、別カラム)
|
|
46
|
+
// - promoted_to: データ所在 (Knowledge系、別カラム)
|
|
47
|
+
// Knowledge系 共通の有効性ステータス
|
|
48
|
+
export const VALIDITY_STATUSES = [
|
|
43
49
|
"active", // 有効
|
|
44
|
-
"
|
|
50
|
+
"invalidated", // 無効化(人間の判断で撤回)
|
|
45
51
|
"superseded", // 後続に置き換え済み
|
|
46
|
-
"promoted", // 別Storeへ昇格済み
|
|
47
52
|
];
|
|
48
|
-
//
|
|
49
|
-
export const DECISION_STATUSES = [
|
|
50
|
-
"active", // 有効
|
|
51
|
-
"reversed", // 撤回済み
|
|
52
|
-
"obsolete", // 廃止
|
|
53
|
-
"archived", // アーカイブ済み(蒸留済み)
|
|
54
|
-
"promoted", // 別Storeへ昇格済み
|
|
55
|
-
];
|
|
56
|
-
// Theoryのステータス
|
|
57
|
-
export const THEORY_STATUSES = [
|
|
58
|
-
"active", // 有効
|
|
59
|
-
"archived", // アーカイブ済み
|
|
60
|
-
"promoted", // 別Storeへ昇格済み
|
|
61
|
-
];
|
|
62
|
-
// 2026-02-23 追加 (Issue #40): Insightのステータス
|
|
63
|
-
// Theoryから non_goals, open_questions を除外した軽量な知見エンティティ
|
|
64
|
-
export const INSIGHT_STATUSES = [
|
|
65
|
-
"active", // 有効
|
|
66
|
-
"archived", // アーカイブ済み
|
|
67
|
-
"promoted", // 別Storeへ昇格済み
|
|
68
|
-
];
|
|
69
|
-
// 2026-02-23 追加 (Issue #40): Modelのステータス
|
|
70
|
-
// 抽象的思考フレームワーク・メンタルモデルを記録するエンティティ
|
|
71
|
-
export const MODEL_STATUSES = [
|
|
72
|
-
"active", // 有効
|
|
73
|
-
"archived", // アーカイブ済み
|
|
74
|
-
"promoted", // 別Storeへ昇格済み
|
|
75
|
-
];
|
|
76
|
-
// Issue #45: UserMemoのステータス
|
|
77
|
-
// 2026-02-25 リネーム: MEMO_* → USER_MEMO_* (Issue #45 Phase 1)
|
|
78
|
-
// 元の実装: MEMO_STATUSES / MEMO_USAGE_POLICIES として定義されていた
|
|
53
|
+
// UserMemoのドメインステータス
|
|
79
54
|
export const USER_MEMO_STATUSES = [
|
|
80
55
|
"active", // 有効
|
|
81
|
-
"archived", // アーカイブ済み
|
|
82
56
|
];
|
|
83
57
|
// Issue #45: UserMemoの可視性ポリシー
|
|
84
58
|
export const USER_MEMO_USAGE_POLICIES = [
|
|
@@ -86,17 +60,15 @@ export const USER_MEMO_USAGE_POLICIES = [
|
|
|
86
60
|
"on_request", // 検索時のみ表示
|
|
87
61
|
"human_directed", // ユーザーが明示的に指示した場合のみ
|
|
88
62
|
];
|
|
89
|
-
//
|
|
63
|
+
// UserPlanのドメインステータス
|
|
90
64
|
export const USER_PLAN_STATUSES = [
|
|
91
65
|
"active", // 有効(進行中)
|
|
92
66
|
"completed", // 完了
|
|
93
|
-
"archived", // アーカイブ済み
|
|
94
67
|
];
|
|
95
|
-
//
|
|
68
|
+
// UserIssueのドメインステータス
|
|
96
69
|
export const USER_ISSUE_STATUSES = [
|
|
97
70
|
"open", // オープン
|
|
98
71
|
"closed", // クローズ
|
|
99
|
-
"archived", // アーカイブ済み
|
|
100
72
|
];
|
|
101
73
|
// Issue #57: UserIssueの優先度
|
|
102
74
|
export const USER_ISSUE_PRIORITIES = [
|
|
@@ -105,16 +77,14 @@ export const USER_ISSUE_PRIORITIES = [
|
|
|
105
77
|
"high", // 高
|
|
106
78
|
"critical", // 緊急
|
|
107
79
|
];
|
|
108
|
-
// UserFile
|
|
80
|
+
// UserFileのドメインステータス
|
|
109
81
|
export const USER_FILE_STATUSES = [
|
|
110
82
|
"active", // 有効
|
|
111
|
-
"archived", // アーカイブ済み
|
|
112
83
|
];
|
|
113
|
-
// UserTopic
|
|
84
|
+
// UserTopicのドメインステータス
|
|
114
85
|
export const USER_TOPIC_STATUSES = [
|
|
115
86
|
"active", // 活動中
|
|
116
87
|
"closed", // クローズ(議論完了)
|
|
117
|
-
"archived", // アーカイブ済み
|
|
118
88
|
];
|
|
119
89
|
// UserTopicの優先度(USER_ISSUE_PRIORITIESと同一)
|
|
120
90
|
export const USER_TOPIC_PRIORITIES = USER_ISSUE_PRIORITIES;
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,0DAA0D;AAC1D,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAE3D,6BAA6B;AAC7B,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAE9D,iBAAiB;AACjB,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE5D,gDAAgD;AAChD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AAEpC,YAAY;AACZ,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AACxC,iEAAiE;AACjE,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAwB,CAAC;AAChE,MAAM,CAAC,MAAM,cAAc,GAAW,IAAI,CAAC,OAAO,CAAC;AAEnD,eAAe;AACf,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,YAAY,EAAG,QAAQ;IACvB,UAAU,EAAK,gBAAgB;IAC/B,OAAO,EAAQ,SAAS;IACxB,OAAO,EAAQ,SAAS;IACxB,UAAU,EAAK,cAAc;IAC7B,WAAW,EAAI,QAAQ;IACvB,QAAQ,EAAO,OAAO;CACd,CAAC;AAEX,eAAe;AACf,gCAAgC;AAChC,4CAA4C;AAC5C,0CAA0C;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ,EAAO,QAAQ;IACvB,SAAS,EAAM,6BAA6B;IAC5C,SAAS,EAAM,8BAA8B;IAC7C,MAAM,EAAS,wBAAwB;IACvC,UAAU,EAAK,SAAS;CAChB,CAAC;AAEX,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/database/groom.js
CHANGED
|
@@ -5,7 +5,7 @@ import { computeClaimScore } from "../scoring.js";
|
|
|
5
5
|
* ただし全Claimを返す(score=0の健全なClaimも含む)。
|
|
6
6
|
*/
|
|
7
7
|
export function getGroomingClaims(db, params) {
|
|
8
|
-
const conditions = ["c.
|
|
8
|
+
const conditions = ["c.validity_status = 'active'", "c.is_archived = 0", "c.promoted_to IS NULL"];
|
|
9
9
|
const values = {};
|
|
10
10
|
if (params.scope) {
|
|
11
11
|
conditions.push("c.scope = @scope");
|
|
@@ -155,8 +155,8 @@ export function getGroomingClaims(db, params) {
|
|
|
155
155
|
*/
|
|
156
156
|
export function detectConflicts(db, params) {
|
|
157
157
|
const conditions = [
|
|
158
|
-
"c1.
|
|
159
|
-
"c2.
|
|
158
|
+
"c1.validity_status = 'active'", "c1.is_archived = 0",
|
|
159
|
+
"c2.validity_status = 'active'", "c2.is_archived = 0",
|
|
160
160
|
"c1.l2_subject = c2.l2_subject",
|
|
161
161
|
"c1.l2_predicate = c2.l2_predicate",
|
|
162
162
|
"c1.l2_object != c2.l2_object",
|
|
@@ -185,7 +185,7 @@ export function detectConflicts(db, params) {
|
|
|
185
185
|
AND (SELECT COUNT(*) FROM claims c3
|
|
186
186
|
WHERE c3.l2_subject = c1.l2_subject
|
|
187
187
|
AND c3.l2_predicate = c1.l2_predicate
|
|
188
|
-
AND c3.
|
|
188
|
+
AND c3.validity_status = 'active' AND c3.is_archived = 0) = 2
|
|
189
189
|
`).all(values);
|
|
190
190
|
}
|
|
191
191
|
/**
|
|
@@ -211,7 +211,7 @@ export function analyzeRetractImpact(db, claimId, maxDepth = 10) {
|
|
|
211
211
|
c.l2_subject, c.l2_predicate, c.l2_object, c.category, c.scope, c.confidence
|
|
212
212
|
FROM downstream d
|
|
213
213
|
JOIN claims c ON c.id = d.claim_id
|
|
214
|
-
WHERE c.
|
|
214
|
+
WHERE c.validity_status = 'active' AND c.is_archived = 0
|
|
215
215
|
AND d.claim_id != @claim_id -- 循環依存でターゲット自身が含まれるのを防止
|
|
216
216
|
ORDER BY d.depth, c.l2_subject
|
|
217
217
|
`).all({ claim_id: claimId, max_depth: maxDepth });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groom.js","sourceRoot":"","sources":["../../src/database/groom.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,EAAqB,EACrB,MAA6C;IAE7C,MAAM,UAAU,GAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"groom.js","sourceRoot":"","sources":["../../src/database/groom.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,9 +26,10 @@ export declare function insertClaim(db: Database.Database, params: {
|
|
|
26
26
|
search_summary?: string;
|
|
27
27
|
l1_embedding?: Buffer | null;
|
|
28
28
|
source_tool?: string;
|
|
29
|
-
|
|
29
|
+
session_id?: string;
|
|
30
30
|
client_name?: string | null;
|
|
31
31
|
client_version?: string | null;
|
|
32
|
+
user_input?: string;
|
|
32
33
|
}): ClaimRow;
|
|
33
34
|
export declare function getClaimById(db: Database.Database, id: string): ClaimRow | undefined;
|
|
34
35
|
export declare function updateClaim(db: Database.Database, id: string, updates: Record<string, unknown>, reason: string): ClaimRow | undefined;
|
|
@@ -67,6 +68,7 @@ export declare function insertDecision(db: Database.Database, params: {
|
|
|
67
68
|
user_input?: string;
|
|
68
69
|
l1_embedding?: Buffer | null;
|
|
69
70
|
source_tool?: string;
|
|
71
|
+
session_id?: string | null;
|
|
70
72
|
client_name?: string | null;
|
|
71
73
|
client_version?: string | null;
|
|
72
74
|
}): DecisionRow;
|
|
@@ -376,6 +378,27 @@ export declare function listModels(db: Database.Database, params: {
|
|
|
376
378
|
}): ModelRow[];
|
|
377
379
|
/** Model の l1_embedding を更新 */
|
|
378
380
|
export declare function updateModelL1Embedding(db: Database.Database, id: string, l1_embedding: Buffer): void;
|
|
381
|
+
/** Theory/Insight/Model の共通フィールドを更新 (Issue #3 user_issue) */
|
|
382
|
+
export declare function updateKnowledge(db: Database.Database, kind: "theory" | "insight" | "model", id: string, updates: {
|
|
383
|
+
title?: string;
|
|
384
|
+
description?: string;
|
|
385
|
+
l1_content?: string;
|
|
386
|
+
l2_core_thesis?: string;
|
|
387
|
+
l2_principles?: string[];
|
|
388
|
+
l2_trigger_conditions?: string[];
|
|
389
|
+
l2_resolution_steps?: string[];
|
|
390
|
+
l2_applicable_context?: string;
|
|
391
|
+
non_goals?: string[];
|
|
392
|
+
open_questions?: string[];
|
|
393
|
+
supporting_episode_ids?: string[];
|
|
394
|
+
supporting_claim_ids?: string[];
|
|
395
|
+
evidence_refs?: string[];
|
|
396
|
+
tags?: string[];
|
|
397
|
+
scope?: string;
|
|
398
|
+
confidence?: number;
|
|
399
|
+
search_summary?: string;
|
|
400
|
+
validity_status?: string;
|
|
401
|
+
}): TheoryRow | InsightRow | ModelRow | undefined;
|
|
379
402
|
/** l1_embedding が NULL の active Model を取得(バックフィル用) */
|
|
380
403
|
export declare function getModelsWithoutL1Embedding(db: Database.Database, limit: number): ModelRow[];
|
|
381
404
|
export declare function getModelsWithL1Embedding(db: Database.Database, scope?: string, limit?: number): ModelRow[];
|
|
@@ -401,7 +424,8 @@ export declare function updateUserMemo(db: Database.Database, id: string, update
|
|
|
401
424
|
tags?: string[];
|
|
402
425
|
scope?: string;
|
|
403
426
|
search_summary?: string;
|
|
404
|
-
|
|
427
|
+
memo_status?: string;
|
|
428
|
+
is_archived?: number;
|
|
405
429
|
}): UserMemoRow | undefined;
|
|
406
430
|
export declare function listUserMemos(db: Database.Database, params: {
|
|
407
431
|
query?: string;
|
|
@@ -437,7 +461,8 @@ export declare function updateUserPlan(db: Database.Database, id: string, update
|
|
|
437
461
|
tags?: string[];
|
|
438
462
|
scope?: string;
|
|
439
463
|
search_summary?: string;
|
|
440
|
-
|
|
464
|
+
plan_status?: string;
|
|
465
|
+
is_archived?: number;
|
|
441
466
|
}): UserPlanRow | undefined;
|
|
442
467
|
export declare function listUserPlans(db: Database.Database, params: {
|
|
443
468
|
query?: string;
|
|
@@ -489,7 +514,8 @@ export declare function updateUserIssue(db: Database.Database, id: string, updat
|
|
|
489
514
|
tags?: string[];
|
|
490
515
|
scope?: string;
|
|
491
516
|
search_summary?: string;
|
|
492
|
-
|
|
517
|
+
issue_status?: string;
|
|
518
|
+
is_archived?: number;
|
|
493
519
|
}): UserIssueRow | undefined;
|
|
494
520
|
export declare function listUserIssues(db: Database.Database, params: {
|
|
495
521
|
query?: string;
|
|
@@ -529,7 +555,8 @@ export declare function updateUserTopic(db: Database.Database, id: string, updat
|
|
|
529
555
|
tags?: string[];
|
|
530
556
|
scope?: string;
|
|
531
557
|
search_summary?: string;
|
|
532
|
-
|
|
558
|
+
topic_status?: string;
|
|
559
|
+
is_archived?: number;
|
|
533
560
|
}): UserTopicRow | undefined;
|
|
534
561
|
export declare function listUserTopics(db: Database.Database, params: {
|
|
535
562
|
query?: string;
|
|
@@ -608,6 +635,7 @@ export declare function applyTombstones(db: Database.Database): number;
|
|
|
608
635
|
export declare function insertUserFile(db: Database.Database, params: {
|
|
609
636
|
title: string;
|
|
610
637
|
description?: string | null;
|
|
638
|
+
device_id?: string | null;
|
|
611
639
|
original_filename: string;
|
|
612
640
|
original_encoding?: string;
|
|
613
641
|
file_data: string;
|
|
@@ -632,11 +660,13 @@ export declare function updateUserFile(db: Database.Database, id: string, update
|
|
|
632
660
|
tags?: string[];
|
|
633
661
|
scope?: string;
|
|
634
662
|
search_summary?: string;
|
|
635
|
-
|
|
663
|
+
file_status?: string;
|
|
664
|
+
is_archived?: number;
|
|
636
665
|
}): UserFileRow | undefined;
|
|
637
666
|
export declare function listUserFiles(db: Database.Database, params: {
|
|
638
667
|
scope?: string;
|
|
639
668
|
tags?: string[];
|
|
640
|
-
|
|
669
|
+
file_status?: string;
|
|
670
|
+
is_archived?: number;
|
|
641
671
|
}): Omit<UserFileRow, "file_data" | "l1_embedding">[];
|
|
642
672
|
//# sourceMappingURL=queries-core.d.ts.map
|