@arke-institute/sdk 2.3.12 → 2.3.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/{crypto-s98kufbt.d.ts → crypto-Fh8b6rTi.d.ts} +56 -0
- package/dist/{crypto-D7rJLGQQ.d.cts → crypto-k-x66Nei.d.cts} +56 -0
- package/dist/generated/index.d.cts +1830 -201
- package/dist/generated/index.d.ts +1830 -201
- package/dist/index.cjs +65 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +65 -0
- package/dist/index.js.map +1 -1
- package/dist/operations/index.d.cts +2 -2
- package/dist/operations/index.d.ts +2 -2
- package/openapi/spec.json +2098 -444
- package/openapi/version.json +1 -1
- package/package.json +1 -1
package/openapi/spec.json
CHANGED
|
@@ -48,6 +48,10 @@
|
|
|
48
48
|
"name": "Agents",
|
|
49
49
|
"description": "Agent management and invocation"
|
|
50
50
|
},
|
|
51
|
+
{
|
|
52
|
+
"name": "Jobs",
|
|
53
|
+
"description": "Job collection status and monitoring"
|
|
54
|
+
},
|
|
51
55
|
{
|
|
52
56
|
"name": "Events",
|
|
53
57
|
"description": "Entity change event stream"
|
|
@@ -63,6 +67,10 @@
|
|
|
63
67
|
{
|
|
64
68
|
"name": "Search",
|
|
65
69
|
"description": "Cross-collection semantic search"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "Documentation",
|
|
73
|
+
"description": "API documentation and introspection"
|
|
66
74
|
}
|
|
67
75
|
],
|
|
68
76
|
"components": {
|
|
@@ -269,6 +277,36 @@
|
|
|
269
277
|
"description": "Unix timestamp in milliseconds",
|
|
270
278
|
"example": 1735214400000
|
|
271
279
|
},
|
|
280
|
+
"edited_by": {
|
|
281
|
+
"type": "object",
|
|
282
|
+
"properties": {
|
|
283
|
+
"user_id": {
|
|
284
|
+
"type": "string",
|
|
285
|
+
"minLength": 1
|
|
286
|
+
},
|
|
287
|
+
"method": {
|
|
288
|
+
"type": "string",
|
|
289
|
+
"enum": [
|
|
290
|
+
"manual",
|
|
291
|
+
"ai_generated",
|
|
292
|
+
"system",
|
|
293
|
+
"import"
|
|
294
|
+
]
|
|
295
|
+
},
|
|
296
|
+
"on_behalf_of": {
|
|
297
|
+
"type": "string"
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
"required": [
|
|
301
|
+
"user_id",
|
|
302
|
+
"method"
|
|
303
|
+
],
|
|
304
|
+
"description": "Audit trail for edits",
|
|
305
|
+
"example": {
|
|
306
|
+
"user_id": "01JCAPTAINAHAB000000000000",
|
|
307
|
+
"method": "manual"
|
|
308
|
+
}
|
|
309
|
+
},
|
|
272
310
|
"prev_cid": {
|
|
273
311
|
"type": "string",
|
|
274
312
|
"minLength": 1,
|
|
@@ -284,7 +322,8 @@
|
|
|
284
322
|
"relationships",
|
|
285
323
|
"ver",
|
|
286
324
|
"created_at",
|
|
287
|
-
"ts"
|
|
325
|
+
"ts",
|
|
326
|
+
"edited_by"
|
|
288
327
|
]
|
|
289
328
|
},
|
|
290
329
|
"UserResponse": {
|
|
@@ -445,10 +484,18 @@
|
|
|
445
484
|
"additionalProperties": {
|
|
446
485
|
"nullable": true
|
|
447
486
|
},
|
|
448
|
-
"description": "Nested removal structure
|
|
487
|
+
"description": "Nested removal structure. Each key navigates into a nested object; leaf arrays specify keys to delete at that level.",
|
|
488
|
+
"example": {
|
|
489
|
+
"settings": {
|
|
490
|
+
"notifications": [
|
|
491
|
+
"email",
|
|
492
|
+
"slack"
|
|
493
|
+
]
|
|
494
|
+
}
|
|
495
|
+
}
|
|
449
496
|
}
|
|
450
497
|
],
|
|
451
|
-
"description": "Properties to remove"
|
|
498
|
+
"description": "Properties to remove. Use string[] for top-level keys (e.g., [\"old_field\"]), or nested objects for deep removal (e.g., { config: { options: [\"debug\"] } }). Dot notation like \"config.options.debug\" is NOT supported."
|
|
452
499
|
},
|
|
453
500
|
"relationships_add": {
|
|
454
501
|
"type": "array",
|
|
@@ -1072,10 +1119,18 @@
|
|
|
1072
1119
|
"additionalProperties": {
|
|
1073
1120
|
"nullable": true
|
|
1074
1121
|
},
|
|
1075
|
-
"description": "Nested removal structure
|
|
1122
|
+
"description": "Nested removal structure. Each key navigates into a nested object; leaf arrays specify keys to delete at that level.",
|
|
1123
|
+
"example": {
|
|
1124
|
+
"settings": {
|
|
1125
|
+
"notifications": [
|
|
1126
|
+
"email",
|
|
1127
|
+
"slack"
|
|
1128
|
+
]
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1076
1131
|
}
|
|
1077
1132
|
],
|
|
1078
|
-
"description": "Properties to remove"
|
|
1133
|
+
"description": "Properties to remove. Use string[] for top-level keys (e.g., [\"old_field\"]), or nested objects for deep removal (e.g., { config: { options: [\"debug\"] } }). Dot notation like \"config.options.debug\" is NOT supported."
|
|
1079
1134
|
},
|
|
1080
1135
|
"relationships_add": {
|
|
1081
1136
|
"type": "array",
|
|
@@ -1777,6 +1832,36 @@
|
|
|
1777
1832
|
"description": "Unix timestamp in milliseconds",
|
|
1778
1833
|
"example": 1735214400000
|
|
1779
1834
|
},
|
|
1835
|
+
"edited_by": {
|
|
1836
|
+
"type": "object",
|
|
1837
|
+
"properties": {
|
|
1838
|
+
"user_id": {
|
|
1839
|
+
"type": "string",
|
|
1840
|
+
"minLength": 1
|
|
1841
|
+
},
|
|
1842
|
+
"method": {
|
|
1843
|
+
"type": "string",
|
|
1844
|
+
"enum": [
|
|
1845
|
+
"manual",
|
|
1846
|
+
"ai_generated",
|
|
1847
|
+
"system",
|
|
1848
|
+
"import"
|
|
1849
|
+
]
|
|
1850
|
+
},
|
|
1851
|
+
"on_behalf_of": {
|
|
1852
|
+
"type": "string"
|
|
1853
|
+
}
|
|
1854
|
+
},
|
|
1855
|
+
"required": [
|
|
1856
|
+
"user_id",
|
|
1857
|
+
"method"
|
|
1858
|
+
],
|
|
1859
|
+
"description": "Audit trail for edits",
|
|
1860
|
+
"example": {
|
|
1861
|
+
"user_id": "01JCAPTAINAHAB000000000000",
|
|
1862
|
+
"method": "manual"
|
|
1863
|
+
}
|
|
1864
|
+
},
|
|
1780
1865
|
"prev_cid": {
|
|
1781
1866
|
"type": "string",
|
|
1782
1867
|
"minLength": 1,
|
|
@@ -1792,7 +1877,8 @@
|
|
|
1792
1877
|
"relationships",
|
|
1793
1878
|
"ver",
|
|
1794
1879
|
"created_at",
|
|
1795
|
-
"ts"
|
|
1880
|
+
"ts",
|
|
1881
|
+
"edited_by"
|
|
1796
1882
|
]
|
|
1797
1883
|
},
|
|
1798
1884
|
"CreateEntityRequest": {
|
|
@@ -1821,7 +1907,7 @@
|
|
|
1821
1907
|
"additionalProperties": {
|
|
1822
1908
|
"nullable": true
|
|
1823
1909
|
},
|
|
1824
|
-
"description": "Entity properties (type-specific)",
|
|
1910
|
+
"description": "Entity properties (type-specific). Text properties may contain inline entity references using the arke: URI scheme (e.g., [Label](arke:01JENTITY123...)) for domain-agnostic linking.",
|
|
1825
1911
|
"example": {
|
|
1826
1912
|
"label": "Chapter 1: Loomings",
|
|
1827
1913
|
"author": "Herman Melville"
|
|
@@ -1877,6 +1963,27 @@
|
|
|
1877
1963
|
"type"
|
|
1878
1964
|
]
|
|
1879
1965
|
},
|
|
1966
|
+
"TipResponse": {
|
|
1967
|
+
"type": "object",
|
|
1968
|
+
"properties": {
|
|
1969
|
+
"id": {
|
|
1970
|
+
"type": "string",
|
|
1971
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
1972
|
+
"description": "Entity ID (ULID format)",
|
|
1973
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
1974
|
+
},
|
|
1975
|
+
"cid": {
|
|
1976
|
+
"type": "string",
|
|
1977
|
+
"minLength": 1,
|
|
1978
|
+
"description": "Content Identifier (CID) - content-addressed hash",
|
|
1979
|
+
"example": "bafyreibug443cnd4endcwinwttw3c3dzmcl2ikht64xzn5qg56bix3usfy"
|
|
1980
|
+
}
|
|
1981
|
+
},
|
|
1982
|
+
"required": [
|
|
1983
|
+
"id",
|
|
1984
|
+
"cid"
|
|
1985
|
+
]
|
|
1986
|
+
},
|
|
1880
1987
|
"EntityUpdatedResponse": {
|
|
1881
1988
|
"allOf": [
|
|
1882
1989
|
{
|
|
@@ -1937,10 +2044,18 @@
|
|
|
1937
2044
|
"additionalProperties": {
|
|
1938
2045
|
"nullable": true
|
|
1939
2046
|
},
|
|
1940
|
-
"description": "Nested removal structure
|
|
2047
|
+
"description": "Nested removal structure. Each key navigates into a nested object; leaf arrays specify keys to delete at that level.",
|
|
2048
|
+
"example": {
|
|
2049
|
+
"settings": {
|
|
2050
|
+
"notifications": [
|
|
2051
|
+
"email",
|
|
2052
|
+
"slack"
|
|
2053
|
+
]
|
|
2054
|
+
}
|
|
2055
|
+
}
|
|
1941
2056
|
}
|
|
1942
2057
|
],
|
|
1943
|
-
"description": "Properties to remove"
|
|
2058
|
+
"description": "Properties to remove. Use string[] for top-level keys (e.g., [\"old_field\"]), or nested objects for deep removal (e.g., { config: { options: [\"debug\"] } }). Dot notation like \"config.options.debug\" is NOT supported."
|
|
1944
2059
|
},
|
|
1945
2060
|
"relationships_add": {
|
|
1946
2061
|
"type": "array",
|
|
@@ -2101,6 +2216,193 @@
|
|
|
2101
2216
|
"expect_tip"
|
|
2102
2217
|
]
|
|
2103
2218
|
},
|
|
2219
|
+
"CascadeDeletedEntity": {
|
|
2220
|
+
"type": "object",
|
|
2221
|
+
"properties": {
|
|
2222
|
+
"id": {
|
|
2223
|
+
"type": "string",
|
|
2224
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
2225
|
+
"description": "Entity ID (ULID format)",
|
|
2226
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
2227
|
+
},
|
|
2228
|
+
"cid": {
|
|
2229
|
+
"type": "string",
|
|
2230
|
+
"minLength": 1,
|
|
2231
|
+
"description": "Content Identifier (CID) - content-addressed hash",
|
|
2232
|
+
"example": "bafyreibug443cnd4endcwinwttw3c3dzmcl2ikht64xzn5qg56bix3usfy"
|
|
2233
|
+
},
|
|
2234
|
+
"type": {
|
|
2235
|
+
"type": "string",
|
|
2236
|
+
"description": "Entity type",
|
|
2237
|
+
"example": "file"
|
|
2238
|
+
},
|
|
2239
|
+
"depth": {
|
|
2240
|
+
"type": "integer",
|
|
2241
|
+
"description": "Depth from root entity at which this entity was found",
|
|
2242
|
+
"example": 1
|
|
2243
|
+
}
|
|
2244
|
+
},
|
|
2245
|
+
"required": [
|
|
2246
|
+
"id",
|
|
2247
|
+
"cid",
|
|
2248
|
+
"type",
|
|
2249
|
+
"depth"
|
|
2250
|
+
]
|
|
2251
|
+
},
|
|
2252
|
+
"CascadeSkippedEntity": {
|
|
2253
|
+
"type": "object",
|
|
2254
|
+
"properties": {
|
|
2255
|
+
"id": {
|
|
2256
|
+
"type": "string",
|
|
2257
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
2258
|
+
"description": "Entity ID (ULID format)",
|
|
2259
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
2260
|
+
},
|
|
2261
|
+
"type": {
|
|
2262
|
+
"type": "string",
|
|
2263
|
+
"description": "Entity type",
|
|
2264
|
+
"example": "file"
|
|
2265
|
+
},
|
|
2266
|
+
"reason": {
|
|
2267
|
+
"type": "string",
|
|
2268
|
+
"enum": [
|
|
2269
|
+
"not_in_collection",
|
|
2270
|
+
"already_deleted",
|
|
2271
|
+
"edited_by_mismatch",
|
|
2272
|
+
"cas_conflict"
|
|
2273
|
+
],
|
|
2274
|
+
"description": "Reason an entity was skipped during cascade delete"
|
|
2275
|
+
}
|
|
2276
|
+
},
|
|
2277
|
+
"required": [
|
|
2278
|
+
"id",
|
|
2279
|
+
"type",
|
|
2280
|
+
"reason"
|
|
2281
|
+
]
|
|
2282
|
+
},
|
|
2283
|
+
"CascadeDeleteResponse": {
|
|
2284
|
+
"type": "object",
|
|
2285
|
+
"properties": {
|
|
2286
|
+
"root": {
|
|
2287
|
+
"allOf": [
|
|
2288
|
+
{
|
|
2289
|
+
"$ref": "#/components/schemas/EntityDeletedResponse"
|
|
2290
|
+
},
|
|
2291
|
+
{
|
|
2292
|
+
"description": "Deletion result for the root entity"
|
|
2293
|
+
}
|
|
2294
|
+
]
|
|
2295
|
+
},
|
|
2296
|
+
"deleted": {
|
|
2297
|
+
"type": "array",
|
|
2298
|
+
"items": {
|
|
2299
|
+
"$ref": "#/components/schemas/CascadeDeletedEntity"
|
|
2300
|
+
},
|
|
2301
|
+
"description": "Entities successfully deleted (ordered by depth, deepest first)"
|
|
2302
|
+
},
|
|
2303
|
+
"skipped": {
|
|
2304
|
+
"type": "array",
|
|
2305
|
+
"items": {
|
|
2306
|
+
"$ref": "#/components/schemas/CascadeSkippedEntity"
|
|
2307
|
+
},
|
|
2308
|
+
"description": "Entities skipped during traversal with reasons"
|
|
2309
|
+
},
|
|
2310
|
+
"summary": {
|
|
2311
|
+
"type": "object",
|
|
2312
|
+
"properties": {
|
|
2313
|
+
"total_traversed": {
|
|
2314
|
+
"type": "integer",
|
|
2315
|
+
"description": "Total entities visited during BFS traversal"
|
|
2316
|
+
},
|
|
2317
|
+
"total_deleted": {
|
|
2318
|
+
"type": "integer",
|
|
2319
|
+
"description": "Total entities successfully deleted (excluding root)"
|
|
2320
|
+
},
|
|
2321
|
+
"total_skipped": {
|
|
2322
|
+
"type": "integer",
|
|
2323
|
+
"description": "Total entities skipped during traversal"
|
|
2324
|
+
},
|
|
2325
|
+
"max_depth_reached": {
|
|
2326
|
+
"type": "integer",
|
|
2327
|
+
"description": "Maximum depth reached during traversal"
|
|
2328
|
+
}
|
|
2329
|
+
},
|
|
2330
|
+
"required": [
|
|
2331
|
+
"total_traversed",
|
|
2332
|
+
"total_deleted",
|
|
2333
|
+
"total_skipped",
|
|
2334
|
+
"max_depth_reached"
|
|
2335
|
+
],
|
|
2336
|
+
"description": "Summary statistics for the cascade delete operation"
|
|
2337
|
+
}
|
|
2338
|
+
},
|
|
2339
|
+
"required": [
|
|
2340
|
+
"root",
|
|
2341
|
+
"deleted",
|
|
2342
|
+
"skipped",
|
|
2343
|
+
"summary"
|
|
2344
|
+
]
|
|
2345
|
+
},
|
|
2346
|
+
"CascadeDeleteRequest": {
|
|
2347
|
+
"type": "object",
|
|
2348
|
+
"properties": {
|
|
2349
|
+
"expect_tip": {
|
|
2350
|
+
"type": "string",
|
|
2351
|
+
"minLength": 1,
|
|
2352
|
+
"description": "Current tip CID for CAS validation. Request fails with 409 if this does not match.",
|
|
2353
|
+
"example": "bafyreibug443cnd4endcwinwttw3c3dzmcl2ikht64xzn5qg56bix3usfy"
|
|
2354
|
+
},
|
|
2355
|
+
"note": {
|
|
2356
|
+
"type": "string",
|
|
2357
|
+
"description": "Optional note describing this change",
|
|
2358
|
+
"example": "Added Chapter 42: The Whiteness of the Whale"
|
|
2359
|
+
},
|
|
2360
|
+
"collection_id": {
|
|
2361
|
+
"type": "string",
|
|
2362
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
2363
|
+
"description": "Collection to scope the cascade delete. Only entities in this collection will be deleted. Permission check is performed on this collection.",
|
|
2364
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
2365
|
+
},
|
|
2366
|
+
"cascade_predicates": {
|
|
2367
|
+
"type": "array",
|
|
2368
|
+
"items": {
|
|
2369
|
+
"type": "string",
|
|
2370
|
+
"minLength": 1
|
|
2371
|
+
},
|
|
2372
|
+
"minItems": 1,
|
|
2373
|
+
"description": "Predicate patterns to follow during cascade traversal. Supports wildcards:\n- `\"child\"` - exact match only\n- `\"has_*\"` - matches has_document, has_image, etc.\n- `\"*_copy\"` - matches file_copy, document_copy, etc.\n- `\"*\"` - matches ALL predicates\n\n**Important:** The `collection` predicate NEVER cascades, even if `\"*\"` is specified. This protects the collection structure from accidental deletion.",
|
|
2374
|
+
"example": [
|
|
2375
|
+
"child",
|
|
2376
|
+
"has_*"
|
|
2377
|
+
]
|
|
2378
|
+
},
|
|
2379
|
+
"edited_by_filter": {
|
|
2380
|
+
"type": "string",
|
|
2381
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
2382
|
+
"description": "Only delete entities where edited_by.user_id matches this PI. Useful for cleaning up entities created by a specific agent.",
|
|
2383
|
+
"example": "01KAGENTXXXXXXXXXXXXXXXX"
|
|
2384
|
+
},
|
|
2385
|
+
"max_depth": {
|
|
2386
|
+
"type": "integer",
|
|
2387
|
+
"minimum": 1,
|
|
2388
|
+
"maximum": 20,
|
|
2389
|
+
"default": 10,
|
|
2390
|
+
"description": "Maximum relationship depth to traverse (default: 10, max: 20)",
|
|
2391
|
+
"example": 10
|
|
2392
|
+
},
|
|
2393
|
+
"reason": {
|
|
2394
|
+
"type": "string",
|
|
2395
|
+
"maxLength": 500,
|
|
2396
|
+
"description": "Reason for deleting the entities (applied to all deleted entities)",
|
|
2397
|
+
"example": "Cleanup after agent task"
|
|
2398
|
+
}
|
|
2399
|
+
},
|
|
2400
|
+
"required": [
|
|
2401
|
+
"expect_tip",
|
|
2402
|
+
"collection_id",
|
|
2403
|
+
"cascade_predicates"
|
|
2404
|
+
]
|
|
2405
|
+
},
|
|
2104
2406
|
"EntityUpdateResponse": {
|
|
2105
2407
|
"allOf": [
|
|
2106
2408
|
{
|
|
@@ -3057,23 +3359,54 @@
|
|
|
3057
3359
|
"exclusiveMinimum": true,
|
|
3058
3360
|
"description": "Unix timestamp in milliseconds",
|
|
3059
3361
|
"example": 1735214400000
|
|
3060
|
-
}
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3362
|
+
},
|
|
3363
|
+
"edited_by": {
|
|
3364
|
+
"type": "object",
|
|
3365
|
+
"properties": {
|
|
3366
|
+
"user_id": {
|
|
3367
|
+
"type": "string",
|
|
3368
|
+
"minLength": 1
|
|
3369
|
+
},
|
|
3370
|
+
"method": {
|
|
3371
|
+
"type": "string",
|
|
3372
|
+
"enum": [
|
|
3373
|
+
"manual",
|
|
3374
|
+
"ai_generated",
|
|
3375
|
+
"system",
|
|
3376
|
+
"import"
|
|
3377
|
+
]
|
|
3378
|
+
},
|
|
3379
|
+
"on_behalf_of": {
|
|
3380
|
+
"type": "string"
|
|
3381
|
+
}
|
|
3382
|
+
},
|
|
3383
|
+
"required": [
|
|
3384
|
+
"user_id",
|
|
3385
|
+
"method"
|
|
3386
|
+
],
|
|
3387
|
+
"description": "Audit trail for edits",
|
|
3388
|
+
"example": {
|
|
3389
|
+
"user_id": "01JCAPTAINAHAB000000000000",
|
|
3390
|
+
"method": "manual"
|
|
3391
|
+
}
|
|
3392
|
+
}
|
|
3393
|
+
},
|
|
3394
|
+
"required": [
|
|
3395
|
+
"id",
|
|
3396
|
+
"cid",
|
|
3397
|
+
"type",
|
|
3398
|
+
"properties",
|
|
3399
|
+
"relationships",
|
|
3400
|
+
"ver",
|
|
3401
|
+
"created_at",
|
|
3402
|
+
"ts",
|
|
3403
|
+
"edited_by"
|
|
3404
|
+
]
|
|
3405
|
+
},
|
|
3406
|
+
"CreateFileRequest": {
|
|
3407
|
+
"type": "object",
|
|
3408
|
+
"properties": {
|
|
3409
|
+
"key": {
|
|
3077
3410
|
"type": "string",
|
|
3078
3411
|
"minLength": 1,
|
|
3079
3412
|
"description": "Storage key in R2. Best practice: use the CID.",
|
|
@@ -3276,10 +3609,18 @@
|
|
|
3276
3609
|
"additionalProperties": {
|
|
3277
3610
|
"nullable": true
|
|
3278
3611
|
},
|
|
3279
|
-
"description": "Nested removal structure
|
|
3612
|
+
"description": "Nested removal structure. Each key navigates into a nested object; leaf arrays specify keys to delete at that level.",
|
|
3613
|
+
"example": {
|
|
3614
|
+
"settings": {
|
|
3615
|
+
"notifications": [
|
|
3616
|
+
"email",
|
|
3617
|
+
"slack"
|
|
3618
|
+
]
|
|
3619
|
+
}
|
|
3620
|
+
}
|
|
3280
3621
|
}
|
|
3281
3622
|
],
|
|
3282
|
-
"description": "Properties to remove"
|
|
3623
|
+
"description": "Properties to remove. Use string[] for top-level keys (e.g., [\"old_field\"]), or nested objects for deep removal (e.g., { config: { options: [\"debug\"] } }). Dot notation like \"config.options.debug\" is NOT supported."
|
|
3283
3624
|
},
|
|
3284
3625
|
"relationships_add": {
|
|
3285
3626
|
"type": "array",
|
|
@@ -3563,6 +3904,36 @@
|
|
|
3563
3904
|
"exclusiveMinimum": true,
|
|
3564
3905
|
"description": "Unix timestamp in milliseconds",
|
|
3565
3906
|
"example": 1735214400000
|
|
3907
|
+
},
|
|
3908
|
+
"edited_by": {
|
|
3909
|
+
"type": "object",
|
|
3910
|
+
"properties": {
|
|
3911
|
+
"user_id": {
|
|
3912
|
+
"type": "string",
|
|
3913
|
+
"minLength": 1
|
|
3914
|
+
},
|
|
3915
|
+
"method": {
|
|
3916
|
+
"type": "string",
|
|
3917
|
+
"enum": [
|
|
3918
|
+
"manual",
|
|
3919
|
+
"ai_generated",
|
|
3920
|
+
"system",
|
|
3921
|
+
"import"
|
|
3922
|
+
]
|
|
3923
|
+
},
|
|
3924
|
+
"on_behalf_of": {
|
|
3925
|
+
"type": "string"
|
|
3926
|
+
}
|
|
3927
|
+
},
|
|
3928
|
+
"required": [
|
|
3929
|
+
"user_id",
|
|
3930
|
+
"method"
|
|
3931
|
+
],
|
|
3932
|
+
"description": "Audit trail for edits",
|
|
3933
|
+
"example": {
|
|
3934
|
+
"user_id": "01JCAPTAINAHAB000000000000",
|
|
3935
|
+
"method": "manual"
|
|
3936
|
+
}
|
|
3566
3937
|
}
|
|
3567
3938
|
},
|
|
3568
3939
|
"required": [
|
|
@@ -3573,7 +3944,8 @@
|
|
|
3573
3944
|
"relationships",
|
|
3574
3945
|
"ver",
|
|
3575
3946
|
"created_at",
|
|
3576
|
-
"ts"
|
|
3947
|
+
"ts",
|
|
3948
|
+
"edited_by"
|
|
3577
3949
|
]
|
|
3578
3950
|
},
|
|
3579
3951
|
"CreateFolderRequest": {
|
|
@@ -3746,10 +4118,18 @@
|
|
|
3746
4118
|
"additionalProperties": {
|
|
3747
4119
|
"nullable": true
|
|
3748
4120
|
},
|
|
3749
|
-
"description": "Nested removal structure
|
|
4121
|
+
"description": "Nested removal structure. Each key navigates into a nested object; leaf arrays specify keys to delete at that level.",
|
|
4122
|
+
"example": {
|
|
4123
|
+
"settings": {
|
|
4124
|
+
"notifications": [
|
|
4125
|
+
"email",
|
|
4126
|
+
"slack"
|
|
4127
|
+
]
|
|
4128
|
+
}
|
|
4129
|
+
}
|
|
3750
4130
|
}
|
|
3751
4131
|
],
|
|
3752
|
-
"description": "Properties to remove"
|
|
4132
|
+
"description": "Properties to remove. Use string[] for top-level keys (e.g., [\"old_field\"]), or nested objects for deep removal (e.g., { config: { options: [\"debug\"] } }). Dot notation like \"config.options.debug\" is NOT supported."
|
|
3753
4133
|
},
|
|
3754
4134
|
"relationships_add": {
|
|
3755
4135
|
"type": "array",
|
|
@@ -4497,6 +4877,62 @@
|
|
|
4497
4877
|
"manifest"
|
|
4498
4878
|
]
|
|
4499
4879
|
},
|
|
4880
|
+
"TypeRestriction": {
|
|
4881
|
+
"type": "object",
|
|
4882
|
+
"properties": {
|
|
4883
|
+
"type": {
|
|
4884
|
+
"type": "string",
|
|
4885
|
+
"description": "The type with restricted implications",
|
|
4886
|
+
"example": "collection"
|
|
4887
|
+
},
|
|
4888
|
+
"allowed_verbs": {
|
|
4889
|
+
"type": "array",
|
|
4890
|
+
"items": {
|
|
4891
|
+
"type": "string"
|
|
4892
|
+
},
|
|
4893
|
+
"description": "Verbs for which the base type DOES imply this type",
|
|
4894
|
+
"example": [
|
|
4895
|
+
"view"
|
|
4896
|
+
]
|
|
4897
|
+
},
|
|
4898
|
+
"description": {
|
|
4899
|
+
"type": "string",
|
|
4900
|
+
"description": "Explanation of the restriction"
|
|
4901
|
+
}
|
|
4902
|
+
},
|
|
4903
|
+
"required": [
|
|
4904
|
+
"type",
|
|
4905
|
+
"allowed_verbs",
|
|
4906
|
+
"description"
|
|
4907
|
+
]
|
|
4908
|
+
},
|
|
4909
|
+
"TypeHierarchy": {
|
|
4910
|
+
"type": "object",
|
|
4911
|
+
"properties": {
|
|
4912
|
+
"base_type": {
|
|
4913
|
+
"type": "string",
|
|
4914
|
+
"description": "The base type that implies all other types",
|
|
4915
|
+
"example": "entity"
|
|
4916
|
+
},
|
|
4917
|
+
"description": {
|
|
4918
|
+
"type": "string",
|
|
4919
|
+
"description": "Explanation of type hierarchy behavior"
|
|
4920
|
+
},
|
|
4921
|
+
"restrictions": {
|
|
4922
|
+
"type": "array",
|
|
4923
|
+
"items": {
|
|
4924
|
+
"$ref": "#/components/schemas/TypeRestriction"
|
|
4925
|
+
},
|
|
4926
|
+
"description": "Types with restricted implication rules"
|
|
4927
|
+
}
|
|
4928
|
+
},
|
|
4929
|
+
"required": [
|
|
4930
|
+
"base_type",
|
|
4931
|
+
"description",
|
|
4932
|
+
"restrictions"
|
|
4933
|
+
],
|
|
4934
|
+
"description": "Type hierarchy. The base type implies all other types, with restrictions for certain types."
|
|
4935
|
+
},
|
|
4500
4936
|
"WildcardInfo": {
|
|
4501
4937
|
"type": "object",
|
|
4502
4938
|
"properties": {
|
|
@@ -4582,6 +5018,9 @@
|
|
|
4582
5018
|
]
|
|
4583
5019
|
}
|
|
4584
5020
|
},
|
|
5021
|
+
"type_hierarchy": {
|
|
5022
|
+
"$ref": "#/components/schemas/TypeHierarchy"
|
|
5023
|
+
},
|
|
4585
5024
|
"wildcards": {
|
|
4586
5025
|
"type": "object",
|
|
4587
5026
|
"properties": {
|
|
@@ -4642,6 +5081,7 @@
|
|
|
4642
5081
|
"verbs",
|
|
4643
5082
|
"types",
|
|
4644
5083
|
"implications",
|
|
5084
|
+
"type_hierarchy",
|
|
4645
5085
|
"wildcards",
|
|
4646
5086
|
"restrictions",
|
|
4647
5087
|
"default_roles"
|
|
@@ -4660,45 +5100,45 @@
|
|
|
4660
5100
|
"enum": [
|
|
4661
5101
|
"agent"
|
|
4662
5102
|
]
|
|
5103
|
+
},
|
|
5104
|
+
"warnings": {
|
|
5105
|
+
"type": "array",
|
|
5106
|
+
"items": {
|
|
5107
|
+
"type": "object",
|
|
5108
|
+
"properties": {
|
|
5109
|
+
"sub_agent_id": {
|
|
5110
|
+
"type": "string",
|
|
5111
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
5112
|
+
"description": "The sub-agent ID that has an issue"
|
|
5113
|
+
},
|
|
5114
|
+
"reason": {
|
|
5115
|
+
"type": "string",
|
|
5116
|
+
"enum": [
|
|
5117
|
+
"not_found",
|
|
5118
|
+
"not_an_agent",
|
|
5119
|
+
"disabled"
|
|
5120
|
+
],
|
|
5121
|
+
"description": "Why this is a warning: not_found (entity does not exist), not_an_agent (entity exists but is not an agent), or disabled (agent is disabled)"
|
|
5122
|
+
},
|
|
5123
|
+
"message": {
|
|
5124
|
+
"type": "string",
|
|
5125
|
+
"description": "Human-readable explanation"
|
|
5126
|
+
}
|
|
5127
|
+
},
|
|
5128
|
+
"required": [
|
|
5129
|
+
"sub_agent_id",
|
|
5130
|
+
"reason",
|
|
5131
|
+
"message"
|
|
5132
|
+
],
|
|
5133
|
+
"description": "Warning about a sub-agent reference that could not be validated. The agent is still created/updated, but this sub-agent may cause issues at invocation time.",
|
|
5134
|
+
"title": "AgentSubAgentWarning"
|
|
5135
|
+
},
|
|
5136
|
+
"description": "Warnings about sub-agent references that could not be validated. Present only when uses_agents contains references to non-existent, non-agent, or disabled entities."
|
|
4663
5137
|
}
|
|
4664
5138
|
}
|
|
4665
5139
|
}
|
|
4666
5140
|
]
|
|
4667
5141
|
},
|
|
4668
|
-
"SubAgentRef": {
|
|
4669
|
-
"type": "object",
|
|
4670
|
-
"properties": {
|
|
4671
|
-
"pi": {
|
|
4672
|
-
"type": "string",
|
|
4673
|
-
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$"
|
|
4674
|
-
},
|
|
4675
|
-
"label": {
|
|
4676
|
-
"type": "string",
|
|
4677
|
-
"maxLength": 200,
|
|
4678
|
-
"description": "Display label for the sub-agent"
|
|
4679
|
-
},
|
|
4680
|
-
"description": {
|
|
4681
|
-
"type": "string",
|
|
4682
|
-
"maxLength": 2000,
|
|
4683
|
-
"description": "Description of the sub-agent role"
|
|
4684
|
-
},
|
|
4685
|
-
"actions_required": {
|
|
4686
|
-
"type": "array",
|
|
4687
|
-
"items": {
|
|
4688
|
-
"type": "string"
|
|
4689
|
-
},
|
|
4690
|
-
"description": "Actions this sub-agent requires",
|
|
4691
|
-
"example": [
|
|
4692
|
-
"entity:view",
|
|
4693
|
-
"entity:update"
|
|
4694
|
-
]
|
|
4695
|
-
}
|
|
4696
|
-
},
|
|
4697
|
-
"required": [
|
|
4698
|
-
"pi",
|
|
4699
|
-
"actions_required"
|
|
4700
|
-
]
|
|
4701
|
-
},
|
|
4702
5142
|
"CreateAgentRequest": {
|
|
4703
5143
|
"type": "object",
|
|
4704
5144
|
"properties": {
|
|
@@ -4753,9 +5193,31 @@
|
|
|
4753
5193
|
"uses_agents": {
|
|
4754
5194
|
"type": "array",
|
|
4755
5195
|
"items": {
|
|
4756
|
-
"
|
|
5196
|
+
"type": "object",
|
|
5197
|
+
"properties": {
|
|
5198
|
+
"pi": {
|
|
5199
|
+
"type": "string",
|
|
5200
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
5201
|
+
"description": "Sub-agent entity ID. The sub-agent's actions_required will be fetched dynamically at invocation time."
|
|
5202
|
+
},
|
|
5203
|
+
"label": {
|
|
5204
|
+
"type": "string",
|
|
5205
|
+
"maxLength": 200,
|
|
5206
|
+
"description": "Optional display label override (defaults to sub-agent's own label)"
|
|
5207
|
+
},
|
|
5208
|
+
"description": {
|
|
5209
|
+
"type": "string",
|
|
5210
|
+
"maxLength": 2000,
|
|
5211
|
+
"description": "Optional description of the sub-agent's role in this orchestrator's workflow"
|
|
5212
|
+
}
|
|
5213
|
+
},
|
|
5214
|
+
"required": [
|
|
5215
|
+
"pi"
|
|
5216
|
+
],
|
|
5217
|
+
"description": "Reference to a sub-agent. Permissions are NOT declared here - they are fetched dynamically from the sub-agent's own manifest at invocation time. This means sub-agent permission changes propagate automatically without updating the orchestrator.",
|
|
5218
|
+
"title": "SubAgentRef"
|
|
4757
5219
|
},
|
|
4758
|
-
"description": "Sub-agents
|
|
5220
|
+
"description": "Sub-agents this orchestrator delegates work to. Only provide the sub-agent ID (pi) - their permissions are fetched dynamically at invocation time. Warnings are returned if any referenced sub-agents do not exist or are disabled."
|
|
4759
5221
|
},
|
|
4760
5222
|
"input_schema": {
|
|
4761
5223
|
"type": "object",
|
|
@@ -4885,10 +5347,18 @@
|
|
|
4885
5347
|
"additionalProperties": {
|
|
4886
5348
|
"nullable": true
|
|
4887
5349
|
},
|
|
4888
|
-
"description": "Nested removal structure
|
|
5350
|
+
"description": "Nested removal structure. Each key navigates into a nested object; leaf arrays specify keys to delete at that level.",
|
|
5351
|
+
"example": {
|
|
5352
|
+
"settings": {
|
|
5353
|
+
"notifications": [
|
|
5354
|
+
"email",
|
|
5355
|
+
"slack"
|
|
5356
|
+
]
|
|
5357
|
+
}
|
|
5358
|
+
}
|
|
4889
5359
|
}
|
|
4890
5360
|
],
|
|
4891
|
-
"description": "Properties to remove"
|
|
5361
|
+
"description": "Properties to remove. Use string[] for top-level keys (e.g., [\"old_field\"]), or nested objects for deep removal (e.g., { config: { options: [\"debug\"] } }). Dot notation like \"config.options.debug\" is NOT supported."
|
|
4892
5362
|
},
|
|
4893
5363
|
"relationships_add": {
|
|
4894
5364
|
"type": "array",
|
|
@@ -5020,9 +5490,31 @@
|
|
|
5020
5490
|
"uses_agents": {
|
|
5021
5491
|
"type": "array",
|
|
5022
5492
|
"items": {
|
|
5023
|
-
"
|
|
5493
|
+
"type": "object",
|
|
5494
|
+
"properties": {
|
|
5495
|
+
"pi": {
|
|
5496
|
+
"type": "string",
|
|
5497
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
5498
|
+
"description": "Sub-agent entity ID. The sub-agent's actions_required will be fetched dynamically at invocation time."
|
|
5499
|
+
},
|
|
5500
|
+
"label": {
|
|
5501
|
+
"type": "string",
|
|
5502
|
+
"maxLength": 200,
|
|
5503
|
+
"description": "Optional display label override (defaults to sub-agent's own label)"
|
|
5504
|
+
},
|
|
5505
|
+
"description": {
|
|
5506
|
+
"type": "string",
|
|
5507
|
+
"maxLength": 2000,
|
|
5508
|
+
"description": "Optional description of the sub-agent's role in this orchestrator's workflow"
|
|
5509
|
+
}
|
|
5510
|
+
},
|
|
5511
|
+
"required": [
|
|
5512
|
+
"pi"
|
|
5513
|
+
],
|
|
5514
|
+
"description": "Reference to a sub-agent. Permissions are NOT declared here - they are fetched dynamically from the sub-agent's own manifest at invocation time. This means sub-agent permission changes propagate automatically without updating the orchestrator.",
|
|
5515
|
+
"title": "SubAgentRef"
|
|
5024
5516
|
},
|
|
5025
|
-
"description": "Updated sub-
|
|
5517
|
+
"description": "Updated sub-agent references. Only provide sub-agent IDs (pi) - their permissions are fetched dynamically at invocation time."
|
|
5026
5518
|
},
|
|
5027
5519
|
"input_schema": {
|
|
5028
5520
|
"type": "object",
|
|
@@ -5137,6 +5629,45 @@
|
|
|
5137
5629
|
"grants_needed": {
|
|
5138
5630
|
"type": "boolean",
|
|
5139
5631
|
"description": "True if some agents need permission grants"
|
|
5632
|
+
},
|
|
5633
|
+
"warnings": {
|
|
5634
|
+
"type": "array",
|
|
5635
|
+
"items": {
|
|
5636
|
+
"type": "object",
|
|
5637
|
+
"properties": {
|
|
5638
|
+
"sub_agent_id": {
|
|
5639
|
+
"type": "string",
|
|
5640
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
5641
|
+
"description": "The sub-agent ID that could not be resolved"
|
|
5642
|
+
},
|
|
5643
|
+
"parent_agent_id": {
|
|
5644
|
+
"type": "string",
|
|
5645
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
5646
|
+
"description": "The orchestrator or parent agent that declared this sub-agent reference"
|
|
5647
|
+
},
|
|
5648
|
+
"reason": {
|
|
5649
|
+
"type": "string",
|
|
5650
|
+
"enum": [
|
|
5651
|
+
"not_found",
|
|
5652
|
+
"disabled"
|
|
5653
|
+
],
|
|
5654
|
+
"description": "Why the sub-agent was skipped: not_found (entity does not exist) or disabled (agent status is disabled)"
|
|
5655
|
+
},
|
|
5656
|
+
"message": {
|
|
5657
|
+
"type": "string",
|
|
5658
|
+
"description": "Human-readable explanation of the warning"
|
|
5659
|
+
}
|
|
5660
|
+
},
|
|
5661
|
+
"required": [
|
|
5662
|
+
"sub_agent_id",
|
|
5663
|
+
"parent_agent_id",
|
|
5664
|
+
"reason",
|
|
5665
|
+
"message"
|
|
5666
|
+
],
|
|
5667
|
+
"description": "Warning generated when a sub-agent reference cannot be resolved during dynamic permission lookup. The agent creation/invocation proceeds, but the sub-agent is skipped.",
|
|
5668
|
+
"title": "SubAgentWarning"
|
|
5669
|
+
},
|
|
5670
|
+
"description": "Warnings about sub-agents that were skipped"
|
|
5140
5671
|
}
|
|
5141
5672
|
},
|
|
5142
5673
|
"required": [
|
|
@@ -5277,7 +5808,7 @@
|
|
|
5277
5808
|
"target": {
|
|
5278
5809
|
"type": "string",
|
|
5279
5810
|
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
5280
|
-
"description": "
|
|
5811
|
+
"description": "Collection ID to grant the agent access to. All agent permissions are collection-scoped."
|
|
5281
5812
|
},
|
|
5282
5813
|
"job_collection": {
|
|
5283
5814
|
"type": "string",
|
|
@@ -5419,45 +5950,234 @@
|
|
|
5419
5950
|
"keys"
|
|
5420
5951
|
]
|
|
5421
5952
|
},
|
|
5422
|
-
"
|
|
5953
|
+
"VerifyAgentTokenResponse": {
|
|
5423
5954
|
"type": "object",
|
|
5424
5955
|
"properties": {
|
|
5425
|
-
"
|
|
5426
|
-
"type": "
|
|
5427
|
-
"description": "
|
|
5428
|
-
"example":
|
|
5956
|
+
"verification_token": {
|
|
5957
|
+
"type": "string",
|
|
5958
|
+
"description": "Token to deploy at your endpoint",
|
|
5959
|
+
"example": "vt_abc123def456..."
|
|
5429
5960
|
},
|
|
5430
|
-
"
|
|
5961
|
+
"agent_id": {
|
|
5431
5962
|
"type": "string",
|
|
5432
5963
|
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
5433
|
-
"description": "
|
|
5434
|
-
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
5964
|
+
"description": "Agent ID to include in verification response"
|
|
5435
5965
|
},
|
|
5436
|
-
"
|
|
5966
|
+
"endpoint": {
|
|
5437
5967
|
"type": "string",
|
|
5438
|
-
"
|
|
5439
|
-
"description": "
|
|
5440
|
-
"example": "bafyreibug443cnd4endcwinwttw3c3dzmcl2ikht64xzn5qg56bix3usfy"
|
|
5968
|
+
"format": "uri",
|
|
5969
|
+
"description": "Your agent endpoint URL"
|
|
5441
5970
|
},
|
|
5442
|
-
"
|
|
5971
|
+
"instructions": {
|
|
5443
5972
|
"type": "string",
|
|
5444
|
-
"description": "
|
|
5445
|
-
|
|
5973
|
+
"description": "How to complete verification"
|
|
5974
|
+
},
|
|
5975
|
+
"expires_at": {
|
|
5976
|
+
"type": "string",
|
|
5977
|
+
"format": "date-time",
|
|
5978
|
+
"description": "Token expiration time"
|
|
5446
5979
|
}
|
|
5447
5980
|
},
|
|
5448
5981
|
"required": [
|
|
5449
|
-
"
|
|
5450
|
-
"
|
|
5451
|
-
"
|
|
5452
|
-
"
|
|
5982
|
+
"verification_token",
|
|
5983
|
+
"agent_id",
|
|
5984
|
+
"endpoint",
|
|
5985
|
+
"instructions",
|
|
5986
|
+
"expires_at"
|
|
5453
5987
|
]
|
|
5454
5988
|
},
|
|
5455
|
-
"
|
|
5989
|
+
"VerifyAgentSuccessResponse": {
|
|
5456
5990
|
"type": "object",
|
|
5457
5991
|
"properties": {
|
|
5458
|
-
"
|
|
5459
|
-
"type": "
|
|
5460
|
-
"
|
|
5992
|
+
"verified": {
|
|
5993
|
+
"type": "boolean",
|
|
5994
|
+
"enum": [
|
|
5995
|
+
true
|
|
5996
|
+
]
|
|
5997
|
+
},
|
|
5998
|
+
"verified_at": {
|
|
5999
|
+
"type": "string",
|
|
6000
|
+
"format": "date-time",
|
|
6001
|
+
"description": "When the endpoint was verified"
|
|
6002
|
+
}
|
|
6003
|
+
},
|
|
6004
|
+
"required": [
|
|
6005
|
+
"verified",
|
|
6006
|
+
"verified_at"
|
|
6007
|
+
]
|
|
6008
|
+
},
|
|
6009
|
+
"VerifyAgentFailureResponse": {
|
|
6010
|
+
"type": "object",
|
|
6011
|
+
"properties": {
|
|
6012
|
+
"verified": {
|
|
6013
|
+
"type": "boolean",
|
|
6014
|
+
"enum": [
|
|
6015
|
+
false
|
|
6016
|
+
]
|
|
6017
|
+
},
|
|
6018
|
+
"error": {
|
|
6019
|
+
"type": "string",
|
|
6020
|
+
"enum": [
|
|
6021
|
+
"no_token",
|
|
6022
|
+
"token_expired",
|
|
6023
|
+
"fetch_failed",
|
|
6024
|
+
"invalid_response",
|
|
6025
|
+
"token_mismatch",
|
|
6026
|
+
"agent_id_mismatch"
|
|
6027
|
+
],
|
|
6028
|
+
"description": "Verification error code"
|
|
6029
|
+
},
|
|
6030
|
+
"message": {
|
|
6031
|
+
"type": "string",
|
|
6032
|
+
"description": "Human-readable error description"
|
|
6033
|
+
}
|
|
6034
|
+
},
|
|
6035
|
+
"required": [
|
|
6036
|
+
"verified",
|
|
6037
|
+
"error",
|
|
6038
|
+
"message"
|
|
6039
|
+
]
|
|
6040
|
+
},
|
|
6041
|
+
"VerifyAgentRequest": {
|
|
6042
|
+
"type": "object",
|
|
6043
|
+
"properties": {
|
|
6044
|
+
"confirm": {
|
|
6045
|
+
"type": "boolean",
|
|
6046
|
+
"description": "Set to true to perform verification. Omit or false to generate/get verification token.",
|
|
6047
|
+
"example": true
|
|
6048
|
+
}
|
|
6049
|
+
}
|
|
6050
|
+
},
|
|
6051
|
+
"EntityRef": {
|
|
6052
|
+
"type": "object",
|
|
6053
|
+
"properties": {
|
|
6054
|
+
"pi": {
|
|
6055
|
+
"type": "string",
|
|
6056
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
6057
|
+
"description": "Entity ID (ULID format)",
|
|
6058
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
6059
|
+
},
|
|
6060
|
+
"type": {
|
|
6061
|
+
"type": "string"
|
|
6062
|
+
},
|
|
6063
|
+
"label": {
|
|
6064
|
+
"type": "string"
|
|
6065
|
+
}
|
|
6066
|
+
},
|
|
6067
|
+
"required": [
|
|
6068
|
+
"pi"
|
|
6069
|
+
]
|
|
6070
|
+
},
|
|
6071
|
+
"JobStatusResponse": {
|
|
6072
|
+
"type": "object",
|
|
6073
|
+
"properties": {
|
|
6074
|
+
"id": {
|
|
6075
|
+
"type": "string",
|
|
6076
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
6077
|
+
"description": "Entity ID (ULID format)",
|
|
6078
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
6079
|
+
},
|
|
6080
|
+
"cid": {
|
|
6081
|
+
"type": "string",
|
|
6082
|
+
"minLength": 1,
|
|
6083
|
+
"description": "Content Identifier (CID) - content-addressed hash",
|
|
6084
|
+
"example": "bafyreibug443cnd4endcwinwttw3c3dzmcl2ikht64xzn5qg56bix3usfy"
|
|
6085
|
+
},
|
|
6086
|
+
"status": {
|
|
6087
|
+
"type": "string",
|
|
6088
|
+
"enum": [
|
|
6089
|
+
"running",
|
|
6090
|
+
"done",
|
|
6091
|
+
"error"
|
|
6092
|
+
],
|
|
6093
|
+
"description": "Job collection status",
|
|
6094
|
+
"example": "running"
|
|
6095
|
+
},
|
|
6096
|
+
"started_at": {
|
|
6097
|
+
"type": "string",
|
|
6098
|
+
"format": "date-time",
|
|
6099
|
+
"description": "ISO 8601 datetime",
|
|
6100
|
+
"example": "2025-12-26T12:00:00.000Z"
|
|
6101
|
+
},
|
|
6102
|
+
"completed_at": {
|
|
6103
|
+
"type": "string",
|
|
6104
|
+
"nullable": true,
|
|
6105
|
+
"format": "date-time",
|
|
6106
|
+
"description": "ISO 8601 datetime",
|
|
6107
|
+
"example": "2025-12-26T12:00:00.000Z"
|
|
6108
|
+
},
|
|
6109
|
+
"agent": {
|
|
6110
|
+
"$ref": "#/components/schemas/EntityRef"
|
|
6111
|
+
},
|
|
6112
|
+
"target": {
|
|
6113
|
+
"$ref": "#/components/schemas/EntityRef"
|
|
6114
|
+
},
|
|
6115
|
+
"main_agent": {
|
|
6116
|
+
"$ref": "#/components/schemas/EntityRef"
|
|
6117
|
+
},
|
|
6118
|
+
"files_count": {
|
|
6119
|
+
"type": "integer",
|
|
6120
|
+
"minimum": 0,
|
|
6121
|
+
"description": "Number of files contained in this job collection",
|
|
6122
|
+
"example": 5
|
|
6123
|
+
},
|
|
6124
|
+
"sub_jobs_count": {
|
|
6125
|
+
"type": "integer",
|
|
6126
|
+
"minimum": 0,
|
|
6127
|
+
"description": "Number of sub-job collections",
|
|
6128
|
+
"example": 2
|
|
6129
|
+
}
|
|
6130
|
+
},
|
|
6131
|
+
"required": [
|
|
6132
|
+
"id",
|
|
6133
|
+
"cid",
|
|
6134
|
+
"status",
|
|
6135
|
+
"started_at",
|
|
6136
|
+
"completed_at",
|
|
6137
|
+
"agent",
|
|
6138
|
+
"files_count",
|
|
6139
|
+
"sub_jobs_count"
|
|
6140
|
+
]
|
|
6141
|
+
},
|
|
6142
|
+
"Event": {
|
|
6143
|
+
"type": "object",
|
|
6144
|
+
"properties": {
|
|
6145
|
+
"id": {
|
|
6146
|
+
"type": "integer",
|
|
6147
|
+
"description": "Auto-increment event ID (use as cursor)",
|
|
6148
|
+
"example": 12346
|
|
6149
|
+
},
|
|
6150
|
+
"pi": {
|
|
6151
|
+
"type": "string",
|
|
6152
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
6153
|
+
"description": "Entity ID that changed",
|
|
6154
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
6155
|
+
},
|
|
6156
|
+
"cid": {
|
|
6157
|
+
"type": "string",
|
|
6158
|
+
"minLength": 1,
|
|
6159
|
+
"description": "New manifest CID",
|
|
6160
|
+
"example": "bafyreibug443cnd4endcwinwttw3c3dzmcl2ikht64xzn5qg56bix3usfy"
|
|
6161
|
+
},
|
|
6162
|
+
"ts": {
|
|
6163
|
+
"type": "string",
|
|
6164
|
+
"description": "ISO timestamp of the event",
|
|
6165
|
+
"example": "2025-01-15T12:00:01Z"
|
|
6166
|
+
}
|
|
6167
|
+
},
|
|
6168
|
+
"required": [
|
|
6169
|
+
"id",
|
|
6170
|
+
"pi",
|
|
6171
|
+
"cid",
|
|
6172
|
+
"ts"
|
|
6173
|
+
]
|
|
6174
|
+
},
|
|
6175
|
+
"EventsListResponse": {
|
|
6176
|
+
"type": "object",
|
|
6177
|
+
"properties": {
|
|
6178
|
+
"events": {
|
|
6179
|
+
"type": "array",
|
|
6180
|
+
"items": {
|
|
5461
6181
|
"$ref": "#/components/schemas/Event"
|
|
5462
6182
|
},
|
|
5463
6183
|
"description": "List of events (newest first)"
|
|
@@ -6023,16 +6743,16 @@
|
|
|
6023
6743
|
"type": "integer",
|
|
6024
6744
|
"minimum": 1,
|
|
6025
6745
|
"maximum": 100,
|
|
6026
|
-
"default":
|
|
6746
|
+
"default": 25,
|
|
6027
6747
|
"description": "Maximum number of results to return",
|
|
6028
|
-
"example":
|
|
6748
|
+
"example": 25
|
|
6029
6749
|
},
|
|
6030
6750
|
"k_explore": {
|
|
6031
6751
|
"type": "integer",
|
|
6032
6752
|
"minimum": 1,
|
|
6033
6753
|
"maximum": 300,
|
|
6034
6754
|
"description": "Beam width for exploration (default: k * 3)",
|
|
6035
|
-
"example":
|
|
6755
|
+
"example": 75
|
|
6036
6756
|
},
|
|
6037
6757
|
"collection": {
|
|
6038
6758
|
"type": "string",
|
|
@@ -6044,101 +6764,358 @@
|
|
|
6044
6764
|
"path"
|
|
6045
6765
|
]
|
|
6046
6766
|
},
|
|
6047
|
-
"
|
|
6767
|
+
"TextPart": {
|
|
6048
6768
|
"type": "object",
|
|
6049
6769
|
"properties": {
|
|
6050
|
-
"
|
|
6051
|
-
"type": "string",
|
|
6052
|
-
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
6053
|
-
"description": "Entity ID (ULID format)",
|
|
6054
|
-
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
6055
|
-
},
|
|
6056
|
-
"ver": {
|
|
6057
|
-
"type": "integer",
|
|
6058
|
-
"minimum": 0,
|
|
6059
|
-
"exclusiveMinimum": true,
|
|
6060
|
-
"description": "Entity version number",
|
|
6061
|
-
"example": 1
|
|
6062
|
-
},
|
|
6063
|
-
"cid": {
|
|
6064
|
-
"type": "string",
|
|
6065
|
-
"minLength": 1,
|
|
6066
|
-
"description": "Content Identifier (CID) - content-addressed hash",
|
|
6067
|
-
"example": "bafyreibug443cnd4endcwinwttw3c3dzmcl2ikht64xzn5qg56bix3usfy"
|
|
6068
|
-
},
|
|
6069
|
-
"arweave_tx": {
|
|
6070
|
-
"type": "string",
|
|
6071
|
-
"description": "Arweave transaction ID",
|
|
6072
|
-
"example": "abc123xyz..."
|
|
6073
|
-
},
|
|
6074
|
-
"arweave_url": {
|
|
6770
|
+
"type": {
|
|
6075
6771
|
"type": "string",
|
|
6076
|
-
"
|
|
6077
|
-
|
|
6078
|
-
|
|
6772
|
+
"enum": [
|
|
6773
|
+
"text"
|
|
6774
|
+
]
|
|
6079
6775
|
},
|
|
6080
|
-
"
|
|
6081
|
-
"type": "
|
|
6082
|
-
"description": "Unix timestamp (milliseconds) of the operation",
|
|
6083
|
-
"example": 1704455200000
|
|
6776
|
+
"text": {
|
|
6777
|
+
"type": "string"
|
|
6084
6778
|
}
|
|
6085
6779
|
},
|
|
6086
6780
|
"required": [
|
|
6087
|
-
"
|
|
6088
|
-
"
|
|
6089
|
-
"cid",
|
|
6090
|
-
"arweave_tx",
|
|
6091
|
-
"arweave_url",
|
|
6092
|
-
"ts"
|
|
6781
|
+
"type",
|
|
6782
|
+
"text"
|
|
6093
6783
|
]
|
|
6094
6784
|
},
|
|
6095
|
-
"
|
|
6785
|
+
"ToolPart": {
|
|
6096
6786
|
"type": "object",
|
|
6097
6787
|
"properties": {
|
|
6098
|
-
"
|
|
6099
|
-
"type": "string"
|
|
6100
|
-
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
6101
|
-
"description": "Entity ID (ULID format)",
|
|
6102
|
-
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
6788
|
+
"type": {
|
|
6789
|
+
"type": "string"
|
|
6103
6790
|
},
|
|
6104
|
-
"
|
|
6105
|
-
"type": "
|
|
6106
|
-
"minimum": 0,
|
|
6107
|
-
"exclusiveMinimum": true,
|
|
6108
|
-
"description": "Entity version number",
|
|
6109
|
-
"example": 1
|
|
6791
|
+
"toolCallId": {
|
|
6792
|
+
"type": "string"
|
|
6110
6793
|
},
|
|
6111
|
-
"
|
|
6112
|
-
"type": "string"
|
|
6113
|
-
"minLength": 1,
|
|
6114
|
-
"description": "Content Identifier (CID) - content-addressed hash",
|
|
6115
|
-
"example": "bafyreibug443cnd4endcwinwttw3c3dzmcl2ikht64xzn5qg56bix3usfy"
|
|
6794
|
+
"toolName": {
|
|
6795
|
+
"type": "string"
|
|
6116
6796
|
},
|
|
6117
|
-
"
|
|
6118
|
-
"type": "
|
|
6119
|
-
"
|
|
6120
|
-
"
|
|
6121
|
-
|
|
6122
|
-
"description": "Attestation upload status"
|
|
6797
|
+
"args": {
|
|
6798
|
+
"type": "object",
|
|
6799
|
+
"additionalProperties": {
|
|
6800
|
+
"nullable": true
|
|
6801
|
+
}
|
|
6123
6802
|
},
|
|
6124
|
-
"
|
|
6803
|
+
"output": {
|
|
6804
|
+
"nullable": true
|
|
6805
|
+
},
|
|
6806
|
+
"state": {
|
|
6125
6807
|
"type": "string",
|
|
6126
|
-
"
|
|
6127
|
-
|
|
6808
|
+
"enum": [
|
|
6809
|
+
"partial-call",
|
|
6810
|
+
"call",
|
|
6811
|
+
"output-available"
|
|
6812
|
+
]
|
|
6128
6813
|
}
|
|
6129
6814
|
},
|
|
6130
6815
|
"required": [
|
|
6131
|
-
"
|
|
6132
|
-
"ver",
|
|
6133
|
-
"cid",
|
|
6134
|
-
"attestation_status",
|
|
6135
|
-
"message"
|
|
6816
|
+
"type"
|
|
6136
6817
|
]
|
|
6137
6818
|
},
|
|
6138
|
-
"
|
|
6819
|
+
"MessagePart": {
|
|
6820
|
+
"anyOf": [
|
|
6821
|
+
{
|
|
6822
|
+
"$ref": "#/components/schemas/TextPart"
|
|
6823
|
+
},
|
|
6824
|
+
{
|
|
6825
|
+
"$ref": "#/components/schemas/ToolPart"
|
|
6826
|
+
},
|
|
6827
|
+
{
|
|
6828
|
+
"type": "object",
|
|
6829
|
+
"properties": {
|
|
6830
|
+
"type": {
|
|
6831
|
+
"type": "string"
|
|
6832
|
+
}
|
|
6833
|
+
},
|
|
6834
|
+
"required": [
|
|
6835
|
+
"type"
|
|
6836
|
+
]
|
|
6837
|
+
}
|
|
6838
|
+
]
|
|
6839
|
+
},
|
|
6840
|
+
"ChatMessage": {
|
|
6139
6841
|
"type": "object",
|
|
6140
6842
|
"properties": {
|
|
6141
|
-
"
|
|
6843
|
+
"id": {
|
|
6844
|
+
"type": "string"
|
|
6845
|
+
},
|
|
6846
|
+
"role": {
|
|
6847
|
+
"type": "string",
|
|
6848
|
+
"enum": [
|
|
6849
|
+
"user",
|
|
6850
|
+
"assistant",
|
|
6851
|
+
"system",
|
|
6852
|
+
"tool"
|
|
6853
|
+
]
|
|
6854
|
+
},
|
|
6855
|
+
"parts": {
|
|
6856
|
+
"type": "array",
|
|
6857
|
+
"items": {
|
|
6858
|
+
"$ref": "#/components/schemas/MessagePart"
|
|
6859
|
+
}
|
|
6860
|
+
},
|
|
6861
|
+
"content": {
|
|
6862
|
+
"type": "string"
|
|
6863
|
+
}
|
|
6864
|
+
},
|
|
6865
|
+
"required": [
|
|
6866
|
+
"id",
|
|
6867
|
+
"role"
|
|
6868
|
+
]
|
|
6869
|
+
},
|
|
6870
|
+
"SendChatRequest": {
|
|
6871
|
+
"type": "object",
|
|
6872
|
+
"properties": {
|
|
6873
|
+
"messages": {
|
|
6874
|
+
"type": "array",
|
|
6875
|
+
"items": {
|
|
6876
|
+
"$ref": "#/components/schemas/ChatMessage"
|
|
6877
|
+
},
|
|
6878
|
+
"description": "Array of chat messages in AI SDK v5 UIMessage format"
|
|
6879
|
+
}
|
|
6880
|
+
},
|
|
6881
|
+
"required": [
|
|
6882
|
+
"messages"
|
|
6883
|
+
]
|
|
6884
|
+
},
|
|
6885
|
+
"ChatSession": {
|
|
6886
|
+
"type": "object",
|
|
6887
|
+
"properties": {
|
|
6888
|
+
"id": {
|
|
6889
|
+
"type": "string",
|
|
6890
|
+
"description": "Chat session ID",
|
|
6891
|
+
"example": "chat_abc123"
|
|
6892
|
+
},
|
|
6893
|
+
"createdAt": {
|
|
6894
|
+
"type": "string",
|
|
6895
|
+
"description": "ISO 8601 creation timestamp",
|
|
6896
|
+
"example": "2025-01-14T12:00:00.000Z"
|
|
6897
|
+
},
|
|
6898
|
+
"updatedAt": {
|
|
6899
|
+
"type": "string",
|
|
6900
|
+
"description": "ISO 8601 last update timestamp",
|
|
6901
|
+
"example": "2025-01-14T12:30:00.000Z"
|
|
6902
|
+
},
|
|
6903
|
+
"ownerId": {
|
|
6904
|
+
"type": "string",
|
|
6905
|
+
"nullable": true,
|
|
6906
|
+
"description": "Owner user ID (Arke PI or Supabase ID)"
|
|
6907
|
+
},
|
|
6908
|
+
"title": {
|
|
6909
|
+
"type": "string",
|
|
6910
|
+
"nullable": true,
|
|
6911
|
+
"description": "Auto-generated chat title from first message",
|
|
6912
|
+
"example": "Help me understand the codebase..."
|
|
6913
|
+
},
|
|
6914
|
+
"messages": {
|
|
6915
|
+
"type": "array",
|
|
6916
|
+
"items": {
|
|
6917
|
+
"type": "object",
|
|
6918
|
+
"properties": {
|
|
6919
|
+
"id": {
|
|
6920
|
+
"type": "string"
|
|
6921
|
+
},
|
|
6922
|
+
"role": {
|
|
6923
|
+
"type": "string",
|
|
6924
|
+
"enum": [
|
|
6925
|
+
"user",
|
|
6926
|
+
"assistant",
|
|
6927
|
+
"system",
|
|
6928
|
+
"tool"
|
|
6929
|
+
]
|
|
6930
|
+
},
|
|
6931
|
+
"content": {
|
|
6932
|
+
"type": "string"
|
|
6933
|
+
},
|
|
6934
|
+
"createdAt": {
|
|
6935
|
+
"type": "string"
|
|
6936
|
+
},
|
|
6937
|
+
"toolInvocations": {
|
|
6938
|
+
"type": "array",
|
|
6939
|
+
"items": {
|
|
6940
|
+
"type": "object",
|
|
6941
|
+
"properties": {
|
|
6942
|
+
"toolCallId": {
|
|
6943
|
+
"type": "string"
|
|
6944
|
+
},
|
|
6945
|
+
"toolName": {
|
|
6946
|
+
"type": "string"
|
|
6947
|
+
},
|
|
6948
|
+
"args": {
|
|
6949
|
+
"type": "object",
|
|
6950
|
+
"additionalProperties": {
|
|
6951
|
+
"nullable": true
|
|
6952
|
+
}
|
|
6953
|
+
},
|
|
6954
|
+
"result": {
|
|
6955
|
+
"nullable": true
|
|
6956
|
+
},
|
|
6957
|
+
"state": {
|
|
6958
|
+
"type": "string"
|
|
6959
|
+
}
|
|
6960
|
+
},
|
|
6961
|
+
"required": [
|
|
6962
|
+
"toolCallId",
|
|
6963
|
+
"toolName",
|
|
6964
|
+
"state"
|
|
6965
|
+
]
|
|
6966
|
+
}
|
|
6967
|
+
}
|
|
6968
|
+
},
|
|
6969
|
+
"required": [
|
|
6970
|
+
"id",
|
|
6971
|
+
"role",
|
|
6972
|
+
"content",
|
|
6973
|
+
"createdAt"
|
|
6974
|
+
]
|
|
6975
|
+
},
|
|
6976
|
+
"description": "Full message history (only included in session detail)"
|
|
6977
|
+
}
|
|
6978
|
+
},
|
|
6979
|
+
"required": [
|
|
6980
|
+
"id",
|
|
6981
|
+
"createdAt",
|
|
6982
|
+
"updatedAt",
|
|
6983
|
+
"ownerId",
|
|
6984
|
+
"title"
|
|
6985
|
+
]
|
|
6986
|
+
},
|
|
6987
|
+
"ChatSessionDeleteResponse": {
|
|
6988
|
+
"type": "object",
|
|
6989
|
+
"properties": {
|
|
6990
|
+
"success": {
|
|
6991
|
+
"type": "boolean"
|
|
6992
|
+
}
|
|
6993
|
+
},
|
|
6994
|
+
"required": [
|
|
6995
|
+
"success"
|
|
6996
|
+
]
|
|
6997
|
+
},
|
|
6998
|
+
"AttestationResponse": {
|
|
6999
|
+
"type": "object",
|
|
7000
|
+
"properties": {
|
|
7001
|
+
"pi": {
|
|
7002
|
+
"type": "string",
|
|
7003
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
7004
|
+
"description": "Entity ID (ULID format)",
|
|
7005
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
7006
|
+
},
|
|
7007
|
+
"ver": {
|
|
7008
|
+
"type": "integer",
|
|
7009
|
+
"minimum": 0,
|
|
7010
|
+
"exclusiveMinimum": true,
|
|
7011
|
+
"description": "Entity version number",
|
|
7012
|
+
"example": 1
|
|
7013
|
+
},
|
|
7014
|
+
"cid": {
|
|
7015
|
+
"type": "string",
|
|
7016
|
+
"minLength": 1,
|
|
7017
|
+
"description": "Content Identifier (CID) - content-addressed hash",
|
|
7018
|
+
"example": "bafyreibug443cnd4endcwinwttw3c3dzmcl2ikht64xzn5qg56bix3usfy"
|
|
7019
|
+
},
|
|
7020
|
+
"arweave_tx": {
|
|
7021
|
+
"type": "string",
|
|
7022
|
+
"description": "Arweave transaction ID",
|
|
7023
|
+
"example": "abc123xyz..."
|
|
7024
|
+
},
|
|
7025
|
+
"arweave_url": {
|
|
7026
|
+
"type": "string",
|
|
7027
|
+
"format": "uri",
|
|
7028
|
+
"description": "Arweave gateway URL for direct access",
|
|
7029
|
+
"example": "https://arweave.net/abc123xyz..."
|
|
7030
|
+
},
|
|
7031
|
+
"ts": {
|
|
7032
|
+
"type": "number",
|
|
7033
|
+
"description": "Unix timestamp (milliseconds) of the operation",
|
|
7034
|
+
"example": 1704455200000
|
|
7035
|
+
}
|
|
7036
|
+
},
|
|
7037
|
+
"required": [
|
|
7038
|
+
"pi",
|
|
7039
|
+
"ver",
|
|
7040
|
+
"cid",
|
|
7041
|
+
"arweave_tx",
|
|
7042
|
+
"arweave_url",
|
|
7043
|
+
"ts"
|
|
7044
|
+
]
|
|
7045
|
+
},
|
|
7046
|
+
"AttestationPendingResponse": {
|
|
7047
|
+
"type": "object",
|
|
7048
|
+
"properties": {
|
|
7049
|
+
"pi": {
|
|
7050
|
+
"type": "string",
|
|
7051
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
7052
|
+
"description": "Entity ID (ULID format)",
|
|
7053
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
7054
|
+
},
|
|
7055
|
+
"ver": {
|
|
7056
|
+
"type": "integer",
|
|
7057
|
+
"minimum": 0,
|
|
7058
|
+
"exclusiveMinimum": true,
|
|
7059
|
+
"description": "Entity version number",
|
|
7060
|
+
"example": 1
|
|
7061
|
+
},
|
|
7062
|
+
"cid": {
|
|
7063
|
+
"type": "string",
|
|
7064
|
+
"minLength": 1,
|
|
7065
|
+
"description": "Content Identifier (CID) - content-addressed hash",
|
|
7066
|
+
"example": "bafyreibug443cnd4endcwinwttw3c3dzmcl2ikht64xzn5qg56bix3usfy"
|
|
7067
|
+
},
|
|
7068
|
+
"attestation_status": {
|
|
7069
|
+
"type": "string",
|
|
7070
|
+
"enum": [
|
|
7071
|
+
"pending"
|
|
7072
|
+
],
|
|
7073
|
+
"description": "Attestation upload status"
|
|
7074
|
+
},
|
|
7075
|
+
"message": {
|
|
7076
|
+
"type": "string",
|
|
7077
|
+
"description": "Status message",
|
|
7078
|
+
"example": "Attestation upload in progress"
|
|
7079
|
+
}
|
|
7080
|
+
},
|
|
7081
|
+
"required": [
|
|
7082
|
+
"pi",
|
|
7083
|
+
"ver",
|
|
7084
|
+
"cid",
|
|
7085
|
+
"attestation_status",
|
|
7086
|
+
"message"
|
|
7087
|
+
]
|
|
7088
|
+
},
|
|
7089
|
+
"ChainHeadResponse": {
|
|
7090
|
+
"type": "object",
|
|
7091
|
+
"properties": {
|
|
7092
|
+
"seq": {
|
|
7093
|
+
"type": "integer",
|
|
7094
|
+
"description": "Sequence number of the latest attestation",
|
|
7095
|
+
"example": 784
|
|
7096
|
+
},
|
|
7097
|
+
"tx": {
|
|
7098
|
+
"type": "string",
|
|
7099
|
+
"description": "Arweave transaction ID",
|
|
7100
|
+
"example": "Rxv_BpobNBUr0x5DstsAEUVxCO12hKxv7cnHnGLYp2c"
|
|
7101
|
+
},
|
|
7102
|
+
"arweave_url": {
|
|
7103
|
+
"type": "string",
|
|
7104
|
+
"format": "uri",
|
|
7105
|
+
"description": "Arweave gateway URL for direct access",
|
|
7106
|
+
"example": "https://arweave.net/Rxv_BpobNBUr0x5DstsAEUVxCO12hKxv7cnHnGLYp2c"
|
|
7107
|
+
}
|
|
7108
|
+
},
|
|
7109
|
+
"required": [
|
|
7110
|
+
"seq",
|
|
7111
|
+
"tx",
|
|
7112
|
+
"arweave_url"
|
|
7113
|
+
]
|
|
7114
|
+
},
|
|
7115
|
+
"VerifyAttestationResponse": {
|
|
7116
|
+
"type": "object",
|
|
7117
|
+
"properties": {
|
|
7118
|
+
"arweave_tx": {
|
|
6142
7119
|
"type": "string"
|
|
6143
7120
|
},
|
|
6144
7121
|
"attestation": {
|
|
@@ -6231,13 +7208,35 @@
|
|
|
6231
7208
|
},
|
|
6232
7209
|
"x-arke-version": "1.0.0",
|
|
6233
7210
|
"paths": {
|
|
7211
|
+
"/ops-reference": {
|
|
7212
|
+
"get": {
|
|
7213
|
+
"tags": [
|
|
7214
|
+
"Documentation"
|
|
7215
|
+
],
|
|
7216
|
+
"summary": "Get LLM-friendly API reference",
|
|
7217
|
+
"description": "Returns a condensed, plain-text API operations reference optimized for LLM consumption.\n\nThis endpoint provides the same information as the OpenAPI spec but in a format that:\n- Uses ~80% fewer tokens than the full OpenAPI JSON\n- Preserves full endpoint descriptions\n- Organizes operations by category\n- Marks required fields with `*` suffix\n- Includes auth requirements inline\n\n**Format example:**\n```\n## Collections\nPOST /collections [required] - Create a new collection\n body: {label*:string, description:string}\n\n Creates a collection with the authenticated user as owner.\n```\n\nUse this for injecting API knowledge into LLM system prompts.",
|
|
7218
|
+
"responses": {
|
|
7219
|
+
"200": {
|
|
7220
|
+
"description": "Condensed API operations reference",
|
|
7221
|
+
"content": {
|
|
7222
|
+
"text/plain": {
|
|
7223
|
+
"schema": {
|
|
7224
|
+
"type": "string",
|
|
7225
|
+
"example": "# Arke API Operations Reference\n\n## Auth & Users\nPOST /auth/register [jwt-only] - Register new user\n..."
|
|
7226
|
+
}
|
|
7227
|
+
}
|
|
7228
|
+
}
|
|
7229
|
+
}
|
|
7230
|
+
}
|
|
7231
|
+
}
|
|
7232
|
+
},
|
|
6234
7233
|
"/auth/register": {
|
|
6235
7234
|
"post": {
|
|
6236
7235
|
"tags": [
|
|
6237
7236
|
"Auth"
|
|
6238
7237
|
],
|
|
6239
7238
|
"summary": "Register new user",
|
|
6240
|
-
"description": "Creates a user entity from JWT claims. Idempotent - returns existing user if already registered
|
|
7239
|
+
"description": "Creates a user entity from JWT claims. Idempotent - returns existing user if already registered.\n\n---\n**Permission:** `user:create` \n**Auth:** jwt-only",
|
|
6241
7240
|
"x-arke-action": "user:create",
|
|
6242
7241
|
"x-arke-auth": "jwt-only",
|
|
6243
7242
|
"x-arke-tier": "standard",
|
|
@@ -6302,16 +7301,13 @@
|
|
|
6302
7301
|
"Users"
|
|
6303
7302
|
],
|
|
6304
7303
|
"summary": "Get current user",
|
|
6305
|
-
"description": "Returns the authenticated user's entity
|
|
7304
|
+
"description": "Returns the authenticated user's entity.\n\n---\n**Permission:** `user:view` \n**Auth:** required",
|
|
6306
7305
|
"x-arke-action": "user:view",
|
|
6307
7306
|
"x-arke-auth": "required",
|
|
6308
7307
|
"x-arke-tier": "standard",
|
|
6309
7308
|
"security": [
|
|
6310
7309
|
{
|
|
6311
7310
|
"bearerAuth": []
|
|
6312
|
-
},
|
|
6313
|
-
{
|
|
6314
|
-
"apiKeyAuth": []
|
|
6315
7311
|
}
|
|
6316
7312
|
],
|
|
6317
7313
|
"responses": {
|
|
@@ -6350,7 +7346,7 @@
|
|
|
6350
7346
|
"Users"
|
|
6351
7347
|
],
|
|
6352
7348
|
"summary": "Get user by ID",
|
|
6353
|
-
"description": "Returns a user entity by ID. May require authentication depending on permissions
|
|
7349
|
+
"description": "Returns a user entity by ID. May require authentication depending on permissions.\n\n---\n**Permission:** `user:view` \n**Auth:** optional",
|
|
6354
7350
|
"x-arke-action": "user:view",
|
|
6355
7351
|
"x-arke-auth": "optional",
|
|
6356
7352
|
"x-arke-tier": "standard",
|
|
@@ -6412,16 +7408,13 @@
|
|
|
6412
7408
|
"Users"
|
|
6413
7409
|
],
|
|
6414
7410
|
"summary": "Update user profile",
|
|
6415
|
-
"description": "Updates a user's profile. Requires user:update permission (typically self-ownership)
|
|
7411
|
+
"description": "Updates a user's profile. Requires user:update permission (typically self-ownership).\n\n---\n**Permission:** `user:update` \n**Auth:** required",
|
|
6416
7412
|
"x-arke-action": "user:update",
|
|
6417
7413
|
"x-arke-auth": "required",
|
|
6418
7414
|
"x-arke-tier": "standard",
|
|
6419
7415
|
"security": [
|
|
6420
7416
|
{
|
|
6421
7417
|
"bearerAuth": []
|
|
6422
|
-
},
|
|
6423
|
-
{
|
|
6424
|
-
"apiKeyAuth": []
|
|
6425
7418
|
}
|
|
6426
7419
|
],
|
|
6427
7420
|
"parameters": [
|
|
@@ -6548,16 +7541,13 @@
|
|
|
6548
7541
|
"API Keys"
|
|
6549
7542
|
],
|
|
6550
7543
|
"summary": "Create API key",
|
|
6551
|
-
"description": "Creates a new API key for the authenticated user. The full key is only returned once - store it securely
|
|
7544
|
+
"description": "Creates a new API key for the authenticated user. The full key is only returned once - store it securely.\n\n---\n**Permission:** `user:credentials` \n**Auth:** required",
|
|
6552
7545
|
"x-arke-action": "user:credentials",
|
|
6553
7546
|
"x-arke-auth": "required",
|
|
6554
7547
|
"x-arke-tier": "standard",
|
|
6555
7548
|
"security": [
|
|
6556
7549
|
{
|
|
6557
7550
|
"bearerAuth": []
|
|
6558
|
-
},
|
|
6559
|
-
{
|
|
6560
|
-
"apiKeyAuth": []
|
|
6561
7551
|
}
|
|
6562
7552
|
],
|
|
6563
7553
|
"requestBody": {
|
|
@@ -6601,16 +7591,13 @@
|
|
|
6601
7591
|
"API Keys"
|
|
6602
7592
|
],
|
|
6603
7593
|
"summary": "List API keys",
|
|
6604
|
-
"description": "Lists all active API keys for the authenticated user. Returns prefixes only, not full keys
|
|
7594
|
+
"description": "Lists all active API keys for the authenticated user. Returns prefixes only, not full keys.\n\n---\n**Permission:** `user:credentials` \n**Auth:** required",
|
|
6605
7595
|
"x-arke-action": "user:credentials",
|
|
6606
7596
|
"x-arke-auth": "required",
|
|
6607
7597
|
"x-arke-tier": "standard",
|
|
6608
7598
|
"security": [
|
|
6609
7599
|
{
|
|
6610
7600
|
"bearerAuth": []
|
|
6611
|
-
},
|
|
6612
|
-
{
|
|
6613
|
-
"apiKeyAuth": []
|
|
6614
7601
|
}
|
|
6615
7602
|
],
|
|
6616
7603
|
"responses": {
|
|
@@ -6647,16 +7634,13 @@
|
|
|
6647
7634
|
"API Keys"
|
|
6648
7635
|
],
|
|
6649
7636
|
"summary": "Revoke API key",
|
|
6650
|
-
"description": "Revokes an API key by prefix. The key will be immediately invalid
|
|
7637
|
+
"description": "Revokes an API key by prefix. The key will be immediately invalid.\n\n---\n**Permission:** `user:credentials` \n**Auth:** required",
|
|
6651
7638
|
"x-arke-action": "user:credentials",
|
|
6652
7639
|
"x-arke-auth": "required",
|
|
6653
7640
|
"x-arke-tier": "standard",
|
|
6654
7641
|
"security": [
|
|
6655
7642
|
{
|
|
6656
7643
|
"bearerAuth": []
|
|
6657
|
-
},
|
|
6658
|
-
{
|
|
6659
|
-
"apiKeyAuth": []
|
|
6660
7644
|
}
|
|
6661
7645
|
],
|
|
6662
7646
|
"parameters": [
|
|
@@ -6712,7 +7696,7 @@
|
|
|
6712
7696
|
"Users"
|
|
6713
7697
|
],
|
|
6714
7698
|
"summary": "List collections user has access to",
|
|
6715
|
-
"description": "Returns all collections where the user has a role relationship (owner, editor, viewer, etc.).\n\nQueries GraphDB for collections with relationships pointing to this user where peer_type is 'user'.\nResults include the role predicate so clients know what access the user has to each collection.\n\nSupports filtering by predicate (role name) and pagination
|
|
7699
|
+
"description": "Returns all collections where the user has a role relationship (owner, editor, viewer, etc.).\n\nQueries GraphDB for collections with relationships pointing to this user where peer_type is 'user'.\nResults include the role predicate so clients know what access the user has to each collection.\n\nSupports filtering by predicate (role name) and pagination.\n\n---\n**Permission:** `user:view` \n**Auth:** optional",
|
|
6716
7700
|
"x-arke-action": "user:view",
|
|
6717
7701
|
"x-arke-auth": "optional",
|
|
6718
7702
|
"x-arke-tier": "external",
|
|
@@ -6823,16 +7807,13 @@
|
|
|
6823
7807
|
"Search"
|
|
6824
7808
|
],
|
|
6825
7809
|
"summary": "Search across user collections",
|
|
6826
|
-
"description": "Performs semantic search across all collections the authenticated user has access to.\n\n## Features\n- Searches all user's collections in parallel (up to 25)\n- Optionally includes public-domain entities\n- Filter by entity type or collection role\n- Results ranked by semantic relevance\n\n## Performance\n- Collections are queried in parallel for speed\n- If user has more than 25 collections, queries first 25 (by created_at). Use role filter to narrow down.\n- Response includes metadata showing collections_queried vs collections_total\n\n## Scoring\n- Results use cosine similarity scores (0-1)\n- Scores are comparable across collections\n",
|
|
7810
|
+
"description": "Performs semantic search across all collections the authenticated user has access to.\n\n## Features\n- Searches all user's collections in parallel (up to 25)\n- Optionally includes public-domain entities\n- Filter by entity type or collection role\n- Results ranked by semantic relevance\n\n## Performance\n- Collections are queried in parallel for speed\n- If user has more than 25 collections, queries first 25 (by created_at). Use role filter to narrow down.\n- Response includes metadata showing collections_queried vs collections_total\n\n## Scoring\n- Results use cosine similarity scores (0-1)\n- Scores are comparable across collections\n\n\n---\n**Permission:** `search:execute` \n**Auth:** required",
|
|
6827
7811
|
"x-arke-action": "search:execute",
|
|
6828
7812
|
"x-arke-auth": "required",
|
|
6829
7813
|
"x-arke-tier": "external",
|
|
6830
7814
|
"security": [
|
|
6831
7815
|
{
|
|
6832
7816
|
"bearerAuth": []
|
|
6833
|
-
},
|
|
6834
|
-
{
|
|
6835
|
-
"apiKeyAuth": []
|
|
6836
7817
|
}
|
|
6837
7818
|
],
|
|
6838
7819
|
"requestBody": {
|
|
@@ -6904,16 +7885,13 @@
|
|
|
6904
7885
|
"Collections"
|
|
6905
7886
|
],
|
|
6906
7887
|
"summary": "Create a new collection",
|
|
6907
|
-
"description": "Creates a collection with the authenticated user as owner
|
|
7888
|
+
"description": "Creates a collection with the authenticated user as owner.\n\n---\n**Permission:** `collection:create` \n**Auth:** required",
|
|
6908
7889
|
"x-arke-action": "collection:create",
|
|
6909
7890
|
"x-arke-auth": "required",
|
|
6910
7891
|
"x-arke-tier": "standard",
|
|
6911
7892
|
"security": [
|
|
6912
7893
|
{
|
|
6913
7894
|
"bearerAuth": []
|
|
6914
|
-
},
|
|
6915
|
-
{
|
|
6916
|
-
"apiKeyAuth": []
|
|
6917
7895
|
}
|
|
6918
7896
|
],
|
|
6919
7897
|
"requestBody": {
|
|
@@ -6995,7 +7973,7 @@
|
|
|
6995
7973
|
"Collections"
|
|
6996
7974
|
],
|
|
6997
7975
|
"summary": "Get collection by ID",
|
|
6998
|
-
"description": "Returns a collection entity by ID
|
|
7976
|
+
"description": "Returns a collection entity by ID.\n\n---\n**Permission:** `collection:view` \n**Auth:** optional",
|
|
6999
7977
|
"x-arke-action": "collection:view",
|
|
7000
7978
|
"x-arke-auth": "optional",
|
|
7001
7979
|
"x-arke-tier": "standard",
|
|
@@ -7057,16 +8035,13 @@
|
|
|
7057
8035
|
"Collections"
|
|
7058
8036
|
],
|
|
7059
8037
|
"summary": "Update collection properties",
|
|
7060
|
-
"description": "Updates collection properties. Requires collection:update permission
|
|
8038
|
+
"description": "Updates collection properties. Requires collection:update permission.\n\n---\n**Permission:** `collection:update` \n**Auth:** required",
|
|
7061
8039
|
"x-arke-action": "collection:update",
|
|
7062
8040
|
"x-arke-auth": "required",
|
|
7063
8041
|
"x-arke-tier": "standard",
|
|
7064
8042
|
"security": [
|
|
7065
8043
|
{
|
|
7066
8044
|
"bearerAuth": []
|
|
7067
|
-
},
|
|
7068
|
-
{
|
|
7069
|
-
"apiKeyAuth": []
|
|
7070
8045
|
}
|
|
7071
8046
|
],
|
|
7072
8047
|
"parameters": [
|
|
@@ -7192,16 +8167,13 @@
|
|
|
7192
8167
|
"Collections"
|
|
7193
8168
|
],
|
|
7194
8169
|
"summary": "Add a new role",
|
|
7195
|
-
"description": "Adds a new role to the collection. Requires collection:manage permission
|
|
8170
|
+
"description": "Adds a new role to the collection. Requires collection:manage permission.\n\n---\n**Permission:** `collection:manage` \n**Auth:** required",
|
|
7196
8171
|
"x-arke-action": "collection:manage",
|
|
7197
8172
|
"x-arke-auth": "required",
|
|
7198
8173
|
"x-arke-tier": "standard",
|
|
7199
8174
|
"security": [
|
|
7200
8175
|
{
|
|
7201
8176
|
"bearerAuth": []
|
|
7202
|
-
},
|
|
7203
|
-
{
|
|
7204
|
-
"apiKeyAuth": []
|
|
7205
8177
|
}
|
|
7206
8178
|
],
|
|
7207
8179
|
"parameters": [
|
|
@@ -7310,16 +8282,13 @@
|
|
|
7310
8282
|
"Collections"
|
|
7311
8283
|
],
|
|
7312
8284
|
"summary": "Update role actions",
|
|
7313
|
-
"description": "Updates the actions for an existing role. Requires collection:manage permission
|
|
8285
|
+
"description": "Updates the actions for an existing role. Requires collection:manage permission.\n\n---\n**Permission:** `collection:manage` \n**Auth:** required",
|
|
7314
8286
|
"x-arke-action": "collection:manage",
|
|
7315
8287
|
"x-arke-auth": "required",
|
|
7316
8288
|
"x-arke-tier": "standard",
|
|
7317
8289
|
"security": [
|
|
7318
8290
|
{
|
|
7319
8291
|
"bearerAuth": []
|
|
7320
|
-
},
|
|
7321
|
-
{
|
|
7322
|
-
"apiKeyAuth": []
|
|
7323
8292
|
}
|
|
7324
8293
|
],
|
|
7325
8294
|
"parameters": [
|
|
@@ -7438,16 +8407,13 @@
|
|
|
7438
8407
|
"Collections"
|
|
7439
8408
|
],
|
|
7440
8409
|
"summary": "Delete a role",
|
|
7441
|
-
"description": "Deletes a role from the collection. Requires collection:manage permission
|
|
8410
|
+
"description": "Deletes a role from the collection. Requires collection:manage permission.\n\n---\n**Permission:** `collection:manage` \n**Auth:** required",
|
|
7442
8411
|
"x-arke-action": "collection:manage",
|
|
7443
8412
|
"x-arke-auth": "required",
|
|
7444
8413
|
"x-arke-tier": "standard",
|
|
7445
8414
|
"security": [
|
|
7446
8415
|
{
|
|
7447
8416
|
"bearerAuth": []
|
|
7448
|
-
},
|
|
7449
|
-
{
|
|
7450
|
-
"apiKeyAuth": []
|
|
7451
8417
|
}
|
|
7452
8418
|
],
|
|
7453
8419
|
"parameters": [
|
|
@@ -7535,7 +8501,7 @@
|
|
|
7535
8501
|
"Collections"
|
|
7536
8502
|
],
|
|
7537
8503
|
"summary": "List collection members",
|
|
7538
|
-
"description": "Returns all members of the collection grouped by type. By default, expired memberships are excluded
|
|
8504
|
+
"description": "Returns all members of the collection grouped by type. By default, expired memberships are excluded.\n\n---\n**Permission:** `collection:view` \n**Auth:** optional",
|
|
7539
8505
|
"x-arke-action": "collection:view",
|
|
7540
8506
|
"x-arke-auth": "optional",
|
|
7541
8507
|
"x-arke-tier": "standard",
|
|
@@ -7611,16 +8577,13 @@
|
|
|
7611
8577
|
"Collections"
|
|
7612
8578
|
],
|
|
7613
8579
|
"summary": "Assign user to role",
|
|
7614
|
-
"description": "Assigns a user to a role in the collection. Requires collection:manage permission
|
|
8580
|
+
"description": "Assigns a user to a role in the collection. Requires collection:manage permission.\n\n---\n**Permission:** `collection:manage` \n**Auth:** required",
|
|
7615
8581
|
"x-arke-action": "collection:manage",
|
|
7616
8582
|
"x-arke-auth": "required",
|
|
7617
8583
|
"x-arke-tier": "standard",
|
|
7618
8584
|
"security": [
|
|
7619
8585
|
{
|
|
7620
8586
|
"bearerAuth": []
|
|
7621
|
-
},
|
|
7622
|
-
{
|
|
7623
|
-
"apiKeyAuth": []
|
|
7624
8587
|
}
|
|
7625
8588
|
],
|
|
7626
8589
|
"parameters": [
|
|
@@ -7729,16 +8692,13 @@
|
|
|
7729
8692
|
"Collections"
|
|
7730
8693
|
],
|
|
7731
8694
|
"summary": "Remove user from role",
|
|
7732
|
-
"description": "Removes a user from a role in the collection. Requires collection:manage permission
|
|
8695
|
+
"description": "Removes a user from a role in the collection. Requires collection:manage permission.\n\n---\n**Permission:** `collection:manage` \n**Auth:** required",
|
|
7733
8696
|
"x-arke-action": "collection:manage",
|
|
7734
8697
|
"x-arke-auth": "required",
|
|
7735
8698
|
"x-arke-tier": "standard",
|
|
7736
8699
|
"security": [
|
|
7737
8700
|
{
|
|
7738
8701
|
"bearerAuth": []
|
|
7739
|
-
},
|
|
7740
|
-
{
|
|
7741
|
-
"apiKeyAuth": []
|
|
7742
8702
|
}
|
|
7743
8703
|
],
|
|
7744
8704
|
"parameters": [
|
|
@@ -7861,16 +8821,13 @@
|
|
|
7861
8821
|
"Collections"
|
|
7862
8822
|
],
|
|
7863
8823
|
"summary": "Set root entity",
|
|
7864
|
-
"description": "Links an entity as the root of this collection.\n\n**Prerequisites:** The entity must already have a 'collection' relationship\npointing to this collection (typically set during entity creation via the\n`collection` field).\n\n**Recommended flow:**\n1. Create entity with `collection` field set → entity is immediately protected\n2. Call this endpoint to establish the root link from collection to entity\n\nThis adds only the reverse relationship:\n- Collection → Entity (predicate: 'root')\n\nRequires collection:update permission on the collection
|
|
8824
|
+
"description": "Links an entity as the root of this collection.\n\n**Prerequisites:** The entity must already have a 'collection' relationship\npointing to this collection (typically set during entity creation via the\n`collection` field).\n\n**Recommended flow:**\n1. Create entity with `collection` field set → entity is immediately protected\n2. Call this endpoint to establish the root link from collection to entity\n\nThis adds only the reverse relationship:\n- Collection → Entity (predicate: 'root')\n\nRequires collection:update permission on the collection.\n\n---\n**Permission:** `collection:update` \n**Auth:** required",
|
|
7865
8825
|
"x-arke-action": "collection:update",
|
|
7866
8826
|
"x-arke-auth": "required",
|
|
7867
8827
|
"x-arke-tier": "standard",
|
|
7868
8828
|
"security": [
|
|
7869
8829
|
{
|
|
7870
8830
|
"bearerAuth": []
|
|
7871
|
-
},
|
|
7872
|
-
{
|
|
7873
|
-
"apiKeyAuth": []
|
|
7874
8831
|
}
|
|
7875
8832
|
],
|
|
7876
8833
|
"parameters": [
|
|
@@ -7996,7 +8953,7 @@
|
|
|
7996
8953
|
"Collections"
|
|
7997
8954
|
],
|
|
7998
8955
|
"summary": "List entities in a collection",
|
|
7999
|
-
"description": "Returns entities belonging to this collection from the graph database.\n\nSupports pagination and optional type filtering. Results are ordered by creation date (newest first)
|
|
8956
|
+
"description": "Returns entities belonging to this collection from the graph database.\n\nSupports pagination and optional type filtering. Results are ordered by creation date (newest first).\n\n---\n**Permission:** `collection:view` \n**Auth:** optional",
|
|
8000
8957
|
"x-arke-action": "collection:view",
|
|
8001
8958
|
"x-arke-auth": "optional",
|
|
8002
8959
|
"x-arke-tier": "external",
|
|
@@ -8099,16 +9056,13 @@
|
|
|
8099
9056
|
"Entities"
|
|
8100
9057
|
],
|
|
8101
9058
|
"summary": "Create a new entity",
|
|
8102
|
-
"description": "Creates a generic entity of any type. For type-specific validation, use type-specific endpoints
|
|
9059
|
+
"description": "Creates a generic entity of any type. For type-specific validation, use type-specific endpoints.\n\n---\n**Permission:** `entity:create` \n**Auth:** required",
|
|
8103
9060
|
"x-arke-action": "entity:create",
|
|
8104
9061
|
"x-arke-auth": "required",
|
|
8105
9062
|
"x-arke-tier": "standard",
|
|
8106
9063
|
"security": [
|
|
8107
9064
|
{
|
|
8108
9065
|
"bearerAuth": []
|
|
8109
|
-
},
|
|
8110
|
-
{
|
|
8111
|
-
"apiKeyAuth": []
|
|
8112
9066
|
}
|
|
8113
9067
|
],
|
|
8114
9068
|
"requestBody": {
|
|
@@ -8207,7 +9161,7 @@
|
|
|
8207
9161
|
"Entities"
|
|
8208
9162
|
],
|
|
8209
9163
|
"summary": "Get entity by ID",
|
|
8210
|
-
"description": "Returns any entity by ID. Permission check uses parent collection if entity belongs to one
|
|
9164
|
+
"description": "Returns any entity by ID. Permission check uses parent collection if entity belongs to one.\n\n---\n**Permission:** `entity:view` \n**Auth:** optional",
|
|
8211
9165
|
"x-arke-action": "entity:view",
|
|
8212
9166
|
"x-arke-auth": "optional",
|
|
8213
9167
|
"x-arke-tier": "standard",
|
|
@@ -8269,16 +9223,13 @@
|
|
|
8269
9223
|
"Entities"
|
|
8270
9224
|
],
|
|
8271
9225
|
"summary": "Update entity",
|
|
8272
|
-
"description": "Updates
|
|
9226
|
+
"description": "Updates an entity with merge semantics. **This is the recommended way to manage relationships.**\n\n- `relationships_add`: Upsert relationships (properties are merged if relationship exists)\n- `relationships_remove`: Remove by predicate/peer\n- `properties`: Deep merged with existing\n- `properties_remove`: Remove nested properties using nested object structure\n\n**properties_remove syntax:**\n- Top-level keys: `[\"field1\", \"field2\"]`\n- Nested keys: `{ parent: { child: [\"key_to_remove\"] } }`\n- **Dot notation is NOT supported** - `[\"parent.child.key\"]` will NOT work\n\nExample to remove `config.options.debug`:\n```json\n{ \"properties_remove\": { \"config\": { \"options\": [\"debug\"] } } }\n```\n\nUse `/relationships` only for bidirectional links updating two entities atomically.\n\nNote: entity:update on a collection requires collection:update permission.\n\n---\n**Permission:** `entity:update` \n**Auth:** required",
|
|
8273
9227
|
"x-arke-action": "entity:update",
|
|
8274
9228
|
"x-arke-auth": "required",
|
|
8275
9229
|
"x-arke-tier": "standard",
|
|
8276
9230
|
"security": [
|
|
8277
9231
|
{
|
|
8278
9232
|
"bearerAuth": []
|
|
8279
|
-
},
|
|
8280
|
-
{
|
|
8281
|
-
"apiKeyAuth": []
|
|
8282
9233
|
}
|
|
8283
9234
|
],
|
|
8284
9235
|
"parameters": [
|
|
@@ -8402,16 +9353,13 @@
|
|
|
8402
9353
|
"Entities"
|
|
8403
9354
|
],
|
|
8404
9355
|
"summary": "Delete entity",
|
|
8405
|
-
"description": "Soft-deletes an entity by creating a tombstone version. The entity can be restored later via POST /entities/:id/restore. Note: entity:delete on a collection requires collection:delete permission
|
|
9356
|
+
"description": "Soft-deletes an entity by creating a tombstone version. The entity can be restored later via POST /entities/:id/restore. Note: entity:delete on a collection requires collection:delete permission.\n\n---\n**Permission:** `entity:delete` \n**Auth:** required",
|
|
8406
9357
|
"x-arke-action": "entity:delete",
|
|
8407
9358
|
"x-arke-auth": "required",
|
|
8408
9359
|
"x-arke-tier": "standard",
|
|
8409
9360
|
"security": [
|
|
8410
9361
|
{
|
|
8411
9362
|
"bearerAuth": []
|
|
8412
|
-
},
|
|
8413
|
-
{
|
|
8414
|
-
"apiKeyAuth": []
|
|
8415
9363
|
}
|
|
8416
9364
|
],
|
|
8417
9365
|
"parameters": [
|
|
@@ -8531,22 +9479,202 @@
|
|
|
8531
9479
|
}
|
|
8532
9480
|
}
|
|
8533
9481
|
},
|
|
8534
|
-
"/entities/{id}/
|
|
9482
|
+
"/entities/{id}/tip": {
|
|
9483
|
+
"get": {
|
|
9484
|
+
"tags": [
|
|
9485
|
+
"Entities"
|
|
9486
|
+
],
|
|
9487
|
+
"summary": "Get entity tip CID",
|
|
9488
|
+
"description": "Returns only the current manifest CID (tip) for an entity. Lightweight endpoint for CAS operations - single Durable Object lookup, no manifest fetch, no permission check.\n\n---\n**Permission:** `entity:tip` \n**Auth:** none",
|
|
9489
|
+
"x-arke-action": "entity:tip",
|
|
9490
|
+
"x-arke-auth": "none",
|
|
9491
|
+
"x-arke-tier": "standard",
|
|
9492
|
+
"parameters": [
|
|
9493
|
+
{
|
|
9494
|
+
"schema": {
|
|
9495
|
+
"type": "string",
|
|
9496
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
9497
|
+
"description": "Entity ID (ULID format)",
|
|
9498
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
9499
|
+
},
|
|
9500
|
+
"required": true,
|
|
9501
|
+
"description": "Entity ID (ULID)",
|
|
9502
|
+
"name": "id",
|
|
9503
|
+
"in": "path"
|
|
9504
|
+
}
|
|
9505
|
+
],
|
|
9506
|
+
"responses": {
|
|
9507
|
+
"200": {
|
|
9508
|
+
"description": "Tip found",
|
|
9509
|
+
"content": {
|
|
9510
|
+
"application/json": {
|
|
9511
|
+
"schema": {
|
|
9512
|
+
"$ref": "#/components/schemas/TipResponse"
|
|
9513
|
+
}
|
|
9514
|
+
}
|
|
9515
|
+
}
|
|
9516
|
+
},
|
|
9517
|
+
"404": {
|
|
9518
|
+
"description": "Not Found - Resource does not exist",
|
|
9519
|
+
"content": {
|
|
9520
|
+
"application/json": {
|
|
9521
|
+
"schema": {
|
|
9522
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
9523
|
+
},
|
|
9524
|
+
"example": {
|
|
9525
|
+
"error": "Entity not found"
|
|
9526
|
+
}
|
|
9527
|
+
}
|
|
9528
|
+
}
|
|
9529
|
+
}
|
|
9530
|
+
}
|
|
9531
|
+
}
|
|
9532
|
+
},
|
|
9533
|
+
"/entities/{id}/cascade": {
|
|
9534
|
+
"delete": {
|
|
9535
|
+
"tags": [
|
|
9536
|
+
"Entities"
|
|
9537
|
+
],
|
|
9538
|
+
"summary": "Cascade delete entity and related entities",
|
|
9539
|
+
"description": "Deletes an entity and all related entities matching predicate patterns within a scoped collection.\n\n**Permission Model:**\n- Requires `entity:delete` permission on the specified `collection_id`\n- Single permission check at the start (not per-entity)\n- Individual entity type permissions are NOT checked during cascade\n\n**Cascade Rules:**\n- `collection` predicate NEVER cascades (hard rule - protects collection structure)\n- Only entities in the specified collection are deleted\n- Entities outside the collection are skipped (reported in `skipped` array)\n\n**Predicate Patterns:**\n- `\"child\"` - exact match only\n- `\"has_*\"` - matches has_document, has_image, etc.\n- `\"*_copy\"` - matches file_copy, document_copy, etc.\n- `\"*\"` - matches ALL predicates (except collection)\n\n**Traversal:**\n- BFS traversal with parallel processing per depth layer\n- Max depth: 20 (default: 10)\n- Optional `edited_by_filter` to only delete entities created by a specific actor (useful for agent cleanup)\n\n**CAS Handling:**\n- Root entity uses the provided `expect_tip`\n- Child entities use re-fetch + single retry strategy\n- CAS conflicts are reported as skipped (not failures)\n\n**Response:**\n- Lists all deleted entities with their depth from root\n- Lists skipped entities with reasons\n- Provides summary statistics\n\n---\n**Permission:** `entity:delete` \n**Auth:** required",
|
|
9540
|
+
"x-arke-action": "entity:delete",
|
|
9541
|
+
"x-arke-auth": "required",
|
|
9542
|
+
"x-arke-tier": "standard",
|
|
9543
|
+
"security": [
|
|
9544
|
+
{
|
|
9545
|
+
"bearerAuth": []
|
|
9546
|
+
}
|
|
9547
|
+
],
|
|
9548
|
+
"parameters": [
|
|
9549
|
+
{
|
|
9550
|
+
"schema": {
|
|
9551
|
+
"type": "string",
|
|
9552
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
9553
|
+
"description": "Entity ID (ULID format)",
|
|
9554
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
9555
|
+
},
|
|
9556
|
+
"required": true,
|
|
9557
|
+
"description": "Entity ID (ULID)",
|
|
9558
|
+
"name": "id",
|
|
9559
|
+
"in": "path"
|
|
9560
|
+
}
|
|
9561
|
+
],
|
|
9562
|
+
"requestBody": {
|
|
9563
|
+
"content": {
|
|
9564
|
+
"application/json": {
|
|
9565
|
+
"schema": {
|
|
9566
|
+
"$ref": "#/components/schemas/CascadeDeleteRequest"
|
|
9567
|
+
}
|
|
9568
|
+
}
|
|
9569
|
+
}
|
|
9570
|
+
},
|
|
9571
|
+
"responses": {
|
|
9572
|
+
"200": {
|
|
9573
|
+
"description": "Cascade delete completed",
|
|
9574
|
+
"content": {
|
|
9575
|
+
"application/json": {
|
|
9576
|
+
"schema": {
|
|
9577
|
+
"$ref": "#/components/schemas/CascadeDeleteResponse"
|
|
9578
|
+
}
|
|
9579
|
+
}
|
|
9580
|
+
}
|
|
9581
|
+
},
|
|
9582
|
+
"400": {
|
|
9583
|
+
"description": "Bad Request - Invalid input",
|
|
9584
|
+
"content": {
|
|
9585
|
+
"application/json": {
|
|
9586
|
+
"schema": {
|
|
9587
|
+
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
9588
|
+
},
|
|
9589
|
+
"example": {
|
|
9590
|
+
"error": "Validation failed",
|
|
9591
|
+
"details": {
|
|
9592
|
+
"issues": [
|
|
9593
|
+
{
|
|
9594
|
+
"path": [
|
|
9595
|
+
"properties",
|
|
9596
|
+
"label"
|
|
9597
|
+
],
|
|
9598
|
+
"message": "Required"
|
|
9599
|
+
}
|
|
9600
|
+
]
|
|
9601
|
+
}
|
|
9602
|
+
}
|
|
9603
|
+
}
|
|
9604
|
+
}
|
|
9605
|
+
},
|
|
9606
|
+
"401": {
|
|
9607
|
+
"description": "Unauthorized - Missing or invalid authentication",
|
|
9608
|
+
"content": {
|
|
9609
|
+
"application/json": {
|
|
9610
|
+
"schema": {
|
|
9611
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
9612
|
+
},
|
|
9613
|
+
"example": {
|
|
9614
|
+
"error": "Unauthorized: Missing or invalid authentication token"
|
|
9615
|
+
}
|
|
9616
|
+
}
|
|
9617
|
+
}
|
|
9618
|
+
},
|
|
9619
|
+
"403": {
|
|
9620
|
+
"description": "Forbidden - Insufficient permissions",
|
|
9621
|
+
"content": {
|
|
9622
|
+
"application/json": {
|
|
9623
|
+
"schema": {
|
|
9624
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
9625
|
+
},
|
|
9626
|
+
"example": {
|
|
9627
|
+
"error": "Forbidden: You do not have permission to perform this action"
|
|
9628
|
+
}
|
|
9629
|
+
}
|
|
9630
|
+
}
|
|
9631
|
+
},
|
|
9632
|
+
"404": {
|
|
9633
|
+
"description": "Not Found - Resource does not exist",
|
|
9634
|
+
"content": {
|
|
9635
|
+
"application/json": {
|
|
9636
|
+
"schema": {
|
|
9637
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
9638
|
+
},
|
|
9639
|
+
"example": {
|
|
9640
|
+
"error": "Entity not found"
|
|
9641
|
+
}
|
|
9642
|
+
}
|
|
9643
|
+
}
|
|
9644
|
+
},
|
|
9645
|
+
"409": {
|
|
9646
|
+
"description": "Conflict - CAS validation failed (entity was modified)",
|
|
9647
|
+
"content": {
|
|
9648
|
+
"application/json": {
|
|
9649
|
+
"schema": {
|
|
9650
|
+
"$ref": "#/components/schemas/CASErrorResponse"
|
|
9651
|
+
},
|
|
9652
|
+
"example": {
|
|
9653
|
+
"error": "Conflict: entity was modified",
|
|
9654
|
+
"details": {
|
|
9655
|
+
"expected": "bafyreibug443cnd4endcwinwttw3c3dzmcl2ikht64xzn5qg56bix3usfy",
|
|
9656
|
+
"actual": "bafyreinewabc123456789defghijklmnopqrstuvwxyz"
|
|
9657
|
+
}
|
|
9658
|
+
}
|
|
9659
|
+
}
|
|
9660
|
+
}
|
|
9661
|
+
}
|
|
9662
|
+
}
|
|
9663
|
+
}
|
|
9664
|
+
},
|
|
9665
|
+
"/entities/{id}/restore": {
|
|
8535
9666
|
"post": {
|
|
8536
9667
|
"tags": [
|
|
8537
9668
|
"Entities"
|
|
8538
9669
|
],
|
|
8539
9670
|
"summary": "Restore deleted entity",
|
|
8540
|
-
"description": "Restores a deleted entity by finding the last non-deleted version and creating a new version from it. Note: entity:restore on a collection requires collection:restore permission
|
|
9671
|
+
"description": "Restores a deleted entity by finding the last non-deleted version and creating a new version from it. Note: entity:restore on a collection requires collection:restore permission.\n\n---\n**Permission:** `entity:restore` \n**Auth:** required",
|
|
8541
9672
|
"x-arke-action": "entity:restore",
|
|
8542
9673
|
"x-arke-auth": "required",
|
|
8543
9674
|
"x-arke-tier": "standard",
|
|
8544
9675
|
"security": [
|
|
8545
9676
|
{
|
|
8546
9677
|
"bearerAuth": []
|
|
8547
|
-
},
|
|
8548
|
-
{
|
|
8549
|
-
"apiKeyAuth": []
|
|
8550
9678
|
}
|
|
8551
9679
|
],
|
|
8552
9680
|
"parameters": [
|
|
@@ -8672,7 +9800,7 @@
|
|
|
8672
9800
|
"Entities"
|
|
8673
9801
|
],
|
|
8674
9802
|
"summary": "Get entity collection",
|
|
8675
|
-
"description": "Returns the collection ID that this entity belongs to. Returns null if the entity is not in any collection. If the entity IS a collection, returns its own ID
|
|
9803
|
+
"description": "Returns the collection ID that this entity belongs to. Returns null if the entity is not in any collection. If the entity IS a collection, returns its own ID.\n\n---\n**Permission:** `entity:view` \n**Auth:** optional",
|
|
8676
9804
|
"x-arke-action": "entity:view",
|
|
8677
9805
|
"x-arke-auth": "optional",
|
|
8678
9806
|
"x-arke-tier": "standard",
|
|
@@ -8736,7 +9864,7 @@
|
|
|
8736
9864
|
"Entities"
|
|
8737
9865
|
],
|
|
8738
9866
|
"summary": "Get entity tree",
|
|
8739
|
-
"description": "Returns a hierarchical tree of entities reachable from the source entity.\n\nUse this to browse collections and folders without making multiple API calls.\nThe tree follows relationship edges (optionally filtered by predicate) and\nreturns a nested structure suitable for tree UI rendering.\n\nQuery parameters:\n- `depth`: Max tree depth (1-4, default 2)\n- `collection`: Constrain to entities in this collection\n- `predicates`: Comma-separated predicates to follow (e.g., \"contains\")\n- `limit`: Max nodes to return (default 100)",
|
|
9867
|
+
"description": "Returns a hierarchical tree of entities reachable from the source entity.\n\nUse this to browse collections and folders without making multiple API calls.\nThe tree follows relationship edges (optionally filtered by predicate) and\nreturns a nested structure suitable for tree UI rendering.\n\nQuery parameters:\n- `depth`: Max tree depth (1-4, default 2)\n- `collection`: Constrain to entities in this collection\n- `predicates`: Comma-separated predicates to follow (e.g., \"contains\")\n- `limit`: Max nodes to return (default 100)\n\n---\n**Permission:** `entity:view` \n**Auth:** optional",
|
|
8740
9868
|
"x-arke-action": "entity:view",
|
|
8741
9869
|
"x-arke-auth": "optional",
|
|
8742
9870
|
"x-arke-tier": "standard",
|
|
@@ -8848,7 +9976,7 @@
|
|
|
8848
9976
|
"Versions"
|
|
8849
9977
|
],
|
|
8850
9978
|
"summary": "Get diff between entity versions",
|
|
8851
|
-
"description": "Computes the difference between two versions of an entity.\n\nQuery parameters:\n- `from`: CID of the \"from\" version (defaults to prev of \"to\" version)\n- `to`: CID of the \"to\" version (defaults to current tip)\n- `format`: Output format - \"semantic\" (default) or \"patch\" (RFC 6902)\n\nModes:\n- No params: Compare current tip with its previous version\n- `to` only: Compare that version with its prev\n- `from` only: Compare from that version to current tip\n- Both: Compare any two versions\n\nFor version 1 entities (no previous version), \"from\" is null and all content appears as added
|
|
9979
|
+
"description": "Computes the difference between two versions of an entity.\n\nQuery parameters:\n- `from`: CID of the \"from\" version (defaults to prev of \"to\" version)\n- `to`: CID of the \"to\" version (defaults to current tip)\n- `format`: Output format - \"semantic\" (default) or \"patch\" (RFC 6902)\n\nModes:\n- No params: Compare current tip with its previous version\n- `to` only: Compare that version with its prev\n- `from` only: Compare from that version to current tip\n- Both: Compare any two versions\n\nFor version 1 entities (no previous version), \"from\" is null and all content appears as added.\n\n---\n**Permission:** `entity:view` \n**Auth:** optional",
|
|
8852
9980
|
"x-arke-action": "entity:view",
|
|
8853
9981
|
"x-arke-auth": "optional",
|
|
8854
9982
|
"x-arke-tier": "standard",
|
|
@@ -8975,16 +10103,13 @@
|
|
|
8975
10103
|
"Permissions"
|
|
8976
10104
|
],
|
|
8977
10105
|
"summary": "Get your permissions for an entity",
|
|
8978
|
-
"description": "Returns the list of actions you can perform on this entity.\n\nThe response includes:\n- `allowed_actions`: Concrete actions you can perform (no wildcards)\n- `resolution`: How permissions were determined\n\nResolution methods:\n- `collection`: Permissions from your role in the parent collection\n- `self`: You are checking your own user entity (self-ownership)\n- `open_season`: Entity is not in any collection (publicly accessible)\n\nActions are filtered to only those relevant to the entity type:\n- For files: entity:* and file:* actions\n- For collections: entity:* and collection:* actions\n- etc
|
|
10106
|
+
"description": "Returns the list of actions you can perform on this entity.\n\nThe response includes:\n- `allowed_actions`: Concrete actions you can perform (no wildcards)\n- `resolution`: How permissions were determined\n\nResolution methods:\n- `collection`: Permissions from your role in the parent collection\n- `self`: You are checking your own user entity (self-ownership)\n- `open_season`: Entity is not in any collection (publicly accessible)\n\nActions are filtered to only those relevant to the entity type:\n- For files: entity:* and file:* actions\n- For collections: entity:* and collection:* actions\n- etc.\n\n---\n**Permission:** `entity:view` \n**Auth:** required",
|
|
8979
10107
|
"x-arke-action": "entity:view",
|
|
8980
10108
|
"x-arke-auth": "required",
|
|
8981
10109
|
"x-arke-tier": "standard",
|
|
8982
10110
|
"security": [
|
|
8983
10111
|
{
|
|
8984
10112
|
"bearerAuth": []
|
|
8985
|
-
},
|
|
8986
|
-
{
|
|
8987
|
-
"apiKeyAuth": []
|
|
8988
10113
|
}
|
|
8989
10114
|
],
|
|
8990
10115
|
"parameters": [
|
|
@@ -9060,16 +10185,13 @@
|
|
|
9060
10185
|
"Relationships"
|
|
9061
10186
|
],
|
|
9062
10187
|
"summary": "Add relationship between entities",
|
|
9063
|
-
"description": "Creates a relationship from source to target entity.\n\
|
|
10188
|
+
"description": "Creates a relationship from source to target entity.\n\n**⚠️ For single-entity updates, prefer `PUT /entities/:id` with `relationships_add` - simpler API, one CAS guard, can update properties too.**\n\nUse this endpoint only for **bidirectional** relationships requiring atomic updates to TWO entities.\n\nIf `target_predicate` is provided (bidirectional):\n- Updates both source and target entities\n- Requires `entity:update` on both, plus two CAS guards\n\nIf `target_predicate` is omitted (unidirectional):\n- Use `PUT /entities/:id` instead\n\n---\n**Permission:** `entity:update` \n**Auth:** required",
|
|
9064
10189
|
"x-arke-action": "entity:update",
|
|
9065
10190
|
"x-arke-auth": "required",
|
|
9066
10191
|
"x-arke-tier": "standard",
|
|
9067
10192
|
"security": [
|
|
9068
10193
|
{
|
|
9069
10194
|
"bearerAuth": []
|
|
9070
|
-
},
|
|
9071
|
-
{
|
|
9072
|
-
"apiKeyAuth": []
|
|
9073
10195
|
}
|
|
9074
10196
|
],
|
|
9075
10197
|
"requestBody": {
|
|
@@ -9179,16 +10301,13 @@
|
|
|
9179
10301
|
"Relationships"
|
|
9180
10302
|
],
|
|
9181
10303
|
"summary": "Remove relationship between entities",
|
|
9182
|
-
"description": "Removes a relationship from source to target entity.\n\
|
|
10304
|
+
"description": "Removes a relationship from source to target entity.\n\n**⚠️ For single-entity updates, prefer `PUT /entities/:id` with `relationships_remove` - simpler API, one CAS guard, can update properties too.**\n\nUse this endpoint only for **bidirectional** relationships requiring atomic updates to TWO entities.\n\nIf `target_predicate` is provided (bidirectional):\n- Updates both source and target entities\n- Requires `entity:update` on both, plus two CAS guards\n\nIf `target_predicate` is omitted (unidirectional):\n- Use `PUT /entities/:id` instead\n\n---\n**Permission:** `entity:update` \n**Auth:** required",
|
|
9183
10305
|
"x-arke-action": "entity:update",
|
|
9184
10306
|
"x-arke-auth": "required",
|
|
9185
10307
|
"x-arke-tier": "standard",
|
|
9186
10308
|
"security": [
|
|
9187
10309
|
{
|
|
9188
10310
|
"bearerAuth": []
|
|
9189
|
-
},
|
|
9190
|
-
{
|
|
9191
|
-
"apiKeyAuth": []
|
|
9192
10311
|
}
|
|
9193
10312
|
],
|
|
9194
10313
|
"requestBody": {
|
|
@@ -9300,16 +10419,13 @@
|
|
|
9300
10419
|
"Connect"
|
|
9301
10420
|
],
|
|
9302
10421
|
"summary": "Connect two entities",
|
|
9303
|
-
"description": "Creates a unidirectional relationship from source to target entity.\n\nThis is a shorthand for adding a relationship with sensible defaults:\n- Default predicate: `connects_to` (customizable)\n- Optional label and description stored in relationship properties\n- Only requires `entity:update` permission on source entity\n\nUse this for simple entity linking. For bidirectional relationships or\nadvanced options, use the `/relationships` endpoint
|
|
10422
|
+
"description": "Creates a unidirectional relationship from source to target entity.\n\nThis is a shorthand for adding a relationship with sensible defaults:\n- Default predicate: `connects_to` (customizable)\n- Optional label and description stored in relationship properties\n- Only requires `entity:update` permission on source entity\n\nUse this for simple entity linking. For bidirectional relationships or\nadvanced options, use the `/relationships` endpoint.\n\n---\n**Permission:** `entity:update` \n**Auth:** required",
|
|
9304
10423
|
"x-arke-action": "entity:update",
|
|
9305
10424
|
"x-arke-auth": "required",
|
|
9306
10425
|
"x-arke-tier": "standard",
|
|
9307
10426
|
"security": [
|
|
9308
10427
|
{
|
|
9309
10428
|
"bearerAuth": []
|
|
9310
|
-
},
|
|
9311
|
-
{
|
|
9312
|
-
"apiKeyAuth": []
|
|
9313
10429
|
}
|
|
9314
10430
|
],
|
|
9315
10431
|
"requestBody": {
|
|
@@ -9421,16 +10537,13 @@
|
|
|
9421
10537
|
"Connect"
|
|
9422
10538
|
],
|
|
9423
10539
|
"summary": "Disconnect two entities",
|
|
9424
|
-
"description": "Removes a unidirectional relationship from source to target entity.\n\nThis is a shorthand for removing a relationship:\n- Default predicate: `connects_to` (customizable)\n- Only requires `entity:update` permission on source entity\n\nFor bidirectional removal, use the `/relationships` endpoint
|
|
10540
|
+
"description": "Removes a unidirectional relationship from source to target entity.\n\nThis is a shorthand for removing a relationship:\n- Default predicate: `connects_to` (customizable)\n- Only requires `entity:update` permission on source entity\n\nFor bidirectional removal, use the `/relationships` endpoint.\n\n---\n**Permission:** `entity:update` \n**Auth:** required",
|
|
9425
10541
|
"x-arke-action": "entity:update",
|
|
9426
10542
|
"x-arke-auth": "required",
|
|
9427
10543
|
"x-arke-tier": "standard",
|
|
9428
10544
|
"security": [
|
|
9429
10545
|
{
|
|
9430
10546
|
"bearerAuth": []
|
|
9431
|
-
},
|
|
9432
|
-
{
|
|
9433
|
-
"apiKeyAuth": []
|
|
9434
10547
|
}
|
|
9435
10548
|
],
|
|
9436
10549
|
"requestBody": {
|
|
@@ -9542,16 +10655,13 @@
|
|
|
9542
10655
|
"Files"
|
|
9543
10656
|
],
|
|
9544
10657
|
"summary": "Create file entity",
|
|
9545
|
-
"description": "Creates a new file entity.\n\n## Flow\n1. Call this endpoint with file metadata (key, filename, content_type, size)\n2. Receive entity data (uploaded: false)\n3. POST the file content to /{id}/content\n4. Entity will be updated with uploaded: true and verified CID\n\n## Key Best Practice\nUse a unique identifier as the key (e.g., version number, timestamp).\nThe actual CID is computed during upload
|
|
10658
|
+
"description": "Creates a new file entity.\n\n## Flow\n1. Call this endpoint with file metadata (key, filename, content_type, size)\n2. Receive entity data (uploaded: false)\n3. POST the file content to /{id}/content\n4. Entity will be updated with uploaded: true and verified CID\n\n## Key Best Practice\nUse a unique identifier as the key (e.g., version number, timestamp).\nThe actual CID is computed during upload.\n\n---\n**Permission:** `file:create` \n**Auth:** required",
|
|
9546
10659
|
"x-arke-action": "file:create",
|
|
9547
10660
|
"x-arke-auth": "required",
|
|
9548
10661
|
"x-arke-tier": "standard",
|
|
9549
10662
|
"security": [
|
|
9550
10663
|
{
|
|
9551
10664
|
"bearerAuth": []
|
|
9552
|
-
},
|
|
9553
|
-
{
|
|
9554
|
-
"apiKeyAuth": []
|
|
9555
10665
|
}
|
|
9556
10666
|
],
|
|
9557
10667
|
"requestBody": {
|
|
@@ -9650,7 +10760,7 @@
|
|
|
9650
10760
|
"Files"
|
|
9651
10761
|
],
|
|
9652
10762
|
"summary": "Get file metadata",
|
|
9653
|
-
"description": "Returns file entity metadata. Use /{id}/content to download the file content
|
|
10763
|
+
"description": "Returns file entity metadata. Use /{id}/content to download the file content.\n\n---\n**Permission:** `file:view` \n**Auth:** optional",
|
|
9654
10764
|
"x-arke-action": "file:view",
|
|
9655
10765
|
"x-arke-auth": "optional",
|
|
9656
10766
|
"x-arke-tier": "standard",
|
|
@@ -9712,16 +10822,13 @@
|
|
|
9712
10822
|
"Files"
|
|
9713
10823
|
],
|
|
9714
10824
|
"summary": "Update file metadata",
|
|
9715
|
-
"description": "Updates file metadata without changing the file content.\n\n## Key Changes\nThe key can be changed, but ONLY to a key that already exists in R2.\nThis allows \"regressing\" to a previous file version.\n\nTo upload a new file, use POST /{id}/reupload instead
|
|
10825
|
+
"description": "Updates file metadata without changing the file content.\n\n## Key Changes\nThe key can be changed, but ONLY to a key that already exists in R2.\nThis allows \"regressing\" to a previous file version.\n\nTo upload a new file, use POST /{id}/reupload instead.\n\n---\n**Permission:** `file:update` \n**Auth:** required",
|
|
9716
10826
|
"x-arke-action": "file:update",
|
|
9717
10827
|
"x-arke-auth": "required",
|
|
9718
10828
|
"x-arke-tier": "standard",
|
|
9719
10829
|
"security": [
|
|
9720
10830
|
{
|
|
9721
10831
|
"bearerAuth": []
|
|
9722
|
-
},
|
|
9723
|
-
{
|
|
9724
|
-
"apiKeyAuth": []
|
|
9725
10832
|
}
|
|
9726
10833
|
],
|
|
9727
10834
|
"parameters": [
|
|
@@ -9847,16 +10954,13 @@
|
|
|
9847
10954
|
"Files"
|
|
9848
10955
|
],
|
|
9849
10956
|
"summary": "Upload file content",
|
|
9850
|
-
"description": "Uploads the binary content for a file entity.\n\n## Request\n- Content-Type: The MIME type of the file (must match entity's content_type)\n- Body: Binary file content (streaming supported)\n\n## Limits\n- Maximum file size: 500 MB\n\n## Behavior\n- Streams content directly to R2\n- Computes CID from file bytes\n- Updates entity with uploaded: true, verified size, and computed CID\n- Atomic operation - either fully succeeds or fails\n\n## Idempotency\nRe-uploading content for an already-uploaded file will fail with 409 Conflict.\nUse POST /{id}/reupload first to create a new version
|
|
10957
|
+
"description": "Uploads the binary content for a file entity.\n\n## Request\n- Content-Type: The MIME type of the file (must match entity's content_type)\n- Body: Binary file content (streaming supported)\n\n## Limits\n- Maximum file size: 500 MB\n\n## Behavior\n- Streams content directly to R2\n- Computes CID from file bytes\n- Updates entity with uploaded: true, verified size, and computed CID\n- Atomic operation - either fully succeeds or fails\n\n## Idempotency\nRe-uploading content for an already-uploaded file will fail with 409 Conflict.\nUse POST /{id}/reupload first to create a new version.\n\n---\n**Permission:** `file:upload` \n**Auth:** required",
|
|
9851
10958
|
"x-arke-action": "file:upload",
|
|
9852
10959
|
"x-arke-auth": "required",
|
|
9853
10960
|
"x-arke-tier": "standard",
|
|
9854
10961
|
"security": [
|
|
9855
10962
|
{
|
|
9856
10963
|
"bearerAuth": []
|
|
9857
|
-
},
|
|
9858
|
-
{
|
|
9859
|
-
"apiKeyAuth": []
|
|
9860
10964
|
}
|
|
9861
10965
|
],
|
|
9862
10966
|
"parameters": [
|
|
@@ -9994,7 +11098,7 @@
|
|
|
9994
11098
|
"Files"
|
|
9995
11099
|
],
|
|
9996
11100
|
"summary": "Download file content",
|
|
9997
|
-
"description": "Downloads the binary content of a file entity.\n\n## Response Headers\n- Content-Type: The MIME type of the file\n- Content-Length: File size in bytes\n- Content-Disposition: attachment; filename=\"original_filename\"\n\n## Streaming\nResponse is streamed directly from R2 storage
|
|
11101
|
+
"description": "Downloads the binary content of a file entity.\n\n## Response Headers\n- Content-Type: The MIME type of the file\n- Content-Length: File size in bytes\n- Content-Disposition: attachment; filename=\"original_filename\"\n\n## Streaming\nResponse is streamed directly from R2 storage.\n\n---\n**Permission:** `file:download` \n**Auth:** optional",
|
|
9998
11102
|
"x-arke-action": "file:download",
|
|
9999
11103
|
"x-arke-auth": "optional",
|
|
10000
11104
|
"x-arke-tier": "standard",
|
|
@@ -10059,16 +11163,13 @@
|
|
|
10059
11163
|
"Files"
|
|
10060
11164
|
],
|
|
10061
11165
|
"summary": "Prepare for new file version",
|
|
10062
|
-
"description": "Prepares the entity for uploading a new file version.\n\n## Flow\n1. Call this endpoint with new key and file metadata\n2. Receive updated entity (uploaded: false)\n3. POST the new file content to /{id}/content\n4. Entity will be updated with uploaded: true and verified CID\n\n## Key Requirement\nThe new key must NOT already exist in R2 (no overwrites).\nPrevious file versions remain accessible via manifest history
|
|
11166
|
+
"description": "Prepares the entity for uploading a new file version.\n\n## Flow\n1. Call this endpoint with new key and file metadata\n2. Receive updated entity (uploaded: false)\n3. POST the new file content to /{id}/content\n4. Entity will be updated with uploaded: true and verified CID\n\n## Key Requirement\nThe new key must NOT already exist in R2 (no overwrites).\nPrevious file versions remain accessible via manifest history.\n\n---\n**Permission:** `file:reupload` \n**Auth:** required",
|
|
10063
11167
|
"x-arke-action": "file:reupload",
|
|
10064
11168
|
"x-arke-auth": "required",
|
|
10065
11169
|
"x-arke-tier": "standard",
|
|
10066
11170
|
"security": [
|
|
10067
11171
|
{
|
|
10068
11172
|
"bearerAuth": []
|
|
10069
|
-
},
|
|
10070
|
-
{
|
|
10071
|
-
"apiKeyAuth": []
|
|
10072
11173
|
}
|
|
10073
11174
|
],
|
|
10074
11175
|
"parameters": [
|
|
@@ -10194,16 +11295,13 @@
|
|
|
10194
11295
|
"Folders"
|
|
10195
11296
|
],
|
|
10196
11297
|
"summary": "Create folder",
|
|
10197
|
-
"description": "Creates a new folder entity. Optionally sets parent for immediate hierarchy.\n\nIf a parent folder is specified, a bidirectional relationship is created:\n- Parent folder contains this folder\n- This folder is in parent folder",
|
|
11298
|
+
"description": "Creates a new folder entity. Optionally sets parent for immediate hierarchy.\n\nIf a parent folder is specified, a bidirectional relationship is created:\n- Parent folder contains this folder\n- This folder is in parent folder\n\n---\n**Permission:** `folder:create` \n**Auth:** required",
|
|
10198
11299
|
"x-arke-action": "folder:create",
|
|
10199
11300
|
"x-arke-auth": "required",
|
|
10200
11301
|
"x-arke-tier": "standard",
|
|
10201
11302
|
"security": [
|
|
10202
11303
|
{
|
|
10203
11304
|
"bearerAuth": []
|
|
10204
|
-
},
|
|
10205
|
-
{
|
|
10206
|
-
"apiKeyAuth": []
|
|
10207
11305
|
}
|
|
10208
11306
|
],
|
|
10209
11307
|
"requestBody": {
|
|
@@ -10285,7 +11383,7 @@
|
|
|
10285
11383
|
"Folders"
|
|
10286
11384
|
],
|
|
10287
11385
|
"summary": "Get folder",
|
|
10288
|
-
"description": "Returns folder metadata including children and parent relationships
|
|
11386
|
+
"description": "Returns folder metadata including children and parent relationships.\n\n---\n**Permission:** `folder:view` \n**Auth:** optional",
|
|
10289
11387
|
"x-arke-action": "folder:view",
|
|
10290
11388
|
"x-arke-auth": "optional",
|
|
10291
11389
|
"x-arke-tier": "standard",
|
|
@@ -10347,16 +11445,13 @@
|
|
|
10347
11445
|
"Folders"
|
|
10348
11446
|
],
|
|
10349
11447
|
"summary": "Update folder",
|
|
10350
|
-
"description": "Updates folder properties (label, description, metadata). Properties are merged
|
|
11448
|
+
"description": "Updates folder properties (label, description, metadata). Properties are merged.\n\n---\n**Permission:** `folder:update` \n**Auth:** required",
|
|
10351
11449
|
"x-arke-action": "folder:update",
|
|
10352
11450
|
"x-arke-auth": "required",
|
|
10353
11451
|
"x-arke-tier": "standard",
|
|
10354
11452
|
"security": [
|
|
10355
11453
|
{
|
|
10356
11454
|
"bearerAuth": []
|
|
10357
|
-
},
|
|
10358
|
-
{
|
|
10359
|
-
"apiKeyAuth": []
|
|
10360
11455
|
}
|
|
10361
11456
|
],
|
|
10362
11457
|
"parameters": [
|
|
@@ -10482,16 +11577,13 @@
|
|
|
10482
11577
|
"Folders"
|
|
10483
11578
|
],
|
|
10484
11579
|
"summary": "Add child to folder",
|
|
10485
|
-
"description": "Adds a child entity (file or folder) to this folder.\n\nCreates bidirectional relationship:\n- Folder contains child\n- Child is in folder\n\n**Idempotent**: if relationship already exists, returns current state without error
|
|
11580
|
+
"description": "Adds a child entity (file or folder) to this folder.\n\nCreates bidirectional relationship:\n- Folder contains child\n- Child is in folder\n\n**Idempotent**: if relationship already exists, returns current state without error.\n\n---\n**Permission:** `folder:update` \n**Auth:** required",
|
|
10486
11581
|
"x-arke-action": "folder:update",
|
|
10487
11582
|
"x-arke-auth": "required",
|
|
10488
11583
|
"x-arke-tier": "standard",
|
|
10489
11584
|
"security": [
|
|
10490
11585
|
{
|
|
10491
11586
|
"bearerAuth": []
|
|
10492
|
-
},
|
|
10493
|
-
{
|
|
10494
|
-
"apiKeyAuth": []
|
|
10495
11587
|
}
|
|
10496
11588
|
],
|
|
10497
11589
|
"parameters": [
|
|
@@ -10617,16 +11709,13 @@
|
|
|
10617
11709
|
"Folders"
|
|
10618
11710
|
],
|
|
10619
11711
|
"summary": "Remove child from folder",
|
|
10620
|
-
"description": "Removes a child entity from this folder (bidirectional)
|
|
11712
|
+
"description": "Removes a child entity from this folder (bidirectional).\n\n---\n**Permission:** `folder:update` \n**Auth:** required",
|
|
10621
11713
|
"x-arke-action": "folder:update",
|
|
10622
11714
|
"x-arke-auth": "required",
|
|
10623
11715
|
"x-arke-tier": "standard",
|
|
10624
11716
|
"security": [
|
|
10625
11717
|
{
|
|
10626
11718
|
"bearerAuth": []
|
|
10627
|
-
},
|
|
10628
|
-
{
|
|
10629
|
-
"apiKeyAuth": []
|
|
10630
11719
|
}
|
|
10631
11720
|
],
|
|
10632
11721
|
"parameters": [
|
|
@@ -10764,16 +11853,13 @@
|
|
|
10764
11853
|
"Folders"
|
|
10765
11854
|
],
|
|
10766
11855
|
"summary": "Bulk add children to folder",
|
|
10767
|
-
"description": "Efficiently adds multiple children to a folder.\n\n**Limit**: Maximum 50 children per request. For larger batches, make multiple\nrequests, refetching the folder's CID between each to satisfy the CAS guard.\n\n**Strategy**:\n1. Updates folder once with all 'contains' relationships\n2. Updates each child in parallel with 'in' back-link\n\n**Idempotent**: skips children that already have the relationship.\nReturns both added and skipped children in the response
|
|
11856
|
+
"description": "Efficiently adds multiple children to a folder.\n\n**Limit**: Maximum 50 children per request. For larger batches, make multiple\nrequests, refetching the folder's CID between each to satisfy the CAS guard.\n\n**Strategy**:\n1. Updates folder once with all 'contains' relationships\n2. Updates each child in parallel with 'in' back-link\n\n**Idempotent**: skips children that already have the relationship.\nReturns both added and skipped children in the response.\n\n---\n**Permission:** `folder:update` \n**Auth:** required",
|
|
10768
11857
|
"x-arke-action": "folder:update",
|
|
10769
11858
|
"x-arke-auth": "required",
|
|
10770
11859
|
"x-arke-tier": "standard",
|
|
10771
11860
|
"security": [
|
|
10772
11861
|
{
|
|
10773
11862
|
"bearerAuth": []
|
|
10774
|
-
},
|
|
10775
|
-
{
|
|
10776
|
-
"apiKeyAuth": []
|
|
10777
11863
|
}
|
|
10778
11864
|
],
|
|
10779
11865
|
"parameters": [
|
|
@@ -10899,16 +11985,13 @@
|
|
|
10899
11985
|
"Folders"
|
|
10900
11986
|
],
|
|
10901
11987
|
"summary": "Add parent to folder",
|
|
10902
|
-
"description": "Adds this folder to a parent folder.\n\nCreates bidirectional relationship:\n- Parent contains this folder\n- This folder is in parent\n\n**Idempotent**: if relationship already exists, returns current state without error
|
|
11988
|
+
"description": "Adds this folder to a parent folder.\n\nCreates bidirectional relationship:\n- Parent contains this folder\n- This folder is in parent\n\n**Idempotent**: if relationship already exists, returns current state without error.\n\n---\n**Permission:** `folder:update` \n**Auth:** required",
|
|
10903
11989
|
"x-arke-action": "folder:update",
|
|
10904
11990
|
"x-arke-auth": "required",
|
|
10905
11991
|
"x-arke-tier": "standard",
|
|
10906
11992
|
"security": [
|
|
10907
11993
|
{
|
|
10908
11994
|
"bearerAuth": []
|
|
10909
|
-
},
|
|
10910
|
-
{
|
|
10911
|
-
"apiKeyAuth": []
|
|
10912
11995
|
}
|
|
10913
11996
|
],
|
|
10914
11997
|
"parameters": [
|
|
@@ -11034,16 +12117,13 @@
|
|
|
11034
12117
|
"Folders"
|
|
11035
12118
|
],
|
|
11036
12119
|
"summary": "Remove parent from folder",
|
|
11037
|
-
"description": "Removes this folder from a parent folder (bidirectional)
|
|
12120
|
+
"description": "Removes this folder from a parent folder (bidirectional).\n\n---\n**Permission:** `folder:update` \n**Auth:** required",
|
|
11038
12121
|
"x-arke-action": "folder:update",
|
|
11039
12122
|
"x-arke-auth": "required",
|
|
11040
12123
|
"x-arke-tier": "standard",
|
|
11041
12124
|
"security": [
|
|
11042
12125
|
{
|
|
11043
12126
|
"bearerAuth": []
|
|
11044
|
-
},
|
|
11045
|
-
{
|
|
11046
|
-
"apiKeyAuth": []
|
|
11047
12127
|
}
|
|
11048
12128
|
],
|
|
11049
12129
|
"parameters": [
|
|
@@ -11181,7 +12261,7 @@
|
|
|
11181
12261
|
"Versions"
|
|
11182
12262
|
],
|
|
11183
12263
|
"summary": "List version history",
|
|
11184
|
-
"description": "Returns version metadata for an entity (newest first). Use pagination for entities with many versions
|
|
12264
|
+
"description": "Returns version metadata for an entity (newest first). Use pagination for entities with many versions.\n\n---\n**Permission:** `entity:view` \n**Auth:** optional",
|
|
11185
12265
|
"x-arke-action": "entity:view",
|
|
11186
12266
|
"x-arke-auth": "optional",
|
|
11187
12267
|
"x-arke-tier": "standard",
|
|
@@ -11294,7 +12374,7 @@
|
|
|
11294
12374
|
"Versions"
|
|
11295
12375
|
],
|
|
11296
12376
|
"summary": "Get manifest by CID",
|
|
11297
|
-
"description": "Returns the full manifest for any version by its CID. Permission is checked against the entity ID in the manifest
|
|
12377
|
+
"description": "Returns the full manifest for any version by its CID. Permission is checked against the entity ID in the manifest.\n\n---\n**Permission:** `entity:view` \n**Auth:** optional",
|
|
11298
12378
|
"x-arke-action": "entity:view",
|
|
11299
12379
|
"x-arke-auth": "optional",
|
|
11300
12380
|
"x-arke-tier": "standard",
|
|
@@ -11358,7 +12438,7 @@
|
|
|
11358
12438
|
"Permissions"
|
|
11359
12439
|
],
|
|
11360
12440
|
"summary": "Get permission system metadata",
|
|
11361
|
-
"description": "Returns all registered actions, verbs, types, verb implications, wildcard patterns, and default roles.\n\nThis endpoint is useful for:\n- Building dynamic role editors\n- Understanding available permissions\n- Validating actions client-side\n\nAll data is auto-generated from the actual permission system, so it's always in sync with the code
|
|
12441
|
+
"description": "Returns all registered actions, verbs, types, verb implications, wildcard patterns, and default roles.\n\nThis endpoint is useful for:\n- Building dynamic role editors\n- Understanding available permissions\n- Validating actions client-side\n\nAll data is auto-generated from the actual permission system, so it's always in sync with the code.\n\n---\n**Permission:** `permissions:read` \n**Auth:** none",
|
|
11362
12442
|
"x-arke-action": "permissions:read",
|
|
11363
12443
|
"x-arke-auth": "none",
|
|
11364
12444
|
"x-arke-tier": "standard",
|
|
@@ -11382,16 +12462,13 @@
|
|
|
11382
12462
|
"Agents"
|
|
11383
12463
|
],
|
|
11384
12464
|
"summary": "Create an agent",
|
|
11385
|
-
"description": "Creates a new agent entity. Requires agent:create permission in the target collection
|
|
12465
|
+
"description": "Creates a new agent entity. Requires agent:create permission in the target collection.\n\n---\n**Permission:** `agent:create` \n**Auth:** required",
|
|
11386
12466
|
"x-arke-action": "agent:create",
|
|
11387
12467
|
"x-arke-auth": "required",
|
|
11388
12468
|
"x-arke-tier": "standard",
|
|
11389
12469
|
"security": [
|
|
11390
12470
|
{
|
|
11391
12471
|
"bearerAuth": []
|
|
11392
|
-
},
|
|
11393
|
-
{
|
|
11394
|
-
"apiKeyAuth": []
|
|
11395
12472
|
}
|
|
11396
12473
|
],
|
|
11397
12474
|
"requestBody": {
|
|
@@ -11486,7 +12563,7 @@
|
|
|
11486
12563
|
"Agents"
|
|
11487
12564
|
],
|
|
11488
12565
|
"summary": "Get agent by ID",
|
|
11489
|
-
"description": "Returns an agent entity by ID
|
|
12566
|
+
"description": "Returns an agent entity by ID.\n\n---\n**Permission:** `agent:view` \n**Auth:** optional",
|
|
11490
12567
|
"x-arke-action": "agent:view",
|
|
11491
12568
|
"x-arke-auth": "optional",
|
|
11492
12569
|
"x-arke-tier": "standard",
|
|
@@ -11548,16 +12625,13 @@
|
|
|
11548
12625
|
"Agents"
|
|
11549
12626
|
],
|
|
11550
12627
|
"summary": "Update agent",
|
|
11551
|
-
"description": "Updates an agent. Requires agent:update permission.",
|
|
12628
|
+
"description": "Updates an agent. Requires agent:update permission.\n\n**Field placement:** Agent-specific fields (`label`, `endpoint`, `actions_required`, `input_schema`, etc.) must be at the root level, NOT inside `properties`. The `properties` bag is for additional custom data only.\n\n**properties_remove syntax:** Use nested objects, not dot notation.\n- Correct: `{ \"input_schema\": { \"properties\": [\"field_to_remove\"] } }`\n- Wrong: `[\"input_schema.properties.field_to_remove\"]`\n\n---\n**Permission:** `agent:update` \n**Auth:** required",
|
|
11552
12629
|
"x-arke-action": "agent:update",
|
|
11553
12630
|
"x-arke-auth": "required",
|
|
11554
12631
|
"x-arke-tier": "standard",
|
|
11555
12632
|
"security": [
|
|
11556
12633
|
{
|
|
11557
12634
|
"bearerAuth": []
|
|
11558
|
-
},
|
|
11559
|
-
{
|
|
11560
|
-
"apiKeyAuth": []
|
|
11561
12635
|
}
|
|
11562
12636
|
],
|
|
11563
12637
|
"parameters": [
|
|
@@ -11683,16 +12757,13 @@
|
|
|
11683
12757
|
"Agents"
|
|
11684
12758
|
],
|
|
11685
12759
|
"summary": "Invoke an agent",
|
|
11686
|
-
"description": "Invoke an agent to perform work on a target collection.\n\n**Two-phase interaction:**\n1.
|
|
12760
|
+
"description": "Invoke an agent to perform work on a target collection.\n\n**Note:** The `target` parameter must be a collection ID. Agents receive permissions scoped to collections, not individual entities. To process a specific entity, pass the collection it belongs to.\n\n**Two-phase interaction:**\n1. `confirm: false` (default) - preview permissions that will be granted\n2. `confirm: true` - execute the agent\n\nThe agent receives temporal (time-limited) permissions on the target collection.\n\n---\n**Permission:** `agent:invoke` \n**Auth:** required",
|
|
11687
12761
|
"x-arke-action": "agent:invoke",
|
|
11688
12762
|
"x-arke-auth": "required",
|
|
11689
12763
|
"x-arke-tier": "standard",
|
|
11690
12764
|
"security": [
|
|
11691
12765
|
{
|
|
11692
12766
|
"bearerAuth": []
|
|
11693
|
-
},
|
|
11694
|
-
{
|
|
11695
|
-
"apiKeyAuth": []
|
|
11696
12767
|
}
|
|
11697
12768
|
],
|
|
11698
12769
|
"parameters": [
|
|
@@ -11811,16 +12882,13 @@
|
|
|
11811
12882
|
"Agents"
|
|
11812
12883
|
],
|
|
11813
12884
|
"summary": "Create API key for agent",
|
|
11814
|
-
"description": "Creates an API key for the agent. The full key is only returned once
|
|
12885
|
+
"description": "Creates an API key for the agent. The full key is only returned once.\n\n---\n**Permission:** `agent:manage` \n**Auth:** required",
|
|
11815
12886
|
"x-arke-action": "agent:manage",
|
|
11816
12887
|
"x-arke-auth": "required",
|
|
11817
12888
|
"x-arke-tier": "standard",
|
|
11818
12889
|
"security": [
|
|
11819
12890
|
{
|
|
11820
12891
|
"bearerAuth": []
|
|
11821
|
-
},
|
|
11822
|
-
{
|
|
11823
|
-
"apiKeyAuth": []
|
|
11824
12892
|
}
|
|
11825
12893
|
],
|
|
11826
12894
|
"parameters": [
|
|
@@ -11927,16 +12995,13 @@
|
|
|
11927
12995
|
"Agents"
|
|
11928
12996
|
],
|
|
11929
12997
|
"summary": "List API keys for agent",
|
|
11930
|
-
"description": "Lists all active API keys for the agent (without the actual key values)
|
|
12998
|
+
"description": "Lists all active API keys for the agent (without the actual key values).\n\n---\n**Permission:** `agent:manage` \n**Auth:** required",
|
|
11931
12999
|
"x-arke-action": "agent:manage",
|
|
11932
13000
|
"x-arke-auth": "required",
|
|
11933
13001
|
"x-arke-tier": "standard",
|
|
11934
13002
|
"security": [
|
|
11935
13003
|
{
|
|
11936
13004
|
"bearerAuth": []
|
|
11937
|
-
},
|
|
11938
|
-
{
|
|
11939
|
-
"apiKeyAuth": []
|
|
11940
13005
|
}
|
|
11941
13006
|
],
|
|
11942
13007
|
"parameters": [
|
|
@@ -12012,16 +13077,13 @@
|
|
|
12012
13077
|
"Agents"
|
|
12013
13078
|
],
|
|
12014
13079
|
"summary": "Revoke API key",
|
|
12015
|
-
"description": "Revokes an API key for the agent
|
|
13080
|
+
"description": "Revokes an API key for the agent.\n\n---\n**Permission:** `agent:manage` \n**Auth:** required",
|
|
12016
13081
|
"x-arke-action": "agent:manage",
|
|
12017
13082
|
"x-arke-auth": "required",
|
|
12018
13083
|
"x-arke-tier": "standard",
|
|
12019
13084
|
"security": [
|
|
12020
13085
|
{
|
|
12021
13086
|
"bearerAuth": []
|
|
12022
|
-
},
|
|
12023
|
-
{
|
|
12024
|
-
"apiKeyAuth": []
|
|
12025
13087
|
}
|
|
12026
13088
|
],
|
|
12027
13089
|
"parameters": [
|
|
@@ -12096,40 +13158,229 @@
|
|
|
12096
13158
|
}
|
|
12097
13159
|
}
|
|
12098
13160
|
},
|
|
12099
|
-
"/
|
|
12100
|
-
"
|
|
13161
|
+
"/agents/{id}/verify": {
|
|
13162
|
+
"post": {
|
|
12101
13163
|
"tags": [
|
|
12102
|
-
"
|
|
13164
|
+
"Agents"
|
|
12103
13165
|
],
|
|
12104
|
-
"summary": "
|
|
12105
|
-
"description": "
|
|
12106
|
-
"x-arke-action": "
|
|
12107
|
-
"x-arke-auth": "
|
|
13166
|
+
"summary": "Verify agent endpoint ownership",
|
|
13167
|
+
"description": "Verify that you control the agent's endpoint URL. This is required before activating an agent.\n\n**Two-phase flow:**\n1. Call without `confirm` to get a verification token\n2. Deploy `/.well-known/arke-verification` endpoint returning the token\n3. Call with `confirm: true` to complete verification\n\n**Verification endpoint format:**\nYour endpoint must return JSON:\n```json\n{\n \"verification_token\": \"vt_xxx...\",\n \"agent_id\": \"IIxxx...\"\n}\n```\n\n---\n**Permission:** `agent:manage` \n**Auth:** required",
|
|
13168
|
+
"x-arke-action": "agent:manage",
|
|
13169
|
+
"x-arke-auth": "required",
|
|
12108
13170
|
"x-arke-tier": "standard",
|
|
12109
|
-
"
|
|
12110
|
-
{
|
|
12111
|
-
"schema": {
|
|
12112
|
-
"type": "integer",
|
|
12113
|
-
"minimum": 1,
|
|
12114
|
-
"example": 12345
|
|
12115
|
-
},
|
|
12116
|
-
"required": false,
|
|
12117
|
-
"description": "Return events older than this id (from previous response cursor)",
|
|
12118
|
-
"name": "cursor",
|
|
12119
|
-
"in": "query"
|
|
12120
|
-
},
|
|
13171
|
+
"security": [
|
|
12121
13172
|
{
|
|
12122
|
-
"
|
|
12123
|
-
|
|
12124
|
-
|
|
12125
|
-
|
|
12126
|
-
|
|
12127
|
-
|
|
12128
|
-
|
|
12129
|
-
|
|
12130
|
-
|
|
12131
|
-
|
|
12132
|
-
|
|
13173
|
+
"bearerAuth": []
|
|
13174
|
+
}
|
|
13175
|
+
],
|
|
13176
|
+
"parameters": [
|
|
13177
|
+
{
|
|
13178
|
+
"schema": {
|
|
13179
|
+
"type": "string",
|
|
13180
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
13181
|
+
"description": "Entity ID (ULID format)",
|
|
13182
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
13183
|
+
},
|
|
13184
|
+
"required": true,
|
|
13185
|
+
"description": "Entity ID (ULID)",
|
|
13186
|
+
"name": "id",
|
|
13187
|
+
"in": "path"
|
|
13188
|
+
}
|
|
13189
|
+
],
|
|
13190
|
+
"requestBody": {
|
|
13191
|
+
"content": {
|
|
13192
|
+
"application/json": {
|
|
13193
|
+
"schema": {
|
|
13194
|
+
"$ref": "#/components/schemas/VerifyAgentRequest"
|
|
13195
|
+
}
|
|
13196
|
+
}
|
|
13197
|
+
}
|
|
13198
|
+
},
|
|
13199
|
+
"responses": {
|
|
13200
|
+
"200": {
|
|
13201
|
+
"description": "Verification token (when confirm is false) or verification result (when confirm is true)",
|
|
13202
|
+
"content": {
|
|
13203
|
+
"application/json": {
|
|
13204
|
+
"schema": {
|
|
13205
|
+
"anyOf": [
|
|
13206
|
+
{
|
|
13207
|
+
"$ref": "#/components/schemas/VerifyAgentTokenResponse"
|
|
13208
|
+
},
|
|
13209
|
+
{
|
|
13210
|
+
"$ref": "#/components/schemas/VerifyAgentSuccessResponse"
|
|
13211
|
+
},
|
|
13212
|
+
{
|
|
13213
|
+
"$ref": "#/components/schemas/VerifyAgentFailureResponse"
|
|
13214
|
+
}
|
|
13215
|
+
]
|
|
13216
|
+
}
|
|
13217
|
+
}
|
|
13218
|
+
}
|
|
13219
|
+
},
|
|
13220
|
+
"400": {
|
|
13221
|
+
"description": "Bad Request - Invalid input",
|
|
13222
|
+
"content": {
|
|
13223
|
+
"application/json": {
|
|
13224
|
+
"schema": {
|
|
13225
|
+
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
13226
|
+
},
|
|
13227
|
+
"example": {
|
|
13228
|
+
"error": "Validation failed",
|
|
13229
|
+
"details": {
|
|
13230
|
+
"issues": [
|
|
13231
|
+
{
|
|
13232
|
+
"path": [
|
|
13233
|
+
"properties",
|
|
13234
|
+
"label"
|
|
13235
|
+
],
|
|
13236
|
+
"message": "Required"
|
|
13237
|
+
}
|
|
13238
|
+
]
|
|
13239
|
+
}
|
|
13240
|
+
}
|
|
13241
|
+
}
|
|
13242
|
+
}
|
|
13243
|
+
},
|
|
13244
|
+
"401": {
|
|
13245
|
+
"description": "Unauthorized - Missing or invalid authentication",
|
|
13246
|
+
"content": {
|
|
13247
|
+
"application/json": {
|
|
13248
|
+
"schema": {
|
|
13249
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
13250
|
+
},
|
|
13251
|
+
"example": {
|
|
13252
|
+
"error": "Unauthorized: Missing or invalid authentication token"
|
|
13253
|
+
}
|
|
13254
|
+
}
|
|
13255
|
+
}
|
|
13256
|
+
},
|
|
13257
|
+
"403": {
|
|
13258
|
+
"description": "Forbidden - Insufficient permissions",
|
|
13259
|
+
"content": {
|
|
13260
|
+
"application/json": {
|
|
13261
|
+
"schema": {
|
|
13262
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
13263
|
+
},
|
|
13264
|
+
"example": {
|
|
13265
|
+
"error": "Forbidden: You do not have permission to perform this action"
|
|
13266
|
+
}
|
|
13267
|
+
}
|
|
13268
|
+
}
|
|
13269
|
+
},
|
|
13270
|
+
"404": {
|
|
13271
|
+
"description": "Not Found - Resource does not exist",
|
|
13272
|
+
"content": {
|
|
13273
|
+
"application/json": {
|
|
13274
|
+
"schema": {
|
|
13275
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
13276
|
+
},
|
|
13277
|
+
"example": {
|
|
13278
|
+
"error": "Entity not found"
|
|
13279
|
+
}
|
|
13280
|
+
}
|
|
13281
|
+
}
|
|
13282
|
+
}
|
|
13283
|
+
}
|
|
13284
|
+
}
|
|
13285
|
+
},
|
|
13286
|
+
"/jobs/{id}": {
|
|
13287
|
+
"get": {
|
|
13288
|
+
"tags": [
|
|
13289
|
+
"Jobs"
|
|
13290
|
+
],
|
|
13291
|
+
"summary": "Get job status",
|
|
13292
|
+
"description": "Returns focused job status and summary. Use this endpoint for quick status polling.\n\nReturns 404 if the entity is not a job collection.\n\n**Response includes:**\n- Current status (running/done/error)\n- Timestamps (started_at, completed_at)\n- Agent references (agent, main_agent, target)\n- Counts (files_count, sub_jobs_count)\n\n---\n**Permission:** `collection:view` \n**Auth:** optional",
|
|
13293
|
+
"x-arke-action": "collection:view",
|
|
13294
|
+
"x-arke-auth": "optional",
|
|
13295
|
+
"x-arke-tier": "standard",
|
|
13296
|
+
"parameters": [
|
|
13297
|
+
{
|
|
13298
|
+
"schema": {
|
|
13299
|
+
"type": "string",
|
|
13300
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
13301
|
+
"description": "Entity ID (ULID format)",
|
|
13302
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
13303
|
+
},
|
|
13304
|
+
"required": true,
|
|
13305
|
+
"description": "Entity ID (ULID)",
|
|
13306
|
+
"name": "id",
|
|
13307
|
+
"in": "path"
|
|
13308
|
+
}
|
|
13309
|
+
],
|
|
13310
|
+
"responses": {
|
|
13311
|
+
"200": {
|
|
13312
|
+
"description": "Job status",
|
|
13313
|
+
"content": {
|
|
13314
|
+
"application/json": {
|
|
13315
|
+
"schema": {
|
|
13316
|
+
"$ref": "#/components/schemas/JobStatusResponse"
|
|
13317
|
+
}
|
|
13318
|
+
}
|
|
13319
|
+
}
|
|
13320
|
+
},
|
|
13321
|
+
"403": {
|
|
13322
|
+
"description": "Forbidden - Insufficient permissions",
|
|
13323
|
+
"content": {
|
|
13324
|
+
"application/json": {
|
|
13325
|
+
"schema": {
|
|
13326
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
13327
|
+
},
|
|
13328
|
+
"example": {
|
|
13329
|
+
"error": "Forbidden: You do not have permission to perform this action"
|
|
13330
|
+
}
|
|
13331
|
+
}
|
|
13332
|
+
}
|
|
13333
|
+
},
|
|
13334
|
+
"404": {
|
|
13335
|
+
"description": "Not Found - Resource does not exist",
|
|
13336
|
+
"content": {
|
|
13337
|
+
"application/json": {
|
|
13338
|
+
"schema": {
|
|
13339
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
13340
|
+
},
|
|
13341
|
+
"example": {
|
|
13342
|
+
"error": "Entity not found"
|
|
13343
|
+
}
|
|
13344
|
+
}
|
|
13345
|
+
}
|
|
13346
|
+
}
|
|
13347
|
+
}
|
|
13348
|
+
}
|
|
13349
|
+
},
|
|
13350
|
+
"/events": {
|
|
13351
|
+
"get": {
|
|
13352
|
+
"tags": [
|
|
13353
|
+
"Events"
|
|
13354
|
+
],
|
|
13355
|
+
"summary": "List entity change events",
|
|
13356
|
+
"description": "Returns a cursor-based list of entity change events for client synchronization.\n\n**Usage:**\n- Call without cursor to get newest events\n- Use returned `cursor` as `?cursor=` to get older events\n- Poll without cursor periodically to check for new events\n\n**Sync flow:**\n1. Initial: `GET /events` → get newest, save highest `id` as high-water mark\n2. Paginate: `GET /events?cursor=X` → get older events until `has_more=false`\n3. Poll: `GET /events` → if newest `id` > high-water mark, process new events\n\n**Event data:**\n- `id`: Auto-increment ID\n- `pi`: Entity ID that changed\n- `cid`: New manifest CID\n- `ts`: ISO timestamp\n\nEvents are ephemeral (30-day rolling window) - for full sync, use snapshots.\n\n---\n**Permission:** `events:list` \n**Auth:** none",
|
|
13357
|
+
"x-arke-action": "events:list",
|
|
13358
|
+
"x-arke-auth": "none",
|
|
13359
|
+
"x-arke-tier": "standard",
|
|
13360
|
+
"parameters": [
|
|
13361
|
+
{
|
|
13362
|
+
"schema": {
|
|
13363
|
+
"type": "integer",
|
|
13364
|
+
"minimum": 1,
|
|
13365
|
+
"example": 12345
|
|
13366
|
+
},
|
|
13367
|
+
"required": false,
|
|
13368
|
+
"description": "Return events older than this id (from previous response cursor)",
|
|
13369
|
+
"name": "cursor",
|
|
13370
|
+
"in": "query"
|
|
13371
|
+
},
|
|
13372
|
+
{
|
|
13373
|
+
"schema": {
|
|
13374
|
+
"type": "integer",
|
|
13375
|
+
"minimum": 1,
|
|
13376
|
+
"maximum": 1000,
|
|
13377
|
+
"example": 100
|
|
13378
|
+
},
|
|
13379
|
+
"required": false,
|
|
13380
|
+
"description": "Maximum number of events to return (default: 100, max: 1000)",
|
|
13381
|
+
"name": "limit",
|
|
13382
|
+
"in": "query"
|
|
13383
|
+
},
|
|
12133
13384
|
{
|
|
12134
13385
|
"schema": {
|
|
12135
13386
|
"type": "string",
|
|
@@ -12165,10 +13416,15 @@
|
|
|
12165
13416
|
"Graph"
|
|
12166
13417
|
],
|
|
12167
13418
|
"summary": "Find paths between entities",
|
|
12168
|
-
"description": "Find shortest paths between source and target entity sets
|
|
13419
|
+
"description": "Find shortest paths between source and target entity sets. Returns all paths up to the limit (default 100).\n\nUse this when you know both endpoints and want to discover how they connect - for example, finding the chain of relationships between a person and a document.\n\n---\n**Permission:** `graph:query` \n**Auth:** required",
|
|
12169
13420
|
"x-arke-action": "graph:query",
|
|
12170
|
-
"x-arke-auth": "
|
|
13421
|
+
"x-arke-auth": "required",
|
|
12171
13422
|
"x-arke-tier": "external",
|
|
13423
|
+
"security": [
|
|
13424
|
+
{
|
|
13425
|
+
"bearerAuth": []
|
|
13426
|
+
}
|
|
13427
|
+
],
|
|
12172
13428
|
"requestBody": {
|
|
12173
13429
|
"content": {
|
|
12174
13430
|
"application/json": {
|
|
@@ -12221,11 +13477,16 @@
|
|
|
12221
13477
|
"tags": [
|
|
12222
13478
|
"Graph"
|
|
12223
13479
|
],
|
|
12224
|
-
"summary": "Find reachable entities",
|
|
12225
|
-
"description": "Find all entities of a specific type reachable from source entities within N hops.",
|
|
13480
|
+
"summary": "Find reachable entities (exhaustive)",
|
|
13481
|
+
"description": "Find all entities of a specific type reachable from source entities within N hops. Returns up to 100 results by default.\n\n**When to use this vs POST /query:** This endpoint returns exhaustive, unranked results - all reachable entities up to the limit. Use `POST /query` when you want relevance-ranked results combining semantic similarity with graph structure. Use this endpoint when you need comprehensive graph exploration from known entity IDs.\n\n---\n**Permission:** `graph:query` \n**Auth:** required",
|
|
12226
13482
|
"x-arke-action": "graph:query",
|
|
12227
|
-
"x-arke-auth": "
|
|
13483
|
+
"x-arke-auth": "required",
|
|
12228
13484
|
"x-arke-tier": "external",
|
|
13485
|
+
"security": [
|
|
13486
|
+
{
|
|
13487
|
+
"bearerAuth": []
|
|
13488
|
+
}
|
|
13489
|
+
],
|
|
12229
13490
|
"requestBody": {
|
|
12230
13491
|
"content": {
|
|
12231
13492
|
"application/json": {
|
|
@@ -12279,10 +13540,15 @@
|
|
|
12279
13540
|
"Graph"
|
|
12280
13541
|
],
|
|
12281
13542
|
"summary": "Get entity from graph",
|
|
12282
|
-
"description": "Get entity details with all relationships from the graph database.",
|
|
13543
|
+
"description": "Get entity details with all relationships from the graph database. Unlike the entity manifest, this includes both outgoing and incoming relationships - showing not just what this entity links to, but also what links to it.\n\n---\n**Permission:** `graph:query` \n**Auth:** required",
|
|
12283
13544
|
"x-arke-action": "graph:query",
|
|
12284
|
-
"x-arke-auth": "
|
|
13545
|
+
"x-arke-auth": "required",
|
|
12285
13546
|
"x-arke-tier": "external",
|
|
13547
|
+
"security": [
|
|
13548
|
+
{
|
|
13549
|
+
"bearerAuth": []
|
|
13550
|
+
}
|
|
13551
|
+
],
|
|
12286
13552
|
"parameters": [
|
|
12287
13553
|
{
|
|
12288
13554
|
"schema": {
|
|
@@ -12330,10 +13596,15 @@
|
|
|
12330
13596
|
"Query"
|
|
12331
13597
|
],
|
|
12332
13598
|
"summary": "Execute Argo query",
|
|
12333
|
-
"description": "Execute an Argo DSL query for path-based graph traversal.\n\n## Query Syntax\n\n```\n[SCOPE_PREFIX] ENTRY_POINT [ENTRY_FILTER] [-[RELATION]{DEPTH}-> TARGET_FILTER]...\n```\n\n## Scope Prefixes\n\nControl where semantic search looks for entry points. Default is discovery mode.\n\n| Prefix | Description | Example |\n|--------|-------------|---------|\n| (none) | **Discovery mode** (default) - find relevant collections, then search within each | `\"medical notes\"` |\n| `@:collections` | Search for collections themselves | `@:collections \"columbia archives\"` |\n| `@:collection(id)` | Search within a specific collection | `@:collection(01JCOLL123) \"meeting\"` |\n| `@:discover` | Explicit discovery mode | `@:discover \"research papers\"` |\n| `@:public` | Search public domain only | `@:public \"orphaned data\"` |\n\n**Note:** Graph traversal (hops) is always cross-collection regardless of scope.\n\n### Entry Points\n\n| Syntax | Description | Example |\n|--------|-------------|---------|\n| `\"text\"` | Semantic search | `\"george washington\"` |\n| `@id` | Exact entity ID | `@01KE4ZY69F9R40E88PK9S0TQRQ` |\n| `type:X` | All entities of type | `type:person` |\n| `type:X ~ \"text\"` | Semantic search within type | `type:person ~ \"physician\"` |\n\n### Edges (Hops)\n\n| Syntax | Direction |\n|--------|-----------|\n| `-[*]->` | Outgoing |\n| `<-[*]-` | Incoming |\n| `<-[*]->` | Both |\n| `-[*]{,4}->` | Variable depth (1-4) |\n\n### Examples\n\n```\n\"george washington\" # Discovery mode (default)\n@:collections \"columbia university\" # Find collections\n@:collection(01JCOLL123) \"faculty meeting\" # Within specific collection\n@:discover \"alice\" -[*]{,2}-> type:person # Discover, then traverse\n@01KE4ZY... -[*]{,2}-> type:person # From exact entity\n```\n",
|
|
13599
|
+
"description": "Execute an Argo DSL query for path-based graph traversal with relevance ranking.\n\n## When to Use This Endpoint\n\n| Endpoint | Use Case |\n|----------|----------|\n| `POST /query` | Semantic search + graph traversal with **relevance-ranked** results (default k=25) |\n| `POST /graph/reachable` | **Exhaustive** graph exploration from known entities (default limit=100) |\n| `POST /graph/paths` | Find all shortest paths between two entity sets |\n\nThis endpoint combines semantic similarity scores with path length to rank results. For exhaustive graph traversal without ranking, use the `/graph/*` endpoints directly.\n\n## Query Syntax\n\n```\n[SCOPE_PREFIX] ENTRY_POINT [ENTRY_FILTER] [-[RELATION]{DEPTH}-> TARGET_FILTER]...\n```\n\n## Scope Prefixes\n\nControl where semantic search looks for entry points. Default is discovery mode.\n\n| Prefix | Description | Example |\n|--------|-------------|---------|\n| (none) | **Discovery mode** (default) - find relevant collections, then search within each | `\"medical notes\"` |\n| `@:collections` | Search for collections themselves | `@:collections \"columbia archives\"` |\n| `@:collection(id)` | Search within a specific collection | `@:collection(01JCOLL123) \"meeting\"` |\n| `@:discover` | Explicit discovery mode | `@:discover \"research papers\"` |\n| `@:public` | Search public domain only | `@:public \"orphaned data\"` |\n\n**Note:** Graph traversal (hops) is always cross-collection regardless of scope.\n\n### Entry Points\n\n| Syntax | Description | Example |\n|--------|-------------|---------|\n| `\"text\"` | Semantic search | `\"george washington\"` |\n| `@id` | Exact entity ID | `@01KE4ZY69F9R40E88PK9S0TQRQ` |\n| `type:X` | All entities of type | `type:person` |\n| `type:X ~ \"text\"` | Semantic search within type | `type:person ~ \"physician\"` |\n\n### Edges (Hops)\n\n| Syntax | Direction |\n|--------|-----------|\n| `-[*]->` | Outgoing |\n| `<-[*]-` | Incoming |\n| `<-[*]->` | Both |\n| `-[*]{,4}->` | Variable depth (1-4) |\n\n### Examples\n\n```\n\"george washington\" # Discovery mode (default)\n@:collections \"columbia university\" # Find collections\n@:collection(01JCOLL123) \"faculty meeting\" # Within specific collection\n@:discover \"alice\" -[*]{,2}-> type:person # Discover, then traverse\n@01KE4ZY... -[*]{,2}-> type:person # From exact entity\n```\n\n\n---\n**Permission:** `query:execute` \n**Auth:** required",
|
|
12334
13600
|
"x-arke-action": "query:execute",
|
|
12335
|
-
"x-arke-auth": "
|
|
13601
|
+
"x-arke-auth": "required",
|
|
12336
13602
|
"x-arke-tier": "external",
|
|
13603
|
+
"security": [
|
|
13604
|
+
{
|
|
13605
|
+
"bearerAuth": []
|
|
13606
|
+
}
|
|
13607
|
+
],
|
|
12337
13608
|
"requestBody": {
|
|
12338
13609
|
"content": {
|
|
12339
13610
|
"application/json": {
|
|
@@ -12387,10 +13658,15 @@
|
|
|
12387
13658
|
"Search"
|
|
12388
13659
|
],
|
|
12389
13660
|
"summary": "Find similar collections",
|
|
12390
|
-
"description": "Find collections that are semantically similar to a given collection.\n\nUses the collection's weighted centroid vector (combination of description and entity embeddings) to find related collections
|
|
13661
|
+
"description": "Find collections that are semantically similar to a given collection.\n\nUses the collection's weighted centroid vector (combination of description and entity embeddings) to find related collections.\n\n---\n**Permission:** `search:similar` \n**Auth:** required",
|
|
12391
13662
|
"x-arke-action": "search:similar",
|
|
12392
|
-
"x-arke-auth": "
|
|
13663
|
+
"x-arke-auth": "required",
|
|
12393
13664
|
"x-arke-tier": "external",
|
|
13665
|
+
"security": [
|
|
13666
|
+
{
|
|
13667
|
+
"bearerAuth": []
|
|
13668
|
+
}
|
|
13669
|
+
],
|
|
12394
13670
|
"requestBody": {
|
|
12395
13671
|
"content": {
|
|
12396
13672
|
"application/json": {
|
|
@@ -12549,10 +13825,15 @@
|
|
|
12549
13825
|
"Search"
|
|
12550
13826
|
],
|
|
12551
13827
|
"summary": "Find similar items across collections",
|
|
12552
|
-
"description": "Find entities that are semantically similar to a given entity, searching across multiple collections.\n\nThis performs a two-tier search:\n1. First finds collections similar to the entity's collection\n2. Then searches within each collection for similar items\n3. Aggregates and ranks results with diversity weighting",
|
|
13828
|
+
"description": "Find entities that are semantically similar to a given entity, searching across multiple collections.\n\nThis performs a two-tier search:\n1. First finds collections similar to the entity's collection\n2. Then searches within each collection for similar items\n3. Aggregates and ranks results with diversity weighting\n\n---\n**Permission:** `search:similar` \n**Auth:** required",
|
|
12553
13829
|
"x-arke-action": "search:similar",
|
|
12554
|
-
"x-arke-auth": "
|
|
13830
|
+
"x-arke-auth": "required",
|
|
12555
13831
|
"x-arke-tier": "external",
|
|
13832
|
+
"security": [
|
|
13833
|
+
{
|
|
13834
|
+
"bearerAuth": []
|
|
13835
|
+
}
|
|
13836
|
+
],
|
|
12556
13837
|
"requestBody": {
|
|
12557
13838
|
"content": {
|
|
12558
13839
|
"application/json": {
|
|
@@ -12629,9 +13910,189 @@
|
|
|
12629
13910
|
"label": {
|
|
12630
13911
|
"type": "string"
|
|
12631
13912
|
},
|
|
12632
|
-
"collection_pi": {
|
|
12633
|
-
"type": "string",
|
|
12634
|
-
"nullable": true
|
|
13913
|
+
"collection_pi": {
|
|
13914
|
+
"type": "string",
|
|
13915
|
+
"nullable": true
|
|
13916
|
+
},
|
|
13917
|
+
"score": {
|
|
13918
|
+
"type": "number"
|
|
13919
|
+
},
|
|
13920
|
+
"created_at": {
|
|
13921
|
+
"type": "string"
|
|
13922
|
+
},
|
|
13923
|
+
"updated_at": {
|
|
13924
|
+
"type": "string"
|
|
13925
|
+
}
|
|
13926
|
+
},
|
|
13927
|
+
"required": [
|
|
13928
|
+
"pi",
|
|
13929
|
+
"type",
|
|
13930
|
+
"label",
|
|
13931
|
+
"collection_pi",
|
|
13932
|
+
"score"
|
|
13933
|
+
]
|
|
13934
|
+
}
|
|
13935
|
+
},
|
|
13936
|
+
"metadata": {
|
|
13937
|
+
"type": "object",
|
|
13938
|
+
"properties": {
|
|
13939
|
+
"source_pi": {
|
|
13940
|
+
"type": "string"
|
|
13941
|
+
},
|
|
13942
|
+
"collections_searched": {
|
|
13943
|
+
"type": "number"
|
|
13944
|
+
},
|
|
13945
|
+
"result_count": {
|
|
13946
|
+
"type": "number"
|
|
13947
|
+
},
|
|
13948
|
+
"cached": {
|
|
13949
|
+
"type": "boolean"
|
|
13950
|
+
},
|
|
13951
|
+
"cached_at": {
|
|
13952
|
+
"type": "string"
|
|
13953
|
+
}
|
|
13954
|
+
},
|
|
13955
|
+
"required": [
|
|
13956
|
+
"source_pi",
|
|
13957
|
+
"collections_searched",
|
|
13958
|
+
"result_count"
|
|
13959
|
+
]
|
|
13960
|
+
}
|
|
13961
|
+
},
|
|
13962
|
+
"required": [
|
|
13963
|
+
"results",
|
|
13964
|
+
"metadata"
|
|
13965
|
+
]
|
|
13966
|
+
}
|
|
13967
|
+
}
|
|
13968
|
+
}
|
|
13969
|
+
},
|
|
13970
|
+
"400": {
|
|
13971
|
+
"description": "Bad Request - Invalid input",
|
|
13972
|
+
"content": {
|
|
13973
|
+
"application/json": {
|
|
13974
|
+
"schema": {
|
|
13975
|
+
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
13976
|
+
},
|
|
13977
|
+
"example": {
|
|
13978
|
+
"error": "Validation failed",
|
|
13979
|
+
"details": {
|
|
13980
|
+
"issues": [
|
|
13981
|
+
{
|
|
13982
|
+
"path": [
|
|
13983
|
+
"properties",
|
|
13984
|
+
"label"
|
|
13985
|
+
],
|
|
13986
|
+
"message": "Required"
|
|
13987
|
+
}
|
|
13988
|
+
]
|
|
13989
|
+
}
|
|
13990
|
+
}
|
|
13991
|
+
}
|
|
13992
|
+
}
|
|
13993
|
+
},
|
|
13994
|
+
"404": {
|
|
13995
|
+
"description": "Not Found - Resource does not exist",
|
|
13996
|
+
"content": {
|
|
13997
|
+
"application/json": {
|
|
13998
|
+
"schema": {
|
|
13999
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
14000
|
+
},
|
|
14001
|
+
"example": {
|
|
14002
|
+
"error": "Entity not found"
|
|
14003
|
+
}
|
|
14004
|
+
}
|
|
14005
|
+
}
|
|
14006
|
+
},
|
|
14007
|
+
"503": {
|
|
14008
|
+
"description": "Service Unavailable - External service not available",
|
|
14009
|
+
"content": {
|
|
14010
|
+
"application/json": {
|
|
14011
|
+
"schema": {
|
|
14012
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
14013
|
+
},
|
|
14014
|
+
"example": {
|
|
14015
|
+
"error": "Service unavailable",
|
|
14016
|
+
"details": {
|
|
14017
|
+
"service": "pinecone"
|
|
14018
|
+
}
|
|
14019
|
+
}
|
|
14020
|
+
}
|
|
14021
|
+
}
|
|
14022
|
+
}
|
|
14023
|
+
}
|
|
14024
|
+
}
|
|
14025
|
+
},
|
|
14026
|
+
"/search/collections": {
|
|
14027
|
+
"post": {
|
|
14028
|
+
"tags": [
|
|
14029
|
+
"Search"
|
|
14030
|
+
],
|
|
14031
|
+
"summary": "Search collections by text",
|
|
14032
|
+
"description": "Search for collections using semantic text search.\n\nUse this endpoint to discover collections about a topic. Results are ranked by semantic similarity to your query.\n\n---\n**Permission:** `search:query` \n**Auth:** required",
|
|
14033
|
+
"x-arke-action": "search:query",
|
|
14034
|
+
"x-arke-auth": "required",
|
|
14035
|
+
"x-arke-tier": "external",
|
|
14036
|
+
"security": [
|
|
14037
|
+
{
|
|
14038
|
+
"bearerAuth": []
|
|
14039
|
+
}
|
|
14040
|
+
],
|
|
14041
|
+
"requestBody": {
|
|
14042
|
+
"content": {
|
|
14043
|
+
"application/json": {
|
|
14044
|
+
"schema": {
|
|
14045
|
+
"type": "object",
|
|
14046
|
+
"properties": {
|
|
14047
|
+
"query": {
|
|
14048
|
+
"type": "string",
|
|
14049
|
+
"minLength": 1,
|
|
14050
|
+
"maxLength": 500,
|
|
14051
|
+
"description": "Search query text"
|
|
14052
|
+
},
|
|
14053
|
+
"limit": {
|
|
14054
|
+
"type": "number",
|
|
14055
|
+
"minimum": 1,
|
|
14056
|
+
"maximum": 100,
|
|
14057
|
+
"default": 10,
|
|
14058
|
+
"description": "Maximum results to return"
|
|
14059
|
+
},
|
|
14060
|
+
"types": {
|
|
14061
|
+
"type": "array",
|
|
14062
|
+
"items": {
|
|
14063
|
+
"type": "string"
|
|
14064
|
+
},
|
|
14065
|
+
"description": "Filter by collection types"
|
|
14066
|
+
}
|
|
14067
|
+
},
|
|
14068
|
+
"required": [
|
|
14069
|
+
"query"
|
|
14070
|
+
]
|
|
14071
|
+
}
|
|
14072
|
+
}
|
|
14073
|
+
}
|
|
14074
|
+
},
|
|
14075
|
+
"responses": {
|
|
14076
|
+
"200": {
|
|
14077
|
+
"description": "Search results",
|
|
14078
|
+
"content": {
|
|
14079
|
+
"application/json": {
|
|
14080
|
+
"schema": {
|
|
14081
|
+
"type": "object",
|
|
14082
|
+
"properties": {
|
|
14083
|
+
"results": {
|
|
14084
|
+
"type": "array",
|
|
14085
|
+
"items": {
|
|
14086
|
+
"type": "object",
|
|
14087
|
+
"properties": {
|
|
14088
|
+
"pi": {
|
|
14089
|
+
"type": "string"
|
|
14090
|
+
},
|
|
14091
|
+
"label": {
|
|
14092
|
+
"type": "string"
|
|
14093
|
+
},
|
|
14094
|
+
"type": {
|
|
14095
|
+
"type": "string"
|
|
12635
14096
|
},
|
|
12636
14097
|
"score": {
|
|
12637
14098
|
"type": "number"
|
|
@@ -12645,9 +14106,8 @@
|
|
|
12645
14106
|
},
|
|
12646
14107
|
"required": [
|
|
12647
14108
|
"pi",
|
|
12648
|
-
"type",
|
|
12649
14109
|
"label",
|
|
12650
|
-
"
|
|
14110
|
+
"type",
|
|
12651
14111
|
"score"
|
|
12652
14112
|
]
|
|
12653
14113
|
}
|
|
@@ -12655,25 +14115,15 @@
|
|
|
12655
14115
|
"metadata": {
|
|
12656
14116
|
"type": "object",
|
|
12657
14117
|
"properties": {
|
|
12658
|
-
"
|
|
14118
|
+
"query": {
|
|
12659
14119
|
"type": "string"
|
|
12660
14120
|
},
|
|
12661
|
-
"collections_searched": {
|
|
12662
|
-
"type": "number"
|
|
12663
|
-
},
|
|
12664
14121
|
"result_count": {
|
|
12665
14122
|
"type": "number"
|
|
12666
|
-
},
|
|
12667
|
-
"cached": {
|
|
12668
|
-
"type": "boolean"
|
|
12669
|
-
},
|
|
12670
|
-
"cached_at": {
|
|
12671
|
-
"type": "string"
|
|
12672
14123
|
}
|
|
12673
14124
|
},
|
|
12674
14125
|
"required": [
|
|
12675
|
-
"
|
|
12676
|
-
"collections_searched",
|
|
14126
|
+
"query",
|
|
12677
14127
|
"result_count"
|
|
12678
14128
|
]
|
|
12679
14129
|
}
|
|
@@ -12710,19 +14160,6 @@
|
|
|
12710
14160
|
}
|
|
12711
14161
|
}
|
|
12712
14162
|
},
|
|
12713
|
-
"404": {
|
|
12714
|
-
"description": "Not Found - Resource does not exist",
|
|
12715
|
-
"content": {
|
|
12716
|
-
"application/json": {
|
|
12717
|
-
"schema": {
|
|
12718
|
-
"$ref": "#/components/schemas/ErrorResponse"
|
|
12719
|
-
},
|
|
12720
|
-
"example": {
|
|
12721
|
-
"error": "Entity not found"
|
|
12722
|
-
}
|
|
12723
|
-
}
|
|
12724
|
-
}
|
|
12725
|
-
},
|
|
12726
14163
|
"503": {
|
|
12727
14164
|
"description": "Service Unavailable - External service not available",
|
|
12728
14165
|
"content": {
|
|
@@ -12742,16 +14179,21 @@
|
|
|
12742
14179
|
}
|
|
12743
14180
|
}
|
|
12744
14181
|
},
|
|
12745
|
-
"/search/
|
|
14182
|
+
"/search/agents": {
|
|
12746
14183
|
"post": {
|
|
12747
14184
|
"tags": [
|
|
12748
14185
|
"Search"
|
|
12749
14186
|
],
|
|
12750
|
-
"summary": "Search
|
|
12751
|
-
"description": "Search for
|
|
14187
|
+
"summary": "Search agents by text",
|
|
14188
|
+
"description": "Search for agents using semantic text search.\n\nUse this endpoint to discover agents across the network. Only active agents are returned. Results are ranked by semantic similarity to your query based on agent descriptions and capabilities.\n\n---\n**Permission:** `search:query` \n**Auth:** required",
|
|
12752
14189
|
"x-arke-action": "search:query",
|
|
12753
|
-
"x-arke-auth": "
|
|
14190
|
+
"x-arke-auth": "required",
|
|
12754
14191
|
"x-arke-tier": "external",
|
|
14192
|
+
"security": [
|
|
14193
|
+
{
|
|
14194
|
+
"bearerAuth": []
|
|
14195
|
+
}
|
|
14196
|
+
],
|
|
12755
14197
|
"requestBody": {
|
|
12756
14198
|
"content": {
|
|
12757
14199
|
"application/json": {
|
|
@@ -12770,13 +14212,6 @@
|
|
|
12770
14212
|
"maximum": 100,
|
|
12771
14213
|
"default": 10,
|
|
12772
14214
|
"description": "Maximum results to return"
|
|
12773
|
-
},
|
|
12774
|
-
"types": {
|
|
12775
|
-
"type": "array",
|
|
12776
|
-
"items": {
|
|
12777
|
-
"type": "string"
|
|
12778
|
-
},
|
|
12779
|
-
"description": "Filter by collection types"
|
|
12780
14215
|
}
|
|
12781
14216
|
},
|
|
12782
14217
|
"required": [
|
|
@@ -12805,12 +14240,16 @@
|
|
|
12805
14240
|
"label": {
|
|
12806
14241
|
"type": "string"
|
|
12807
14242
|
},
|
|
12808
|
-
"type": {
|
|
12809
|
-
"type": "string"
|
|
12810
|
-
},
|
|
12811
14243
|
"score": {
|
|
12812
14244
|
"type": "number"
|
|
12813
14245
|
},
|
|
14246
|
+
"collection_pi": {
|
|
14247
|
+
"type": "string",
|
|
14248
|
+
"nullable": true
|
|
14249
|
+
},
|
|
14250
|
+
"status": {
|
|
14251
|
+
"type": "string"
|
|
14252
|
+
},
|
|
12814
14253
|
"created_at": {
|
|
12815
14254
|
"type": "string"
|
|
12816
14255
|
},
|
|
@@ -12821,8 +14260,8 @@
|
|
|
12821
14260
|
"required": [
|
|
12822
14261
|
"pi",
|
|
12823
14262
|
"label",
|
|
12824
|
-
"
|
|
12825
|
-
"
|
|
14263
|
+
"score",
|
|
14264
|
+
"collection_pi"
|
|
12826
14265
|
]
|
|
12827
14266
|
}
|
|
12828
14267
|
},
|
|
@@ -12899,10 +14338,15 @@
|
|
|
12899
14338
|
"Search"
|
|
12900
14339
|
],
|
|
12901
14340
|
"summary": "Search entities within collection(s)",
|
|
12902
|
-
"description": "Search for entities within one or more collections using semantic text search.\n\nProvide either `collection_pi` for a single collection or `collection_pis` for multiple collections (searched in parallel).\n\nUse `per_collection_limit` to ensure result diversity when searching multiple collections
|
|
14341
|
+
"description": "Search for entities within one or more collections using semantic text search.\n\nProvide either `collection_pi` for a single collection or `collection_pis` for multiple collections (searched in parallel).\n\nUse `per_collection_limit` to ensure result diversity when searching multiple collections.\n\n---\n**Permission:** `search:query` \n**Auth:** required",
|
|
12903
14342
|
"x-arke-action": "search:query",
|
|
12904
|
-
"x-arke-auth": "
|
|
14343
|
+
"x-arke-auth": "required",
|
|
12905
14344
|
"x-arke-tier": "external",
|
|
14345
|
+
"security": [
|
|
14346
|
+
{
|
|
14347
|
+
"bearerAuth": []
|
|
14348
|
+
}
|
|
14349
|
+
],
|
|
12906
14350
|
"requestBody": {
|
|
12907
14351
|
"content": {
|
|
12908
14352
|
"application/json": {
|
|
@@ -13083,10 +14527,15 @@
|
|
|
13083
14527
|
"Search"
|
|
13084
14528
|
],
|
|
13085
14529
|
"summary": "Discover entities across all collections",
|
|
13086
|
-
"description": "Two-step discovery search: first finds relevant collections, then searches within them.\n\nUse this endpoint when you don't know which collections to search. The system will:\n1. Find collections semantically related to your query\n2. Search within each collection in parallel\n3. Aggregate and rank results across all collections\n\nGreat for exploration and AI agents navigating the network
|
|
14530
|
+
"description": "Two-step discovery search: first finds relevant collections, then searches within them.\n\nUse this endpoint when you don't know which collections to search. The system will:\n1. Find collections semantically related to your query\n2. Search within each collection in parallel\n3. Aggregate and rank results across all collections\n\nGreat for exploration and AI agents navigating the network.\n\n---\n**Permission:** `search:query` \n**Auth:** required",
|
|
13087
14531
|
"x-arke-action": "search:query",
|
|
13088
|
-
"x-arke-auth": "
|
|
14532
|
+
"x-arke-auth": "required",
|
|
13089
14533
|
"x-arke-tier": "external",
|
|
14534
|
+
"security": [
|
|
14535
|
+
{
|
|
14536
|
+
"bearerAuth": []
|
|
14537
|
+
}
|
|
14538
|
+
],
|
|
13090
14539
|
"requestBody": {
|
|
13091
14540
|
"content": {
|
|
13092
14541
|
"application/json": {
|
|
@@ -13250,13 +14699,181 @@
|
|
|
13250
14699
|
}
|
|
13251
14700
|
}
|
|
13252
14701
|
},
|
|
14702
|
+
"/chat": {
|
|
14703
|
+
"post": {
|
|
14704
|
+
"tags": [
|
|
14705
|
+
"Chat"
|
|
14706
|
+
],
|
|
14707
|
+
"summary": "Send chat message",
|
|
14708
|
+
"description": "Send a message to the Arke chat agent and receive a streaming response.\n\nThe agent can execute Arke API operations on your behalf using the authenticated user's permissions.\n\n## Headers\n\n- `X-Chat-ID`: Optional. Specify to continue an existing chat session. If omitted, a new session is created.\n\n## Response Format\n\nThe response is a Server-Sent Events (SSE) stream in AI SDK v5 UIMessage format.\nStream chunks include text deltas, tool calls, and usage information.\n\n## Token Usage Tracking\n\nUsage information is included at the end of the stream in the format:\n```json\n{\"type\":\"message_delta\",\"delta\":{\"usage\":{\"input_tokens\":123,\"output_tokens\":456}}}\n```\n\n\n---\n**Permission:** `chat:send` \n**Auth:** required",
|
|
14709
|
+
"x-arke-action": "chat:send",
|
|
14710
|
+
"x-arke-auth": "required",
|
|
14711
|
+
"x-arke-tier": "external",
|
|
14712
|
+
"security": [
|
|
14713
|
+
{
|
|
14714
|
+
"bearerAuth": []
|
|
14715
|
+
}
|
|
14716
|
+
],
|
|
14717
|
+
"requestBody": {
|
|
14718
|
+
"content": {
|
|
14719
|
+
"application/json": {
|
|
14720
|
+
"schema": {
|
|
14721
|
+
"$ref": "#/components/schemas/SendChatRequest"
|
|
14722
|
+
}
|
|
14723
|
+
}
|
|
14724
|
+
}
|
|
14725
|
+
},
|
|
14726
|
+
"responses": {
|
|
14727
|
+
"200": {
|
|
14728
|
+
"description": "Streaming SSE response",
|
|
14729
|
+
"content": {
|
|
14730
|
+
"text/event-stream": {
|
|
14731
|
+
"schema": {
|
|
14732
|
+
"type": "string",
|
|
14733
|
+
"description": "Server-Sent Events stream in AI SDK v5 format"
|
|
14734
|
+
}
|
|
14735
|
+
}
|
|
14736
|
+
}
|
|
14737
|
+
},
|
|
14738
|
+
"401": {
|
|
14739
|
+
"description": "Unauthorized - Missing or invalid authentication",
|
|
14740
|
+
"content": {
|
|
14741
|
+
"application/json": {
|
|
14742
|
+
"schema": {
|
|
14743
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
14744
|
+
},
|
|
14745
|
+
"example": {
|
|
14746
|
+
"error": "Unauthorized: Missing or invalid authentication token"
|
|
14747
|
+
}
|
|
14748
|
+
}
|
|
14749
|
+
}
|
|
14750
|
+
},
|
|
14751
|
+
"403": {
|
|
14752
|
+
"description": "Forbidden - Insufficient permissions",
|
|
14753
|
+
"content": {
|
|
14754
|
+
"application/json": {
|
|
14755
|
+
"schema": {
|
|
14756
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
14757
|
+
},
|
|
14758
|
+
"example": {
|
|
14759
|
+
"error": "Forbidden: You do not have permission to perform this action"
|
|
14760
|
+
}
|
|
14761
|
+
}
|
|
14762
|
+
}
|
|
14763
|
+
}
|
|
14764
|
+
}
|
|
14765
|
+
}
|
|
14766
|
+
},
|
|
14767
|
+
"/chat/sessions/{id}": {
|
|
14768
|
+
"get": {
|
|
14769
|
+
"tags": [
|
|
14770
|
+
"Chat"
|
|
14771
|
+
],
|
|
14772
|
+
"summary": "Get chat session",
|
|
14773
|
+
"description": "Get information about a chat session including message history.\n\nSessions are publicly viewable for sharing purposes. Only the owner can send messages or delete the session.\n\n---\n**Permission:** `chat:view` \n**Auth:** optional",
|
|
14774
|
+
"x-arke-action": "chat:view",
|
|
14775
|
+
"x-arke-auth": "optional",
|
|
14776
|
+
"x-arke-tier": "standard",
|
|
14777
|
+
"responses": {
|
|
14778
|
+
"200": {
|
|
14779
|
+
"description": "Chat session info",
|
|
14780
|
+
"content": {
|
|
14781
|
+
"application/json": {
|
|
14782
|
+
"schema": {
|
|
14783
|
+
"$ref": "#/components/schemas/ChatSession"
|
|
14784
|
+
}
|
|
14785
|
+
}
|
|
14786
|
+
}
|
|
14787
|
+
},
|
|
14788
|
+
"404": {
|
|
14789
|
+
"description": "Not Found - Resource does not exist",
|
|
14790
|
+
"content": {
|
|
14791
|
+
"application/json": {
|
|
14792
|
+
"schema": {
|
|
14793
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
14794
|
+
},
|
|
14795
|
+
"example": {
|
|
14796
|
+
"error": "Entity not found"
|
|
14797
|
+
}
|
|
14798
|
+
}
|
|
14799
|
+
}
|
|
14800
|
+
}
|
|
14801
|
+
}
|
|
14802
|
+
},
|
|
14803
|
+
"delete": {
|
|
14804
|
+
"tags": [
|
|
14805
|
+
"Chat"
|
|
14806
|
+
],
|
|
14807
|
+
"summary": "Delete chat session",
|
|
14808
|
+
"description": "Delete a chat session. Only the session owner can delete it.\n\n---\n**Permission:** `chat:delete` \n**Auth:** required",
|
|
14809
|
+
"x-arke-action": "chat:delete",
|
|
14810
|
+
"x-arke-auth": "required",
|
|
14811
|
+
"x-arke-tier": "standard",
|
|
14812
|
+
"security": [
|
|
14813
|
+
{
|
|
14814
|
+
"bearerAuth": []
|
|
14815
|
+
}
|
|
14816
|
+
],
|
|
14817
|
+
"responses": {
|
|
14818
|
+
"200": {
|
|
14819
|
+
"description": "Session deleted",
|
|
14820
|
+
"content": {
|
|
14821
|
+
"application/json": {
|
|
14822
|
+
"schema": {
|
|
14823
|
+
"$ref": "#/components/schemas/ChatSessionDeleteResponse"
|
|
14824
|
+
}
|
|
14825
|
+
}
|
|
14826
|
+
}
|
|
14827
|
+
},
|
|
14828
|
+
"401": {
|
|
14829
|
+
"description": "Unauthorized - Missing or invalid authentication",
|
|
14830
|
+
"content": {
|
|
14831
|
+
"application/json": {
|
|
14832
|
+
"schema": {
|
|
14833
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
14834
|
+
},
|
|
14835
|
+
"example": {
|
|
14836
|
+
"error": "Unauthorized: Missing or invalid authentication token"
|
|
14837
|
+
}
|
|
14838
|
+
}
|
|
14839
|
+
}
|
|
14840
|
+
},
|
|
14841
|
+
"403": {
|
|
14842
|
+
"description": "Forbidden - Insufficient permissions",
|
|
14843
|
+
"content": {
|
|
14844
|
+
"application/json": {
|
|
14845
|
+
"schema": {
|
|
14846
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
14847
|
+
},
|
|
14848
|
+
"example": {
|
|
14849
|
+
"error": "Forbidden: You do not have permission to perform this action"
|
|
14850
|
+
}
|
|
14851
|
+
}
|
|
14852
|
+
}
|
|
14853
|
+
},
|
|
14854
|
+
"404": {
|
|
14855
|
+
"description": "Not Found - Resource does not exist",
|
|
14856
|
+
"content": {
|
|
14857
|
+
"application/json": {
|
|
14858
|
+
"schema": {
|
|
14859
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
14860
|
+
},
|
|
14861
|
+
"example": {
|
|
14862
|
+
"error": "Entity not found"
|
|
14863
|
+
}
|
|
14864
|
+
}
|
|
14865
|
+
}
|
|
14866
|
+
}
|
|
14867
|
+
}
|
|
14868
|
+
}
|
|
14869
|
+
},
|
|
13253
14870
|
"/entities/{id}/attestation": {
|
|
13254
14871
|
"get": {
|
|
13255
14872
|
"tags": [
|
|
13256
14873
|
"Attestations"
|
|
13257
14874
|
],
|
|
13258
14875
|
"summary": "Get latest attestation",
|
|
13259
|
-
"description": "Returns the Arweave attestation for the current (latest) version of an entity.\n\nReturns 202 Accepted if the attestation upload is still pending
|
|
14876
|
+
"description": "Returns the Arweave attestation for the current (latest) version of an entity.\n\nReturns 202 Accepted if the attestation upload is still pending.\n\n---\n**Permission:** `entity:view` \n**Auth:** optional",
|
|
13260
14877
|
"x-arke-action": "entity:view",
|
|
13261
14878
|
"x-arke-auth": "optional",
|
|
13262
14879
|
"x-arke-tier": "standard",
|
|
@@ -13330,7 +14947,7 @@
|
|
|
13330
14947
|
"Attestations"
|
|
13331
14948
|
],
|
|
13332
14949
|
"summary": "Get version attestation",
|
|
13333
|
-
"description": "Returns the Arweave attestation for a specific version of an entity
|
|
14950
|
+
"description": "Returns the Arweave attestation for a specific version of an entity.\n\n---\n**Permission:** `entity:view` \n**Auth:** optional",
|
|
13334
14951
|
"x-arke-action": "entity:view",
|
|
13335
14952
|
"x-arke-auth": "optional",
|
|
13336
14953
|
"x-arke-tier": "standard",
|
|
@@ -13399,13 +15016,50 @@
|
|
|
13399
15016
|
}
|
|
13400
15017
|
}
|
|
13401
15018
|
},
|
|
15019
|
+
"/attestations/head": {
|
|
15020
|
+
"get": {
|
|
15021
|
+
"tags": [
|
|
15022
|
+
"Attestations"
|
|
15023
|
+
],
|
|
15024
|
+
"summary": "Get chain head",
|
|
15025
|
+
"description": "Returns the latest Arweave attestation transaction ID (network head).\n\n---\n**Permission:** `attestation:view` \n**Auth:** none",
|
|
15026
|
+
"x-arke-action": "attestation:view",
|
|
15027
|
+
"x-arke-auth": "none",
|
|
15028
|
+
"x-arke-tier": "standard",
|
|
15029
|
+
"responses": {
|
|
15030
|
+
"200": {
|
|
15031
|
+
"description": "Chain head",
|
|
15032
|
+
"content": {
|
|
15033
|
+
"application/json": {
|
|
15034
|
+
"schema": {
|
|
15035
|
+
"$ref": "#/components/schemas/ChainHeadResponse"
|
|
15036
|
+
}
|
|
15037
|
+
}
|
|
15038
|
+
}
|
|
15039
|
+
},
|
|
15040
|
+
"404": {
|
|
15041
|
+
"description": "Not Found - Resource does not exist",
|
|
15042
|
+
"content": {
|
|
15043
|
+
"application/json": {
|
|
15044
|
+
"schema": {
|
|
15045
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
15046
|
+
},
|
|
15047
|
+
"example": {
|
|
15048
|
+
"error": "Entity not found"
|
|
15049
|
+
}
|
|
15050
|
+
}
|
|
15051
|
+
}
|
|
15052
|
+
}
|
|
15053
|
+
}
|
|
15054
|
+
}
|
|
15055
|
+
},
|
|
13402
15056
|
"/attestations/verify/{tx}": {
|
|
13403
15057
|
"get": {
|
|
13404
15058
|
"tags": [
|
|
13405
15059
|
"Attestations"
|
|
13406
15060
|
],
|
|
13407
15061
|
"summary": "Verify attestation",
|
|
13408
|
-
"description": "Fetches an attestation from Arweave and verifies the CID matches the manifest content.\n\nThis is a public endpoint - anyone can verify attestations
|
|
15062
|
+
"description": "Fetches an attestation from Arweave and verifies the CID matches the manifest content.\n\nThis is a public endpoint - anyone can verify attestations.\n\n---\n**Permission:** `attestation:verify` \n**Auth:** none",
|
|
13409
15063
|
"x-arke-action": "attestation:verify",
|
|
13410
15064
|
"x-arke-auth": "none",
|
|
13411
15065
|
"x-arke-tier": "standard",
|