@codemem/core 0.0.0 → 0.20.0-alpha.3
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 +21 -0
- package/dist/address-utils.d.ts +24 -0
- package/dist/address-utils.d.ts.map +1 -0
- package/dist/api-types.d.ts +580 -0
- package/dist/api-types.d.ts.map +1 -0
- package/dist/claude-hooks.d.ts +62 -0
- package/dist/claude-hooks.d.ts.map +1 -0
- package/dist/coordinator-api.d.ts +11 -0
- package/dist/coordinator-api.d.ts.map +1 -0
- package/dist/coordinator-invites.d.ts +28 -0
- package/dist/coordinator-invites.d.ts.map +1 -0
- package/dist/coordinator-store.d.ts +67 -0
- package/dist/coordinator-store.d.ts.map +1 -0
- package/dist/db.d.ts +97 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/embeddings.d.ts +39 -0
- package/dist/embeddings.d.ts.map +1 -0
- package/dist/export-import.d.ts +48 -0
- package/dist/export-import.d.ts.map +1 -0
- package/dist/filters.d.ts +34 -0
- package/dist/filters.d.ts.map +1 -0
- package/dist/index.d.ts +66 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7287 -0
- package/dist/index.js.map +1 -0
- package/dist/ingest-events.d.ts +34 -0
- package/dist/ingest-events.d.ts.map +1 -0
- package/dist/ingest-filters.d.ts +16 -0
- package/dist/ingest-filters.d.ts.map +1 -0
- package/dist/ingest-pipeline.d.ts +56 -0
- package/dist/ingest-pipeline.d.ts.map +1 -0
- package/dist/ingest-prompts.d.ts +22 -0
- package/dist/ingest-prompts.d.ts.map +1 -0
- package/dist/ingest-sanitize.d.ts +18 -0
- package/dist/ingest-sanitize.d.ts.map +1 -0
- package/dist/ingest-transcript.d.ts +41 -0
- package/dist/ingest-transcript.d.ts.map +1 -0
- package/dist/ingest-types.d.ts +70 -0
- package/dist/ingest-types.d.ts.map +1 -0
- package/dist/ingest-xml-parser.d.ts +20 -0
- package/dist/ingest-xml-parser.d.ts.map +1 -0
- package/dist/integers.d.ts +13 -0
- package/dist/integers.d.ts.map +1 -0
- package/dist/maintenance.d.ts +71 -0
- package/dist/maintenance.d.ts.map +1 -0
- package/dist/observer-auth.d.ts +65 -0
- package/dist/observer-auth.d.ts.map +1 -0
- package/dist/observer-client.d.ts +104 -0
- package/dist/observer-client.d.ts.map +1 -0
- package/dist/observer-config.d.ts +57 -0
- package/dist/observer-config.d.ts.map +1 -0
- package/dist/pack.d.ts +36 -0
- package/dist/pack.d.ts.map +1 -0
- package/dist/project.d.ts +12 -0
- package/dist/project.d.ts.map +1 -0
- package/dist/raw-event-flush.d.ts +43 -0
- package/dist/raw-event-flush.d.ts.map +1 -0
- package/dist/raw-event-sweeper.d.ts +92 -0
- package/dist/raw-event-sweeper.d.ts.map +1 -0
- package/dist/schema.d.ts +7368 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/search.d.ts +76 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/store.d.ts +274 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/sync-auth.d.ts +81 -0
- package/dist/sync-auth.d.ts.map +1 -0
- package/dist/sync-daemon.d.ts +50 -0
- package/dist/sync-daemon.d.ts.map +1 -0
- package/dist/sync-discovery.d.ts +93 -0
- package/dist/sync-discovery.d.ts.map +1 -0
- package/dist/sync-http-client.d.ts +26 -0
- package/dist/sync-http-client.d.ts.map +1 -0
- package/dist/sync-identity.d.ts +38 -0
- package/dist/sync-identity.d.ts.map +1 -0
- package/dist/sync-pass.d.ts +63 -0
- package/dist/sync-pass.d.ts.map +1 -0
- package/dist/sync-replication.d.ts +99 -0
- package/dist/sync-replication.d.ts.map +1 -0
- package/dist/test-utils.d.ts +27 -0
- package/dist/test-utils.d.ts.map +1 -0
- package/dist/types.d.ts +414 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/vectors.d.ts +59 -0
- package/dist/vectors.d.ts.map +1 -0
- package/package.json +42 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Adam Kunicki
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared address normalization utilities for the sync system.
|
|
3
|
+
*
|
|
4
|
+
* Used by both coordinator-store and sync-discovery to ensure
|
|
5
|
+
* consistent address handling across the sync pipeline.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Normalize an address to a consistent URL form.
|
|
9
|
+
*
|
|
10
|
+
* Uses the built-in URL constructor for consistent normalization:
|
|
11
|
+
* lowercases host, strips default ports (80/443), trims trailing slashes.
|
|
12
|
+
* Returns empty string for invalid/empty input.
|
|
13
|
+
*/
|
|
14
|
+
export declare function normalizeAddress(address: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Produce a dedup key for an address (strips http scheme for comparison).
|
|
17
|
+
*/
|
|
18
|
+
export declare function addressDedupeKey(address: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Merge two address lists, normalizing and deduplicating.
|
|
21
|
+
* Existing addresses come first, then new candidates.
|
|
22
|
+
*/
|
|
23
|
+
export declare function mergeAddresses(existing: string[], candidates: string[]): string[];
|
|
24
|
+
//# sourceMappingURL=address-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address-utils.d.ts","sourceRoot":"","sources":["../src/address-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAcxD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAWxD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAWjF"}
|
|
@@ -0,0 +1,580 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared HTTP API response types for the codemem viewer endpoints.
|
|
3
|
+
*
|
|
4
|
+
* These types define the JSON contract between the Python viewer backend
|
|
5
|
+
* (codemem/viewer_routes/) and the frontend (viewer_ui/src/lib/api.ts).
|
|
6
|
+
*
|
|
7
|
+
* ⚠️ These types are manually transcribed from Python viewer route handlers.
|
|
8
|
+
* There is no automated schema validation between Python and TypeScript.
|
|
9
|
+
* When modifying Python routes, update these types and add integration tests.
|
|
10
|
+
*
|
|
11
|
+
* Import existing store/entity types where shapes match.
|
|
12
|
+
*/
|
|
13
|
+
import type { Actor, MemoryItemResponse, PackResponse, Session, StoreStats } from "./types.js";
|
|
14
|
+
/** Standard pagination envelope returned by list endpoints. */
|
|
15
|
+
export interface ApiPagination {
|
|
16
|
+
limit: number;
|
|
17
|
+
offset: number;
|
|
18
|
+
next_offset: number | null;
|
|
19
|
+
has_more: boolean;
|
|
20
|
+
}
|
|
21
|
+
/** Common error shape returned by all endpoints on failure. */
|
|
22
|
+
export interface ApiErrorResponse {
|
|
23
|
+
error: string;
|
|
24
|
+
detail?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* GET /api/stats
|
|
28
|
+
*
|
|
29
|
+
* Delegates directly to store.stats(); shape matches StoreStats.
|
|
30
|
+
*/
|
|
31
|
+
export type ApiStatsResponse = StoreStats;
|
|
32
|
+
/** Single usage event summary row. */
|
|
33
|
+
export interface ApiUsageEventSummary {
|
|
34
|
+
event: string;
|
|
35
|
+
total_tokens_read: number;
|
|
36
|
+
total_tokens_written: number;
|
|
37
|
+
total_tokens_saved: number;
|
|
38
|
+
count: number;
|
|
39
|
+
}
|
|
40
|
+
/** Usage totals row. */
|
|
41
|
+
export interface ApiUsageTotals {
|
|
42
|
+
tokens_read: number;
|
|
43
|
+
tokens_written: number;
|
|
44
|
+
tokens_saved: number;
|
|
45
|
+
count: number;
|
|
46
|
+
}
|
|
47
|
+
/** Recent pack event row. */
|
|
48
|
+
export interface ApiRecentPackEvent {
|
|
49
|
+
id: number;
|
|
50
|
+
session_id: number | null;
|
|
51
|
+
event: string;
|
|
52
|
+
tokens_read: number;
|
|
53
|
+
tokens_written: number;
|
|
54
|
+
tokens_saved: number;
|
|
55
|
+
created_at: string;
|
|
56
|
+
metadata_json: Record<string, unknown> | null;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* GET /api/usage
|
|
60
|
+
*
|
|
61
|
+
* Returns usage breakdown, optionally filtered by project.
|
|
62
|
+
*/
|
|
63
|
+
export interface ApiUsageResponse {
|
|
64
|
+
project: string | null;
|
|
65
|
+
events: ApiUsageEventSummary[];
|
|
66
|
+
totals: ApiUsageTotals;
|
|
67
|
+
events_global: ApiUsageEventSummary[];
|
|
68
|
+
totals_global: ApiUsageTotals;
|
|
69
|
+
events_filtered: ApiUsageEventSummary[] | null;
|
|
70
|
+
totals_filtered: ApiUsageTotals | null;
|
|
71
|
+
recent_packs: ApiRecentPackEvent[];
|
|
72
|
+
}
|
|
73
|
+
/** Extended memory item with session + ownership fields attached by the viewer. */
|
|
74
|
+
export interface ApiMemoryItem extends MemoryItemResponse {
|
|
75
|
+
project?: string;
|
|
76
|
+
cwd?: string;
|
|
77
|
+
owned_by_self?: boolean;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* GET /api/sessions
|
|
81
|
+
*
|
|
82
|
+
* Returns recent sessions with parsed metadata.
|
|
83
|
+
*/
|
|
84
|
+
export interface ApiSessionsResponse {
|
|
85
|
+
items: (Session & {
|
|
86
|
+
metadata_json: Record<string, unknown> | null;
|
|
87
|
+
})[];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* GET /api/projects
|
|
91
|
+
*
|
|
92
|
+
* Returns deduplicated, sorted project names.
|
|
93
|
+
*/
|
|
94
|
+
export interface ApiProjectsResponse {
|
|
95
|
+
projects: string[];
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* GET /api/observations (also GET /api/memories — aliased)
|
|
99
|
+
* GET /api/summaries
|
|
100
|
+
*
|
|
101
|
+
* Paginated memory items with session/ownership fields attached.
|
|
102
|
+
*/
|
|
103
|
+
export interface ApiMemoryListResponse {
|
|
104
|
+
items: ApiMemoryItem[];
|
|
105
|
+
pagination: ApiPagination;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* GET /api/session
|
|
109
|
+
*
|
|
110
|
+
* Aggregate counts for a project (or global).
|
|
111
|
+
*/
|
|
112
|
+
export interface ApiSessionCountsResponse {
|
|
113
|
+
total: number;
|
|
114
|
+
memories: number;
|
|
115
|
+
artifacts: number;
|
|
116
|
+
prompts: number;
|
|
117
|
+
observations: number;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* GET /api/pack
|
|
121
|
+
*
|
|
122
|
+
* Delegates directly to store.build_memory_pack(); shape matches PackResponse.
|
|
123
|
+
*/
|
|
124
|
+
export type ApiPackResponse = PackResponse;
|
|
125
|
+
/**
|
|
126
|
+
* GET /api/memory
|
|
127
|
+
*
|
|
128
|
+
* Returns a list of recent memories, optionally filtered by kind/project/scope.
|
|
129
|
+
*/
|
|
130
|
+
export interface ApiMemoryResponse {
|
|
131
|
+
items: ApiMemoryItem[];
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* GET /api/artifacts
|
|
135
|
+
*
|
|
136
|
+
* Returns artifacts for a given session.
|
|
137
|
+
*/
|
|
138
|
+
export interface ApiArtifactsResponse {
|
|
139
|
+
items: Record<string, unknown>[];
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* POST /api/memories/visibility — request body.
|
|
143
|
+
*/
|
|
144
|
+
export interface ApiUpdateVisibilityRequest {
|
|
145
|
+
memory_id: number;
|
|
146
|
+
visibility: "private" | "shared";
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* POST /api/memories/visibility — response.
|
|
150
|
+
*/
|
|
151
|
+
export interface ApiUpdateVisibilityResponse {
|
|
152
|
+
item: ApiMemoryItem;
|
|
153
|
+
}
|
|
154
|
+
/** Active observer runtime status (from observer.get_status()). */
|
|
155
|
+
export interface ApiObserverActiveStatus {
|
|
156
|
+
provider: string | null;
|
|
157
|
+
model: string | null;
|
|
158
|
+
runtime: string | null;
|
|
159
|
+
auth: string | null;
|
|
160
|
+
last_error?: string | null;
|
|
161
|
+
}
|
|
162
|
+
/** Per-provider credential probe result. */
|
|
163
|
+
export interface ApiProviderCredential {
|
|
164
|
+
oauth: boolean;
|
|
165
|
+
api_key: boolean;
|
|
166
|
+
source: string | null;
|
|
167
|
+
}
|
|
168
|
+
/** Credential availability — provider-keyed map (from probe_available_credentials()). */
|
|
169
|
+
export type ApiAvailableCredentials = Record<string, ApiProviderCredential>;
|
|
170
|
+
/** Latest flush failure with impact annotation. */
|
|
171
|
+
export interface ApiFlushFailure {
|
|
172
|
+
id: number;
|
|
173
|
+
source: string;
|
|
174
|
+
stream_id: string;
|
|
175
|
+
opencode_session_id: string;
|
|
176
|
+
status: string;
|
|
177
|
+
error_message: string | null;
|
|
178
|
+
error_type: string | null;
|
|
179
|
+
impact: string | null;
|
|
180
|
+
}
|
|
181
|
+
/** Queue status within observer-status. */
|
|
182
|
+
export interface ApiObserverQueue {
|
|
183
|
+
pending: number;
|
|
184
|
+
sessions: number;
|
|
185
|
+
auth_backoff_active: boolean;
|
|
186
|
+
auth_backoff_remaining_s: number;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* GET /api/observer-status
|
|
190
|
+
*/
|
|
191
|
+
export interface ApiObserverStatusResponse {
|
|
192
|
+
active: ApiObserverActiveStatus | null;
|
|
193
|
+
available_credentials: ApiAvailableCredentials;
|
|
194
|
+
latest_failure: ApiFlushFailure | null;
|
|
195
|
+
queue: ApiObserverQueue;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* GET /api/config
|
|
199
|
+
*/
|
|
200
|
+
export interface ApiConfigGetResponse {
|
|
201
|
+
path: string;
|
|
202
|
+
config: Record<string, unknown>;
|
|
203
|
+
defaults: Record<string, unknown>;
|
|
204
|
+
effective: Record<string, unknown>;
|
|
205
|
+
env_overrides: Record<string, string>;
|
|
206
|
+
providers: string[];
|
|
207
|
+
}
|
|
208
|
+
/** Manual action suggestion in config save effects. */
|
|
209
|
+
export interface ApiConfigManualAction {
|
|
210
|
+
kind: string;
|
|
211
|
+
command: string;
|
|
212
|
+
label: string;
|
|
213
|
+
reason: string;
|
|
214
|
+
}
|
|
215
|
+
/** Sync effect detail in config save response. */
|
|
216
|
+
export interface ApiConfigSyncEffect {
|
|
217
|
+
affected_keys: string[];
|
|
218
|
+
action: string | null;
|
|
219
|
+
reason: string | null;
|
|
220
|
+
attempted: boolean;
|
|
221
|
+
ok: boolean | null;
|
|
222
|
+
message: string | null;
|
|
223
|
+
manual_action: ApiConfigManualAction | null;
|
|
224
|
+
}
|
|
225
|
+
/** Effects block in config save response. */
|
|
226
|
+
export interface ApiConfigEffects {
|
|
227
|
+
saved_keys: string[];
|
|
228
|
+
effective_keys: string[];
|
|
229
|
+
hot_reloaded_keys: string[];
|
|
230
|
+
live_applied_keys: string[];
|
|
231
|
+
restart_required_keys: string[];
|
|
232
|
+
ignored_by_env_keys: string[];
|
|
233
|
+
warnings: string[];
|
|
234
|
+
sync: ApiConfigSyncEffect;
|
|
235
|
+
manual_actions: ApiConfigManualAction[];
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* POST /api/config — request body.
|
|
239
|
+
* Accepts a direct updates object, or wrapped as { config: {...} }.
|
|
240
|
+
* Python unwraps: `updates = payload.get("config") if "config" in payload else payload`
|
|
241
|
+
*/
|
|
242
|
+
export type ApiConfigSaveRequest = Record<string, unknown>;
|
|
243
|
+
/**
|
|
244
|
+
* POST /api/config — response.
|
|
245
|
+
*/
|
|
246
|
+
export interface ApiConfigSaveResponse {
|
|
247
|
+
path: string;
|
|
248
|
+
config: Record<string, unknown>;
|
|
249
|
+
effective: Record<string, unknown>;
|
|
250
|
+
effects: ApiConfigEffects;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Raw event session backlog item (from store.raw_event_backlog() + _with_session_aliases).
|
|
254
|
+
* Fields vary by query — max_seq/pending come from the backlog query,
|
|
255
|
+
* last_received_event_seq/updated_at may be absent.
|
|
256
|
+
*/
|
|
257
|
+
export interface ApiRawEventBacklogItem {
|
|
258
|
+
stream_id: string;
|
|
259
|
+
opencode_session_id: string;
|
|
260
|
+
session_stream_id?: string;
|
|
261
|
+
session_id?: string;
|
|
262
|
+
cwd?: string | null;
|
|
263
|
+
project?: string | null;
|
|
264
|
+
started_at?: string | null;
|
|
265
|
+
max_seq?: number;
|
|
266
|
+
pending?: number;
|
|
267
|
+
last_seen_ts_wall_ms?: number | null;
|
|
268
|
+
last_received_event_seq?: number;
|
|
269
|
+
last_flushed_event_seq?: number;
|
|
270
|
+
updated_at?: string;
|
|
271
|
+
}
|
|
272
|
+
/** Raw event backlog totals. */
|
|
273
|
+
export interface ApiRawEventBacklogTotals {
|
|
274
|
+
pending: number;
|
|
275
|
+
sessions: number;
|
|
276
|
+
}
|
|
277
|
+
/** Ingest capability metadata. */
|
|
278
|
+
export interface ApiRawEventIngestInfo {
|
|
279
|
+
available: boolean;
|
|
280
|
+
mode: string;
|
|
281
|
+
max_body_bytes: number;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* GET /api/raw-events
|
|
285
|
+
*
|
|
286
|
+
* Returns backlog totals directly (compat endpoint for stats panel).
|
|
287
|
+
*/
|
|
288
|
+
export type ApiRawEventsResponse = ApiRawEventBacklogTotals;
|
|
289
|
+
/**
|
|
290
|
+
* GET /api/raw-events/status
|
|
291
|
+
*/
|
|
292
|
+
export interface ApiRawEventsStatusResponse {
|
|
293
|
+
items: ApiRawEventBacklogItem[];
|
|
294
|
+
totals: ApiRawEventBacklogTotals;
|
|
295
|
+
ingest: ApiRawEventIngestInfo;
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* POST /api/raw-events — response.
|
|
299
|
+
*/
|
|
300
|
+
export interface ApiRawEventsPostResponse {
|
|
301
|
+
inserted: number;
|
|
302
|
+
received: number;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* POST /api/claude-hooks — response.
|
|
306
|
+
*/
|
|
307
|
+
export interface ApiClaudeHooksPostResponse {
|
|
308
|
+
inserted: number;
|
|
309
|
+
skipped: number;
|
|
310
|
+
}
|
|
311
|
+
/** Project scope filter for a peer. */
|
|
312
|
+
export interface ApiProjectScope {
|
|
313
|
+
include: string[];
|
|
314
|
+
exclude: string[];
|
|
315
|
+
effective_include: string[];
|
|
316
|
+
effective_exclude: string[];
|
|
317
|
+
inherits_global: boolean;
|
|
318
|
+
}
|
|
319
|
+
/** Peer status breakdown. */
|
|
320
|
+
export interface ApiPeerStatus {
|
|
321
|
+
sync_status: "ok" | "error" | "stale" | "unknown";
|
|
322
|
+
ping_status: "ok" | "stale" | "unknown";
|
|
323
|
+
peer_state: "online" | "offline" | "degraded" | "stale" | "unknown";
|
|
324
|
+
fresh: boolean;
|
|
325
|
+
last_sync_at: string | null;
|
|
326
|
+
last_ping_at: string | null;
|
|
327
|
+
}
|
|
328
|
+
/** Peer item in sync status/peers responses. */
|
|
329
|
+
export interface ApiSyncPeerItem {
|
|
330
|
+
peer_device_id: string;
|
|
331
|
+
name: string | null;
|
|
332
|
+
fingerprint: string | null;
|
|
333
|
+
pinned: boolean;
|
|
334
|
+
addresses: string[];
|
|
335
|
+
last_seen_at: string | null;
|
|
336
|
+
last_sync_at: string | null;
|
|
337
|
+
last_error: string | null;
|
|
338
|
+
has_error: boolean;
|
|
339
|
+
claimed_local_actor: boolean;
|
|
340
|
+
actor_id: string | null;
|
|
341
|
+
actor_display_name: string | null;
|
|
342
|
+
project_scope: ApiProjectScope;
|
|
343
|
+
status?: ApiPeerStatus;
|
|
344
|
+
}
|
|
345
|
+
/** Sync attempt item. */
|
|
346
|
+
/** Raw sync attempt row — returned by /api/sync/attempts. */
|
|
347
|
+
export interface ApiSyncAttemptItem {
|
|
348
|
+
peer_device_id: string;
|
|
349
|
+
ok: number;
|
|
350
|
+
error: string | null;
|
|
351
|
+
started_at: string;
|
|
352
|
+
finished_at: string | null;
|
|
353
|
+
ops_in: number;
|
|
354
|
+
ops_out: number;
|
|
355
|
+
}
|
|
356
|
+
/** Enriched sync attempt — embedded in /api/sync/status with extra fields. */
|
|
357
|
+
export interface ApiSyncAttemptItemEnriched extends ApiSyncAttemptItem {
|
|
358
|
+
status: string;
|
|
359
|
+
address: string | null;
|
|
360
|
+
}
|
|
361
|
+
/** Sharing review summary. */
|
|
362
|
+
export interface ApiSharingReviewSummary {
|
|
363
|
+
unreviewed: number;
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Coordinator status snapshot (from coordinator.status_snapshot()).
|
|
367
|
+
* Shape varies by state — fields are optional to cover enabled/disabled modes.
|
|
368
|
+
*/
|
|
369
|
+
export interface ApiCoordinatorStatus {
|
|
370
|
+
enabled: boolean;
|
|
371
|
+
configured: boolean;
|
|
372
|
+
coordinator_url?: string | null;
|
|
373
|
+
groups?: string[];
|
|
374
|
+
group_id?: string | null;
|
|
375
|
+
last_sync_at?: string | null;
|
|
376
|
+
last_error?: string | null;
|
|
377
|
+
}
|
|
378
|
+
/** Join request item. */
|
|
379
|
+
export interface ApiJoinRequest {
|
|
380
|
+
request_id: string;
|
|
381
|
+
device_id: string;
|
|
382
|
+
fingerprint: string;
|
|
383
|
+
status: string;
|
|
384
|
+
}
|
|
385
|
+
/** Status block nested in sync status response. */
|
|
386
|
+
export interface ApiSyncStatusBlock {
|
|
387
|
+
enabled: boolean;
|
|
388
|
+
interval_s: number;
|
|
389
|
+
peer_count: number;
|
|
390
|
+
last_sync_at: string | null;
|
|
391
|
+
daemon_state: "ok" | "disabled" | "error" | "stopped" | "degraded" | "offline-peers" | "stale";
|
|
392
|
+
daemon_running: boolean;
|
|
393
|
+
daemon_detail: string | null;
|
|
394
|
+
project_filter_active: boolean;
|
|
395
|
+
project_filter: {
|
|
396
|
+
include: string[];
|
|
397
|
+
exclude: string[];
|
|
398
|
+
};
|
|
399
|
+
redacted: boolean;
|
|
400
|
+
peers: Record<string, ApiPeerStatus>;
|
|
401
|
+
pending: number;
|
|
402
|
+
sync: Record<string, unknown>;
|
|
403
|
+
ping: Record<string, unknown>;
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* GET /api/sync/status
|
|
407
|
+
*/
|
|
408
|
+
export interface ApiSyncStatusResponse {
|
|
409
|
+
enabled: boolean;
|
|
410
|
+
interval_s: number;
|
|
411
|
+
peer_count: number;
|
|
412
|
+
last_sync_at: string | null;
|
|
413
|
+
daemon_state: "ok" | "disabled" | "error" | "stopped" | "degraded" | "offline-peers" | "stale";
|
|
414
|
+
daemon_running: boolean;
|
|
415
|
+
daemon_detail: string | null;
|
|
416
|
+
project_filter_active: boolean;
|
|
417
|
+
project_filter: {
|
|
418
|
+
include: string[];
|
|
419
|
+
exclude: string[];
|
|
420
|
+
};
|
|
421
|
+
redacted: boolean;
|
|
422
|
+
device_id?: string | null;
|
|
423
|
+
fingerprint?: string | null;
|
|
424
|
+
bind?: string;
|
|
425
|
+
daemon_last_error?: string | null;
|
|
426
|
+
daemon_last_error_at?: string | null;
|
|
427
|
+
daemon_last_ok_at?: string | null;
|
|
428
|
+
status: ApiSyncStatusBlock;
|
|
429
|
+
peers: ApiSyncPeerItem[];
|
|
430
|
+
attempts: ApiSyncAttemptItemEnriched[];
|
|
431
|
+
legacy_devices: string[];
|
|
432
|
+
sharing_review: ApiSharingReviewSummary;
|
|
433
|
+
coordinator: ApiCoordinatorStatus;
|
|
434
|
+
join_requests: ApiJoinRequest[];
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* GET /api/sync/peers
|
|
438
|
+
*/
|
|
439
|
+
export interface ApiSyncPeersResponse {
|
|
440
|
+
items: ApiSyncPeerItem[];
|
|
441
|
+
redacted: boolean;
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* GET /api/sync/actors
|
|
445
|
+
*/
|
|
446
|
+
export interface ApiSyncActorsResponse {
|
|
447
|
+
items: Actor[];
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* GET /api/sync/attempts
|
|
451
|
+
*/
|
|
452
|
+
export interface ApiSyncAttemptsResponse {
|
|
453
|
+
items: ApiSyncAttemptItem[];
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* GET /api/sync/pairing
|
|
457
|
+
*/
|
|
458
|
+
export interface ApiSyncPairingResponse {
|
|
459
|
+
device_id?: string;
|
|
460
|
+
fingerprint?: string;
|
|
461
|
+
public_key?: string;
|
|
462
|
+
pairing_filter_hint: string;
|
|
463
|
+
addresses?: string[];
|
|
464
|
+
redacted?: boolean;
|
|
465
|
+
}
|
|
466
|
+
/** POST /api/sync/actors — request. */
|
|
467
|
+
export interface ApiCreateActorRequest {
|
|
468
|
+
display_name: string;
|
|
469
|
+
actor_id?: string | null;
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
472
|
+
* POST /api/sync/actors — response.
|
|
473
|
+
*
|
|
474
|
+
* Returns the full Actor row from store.create_actor().
|
|
475
|
+
*/
|
|
476
|
+
export type ApiCreateActorResponse = Actor;
|
|
477
|
+
/** POST /api/sync/actors/rename — request. */
|
|
478
|
+
export interface ApiRenameActorRequest {
|
|
479
|
+
actor_id: string;
|
|
480
|
+
display_name: string;
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* POST /api/sync/actors/rename — response.
|
|
484
|
+
*
|
|
485
|
+
* Returns the full Actor row from store.rename_actor().
|
|
486
|
+
*/
|
|
487
|
+
export type ApiRenameActorResponse = Actor;
|
|
488
|
+
/** POST /api/sync/actors/merge — request. */
|
|
489
|
+
export interface ApiMergeActorRequest {
|
|
490
|
+
primary_actor_id: string;
|
|
491
|
+
secondary_actor_id: string;
|
|
492
|
+
}
|
|
493
|
+
/** POST /api/sync/actors/merge — response. */
|
|
494
|
+
export interface ApiMergeActorResponse {
|
|
495
|
+
merged_count: number;
|
|
496
|
+
}
|
|
497
|
+
/** POST /api/sync/peers/rename — request. */
|
|
498
|
+
export interface ApiRenamePeerRequest {
|
|
499
|
+
peer_device_id: string;
|
|
500
|
+
name: string;
|
|
501
|
+
}
|
|
502
|
+
/** POST /api/sync/peers/rename — response. */
|
|
503
|
+
export interface ApiOkResponse {
|
|
504
|
+
ok: true;
|
|
505
|
+
}
|
|
506
|
+
/** POST /api/sync/peers/scope — request. */
|
|
507
|
+
export interface ApiPeerScopeRequest {
|
|
508
|
+
peer_device_id: string;
|
|
509
|
+
include?: string[] | null;
|
|
510
|
+
exclude?: string[] | null;
|
|
511
|
+
inherit_global?: boolean;
|
|
512
|
+
}
|
|
513
|
+
/** POST /api/sync/peers/scope — response. */
|
|
514
|
+
export interface ApiPeerScopeResponse {
|
|
515
|
+
ok: true;
|
|
516
|
+
project_scope: ApiProjectScope;
|
|
517
|
+
}
|
|
518
|
+
/** POST /api/sync/peers/identity — request. */
|
|
519
|
+
export interface ApiPeerIdentityRequest {
|
|
520
|
+
peer_device_id: string;
|
|
521
|
+
actor_id?: string | null;
|
|
522
|
+
claimed_local_actor?: boolean;
|
|
523
|
+
}
|
|
524
|
+
/** POST /api/sync/peers/identity — response. */
|
|
525
|
+
export interface ApiPeerIdentityResponse {
|
|
526
|
+
ok: true;
|
|
527
|
+
actor_id: string | null;
|
|
528
|
+
claimed_local_actor: boolean;
|
|
529
|
+
}
|
|
530
|
+
/** POST /api/sync/legacy-devices/claim — request. */
|
|
531
|
+
export interface ApiClaimLegacyDeviceRequest {
|
|
532
|
+
origin_device_id: string;
|
|
533
|
+
}
|
|
534
|
+
/** POST /api/sync/legacy-devices/claim — response. */
|
|
535
|
+
export interface ApiClaimLegacyDeviceResponse {
|
|
536
|
+
ok: true;
|
|
537
|
+
origin_device_id: string;
|
|
538
|
+
updated: number;
|
|
539
|
+
}
|
|
540
|
+
/** POST /api/sync/invites/create — request. */
|
|
541
|
+
export interface ApiCreateInviteRequest {
|
|
542
|
+
group_id: string;
|
|
543
|
+
coordinator_url?: string | null;
|
|
544
|
+
policy?: "auto_admit" | "approval_required";
|
|
545
|
+
ttl_hours?: number;
|
|
546
|
+
}
|
|
547
|
+
/** POST /api/sync/invites/create — response. */
|
|
548
|
+
export interface ApiCreateInviteResponse extends ApiOkResponse {
|
|
549
|
+
invite: string;
|
|
550
|
+
}
|
|
551
|
+
/** POST /api/sync/invites/import — request. */
|
|
552
|
+
export interface ApiImportInviteRequest {
|
|
553
|
+
invite: string;
|
|
554
|
+
}
|
|
555
|
+
/** POST /api/sync/invites/import — response. */
|
|
556
|
+
export interface ApiImportInviteResponse extends ApiOkResponse {
|
|
557
|
+
group_id: string;
|
|
558
|
+
}
|
|
559
|
+
/** POST /api/sync/join-requests/review — request. */
|
|
560
|
+
export interface ApiReviewJoinRequestRequest {
|
|
561
|
+
request_id: string;
|
|
562
|
+
action: "approve" | "deny";
|
|
563
|
+
}
|
|
564
|
+
/** POST /api/sync/join-requests/review — response. */
|
|
565
|
+
export interface ApiReviewJoinRequestResponse {
|
|
566
|
+
ok: true;
|
|
567
|
+
request: ApiJoinRequest;
|
|
568
|
+
}
|
|
569
|
+
/** DELETE /api/sync/peers/:peer_device_id — response. */
|
|
570
|
+
export type ApiDeletePeerResponse = ApiOkResponse;
|
|
571
|
+
/** POST /api/sync/actions/sync-now — request. */
|
|
572
|
+
export interface ApiSyncNowRequest {
|
|
573
|
+
peer_device_id?: string;
|
|
574
|
+
address?: string;
|
|
575
|
+
}
|
|
576
|
+
/** POST /api/sync/actions/sync-now — response. */
|
|
577
|
+
export interface ApiSyncNowResponse {
|
|
578
|
+
items: Record<string, unknown>[];
|
|
579
|
+
}
|
|
580
|
+
//# sourceMappingURL=api-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-types.d.ts","sourceRoot":"","sources":["../src/api-types.ts"],"names":[],"mappings":"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"}
|