@arke-institute/sdk 2.3.11 → 2.3.13
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 +1629 -126
- package/dist/generated/index.d.ts +1629 -126
- 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 +1975 -340
- 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": {
|
|
@@ -72,6 +80,37 @@
|
|
|
72
80
|
"scheme": "bearer",
|
|
73
81
|
"bearerFormat": "JWT",
|
|
74
82
|
"description": "Supabase JWT token"
|
|
83
|
+
},
|
|
84
|
+
"apiKeyAuth": {
|
|
85
|
+
"type": "apiKey",
|
|
86
|
+
"in": "header",
|
|
87
|
+
"name": "Authorization",
|
|
88
|
+
"description": "API Key authentication. Format: `ApiKey ak_xxx` (agent) or `ApiKey uk_xxx` (user)"
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"parameters": {
|
|
92
|
+
"X-Arke-Network": {
|
|
93
|
+
"name": "X-Arke-Network",
|
|
94
|
+
"in": "header",
|
|
95
|
+
"required": false,
|
|
96
|
+
"schema": {
|
|
97
|
+
"type": "string",
|
|
98
|
+
"enum": [
|
|
99
|
+
"main",
|
|
100
|
+
"test"
|
|
101
|
+
],
|
|
102
|
+
"default": "main"
|
|
103
|
+
},
|
|
104
|
+
"description": "Target network. Use `test` for isolated test data with II-prefixed IDs."
|
|
105
|
+
},
|
|
106
|
+
"X-On-Behalf-Of": {
|
|
107
|
+
"name": "X-On-Behalf-Of",
|
|
108
|
+
"in": "header",
|
|
109
|
+
"required": false,
|
|
110
|
+
"schema": {
|
|
111
|
+
"type": "string"
|
|
112
|
+
},
|
|
113
|
+
"description": "User entity ID for service accounts acting on behalf of a user. Only valid with `role: service` authentication."
|
|
75
114
|
}
|
|
76
115
|
},
|
|
77
116
|
"schemas": {
|
|
@@ -238,6 +277,36 @@
|
|
|
238
277
|
"description": "Unix timestamp in milliseconds",
|
|
239
278
|
"example": 1735214400000
|
|
240
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
|
+
},
|
|
241
310
|
"prev_cid": {
|
|
242
311
|
"type": "string",
|
|
243
312
|
"minLength": 1,
|
|
@@ -253,7 +322,8 @@
|
|
|
253
322
|
"relationships",
|
|
254
323
|
"ver",
|
|
255
324
|
"created_at",
|
|
256
|
-
"ts"
|
|
325
|
+
"ts",
|
|
326
|
+
"edited_by"
|
|
257
327
|
]
|
|
258
328
|
},
|
|
259
329
|
"UserResponse": {
|
|
@@ -414,10 +484,18 @@
|
|
|
414
484
|
"additionalProperties": {
|
|
415
485
|
"nullable": true
|
|
416
486
|
},
|
|
417
|
-
"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
|
+
}
|
|
418
496
|
}
|
|
419
497
|
],
|
|
420
|
-
"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."
|
|
421
499
|
},
|
|
422
500
|
"relationships_add": {
|
|
423
501
|
"type": "array",
|
|
@@ -1041,10 +1119,18 @@
|
|
|
1041
1119
|
"additionalProperties": {
|
|
1042
1120
|
"nullable": true
|
|
1043
1121
|
},
|
|
1044
|
-
"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
|
+
}
|
|
1045
1131
|
}
|
|
1046
1132
|
],
|
|
1047
|
-
"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."
|
|
1048
1134
|
},
|
|
1049
1135
|
"relationships_add": {
|
|
1050
1136
|
"type": "array",
|
|
@@ -1746,6 +1832,36 @@
|
|
|
1746
1832
|
"description": "Unix timestamp in milliseconds",
|
|
1747
1833
|
"example": 1735214400000
|
|
1748
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
|
+
},
|
|
1749
1865
|
"prev_cid": {
|
|
1750
1866
|
"type": "string",
|
|
1751
1867
|
"minLength": 1,
|
|
@@ -1761,7 +1877,8 @@
|
|
|
1761
1877
|
"relationships",
|
|
1762
1878
|
"ver",
|
|
1763
1879
|
"created_at",
|
|
1764
|
-
"ts"
|
|
1880
|
+
"ts",
|
|
1881
|
+
"edited_by"
|
|
1765
1882
|
]
|
|
1766
1883
|
},
|
|
1767
1884
|
"CreateEntityRequest": {
|
|
@@ -1790,7 +1907,7 @@
|
|
|
1790
1907
|
"additionalProperties": {
|
|
1791
1908
|
"nullable": true
|
|
1792
1909
|
},
|
|
1793
|
-
"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.",
|
|
1794
1911
|
"example": {
|
|
1795
1912
|
"label": "Chapter 1: Loomings",
|
|
1796
1913
|
"author": "Herman Melville"
|
|
@@ -1846,6 +1963,27 @@
|
|
|
1846
1963
|
"type"
|
|
1847
1964
|
]
|
|
1848
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
|
+
},
|
|
1849
1987
|
"EntityUpdatedResponse": {
|
|
1850
1988
|
"allOf": [
|
|
1851
1989
|
{
|
|
@@ -1906,10 +2044,18 @@
|
|
|
1906
2044
|
"additionalProperties": {
|
|
1907
2045
|
"nullable": true
|
|
1908
2046
|
},
|
|
1909
|
-
"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
|
+
}
|
|
1910
2056
|
}
|
|
1911
2057
|
],
|
|
1912
|
-
"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."
|
|
1913
2059
|
},
|
|
1914
2060
|
"relationships_add": {
|
|
1915
2061
|
"type": "array",
|
|
@@ -2573,6 +2719,73 @@
|
|
|
2573
2719
|
}
|
|
2574
2720
|
]
|
|
2575
2721
|
},
|
|
2722
|
+
"PermissionResolution": {
|
|
2723
|
+
"type": "object",
|
|
2724
|
+
"properties": {
|
|
2725
|
+
"method": {
|
|
2726
|
+
"type": "string",
|
|
2727
|
+
"enum": [
|
|
2728
|
+
"collection",
|
|
2729
|
+
"self",
|
|
2730
|
+
"open_season"
|
|
2731
|
+
],
|
|
2732
|
+
"description": "How permissions were resolved",
|
|
2733
|
+
"example": "collection"
|
|
2734
|
+
},
|
|
2735
|
+
"collection_id": {
|
|
2736
|
+
"type": "string",
|
|
2737
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
2738
|
+
"description": "Collection ID if permissions come from a collection role",
|
|
2739
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
2740
|
+
},
|
|
2741
|
+
"role": {
|
|
2742
|
+
"type": "string",
|
|
2743
|
+
"description": "Role name in the collection",
|
|
2744
|
+
"example": "editor"
|
|
2745
|
+
}
|
|
2746
|
+
},
|
|
2747
|
+
"required": [
|
|
2748
|
+
"method"
|
|
2749
|
+
],
|
|
2750
|
+
"description": "How permissions were resolved"
|
|
2751
|
+
},
|
|
2752
|
+
"EntityPermissionsResponse": {
|
|
2753
|
+
"type": "object",
|
|
2754
|
+
"properties": {
|
|
2755
|
+
"entity_id": {
|
|
2756
|
+
"type": "string",
|
|
2757
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
2758
|
+
"description": "The entity ID",
|
|
2759
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
2760
|
+
},
|
|
2761
|
+
"entity_type": {
|
|
2762
|
+
"type": "string",
|
|
2763
|
+
"description": "The entity type",
|
|
2764
|
+
"example": "file"
|
|
2765
|
+
},
|
|
2766
|
+
"allowed_actions": {
|
|
2767
|
+
"type": "array",
|
|
2768
|
+
"items": {
|
|
2769
|
+
"type": "string"
|
|
2770
|
+
},
|
|
2771
|
+
"description": "Actions the user can perform on this entity",
|
|
2772
|
+
"example": [
|
|
2773
|
+
"entity:view",
|
|
2774
|
+
"entity:update",
|
|
2775
|
+
"file:download"
|
|
2776
|
+
]
|
|
2777
|
+
},
|
|
2778
|
+
"resolution": {
|
|
2779
|
+
"$ref": "#/components/schemas/PermissionResolution"
|
|
2780
|
+
}
|
|
2781
|
+
},
|
|
2782
|
+
"required": [
|
|
2783
|
+
"entity_id",
|
|
2784
|
+
"entity_type",
|
|
2785
|
+
"allowed_actions",
|
|
2786
|
+
"resolution"
|
|
2787
|
+
]
|
|
2788
|
+
},
|
|
2576
2789
|
"AddRelationshipResponse": {
|
|
2577
2790
|
"type": "object",
|
|
2578
2791
|
"properties": {
|
|
@@ -2959,6 +3172,36 @@
|
|
|
2959
3172
|
"exclusiveMinimum": true,
|
|
2960
3173
|
"description": "Unix timestamp in milliseconds",
|
|
2961
3174
|
"example": 1735214400000
|
|
3175
|
+
},
|
|
3176
|
+
"edited_by": {
|
|
3177
|
+
"type": "object",
|
|
3178
|
+
"properties": {
|
|
3179
|
+
"user_id": {
|
|
3180
|
+
"type": "string",
|
|
3181
|
+
"minLength": 1
|
|
3182
|
+
},
|
|
3183
|
+
"method": {
|
|
3184
|
+
"type": "string",
|
|
3185
|
+
"enum": [
|
|
3186
|
+
"manual",
|
|
3187
|
+
"ai_generated",
|
|
3188
|
+
"system",
|
|
3189
|
+
"import"
|
|
3190
|
+
]
|
|
3191
|
+
},
|
|
3192
|
+
"on_behalf_of": {
|
|
3193
|
+
"type": "string"
|
|
3194
|
+
}
|
|
3195
|
+
},
|
|
3196
|
+
"required": [
|
|
3197
|
+
"user_id",
|
|
3198
|
+
"method"
|
|
3199
|
+
],
|
|
3200
|
+
"description": "Audit trail for edits",
|
|
3201
|
+
"example": {
|
|
3202
|
+
"user_id": "01JCAPTAINAHAB000000000000",
|
|
3203
|
+
"method": "manual"
|
|
3204
|
+
}
|
|
2962
3205
|
}
|
|
2963
3206
|
},
|
|
2964
3207
|
"required": [
|
|
@@ -2969,7 +3212,8 @@
|
|
|
2969
3212
|
"relationships",
|
|
2970
3213
|
"ver",
|
|
2971
3214
|
"created_at",
|
|
2972
|
-
"ts"
|
|
3215
|
+
"ts",
|
|
3216
|
+
"edited_by"
|
|
2973
3217
|
]
|
|
2974
3218
|
},
|
|
2975
3219
|
"CreateFileRequest": {
|
|
@@ -3178,10 +3422,18 @@
|
|
|
3178
3422
|
"additionalProperties": {
|
|
3179
3423
|
"nullable": true
|
|
3180
3424
|
},
|
|
3181
|
-
"description": "Nested removal structure
|
|
3425
|
+
"description": "Nested removal structure. Each key navigates into a nested object; leaf arrays specify keys to delete at that level.",
|
|
3426
|
+
"example": {
|
|
3427
|
+
"settings": {
|
|
3428
|
+
"notifications": [
|
|
3429
|
+
"email",
|
|
3430
|
+
"slack"
|
|
3431
|
+
]
|
|
3432
|
+
}
|
|
3433
|
+
}
|
|
3182
3434
|
}
|
|
3183
3435
|
],
|
|
3184
|
-
"description": "Properties to remove"
|
|
3436
|
+
"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."
|
|
3185
3437
|
},
|
|
3186
3438
|
"relationships_add": {
|
|
3187
3439
|
"type": "array",
|
|
@@ -3465,6 +3717,36 @@
|
|
|
3465
3717
|
"exclusiveMinimum": true,
|
|
3466
3718
|
"description": "Unix timestamp in milliseconds",
|
|
3467
3719
|
"example": 1735214400000
|
|
3720
|
+
},
|
|
3721
|
+
"edited_by": {
|
|
3722
|
+
"type": "object",
|
|
3723
|
+
"properties": {
|
|
3724
|
+
"user_id": {
|
|
3725
|
+
"type": "string",
|
|
3726
|
+
"minLength": 1
|
|
3727
|
+
},
|
|
3728
|
+
"method": {
|
|
3729
|
+
"type": "string",
|
|
3730
|
+
"enum": [
|
|
3731
|
+
"manual",
|
|
3732
|
+
"ai_generated",
|
|
3733
|
+
"system",
|
|
3734
|
+
"import"
|
|
3735
|
+
]
|
|
3736
|
+
},
|
|
3737
|
+
"on_behalf_of": {
|
|
3738
|
+
"type": "string"
|
|
3739
|
+
}
|
|
3740
|
+
},
|
|
3741
|
+
"required": [
|
|
3742
|
+
"user_id",
|
|
3743
|
+
"method"
|
|
3744
|
+
],
|
|
3745
|
+
"description": "Audit trail for edits",
|
|
3746
|
+
"example": {
|
|
3747
|
+
"user_id": "01JCAPTAINAHAB000000000000",
|
|
3748
|
+
"method": "manual"
|
|
3749
|
+
}
|
|
3468
3750
|
}
|
|
3469
3751
|
},
|
|
3470
3752
|
"required": [
|
|
@@ -3475,7 +3757,8 @@
|
|
|
3475
3757
|
"relationships",
|
|
3476
3758
|
"ver",
|
|
3477
3759
|
"created_at",
|
|
3478
|
-
"ts"
|
|
3760
|
+
"ts",
|
|
3761
|
+
"edited_by"
|
|
3479
3762
|
]
|
|
3480
3763
|
},
|
|
3481
3764
|
"CreateFolderRequest": {
|
|
@@ -3648,10 +3931,18 @@
|
|
|
3648
3931
|
"additionalProperties": {
|
|
3649
3932
|
"nullable": true
|
|
3650
3933
|
},
|
|
3651
|
-
"description": "Nested removal structure
|
|
3934
|
+
"description": "Nested removal structure. Each key navigates into a nested object; leaf arrays specify keys to delete at that level.",
|
|
3935
|
+
"example": {
|
|
3936
|
+
"settings": {
|
|
3937
|
+
"notifications": [
|
|
3938
|
+
"email",
|
|
3939
|
+
"slack"
|
|
3940
|
+
]
|
|
3941
|
+
}
|
|
3942
|
+
}
|
|
3652
3943
|
}
|
|
3653
3944
|
],
|
|
3654
|
-
"description": "Properties to remove"
|
|
3945
|
+
"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."
|
|
3655
3946
|
},
|
|
3656
3947
|
"relationships_add": {
|
|
3657
3948
|
"type": "array",
|
|
@@ -4399,38 +4690,94 @@
|
|
|
4399
4690
|
"manifest"
|
|
4400
4691
|
]
|
|
4401
4692
|
},
|
|
4402
|
-
"
|
|
4693
|
+
"TypeRestriction": {
|
|
4403
4694
|
"type": "object",
|
|
4404
4695
|
"properties": {
|
|
4405
|
-
"
|
|
4696
|
+
"type": {
|
|
4406
4697
|
"type": "string",
|
|
4407
|
-
"description": "The
|
|
4408
|
-
"example": "
|
|
4698
|
+
"description": "The type with restricted implications",
|
|
4699
|
+
"example": "collection"
|
|
4409
4700
|
},
|
|
4410
|
-
"
|
|
4411
|
-
"type": "
|
|
4412
|
-
"
|
|
4413
|
-
|
|
4701
|
+
"allowed_verbs": {
|
|
4702
|
+
"type": "array",
|
|
4703
|
+
"items": {
|
|
4704
|
+
"type": "string"
|
|
4705
|
+
},
|
|
4706
|
+
"description": "Verbs for which the base type DOES imply this type",
|
|
4707
|
+
"example": [
|
|
4708
|
+
"view"
|
|
4709
|
+
]
|
|
4414
4710
|
},
|
|
4415
4711
|
"description": {
|
|
4416
4712
|
"type": "string",
|
|
4417
|
-
"description": "Explanation of
|
|
4713
|
+
"description": "Explanation of the restriction"
|
|
4418
4714
|
}
|
|
4419
4715
|
},
|
|
4420
4716
|
"required": [
|
|
4421
|
-
"
|
|
4422
|
-
"
|
|
4717
|
+
"type",
|
|
4718
|
+
"allowed_verbs",
|
|
4423
4719
|
"description"
|
|
4424
|
-
]
|
|
4425
|
-
"description": "Verb wildcard pattern (*:verb)"
|
|
4720
|
+
]
|
|
4426
4721
|
},
|
|
4427
|
-
"
|
|
4722
|
+
"TypeHierarchy": {
|
|
4428
4723
|
"type": "object",
|
|
4429
4724
|
"properties": {
|
|
4430
|
-
"
|
|
4725
|
+
"base_type": {
|
|
4726
|
+
"type": "string",
|
|
4727
|
+
"description": "The base type that implies all other types",
|
|
4728
|
+
"example": "entity"
|
|
4729
|
+
},
|
|
4730
|
+
"description": {
|
|
4731
|
+
"type": "string",
|
|
4732
|
+
"description": "Explanation of type hierarchy behavior"
|
|
4733
|
+
},
|
|
4734
|
+
"restrictions": {
|
|
4431
4735
|
"type": "array",
|
|
4432
4736
|
"items": {
|
|
4433
|
-
"
|
|
4737
|
+
"$ref": "#/components/schemas/TypeRestriction"
|
|
4738
|
+
},
|
|
4739
|
+
"description": "Types with restricted implication rules"
|
|
4740
|
+
}
|
|
4741
|
+
},
|
|
4742
|
+
"required": [
|
|
4743
|
+
"base_type",
|
|
4744
|
+
"description",
|
|
4745
|
+
"restrictions"
|
|
4746
|
+
],
|
|
4747
|
+
"description": "Type hierarchy. The base type implies all other types, with restrictions for certain types."
|
|
4748
|
+
},
|
|
4749
|
+
"WildcardInfo": {
|
|
4750
|
+
"type": "object",
|
|
4751
|
+
"properties": {
|
|
4752
|
+
"pattern": {
|
|
4753
|
+
"type": "string",
|
|
4754
|
+
"description": "The wildcard pattern format",
|
|
4755
|
+
"example": "*:{verb}"
|
|
4756
|
+
},
|
|
4757
|
+
"example": {
|
|
4758
|
+
"type": "string",
|
|
4759
|
+
"description": "An example of the pattern in use",
|
|
4760
|
+
"example": "*:view"
|
|
4761
|
+
},
|
|
4762
|
+
"description": {
|
|
4763
|
+
"type": "string",
|
|
4764
|
+
"description": "Explanation of what this pattern matches"
|
|
4765
|
+
}
|
|
4766
|
+
},
|
|
4767
|
+
"required": [
|
|
4768
|
+
"pattern",
|
|
4769
|
+
"example",
|
|
4770
|
+
"description"
|
|
4771
|
+
],
|
|
4772
|
+
"description": "Verb wildcard pattern (*:verb)"
|
|
4773
|
+
},
|
|
4774
|
+
"PermissionsResponse": {
|
|
4775
|
+
"type": "object",
|
|
4776
|
+
"properties": {
|
|
4777
|
+
"actions": {
|
|
4778
|
+
"type": "array",
|
|
4779
|
+
"items": {
|
|
4780
|
+
"type": "string"
|
|
4434
4781
|
},
|
|
4435
4782
|
"description": "All registered action strings in the system",
|
|
4436
4783
|
"example": [
|
|
@@ -4484,6 +4831,9 @@
|
|
|
4484
4831
|
]
|
|
4485
4832
|
}
|
|
4486
4833
|
},
|
|
4834
|
+
"type_hierarchy": {
|
|
4835
|
+
"$ref": "#/components/schemas/TypeHierarchy"
|
|
4836
|
+
},
|
|
4487
4837
|
"wildcards": {
|
|
4488
4838
|
"type": "object",
|
|
4489
4839
|
"properties": {
|
|
@@ -4544,6 +4894,7 @@
|
|
|
4544
4894
|
"verbs",
|
|
4545
4895
|
"types",
|
|
4546
4896
|
"implications",
|
|
4897
|
+
"type_hierarchy",
|
|
4547
4898
|
"wildcards",
|
|
4548
4899
|
"restrictions",
|
|
4549
4900
|
"default_roles"
|
|
@@ -4562,45 +4913,45 @@
|
|
|
4562
4913
|
"enum": [
|
|
4563
4914
|
"agent"
|
|
4564
4915
|
]
|
|
4916
|
+
},
|
|
4917
|
+
"warnings": {
|
|
4918
|
+
"type": "array",
|
|
4919
|
+
"items": {
|
|
4920
|
+
"type": "object",
|
|
4921
|
+
"properties": {
|
|
4922
|
+
"sub_agent_id": {
|
|
4923
|
+
"type": "string",
|
|
4924
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
4925
|
+
"description": "The sub-agent ID that has an issue"
|
|
4926
|
+
},
|
|
4927
|
+
"reason": {
|
|
4928
|
+
"type": "string",
|
|
4929
|
+
"enum": [
|
|
4930
|
+
"not_found",
|
|
4931
|
+
"not_an_agent",
|
|
4932
|
+
"disabled"
|
|
4933
|
+
],
|
|
4934
|
+
"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)"
|
|
4935
|
+
},
|
|
4936
|
+
"message": {
|
|
4937
|
+
"type": "string",
|
|
4938
|
+
"description": "Human-readable explanation"
|
|
4939
|
+
}
|
|
4940
|
+
},
|
|
4941
|
+
"required": [
|
|
4942
|
+
"sub_agent_id",
|
|
4943
|
+
"reason",
|
|
4944
|
+
"message"
|
|
4945
|
+
],
|
|
4946
|
+
"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.",
|
|
4947
|
+
"title": "AgentSubAgentWarning"
|
|
4948
|
+
},
|
|
4949
|
+
"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."
|
|
4565
4950
|
}
|
|
4566
4951
|
}
|
|
4567
4952
|
}
|
|
4568
4953
|
]
|
|
4569
4954
|
},
|
|
4570
|
-
"SubAgentRef": {
|
|
4571
|
-
"type": "object",
|
|
4572
|
-
"properties": {
|
|
4573
|
-
"pi": {
|
|
4574
|
-
"type": "string",
|
|
4575
|
-
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$"
|
|
4576
|
-
},
|
|
4577
|
-
"label": {
|
|
4578
|
-
"type": "string",
|
|
4579
|
-
"maxLength": 200,
|
|
4580
|
-
"description": "Display label for the sub-agent"
|
|
4581
|
-
},
|
|
4582
|
-
"description": {
|
|
4583
|
-
"type": "string",
|
|
4584
|
-
"maxLength": 2000,
|
|
4585
|
-
"description": "Description of the sub-agent role"
|
|
4586
|
-
},
|
|
4587
|
-
"actions_required": {
|
|
4588
|
-
"type": "array",
|
|
4589
|
-
"items": {
|
|
4590
|
-
"type": "string"
|
|
4591
|
-
},
|
|
4592
|
-
"description": "Actions this sub-agent requires",
|
|
4593
|
-
"example": [
|
|
4594
|
-
"entity:view",
|
|
4595
|
-
"entity:update"
|
|
4596
|
-
]
|
|
4597
|
-
}
|
|
4598
|
-
},
|
|
4599
|
-
"required": [
|
|
4600
|
-
"pi",
|
|
4601
|
-
"actions_required"
|
|
4602
|
-
]
|
|
4603
|
-
},
|
|
4604
4955
|
"CreateAgentRequest": {
|
|
4605
4956
|
"type": "object",
|
|
4606
4957
|
"properties": {
|
|
@@ -4655,9 +5006,31 @@
|
|
|
4655
5006
|
"uses_agents": {
|
|
4656
5007
|
"type": "array",
|
|
4657
5008
|
"items": {
|
|
4658
|
-
"
|
|
5009
|
+
"type": "object",
|
|
5010
|
+
"properties": {
|
|
5011
|
+
"pi": {
|
|
5012
|
+
"type": "string",
|
|
5013
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
5014
|
+
"description": "Sub-agent entity ID. The sub-agent's actions_required will be fetched dynamically at invocation time."
|
|
5015
|
+
},
|
|
5016
|
+
"label": {
|
|
5017
|
+
"type": "string",
|
|
5018
|
+
"maxLength": 200,
|
|
5019
|
+
"description": "Optional display label override (defaults to sub-agent's own label)"
|
|
5020
|
+
},
|
|
5021
|
+
"description": {
|
|
5022
|
+
"type": "string",
|
|
5023
|
+
"maxLength": 2000,
|
|
5024
|
+
"description": "Optional description of the sub-agent's role in this orchestrator's workflow"
|
|
5025
|
+
}
|
|
5026
|
+
},
|
|
5027
|
+
"required": [
|
|
5028
|
+
"pi"
|
|
5029
|
+
],
|
|
5030
|
+
"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.",
|
|
5031
|
+
"title": "SubAgentRef"
|
|
4659
5032
|
},
|
|
4660
|
-
"description": "Sub-agents
|
|
5033
|
+
"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."
|
|
4661
5034
|
},
|
|
4662
5035
|
"input_schema": {
|
|
4663
5036
|
"type": "object",
|
|
@@ -4787,10 +5160,18 @@
|
|
|
4787
5160
|
"additionalProperties": {
|
|
4788
5161
|
"nullable": true
|
|
4789
5162
|
},
|
|
4790
|
-
"description": "Nested removal structure
|
|
5163
|
+
"description": "Nested removal structure. Each key navigates into a nested object; leaf arrays specify keys to delete at that level.",
|
|
5164
|
+
"example": {
|
|
5165
|
+
"settings": {
|
|
5166
|
+
"notifications": [
|
|
5167
|
+
"email",
|
|
5168
|
+
"slack"
|
|
5169
|
+
]
|
|
5170
|
+
}
|
|
5171
|
+
}
|
|
4791
5172
|
}
|
|
4792
5173
|
],
|
|
4793
|
-
"description": "Properties to remove"
|
|
5174
|
+
"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."
|
|
4794
5175
|
},
|
|
4795
5176
|
"relationships_add": {
|
|
4796
5177
|
"type": "array",
|
|
@@ -4922,9 +5303,31 @@
|
|
|
4922
5303
|
"uses_agents": {
|
|
4923
5304
|
"type": "array",
|
|
4924
5305
|
"items": {
|
|
4925
|
-
"
|
|
5306
|
+
"type": "object",
|
|
5307
|
+
"properties": {
|
|
5308
|
+
"pi": {
|
|
5309
|
+
"type": "string",
|
|
5310
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
5311
|
+
"description": "Sub-agent entity ID. The sub-agent's actions_required will be fetched dynamically at invocation time."
|
|
5312
|
+
},
|
|
5313
|
+
"label": {
|
|
5314
|
+
"type": "string",
|
|
5315
|
+
"maxLength": 200,
|
|
5316
|
+
"description": "Optional display label override (defaults to sub-agent's own label)"
|
|
5317
|
+
},
|
|
5318
|
+
"description": {
|
|
5319
|
+
"type": "string",
|
|
5320
|
+
"maxLength": 2000,
|
|
5321
|
+
"description": "Optional description of the sub-agent's role in this orchestrator's workflow"
|
|
5322
|
+
}
|
|
5323
|
+
},
|
|
5324
|
+
"required": [
|
|
5325
|
+
"pi"
|
|
5326
|
+
],
|
|
5327
|
+
"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.",
|
|
5328
|
+
"title": "SubAgentRef"
|
|
4926
5329
|
},
|
|
4927
|
-
"description": "Updated sub-
|
|
5330
|
+
"description": "Updated sub-agent references. Only provide sub-agent IDs (pi) - their permissions are fetched dynamically at invocation time."
|
|
4928
5331
|
},
|
|
4929
5332
|
"input_schema": {
|
|
4930
5333
|
"type": "object",
|
|
@@ -5039,6 +5442,45 @@
|
|
|
5039
5442
|
"grants_needed": {
|
|
5040
5443
|
"type": "boolean",
|
|
5041
5444
|
"description": "True if some agents need permission grants"
|
|
5445
|
+
},
|
|
5446
|
+
"warnings": {
|
|
5447
|
+
"type": "array",
|
|
5448
|
+
"items": {
|
|
5449
|
+
"type": "object",
|
|
5450
|
+
"properties": {
|
|
5451
|
+
"sub_agent_id": {
|
|
5452
|
+
"type": "string",
|
|
5453
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
5454
|
+
"description": "The sub-agent ID that could not be resolved"
|
|
5455
|
+
},
|
|
5456
|
+
"parent_agent_id": {
|
|
5457
|
+
"type": "string",
|
|
5458
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
5459
|
+
"description": "The orchestrator or parent agent that declared this sub-agent reference"
|
|
5460
|
+
},
|
|
5461
|
+
"reason": {
|
|
5462
|
+
"type": "string",
|
|
5463
|
+
"enum": [
|
|
5464
|
+
"not_found",
|
|
5465
|
+
"disabled"
|
|
5466
|
+
],
|
|
5467
|
+
"description": "Why the sub-agent was skipped: not_found (entity does not exist) or disabled (agent status is disabled)"
|
|
5468
|
+
},
|
|
5469
|
+
"message": {
|
|
5470
|
+
"type": "string",
|
|
5471
|
+
"description": "Human-readable explanation of the warning"
|
|
5472
|
+
}
|
|
5473
|
+
},
|
|
5474
|
+
"required": [
|
|
5475
|
+
"sub_agent_id",
|
|
5476
|
+
"parent_agent_id",
|
|
5477
|
+
"reason",
|
|
5478
|
+
"message"
|
|
5479
|
+
],
|
|
5480
|
+
"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.",
|
|
5481
|
+
"title": "SubAgentWarning"
|
|
5482
|
+
},
|
|
5483
|
+
"description": "Warnings about sub-agents that were skipped"
|
|
5042
5484
|
}
|
|
5043
5485
|
},
|
|
5044
5486
|
"required": [
|
|
@@ -5179,7 +5621,7 @@
|
|
|
5179
5621
|
"target": {
|
|
5180
5622
|
"type": "string",
|
|
5181
5623
|
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
5182
|
-
"description": "
|
|
5624
|
+
"description": "Collection ID to grant the agent access to. All agent permissions are collection-scoped."
|
|
5183
5625
|
},
|
|
5184
5626
|
"job_collection": {
|
|
5185
5627
|
"type": "string",
|
|
@@ -5321,126 +5763,315 @@
|
|
|
5321
5763
|
"keys"
|
|
5322
5764
|
]
|
|
5323
5765
|
},
|
|
5324
|
-
"
|
|
5766
|
+
"VerifyAgentTokenResponse": {
|
|
5325
5767
|
"type": "object",
|
|
5326
5768
|
"properties": {
|
|
5327
|
-
"
|
|
5328
|
-
"type": "
|
|
5329
|
-
"description": "
|
|
5330
|
-
"example":
|
|
5769
|
+
"verification_token": {
|
|
5770
|
+
"type": "string",
|
|
5771
|
+
"description": "Token to deploy at your endpoint",
|
|
5772
|
+
"example": "vt_abc123def456..."
|
|
5331
5773
|
},
|
|
5332
|
-
"
|
|
5774
|
+
"agent_id": {
|
|
5333
5775
|
"type": "string",
|
|
5334
5776
|
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
5335
|
-
"description": "
|
|
5336
|
-
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
5777
|
+
"description": "Agent ID to include in verification response"
|
|
5337
5778
|
},
|
|
5338
|
-
"
|
|
5779
|
+
"endpoint": {
|
|
5339
5780
|
"type": "string",
|
|
5340
|
-
"
|
|
5341
|
-
"description": "
|
|
5342
|
-
"example": "bafyreibug443cnd4endcwinwttw3c3dzmcl2ikht64xzn5qg56bix3usfy"
|
|
5781
|
+
"format": "uri",
|
|
5782
|
+
"description": "Your agent endpoint URL"
|
|
5343
5783
|
},
|
|
5344
|
-
"
|
|
5784
|
+
"instructions": {
|
|
5345
5785
|
"type": "string",
|
|
5346
|
-
"description": "
|
|
5347
|
-
|
|
5786
|
+
"description": "How to complete verification"
|
|
5787
|
+
},
|
|
5788
|
+
"expires_at": {
|
|
5789
|
+
"type": "string",
|
|
5790
|
+
"format": "date-time",
|
|
5791
|
+
"description": "Token expiration time"
|
|
5348
5792
|
}
|
|
5349
5793
|
},
|
|
5350
5794
|
"required": [
|
|
5351
|
-
"
|
|
5352
|
-
"
|
|
5353
|
-
"
|
|
5354
|
-
"
|
|
5795
|
+
"verification_token",
|
|
5796
|
+
"agent_id",
|
|
5797
|
+
"endpoint",
|
|
5798
|
+
"instructions",
|
|
5799
|
+
"expires_at"
|
|
5355
5800
|
]
|
|
5356
5801
|
},
|
|
5357
|
-
"
|
|
5802
|
+
"VerifyAgentSuccessResponse": {
|
|
5358
5803
|
"type": "object",
|
|
5359
5804
|
"properties": {
|
|
5360
|
-
"
|
|
5361
|
-
"type": "array",
|
|
5362
|
-
"items": {
|
|
5363
|
-
"$ref": "#/components/schemas/Event"
|
|
5364
|
-
},
|
|
5365
|
-
"description": "List of events (newest first)"
|
|
5366
|
-
},
|
|
5367
|
-
"has_more": {
|
|
5805
|
+
"verified": {
|
|
5368
5806
|
"type": "boolean",
|
|
5369
|
-
"
|
|
5370
|
-
|
|
5807
|
+
"enum": [
|
|
5808
|
+
true
|
|
5809
|
+
]
|
|
5371
5810
|
},
|
|
5372
|
-
"
|
|
5373
|
-
"type": "
|
|
5374
|
-
"
|
|
5375
|
-
"
|
|
5811
|
+
"verified_at": {
|
|
5812
|
+
"type": "string",
|
|
5813
|
+
"format": "date-time",
|
|
5814
|
+
"description": "When the endpoint was verified"
|
|
5376
5815
|
}
|
|
5377
5816
|
},
|
|
5378
5817
|
"required": [
|
|
5379
|
-
"
|
|
5380
|
-
"
|
|
5381
|
-
"cursor"
|
|
5818
|
+
"verified",
|
|
5819
|
+
"verified_at"
|
|
5382
5820
|
]
|
|
5383
5821
|
},
|
|
5384
|
-
"
|
|
5822
|
+
"VerifyAgentFailureResponse": {
|
|
5385
5823
|
"type": "object",
|
|
5386
5824
|
"properties": {
|
|
5387
|
-
"
|
|
5388
|
-
"type": "
|
|
5389
|
-
"
|
|
5390
|
-
|
|
5391
|
-
|
|
5392
|
-
},
|
|
5393
|
-
"subject_label": {
|
|
5394
|
-
"type": "string",
|
|
5395
|
-
"description": "Source entity label"
|
|
5825
|
+
"verified": {
|
|
5826
|
+
"type": "boolean",
|
|
5827
|
+
"enum": [
|
|
5828
|
+
false
|
|
5829
|
+
]
|
|
5396
5830
|
},
|
|
5397
|
-
"
|
|
5831
|
+
"error": {
|
|
5398
5832
|
"type": "string",
|
|
5399
|
-
"
|
|
5833
|
+
"enum": [
|
|
5834
|
+
"no_token",
|
|
5835
|
+
"token_expired",
|
|
5836
|
+
"fetch_failed",
|
|
5837
|
+
"invalid_response",
|
|
5838
|
+
"token_mismatch",
|
|
5839
|
+
"agent_id_mismatch"
|
|
5840
|
+
],
|
|
5841
|
+
"description": "Verification error code"
|
|
5400
5842
|
},
|
|
5401
|
-
"
|
|
5843
|
+
"message": {
|
|
5402
5844
|
"type": "string",
|
|
5403
|
-
"description": "
|
|
5404
|
-
}
|
|
5405
|
-
|
|
5845
|
+
"description": "Human-readable error description"
|
|
5846
|
+
}
|
|
5847
|
+
},
|
|
5848
|
+
"required": [
|
|
5849
|
+
"verified",
|
|
5850
|
+
"error",
|
|
5851
|
+
"message"
|
|
5852
|
+
]
|
|
5853
|
+
},
|
|
5854
|
+
"VerifyAgentRequest": {
|
|
5855
|
+
"type": "object",
|
|
5856
|
+
"properties": {
|
|
5857
|
+
"confirm": {
|
|
5858
|
+
"type": "boolean",
|
|
5859
|
+
"description": "Set to true to perform verification. Omit or false to generate/get verification token.",
|
|
5860
|
+
"example": true
|
|
5861
|
+
}
|
|
5862
|
+
}
|
|
5863
|
+
},
|
|
5864
|
+
"EntityRef": {
|
|
5865
|
+
"type": "object",
|
|
5866
|
+
"properties": {
|
|
5867
|
+
"pi": {
|
|
5406
5868
|
"type": "string",
|
|
5407
5869
|
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
5408
|
-
"description": "
|
|
5870
|
+
"description": "Entity ID (ULID format)",
|
|
5409
5871
|
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
5410
5872
|
},
|
|
5411
|
-
"
|
|
5412
|
-
"type": "string"
|
|
5413
|
-
"description": "Target entity label"
|
|
5873
|
+
"type": {
|
|
5874
|
+
"type": "string"
|
|
5414
5875
|
},
|
|
5415
|
-
"
|
|
5416
|
-
"type": "string"
|
|
5417
|
-
"description": "Target entity type"
|
|
5876
|
+
"label": {
|
|
5877
|
+
"type": "string"
|
|
5418
5878
|
}
|
|
5419
5879
|
},
|
|
5420
5880
|
"required": [
|
|
5421
|
-
"
|
|
5422
|
-
"subject_label",
|
|
5423
|
-
"subject_type",
|
|
5424
|
-
"predicate",
|
|
5425
|
-
"object_pi",
|
|
5426
|
-
"object_label",
|
|
5427
|
-
"object_type"
|
|
5881
|
+
"pi"
|
|
5428
5882
|
]
|
|
5429
5883
|
},
|
|
5430
|
-
"
|
|
5884
|
+
"JobStatusResponse": {
|
|
5431
5885
|
"type": "object",
|
|
5432
5886
|
"properties": {
|
|
5433
|
-
"
|
|
5887
|
+
"id": {
|
|
5434
5888
|
"type": "string",
|
|
5435
5889
|
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
5436
5890
|
"description": "Entity ID (ULID format)",
|
|
5437
5891
|
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
5438
5892
|
},
|
|
5439
|
-
"
|
|
5893
|
+
"cid": {
|
|
5440
5894
|
"type": "string",
|
|
5441
|
-
"
|
|
5442
|
-
"description": "
|
|
5443
|
-
"example": "
|
|
5895
|
+
"minLength": 1,
|
|
5896
|
+
"description": "Content Identifier (CID) - content-addressed hash",
|
|
5897
|
+
"example": "bafyreibug443cnd4endcwinwttw3c3dzmcl2ikht64xzn5qg56bix3usfy"
|
|
5898
|
+
},
|
|
5899
|
+
"status": {
|
|
5900
|
+
"type": "string",
|
|
5901
|
+
"enum": [
|
|
5902
|
+
"running",
|
|
5903
|
+
"done",
|
|
5904
|
+
"error"
|
|
5905
|
+
],
|
|
5906
|
+
"description": "Job collection status",
|
|
5907
|
+
"example": "running"
|
|
5908
|
+
},
|
|
5909
|
+
"started_at": {
|
|
5910
|
+
"type": "string",
|
|
5911
|
+
"format": "date-time",
|
|
5912
|
+
"description": "ISO 8601 datetime",
|
|
5913
|
+
"example": "2025-12-26T12:00:00.000Z"
|
|
5914
|
+
},
|
|
5915
|
+
"completed_at": {
|
|
5916
|
+
"type": "string",
|
|
5917
|
+
"nullable": true,
|
|
5918
|
+
"format": "date-time",
|
|
5919
|
+
"description": "ISO 8601 datetime",
|
|
5920
|
+
"example": "2025-12-26T12:00:00.000Z"
|
|
5921
|
+
},
|
|
5922
|
+
"agent": {
|
|
5923
|
+
"$ref": "#/components/schemas/EntityRef"
|
|
5924
|
+
},
|
|
5925
|
+
"target": {
|
|
5926
|
+
"$ref": "#/components/schemas/EntityRef"
|
|
5927
|
+
},
|
|
5928
|
+
"main_agent": {
|
|
5929
|
+
"$ref": "#/components/schemas/EntityRef"
|
|
5930
|
+
},
|
|
5931
|
+
"files_count": {
|
|
5932
|
+
"type": "integer",
|
|
5933
|
+
"minimum": 0,
|
|
5934
|
+
"description": "Number of files contained in this job collection",
|
|
5935
|
+
"example": 5
|
|
5936
|
+
},
|
|
5937
|
+
"sub_jobs_count": {
|
|
5938
|
+
"type": "integer",
|
|
5939
|
+
"minimum": 0,
|
|
5940
|
+
"description": "Number of sub-job collections",
|
|
5941
|
+
"example": 2
|
|
5942
|
+
}
|
|
5943
|
+
},
|
|
5944
|
+
"required": [
|
|
5945
|
+
"id",
|
|
5946
|
+
"cid",
|
|
5947
|
+
"status",
|
|
5948
|
+
"started_at",
|
|
5949
|
+
"completed_at",
|
|
5950
|
+
"agent",
|
|
5951
|
+
"files_count",
|
|
5952
|
+
"sub_jobs_count"
|
|
5953
|
+
]
|
|
5954
|
+
},
|
|
5955
|
+
"Event": {
|
|
5956
|
+
"type": "object",
|
|
5957
|
+
"properties": {
|
|
5958
|
+
"id": {
|
|
5959
|
+
"type": "integer",
|
|
5960
|
+
"description": "Auto-increment event ID (use as cursor)",
|
|
5961
|
+
"example": 12346
|
|
5962
|
+
},
|
|
5963
|
+
"pi": {
|
|
5964
|
+
"type": "string",
|
|
5965
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
5966
|
+
"description": "Entity ID that changed",
|
|
5967
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
5968
|
+
},
|
|
5969
|
+
"cid": {
|
|
5970
|
+
"type": "string",
|
|
5971
|
+
"minLength": 1,
|
|
5972
|
+
"description": "New manifest CID",
|
|
5973
|
+
"example": "bafyreibug443cnd4endcwinwttw3c3dzmcl2ikht64xzn5qg56bix3usfy"
|
|
5974
|
+
},
|
|
5975
|
+
"ts": {
|
|
5976
|
+
"type": "string",
|
|
5977
|
+
"description": "ISO timestamp of the event",
|
|
5978
|
+
"example": "2025-01-15T12:00:01Z"
|
|
5979
|
+
}
|
|
5980
|
+
},
|
|
5981
|
+
"required": [
|
|
5982
|
+
"id",
|
|
5983
|
+
"pi",
|
|
5984
|
+
"cid",
|
|
5985
|
+
"ts"
|
|
5986
|
+
]
|
|
5987
|
+
},
|
|
5988
|
+
"EventsListResponse": {
|
|
5989
|
+
"type": "object",
|
|
5990
|
+
"properties": {
|
|
5991
|
+
"events": {
|
|
5992
|
+
"type": "array",
|
|
5993
|
+
"items": {
|
|
5994
|
+
"$ref": "#/components/schemas/Event"
|
|
5995
|
+
},
|
|
5996
|
+
"description": "List of events (newest first)"
|
|
5997
|
+
},
|
|
5998
|
+
"has_more": {
|
|
5999
|
+
"type": "boolean",
|
|
6000
|
+
"description": "Whether there are more (older) events available",
|
|
6001
|
+
"example": true
|
|
6002
|
+
},
|
|
6003
|
+
"cursor": {
|
|
6004
|
+
"type": "integer",
|
|
6005
|
+
"description": "Cursor for the next page (oldest id in batch, pass as ?cursor= for older events)",
|
|
6006
|
+
"example": 12340
|
|
6007
|
+
}
|
|
6008
|
+
},
|
|
6009
|
+
"required": [
|
|
6010
|
+
"events",
|
|
6011
|
+
"has_more",
|
|
6012
|
+
"cursor"
|
|
6013
|
+
]
|
|
6014
|
+
},
|
|
6015
|
+
"PathEdge": {
|
|
6016
|
+
"type": "object",
|
|
6017
|
+
"properties": {
|
|
6018
|
+
"subject_pi": {
|
|
6019
|
+
"type": "string",
|
|
6020
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
6021
|
+
"description": "Source entity PI",
|
|
6022
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
6023
|
+
},
|
|
6024
|
+
"subject_label": {
|
|
6025
|
+
"type": "string",
|
|
6026
|
+
"description": "Source entity label"
|
|
6027
|
+
},
|
|
6028
|
+
"subject_type": {
|
|
6029
|
+
"type": "string",
|
|
6030
|
+
"description": "Source entity type"
|
|
6031
|
+
},
|
|
6032
|
+
"predicate": {
|
|
6033
|
+
"type": "string",
|
|
6034
|
+
"description": "Relationship predicate"
|
|
6035
|
+
},
|
|
6036
|
+
"object_pi": {
|
|
6037
|
+
"type": "string",
|
|
6038
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
6039
|
+
"description": "Target entity PI",
|
|
6040
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
6041
|
+
},
|
|
6042
|
+
"object_label": {
|
|
6043
|
+
"type": "string",
|
|
6044
|
+
"description": "Target entity label"
|
|
6045
|
+
},
|
|
6046
|
+
"object_type": {
|
|
6047
|
+
"type": "string",
|
|
6048
|
+
"description": "Target entity type"
|
|
6049
|
+
}
|
|
6050
|
+
},
|
|
6051
|
+
"required": [
|
|
6052
|
+
"subject_pi",
|
|
6053
|
+
"subject_label",
|
|
6054
|
+
"subject_type",
|
|
6055
|
+
"predicate",
|
|
6056
|
+
"object_pi",
|
|
6057
|
+
"object_label",
|
|
6058
|
+
"object_type"
|
|
6059
|
+
]
|
|
6060
|
+
},
|
|
6061
|
+
"PathResult": {
|
|
6062
|
+
"type": "object",
|
|
6063
|
+
"properties": {
|
|
6064
|
+
"source_pi": {
|
|
6065
|
+
"type": "string",
|
|
6066
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
6067
|
+
"description": "Entity ID (ULID format)",
|
|
6068
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
6069
|
+
},
|
|
6070
|
+
"target_pi": {
|
|
6071
|
+
"type": "string",
|
|
6072
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
6073
|
+
"description": "Entity ID (ULID format)",
|
|
6074
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
5444
6075
|
},
|
|
5445
6076
|
"length": {
|
|
5446
6077
|
"type": "integer",
|
|
@@ -5925,16 +6556,16 @@
|
|
|
5925
6556
|
"type": "integer",
|
|
5926
6557
|
"minimum": 1,
|
|
5927
6558
|
"maximum": 100,
|
|
5928
|
-
"default":
|
|
6559
|
+
"default": 25,
|
|
5929
6560
|
"description": "Maximum number of results to return",
|
|
5930
|
-
"example":
|
|
6561
|
+
"example": 25
|
|
5931
6562
|
},
|
|
5932
6563
|
"k_explore": {
|
|
5933
6564
|
"type": "integer",
|
|
5934
6565
|
"minimum": 1,
|
|
5935
6566
|
"maximum": 300,
|
|
5936
6567
|
"description": "Beam width for exploration (default: k * 3)",
|
|
5937
|
-
"example":
|
|
6568
|
+
"example": 75
|
|
5938
6569
|
},
|
|
5939
6570
|
"collection": {
|
|
5940
6571
|
"type": "string",
|
|
@@ -5946,6 +6577,237 @@
|
|
|
5946
6577
|
"path"
|
|
5947
6578
|
]
|
|
5948
6579
|
},
|
|
6580
|
+
"TextPart": {
|
|
6581
|
+
"type": "object",
|
|
6582
|
+
"properties": {
|
|
6583
|
+
"type": {
|
|
6584
|
+
"type": "string",
|
|
6585
|
+
"enum": [
|
|
6586
|
+
"text"
|
|
6587
|
+
]
|
|
6588
|
+
},
|
|
6589
|
+
"text": {
|
|
6590
|
+
"type": "string"
|
|
6591
|
+
}
|
|
6592
|
+
},
|
|
6593
|
+
"required": [
|
|
6594
|
+
"type",
|
|
6595
|
+
"text"
|
|
6596
|
+
]
|
|
6597
|
+
},
|
|
6598
|
+
"ToolPart": {
|
|
6599
|
+
"type": "object",
|
|
6600
|
+
"properties": {
|
|
6601
|
+
"type": {
|
|
6602
|
+
"type": "string"
|
|
6603
|
+
},
|
|
6604
|
+
"toolCallId": {
|
|
6605
|
+
"type": "string"
|
|
6606
|
+
},
|
|
6607
|
+
"toolName": {
|
|
6608
|
+
"type": "string"
|
|
6609
|
+
},
|
|
6610
|
+
"args": {
|
|
6611
|
+
"type": "object",
|
|
6612
|
+
"additionalProperties": {
|
|
6613
|
+
"nullable": true
|
|
6614
|
+
}
|
|
6615
|
+
},
|
|
6616
|
+
"output": {
|
|
6617
|
+
"nullable": true
|
|
6618
|
+
},
|
|
6619
|
+
"state": {
|
|
6620
|
+
"type": "string",
|
|
6621
|
+
"enum": [
|
|
6622
|
+
"partial-call",
|
|
6623
|
+
"call",
|
|
6624
|
+
"output-available"
|
|
6625
|
+
]
|
|
6626
|
+
}
|
|
6627
|
+
},
|
|
6628
|
+
"required": [
|
|
6629
|
+
"type"
|
|
6630
|
+
]
|
|
6631
|
+
},
|
|
6632
|
+
"MessagePart": {
|
|
6633
|
+
"anyOf": [
|
|
6634
|
+
{
|
|
6635
|
+
"$ref": "#/components/schemas/TextPart"
|
|
6636
|
+
},
|
|
6637
|
+
{
|
|
6638
|
+
"$ref": "#/components/schemas/ToolPart"
|
|
6639
|
+
},
|
|
6640
|
+
{
|
|
6641
|
+
"type": "object",
|
|
6642
|
+
"properties": {
|
|
6643
|
+
"type": {
|
|
6644
|
+
"type": "string"
|
|
6645
|
+
}
|
|
6646
|
+
},
|
|
6647
|
+
"required": [
|
|
6648
|
+
"type"
|
|
6649
|
+
]
|
|
6650
|
+
}
|
|
6651
|
+
]
|
|
6652
|
+
},
|
|
6653
|
+
"ChatMessage": {
|
|
6654
|
+
"type": "object",
|
|
6655
|
+
"properties": {
|
|
6656
|
+
"id": {
|
|
6657
|
+
"type": "string"
|
|
6658
|
+
},
|
|
6659
|
+
"role": {
|
|
6660
|
+
"type": "string",
|
|
6661
|
+
"enum": [
|
|
6662
|
+
"user",
|
|
6663
|
+
"assistant",
|
|
6664
|
+
"system",
|
|
6665
|
+
"tool"
|
|
6666
|
+
]
|
|
6667
|
+
},
|
|
6668
|
+
"parts": {
|
|
6669
|
+
"type": "array",
|
|
6670
|
+
"items": {
|
|
6671
|
+
"$ref": "#/components/schemas/MessagePart"
|
|
6672
|
+
}
|
|
6673
|
+
},
|
|
6674
|
+
"content": {
|
|
6675
|
+
"type": "string"
|
|
6676
|
+
}
|
|
6677
|
+
},
|
|
6678
|
+
"required": [
|
|
6679
|
+
"id",
|
|
6680
|
+
"role"
|
|
6681
|
+
]
|
|
6682
|
+
},
|
|
6683
|
+
"SendChatRequest": {
|
|
6684
|
+
"type": "object",
|
|
6685
|
+
"properties": {
|
|
6686
|
+
"messages": {
|
|
6687
|
+
"type": "array",
|
|
6688
|
+
"items": {
|
|
6689
|
+
"$ref": "#/components/schemas/ChatMessage"
|
|
6690
|
+
},
|
|
6691
|
+
"description": "Array of chat messages in AI SDK v5 UIMessage format"
|
|
6692
|
+
}
|
|
6693
|
+
},
|
|
6694
|
+
"required": [
|
|
6695
|
+
"messages"
|
|
6696
|
+
]
|
|
6697
|
+
},
|
|
6698
|
+
"ChatSession": {
|
|
6699
|
+
"type": "object",
|
|
6700
|
+
"properties": {
|
|
6701
|
+
"id": {
|
|
6702
|
+
"type": "string",
|
|
6703
|
+
"description": "Chat session ID",
|
|
6704
|
+
"example": "chat_abc123"
|
|
6705
|
+
},
|
|
6706
|
+
"createdAt": {
|
|
6707
|
+
"type": "string",
|
|
6708
|
+
"description": "ISO 8601 creation timestamp",
|
|
6709
|
+
"example": "2025-01-14T12:00:00.000Z"
|
|
6710
|
+
},
|
|
6711
|
+
"updatedAt": {
|
|
6712
|
+
"type": "string",
|
|
6713
|
+
"description": "ISO 8601 last update timestamp",
|
|
6714
|
+
"example": "2025-01-14T12:30:00.000Z"
|
|
6715
|
+
},
|
|
6716
|
+
"ownerId": {
|
|
6717
|
+
"type": "string",
|
|
6718
|
+
"nullable": true,
|
|
6719
|
+
"description": "Owner user ID (Arke PI or Supabase ID)"
|
|
6720
|
+
},
|
|
6721
|
+
"title": {
|
|
6722
|
+
"type": "string",
|
|
6723
|
+
"nullable": true,
|
|
6724
|
+
"description": "Auto-generated chat title from first message",
|
|
6725
|
+
"example": "Help me understand the codebase..."
|
|
6726
|
+
},
|
|
6727
|
+
"messages": {
|
|
6728
|
+
"type": "array",
|
|
6729
|
+
"items": {
|
|
6730
|
+
"type": "object",
|
|
6731
|
+
"properties": {
|
|
6732
|
+
"id": {
|
|
6733
|
+
"type": "string"
|
|
6734
|
+
},
|
|
6735
|
+
"role": {
|
|
6736
|
+
"type": "string",
|
|
6737
|
+
"enum": [
|
|
6738
|
+
"user",
|
|
6739
|
+
"assistant",
|
|
6740
|
+
"system",
|
|
6741
|
+
"tool"
|
|
6742
|
+
]
|
|
6743
|
+
},
|
|
6744
|
+
"content": {
|
|
6745
|
+
"type": "string"
|
|
6746
|
+
},
|
|
6747
|
+
"createdAt": {
|
|
6748
|
+
"type": "string"
|
|
6749
|
+
},
|
|
6750
|
+
"toolInvocations": {
|
|
6751
|
+
"type": "array",
|
|
6752
|
+
"items": {
|
|
6753
|
+
"type": "object",
|
|
6754
|
+
"properties": {
|
|
6755
|
+
"toolCallId": {
|
|
6756
|
+
"type": "string"
|
|
6757
|
+
},
|
|
6758
|
+
"toolName": {
|
|
6759
|
+
"type": "string"
|
|
6760
|
+
},
|
|
6761
|
+
"args": {
|
|
6762
|
+
"type": "object",
|
|
6763
|
+
"additionalProperties": {
|
|
6764
|
+
"nullable": true
|
|
6765
|
+
}
|
|
6766
|
+
},
|
|
6767
|
+
"result": {
|
|
6768
|
+
"nullable": true
|
|
6769
|
+
},
|
|
6770
|
+
"state": {
|
|
6771
|
+
"type": "string"
|
|
6772
|
+
}
|
|
6773
|
+
},
|
|
6774
|
+
"required": [
|
|
6775
|
+
"toolCallId",
|
|
6776
|
+
"toolName",
|
|
6777
|
+
"state"
|
|
6778
|
+
]
|
|
6779
|
+
}
|
|
6780
|
+
}
|
|
6781
|
+
},
|
|
6782
|
+
"required": [
|
|
6783
|
+
"id",
|
|
6784
|
+
"role",
|
|
6785
|
+
"content",
|
|
6786
|
+
"createdAt"
|
|
6787
|
+
]
|
|
6788
|
+
},
|
|
6789
|
+
"description": "Full message history (only included in session detail)"
|
|
6790
|
+
}
|
|
6791
|
+
},
|
|
6792
|
+
"required": [
|
|
6793
|
+
"id",
|
|
6794
|
+
"createdAt",
|
|
6795
|
+
"updatedAt",
|
|
6796
|
+
"ownerId",
|
|
6797
|
+
"title"
|
|
6798
|
+
]
|
|
6799
|
+
},
|
|
6800
|
+
"ChatSessionDeleteResponse": {
|
|
6801
|
+
"type": "object",
|
|
6802
|
+
"properties": {
|
|
6803
|
+
"success": {
|
|
6804
|
+
"type": "boolean"
|
|
6805
|
+
}
|
|
6806
|
+
},
|
|
6807
|
+
"required": [
|
|
6808
|
+
"success"
|
|
6809
|
+
]
|
|
6810
|
+
},
|
|
5949
6811
|
"AttestationResponse": {
|
|
5950
6812
|
"type": "object",
|
|
5951
6813
|
"properties": {
|
|
@@ -6037,6 +6899,32 @@
|
|
|
6037
6899
|
"message"
|
|
6038
6900
|
]
|
|
6039
6901
|
},
|
|
6902
|
+
"ChainHeadResponse": {
|
|
6903
|
+
"type": "object",
|
|
6904
|
+
"properties": {
|
|
6905
|
+
"seq": {
|
|
6906
|
+
"type": "integer",
|
|
6907
|
+
"description": "Sequence number of the latest attestation",
|
|
6908
|
+
"example": 784
|
|
6909
|
+
},
|
|
6910
|
+
"tx": {
|
|
6911
|
+
"type": "string",
|
|
6912
|
+
"description": "Arweave transaction ID",
|
|
6913
|
+
"example": "Rxv_BpobNBUr0x5DstsAEUVxCO12hKxv7cnHnGLYp2c"
|
|
6914
|
+
},
|
|
6915
|
+
"arweave_url": {
|
|
6916
|
+
"type": "string",
|
|
6917
|
+
"format": "uri",
|
|
6918
|
+
"description": "Arweave gateway URL for direct access",
|
|
6919
|
+
"example": "https://arweave.net/Rxv_BpobNBUr0x5DstsAEUVxCO12hKxv7cnHnGLYp2c"
|
|
6920
|
+
}
|
|
6921
|
+
},
|
|
6922
|
+
"required": [
|
|
6923
|
+
"seq",
|
|
6924
|
+
"tx",
|
|
6925
|
+
"arweave_url"
|
|
6926
|
+
]
|
|
6927
|
+
},
|
|
6040
6928
|
"VerifyAttestationResponse": {
|
|
6041
6929
|
"type": "object",
|
|
6042
6930
|
"properties": {
|
|
@@ -6129,18 +7017,39 @@
|
|
|
6129
7017
|
"manifest_preview"
|
|
6130
7018
|
]
|
|
6131
7019
|
}
|
|
6132
|
-
}
|
|
6133
|
-
"parameters": {}
|
|
7020
|
+
}
|
|
6134
7021
|
},
|
|
6135
7022
|
"x-arke-version": "1.0.0",
|
|
6136
7023
|
"paths": {
|
|
7024
|
+
"/ops-reference": {
|
|
7025
|
+
"get": {
|
|
7026
|
+
"tags": [
|
|
7027
|
+
"Documentation"
|
|
7028
|
+
],
|
|
7029
|
+
"summary": "Get LLM-friendly API reference",
|
|
7030
|
+
"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.",
|
|
7031
|
+
"responses": {
|
|
7032
|
+
"200": {
|
|
7033
|
+
"description": "Condensed API operations reference",
|
|
7034
|
+
"content": {
|
|
7035
|
+
"text/plain": {
|
|
7036
|
+
"schema": {
|
|
7037
|
+
"type": "string",
|
|
7038
|
+
"example": "# Arke API Operations Reference\n\n## Auth & Users\nPOST /auth/register [jwt-only] - Register new user\n..."
|
|
7039
|
+
}
|
|
7040
|
+
}
|
|
7041
|
+
}
|
|
7042
|
+
}
|
|
7043
|
+
}
|
|
7044
|
+
}
|
|
7045
|
+
},
|
|
6137
7046
|
"/auth/register": {
|
|
6138
7047
|
"post": {
|
|
6139
7048
|
"tags": [
|
|
6140
7049
|
"Auth"
|
|
6141
7050
|
],
|
|
6142
7051
|
"summary": "Register new user",
|
|
6143
|
-
"description": "Creates a user entity from JWT claims. Idempotent - returns existing user if already registered
|
|
7052
|
+
"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",
|
|
6144
7053
|
"x-arke-action": "user:create",
|
|
6145
7054
|
"x-arke-auth": "jwt-only",
|
|
6146
7055
|
"x-arke-tier": "standard",
|
|
@@ -6205,7 +7114,7 @@
|
|
|
6205
7114
|
"Users"
|
|
6206
7115
|
],
|
|
6207
7116
|
"summary": "Get current user",
|
|
6208
|
-
"description": "Returns the authenticated user's entity
|
|
7117
|
+
"description": "Returns the authenticated user's entity.\n\n---\n**Permission:** `user:view` \n**Auth:** required",
|
|
6209
7118
|
"x-arke-action": "user:view",
|
|
6210
7119
|
"x-arke-auth": "required",
|
|
6211
7120
|
"x-arke-tier": "standard",
|
|
@@ -6250,7 +7159,7 @@
|
|
|
6250
7159
|
"Users"
|
|
6251
7160
|
],
|
|
6252
7161
|
"summary": "Get user by ID",
|
|
6253
|
-
"description": "Returns a user entity by ID. May require authentication depending on permissions
|
|
7162
|
+
"description": "Returns a user entity by ID. May require authentication depending on permissions.\n\n---\n**Permission:** `user:view` \n**Auth:** optional",
|
|
6254
7163
|
"x-arke-action": "user:view",
|
|
6255
7164
|
"x-arke-auth": "optional",
|
|
6256
7165
|
"x-arke-tier": "standard",
|
|
@@ -6312,7 +7221,7 @@
|
|
|
6312
7221
|
"Users"
|
|
6313
7222
|
],
|
|
6314
7223
|
"summary": "Update user profile",
|
|
6315
|
-
"description": "Updates a user's profile. Requires user:update permission (typically self-ownership)
|
|
7224
|
+
"description": "Updates a user's profile. Requires user:update permission (typically self-ownership).\n\n---\n**Permission:** `user:update` \n**Auth:** required",
|
|
6316
7225
|
"x-arke-action": "user:update",
|
|
6317
7226
|
"x-arke-auth": "required",
|
|
6318
7227
|
"x-arke-tier": "standard",
|
|
@@ -6445,7 +7354,7 @@
|
|
|
6445
7354
|
"API Keys"
|
|
6446
7355
|
],
|
|
6447
7356
|
"summary": "Create API key",
|
|
6448
|
-
"description": "Creates a new API key for the authenticated user. The full key is only returned once - store it securely
|
|
7357
|
+
"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",
|
|
6449
7358
|
"x-arke-action": "user:credentials",
|
|
6450
7359
|
"x-arke-auth": "required",
|
|
6451
7360
|
"x-arke-tier": "standard",
|
|
@@ -6495,7 +7404,7 @@
|
|
|
6495
7404
|
"API Keys"
|
|
6496
7405
|
],
|
|
6497
7406
|
"summary": "List API keys",
|
|
6498
|
-
"description": "Lists all active API keys for the authenticated user. Returns prefixes only, not full keys
|
|
7407
|
+
"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",
|
|
6499
7408
|
"x-arke-action": "user:credentials",
|
|
6500
7409
|
"x-arke-auth": "required",
|
|
6501
7410
|
"x-arke-tier": "standard",
|
|
@@ -6538,7 +7447,7 @@
|
|
|
6538
7447
|
"API Keys"
|
|
6539
7448
|
],
|
|
6540
7449
|
"summary": "Revoke API key",
|
|
6541
|
-
"description": "Revokes an API key by prefix. The key will be immediately invalid
|
|
7450
|
+
"description": "Revokes an API key by prefix. The key will be immediately invalid.\n\n---\n**Permission:** `user:credentials` \n**Auth:** required",
|
|
6542
7451
|
"x-arke-action": "user:credentials",
|
|
6543
7452
|
"x-arke-auth": "required",
|
|
6544
7453
|
"x-arke-tier": "standard",
|
|
@@ -6600,7 +7509,7 @@
|
|
|
6600
7509
|
"Users"
|
|
6601
7510
|
],
|
|
6602
7511
|
"summary": "List collections user has access to",
|
|
6603
|
-
"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
|
|
7512
|
+
"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",
|
|
6604
7513
|
"x-arke-action": "user:view",
|
|
6605
7514
|
"x-arke-auth": "optional",
|
|
6606
7515
|
"x-arke-tier": "external",
|
|
@@ -6711,7 +7620,7 @@
|
|
|
6711
7620
|
"Search"
|
|
6712
7621
|
],
|
|
6713
7622
|
"summary": "Search across user collections",
|
|
6714
|
-
"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",
|
|
7623
|
+
"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",
|
|
6715
7624
|
"x-arke-action": "search:execute",
|
|
6716
7625
|
"x-arke-auth": "required",
|
|
6717
7626
|
"x-arke-tier": "external",
|
|
@@ -6789,7 +7698,7 @@
|
|
|
6789
7698
|
"Collections"
|
|
6790
7699
|
],
|
|
6791
7700
|
"summary": "Create a new collection",
|
|
6792
|
-
"description": "Creates a collection with the authenticated user as owner
|
|
7701
|
+
"description": "Creates a collection with the authenticated user as owner.\n\n---\n**Permission:** `collection:create` \n**Auth:** required",
|
|
6793
7702
|
"x-arke-action": "collection:create",
|
|
6794
7703
|
"x-arke-auth": "required",
|
|
6795
7704
|
"x-arke-tier": "standard",
|
|
@@ -6877,7 +7786,7 @@
|
|
|
6877
7786
|
"Collections"
|
|
6878
7787
|
],
|
|
6879
7788
|
"summary": "Get collection by ID",
|
|
6880
|
-
"description": "Returns a collection entity by ID
|
|
7789
|
+
"description": "Returns a collection entity by ID.\n\n---\n**Permission:** `collection:view` \n**Auth:** optional",
|
|
6881
7790
|
"x-arke-action": "collection:view",
|
|
6882
7791
|
"x-arke-auth": "optional",
|
|
6883
7792
|
"x-arke-tier": "standard",
|
|
@@ -6939,7 +7848,7 @@
|
|
|
6939
7848
|
"Collections"
|
|
6940
7849
|
],
|
|
6941
7850
|
"summary": "Update collection properties",
|
|
6942
|
-
"description": "Updates collection properties. Requires collection:update permission
|
|
7851
|
+
"description": "Updates collection properties. Requires collection:update permission.\n\n---\n**Permission:** `collection:update` \n**Auth:** required",
|
|
6943
7852
|
"x-arke-action": "collection:update",
|
|
6944
7853
|
"x-arke-auth": "required",
|
|
6945
7854
|
"x-arke-tier": "standard",
|
|
@@ -7071,7 +7980,7 @@
|
|
|
7071
7980
|
"Collections"
|
|
7072
7981
|
],
|
|
7073
7982
|
"summary": "Add a new role",
|
|
7074
|
-
"description": "Adds a new role to the collection. Requires collection:manage permission
|
|
7983
|
+
"description": "Adds a new role to the collection. Requires collection:manage permission.\n\n---\n**Permission:** `collection:manage` \n**Auth:** required",
|
|
7075
7984
|
"x-arke-action": "collection:manage",
|
|
7076
7985
|
"x-arke-auth": "required",
|
|
7077
7986
|
"x-arke-tier": "standard",
|
|
@@ -7186,7 +8095,7 @@
|
|
|
7186
8095
|
"Collections"
|
|
7187
8096
|
],
|
|
7188
8097
|
"summary": "Update role actions",
|
|
7189
|
-
"description": "Updates the actions for an existing role. Requires collection:manage permission
|
|
8098
|
+
"description": "Updates the actions for an existing role. Requires collection:manage permission.\n\n---\n**Permission:** `collection:manage` \n**Auth:** required",
|
|
7190
8099
|
"x-arke-action": "collection:manage",
|
|
7191
8100
|
"x-arke-auth": "required",
|
|
7192
8101
|
"x-arke-tier": "standard",
|
|
@@ -7311,7 +8220,7 @@
|
|
|
7311
8220
|
"Collections"
|
|
7312
8221
|
],
|
|
7313
8222
|
"summary": "Delete a role",
|
|
7314
|
-
"description": "Deletes a role from the collection. Requires collection:manage permission
|
|
8223
|
+
"description": "Deletes a role from the collection. Requires collection:manage permission.\n\n---\n**Permission:** `collection:manage` \n**Auth:** required",
|
|
7315
8224
|
"x-arke-action": "collection:manage",
|
|
7316
8225
|
"x-arke-auth": "required",
|
|
7317
8226
|
"x-arke-tier": "standard",
|
|
@@ -7405,7 +8314,7 @@
|
|
|
7405
8314
|
"Collections"
|
|
7406
8315
|
],
|
|
7407
8316
|
"summary": "List collection members",
|
|
7408
|
-
"description": "Returns all members of the collection grouped by type. By default, expired memberships are excluded
|
|
8317
|
+
"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",
|
|
7409
8318
|
"x-arke-action": "collection:view",
|
|
7410
8319
|
"x-arke-auth": "optional",
|
|
7411
8320
|
"x-arke-tier": "standard",
|
|
@@ -7481,7 +8390,7 @@
|
|
|
7481
8390
|
"Collections"
|
|
7482
8391
|
],
|
|
7483
8392
|
"summary": "Assign user to role",
|
|
7484
|
-
"description": "Assigns a user to a role in the collection. Requires collection:manage permission
|
|
8393
|
+
"description": "Assigns a user to a role in the collection. Requires collection:manage permission.\n\n---\n**Permission:** `collection:manage` \n**Auth:** required",
|
|
7485
8394
|
"x-arke-action": "collection:manage",
|
|
7486
8395
|
"x-arke-auth": "required",
|
|
7487
8396
|
"x-arke-tier": "standard",
|
|
@@ -7596,7 +8505,7 @@
|
|
|
7596
8505
|
"Collections"
|
|
7597
8506
|
],
|
|
7598
8507
|
"summary": "Remove user from role",
|
|
7599
|
-
"description": "Removes a user from a role in the collection. Requires collection:manage permission
|
|
8508
|
+
"description": "Removes a user from a role in the collection. Requires collection:manage permission.\n\n---\n**Permission:** `collection:manage` \n**Auth:** required",
|
|
7600
8509
|
"x-arke-action": "collection:manage",
|
|
7601
8510
|
"x-arke-auth": "required",
|
|
7602
8511
|
"x-arke-tier": "standard",
|
|
@@ -7725,7 +8634,7 @@
|
|
|
7725
8634
|
"Collections"
|
|
7726
8635
|
],
|
|
7727
8636
|
"summary": "Set root entity",
|
|
7728
|
-
"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
|
|
8637
|
+
"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",
|
|
7729
8638
|
"x-arke-action": "collection:update",
|
|
7730
8639
|
"x-arke-auth": "required",
|
|
7731
8640
|
"x-arke-tier": "standard",
|
|
@@ -7857,7 +8766,7 @@
|
|
|
7857
8766
|
"Collections"
|
|
7858
8767
|
],
|
|
7859
8768
|
"summary": "List entities in a collection",
|
|
7860
|
-
"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)
|
|
8769
|
+
"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",
|
|
7861
8770
|
"x-arke-action": "collection:view",
|
|
7862
8771
|
"x-arke-auth": "optional",
|
|
7863
8772
|
"x-arke-tier": "external",
|
|
@@ -7960,7 +8869,7 @@
|
|
|
7960
8869
|
"Entities"
|
|
7961
8870
|
],
|
|
7962
8871
|
"summary": "Create a new entity",
|
|
7963
|
-
"description": "Creates a generic entity of any type. For type-specific validation, use type-specific endpoints
|
|
8872
|
+
"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",
|
|
7964
8873
|
"x-arke-action": "entity:create",
|
|
7965
8874
|
"x-arke-auth": "required",
|
|
7966
8875
|
"x-arke-tier": "standard",
|
|
@@ -8065,7 +8974,7 @@
|
|
|
8065
8974
|
"Entities"
|
|
8066
8975
|
],
|
|
8067
8976
|
"summary": "Get entity by ID",
|
|
8068
|
-
"description": "Returns any entity by ID. Permission check uses parent collection if entity belongs to one
|
|
8977
|
+
"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",
|
|
8069
8978
|
"x-arke-action": "entity:view",
|
|
8070
8979
|
"x-arke-auth": "optional",
|
|
8071
8980
|
"x-arke-tier": "standard",
|
|
@@ -8127,7 +9036,7 @@
|
|
|
8127
9036
|
"Entities"
|
|
8128
9037
|
],
|
|
8129
9038
|
"summary": "Update entity",
|
|
8130
|
-
"description": "Updates
|
|
9039
|
+
"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",
|
|
8131
9040
|
"x-arke-action": "entity:update",
|
|
8132
9041
|
"x-arke-auth": "required",
|
|
8133
9042
|
"x-arke-tier": "standard",
|
|
@@ -8257,7 +9166,7 @@
|
|
|
8257
9166
|
"Entities"
|
|
8258
9167
|
],
|
|
8259
9168
|
"summary": "Delete entity",
|
|
8260
|
-
"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
|
|
9169
|
+
"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",
|
|
8261
9170
|
"x-arke-action": "entity:delete",
|
|
8262
9171
|
"x-arke-auth": "required",
|
|
8263
9172
|
"x-arke-tier": "standard",
|
|
@@ -8383,13 +9292,64 @@
|
|
|
8383
9292
|
}
|
|
8384
9293
|
}
|
|
8385
9294
|
},
|
|
9295
|
+
"/entities/{id}/tip": {
|
|
9296
|
+
"get": {
|
|
9297
|
+
"tags": [
|
|
9298
|
+
"Entities"
|
|
9299
|
+
],
|
|
9300
|
+
"summary": "Get entity tip CID",
|
|
9301
|
+
"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",
|
|
9302
|
+
"x-arke-action": "entity:tip",
|
|
9303
|
+
"x-arke-auth": "none",
|
|
9304
|
+
"x-arke-tier": "standard",
|
|
9305
|
+
"parameters": [
|
|
9306
|
+
{
|
|
9307
|
+
"schema": {
|
|
9308
|
+
"type": "string",
|
|
9309
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
9310
|
+
"description": "Entity ID (ULID format)",
|
|
9311
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
9312
|
+
},
|
|
9313
|
+
"required": true,
|
|
9314
|
+
"description": "Entity ID (ULID)",
|
|
9315
|
+
"name": "id",
|
|
9316
|
+
"in": "path"
|
|
9317
|
+
}
|
|
9318
|
+
],
|
|
9319
|
+
"responses": {
|
|
9320
|
+
"200": {
|
|
9321
|
+
"description": "Tip found",
|
|
9322
|
+
"content": {
|
|
9323
|
+
"application/json": {
|
|
9324
|
+
"schema": {
|
|
9325
|
+
"$ref": "#/components/schemas/TipResponse"
|
|
9326
|
+
}
|
|
9327
|
+
}
|
|
9328
|
+
}
|
|
9329
|
+
},
|
|
9330
|
+
"404": {
|
|
9331
|
+
"description": "Not Found - Resource does not exist",
|
|
9332
|
+
"content": {
|
|
9333
|
+
"application/json": {
|
|
9334
|
+
"schema": {
|
|
9335
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
9336
|
+
},
|
|
9337
|
+
"example": {
|
|
9338
|
+
"error": "Entity not found"
|
|
9339
|
+
}
|
|
9340
|
+
}
|
|
9341
|
+
}
|
|
9342
|
+
}
|
|
9343
|
+
}
|
|
9344
|
+
}
|
|
9345
|
+
},
|
|
8386
9346
|
"/entities/{id}/restore": {
|
|
8387
9347
|
"post": {
|
|
8388
9348
|
"tags": [
|
|
8389
9349
|
"Entities"
|
|
8390
9350
|
],
|
|
8391
9351
|
"summary": "Restore deleted entity",
|
|
8392
|
-
"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
|
|
9352
|
+
"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",
|
|
8393
9353
|
"x-arke-action": "entity:restore",
|
|
8394
9354
|
"x-arke-auth": "required",
|
|
8395
9355
|
"x-arke-tier": "standard",
|
|
@@ -8521,7 +9481,7 @@
|
|
|
8521
9481
|
"Entities"
|
|
8522
9482
|
],
|
|
8523
9483
|
"summary": "Get entity collection",
|
|
8524
|
-
"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
|
|
9484
|
+
"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",
|
|
8525
9485
|
"x-arke-action": "entity:view",
|
|
8526
9486
|
"x-arke-auth": "optional",
|
|
8527
9487
|
"x-arke-tier": "standard",
|
|
@@ -8585,7 +9545,7 @@
|
|
|
8585
9545
|
"Entities"
|
|
8586
9546
|
],
|
|
8587
9547
|
"summary": "Get entity tree",
|
|
8588
|
-
"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)",
|
|
9548
|
+
"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",
|
|
8589
9549
|
"x-arke-action": "entity:view",
|
|
8590
9550
|
"x-arke-auth": "optional",
|
|
8591
9551
|
"x-arke-tier": "standard",
|
|
@@ -8697,7 +9657,7 @@
|
|
|
8697
9657
|
"Versions"
|
|
8698
9658
|
],
|
|
8699
9659
|
"summary": "Get diff between entity versions",
|
|
8700
|
-
"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
|
|
9660
|
+
"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",
|
|
8701
9661
|
"x-arke-action": "entity:view",
|
|
8702
9662
|
"x-arke-auth": "optional",
|
|
8703
9663
|
"x-arke-tier": "standard",
|
|
@@ -8727,63 +9687,146 @@
|
|
|
8727
9687
|
"in": "query"
|
|
8728
9688
|
},
|
|
8729
9689
|
{
|
|
8730
|
-
"schema": {
|
|
8731
|
-
"type": "string",
|
|
8732
|
-
"minLength": 1,
|
|
8733
|
-
"description": "Content Identifier (CID) - content-addressed hash",
|
|
8734
|
-
"example": "bafyreibug443cnd4endcwinwttw3c3dzmcl2ikht64xzn5qg56bix3usfy"
|
|
8735
|
-
},
|
|
8736
|
-
"required": false,
|
|
8737
|
-
"description": "CID of the \"to\" version. Defaults to current tip.",
|
|
8738
|
-
"name": "to",
|
|
8739
|
-
"in": "query"
|
|
8740
|
-
},
|
|
9690
|
+
"schema": {
|
|
9691
|
+
"type": "string",
|
|
9692
|
+
"minLength": 1,
|
|
9693
|
+
"description": "Content Identifier (CID) - content-addressed hash",
|
|
9694
|
+
"example": "bafyreibug443cnd4endcwinwttw3c3dzmcl2ikht64xzn5qg56bix3usfy"
|
|
9695
|
+
},
|
|
9696
|
+
"required": false,
|
|
9697
|
+
"description": "CID of the \"to\" version. Defaults to current tip.",
|
|
9698
|
+
"name": "to",
|
|
9699
|
+
"in": "query"
|
|
9700
|
+
},
|
|
9701
|
+
{
|
|
9702
|
+
"schema": {
|
|
9703
|
+
"type": "string",
|
|
9704
|
+
"enum": [
|
|
9705
|
+
"semantic",
|
|
9706
|
+
"patch"
|
|
9707
|
+
],
|
|
9708
|
+
"default": "semantic"
|
|
9709
|
+
},
|
|
9710
|
+
"required": false,
|
|
9711
|
+
"description": "Output format: \"semantic\" (default) or \"patch\" (RFC 6902)",
|
|
9712
|
+
"name": "format",
|
|
9713
|
+
"in": "query"
|
|
9714
|
+
}
|
|
9715
|
+
],
|
|
9716
|
+
"responses": {
|
|
9717
|
+
"200": {
|
|
9718
|
+
"description": "Diff computed",
|
|
9719
|
+
"content": {
|
|
9720
|
+
"application/json": {
|
|
9721
|
+
"schema": {
|
|
9722
|
+
"$ref": "#/components/schemas/DiffResponse"
|
|
9723
|
+
}
|
|
9724
|
+
}
|
|
9725
|
+
}
|
|
9726
|
+
},
|
|
9727
|
+
"400": {
|
|
9728
|
+
"description": "Bad Request - Invalid input",
|
|
9729
|
+
"content": {
|
|
9730
|
+
"application/json": {
|
|
9731
|
+
"schema": {
|
|
9732
|
+
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
9733
|
+
},
|
|
9734
|
+
"example": {
|
|
9735
|
+
"error": "Validation failed",
|
|
9736
|
+
"details": {
|
|
9737
|
+
"issues": [
|
|
9738
|
+
{
|
|
9739
|
+
"path": [
|
|
9740
|
+
"properties",
|
|
9741
|
+
"label"
|
|
9742
|
+
],
|
|
9743
|
+
"message": "Required"
|
|
9744
|
+
}
|
|
9745
|
+
]
|
|
9746
|
+
}
|
|
9747
|
+
}
|
|
9748
|
+
}
|
|
9749
|
+
}
|
|
9750
|
+
},
|
|
9751
|
+
"403": {
|
|
9752
|
+
"description": "Forbidden - Insufficient permissions",
|
|
9753
|
+
"content": {
|
|
9754
|
+
"application/json": {
|
|
9755
|
+
"schema": {
|
|
9756
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
9757
|
+
},
|
|
9758
|
+
"example": {
|
|
9759
|
+
"error": "Forbidden: You do not have permission to perform this action"
|
|
9760
|
+
}
|
|
9761
|
+
}
|
|
9762
|
+
}
|
|
9763
|
+
},
|
|
9764
|
+
"404": {
|
|
9765
|
+
"description": "Not Found - Resource does not exist",
|
|
9766
|
+
"content": {
|
|
9767
|
+
"application/json": {
|
|
9768
|
+
"schema": {
|
|
9769
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
9770
|
+
},
|
|
9771
|
+
"example": {
|
|
9772
|
+
"error": "Entity not found"
|
|
9773
|
+
}
|
|
9774
|
+
}
|
|
9775
|
+
}
|
|
9776
|
+
}
|
|
9777
|
+
}
|
|
9778
|
+
}
|
|
9779
|
+
},
|
|
9780
|
+
"/entities/{id}/permissions": {
|
|
9781
|
+
"get": {
|
|
9782
|
+
"tags": [
|
|
9783
|
+
"Entities",
|
|
9784
|
+
"Permissions"
|
|
9785
|
+
],
|
|
9786
|
+
"summary": "Get your permissions for an entity",
|
|
9787
|
+
"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",
|
|
9788
|
+
"x-arke-action": "entity:view",
|
|
9789
|
+
"x-arke-auth": "required",
|
|
9790
|
+
"x-arke-tier": "standard",
|
|
9791
|
+
"security": [
|
|
9792
|
+
{
|
|
9793
|
+
"bearerAuth": []
|
|
9794
|
+
}
|
|
9795
|
+
],
|
|
9796
|
+
"parameters": [
|
|
8741
9797
|
{
|
|
8742
9798
|
"schema": {
|
|
8743
9799
|
"type": "string",
|
|
8744
|
-
"
|
|
8745
|
-
|
|
8746
|
-
|
|
8747
|
-
],
|
|
8748
|
-
"default": "semantic"
|
|
9800
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
9801
|
+
"description": "Entity ID (ULID format)",
|
|
9802
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
8749
9803
|
},
|
|
8750
|
-
"required":
|
|
8751
|
-
"description": "
|
|
8752
|
-
"name": "
|
|
8753
|
-
"in": "
|
|
9804
|
+
"required": true,
|
|
9805
|
+
"description": "Entity ID (ULID)",
|
|
9806
|
+
"name": "id",
|
|
9807
|
+
"in": "path"
|
|
8754
9808
|
}
|
|
8755
9809
|
],
|
|
8756
9810
|
"responses": {
|
|
8757
9811
|
"200": {
|
|
8758
|
-
"description": "
|
|
9812
|
+
"description": "Permissions retrieved",
|
|
8759
9813
|
"content": {
|
|
8760
9814
|
"application/json": {
|
|
8761
9815
|
"schema": {
|
|
8762
|
-
"$ref": "#/components/schemas/
|
|
9816
|
+
"$ref": "#/components/schemas/EntityPermissionsResponse"
|
|
8763
9817
|
}
|
|
8764
9818
|
}
|
|
8765
9819
|
}
|
|
8766
9820
|
},
|
|
8767
|
-
"
|
|
8768
|
-
"description": "
|
|
9821
|
+
"401": {
|
|
9822
|
+
"description": "Unauthorized - Missing or invalid authentication",
|
|
8769
9823
|
"content": {
|
|
8770
9824
|
"application/json": {
|
|
8771
9825
|
"schema": {
|
|
8772
|
-
"$ref": "#/components/schemas/
|
|
9826
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
8773
9827
|
},
|
|
8774
9828
|
"example": {
|
|
8775
|
-
"error": "
|
|
8776
|
-
"details": {
|
|
8777
|
-
"issues": [
|
|
8778
|
-
{
|
|
8779
|
-
"path": [
|
|
8780
|
-
"properties",
|
|
8781
|
-
"label"
|
|
8782
|
-
],
|
|
8783
|
-
"message": "Required"
|
|
8784
|
-
}
|
|
8785
|
-
]
|
|
8786
|
-
}
|
|
9829
|
+
"error": "Unauthorized: Missing or invalid authentication token"
|
|
8787
9830
|
}
|
|
8788
9831
|
}
|
|
8789
9832
|
}
|
|
@@ -8823,7 +9866,7 @@
|
|
|
8823
9866
|
"Relationships"
|
|
8824
9867
|
],
|
|
8825
9868
|
"summary": "Add relationship between entities",
|
|
8826
|
-
"description": "Creates a relationship from source to target entity.\n\
|
|
9869
|
+
"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",
|
|
8827
9870
|
"x-arke-action": "entity:update",
|
|
8828
9871
|
"x-arke-auth": "required",
|
|
8829
9872
|
"x-arke-tier": "standard",
|
|
@@ -8939,7 +9982,7 @@
|
|
|
8939
9982
|
"Relationships"
|
|
8940
9983
|
],
|
|
8941
9984
|
"summary": "Remove relationship between entities",
|
|
8942
|
-
"description": "Removes a relationship from source to target entity.\n\
|
|
9985
|
+
"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",
|
|
8943
9986
|
"x-arke-action": "entity:update",
|
|
8944
9987
|
"x-arke-auth": "required",
|
|
8945
9988
|
"x-arke-tier": "standard",
|
|
@@ -9057,7 +10100,7 @@
|
|
|
9057
10100
|
"Connect"
|
|
9058
10101
|
],
|
|
9059
10102
|
"summary": "Connect two entities",
|
|
9060
|
-
"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
|
|
10103
|
+
"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",
|
|
9061
10104
|
"x-arke-action": "entity:update",
|
|
9062
10105
|
"x-arke-auth": "required",
|
|
9063
10106
|
"x-arke-tier": "standard",
|
|
@@ -9175,7 +10218,7 @@
|
|
|
9175
10218
|
"Connect"
|
|
9176
10219
|
],
|
|
9177
10220
|
"summary": "Disconnect two entities",
|
|
9178
|
-
"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
|
|
10221
|
+
"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",
|
|
9179
10222
|
"x-arke-action": "entity:update",
|
|
9180
10223
|
"x-arke-auth": "required",
|
|
9181
10224
|
"x-arke-tier": "standard",
|
|
@@ -9293,7 +10336,7 @@
|
|
|
9293
10336
|
"Files"
|
|
9294
10337
|
],
|
|
9295
10338
|
"summary": "Create file entity",
|
|
9296
|
-
"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
|
|
10339
|
+
"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",
|
|
9297
10340
|
"x-arke-action": "file:create",
|
|
9298
10341
|
"x-arke-auth": "required",
|
|
9299
10342
|
"x-arke-tier": "standard",
|
|
@@ -9398,7 +10441,7 @@
|
|
|
9398
10441
|
"Files"
|
|
9399
10442
|
],
|
|
9400
10443
|
"summary": "Get file metadata",
|
|
9401
|
-
"description": "Returns file entity metadata. Use /{id}/content to download the file content
|
|
10444
|
+
"description": "Returns file entity metadata. Use /{id}/content to download the file content.\n\n---\n**Permission:** `file:view` \n**Auth:** optional",
|
|
9402
10445
|
"x-arke-action": "file:view",
|
|
9403
10446
|
"x-arke-auth": "optional",
|
|
9404
10447
|
"x-arke-tier": "standard",
|
|
@@ -9460,7 +10503,7 @@
|
|
|
9460
10503
|
"Files"
|
|
9461
10504
|
],
|
|
9462
10505
|
"summary": "Update file metadata",
|
|
9463
|
-
"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
|
|
10506
|
+
"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",
|
|
9464
10507
|
"x-arke-action": "file:update",
|
|
9465
10508
|
"x-arke-auth": "required",
|
|
9466
10509
|
"x-arke-tier": "standard",
|
|
@@ -9592,7 +10635,7 @@
|
|
|
9592
10635
|
"Files"
|
|
9593
10636
|
],
|
|
9594
10637
|
"summary": "Upload file content",
|
|
9595
|
-
"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
|
|
10638
|
+
"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",
|
|
9596
10639
|
"x-arke-action": "file:upload",
|
|
9597
10640
|
"x-arke-auth": "required",
|
|
9598
10641
|
"x-arke-tier": "standard",
|
|
@@ -9736,7 +10779,7 @@
|
|
|
9736
10779
|
"Files"
|
|
9737
10780
|
],
|
|
9738
10781
|
"summary": "Download file content",
|
|
9739
|
-
"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
|
|
10782
|
+
"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",
|
|
9740
10783
|
"x-arke-action": "file:download",
|
|
9741
10784
|
"x-arke-auth": "optional",
|
|
9742
10785
|
"x-arke-tier": "standard",
|
|
@@ -9801,7 +10844,7 @@
|
|
|
9801
10844
|
"Files"
|
|
9802
10845
|
],
|
|
9803
10846
|
"summary": "Prepare for new file version",
|
|
9804
|
-
"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
|
|
10847
|
+
"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",
|
|
9805
10848
|
"x-arke-action": "file:reupload",
|
|
9806
10849
|
"x-arke-auth": "required",
|
|
9807
10850
|
"x-arke-tier": "standard",
|
|
@@ -9933,7 +10976,7 @@
|
|
|
9933
10976
|
"Folders"
|
|
9934
10977
|
],
|
|
9935
10978
|
"summary": "Create folder",
|
|
9936
|
-
"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",
|
|
10979
|
+
"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",
|
|
9937
10980
|
"x-arke-action": "folder:create",
|
|
9938
10981
|
"x-arke-auth": "required",
|
|
9939
10982
|
"x-arke-tier": "standard",
|
|
@@ -10021,7 +11064,7 @@
|
|
|
10021
11064
|
"Folders"
|
|
10022
11065
|
],
|
|
10023
11066
|
"summary": "Get folder",
|
|
10024
|
-
"description": "Returns folder metadata including children and parent relationships
|
|
11067
|
+
"description": "Returns folder metadata including children and parent relationships.\n\n---\n**Permission:** `folder:view` \n**Auth:** optional",
|
|
10025
11068
|
"x-arke-action": "folder:view",
|
|
10026
11069
|
"x-arke-auth": "optional",
|
|
10027
11070
|
"x-arke-tier": "standard",
|
|
@@ -10083,7 +11126,7 @@
|
|
|
10083
11126
|
"Folders"
|
|
10084
11127
|
],
|
|
10085
11128
|
"summary": "Update folder",
|
|
10086
|
-
"description": "Updates folder properties (label, description, metadata). Properties are merged
|
|
11129
|
+
"description": "Updates folder properties (label, description, metadata). Properties are merged.\n\n---\n**Permission:** `folder:update` \n**Auth:** required",
|
|
10087
11130
|
"x-arke-action": "folder:update",
|
|
10088
11131
|
"x-arke-auth": "required",
|
|
10089
11132
|
"x-arke-tier": "standard",
|
|
@@ -10215,7 +11258,7 @@
|
|
|
10215
11258
|
"Folders"
|
|
10216
11259
|
],
|
|
10217
11260
|
"summary": "Add child to folder",
|
|
10218
|
-
"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
|
|
11261
|
+
"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",
|
|
10219
11262
|
"x-arke-action": "folder:update",
|
|
10220
11263
|
"x-arke-auth": "required",
|
|
10221
11264
|
"x-arke-tier": "standard",
|
|
@@ -10347,7 +11390,7 @@
|
|
|
10347
11390
|
"Folders"
|
|
10348
11391
|
],
|
|
10349
11392
|
"summary": "Remove child from folder",
|
|
10350
|
-
"description": "Removes a child entity from this folder (bidirectional)
|
|
11393
|
+
"description": "Removes a child entity from this folder (bidirectional).\n\n---\n**Permission:** `folder:update` \n**Auth:** required",
|
|
10351
11394
|
"x-arke-action": "folder:update",
|
|
10352
11395
|
"x-arke-auth": "required",
|
|
10353
11396
|
"x-arke-tier": "standard",
|
|
@@ -10491,7 +11534,7 @@
|
|
|
10491
11534
|
"Folders"
|
|
10492
11535
|
],
|
|
10493
11536
|
"summary": "Bulk add children to folder",
|
|
10494
|
-
"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
|
|
11537
|
+
"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",
|
|
10495
11538
|
"x-arke-action": "folder:update",
|
|
10496
11539
|
"x-arke-auth": "required",
|
|
10497
11540
|
"x-arke-tier": "standard",
|
|
@@ -10623,7 +11666,7 @@
|
|
|
10623
11666
|
"Folders"
|
|
10624
11667
|
],
|
|
10625
11668
|
"summary": "Add parent to folder",
|
|
10626
|
-
"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
|
|
11669
|
+
"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",
|
|
10627
11670
|
"x-arke-action": "folder:update",
|
|
10628
11671
|
"x-arke-auth": "required",
|
|
10629
11672
|
"x-arke-tier": "standard",
|
|
@@ -10755,7 +11798,7 @@
|
|
|
10755
11798
|
"Folders"
|
|
10756
11799
|
],
|
|
10757
11800
|
"summary": "Remove parent from folder",
|
|
10758
|
-
"description": "Removes this folder from a parent folder (bidirectional)
|
|
11801
|
+
"description": "Removes this folder from a parent folder (bidirectional).\n\n---\n**Permission:** `folder:update` \n**Auth:** required",
|
|
10759
11802
|
"x-arke-action": "folder:update",
|
|
10760
11803
|
"x-arke-auth": "required",
|
|
10761
11804
|
"x-arke-tier": "standard",
|
|
@@ -10899,7 +11942,7 @@
|
|
|
10899
11942
|
"Versions"
|
|
10900
11943
|
],
|
|
10901
11944
|
"summary": "List version history",
|
|
10902
|
-
"description": "Returns version metadata for an entity (newest first). Use pagination for entities with many versions
|
|
11945
|
+
"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",
|
|
10903
11946
|
"x-arke-action": "entity:view",
|
|
10904
11947
|
"x-arke-auth": "optional",
|
|
10905
11948
|
"x-arke-tier": "standard",
|
|
@@ -11012,7 +12055,7 @@
|
|
|
11012
12055
|
"Versions"
|
|
11013
12056
|
],
|
|
11014
12057
|
"summary": "Get manifest by CID",
|
|
11015
|
-
"description": "Returns the full manifest for any version by its CID. Permission is checked against the entity ID in the manifest
|
|
12058
|
+
"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",
|
|
11016
12059
|
"x-arke-action": "entity:view",
|
|
11017
12060
|
"x-arke-auth": "optional",
|
|
11018
12061
|
"x-arke-tier": "standard",
|
|
@@ -11076,7 +12119,7 @@
|
|
|
11076
12119
|
"Permissions"
|
|
11077
12120
|
],
|
|
11078
12121
|
"summary": "Get permission system metadata",
|
|
11079
|
-
"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
|
|
12122
|
+
"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",
|
|
11080
12123
|
"x-arke-action": "permissions:read",
|
|
11081
12124
|
"x-arke-auth": "none",
|
|
11082
12125
|
"x-arke-tier": "standard",
|
|
@@ -11100,7 +12143,7 @@
|
|
|
11100
12143
|
"Agents"
|
|
11101
12144
|
],
|
|
11102
12145
|
"summary": "Create an agent",
|
|
11103
|
-
"description": "Creates a new agent entity. Requires agent:create permission in the target collection
|
|
12146
|
+
"description": "Creates a new agent entity. Requires agent:create permission in the target collection.\n\n---\n**Permission:** `agent:create` \n**Auth:** required",
|
|
11104
12147
|
"x-arke-action": "agent:create",
|
|
11105
12148
|
"x-arke-auth": "required",
|
|
11106
12149
|
"x-arke-tier": "standard",
|
|
@@ -11201,7 +12244,7 @@
|
|
|
11201
12244
|
"Agents"
|
|
11202
12245
|
],
|
|
11203
12246
|
"summary": "Get agent by ID",
|
|
11204
|
-
"description": "Returns an agent entity by ID
|
|
12247
|
+
"description": "Returns an agent entity by ID.\n\n---\n**Permission:** `agent:view` \n**Auth:** optional",
|
|
11205
12248
|
"x-arke-action": "agent:view",
|
|
11206
12249
|
"x-arke-auth": "optional",
|
|
11207
12250
|
"x-arke-tier": "standard",
|
|
@@ -11263,7 +12306,7 @@
|
|
|
11263
12306
|
"Agents"
|
|
11264
12307
|
],
|
|
11265
12308
|
"summary": "Update agent",
|
|
11266
|
-
"description": "Updates an agent. Requires agent:update permission.",
|
|
12309
|
+
"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",
|
|
11267
12310
|
"x-arke-action": "agent:update",
|
|
11268
12311
|
"x-arke-auth": "required",
|
|
11269
12312
|
"x-arke-tier": "standard",
|
|
@@ -11395,7 +12438,7 @@
|
|
|
11395
12438
|
"Agents"
|
|
11396
12439
|
],
|
|
11397
12440
|
"summary": "Invoke an agent",
|
|
11398
|
-
"description": "Invoke an agent to perform work on a target collection.\n\n**Two-phase interaction:**\n1.
|
|
12441
|
+
"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",
|
|
11399
12442
|
"x-arke-action": "agent:invoke",
|
|
11400
12443
|
"x-arke-auth": "required",
|
|
11401
12444
|
"x-arke-tier": "standard",
|
|
@@ -11520,7 +12563,7 @@
|
|
|
11520
12563
|
"Agents"
|
|
11521
12564
|
],
|
|
11522
12565
|
"summary": "Create API key for agent",
|
|
11523
|
-
"description": "Creates an API key for the agent. The full key is only returned once
|
|
12566
|
+
"description": "Creates an API key for the agent. The full key is only returned once.\n\n---\n**Permission:** `agent:manage` \n**Auth:** required",
|
|
11524
12567
|
"x-arke-action": "agent:manage",
|
|
11525
12568
|
"x-arke-auth": "required",
|
|
11526
12569
|
"x-arke-tier": "standard",
|
|
@@ -11633,7 +12676,7 @@
|
|
|
11633
12676
|
"Agents"
|
|
11634
12677
|
],
|
|
11635
12678
|
"summary": "List API keys for agent",
|
|
11636
|
-
"description": "Lists all active API keys for the agent (without the actual key values)
|
|
12679
|
+
"description": "Lists all active API keys for the agent (without the actual key values).\n\n---\n**Permission:** `agent:manage` \n**Auth:** required",
|
|
11637
12680
|
"x-arke-action": "agent:manage",
|
|
11638
12681
|
"x-arke-auth": "required",
|
|
11639
12682
|
"x-arke-tier": "standard",
|
|
@@ -11712,18 +12755,225 @@
|
|
|
11712
12755
|
"/agents/{id}/keys/{prefix}": {
|
|
11713
12756
|
"delete": {
|
|
11714
12757
|
"tags": [
|
|
11715
|
-
"Agents"
|
|
12758
|
+
"Agents"
|
|
12759
|
+
],
|
|
12760
|
+
"summary": "Revoke API key",
|
|
12761
|
+
"description": "Revokes an API key for the agent.\n\n---\n**Permission:** `agent:manage` \n**Auth:** required",
|
|
12762
|
+
"x-arke-action": "agent:manage",
|
|
12763
|
+
"x-arke-auth": "required",
|
|
12764
|
+
"x-arke-tier": "standard",
|
|
12765
|
+
"security": [
|
|
12766
|
+
{
|
|
12767
|
+
"bearerAuth": []
|
|
12768
|
+
}
|
|
12769
|
+
],
|
|
12770
|
+
"parameters": [
|
|
12771
|
+
{
|
|
12772
|
+
"schema": {
|
|
12773
|
+
"type": "string",
|
|
12774
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
12775
|
+
"description": "Entity ID (ULID format)",
|
|
12776
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
12777
|
+
},
|
|
12778
|
+
"required": true,
|
|
12779
|
+
"description": "Entity ID (ULID)",
|
|
12780
|
+
"name": "id",
|
|
12781
|
+
"in": "path"
|
|
12782
|
+
},
|
|
12783
|
+
{
|
|
12784
|
+
"schema": {
|
|
12785
|
+
"type": "string",
|
|
12786
|
+
"minLength": 4,
|
|
12787
|
+
"maxLength": 12,
|
|
12788
|
+
"description": "API key prefix (e.g., ak_xKj9)",
|
|
12789
|
+
"example": "ak_xKj9"
|
|
12790
|
+
},
|
|
12791
|
+
"required": true,
|
|
12792
|
+
"name": "prefix",
|
|
12793
|
+
"in": "path"
|
|
12794
|
+
}
|
|
12795
|
+
],
|
|
12796
|
+
"responses": {
|
|
12797
|
+
"204": {
|
|
12798
|
+
"description": "API key revoked"
|
|
12799
|
+
},
|
|
12800
|
+
"401": {
|
|
12801
|
+
"description": "Unauthorized - Missing or invalid authentication",
|
|
12802
|
+
"content": {
|
|
12803
|
+
"application/json": {
|
|
12804
|
+
"schema": {
|
|
12805
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
12806
|
+
},
|
|
12807
|
+
"example": {
|
|
12808
|
+
"error": "Unauthorized: Missing or invalid authentication token"
|
|
12809
|
+
}
|
|
12810
|
+
}
|
|
12811
|
+
}
|
|
12812
|
+
},
|
|
12813
|
+
"403": {
|
|
12814
|
+
"description": "Forbidden - Insufficient permissions",
|
|
12815
|
+
"content": {
|
|
12816
|
+
"application/json": {
|
|
12817
|
+
"schema": {
|
|
12818
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
12819
|
+
},
|
|
12820
|
+
"example": {
|
|
12821
|
+
"error": "Forbidden: You do not have permission to perform this action"
|
|
12822
|
+
}
|
|
12823
|
+
}
|
|
12824
|
+
}
|
|
12825
|
+
},
|
|
12826
|
+
"404": {
|
|
12827
|
+
"description": "Not Found - Resource does not exist",
|
|
12828
|
+
"content": {
|
|
12829
|
+
"application/json": {
|
|
12830
|
+
"schema": {
|
|
12831
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
12832
|
+
},
|
|
12833
|
+
"example": {
|
|
12834
|
+
"error": "Entity not found"
|
|
12835
|
+
}
|
|
12836
|
+
}
|
|
12837
|
+
}
|
|
12838
|
+
}
|
|
12839
|
+
}
|
|
12840
|
+
}
|
|
12841
|
+
},
|
|
12842
|
+
"/agents/{id}/verify": {
|
|
12843
|
+
"post": {
|
|
12844
|
+
"tags": [
|
|
12845
|
+
"Agents"
|
|
12846
|
+
],
|
|
12847
|
+
"summary": "Verify agent endpoint ownership",
|
|
12848
|
+
"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",
|
|
12849
|
+
"x-arke-action": "agent:manage",
|
|
12850
|
+
"x-arke-auth": "required",
|
|
12851
|
+
"x-arke-tier": "standard",
|
|
12852
|
+
"security": [
|
|
12853
|
+
{
|
|
12854
|
+
"bearerAuth": []
|
|
12855
|
+
}
|
|
12856
|
+
],
|
|
12857
|
+
"parameters": [
|
|
12858
|
+
{
|
|
12859
|
+
"schema": {
|
|
12860
|
+
"type": "string",
|
|
12861
|
+
"pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
|
|
12862
|
+
"description": "Entity ID (ULID format)",
|
|
12863
|
+
"example": "01KDETYWYWM0MJVKM8DK3AEXPY"
|
|
12864
|
+
},
|
|
12865
|
+
"required": true,
|
|
12866
|
+
"description": "Entity ID (ULID)",
|
|
12867
|
+
"name": "id",
|
|
12868
|
+
"in": "path"
|
|
12869
|
+
}
|
|
12870
|
+
],
|
|
12871
|
+
"requestBody": {
|
|
12872
|
+
"content": {
|
|
12873
|
+
"application/json": {
|
|
12874
|
+
"schema": {
|
|
12875
|
+
"$ref": "#/components/schemas/VerifyAgentRequest"
|
|
12876
|
+
}
|
|
12877
|
+
}
|
|
12878
|
+
}
|
|
12879
|
+
},
|
|
12880
|
+
"responses": {
|
|
12881
|
+
"200": {
|
|
12882
|
+
"description": "Verification token (when confirm is false) or verification result (when confirm is true)",
|
|
12883
|
+
"content": {
|
|
12884
|
+
"application/json": {
|
|
12885
|
+
"schema": {
|
|
12886
|
+
"anyOf": [
|
|
12887
|
+
{
|
|
12888
|
+
"$ref": "#/components/schemas/VerifyAgentTokenResponse"
|
|
12889
|
+
},
|
|
12890
|
+
{
|
|
12891
|
+
"$ref": "#/components/schemas/VerifyAgentSuccessResponse"
|
|
12892
|
+
},
|
|
12893
|
+
{
|
|
12894
|
+
"$ref": "#/components/schemas/VerifyAgentFailureResponse"
|
|
12895
|
+
}
|
|
12896
|
+
]
|
|
12897
|
+
}
|
|
12898
|
+
}
|
|
12899
|
+
}
|
|
12900
|
+
},
|
|
12901
|
+
"400": {
|
|
12902
|
+
"description": "Bad Request - Invalid input",
|
|
12903
|
+
"content": {
|
|
12904
|
+
"application/json": {
|
|
12905
|
+
"schema": {
|
|
12906
|
+
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
12907
|
+
},
|
|
12908
|
+
"example": {
|
|
12909
|
+
"error": "Validation failed",
|
|
12910
|
+
"details": {
|
|
12911
|
+
"issues": [
|
|
12912
|
+
{
|
|
12913
|
+
"path": [
|
|
12914
|
+
"properties",
|
|
12915
|
+
"label"
|
|
12916
|
+
],
|
|
12917
|
+
"message": "Required"
|
|
12918
|
+
}
|
|
12919
|
+
]
|
|
12920
|
+
}
|
|
12921
|
+
}
|
|
12922
|
+
}
|
|
12923
|
+
}
|
|
12924
|
+
},
|
|
12925
|
+
"401": {
|
|
12926
|
+
"description": "Unauthorized - Missing or invalid authentication",
|
|
12927
|
+
"content": {
|
|
12928
|
+
"application/json": {
|
|
12929
|
+
"schema": {
|
|
12930
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
12931
|
+
},
|
|
12932
|
+
"example": {
|
|
12933
|
+
"error": "Unauthorized: Missing or invalid authentication token"
|
|
12934
|
+
}
|
|
12935
|
+
}
|
|
12936
|
+
}
|
|
12937
|
+
},
|
|
12938
|
+
"403": {
|
|
12939
|
+
"description": "Forbidden - Insufficient permissions",
|
|
12940
|
+
"content": {
|
|
12941
|
+
"application/json": {
|
|
12942
|
+
"schema": {
|
|
12943
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
12944
|
+
},
|
|
12945
|
+
"example": {
|
|
12946
|
+
"error": "Forbidden: You do not have permission to perform this action"
|
|
12947
|
+
}
|
|
12948
|
+
}
|
|
12949
|
+
}
|
|
12950
|
+
},
|
|
12951
|
+
"404": {
|
|
12952
|
+
"description": "Not Found - Resource does not exist",
|
|
12953
|
+
"content": {
|
|
12954
|
+
"application/json": {
|
|
12955
|
+
"schema": {
|
|
12956
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
12957
|
+
},
|
|
12958
|
+
"example": {
|
|
12959
|
+
"error": "Entity not found"
|
|
12960
|
+
}
|
|
12961
|
+
}
|
|
12962
|
+
}
|
|
12963
|
+
}
|
|
12964
|
+
}
|
|
12965
|
+
}
|
|
12966
|
+
},
|
|
12967
|
+
"/jobs/{id}": {
|
|
12968
|
+
"get": {
|
|
12969
|
+
"tags": [
|
|
12970
|
+
"Jobs"
|
|
11716
12971
|
],
|
|
11717
|
-
"summary": "
|
|
11718
|
-
"description": "
|
|
11719
|
-
"x-arke-action": "
|
|
11720
|
-
"x-arke-auth": "
|
|
12972
|
+
"summary": "Get job status",
|
|
12973
|
+
"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",
|
|
12974
|
+
"x-arke-action": "collection:view",
|
|
12975
|
+
"x-arke-auth": "optional",
|
|
11721
12976
|
"x-arke-tier": "standard",
|
|
11722
|
-
"security": [
|
|
11723
|
-
{
|
|
11724
|
-
"bearerAuth": []
|
|
11725
|
-
}
|
|
11726
|
-
],
|
|
11727
12977
|
"parameters": [
|
|
11728
12978
|
{
|
|
11729
12979
|
"schema": {
|
|
@@ -11736,33 +12986,15 @@
|
|
|
11736
12986
|
"description": "Entity ID (ULID)",
|
|
11737
12987
|
"name": "id",
|
|
11738
12988
|
"in": "path"
|
|
11739
|
-
},
|
|
11740
|
-
{
|
|
11741
|
-
"schema": {
|
|
11742
|
-
"type": "string",
|
|
11743
|
-
"minLength": 4,
|
|
11744
|
-
"maxLength": 12,
|
|
11745
|
-
"description": "API key prefix (e.g., ak_xKj9)",
|
|
11746
|
-
"example": "ak_xKj9"
|
|
11747
|
-
},
|
|
11748
|
-
"required": true,
|
|
11749
|
-
"name": "prefix",
|
|
11750
|
-
"in": "path"
|
|
11751
12989
|
}
|
|
11752
12990
|
],
|
|
11753
12991
|
"responses": {
|
|
11754
|
-
"
|
|
11755
|
-
"description": "
|
|
11756
|
-
},
|
|
11757
|
-
"401": {
|
|
11758
|
-
"description": "Unauthorized - Missing or invalid authentication",
|
|
12992
|
+
"200": {
|
|
12993
|
+
"description": "Job status",
|
|
11759
12994
|
"content": {
|
|
11760
12995
|
"application/json": {
|
|
11761
12996
|
"schema": {
|
|
11762
|
-
"$ref": "#/components/schemas/
|
|
11763
|
-
},
|
|
11764
|
-
"example": {
|
|
11765
|
-
"error": "Unauthorized: Missing or invalid authentication token"
|
|
12997
|
+
"$ref": "#/components/schemas/JobStatusResponse"
|
|
11766
12998
|
}
|
|
11767
12999
|
}
|
|
11768
13000
|
}
|
|
@@ -11802,7 +13034,7 @@
|
|
|
11802
13034
|
"Events"
|
|
11803
13035
|
],
|
|
11804
13036
|
"summary": "List entity change events",
|
|
11805
|
-
"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
|
|
13037
|
+
"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",
|
|
11806
13038
|
"x-arke-action": "events:list",
|
|
11807
13039
|
"x-arke-auth": "none",
|
|
11808
13040
|
"x-arke-tier": "standard",
|
|
@@ -11865,10 +13097,15 @@
|
|
|
11865
13097
|
"Graph"
|
|
11866
13098
|
],
|
|
11867
13099
|
"summary": "Find paths between entities",
|
|
11868
|
-
"description": "Find shortest paths between source and target entity sets
|
|
13100
|
+
"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",
|
|
11869
13101
|
"x-arke-action": "graph:query",
|
|
11870
|
-
"x-arke-auth": "
|
|
13102
|
+
"x-arke-auth": "required",
|
|
11871
13103
|
"x-arke-tier": "external",
|
|
13104
|
+
"security": [
|
|
13105
|
+
{
|
|
13106
|
+
"bearerAuth": []
|
|
13107
|
+
}
|
|
13108
|
+
],
|
|
11872
13109
|
"requestBody": {
|
|
11873
13110
|
"content": {
|
|
11874
13111
|
"application/json": {
|
|
@@ -11921,11 +13158,16 @@
|
|
|
11921
13158
|
"tags": [
|
|
11922
13159
|
"Graph"
|
|
11923
13160
|
],
|
|
11924
|
-
"summary": "Find reachable entities",
|
|
11925
|
-
"description": "Find all entities of a specific type reachable from source entities within N hops.",
|
|
13161
|
+
"summary": "Find reachable entities (exhaustive)",
|
|
13162
|
+
"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",
|
|
11926
13163
|
"x-arke-action": "graph:query",
|
|
11927
|
-
"x-arke-auth": "
|
|
13164
|
+
"x-arke-auth": "required",
|
|
11928
13165
|
"x-arke-tier": "external",
|
|
13166
|
+
"security": [
|
|
13167
|
+
{
|
|
13168
|
+
"bearerAuth": []
|
|
13169
|
+
}
|
|
13170
|
+
],
|
|
11929
13171
|
"requestBody": {
|
|
11930
13172
|
"content": {
|
|
11931
13173
|
"application/json": {
|
|
@@ -11979,10 +13221,15 @@
|
|
|
11979
13221
|
"Graph"
|
|
11980
13222
|
],
|
|
11981
13223
|
"summary": "Get entity from graph",
|
|
11982
|
-
"description": "Get entity details with all relationships from the graph database.",
|
|
13224
|
+
"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",
|
|
11983
13225
|
"x-arke-action": "graph:query",
|
|
11984
|
-
"x-arke-auth": "
|
|
13226
|
+
"x-arke-auth": "required",
|
|
11985
13227
|
"x-arke-tier": "external",
|
|
13228
|
+
"security": [
|
|
13229
|
+
{
|
|
13230
|
+
"bearerAuth": []
|
|
13231
|
+
}
|
|
13232
|
+
],
|
|
11986
13233
|
"parameters": [
|
|
11987
13234
|
{
|
|
11988
13235
|
"schema": {
|
|
@@ -12030,10 +13277,15 @@
|
|
|
12030
13277
|
"Query"
|
|
12031
13278
|
],
|
|
12032
13279
|
"summary": "Execute Argo query",
|
|
12033
|
-
"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",
|
|
13280
|
+
"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",
|
|
12034
13281
|
"x-arke-action": "query:execute",
|
|
12035
|
-
"x-arke-auth": "
|
|
13282
|
+
"x-arke-auth": "required",
|
|
12036
13283
|
"x-arke-tier": "external",
|
|
13284
|
+
"security": [
|
|
13285
|
+
{
|
|
13286
|
+
"bearerAuth": []
|
|
13287
|
+
}
|
|
13288
|
+
],
|
|
12037
13289
|
"requestBody": {
|
|
12038
13290
|
"content": {
|
|
12039
13291
|
"application/json": {
|
|
@@ -12087,10 +13339,15 @@
|
|
|
12087
13339
|
"Search"
|
|
12088
13340
|
],
|
|
12089
13341
|
"summary": "Find similar collections",
|
|
12090
|
-
"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
|
|
13342
|
+
"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",
|
|
12091
13343
|
"x-arke-action": "search:similar",
|
|
12092
|
-
"x-arke-auth": "
|
|
13344
|
+
"x-arke-auth": "required",
|
|
12093
13345
|
"x-arke-tier": "external",
|
|
13346
|
+
"security": [
|
|
13347
|
+
{
|
|
13348
|
+
"bearerAuth": []
|
|
13349
|
+
}
|
|
13350
|
+
],
|
|
12094
13351
|
"requestBody": {
|
|
12095
13352
|
"content": {
|
|
12096
13353
|
"application/json": {
|
|
@@ -12249,10 +13506,15 @@
|
|
|
12249
13506
|
"Search"
|
|
12250
13507
|
],
|
|
12251
13508
|
"summary": "Find similar items across collections",
|
|
12252
|
-
"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",
|
|
13509
|
+
"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",
|
|
12253
13510
|
"x-arke-action": "search:similar",
|
|
12254
|
-
"x-arke-auth": "
|
|
13511
|
+
"x-arke-auth": "required",
|
|
12255
13512
|
"x-arke-tier": "external",
|
|
13513
|
+
"security": [
|
|
13514
|
+
{
|
|
13515
|
+
"bearerAuth": []
|
|
13516
|
+
}
|
|
13517
|
+
],
|
|
12256
13518
|
"requestBody": {
|
|
12257
13519
|
"content": {
|
|
12258
13520
|
"application/json": {
|
|
@@ -12329,9 +13591,189 @@
|
|
|
12329
13591
|
"label": {
|
|
12330
13592
|
"type": "string"
|
|
12331
13593
|
},
|
|
12332
|
-
"collection_pi": {
|
|
12333
|
-
"type": "string",
|
|
12334
|
-
"nullable": true
|
|
13594
|
+
"collection_pi": {
|
|
13595
|
+
"type": "string",
|
|
13596
|
+
"nullable": true
|
|
13597
|
+
},
|
|
13598
|
+
"score": {
|
|
13599
|
+
"type": "number"
|
|
13600
|
+
},
|
|
13601
|
+
"created_at": {
|
|
13602
|
+
"type": "string"
|
|
13603
|
+
},
|
|
13604
|
+
"updated_at": {
|
|
13605
|
+
"type": "string"
|
|
13606
|
+
}
|
|
13607
|
+
},
|
|
13608
|
+
"required": [
|
|
13609
|
+
"pi",
|
|
13610
|
+
"type",
|
|
13611
|
+
"label",
|
|
13612
|
+
"collection_pi",
|
|
13613
|
+
"score"
|
|
13614
|
+
]
|
|
13615
|
+
}
|
|
13616
|
+
},
|
|
13617
|
+
"metadata": {
|
|
13618
|
+
"type": "object",
|
|
13619
|
+
"properties": {
|
|
13620
|
+
"source_pi": {
|
|
13621
|
+
"type": "string"
|
|
13622
|
+
},
|
|
13623
|
+
"collections_searched": {
|
|
13624
|
+
"type": "number"
|
|
13625
|
+
},
|
|
13626
|
+
"result_count": {
|
|
13627
|
+
"type": "number"
|
|
13628
|
+
},
|
|
13629
|
+
"cached": {
|
|
13630
|
+
"type": "boolean"
|
|
13631
|
+
},
|
|
13632
|
+
"cached_at": {
|
|
13633
|
+
"type": "string"
|
|
13634
|
+
}
|
|
13635
|
+
},
|
|
13636
|
+
"required": [
|
|
13637
|
+
"source_pi",
|
|
13638
|
+
"collections_searched",
|
|
13639
|
+
"result_count"
|
|
13640
|
+
]
|
|
13641
|
+
}
|
|
13642
|
+
},
|
|
13643
|
+
"required": [
|
|
13644
|
+
"results",
|
|
13645
|
+
"metadata"
|
|
13646
|
+
]
|
|
13647
|
+
}
|
|
13648
|
+
}
|
|
13649
|
+
}
|
|
13650
|
+
},
|
|
13651
|
+
"400": {
|
|
13652
|
+
"description": "Bad Request - Invalid input",
|
|
13653
|
+
"content": {
|
|
13654
|
+
"application/json": {
|
|
13655
|
+
"schema": {
|
|
13656
|
+
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
13657
|
+
},
|
|
13658
|
+
"example": {
|
|
13659
|
+
"error": "Validation failed",
|
|
13660
|
+
"details": {
|
|
13661
|
+
"issues": [
|
|
13662
|
+
{
|
|
13663
|
+
"path": [
|
|
13664
|
+
"properties",
|
|
13665
|
+
"label"
|
|
13666
|
+
],
|
|
13667
|
+
"message": "Required"
|
|
13668
|
+
}
|
|
13669
|
+
]
|
|
13670
|
+
}
|
|
13671
|
+
}
|
|
13672
|
+
}
|
|
13673
|
+
}
|
|
13674
|
+
},
|
|
13675
|
+
"404": {
|
|
13676
|
+
"description": "Not Found - Resource does not exist",
|
|
13677
|
+
"content": {
|
|
13678
|
+
"application/json": {
|
|
13679
|
+
"schema": {
|
|
13680
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
13681
|
+
},
|
|
13682
|
+
"example": {
|
|
13683
|
+
"error": "Entity not found"
|
|
13684
|
+
}
|
|
13685
|
+
}
|
|
13686
|
+
}
|
|
13687
|
+
},
|
|
13688
|
+
"503": {
|
|
13689
|
+
"description": "Service Unavailable - External service not available",
|
|
13690
|
+
"content": {
|
|
13691
|
+
"application/json": {
|
|
13692
|
+
"schema": {
|
|
13693
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
13694
|
+
},
|
|
13695
|
+
"example": {
|
|
13696
|
+
"error": "Service unavailable",
|
|
13697
|
+
"details": {
|
|
13698
|
+
"service": "pinecone"
|
|
13699
|
+
}
|
|
13700
|
+
}
|
|
13701
|
+
}
|
|
13702
|
+
}
|
|
13703
|
+
}
|
|
13704
|
+
}
|
|
13705
|
+
}
|
|
13706
|
+
},
|
|
13707
|
+
"/search/collections": {
|
|
13708
|
+
"post": {
|
|
13709
|
+
"tags": [
|
|
13710
|
+
"Search"
|
|
13711
|
+
],
|
|
13712
|
+
"summary": "Search collections by text",
|
|
13713
|
+
"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",
|
|
13714
|
+
"x-arke-action": "search:query",
|
|
13715
|
+
"x-arke-auth": "required",
|
|
13716
|
+
"x-arke-tier": "external",
|
|
13717
|
+
"security": [
|
|
13718
|
+
{
|
|
13719
|
+
"bearerAuth": []
|
|
13720
|
+
}
|
|
13721
|
+
],
|
|
13722
|
+
"requestBody": {
|
|
13723
|
+
"content": {
|
|
13724
|
+
"application/json": {
|
|
13725
|
+
"schema": {
|
|
13726
|
+
"type": "object",
|
|
13727
|
+
"properties": {
|
|
13728
|
+
"query": {
|
|
13729
|
+
"type": "string",
|
|
13730
|
+
"minLength": 1,
|
|
13731
|
+
"maxLength": 500,
|
|
13732
|
+
"description": "Search query text"
|
|
13733
|
+
},
|
|
13734
|
+
"limit": {
|
|
13735
|
+
"type": "number",
|
|
13736
|
+
"minimum": 1,
|
|
13737
|
+
"maximum": 100,
|
|
13738
|
+
"default": 10,
|
|
13739
|
+
"description": "Maximum results to return"
|
|
13740
|
+
},
|
|
13741
|
+
"types": {
|
|
13742
|
+
"type": "array",
|
|
13743
|
+
"items": {
|
|
13744
|
+
"type": "string"
|
|
13745
|
+
},
|
|
13746
|
+
"description": "Filter by collection types"
|
|
13747
|
+
}
|
|
13748
|
+
},
|
|
13749
|
+
"required": [
|
|
13750
|
+
"query"
|
|
13751
|
+
]
|
|
13752
|
+
}
|
|
13753
|
+
}
|
|
13754
|
+
}
|
|
13755
|
+
},
|
|
13756
|
+
"responses": {
|
|
13757
|
+
"200": {
|
|
13758
|
+
"description": "Search results",
|
|
13759
|
+
"content": {
|
|
13760
|
+
"application/json": {
|
|
13761
|
+
"schema": {
|
|
13762
|
+
"type": "object",
|
|
13763
|
+
"properties": {
|
|
13764
|
+
"results": {
|
|
13765
|
+
"type": "array",
|
|
13766
|
+
"items": {
|
|
13767
|
+
"type": "object",
|
|
13768
|
+
"properties": {
|
|
13769
|
+
"pi": {
|
|
13770
|
+
"type": "string"
|
|
13771
|
+
},
|
|
13772
|
+
"label": {
|
|
13773
|
+
"type": "string"
|
|
13774
|
+
},
|
|
13775
|
+
"type": {
|
|
13776
|
+
"type": "string"
|
|
12335
13777
|
},
|
|
12336
13778
|
"score": {
|
|
12337
13779
|
"type": "number"
|
|
@@ -12345,9 +13787,8 @@
|
|
|
12345
13787
|
},
|
|
12346
13788
|
"required": [
|
|
12347
13789
|
"pi",
|
|
12348
|
-
"type",
|
|
12349
13790
|
"label",
|
|
12350
|
-
"
|
|
13791
|
+
"type",
|
|
12351
13792
|
"score"
|
|
12352
13793
|
]
|
|
12353
13794
|
}
|
|
@@ -12355,25 +13796,15 @@
|
|
|
12355
13796
|
"metadata": {
|
|
12356
13797
|
"type": "object",
|
|
12357
13798
|
"properties": {
|
|
12358
|
-
"
|
|
13799
|
+
"query": {
|
|
12359
13800
|
"type": "string"
|
|
12360
13801
|
},
|
|
12361
|
-
"collections_searched": {
|
|
12362
|
-
"type": "number"
|
|
12363
|
-
},
|
|
12364
13802
|
"result_count": {
|
|
12365
13803
|
"type": "number"
|
|
12366
|
-
},
|
|
12367
|
-
"cached": {
|
|
12368
|
-
"type": "boolean"
|
|
12369
|
-
},
|
|
12370
|
-
"cached_at": {
|
|
12371
|
-
"type": "string"
|
|
12372
13804
|
}
|
|
12373
13805
|
},
|
|
12374
13806
|
"required": [
|
|
12375
|
-
"
|
|
12376
|
-
"collections_searched",
|
|
13807
|
+
"query",
|
|
12377
13808
|
"result_count"
|
|
12378
13809
|
]
|
|
12379
13810
|
}
|
|
@@ -12410,19 +13841,6 @@
|
|
|
12410
13841
|
}
|
|
12411
13842
|
}
|
|
12412
13843
|
},
|
|
12413
|
-
"404": {
|
|
12414
|
-
"description": "Not Found - Resource does not exist",
|
|
12415
|
-
"content": {
|
|
12416
|
-
"application/json": {
|
|
12417
|
-
"schema": {
|
|
12418
|
-
"$ref": "#/components/schemas/ErrorResponse"
|
|
12419
|
-
},
|
|
12420
|
-
"example": {
|
|
12421
|
-
"error": "Entity not found"
|
|
12422
|
-
}
|
|
12423
|
-
}
|
|
12424
|
-
}
|
|
12425
|
-
},
|
|
12426
13844
|
"503": {
|
|
12427
13845
|
"description": "Service Unavailable - External service not available",
|
|
12428
13846
|
"content": {
|
|
@@ -12442,16 +13860,21 @@
|
|
|
12442
13860
|
}
|
|
12443
13861
|
}
|
|
12444
13862
|
},
|
|
12445
|
-
"/search/
|
|
13863
|
+
"/search/agents": {
|
|
12446
13864
|
"post": {
|
|
12447
13865
|
"tags": [
|
|
12448
13866
|
"Search"
|
|
12449
13867
|
],
|
|
12450
|
-
"summary": "Search
|
|
12451
|
-
"description": "Search for
|
|
13868
|
+
"summary": "Search agents by text",
|
|
13869
|
+
"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",
|
|
12452
13870
|
"x-arke-action": "search:query",
|
|
12453
|
-
"x-arke-auth": "
|
|
13871
|
+
"x-arke-auth": "required",
|
|
12454
13872
|
"x-arke-tier": "external",
|
|
13873
|
+
"security": [
|
|
13874
|
+
{
|
|
13875
|
+
"bearerAuth": []
|
|
13876
|
+
}
|
|
13877
|
+
],
|
|
12455
13878
|
"requestBody": {
|
|
12456
13879
|
"content": {
|
|
12457
13880
|
"application/json": {
|
|
@@ -12470,13 +13893,6 @@
|
|
|
12470
13893
|
"maximum": 100,
|
|
12471
13894
|
"default": 10,
|
|
12472
13895
|
"description": "Maximum results to return"
|
|
12473
|
-
},
|
|
12474
|
-
"types": {
|
|
12475
|
-
"type": "array",
|
|
12476
|
-
"items": {
|
|
12477
|
-
"type": "string"
|
|
12478
|
-
},
|
|
12479
|
-
"description": "Filter by collection types"
|
|
12480
13896
|
}
|
|
12481
13897
|
},
|
|
12482
13898
|
"required": [
|
|
@@ -12505,12 +13921,16 @@
|
|
|
12505
13921
|
"label": {
|
|
12506
13922
|
"type": "string"
|
|
12507
13923
|
},
|
|
12508
|
-
"type": {
|
|
12509
|
-
"type": "string"
|
|
12510
|
-
},
|
|
12511
13924
|
"score": {
|
|
12512
13925
|
"type": "number"
|
|
12513
13926
|
},
|
|
13927
|
+
"collection_pi": {
|
|
13928
|
+
"type": "string",
|
|
13929
|
+
"nullable": true
|
|
13930
|
+
},
|
|
13931
|
+
"status": {
|
|
13932
|
+
"type": "string"
|
|
13933
|
+
},
|
|
12514
13934
|
"created_at": {
|
|
12515
13935
|
"type": "string"
|
|
12516
13936
|
},
|
|
@@ -12521,8 +13941,8 @@
|
|
|
12521
13941
|
"required": [
|
|
12522
13942
|
"pi",
|
|
12523
13943
|
"label",
|
|
12524
|
-
"
|
|
12525
|
-
"
|
|
13944
|
+
"score",
|
|
13945
|
+
"collection_pi"
|
|
12526
13946
|
]
|
|
12527
13947
|
}
|
|
12528
13948
|
},
|
|
@@ -12599,10 +14019,15 @@
|
|
|
12599
14019
|
"Search"
|
|
12600
14020
|
],
|
|
12601
14021
|
"summary": "Search entities within collection(s)",
|
|
12602
|
-
"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
|
|
14022
|
+
"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",
|
|
12603
14023
|
"x-arke-action": "search:query",
|
|
12604
|
-
"x-arke-auth": "
|
|
14024
|
+
"x-arke-auth": "required",
|
|
12605
14025
|
"x-arke-tier": "external",
|
|
14026
|
+
"security": [
|
|
14027
|
+
{
|
|
14028
|
+
"bearerAuth": []
|
|
14029
|
+
}
|
|
14030
|
+
],
|
|
12606
14031
|
"requestBody": {
|
|
12607
14032
|
"content": {
|
|
12608
14033
|
"application/json": {
|
|
@@ -12783,10 +14208,15 @@
|
|
|
12783
14208
|
"Search"
|
|
12784
14209
|
],
|
|
12785
14210
|
"summary": "Discover entities across all collections",
|
|
12786
|
-
"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
|
|
14211
|
+
"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",
|
|
12787
14212
|
"x-arke-action": "search:query",
|
|
12788
|
-
"x-arke-auth": "
|
|
14213
|
+
"x-arke-auth": "required",
|
|
12789
14214
|
"x-arke-tier": "external",
|
|
14215
|
+
"security": [
|
|
14216
|
+
{
|
|
14217
|
+
"bearerAuth": []
|
|
14218
|
+
}
|
|
14219
|
+
],
|
|
12790
14220
|
"requestBody": {
|
|
12791
14221
|
"content": {
|
|
12792
14222
|
"application/json": {
|
|
@@ -12950,13 +14380,181 @@
|
|
|
12950
14380
|
}
|
|
12951
14381
|
}
|
|
12952
14382
|
},
|
|
14383
|
+
"/chat": {
|
|
14384
|
+
"post": {
|
|
14385
|
+
"tags": [
|
|
14386
|
+
"Chat"
|
|
14387
|
+
],
|
|
14388
|
+
"summary": "Send chat message",
|
|
14389
|
+
"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",
|
|
14390
|
+
"x-arke-action": "chat:send",
|
|
14391
|
+
"x-arke-auth": "required",
|
|
14392
|
+
"x-arke-tier": "external",
|
|
14393
|
+
"security": [
|
|
14394
|
+
{
|
|
14395
|
+
"bearerAuth": []
|
|
14396
|
+
}
|
|
14397
|
+
],
|
|
14398
|
+
"requestBody": {
|
|
14399
|
+
"content": {
|
|
14400
|
+
"application/json": {
|
|
14401
|
+
"schema": {
|
|
14402
|
+
"$ref": "#/components/schemas/SendChatRequest"
|
|
14403
|
+
}
|
|
14404
|
+
}
|
|
14405
|
+
}
|
|
14406
|
+
},
|
|
14407
|
+
"responses": {
|
|
14408
|
+
"200": {
|
|
14409
|
+
"description": "Streaming SSE response",
|
|
14410
|
+
"content": {
|
|
14411
|
+
"text/event-stream": {
|
|
14412
|
+
"schema": {
|
|
14413
|
+
"type": "string",
|
|
14414
|
+
"description": "Server-Sent Events stream in AI SDK v5 format"
|
|
14415
|
+
}
|
|
14416
|
+
}
|
|
14417
|
+
}
|
|
14418
|
+
},
|
|
14419
|
+
"401": {
|
|
14420
|
+
"description": "Unauthorized - Missing or invalid authentication",
|
|
14421
|
+
"content": {
|
|
14422
|
+
"application/json": {
|
|
14423
|
+
"schema": {
|
|
14424
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
14425
|
+
},
|
|
14426
|
+
"example": {
|
|
14427
|
+
"error": "Unauthorized: Missing or invalid authentication token"
|
|
14428
|
+
}
|
|
14429
|
+
}
|
|
14430
|
+
}
|
|
14431
|
+
},
|
|
14432
|
+
"403": {
|
|
14433
|
+
"description": "Forbidden - Insufficient permissions",
|
|
14434
|
+
"content": {
|
|
14435
|
+
"application/json": {
|
|
14436
|
+
"schema": {
|
|
14437
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
14438
|
+
},
|
|
14439
|
+
"example": {
|
|
14440
|
+
"error": "Forbidden: You do not have permission to perform this action"
|
|
14441
|
+
}
|
|
14442
|
+
}
|
|
14443
|
+
}
|
|
14444
|
+
}
|
|
14445
|
+
}
|
|
14446
|
+
}
|
|
14447
|
+
},
|
|
14448
|
+
"/chat/sessions/{id}": {
|
|
14449
|
+
"get": {
|
|
14450
|
+
"tags": [
|
|
14451
|
+
"Chat"
|
|
14452
|
+
],
|
|
14453
|
+
"summary": "Get chat session",
|
|
14454
|
+
"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",
|
|
14455
|
+
"x-arke-action": "chat:view",
|
|
14456
|
+
"x-arke-auth": "optional",
|
|
14457
|
+
"x-arke-tier": "standard",
|
|
14458
|
+
"responses": {
|
|
14459
|
+
"200": {
|
|
14460
|
+
"description": "Chat session info",
|
|
14461
|
+
"content": {
|
|
14462
|
+
"application/json": {
|
|
14463
|
+
"schema": {
|
|
14464
|
+
"$ref": "#/components/schemas/ChatSession"
|
|
14465
|
+
}
|
|
14466
|
+
}
|
|
14467
|
+
}
|
|
14468
|
+
},
|
|
14469
|
+
"404": {
|
|
14470
|
+
"description": "Not Found - Resource does not exist",
|
|
14471
|
+
"content": {
|
|
14472
|
+
"application/json": {
|
|
14473
|
+
"schema": {
|
|
14474
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
14475
|
+
},
|
|
14476
|
+
"example": {
|
|
14477
|
+
"error": "Entity not found"
|
|
14478
|
+
}
|
|
14479
|
+
}
|
|
14480
|
+
}
|
|
14481
|
+
}
|
|
14482
|
+
}
|
|
14483
|
+
},
|
|
14484
|
+
"delete": {
|
|
14485
|
+
"tags": [
|
|
14486
|
+
"Chat"
|
|
14487
|
+
],
|
|
14488
|
+
"summary": "Delete chat session",
|
|
14489
|
+
"description": "Delete a chat session. Only the session owner can delete it.\n\n---\n**Permission:** `chat:delete` \n**Auth:** required",
|
|
14490
|
+
"x-arke-action": "chat:delete",
|
|
14491
|
+
"x-arke-auth": "required",
|
|
14492
|
+
"x-arke-tier": "standard",
|
|
14493
|
+
"security": [
|
|
14494
|
+
{
|
|
14495
|
+
"bearerAuth": []
|
|
14496
|
+
}
|
|
14497
|
+
],
|
|
14498
|
+
"responses": {
|
|
14499
|
+
"200": {
|
|
14500
|
+
"description": "Session deleted",
|
|
14501
|
+
"content": {
|
|
14502
|
+
"application/json": {
|
|
14503
|
+
"schema": {
|
|
14504
|
+
"$ref": "#/components/schemas/ChatSessionDeleteResponse"
|
|
14505
|
+
}
|
|
14506
|
+
}
|
|
14507
|
+
}
|
|
14508
|
+
},
|
|
14509
|
+
"401": {
|
|
14510
|
+
"description": "Unauthorized - Missing or invalid authentication",
|
|
14511
|
+
"content": {
|
|
14512
|
+
"application/json": {
|
|
14513
|
+
"schema": {
|
|
14514
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
14515
|
+
},
|
|
14516
|
+
"example": {
|
|
14517
|
+
"error": "Unauthorized: Missing or invalid authentication token"
|
|
14518
|
+
}
|
|
14519
|
+
}
|
|
14520
|
+
}
|
|
14521
|
+
},
|
|
14522
|
+
"403": {
|
|
14523
|
+
"description": "Forbidden - Insufficient permissions",
|
|
14524
|
+
"content": {
|
|
14525
|
+
"application/json": {
|
|
14526
|
+
"schema": {
|
|
14527
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
14528
|
+
},
|
|
14529
|
+
"example": {
|
|
14530
|
+
"error": "Forbidden: You do not have permission to perform this action"
|
|
14531
|
+
}
|
|
14532
|
+
}
|
|
14533
|
+
}
|
|
14534
|
+
},
|
|
14535
|
+
"404": {
|
|
14536
|
+
"description": "Not Found - Resource does not exist",
|
|
14537
|
+
"content": {
|
|
14538
|
+
"application/json": {
|
|
14539
|
+
"schema": {
|
|
14540
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
14541
|
+
},
|
|
14542
|
+
"example": {
|
|
14543
|
+
"error": "Entity not found"
|
|
14544
|
+
}
|
|
14545
|
+
}
|
|
14546
|
+
}
|
|
14547
|
+
}
|
|
14548
|
+
}
|
|
14549
|
+
}
|
|
14550
|
+
},
|
|
12953
14551
|
"/entities/{id}/attestation": {
|
|
12954
14552
|
"get": {
|
|
12955
14553
|
"tags": [
|
|
12956
14554
|
"Attestations"
|
|
12957
14555
|
],
|
|
12958
14556
|
"summary": "Get latest attestation",
|
|
12959
|
-
"description": "Returns the Arweave attestation for the current (latest) version of an entity.\n\nReturns 202 Accepted if the attestation upload is still pending
|
|
14557
|
+
"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",
|
|
12960
14558
|
"x-arke-action": "entity:view",
|
|
12961
14559
|
"x-arke-auth": "optional",
|
|
12962
14560
|
"x-arke-tier": "standard",
|
|
@@ -13030,7 +14628,7 @@
|
|
|
13030
14628
|
"Attestations"
|
|
13031
14629
|
],
|
|
13032
14630
|
"summary": "Get version attestation",
|
|
13033
|
-
"description": "Returns the Arweave attestation for a specific version of an entity
|
|
14631
|
+
"description": "Returns the Arweave attestation for a specific version of an entity.\n\n---\n**Permission:** `entity:view` \n**Auth:** optional",
|
|
13034
14632
|
"x-arke-action": "entity:view",
|
|
13035
14633
|
"x-arke-auth": "optional",
|
|
13036
14634
|
"x-arke-tier": "standard",
|
|
@@ -13099,13 +14697,50 @@
|
|
|
13099
14697
|
}
|
|
13100
14698
|
}
|
|
13101
14699
|
},
|
|
14700
|
+
"/attestations/head": {
|
|
14701
|
+
"get": {
|
|
14702
|
+
"tags": [
|
|
14703
|
+
"Attestations"
|
|
14704
|
+
],
|
|
14705
|
+
"summary": "Get chain head",
|
|
14706
|
+
"description": "Returns the latest Arweave attestation transaction ID (network head).\n\n---\n**Permission:** `attestation:view` \n**Auth:** none",
|
|
14707
|
+
"x-arke-action": "attestation:view",
|
|
14708
|
+
"x-arke-auth": "none",
|
|
14709
|
+
"x-arke-tier": "standard",
|
|
14710
|
+
"responses": {
|
|
14711
|
+
"200": {
|
|
14712
|
+
"description": "Chain head",
|
|
14713
|
+
"content": {
|
|
14714
|
+
"application/json": {
|
|
14715
|
+
"schema": {
|
|
14716
|
+
"$ref": "#/components/schemas/ChainHeadResponse"
|
|
14717
|
+
}
|
|
14718
|
+
}
|
|
14719
|
+
}
|
|
14720
|
+
},
|
|
14721
|
+
"404": {
|
|
14722
|
+
"description": "Not Found - Resource does not exist",
|
|
14723
|
+
"content": {
|
|
14724
|
+
"application/json": {
|
|
14725
|
+
"schema": {
|
|
14726
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
14727
|
+
},
|
|
14728
|
+
"example": {
|
|
14729
|
+
"error": "Entity not found"
|
|
14730
|
+
}
|
|
14731
|
+
}
|
|
14732
|
+
}
|
|
14733
|
+
}
|
|
14734
|
+
}
|
|
14735
|
+
}
|
|
14736
|
+
},
|
|
13102
14737
|
"/attestations/verify/{tx}": {
|
|
13103
14738
|
"get": {
|
|
13104
14739
|
"tags": [
|
|
13105
14740
|
"Attestations"
|
|
13106
14741
|
],
|
|
13107
14742
|
"summary": "Verify attestation",
|
|
13108
|
-
"description": "Fetches an attestation from Arweave and verifies the CID matches the manifest content.\n\nThis is a public endpoint - anyone can verify attestations
|
|
14743
|
+
"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",
|
|
13109
14744
|
"x-arke-action": "attestation:verify",
|
|
13110
14745
|
"x-arke-auth": "none",
|
|
13111
14746
|
"x-arke-tier": "standard",
|