@mhome/artifact-protocol 1.8.0 → 1.9.0
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/README.md
CHANGED
|
@@ -29,14 +29,14 @@ scope reuses that content. Existing durable content is never downgraded. Put and
|
|
|
29
29
|
resolve responses report `temporary: true` and `expiresAtUnixMs` for temporary
|
|
30
30
|
content; durable responses omit both fields.
|
|
31
31
|
|
|
32
|
-
MeowCore
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
32
|
+
MeowCore keeps temporary content only in memory, without a total capacity or
|
|
33
|
+
object-count quota and without disk spill. Each successful content read resets
|
|
34
|
+
one hour of idle retention. Upload and repeated put / import revalidation also
|
|
35
|
+
reset that deadline; resolve and metadata queries do not. Objects never read
|
|
36
|
+
expire one hour after upload. Reads reject expired objects immediately, while
|
|
37
|
+
periodic maintenance reclaims idle entries. An already opened snapshot may
|
|
38
|
+
finish after deletion or expiry. Existing per-upload size and transport limits
|
|
39
|
+
still apply. The caller is responsible for peak memory use.
|
|
40
40
|
|
|
41
41
|
`/artifact/persist` takes `{ "uri": "meow-artifact://…" }` and returns a put
|
|
42
42
|
response after durable storage succeeds. Promotion is idempotent, preserves the
|
|
@@ -54,13 +54,15 @@ the identical content may make an unexpired old URL usable again.
|
|
|
54
54
|
|
|
55
55
|
App Facade equivalents are `/app/artifact/persist` and `/app/artifact/delete`;
|
|
56
56
|
Wasm hosts expose `artifact_persist_async` and `artifact_delete_async`. LLM inputs
|
|
57
|
-
continue to use canonical Artifact references.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
and
|
|
57
|
+
continue to use canonical Artifact references. Temporary HTTP uploads and native
|
|
58
|
+
reads transfer content from memory without staging files. Large native transfers use bounded attachments on the existing
|
|
59
|
+
IPC connection; the JSON control frame limit is unchanged. Temporary delivery uses
|
|
60
|
+
`no-store`, and resolve grants never outlive the reported object expiration.
|
|
61
61
|
|
|
62
|
-
Temporary state is process-owned and is lost on restart
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
62
|
+
Temporary state is process-owned and is lost on restart. Startup removes
|
|
63
|
+
abandoned spill directories left by older runtimes. This contract adds no database
|
|
64
|
+
or migration. Cloud forwarding preserves the local owner’s lifetime metadata and
|
|
65
|
+
routes persist/delete to that owner. Cloud-owned storage rejects temporary writes;
|
|
66
|
+
it supports idempotent persist for existing durable content and exact-key delete.
|
|
67
|
+
A multi-instance cloud service must not emulate temporary storage with an
|
|
68
|
+
uncoordinated in-process map.
|
package/package.json
CHANGED
package/protocol.json
CHANGED
|
@@ -81,12 +81,18 @@
|
|
|
81
81
|
]
|
|
82
82
|
},
|
|
83
83
|
"then": {
|
|
84
|
+
"properties": {
|
|
85
|
+
"expiresAtUnixMs": {}
|
|
86
|
+
},
|
|
84
87
|
"required": [
|
|
85
88
|
"expiresAtUnixMs"
|
|
86
89
|
]
|
|
87
90
|
},
|
|
88
91
|
"else": {
|
|
89
92
|
"not": {
|
|
93
|
+
"properties": {
|
|
94
|
+
"expiresAtUnixMs": {}
|
|
95
|
+
},
|
|
90
96
|
"required": [
|
|
91
97
|
"expiresAtUnixMs"
|
|
92
98
|
]
|
|
@@ -172,12 +172,18 @@
|
|
|
172
172
|
]
|
|
173
173
|
},
|
|
174
174
|
"then": {
|
|
175
|
+
"properties": {
|
|
176
|
+
"expiresAtUnixMs": {}
|
|
177
|
+
},
|
|
175
178
|
"required": [
|
|
176
179
|
"expiresAtUnixMs"
|
|
177
180
|
]
|
|
178
181
|
},
|
|
179
182
|
"else": {
|
|
180
183
|
"not": {
|
|
184
|
+
"properties": {
|
|
185
|
+
"expiresAtUnixMs": {}
|
|
186
|
+
},
|
|
181
187
|
"required": [
|
|
182
188
|
"expiresAtUnixMs"
|
|
183
189
|
]
|