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.
- package/.claude-docs/CODEX_INTEGRATION.md +116 -0
- package/README.md +120 -62
- package/Usersj.miyamoto.watashi-dbdefault.db +0 -0
- package/cowork-plugin/.claude-plugin/plugin.json +1 -1
- package/cowork-plugin/.mcp.json +1 -1
- package/cowork-plugin/hooks/hooks.json +18 -0
- package/cowork-plugin/skills/recall/SKILL.md +36 -0
- package/dist/config/loader.d.ts +12 -0
- package/dist/config/loader.js +73 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schema.d.ts +406 -0
- package/dist/config/schema.js +78 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/validator.d.ts +22 -0
- package/dist/config/validator.js +194 -0
- package/dist/config/validator.js.map +1 -0
- package/dist/constants.d.ts +15 -4
- package/dist/constants.js +67 -6
- package/dist/constants.js.map +1 -1
- package/dist/context-pack.d.ts +53 -0
- package/dist/context-pack.js +380 -0
- package/dist/context-pack.js.map +1 -0
- package/dist/database/archive.d.ts +39 -0
- package/dist/database/archive.js +180 -0
- package/dist/database/archive.js.map +1 -0
- package/dist/database/connection.d.ts +9 -1
- package/dist/database/connection.js +23 -2
- package/dist/database/connection.js.map +1 -1
- package/dist/database/groom.d.ts +39 -0
- package/dist/database/groom.js +246 -0
- package/dist/database/groom.js.map +1 -0
- package/dist/database/maintain.d.ts +39 -0
- package/dist/database/maintain.js +62 -0
- package/dist/database/maintain.js.map +1 -0
- package/dist/database/queries-core.d.ts +490 -0
- package/dist/database/queries-core.js +2707 -0
- package/dist/database/queries-core.js.map +1 -0
- package/dist/database/queries.d.ts +251 -105
- package/dist/database/queries.js +152 -663
- package/dist/database/queries.js.map +1 -1
- package/dist/database/schema.js +5056 -1
- package/dist/database/schema.js.map +1 -1
- package/dist/embedding/embed-on-write.d.ts +98 -0
- package/dist/embedding/embed-on-write.js +104 -0
- package/dist/embedding/embed-on-write.js.map +1 -0
- package/dist/embedding/ollama.d.ts +18 -0
- package/dist/embedding/ollama.js +67 -0
- package/dist/embedding/ollama.js.map +1 -0
- package/dist/embedding/openai.d.ts +17 -0
- package/dist/embedding/openai.js +77 -0
- package/dist/embedding/openai.js.map +1 -0
- package/dist/embedding/provider.d.ts +34 -0
- package/dist/embedding/provider.js +92 -0
- package/dist/embedding/provider.js.map +1 -0
- package/dist/embedding/search.d.ts +61 -0
- package/dist/embedding/search.js +165 -0
- package/dist/embedding/search.js.map +1 -0
- package/dist/embedding/similarity.d.ts +21 -0
- package/dist/embedding/similarity.js +48 -0
- package/dist/embedding/similarity.js.map +1 -0
- package/dist/embedding/transformers-local.d.ts +24 -0
- package/dist/embedding/transformers-local.js +65 -0
- package/dist/embedding/transformers-local.js.map +1 -0
- package/dist/embedding/types.d.ts +27 -0
- package/dist/embedding/types.js +6 -0
- package/dist/embedding/types.js.map +1 -0
- package/dist/hook.d.ts +60 -0
- package/dist/hook.js +594 -0
- package/dist/hook.js.map +1 -0
- package/dist/index.js +20 -53
- package/dist/index.js.map +1 -1
- package/dist/lint.d.ts +40 -0
- package/dist/lint.js +114 -0
- package/dist/lint.js.map +1 -0
- package/dist/policy.d.ts +54 -0
- package/dist/policy.js +205 -0
- package/dist/policy.js.map +1 -0
- package/dist/project-detect.d.ts +8 -0
- package/dist/project-detect.js +36 -0
- package/dist/project-detect.js.map +1 -0
- package/dist/prompts/bootstrap-prompts.js +39 -10
- package/dist/prompts/bootstrap-prompts.js.map +1 -1
- package/dist/provenance.js +1 -3
- package/dist/provenance.js.map +1 -1
- package/dist/resources/config-guide-content.d.ts +7 -0
- package/dist/resources/config-guide-content.js +180 -0
- package/dist/resources/config-guide-content.js.map +1 -0
- package/dist/resources/context-resources.js +32 -6
- package/dist/resources/context-resources.js.map +1 -1
- package/dist/scoring.d.ts +21 -0
- package/dist/scoring.js +35 -0
- package/dist/scoring.js.map +1 -0
- package/dist/server-instructions.d.ts +7 -0
- package/dist/server-instructions.js +90 -0
- package/dist/server-instructions.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.js +103 -0
- package/dist/server.js.map +1 -0
- package/dist/setup.d.ts +19 -0
- package/dist/setup.js +279 -0
- package/dist/setup.js.map +1 -0
- package/dist/store/federation.d.ts +190 -0
- package/dist/store/federation.js +1008 -0
- package/dist/store/federation.js.map +1 -0
- package/dist/store/merge.d.ts +47 -0
- package/dist/store/merge.js +198 -0
- package/dist/store/merge.js.map +1 -0
- package/dist/store/session-state.d.ts +47 -0
- package/dist/store/session-state.js +95 -0
- package/dist/store/session-state.js.map +1 -0
- package/dist/store/store-manager.d.ts +46 -0
- package/dist/store/store-manager.js +108 -0
- package/dist/store/store-manager.js.map +1 -0
- package/dist/store/sync-manager.d.ts +79 -0
- package/dist/store/sync-manager.js +374 -0
- package/dist/store/sync-manager.js.map +1 -0
- package/dist/tools/claim-tools.d.ts +7 -1
- package/dist/tools/claim-tools.js +368 -138
- package/dist/tools/claim-tools.js.map +1 -1
- package/dist/tools/decision-tools.d.ts +3 -2
- package/dist/tools/decision-tools.js +60 -102
- package/dist/tools/decision-tools.js.map +1 -1
- package/dist/tools/episode-tools.d.ts +2 -3
- package/dist/tools/episode-tools.js +71 -112
- package/dist/tools/episode-tools.js.map +1 -1
- package/dist/tools/export-tools.d.ts +7 -1
- package/dist/tools/export-tools.js +89 -69
- package/dist/tools/export-tools.js.map +1 -1
- package/dist/tools/get-tools.d.ts +11 -0
- package/dist/tools/get-tools.js +282 -0
- package/dist/tools/get-tools.js.map +1 -0
- package/dist/tools/groom-tools.d.ts +13 -0
- package/dist/tools/groom-tools.js +197 -0
- package/dist/tools/groom-tools.js.map +1 -0
- package/dist/tools/helpers.d.ts +10 -0
- package/dist/tools/helpers.js +10 -0
- package/dist/tools/helpers.js.map +1 -0
- package/dist/tools/insight-tools.d.ts +11 -0
- package/dist/tools/insight-tools.js +167 -0
- package/dist/tools/insight-tools.js.map +1 -0
- package/dist/tools/knowledge-tools.d.ts +7 -0
- package/dist/tools/knowledge-tools.js +151 -0
- package/dist/tools/knowledge-tools.js.map +1 -0
- package/dist/tools/maintenance-tools.d.ts +11 -0
- package/dist/tools/maintenance-tools.js +1074 -0
- package/dist/tools/maintenance-tools.js.map +1 -0
- package/dist/tools/memo-tools.d.ts +15 -0
- package/dist/tools/memo-tools.js +370 -0
- package/dist/tools/memo-tools.js.map +1 -0
- package/dist/tools/model-tools.d.ts +11 -0
- package/dist/tools/model-tools.js +175 -0
- package/dist/tools/model-tools.js.map +1 -0
- package/dist/tools/profile-tools.d.ts +13 -1
- package/dist/tools/profile-tools.js +83 -85
- package/dist/tools/profile-tools.js.map +1 -1
- package/dist/tools/promote-tools.d.ts +10 -0
- package/dist/tools/promote-tools.js +376 -0
- package/dist/tools/promote-tools.js.map +1 -0
- package/dist/tools/query-tools.d.ts +13 -1
- package/dist/tools/query-tools.js +359 -72
- package/dist/tools/query-tools.js.map +1 -1
- package/dist/tools/store-tools.d.ts +12 -0
- package/dist/tools/store-tools.js +102 -0
- package/dist/tools/store-tools.js.map +1 -0
- package/dist/tools/sync-tools.d.ts +9 -0
- package/dist/tools/sync-tools.js +55 -0
- package/dist/tools/sync-tools.js.map +1 -0
- package/dist/tools/theory-tools.d.ts +7 -0
- package/dist/tools/theory-tools.js +179 -0
- package/dist/tools/theory-tools.js.map +1 -0
- package/dist/types.d.ts +730 -168
- package/dist/types.js +197 -92
- package/dist/types.js.map +1 -1
- package/misc/work-notes/main 20260224.txt +98 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/misc/work-notes/plans/20260304170153_UNKNOWN_Issue-#54-user-memoplanissue-/343/201/256-content-/342/206/222-l1-co.md +76 -0
- package/package.json +13 -2
- package/scripts/backfill-search-summary.mjs +219 -0
- package/scripts/migrate-theories.mjs +231 -0
- package/{watashi-db-cowork-plugin.zip → watashi-db-plugin.zip} +0 -0
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* config.json の Zod スキーマ定義
|
|
3
|
+
* マルチStore構成を宣言的に定義するための型とバリデーション
|
|
4
|
+
*/
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
/** 同期設定 */
|
|
7
|
+
export declare const SyncConfigSchema: z.ZodObject<{
|
|
8
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
9
|
+
destination: z.ZodString;
|
|
10
|
+
generations: z.ZodDefault<z.ZodNumber>;
|
|
11
|
+
}, "strict", z.ZodTypeAny, {
|
|
12
|
+
enabled: boolean;
|
|
13
|
+
destination: string;
|
|
14
|
+
generations: number;
|
|
15
|
+
}, {
|
|
16
|
+
destination: string;
|
|
17
|
+
enabled?: boolean | undefined;
|
|
18
|
+
generations?: number | undefined;
|
|
19
|
+
}>;
|
|
20
|
+
export type SyncConfig = z.infer<typeof SyncConfigSchema>;
|
|
21
|
+
/** Store discriminated union */
|
|
22
|
+
export declare const StoreSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
23
|
+
type: z.ZodLiteral<"local">;
|
|
24
|
+
path: z.ZodString;
|
|
25
|
+
sync: z.ZodOptional<z.ZodObject<{
|
|
26
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
27
|
+
destination: z.ZodString;
|
|
28
|
+
generations: z.ZodDefault<z.ZodNumber>;
|
|
29
|
+
}, "strict", z.ZodTypeAny, {
|
|
30
|
+
enabled: boolean;
|
|
31
|
+
destination: string;
|
|
32
|
+
generations: number;
|
|
33
|
+
}, {
|
|
34
|
+
destination: string;
|
|
35
|
+
enabled?: boolean | undefined;
|
|
36
|
+
generations?: number | undefined;
|
|
37
|
+
}>>;
|
|
38
|
+
}, "strict", z.ZodTypeAny, {
|
|
39
|
+
path: string;
|
|
40
|
+
type: "local";
|
|
41
|
+
sync?: {
|
|
42
|
+
enabled: boolean;
|
|
43
|
+
destination: string;
|
|
44
|
+
generations: number;
|
|
45
|
+
} | undefined;
|
|
46
|
+
}, {
|
|
47
|
+
path: string;
|
|
48
|
+
type: "local";
|
|
49
|
+
sync?: {
|
|
50
|
+
destination: string;
|
|
51
|
+
enabled?: boolean | undefined;
|
|
52
|
+
generations?: number | undefined;
|
|
53
|
+
} | undefined;
|
|
54
|
+
}>, z.ZodObject<{
|
|
55
|
+
type: z.ZodLiteral<"remote-db">;
|
|
56
|
+
url: z.ZodString;
|
|
57
|
+
}, "strict", z.ZodTypeAny, {
|
|
58
|
+
type: "remote-db";
|
|
59
|
+
url: string;
|
|
60
|
+
}, {
|
|
61
|
+
type: "remote-db";
|
|
62
|
+
url: string;
|
|
63
|
+
}>, z.ZodObject<{
|
|
64
|
+
type: z.ZodLiteral<"remote-mcp">;
|
|
65
|
+
url: z.ZodString;
|
|
66
|
+
}, "strict", z.ZodTypeAny, {
|
|
67
|
+
type: "remote-mcp";
|
|
68
|
+
url: string;
|
|
69
|
+
}, {
|
|
70
|
+
type: "remote-mcp";
|
|
71
|
+
url: string;
|
|
72
|
+
}>]>;
|
|
73
|
+
export type StoreConfig = z.infer<typeof StoreSchema>;
|
|
74
|
+
export declare const AccessModeSchema: z.ZodEnum<["read-write", "read-only"]>;
|
|
75
|
+
export type AccessMode = z.infer<typeof AccessModeSchema>;
|
|
76
|
+
export declare const ContextSchema: z.ZodObject<{
|
|
77
|
+
stores: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodEnum<["read-write", "read-only"]>>, Record<string, "read-write" | "read-only">, Record<string, "read-write" | "read-only">>;
|
|
78
|
+
default_store: z.ZodString;
|
|
79
|
+
}, "strict", z.ZodTypeAny, {
|
|
80
|
+
stores: Record<string, "read-write" | "read-only">;
|
|
81
|
+
default_store: string;
|
|
82
|
+
}, {
|
|
83
|
+
stores: Record<string, "read-write" | "read-only">;
|
|
84
|
+
default_store: string;
|
|
85
|
+
}>;
|
|
86
|
+
export type ContextConfig = z.infer<typeof ContextSchema>;
|
|
87
|
+
export declare const EmbeddingConfigSchema: z.ZodObject<{
|
|
88
|
+
provider: z.ZodDefault<z.ZodString>;
|
|
89
|
+
model: z.ZodDefault<z.ZodString>;
|
|
90
|
+
dimensions: z.ZodDefault<z.ZodNumber>;
|
|
91
|
+
base_url: z.ZodOptional<z.ZodString>;
|
|
92
|
+
}, "strict", z.ZodTypeAny, {
|
|
93
|
+
model: string;
|
|
94
|
+
provider: string;
|
|
95
|
+
dimensions: number;
|
|
96
|
+
base_url?: string | undefined;
|
|
97
|
+
}, {
|
|
98
|
+
model?: string | undefined;
|
|
99
|
+
provider?: string | undefined;
|
|
100
|
+
dimensions?: number | undefined;
|
|
101
|
+
base_url?: string | undefined;
|
|
102
|
+
}>;
|
|
103
|
+
export type EmbeddingConfig = z.infer<typeof EmbeddingConfigSchema>;
|
|
104
|
+
export declare const LintConfigSchema: z.ZodObject<{
|
|
105
|
+
secret_detection: z.ZodDefault<z.ZodEnum<["block", "warn", "off"]>>;
|
|
106
|
+
}, "strict", z.ZodTypeAny, {
|
|
107
|
+
secret_detection: "block" | "warn" | "off";
|
|
108
|
+
}, {
|
|
109
|
+
secret_detection?: "block" | "warn" | "off" | undefined;
|
|
110
|
+
}>;
|
|
111
|
+
export type LintConfig = z.infer<typeof LintConfigSchema>;
|
|
112
|
+
/** Store名・Context名に使用可能な文字パターン */
|
|
113
|
+
export declare const STORE_NAME_PATTERN: RegExp;
|
|
114
|
+
export declare const RawConfigSchema: z.ZodObject<{
|
|
115
|
+
stores: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
116
|
+
type: z.ZodLiteral<"local">;
|
|
117
|
+
path: z.ZodString;
|
|
118
|
+
sync: z.ZodOptional<z.ZodObject<{
|
|
119
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
120
|
+
destination: z.ZodString;
|
|
121
|
+
generations: z.ZodDefault<z.ZodNumber>;
|
|
122
|
+
}, "strict", z.ZodTypeAny, {
|
|
123
|
+
enabled: boolean;
|
|
124
|
+
destination: string;
|
|
125
|
+
generations: number;
|
|
126
|
+
}, {
|
|
127
|
+
destination: string;
|
|
128
|
+
enabled?: boolean | undefined;
|
|
129
|
+
generations?: number | undefined;
|
|
130
|
+
}>>;
|
|
131
|
+
}, "strict", z.ZodTypeAny, {
|
|
132
|
+
path: string;
|
|
133
|
+
type: "local";
|
|
134
|
+
sync?: {
|
|
135
|
+
enabled: boolean;
|
|
136
|
+
destination: string;
|
|
137
|
+
generations: number;
|
|
138
|
+
} | undefined;
|
|
139
|
+
}, {
|
|
140
|
+
path: string;
|
|
141
|
+
type: "local";
|
|
142
|
+
sync?: {
|
|
143
|
+
destination: string;
|
|
144
|
+
enabled?: boolean | undefined;
|
|
145
|
+
generations?: number | undefined;
|
|
146
|
+
} | undefined;
|
|
147
|
+
}>, z.ZodObject<{
|
|
148
|
+
type: z.ZodLiteral<"remote-db">;
|
|
149
|
+
url: z.ZodString;
|
|
150
|
+
}, "strict", z.ZodTypeAny, {
|
|
151
|
+
type: "remote-db";
|
|
152
|
+
url: string;
|
|
153
|
+
}, {
|
|
154
|
+
type: "remote-db";
|
|
155
|
+
url: string;
|
|
156
|
+
}>, z.ZodObject<{
|
|
157
|
+
type: z.ZodLiteral<"remote-mcp">;
|
|
158
|
+
url: z.ZodString;
|
|
159
|
+
}, "strict", z.ZodTypeAny, {
|
|
160
|
+
type: "remote-mcp";
|
|
161
|
+
url: string;
|
|
162
|
+
}, {
|
|
163
|
+
type: "remote-mcp";
|
|
164
|
+
url: string;
|
|
165
|
+
}>]>>, Record<string, {
|
|
166
|
+
path: string;
|
|
167
|
+
type: "local";
|
|
168
|
+
sync?: {
|
|
169
|
+
enabled: boolean;
|
|
170
|
+
destination: string;
|
|
171
|
+
generations: number;
|
|
172
|
+
} | undefined;
|
|
173
|
+
} | {
|
|
174
|
+
type: "remote-db";
|
|
175
|
+
url: string;
|
|
176
|
+
} | {
|
|
177
|
+
type: "remote-mcp";
|
|
178
|
+
url: string;
|
|
179
|
+
}>, Record<string, {
|
|
180
|
+
path: string;
|
|
181
|
+
type: "local";
|
|
182
|
+
sync?: {
|
|
183
|
+
destination: string;
|
|
184
|
+
enabled?: boolean | undefined;
|
|
185
|
+
generations?: number | undefined;
|
|
186
|
+
} | undefined;
|
|
187
|
+
} | {
|
|
188
|
+
type: "remote-db";
|
|
189
|
+
url: string;
|
|
190
|
+
} | {
|
|
191
|
+
type: "remote-mcp";
|
|
192
|
+
url: string;
|
|
193
|
+
}>>;
|
|
194
|
+
contexts: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
195
|
+
stores: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodEnum<["read-write", "read-only"]>>, Record<string, "read-write" | "read-only">, Record<string, "read-write" | "read-only">>;
|
|
196
|
+
default_store: z.ZodString;
|
|
197
|
+
}, "strict", z.ZodTypeAny, {
|
|
198
|
+
stores: Record<string, "read-write" | "read-only">;
|
|
199
|
+
default_store: string;
|
|
200
|
+
}, {
|
|
201
|
+
stores: Record<string, "read-write" | "read-only">;
|
|
202
|
+
default_store: string;
|
|
203
|
+
}>>, Record<string, {
|
|
204
|
+
stores: Record<string, "read-write" | "read-only">;
|
|
205
|
+
default_store: string;
|
|
206
|
+
}>, Record<string, {
|
|
207
|
+
stores: Record<string, "read-write" | "read-only">;
|
|
208
|
+
default_store: string;
|
|
209
|
+
}>>;
|
|
210
|
+
default_context: z.ZodString;
|
|
211
|
+
lint: z.ZodOptional<z.ZodObject<{
|
|
212
|
+
secret_detection: z.ZodDefault<z.ZodEnum<["block", "warn", "off"]>>;
|
|
213
|
+
}, "strict", z.ZodTypeAny, {
|
|
214
|
+
secret_detection: "block" | "warn" | "off";
|
|
215
|
+
}, {
|
|
216
|
+
secret_detection?: "block" | "warn" | "off" | undefined;
|
|
217
|
+
}>>;
|
|
218
|
+
embedding: z.ZodOptional<z.ZodObject<{
|
|
219
|
+
provider: z.ZodDefault<z.ZodString>;
|
|
220
|
+
model: z.ZodDefault<z.ZodString>;
|
|
221
|
+
dimensions: z.ZodDefault<z.ZodNumber>;
|
|
222
|
+
base_url: z.ZodOptional<z.ZodString>;
|
|
223
|
+
}, "strict", z.ZodTypeAny, {
|
|
224
|
+
model: string;
|
|
225
|
+
provider: string;
|
|
226
|
+
dimensions: number;
|
|
227
|
+
base_url?: string | undefined;
|
|
228
|
+
}, {
|
|
229
|
+
model?: string | undefined;
|
|
230
|
+
provider?: string | undefined;
|
|
231
|
+
dimensions?: number | undefined;
|
|
232
|
+
base_url?: string | undefined;
|
|
233
|
+
}>>;
|
|
234
|
+
client_policies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
235
|
+
read: z.ZodDefault<z.ZodUnion<[z.ZodObject<{
|
|
236
|
+
categories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
237
|
+
scopes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
238
|
+
}, "strict", z.ZodTypeAny, {
|
|
239
|
+
categories?: string[] | undefined;
|
|
240
|
+
scopes?: string[] | undefined;
|
|
241
|
+
}, {
|
|
242
|
+
categories?: string[] | undefined;
|
|
243
|
+
scopes?: string[] | undefined;
|
|
244
|
+
}>, z.ZodLiteral<"none">]>>;
|
|
245
|
+
write: z.ZodDefault<z.ZodUnion<[z.ZodObject<{
|
|
246
|
+
categories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
247
|
+
scopes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
248
|
+
}, "strict", z.ZodTypeAny, {
|
|
249
|
+
categories?: string[] | undefined;
|
|
250
|
+
scopes?: string[] | undefined;
|
|
251
|
+
}, {
|
|
252
|
+
categories?: string[] | undefined;
|
|
253
|
+
scopes?: string[] | undefined;
|
|
254
|
+
}>, z.ZodLiteral<"none">]>>;
|
|
255
|
+
}, "strict", z.ZodTypeAny, {
|
|
256
|
+
read: {
|
|
257
|
+
categories?: string[] | undefined;
|
|
258
|
+
scopes?: string[] | undefined;
|
|
259
|
+
} | "none";
|
|
260
|
+
write: {
|
|
261
|
+
categories?: string[] | undefined;
|
|
262
|
+
scopes?: string[] | undefined;
|
|
263
|
+
} | "none";
|
|
264
|
+
}, {
|
|
265
|
+
read?: {
|
|
266
|
+
categories?: string[] | undefined;
|
|
267
|
+
scopes?: string[] | undefined;
|
|
268
|
+
} | "none" | undefined;
|
|
269
|
+
write?: {
|
|
270
|
+
categories?: string[] | undefined;
|
|
271
|
+
scopes?: string[] | undefined;
|
|
272
|
+
} | "none" | undefined;
|
|
273
|
+
}>>>;
|
|
274
|
+
}, "strict", z.ZodTypeAny, {
|
|
275
|
+
stores: Record<string, {
|
|
276
|
+
path: string;
|
|
277
|
+
type: "local";
|
|
278
|
+
sync?: {
|
|
279
|
+
enabled: boolean;
|
|
280
|
+
destination: string;
|
|
281
|
+
generations: number;
|
|
282
|
+
} | undefined;
|
|
283
|
+
} | {
|
|
284
|
+
type: "remote-db";
|
|
285
|
+
url: string;
|
|
286
|
+
} | {
|
|
287
|
+
type: "remote-mcp";
|
|
288
|
+
url: string;
|
|
289
|
+
}>;
|
|
290
|
+
contexts: Record<string, {
|
|
291
|
+
stores: Record<string, "read-write" | "read-only">;
|
|
292
|
+
default_store: string;
|
|
293
|
+
}>;
|
|
294
|
+
default_context: string;
|
|
295
|
+
embedding?: {
|
|
296
|
+
model: string;
|
|
297
|
+
provider: string;
|
|
298
|
+
dimensions: number;
|
|
299
|
+
base_url?: string | undefined;
|
|
300
|
+
} | undefined;
|
|
301
|
+
lint?: {
|
|
302
|
+
secret_detection: "block" | "warn" | "off";
|
|
303
|
+
} | undefined;
|
|
304
|
+
client_policies?: Record<string, {
|
|
305
|
+
read: {
|
|
306
|
+
categories?: string[] | undefined;
|
|
307
|
+
scopes?: string[] | undefined;
|
|
308
|
+
} | "none";
|
|
309
|
+
write: {
|
|
310
|
+
categories?: string[] | undefined;
|
|
311
|
+
scopes?: string[] | undefined;
|
|
312
|
+
} | "none";
|
|
313
|
+
}> | undefined;
|
|
314
|
+
}, {
|
|
315
|
+
stores: Record<string, {
|
|
316
|
+
path: string;
|
|
317
|
+
type: "local";
|
|
318
|
+
sync?: {
|
|
319
|
+
destination: string;
|
|
320
|
+
enabled?: boolean | undefined;
|
|
321
|
+
generations?: number | undefined;
|
|
322
|
+
} | undefined;
|
|
323
|
+
} | {
|
|
324
|
+
type: "remote-db";
|
|
325
|
+
url: string;
|
|
326
|
+
} | {
|
|
327
|
+
type: "remote-mcp";
|
|
328
|
+
url: string;
|
|
329
|
+
}>;
|
|
330
|
+
contexts: Record<string, {
|
|
331
|
+
stores: Record<string, "read-write" | "read-only">;
|
|
332
|
+
default_store: string;
|
|
333
|
+
}>;
|
|
334
|
+
default_context: string;
|
|
335
|
+
embedding?: {
|
|
336
|
+
model?: string | undefined;
|
|
337
|
+
provider?: string | undefined;
|
|
338
|
+
dimensions?: number | undefined;
|
|
339
|
+
base_url?: string | undefined;
|
|
340
|
+
} | undefined;
|
|
341
|
+
lint?: {
|
|
342
|
+
secret_detection?: "block" | "warn" | "off" | undefined;
|
|
343
|
+
} | undefined;
|
|
344
|
+
client_policies?: Record<string, {
|
|
345
|
+
read?: {
|
|
346
|
+
categories?: string[] | undefined;
|
|
347
|
+
scopes?: string[] | undefined;
|
|
348
|
+
} | "none" | undefined;
|
|
349
|
+
write?: {
|
|
350
|
+
categories?: string[] | undefined;
|
|
351
|
+
scopes?: string[] | undefined;
|
|
352
|
+
} | "none" | undefined;
|
|
353
|
+
}> | undefined;
|
|
354
|
+
}>;
|
|
355
|
+
export type RawConfig = z.infer<typeof RawConfigSchema>;
|
|
356
|
+
/** 解決済み同期設定(パス正規化後) */
|
|
357
|
+
export interface ResolvedSyncConfig {
|
|
358
|
+
enabled: boolean;
|
|
359
|
+
destination: string;
|
|
360
|
+
originalDestination: string;
|
|
361
|
+
generations: number;
|
|
362
|
+
}
|
|
363
|
+
/** パス正規化済みのローカルStore */
|
|
364
|
+
export interface ResolvedLocalStore {
|
|
365
|
+
type: "local";
|
|
366
|
+
path: string;
|
|
367
|
+
originalPath: string;
|
|
368
|
+
sync?: ResolvedSyncConfig;
|
|
369
|
+
}
|
|
370
|
+
/** 解決済みStore(現時点ではlocalのみ実装) */
|
|
371
|
+
export type ResolvedStore = ResolvedLocalStore;
|
|
372
|
+
/** 解決済みContext */
|
|
373
|
+
export interface ResolvedContext {
|
|
374
|
+
stores: Record<string, AccessMode>;
|
|
375
|
+
default_store: string;
|
|
376
|
+
}
|
|
377
|
+
/** 解決済みLint設定 */
|
|
378
|
+
export interface ResolvedLintConfig {
|
|
379
|
+
secret_detection: "block" | "warn" | "off";
|
|
380
|
+
}
|
|
381
|
+
/** 解決済みクライアントポリシー */
|
|
382
|
+
export interface ClientPolicyAccess {
|
|
383
|
+
categories?: string[];
|
|
384
|
+
scopes?: string[];
|
|
385
|
+
}
|
|
386
|
+
export interface ClientPolicyConfig {
|
|
387
|
+
read: ClientPolicyAccess | "none";
|
|
388
|
+
write: ClientPolicyAccess | "none";
|
|
389
|
+
}
|
|
390
|
+
/** 解決済みEmbedding設定 */
|
|
391
|
+
export interface ResolvedEmbeddingConfig {
|
|
392
|
+
provider: string;
|
|
393
|
+
model: string;
|
|
394
|
+
dimensions: number;
|
|
395
|
+
base_url?: string;
|
|
396
|
+
}
|
|
397
|
+
/** 解決済みConfig(バリデーション通過後の内部表現) */
|
|
398
|
+
export interface ResolvedConfig {
|
|
399
|
+
stores: Record<string, ResolvedStore>;
|
|
400
|
+
contexts: Record<string, ResolvedContext>;
|
|
401
|
+
default_context: string;
|
|
402
|
+
lint?: ResolvedLintConfig;
|
|
403
|
+
embedding?: ResolvedEmbeddingConfig;
|
|
404
|
+
client_policies?: Record<string, ClientPolicyConfig>;
|
|
405
|
+
}
|
|
406
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* config.json の Zod スキーマ定義
|
|
3
|
+
* マルチStore構成を宣言的に定義するための型とバリデーション
|
|
4
|
+
*/
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
// --- Store 定義 ---
|
|
7
|
+
/** 同期設定 */
|
|
8
|
+
export const SyncConfigSchema = z.object({
|
|
9
|
+
enabled: z.boolean().default(true),
|
|
10
|
+
destination: z.string().min(1, "sync.destinationは必須です"),
|
|
11
|
+
generations: z.number().int().min(1).default(3),
|
|
12
|
+
}).strict();
|
|
13
|
+
/** ローカルSQLiteファイル */
|
|
14
|
+
const LocalStoreSchema = z.object({
|
|
15
|
+
type: z.literal("local"),
|
|
16
|
+
path: z.string().min(1, "pathは必須です"),
|
|
17
|
+
sync: SyncConfigSchema.optional(),
|
|
18
|
+
}).strict();
|
|
19
|
+
/** リモートDB接続(将来用・型定義のみ) */
|
|
20
|
+
const RemoteDbStoreSchema = z.object({
|
|
21
|
+
type: z.literal("remote-db"),
|
|
22
|
+
url: z.string().url(),
|
|
23
|
+
}).strict();
|
|
24
|
+
/** リモートMCPサーバー(将来用・型定義のみ) */
|
|
25
|
+
const RemoteMcpStoreSchema = z.object({
|
|
26
|
+
type: z.literal("remote-mcp"),
|
|
27
|
+
url: z.string().url(),
|
|
28
|
+
}).strict();
|
|
29
|
+
/** Store discriminated union */
|
|
30
|
+
export const StoreSchema = z.discriminatedUnion("type", [
|
|
31
|
+
LocalStoreSchema,
|
|
32
|
+
RemoteDbStoreSchema,
|
|
33
|
+
RemoteMcpStoreSchema,
|
|
34
|
+
]);
|
|
35
|
+
// --- アクセスモード ---
|
|
36
|
+
export const AccessModeSchema = z.enum(["read-write", "read-only"]);
|
|
37
|
+
// --- Context 定義 ---
|
|
38
|
+
export const ContextSchema = z.object({
|
|
39
|
+
stores: z.record(z.string(), AccessModeSchema).refine((s) => Object.keys(s).length > 0, { message: "contextには少なくとも1つのstoreが必要です" }),
|
|
40
|
+
default_store: z.string().min(1, "default_storeは必須です"),
|
|
41
|
+
}).strict();
|
|
42
|
+
// --- クライアントポリシー設定 ---
|
|
43
|
+
/** アクセス制御(categories/scopes で許可範囲を指定) */
|
|
44
|
+
const PolicyAccessSchema = z.object({
|
|
45
|
+
categories: z.array(z.string()).optional(),
|
|
46
|
+
scopes: z.array(z.string()).optional(),
|
|
47
|
+
}).strict();
|
|
48
|
+
/** クライアント別ポリシー(read/write それぞれに制御) */
|
|
49
|
+
const ClientPolicySchema = z.object({
|
|
50
|
+
read: z.union([PolicyAccessSchema, z.literal("none")]).default({}),
|
|
51
|
+
write: z.union([PolicyAccessSchema, z.literal("none")]).default({}),
|
|
52
|
+
}).strict();
|
|
53
|
+
// --- Embedding 設定(Issue #29) ---
|
|
54
|
+
export const EmbeddingConfigSchema = z.object({
|
|
55
|
+
provider: z.string().default("openai").describe("Embeddingプロバイダー名"),
|
|
56
|
+
model: z.string().default("text-embedding-3-small").describe("モデル名"),
|
|
57
|
+
dimensions: z.number().int().min(1).default(1536).describe("ベクトル次元数"),
|
|
58
|
+
// 2026-02-23 追加: Ollama等ローカルサーバー用
|
|
59
|
+
base_url: z.string().optional().describe("ベースURL(例: http://192.168.x.x:11434)"),
|
|
60
|
+
}).strict();
|
|
61
|
+
// --- Lint 設定 ---
|
|
62
|
+
export const LintConfigSchema = z.object({
|
|
63
|
+
secret_detection: z.enum(["block", "warn", "off"]).default("warn"),
|
|
64
|
+
}).strict();
|
|
65
|
+
// --- Config 全体 ---
|
|
66
|
+
/** Store名・Context名に使用可能な文字パターン */
|
|
67
|
+
export const STORE_NAME_PATTERN = /^[a-zA-Z0-9_-]+$/;
|
|
68
|
+
/** Store名のキーバリデーション付き z.record */
|
|
69
|
+
const StoreNameKeySchema = z.string().regex(STORE_NAME_PATTERN, "Store名は英数字・アンダースコア・ハイフンのみ使用できます");
|
|
70
|
+
export const RawConfigSchema = z.object({
|
|
71
|
+
stores: z.record(StoreNameKeySchema, StoreSchema).refine((s) => Object.keys(s).length > 0, { message: "少なくとも1つのstoreが必要です" }),
|
|
72
|
+
contexts: z.record(z.string(), ContextSchema).refine((c) => Object.keys(c).length > 0, { message: "少なくとも1つのcontextが必要です" }),
|
|
73
|
+
default_context: z.string().min(1, "default_contextは必須です"),
|
|
74
|
+
lint: LintConfigSchema.optional(),
|
|
75
|
+
embedding: EmbeddingConfigSchema.optional(),
|
|
76
|
+
client_policies: z.record(z.string(), ClientPolicySchema).optional(),
|
|
77
|
+
}).strict();
|
|
78
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ResolvedConfig } from "./schema.js";
|
|
2
|
+
/**
|
|
3
|
+
* Config バリデーションエラー(全エラーを一括報告)
|
|
4
|
+
*/
|
|
5
|
+
export declare class ConfigValidationError extends Error {
|
|
6
|
+
readonly errors: string[];
|
|
7
|
+
constructor(errors: string[]);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* チルダ展開: ~/xxx → os.homedir()/xxx
|
|
11
|
+
*/
|
|
12
|
+
export declare function expandTilde(p: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* クライアントポリシーのスコープパターンが有効かチェック
|
|
15
|
+
*/
|
|
16
|
+
export declare function isValidScopePattern(pattern: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* RawConfig を検証し、パス展開済みの ResolvedConfig を返す
|
|
19
|
+
* Zodスキーマ検証 + 参照整合性チェック を一括実行
|
|
20
|
+
*/
|
|
21
|
+
export declare function validateAndResolveConfig(raw: unknown): ResolvedConfig;
|
|
22
|
+
//# sourceMappingURL=validator.d.ts.map
|