@arke-institute/sdk 3.6.13 → 3.6.14
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/generated/index.d.cts +290 -13
- package/dist/generated/index.d.ts +290 -13
- package/openapi/spec.json +445 -15
- package/openapi/version.json +1 -1
- package/package.json +1 -1
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Source: Arke v1 API
|
|
8
8
|
* Version: 1.0.0
|
|
9
|
-
* Generated: 2026-02-
|
|
9
|
+
* Generated: 2026-02-20T03:10:32.965Z
|
|
10
10
|
*/
|
|
11
11
|
type paths = {
|
|
12
12
|
"/ops-reference": {
|
|
@@ -1037,6 +1037,88 @@ type paths = {
|
|
|
1037
1037
|
patch?: never;
|
|
1038
1038
|
trace?: never;
|
|
1039
1039
|
};
|
|
1040
|
+
"/collections/catalog": {
|
|
1041
|
+
parameters: {
|
|
1042
|
+
query?: never;
|
|
1043
|
+
header?: never;
|
|
1044
|
+
path?: never;
|
|
1045
|
+
cookie?: never;
|
|
1046
|
+
};
|
|
1047
|
+
/**
|
|
1048
|
+
* List all collections for catalog/sitemap
|
|
1049
|
+
* @description Returns a paginated list of all collection IDs and their last update times.
|
|
1050
|
+
*
|
|
1051
|
+
* This endpoint is designed for sitemap generation and discovery services. It returns minimal data (just IDs and timestamps) for efficiency.
|
|
1052
|
+
*
|
|
1053
|
+
* **Lazy Population:** The catalog is populated as collections are created or updated. Newly created collections may take a moment to appear.
|
|
1054
|
+
*
|
|
1055
|
+
* **No Authentication Required:** This endpoint is public to allow crawlers and discovery services to access it.
|
|
1056
|
+
*
|
|
1057
|
+
* ---
|
|
1058
|
+
* **Permission:** `catalog:list`
|
|
1059
|
+
* **Auth:** none
|
|
1060
|
+
*/
|
|
1061
|
+
get: {
|
|
1062
|
+
parameters: {
|
|
1063
|
+
query?: {
|
|
1064
|
+
limit?: number;
|
|
1065
|
+
offset?: number | null;
|
|
1066
|
+
};
|
|
1067
|
+
header?: never;
|
|
1068
|
+
path?: never;
|
|
1069
|
+
cookie?: never;
|
|
1070
|
+
};
|
|
1071
|
+
requestBody?: never;
|
|
1072
|
+
responses: {
|
|
1073
|
+
/** @description Paginated list of collections */
|
|
1074
|
+
200: {
|
|
1075
|
+
headers: {
|
|
1076
|
+
[name: string]: unknown;
|
|
1077
|
+
};
|
|
1078
|
+
content: {
|
|
1079
|
+
"application/json": {
|
|
1080
|
+
data: {
|
|
1081
|
+
/**
|
|
1082
|
+
* @description Collection ID (PI)
|
|
1083
|
+
* @example 01JEXAMPLE...
|
|
1084
|
+
*/
|
|
1085
|
+
id: string;
|
|
1086
|
+
/**
|
|
1087
|
+
* @description ISO timestamp of last update
|
|
1088
|
+
* @example 2026-02-17T12:00:00Z
|
|
1089
|
+
*/
|
|
1090
|
+
updated_at: string;
|
|
1091
|
+
}[];
|
|
1092
|
+
pagination: {
|
|
1093
|
+
/** @description Total number of collections in catalog */
|
|
1094
|
+
total: number;
|
|
1095
|
+
/** @description Requested limit */
|
|
1096
|
+
limit: number;
|
|
1097
|
+
/** @description Current offset */
|
|
1098
|
+
offset: number;
|
|
1099
|
+
/** @description Whether more results are available */
|
|
1100
|
+
has_more: boolean;
|
|
1101
|
+
};
|
|
1102
|
+
};
|
|
1103
|
+
};
|
|
1104
|
+
};
|
|
1105
|
+
/** @description Collections catalog service unavailable */
|
|
1106
|
+
503: {
|
|
1107
|
+
headers: {
|
|
1108
|
+
[name: string]: unknown;
|
|
1109
|
+
};
|
|
1110
|
+
content?: never;
|
|
1111
|
+
};
|
|
1112
|
+
};
|
|
1113
|
+
};
|
|
1114
|
+
put?: never;
|
|
1115
|
+
post?: never;
|
|
1116
|
+
delete?: never;
|
|
1117
|
+
options?: never;
|
|
1118
|
+
head?: never;
|
|
1119
|
+
patch?: never;
|
|
1120
|
+
trace?: never;
|
|
1121
|
+
};
|
|
1040
1122
|
"/collections/{id}": {
|
|
1041
1123
|
parameters: {
|
|
1042
1124
|
query?: never;
|
|
@@ -2194,26 +2276,35 @@ type paths = {
|
|
|
2194
2276
|
cookie?: never;
|
|
2195
2277
|
};
|
|
2196
2278
|
/**
|
|
2197
|
-
* Search entities by keyword
|
|
2198
|
-
* @description
|
|
2279
|
+
* Search entities by keyword or similarity
|
|
2280
|
+
* @description Search within a collection's entities using keyword matching or semantic similarity.
|
|
2281
|
+
*
|
|
2282
|
+
* **Keyword Search (q parameter):**
|
|
2283
|
+
* - Fast (~5ms) using per-collection SQLite index
|
|
2284
|
+
* - Case-insensitive substring match on entity labels
|
|
2285
|
+
*
|
|
2286
|
+
* **Semantic Similarity Search (similar_to parameter):**
|
|
2287
|
+
* - Finds entities semantically similar to the given entity ID
|
|
2288
|
+
* - Uses Pinecone vector similarity
|
|
2289
|
+
* - Returns results with similarity scores
|
|
2199
2290
|
*
|
|
2200
|
-
*
|
|
2291
|
+
* One of `q` or `similar_to` must be provided.
|
|
2201
2292
|
*
|
|
2202
2293
|
* **Query Parameters:**
|
|
2203
|
-
* - `q`: Search query (
|
|
2294
|
+
* - `q`: Search query (case-insensitive substring match)
|
|
2295
|
+
* - `similar_to`: Entity ID to find similar items for
|
|
2204
2296
|
* - `type`: Filter by entity type
|
|
2205
2297
|
* - `limit`: Maximum results (default: 100, max: 1000)
|
|
2206
2298
|
*
|
|
2207
|
-
* **Note:** This is a simple substring match, not semantic search. Use /query for AI-powered semantic search.
|
|
2208
|
-
*
|
|
2209
2299
|
* ---
|
|
2210
2300
|
* **Permission:** `collection:view`
|
|
2211
2301
|
* **Auth:** optional
|
|
2212
2302
|
*/
|
|
2213
2303
|
get: {
|
|
2214
2304
|
parameters: {
|
|
2215
|
-
query
|
|
2216
|
-
q
|
|
2305
|
+
query?: {
|
|
2306
|
+
q?: string;
|
|
2307
|
+
similar_to?: string;
|
|
2217
2308
|
type?: string;
|
|
2218
2309
|
limit?: number;
|
|
2219
2310
|
};
|
|
@@ -3930,7 +4021,7 @@ type paths = {
|
|
|
3930
4021
|
* - Creates a new entity version on each upload
|
|
3931
4022
|
*
|
|
3932
4023
|
* **Storage:**
|
|
3933
|
-
* Content is stored at `{entity_id}/{
|
|
4024
|
+
* Content is stored at `{entity_id}/{cid}` in R2, enabling multiple versions per entity without overwriting.
|
|
3934
4025
|
*
|
|
3935
4026
|
* ---
|
|
3936
4027
|
* **Permission:** `entity:update`
|
|
@@ -4626,6 +4717,76 @@ type paths = {
|
|
|
4626
4717
|
patch?: never;
|
|
4627
4718
|
trace?: never;
|
|
4628
4719
|
};
|
|
4720
|
+
"/updates/queue/{id}": {
|
|
4721
|
+
parameters: {
|
|
4722
|
+
query?: never;
|
|
4723
|
+
header?: never;
|
|
4724
|
+
path?: never;
|
|
4725
|
+
cookie?: never;
|
|
4726
|
+
};
|
|
4727
|
+
/**
|
|
4728
|
+
* Get update queue status for entity
|
|
4729
|
+
* @description Returns the status of the additive update queue for a specific entity.
|
|
4730
|
+
*
|
|
4731
|
+
* **Use Cases:**
|
|
4732
|
+
* - Diagnose why additive updates may not have been applied
|
|
4733
|
+
* - Check for pending, processing, or failed updates
|
|
4734
|
+
* - Monitor queue processing progress
|
|
4735
|
+
*
|
|
4736
|
+
* **Response includes:**
|
|
4737
|
+
* - Counts by status (pending, processing, failed)
|
|
4738
|
+
* - Detailed items with actor, relationships count, error messages, attempts
|
|
4739
|
+
*
|
|
4740
|
+
*
|
|
4741
|
+
* ---
|
|
4742
|
+
* **Permission:** `entity:view`
|
|
4743
|
+
* **Auth:** required
|
|
4744
|
+
*/
|
|
4745
|
+
get: {
|
|
4746
|
+
parameters: {
|
|
4747
|
+
query?: never;
|
|
4748
|
+
header?: never;
|
|
4749
|
+
path: {
|
|
4750
|
+
/** @description Entity ID (ULID) */
|
|
4751
|
+
id: string;
|
|
4752
|
+
};
|
|
4753
|
+
cookie?: never;
|
|
4754
|
+
};
|
|
4755
|
+
requestBody?: never;
|
|
4756
|
+
responses: {
|
|
4757
|
+
/** @description Queue status retrieved */
|
|
4758
|
+
200: {
|
|
4759
|
+
headers: {
|
|
4760
|
+
[name: string]: unknown;
|
|
4761
|
+
};
|
|
4762
|
+
content: {
|
|
4763
|
+
"application/json": components["schemas"]["QueueStatusResponse"];
|
|
4764
|
+
};
|
|
4765
|
+
};
|
|
4766
|
+
/** @description Unauthorized - Missing or invalid authentication */
|
|
4767
|
+
401: {
|
|
4768
|
+
headers: {
|
|
4769
|
+
[name: string]: unknown;
|
|
4770
|
+
};
|
|
4771
|
+
content: {
|
|
4772
|
+
/**
|
|
4773
|
+
* @example {
|
|
4774
|
+
* "error": "Unauthorized: Missing or invalid authentication token"
|
|
4775
|
+
* }
|
|
4776
|
+
*/
|
|
4777
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
4778
|
+
};
|
|
4779
|
+
};
|
|
4780
|
+
};
|
|
4781
|
+
};
|
|
4782
|
+
put?: never;
|
|
4783
|
+
post?: never;
|
|
4784
|
+
delete?: never;
|
|
4785
|
+
options?: never;
|
|
4786
|
+
head?: never;
|
|
4787
|
+
patch?: never;
|
|
4788
|
+
trace?: never;
|
|
4789
|
+
};
|
|
4629
4790
|
"/updates/additive": {
|
|
4630
4791
|
parameters: {
|
|
4631
4792
|
query?: never;
|
|
@@ -9698,13 +9859,22 @@ type components = {
|
|
|
9698
9859
|
/** @description Number of entities returned */
|
|
9699
9860
|
count: number;
|
|
9700
9861
|
};
|
|
9862
|
+
CollectionEntitySearchResult: components["schemas"]["EntityIndexEntry"] & {
|
|
9863
|
+
/**
|
|
9864
|
+
* @description Similarity score (only present for semantic search via similar_to)
|
|
9865
|
+
* @example 0.87
|
|
9866
|
+
*/
|
|
9867
|
+
score?: number;
|
|
9868
|
+
};
|
|
9701
9869
|
CollectionEntitySearchResponse: {
|
|
9702
9870
|
/** @description Collection ID */
|
|
9703
9871
|
collection_id: string;
|
|
9704
|
-
/** @description Original search query */
|
|
9705
|
-
query
|
|
9872
|
+
/** @description Original search query (for keyword search) */
|
|
9873
|
+
query?: string;
|
|
9874
|
+
/** @description Source entity ID (for similarity search) */
|
|
9875
|
+
similar_to?: string;
|
|
9706
9876
|
/** @description Matching entities */
|
|
9707
|
-
entities: components["schemas"]["
|
|
9877
|
+
entities: components["schemas"]["CollectionEntitySearchResult"][];
|
|
9708
9878
|
/** @description Number of entities returned */
|
|
9709
9879
|
count: number;
|
|
9710
9880
|
};
|
|
@@ -10604,6 +10774,85 @@ type components = {
|
|
|
10604
10774
|
*/
|
|
10605
10775
|
expect_tip: string;
|
|
10606
10776
|
};
|
|
10777
|
+
QueueItem: {
|
|
10778
|
+
/**
|
|
10779
|
+
* @description Queue item ID
|
|
10780
|
+
* @example 1
|
|
10781
|
+
*/
|
|
10782
|
+
id: number;
|
|
10783
|
+
/**
|
|
10784
|
+
* @description Actor who queued the update
|
|
10785
|
+
* @example 01KDETYWYWM0MJVKM8DK3AEXPY
|
|
10786
|
+
*/
|
|
10787
|
+
actor_id: string;
|
|
10788
|
+
/**
|
|
10789
|
+
* @description Current status of the queue item
|
|
10790
|
+
* @example pending
|
|
10791
|
+
* @enum {string}
|
|
10792
|
+
*/
|
|
10793
|
+
status: "pending" | "processing" | "failed" | "completed";
|
|
10794
|
+
/**
|
|
10795
|
+
* @description Number of relationships in this update
|
|
10796
|
+
* @example 5
|
|
10797
|
+
*/
|
|
10798
|
+
relationships_count: number;
|
|
10799
|
+
/**
|
|
10800
|
+
* @description Summary of relationships (predicate + peer)
|
|
10801
|
+
* @example [
|
|
10802
|
+
* {
|
|
10803
|
+
* "predicate": "sent_to",
|
|
10804
|
+
* "peer": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
10805
|
+
* }
|
|
10806
|
+
* ]
|
|
10807
|
+
*/
|
|
10808
|
+
relationships_summary: {
|
|
10809
|
+
predicate: string;
|
|
10810
|
+
peer: string;
|
|
10811
|
+
}[];
|
|
10812
|
+
/**
|
|
10813
|
+
* @description Top-level property keys being updated
|
|
10814
|
+
* @example [
|
|
10815
|
+
* "extracted",
|
|
10816
|
+
* "metadata"
|
|
10817
|
+
* ]
|
|
10818
|
+
*/
|
|
10819
|
+
properties_keys: string[];
|
|
10820
|
+
/**
|
|
10821
|
+
* @description Optional note for the update
|
|
10822
|
+
* @example Extracted by kg-dedupe-resolver
|
|
10823
|
+
*/
|
|
10824
|
+
note: string | null;
|
|
10825
|
+
/**
|
|
10826
|
+
* @description Error message if failed
|
|
10827
|
+
* @example CAS conflict after 20 attempts
|
|
10828
|
+
*/
|
|
10829
|
+
error: string | null;
|
|
10830
|
+
/**
|
|
10831
|
+
* @description Number of processing attempts
|
|
10832
|
+
* @example 3
|
|
10833
|
+
*/
|
|
10834
|
+
attempts: number;
|
|
10835
|
+
/**
|
|
10836
|
+
* @description ISO timestamp when queued
|
|
10837
|
+
* @example 2024-01-15T10:30:00.000Z
|
|
10838
|
+
*/
|
|
10839
|
+
queued_at: string;
|
|
10840
|
+
};
|
|
10841
|
+
QueueStatusResponse: {
|
|
10842
|
+
/**
|
|
10843
|
+
* @description Entity ID (ULID format)
|
|
10844
|
+
* @example 01KDETYWYWM0MJVKM8DK3AEXPY
|
|
10845
|
+
*/
|
|
10846
|
+
entity_id: string;
|
|
10847
|
+
/** @description Count of items by status */
|
|
10848
|
+
counts: {
|
|
10849
|
+
pending: number;
|
|
10850
|
+
processing: number;
|
|
10851
|
+
failed: number;
|
|
10852
|
+
};
|
|
10853
|
+
/** @description Detailed queue items (most recent first, max 100) */
|
|
10854
|
+
items: components["schemas"]["QueueItem"][];
|
|
10855
|
+
};
|
|
10607
10856
|
QueuedUpdateInfo: {
|
|
10608
10857
|
/**
|
|
10609
10858
|
* @description Entity ID (ULID format)
|
|
@@ -11619,6 +11868,20 @@ type components = {
|
|
|
11619
11868
|
/** @description Target step name if condition matches */
|
|
11620
11869
|
target: string;
|
|
11621
11870
|
}[];
|
|
11871
|
+
} | {
|
|
11872
|
+
/** @description Target step name for bounded recursion */
|
|
11873
|
+
recurse: string;
|
|
11874
|
+
/**
|
|
11875
|
+
* @description Maximum recursion depth (default: 10)
|
|
11876
|
+
* @example 10
|
|
11877
|
+
*/
|
|
11878
|
+
max_depth?: number;
|
|
11879
|
+
/** @description Conditional routing rules */
|
|
11880
|
+
route?: {
|
|
11881
|
+
where: components["schemas"]["WhereCondition"];
|
|
11882
|
+
/** @description Target step name if condition matches */
|
|
11883
|
+
target: string;
|
|
11884
|
+
}[];
|
|
11622
11885
|
};
|
|
11623
11886
|
};
|
|
11624
11887
|
};
|
|
@@ -11807,6 +12070,20 @@ type components = {
|
|
|
11807
12070
|
/** @description Target step name if condition matches */
|
|
11808
12071
|
target: string;
|
|
11809
12072
|
}[];
|
|
12073
|
+
} | {
|
|
12074
|
+
/** @description Target step name for bounded recursion */
|
|
12075
|
+
recurse: string;
|
|
12076
|
+
/**
|
|
12077
|
+
* @description Maximum recursion depth (default: 10)
|
|
12078
|
+
* @example 10
|
|
12079
|
+
*/
|
|
12080
|
+
max_depth?: number;
|
|
12081
|
+
/** @description Conditional routing rules */
|
|
12082
|
+
route?: {
|
|
12083
|
+
where: components["schemas"]["WhereCondition"];
|
|
12084
|
+
/** @description Target step name if condition matches */
|
|
12085
|
+
target: string;
|
|
12086
|
+
}[];
|
|
11810
12087
|
};
|
|
11811
12088
|
};
|
|
11812
12089
|
};
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Source: Arke v1 API
|
|
8
8
|
* Version: 1.0.0
|
|
9
|
-
* Generated: 2026-02-
|
|
9
|
+
* Generated: 2026-02-20T03:10:32.965Z
|
|
10
10
|
*/
|
|
11
11
|
type paths = {
|
|
12
12
|
"/ops-reference": {
|
|
@@ -1037,6 +1037,88 @@ type paths = {
|
|
|
1037
1037
|
patch?: never;
|
|
1038
1038
|
trace?: never;
|
|
1039
1039
|
};
|
|
1040
|
+
"/collections/catalog": {
|
|
1041
|
+
parameters: {
|
|
1042
|
+
query?: never;
|
|
1043
|
+
header?: never;
|
|
1044
|
+
path?: never;
|
|
1045
|
+
cookie?: never;
|
|
1046
|
+
};
|
|
1047
|
+
/**
|
|
1048
|
+
* List all collections for catalog/sitemap
|
|
1049
|
+
* @description Returns a paginated list of all collection IDs and their last update times.
|
|
1050
|
+
*
|
|
1051
|
+
* This endpoint is designed for sitemap generation and discovery services. It returns minimal data (just IDs and timestamps) for efficiency.
|
|
1052
|
+
*
|
|
1053
|
+
* **Lazy Population:** The catalog is populated as collections are created or updated. Newly created collections may take a moment to appear.
|
|
1054
|
+
*
|
|
1055
|
+
* **No Authentication Required:** This endpoint is public to allow crawlers and discovery services to access it.
|
|
1056
|
+
*
|
|
1057
|
+
* ---
|
|
1058
|
+
* **Permission:** `catalog:list`
|
|
1059
|
+
* **Auth:** none
|
|
1060
|
+
*/
|
|
1061
|
+
get: {
|
|
1062
|
+
parameters: {
|
|
1063
|
+
query?: {
|
|
1064
|
+
limit?: number;
|
|
1065
|
+
offset?: number | null;
|
|
1066
|
+
};
|
|
1067
|
+
header?: never;
|
|
1068
|
+
path?: never;
|
|
1069
|
+
cookie?: never;
|
|
1070
|
+
};
|
|
1071
|
+
requestBody?: never;
|
|
1072
|
+
responses: {
|
|
1073
|
+
/** @description Paginated list of collections */
|
|
1074
|
+
200: {
|
|
1075
|
+
headers: {
|
|
1076
|
+
[name: string]: unknown;
|
|
1077
|
+
};
|
|
1078
|
+
content: {
|
|
1079
|
+
"application/json": {
|
|
1080
|
+
data: {
|
|
1081
|
+
/**
|
|
1082
|
+
* @description Collection ID (PI)
|
|
1083
|
+
* @example 01JEXAMPLE...
|
|
1084
|
+
*/
|
|
1085
|
+
id: string;
|
|
1086
|
+
/**
|
|
1087
|
+
* @description ISO timestamp of last update
|
|
1088
|
+
* @example 2026-02-17T12:00:00Z
|
|
1089
|
+
*/
|
|
1090
|
+
updated_at: string;
|
|
1091
|
+
}[];
|
|
1092
|
+
pagination: {
|
|
1093
|
+
/** @description Total number of collections in catalog */
|
|
1094
|
+
total: number;
|
|
1095
|
+
/** @description Requested limit */
|
|
1096
|
+
limit: number;
|
|
1097
|
+
/** @description Current offset */
|
|
1098
|
+
offset: number;
|
|
1099
|
+
/** @description Whether more results are available */
|
|
1100
|
+
has_more: boolean;
|
|
1101
|
+
};
|
|
1102
|
+
};
|
|
1103
|
+
};
|
|
1104
|
+
};
|
|
1105
|
+
/** @description Collections catalog service unavailable */
|
|
1106
|
+
503: {
|
|
1107
|
+
headers: {
|
|
1108
|
+
[name: string]: unknown;
|
|
1109
|
+
};
|
|
1110
|
+
content?: never;
|
|
1111
|
+
};
|
|
1112
|
+
};
|
|
1113
|
+
};
|
|
1114
|
+
put?: never;
|
|
1115
|
+
post?: never;
|
|
1116
|
+
delete?: never;
|
|
1117
|
+
options?: never;
|
|
1118
|
+
head?: never;
|
|
1119
|
+
patch?: never;
|
|
1120
|
+
trace?: never;
|
|
1121
|
+
};
|
|
1040
1122
|
"/collections/{id}": {
|
|
1041
1123
|
parameters: {
|
|
1042
1124
|
query?: never;
|
|
@@ -2194,26 +2276,35 @@ type paths = {
|
|
|
2194
2276
|
cookie?: never;
|
|
2195
2277
|
};
|
|
2196
2278
|
/**
|
|
2197
|
-
* Search entities by keyword
|
|
2198
|
-
* @description
|
|
2279
|
+
* Search entities by keyword or similarity
|
|
2280
|
+
* @description Search within a collection's entities using keyword matching or semantic similarity.
|
|
2281
|
+
*
|
|
2282
|
+
* **Keyword Search (q parameter):**
|
|
2283
|
+
* - Fast (~5ms) using per-collection SQLite index
|
|
2284
|
+
* - Case-insensitive substring match on entity labels
|
|
2285
|
+
*
|
|
2286
|
+
* **Semantic Similarity Search (similar_to parameter):**
|
|
2287
|
+
* - Finds entities semantically similar to the given entity ID
|
|
2288
|
+
* - Uses Pinecone vector similarity
|
|
2289
|
+
* - Returns results with similarity scores
|
|
2199
2290
|
*
|
|
2200
|
-
*
|
|
2291
|
+
* One of `q` or `similar_to` must be provided.
|
|
2201
2292
|
*
|
|
2202
2293
|
* **Query Parameters:**
|
|
2203
|
-
* - `q`: Search query (
|
|
2294
|
+
* - `q`: Search query (case-insensitive substring match)
|
|
2295
|
+
* - `similar_to`: Entity ID to find similar items for
|
|
2204
2296
|
* - `type`: Filter by entity type
|
|
2205
2297
|
* - `limit`: Maximum results (default: 100, max: 1000)
|
|
2206
2298
|
*
|
|
2207
|
-
* **Note:** This is a simple substring match, not semantic search. Use /query for AI-powered semantic search.
|
|
2208
|
-
*
|
|
2209
2299
|
* ---
|
|
2210
2300
|
* **Permission:** `collection:view`
|
|
2211
2301
|
* **Auth:** optional
|
|
2212
2302
|
*/
|
|
2213
2303
|
get: {
|
|
2214
2304
|
parameters: {
|
|
2215
|
-
query
|
|
2216
|
-
q
|
|
2305
|
+
query?: {
|
|
2306
|
+
q?: string;
|
|
2307
|
+
similar_to?: string;
|
|
2217
2308
|
type?: string;
|
|
2218
2309
|
limit?: number;
|
|
2219
2310
|
};
|
|
@@ -3930,7 +4021,7 @@ type paths = {
|
|
|
3930
4021
|
* - Creates a new entity version on each upload
|
|
3931
4022
|
*
|
|
3932
4023
|
* **Storage:**
|
|
3933
|
-
* Content is stored at `{entity_id}/{
|
|
4024
|
+
* Content is stored at `{entity_id}/{cid}` in R2, enabling multiple versions per entity without overwriting.
|
|
3934
4025
|
*
|
|
3935
4026
|
* ---
|
|
3936
4027
|
* **Permission:** `entity:update`
|
|
@@ -4626,6 +4717,76 @@ type paths = {
|
|
|
4626
4717
|
patch?: never;
|
|
4627
4718
|
trace?: never;
|
|
4628
4719
|
};
|
|
4720
|
+
"/updates/queue/{id}": {
|
|
4721
|
+
parameters: {
|
|
4722
|
+
query?: never;
|
|
4723
|
+
header?: never;
|
|
4724
|
+
path?: never;
|
|
4725
|
+
cookie?: never;
|
|
4726
|
+
};
|
|
4727
|
+
/**
|
|
4728
|
+
* Get update queue status for entity
|
|
4729
|
+
* @description Returns the status of the additive update queue for a specific entity.
|
|
4730
|
+
*
|
|
4731
|
+
* **Use Cases:**
|
|
4732
|
+
* - Diagnose why additive updates may not have been applied
|
|
4733
|
+
* - Check for pending, processing, or failed updates
|
|
4734
|
+
* - Monitor queue processing progress
|
|
4735
|
+
*
|
|
4736
|
+
* **Response includes:**
|
|
4737
|
+
* - Counts by status (pending, processing, failed)
|
|
4738
|
+
* - Detailed items with actor, relationships count, error messages, attempts
|
|
4739
|
+
*
|
|
4740
|
+
*
|
|
4741
|
+
* ---
|
|
4742
|
+
* **Permission:** `entity:view`
|
|
4743
|
+
* **Auth:** required
|
|
4744
|
+
*/
|
|
4745
|
+
get: {
|
|
4746
|
+
parameters: {
|
|
4747
|
+
query?: never;
|
|
4748
|
+
header?: never;
|
|
4749
|
+
path: {
|
|
4750
|
+
/** @description Entity ID (ULID) */
|
|
4751
|
+
id: string;
|
|
4752
|
+
};
|
|
4753
|
+
cookie?: never;
|
|
4754
|
+
};
|
|
4755
|
+
requestBody?: never;
|
|
4756
|
+
responses: {
|
|
4757
|
+
/** @description Queue status retrieved */
|
|
4758
|
+
200: {
|
|
4759
|
+
headers: {
|
|
4760
|
+
[name: string]: unknown;
|
|
4761
|
+
};
|
|
4762
|
+
content: {
|
|
4763
|
+
"application/json": components["schemas"]["QueueStatusResponse"];
|
|
4764
|
+
};
|
|
4765
|
+
};
|
|
4766
|
+
/** @description Unauthorized - Missing or invalid authentication */
|
|
4767
|
+
401: {
|
|
4768
|
+
headers: {
|
|
4769
|
+
[name: string]: unknown;
|
|
4770
|
+
};
|
|
4771
|
+
content: {
|
|
4772
|
+
/**
|
|
4773
|
+
* @example {
|
|
4774
|
+
* "error": "Unauthorized: Missing or invalid authentication token"
|
|
4775
|
+
* }
|
|
4776
|
+
*/
|
|
4777
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
4778
|
+
};
|
|
4779
|
+
};
|
|
4780
|
+
};
|
|
4781
|
+
};
|
|
4782
|
+
put?: never;
|
|
4783
|
+
post?: never;
|
|
4784
|
+
delete?: never;
|
|
4785
|
+
options?: never;
|
|
4786
|
+
head?: never;
|
|
4787
|
+
patch?: never;
|
|
4788
|
+
trace?: never;
|
|
4789
|
+
};
|
|
4629
4790
|
"/updates/additive": {
|
|
4630
4791
|
parameters: {
|
|
4631
4792
|
query?: never;
|
|
@@ -9698,13 +9859,22 @@ type components = {
|
|
|
9698
9859
|
/** @description Number of entities returned */
|
|
9699
9860
|
count: number;
|
|
9700
9861
|
};
|
|
9862
|
+
CollectionEntitySearchResult: components["schemas"]["EntityIndexEntry"] & {
|
|
9863
|
+
/**
|
|
9864
|
+
* @description Similarity score (only present for semantic search via similar_to)
|
|
9865
|
+
* @example 0.87
|
|
9866
|
+
*/
|
|
9867
|
+
score?: number;
|
|
9868
|
+
};
|
|
9701
9869
|
CollectionEntitySearchResponse: {
|
|
9702
9870
|
/** @description Collection ID */
|
|
9703
9871
|
collection_id: string;
|
|
9704
|
-
/** @description Original search query */
|
|
9705
|
-
query
|
|
9872
|
+
/** @description Original search query (for keyword search) */
|
|
9873
|
+
query?: string;
|
|
9874
|
+
/** @description Source entity ID (for similarity search) */
|
|
9875
|
+
similar_to?: string;
|
|
9706
9876
|
/** @description Matching entities */
|
|
9707
|
-
entities: components["schemas"]["
|
|
9877
|
+
entities: components["schemas"]["CollectionEntitySearchResult"][];
|
|
9708
9878
|
/** @description Number of entities returned */
|
|
9709
9879
|
count: number;
|
|
9710
9880
|
};
|
|
@@ -10604,6 +10774,85 @@ type components = {
|
|
|
10604
10774
|
*/
|
|
10605
10775
|
expect_tip: string;
|
|
10606
10776
|
};
|
|
10777
|
+
QueueItem: {
|
|
10778
|
+
/**
|
|
10779
|
+
* @description Queue item ID
|
|
10780
|
+
* @example 1
|
|
10781
|
+
*/
|
|
10782
|
+
id: number;
|
|
10783
|
+
/**
|
|
10784
|
+
* @description Actor who queued the update
|
|
10785
|
+
* @example 01KDETYWYWM0MJVKM8DK3AEXPY
|
|
10786
|
+
*/
|
|
10787
|
+
actor_id: string;
|
|
10788
|
+
/**
|
|
10789
|
+
* @description Current status of the queue item
|
|
10790
|
+
* @example pending
|
|
10791
|
+
* @enum {string}
|
|
10792
|
+
*/
|
|
10793
|
+
status: "pending" | "processing" | "failed" | "completed";
|
|
10794
|
+
/**
|
|
10795
|
+
* @description Number of relationships in this update
|
|
10796
|
+
* @example 5
|
|
10797
|
+
*/
|
|
10798
|
+
relationships_count: number;
|
|
10799
|
+
/**
|
|
10800
|
+
* @description Summary of relationships (predicate + peer)
|
|
10801
|
+
* @example [
|
|
10802
|
+
* {
|
|
10803
|
+
* "predicate": "sent_to",
|
|
10804
|
+
* "peer": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
10805
|
+
* }
|
|
10806
|
+
* ]
|
|
10807
|
+
*/
|
|
10808
|
+
relationships_summary: {
|
|
10809
|
+
predicate: string;
|
|
10810
|
+
peer: string;
|
|
10811
|
+
}[];
|
|
10812
|
+
/**
|
|
10813
|
+
* @description Top-level property keys being updated
|
|
10814
|
+
* @example [
|
|
10815
|
+
* "extracted",
|
|
10816
|
+
* "metadata"
|
|
10817
|
+
* ]
|
|
10818
|
+
*/
|
|
10819
|
+
properties_keys: string[];
|
|
10820
|
+
/**
|
|
10821
|
+
* @description Optional note for the update
|
|
10822
|
+
* @example Extracted by kg-dedupe-resolver
|
|
10823
|
+
*/
|
|
10824
|
+
note: string | null;
|
|
10825
|
+
/**
|
|
10826
|
+
* @description Error message if failed
|
|
10827
|
+
* @example CAS conflict after 20 attempts
|
|
10828
|
+
*/
|
|
10829
|
+
error: string | null;
|
|
10830
|
+
/**
|
|
10831
|
+
* @description Number of processing attempts
|
|
10832
|
+
* @example 3
|
|
10833
|
+
*/
|
|
10834
|
+
attempts: number;
|
|
10835
|
+
/**
|
|
10836
|
+
* @description ISO timestamp when queued
|
|
10837
|
+
* @example 2024-01-15T10:30:00.000Z
|
|
10838
|
+
*/
|
|
10839
|
+
queued_at: string;
|
|
10840
|
+
};
|
|
10841
|
+
QueueStatusResponse: {
|
|
10842
|
+
/**
|
|
10843
|
+
* @description Entity ID (ULID format)
|
|
10844
|
+
* @example 01KDETYWYWM0MJVKM8DK3AEXPY
|
|
10845
|
+
*/
|
|
10846
|
+
entity_id: string;
|
|
10847
|
+
/** @description Count of items by status */
|
|
10848
|
+
counts: {
|
|
10849
|
+
pending: number;
|
|
10850
|
+
processing: number;
|
|
10851
|
+
failed: number;
|
|
10852
|
+
};
|
|
10853
|
+
/** @description Detailed queue items (most recent first, max 100) */
|
|
10854
|
+
items: components["schemas"]["QueueItem"][];
|
|
10855
|
+
};
|
|
10607
10856
|
QueuedUpdateInfo: {
|
|
10608
10857
|
/**
|
|
10609
10858
|
* @description Entity ID (ULID format)
|
|
@@ -11619,6 +11868,20 @@ type components = {
|
|
|
11619
11868
|
/** @description Target step name if condition matches */
|
|
11620
11869
|
target: string;
|
|
11621
11870
|
}[];
|
|
11871
|
+
} | {
|
|
11872
|
+
/** @description Target step name for bounded recursion */
|
|
11873
|
+
recurse: string;
|
|
11874
|
+
/**
|
|
11875
|
+
* @description Maximum recursion depth (default: 10)
|
|
11876
|
+
* @example 10
|
|
11877
|
+
*/
|
|
11878
|
+
max_depth?: number;
|
|
11879
|
+
/** @description Conditional routing rules */
|
|
11880
|
+
route?: {
|
|
11881
|
+
where: components["schemas"]["WhereCondition"];
|
|
11882
|
+
/** @description Target step name if condition matches */
|
|
11883
|
+
target: string;
|
|
11884
|
+
}[];
|
|
11622
11885
|
};
|
|
11623
11886
|
};
|
|
11624
11887
|
};
|
|
@@ -11807,6 +12070,20 @@ type components = {
|
|
|
11807
12070
|
/** @description Target step name if condition matches */
|
|
11808
12071
|
target: string;
|
|
11809
12072
|
}[];
|
|
12073
|
+
} | {
|
|
12074
|
+
/** @description Target step name for bounded recursion */
|
|
12075
|
+
recurse: string;
|
|
12076
|
+
/**
|
|
12077
|
+
* @description Maximum recursion depth (default: 10)
|
|
12078
|
+
* @example 10
|
|
12079
|
+
*/
|
|
12080
|
+
max_depth?: number;
|
|
12081
|
+
/** @description Conditional routing rules */
|
|
12082
|
+
route?: {
|
|
12083
|
+
where: components["schemas"]["WhereCondition"];
|
|
12084
|
+
/** @description Target step name if condition matches */
|
|
12085
|
+
target: string;
|
|
12086
|
+
}[];
|
|
11810
12087
|
};
|
|
11811
12088
|
};
|
|
11812
12089
|
};
|
package/openapi/spec.json
CHANGED
|
@@ -1023,7 +1023,7 @@
|
|
|
1023
1023
|
"query": {
|
|
1024
1024
|
"type": "string",
|
|
1025
1025
|
"minLength": 1,
|
|
1026
|
-
"maxLength":
|
|
1026
|
+
"maxLength": 10000,
|
|
1027
1027
|
"description": "Search query text for semantic matching",
|
|
1028
1028
|
"example": "medical research"
|
|
1029
1029
|
},
|
|
@@ -1995,6 +1995,23 @@
|
|
|
1995
1995
|
"count"
|
|
1996
1996
|
]
|
|
1997
1997
|
},
|
|
1998
|
+
"CollectionEntitySearchResult": {
|
|
1999
|
+
"allOf": [
|
|
2000
|
+
{
|
|
2001
|
+
"$ref": "#/components/schemas/EntityIndexEntry"
|
|
2002
|
+
},
|
|
2003
|
+
{
|
|
2004
|
+
"type": "object",
|
|
2005
|
+
"properties": {
|
|
2006
|
+
"score": {
|
|
2007
|
+
"type": "number",
|
|
2008
|
+
"description": "Similarity score (only present for semantic search via similar_to)",
|
|
2009
|
+
"example": 0.87
|
|
2010
|
+
}
|
|
2011
|
+
}
|
|
2012
|
+
}
|
|
2013
|
+
]
|
|
2014
|
+
},
|
|
1998
2015
|
"CollectionEntitySearchResponse": {
|
|
1999
2016
|
"type": "object",
|
|
2000
2017
|
"properties": {
|
|
@@ -2005,12 +2022,17 @@
|
|
|
2005
2022
|
},
|
|
2006
2023
|
"query": {
|
|
2007
2024
|
"type": "string",
|
|
2008
|
-
"description": "Original search query"
|
|
2025
|
+
"description": "Original search query (for keyword search)"
|
|
2026
|
+
},
|
|
2027
|
+
"similar_to": {
|
|
2028
|
+
"type": "string",
|
|
2029
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
2030
|
+
"description": "Source entity ID (for similarity search)"
|
|
2009
2031
|
},
|
|
2010
2032
|
"entities": {
|
|
2011
2033
|
"type": "array",
|
|
2012
2034
|
"items": {
|
|
2013
|
-
"$ref": "#/components/schemas/
|
|
2035
|
+
"$ref": "#/components/schemas/CollectionEntitySearchResult"
|
|
2014
2036
|
},
|
|
2015
2037
|
"description": "Matching entities"
|
|
2016
2038
|
},
|
|
@@ -2021,7 +2043,6 @@
|
|
|
2021
2043
|
},
|
|
2022
2044
|
"required": [
|
|
2023
2045
|
"collection_id",
|
|
2024
|
-
"query",
|
|
2025
2046
|
"entities",
|
|
2026
2047
|
"count"
|
|
2027
2048
|
]
|
|
@@ -3852,6 +3873,150 @@
|
|
|
3852
3873
|
"expect_tip"
|
|
3853
3874
|
]
|
|
3854
3875
|
},
|
|
3876
|
+
"QueueItem": {
|
|
3877
|
+
"type": "object",
|
|
3878
|
+
"properties": {
|
|
3879
|
+
"id": {
|
|
3880
|
+
"type": "integer",
|
|
3881
|
+
"description": "Queue item ID",
|
|
3882
|
+
"example": 1
|
|
3883
|
+
},
|
|
3884
|
+
"actor_id": {
|
|
3885
|
+
"type": "string",
|
|
3886
|
+
"description": "Actor who queued the update",
|
|
3887
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
3888
|
+
},
|
|
3889
|
+
"status": {
|
|
3890
|
+
"type": "string",
|
|
3891
|
+
"enum": [
|
|
3892
|
+
"pending",
|
|
3893
|
+
"processing",
|
|
3894
|
+
"failed",
|
|
3895
|
+
"completed"
|
|
3896
|
+
],
|
|
3897
|
+
"description": "Current status of the queue item",
|
|
3898
|
+
"example": "pending"
|
|
3899
|
+
},
|
|
3900
|
+
"relationships_count": {
|
|
3901
|
+
"type": "integer",
|
|
3902
|
+
"description": "Number of relationships in this update",
|
|
3903
|
+
"example": 5
|
|
3904
|
+
},
|
|
3905
|
+
"relationships_summary": {
|
|
3906
|
+
"type": "array",
|
|
3907
|
+
"items": {
|
|
3908
|
+
"type": "object",
|
|
3909
|
+
"properties": {
|
|
3910
|
+
"predicate": {
|
|
3911
|
+
"type": "string"
|
|
3912
|
+
},
|
|
3913
|
+
"peer": {
|
|
3914
|
+
"type": "string"
|
|
3915
|
+
}
|
|
3916
|
+
},
|
|
3917
|
+
"required": [
|
|
3918
|
+
"predicate",
|
|
3919
|
+
"peer"
|
|
3920
|
+
]
|
|
3921
|
+
},
|
|
3922
|
+
"description": "Summary of relationships (predicate + peer)",
|
|
3923
|
+
"example": [
|
|
3924
|
+
{
|
|
3925
|
+
"predicate": "sent_to",
|
|
3926
|
+
"peer": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
3927
|
+
}
|
|
3928
|
+
]
|
|
3929
|
+
},
|
|
3930
|
+
"properties_keys": {
|
|
3931
|
+
"type": "array",
|
|
3932
|
+
"items": {
|
|
3933
|
+
"type": "string"
|
|
3934
|
+
},
|
|
3935
|
+
"description": "Top-level property keys being updated",
|
|
3936
|
+
"example": [
|
|
3937
|
+
"extracted",
|
|
3938
|
+
"metadata"
|
|
3939
|
+
]
|
|
3940
|
+
},
|
|
3941
|
+
"note": {
|
|
3942
|
+
"type": "string",
|
|
3943
|
+
"nullable": true,
|
|
3944
|
+
"description": "Optional note for the update",
|
|
3945
|
+
"example": "Extracted by kg-dedupe-resolver"
|
|
3946
|
+
},
|
|
3947
|
+
"error": {
|
|
3948
|
+
"type": "string",
|
|
3949
|
+
"nullable": true,
|
|
3950
|
+
"description": "Error message if failed",
|
|
3951
|
+
"example": "CAS conflict after 20 attempts"
|
|
3952
|
+
},
|
|
3953
|
+
"attempts": {
|
|
3954
|
+
"type": "integer",
|
|
3955
|
+
"description": "Number of processing attempts",
|
|
3956
|
+
"example": 3
|
|
3957
|
+
},
|
|
3958
|
+
"queued_at": {
|
|
3959
|
+
"type": "string",
|
|
3960
|
+
"description": "ISO timestamp when queued",
|
|
3961
|
+
"example": "2024-01-15T10:30:00.000Z"
|
|
3962
|
+
}
|
|
3963
|
+
},
|
|
3964
|
+
"required": [
|
|
3965
|
+
"id",
|
|
3966
|
+
"actor_id",
|
|
3967
|
+
"status",
|
|
3968
|
+
"relationships_count",
|
|
3969
|
+
"relationships_summary",
|
|
3970
|
+
"properties_keys",
|
|
3971
|
+
"note",
|
|
3972
|
+
"error",
|
|
3973
|
+
"attempts",
|
|
3974
|
+
"queued_at"
|
|
3975
|
+
]
|
|
3976
|
+
},
|
|
3977
|
+
"QueueStatusResponse": {
|
|
3978
|
+
"type": "object",
|
|
3979
|
+
"properties": {
|
|
3980
|
+
"entity_id": {
|
|
3981
|
+
"type": "string",
|
|
3982
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
3983
|
+
"description": "Entity ID (ULID format)",
|
|
3984
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
3985
|
+
},
|
|
3986
|
+
"counts": {
|
|
3987
|
+
"type": "object",
|
|
3988
|
+
"properties": {
|
|
3989
|
+
"pending": {
|
|
3990
|
+
"type": "integer"
|
|
3991
|
+
},
|
|
3992
|
+
"processing": {
|
|
3993
|
+
"type": "integer"
|
|
3994
|
+
},
|
|
3995
|
+
"failed": {
|
|
3996
|
+
"type": "integer"
|
|
3997
|
+
}
|
|
3998
|
+
},
|
|
3999
|
+
"required": [
|
|
4000
|
+
"pending",
|
|
4001
|
+
"processing",
|
|
4002
|
+
"failed"
|
|
4003
|
+
],
|
|
4004
|
+
"description": "Count of items by status"
|
|
4005
|
+
},
|
|
4006
|
+
"items": {
|
|
4007
|
+
"type": "array",
|
|
4008
|
+
"items": {
|
|
4009
|
+
"$ref": "#/components/schemas/QueueItem"
|
|
4010
|
+
},
|
|
4011
|
+
"description": "Detailed queue items (most recent first, max 100)"
|
|
4012
|
+
}
|
|
4013
|
+
},
|
|
4014
|
+
"required": [
|
|
4015
|
+
"entity_id",
|
|
4016
|
+
"counts",
|
|
4017
|
+
"items"
|
|
4018
|
+
]
|
|
4019
|
+
},
|
|
3855
4020
|
"QueuedUpdateInfo": {
|
|
3856
4021
|
"type": "object",
|
|
3857
4022
|
"properties": {
|
|
@@ -5960,6 +6125,48 @@
|
|
|
5960
6125
|
"required": [
|
|
5961
6126
|
"gather"
|
|
5962
6127
|
]
|
|
6128
|
+
},
|
|
6129
|
+
{
|
|
6130
|
+
"type": "object",
|
|
6131
|
+
"properties": {
|
|
6132
|
+
"recurse": {
|
|
6133
|
+
"type": "string",
|
|
6134
|
+
"minLength": 1,
|
|
6135
|
+
"description": "Target step name for bounded recursion"
|
|
6136
|
+
},
|
|
6137
|
+
"max_depth": {
|
|
6138
|
+
"type": "integer",
|
|
6139
|
+
"minimum": 1,
|
|
6140
|
+
"description": "Maximum recursion depth (default: 10)",
|
|
6141
|
+
"example": 10
|
|
6142
|
+
},
|
|
6143
|
+
"route": {
|
|
6144
|
+
"type": "array",
|
|
6145
|
+
"items": {
|
|
6146
|
+
"type": "object",
|
|
6147
|
+
"properties": {
|
|
6148
|
+
"where": {
|
|
6149
|
+
"$ref": "#/components/schemas/WhereCondition"
|
|
6150
|
+
},
|
|
6151
|
+
"target": {
|
|
6152
|
+
"type": "string",
|
|
6153
|
+
"minLength": 1,
|
|
6154
|
+
"description": "Target step name if condition matches"
|
|
6155
|
+
}
|
|
6156
|
+
},
|
|
6157
|
+
"required": [
|
|
6158
|
+
"where",
|
|
6159
|
+
"target"
|
|
6160
|
+
],
|
|
6161
|
+
"description": "Conditional routing rule. First matching rule wins.",
|
|
6162
|
+
"title": "RouteRule"
|
|
6163
|
+
},
|
|
6164
|
+
"description": "Conditional routing rules"
|
|
6165
|
+
}
|
|
6166
|
+
},
|
|
6167
|
+
"required": [
|
|
6168
|
+
"recurse"
|
|
6169
|
+
]
|
|
5963
6170
|
}
|
|
5964
6171
|
],
|
|
5965
6172
|
"description": "What happens after this klados completes",
|
|
@@ -6427,6 +6634,48 @@
|
|
|
6427
6634
|
"required": [
|
|
6428
6635
|
"gather"
|
|
6429
6636
|
]
|
|
6637
|
+
},
|
|
6638
|
+
{
|
|
6639
|
+
"type": "object",
|
|
6640
|
+
"properties": {
|
|
6641
|
+
"recurse": {
|
|
6642
|
+
"type": "string",
|
|
6643
|
+
"minLength": 1,
|
|
6644
|
+
"description": "Target step name for bounded recursion"
|
|
6645
|
+
},
|
|
6646
|
+
"max_depth": {
|
|
6647
|
+
"type": "integer",
|
|
6648
|
+
"minimum": 1,
|
|
6649
|
+
"description": "Maximum recursion depth (default: 10)",
|
|
6650
|
+
"example": 10
|
|
6651
|
+
},
|
|
6652
|
+
"route": {
|
|
6653
|
+
"type": "array",
|
|
6654
|
+
"items": {
|
|
6655
|
+
"type": "object",
|
|
6656
|
+
"properties": {
|
|
6657
|
+
"where": {
|
|
6658
|
+
"$ref": "#/components/schemas/WhereCondition"
|
|
6659
|
+
},
|
|
6660
|
+
"target": {
|
|
6661
|
+
"type": "string",
|
|
6662
|
+
"minLength": 1,
|
|
6663
|
+
"description": "Target step name if condition matches"
|
|
6664
|
+
}
|
|
6665
|
+
},
|
|
6666
|
+
"required": [
|
|
6667
|
+
"where",
|
|
6668
|
+
"target"
|
|
6669
|
+
],
|
|
6670
|
+
"description": "Conditional routing rule. First matching rule wins.",
|
|
6671
|
+
"title": "RouteRule"
|
|
6672
|
+
},
|
|
6673
|
+
"description": "Conditional routing rules"
|
|
6674
|
+
}
|
|
6675
|
+
},
|
|
6676
|
+
"required": [
|
|
6677
|
+
"recurse"
|
|
6678
|
+
]
|
|
6430
6679
|
}
|
|
6431
6680
|
],
|
|
6432
6681
|
"description": "What happens after this klados completes",
|
|
@@ -9277,6 +9526,116 @@
|
|
|
9277
9526
|
}
|
|
9278
9527
|
}
|
|
9279
9528
|
},
|
|
9529
|
+
"/collections/catalog": {
|
|
9530
|
+
"get": {
|
|
9531
|
+
"tags": [
|
|
9532
|
+
"Collections"
|
|
9533
|
+
],
|
|
9534
|
+
"summary": "List all collections for catalog/sitemap",
|
|
9535
|
+
"description": "Returns a paginated list of all collection IDs and their last update times.\n\nThis endpoint is designed for sitemap generation and discovery services. It returns minimal data (just IDs and timestamps) for efficiency.\n\n**Lazy Population:** The catalog is populated as collections are created or updated. Newly created collections may take a moment to appear.\n\n**No Authentication Required:** This endpoint is public to allow crawlers and discovery services to access it.\n\n---\n**Permission:** `catalog:list` \n**Auth:** none",
|
|
9536
|
+
"x-arke-action": "catalog:list",
|
|
9537
|
+
"x-arke-auth": "none",
|
|
9538
|
+
"x-arke-tier": "standard",
|
|
9539
|
+
"parameters": [
|
|
9540
|
+
{
|
|
9541
|
+
"schema": {
|
|
9542
|
+
"type": "number",
|
|
9543
|
+
"minimum": 1,
|
|
9544
|
+
"maximum": 1000,
|
|
9545
|
+
"default": 100,
|
|
9546
|
+
"description": "Maximum number of collections to return (1-1000)",
|
|
9547
|
+
"example": 100
|
|
9548
|
+
},
|
|
9549
|
+
"required": false,
|
|
9550
|
+
"name": "limit",
|
|
9551
|
+
"in": "query"
|
|
9552
|
+
},
|
|
9553
|
+
{
|
|
9554
|
+
"schema": {
|
|
9555
|
+
"type": "number",
|
|
9556
|
+
"nullable": true,
|
|
9557
|
+
"minimum": 0,
|
|
9558
|
+
"default": 0,
|
|
9559
|
+
"description": "Number of collections to skip for pagination",
|
|
9560
|
+
"example": 0
|
|
9561
|
+
},
|
|
9562
|
+
"required": false,
|
|
9563
|
+
"name": "offset",
|
|
9564
|
+
"in": "query"
|
|
9565
|
+
}
|
|
9566
|
+
],
|
|
9567
|
+
"responses": {
|
|
9568
|
+
"200": {
|
|
9569
|
+
"description": "Paginated list of collections",
|
|
9570
|
+
"content": {
|
|
9571
|
+
"application/json": {
|
|
9572
|
+
"schema": {
|
|
9573
|
+
"type": "object",
|
|
9574
|
+
"properties": {
|
|
9575
|
+
"data": {
|
|
9576
|
+
"type": "array",
|
|
9577
|
+
"items": {
|
|
9578
|
+
"type": "object",
|
|
9579
|
+
"properties": {
|
|
9580
|
+
"id": {
|
|
9581
|
+
"type": "string",
|
|
9582
|
+
"description": "Collection ID (PI)",
|
|
9583
|
+
"example": "01JEXAMPLE..."
|
|
9584
|
+
},
|
|
9585
|
+
"updated_at": {
|
|
9586
|
+
"type": "string",
|
|
9587
|
+
"description": "ISO timestamp of last update",
|
|
9588
|
+
"example": "2026-02-17T12:00:00Z"
|
|
9589
|
+
}
|
|
9590
|
+
},
|
|
9591
|
+
"required": [
|
|
9592
|
+
"id",
|
|
9593
|
+
"updated_at"
|
|
9594
|
+
]
|
|
9595
|
+
}
|
|
9596
|
+
},
|
|
9597
|
+
"pagination": {
|
|
9598
|
+
"type": "object",
|
|
9599
|
+
"properties": {
|
|
9600
|
+
"total": {
|
|
9601
|
+
"type": "number",
|
|
9602
|
+
"description": "Total number of collections in catalog"
|
|
9603
|
+
},
|
|
9604
|
+
"limit": {
|
|
9605
|
+
"type": "number",
|
|
9606
|
+
"description": "Requested limit"
|
|
9607
|
+
},
|
|
9608
|
+
"offset": {
|
|
9609
|
+
"type": "number",
|
|
9610
|
+
"description": "Current offset"
|
|
9611
|
+
},
|
|
9612
|
+
"has_more": {
|
|
9613
|
+
"type": "boolean",
|
|
9614
|
+
"description": "Whether more results are available"
|
|
9615
|
+
}
|
|
9616
|
+
},
|
|
9617
|
+
"required": [
|
|
9618
|
+
"total",
|
|
9619
|
+
"limit",
|
|
9620
|
+
"offset",
|
|
9621
|
+
"has_more"
|
|
9622
|
+
]
|
|
9623
|
+
}
|
|
9624
|
+
},
|
|
9625
|
+
"required": [
|
|
9626
|
+
"data",
|
|
9627
|
+
"pagination"
|
|
9628
|
+
]
|
|
9629
|
+
}
|
|
9630
|
+
}
|
|
9631
|
+
}
|
|
9632
|
+
},
|
|
9633
|
+
"503": {
|
|
9634
|
+
"description": "Collections catalog service unavailable"
|
|
9635
|
+
}
|
|
9636
|
+
}
|
|
9637
|
+
}
|
|
9638
|
+
},
|
|
9280
9639
|
"/collections/{id}": {
|
|
9281
9640
|
"get": {
|
|
9282
9641
|
"tags": [
|
|
@@ -10328,8 +10687,8 @@
|
|
|
10328
10687
|
{
|
|
10329
10688
|
"schema": {
|
|
10330
10689
|
"type": "string",
|
|
10331
|
-
"description": "JSON-encoded
|
|
10332
|
-
"example": "{\"
|
|
10690
|
+
"description": "JSON-encoded string for filtering by custom properties. Only underscore-prefixed properties (e.g., _year, _kg_layer) are filterable. Pass as URL-encoded JSON: ?filter={\"_kg_layer\":0}. Supports direct equality {\"_year\": 1850} or comparison operators {\"_year\": {\"$gte\": 1800, \"$lte\": 1900}}. Available operators: $eq, $ne, $gt, $gte, $lt, $lte. Multiple properties are AND-combined.",
|
|
10691
|
+
"example": "{\"_kg_layer\":0}"
|
|
10333
10692
|
},
|
|
10334
10693
|
"required": false,
|
|
10335
10694
|
"name": "filter",
|
|
@@ -10524,8 +10883,8 @@
|
|
|
10524
10883
|
"tags": [
|
|
10525
10884
|
"Collections"
|
|
10526
10885
|
],
|
|
10527
|
-
"summary": "Search entities by keyword",
|
|
10528
|
-
"description": "Fast (~5ms)
|
|
10886
|
+
"summary": "Search entities by keyword or similarity",
|
|
10887
|
+
"description": "Search within a collection's entities using keyword matching or semantic similarity.\n\n**Keyword Search (q parameter):**\n- Fast (~5ms) using per-collection SQLite index\n- Case-insensitive substring match on entity labels\n\n**Semantic Similarity Search (similar_to parameter):**\n- Finds entities semantically similar to the given entity ID\n- Uses Pinecone vector similarity\n- Returns results with similarity scores\n\nOne of `q` or `similar_to` must be provided.\n\n**Query Parameters:**\n- `q`: Search query (case-insensitive substring match)\n- `similar_to`: Entity ID to find similar items for\n- `type`: Filter by entity type\n- `limit`: Maximum results (default: 100, max: 1000)\n\n---\n**Permission:** `collection:view` \n**Auth:** optional",
|
|
10529
10888
|
"x-arke-action": "collection:view",
|
|
10530
10889
|
"x-arke-auth": "optional",
|
|
10531
10890
|
"x-arke-tier": "standard",
|
|
@@ -10546,13 +10905,24 @@
|
|
|
10546
10905
|
"schema": {
|
|
10547
10906
|
"type": "string",
|
|
10548
10907
|
"minLength": 1,
|
|
10549
|
-
"description": "Search query (case-insensitive substring match on label)",
|
|
10908
|
+
"description": "Search query (case-insensitive substring match on label). Required if similar_to is not provided.",
|
|
10550
10909
|
"example": "ahab"
|
|
10551
10910
|
},
|
|
10552
|
-
"required":
|
|
10911
|
+
"required": false,
|
|
10553
10912
|
"name": "q",
|
|
10554
10913
|
"in": "query"
|
|
10555
10914
|
},
|
|
10915
|
+
{
|
|
10916
|
+
"schema": {
|
|
10917
|
+
"type": "string",
|
|
10918
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
10919
|
+
"description": "Entity ID to find semantically similar items. Uses vector similarity instead of keyword search. Required if q is not provided.",
|
|
10920
|
+
"example": "01JQ3EQ3EG000000000000000"
|
|
10921
|
+
},
|
|
10922
|
+
"required": false,
|
|
10923
|
+
"name": "similar_to",
|
|
10924
|
+
"in": "query"
|
|
10925
|
+
},
|
|
10556
10926
|
{
|
|
10557
10927
|
"schema": {
|
|
10558
10928
|
"type": "string",
|
|
@@ -12071,7 +12441,7 @@
|
|
|
12071
12441
|
"Entities"
|
|
12072
12442
|
],
|
|
12073
12443
|
"summary": "Upload content for any entity",
|
|
12074
|
-
"description": "Uploads binary content for any entity type. Any entity can have content attached.\n\n**Request:**\n- Query param `key` (required): Version key for this content (e.g., \"v1\", \"original\", \"thumbnail\")\n- Query param `filename` (optional): Filename for Content-Disposition header on download\n- Header `Content-Type`: MIME type of the content (required)\n- Header `Content-Length`: Size for pre-upload validation (optional, max 500MB)\n- Body: Binary content (streaming supported)\n\n**Behavior:**\n- Streams content directly to R2 storage\n- Computes CID from content bytes\n- Updates entity with `properties.content` metadata\n- Re-uploading with same key overwrites the content\n- Creates a new entity version on each upload\n\n**Storage:**\nContent is stored at `{entity_id}/{
|
|
12444
|
+
"description": "Uploads binary content for any entity type. Any entity can have content attached.\n\n**Request:**\n- Query param `key` (required): Version key for this content (e.g., \"v1\", \"original\", \"thumbnail\")\n- Query param `filename` (optional): Filename for Content-Disposition header on download\n- Header `Content-Type`: MIME type of the content (required)\n- Header `Content-Length`: Size for pre-upload validation (optional, max 500MB)\n- Body: Binary content (streaming supported)\n\n**Behavior:**\n- Streams content directly to R2 storage\n- Computes CID from content bytes\n- Updates entity with `properties.content` metadata\n- Re-uploading with same key overwrites the content\n- Creates a new entity version on each upload\n\n**Storage:**\nContent is stored at `{entity_id}/{cid}` in R2, enabling multiple versions per entity without overwriting.\n\n---\n**Permission:** `entity:update` \n**Auth:** required",
|
|
12075
12445
|
"x-arke-action": "entity:update",
|
|
12076
12446
|
"x-arke-auth": "required",
|
|
12077
12447
|
"x-arke-tier": "standard",
|
|
@@ -12849,6 +13219,66 @@
|
|
|
12849
13219
|
}
|
|
12850
13220
|
}
|
|
12851
13221
|
},
|
|
13222
|
+
"/updates/queue/{id}": {
|
|
13223
|
+
"get": {
|
|
13224
|
+
"tags": [
|
|
13225
|
+
"Entities",
|
|
13226
|
+
"Diagnostics"
|
|
13227
|
+
],
|
|
13228
|
+
"summary": "Get update queue status for entity",
|
|
13229
|
+
"description": "Returns the status of the additive update queue for a specific entity.\n\n**Use Cases:**\n- Diagnose why additive updates may not have been applied\n- Check for pending, processing, or failed updates\n- Monitor queue processing progress\n\n**Response includes:**\n- Counts by status (pending, processing, failed)\n- Detailed items with actor, relationships count, error messages, attempts\n\n\n---\n**Permission:** `entity:view` \n**Auth:** required",
|
|
13230
|
+
"x-arke-action": "entity:view",
|
|
13231
|
+
"x-arke-auth": "required",
|
|
13232
|
+
"x-arke-tier": "standard",
|
|
13233
|
+
"security": [
|
|
13234
|
+
{
|
|
13235
|
+
"bearerAuth": []
|
|
13236
|
+
},
|
|
13237
|
+
{
|
|
13238
|
+
"apiKeyAuth": []
|
|
13239
|
+
}
|
|
13240
|
+
],
|
|
13241
|
+
"parameters": [
|
|
13242
|
+
{
|
|
13243
|
+
"schema": {
|
|
13244
|
+
"type": "string",
|
|
13245
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
13246
|
+
"description": "Entity ID (ULID format)",
|
|
13247
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
13248
|
+
},
|
|
13249
|
+
"required": true,
|
|
13250
|
+
"description": "Entity ID (ULID)",
|
|
13251
|
+
"name": "id",
|
|
13252
|
+
"in": "path"
|
|
13253
|
+
}
|
|
13254
|
+
],
|
|
13255
|
+
"responses": {
|
|
13256
|
+
"200": {
|
|
13257
|
+
"description": "Queue status retrieved",
|
|
13258
|
+
"content": {
|
|
13259
|
+
"application/json": {
|
|
13260
|
+
"schema": {
|
|
13261
|
+
"$ref": "#/components/schemas/QueueStatusResponse"
|
|
13262
|
+
}
|
|
13263
|
+
}
|
|
13264
|
+
}
|
|
13265
|
+
},
|
|
13266
|
+
"401": {
|
|
13267
|
+
"description": "Unauthorized - Missing or invalid authentication",
|
|
13268
|
+
"content": {
|
|
13269
|
+
"application/json": {
|
|
13270
|
+
"schema": {
|
|
13271
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
13272
|
+
},
|
|
13273
|
+
"example": {
|
|
13274
|
+
"error": "Unauthorized: Missing or invalid authentication token"
|
|
13275
|
+
}
|
|
13276
|
+
}
|
|
13277
|
+
}
|
|
13278
|
+
}
|
|
13279
|
+
}
|
|
13280
|
+
}
|
|
13281
|
+
},
|
|
12852
13282
|
"/updates/additive": {
|
|
12853
13283
|
"post": {
|
|
12854
13284
|
"tags": [
|
|
@@ -15568,7 +15998,7 @@
|
|
|
15568
15998
|
"query": {
|
|
15569
15999
|
"type": "string",
|
|
15570
16000
|
"minLength": 1,
|
|
15571
|
-
"maxLength":
|
|
16001
|
+
"maxLength": 10000,
|
|
15572
16002
|
"description": "Search query text"
|
|
15573
16003
|
},
|
|
15574
16004
|
"limit": {
|
|
@@ -15778,7 +16208,7 @@
|
|
|
15778
16208
|
"query": {
|
|
15779
16209
|
"type": "string",
|
|
15780
16210
|
"minLength": 1,
|
|
15781
|
-
"maxLength":
|
|
16211
|
+
"maxLength": 10000,
|
|
15782
16212
|
"description": "Search query text"
|
|
15783
16213
|
},
|
|
15784
16214
|
"limit": {
|
|
@@ -16007,7 +16437,7 @@
|
|
|
16007
16437
|
"query": {
|
|
16008
16438
|
"type": "string",
|
|
16009
16439
|
"minLength": 1,
|
|
16010
|
-
"maxLength":
|
|
16440
|
+
"maxLength": 10000,
|
|
16011
16441
|
"description": "Search query text"
|
|
16012
16442
|
},
|
|
16013
16443
|
"limit": {
|
|
@@ -16239,7 +16669,7 @@
|
|
|
16239
16669
|
"query": {
|
|
16240
16670
|
"type": "string",
|
|
16241
16671
|
"minLength": 1,
|
|
16242
|
-
"maxLength":
|
|
16672
|
+
"maxLength": 10000,
|
|
16243
16673
|
"description": "Search query text"
|
|
16244
16674
|
},
|
|
16245
16675
|
"limit": {
|
package/openapi/version.json
CHANGED