@opendatalabs/personal-server-ts-core 1.7.0 → 1.9.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/dist/api/index.d.ts +64 -2
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +189 -45
- package/dist/api/index.js.map +1 -1
- package/dist/contracts/data.d.ts +16 -1
- package/dist/contracts/data.d.ts.map +1 -1
- package/dist/contracts/data.js +71 -19
- package/dist/contracts/data.js.map +1 -1
- package/dist/derivatives/api.d.ts +33 -0
- package/dist/derivatives/api.d.ts.map +1 -0
- package/dist/derivatives/api.js +216 -0
- package/dist/derivatives/api.js.map +1 -0
- package/dist/derivatives/compute.d.ts +106 -0
- package/dist/derivatives/compute.d.ts.map +1 -0
- package/dist/derivatives/compute.js +373 -0
- package/dist/derivatives/compute.js.map +1 -0
- package/dist/derivatives/index.d.ts +9 -0
- package/dist/derivatives/index.d.ts.map +1 -0
- package/dist/derivatives/index.js +9 -0
- package/dist/derivatives/index.js.map +1 -0
- package/dist/derivatives/inference.d.ts +102 -0
- package/dist/derivatives/inference.d.ts.map +1 -0
- package/dist/derivatives/inference.js +159 -0
- package/dist/derivatives/inference.js.map +1 -0
- package/dist/derivatives/prompt.d.ts +64 -0
- package/dist/derivatives/prompt.d.ts.map +1 -0
- package/dist/derivatives/prompt.js +186 -0
- package/dist/derivatives/prompt.js.map +1 -0
- package/dist/derivatives/registration.d.ts +53 -0
- package/dist/derivatives/registration.d.ts.map +1 -0
- package/dist/derivatives/registration.js +163 -0
- package/dist/derivatives/registration.js.map +1 -0
- package/dist/derivatives/scheduler.d.ts +56 -0
- package/dist/derivatives/scheduler.d.ts.map +1 -0
- package/dist/derivatives/scheduler.js +151 -0
- package/dist/derivatives/scheduler.js.map +1 -0
- package/dist/derivatives/store.d.ts +14 -0
- package/dist/derivatives/store.d.ts.map +1 -0
- package/dist/derivatives/store.js +75 -0
- package/dist/derivatives/store.js.map +1 -0
- package/dist/derivatives/types.d.ts +72 -0
- package/dist/derivatives/types.d.ts.map +1 -0
- package/dist/derivatives/types.js +25 -0
- package/dist/derivatives/types.js.map +1 -0
- package/dist/errors/catalog.d.ts +26 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/catalog.js +39 -1
- package/dist/errors/catalog.js.map +1 -1
- package/dist/logging/access-log.d.ts +7 -1
- package/dist/logging/access-log.d.ts.map +1 -1
- package/dist/mcp/read-client.d.ts.map +1 -1
- package/dist/mcp/read-client.js +25 -1
- package/dist/mcp/read-client.js.map +1 -1
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +10 -1
- package/dist/mcp/session.js.map +1 -1
- package/dist/ports/index.d.ts +125 -0
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js.map +1 -1
- package/dist/schemas/server-config.d.ts +12 -0
- package/dist/schemas/server-config.d.ts.map +1 -1
- package/dist/schemas/server-config.js +29 -0
- package/dist/schemas/server-config.js.map +1 -1
- package/dist/storage/adapters/index.d.ts +1 -1
- package/dist/storage/adapters/index.d.ts.map +1 -1
- package/dist/storage/adapters/index.js +1 -1
- package/dist/storage/adapters/index.js.map +1 -1
- package/dist/storage/adapters/vana.d.ts +2 -0
- package/dist/storage/adapters/vana.d.ts.map +1 -1
- package/dist/storage/adapters/vana.js +5 -1
- package/dist/storage/adapters/vana.js.map +1 -1
- package/dist/storage/index/types.d.ts +1 -0
- package/dist/storage/index/types.d.ts.map +1 -1
- package/dist/sync/data-point-feed.d.ts +35 -0
- package/dist/sync/data-point-feed.d.ts.map +1 -0
- package/dist/sync/data-point-feed.js +122 -0
- package/dist/sync/data-point-feed.js.map +1 -0
- package/dist/sync/delete-data-port.d.ts +50 -0
- package/dist/sync/delete-data-port.d.ts.map +1 -0
- package/dist/sync/delete-data-port.js +244 -0
- package/dist/sync/delete-data-port.js.map +1 -0
- package/dist/sync/engine/sync-manager.d.ts +14 -4
- package/dist/sync/engine/sync-manager.d.ts.map +1 -1
- package/dist/sync/engine/sync-manager.js +53 -8
- package/dist/sync/engine/sync-manager.js.map +1 -1
- package/dist/sync/index.d.ts +7 -0
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +7 -0
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/pending-blob-deletions.d.ts +29 -0
- package/dist/sync/pending-blob-deletions.d.ts.map +1 -0
- package/dist/sync/pending-blob-deletions.js +116 -0
- package/dist/sync/pending-blob-deletions.js.map +1 -0
- package/dist/sync/scope-deletions.d.ts +155 -0
- package/dist/sync/scope-deletions.d.ts.map +1 -0
- package/dist/sync/scope-deletions.js +225 -0
- package/dist/sync/scope-deletions.js.map +1 -0
- package/dist/sync/tombstone.d.ts +27 -0
- package/dist/sync/tombstone.d.ts.map +1 -0
- package/dist/sync/tombstone.js +28 -0
- package/dist/sync/tombstone.js.map +1 -0
- package/dist/sync/workers/delete.d.ts +152 -31
- package/dist/sync/workers/delete.d.ts.map +1 -1
- package/dist/sync/workers/delete.js +461 -27
- package/dist/sync/workers/delete.js.map +1 -1
- package/dist/sync/workers/download.d.ts +52 -1
- package/dist/sync/workers/download.d.ts.map +1 -1
- package/dist/sync/workers/download.js +129 -2
- package/dist/sync/workers/download.js.map +1 -1
- package/dist/sync/workers/upload.d.ts +31 -1
- package/dist/sync/workers/upload.d.ts.map +1 -1
- package/dist/sync/workers/upload.js +108 -4
- package/dist/sync/workers/upload.js.map +1 -1
- package/dist/test-utils/index.d.ts +1 -0
- package/dist/test-utils/index.d.ts.map +1 -1
- package/dist/test-utils/index.js +1 -0
- package/dist/test-utils/index.js.map +1 -1
- package/dist/test-utils/memory-storage.d.ts +12 -0
- package/dist/test-utils/memory-storage.d.ts.map +1 -0
- package/dist/test-utils/memory-storage.js +146 -0
- package/dist/test-utils/memory-storage.js.map +1 -0
- package/package.json +5 -1
package/dist/contracts/data.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type DataStoragePort } from "../ports/index.js";
|
|
2
|
+
import type { IndexEntry } from "../storage/index/types.js";
|
|
2
3
|
import { type DataFileEnvelope } from "@opendatalabs/vana-sdk/browser";
|
|
3
4
|
import { type WriteResult } from "../storage/hierarchy/index.js";
|
|
4
5
|
import { type WriterAttribution } from "../write/attribution.js";
|
|
@@ -13,11 +14,20 @@ export interface DataContractError {
|
|
|
13
14
|
status: 400 | 404;
|
|
14
15
|
body: DataContractErrorBody;
|
|
15
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Discovery-time visibility of a local index entry. False hides the entry
|
|
19
|
+
* (and, for scope listings, the scope whose latest entry it is) the same way
|
|
20
|
+
* a read of it would answer 410: a copy a gateway tombstone covers must not
|
|
21
|
+
* be discoverable either. When present, pagination and totals are computed
|
|
22
|
+
* over the visible set.
|
|
23
|
+
*/
|
|
24
|
+
export type DataVisibilityFilter = (scope: string, entry: IndexEntry) => Promise<boolean> | boolean;
|
|
16
25
|
export interface ListDataScopesContractInput {
|
|
17
26
|
storage: DataStoragePort;
|
|
18
27
|
scopePrefix?: string;
|
|
19
28
|
limit?: number;
|
|
20
29
|
offset?: number;
|
|
30
|
+
isVisible?: DataVisibilityFilter;
|
|
21
31
|
}
|
|
22
32
|
export interface ListDataScopesContractResult {
|
|
23
33
|
ok: true;
|
|
@@ -33,6 +43,7 @@ export interface ListDataVersionsContractInput {
|
|
|
33
43
|
scopeParam: string;
|
|
34
44
|
limit?: number;
|
|
35
45
|
offset?: number;
|
|
46
|
+
isVisible?: DataVisibilityFilter;
|
|
36
47
|
}
|
|
37
48
|
export interface ListDataVersionsContractResult {
|
|
38
49
|
ok: true;
|
|
@@ -91,6 +102,8 @@ export interface IngestDataContractInput {
|
|
|
91
102
|
* unchanged.
|
|
92
103
|
*/
|
|
93
104
|
lineage?: StoredLineage;
|
|
105
|
+
/** See `IndexEntry.afterTombstoneVersion`. */
|
|
106
|
+
afterTombstoneVersion?: number | null;
|
|
94
107
|
}
|
|
95
108
|
export interface IngestDataContractResult {
|
|
96
109
|
ok: true;
|
|
@@ -121,6 +134,8 @@ export interface IngestBinaryDataContractInput {
|
|
|
121
134
|
attribution?: WriterAttribution;
|
|
122
135
|
/** Validated lineage for a derivative write (see IngestDataContractInput). */
|
|
123
136
|
lineage?: StoredLineage;
|
|
137
|
+
/** See `IndexEntry.afterTombstoneVersion`. */
|
|
138
|
+
afterTombstoneVersion?: number | null;
|
|
124
139
|
}
|
|
125
140
|
export interface DeleteDataScopeContractInput {
|
|
126
141
|
storage: DataStoragePort;
|
|
@@ -135,7 +150,7 @@ export declare function parseDataScopeContract(scopeParam: string): {
|
|
|
135
150
|
scope: string;
|
|
136
151
|
} | DataContractError;
|
|
137
152
|
export declare function listDataScopesContract(input: ListDataScopesContractInput): Promise<ListDataScopesContractResult>;
|
|
138
|
-
export declare function listDataVersionsContract(input: ListDataVersionsContractInput): ListDataVersionsContractResult | DataContractError
|
|
153
|
+
export declare function listDataVersionsContract(input: ListDataVersionsContractInput): Promise<ListDataVersionsContractResult | DataContractError>;
|
|
139
154
|
export declare function readDataContract(input: ReadDataContractInput): Promise<ReadDataContractResult | DataContractError>;
|
|
140
155
|
export declare function ingestDataContract(input: IngestDataContractInput): Promise<IngestDataContractResult | DataContractError>;
|
|
141
156
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/contracts/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,qBAAqB,GAC/B,eAAe,GAAG,cAAc,GAAG,WAAW,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAClB,IAAI,EAAE,qBAAqB,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,eAAe,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/contracts/data.ts"],"names":[],"mappings":"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"}
|
package/dist/contracts/data.js
CHANGED
|
@@ -53,15 +53,47 @@ function normalizeOffset(value) {
|
|
|
53
53
|
function isRecord(value) {
|
|
54
54
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
55
55
|
}
|
|
56
|
+
const VISIBILITY_PAGE_SIZE = 200;
|
|
56
57
|
export async function listDataScopesContract(input) {
|
|
57
58
|
const limit = normalizeLimit(input.limit);
|
|
58
59
|
const offset = normalizeOffset(input.offset);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
let page;
|
|
61
|
+
let total;
|
|
62
|
+
if (input.isVisible) {
|
|
63
|
+
// Filtered listing: walk every scope so the page and the total both
|
|
64
|
+
// describe the visible set (the index cannot filter by tombstone).
|
|
65
|
+
const visible = [];
|
|
66
|
+
for (let scan = 0;; scan += VISIBILITY_PAGE_SIZE) {
|
|
67
|
+
const batch = input.storage.listScopes({
|
|
68
|
+
scopePrefix: input.scopePrefix,
|
|
69
|
+
limit: VISIBILITY_PAGE_SIZE,
|
|
70
|
+
offset: scan,
|
|
71
|
+
});
|
|
72
|
+
for (const summary of batch.scopes) {
|
|
73
|
+
const latest = input.storage.findEntry({
|
|
74
|
+
scope: summary.scope,
|
|
75
|
+
at: summary.latestCollectedAt,
|
|
76
|
+
});
|
|
77
|
+
if (!latest || (await input.isVisible(summary.scope, latest))) {
|
|
78
|
+
visible.push(summary);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (batch.scopes.length < VISIBILITY_PAGE_SIZE)
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
total = visible.length;
|
|
85
|
+
page = visible.slice(offset, offset + limit);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const result = input.storage.listScopes({
|
|
89
|
+
scopePrefix: input.scopePrefix,
|
|
90
|
+
limit,
|
|
91
|
+
offset,
|
|
92
|
+
});
|
|
93
|
+
page = result.scopes;
|
|
94
|
+
total = result.total;
|
|
95
|
+
}
|
|
96
|
+
const scopes = await Promise.all(page.map(async (summary) => {
|
|
65
97
|
const entry = input.storage.findEntry({
|
|
66
98
|
scope: summary.scope,
|
|
67
99
|
at: summary.latestCollectedAt,
|
|
@@ -69,11 +101,9 @@ export async function listDataScopesContract(input) {
|
|
|
69
101
|
if (!entry) {
|
|
70
102
|
return summary;
|
|
71
103
|
}
|
|
72
|
-
const hasBlocks = typeof input.storage.
|
|
73
|
-
? await input.storage.
|
|
74
|
-
:
|
|
75
|
-
? await input.storage.hasScopeBlocks(summary.scope, summary.latestCollectedAt)
|
|
76
|
-
: false;
|
|
104
|
+
const hasBlocks = typeof input.storage.hasScopeBlocks === "function"
|
|
105
|
+
? await input.storage.hasScopeBlocks(summary.scope, summary.latestCollectedAt)
|
|
106
|
+
: false;
|
|
77
107
|
return {
|
|
78
108
|
...summary,
|
|
79
109
|
dataStatus: hasBlocks ? "ready" : "indexing",
|
|
@@ -84,33 +114,53 @@ export async function listDataScopesContract(input) {
|
|
|
84
114
|
ok: true,
|
|
85
115
|
response: {
|
|
86
116
|
scopes,
|
|
87
|
-
total
|
|
117
|
+
total,
|
|
88
118
|
limit,
|
|
89
119
|
offset,
|
|
90
120
|
},
|
|
91
121
|
};
|
|
92
122
|
}
|
|
93
|
-
export function listDataVersionsContract(input) {
|
|
123
|
+
export async function listDataVersionsContract(input) {
|
|
94
124
|
const scopeResult = parseDataScopeContract(input.scopeParam);
|
|
95
125
|
if (!scopeResult.ok)
|
|
96
126
|
return scopeResult;
|
|
97
127
|
const limit = normalizeLimit(input.limit);
|
|
98
128
|
const offset = normalizeOffset(input.offset);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
129
|
+
let page;
|
|
130
|
+
let total;
|
|
131
|
+
if (input.isVisible) {
|
|
132
|
+
const visible = [];
|
|
133
|
+
for (let scan = 0;; scan += VISIBILITY_PAGE_SIZE) {
|
|
134
|
+
const batch = input.storage.listVersions(scopeResult.scope, {
|
|
135
|
+
limit: VISIBILITY_PAGE_SIZE,
|
|
136
|
+
offset: scan,
|
|
137
|
+
});
|
|
138
|
+
for (const entry of batch) {
|
|
139
|
+
if (await input.isVisible(scopeResult.scope, entry)) {
|
|
140
|
+
visible.push(entry);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (batch.length < VISIBILITY_PAGE_SIZE)
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
total = visible.length;
|
|
147
|
+
page = visible.slice(offset, offset + limit);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
page = input.storage.listVersions(scopeResult.scope, { limit, offset });
|
|
151
|
+
total = input.storage.countVersions(scopeResult.scope);
|
|
152
|
+
}
|
|
103
153
|
return {
|
|
104
154
|
ok: true,
|
|
105
155
|
scope: scopeResult.scope,
|
|
106
156
|
response: {
|
|
107
157
|
scope: scopeResult.scope,
|
|
108
|
-
versions:
|
|
158
|
+
versions: page.map((entry) => ({
|
|
109
159
|
fileId: entry.fileId,
|
|
110
160
|
schemaId: entry.schemaId,
|
|
111
161
|
collectedAt: entry.collectedAt,
|
|
112
162
|
})),
|
|
113
|
-
total
|
|
163
|
+
total,
|
|
114
164
|
limit,
|
|
115
165
|
offset,
|
|
116
166
|
},
|
|
@@ -196,6 +246,7 @@ export async function ingestDataContract(input) {
|
|
|
196
246
|
scope: scopeResult.scope,
|
|
197
247
|
collectedAt: input.collectedAt,
|
|
198
248
|
sizeBytes: writeResult.sizeBytes,
|
|
249
|
+
afterTombstoneVersion: input.afterTombstoneVersion ?? null,
|
|
199
250
|
});
|
|
200
251
|
return {
|
|
201
252
|
ok: true,
|
|
@@ -287,6 +338,7 @@ export async function ingestBinaryDataContract(input) {
|
|
|
287
338
|
scope: scopeResult.scope,
|
|
288
339
|
collectedAt: input.collectedAt,
|
|
289
340
|
sizeBytes: input.bytes.length,
|
|
341
|
+
afterTombstoneVersion: input.afterTombstoneVersion ?? null,
|
|
290
342
|
});
|
|
291
343
|
return {
|
|
292
344
|
ok: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/contracts/data.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/contracts/data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP surface of the compute layer, mounted under `/v1/derivatives`:
|
|
3
|
+
*
|
|
4
|
+
* POST /questions register (builder write auth or owner)
|
|
5
|
+
* GET /questions list (owner; builder with ?derivedScope=)
|
|
6
|
+
* GET /questions/:id status (owner or the registering builder)
|
|
7
|
+
* POST /questions/:id/recompute owner or the registering builder
|
|
8
|
+
* DELETE /questions/:id owner or the registering builder
|
|
9
|
+
*
|
|
10
|
+
* Builder authentication is the Write API's: a write-session bearer token
|
|
11
|
+
* plus the X-Vana-Write-Signature proof over the request, authorized for
|
|
12
|
+
* `write:<derivedScope>` (api-auth authorizeWrite). No new credential.
|
|
13
|
+
*/
|
|
14
|
+
import type { PersonalServerApiAuthPort, PersonalServerApiDispatchOptions } from "../api/index.js";
|
|
15
|
+
import type { RecomputeScheduler } from "./scheduler.js";
|
|
16
|
+
import { type QuestionStore } from "./types.js";
|
|
17
|
+
/** Registration bodies are small; anything larger is refused up front. */
|
|
18
|
+
export declare const MAX_QUESTION_BODY_BYTES: number;
|
|
19
|
+
export interface PersonalServerDerivativesApiDeps {
|
|
20
|
+
auth: Pick<PersonalServerApiAuthPort, "authorizeOwner" | "authorizeWrite">;
|
|
21
|
+
/** Absent = the compute layer is not wired; every route answers 503. */
|
|
22
|
+
compute?: {
|
|
23
|
+
store: QuestionStore;
|
|
24
|
+
scheduler: Pick<RecomputeScheduler, "requestRecompute" | "markSourceChanged">;
|
|
25
|
+
} | null;
|
|
26
|
+
now?: () => Date;
|
|
27
|
+
createQuestionId?: () => string;
|
|
28
|
+
logger?: {
|
|
29
|
+
info?(payload: Record<string, unknown>, message: string): void;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export declare function handlePersonalServerDerivativesRequest(request: Request, deps: PersonalServerDerivativesApiDeps, options?: PersonalServerApiDispatchOptions): Promise<Response>;
|
|
33
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/derivatives/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,OAAO,KAAK,EACV,yBAAyB,EACzB,gCAAgC,EAEjC,MAAM,iBAAiB,CAAC;AAMzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAEpB,0EAA0E;AAC1E,eAAO,MAAM,uBAAuB,QAAY,CAAC;AAEjD,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,IAAI,CAAC,yBAAyB,EAAE,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;IAC3E,wEAAwE;IACxE,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,aAAa,CAAC;QACrB,SAAS,EAAE,IAAI,CACb,kBAAkB,EAClB,kBAAkB,GAAG,mBAAmB,CACzC,CAAC;KACH,GAAG,IAAI,CAAC;IACT,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KAChE,CAAC;CACH;AAkFD,wBAAsB,sCAAsC,CAC1D,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,gCAAgC,EACtC,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,QAAQ,CAAC,CAqLnB"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP surface of the compute layer, mounted under `/v1/derivatives`:
|
|
3
|
+
*
|
|
4
|
+
* POST /questions register (builder write auth or owner)
|
|
5
|
+
* GET /questions list (owner; builder with ?derivedScope=)
|
|
6
|
+
* GET /questions/:id status (owner or the registering builder)
|
|
7
|
+
* POST /questions/:id/recompute owner or the registering builder
|
|
8
|
+
* DELETE /questions/:id owner or the registering builder
|
|
9
|
+
*
|
|
10
|
+
* Builder authentication is the Write API's: a write-session bearer token
|
|
11
|
+
* plus the X-Vana-Write-Signature proof over the request, authorized for
|
|
12
|
+
* `write:<derivedScope>` (api-auth authorizeWrite). No new credential.
|
|
13
|
+
*/
|
|
14
|
+
import { ContentTooLargeError, DerivativeComputeUnavailableError, DerivativeQuestionNotFoundError, DerivativeSourceNotGrantedError, ProtocolError, } from "../errors/catalog.js";
|
|
15
|
+
import { parseJsonObjectBody } from "../contracts/http.js";
|
|
16
|
+
import { createQuestionRegistration, parseQuestionInput, uncoveredSourceScopes, } from "./registration.js";
|
|
17
|
+
import { questionRegistrationView, } from "./types.js";
|
|
18
|
+
/** Registration bodies are small; anything larger is refused up front. */
|
|
19
|
+
export const MAX_QUESTION_BODY_BYTES = 16 * 1024;
|
|
20
|
+
function jsonResponse(body, init) {
|
|
21
|
+
const headers = new Headers(init?.headers);
|
|
22
|
+
headers.set("Content-Type", "application/json");
|
|
23
|
+
return new Response(JSON.stringify(body), { ...init, headers });
|
|
24
|
+
}
|
|
25
|
+
function errorResponse(status, errorCode, message) {
|
|
26
|
+
return jsonResponse({ error: { code: status, errorCode, message } }, { status });
|
|
27
|
+
}
|
|
28
|
+
function stripBasePath(pathname, basePath) {
|
|
29
|
+
if (!basePath || basePath === "/")
|
|
30
|
+
return pathname;
|
|
31
|
+
if (pathname === basePath)
|
|
32
|
+
return "/";
|
|
33
|
+
if (pathname.startsWith(`${basePath}/`))
|
|
34
|
+
return pathname.slice(basePath.length);
|
|
35
|
+
return pathname;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Authorize as the owner or, through the write-session path, as a builder
|
|
39
|
+
* holding `write:<scope>`. Returns the builder result or undefined (owner).
|
|
40
|
+
*/
|
|
41
|
+
async function authorizeOwnerOrWriter(deps, request, scope) {
|
|
42
|
+
if (deps.auth.authorizeWrite) {
|
|
43
|
+
return (await deps.auth.authorizeWrite({ request, scope })) ?? undefined;
|
|
44
|
+
}
|
|
45
|
+
await deps.auth.authorizeOwner(request);
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
function sameBuilder(a, b) {
|
|
49
|
+
return a.toLowerCase() === b.toLowerCase();
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The registration a caller may act on, or a 404 for everyone who may not:
|
|
53
|
+
* the owner sees every registration; a builder sees the ones it registered.
|
|
54
|
+
* An id the store does not hold is answered after owner auth, so a builder
|
|
55
|
+
* learns nothing from probing ids.
|
|
56
|
+
*/
|
|
57
|
+
async function loadForCaller(deps, request, store, questionId) {
|
|
58
|
+
const registration = await store.get(questionId);
|
|
59
|
+
if (!registration) {
|
|
60
|
+
await deps.auth.authorizeOwner(request);
|
|
61
|
+
throw new DerivativeQuestionNotFoundError({ questionId });
|
|
62
|
+
}
|
|
63
|
+
const writer = await authorizeOwnerOrWriter(deps, request, registration.derivedScope);
|
|
64
|
+
if (writer) {
|
|
65
|
+
const by = registration.registeredBy;
|
|
66
|
+
if (by.kind !== "builder" || !sameBuilder(by.builder, writer.builder)) {
|
|
67
|
+
await writer.releaseProof?.();
|
|
68
|
+
throw new DerivativeQuestionNotFoundError({ questionId });
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return { registration, writer };
|
|
72
|
+
}
|
|
73
|
+
export async function handlePersonalServerDerivativesRequest(request, deps, options = {}) {
|
|
74
|
+
try {
|
|
75
|
+
const url = new URL(request.url);
|
|
76
|
+
const pathname = stripBasePath(url.pathname, options.basePath);
|
|
77
|
+
const parts = pathname.split("/").filter(Boolean);
|
|
78
|
+
if (parts[0] !== "questions" || parts.length > 3) {
|
|
79
|
+
return errorResponse(404, "NOT_FOUND", "Not found");
|
|
80
|
+
}
|
|
81
|
+
const compute = deps.compute;
|
|
82
|
+
if (!compute)
|
|
83
|
+
throw new DerivativeComputeUnavailableError();
|
|
84
|
+
const { store, scheduler } = compute;
|
|
85
|
+
const now = deps.now ?? (() => new Date());
|
|
86
|
+
// /questions
|
|
87
|
+
if (parts.length === 1) {
|
|
88
|
+
if (request.method === "GET") {
|
|
89
|
+
const derivedScope = url.searchParams.get("derivedScope") ?? undefined;
|
|
90
|
+
if (derivedScope) {
|
|
91
|
+
const writer = await authorizeOwnerOrWriter(deps, request, derivedScope);
|
|
92
|
+
const registrations = await store.list({
|
|
93
|
+
derivedScope,
|
|
94
|
+
...(writer ? { builder: writer.builder } : {}),
|
|
95
|
+
});
|
|
96
|
+
return jsonResponse({
|
|
97
|
+
questions: registrations.map(questionRegistrationView),
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
await deps.auth.authorizeOwner(request);
|
|
101
|
+
const registrations = await store.list();
|
|
102
|
+
return jsonResponse({
|
|
103
|
+
questions: registrations.map(questionRegistrationView),
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
if (request.method === "POST") {
|
|
107
|
+
// The derived scope decides which write grant must cover the call,
|
|
108
|
+
// so the body is read (from a clone: the proof check reads it too)
|
|
109
|
+
// before authorization. Nothing is stored until auth passed.
|
|
110
|
+
const declared = Number(request.headers.get("content-length") ?? "0");
|
|
111
|
+
if (declared > MAX_QUESTION_BODY_BYTES) {
|
|
112
|
+
throw new ContentTooLargeError({ max: MAX_QUESTION_BODY_BYTES });
|
|
113
|
+
}
|
|
114
|
+
const bodyBytes = new Uint8Array(await request.clone().arrayBuffer());
|
|
115
|
+
if (bodyBytes.byteLength > MAX_QUESTION_BODY_BYTES) {
|
|
116
|
+
throw new ContentTooLargeError({ max: MAX_QUESTION_BODY_BYTES });
|
|
117
|
+
}
|
|
118
|
+
const parsed = await parseJsonObjectBody(request.clone(), "Request body must be valid JSON");
|
|
119
|
+
if (!parsed.ok) {
|
|
120
|
+
return jsonResponse(parsed.result.body, {
|
|
121
|
+
status: parsed.result.status,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
const rawScope = parsed.body.derivedScope;
|
|
125
|
+
const scopeForAuth = typeof rawScope === "string" ? rawScope : "";
|
|
126
|
+
const writer = await authorizeOwnerOrWriter(deps, request, scopeForAuth);
|
|
127
|
+
const registeredBy = writer
|
|
128
|
+
? {
|
|
129
|
+
kind: "builder",
|
|
130
|
+
builder: writer.builder,
|
|
131
|
+
grantId: writer.grantId,
|
|
132
|
+
}
|
|
133
|
+
: { kind: "owner" };
|
|
134
|
+
let registration;
|
|
135
|
+
try {
|
|
136
|
+
if (writer) {
|
|
137
|
+
// Consent: the answer exposes the sources to the builder, so
|
|
138
|
+
// every source must be read-granted to it. Fail closed when
|
|
139
|
+
// the auth port did not hand over the grant's scopes.
|
|
140
|
+
const input = parseQuestionInput(parsed.body);
|
|
141
|
+
const uncovered = uncoveredSourceScopes(input.sourceScopes, writer.grantScopes);
|
|
142
|
+
if (uncovered.length > 0) {
|
|
143
|
+
throw new DerivativeSourceNotGrantedError({ scopes: uncovered });
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
registration = await createQuestionRegistration({
|
|
147
|
+
body: parsed.body,
|
|
148
|
+
registeredBy,
|
|
149
|
+
store,
|
|
150
|
+
questionId: deps.createQuestionId?.() ?? crypto.randomUUID(),
|
|
151
|
+
now,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
catch (err) {
|
|
155
|
+
// Nothing stored: hand the builder's proof back for a retry.
|
|
156
|
+
await writer?.releaseProof?.();
|
|
157
|
+
throw err;
|
|
158
|
+
}
|
|
159
|
+
deps.logger?.info?.({
|
|
160
|
+
questionId: registration.questionId,
|
|
161
|
+
derivedScope: registration.derivedScope,
|
|
162
|
+
sourceScopes: registration.sourceScopes,
|
|
163
|
+
registeredBy: registeredBy.kind,
|
|
164
|
+
...(writer
|
|
165
|
+
? { builder: writer.builder, grantId: writer.grantId }
|
|
166
|
+
: {}),
|
|
167
|
+
}, "Derivative question registered");
|
|
168
|
+
scheduler.requestRecompute(registration.questionId, {
|
|
169
|
+
immediate: true,
|
|
170
|
+
});
|
|
171
|
+
return jsonResponse(questionRegistrationView(registration), {
|
|
172
|
+
status: 201,
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
return errorResponse(405, "METHOD_NOT_ALLOWED", "Method not allowed");
|
|
176
|
+
}
|
|
177
|
+
const questionId = decodeURIComponent(parts[1] ?? "");
|
|
178
|
+
// /questions/:id/recompute
|
|
179
|
+
if (parts.length === 3) {
|
|
180
|
+
if (parts[2] !== "recompute") {
|
|
181
|
+
return errorResponse(404, "NOT_FOUND", "Not found");
|
|
182
|
+
}
|
|
183
|
+
if (request.method !== "POST") {
|
|
184
|
+
return errorResponse(405, "METHOD_NOT_ALLOWED", "Method not allowed");
|
|
185
|
+
}
|
|
186
|
+
// Owner, or the registering builder (its retry after a transient
|
|
187
|
+
// failure); same gate as GET / DELETE.
|
|
188
|
+
const { registration } = await loadForCaller(deps, request, store, questionId);
|
|
189
|
+
scheduler.requestRecompute(questionId, { immediate: true });
|
|
190
|
+
return jsonResponse({
|
|
191
|
+
questionId,
|
|
192
|
+
status: registration.status === "pending" ? "pending" : "stale",
|
|
193
|
+
derivedScope: registration.derivedScope,
|
|
194
|
+
}, { status: 202 });
|
|
195
|
+
}
|
|
196
|
+
// /questions/:id
|
|
197
|
+
if (request.method === "GET") {
|
|
198
|
+
const { registration } = await loadForCaller(deps, request, store, questionId);
|
|
199
|
+
return jsonResponse(questionRegistrationView(registration));
|
|
200
|
+
}
|
|
201
|
+
if (request.method === "DELETE") {
|
|
202
|
+
const { registration } = await loadForCaller(deps, request, store, questionId);
|
|
203
|
+
await store.delete(questionId);
|
|
204
|
+
deps.logger?.info?.({ questionId, derivedScope: registration.derivedScope }, "Derivative question deleted");
|
|
205
|
+
return jsonResponse({ questionId, deleted: true });
|
|
206
|
+
}
|
|
207
|
+
return errorResponse(405, "METHOD_NOT_ALLOWED", "Method not allowed");
|
|
208
|
+
}
|
|
209
|
+
catch (err) {
|
|
210
|
+
if (err instanceof ProtocolError) {
|
|
211
|
+
return jsonResponse(err.toJSON(), { status: err.code });
|
|
212
|
+
}
|
|
213
|
+
return errorResponse(500, "INTERNAL_ERROR", "Internal server error");
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/derivatives/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The compute job: answer one registered question from local data and
|
|
3
|
+
* write the answer as a derivative record (owner path, `$lineage` = the
|
|
4
|
+
* source data points).
|
|
5
|
+
*/
|
|
6
|
+
import type { ScopeDeletionTracker } from "../sync/scope-deletions.js";
|
|
7
|
+
import type { DataStoragePort, RuntimeAvailabilityPort } from "../ports/index.js";
|
|
8
|
+
import { type DataWritePolicyPorts } from "../policy/data-write.js";
|
|
9
|
+
import { type InferenceProvider } from "./inference.js";
|
|
10
|
+
import type { QuestionRegistration, QuestionStore } from "./types.js";
|
|
11
|
+
export interface ComputeLogger {
|
|
12
|
+
info?(payload: Record<string, unknown>, message: string): void;
|
|
13
|
+
warn?(payload: Record<string, unknown>, message: string): void;
|
|
14
|
+
}
|
|
15
|
+
export interface ComputeSyncNotifier {
|
|
16
|
+
notifyNewData?(): void;
|
|
17
|
+
trigger?(): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
export interface QuestionComputeDeps {
|
|
20
|
+
storage: DataStoragePort;
|
|
21
|
+
store: QuestionStore;
|
|
22
|
+
provider: InferenceProvider;
|
|
23
|
+
/** Required: lineage ids are keccak256(owner, scope). */
|
|
24
|
+
serverOwner: `0x${string}` | undefined;
|
|
25
|
+
/** Newest-first items kept per source scope (default 50). */
|
|
26
|
+
maxSourceItems?: number;
|
|
27
|
+
maxSourceChars?: number;
|
|
28
|
+
maxTokens?: number;
|
|
29
|
+
/** Uploads the derivative after it is written locally. */
|
|
30
|
+
syncManager?: ComputeSyncNotifier | null;
|
|
31
|
+
/** Re-add marker, same as an HTTP ingest (see api/index.ts). */
|
|
32
|
+
scopeDeletions?: ScopeDeletionTracker;
|
|
33
|
+
/**
|
|
34
|
+
* When present, a builder-registered question re-checks its write grant
|
|
35
|
+
* before every compute (revoked / expired / scope no longer covered =>
|
|
36
|
+
* failed, no inference call). Owner registrations skip the check.
|
|
37
|
+
*/
|
|
38
|
+
writePolicyPorts?: DataWritePolicyPorts;
|
|
39
|
+
/**
|
|
40
|
+
* Called after the derivative is written and the question marked ready,
|
|
41
|
+
* so a question that reads THIS derived scope recomputes in turn
|
|
42
|
+
* (A -> B -> C chains). The compute path never goes through the HTTP
|
|
43
|
+
* ingest hook.
|
|
44
|
+
*/
|
|
45
|
+
onDerivedWritten?: (event: {
|
|
46
|
+
scope: string;
|
|
47
|
+
collectedAt: string;
|
|
48
|
+
lineageSources: string[];
|
|
49
|
+
}) => void;
|
|
50
|
+
/** When unavailable the compute is skipped and the status left as is. */
|
|
51
|
+
runtimeAvailability?: RuntimeAvailabilityPort;
|
|
52
|
+
/**
|
|
53
|
+
* Backoff between retries of a transient inference or gateway failure
|
|
54
|
+
* (default 1s, 4s: three attempts). Tests pass zeros.
|
|
55
|
+
*/
|
|
56
|
+
retryDelaysMs?: readonly number[];
|
|
57
|
+
sleep?: (ms: number) => Promise<void>;
|
|
58
|
+
now?: () => Date;
|
|
59
|
+
logger?: ComputeLogger;
|
|
60
|
+
}
|
|
61
|
+
export type ComputeOutcome = {
|
|
62
|
+
status: "ready";
|
|
63
|
+
registration: QuestionRegistration;
|
|
64
|
+
} | {
|
|
65
|
+
status: "failed";
|
|
66
|
+
registration: QuestionRegistration;
|
|
67
|
+
error: string;
|
|
68
|
+
} | {
|
|
69
|
+
status: "skipped";
|
|
70
|
+
reason: "unknown-question" | "runtime-unavailable";
|
|
71
|
+
};
|
|
72
|
+
/** The record written into the derived scope. */
|
|
73
|
+
export interface DerivativeAnswerRecord {
|
|
74
|
+
questionId: string;
|
|
75
|
+
question: string;
|
|
76
|
+
answer: string;
|
|
77
|
+
evidence: string | null;
|
|
78
|
+
model: string;
|
|
79
|
+
computedAt: string;
|
|
80
|
+
sources: Array<{
|
|
81
|
+
scope: string;
|
|
82
|
+
version: number;
|
|
83
|
+
collectedAt: string;
|
|
84
|
+
}>;
|
|
85
|
+
/** Caller-side lineage field, mirrored by the server into `$lineage`. */
|
|
86
|
+
lineage: `0x${string}`[];
|
|
87
|
+
inference?: {
|
|
88
|
+
receiptId?: string;
|
|
89
|
+
aciIdentity?: string;
|
|
90
|
+
};
|
|
91
|
+
[key: string]: unknown;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Version stamp for the derived record, second precision like an HTTP
|
|
95
|
+
* ingest. A recompute inside the same second as the previous one would
|
|
96
|
+
* collide on the (scope, collectedAt) path, so the stamp advances past any
|
|
97
|
+
* version the scope already holds (bounded: at most one minute ahead).
|
|
98
|
+
*/
|
|
99
|
+
export declare function collectedAtStamp(now: () => Date, isTaken: (collectedAt: string) => boolean): string;
|
|
100
|
+
/**
|
|
101
|
+
* Compute one question end to end. Never throws for a compute failure: the
|
|
102
|
+
* registration is marked `failed` with a short reason and the outcome says
|
|
103
|
+
* so. Throws only when the store itself fails.
|
|
104
|
+
*/
|
|
105
|
+
export declare function computeQuestion(questionId: string, deps: QuestionComputeDeps): Promise<ComputeOutcome>;
|
|
106
|
+
//# sourceMappingURL=compute.d.ts.map
|