@vertesia/client 1.0.0-dev.20260128.144200 → 1.0.0-dev.20260225.024852Z
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/lib/cjs/AuditTrailApi.js +35 -0
- package/lib/cjs/AuditTrailApi.js.map +1 -0
- package/lib/cjs/ProjectsApi.js +16 -0
- package/lib/cjs/ProjectsApi.js.map +1 -1
- package/lib/cjs/RunsApi.js +0 -5
- package/lib/cjs/RunsApi.js.map +1 -1
- package/lib/cjs/UsersApi.js +7 -1
- package/lib/cjs/UsersApi.js.map +1 -1
- package/lib/cjs/client.js +2 -0
- package/lib/cjs/client.js.map +1 -1
- package/lib/cjs/store/HiveMemoryApi.js +174 -0
- package/lib/cjs/store/HiveMemoryApi.js.map +1 -0
- package/lib/cjs/store/IndexingApi.js +207 -0
- package/lib/cjs/store/IndexingApi.js.map +1 -0
- package/lib/cjs/store/ObjectsApi.js +6 -4
- package/lib/cjs/store/ObjectsApi.js.map +1 -1
- package/lib/cjs/store/QueryApi.js +67 -0
- package/lib/cjs/store/QueryApi.js.map +1 -0
- package/lib/cjs/store/RenderingApi.js +84 -0
- package/lib/cjs/store/RenderingApi.js.map +1 -0
- package/lib/cjs/store/TypeCatalogApi.js +50 -0
- package/lib/cjs/store/TypeCatalogApi.js.map +1 -0
- package/lib/cjs/store/TypesApi.js +3 -0
- package/lib/cjs/store/TypesApi.js.map +1 -1
- package/lib/cjs/store/client.js +8 -0
- package/lib/cjs/store/client.js.map +1 -1
- package/lib/cjs/store/index.js +6 -0
- package/lib/cjs/store/index.js.map +1 -1
- package/lib/cjs/store/version.js +1 -1
- package/lib/esm/AuditTrailApi.js +32 -0
- package/lib/esm/AuditTrailApi.js.map +1 -0
- package/lib/esm/ProjectsApi.js +16 -0
- package/lib/esm/ProjectsApi.js.map +1 -1
- package/lib/esm/RunsApi.js +0 -5
- package/lib/esm/RunsApi.js.map +1 -1
- package/lib/esm/UsersApi.js +8 -2
- package/lib/esm/UsersApi.js.map +1 -1
- package/lib/esm/client.js +2 -0
- package/lib/esm/client.js.map +1 -1
- package/lib/esm/store/HiveMemoryApi.js +170 -0
- package/lib/esm/store/HiveMemoryApi.js.map +1 -0
- package/lib/esm/store/IndexingApi.js +203 -0
- package/lib/esm/store/IndexingApi.js.map +1 -0
- package/lib/esm/store/ObjectsApi.js +7 -5
- package/lib/esm/store/ObjectsApi.js.map +1 -1
- package/lib/esm/store/QueryApi.js +63 -0
- package/lib/esm/store/QueryApi.js.map +1 -0
- package/lib/esm/store/RenderingApi.js +80 -0
- package/lib/esm/store/RenderingApi.js.map +1 -0
- package/lib/esm/store/TypeCatalogApi.js +46 -0
- package/lib/esm/store/TypeCatalogApi.js.map +1 -0
- package/lib/esm/store/TypesApi.js +3 -0
- package/lib/esm/store/TypesApi.js.map +1 -1
- package/lib/esm/store/client.js +8 -0
- package/lib/esm/store/client.js.map +1 -1
- package/lib/esm/store/index.js +6 -0
- package/lib/esm/store/index.js.map +1 -1
- package/lib/esm/store/version.js +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/AuditTrailApi.d.ts +6 -0
- package/lib/types/AuditTrailApi.d.ts.map +1 -0
- package/lib/types/ProjectsApi.d.ts +5 -1
- package/lib/types/ProjectsApi.d.ts.map +1 -1
- package/lib/types/RunsApi.d.ts +1 -2
- package/lib/types/RunsApi.d.ts.map +1 -1
- package/lib/types/UsersApi.d.ts +6 -2
- package/lib/types/UsersApi.d.ts.map +1 -1
- package/lib/types/client.d.ts +2 -0
- package/lib/types/client.d.ts.map +1 -1
- package/lib/types/store/HiveMemoryApi.d.ts +160 -0
- package/lib/types/store/HiveMemoryApi.d.ts.map +1 -0
- package/lib/types/store/IndexingApi.d.ts +140 -0
- package/lib/types/store/IndexingApi.d.ts.map +1 -0
- package/lib/types/store/ObjectsApi.d.ts +3 -1
- package/lib/types/store/ObjectsApi.d.ts.map +1 -1
- package/lib/types/store/QueryApi.d.ts +99 -0
- package/lib/types/store/QueryApi.d.ts.map +1 -0
- package/lib/types/store/RenderingApi.d.ts +34 -0
- package/lib/types/store/RenderingApi.d.ts.map +1 -0
- package/lib/types/store/TypeCatalogApi.d.ts +39 -0
- package/lib/types/store/TypeCatalogApi.d.ts.map +1 -0
- package/lib/types/store/TypesApi.d.ts +2 -0
- package/lib/types/store/TypesApi.d.ts.map +1 -1
- package/lib/types/store/client.d.ts +8 -0
- package/lib/types/store/client.d.ts.map +1 -1
- package/lib/types/store/index.d.ts +6 -0
- package/lib/types/store/index.d.ts.map +1 -1
- package/lib/types/store/version.d.ts +1 -1
- package/lib/vertesia-client.js +1 -1
- package/lib/vertesia-client.js.map +1 -1
- package/package.json +4 -4
- package/src/AuditTrailApi.ts +25 -0
- package/src/ProjectsApi.ts +21 -1
- package/src/RunsApi.ts +0 -7
- package/src/UsersApi.ts +9 -5
- package/src/client.ts +2 -0
- package/src/store/HiveMemoryApi.ts +231 -0
- package/src/store/IndexingApi.ts +250 -0
- package/src/store/ObjectsApi.ts +12 -8
- package/src/store/QueryApi.ts +110 -0
- package/src/store/RenderingApi.ts +105 -0
- package/src/store/TypeCatalogApi.ts +53 -0
- package/src/store/TypesApi.ts +3 -0
- package/src/store/client.ts +8 -0
- package/src/store/index.ts +6 -0
- package/src/store/version.ts +1 -1
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { ApiTopic } from "@vertesia/api-fetch-client";
|
|
2
|
+
/**
|
|
3
|
+
* Client API for managing hive memories.
|
|
4
|
+
*
|
|
5
|
+
* Hive memory is a system for storing and retrieving agent learnings,
|
|
6
|
+
* enabling agents to learn from past runs and share knowledge.
|
|
7
|
+
*/
|
|
8
|
+
export class HiveMemoryApi extends ApiTopic {
|
|
9
|
+
constructor(parent) {
|
|
10
|
+
super(parent, "/api/v1/hive-memory");
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* List memories in the project.
|
|
14
|
+
*
|
|
15
|
+
* @param options - Optional filters and pagination
|
|
16
|
+
*/
|
|
17
|
+
list(options) {
|
|
18
|
+
const params = new URLSearchParams();
|
|
19
|
+
if (options?.category)
|
|
20
|
+
params.set('category', options.category);
|
|
21
|
+
if (options?.scope)
|
|
22
|
+
params.set('scope', options.scope);
|
|
23
|
+
if (options?.limit)
|
|
24
|
+
params.set('limit', String(options.limit));
|
|
25
|
+
if (options?.offset)
|
|
26
|
+
params.set('offset', String(options.offset));
|
|
27
|
+
const queryString = params.toString();
|
|
28
|
+
return this.get(queryString ? `/?${queryString}` : '/');
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Retrieve a memory by ID.
|
|
32
|
+
*/
|
|
33
|
+
retrieve(id) {
|
|
34
|
+
return this.get(`/${id}`);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create a new hive memory.
|
|
38
|
+
*
|
|
39
|
+
* @param payload - Memory content including category, summary, and learnings
|
|
40
|
+
*/
|
|
41
|
+
create(payload) {
|
|
42
|
+
return this.post("/", { payload });
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Update an existing memory with new learnings.
|
|
46
|
+
*
|
|
47
|
+
* This merges new learnings with existing ones rather than replacing them.
|
|
48
|
+
*
|
|
49
|
+
* @param id - Memory ID
|
|
50
|
+
* @param payload - Fields to update/merge
|
|
51
|
+
*/
|
|
52
|
+
update(id, payload) {
|
|
53
|
+
return this.put(`/${id}`, { payload });
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Delete a memory.
|
|
57
|
+
*
|
|
58
|
+
* @param id - Memory ID
|
|
59
|
+
*/
|
|
60
|
+
delete(id) {
|
|
61
|
+
return this.del(`/${id}`);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Search memories using semantic and keyword search.
|
|
65
|
+
*
|
|
66
|
+
* @param params - Search parameters including query, filters, and pagination
|
|
67
|
+
*/
|
|
68
|
+
search(params) {
|
|
69
|
+
return this.post("/search", { payload: params });
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Recall memories for an agent.
|
|
73
|
+
*
|
|
74
|
+
* This is the primary method for agents to retrieve relevant learnings.
|
|
75
|
+
* It searches for memories matching the task description and returns
|
|
76
|
+
* them formatted for agent consumption.
|
|
77
|
+
*
|
|
78
|
+
* @param taskDescription - Description of the current task
|
|
79
|
+
* @param options - Optional filters
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* const result = await client.hiveMemory.recall(
|
|
84
|
+
* "Extract financial data from PDF documents",
|
|
85
|
+
* {
|
|
86
|
+
* tools: ["extract_text", "analyze_document"],
|
|
87
|
+
* maxResults: 5
|
|
88
|
+
* }
|
|
89
|
+
* );
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
recall(taskDescription, options) {
|
|
93
|
+
return this.post("/recall", {
|
|
94
|
+
payload: {
|
|
95
|
+
task_description: taskDescription,
|
|
96
|
+
tools: options?.tools,
|
|
97
|
+
category: options?.category,
|
|
98
|
+
max_results: options?.maxResults,
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get a memory formatted for agent consumption.
|
|
104
|
+
*
|
|
105
|
+
* @param id - Memory ID
|
|
106
|
+
*/
|
|
107
|
+
getFormatted(id) {
|
|
108
|
+
return this.get(`/${id}/formatted`);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Record that a memory was used.
|
|
112
|
+
*
|
|
113
|
+
* This increments the usage count and helps track memory effectiveness.
|
|
114
|
+
*
|
|
115
|
+
* @param id - Memory ID
|
|
116
|
+
*/
|
|
117
|
+
recordUsage(id) {
|
|
118
|
+
return this.post(`/${id}/usage`, {});
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Get memories by category.
|
|
122
|
+
*
|
|
123
|
+
* @param category - Task category (e.g., "document-analysis", "data-extraction")
|
|
124
|
+
* @param options - Pagination options
|
|
125
|
+
*/
|
|
126
|
+
getByCategory(category, options) {
|
|
127
|
+
const params = new URLSearchParams();
|
|
128
|
+
if (options?.limit)
|
|
129
|
+
params.set('limit', String(options.limit));
|
|
130
|
+
if (options?.offset)
|
|
131
|
+
params.set('offset', String(options.offset));
|
|
132
|
+
const queryString = params.toString();
|
|
133
|
+
return this.get(`/category/${category}${queryString ? `?${queryString}` : ''}`);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Get memory statistics for the project.
|
|
137
|
+
*/
|
|
138
|
+
getStats() {
|
|
139
|
+
return this.get("/stats");
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Apply confidence decay to unused memories.
|
|
143
|
+
*
|
|
144
|
+
* Admin operation that reduces confidence scores for memories
|
|
145
|
+
* that haven't been used recently.
|
|
146
|
+
*
|
|
147
|
+
* @param options - Decay parameters
|
|
148
|
+
*/
|
|
149
|
+
applyDecay(options) {
|
|
150
|
+
return this.post("/admin/decay", {
|
|
151
|
+
payload: {
|
|
152
|
+
days_threshold: options?.daysThreshold,
|
|
153
|
+
decay_rate: options?.decayRate,
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Archive memories with low confidence scores.
|
|
159
|
+
*
|
|
160
|
+
* Admin operation that removes memories below a confidence threshold.
|
|
161
|
+
*
|
|
162
|
+
* @param threshold - Confidence threshold (0-1), default 0.2
|
|
163
|
+
*/
|
|
164
|
+
archiveLowConfidence(threshold) {
|
|
165
|
+
return this.post("/admin/archive", {
|
|
166
|
+
payload: { threshold }
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=HiveMemoryApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HiveMemoryApi.js","sourceRoot":"","sources":["../../../src/store/HiveMemoryApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { ApiTopic } from "@vertesia/api-fetch-client";
|
|
2
|
+
/**
|
|
3
|
+
* API for indexing operations on content objects.
|
|
4
|
+
* Provides status, reindex, and configuration management.
|
|
5
|
+
*
|
|
6
|
+
* Internal endpoints (prefixed with /internal/) are used by Temporal workflow activities
|
|
7
|
+
* and require content_admin permission.
|
|
8
|
+
*/
|
|
9
|
+
export class IndexingApi extends ApiTopic {
|
|
10
|
+
constructor(parent, basePath = "/api/v1/indexing") {
|
|
11
|
+
super(parent, basePath);
|
|
12
|
+
}
|
|
13
|
+
// ========================================================================
|
|
14
|
+
// User-facing endpoints
|
|
15
|
+
// ========================================================================
|
|
16
|
+
/**
|
|
17
|
+
* Get Elasticsearch status for the current project
|
|
18
|
+
*/
|
|
19
|
+
async status() {
|
|
20
|
+
return this.get("/status");
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Trigger a full reindex of all documents
|
|
24
|
+
* @param recreateIndex If true, drops and recreates the index before reindexing
|
|
25
|
+
*/
|
|
26
|
+
async reindex(recreateIndex) {
|
|
27
|
+
return this.post("/reindex", { payload: { recreateIndex } });
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Enable indexing for this project
|
|
31
|
+
*/
|
|
32
|
+
async enableIndexing() {
|
|
33
|
+
return this.post("/enable-indexing");
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Disable indexing for this project
|
|
37
|
+
*/
|
|
38
|
+
async disableIndexing() {
|
|
39
|
+
return this.post("/disable-indexing");
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Enable index-based queries for this project
|
|
43
|
+
* @deprecated Queries are now automatically enabled when indexing is enabled
|
|
44
|
+
*/
|
|
45
|
+
async enableQueries() {
|
|
46
|
+
return this.post("/enable-queries");
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Disable index-based queries for this project
|
|
50
|
+
* @deprecated Queries are now automatically enabled when indexing is enabled
|
|
51
|
+
*/
|
|
52
|
+
async disableQueries() {
|
|
53
|
+
return this.post("/disable-queries");
|
|
54
|
+
}
|
|
55
|
+
// ========================================================================
|
|
56
|
+
// Internal endpoints - called by Temporal workflow activities
|
|
57
|
+
// ========================================================================
|
|
58
|
+
/**
|
|
59
|
+
* Index a single document to Elasticsearch
|
|
60
|
+
*/
|
|
61
|
+
index(objectId, document) {
|
|
62
|
+
return this.post("/internal/index", {
|
|
63
|
+
payload: { objectId, document },
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Delete a document from Elasticsearch
|
|
68
|
+
*/
|
|
69
|
+
delete(objectId) {
|
|
70
|
+
return this.post("/internal/delete", {
|
|
71
|
+
payload: { objectId },
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Bulk index multiple documents to Elasticsearch
|
|
76
|
+
*
|
|
77
|
+
* @param documents Array of documents to index
|
|
78
|
+
* @param targetIndex Optional explicit index name for zero-downtime reindexing
|
|
79
|
+
*/
|
|
80
|
+
bulkIndex(documents, targetIndex) {
|
|
81
|
+
return this.post("/internal/bulk-index", {
|
|
82
|
+
payload: { documents, targetIndex },
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Ensure Elasticsearch index exists for the project
|
|
87
|
+
*
|
|
88
|
+
* @param recreate If true, drops and recreates the index
|
|
89
|
+
*/
|
|
90
|
+
ensureIndex(recreate) {
|
|
91
|
+
return this.post("/internal/ensure-index", {
|
|
92
|
+
payload: { recreate },
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Create a new versioned index for reindexing (without alias)
|
|
97
|
+
* The alias will be swapped after reindexing completes via swapAlias
|
|
98
|
+
*/
|
|
99
|
+
createReindexTarget() {
|
|
100
|
+
return this.post("/internal/create-reindex-target", {
|
|
101
|
+
payload: {},
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Atomically swap the alias from old index to new index
|
|
106
|
+
*
|
|
107
|
+
* @param newIndexName The new index to point the alias to
|
|
108
|
+
* @param deleteOld If true, deletes the old index after swapping
|
|
109
|
+
*/
|
|
110
|
+
swapAlias(newIndexName, deleteOld) {
|
|
111
|
+
return this.post("/internal/swap-alias", {
|
|
112
|
+
payload: { newIndexName, deleteOld },
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get Elasticsearch index statistics for the project
|
|
117
|
+
*/
|
|
118
|
+
getStats() {
|
|
119
|
+
return this.post("/internal/stats", {
|
|
120
|
+
payload: {},
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get the _id range for reindexing (first, last, count)
|
|
125
|
+
* Used by workflow to set up cursor-based pagination
|
|
126
|
+
*/
|
|
127
|
+
getReindexRange() {
|
|
128
|
+
return this.post("/internal/reindex-range", {
|
|
129
|
+
payload: {},
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Fetch a batch of documents from MongoDB (without indexing)
|
|
134
|
+
* Used by pipeline approach: fetch next batch while indexing current
|
|
135
|
+
*
|
|
136
|
+
* @param cursor Cursor from previous batch (null for first batch)
|
|
137
|
+
* @param limit Maximum documents to fetch (default: 500)
|
|
138
|
+
*/
|
|
139
|
+
fetchBatch(cursor, limit) {
|
|
140
|
+
return this.post("/internal/fetch-batch", {
|
|
141
|
+
payload: { cursor, limit },
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Fetch and index a batch of documents (server-side)
|
|
146
|
+
* Uses cursor-based pagination for reliability
|
|
147
|
+
*
|
|
148
|
+
* @param cursor Cursor from previous batch (null for first batch)
|
|
149
|
+
* @param limit Maximum documents to process (default: 500)
|
|
150
|
+
* @param targetIndex Optional explicit index name for zero-downtime reindexing
|
|
151
|
+
* @param since Only index docs with updated_at >= this ISO timestamp (for catch-up after reindex)
|
|
152
|
+
*/
|
|
153
|
+
indexBatch(cursor, limit, targetIndex, since) {
|
|
154
|
+
return this.post("/internal/index-batch", {
|
|
155
|
+
payload: { cursor, limit, targetIndex, since },
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Trigger a reindex operation via Temporal workflow (internal version with more options)
|
|
160
|
+
*
|
|
161
|
+
* @param fullReindex If true, reindexes all documents in the project
|
|
162
|
+
* @param objectIds Specific object IDs to reindex (if not fullReindex)
|
|
163
|
+
* @param recreateIndex If true, recreates the index before reindexing
|
|
164
|
+
*/
|
|
165
|
+
triggerReindex(options) {
|
|
166
|
+
return this.post("/internal/trigger-reindex", {
|
|
167
|
+
payload: options ?? {},
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Fetch documents by their IDs from MongoDB (for retry workflow)
|
|
172
|
+
* Returns documents ready for bulk indexing
|
|
173
|
+
*
|
|
174
|
+
* @param objectIds Array of object IDs to fetch
|
|
175
|
+
*/
|
|
176
|
+
fetchDocumentsByIds(objectIds) {
|
|
177
|
+
return this.post("/internal/fetch-by-ids", {
|
|
178
|
+
payload: { objectIds },
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Bulk delete documents from Elasticsearch
|
|
183
|
+
*
|
|
184
|
+
* @param objectIds Array of object IDs to delete
|
|
185
|
+
*/
|
|
186
|
+
bulkDelete(objectIds) {
|
|
187
|
+
return this.post("/internal/bulk-delete", {
|
|
188
|
+
payload: { objectIds },
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Get detailed index configuration for the project
|
|
193
|
+
*
|
|
194
|
+
* Returns comprehensive information about the Elasticsearch index including
|
|
195
|
+
* status, embedding dimensions, field mappings, and project configuration.
|
|
196
|
+
*/
|
|
197
|
+
getConfiguration() {
|
|
198
|
+
return this.post("/internal/configuration", {
|
|
199
|
+
payload: {},
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=IndexingApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexingApi.js","sourceRoot":"","sources":["../../../src/store/IndexingApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ApiTopic } from "@vertesia/api-fetch-client";
|
|
2
|
-
import { canGenerateRendition, ContentObjectApiHeaders, getSupportedRenditionFormats, supportsVisualRendition
|
|
2
|
+
import { canGenerateRendition, ContentObjectApiHeaders, getSupportedRenditionFormats, supportsVisualRendition } from "@vertesia/common";
|
|
3
3
|
// Re-export rendition utilities for consumers
|
|
4
4
|
export { canGenerateRendition, getSupportedRenditionFormats, supportsVisualRendition };
|
|
5
5
|
import { StreamSource } from "../StreamSource.js";
|
|
@@ -91,6 +91,7 @@ export class ObjectsApi extends ApiTopic {
|
|
|
91
91
|
name: source.name,
|
|
92
92
|
mime_type: source.type,
|
|
93
93
|
});
|
|
94
|
+
const sourceMimeType = source.type || mime_type;
|
|
94
95
|
// upload the file content to the signed URL
|
|
95
96
|
/*const res = await this.fetch(url, {
|
|
96
97
|
method: 'PUT',
|
|
@@ -113,9 +114,7 @@ export class ObjectsApi extends ApiTopic {
|
|
|
113
114
|
body: isStream ? source.stream : source,
|
|
114
115
|
//@ts-ignore: duplex is not in the types. See https://github.com/node-fetch/node-fetch/issues/1769
|
|
115
116
|
duplex: isStream ? "half" : undefined,
|
|
116
|
-
headers: {
|
|
117
|
-
"Content-Type": mime_type || "application/octet-stream",
|
|
118
|
-
},
|
|
117
|
+
headers: sourceMimeType ? { "Content-Type": sourceMimeType } : undefined,
|
|
119
118
|
})
|
|
120
119
|
.then((res) => {
|
|
121
120
|
if (res.ok) {
|
|
@@ -138,7 +137,7 @@ export class ObjectsApi extends ApiTopic {
|
|
|
138
137
|
return {
|
|
139
138
|
source: id,
|
|
140
139
|
name: source.name,
|
|
141
|
-
type:
|
|
140
|
+
type: sourceMimeType,
|
|
142
141
|
etag,
|
|
143
142
|
};
|
|
144
143
|
}
|
|
@@ -216,6 +215,9 @@ export class ObjectsApi extends ApiTopic {
|
|
|
216
215
|
updatePayload.content = await this.upload(payload.content);
|
|
217
216
|
}
|
|
218
217
|
const headers = {};
|
|
218
|
+
if (options?.ifMatch) {
|
|
219
|
+
headers['if-match'] = options.ifMatch;
|
|
220
|
+
}
|
|
219
221
|
if (options?.processing_priority) {
|
|
220
222
|
headers[ContentObjectApiHeaders.PROCESSING_PRIORITY] = options.processing_priority;
|
|
221
223
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectsApi.js","sourceRoot":"","sources":["../../../src/store/ObjectsApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,4BAA4B,CAAC;AAClE,OAAO,EACH,oBAAoB,
|
|
1
|
+
{"version":3,"file":"ObjectsApi.js","sourceRoot":"","sources":["../../../src/store/ObjectsApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { ApiTopic } from "@vertesia/api-fetch-client";
|
|
2
|
+
/**
|
|
3
|
+
* API for querying documents using SQL, ES|QL, or raw Elasticsearch DSL.
|
|
4
|
+
* All queries are automatically filtered based on the authenticated user's permissions.
|
|
5
|
+
*/
|
|
6
|
+
export class QueryApi extends ApiTopic {
|
|
7
|
+
constructor(parent, basePath = "/api/v1/query") {
|
|
8
|
+
super(parent, basePath);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Execute a query against the project's document index
|
|
12
|
+
*
|
|
13
|
+
* @param payload - Query payload with sql, esql, or dsl
|
|
14
|
+
* @returns Query result with columns/rows or hits/aggregations
|
|
15
|
+
*
|
|
16
|
+
* @example SQL query
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const result = await client.query.execute({
|
|
19
|
+
* sql: "SELECT name, status FROM content WHERE status = 'published' LIMIT 10"
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @example ES|QL query
|
|
24
|
+
* ```typescript
|
|
25
|
+
* const result = await client.query.execute({
|
|
26
|
+
* esql: "FROM content | WHERE status == 'published' | STATS count = COUNT(*) BY type.name"
|
|
27
|
+
* });
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @example DSL query with aggregations
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const result = await client.query.execute({
|
|
33
|
+
* dsl: {
|
|
34
|
+
* query: { match: { text: "machine learning" } },
|
|
35
|
+
* aggs: { by_type: { terms: { field: "type.name" } } },
|
|
36
|
+
* size: 10
|
|
37
|
+
* }
|
|
38
|
+
* });
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
async execute(payload) {
|
|
42
|
+
return this.post("/", { payload });
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Execute a SQL query
|
|
46
|
+
*/
|
|
47
|
+
async sql(query) {
|
|
48
|
+
return this.execute({ sql: query });
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Execute an ES|QL query
|
|
52
|
+
*/
|
|
53
|
+
async esql(query) {
|
|
54
|
+
return this.execute({ esql: query });
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Execute a DSL query
|
|
58
|
+
*/
|
|
59
|
+
async dsl(query) {
|
|
60
|
+
return this.execute({ dsl: query });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=QueryApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryApi.js","sourceRoot":"","sources":["../../../src/store/QueryApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,4BAA4B,CAAC;AA4ClE;;;GAGG;AACH,MAAM,OAAO,QAAS,SAAQ,QAAQ;IAElC,YAAY,MAAkB,EAAE,WAAmB,eAAe;QAC9D,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,KAAK,CAAC,OAAO,CAAC,OAAqB;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,KAAa;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,KAAa;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,KAA0B;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACxC,CAAC;CACJ"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { ApiTopic } from "@vertesia/api-fetch-client";
|
|
2
|
+
import { isWorkflowTerminalStatus, WorkflowExecutionStatus, } from "@vertesia/common";
|
|
3
|
+
/**
|
|
4
|
+
* API for rendering markdown documents to PDF or DOCX.
|
|
5
|
+
* Rendering is performed on workflow workers (not on the API server).
|
|
6
|
+
*/
|
|
7
|
+
export class RenderingApi extends ApiTopic {
|
|
8
|
+
constructor(parent) {
|
|
9
|
+
super(parent, "/api/v1/rendering");
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Render markdown content to PDF or DOCX.
|
|
13
|
+
*
|
|
14
|
+
* @param payload - Rendering options including format and either object_id or inline content
|
|
15
|
+
* @returns Rendering result with download URL
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // Render an existing markdown document
|
|
19
|
+
* const result = await client.rendering.render({
|
|
20
|
+
* format: MarkdownRenditionFormat.pdf,
|
|
21
|
+
* object_id: "doc-123"
|
|
22
|
+
* });
|
|
23
|
+
* // Download from result.download_url
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* // Render inline markdown content
|
|
27
|
+
* const result = await client.rendering.render({
|
|
28
|
+
* format: MarkdownRenditionFormat.docx,
|
|
29
|
+
* content: "# My Report\n\nContent here...",
|
|
30
|
+
* title: "My Report"
|
|
31
|
+
* });
|
|
32
|
+
*/
|
|
33
|
+
start(payload) {
|
|
34
|
+
return this.post("/jobs", { payload });
|
|
35
|
+
}
|
|
36
|
+
getStatus(workflowId, workflowRunId) {
|
|
37
|
+
return this.get("/jobs/status", {
|
|
38
|
+
query: {
|
|
39
|
+
workflow_id: workflowId,
|
|
40
|
+
workflow_run_id: workflowRunId,
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
async render(payload, options = {}) {
|
|
45
|
+
const pollIntervalMs = options.pollIntervalMs ?? 1500;
|
|
46
|
+
const timeoutMs = options.timeoutMs ?? 10 * 60 * 1000;
|
|
47
|
+
const started = await this.start(payload);
|
|
48
|
+
if (!started.workflow_id || !started.workflow_run_id) {
|
|
49
|
+
throw new Error("Failed to start rendering workflow");
|
|
50
|
+
}
|
|
51
|
+
const startTime = Date.now();
|
|
52
|
+
// Poll until workflow reaches terminal state.
|
|
53
|
+
while (true) {
|
|
54
|
+
const status = await this.getStatus(started.workflow_id, started.workflow_run_id);
|
|
55
|
+
if (status.status === WorkflowExecutionStatus.COMPLETED) {
|
|
56
|
+
if (!status.download_url && !status.file_uri) {
|
|
57
|
+
throw new Error(status.error || "Rendering completed but no output file was produced");
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
status: "success",
|
|
61
|
+
format: payload.format,
|
|
62
|
+
download_url: status.download_url,
|
|
63
|
+
file_uri: status.file_uri,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
if (isWorkflowTerminalStatus(status.status)) {
|
|
67
|
+
const statusLabel = WorkflowExecutionStatus[status.status] || String(status.status);
|
|
68
|
+
throw new Error(status.error || `Rendering failed with status: ${statusLabel}`);
|
|
69
|
+
}
|
|
70
|
+
if (Date.now() - startTime >= timeoutMs) {
|
|
71
|
+
throw new Error(`Rendering timed out after ${timeoutMs}ms`);
|
|
72
|
+
}
|
|
73
|
+
await sleep(pollIntervalMs);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function sleep(ms) {
|
|
78
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=RenderingApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderingApi.js","sourceRoot":"","sources":["../../../src/store/RenderingApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,4BAA4B,CAAC;AAClE,OAAO,EACH,wBAAwB,EAMxB,uBAAuB,GAC1B,MAAM,kBAAkB,CAAC;AAE1B;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACtC,YAAY,MAAkB;QAC1B,KAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,OAA8B;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,SAAS,CACL,UAAkB,EAClB,aAAqB;QAErB,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE;YAC5B,KAAK,EAAE;gBACH,WAAW,EAAE,UAAU;gBACvB,eAAe,EAAE,aAAa;aACjC;SACJ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,MAAM,CACR,OAA8B,EAC9B,UAAqC,EAAE;QAEvC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC;QACtD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAEtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,8CAA8C;QAC9C,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;YAElF,IAAI,MAAM,CAAC,MAAM,KAAK,uBAAuB,CAAC,SAAS,EAAE,CAAC;gBACtD,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC3C,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,qDAAqD,CAAC,CAAC;gBAC3F,CAAC;gBACD,OAAO;oBACH,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC5B,CAAC;YACN,CAAC;YAED,IAAI,wBAAwB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1C,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACpF,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,iCAAiC,WAAW,EAAE,CAAC,CAAC;YACpF,CAAC;YAED,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,6BAA6B,SAAS,IAAI,CAAC,CAAC;YAChE,CAAC;YAED,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;IACL,CAAC;CACJ;AAED,SAAS,KAAK,CAAC,EAAU;IACrB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ApiTopic } from '@vertesia/api-fetch-client';
|
|
2
|
+
export class TypeCatalogApi extends ApiTopic {
|
|
3
|
+
constructor(parent) {
|
|
4
|
+
super(parent, '/api/v1/types/catalog');
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* List all content types (system + app + stored)
|
|
8
|
+
*/
|
|
9
|
+
list(query = {}) {
|
|
10
|
+
return this.get('/', { query });
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* List system types only
|
|
14
|
+
*/
|
|
15
|
+
listSysTypes(tag) {
|
|
16
|
+
return this.get('/sys', {
|
|
17
|
+
query: { tag }
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* List all app types from all installed apps
|
|
22
|
+
*/
|
|
23
|
+
listAppTypes(tag) {
|
|
24
|
+
return this.get('/apps', {
|
|
25
|
+
query: { tag }
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* List stored types only
|
|
30
|
+
*/
|
|
31
|
+
listStoredTypes(query = {}) {
|
|
32
|
+
return this.get('/stored', {
|
|
33
|
+
query
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Resolve a type to its full definition.
|
|
38
|
+
* Accepts a string (type ID or code) or a ContentObjectTypeRef (extracts code or id automatically).
|
|
39
|
+
* @param typeOrRef Type identifier string, or a ContentObjectTypeRef from a content object
|
|
40
|
+
*/
|
|
41
|
+
resolve(typeOrRef) {
|
|
42
|
+
const typeId = typeof typeOrRef === 'string' ? typeOrRef : (typeOrRef.code || typeOrRef.id);
|
|
43
|
+
return this.get(`/resolve/${typeId}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=TypeCatalogApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeCatalogApi.js","sourceRoot":"","sources":["../../../src/store/TypeCatalogApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,4BAA4B,CAAC;AAIlE,MAAM,OAAO,cAAe,SAAQ,QAAQ;IACxC,YAAY,MAAkB;QAC1B,KAAK,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,QAA+F,EAAE;QAClG,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,GAAY;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YACpB,KAAK,EAAE,EAAE,GAAG,EAAE;SACjB,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,GAAY;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YACrB,KAAK,EAAE,EAAE,GAAG,EAAE;SACjB,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,QAA+F,EAAE;QAC7G,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;YACvB,KAAK;SACR,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,SAAwC;QAC5C,MAAM,MAAM,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,EAAG,CAAC,CAAC;QAC7F,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;CACJ"}
|