@polpo-ai/core 0.15.143 → 0.15.144

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.
@@ -0,0 +1,384 @@
1
+ import { z } from "zod";
2
+ export type DataErrorCode = "data_invalid" | "data_forbidden" | "data_not_found" | "data_conflict" | "data_constraint" | "data_limit" | "data_unavailable";
3
+ export declare class DataError extends Error {
4
+ readonly code: DataErrorCode;
5
+ constructor(code: DataErrorCode, message: string);
6
+ }
7
+ export declare const DataIdentifier: z.ZodString;
8
+ export declare const DataIndexName: z.ZodString;
9
+ export declare const DataName: z.ZodString;
10
+ export declare const DataColumnSchema: z.ZodObject<{
11
+ type: z.ZodEnum<{
12
+ number: "number";
13
+ boolean: "boolean";
14
+ text: "text";
15
+ json: "json";
16
+ timestamp: "timestamp";
17
+ integer: "integer";
18
+ uuid: "uuid";
19
+ }>;
20
+ nullable: z.ZodOptional<z.ZodBoolean>;
21
+ unique: z.ZodOptional<z.ZodBoolean>;
22
+ references: z.ZodOptional<z.ZodObject<{
23
+ table: z.ZodString;
24
+ column: z.ZodString;
25
+ }, z.core.$strict>>;
26
+ }, z.core.$strict>;
27
+ export type DataColumn = z.infer<typeof DataColumnSchema>;
28
+ export declare const DataTableSchema: z.ZodObject<{
29
+ columns: z.ZodRecord<z.ZodString, z.ZodObject<{
30
+ type: z.ZodEnum<{
31
+ number: "number";
32
+ boolean: "boolean";
33
+ text: "text";
34
+ json: "json";
35
+ timestamp: "timestamp";
36
+ integer: "integer";
37
+ uuid: "uuid";
38
+ }>;
39
+ nullable: z.ZodOptional<z.ZodBoolean>;
40
+ unique: z.ZodOptional<z.ZodBoolean>;
41
+ references: z.ZodOptional<z.ZodObject<{
42
+ table: z.ZodString;
43
+ column: z.ZodString;
44
+ }, z.core.$strict>>;
45
+ }, z.core.$strict>>;
46
+ indexes: z.ZodOptional<z.ZodArray<z.ZodObject<{
47
+ name: z.ZodOptional<z.ZodString>;
48
+ columns: z.ZodArray<z.ZodString>;
49
+ unique: z.ZodOptional<z.ZodBoolean>;
50
+ }, z.core.$strict>>>;
51
+ }, z.core.$strict>;
52
+ export declare const DataSchema: z.ZodObject<{
53
+ tables: z.ZodRecord<z.ZodString, z.ZodObject<{
54
+ columns: z.ZodRecord<z.ZodString, z.ZodObject<{
55
+ type: z.ZodEnum<{
56
+ number: "number";
57
+ boolean: "boolean";
58
+ text: "text";
59
+ json: "json";
60
+ timestamp: "timestamp";
61
+ integer: "integer";
62
+ uuid: "uuid";
63
+ }>;
64
+ nullable: z.ZodOptional<z.ZodBoolean>;
65
+ unique: z.ZodOptional<z.ZodBoolean>;
66
+ references: z.ZodOptional<z.ZodObject<{
67
+ table: z.ZodString;
68
+ column: z.ZodString;
69
+ }, z.core.$strict>>;
70
+ }, z.core.$strict>>;
71
+ indexes: z.ZodOptional<z.ZodArray<z.ZodObject<{
72
+ name: z.ZodOptional<z.ZodString>;
73
+ columns: z.ZodArray<z.ZodString>;
74
+ unique: z.ZodOptional<z.ZodBoolean>;
75
+ }, z.core.$strict>>>;
76
+ }, z.core.$strict>>;
77
+ }, z.core.$strict>;
78
+ export type DataSchemaDefinition = z.infer<typeof DataSchema>;
79
+ export type DataTable = z.infer<typeof DataTableSchema>;
80
+ export declare const CreateDataSchema: z.ZodObject<{
81
+ name: z.ZodString;
82
+ schema: z.ZodObject<{
83
+ tables: z.ZodRecord<z.ZodString, z.ZodObject<{
84
+ columns: z.ZodRecord<z.ZodString, z.ZodObject<{
85
+ type: z.ZodEnum<{
86
+ number: "number";
87
+ boolean: "boolean";
88
+ text: "text";
89
+ json: "json";
90
+ timestamp: "timestamp";
91
+ integer: "integer";
92
+ uuid: "uuid";
93
+ }>;
94
+ nullable: z.ZodOptional<z.ZodBoolean>;
95
+ unique: z.ZodOptional<z.ZodBoolean>;
96
+ references: z.ZodOptional<z.ZodObject<{
97
+ table: z.ZodString;
98
+ column: z.ZodString;
99
+ }, z.core.$strict>>;
100
+ }, z.core.$strict>>;
101
+ indexes: z.ZodOptional<z.ZodArray<z.ZodObject<{
102
+ name: z.ZodOptional<z.ZodString>;
103
+ columns: z.ZodArray<z.ZodString>;
104
+ unique: z.ZodOptional<z.ZodBoolean>;
105
+ }, z.core.$strict>>>;
106
+ }, z.core.$strict>>;
107
+ }, z.core.$strict>;
108
+ }, z.core.$strict>;
109
+ export declare const MigrateDataSchema: z.ZodObject<{
110
+ expectedVersion: z.ZodNumber;
111
+ schema: z.ZodObject<{
112
+ tables: z.ZodRecord<z.ZodString, z.ZodObject<{
113
+ columns: z.ZodRecord<z.ZodString, z.ZodObject<{
114
+ type: z.ZodEnum<{
115
+ number: "number";
116
+ boolean: "boolean";
117
+ text: "text";
118
+ json: "json";
119
+ timestamp: "timestamp";
120
+ integer: "integer";
121
+ uuid: "uuid";
122
+ }>;
123
+ nullable: z.ZodOptional<z.ZodBoolean>;
124
+ unique: z.ZodOptional<z.ZodBoolean>;
125
+ references: z.ZodOptional<z.ZodObject<{
126
+ table: z.ZodString;
127
+ column: z.ZodString;
128
+ }, z.core.$strict>>;
129
+ }, z.core.$strict>>;
130
+ indexes: z.ZodOptional<z.ZodArray<z.ZodObject<{
131
+ name: z.ZodOptional<z.ZodString>;
132
+ columns: z.ZodArray<z.ZodString>;
133
+ unique: z.ZodOptional<z.ZodBoolean>;
134
+ }, z.core.$strict>>>;
135
+ }, z.core.$strict>>;
136
+ }, z.core.$strict>;
137
+ }, z.core.$strict>;
138
+ export declare const RenameDataSchema: z.ZodObject<{
139
+ expectedVersion: z.ZodNumber;
140
+ name: z.ZodString;
141
+ }, z.core.$strict>;
142
+ export type CreateDataInput = z.infer<typeof CreateDataSchema>;
143
+ export type DataMigration = z.infer<typeof MigrateDataSchema>;
144
+ export type DataRename = z.infer<typeof RenameDataSchema>;
145
+ export interface DataResource {
146
+ id: string;
147
+ name: string;
148
+ schema: DataSchemaDefinition;
149
+ schemaVersion: number;
150
+ createdAt: string;
151
+ }
152
+ export type DataValue = null | string | number | boolean | DataValue[] | {
153
+ [key: string]: DataValue;
154
+ };
155
+ export type DataRow = Record<string, DataValue> & {
156
+ _id: string;
157
+ _version: number;
158
+ _created_at: string;
159
+ _updated_at: string;
160
+ };
161
+ /** Canonical recursive JSON values, also named by API schema generators. */
162
+ export declare const DataValueSchema: z.ZodJSONSchema;
163
+ export declare const DataFilterSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
164
+ eq: z.ZodOptional<z.ZodJSONSchema>;
165
+ ne: z.ZodOptional<z.ZodJSONSchema>;
166
+ gt: z.ZodOptional<z.ZodJSONSchema>;
167
+ gte: z.ZodOptional<z.ZodJSONSchema>;
168
+ lt: z.ZodOptional<z.ZodJSONSchema>;
169
+ lte: z.ZodOptional<z.ZodJSONSchema>;
170
+ in: z.ZodOptional<z.ZodArray<z.ZodJSONSchema>>;
171
+ isNull: z.ZodOptional<z.ZodBoolean>;
172
+ }, z.core.$strict>>;
173
+ export declare const DataOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
174
+ op: z.ZodLiteral<"list">;
175
+ table: z.ZodString;
176
+ filter: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
177
+ eq: z.ZodOptional<z.ZodJSONSchema>;
178
+ ne: z.ZodOptional<z.ZodJSONSchema>;
179
+ gt: z.ZodOptional<z.ZodJSONSchema>;
180
+ gte: z.ZodOptional<z.ZodJSONSchema>;
181
+ lt: z.ZodOptional<z.ZodJSONSchema>;
182
+ lte: z.ZodOptional<z.ZodJSONSchema>;
183
+ in: z.ZodOptional<z.ZodArray<z.ZodJSONSchema>>;
184
+ isNull: z.ZodOptional<z.ZodBoolean>;
185
+ }, z.core.$strict>>>;
186
+ orderBy: z.ZodOptional<z.ZodArray<z.ZodObject<{
187
+ column: z.ZodString;
188
+ direction: z.ZodEnum<{
189
+ asc: "asc";
190
+ desc: "desc";
191
+ }>;
192
+ }, z.core.$strict>>>;
193
+ limit: z.ZodOptional<z.ZodNumber>;
194
+ offset: z.ZodOptional<z.ZodNumber>;
195
+ }, z.core.$strict>, z.ZodObject<{
196
+ op: z.ZodLiteral<"insert">;
197
+ table: z.ZodString;
198
+ values: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
199
+ }, z.core.$strict>, z.ZodObject<{
200
+ op: z.ZodLiteral<"upsert">;
201
+ table: z.ZodString;
202
+ values: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
203
+ onConflict: z.ZodArray<z.ZodString>;
204
+ }, z.core.$strict>, z.ZodObject<{
205
+ op: z.ZodLiteral<"update">;
206
+ table: z.ZodString;
207
+ id: z.ZodString;
208
+ expectedVersion: z.ZodNumber;
209
+ values: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
210
+ }, z.core.$strict>, z.ZodObject<{
211
+ op: z.ZodLiteral<"delete">;
212
+ table: z.ZodString;
213
+ id: z.ZodString;
214
+ expectedVersion: z.ZodNumber;
215
+ }, z.core.$strict>], "op">;
216
+ export declare const DataBatchSchema: z.ZodObject<{
217
+ operations: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
218
+ op: z.ZodLiteral<"list">;
219
+ table: z.ZodString;
220
+ filter: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
221
+ eq: z.ZodOptional<z.ZodJSONSchema>;
222
+ ne: z.ZodOptional<z.ZodJSONSchema>;
223
+ gt: z.ZodOptional<z.ZodJSONSchema>;
224
+ gte: z.ZodOptional<z.ZodJSONSchema>;
225
+ lt: z.ZodOptional<z.ZodJSONSchema>;
226
+ lte: z.ZodOptional<z.ZodJSONSchema>;
227
+ in: z.ZodOptional<z.ZodArray<z.ZodJSONSchema>>;
228
+ isNull: z.ZodOptional<z.ZodBoolean>;
229
+ }, z.core.$strict>>>;
230
+ orderBy: z.ZodOptional<z.ZodArray<z.ZodObject<{
231
+ column: z.ZodString;
232
+ direction: z.ZodEnum<{
233
+ asc: "asc";
234
+ desc: "desc";
235
+ }>;
236
+ }, z.core.$strict>>>;
237
+ limit: z.ZodOptional<z.ZodNumber>;
238
+ offset: z.ZodOptional<z.ZodNumber>;
239
+ }, z.core.$strict>, z.ZodObject<{
240
+ op: z.ZodLiteral<"insert">;
241
+ table: z.ZodString;
242
+ values: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
243
+ }, z.core.$strict>, z.ZodObject<{
244
+ op: z.ZodLiteral<"upsert">;
245
+ table: z.ZodString;
246
+ values: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
247
+ onConflict: z.ZodArray<z.ZodString>;
248
+ }, z.core.$strict>, z.ZodObject<{
249
+ op: z.ZodLiteral<"update">;
250
+ table: z.ZodString;
251
+ id: z.ZodString;
252
+ expectedVersion: z.ZodNumber;
253
+ values: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
254
+ }, z.core.$strict>, z.ZodObject<{
255
+ op: z.ZodLiteral<"delete">;
256
+ table: z.ZodString;
257
+ id: z.ZodString;
258
+ expectedVersion: z.ZodNumber;
259
+ }, z.core.$strict>], "op">>;
260
+ idempotencyKey: z.ZodOptional<z.ZodString>;
261
+ }, z.core.$strict>;
262
+ export type DataOperation = z.infer<typeof DataOperationSchema>;
263
+ export type DataBatch = z.infer<typeof DataBatchSchema>;
264
+ export type DataListQuery = Omit<Extract<DataOperation, {
265
+ op: "list";
266
+ }>, "op" | "table">;
267
+ export type DataResult = {
268
+ rows: DataRow[];
269
+ total?: number;
270
+ nextOffset?: number | null;
271
+ };
272
+ export declare const DataQuerySchema: z.ZodObject<{
273
+ sql: z.ZodString;
274
+ params: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>>;
275
+ mode: z.ZodOptional<z.ZodEnum<{
276
+ read: "read";
277
+ write: "write";
278
+ }>>;
279
+ maxRows: z.ZodOptional<z.ZodNumber>;
280
+ idempotencyKey: z.ZodOptional<z.ZodString>;
281
+ }, z.core.$strict>;
282
+ export type DataQuery = z.infer<typeof DataQuerySchema>;
283
+ export type DataQueryResult = {
284
+ rows: Record<string, DataValue>[];
285
+ rowCount: number;
286
+ truncated: boolean;
287
+ };
288
+ export declare const DataSqlMigrationSchema: z.ZodObject<{
289
+ id: z.ZodString;
290
+ expectedVersion: z.ZodNumber;
291
+ statements: z.ZodArray<z.ZodObject<{
292
+ sql: z.ZodString;
293
+ params: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>>;
294
+ }, z.core.$strict>>;
295
+ allowDestructive: z.ZodOptional<z.ZodBoolean>;
296
+ }, z.core.$strict>;
297
+ export type DataSqlMigration = z.infer<typeof DataSqlMigrationSchema>;
298
+ export type DataMigrationRecord = {
299
+ id: string;
300
+ checksum: string;
301
+ schemaVersion: number;
302
+ appliedAt: string;
303
+ };
304
+ /** Host-computed permissions; never accept these from query arguments. */
305
+ export type DataQueryAccess = {
306
+ readTables: string[];
307
+ writeTables: string[];
308
+ };
309
+ export declare const DataGrantSchema: z.ZodObject<{
310
+ resource: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"*">]>;
311
+ tables: z.ZodOptional<z.ZodArray<z.ZodString>>;
312
+ actions: z.ZodArray<z.ZodEnum<{
313
+ read: "read";
314
+ write: "write";
315
+ manage: "manage";
316
+ }>>;
317
+ }, z.core.$strict>;
318
+ export type DataGrant = z.infer<typeof DataGrantSchema>;
319
+ export interface DataAccess {
320
+ scope: string;
321
+ principalId: string;
322
+ grants: readonly DataGrant[];
323
+ }
324
+ export interface DataCapabilities {
325
+ transactions: boolean;
326
+ relations: boolean;
327
+ schemaEvolution: "additive";
328
+ sql?: {
329
+ dialect: "postgresql";
330
+ migrations: boolean;
331
+ };
332
+ }
333
+ export interface DataProvider {
334
+ readonly capabilities: DataCapabilities;
335
+ list(scope: string): Promise<DataResource[]>;
336
+ get(scope: string, reference: string): Promise<DataResource | undefined>;
337
+ create(scope: string, input: CreateDataInput): Promise<DataResource>;
338
+ migrate(scope: string, id: string, input: DataMigration): Promise<DataResource>;
339
+ rename(scope: string, id: string, input: DataRename): Promise<DataResource>;
340
+ remove(scope: string, id: string, expectedVersion: number): Promise<void>;
341
+ execute(scope: string, id: string, principalId: string, batch: DataBatch): Promise<DataResult[]>;
342
+ query?(scope: string, id: string, principalId: string, input: DataQuery, access: DataQueryAccess): Promise<DataQueryResult>;
343
+ migrateSql?(scope: string, id: string, input: DataSqlMigration): Promise<DataResource>;
344
+ migrations?(scope: string, id: string): Promise<DataMigrationRecord[]>;
345
+ }
346
+ /** Bound capability safe to pass to a custom tool; no credentials or mutable host context. */
347
+ export interface DataClient {
348
+ list(): Promise<DataResource[]>;
349
+ describe(reference: string): Promise<DataResource>;
350
+ execute(reference: string, batch: DataBatch): Promise<DataResult[]>;
351
+ query?(reference: string, input: DataQuery): Promise<DataQueryResult>;
352
+ }
353
+ /** Re-resolve authorization on each call; expose no provider or host internals. */
354
+ export declare function createDataCapability(resolve: () => DataClient | Promise<DataClient>): DataClient;
355
+ export declare function parseData<T>(schema: z.ZodType<T>, input: unknown): T;
356
+ export declare function dataColumn(table: DataTable, name: string): DataColumn;
357
+ export declare function validateDataOperation(schema: DataSchemaDefinition, input: unknown): DataOperation;
358
+ export declare function canonicalDataJson(value: unknown): string;
359
+ export declare class DataService implements DataClient {
360
+ #private;
361
+ private readonly provider;
362
+ constructor(provider: DataProvider, access: DataAccess);
363
+ private allows;
364
+ private resolve;
365
+ private visible;
366
+ list(): Promise<DataResource[]>;
367
+ describe(reference: string): Promise<DataResource>;
368
+ create(input: CreateDataInput): Promise<DataResource>;
369
+ migrate(reference: string, input: DataMigration): Promise<DataResource>;
370
+ rename(reference: string, input: DataRename): Promise<DataResource>;
371
+ remove(reference: string, expectedVersion: number): Promise<void>;
372
+ execute(reference: string, input: DataBatch): Promise<DataResult[]>;
373
+ query(reference: string, input: DataQuery): Promise<DataQueryResult>;
374
+ migrateSql(reference: string, input: DataSqlMigration): Promise<DataResource>;
375
+ migrations(reference: string): Promise<DataMigrationRecord[]>;
376
+ }
377
+ /** Credential-bearing transport for a trusted host. Returned tools see only DataClient. */
378
+ export declare function createRemoteDataClient(options: {
379
+ url: string;
380
+ token: string;
381
+ headers?: Record<string, string>;
382
+ fetch?: typeof fetch;
383
+ }): DataClient;
384
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"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"}