@framers/agentos-ext-account-sources 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +112 -3
- package/dist/cachePolicy.d.ts.map +1 -1
- package/dist/cachePolicy.js +37 -3
- package/dist/cachePolicy.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/sync/SqlAccountSourceSyncStore.d.ts +285 -0
- package/dist/sync/SqlAccountSourceSyncStore.d.ts.map +1 -0
- package/dist/sync/SqlAccountSourceSyncStore.js +751 -0
- package/dist/sync/SqlAccountSourceSyncStore.js.map +1 -0
- package/dist/sync/schema.d.ts +36 -0
- package/dist/sync/schema.d.ts.map +1 -0
- package/dist/sync/schema.js +66 -0
- package/dist/sync/schema.js.map +1 -0
- package/dist/sync/state.d.ts +24 -0
- package/dist/sync/state.d.ts.map +1 -0
- package/dist/sync/state.js +257 -0
- package/dist/sync/state.js.map +1 -0
- package/dist/sync/types.d.ts +275 -0
- package/dist/sync/types.d.ts.map +1 -0
- package/dist/sync/types.js +2 -0
- package/dist/sync/types.js.map +1 -0
- package/manifest.json +1 -1
- package/package.json +5 -4
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import type { AccountSourceConnector, SourceRead } from '../types.js';
|
|
2
|
+
import type { SourceCacheDecision, SourceCacheSkipReason } from '../cachePolicy.js';
|
|
3
|
+
/** Opaque host-owned keys. Authentication is supplied by the host, never by provider ids. */
|
|
4
|
+
export interface SourceSyncScope {
|
|
5
|
+
readonly tenantId: string;
|
|
6
|
+
readonly ownerId: string;
|
|
7
|
+
readonly connectionId: string;
|
|
8
|
+
}
|
|
9
|
+
/** The six connection states a host shows. Pause is the separate `paused` flag, not a state. */
|
|
10
|
+
export type SourceSyncStatus = 'not_connected' | 'connecting' | 'syncing' | 'connected' | 'needs_reconnecting' | 'disconnected';
|
|
11
|
+
/** The use switches a host applies to a connection's content: search and questions, and live hints. */
|
|
12
|
+
export interface SourceSyncUse {
|
|
13
|
+
readonly searchAskEnabled: boolean;
|
|
14
|
+
readonly liveEnabled: boolean;
|
|
15
|
+
}
|
|
16
|
+
/** Transient failures: the committed cursor stays and a later attempt is scheduled. */
|
|
17
|
+
export type SourceSyncRetryReason = 'network' | 'rate_limited' | 'provider_unavailable' | 'storage_unavailable';
|
|
18
|
+
/** Fixed failure codes; a code carries no provider message or response body. */
|
|
19
|
+
export type SourceSyncFailureCode = SourceSyncRetryReason | 'grant_rejected' | 'insufficient_scope' | 'domain_policy' | 'history_expired' | 'invalid_response' | 'cancelled';
|
|
20
|
+
/** Fixed reasons a source is deliberately not retained: cache refusals and selection, decoding, structure and allowance limits. */
|
|
21
|
+
export type SourceSyncSkipReason = SourceCacheSkipReason | 'excluded' | 'out_of_window' | 'excluded_label' | 'no_eligible_content' | 'response_too_large' | 'structure_limit' | 'unsupported_charset' | 'invalid_encoding' | 'document_limit' | 'held_limit' | 'indexing_limit';
|
|
22
|
+
/** Counts describe this connection; they carry no remote response estimates or ids. */
|
|
23
|
+
export interface SourceSyncProgress {
|
|
24
|
+
readonly examined: number;
|
|
25
|
+
readonly committed: number;
|
|
26
|
+
readonly skipped: number;
|
|
27
|
+
readonly bounded: boolean;
|
|
28
|
+
}
|
|
29
|
+
/** One connection's durable state. Each control change that fences earlier work raises `generation`. */
|
|
30
|
+
export interface SourceSyncState {
|
|
31
|
+
readonly scope: SourceSyncScope;
|
|
32
|
+
readonly status: SourceSyncStatus;
|
|
33
|
+
readonly generation: number;
|
|
34
|
+
readonly revision: number;
|
|
35
|
+
readonly paused: boolean;
|
|
36
|
+
readonly revalidationRequired: boolean;
|
|
37
|
+
readonly use: SourceSyncUse;
|
|
38
|
+
readonly cursor: string | null;
|
|
39
|
+
readonly progress: SourceSyncProgress;
|
|
40
|
+
readonly lastSyncAt: number | null;
|
|
41
|
+
readonly lastRequestedAt: number | null;
|
|
42
|
+
readonly nextSyncAt: number | null;
|
|
43
|
+
readonly retryAt: number | null;
|
|
44
|
+
readonly error: SourceSyncFailureCode | null;
|
|
45
|
+
readonly updatedAt: number;
|
|
46
|
+
}
|
|
47
|
+
/** Values are policy choices. This library does not assert provider service limits. */
|
|
48
|
+
export interface SourceSyncPolicy {
|
|
49
|
+
readonly windowMs: number;
|
|
50
|
+
readonly maxRetainedDocuments: number;
|
|
51
|
+
readonly maxHeldCharacters: number;
|
|
52
|
+
readonly maxIndexedCharacters: number;
|
|
53
|
+
readonly scanPageSize: number;
|
|
54
|
+
readonly maxScanPages: number;
|
|
55
|
+
readonly maxCandidates: number;
|
|
56
|
+
readonly maxChangedPerLease: number;
|
|
57
|
+
readonly maxHistoryPagesPerLease: number;
|
|
58
|
+
readonly leaseMs: number;
|
|
59
|
+
readonly pollMs: number;
|
|
60
|
+
readonly manualMinIntervalMs: number;
|
|
61
|
+
readonly reconcileMs: number;
|
|
62
|
+
}
|
|
63
|
+
/** Owner epoch is checked separately through the released core derivation fence. */
|
|
64
|
+
export interface SourceSyncLease {
|
|
65
|
+
readonly scope: SourceSyncScope;
|
|
66
|
+
readonly generation: number;
|
|
67
|
+
readonly token: string;
|
|
68
|
+
readonly expiresAt: number;
|
|
69
|
+
}
|
|
70
|
+
/** Why a cycle runs: a first pass, history from the committed cursor, a reconciliation pass, or recovery after expired history. */
|
|
71
|
+
export type SourceSyncMode = 'bootstrap' | 'incremental' | 'reconcile' | 'recovery';
|
|
72
|
+
/** Where a cycle stands: a bounded scan, history replay, or application of the queued work. */
|
|
73
|
+
export type SourceSyncPhase = 'scan' | 'history' | 'apply';
|
|
74
|
+
/** A cycle's durable resume point. Cursors and page tokens are opaque strings. */
|
|
75
|
+
export interface SourceSyncCheckpoint {
|
|
76
|
+
readonly cycleId: string;
|
|
77
|
+
readonly generation: number;
|
|
78
|
+
readonly revision: number;
|
|
79
|
+
readonly mode: SourceSyncMode;
|
|
80
|
+
readonly phase: SourceSyncPhase;
|
|
81
|
+
readonly cutoff: number;
|
|
82
|
+
/** Profile anchor before scan, or previously committed cursor for incremental work. */
|
|
83
|
+
readonly fromCursor: string;
|
|
84
|
+
/** Resume metadata only. Null at phase boundaries, never a committed history id. */
|
|
85
|
+
readonly nextPageToken: string | null;
|
|
86
|
+
readonly targetCursor: string | null;
|
|
87
|
+
readonly scanPages: number;
|
|
88
|
+
readonly candidates: number;
|
|
89
|
+
readonly historyPages: number;
|
|
90
|
+
readonly bounded: boolean;
|
|
91
|
+
}
|
|
92
|
+
/** What opening a cycle takes: its id, the connection generation, mode, cutoff and starting anchor. */
|
|
93
|
+
export interface SourceSyncCycleInput {
|
|
94
|
+
readonly cycleId: string;
|
|
95
|
+
readonly generation: number;
|
|
96
|
+
readonly mode: SourceSyncMode;
|
|
97
|
+
readonly cutoff: number;
|
|
98
|
+
readonly fromCursor: string;
|
|
99
|
+
}
|
|
100
|
+
/** One page of a bounded enumeration: candidate ids and the next page's token. */
|
|
101
|
+
export interface SourceSyncScanPage {
|
|
102
|
+
readonly kind: 'scan';
|
|
103
|
+
readonly ids: readonly string[];
|
|
104
|
+
readonly nextPageToken: string | null;
|
|
105
|
+
}
|
|
106
|
+
/** One page of history: affected ids, the next page's token and the cursor this page reached. */
|
|
107
|
+
export interface SourceSyncHistoryPage {
|
|
108
|
+
readonly kind: 'history';
|
|
109
|
+
readonly ids: readonly string[];
|
|
110
|
+
readonly nextPageToken: string | null;
|
|
111
|
+
readonly cursor: string;
|
|
112
|
+
}
|
|
113
|
+
/** Either kind of page a provider answers. */
|
|
114
|
+
export type SourceSyncPage = SourceSyncScanPage | SourceSyncHistoryPage;
|
|
115
|
+
/** The checkpoint a page produces and the ids it queues. */
|
|
116
|
+
export interface SourceSyncPageApplication {
|
|
117
|
+
readonly checkpoint: SourceSyncCheckpoint;
|
|
118
|
+
/** Upsert pending reads in the same transaction as this checkpoint revision. */
|
|
119
|
+
readonly enqueueIds: readonly string[];
|
|
120
|
+
}
|
|
121
|
+
/** A queued source's outcome. Applied, gone and skipped are terminal; pending and retry are not. */
|
|
122
|
+
export type SourceSyncWorkDisposition = {
|
|
123
|
+
readonly kind: 'pending';
|
|
124
|
+
} | {
|
|
125
|
+
readonly kind: 'retry';
|
|
126
|
+
readonly reason: SourceSyncRetryReason;
|
|
127
|
+
readonly retryAt: number;
|
|
128
|
+
} | {
|
|
129
|
+
readonly kind: 'applied';
|
|
130
|
+
readonly version: string;
|
|
131
|
+
} | {
|
|
132
|
+
readonly kind: 'gone';
|
|
133
|
+
} | {
|
|
134
|
+
readonly kind: 'skipped';
|
|
135
|
+
readonly reason: SourceSyncSkipReason;
|
|
136
|
+
};
|
|
137
|
+
/** One durable work row: ids, attempts and a disposition, never source content. */
|
|
138
|
+
export interface SourceSyncWork {
|
|
139
|
+
readonly cycleId: string;
|
|
140
|
+
readonly generation: number;
|
|
141
|
+
readonly sourceId: string;
|
|
142
|
+
/** Re-discovery on a new page invalidates an earlier applied/read result. */
|
|
143
|
+
readonly discoveredRevision: number;
|
|
144
|
+
readonly attempts: number;
|
|
145
|
+
readonly disposition: SourceSyncWorkDisposition;
|
|
146
|
+
}
|
|
147
|
+
/** Complete fresh database aggregate, computed with the checkpoint under its lease lock. */
|
|
148
|
+
export interface SourceSyncWorkSummary {
|
|
149
|
+
readonly cycleId: string;
|
|
150
|
+
readonly generation: number;
|
|
151
|
+
readonly checkpointRevision: number;
|
|
152
|
+
readonly total: number;
|
|
153
|
+
readonly pending: number;
|
|
154
|
+
readonly retry: number;
|
|
155
|
+
readonly applied: number;
|
|
156
|
+
readonly gone: number;
|
|
157
|
+
readonly skipped: number;
|
|
158
|
+
}
|
|
159
|
+
/** Offsets count UTF-16 code units in the sanitized SourceRead.content.text. */
|
|
160
|
+
export interface SourceSyncMessageSpan {
|
|
161
|
+
readonly messageId: string;
|
|
162
|
+
readonly start: number;
|
|
163
|
+
readonly end: number;
|
|
164
|
+
readonly receivedAt: number;
|
|
165
|
+
readonly windowExpiresAt: number;
|
|
166
|
+
readonly truncated: boolean;
|
|
167
|
+
}
|
|
168
|
+
/** A JSON value for document metadata. */
|
|
169
|
+
export type SourceSyncJson = null | boolean | number | string | readonly SourceSyncJson[] | {
|
|
170
|
+
readonly [key: string]: SourceSyncJson;
|
|
171
|
+
};
|
|
172
|
+
/** Normalized, sanitized content only; transient provider responses never enter this shape. */
|
|
173
|
+
export interface SourceSyncDocument {
|
|
174
|
+
readonly read: SourceRead & {
|
|
175
|
+
readonly content: {
|
|
176
|
+
readonly text: string;
|
|
177
|
+
};
|
|
178
|
+
};
|
|
179
|
+
readonly messages: readonly SourceSyncMessageSpan[];
|
|
180
|
+
readonly metadata: Readonly<Record<string, SourceSyncJson>>;
|
|
181
|
+
readonly activityAt: number;
|
|
182
|
+
readonly contentHash: string;
|
|
183
|
+
readonly cache: Extract<SourceCacheDecision, {
|
|
184
|
+
kind: 'cache';
|
|
185
|
+
}>;
|
|
186
|
+
}
|
|
187
|
+
/** What reading one queued source answers: a document, gone, a deliberate skip or a retry. */
|
|
188
|
+
export type SourceSyncReadResult = {
|
|
189
|
+
readonly kind: 'document';
|
|
190
|
+
readonly document: SourceSyncDocument;
|
|
191
|
+
} | {
|
|
192
|
+
readonly kind: 'gone';
|
|
193
|
+
readonly id: string;
|
|
194
|
+
} | {
|
|
195
|
+
readonly kind: 'skipped';
|
|
196
|
+
readonly id: string;
|
|
197
|
+
readonly reason: SourceSyncSkipReason;
|
|
198
|
+
} | {
|
|
199
|
+
readonly kind: 'retry';
|
|
200
|
+
readonly id: string;
|
|
201
|
+
readonly reason: SourceSyncRetryReason;
|
|
202
|
+
readonly retryAt: number;
|
|
203
|
+
};
|
|
204
|
+
/** Provider request context is process memory, never a serialized queued HTTP request. */
|
|
205
|
+
export interface SourceSyncRequest {
|
|
206
|
+
readonly scope: SourceSyncScope;
|
|
207
|
+
readonly generation: number;
|
|
208
|
+
readonly cycleId: string;
|
|
209
|
+
readonly cutoff: number;
|
|
210
|
+
readonly policy: SourceSyncPolicy;
|
|
211
|
+
readonly signal?: AbortSignal;
|
|
212
|
+
}
|
|
213
|
+
/** One instance is bound to one grant. These calls do no database commit. */
|
|
214
|
+
export interface AccountSourceSyncProvider {
|
|
215
|
+
readonly kind: string;
|
|
216
|
+
begin(request: SourceSyncRequest): Promise<string>;
|
|
217
|
+
scanPage(request: SourceSyncRequest, pageToken: string | null): Promise<SourceSyncScanPage>;
|
|
218
|
+
historyPage(request: SourceSyncRequest, fromCursor: string, pageToken: string | null): Promise<SourceSyncHistoryPage>;
|
|
219
|
+
readSource(request: SourceSyncRequest, sourceId: string): Promise<SourceSyncReadResult>;
|
|
220
|
+
}
|
|
221
|
+
/** Optional capability. An empty selection in the original interface keeps its original meaning. */
|
|
222
|
+
export interface ResumableAccountSourceConnector extends AccountSourceConnector {
|
|
223
|
+
readonly sync: AccountSourceSyncProvider;
|
|
224
|
+
}
|
|
225
|
+
/** A safe event sink accepts only these fields. Scope and provider payloads are excluded. */
|
|
226
|
+
export interface SourceSyncEvent {
|
|
227
|
+
readonly kind: 'source_sync';
|
|
228
|
+
readonly state: 'started' | 'progress' | 'yielded' | 'succeeded' | 'retry' | 'reconnect' | 'purged';
|
|
229
|
+
readonly n: number;
|
|
230
|
+
readonly ms?: number;
|
|
231
|
+
}
|
|
232
|
+
/** Receives content-free sync events. */
|
|
233
|
+
export type SourceSyncEventSink = (event: SourceSyncEvent) => void;
|
|
234
|
+
/** Whether a sync was scheduled or asked for by the person. */
|
|
235
|
+
export type SourceSyncTrigger = 'scheduled' | 'manual';
|
|
236
|
+
/** The events that move a connection between states. */
|
|
237
|
+
export type SourceSyncTransition = {
|
|
238
|
+
readonly type: 'connect_started';
|
|
239
|
+
} | {
|
|
240
|
+
readonly type: 'grant_ready';
|
|
241
|
+
readonly use: SourceSyncUse;
|
|
242
|
+
} | {
|
|
243
|
+
readonly type: 'manual_requested';
|
|
244
|
+
} | {
|
|
245
|
+
readonly type: 'sync_started';
|
|
246
|
+
} | {
|
|
247
|
+
readonly type: 'sync_progress';
|
|
248
|
+
readonly progress: SourceSyncProgress;
|
|
249
|
+
} | {
|
|
250
|
+
readonly type: 'sync_succeeded';
|
|
251
|
+
readonly cursor: string;
|
|
252
|
+
readonly nextSyncAt: number;
|
|
253
|
+
} | {
|
|
254
|
+
readonly type: 'sync_deferred';
|
|
255
|
+
readonly reason: SourceSyncRetryReason;
|
|
256
|
+
readonly retryAt: number;
|
|
257
|
+
} | {
|
|
258
|
+
readonly type: 'sync_failed';
|
|
259
|
+
readonly reason: 'domain_policy' | 'invalid_response';
|
|
260
|
+
} | {
|
|
261
|
+
readonly type: 'grant_lost';
|
|
262
|
+
readonly reason: 'grant_rejected' | 'insufficient_scope';
|
|
263
|
+
} | {
|
|
264
|
+
readonly type: 'disconnect';
|
|
265
|
+
} | {
|
|
266
|
+
readonly type: 'pause';
|
|
267
|
+
} | {
|
|
268
|
+
readonly type: 'resume';
|
|
269
|
+
} | {
|
|
270
|
+
readonly type: 'policy_changed';
|
|
271
|
+
} | {
|
|
272
|
+
readonly type: 'use_changed';
|
|
273
|
+
readonly use: SourceSyncUse;
|
|
274
|
+
};
|
|
275
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":""}
|
package/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://agentos.sh/schemas/extension-manifest-v1.json",
|
|
3
3
|
"id": "com.framers.research.account-sources",
|
|
4
4
|
"name": "Account Sources",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.4.0",
|
|
6
6
|
"description": "A person's own accounts as sources: connector interfaces, passage attribution, capped reads and a shared limiter",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Frame",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@framers/agentos-ext-account-sources",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "A person's own accounts as sources: connector interfaces, passage attribution, capped reads and a shared limiter",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -38,10 +38,11 @@
|
|
|
38
38
|
"node": ">=20.19.0"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
|
-
"@framers/agentos": ">=0.
|
|
41
|
+
"@framers/agentos": ">=0.13.134"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@framers/agentos-ext-public-sources": "^0.1.0"
|
|
44
|
+
"@framers/agentos-ext-public-sources": "^0.1.0",
|
|
45
|
+
"@framers/sql-storage-adapter": "^0.6.9"
|
|
45
46
|
},
|
|
46
47
|
"devDependencies": {
|
|
47
48
|
"@types/node": "^20.12.12",
|
|
@@ -50,7 +51,7 @@
|
|
|
50
51
|
"typedoc": "^0.28.20",
|
|
51
52
|
"typescript": "^5.4.5",
|
|
52
53
|
"vitest": "^3.2.7",
|
|
53
|
-
"@framers/agentos": "^0.13.
|
|
54
|
+
"@framers/agentos": "^0.13.134"
|
|
54
55
|
},
|
|
55
56
|
"homepage": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/research/account-sources#readme",
|
|
56
57
|
"bugs": {
|